@nayan-ui/games 1.19.0 → 1.20.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 (1808) hide show
  1. package/README.md +53 -191
  2. package/lib/module/assets/fonts/Inter-SemiBold.ttf +0 -0
  3. package/lib/module/assets/models/explorer/explorer.glb +0 -0
  4. package/lib/module/assets/models/explorer/params.json +51 -0
  5. package/lib/module/assets/models/explorer/source.json +222 -0
  6. package/lib/module/assets/models/play-with-tua/play-with-tua.glb +0 -0
  7. package/lib/module/assets/models/play-with-tua/sources.json +141 -0
  8. package/lib/module/assets/sfx/balloon_pop.wav +0 -0
  9. package/lib/module/assets/sfx/blocked.wav +0 -0
  10. package/lib/module/assets/sfx/boing.wav +0 -0
  11. package/lib/module/assets/sfx/bonus.wav +0 -0
  12. package/lib/module/assets/sfx/boom.wav +0 -0
  13. package/lib/module/assets/sfx/bump.wav +0 -0
  14. package/lib/module/assets/sfx/cannon.wav +0 -0
  15. package/lib/module/assets/sfx/capture.wav +0 -0
  16. package/lib/module/assets/sfx/card_flip.wav +0 -0
  17. package/lib/module/assets/sfx/card_place.wav +0 -0
  18. package/lib/module/assets/sfx/catch.wav +0 -0
  19. package/lib/module/assets/sfx/chime.wav +0 -0
  20. package/lib/module/assets/sfx/chomp.wav +0 -0
  21. package/lib/module/assets/sfx/chomp_alt.wav +0 -0
  22. package/lib/module/assets/sfx/clack.wav +0 -0
  23. package/lib/module/assets/sfx/clang.wav +0 -0
  24. package/lib/module/assets/sfx/clash.wav +0 -0
  25. package/lib/module/assets/sfx/click.wav +0 -0
  26. package/lib/module/assets/sfx/coin.wav +0 -0
  27. package/lib/module/assets/sfx/combo.wav +0 -0
  28. package/lib/module/assets/sfx/crash.wav +0 -0
  29. package/lib/module/assets/sfx/crunch.wav +0 -0
  30. package/lib/module/assets/sfx/dance.wav +0 -0
  31. package/lib/module/assets/sfx/deselect.wav +0 -0
  32. package/lib/module/assets/sfx/dice_roll.wav +0 -0
  33. package/lib/module/assets/sfx/die.wav +0 -0
  34. package/lib/module/assets/sfx/draw.wav +0 -0
  35. package/lib/module/assets/sfx/drop.wav +0 -0
  36. package/lib/module/assets/sfx/eat.wav +0 -0
  37. package/lib/module/assets/sfx/engine.wav +0 -0
  38. package/lib/module/assets/sfx/error.wav +0 -0
  39. package/lib/module/assets/sfx/flag.wav +0 -0
  40. package/lib/module/assets/sfx/flap.wav +0 -0
  41. package/lib/module/assets/sfx/flip_disc.wav +0 -0
  42. package/lib/module/assets/sfx/footstep_run.wav +0 -0
  43. package/lib/module/assets/sfx/footstep_walk.wav +0 -0
  44. package/lib/module/assets/sfx/game_over.wav +0 -0
  45. package/lib/module/assets/sfx/gate.wav +0 -0
  46. package/lib/module/assets/sfx/hit.wav +0 -0
  47. package/lib/module/assets/sfx/hop.wav +0 -0
  48. package/lib/module/assets/sfx/hurt.wav +0 -0
  49. package/lib/module/assets/sfx/invalid.wav +0 -0
  50. package/lib/module/assets/sfx/jump.wav +0 -0
  51. package/lib/module/assets/sfx/ladder.wav +0 -0
  52. package/lib/module/assets/sfx/land.wav +0 -0
  53. package/lib/module/assets/sfx/laugh.wav +0 -0
  54. package/lib/module/assets/sfx/lose.wav +0 -0
  55. package/lib/module/assets/sfx/merge.wav +0 -0
  56. package/lib/module/assets/sfx/miss.wav +0 -0
  57. package/lib/module/assets/sfx/nitro.wav +0 -0
  58. package/lib/module/assets/sfx/pew.wav +0 -0
  59. package/lib/module/assets/sfx/place.wav +0 -0
  60. package/lib/module/assets/sfx/pling.wav +0 -0
  61. package/lib/module/assets/sfx/point.wav +0 -0
  62. package/lib/module/assets/sfx/pop.wav +0 -0
  63. package/lib/module/assets/sfx/pop_soft.wav +0 -0
  64. package/lib/module/assets/sfx/power_up.wav +0 -0
  65. package/lib/module/assets/sfx/reveal.wav +0 -0
  66. package/lib/module/assets/sfx/robot.wav +0 -0
  67. package/lib/module/assets/sfx/rotate.wav +0 -0
  68. package/lib/module/assets/sfx/run_steps.wav +0 -0
  69. package/lib/module/assets/sfx/select.wav +0 -0
  70. package/lib/module/assets/sfx/shuffle.wav +0 -0
  71. package/lib/module/assets/sfx/six.wav +0 -0
  72. package/lib/module/assets/sfx/slice.wav +0 -0
  73. package/lib/module/assets/sfx/slide.wav +0 -0
  74. package/lib/module/assets/sfx/snake.wav +0 -0
  75. package/lib/module/assets/sfx/snap.wav +0 -0
  76. package/lib/module/assets/sfx/splash.wav +0 -0
  77. package/lib/module/assets/sfx/star.wav +0 -0
  78. package/lib/module/assets/sfx/start.wav +0 -0
  79. package/lib/module/assets/sfx/swoosh.wav +0 -0
  80. package/lib/module/assets/sfx/tap.wav +0 -0
  81. package/lib/module/assets/sfx/thud.wav +0 -0
  82. package/lib/module/assets/sfx/thunk.wav +0 -0
  83. package/lib/module/assets/sfx/tick.wav +0 -0
  84. package/lib/module/assets/sfx/time_up.wav +0 -0
  85. package/lib/module/assets/sfx/tock.wav +0 -0
  86. package/lib/module/assets/sfx/walk_steps.wav +0 -0
  87. package/lib/module/assets/sfx/warning.wav +0 -0
  88. package/lib/module/assets/sfx/whack.wav +0 -0
  89. package/lib/module/assets/sfx/whoosh.wav +0 -0
  90. package/lib/module/assets/sfx/win.wav +0 -0
  91. package/lib/module/assets/sfx/zap.wav +0 -0
  92. package/lib/module/assets/textures/ad_bolt.png +0 -0
  93. package/lib/module/assets/textures/ad_bubbles.png +0 -0
  94. package/lib/module/assets/textures/ad_chevrons.png +0 -0
  95. package/lib/module/assets/textures/asphalt.png +0 -0
  96. package/lib/module/assets/textures/bark.jpg +0 -0
  97. package/lib/module/assets/textures/explorer-atlas.png +0 -0
  98. package/lib/module/assets/textures/facade.png +0 -0
  99. package/lib/module/assets/textures/grass.png +0 -0
  100. package/lib/module/assets/textures/leaves.png +0 -0
  101. package/lib/module/assets/textures/limestone.jpg +0 -0
  102. package/lib/module/assets/textures/meadow.jpg +0 -0
  103. package/lib/module/assets/textures/nature-sources.json +87 -0
  104. package/lib/module/assets/textures/pine.png +0 -0
  105. package/lib/module/assets/textures/river.jpg +0 -0
  106. package/lib/module/assets/textures/soft_glow.png +0 -0
  107. package/lib/module/games/arrows/Arrows.js +1 -1
  108. package/lib/module/games/arrows/ArrowsConstants.js +1 -1
  109. package/lib/module/games/arrows/ArrowsGame.js +1 -0
  110. package/lib/module/games/arrows/ArrowsScene.js +1 -0
  111. package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -1
  112. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -1
  113. package/lib/module/games/balloon-blaster/BalloonBlasterGame.js +1 -0
  114. package/lib/module/games/balloon-blaster/BalloonBlasterPhysics.js +1 -0
  115. package/lib/module/games/balloon-blaster/BalloonBlasterScene.js +1 -0
  116. package/lib/module/games/bike-racing/BikeMeshes.js +1 -0
  117. package/lib/module/games/bike-racing/BikeRacing.js +1 -1
  118. package/lib/module/games/bike-racing/BikeRacingConstants.js +1 -1
  119. package/lib/module/games/bike-racing/BikeRacingGame.js +1 -0
  120. package/lib/module/games/bike-racing/BikeRacingScene.js +1 -0
  121. package/lib/module/games/block-blast/BlockBlast.js +1 -1
  122. package/lib/module/games/block-blast/BlockBlastConstants.js +1 -1
  123. package/lib/module/games/block-blast/BlockBlastGame.js +1 -0
  124. package/lib/module/games/block-blast/BlockBlastScene.js +1 -0
  125. package/lib/module/games/block-breaker/BlockBreaker.js +1 -1
  126. package/lib/module/games/block-breaker/BlockBreakerConstants.js +1 -1
  127. package/lib/module/games/block-breaker/BlockBreakerGame.js +1 -0
  128. package/lib/module/games/block-breaker/BlockBreakerScene.js +1 -0
  129. package/lib/module/games/bluk/Bluk.js +1 -1
  130. package/lib/module/games/bluk/BlukConstants.js +1 -1
  131. package/lib/module/games/bluk/BlukGame.js +1 -0
  132. package/lib/module/games/bluk/BlukRules.js +1 -0
  133. package/lib/module/games/bluk/BlukScene.js +1 -0
  134. package/lib/module/games/bubble-shooter/BubbleShooter.js +1 -1
  135. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js +1 -1
  136. package/lib/module/games/bubble-shooter/BubbleShooterGame.js +1 -0
  137. package/lib/module/games/bubble-shooter/BubbleShooterScene.js +1 -0
  138. package/lib/module/games/candy-crush/CandyCrush.js +1 -1
  139. package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -1
  140. package/lib/module/games/candy-crush/CandyCrushGame.js +1 -0
  141. package/lib/module/games/candy-crush/CandyCrushScene.js +1 -0
  142. package/lib/module/games/car-racing/CarMeshes.js +1 -0
  143. package/lib/module/games/car-racing/CarRacing.js +1 -1
  144. package/lib/module/games/car-racing/CarRacingConstants.js +1 -1
  145. package/lib/module/games/car-racing/CarRacingFacade.js +1 -0
  146. package/lib/module/games/car-racing/CarRacingGame.js +1 -0
  147. package/lib/module/games/car-racing/CarRacingScene.js +1 -0
  148. package/lib/module/games/car-racing/CarRacingScenery.js +1 -0
  149. package/lib/module/games/chameleon-run/ChameleonRun.js +1 -1
  150. package/lib/module/games/chameleon-run/ChameleonRunBackdrop.js +1 -0
  151. package/lib/module/games/chameleon-run/ChameleonRunConstants.js +1 -1
  152. package/lib/module/games/chameleon-run/ChameleonRunGame.js +1 -0
  153. package/lib/module/games/chameleon-run/ChameleonRunMeshes.js +1 -0
  154. package/lib/module/games/chameleon-run/ChameleonRunRules.js +1 -0
  155. package/lib/module/games/chameleon-run/ChameleonRunScene.js +1 -0
  156. package/lib/module/games/checkers/Checkers.js +1 -1
  157. package/lib/module/games/checkers/CheckersAI.js +1 -0
  158. package/lib/module/games/checkers/CheckersConstants.js +1 -1
  159. package/lib/module/games/checkers/CheckersGame.js +1 -0
  160. package/lib/module/games/checkers/CheckersRules.js +1 -0
  161. package/lib/module/games/checkers/CheckersScene.js +1 -0
  162. package/lib/module/games/color-switch/ColorSwitch.js +1 -1
  163. package/lib/module/games/color-switch/ColorSwitchConstants.js +1 -1
  164. package/lib/module/games/color-switch/ColorSwitchGame.js +1 -0
  165. package/lib/module/games/color-switch/ColorSwitchScene.js +1 -0
  166. package/lib/module/games/colors-sort/ColorsSort.js +1 -1
  167. package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -1
  168. package/lib/module/games/colors-sort/ColorsSortGame.js +1 -0
  169. package/lib/module/games/colors-sort/ColorsSortScene.js +1 -0
  170. package/lib/module/games/connect-em-all/ConnectEmAll.js +1 -1
  171. package/lib/module/games/connect-em-all/ConnectEmAllConstants.js +1 -1
  172. package/lib/module/games/connect-em-all/ConnectEmAllGame.js +1 -0
  173. package/lib/module/games/connect-em-all/ConnectEmAllScene.js +1 -0
  174. package/lib/module/games/crossy-road/CrossyRoad.js +1 -1
  175. package/lib/module/games/crossy-road/CrossyRoadCamera.js +1 -0
  176. package/lib/module/games/crossy-road/CrossyRoadConstants.js +1 -1
  177. package/lib/module/games/crossy-road/CrossyRoadGame.js +1 -0
  178. package/lib/module/games/crossy-road/CrossyRoadMeshes.js +1 -0
  179. package/lib/module/games/crossy-road/CrossyRoadPerson.js +1 -0
  180. package/lib/module/games/crossy-road/CrossyRoadRules.js +1 -0
  181. package/lib/module/games/crossy-road/CrossyRoadScene.js +1 -0
  182. package/lib/module/games/dino-jump/DinoJump.js +1 -1
  183. package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -1
  184. package/lib/module/games/dino-jump/DinoJumpGame.js +1 -0
  185. package/lib/module/games/dino-jump/DinoJumpScene.js +1 -0
  186. package/lib/module/games/dots-and-boxes/DotsAndBoxes.js +1 -1
  187. package/lib/module/games/dots-and-boxes/DotsAndBoxesConstants.js +1 -1
  188. package/lib/module/games/dots-and-boxes/DotsAndBoxesGame.js +1 -0
  189. package/lib/module/games/dots-and-boxes/DotsAndBoxesScene.js +1 -0
  190. package/lib/module/games/falling-sticks/FallingSticks.js +1 -1
  191. package/lib/module/games/falling-sticks/FallingSticksConstants.js +1 -1
  192. package/lib/module/games/falling-sticks/FallingSticksGame.js +1 -0
  193. package/lib/module/games/falling-sticks/FallingSticksRules.js +1 -0
  194. package/lib/module/games/falling-sticks/FallingSticksScene.js +1 -0
  195. package/lib/module/games/find-different-number/FindDifferentNumber.js +1 -1
  196. package/lib/module/games/find-different-number/FindDifferentNumberConstants.js +1 -1
  197. package/lib/module/games/find-different-number/FindDifferentNumberGame.js +1 -0
  198. package/lib/module/games/find-different-number/FindDifferentNumberRules.js +1 -0
  199. package/lib/module/games/find-different-number/FindDifferentNumberScene.js +1 -0
  200. package/lib/module/games/flappy-bird/FlappyBird.js +1 -1
  201. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -1
  202. package/lib/module/games/flappy-bird/FlappyBirdGame.js +1 -0
  203. package/lib/module/games/flappy-bird/FlappyBirdScene.js +1 -0
  204. package/lib/module/games/fruit-merger/FruitMerger.js +1 -1
  205. package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -1
  206. package/lib/module/games/fruit-merger/FruitMergerGame.js +1 -0
  207. package/lib/module/games/fruit-merger/FruitMergerRules.js +1 -0
  208. package/lib/module/games/fruit-merger/FruitMergerScene.js +1 -0
  209. package/lib/module/games/fruit-ninja/FruitNinja.js +1 -1
  210. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -1
  211. package/lib/module/games/fruit-ninja/FruitNinjaGame.js +1 -0
  212. package/lib/module/games/fruit-ninja/FruitNinjaScene.js +1 -0
  213. package/lib/module/games/fruit-ninja/FruitNinjaWorld.js +1 -0
  214. package/lib/module/games/game-2048/Game2048.js +1 -1
  215. package/lib/module/games/game-2048/Game2048Constants.js +1 -1
  216. package/lib/module/games/game-2048/Game2048Game.js +1 -0
  217. package/lib/module/games/game-2048/Game2048Rules.js +1 -0
  218. package/lib/module/games/game-2048/Game2048Scene.js +1 -0
  219. package/lib/module/games/knife-hit/KnifeHit.js +1 -1
  220. package/lib/module/games/knife-hit/KnifeHitConstants.js +1 -1
  221. package/lib/module/games/knife-hit/KnifeHitGame.js +1 -0
  222. package/lib/module/games/knife-hit/KnifeHitScene.js +1 -0
  223. package/lib/module/games/ludo-king/LudoKing.js +1 -1
  224. package/lib/module/games/ludo-king/LudoKingConstants.js +1 -1
  225. package/lib/module/games/ludo-king/LudoKingGame.js +1 -0
  226. package/lib/module/games/ludo-king/LudoKingRules.js +1 -0
  227. package/lib/module/games/ludo-king/LudoKingScene.js +1 -0
  228. package/lib/module/games/maze-runner/MazeRunner.js +1 -1
  229. package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -1
  230. package/lib/module/games/maze-runner/MazeRunnerGame.js +1 -0
  231. package/lib/module/games/maze-runner/MazeRunnerRules.js +1 -0
  232. package/lib/module/games/maze-runner/MazeRunnerScene.js +1 -0
  233. package/lib/module/games/memory-match/MemoryMatch.js +1 -1
  234. package/lib/module/games/memory-match/MemoryMatchConstants.js +1 -1
  235. package/lib/module/games/memory-match/MemoryMatchGame.js +1 -0
  236. package/lib/module/games/memory-match/MemoryMatchRules.js +1 -0
  237. package/lib/module/games/memory-match/MemoryMatchScene.js +1 -0
  238. package/lib/module/games/mine-sweeper/MineSweeper.js +1 -1
  239. package/lib/module/games/mine-sweeper/MineSweeperConstants.js +1 -1
  240. package/lib/module/games/mine-sweeper/MineSweeperGame.js +1 -0
  241. package/lib/module/games/mine-sweeper/MineSweeperRules.js +1 -0
  242. package/lib/module/games/mine-sweeper/MineSweeperScene.js +1 -0
  243. package/lib/module/games/mob-control/MobControl.js +1 -1
  244. package/lib/module/games/mob-control/MobControlConstants.js +1 -1
  245. package/lib/module/games/mob-control/MobControlGame.js +1 -0
  246. package/lib/module/games/mob-control/MobControlMeshes.js +1 -0
  247. package/lib/module/games/mob-control/MobControlRenderer.js +1 -0
  248. package/lib/module/games/mob-control/MobControlRules.js +1 -0
  249. package/lib/module/games/mob-control/MobControlScene.js +1 -0
  250. package/lib/module/games/number-search/NumberSearch.js +1 -1
  251. package/lib/module/games/number-search/NumberSearchNumbers.js +1 -0
  252. package/lib/module/games/nuts-and-bolts/NutsAndBolts.js +1 -1
  253. package/lib/module/games/nuts-and-bolts/NutsAndBoltsConstants.js +1 -1
  254. package/lib/module/games/nuts-and-bolts/NutsAndBoltsGame.js +1 -0
  255. package/lib/module/games/nuts-and-bolts/NutsAndBoltsRules.js +1 -0
  256. package/lib/module/games/nuts-and-bolts/NutsAndBoltsScene.js +1 -0
  257. package/lib/module/games/pac-man/PacMan.js +1 -1
  258. package/lib/module/games/pac-man/PacManConstants.js +1 -1
  259. package/lib/module/games/pac-man/PacManGame.js +1 -0
  260. package/lib/module/games/pac-man/PacManRules.js +1 -0
  261. package/lib/module/games/pac-man/PacManScene.js +1 -0
  262. package/lib/module/games/paper-io/PaperIo.js +1 -1
  263. package/lib/module/games/paper-io/PaperIoConstants.js +1 -1
  264. package/lib/module/games/paper-io/PaperIoGame.js +1 -0
  265. package/lib/module/games/paper-io/PaperIoMeshes.js +1 -0
  266. package/lib/module/games/paper-io/PaperIoRules.js +1 -0
  267. package/lib/module/games/paper-io/PaperIoScene.js +1 -0
  268. package/lib/module/games/penguin-run/PenguinMeshes.js +1 -0
  269. package/lib/module/games/penguin-run/PenguinModel.js +1 -0
  270. package/lib/module/games/penguin-run/PenguinRun.js +1 -0
  271. package/lib/module/games/penguin-run/PenguinRunConstants.js +1 -0
  272. package/lib/module/games/penguin-run/PenguinRunGame.js +1 -0
  273. package/lib/module/games/penguin-run/PenguinRunScene.js +1 -0
  274. package/lib/module/games/perfect-circle/PerfectCircle.js +1 -1
  275. package/lib/module/games/perfect-circle/PerfectCircleConstants.js +1 -1
  276. package/lib/module/games/perfect-circle/PerfectCircleGame.js +1 -0
  277. package/lib/module/games/perfect-circle/PerfectCircleRules.js +1 -0
  278. package/lib/module/games/perfect-circle/PerfectCircleScene.js +1 -0
  279. package/lib/module/games/pipe-connect/PipeConnect.js +1 -1
  280. package/lib/module/games/pipe-connect/PipeConnectConstants.js +1 -1
  281. package/lib/module/games/pipe-connect/PipeConnectGame.js +1 -0
  282. package/lib/module/games/pipe-connect/PipeConnectRules.js +1 -0
  283. package/lib/module/games/pipe-connect/PipeConnectScene.js +1 -0
  284. package/lib/module/games/play-with-tua/PlayWithTua.js +1 -0
  285. package/lib/module/games/play-with-tua/PlayWithTuaConstants.js +1 -0
  286. package/lib/module/games/play-with-tua/PlayWithTuaGame.js +1 -0
  287. package/lib/module/games/play-with-tua/PlayWithTuaModel.js +1 -0
  288. package/lib/module/games/play-with-tua/PlayWithTuaScene.js +1 -0
  289. package/lib/module/games/popit-fidget/PopitFidget.js +1 -1
  290. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -1
  291. package/lib/module/games/popit-fidget/PopitFidgetGame.js +1 -0
  292. package/lib/module/games/popit-fidget/PopitFidgetScene.js +1 -0
  293. package/lib/module/games/reversi/Reversi.js +1 -1
  294. package/lib/module/games/reversi/ReversiConstants.js +1 -1
  295. package/lib/module/games/reversi/ReversiGame.js +1 -0
  296. package/lib/module/games/reversi/ReversiRules.js +1 -0
  297. package/lib/module/games/reversi/ReversiScene.js +1 -0
  298. package/lib/module/games/search-grid/SearchGrid.js +1 -0
  299. package/lib/module/games/search-grid/SearchGridConstants.js +1 -0
  300. package/lib/module/games/search-grid/SearchGridGame.js +1 -0
  301. package/lib/module/games/search-grid/SearchGridScene.js +1 -0
  302. package/lib/module/games/shared/BackdropCard.js +1 -0
  303. package/lib/module/games/shared/EngineBackdrop.js +1 -0
  304. package/lib/module/games/shared/EngineBlasts.js +1 -0
  305. package/lib/module/games/shared/EngineBlocks.js +1 -0
  306. package/lib/module/games/shared/EngineControlText.js +1 -0
  307. package/lib/module/games/shared/EngineDice.js +1 -0
  308. package/lib/module/games/shared/EngineFootprint.js +1 -0
  309. package/lib/module/games/shared/EngineFruits.js +1 -0
  310. package/lib/module/games/shared/EngineGameLoader.js +1 -0
  311. package/lib/module/games/shared/EngineGameScreen.js +1 -0
  312. package/lib/module/games/shared/EngineGameWidth.js +1 -0
  313. package/lib/module/games/shared/EngineGameWidth.web.js +1 -0
  314. package/lib/module/games/shared/EngineGlyphs.js +1 -0
  315. package/lib/module/games/shared/EngineHud.js +1 -0
  316. package/lib/module/games/shared/EngineLoading.js +1 -0
  317. package/lib/module/games/shared/EngineMeadow.js +1 -0
  318. package/lib/module/games/shared/EngineMeshCache.js +1 -0
  319. package/lib/module/games/shared/EngineMeshes.js +1 -0
  320. package/lib/module/games/shared/EngineRacingChase.js +1 -0
  321. package/lib/module/games/shared/EngineRacingHandling.js +1 -0
  322. package/lib/module/games/shared/EngineReadyContext.js +1 -0
  323. package/lib/module/games/shared/EngineTilt.js +1 -0
  324. package/lib/module/games/shared/EngineTouchSurface.js +1 -0
  325. package/lib/module/games/shared/EngineUtils.js +1 -0
  326. package/lib/module/games/shared/GameActivity.js +1 -0
  327. package/lib/module/games/shared/GameLoading.js +1 -0
  328. package/lib/module/games/shared/GameLoadingTransition.js +1 -0
  329. package/lib/module/games/shared/ProceduralCacheVersion.js +1 -0
  330. package/lib/module/games/shared/useEngineGame.js +1 -0
  331. package/lib/module/games/shared/useGameResource.js +1 -0
  332. package/lib/module/games/shared/useLiveState.js +1 -0
  333. package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -1
  334. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -1
  335. package/lib/module/games/sliding-numbers/SlidingNumbersGame.js +1 -0
  336. package/lib/module/games/sliding-numbers/SlidingNumbersRules.js +1 -0
  337. package/lib/module/games/sliding-numbers/SlidingNumbersScene.js +1 -0
  338. package/lib/module/games/snake-3d/Snake3D.js +1 -1
  339. package/lib/module/games/snake-3d/Snake3DConstants.js +1 -1
  340. package/lib/module/games/snake-3d/Snake3DGame.js +1 -0
  341. package/lib/module/games/snake-3d/Snake3DMotion.js +1 -0
  342. package/lib/module/games/snake-3d/Snake3DRules.js +1 -0
  343. package/lib/module/games/snake-3d/Snake3DScene.js +1 -0
  344. package/lib/module/games/snakes-and-ladders/SnakesAndLadders.js +1 -1
  345. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersConstants.js +1 -1
  346. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersGame.js +1 -0
  347. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersScene.js +1 -0
  348. package/lib/module/games/space-fighter/SpaceFighter.js +1 -1
  349. package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -1
  350. package/lib/module/games/space-fighter/SpaceFighterGame.js +1 -0
  351. package/lib/module/games/space-fighter/SpaceFighterScene.js +1 -0
  352. package/lib/module/games/spider-solitaire/SpiderSolitaire.js +1 -1
  353. package/lib/module/games/spider-solitaire/SpiderSolitaireConstants.js +1 -1
  354. package/lib/module/games/spider-solitaire/SpiderSolitaireGame.js +1 -0
  355. package/lib/module/games/spider-solitaire/SpiderSolitaireRules.js +1 -0
  356. package/lib/module/games/spider-solitaire/SpiderSolitaireScene.js +1 -0
  357. package/lib/module/games/stack-tower/StackTower.js +1 -1
  358. package/lib/module/games/stack-tower/StackTowerConstants.js +1 -1
  359. package/lib/module/games/stack-tower/StackTowerGame.js +1 -0
  360. package/lib/module/games/stack-tower/StackTowerScene.js +1 -0
  361. package/lib/module/games/sudoku/Sudoku.js +1 -1
  362. package/lib/module/games/sudoku/SudokuConstants.js +1 -1
  363. package/lib/module/games/sudoku/SudokuGame.js +1 -0
  364. package/lib/module/games/sudoku/SudokuRules.js +1 -0
  365. package/lib/module/games/sudoku/SudokuScene.js +1 -0
  366. package/lib/module/games/tangram/Tangram.js +1 -1
  367. package/lib/module/games/tangram/TangramConstants.js +1 -1
  368. package/lib/module/games/tangram/TangramGame.js +1 -0
  369. package/lib/module/games/tangram/TangramRules.js +1 -0
  370. package/lib/module/games/tangram/TangramScene.js +1 -0
  371. package/lib/module/games/tank-1990/Tank1990.js +1 -1
  372. package/lib/module/games/tank-1990/Tank1990Constants.js +1 -1
  373. package/lib/module/games/tank-1990/Tank1990Game.js +1 -0
  374. package/lib/module/games/tank-1990/Tank1990Rules.js +1 -0
  375. package/lib/module/games/tank-1990/Tank1990Scene.js +1 -0
  376. package/lib/module/games/tic-tac-toe/TicTacToe.js +1 -1
  377. package/lib/module/games/tic-tac-toe/TicTacToeConstants.js +1 -1
  378. package/lib/module/games/tic-tac-toe/TicTacToeGame.js +1 -0
  379. package/lib/module/games/tic-tac-toe/TicTacToeRules.js +1 -0
  380. package/lib/module/games/tic-tac-toe/TicTacToeScene.js +1 -0
  381. package/lib/module/games/tile-home/TileHome.js +1 -1
  382. package/lib/module/games/tile-home/TileHomeConstants.js +1 -1
  383. package/lib/module/games/tile-home/TileHomeGame.js +1 -0
  384. package/lib/module/games/tile-home/TileHomeScene.js +1 -0
  385. package/lib/module/games/treasure-hunt/TreasureHunt.js +1 -0
  386. package/lib/module/games/treasure-hunt/TreasureHuntConstants.js +1 -0
  387. package/lib/module/games/treasure-hunt/TreasureHuntControls.js +1 -0
  388. package/lib/module/games/treasure-hunt/TreasureHuntGame.js +1 -0
  389. package/lib/module/games/treasure-hunt/TreasureHuntMeshes.js +1 -0
  390. package/lib/module/games/treasure-hunt/TreasureHuntModel.js +1 -0
  391. package/lib/module/games/treasure-hunt/TreasureHuntRules.js +1 -0
  392. package/lib/module/games/treasure-hunt/TreasureHuntScene.js +1 -0
  393. package/lib/module/games/whack-a-mole/WhackAMole.js +1 -1
  394. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -1
  395. package/lib/module/games/whack-a-mole/WhackAMoleGame.js +1 -0
  396. package/lib/module/games/whack-a-mole/WhackAMoleScene.js +1 -0
  397. package/lib/module/games/word-search/WordSearch.js +1 -1
  398. package/lib/module/games/word-search/WordSearchWords.js +1 -0
  399. package/lib/module/helpers/GamePatternData.js +1 -0
  400. package/lib/module/helpers/GameSettingsModal.js +1 -1
  401. package/lib/module/helpers/GameTheme.js +1 -0
  402. package/lib/module/helpers/IconPaths.js +1 -0
  403. package/lib/module/helpers/index.js +1 -1
  404. package/lib/module/index.js +1 -1
  405. package/lib/module/services/GameAssetLoader.js +1 -0
  406. package/lib/module/services/GameAssets.js +1 -0
  407. package/lib/module/services/GameLoaders.js +1 -0
  408. package/lib/module/services/GamesConstants.js +1 -1
  409. package/lib/module/services/GamesMetadata.js +1 -1
  410. package/lib/module/services/GamesService.js +1 -1
  411. package/lib/module/services/HapticsService.js +1 -1
  412. package/lib/module/services/ScoringService.js +1 -1
  413. package/lib/module/services/SfxSources.js +1 -0
  414. package/lib/module/services/SoundsService.js +1 -1
  415. package/lib/module/services/ThemeService.js +1 -0
  416. package/lib/module/services/UtilsService.js +1 -1
  417. package/lib/module/services/index.js +1 -1
  418. package/lib/typescript/src/games/arrows/Arrows.d.ts +1 -3
  419. package/lib/typescript/src/games/arrows/ArrowsConstants.d.ts +48 -32
  420. package/lib/typescript/src/games/arrows/ArrowsGame.d.ts +60 -0
  421. package/lib/typescript/src/games/arrows/ArrowsScene.d.ts +67 -0
  422. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +1 -3
  423. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +39 -131
  424. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterGame.d.ts +57 -0
  425. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterPhysics.d.ts +16 -0
  426. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterScene.d.ts +31 -0
  427. package/lib/typescript/src/games/bike-racing/BikeMeshes.d.ts +14 -0
  428. package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts +2 -1
  429. package/lib/typescript/src/games/bike-racing/BikeRacingConstants.d.ts +38 -29
  430. package/lib/typescript/src/games/bike-racing/BikeRacingGame.d.ts +104 -0
  431. package/lib/typescript/src/games/bike-racing/BikeRacingScene.d.ts +25 -0
  432. package/lib/typescript/src/games/block-blast/BlockBlast.d.ts +1 -3
  433. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts +48 -30
  434. package/lib/typescript/src/games/block-blast/BlockBlastGame.d.ts +77 -0
  435. package/lib/typescript/src/games/block-blast/BlockBlastScene.d.ts +36 -0
  436. package/lib/typescript/src/games/block-breaker/BlockBreaker.d.ts +1 -3
  437. package/lib/typescript/src/games/block-breaker/BlockBreakerConstants.d.ts +88 -35
  438. package/lib/typescript/src/games/block-breaker/BlockBreakerGame.d.ts +82 -0
  439. package/lib/typescript/src/games/block-breaker/BlockBreakerScene.d.ts +48 -0
  440. package/lib/typescript/src/games/bluk/Bluk.d.ts +1 -3
  441. package/lib/typescript/src/games/bluk/BlukConstants.d.ts +65 -54
  442. package/lib/typescript/src/games/bluk/BlukGame.d.ts +65 -0
  443. package/lib/typescript/src/games/bluk/BlukRules.d.ts +51 -0
  444. package/lib/typescript/src/games/bluk/BlukScene.d.ts +54 -0
  445. package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts +1 -3
  446. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts +56 -24
  447. package/lib/typescript/src/games/bubble-shooter/BubbleShooterGame.d.ts +70 -0
  448. package/lib/typescript/src/games/bubble-shooter/BubbleShooterScene.d.ts +26 -0
  449. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts +1 -3
  450. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +63 -32
  451. package/lib/typescript/src/games/candy-crush/CandyCrushGame.d.ts +65 -0
  452. package/lib/typescript/src/games/candy-crush/CandyCrushScene.d.ts +28 -0
  453. package/lib/typescript/src/games/car-racing/CarMeshes.d.ts +44 -0
  454. package/lib/typescript/src/games/car-racing/CarRacing.d.ts +2 -1
  455. package/lib/typescript/src/games/car-racing/CarRacingConstants.d.ts +60 -29
  456. package/lib/typescript/src/games/car-racing/CarRacingFacade.d.ts +5 -0
  457. package/lib/typescript/src/games/car-racing/CarRacingGame.d.ts +96 -0
  458. package/lib/typescript/src/games/car-racing/CarRacingScene.d.ts +97 -0
  459. package/lib/typescript/src/games/car-racing/CarRacingScenery.d.ts +22 -0
  460. package/lib/typescript/src/games/chameleon-run/ChameleonRun.d.ts +1 -3
  461. package/lib/typescript/src/games/chameleon-run/ChameleonRunBackdrop.d.ts +14 -0
  462. package/lib/typescript/src/games/chameleon-run/ChameleonRunConstants.d.ts +44 -42
  463. package/lib/typescript/src/games/chameleon-run/ChameleonRunGame.d.ts +60 -0
  464. package/lib/typescript/src/games/chameleon-run/ChameleonRunMeshes.d.ts +20 -0
  465. package/lib/typescript/src/games/chameleon-run/ChameleonRunRules.d.ts +52 -0
  466. package/lib/typescript/src/games/chameleon-run/ChameleonRunScene.d.ts +44 -0
  467. package/lib/typescript/src/games/checkers/Checkers.d.ts +1 -3
  468. package/lib/typescript/src/games/checkers/CheckersAI.d.ts +11 -0
  469. package/lib/typescript/src/games/checkers/CheckersConstants.d.ts +32 -72
  470. package/lib/typescript/src/games/checkers/CheckersGame.d.ts +56 -0
  471. package/lib/typescript/src/games/checkers/CheckersRules.d.ts +48 -0
  472. package/lib/typescript/src/games/checkers/CheckersScene.d.ts +41 -0
  473. package/lib/typescript/src/games/color-switch/ColorSwitch.d.ts +1 -3
  474. package/lib/typescript/src/games/color-switch/ColorSwitchConstants.d.ts +27 -31
  475. package/lib/typescript/src/games/color-switch/ColorSwitchGame.d.ts +61 -0
  476. package/lib/typescript/src/games/color-switch/ColorSwitchScene.d.ts +43 -0
  477. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts +1 -3
  478. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts +37 -44
  479. package/lib/typescript/src/games/colors-sort/ColorsSortGame.d.ts +41 -0
  480. package/lib/typescript/src/games/colors-sort/ColorsSortScene.d.ts +33 -0
  481. package/lib/typescript/src/games/connect-em-all/ConnectEmAll.d.ts +1 -3
  482. package/lib/typescript/src/games/connect-em-all/ConnectEmAllConstants.d.ts +43 -17
  483. package/lib/typescript/src/games/connect-em-all/ConnectEmAllGame.d.ts +54 -0
  484. package/lib/typescript/src/games/connect-em-all/ConnectEmAllScene.d.ts +49 -0
  485. package/lib/typescript/src/games/crossy-road/CrossyRoad.d.ts +1 -3
  486. package/lib/typescript/src/games/crossy-road/CrossyRoadCamera.d.ts +14 -0
  487. package/lib/typescript/src/games/crossy-road/CrossyRoadConstants.d.ts +82 -50
  488. package/lib/typescript/src/games/crossy-road/CrossyRoadGame.d.ts +64 -0
  489. package/lib/typescript/src/games/crossy-road/CrossyRoadMeshes.d.ts +16 -0
  490. package/lib/typescript/src/games/crossy-road/CrossyRoadPerson.d.ts +10 -0
  491. package/lib/typescript/src/games/crossy-road/CrossyRoadRules.d.ts +36 -0
  492. package/lib/typescript/src/games/crossy-road/CrossyRoadScene.d.ts +38 -0
  493. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts +1 -3
  494. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +48 -72
  495. package/lib/typescript/src/games/dino-jump/DinoJumpGame.d.ts +60 -0
  496. package/lib/typescript/src/games/dino-jump/DinoJumpScene.d.ts +35 -0
  497. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxes.d.ts +1 -3
  498. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesConstants.d.ts +31 -36
  499. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesGame.d.ts +44 -0
  500. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesScene.d.ts +31 -0
  501. package/lib/typescript/src/games/falling-sticks/FallingSticks.d.ts +1 -3
  502. package/lib/typescript/src/games/falling-sticks/FallingSticksConstants.d.ts +31 -43
  503. package/lib/typescript/src/games/falling-sticks/FallingSticksGame.d.ts +42 -0
  504. package/lib/typescript/src/games/falling-sticks/FallingSticksRules.d.ts +36 -0
  505. package/lib/typescript/src/games/falling-sticks/FallingSticksScene.d.ts +26 -0
  506. package/lib/typescript/src/games/find-different-number/FindDifferentNumber.d.ts +1 -3
  507. package/lib/typescript/src/games/find-different-number/FindDifferentNumberConstants.d.ts +33 -29
  508. package/lib/typescript/src/games/find-different-number/FindDifferentNumberGame.d.ts +43 -0
  509. package/lib/typescript/src/games/find-different-number/FindDifferentNumberRules.d.ts +8 -0
  510. package/lib/typescript/src/games/find-different-number/FindDifferentNumberScene.d.ts +31 -0
  511. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts +1 -3
  512. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts +39 -35
  513. package/lib/typescript/src/games/flappy-bird/FlappyBirdGame.d.ts +66 -0
  514. package/lib/typescript/src/games/flappy-bird/FlappyBirdScene.d.ts +41 -0
  515. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts +1 -3
  516. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts +71 -44
  517. package/lib/typescript/src/games/fruit-merger/FruitMergerGame.d.ts +63 -0
  518. package/lib/typescript/src/games/fruit-merger/FruitMergerRules.d.ts +39 -0
  519. package/lib/typescript/src/games/fruit-merger/FruitMergerScene.d.ts +49 -0
  520. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +1 -3
  521. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +51 -76
  522. package/lib/typescript/src/games/fruit-ninja/FruitNinjaGame.d.ts +76 -0
  523. package/lib/typescript/src/games/fruit-ninja/FruitNinjaScene.d.ts +52 -0
  524. package/lib/typescript/src/games/fruit-ninja/FruitNinjaWorld.d.ts +8 -0
  525. package/lib/typescript/src/games/game-2048/Game2048.d.ts +1 -3
  526. package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts +25 -120
  527. package/lib/typescript/src/games/game-2048/Game2048Game.d.ts +45 -0
  528. package/lib/typescript/src/games/game-2048/Game2048Rules.d.ts +32 -0
  529. package/lib/typescript/src/games/game-2048/Game2048Scene.d.ts +34 -0
  530. package/lib/typescript/src/games/knife-hit/KnifeHit.d.ts +1 -3
  531. package/lib/typescript/src/games/knife-hit/KnifeHitConstants.d.ts +41 -49
  532. package/lib/typescript/src/games/knife-hit/KnifeHitGame.d.ts +49 -0
  533. package/lib/typescript/src/games/knife-hit/KnifeHitScene.d.ts +37 -0
  534. package/lib/typescript/src/games/ludo-king/LudoKing.d.ts +1 -3
  535. package/lib/typescript/src/games/ludo-king/LudoKingConstants.d.ts +50 -28
  536. package/lib/typescript/src/games/ludo-king/LudoKingGame.d.ts +40 -0
  537. package/lib/typescript/src/games/ludo-king/LudoKingRules.d.ts +42 -0
  538. package/lib/typescript/src/games/ludo-king/LudoKingScene.d.ts +53 -0
  539. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -3
  540. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +34 -10
  541. package/lib/typescript/src/games/maze-runner/MazeRunnerGame.d.ts +44 -0
  542. package/lib/typescript/src/games/maze-runner/MazeRunnerRules.d.ts +34 -0
  543. package/lib/typescript/src/games/maze-runner/MazeRunnerScene.d.ts +29 -0
  544. package/lib/typescript/src/games/memory-match/MemoryMatch.d.ts +1 -3
  545. package/lib/typescript/src/games/memory-match/MemoryMatchConstants.d.ts +42 -42
  546. package/lib/typescript/src/games/memory-match/MemoryMatchGame.d.ts +53 -0
  547. package/lib/typescript/src/games/memory-match/MemoryMatchRules.d.ts +14 -0
  548. package/lib/typescript/src/games/memory-match/MemoryMatchScene.d.ts +35 -0
  549. package/lib/typescript/src/games/mine-sweeper/MineSweeper.d.ts +1 -3
  550. package/lib/typescript/src/games/mine-sweeper/MineSweeperConstants.d.ts +43 -82
  551. package/lib/typescript/src/games/mine-sweeper/MineSweeperGame.d.ts +59 -0
  552. package/lib/typescript/src/games/mine-sweeper/MineSweeperRules.d.ts +18 -0
  553. package/lib/typescript/src/games/mine-sweeper/MineSweeperScene.d.ts +23 -0
  554. package/lib/typescript/src/games/mob-control/MobControl.d.ts +1 -3
  555. package/lib/typescript/src/games/mob-control/MobControlConstants.d.ts +99 -85
  556. package/lib/typescript/src/games/mob-control/MobControlGame.d.ts +45 -0
  557. package/lib/typescript/src/games/mob-control/MobControlMeshes.d.ts +2 -0
  558. package/lib/typescript/src/games/mob-control/MobControlRenderer.d.ts +20 -0
  559. package/lib/typescript/src/games/mob-control/MobControlRules.d.ts +68 -0
  560. package/lib/typescript/src/games/mob-control/MobControlScene.d.ts +58 -0
  561. package/lib/typescript/src/games/number-search/NumberSearch.d.ts +1 -3
  562. package/lib/typescript/src/games/number-search/NumberSearchNumbers.d.ts +1 -0
  563. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBolts.d.ts +1 -3
  564. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsConstants.d.ts +27 -79
  565. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsGame.d.ts +56 -0
  566. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsRules.d.ts +65 -0
  567. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsScene.d.ts +48 -0
  568. package/lib/typescript/src/games/pac-man/PacMan.d.ts +1 -3
  569. package/lib/typescript/src/games/pac-man/PacManConstants.d.ts +66 -106
  570. package/lib/typescript/src/games/pac-man/PacManGame.d.ts +48 -0
  571. package/lib/typescript/src/games/pac-man/PacManRules.d.ts +52 -0
  572. package/lib/typescript/src/games/pac-man/PacManScene.d.ts +44 -0
  573. package/lib/typescript/src/games/paper-io/PaperIo.d.ts +1 -3
  574. package/lib/typescript/src/games/paper-io/PaperIoConstants.d.ts +60 -40
  575. package/lib/typescript/src/games/paper-io/PaperIoGame.d.ts +49 -0
  576. package/lib/typescript/src/games/paper-io/PaperIoMeshes.d.ts +13 -0
  577. package/lib/typescript/src/games/paper-io/PaperIoRules.d.ts +71 -0
  578. package/lib/typescript/src/games/paper-io/PaperIoScene.d.ts +39 -0
  579. package/lib/typescript/src/games/penguin-run/PenguinMeshes.d.ts +9 -0
  580. package/lib/typescript/src/games/penguin-run/PenguinModel.d.ts +42 -0
  581. package/lib/typescript/src/games/penguin-run/PenguinRun.d.ts +1 -0
  582. package/lib/typescript/src/games/penguin-run/PenguinRunConstants.d.ts +58 -0
  583. package/lib/typescript/src/games/penguin-run/PenguinRunGame.d.ts +64 -0
  584. package/lib/typescript/src/games/penguin-run/PenguinRunScene.d.ts +65 -0
  585. package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts +1 -3
  586. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts +23 -45
  587. package/lib/typescript/src/games/perfect-circle/PerfectCircleGame.d.ts +40 -0
  588. package/lib/typescript/src/games/perfect-circle/PerfectCircleRules.d.ts +55 -0
  589. package/lib/typescript/src/games/perfect-circle/PerfectCircleScene.d.ts +32 -0
  590. package/lib/typescript/src/games/pipe-connect/PipeConnect.d.ts +1 -3
  591. package/lib/typescript/src/games/pipe-connect/PipeConnectConstants.d.ts +36 -32
  592. package/lib/typescript/src/games/pipe-connect/PipeConnectGame.d.ts +40 -0
  593. package/lib/typescript/src/games/pipe-connect/PipeConnectRules.d.ts +16 -0
  594. package/lib/typescript/src/games/pipe-connect/PipeConnectScene.d.ts +28 -0
  595. package/lib/typescript/src/games/play-with-tua/PlayWithTua.d.ts +2 -0
  596. package/lib/typescript/src/games/play-with-tua/PlayWithTuaConstants.d.ts +64 -0
  597. package/lib/typescript/src/games/play-with-tua/PlayWithTuaGame.d.ts +34 -0
  598. package/lib/typescript/src/games/play-with-tua/PlayWithTuaModel.d.ts +9 -0
  599. package/lib/typescript/src/games/play-with-tua/PlayWithTuaScene.d.ts +13 -0
  600. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +1 -4
  601. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +25 -36
  602. package/lib/typescript/src/games/popit-fidget/PopitFidgetGame.d.ts +37 -0
  603. package/lib/typescript/src/games/popit-fidget/PopitFidgetScene.d.ts +19 -0
  604. package/lib/typescript/src/games/reversi/Reversi.d.ts +1 -3
  605. package/lib/typescript/src/games/reversi/ReversiConstants.d.ts +31 -62
  606. package/lib/typescript/src/games/reversi/ReversiGame.d.ts +54 -0
  607. package/lib/typescript/src/games/reversi/ReversiRules.d.ts +22 -0
  608. package/lib/typescript/src/games/reversi/ReversiScene.d.ts +27 -0
  609. package/lib/typescript/src/games/search-grid/SearchGrid.d.ts +20 -0
  610. package/lib/typescript/src/games/search-grid/SearchGridConstants.d.ts +60 -0
  611. package/lib/typescript/src/games/search-grid/SearchGridGame.d.ts +52 -0
  612. package/lib/typescript/src/games/search-grid/SearchGridScene.d.ts +43 -0
  613. package/lib/typescript/src/games/shared/BackdropCard.d.ts +2 -0
  614. package/lib/typescript/src/games/shared/EngineBackdrop.d.ts +19 -0
  615. package/lib/typescript/src/games/shared/EngineBlasts.d.ts +26 -0
  616. package/lib/typescript/src/games/shared/EngineBlocks.d.ts +19 -0
  617. package/lib/typescript/src/games/shared/EngineControlText.d.ts +2 -0
  618. package/lib/typescript/src/games/shared/EngineDice.d.ts +24 -0
  619. package/lib/typescript/src/games/shared/EngineFootprint.d.ts +17 -0
  620. package/lib/typescript/src/games/shared/EngineFruits.d.ts +27 -0
  621. package/lib/typescript/src/games/shared/EngineGameLoader.d.ts +4 -0
  622. package/lib/typescript/src/games/shared/EngineGameScreen.d.ts +48 -0
  623. package/lib/typescript/src/games/shared/EngineGameWidth.d.ts +3 -0
  624. package/lib/typescript/src/games/shared/EngineGameWidth.web.d.ts +3 -0
  625. package/lib/typescript/src/games/shared/EngineGlyphs.d.ts +15 -0
  626. package/lib/typescript/src/games/shared/EngineHud.d.ts +138 -0
  627. package/lib/typescript/src/games/shared/EngineLoading.d.ts +77 -0
  628. package/lib/typescript/src/games/shared/EngineMeadow.d.ts +90 -0
  629. package/lib/typescript/src/games/shared/EngineMeshCache.d.ts +3 -0
  630. package/lib/typescript/src/games/shared/EngineMeshes.d.ts +3 -0
  631. package/lib/typescript/src/games/shared/EngineRacingChase.d.ts +11 -0
  632. package/lib/typescript/src/games/shared/EngineRacingHandling.d.ts +15 -0
  633. package/lib/typescript/src/games/shared/EngineReadyContext.d.ts +2 -0
  634. package/lib/typescript/src/games/shared/EngineTilt.d.ts +19 -0
  635. package/lib/typescript/src/games/shared/EngineTouchSurface.d.ts +20 -0
  636. package/lib/typescript/src/games/shared/EngineUtils.d.ts +18 -0
  637. package/lib/typescript/src/games/shared/GameActivity.d.ts +3 -0
  638. package/lib/typescript/src/games/shared/GameLoading.d.ts +14 -0
  639. package/lib/typescript/src/games/shared/GameLoadingTransition.d.ts +9 -0
  640. package/lib/typescript/src/games/shared/ProceduralCacheVersion.d.ts +1 -0
  641. package/lib/typescript/src/games/shared/useEngineGame.d.ts +69 -0
  642. package/lib/typescript/src/games/shared/useGameResource.d.ts +2 -0
  643. package/lib/typescript/src/games/shared/useLiveState.d.ts +4 -0
  644. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts +1 -3
  645. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts +32 -40
  646. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersGame.d.ts +48 -0
  647. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersRules.d.ts +22 -0
  648. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersScene.d.ts +30 -0
  649. package/lib/typescript/src/games/snake-3d/Snake3D.d.ts +1 -3
  650. package/lib/typescript/src/games/snake-3d/Snake3DConstants.d.ts +31 -68
  651. package/lib/typescript/src/games/snake-3d/Snake3DGame.d.ts +42 -0
  652. package/lib/typescript/src/games/snake-3d/Snake3DMotion.d.ts +3 -0
  653. package/lib/typescript/src/games/snake-3d/Snake3DRules.d.ts +42 -0
  654. package/lib/typescript/src/games/snake-3d/Snake3DScene.d.ts +35 -0
  655. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLadders.d.ts +1 -3
  656. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersConstants.d.ts +58 -50
  657. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersGame.d.ts +45 -0
  658. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersScene.d.ts +50 -0
  659. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +1 -3
  660. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +33 -23
  661. package/lib/typescript/src/games/space-fighter/SpaceFighterGame.d.ts +58 -0
  662. package/lib/typescript/src/games/space-fighter/SpaceFighterScene.d.ts +51 -0
  663. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaire.d.ts +1 -3
  664. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireConstants.d.ts +52 -35
  665. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireGame.d.ts +67 -0
  666. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireRules.d.ts +39 -0
  667. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireScene.d.ts +60 -0
  668. package/lib/typescript/src/games/stack-tower/StackTower.d.ts +1 -3
  669. package/lib/typescript/src/games/stack-tower/StackTowerConstants.d.ts +31 -23
  670. package/lib/typescript/src/games/stack-tower/StackTowerGame.d.ts +58 -0
  671. package/lib/typescript/src/games/stack-tower/StackTowerScene.d.ts +27 -0
  672. package/lib/typescript/src/games/sudoku/Sudoku.d.ts +1 -3
  673. package/lib/typescript/src/games/sudoku/SudokuConstants.d.ts +50 -55
  674. package/lib/typescript/src/games/sudoku/SudokuGame.d.ts +56 -0
  675. package/lib/typescript/src/games/sudoku/SudokuRules.d.ts +23 -0
  676. package/lib/typescript/src/games/sudoku/SudokuScene.d.ts +44 -0
  677. package/lib/typescript/src/games/tangram/Tangram.d.ts +1 -3
  678. package/lib/typescript/src/games/tangram/TangramConstants.d.ts +33 -52
  679. package/lib/typescript/src/games/tangram/TangramGame.d.ts +68 -0
  680. package/lib/typescript/src/games/tangram/TangramRules.d.ts +61 -0
  681. package/lib/typescript/src/games/tangram/TangramScene.d.ts +42 -0
  682. package/lib/typescript/src/games/tank-1990/Tank1990.d.ts +1 -3
  683. package/lib/typescript/src/games/tank-1990/Tank1990Constants.d.ts +44 -127
  684. package/lib/typescript/src/games/tank-1990/Tank1990Game.d.ts +50 -0
  685. package/lib/typescript/src/games/tank-1990/Tank1990Rules.d.ts +67 -0
  686. package/lib/typescript/src/games/tank-1990/Tank1990Scene.d.ts +38 -0
  687. package/lib/typescript/src/games/tic-tac-toe/TicTacToe.d.ts +1 -3
  688. package/lib/typescript/src/games/tic-tac-toe/TicTacToeConstants.d.ts +35 -72
  689. package/lib/typescript/src/games/tic-tac-toe/TicTacToeGame.d.ts +54 -0
  690. package/lib/typescript/src/games/tic-tac-toe/TicTacToeRules.d.ts +10 -0
  691. package/lib/typescript/src/games/tic-tac-toe/TicTacToeScene.d.ts +26 -0
  692. package/lib/typescript/src/games/tile-home/TileHome.d.ts +1 -3
  693. package/lib/typescript/src/games/tile-home/TileHomeConstants.d.ts +72 -70
  694. package/lib/typescript/src/games/tile-home/TileHomeGame.d.ts +72 -0
  695. package/lib/typescript/src/games/tile-home/TileHomeScene.d.ts +28 -0
  696. package/lib/typescript/src/games/treasure-hunt/TreasureHunt.d.ts +3 -0
  697. package/lib/typescript/src/games/treasure-hunt/TreasureHuntConstants.d.ts +144 -0
  698. package/lib/typescript/src/games/treasure-hunt/TreasureHuntControls.d.ts +75 -0
  699. package/lib/typescript/src/games/treasure-hunt/TreasureHuntGame.d.ts +41 -0
  700. package/lib/typescript/src/games/treasure-hunt/TreasureHuntMeshes.d.ts +26 -0
  701. package/lib/typescript/src/games/treasure-hunt/TreasureHuntModel.d.ts +57 -0
  702. package/lib/typescript/src/games/treasure-hunt/TreasureHuntRules.d.ts +198 -0
  703. package/lib/typescript/src/games/treasure-hunt/TreasureHuntScene.d.ts +40 -0
  704. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +1 -3
  705. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +35 -45
  706. package/lib/typescript/src/games/whack-a-mole/WhackAMoleGame.d.ts +51 -0
  707. package/lib/typescript/src/games/whack-a-mole/WhackAMoleScene.d.ts +31 -0
  708. package/lib/typescript/src/games/word-search/WordSearch.d.ts +1 -3
  709. package/lib/typescript/src/games/word-search/WordSearchWords.d.ts +1 -0
  710. package/lib/typescript/src/helpers/GamePatternData.d.ts +46 -0
  711. package/lib/typescript/src/helpers/GameSettingsModal.d.ts +1 -1
  712. package/lib/typescript/src/helpers/GameTheme.d.ts +18 -0
  713. package/lib/typescript/src/helpers/IconPaths.d.ts +4 -0
  714. package/lib/typescript/src/helpers/index.d.ts +1 -19
  715. package/lib/typescript/src/index.d.ts +3 -0
  716. package/lib/typescript/src/services/GameAssetLoader.d.ts +32 -0
  717. package/lib/typescript/src/services/GameAssets.d.ts +11 -0
  718. package/lib/typescript/src/services/GameLoaders.d.ts +18 -0
  719. package/lib/typescript/src/services/GamesConstants.d.ts +11 -0
  720. package/lib/typescript/src/services/GamesMetadata.d.ts +2 -0
  721. package/lib/typescript/src/services/HapticsService.d.ts +1 -1
  722. package/lib/typescript/src/services/SfxSources.d.ts +79 -0
  723. package/lib/typescript/src/services/SoundsService.d.ts +487 -1566
  724. package/lib/typescript/src/services/ThemeService.d.ts +117 -0
  725. package/lib/typescript/src/services/UtilsService.d.ts +20 -2
  726. package/lib/typescript/src/services/index.d.ts +3 -0
  727. package/lib/web/assets/005ea2045b17-explorer.glb +0 -0
  728. package/lib/web/assets/01e2f0a0bbf6-hurt.wav +0 -0
  729. package/lib/web/assets/01fc0ecf658c-explorer-atlas.png +0 -0
  730. package/lib/web/assets/029329b2c7c0-asphalt.png +0 -0
  731. package/lib/web/assets/0376bda32be3-robot.wav +0 -0
  732. package/lib/web/assets/0719fb0bb38e-soft_glow.png +0 -0
  733. package/lib/web/assets/0b21278bffba-boing.wav +0 -0
  734. package/lib/web/assets/1333c9d1273c-flip_disc.wav +0 -0
  735. package/lib/web/assets/15785f62ee5f-time_up.wav +0 -0
  736. package/lib/web/assets/177f00502e08-bonus.wav +0 -0
  737. package/lib/web/assets/19e47dcfda1f-pling.wav +0 -0
  738. package/lib/web/assets/1a677e0f7f6c-laugh.wav +0 -0
  739. package/lib/web/assets/1ad2914478b1-eat.wav +0 -0
  740. package/lib/web/assets/1b0d703ddd1a-dance.wav +0 -0
  741. package/lib/web/assets/1e4330fddd74-chime.wav +0 -0
  742. package/lib/web/assets/2432a97b0af1-cannon.wav +0 -0
  743. package/lib/web/assets/2574370d6aa0-blocked.wav +0 -0
  744. package/lib/web/assets/2699065037ad-select.wav +0 -0
  745. package/lib/web/assets/28d30f53ad73-ladder.wav +0 -0
  746. package/lib/web/assets/2c1ec05270b2-point.wav +0 -0
  747. package/lib/web/assets/2e1dd99a0213-tick.wav +0 -0
  748. package/lib/web/assets/3084575cecdb-card_flip.wav +0 -0
  749. package/lib/web/assets/308bc31b6af5-engine.wav +0 -0
  750. package/lib/web/assets/336d63b739b5-combo.wav +0 -0
  751. package/lib/web/assets/3a369e2596e4-clash.wav +0 -0
  752. package/lib/web/assets/3a816e20212f-capture.wav +0 -0
  753. package/lib/web/assets/40240217810a-nitro.wav +0 -0
  754. package/lib/web/assets/46edaa54d1ea-crunch.wav +0 -0
  755. package/lib/web/assets/501994226995-coin.wav +0 -0
  756. package/lib/web/assets/5525d7f6a4b8-rotate.wav +0 -0
  757. package/lib/web/assets/5e816e1f0929-dice_roll.wav +0 -0
  758. package/lib/web/assets/60e2dec3cf41-deselect.wav +0 -0
  759. package/lib/web/assets/6ab86ea29e5c-six.wav +0 -0
  760. package/lib/web/assets/6da3b101926d-merge.wav +0 -0
  761. package/lib/web/assets/6e686dea513c-bark.jpg +0 -0
  762. package/lib/web/assets/6ff9a6a13714-limestone.jpg +0 -0
  763. package/lib/web/assets/735c4a1cd22e-invalid.wav +0 -0
  764. package/lib/web/assets/73f75c35ff5d-snake.wav +0 -0
  765. package/lib/web/assets/7506e3efe264-catch.wav +0 -0
  766. package/lib/web/assets/76493a2ada2d-ad_bolt.png +0 -0
  767. package/lib/web/assets/793abe620201-card_place.wav +0 -0
  768. package/lib/web/assets/7da09c57f52d-facade.png +0 -0
  769. package/lib/web/assets/7e1a902176f6-pine.png +0 -0
  770. package/lib/web/assets/7eb943b85c21-play-with-tua.glb +0 -0
  771. package/lib/web/assets/837d43c06dba-ad_bubbles.png +0 -0
  772. package/lib/web/assets/84f1a7dfa368-game_over.wav +0 -0
  773. package/lib/web/assets/850e26ce3b0a-flap.wav +0 -0
  774. package/lib/web/assets/854b31683cb2-draw.wav +0 -0
  775. package/lib/web/assets/8616150393b7-error.wav +0 -0
  776. package/lib/web/assets/87cc6d503ec6-river.jpg +0 -0
  777. package/lib/web/assets/88755845922c-hop.wav +0 -0
  778. package/lib/web/assets/8ec8f469492d-chomp_alt.wav +0 -0
  779. package/lib/web/assets/8f17f89b138c-pew.wav +0 -0
  780. package/lib/web/assets/9210a24472d1-place.wav +0 -0
  781. package/lib/web/assets/930d833ebf89-splash.wav +0 -0
  782. package/lib/web/assets/970f7c59265d-swoosh.wav +0 -0
  783. package/lib/web/assets/9900b8d1b6ad-flag.wav +0 -0
  784. package/lib/web/assets/9ab04403898b-clang.wav +0 -0
  785. package/lib/web/assets/9d8b97a10d45-drop.wav +0 -0
  786. package/lib/web/assets/9d9c02ddc7ed-boom.wav +0 -0
  787. package/lib/web/assets/9e1b5114d56d-pop_soft.wav +0 -0
  788. package/lib/web/assets/a01f22d6dbb3-thud.wav +0 -0
  789. package/lib/web/assets/a44a1cf1a1a8-bump.wav +0 -0
  790. package/lib/web/assets/a76940a48c68-hit.wav +0 -0
  791. package/lib/web/assets/a98ddb724460-leaves.png +0 -0
  792. package/lib/web/assets/aa0960e8bee6-footstep_run.wav +0 -0
  793. package/lib/web/assets/aa570c9d3e15-star.wav +0 -0
  794. package/lib/web/assets/aacb999f3c49-tock.wav +0 -0
  795. package/lib/web/assets/aae0c16c5e89-reveal.wav +0 -0
  796. package/lib/web/assets/ab37cd128509-click.wav +0 -0
  797. package/lib/web/assets/b0bc66f49005-warning.wav +0 -0
  798. package/lib/web/assets/b1edd756ac43-zap.wav +0 -0
  799. package/lib/web/assets/b3894545cf71-slice.wav +0 -0
  800. package/lib/web/assets/b3c6225d055a-meadow.jpg +0 -0
  801. package/lib/web/assets/b60ca65cdfcb-gate.wav +0 -0
  802. package/lib/web/assets/b8900bb2c5c7-win.wav +0 -0
  803. package/lib/web/assets/baff6feda846-lose.wav +0 -0
  804. package/lib/web/assets/bed31305d60d-ad_chevrons.png +0 -0
  805. package/lib/web/assets/c26f4a624e7d-shuffle.wav +0 -0
  806. package/lib/web/assets/c3a9edfad195-die.wav +0 -0
  807. package/lib/web/assets/c4aa9d773f2a-footstep_walk.wav +0 -0
  808. package/lib/web/assets/c5ab3ff0003f-crash.wav +0 -0
  809. package/lib/web/assets/c5eb07deddd4-start.wav +0 -0
  810. package/lib/web/assets/c6c58d9ae452-pop.wav +0 -0
  811. package/lib/web/assets/cea48c3cd9c7-balloon_pop.wav +0 -0
  812. package/lib/web/assets/d15591767778-tap.wav +0 -0
  813. package/lib/web/assets/d1781a52234f-slide.wav +0 -0
  814. package/lib/web/assets/d3bf2d9f793b-snap.wav +0 -0
  815. package/lib/web/assets/d8f59ebd3537-jump.wav +0 -0
  816. package/lib/web/assets/dafea2f28854-power_up.wav +0 -0
  817. package/lib/web/assets/e2e7f5ae2d1b-whoosh.wav +0 -0
  818. package/lib/web/assets/e2f90a23e1bd-chomp.wav +0 -0
  819. package/lib/web/assets/e454e56df89a-clack.wav +0 -0
  820. package/lib/web/assets/e8cbc2b88bc4-Inter-SemiBold.ttf +0 -0
  821. package/lib/web/assets/ed6496b891fc-land.wav +0 -0
  822. package/lib/web/assets/f21920200a81-thunk.wav +0 -0
  823. package/lib/web/assets/f753b43be89d-whack.wav +0 -0
  824. package/lib/web/assets/f798c4b5cf4d-miss.wav +0 -0
  825. package/lib/web/assets/fbe299716916-grass.png +0 -0
  826. package/lib/web/chunk-52ez2s9z.js +15 -0
  827. package/lib/web/chunk-8675t224.js +1 -0
  828. package/lib/web/index.js +2 -0
  829. package/lib/web/package.json +1 -0
  830. package/lib/web/services.js +2 -0
  831. package/package.json +94 -73
  832. package/src/assets/fonts/Inter-SemiBold.ttf +0 -0
  833. package/src/assets/models/explorer/explorer.glb +0 -0
  834. package/src/assets/models/explorer/params.json +51 -0
  835. package/src/assets/models/explorer/source.json +222 -0
  836. package/src/assets/models/play-with-tua/play-with-tua.glb +0 -0
  837. package/src/assets/models/play-with-tua/sources.json +141 -0
  838. package/src/assets/sfx/balloon_pop.wav +0 -0
  839. package/src/assets/sfx/blocked.wav +0 -0
  840. package/src/assets/sfx/boing.wav +0 -0
  841. package/src/assets/sfx/bonus.wav +0 -0
  842. package/src/assets/sfx/boom.wav +0 -0
  843. package/src/assets/sfx/bump.wav +0 -0
  844. package/src/assets/sfx/cannon.wav +0 -0
  845. package/src/assets/sfx/capture.wav +0 -0
  846. package/src/assets/sfx/card_flip.wav +0 -0
  847. package/src/assets/sfx/card_place.wav +0 -0
  848. package/src/assets/sfx/catch.wav +0 -0
  849. package/src/assets/sfx/chime.wav +0 -0
  850. package/src/assets/sfx/chomp.wav +0 -0
  851. package/src/assets/sfx/chomp_alt.wav +0 -0
  852. package/src/assets/sfx/clack.wav +0 -0
  853. package/src/assets/sfx/clang.wav +0 -0
  854. package/src/assets/sfx/clash.wav +0 -0
  855. package/src/assets/sfx/click.wav +0 -0
  856. package/src/assets/sfx/coin.wav +0 -0
  857. package/src/assets/sfx/combo.wav +0 -0
  858. package/src/assets/sfx/crash.wav +0 -0
  859. package/src/assets/sfx/crunch.wav +0 -0
  860. package/src/assets/sfx/dance.wav +0 -0
  861. package/src/assets/sfx/deselect.wav +0 -0
  862. package/src/assets/sfx/dice_roll.wav +0 -0
  863. package/src/assets/sfx/die.wav +0 -0
  864. package/src/assets/sfx/draw.wav +0 -0
  865. package/src/assets/sfx/drop.wav +0 -0
  866. package/src/assets/sfx/eat.wav +0 -0
  867. package/src/assets/sfx/engine.wav +0 -0
  868. package/src/assets/sfx/error.wav +0 -0
  869. package/src/assets/sfx/flag.wav +0 -0
  870. package/src/assets/sfx/flap.wav +0 -0
  871. package/src/assets/sfx/flip_disc.wav +0 -0
  872. package/src/assets/sfx/footstep_run.wav +0 -0
  873. package/src/assets/sfx/footstep_walk.wav +0 -0
  874. package/src/assets/sfx/game_over.wav +0 -0
  875. package/src/assets/sfx/gate.wav +0 -0
  876. package/src/assets/sfx/hit.wav +0 -0
  877. package/src/assets/sfx/hop.wav +0 -0
  878. package/src/assets/sfx/hurt.wav +0 -0
  879. package/src/assets/sfx/invalid.wav +0 -0
  880. package/src/assets/sfx/jump.wav +0 -0
  881. package/src/assets/sfx/ladder.wav +0 -0
  882. package/src/assets/sfx/land.wav +0 -0
  883. package/src/assets/sfx/laugh.wav +0 -0
  884. package/src/assets/sfx/lose.wav +0 -0
  885. package/src/assets/sfx/merge.wav +0 -0
  886. package/src/assets/sfx/miss.wav +0 -0
  887. package/src/assets/sfx/nitro.wav +0 -0
  888. package/src/assets/sfx/pew.wav +0 -0
  889. package/src/assets/sfx/place.wav +0 -0
  890. package/src/assets/sfx/pling.wav +0 -0
  891. package/src/assets/sfx/point.wav +0 -0
  892. package/src/assets/sfx/pop.wav +0 -0
  893. package/src/assets/sfx/pop_soft.wav +0 -0
  894. package/src/assets/sfx/power_up.wav +0 -0
  895. package/src/assets/sfx/reveal.wav +0 -0
  896. package/src/assets/sfx/robot.wav +0 -0
  897. package/src/assets/sfx/rotate.wav +0 -0
  898. package/src/assets/sfx/run_steps.wav +0 -0
  899. package/src/assets/sfx/select.wav +0 -0
  900. package/src/assets/sfx/shuffle.wav +0 -0
  901. package/src/assets/sfx/six.wav +0 -0
  902. package/src/assets/sfx/slice.wav +0 -0
  903. package/src/assets/sfx/slide.wav +0 -0
  904. package/src/assets/sfx/snake.wav +0 -0
  905. package/src/assets/sfx/snap.wav +0 -0
  906. package/src/assets/sfx/splash.wav +0 -0
  907. package/src/assets/sfx/star.wav +0 -0
  908. package/src/assets/sfx/start.wav +0 -0
  909. package/src/assets/sfx/swoosh.wav +0 -0
  910. package/src/assets/sfx/tap.wav +0 -0
  911. package/src/assets/sfx/thud.wav +0 -0
  912. package/src/assets/sfx/thunk.wav +0 -0
  913. package/src/assets/sfx/tick.wav +0 -0
  914. package/src/assets/sfx/time_up.wav +0 -0
  915. package/src/assets/sfx/tock.wav +0 -0
  916. package/src/assets/sfx/walk_steps.wav +0 -0
  917. package/src/assets/sfx/warning.wav +0 -0
  918. package/src/assets/sfx/whack.wav +0 -0
  919. package/src/assets/sfx/whoosh.wav +0 -0
  920. package/src/assets/sfx/win.wav +0 -0
  921. package/src/assets/sfx/zap.wav +0 -0
  922. package/src/assets/textures/ad_bolt.png +0 -0
  923. package/src/assets/textures/ad_bubbles.png +0 -0
  924. package/src/assets/textures/ad_chevrons.png +0 -0
  925. package/src/assets/textures/asphalt.png +0 -0
  926. package/src/assets/textures/bark.jpg +0 -0
  927. package/src/assets/textures/explorer-atlas.png +0 -0
  928. package/src/assets/textures/facade.png +0 -0
  929. package/src/assets/textures/grass.png +0 -0
  930. package/src/assets/textures/leaves.png +0 -0
  931. package/src/assets/textures/limestone.jpg +0 -0
  932. package/src/assets/textures/meadow.jpg +0 -0
  933. package/src/assets/textures/nature-sources.json +87 -0
  934. package/src/assets/textures/pine.png +0 -0
  935. package/src/assets/textures/river.jpg +0 -0
  936. package/src/assets/textures/soft_glow.png +0 -0
  937. package/src/games/arrows/Arrows.tsx +69 -0
  938. package/src/games/arrows/ArrowsConstants.ts +107 -0
  939. package/src/games/arrows/ArrowsGame.ts +735 -0
  940. package/src/games/arrows/ArrowsScene.ts +395 -0
  941. package/src/games/balloon-blaster/BalloonBlaster.tsx +75 -0
  942. package/src/games/balloon-blaster/BalloonBlasterConstants.ts +79 -0
  943. package/src/games/balloon-blaster/BalloonBlasterGame.ts +287 -0
  944. package/src/games/balloon-blaster/BalloonBlasterPhysics.ts +95 -0
  945. package/src/games/balloon-blaster/BalloonBlasterScene.ts +225 -0
  946. package/src/games/bike-racing/BikeMeshes.ts +273 -0
  947. package/src/games/bike-racing/BikeRacing.tsx +211 -0
  948. package/src/games/bike-racing/BikeRacingConstants.ts +103 -0
  949. package/src/games/bike-racing/BikeRacingGame.ts +557 -0
  950. package/src/games/bike-racing/BikeRacingScene.ts +119 -0
  951. package/src/games/block-blast/BlockBlast.tsx +73 -0
  952. package/src/games/block-blast/BlockBlastConstants.ts +179 -0
  953. package/src/games/block-blast/BlockBlastGame.ts +471 -0
  954. package/src/games/block-blast/BlockBlastScene.ts +156 -0
  955. package/src/games/block-breaker/BlockBreaker.tsx +79 -0
  956. package/src/games/block-breaker/BlockBreakerConstants.ts +139 -0
  957. package/src/games/block-breaker/BlockBreakerGame.ts +459 -0
  958. package/src/games/block-breaker/BlockBreakerScene.ts +257 -0
  959. package/src/games/bluk/Bluk.tsx +82 -0
  960. package/src/games/bluk/BlukConstants.ts +121 -0
  961. package/src/games/bluk/BlukGame.ts +323 -0
  962. package/src/games/bluk/BlukRules.ts +154 -0
  963. package/src/games/bluk/BlukScene.ts +514 -0
  964. package/src/games/bubble-shooter/BubbleShooter.tsx +76 -0
  965. package/src/games/bubble-shooter/BubbleShooterConstants.ts +103 -0
  966. package/src/games/bubble-shooter/BubbleShooterGame.ts +459 -0
  967. package/src/games/bubble-shooter/BubbleShooterScene.ts +158 -0
  968. package/src/games/candy-crush/CandyCrush.tsx +77 -0
  969. package/src/games/candy-crush/CandyCrushConstants.ts +94 -0
  970. package/src/games/candy-crush/CandyCrushGame.ts +477 -0
  971. package/src/games/candy-crush/CandyCrushScene.ts +209 -0
  972. package/src/games/car-racing/CarMeshes.ts +440 -0
  973. package/src/games/car-racing/CarRacing.tsx +211 -0
  974. package/src/games/car-racing/CarRacingConstants.ts +167 -0
  975. package/src/games/car-racing/CarRacingFacade.ts +40 -0
  976. package/src/games/car-racing/CarRacingGame.ts +539 -0
  977. package/src/games/car-racing/CarRacingScene.ts +1026 -0
  978. package/src/games/car-racing/CarRacingScenery.ts +265 -0
  979. package/src/games/chameleon-run/ChameleonRun.tsx +96 -0
  980. package/src/games/chameleon-run/ChameleonRunBackdrop.ts +186 -0
  981. package/src/games/chameleon-run/ChameleonRunConstants.ts +47 -0
  982. package/src/games/chameleon-run/ChameleonRunGame.ts +309 -0
  983. package/src/games/chameleon-run/ChameleonRunMeshes.ts +305 -0
  984. package/src/games/chameleon-run/ChameleonRunRules.ts +252 -0
  985. package/src/games/chameleon-run/ChameleonRunScene.ts +310 -0
  986. package/src/games/checkers/Checkers.tsx +83 -0
  987. package/src/games/checkers/CheckersAI.ts +255 -0
  988. package/src/games/checkers/CheckersConstants.ts +68 -0
  989. package/src/games/checkers/CheckersGame.ts +322 -0
  990. package/src/games/checkers/CheckersRules.ts +167 -0
  991. package/src/games/checkers/CheckersScene.ts +308 -0
  992. package/src/games/color-switch/ColorSwitch.tsx +75 -0
  993. package/src/games/color-switch/ColorSwitchConstants.ts +61 -0
  994. package/src/games/color-switch/ColorSwitchGame.ts +329 -0
  995. package/src/games/color-switch/ColorSwitchScene.ts +220 -0
  996. package/src/games/colors-sort/ColorsSort.tsx +82 -0
  997. package/src/games/colors-sort/ColorsSortConstants.ts +119 -0
  998. package/src/games/colors-sort/ColorsSortGame.ts +246 -0
  999. package/src/games/colors-sort/ColorsSortScene.ts +315 -0
  1000. package/src/games/connect-em-all/ConnectEmAll.tsx +70 -0
  1001. package/src/games/connect-em-all/ConnectEmAllConstants.ts +77 -0
  1002. package/src/games/connect-em-all/ConnectEmAllGame.ts +401 -0
  1003. package/src/games/connect-em-all/ConnectEmAllScene.ts +235 -0
  1004. package/src/games/crossy-road/CrossyRoad.tsx +74 -0
  1005. package/src/games/crossy-road/CrossyRoadCamera.ts +59 -0
  1006. package/src/games/crossy-road/CrossyRoadConstants.ts +132 -0
  1007. package/src/games/crossy-road/CrossyRoadGame.ts +293 -0
  1008. package/src/games/crossy-road/CrossyRoadMeshes.ts +195 -0
  1009. package/src/games/crossy-road/CrossyRoadPerson.ts +198 -0
  1010. package/src/games/crossy-road/CrossyRoadRules.ts +99 -0
  1011. package/src/games/crossy-road/CrossyRoadScene.ts +355 -0
  1012. package/src/games/dino-jump/DinoJump.tsx +77 -0
  1013. package/src/games/dino-jump/DinoJumpConstants.ts +80 -0
  1014. package/src/games/dino-jump/DinoJumpGame.ts +344 -0
  1015. package/src/games/dino-jump/DinoJumpScene.ts +686 -0
  1016. package/src/games/dots-and-boxes/DotsAndBoxes.tsx +83 -0
  1017. package/src/games/dots-and-boxes/DotsAndBoxesConstants.ts +77 -0
  1018. package/src/games/dots-and-boxes/DotsAndBoxesGame.ts +271 -0
  1019. package/src/games/dots-and-boxes/DotsAndBoxesScene.ts +249 -0
  1020. package/src/games/falling-sticks/FallingSticks.tsx +72 -0
  1021. package/src/games/falling-sticks/FallingSticksConstants.ts +62 -0
  1022. package/src/games/falling-sticks/FallingSticksGame.ts +220 -0
  1023. package/src/games/falling-sticks/FallingSticksRules.ts +145 -0
  1024. package/src/games/falling-sticks/FallingSticksScene.ts +245 -0
  1025. package/src/games/find-different-number/FindDifferentNumber.tsx +74 -0
  1026. package/src/games/find-different-number/FindDifferentNumberConstants.ts +74 -0
  1027. package/src/games/find-different-number/FindDifferentNumberGame.ts +174 -0
  1028. package/src/games/find-different-number/FindDifferentNumberRules.ts +43 -0
  1029. package/src/games/find-different-number/FindDifferentNumberScene.ts +193 -0
  1030. package/src/games/flappy-bird/FlappyBird.tsx +73 -0
  1031. package/src/games/flappy-bird/FlappyBirdConstants.ts +95 -0
  1032. package/src/games/flappy-bird/FlappyBirdGame.ts +375 -0
  1033. package/src/games/flappy-bird/FlappyBirdScene.ts +630 -0
  1034. package/src/games/fruit-merger/FruitMerger.tsx +73 -0
  1035. package/src/games/fruit-merger/FruitMergerConstants.ts +102 -0
  1036. package/src/games/fruit-merger/FruitMergerGame.ts +285 -0
  1037. package/src/games/fruit-merger/FruitMergerRules.ts +286 -0
  1038. package/src/games/fruit-merger/FruitMergerScene.ts +498 -0
  1039. package/src/games/fruit-ninja/FruitNinja.tsx +129 -0
  1040. package/src/games/fruit-ninja/FruitNinjaConstants.ts +107 -0
  1041. package/src/games/fruit-ninja/FruitNinjaGame.ts +391 -0
  1042. package/src/games/fruit-ninja/FruitNinjaScene.ts +319 -0
  1043. package/src/games/fruit-ninja/FruitNinjaWorld.ts +17 -0
  1044. package/src/games/game-2048/Game2048.tsx +84 -0
  1045. package/src/games/game-2048/Game2048Constants.ts +68 -0
  1046. package/src/games/game-2048/Game2048Game.ts +181 -0
  1047. package/src/games/game-2048/Game2048Rules.ts +101 -0
  1048. package/src/games/game-2048/Game2048Scene.ts +206 -0
  1049. package/src/games/knife-hit/KnifeHit.tsx +78 -0
  1050. package/src/games/knife-hit/KnifeHitConstants.ts +89 -0
  1051. package/src/games/knife-hit/KnifeHitGame.ts +264 -0
  1052. package/src/games/knife-hit/KnifeHitScene.ts +360 -0
  1053. package/src/games/ludo-king/LudoKing.tsx +86 -0
  1054. package/src/games/ludo-king/LudoKingConstants.ts +212 -0
  1055. package/src/games/ludo-king/LudoKingGame.ts +326 -0
  1056. package/src/games/ludo-king/LudoKingRules.ts +143 -0
  1057. package/src/games/ludo-king/LudoKingScene.ts +397 -0
  1058. package/src/games/maze-runner/MazeRunner.tsx +88 -0
  1059. package/src/games/maze-runner/MazeRunnerConstants.ts +65 -0
  1060. package/src/games/maze-runner/MazeRunnerGame.ts +176 -0
  1061. package/src/games/maze-runner/MazeRunnerRules.ts +161 -0
  1062. package/src/games/maze-runner/MazeRunnerScene.ts +245 -0
  1063. package/src/games/memory-match/MemoryMatch.tsx +77 -0
  1064. package/src/games/memory-match/MemoryMatchConstants.ts +105 -0
  1065. package/src/games/memory-match/MemoryMatchGame.ts +222 -0
  1066. package/src/games/memory-match/MemoryMatchRules.ts +38 -0
  1067. package/src/games/memory-match/MemoryMatchScene.ts +268 -0
  1068. package/src/games/mine-sweeper/MineSweeper.tsx +77 -0
  1069. package/src/games/mine-sweeper/MineSweeperConstants.ts +94 -0
  1070. package/src/games/mine-sweeper/MineSweeperGame.ts +234 -0
  1071. package/src/games/mine-sweeper/MineSweeperRules.ts +67 -0
  1072. package/src/games/mine-sweeper/MineSweeperScene.ts +262 -0
  1073. package/src/games/mob-control/MobControl.tsx +73 -0
  1074. package/src/games/mob-control/MobControlConstants.ts +106 -0
  1075. package/src/games/mob-control/MobControlGame.ts +176 -0
  1076. package/src/games/mob-control/MobControlMeshes.ts +85 -0
  1077. package/src/games/mob-control/MobControlRenderer.ts +108 -0
  1078. package/src/games/mob-control/MobControlRules.ts +522 -0
  1079. package/src/games/mob-control/MobControlScene.ts +399 -0
  1080. package/src/games/number-search/NumberSearch.tsx +18 -0
  1081. package/src/games/number-search/NumberSearchNumbers.ts +623 -0
  1082. package/src/games/nuts-and-bolts/NutsAndBolts.tsx +85 -0
  1083. package/src/games/nuts-and-bolts/NutsAndBoltsConstants.ts +75 -0
  1084. package/src/games/nuts-and-bolts/NutsAndBoltsGame.ts +298 -0
  1085. package/src/games/nuts-and-bolts/NutsAndBoltsRules.ts +474 -0
  1086. package/src/games/nuts-and-bolts/NutsAndBoltsScene.ts +498 -0
  1087. package/src/games/pac-man/PacMan.tsx +86 -0
  1088. package/src/games/pac-man/PacManConstants.ts +169 -0
  1089. package/src/games/pac-man/PacManGame.ts +406 -0
  1090. package/src/games/pac-man/PacManRules.ts +255 -0
  1091. package/src/games/pac-man/PacManScene.ts +387 -0
  1092. package/src/games/paper-io/PaperIo.tsx +91 -0
  1093. package/src/games/paper-io/PaperIoConstants.ts +86 -0
  1094. package/src/games/paper-io/PaperIoGame.ts +193 -0
  1095. package/src/games/paper-io/PaperIoMeshes.ts +233 -0
  1096. package/src/games/paper-io/PaperIoRules.ts +315 -0
  1097. package/src/games/paper-io/PaperIoScene.ts +310 -0
  1098. package/src/games/penguin-run/PenguinMeshes.ts +269 -0
  1099. package/src/games/penguin-run/PenguinModel.ts +712 -0
  1100. package/src/games/penguin-run/PenguinRun.tsx +77 -0
  1101. package/src/games/penguin-run/PenguinRunConstants.ts +69 -0
  1102. package/src/games/penguin-run/PenguinRunGame.ts +406 -0
  1103. package/src/games/penguin-run/PenguinRunScene.ts +949 -0
  1104. package/src/games/perfect-circle/PerfectCircle.tsx +74 -0
  1105. package/src/games/perfect-circle/PerfectCircleConstants.ts +52 -0
  1106. package/src/games/perfect-circle/PerfectCircleGame.ts +153 -0
  1107. package/src/games/perfect-circle/PerfectCircleRules.ts +111 -0
  1108. package/src/games/perfect-circle/PerfectCircleScene.ts +176 -0
  1109. package/src/games/pipe-connect/PipeConnect.tsx +69 -0
  1110. package/src/games/pipe-connect/PipeConnectConstants.ts +101 -0
  1111. package/src/games/pipe-connect/PipeConnectGame.ts +179 -0
  1112. package/src/games/pipe-connect/PipeConnectRules.ts +326 -0
  1113. package/src/games/pipe-connect/PipeConnectScene.ts +271 -0
  1114. package/src/games/play-with-tua/PlayWithTua.tsx +123 -0
  1115. package/src/games/play-with-tua/PlayWithTuaConstants.ts +70 -0
  1116. package/src/games/play-with-tua/PlayWithTuaGame.ts +167 -0
  1117. package/src/games/play-with-tua/PlayWithTuaModel.ts +42 -0
  1118. package/src/games/play-with-tua/PlayWithTuaScene.ts +36 -0
  1119. package/src/games/popit-fidget/PopitFidget.tsx +72 -0
  1120. package/src/games/popit-fidget/PopitFidgetConstants.ts +71 -0
  1121. package/src/games/popit-fidget/PopitFidgetGame.ts +148 -0
  1122. package/src/games/popit-fidget/PopitFidgetScene.ts +242 -0
  1123. package/src/games/reversi/Reversi.tsx +94 -0
  1124. package/src/games/reversi/ReversiConstants.ts +67 -0
  1125. package/src/games/reversi/ReversiGame.ts +266 -0
  1126. package/src/games/reversi/ReversiRules.ts +176 -0
  1127. package/src/games/reversi/ReversiScene.ts +240 -0
  1128. package/src/games/search-grid/SearchGrid.tsx +92 -0
  1129. package/src/games/search-grid/SearchGridConstants.ts +178 -0
  1130. package/src/games/search-grid/SearchGridGame.ts +209 -0
  1131. package/src/games/search-grid/SearchGridScene.ts +301 -0
  1132. package/src/games/shared/BackdropCard.tsx +54 -0
  1133. package/src/games/shared/EngineBackdrop.ts +300 -0
  1134. package/src/games/shared/EngineBlasts.ts +136 -0
  1135. package/src/games/shared/EngineBlocks.ts +91 -0
  1136. package/src/games/shared/EngineControlText.ts +17 -0
  1137. package/src/games/shared/EngineDice.ts +250 -0
  1138. package/src/games/shared/EngineFootprint.ts +35 -0
  1139. package/src/games/shared/EngineFruits.ts +1435 -0
  1140. package/src/games/shared/EngineGameLoader.tsx +88 -0
  1141. package/src/games/shared/EngineGameScreen.tsx +325 -0
  1142. package/src/games/shared/EngineGameWidth.ts +3 -0
  1143. package/src/games/shared/EngineGameWidth.web.ts +3 -0
  1144. package/src/games/shared/EngineGlyphs.ts +178 -0
  1145. package/src/games/shared/EngineHud.ts +815 -0
  1146. package/src/games/shared/EngineLoading.ts +477 -0
  1147. package/src/games/shared/EngineMeadow.ts +725 -0
  1148. package/src/games/shared/EngineMeshCache.ts +15 -0
  1149. package/src/games/shared/EngineMeshes.ts +10 -0
  1150. package/src/games/shared/EngineRacingChase.ts +21 -0
  1151. package/src/games/shared/EngineRacingHandling.ts +48 -0
  1152. package/src/games/shared/EngineReadyContext.ts +4 -0
  1153. package/src/games/shared/EngineTilt.ts +44 -0
  1154. package/src/games/shared/EngineTouchSurface.tsx +103 -0
  1155. package/src/games/shared/EngineUtils.ts +52 -0
  1156. package/src/games/shared/GameActivity.ts +13 -0
  1157. package/src/games/shared/GameLoading.tsx +202 -0
  1158. package/src/games/shared/GameLoadingTransition.tsx +61 -0
  1159. package/src/games/shared/ProceduralCacheVersion.ts +2 -0
  1160. package/src/games/shared/useEngineGame.ts +240 -0
  1161. package/src/games/shared/useGameResource.ts +21 -0
  1162. package/src/games/shared/useLiveState.ts +58 -0
  1163. package/src/games/sliding-numbers/SlidingNumbers.tsx +71 -0
  1164. package/src/games/sliding-numbers/SlidingNumbersConstants.ts +65 -0
  1165. package/src/games/sliding-numbers/SlidingNumbersGame.ts +192 -0
  1166. package/src/games/sliding-numbers/SlidingNumbersRules.ts +79 -0
  1167. package/src/games/sliding-numbers/SlidingNumbersScene.ts +193 -0
  1168. package/src/games/snake-3d/Snake3D.tsx +76 -0
  1169. package/src/games/snake-3d/Snake3DConstants.ts +61 -0
  1170. package/src/games/snake-3d/Snake3DGame.ts +192 -0
  1171. package/src/games/snake-3d/Snake3DMotion.ts +22 -0
  1172. package/src/games/snake-3d/Snake3DRules.ts +116 -0
  1173. package/src/games/snake-3d/Snake3DScene.ts +322 -0
  1174. package/src/games/snakes-and-ladders/SnakesAndLadders.tsx +87 -0
  1175. package/src/games/snakes-and-ladders/SnakesAndLaddersConstants.ts +136 -0
  1176. package/src/games/snakes-and-ladders/SnakesAndLaddersGame.ts +310 -0
  1177. package/src/games/snakes-and-ladders/SnakesAndLaddersScene.ts +515 -0
  1178. package/src/games/space-fighter/SpaceFighter.tsx +74 -0
  1179. package/src/games/space-fighter/SpaceFighterConstants.ts +86 -0
  1180. package/src/games/space-fighter/SpaceFighterGame.ts +292 -0
  1181. package/src/games/space-fighter/SpaceFighterScene.ts +550 -0
  1182. package/src/games/spider-solitaire/SpiderSolitaire.tsx +80 -0
  1183. package/src/games/spider-solitaire/SpiderSolitaireConstants.ts +107 -0
  1184. package/src/games/spider-solitaire/SpiderSolitaireGame.ts +387 -0
  1185. package/src/games/spider-solitaire/SpiderSolitaireRules.ts +123 -0
  1186. package/src/games/spider-solitaire/SpiderSolitaireScene.ts +352 -0
  1187. package/src/games/stack-tower/StackTower.tsx +76 -0
  1188. package/src/games/stack-tower/StackTowerConstants.ts +74 -0
  1189. package/src/games/stack-tower/StackTowerGame.ts +236 -0
  1190. package/src/games/stack-tower/StackTowerScene.ts +186 -0
  1191. package/src/games/sudoku/Sudoku.tsx +73 -0
  1192. package/src/games/sudoku/SudokuConstants.ts +127 -0
  1193. package/src/games/sudoku/SudokuGame.ts +250 -0
  1194. package/src/games/sudoku/SudokuRules.ts +125 -0
  1195. package/src/games/sudoku/SudokuScene.ts +304 -0
  1196. package/src/games/tangram/Tangram.tsx +79 -0
  1197. package/src/games/tangram/TangramConstants.ts +64 -0
  1198. package/src/games/tangram/TangramGame.ts +356 -0
  1199. package/src/games/tangram/TangramRules.ts +409 -0
  1200. package/src/games/tangram/TangramScene.ts +203 -0
  1201. package/src/games/tank-1990/Tank1990.tsx +78 -0
  1202. package/src/games/tank-1990/Tank1990Constants.ts +81 -0
  1203. package/src/games/tank-1990/Tank1990Game.ts +331 -0
  1204. package/src/games/tank-1990/Tank1990Rules.ts +390 -0
  1205. package/src/games/tank-1990/Tank1990Scene.ts +434 -0
  1206. package/src/games/tic-tac-toe/TicTacToe.tsx +98 -0
  1207. package/src/games/tic-tac-toe/TicTacToeConstants.ts +69 -0
  1208. package/src/games/tic-tac-toe/TicTacToeGame.ts +200 -0
  1209. package/src/games/tic-tac-toe/TicTacToeRules.ts +103 -0
  1210. package/src/games/tic-tac-toe/TicTacToeScene.ts +245 -0
  1211. package/src/games/tile-home/TileHome.tsx +92 -0
  1212. package/src/games/tile-home/TileHomeConstants.ts +139 -0
  1213. package/src/games/tile-home/TileHomeGame.ts +435 -0
  1214. package/src/games/tile-home/TileHomeScene.ts +154 -0
  1215. package/src/games/treasure-hunt/TreasureHunt.tsx +206 -0
  1216. package/src/games/treasure-hunt/TreasureHuntConstants.ts +266 -0
  1217. package/src/games/treasure-hunt/TreasureHuntControls.ts +280 -0
  1218. package/src/games/treasure-hunt/TreasureHuntGame.ts +402 -0
  1219. package/src/games/treasure-hunt/TreasureHuntMeshes.ts +422 -0
  1220. package/src/games/treasure-hunt/TreasureHuntModel.ts +506 -0
  1221. package/src/games/treasure-hunt/TreasureHuntRules.ts +1210 -0
  1222. package/src/games/treasure-hunt/TreasureHuntScene.ts +586 -0
  1223. package/src/games/whack-a-mole/WhackAMole.tsx +79 -0
  1224. package/src/games/whack-a-mole/WhackAMoleConstants.ts +94 -0
  1225. package/src/games/whack-a-mole/WhackAMoleGame.ts +233 -0
  1226. package/src/games/whack-a-mole/WhackAMoleScene.ts +349 -0
  1227. package/src/games/word-search/WordSearch.tsx +18 -0
  1228. package/src/games/word-search/WordSearchWords.ts +1642 -0
  1229. package/src/helpers/GamePatternData.ts +120 -0
  1230. package/src/helpers/GameSettingsModal.tsx +384 -0
  1231. package/src/helpers/GameTheme.tsx +37 -0
  1232. package/src/helpers/IconPaths.ts +6 -0
  1233. package/src/helpers/index.ts +2 -0
  1234. package/src/index.tsx +60 -0
  1235. package/src/services/GameAssetLoader.ts +111 -0
  1236. package/src/services/GameAssets.ts +149 -0
  1237. package/src/services/GameLoaders.ts +93 -0
  1238. package/src/services/GamesConstants.ts +193 -0
  1239. package/src/services/GamesMetadata.ts +711 -0
  1240. package/src/services/GamesService.ts +116 -0
  1241. package/src/services/HapticsService.ts +48 -0
  1242. package/src/services/ScoringService.ts +19 -0
  1243. package/src/services/SfxSources.ts +81 -0
  1244. package/src/services/SoundsService.ts +582 -0
  1245. package/src/services/ThemeService.ts +281 -0
  1246. package/src/services/UtilsService.ts +134 -0
  1247. package/src/services/index.ts +6 -0
  1248. package/lib/module/games/arrows/ArrowsService.js +0 -1
  1249. package/lib/module/games/arrows/ArrowsStore.js +0 -1
  1250. package/lib/module/games/arrows/components/ArrowsGrid.js +0 -1
  1251. package/lib/module/games/arrows/components/ScoreBoard.js +0 -1
  1252. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +0 -1
  1253. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +0 -1
  1254. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +0 -1
  1255. package/lib/module/games/balloon-blaster/components/GameArea.js +0 -1
  1256. package/lib/module/games/balloon-blaster/components/GameBackground.js +0 -1
  1257. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +0 -1
  1258. package/lib/module/games/bike-racing/BikeRacingService.js +0 -1
  1259. package/lib/module/games/bike-racing/BikeRacingStore.js +0 -1
  1260. package/lib/module/games/bike-racing/components/BikeComponent.js +0 -1
  1261. package/lib/module/games/bike-racing/components/GameBackground.js +0 -1
  1262. package/lib/module/games/bike-racing/components/ScoreBoard.js +0 -1
  1263. package/lib/module/games/block-blast/BlockBlastService.js +0 -1
  1264. package/lib/module/games/block-blast/BlockBlastStore.js +0 -1
  1265. package/lib/module/games/block-blast/components/BlockPieceComponent.js +0 -1
  1266. package/lib/module/games/block-blast/components/GameArea.js +0 -1
  1267. package/lib/module/games/block-blast/components/GridComponent.js +0 -1
  1268. package/lib/module/games/block-blast/components/ScoreBoard.js +0 -1
  1269. package/lib/module/games/block-breaker/BlockBreakerService.js +0 -1
  1270. package/lib/module/games/block-breaker/BlockBreakerStore.js +0 -1
  1271. package/lib/module/games/block-breaker/components/BlastAnimation.js +0 -1
  1272. package/lib/module/games/block-breaker/components/GameArea.js +0 -1
  1273. package/lib/module/games/block-breaker/components/ScoreBoard.js +0 -1
  1274. package/lib/module/games/bluk/BlukService.js +0 -1
  1275. package/lib/module/games/bluk/BlukStore.js +0 -1
  1276. package/lib/module/games/bluk/components/GameArea.js +0 -1
  1277. package/lib/module/games/bluk/components/GameBackground.js +0 -1
  1278. package/lib/module/games/bluk/components/ScoreBoard.js +0 -1
  1279. package/lib/module/games/bubble-shooter/BubbleShooterService.js +0 -1
  1280. package/lib/module/games/bubble-shooter/BubbleShooterStore.js +0 -1
  1281. package/lib/module/games/bubble-shooter/components/GameArea.js +0 -1
  1282. package/lib/module/games/bubble-shooter/components/ScoreBoard.js +0 -1
  1283. package/lib/module/games/candy-crush/CandyCrushService.js +0 -1
  1284. package/lib/module/games/candy-crush/CandyCrushStore.js +0 -1
  1285. package/lib/module/games/candy-crush/components/CandyItem.js +0 -1
  1286. package/lib/module/games/candy-crush/components/GameGrid.js +0 -1
  1287. package/lib/module/games/candy-crush/components/ScoreBoard.js +0 -1
  1288. package/lib/module/games/car-racing/CarRacingService.js +0 -1
  1289. package/lib/module/games/car-racing/CarRacingStore.js +0 -1
  1290. package/lib/module/games/car-racing/components/CarComponent.js +0 -1
  1291. package/lib/module/games/car-racing/components/GameBackground.js +0 -1
  1292. package/lib/module/games/car-racing/components/ScoreBoard.js +0 -1
  1293. package/lib/module/games/chameleon-run/ChameleonRunService.js +0 -1
  1294. package/lib/module/games/chameleon-run/ChameleonRunStore.js +0 -1
  1295. package/lib/module/games/chameleon-run/components/GameArea.js +0 -1
  1296. package/lib/module/games/chameleon-run/components/GameBackground.js +0 -1
  1297. package/lib/module/games/chameleon-run/components/ScoreBoard.js +0 -1
  1298. package/lib/module/games/checkers/CheckersService.js +0 -1
  1299. package/lib/module/games/checkers/CheckersStore.js +0 -1
  1300. package/lib/module/games/checkers/components/GameBoard.js +0 -1
  1301. package/lib/module/games/checkers/components/ScoreBoard.js +0 -1
  1302. package/lib/module/games/color-switch/ColorSwitchService.js +0 -1
  1303. package/lib/module/games/color-switch/ColorSwitchStore.js +0 -1
  1304. package/lib/module/games/color-switch/components/GameArea.js +0 -1
  1305. package/lib/module/games/color-switch/components/ScoreBoard.js +0 -1
  1306. package/lib/module/games/colors-sort/ColorsSortService.js +0 -1
  1307. package/lib/module/games/colors-sort/ColorsSortStore.js +0 -1
  1308. package/lib/module/games/colors-sort/components/ColorContainer.js +0 -1
  1309. package/lib/module/games/colors-sort/components/ScoreBoard.js +0 -1
  1310. package/lib/module/games/connect-em-all/ConnectEmAllService.js +0 -1
  1311. package/lib/module/games/connect-em-all/ConnectEmAllStore.js +0 -1
  1312. package/lib/module/games/connect-em-all/components/GameBoard.js +0 -1
  1313. package/lib/module/games/connect-em-all/components/ScoreBoard.js +0 -1
  1314. package/lib/module/games/crossy-road/CrossyRoadService.js +0 -1
  1315. package/lib/module/games/crossy-road/CrossyRoadStore.js +0 -1
  1316. package/lib/module/games/crossy-road/components/GameArea.js +0 -1
  1317. package/lib/module/games/crossy-road/components/ScoreBoard.js +0 -1
  1318. package/lib/module/games/dino-jump/DinoJumpService.js +0 -1
  1319. package/lib/module/games/dino-jump/DinoJumpStore.js +0 -1
  1320. package/lib/module/games/dino-jump/components/DinoSprite.js +0 -1
  1321. package/lib/module/games/dino-jump/components/GameArea.js +0 -1
  1322. package/lib/module/games/dino-jump/components/GameBackground.js +0 -1
  1323. package/lib/module/games/dino-jump/components/ObstacleSprite.js +0 -1
  1324. package/lib/module/games/dino-jump/components/ScoreBoard.js +0 -1
  1325. package/lib/module/games/dino-jump/components/StarSprite.js +0 -1
  1326. package/lib/module/games/dots-and-boxes/DotsAndBoxesService.js +0 -1
  1327. package/lib/module/games/dots-and-boxes/DotsAndBoxesStore.js +0 -1
  1328. package/lib/module/games/dots-and-boxes/components/GameBoard.js +0 -1
  1329. package/lib/module/games/dots-and-boxes/components/ScoreBoard.js +0 -1
  1330. package/lib/module/games/falling-sticks/FallingSticksService.js +0 -1
  1331. package/lib/module/games/falling-sticks/FallingSticksStore.js +0 -1
  1332. package/lib/module/games/falling-sticks/components/GameArea.js +0 -1
  1333. package/lib/module/games/falling-sticks/components/GameBackground.js +0 -1
  1334. package/lib/module/games/falling-sticks/components/ScoreBoard.js +0 -1
  1335. package/lib/module/games/find-different-number/FindDifferentNumberService.js +0 -1
  1336. package/lib/module/games/find-different-number/FindDifferentNumberStore.js +0 -1
  1337. package/lib/module/games/find-different-number/components/GameGrid.js +0 -1
  1338. package/lib/module/games/find-different-number/components/ScoreBoard.js +0 -1
  1339. package/lib/module/games/flappy-bird/FlappyBirdStore.js +0 -1
  1340. package/lib/module/games/flappy-bird/components/Bird.js +0 -1
  1341. package/lib/module/games/flappy-bird/components/GameArea.js +0 -1
  1342. package/lib/module/games/flappy-bird/components/GameBackground.js +0 -1
  1343. package/lib/module/games/flappy-bird/components/Pipes.js +0 -1
  1344. package/lib/module/games/flappy-bird/components/ScoreBoard.js +0 -1
  1345. package/lib/module/games/fruit-merger/FruitMergerService.js +0 -1
  1346. package/lib/module/games/fruit-merger/FruitMergerStore.js +0 -1
  1347. package/lib/module/games/fruit-merger/components/FruitItem.js +0 -1
  1348. package/lib/module/games/fruit-merger/components/GameArea.js +0 -1
  1349. package/lib/module/games/fruit-merger/components/ScoreBoard.js +0 -1
  1350. package/lib/module/games/fruit-ninja/FruitNinjaService.js +0 -1
  1351. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +0 -1
  1352. package/lib/module/games/fruit-ninja/components/FruitComponent.js +0 -1
  1353. package/lib/module/games/fruit-ninja/components/GameArea.js +0 -1
  1354. package/lib/module/games/fruit-ninja/components/GameBackground.js +0 -1
  1355. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +0 -1
  1356. package/lib/module/games/game-2048/Game2048Service.js +0 -1
  1357. package/lib/module/games/game-2048/Game2048Store.js +0 -1
  1358. package/lib/module/games/game-2048/components/GameGrid.js +0 -1
  1359. package/lib/module/games/game-2048/components/ScoreBoard.js +0 -1
  1360. package/lib/module/games/knife-hit/KnifeHitService.js +0 -1
  1361. package/lib/module/games/knife-hit/KnifeHitStore.js +0 -1
  1362. package/lib/module/games/knife-hit/components/GameArea.js +0 -1
  1363. package/lib/module/games/knife-hit/components/ScoreBoard.js +0 -1
  1364. package/lib/module/games/ludo-king/LudoKingService.js +0 -1
  1365. package/lib/module/games/ludo-king/LudoKingStore.js +0 -1
  1366. package/lib/module/games/ludo-king/components/Dice.js +0 -1
  1367. package/lib/module/games/ludo-king/components/GameBoard.js +0 -1
  1368. package/lib/module/games/ludo-king/components/ScoreBoard.js +0 -1
  1369. package/lib/module/games/maze-runner/MazeRunnerStore.js +0 -1
  1370. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +0 -1
  1371. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +0 -1
  1372. package/lib/module/games/maze-runner/components/ScoreBoard.js +0 -1
  1373. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +0 -1
  1374. package/lib/module/games/maze-runner/components/WallComponent.js +0 -1
  1375. package/lib/module/games/memory-match/MemoryMatchService.js +0 -1
  1376. package/lib/module/games/memory-match/MemoryMatchStore.js +0 -1
  1377. package/lib/module/games/memory-match/components/Card.js +0 -1
  1378. package/lib/module/games/memory-match/components/GameBoard.js +0 -1
  1379. package/lib/module/games/memory-match/components/ScoreBoard.js +0 -1
  1380. package/lib/module/games/mine-sweeper/MineSweeperService.js +0 -1
  1381. package/lib/module/games/mine-sweeper/MineSweeperStore.js +0 -1
  1382. package/lib/module/games/mine-sweeper/components/GameArea.js +0 -1
  1383. package/lib/module/games/mine-sweeper/components/ScoreBoard.js +0 -1
  1384. package/lib/module/games/mob-control/MobControlService.js +0 -1
  1385. package/lib/module/games/mob-control/MobControlStore.js +0 -1
  1386. package/lib/module/games/mob-control/components/GameArea.js +0 -1
  1387. package/lib/module/games/mob-control/components/ScoreBoard.js +0 -1
  1388. package/lib/module/games/number-search/NumberSearchConstants.js +0 -1
  1389. package/lib/module/games/number-search/NumberSearchService.js +0 -1
  1390. package/lib/module/games/number-search/NumberSearchStore.js +0 -1
  1391. package/lib/module/games/number-search/components/GameBoard.js +0 -1
  1392. package/lib/module/games/number-search/components/NumberList.js +0 -1
  1393. package/lib/module/games/number-search/components/ScoreBoard.js +0 -1
  1394. package/lib/module/games/nuts-and-bolts/NutsAndBoltsService.js +0 -1
  1395. package/lib/module/games/nuts-and-bolts/NutsAndBoltsStore.js +0 -1
  1396. package/lib/module/games/nuts-and-bolts/components/GameBoard.js +0 -1
  1397. package/lib/module/games/nuts-and-bolts/components/ScoreBoard.js +0 -1
  1398. package/lib/module/games/pac-man/PacManService.js +0 -1
  1399. package/lib/module/games/pac-man/PacManStore.js +0 -1
  1400. package/lib/module/games/pac-man/components/GameCanvas.js +0 -1
  1401. package/lib/module/games/pac-man/components/ScoreBoard.js +0 -1
  1402. package/lib/module/games/paper-io/PaperIoService.js +0 -1
  1403. package/lib/module/games/paper-io/PaperIoStore.js +0 -1
  1404. package/lib/module/games/paper-io/components/GameArea.js +0 -1
  1405. package/lib/module/games/paper-io/components/ScoreBoard.js +0 -1
  1406. package/lib/module/games/perfect-circle/PerfectCircleService.js +0 -1
  1407. package/lib/module/games/perfect-circle/PerfectCircleStore.js +0 -1
  1408. package/lib/module/games/perfect-circle/components/DrawingCanvas.js +0 -1
  1409. package/lib/module/games/perfect-circle/components/ScoreBoard.js +0 -1
  1410. package/lib/module/games/pipe-connect/PipeConnectService.js +0 -1
  1411. package/lib/module/games/pipe-connect/PipeConnectStore.js +0 -1
  1412. package/lib/module/games/pipe-connect/components/GameArea.js +0 -1
  1413. package/lib/module/games/pipe-connect/components/ScoreBoard.js +0 -1
  1414. package/lib/module/games/popit-fidget/PopitFidgetService.js +0 -1
  1415. package/lib/module/games/popit-fidget/PopitFidgetStore.js +0 -1
  1416. package/lib/module/games/popit-fidget/components/BubbleComponent.js +0 -1
  1417. package/lib/module/games/popit-fidget/components/FidgetGrid.js +0 -1
  1418. package/lib/module/games/popit-fidget/components/ScoreBoard.js +0 -1
  1419. package/lib/module/games/reversi/ReversiStore.js +0 -1
  1420. package/lib/module/games/reversi/components/GameBoard.js +0 -1
  1421. package/lib/module/games/reversi/components/ScoreBoard.js +0 -1
  1422. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +0 -1
  1423. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +0 -1
  1424. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +0 -1
  1425. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +0 -1
  1426. package/lib/module/games/snake-3d/Snake3DService.js +0 -1
  1427. package/lib/module/games/snake-3d/Snake3DStore.js +0 -1
  1428. package/lib/module/games/snake-3d/components/GameGrid.js +0 -1
  1429. package/lib/module/games/snake-3d/components/ScoreBoard.js +0 -1
  1430. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersService.js +0 -1
  1431. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersStore.js +0 -1
  1432. package/lib/module/games/snakes-and-ladders/components/Dice.js +0 -1
  1433. package/lib/module/games/snakes-and-ladders/components/GameBoard.js +0 -1
  1434. package/lib/module/games/snakes-and-ladders/components/ScoreBoard.js +0 -1
  1435. package/lib/module/games/space-fighter/SpaceFighterService.js +0 -1
  1436. package/lib/module/games/space-fighter/SpaceFighterStore.js +0 -1
  1437. package/lib/module/games/space-fighter/components/AsteroidComponent.js +0 -1
  1438. package/lib/module/games/space-fighter/components/GameArea.js +0 -1
  1439. package/lib/module/games/space-fighter/components/GameBackground.js +0 -1
  1440. package/lib/module/games/space-fighter/components/ScoreBoard.js +0 -1
  1441. package/lib/module/games/space-fighter/components/Spacecraft3D.js +0 -1
  1442. package/lib/module/games/space-fighter/components/SpacecraftPath.js +0 -1
  1443. package/lib/module/games/spider-solitaire/SpiderSolitaireService.js +0 -1
  1444. package/lib/module/games/spider-solitaire/SpiderSolitaireStore.js +0 -1
  1445. package/lib/module/games/spider-solitaire/components/Card.js +0 -1
  1446. package/lib/module/games/spider-solitaire/components/CardPile.js +0 -1
  1447. package/lib/module/games/spider-solitaire/components/ScoreBoard.js +0 -1
  1448. package/lib/module/games/stack-tower/StackTowerService.js +0 -1
  1449. package/lib/module/games/stack-tower/StackTowerStore.js +0 -1
  1450. package/lib/module/games/stack-tower/components/GameArea.js +0 -1
  1451. package/lib/module/games/stack-tower/components/ScoreBoard.js +0 -1
  1452. package/lib/module/games/sudoku/SudokuService.js +0 -1
  1453. package/lib/module/games/sudoku/SudokuStore.js +0 -1
  1454. package/lib/module/games/sudoku/components/GameArea.js +0 -1
  1455. package/lib/module/games/sudoku/components/ScoreBoard.js +0 -1
  1456. package/lib/module/games/tangram/TangramService.js +0 -1
  1457. package/lib/module/games/tangram/TangramStore.js +0 -1
  1458. package/lib/module/games/tangram/components/GameBoard.js +0 -1
  1459. package/lib/module/games/tangram/components/ScoreBoard.js +0 -1
  1460. package/lib/module/games/tank-1990/Tank1990Service.js +0 -1
  1461. package/lib/module/games/tank-1990/Tank1990Store.js +0 -1
  1462. package/lib/module/games/tank-1990/components/Controls.js +0 -1
  1463. package/lib/module/games/tank-1990/components/GameBoard.js +0 -1
  1464. package/lib/module/games/tank-1990/components/ScoreBoard.js +0 -1
  1465. package/lib/module/games/tic-tac-toe/TicTacToeService.js +0 -1
  1466. package/lib/module/games/tic-tac-toe/TicTacToeStore.js +0 -1
  1467. package/lib/module/games/tic-tac-toe/components/GameBoard.js +0 -1
  1468. package/lib/module/games/tic-tac-toe/components/ScoreBoard.js +0 -1
  1469. package/lib/module/games/tile-home/TileHomeService.js +0 -1
  1470. package/lib/module/games/tile-home/TileHomeStore.js +0 -1
  1471. package/lib/module/games/tile-home/components/AnimatingTile.js +0 -1
  1472. package/lib/module/games/tile-home/components/FlyingTile.js +0 -1
  1473. package/lib/module/games/tile-home/components/GameBoard.js +0 -1
  1474. package/lib/module/games/tile-home/components/ScoreBoard.js +0 -1
  1475. package/lib/module/games/tile-home/components/TileItem.js +0 -1
  1476. package/lib/module/games/tile-home/components/TileSlot.js +0 -1
  1477. package/lib/module/games/whack-a-mole/WhackAMoleService.js +0 -1
  1478. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +0 -1
  1479. package/lib/module/games/whack-a-mole/components/GameBackground.js +0 -1
  1480. package/lib/module/games/whack-a-mole/components/GameGrid.js +0 -1
  1481. package/lib/module/games/whack-a-mole/components/GameHole.js +0 -1
  1482. package/lib/module/games/whack-a-mole/components/MoleCharacter.js +0 -1
  1483. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +0 -1
  1484. package/lib/module/games/word-search/WordSearchConstants.js +0 -1
  1485. package/lib/module/games/word-search/WordSearchService.js +0 -1
  1486. package/lib/module/games/word-search/WordSearchStore.js +0 -1
  1487. package/lib/module/games/word-search/components/GameBoard.js +0 -1
  1488. package/lib/module/games/word-search/components/ScoreBoard.js +0 -1
  1489. package/lib/module/games/word-search/components/WordList.js +0 -1
  1490. package/lib/module/helpers/AnimatedScore.js +0 -1
  1491. package/lib/module/helpers/AnimationFrame.js +0 -1
  1492. package/lib/module/helpers/AnimationTracker.js +0 -1
  1493. package/lib/module/helpers/BlastAnimation.js +0 -1
  1494. package/lib/module/helpers/ErrorHandler.js +0 -1
  1495. package/lib/module/helpers/GameBackgroundPattern.js +0 -1
  1496. package/lib/module/helpers/GameControlButton.js +0 -1
  1497. package/lib/module/helpers/GameOverModal.js +0 -1
  1498. package/lib/module/helpers/GameTimer.js +0 -1
  1499. package/lib/module/helpers/Icons.js +0 -1
  1500. package/lib/module/helpers/ParticleBlast.js +0 -1
  1501. package/lib/module/helpers/ScoreBoardContainer.js +0 -1
  1502. package/lib/module/helpers/assets/apple-fruit.js +0 -1
  1503. package/lib/module/helpers/assets/avocado-item.js +0 -1
  1504. package/lib/module/helpers/assets/banana-fruit.js +0 -1
  1505. package/lib/module/helpers/assets/bomb-item.js +0 -1
  1506. package/lib/module/helpers/assets/broccoli-item.js +0 -1
  1507. package/lib/module/helpers/assets/cherries-fruit.js +0 -1
  1508. package/lib/module/helpers/assets/donut-item.js +0 -1
  1509. package/lib/module/helpers/assets/dragonfruit-item.js +0 -1
  1510. package/lib/module/helpers/assets/fries-item.js +0 -1
  1511. package/lib/module/helpers/assets/fruit-helpers.js +0 -1
  1512. package/lib/module/helpers/assets/grapes-fruit.js +0 -1
  1513. package/lib/module/helpers/assets/icecream-item.js +0 -1
  1514. package/lib/module/helpers/assets/index.js +0 -1
  1515. package/lib/module/helpers/assets/kiwi-fruit.js +0 -1
  1516. package/lib/module/helpers/assets/mango-fruit.js +0 -1
  1517. package/lib/module/helpers/assets/orange-fruit.js +0 -1
  1518. package/lib/module/helpers/assets/papaya-fruit.js +0 -1
  1519. package/lib/module/helpers/assets/papaya-full-fruit.js +0 -1
  1520. package/lib/module/helpers/assets/peach-fruit.js +0 -1
  1521. package/lib/module/helpers/assets/pineapple-fruit.js +0 -1
  1522. package/lib/module/helpers/assets/pomegranate-fruit.js +0 -1
  1523. package/lib/module/helpers/assets/pumpkin-fruit.js +0 -1
  1524. package/lib/module/helpers/assets/raspberry-item.js +0 -1
  1525. package/lib/module/helpers/assets/star-item.js +0 -1
  1526. package/lib/module/helpers/assets/strawberry-fruit.js +0 -1
  1527. package/lib/module/helpers/assets/watermelon-fruit.js +0 -1
  1528. package/lib/module/types.d.js +0 -1
  1529. package/lib/typescript/src/games/arrows/ArrowsService.d.ts +0 -6
  1530. package/lib/typescript/src/games/arrows/ArrowsStore.d.ts +0 -51
  1531. package/lib/typescript/src/games/arrows/components/ArrowsGrid.d.ts +0 -13
  1532. package/lib/typescript/src/games/arrows/components/ScoreBoard.d.ts +0 -6
  1533. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +0 -80
  1534. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +0 -30
  1535. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts +0 -9
  1536. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +0 -9
  1537. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +0 -7
  1538. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +0 -6
  1539. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts +0 -44
  1540. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts +0 -68
  1541. package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts +0 -12
  1542. package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts +0 -7
  1543. package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts +0 -6
  1544. package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts +0 -16
  1545. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts +0 -70
  1546. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts +0 -11
  1547. package/lib/typescript/src/games/block-blast/components/GameArea.d.ts +0 -11
  1548. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts +0 -8
  1549. package/lib/typescript/src/games/block-blast/components/ScoreBoard.d.ts +0 -6
  1550. package/lib/typescript/src/games/block-breaker/BlockBreakerService.d.ts +0 -88
  1551. package/lib/typescript/src/games/block-breaker/BlockBreakerStore.d.ts +0 -47
  1552. package/lib/typescript/src/games/block-breaker/components/BlastAnimation.d.ts +0 -15
  1553. package/lib/typescript/src/games/block-breaker/components/GameArea.d.ts +0 -8
  1554. package/lib/typescript/src/games/block-breaker/components/ScoreBoard.d.ts +0 -6
  1555. package/lib/typescript/src/games/bluk/BlukService.d.ts +0 -71
  1556. package/lib/typescript/src/games/bluk/BlukStore.d.ts +0 -52
  1557. package/lib/typescript/src/games/bluk/components/GameArea.d.ts +0 -17
  1558. package/lib/typescript/src/games/bluk/components/GameBackground.d.ts +0 -9
  1559. package/lib/typescript/src/games/bluk/components/ScoreBoard.d.ts +0 -6
  1560. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts +0 -35
  1561. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts +0 -63
  1562. package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts +0 -8
  1563. package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts +0 -6
  1564. package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts +0 -37
  1565. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts +0 -53
  1566. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts +0 -11
  1567. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts +0 -2
  1568. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts +0 -5
  1569. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts +0 -44
  1570. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts +0 -68
  1571. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts +0 -12
  1572. package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts +0 -7
  1573. package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts +0 -6
  1574. package/lib/typescript/src/games/chameleon-run/ChameleonRunService.d.ts +0 -76
  1575. package/lib/typescript/src/games/chameleon-run/ChameleonRunStore.d.ts +0 -48
  1576. package/lib/typescript/src/games/chameleon-run/components/GameArea.d.ts +0 -8
  1577. package/lib/typescript/src/games/chameleon-run/components/GameBackground.d.ts +0 -7
  1578. package/lib/typescript/src/games/chameleon-run/components/ScoreBoard.d.ts +0 -6
  1579. package/lib/typescript/src/games/checkers/CheckersService.d.ts +0 -6
  1580. package/lib/typescript/src/games/checkers/CheckersStore.d.ts +0 -48
  1581. package/lib/typescript/src/games/checkers/components/GameBoard.d.ts +0 -6
  1582. package/lib/typescript/src/games/checkers/components/ScoreBoard.d.ts +0 -6
  1583. package/lib/typescript/src/games/color-switch/ColorSwitchService.d.ts +0 -63
  1584. package/lib/typescript/src/games/color-switch/ColorSwitchStore.d.ts +0 -43
  1585. package/lib/typescript/src/games/color-switch/components/GameArea.d.ts +0 -8
  1586. package/lib/typescript/src/games/color-switch/components/ScoreBoard.d.ts +0 -6
  1587. package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts +0 -61
  1588. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts +0 -56
  1589. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts +0 -7
  1590. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts +0 -6
  1591. package/lib/typescript/src/games/connect-em-all/ConnectEmAllService.d.ts +0 -20
  1592. package/lib/typescript/src/games/connect-em-all/ConnectEmAllStore.d.ts +0 -48
  1593. package/lib/typescript/src/games/connect-em-all/components/GameBoard.d.ts +0 -7
  1594. package/lib/typescript/src/games/connect-em-all/components/ScoreBoard.d.ts +0 -6
  1595. package/lib/typescript/src/games/crossy-road/CrossyRoadService.d.ts +0 -89
  1596. package/lib/typescript/src/games/crossy-road/CrossyRoadStore.d.ts +0 -39
  1597. package/lib/typescript/src/games/crossy-road/components/GameArea.d.ts +0 -8
  1598. package/lib/typescript/src/games/crossy-road/components/ScoreBoard.d.ts +0 -6
  1599. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +0 -39
  1600. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +0 -97
  1601. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts +0 -2
  1602. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts +0 -7
  1603. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts +0 -7
  1604. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts +0 -8
  1605. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts +0 -6
  1606. package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts +0 -2
  1607. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesService.d.ts +0 -45
  1608. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesStore.d.ts +0 -37
  1609. package/lib/typescript/src/games/dots-and-boxes/components/GameBoard.d.ts +0 -7
  1610. package/lib/typescript/src/games/dots-and-boxes/components/ScoreBoard.d.ts +0 -6
  1611. package/lib/typescript/src/games/falling-sticks/FallingSticksService.d.ts +0 -40
  1612. package/lib/typescript/src/games/falling-sticks/FallingSticksStore.d.ts +0 -31
  1613. package/lib/typescript/src/games/falling-sticks/components/GameArea.d.ts +0 -7
  1614. package/lib/typescript/src/games/falling-sticks/components/GameBackground.d.ts +0 -6
  1615. package/lib/typescript/src/games/falling-sticks/components/ScoreBoard.d.ts +0 -6
  1616. package/lib/typescript/src/games/find-different-number/FindDifferentNumberService.d.ts +0 -6
  1617. package/lib/typescript/src/games/find-different-number/FindDifferentNumberStore.d.ts +0 -36
  1618. package/lib/typescript/src/games/find-different-number/components/GameGrid.d.ts +0 -7
  1619. package/lib/typescript/src/games/find-different-number/components/ScoreBoard.d.ts +0 -6
  1620. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +0 -68
  1621. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts +0 -2
  1622. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts +0 -7
  1623. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts +0 -7
  1624. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts +0 -8
  1625. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts +0 -6
  1626. package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts +0 -3
  1627. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts +0 -66
  1628. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts +0 -8
  1629. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts +0 -8
  1630. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts +0 -6
  1631. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts +0 -73
  1632. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts +0 -38
  1633. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts +0 -8
  1634. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +0 -7
  1635. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts +0 -7
  1636. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +0 -6
  1637. package/lib/typescript/src/games/game-2048/Game2048Service.d.ts +0 -102
  1638. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +0 -44
  1639. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts +0 -2
  1640. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts +0 -6
  1641. package/lib/typescript/src/games/knife-hit/KnifeHitService.d.ts +0 -48
  1642. package/lib/typescript/src/games/knife-hit/KnifeHitStore.d.ts +0 -41
  1643. package/lib/typescript/src/games/knife-hit/components/GameArea.d.ts +0 -8
  1644. package/lib/typescript/src/games/knife-hit/components/ScoreBoard.d.ts +0 -6
  1645. package/lib/typescript/src/games/ludo-king/LudoKingService.d.ts +0 -33
  1646. package/lib/typescript/src/games/ludo-king/LudoKingStore.d.ts +0 -34
  1647. package/lib/typescript/src/games/ludo-king/components/Dice.d.ts +0 -7
  1648. package/lib/typescript/src/games/ludo-king/components/GameBoard.d.ts +0 -7
  1649. package/lib/typescript/src/games/ludo-king/components/ScoreBoard.d.ts +0 -6
  1650. package/lib/typescript/src/games/maze-runner/MazeRunnerStore.d.ts +0 -62
  1651. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts +0 -10
  1652. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts +0 -33
  1653. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +0 -24
  1654. package/lib/typescript/src/games/maze-runner/components/SkiaPipeComponent.d.ts +0 -24
  1655. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts +0 -9
  1656. package/lib/typescript/src/games/memory-match/MemoryMatchService.d.ts +0 -6
  1657. package/lib/typescript/src/games/memory-match/MemoryMatchStore.d.ts +0 -42
  1658. package/lib/typescript/src/games/memory-match/components/Card.d.ts +0 -6
  1659. package/lib/typescript/src/games/memory-match/components/GameBoard.d.ts +0 -6
  1660. package/lib/typescript/src/games/memory-match/components/ScoreBoard.d.ts +0 -6
  1661. package/lib/typescript/src/games/mine-sweeper/MineSweeperService.d.ts +0 -22
  1662. package/lib/typescript/src/games/mine-sweeper/MineSweeperStore.d.ts +0 -73
  1663. package/lib/typescript/src/games/mine-sweeper/components/GameArea.d.ts +0 -8
  1664. package/lib/typescript/src/games/mine-sweeper/components/ScoreBoard.d.ts +0 -6
  1665. package/lib/typescript/src/games/mob-control/MobControlService.d.ts +0 -74
  1666. package/lib/typescript/src/games/mob-control/MobControlStore.d.ts +0 -66
  1667. package/lib/typescript/src/games/mob-control/components/GameArea.d.ts +0 -11
  1668. package/lib/typescript/src/games/mob-control/components/ScoreBoard.d.ts +0 -6
  1669. package/lib/typescript/src/games/number-search/NumberSearchConstants.d.ts +0 -63
  1670. package/lib/typescript/src/games/number-search/NumberSearchService.d.ts +0 -34
  1671. package/lib/typescript/src/games/number-search/NumberSearchStore.d.ts +0 -70
  1672. package/lib/typescript/src/games/number-search/components/GameBoard.d.ts +0 -7
  1673. package/lib/typescript/src/games/number-search/components/NumberList.d.ts +0 -2
  1674. package/lib/typescript/src/games/number-search/components/ScoreBoard.d.ts +0 -6
  1675. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsService.d.ts +0 -67
  1676. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsStore.d.ts +0 -45
  1677. package/lib/typescript/src/games/nuts-and-bolts/components/GameBoard.d.ts +0 -7
  1678. package/lib/typescript/src/games/nuts-and-bolts/components/ScoreBoard.d.ts +0 -6
  1679. package/lib/typescript/src/games/pac-man/PacManService.d.ts +0 -73
  1680. package/lib/typescript/src/games/pac-man/PacManStore.d.ts +0 -89
  1681. package/lib/typescript/src/games/pac-man/components/GameCanvas.d.ts +0 -2
  1682. package/lib/typescript/src/games/pac-man/components/ScoreBoard.d.ts +0 -6
  1683. package/lib/typescript/src/games/paper-io/PaperIoService.d.ts +0 -70
  1684. package/lib/typescript/src/games/paper-io/PaperIoStore.d.ts +0 -51
  1685. package/lib/typescript/src/games/paper-io/components/GameArea.d.ts +0 -8
  1686. package/lib/typescript/src/games/paper-io/components/ScoreBoard.d.ts +0 -6
  1687. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts +0 -15
  1688. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts +0 -55
  1689. package/lib/typescript/src/games/perfect-circle/components/DrawingCanvas.d.ts +0 -8
  1690. package/lib/typescript/src/games/perfect-circle/components/ScoreBoard.d.ts +0 -6
  1691. package/lib/typescript/src/games/pipe-connect/PipeConnectService.d.ts +0 -17
  1692. package/lib/typescript/src/games/pipe-connect/PipeConnectStore.d.ts +0 -31
  1693. package/lib/typescript/src/games/pipe-connect/components/GameArea.d.ts +0 -7
  1694. package/lib/typescript/src/games/pipe-connect/components/ScoreBoard.d.ts +0 -6
  1695. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +0 -30
  1696. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +0 -33
  1697. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts +0 -10
  1698. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts +0 -10
  1699. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +0 -6
  1700. package/lib/typescript/src/games/reversi/ReversiStore.d.ts +0 -46
  1701. package/lib/typescript/src/games/reversi/components/GameBoard.d.ts +0 -6
  1702. package/lib/typescript/src/games/reversi/components/ScoreBoard.d.ts +0 -6
  1703. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts +0 -6
  1704. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts +0 -38
  1705. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts +0 -7
  1706. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts +0 -6
  1707. package/lib/typescript/src/games/snake-3d/Snake3DService.d.ts +0 -29
  1708. package/lib/typescript/src/games/snake-3d/Snake3DStore.d.ts +0 -49
  1709. package/lib/typescript/src/games/snake-3d/components/GameGrid.d.ts +0 -2
  1710. package/lib/typescript/src/games/snake-3d/components/ScoreBoard.d.ts +0 -6
  1711. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersService.d.ts +0 -22
  1712. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersStore.d.ts +0 -40
  1713. package/lib/typescript/src/games/snakes-and-ladders/components/Dice.d.ts +0 -7
  1714. package/lib/typescript/src/games/snakes-and-ladders/components/GameBoard.d.ts +0 -2
  1715. package/lib/typescript/src/games/snakes-and-ladders/components/ScoreBoard.d.ts +0 -6
  1716. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts +0 -117
  1717. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts +0 -54
  1718. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +0 -9
  1719. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +0 -9
  1720. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts +0 -6
  1721. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +0 -6
  1722. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts +0 -11
  1723. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts +0 -9
  1724. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireService.d.ts +0 -23
  1725. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireStore.d.ts +0 -71
  1726. package/lib/typescript/src/games/spider-solitaire/components/Card.d.ts +0 -10
  1727. package/lib/typescript/src/games/spider-solitaire/components/CardPile.d.ts +0 -12
  1728. package/lib/typescript/src/games/spider-solitaire/components/ScoreBoard.d.ts +0 -6
  1729. package/lib/typescript/src/games/stack-tower/StackTowerService.d.ts +0 -51
  1730. package/lib/typescript/src/games/stack-tower/StackTowerStore.d.ts +0 -52
  1731. package/lib/typescript/src/games/stack-tower/components/GameArea.d.ts +0 -8
  1732. package/lib/typescript/src/games/stack-tower/components/ScoreBoard.d.ts +0 -6
  1733. package/lib/typescript/src/games/sudoku/SudokuService.d.ts +0 -24
  1734. package/lib/typescript/src/games/sudoku/SudokuStore.d.ts +0 -65
  1735. package/lib/typescript/src/games/sudoku/components/GameArea.d.ts +0 -8
  1736. package/lib/typescript/src/games/sudoku/components/ScoreBoard.d.ts +0 -6
  1737. package/lib/typescript/src/games/tangram/TangramService.d.ts +0 -6
  1738. package/lib/typescript/src/games/tangram/TangramStore.d.ts +0 -34
  1739. package/lib/typescript/src/games/tangram/components/GameBoard.d.ts +0 -7
  1740. package/lib/typescript/src/games/tangram/components/ScoreBoard.d.ts +0 -6
  1741. package/lib/typescript/src/games/tank-1990/Tank1990Service.d.ts +0 -80
  1742. package/lib/typescript/src/games/tank-1990/Tank1990Store.d.ts +0 -48
  1743. package/lib/typescript/src/games/tank-1990/components/Controls.d.ts +0 -2
  1744. package/lib/typescript/src/games/tank-1990/components/GameBoard.d.ts +0 -2
  1745. package/lib/typescript/src/games/tank-1990/components/ScoreBoard.d.ts +0 -6
  1746. package/lib/typescript/src/games/tic-tac-toe/TicTacToeService.d.ts +0 -0
  1747. package/lib/typescript/src/games/tic-tac-toe/TicTacToeStore.d.ts +0 -51
  1748. package/lib/typescript/src/games/tic-tac-toe/components/GameBoard.d.ts +0 -6
  1749. package/lib/typescript/src/games/tic-tac-toe/components/ScoreBoard.d.ts +0 -6
  1750. package/lib/typescript/src/games/tile-home/TileHomeService.d.ts +0 -1
  1751. package/lib/typescript/src/games/tile-home/TileHomeStore.d.ts +0 -57
  1752. package/lib/typescript/src/games/tile-home/components/AnimatingTile.d.ts +0 -9
  1753. package/lib/typescript/src/games/tile-home/components/FlyingTile.d.ts +0 -16
  1754. package/lib/typescript/src/games/tile-home/components/GameBoard.d.ts +0 -7
  1755. package/lib/typescript/src/games/tile-home/components/ScoreBoard.d.ts +0 -6
  1756. package/lib/typescript/src/games/tile-home/components/TileItem.d.ts +0 -11
  1757. package/lib/typescript/src/games/tile-home/components/TileSlot.d.ts +0 -7
  1758. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts +0 -32
  1759. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts +0 -39
  1760. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts +0 -7
  1761. package/lib/typescript/src/games/whack-a-mole/components/GameGrid.d.ts +0 -10
  1762. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts +0 -11
  1763. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts +0 -6
  1764. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts +0 -6
  1765. package/lib/typescript/src/games/word-search/WordSearchConstants.d.ts +0 -63
  1766. package/lib/typescript/src/games/word-search/WordSearchService.d.ts +0 -34
  1767. package/lib/typescript/src/games/word-search/WordSearchStore.d.ts +0 -70
  1768. package/lib/typescript/src/games/word-search/components/GameBoard.d.ts +0 -7
  1769. package/lib/typescript/src/games/word-search/components/ScoreBoard.d.ts +0 -6
  1770. package/lib/typescript/src/games/word-search/components/WordList.d.ts +0 -2
  1771. package/lib/typescript/src/helpers/AnimatedScore.d.ts +0 -36
  1772. package/lib/typescript/src/helpers/AnimationFrame.d.ts +0 -40
  1773. package/lib/typescript/src/helpers/AnimationTracker.d.ts +0 -44
  1774. package/lib/typescript/src/helpers/BlastAnimation.d.ts +0 -16
  1775. package/lib/typescript/src/helpers/ErrorHandler.d.ts +0 -123
  1776. package/lib/typescript/src/helpers/GameBackgroundPattern.d.ts +0 -7
  1777. package/lib/typescript/src/helpers/GameControlButton.d.ts +0 -11
  1778. package/lib/typescript/src/helpers/GameOverModal.d.ts +0 -15
  1779. package/lib/typescript/src/helpers/GameTimer.d.ts +0 -26
  1780. package/lib/typescript/src/helpers/Icons.d.ts +0 -12
  1781. package/lib/typescript/src/helpers/ParticleBlast.d.ts +0 -11
  1782. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts +0 -85
  1783. package/lib/typescript/src/helpers/assets/apple-fruit.d.ts +0 -4
  1784. package/lib/typescript/src/helpers/assets/avocado-item.d.ts +0 -4
  1785. package/lib/typescript/src/helpers/assets/banana-fruit.d.ts +0 -4
  1786. package/lib/typescript/src/helpers/assets/bomb-item.d.ts +0 -4
  1787. package/lib/typescript/src/helpers/assets/broccoli-item.d.ts +0 -4
  1788. package/lib/typescript/src/helpers/assets/cherries-fruit.d.ts +0 -4
  1789. package/lib/typescript/src/helpers/assets/donut-item.d.ts +0 -4
  1790. package/lib/typescript/src/helpers/assets/dragonfruit-item.d.ts +0 -4
  1791. package/lib/typescript/src/helpers/assets/fries-item.d.ts +0 -4
  1792. package/lib/typescript/src/helpers/assets/fruit-helpers.d.ts +0 -154
  1793. package/lib/typescript/src/helpers/assets/grapes-fruit.d.ts +0 -4
  1794. package/lib/typescript/src/helpers/assets/icecream-item.d.ts +0 -4
  1795. package/lib/typescript/src/helpers/assets/index.d.ts +0 -31
  1796. package/lib/typescript/src/helpers/assets/kiwi-fruit.d.ts +0 -4
  1797. package/lib/typescript/src/helpers/assets/mango-fruit.d.ts +0 -4
  1798. package/lib/typescript/src/helpers/assets/orange-fruit.d.ts +0 -4
  1799. package/lib/typescript/src/helpers/assets/papaya-fruit.d.ts +0 -4
  1800. package/lib/typescript/src/helpers/assets/papaya-full-fruit.d.ts +0 -4
  1801. package/lib/typescript/src/helpers/assets/peach-fruit.d.ts +0 -4
  1802. package/lib/typescript/src/helpers/assets/pineapple-fruit.d.ts +0 -4
  1803. package/lib/typescript/src/helpers/assets/pomegranate-fruit.d.ts +0 -4
  1804. package/lib/typescript/src/helpers/assets/pumpkin-fruit.d.ts +0 -4
  1805. package/lib/typescript/src/helpers/assets/raspberry-item.d.ts +0 -4
  1806. package/lib/typescript/src/helpers/assets/star-item.d.ts +0 -4
  1807. package/lib/typescript/src/helpers/assets/strawberry-fruit.d.ts +0 -4
  1808. package/lib/typescript/src/helpers/assets/watermelon-fruit.d.ts +0 -4
@@ -0,0 +1,15 @@
1
+ var Qze=Object.create;var{getPrototypeOf:Jze,defineProperty:m2,getOwnPropertyNames:Rz,getOwnPropertyDescriptor:eqe}=Object,yO=Object.prototype.hasOwnProperty;function Az(rn){return this[rn]}var tqe,oqe,T=(rn,nn,an)=>{var sn=rn!=null&&typeof rn==="object";if(sn){var ln=nn?tqe??=new WeakMap:oqe??=new WeakMap,cn=ln.get(rn);if(cn)return cn}an=rn!=null?Qze(Jze(rn)):{};let un=nn||!rn||!rn.__esModule||!yO.call(rn,"default")?m2(an,"default",{value:rn,enumerable:!0}):an;if(rn&&typeof rn==="object"||typeof rn==="function"){for(let dn of Rz(rn))if(!yO.call(un,dn))m2(un,dn,{get:Az.bind(rn,dn),enumerable:!0})}if(sn)ln.set(rn,un);return un},r=(rn)=>{var nn=(xz??=new WeakMap).get(rn),an;if(nn)return nn;if(nn=m2({},"__esModule",{value:!0}),rn&&typeof rn==="object"||typeof rn==="function"){for(var sn of Rz(rn))if(!yO.call(nn,sn))m2(nn,sn,{get:Az.bind(rn,sn),enumerable:!(an=eqe(rn,sn))||an.enumerable})}return xz.set(rn,nn),nn},xz,In=(rn,nn)=>()=>(nn||rn((nn={exports:{}}).exports,nn),nn.exports);var rqe=(rn)=>rn;function nqe(rn,nn){this[rn]=rqe.bind(null,nn)}var n=(rn,nn)=>{for(var an in nn)m2(rn,an,{get:nn[an],enumerable:!0,configurable:!0,set:nqe.bind(nn,an)})};var e=(rn,nn,an)=>()=>{if(rn)try{nn=rn(rn=0)}catch(sn){an=[sn]}if(an)throw an[0];return nn};var Mz,EO,Zx,Cz=(rn,nn)=>{for(var[an,sn,ln]of Mz||[])for(var cn=[rn],un=globalThis,dn=un.document,pn,mn,fn,hn,bn;mn=cn.pop();)if(!EO[mn]&&(fn=sn[mn])){EO[mn]=1;for(hn=1;hn<fn.length;hn++)cn.push(ln[fn[hn]]);if(!nn&&mn!==rn&&(pn=dn&&dn.head)){if(Zx===void 0)Zx=(hn=dn.querySelector("meta[property=csp-nonce]"))&&(hn.nonce||hn.getAttribute("nonce"))||"";if(bn=dn.createElement("link"),bn.rel="modulepreload",bn.crossOrigin="",Zx)bn.nonce=Zx;bn.href=new un.URL(fn[0],an),pn.appendChild(bn)}}},ot=(rn,nn,an,sn)=>{for(var ln={},cn=0;cn<nn.length;cn++)ln[nn[cn]]=an[cn];(Mz||=[]).push([rn,ln,nn]),EO||={},Cz(nn[sn],1)};import{haptics as tf}from"@nayan-ui/engine";var wz=(rn,nn=!1)=>{if(!nn)return;try{switch(rn){case"light":tf.impact(0.4,0.6);break;case"medium":tf.impact(0.7,0.5);break;case"heavy":tf.impact(1,0.3);break;case"success":tf.notify("success");break;case"warning":tf.notify("warning");break;case"error":tf.notify("error");break;case"selection":tf.selection();break}}catch{}};var Ta=()=>{};var Lz;var Iz=e(()=>{Lz={balloon_pop:new URL("./assets/cea48c3cd9c7-balloon_pop.wav",import.meta.url).href,blocked:new URL("./assets/2574370d6aa0-blocked.wav",import.meta.url).href,boing:new URL("./assets/0b21278bffba-boing.wav",import.meta.url).href,bonus:new URL("./assets/177f00502e08-bonus.wav",import.meta.url).href,boom:new URL("./assets/9d9c02ddc7ed-boom.wav",import.meta.url).href,cannon:new URL("./assets/2432a97b0af1-cannon.wav",import.meta.url).href,capture:new URL("./assets/3a816e20212f-capture.wav",import.meta.url).href,card_flip:new URL("./assets/3084575cecdb-card_flip.wav",import.meta.url).href,card_place:new URL("./assets/793abe620201-card_place.wav",import.meta.url).href,catch:new URL("./assets/7506e3efe264-catch.wav",import.meta.url).href,chime:new URL("./assets/1e4330fddd74-chime.wav",import.meta.url).href,chomp:new URL("./assets/e2f90a23e1bd-chomp.wav",import.meta.url).href,chomp_alt:new URL("./assets/8ec8f469492d-chomp_alt.wav",import.meta.url).href,clack:new URL("./assets/e454e56df89a-clack.wav",import.meta.url).href,clang:new URL("./assets/9ab04403898b-clang.wav",import.meta.url).href,clash:new URL("./assets/3a369e2596e4-clash.wav",import.meta.url).href,click:new URL("./assets/ab37cd128509-click.wav",import.meta.url).href,coin:new URL("./assets/501994226995-coin.wav",import.meta.url).href,combo:new URL("./assets/336d63b739b5-combo.wav",import.meta.url).href,crash:new URL("./assets/c5ab3ff0003f-crash.wav",import.meta.url).href,crunch:new URL("./assets/46edaa54d1ea-crunch.wav",import.meta.url).href,dance:new URL("./assets/1b0d703ddd1a-dance.wav",import.meta.url).href,deselect:new URL("./assets/60e2dec3cf41-deselect.wav",import.meta.url).href,dice_roll:new URL("./assets/5e816e1f0929-dice_roll.wav",import.meta.url).href,draw:new URL("./assets/854b31683cb2-draw.wav",import.meta.url).href,drop:new URL("./assets/9d8b97a10d45-drop.wav",import.meta.url).href,eat:new URL("./assets/1ad2914478b1-eat.wav",import.meta.url).href,error:new URL("./assets/8616150393b7-error.wav",import.meta.url).href,footstep_walk:new URL("./assets/c4aa9d773f2a-footstep_walk.wav",import.meta.url).href,footstep_run:new URL("./assets/aa0960e8bee6-footstep_run.wav",import.meta.url).href,flag:new URL("./assets/9900b8d1b6ad-flag.wav",import.meta.url).href,flap:new URL("./assets/850e26ce3b0a-flap.wav",import.meta.url).href,flip_disc:new URL("./assets/1333c9d1273c-flip_disc.wav",import.meta.url).href,game_over:new URL("./assets/84f1a7dfa368-game_over.wav",import.meta.url).href,gate:new URL("./assets/b60ca65cdfcb-gate.wav",import.meta.url).href,hop:new URL("./assets/88755845922c-hop.wav",import.meta.url).href,hurt:new URL("./assets/01e2f0a0bbf6-hurt.wav",import.meta.url).href,invalid:new URL("./assets/735c4a1cd22e-invalid.wav",import.meta.url).href,jump:new URL("./assets/d8f59ebd3537-jump.wav",import.meta.url).href,ladder:new URL("./assets/28d30f53ad73-ladder.wav",import.meta.url).href,land:new URL("./assets/ed6496b891fc-land.wav",import.meta.url).href,laugh:new URL("./assets/1a677e0f7f6c-laugh.wav",import.meta.url).href,lose:new URL("./assets/baff6feda846-lose.wav",import.meta.url).href,merge:new URL("./assets/6da3b101926d-merge.wav",import.meta.url).href,miss:new URL("./assets/f798c4b5cf4d-miss.wav",import.meta.url).href,pew:new URL("./assets/8f17f89b138c-pew.wav",import.meta.url).href,place:new URL("./assets/9210a24472d1-place.wav",import.meta.url).href,pling:new URL("./assets/19e47dcfda1f-pling.wav",import.meta.url).href,pop:new URL("./assets/c6c58d9ae452-pop.wav",import.meta.url).href,pop_soft:new URL("./assets/9e1b5114d56d-pop_soft.wav",import.meta.url).href,power_up:new URL("./assets/dafea2f28854-power_up.wav",import.meta.url).href,reveal:new URL("./assets/aae0c16c5e89-reveal.wav",import.meta.url).href,robot:new URL("./assets/0376bda32be3-robot.wav",import.meta.url).href,rotate:new URL("./assets/5525d7f6a4b8-rotate.wav",import.meta.url).href,select:new URL("./assets/2699065037ad-select.wav",import.meta.url).href,shuffle:new URL("./assets/c26f4a624e7d-shuffle.wav",import.meta.url).href,six:new URL("./assets/6ab86ea29e5c-six.wav",import.meta.url).href,slice:new URL("./assets/b3894545cf71-slice.wav",import.meta.url).href,slide:new URL("./assets/d1781a52234f-slide.wav",import.meta.url).href,snake:new URL("./assets/73f75c35ff5d-snake.wav",import.meta.url).href,snap:new URL("./assets/d3bf2d9f793b-snap.wav",import.meta.url).href,splash:new URL("./assets/930d833ebf89-splash.wav",import.meta.url).href,star:new URL("./assets/aa570c9d3e15-star.wav",import.meta.url).href,start:new URL("./assets/c5eb07deddd4-start.wav",import.meta.url).href,swoosh:new URL("./assets/970f7c59265d-swoosh.wav",import.meta.url).href,tap:new URL("./assets/d15591767778-tap.wav",import.meta.url).href,thud:new URL("./assets/a01f22d6dbb3-thud.wav",import.meta.url).href,thunk:new URL("./assets/f21920200a81-thunk.wav",import.meta.url).href,tick:new URL("./assets/2e1dd99a0213-tick.wav",import.meta.url).href,time_up:new URL("./assets/15785f62ee5f-time_up.wav",import.meta.url).href,tock:new URL("./assets/aacb999f3c49-tock.wav",import.meta.url).href,warning:new URL("./assets/b0bc66f49005-warning.wav",import.meta.url).href,whack:new URL("./assets/f753b43be89d-whack.wav",import.meta.url).href,whoosh:new URL("./assets/e2e7f5ae2d1b-whoosh.wav",import.meta.url).href,win:new URL("./assets/b8900bb2c5c7-win.wav",import.meta.url).href,zap:new URL("./assets/b1edd756ac43-zap.wav",import.meta.url).href}});var rt={};n(rt,{GAME_SOUNDS:()=>t,playBankSound:()=>p,playSound:()=>I,playSoundVoice:()=>k,preloadGameSounds:()=>Ke,preloadSounds:()=>L,stopAllSounds:()=>h,warmSoundAssets:()=>wo});import*as aqe from"@nayan-ui/engine";function Pz(rn){let nn=rn.replace(/-/g,"_").toUpperCase(),an=t[nn];return[...an&&!("sfx"in an)?Object.values(an):[],t.WELL_DONE,t.TIME_UP,t.STOP,t.RESET,t.DRAW]}function*wo(rn){let nn=new Set;for(let an of rn)for(let sn of Pz(an))if(sn.sfx)nn.add(sn.sfx);yield()=>Promise.all([...nn].map((an)=>_O(an)?.ready))}var Oz,Qx=()=>aqe,_O=(rn)=>{let{audio:nn,isEngineAvailable:an}=Qx();if(!an)return null;let sn=Oz.get(rn);if(!sn)sn=nn.load({[rn]:Lz[rn]}),Oz.set(rn,sn);return sn},sqe=30,SO,iqe=24,x1,L=(rn)=>{if(!rn)return;for(let nn of Object.values(rn))if(nn.sfx)_O(nn.sfx)},Ke=(rn)=>L(Pz(rn)),I=(rn,nn,an)=>{k(rn,nn)},k=(rn,nn)=>{if(!nn||!rn?.sfx)return null;let an=_O(rn.sfx);if(!an)return null;let{audio:sn}=Qx();if(sn.muted)return null;let ln=Date.now();if(ln-(SO.get(rn.sfx)??0)<(rn.cooldown??sqe))return null;return SO.set(rn.sfx,ln),p(an,rn.sfx,{volume:rn.volume??1,pitch:rn.pitch??1,loop:rn.loop})},p=(rn,nn,an)=>{let{audio:sn}=Qx();if(!rn||sn.muted)return null;let ln=rn.play(nn,an);if(ln!=null){if(x1.push(ln),x1.length>iqe)sn.stop(x1.shift())}return ln},h=()=>{if(SO.clear(),!x1.length)return;let{audio:rn}=Qx();for(let nn of x1)rn.stop(nn);x1.length=0},t;var l=e(()=>{Iz();Oz=new Map,SO=new Map,x1=[];t={STOP:{sfx:"deselect",volume:0.5},RESET:{sfx:"click",volume:0.5},DRAW:{sfx:"draw"},PLAY_WITH_TUA:{START:{sfx:"start",volume:0.65},STANDING:{sfx:"deselect",volume:0.4},WALKING:{sfx:"footstep_walk",volume:0.5},RUNNING:{sfx:"footstep_run",volume:0.5},JUMPING:{sfx:"jump",volume:0.6},WAVING:{sfx:"chime",volume:0.55},WINKING:{sfx:"pling",volume:0.45,pitch:1.15},DANCING:{sfx:"dance",volume:0.4,loop:!0,cooldown:0},LAUGHING:{sfx:"laugh",volume:0.55},FIGHTING:{sfx:"swoosh",volume:0.55},FALLING:{sfx:"thud",volume:0.5},LAND:{sfx:"land",volume:0.45},STUMBLE:{sfx:"whoosh",volume:0.3,pitch:0.85}},TREASURE_HUNT:{START:{sfx:"start",volume:0.6},ATTACK:{sfx:"swoosh",volume:0.35,pitch:1.2},IMPACT:{sfx:"clang",volume:0.5},DEFEAT:{sfx:"boom",volume:0.5},COLLECT:{sfx:"coin",volume:0.55},HURT:{sfx:"hurt",volume:0.5},WIN:{sfx:"win"},LOSE:{sfx:"game_over"}},POP:{sfx:"pop"},SWOOSH:{sfx:"swoosh"},BOOM:{sfx:"boom"},WHOOSH:{sfx:"whoosh"},TIME_UP:{sfx:"time_up"},WELL_DONE:{sfx:"win"},WHACK_A_MOLE:{START:{sfx:"start"},HIT:{sfx:"whack"},MISS:{sfx:"swoosh",volume:0.6},SPAWN:{sfx:"pop_soft",volume:0.7,pitch:0.85},EMPTY_TAP:{sfx:"thud",volume:0.6},TIME_WARNING:{sfx:"warning"},GAME_OVER:{sfx:"time_up"}},BALLOON_BLASTER:{START:{sfx:"start"},POP:{sfx:"balloon_pop"},BOMB:{sfx:"boom"},GAME_OVER:{sfx:"game_over"}},FRUIT_NINJA:{START:{sfx:"start"},SLICE:{sfx:"slice"},BOMB:{sfx:"boom"},GAME_OVER:{sfx:"game_over"}},MAZE_RUNNER:{TURN:{sfx:"tick",volume:0.25},BUMP:{sfx:"thud",volume:0.4,cooldown:180},GAME_OVER:{sfx:"time_up"},START:{sfx:"start"},COMPLETE:{sfx:"win"},STOP:{sfx:"deselect",volume:0.5}},SPACE_FIGHTER:{START:{sfx:"start"},DODGE:{sfx:"whoosh",volume:0.7},COLLISION:{sfx:"crash"},GRAB:{sfx:"swoosh",volume:0.45,pitch:1.25},RELEASE:{sfx:"swoosh",volume:0.3,pitch:0.8},GAME_OVER:{sfx:"game_over"},WIN:{sfx:"win"}},DINO_JUMP:{WIN:{sfx:"win"},START:{sfx:"start"},JUMP:{sfx:"jump"},COLLECT:{sfx:"coin"},HIT:{sfx:"hurt"},GAME_OVER:{sfx:"game_over"}},COLORS_SORT:{PICK:{sfx:"select",volume:0.6},DESELECT:{sfx:"deselect",volume:0.5},GAME_OVER:{sfx:"time_up"},START:{sfx:"start"},MATCH:{sfx:"drop",volume:0.8,pitch:1.2},COMPLETE:{sfx:"win"},MISS:{sfx:"invalid"}},FRUIT_MERGER:{START:{sfx:"start"},MERGE:{sfx:"merge"},DROP:{sfx:"drop",volume:0.8},COMPLETE:{sfx:"win"},GAME_OVER:{sfx:"game_over"}},FLAPPY_BIRD:{START:{sfx:"start"},FLAP:{sfx:"flap"},PASS:{sfx:"coin",volume:0.6},GAME_OVER:{sfx:"game_over"},WIN:{sfx:"win"}},CAR_RACING:{START:{sfx:"start"},LANE_SWITCH:{sfx:"swoosh",volume:0.5},PASS:{sfx:"coin",volume:0.6},CRASH:{sfx:"crash"},GAME_OVER:{sfx:"game_over"}},BIKE_RACING:{START:{sfx:"start"},LANE_SWITCH:{sfx:"swoosh",volume:0.5},PASS:{sfx:"coin",volume:0.6},CRASH:{sfx:"crash"},GAME_OVER:{sfx:"game_over"}},BLOCK_BLAST:{PICK:{sfx:"select",volume:0.45},INVALID:{sfx:"invalid",volume:0.6},WIN:{sfx:"win"},START:{sfx:"start"},PLACE:{sfx:"place"},CLEAR:{sfx:"capture"},GAME_OVER:{sfx:"game_over"}},CONNECT_EM_ALL:{WIN:{sfx:"win"},START:{sfx:"start"},CONNECT:{sfx:"tick",volume:0.8},CLEAR:{sfx:"capture"},GAME_OVER:{sfx:"game_over"}},POPIT_FIDGET:{START:{sfx:"start"},POP:{sfx:"pop_soft"},GAME_OVER:{sfx:"game_over"}},PERFECT_CIRCLE:{START:{sfx:"start"},DRAW_END:{sfx:"tock"},SUCCESS:{sfx:"bonus"},FAIL:{sfx:"miss"}},SPIDER_SOLITAIRE:{START:{sfx:"shuffle"},DRAW:{sfx:"card_flip"},SELECT:{sfx:"tap"},DESELECT:{sfx:"deselect",volume:0.7},PLACE:{sfx:"card_place"},INVALID:{sfx:"invalid"},WIN:{sfx:"win"},COMPLETE:{sfx:"bonus"}},TIC_TAC_TOE:{TIME_UP:{sfx:"time_up"},START:{sfx:"start"},PLACE:{sfx:"place"},ROBOT:{sfx:"robot",volume:0.7},WIN:{sfx:"win"},LOSE:{sfx:"lose"},DRAW:{sfx:"draw"}},STACK_TOWER:{START:{sfx:"start"},PLACE:{sfx:"clack"},PERFECT:{sfx:"pling"},MISS:{sfx:"miss"},GAME_OVER:{sfx:"game_over"},WIN:{sfx:"win"}},BLOCK_BREAKER:{START:{sfx:"start"},HIT:{sfx:"click"},DESTROY:{sfx:"pop"},PADDLE:{sfx:"tock",volume:0.8,pitch:0.8},WALL:{sfx:"tick",volume:0.6},LOSE_LIFE:{sfx:"hurt"},GAME_OVER:{sfx:"game_over"},WIN:{sfx:"win"},POWER_UP:{sfx:"power_up"},LAUNCH:{sfx:"jump",volume:0.7},COMBO:{sfx:"combo"}},MINE_SWEEPER:{START:{sfx:"start"},REVEAL:{sfx:"reveal"},FLAG:{sfx:"flag"},MINE_HIT:{sfx:"boom"},GAME_OVER:{sfx:"game_over"},WIN:{sfx:"win"}},SUDOKU:{START:{sfx:"start"},PLACE:{sfx:"tap"},ERROR:{sfx:"error"},NOTE:{sfx:"tick"},GAME_OVER:{sfx:"game_over"},WIN:{sfx:"win"}},COLOR_SWITCH:{START:{sfx:"start"},JUMP:{sfx:"hop"},PASS:{sfx:"coin",volume:0.6},COLOR_CHANGE:{sfx:"pling",volume:0.8,pitch:1.2},GAME_OVER:{sfx:"game_over"}},KNIFE_HIT:{START:{sfx:"start"},THROW:{sfx:"swoosh",volume:0.7},STICK:{sfx:"thunk"},HIT:{sfx:"clang"},APPLE:{sfx:"crunch"},GAME_OVER:{sfx:"game_over"}},PIPE_CONNECT:{START:{sfx:"start"},ROTATE:{sfx:"rotate"},COMPLETE:{sfx:"win"},GAME_OVER:{sfx:"time_up"}},TILE_HOME:{START:{sfx:"start"},PICK:{sfx:"tap"},MATCH:{sfx:"pling"},SHUFFLE:{sfx:"shuffle"},WIN:{sfx:"win"},GAME_OVER:{sfx:"game_over"}},BUBBLE_SHOOTER:{START:{sfx:"start"},SHOOT:{sfx:"swoosh",volume:0.6,pitch:1.3},POP:{sfx:"pop"},WIN:{sfx:"win"},GAME_OVER:{sfx:"game_over"}},DOTS_AND_BOXES:{START:{sfx:"start"},PLAYER_LINE:{sfx:"tick"},OPPONENT_LINE:{sfx:"tock"},BOX_CLAIMED:{sfx:"pling"},OPPONENT_BOX:{sfx:"pling",volume:0.8,pitch:0.75},WIN:{sfx:"win"},LOSE:{sfx:"lose"}},CANDY_CRUSH:{BOMB:{sfx:"boom",volume:0.65},BLAST:{sfx:"zap",volume:0.6},START:{sfx:"start"},SELECT:{sfx:"tap"},SWAP:{sfx:"slide"},INVALID_SWAP:{sfx:"invalid"},MATCH:{sfx:"pop"},COMBO:{sfx:"combo"},WARNING:{sfx:"warning"},TIME_UP:{sfx:"time_up"}},LUDO_KING:{TAP:{sfx:"select",volume:0.5},SIX:{sfx:"six",volume:0.7},PENALTY:{sfx:"error",volume:0.7},CANT_MOVE:{sfx:"invalid",volume:0.6},FINISH:{sfx:"bonus",volume:0.7},START:{sfx:"start"},ROLL:{sfx:"dice_roll"},MOVE:{sfx:"tick"},CAPTURE:{sfx:"whack"},WIN:{sfx:"win"},GAME_OVER:{sfx:"game_over"}},TANK_1990:{DAMAGE:{sfx:"hurt",volume:0.7},START:{sfx:"start"},FIRE:{sfx:"cannon"},DESTROY:{sfx:"boom",volume:0.8},WIN:{sfx:"win"},GAME_OVER:{sfx:"game_over"}},NUTS_AND_BOLTS:{START:{sfx:"start"},SELECT:{sfx:"rotate"},PLACE:{sfx:"snap"},COMPLETE:{sfx:"win"},GAME_OVER:{sfx:"time_up"}},WORD_SEARCH:{START:{sfx:"start"},FOUND:{sfx:"pling"},WIN:{sfx:"win"},GAME_OVER:{sfx:"time_up"}},NUMBER_SEARCH:{START:{sfx:"start"},FOUND:{sfx:"pling"},WIN:{sfx:"win"},GAME_OVER:{sfx:"time_up"}},SLIDING_NUMBERS:{BLOCKED:{sfx:"blocked",volume:0.6},START:{sfx:"start"},MOVE:{sfx:"slide"},WIN:{sfx:"win"},GAME_OVER:{sfx:"time_up"}},SNAKE_3D:{TIME_UP:{sfx:"time_up"},START:{sfx:"start"},EAT:{sfx:"eat"},SPECIAL:{sfx:"bonus"},COLLISION:{sfx:"hurt"},WIN:{sfx:"win"},GAME_OVER:{sfx:"game_over"}},GAME_2048:{TIME_UP:{sfx:"time_up"},START:{sfx:"start"},TILE_MOVE:{sfx:"slide",volume:0.7},TILE_MERGE:{sfx:"merge"},WIN:{sfx:"win"},GAME_OVER:{sfx:"game_over"},NEW_TILE:{sfx:"pop_soft",volume:0.6},INVALID_MOVE:{sfx:"blocked"}},ARROWS:{START:{sfx:"start"},CLEAR:{sfx:"swoosh"},BLOCKED:{sfx:"blocked"},WIN:{sfx:"win"},GAME_OVER:{sfx:"time_up"}},FIND_DIFFERENT_NUMBER:{START:{sfx:"start"},CORRECT:{sfx:"chime"},WRONG:{sfx:"error"},WIN:{sfx:"win"},GAME_OVER:{sfx:"time_up"}},TANGRAM:{START:{sfx:"start"},ROTATE:{sfx:"rotate"},PLACE:{sfx:"snap"},WRONG:{sfx:"invalid"},WIN:{sfx:"win"},GAME_OVER:{sfx:"time_up"}},CHECKERS:{TIME_UP:{sfx:"time_up"},SELECT:{sfx:"select",volume:0.5},START:{sfx:"start"},MOVE:{sfx:"place"},CAPTURE:{sfx:"clack",pitch:0.9},KING:{sfx:"bonus"},WIN:{sfx:"win"},LOSE:{sfx:"lose"}},MEMORY_MATCH:{START:{sfx:"shuffle"},FLIP:{sfx:"card_flip"},MATCH:{sfx:"chime"},WRONG:{sfx:"invalid"},WIN:{sfx:"win"},GAME_OVER:{sfx:"time_up"}},FALLING_STICKS:{START:{sfx:"start"},CATCH:{sfx:"catch"},MISS:{sfx:"miss"},WIN:{sfx:"win"},GAME_OVER:{sfx:"game_over"}},REVERSI:{TIME_UP:{sfx:"time_up"},INVALID:{sfx:"invalid",volume:0.6},START:{sfx:"start"},PLACE:{sfx:"flip_disc"},PASS:{sfx:"invalid",volume:0.7},WIN:{sfx:"win"},LOSE:{sfx:"lose"}},PAC_MAN:{START:{sfx:"start"},CHOMP:{sfx:"chomp",volume:0.6},CHOMP_ALT:{sfx:"chomp_alt",volume:0.6},POWER_PELLET:{sfx:"power_up"},EAT_GHOST:{sfx:"crunch"},EAT_GHOST_COMBO:{sfx:"combo"},DEATH:{sfx:"game_over"},LIFE_LOST:{sfx:"hurt"},FRUIT:{sfx:"coin"},LEVEL_COMPLETE:{sfx:"win"},DIRECTION_CHANGE:{sfx:"tick",volume:0.3},TUNNEL:{sfx:"whoosh",volume:0.7}},SNAKES_AND_LADDERS:{TAP:{sfx:"select",volume:0.5},START:{sfx:"start"},ROLL:{sfx:"dice_roll"},MOVE:{sfx:"tick",volume:0.7},SNAKE:{sfx:"snake"},LADDER:{sfx:"ladder"},SIX:{sfx:"six"},PENALTY:{sfx:"error"},CANT_MOVE:{sfx:"invalid"},WIN:{sfx:"win"},GAME_OVER:{sfx:"game_over"}},BLUK:{WIN:{sfx:"win"},START:{sfx:"start"},JUMP:{sfx:"jump"},LAND:{sfx:"land"},PERFECT:{sfx:"pling"},FALL:{sfx:"miss"},GAME_OVER:{sfx:"game_over"}},CHAMELEON_RUN:{HURT:{sfx:"hurt"},WIN:{sfx:"win"},START:{sfx:"start"},JUMP:{sfx:"hop"},SWAP:{sfx:"select"},STAR:{sfx:"star"},LAND:{sfx:"land",volume:0.7},GAME_OVER:{sfx:"game_over"}},MOB_CONTROL:{START:{sfx:"start"},SHOOT:{sfx:"pew",volume:0.35},GATE:{sfx:"gate"},HIT:{sfx:"whack",volume:0.6},CLASH:{sfx:"clash",volume:0.35,cooldown:150},LEVEL_UP:{sfx:"boom"},DAMAGE:{sfx:"hurt"},WIN:{sfx:"win"},GAME_OVER:{sfx:"game_over"}},PAPER_IO:{WIN:{sfx:"win"},START:{sfx:"start"},CAPTURE:{sfx:"capture"},TURN:{sfx:"tick",volume:0.5},KILL:{sfx:"zap"},GAME_OVER:{sfx:"game_over"}},CROSSY_ROAD:{TIME_UP:{sfx:"time_up"},WIN:{sfx:"win"},START:{sfx:"start"},HOP:{sfx:"hop"},CROSS:{sfx:"chime"},COIN:{sfx:"coin"},SPLASH:{sfx:"splash"},CRASH:{sfx:"crash"},GAME_OVER:{sfx:"game_over"}},PENGUIN_RUN:{LANE_SWITCH:{sfx:"swoosh",volume:0.25},START:{sfx:"start"},COIN:{sfx:"coin",volume:0.6},GEM:{sfx:"power_up"},JUMP:{sfx:"jump"},SLIDE:{sfx:"slide"},CRASH:{sfx:"crash"},GAME_OVER:{sfx:"game_over"}}}});var Gn=In(function(KGt,f2){function lqe(rn){return rn&&rn.__esModule?rn:{default:rn}}f2.exports=lqe,f2.exports.__esModule=!0,f2.exports.default=f2.exports});var Gz=In(function(gz,Dz){gz.__esModule=!0;gz.default=void 0;var cqe=(rn)=>rn.disabled||Array.isArray(rn.accessibilityStates)&&rn.accessibilityStates.indexOf("disabled")>-1,XGt=gz.default=cqe;Dz.exports=gz.default});var vO=In(function(kz,Bz){kz.__esModule=!0;kz.default=void 0;var dqe={adjustable:"slider",button:"button",header:"heading",image:"img",imagebutton:null,keyboardkey:null,label:null,link:"link",none:"presentation",search:"search",summary:"region",text:null},pqe=(rn)=>{var{accessibilityRole:nn,role:an}=rn,sn=an||nn;if(sn){var ln=dqe[sn];if(ln!==null)return ln||sn}},jGt=kz.default=pqe;Bz.exports=kz.default});var Vz=In(function(Hz,Wz){var fqe=Gn().default;Hz.__esModule=!0;Hz.default=void 0;var hqe=fqe(vO()),bqe={article:"article",banner:"header",blockquote:"blockquote",button:"button",code:"code",complementary:"aside",contentinfo:"footer",deletion:"del",emphasis:"em",figure:"figure",insertion:"ins",form:"form",list:"ul",listitem:"li",main:"main",navigation:"nav",paragraph:"p",region:"section",strong:"strong"},yqe={},Eqe=function(nn){if(nn===void 0)nn=yqe;var an=nn.role||nn.accessibilityRole;if(an==="label")return"label";var sn=(0,hqe.default)(nn);if(sn){if(sn==="heading"){var ln=nn.accessibilityLevel||nn["aria-level"];if(ln!=null)return"h"+ln;return"h1"}return bqe[sn]}},$Gt=Hz.default=Eqe;Wz.exports=Hz.default});var Jx=In(function(zz,qz){var TO=Gn().default;zz.__esModule=!0;zz.default=void 0;var _qe=TO(Gz()),vqe=TO(Vz()),Tqe=TO(vO()),xqe={isDisabled:_qe.default,propsToAccessibilityComponent:vqe.default,propsToAriaRole:Tqe.default},ZGt=zz.default=xqe;qz.exports=zz.default});var RO=In(function(QGt,I0){function xO(rn){return I0.exports=xO=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(nn){return typeof nn}:function(nn){return nn&&typeof Symbol=="function"&&nn.constructor===Symbol&&nn!==Symbol.prototype?"symbol":typeof nn},I0.exports.__esModule=!0,I0.exports.default=I0.exports,xO(rn)}I0.exports=xO,I0.exports.__esModule=!0,I0.exports.default=I0.exports});var Xz=In(function(JGt,h2){var Kz=RO().default;function Aqe(rn,nn){if(Kz(rn)!="object"||!rn)return rn;var an;if(typeof Symbol<"u"&&(an=rn[Symbol.toPrimitive])!==void 0){var sn=an.call(rn,nn||"default");if(Kz(sn)!="object")return sn;throw TypeError("@@toPrimitive must return a primitive value.")}return(nn==="string"?String:Number)(rn)}h2.exports=Aqe,h2.exports.__esModule=!0,h2.exports.default=h2.exports});var jz=In(function(e8t,b2){var Mqe=RO().default,Cqe=Xz();function wqe(rn){var nn=Cqe(rn,"string");return Mqe(nn)=="symbol"?nn:nn+""}b2.exports=wqe,b2.exports.__esModule=!0,b2.exports.default=b2.exports});var $z=In(function(t8t,y2){var Lqe=jz();function Iqe(rn,nn,an){return(nn=Lqe(nn))in rn?Object.defineProperty(rn,nn,{value:an,enumerable:!0,configurable:!0,writable:!0}):rn[nn]=an,rn}y2.exports=Iqe,y2.exports.__esModule=!0,y2.exports.default=y2.exports});var ns=In(function(o8t,E2){var Oqe=$z();function Zz(rn,nn){var an=Object.keys(rn);if(Object.getOwnPropertySymbols){var sn=Object.getOwnPropertySymbols(rn);nn&&(sn=sn.filter(function(ln){return Object.getOwnPropertyDescriptor(rn,ln).enumerable})),an.push.apply(an,sn)}return an}function Pqe(rn){for(var nn=1;nn<arguments.length;nn++){var an=arguments[nn]!=null?arguments[nn]:{};nn%2?Zz(Object(an),!0).forEach(function(sn){Oqe(rn,sn,an[sn])}):Object.getOwnPropertyDescriptors?Object.defineProperties(rn,Object.getOwnPropertyDescriptors(an)):Zz(Object(an)).forEach(function(sn){Object.defineProperty(rn,sn,Object.getOwnPropertyDescriptor(an,sn))})}return rn}E2.exports=Pqe,E2.exports.__esModule=!0,E2.exports.default=E2.exports});var as=In(function(r8t,S2){function gqe(rn,nn){if(rn==null)return{};var an={};for(var sn in rn)if({}.hasOwnProperty.call(rn,sn)){if(nn.indexOf(sn)!==-1)continue;an[sn]=rn[sn]}return an}S2.exports=gqe,S2.exports.__esModule=!0,S2.exports.default=S2.exports});var tq=In(function(Qz,Jz){Qz.__esModule=!0;Qz.default=void 0;var eR={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexOrder:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,gridRow:!0,gridRowEnd:!0,gridRowGap:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnGap:!0,gridColumnStart:!0,lineClamp:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0,scale:!0,scaleX:!0,scaleY:!0,scaleZ:!0,shadowOpacity:!0},Dqe=["ms","Moz","O","Webkit"],Nqe=(rn,nn)=>rn+nn.charAt(0).toUpperCase()+nn.substring(1);Object.keys(eR).forEach((rn)=>{Dqe.forEach((nn)=>{eR[Nqe(nn,rn)]=eR[rn]})});var n8t=Qz.default=eR;Jz.exports=Qz.default});var aq=In(function(oq,rq){oq.__esModule=!0;oq.default=void 0;var kqe=(rn)=>rn==="currentcolor"||rn==="currentColor"||rn==="inherit"||rn.indexOf("var(")===0,a8t=oq.default=kqe;rq.exports=oq.default});var _2=In(function(s8t,lq){function Fqe(rn){if(typeof rn==="number"){if(rn>>>0===rn&&rn>=0&&rn<=4294967295)return rn;return null}if(typeof rn!=="string")return null;let nn=Wqe(),an;if(an=nn.hex6.exec(rn))return parseInt(an[1]+"ff",16)>>>0;let sn=Uqe(rn);if(sn!=null)return sn;if(an=nn.rgb.exec(rn))return(O0(an[1])<<24|O0(an[2])<<16|O0(an[3])<<8|255)>>>0;if(an=nn.rgba.exec(rn)){if(an[6]!==void 0)return(O0(an[6])<<24|O0(an[7])<<16|O0(an[8])<<8|oR(an[9]))>>>0;return(O0(an[2])<<24|O0(an[3])<<16|O0(an[4])<<8|oR(an[5]))>>>0}if(an=nn.hex3.exec(rn))return parseInt(an[1]+an[1]+an[2]+an[2]+an[3]+an[3]+"ff",16)>>>0;if(an=nn.hex8.exec(rn))return parseInt(an[1],16)>>>0;if(an=nn.hex4.exec(rn))return parseInt(an[1]+an[1]+an[2]+an[2]+an[3]+an[3]+an[4]+an[4],16)>>>0;if(an=nn.hsl.exec(rn))return(AO(tR(an[1]),ap(an[2]),ap(an[3]))|255)>>>0;if(an=nn.hsla.exec(rn)){if(an[6]!==void 0)return(AO(tR(an[6]),ap(an[7]),ap(an[8]))|oR(an[9]))>>>0;return(AO(tR(an[2]),ap(an[3]),ap(an[4]))|oR(an[5]))>>>0}if(an=nn.hwb.exec(rn))return(Hqe(tR(an[1]),ap(an[2]),ap(an[3]))|255)>>>0;return null}function R1(rn,nn,an){if(an<0)an+=1;if(an>1)an-=1;if(an<0.16666666666666666)return rn+(nn-rn)*6*an;if(an<0.5)return nn;if(an<0.6666666666666666)return rn+(nn-rn)*(0.6666666666666666-an)*6;return rn}function AO(rn,nn,an){let sn=an<0.5?an*(1+nn):an+nn-an*nn,ln=2*an-sn,cn=R1(ln,sn,rn+0.3333333333333333),un=R1(ln,sn,rn),dn=R1(ln,sn,rn-0.3333333333333333);return Math.round(cn*255)<<24|Math.round(un*255)<<16|Math.round(dn*255)<<8}function Hqe(rn,nn,an){if(nn+an>=1){let un=Math.round(nn*255/(nn+an));return un<<24|un<<16|un<<8}let sn=R1(0,1,rn+0.3333333333333333)*(1-nn-an)+nn,ln=R1(0,1,rn)*(1-nn-an)+nn,cn=R1(0,1,rn-0.3333333333333333)*(1-nn-an)+nn;return Math.round(sn*255)<<24|Math.round(ln*255)<<16|Math.round(cn*255)<<8}var hi="[-+]?\\d*\\.?\\d+",np=hi+"%";function MO(...rn){return"\\(\\s*("+rn.join(")\\s*,?\\s*(")+")\\s*\\)"}function sq(...rn){return"\\(\\s*("+rn.slice(0,rn.length-1).join(")\\s*,?\\s*(")+")\\s*/\\s*("+rn[rn.length-1]+")\\s*\\)"}function iq(...rn){return"\\(\\s*("+rn.join(")\\s*,\\s*(")+")\\s*\\)"}var CO;function Wqe(){if(CO===void 0)CO={rgb:new RegExp("rgb"+MO(hi,hi,hi)),rgba:new RegExp("rgba("+iq(hi,hi,hi,hi)+"|"+sq(hi,hi,hi,hi)+")"),hsl:new RegExp("hsl"+MO(hi,np,np)),hsla:new RegExp("hsla("+iq(hi,np,np,hi)+"|"+sq(hi,np,np,hi)+")"),hwb:new RegExp("hwb"+MO(hi,np,np)),hex3:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex4:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#([0-9a-fA-F]{6})$/,hex8:/^#([0-9a-fA-F]{8})$/};return CO}function O0(rn){let nn=parseInt(rn,10);if(nn<0)return 0;if(nn>255)return 255;return nn}function tR(rn){return(parseFloat(rn)%360+360)%360/360}function oR(rn){let nn=parseFloat(rn);if(nn<0)return 0;if(nn>1)return 255;return Math.round(nn*255)}function ap(rn){let nn=parseFloat(rn);if(nn<0)return 0;if(nn>100)return 1;return nn/100}function Uqe(rn){switch(rn){case"transparent":return 0;case"aliceblue":return 4042850303;case"antiquewhite":return 4209760255;case"aqua":return 16777215;case"aquamarine":return 2147472639;case"azure":return 4043309055;case"beige":return 4126530815;case"bisque":return 4293182719;case"black":return 255;case"blanchedalmond":return 4293643775;case"blue":return 65535;case"blueviolet":return 2318131967;case"brown":return 2771004159;case"burlywood":return 3736635391;case"burntsienna":return 3934150143;case"cadetblue":return 1604231423;case"chartreuse":return 2147418367;case"chocolate":return 3530104575;case"coral":return 4286533887;case"cornflowerblue":return 1687547391;case"cornsilk":return 4294499583;case"crimson":return 3692313855;case"cyan":return 16777215;case"darkblue":return 35839;case"darkcyan":return 9145343;case"darkgoldenrod":return 3095792639;case"darkgray":return 2846468607;case"darkgreen":return 6553855;case"darkgrey":return 2846468607;case"darkkhaki":return 3182914559;case"darkmagenta":return 2332068863;case"darkolivegreen":return 1433087999;case"darkorange":return 4287365375;case"darkorchid":return 2570243327;case"darkred":return 2332033279;case"darksalmon":return 3918953215;case"darkseagreen":return 2411499519;case"darkslateblue":return 1211993087;case"darkslategray":return 793726975;case"darkslategrey":return 793726975;case"darkturquoise":return 13554175;case"darkviolet":return 2483082239;case"deeppink":return 4279538687;case"deepskyblue":return 12582911;case"dimgray":return 1768516095;case"dimgrey":return 1768516095;case"dodgerblue":return 512819199;case"firebrick":return 2988581631;case"floralwhite":return 4294635775;case"forestgreen":return 579543807;case"fuchsia":return 4278255615;case"gainsboro":return 3705462015;case"ghostwhite":return 4177068031;case"gold":return 4292280575;case"goldenrod":return 3668254975;case"gray":return 2155905279;case"green":return 8388863;case"greenyellow":return 2919182335;case"grey":return 2155905279;case"honeydew":return 4043305215;case"hotpink":return 4285117695;case"indianred":return 3445382399;case"indigo":return 1258324735;case"ivory":return 4294963455;case"khaki":return 4041641215;case"lavender":return 3873897215;case"lavenderblush":return 4293981695;case"lawngreen":return 2096890111;case"lemonchiffon":return 4294626815;case"lightblue":return 2916673279;case"lightcoral":return 4034953471;case"lightcyan":return 3774873599;case"lightgoldenrodyellow":return 4210742015;case"lightgray":return 3553874943;case"lightgreen":return 2431553791;case"lightgrey":return 3553874943;case"lightpink":return 4290167295;case"lightsalmon":return 4288707327;case"lightseagreen":return 548580095;case"lightskyblue":return 2278488831;case"lightslategray":return 2005441023;case"lightslategrey":return 2005441023;case"lightsteelblue":return 2965692159;case"lightyellow":return 4294959359;case"lime":return 16711935;case"limegreen":return 852308735;case"linen":return 4210091775;case"magenta":return 4278255615;case"maroon":return 2147483903;case"mediumaquamarine":return 1724754687;case"mediumblue":return 52735;case"mediumorchid":return 3126187007;case"mediumpurple":return 2473647103;case"mediumseagreen":return 1018393087;case"mediumslateblue":return 2070474495;case"mediumspringgreen":return 16423679;case"mediumturquoise":return 1221709055;case"mediumvioletred":return 3340076543;case"midnightblue":return 421097727;case"mintcream":return 4127193855;case"mistyrose":return 4293190143;case"moccasin":return 4293178879;case"navajowhite":return 4292783615;case"navy":return 33023;case"oldlace":return 4260751103;case"olive":return 2155872511;case"olivedrab":return 1804477439;case"orange":return 4289003775;case"orangered":return 4282712319;case"orchid":return 3664828159;case"palegoldenrod":return 4008225535;case"palegreen":return 2566625535;case"paleturquoise":return 2951671551;case"palevioletred":return 3681588223;case"papayawhip":return 4293907967;case"peachpuff":return 4292524543;case"peru":return 3448061951;case"pink":return 4290825215;case"plum":return 3718307327;case"powderblue":return 2967529215;case"purple":return 2147516671;case"rebeccapurple":return 1714657791;case"red":return 4278190335;case"rosybrown":return 3163525119;case"royalblue":return 1097458175;case"saddlebrown":return 2336560127;case"salmon":return 4202722047;case"sandybrown":return 4104413439;case"seagreen":return 780883967;case"seashell":return 4294307583;case"sienna":return 2689740287;case"silver":return 3233857791;case"skyblue":return 2278484991;case"slateblue":return 1784335871;case"slategray":return 1887473919;case"slategrey":return 1887473919;case"snow":return 4294638335;case"springgreen":return 16744447;case"steelblue":return 1182971135;case"tan":return 3535047935;case"teal":return 8421631;case"thistle":return 3636451583;case"tomato":return 4284696575;case"turquoise":return 1088475391;case"violet":return 4001558271;case"wheat":return 4125012991;case"white":return 4294967295;case"whitesmoke":return 4126537215;case"yellow":return 4294902015;case"yellowgreen":return 2597139199}return null}lq.exports=Fqe});var wO=In(function(cq,uq){var Vqe=Gn().default;cq.__esModule=!0;cq.default=void 0;var zqe=Vqe(_2()),qqe=(rn)=>{if(rn===void 0||rn===null)return rn;var nn=(0,zqe.default)(rn);if(nn===void 0||nn===null)return;return nn=(nn<<24|nn>>>8)>>>0,nn},i8t=cq.default=qqe;uq.exports=cq.default});var LO=In(function(mq,fq){var pq=Gn().default;mq.__esModule=!0;mq.default=void 0;var Kqe=pq(aq()),Xqe=pq(wO()),jqe=function(nn,an){if(an===void 0)an=1;if(nn==null)return;if(typeof nn==="string"&&(0,Kqe.default)(nn))return nn;var sn=(0,Xqe.default)(nn);if(sn!=null){var ln=sn>>16&255,cn=sn>>8&255,un=sn&255,dn=(sn>>24&255)/255,pn=(dn*an).toFixed(2);return"rgba("+ln+","+cn+","+un+","+pn+")"}},l8t=mq.default=jqe;fq.exports=mq.default});var rR=In(function(yq,Eq){var bq=Gn().default;yq.__esModule=!0;yq.default=eYe;var Zqe=bq(tq()),Qqe=bq(LO()),Jqe={backgroundColor:!0,borderColor:!0,borderTopColor:!0,borderRightColor:!0,borderBottomColor:!0,borderLeftColor:!0,color:!0,shadowColor:!0,textDecorationColor:!0,textShadowColor:!0};function eYe(rn,nn){var an=rn;if((nn==null||!Zqe.default[nn])&&typeof rn==="number")an=rn+"px";else if(nn!=null&&Jqe[nn])an=(0,Qqe.default)(rn);return an}Eq.exports=yq.default});var ti=In(function(Sq,_q){Sq.__esModule=!0;Sq.default=void 0;var rYe=!!(typeof window<"u"&&window.document&&window.document.createElement),c8t=Sq.default=rYe;_q.exports=Sq.default});var Cq=In(function(Rq,Aq){var xq=Gn().default;Rq.__esModule=!0;Rq.default=void 0;var aYe=xq(rR()),sYe=xq(ti()),iYe={},lYe=!sYe.default||window.CSS!=null&&window.CSS.supports!=null&&(window.CSS.supports("text-decoration-line","none")||window.CSS.supports("-webkit-text-decoration-line","none")),cYe="monospace,monospace",Tq='-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',uYe={borderColor:["borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],borderBlockColor:["borderTopColor","borderBottomColor"],borderInlineColor:["borderRightColor","borderLeftColor"],borderRadius:["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],borderStyle:["borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle"],borderBlockStyle:["borderTopStyle","borderBottomStyle"],borderInlineStyle:["borderRightStyle","borderLeftStyle"],borderWidth:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],borderBlockWidth:["borderTopWidth","borderBottomWidth"],borderInlineWidth:["borderRightWidth","borderLeftWidth"],insetBlock:["top","bottom"],insetInline:["left","right"],marginBlock:["marginTop","marginBottom"],marginInline:["marginRight","marginLeft"],paddingBlock:["paddingTop","paddingBottom"],paddingInline:["paddingRight","paddingLeft"],overflow:["overflowX","overflowY"],overscrollBehavior:["overscrollBehaviorX","overscrollBehaviorY"],borderBlockStartColor:["borderTopColor"],borderBlockStartStyle:["borderTopStyle"],borderBlockStartWidth:["borderTopWidth"],borderBlockEndColor:["borderBottomColor"],borderBlockEndStyle:["borderBottomStyle"],borderBlockEndWidth:["borderBottomWidth"],borderEndStartRadius:["borderBottomLeftRadius"],borderEndEndRadius:["borderBottomRightRadius"],borderStartStartRadius:["borderTopLeftRadius"],borderStartEndRadius:["borderTopRightRadius"],insetBlockEnd:["bottom"],insetBlockStart:["top"],marginBlockStart:["marginTop"],marginBlockEnd:["marginBottom"],paddingBlockStart:["paddingTop"],paddingBlockEnd:["paddingBottom"]},dYe=(rn,nn)=>{if(!rn)return iYe;var an={},sn=function(){var un=rn[ln];if(un==null)return 1;if(ln==="backgroundClip"){if(un==="text")an.backgroundClip=un,an.WebkitBackgroundClip=un}else if(ln==="flex")if(un===-1)an.flexGrow=0,an.flexShrink=1,an.flexBasis="auto";else an.flex=un;else if(ln==="font")an[ln]=un.replace("System",Tq);else if(ln==="fontFamily")if(un.indexOf("System")>-1){var dn=un.split(/,\s*/);dn[dn.indexOf("System")]=Tq,an[ln]=dn.join(",")}else if(un==="monospace")an[ln]=cYe;else an[ln]=un;else if(ln==="textDecorationLine")if(!lYe)an.textDecoration=un;else an.textDecorationLine=un;else if(ln==="writingDirection")an.direction=un;else{var pn=(0,aYe.default)(rn[ln],ln),mn=uYe[ln];if(nn&&ln==="inset"){if(rn.insetInline==null)an.left=pn,an.right=pn;if(rn.insetBlock==null)an.top=pn,an.bottom=pn}else if(nn&&ln==="margin"){if(rn.marginInline==null)an.marginLeft=pn,an.marginRight=pn;if(rn.marginBlock==null)an.marginTop=pn,an.marginBottom=pn}else if(nn&&ln==="padding"){if(rn.paddingInline==null)an.paddingLeft=pn,an.paddingRight=pn;if(rn.paddingBlock==null)an.paddingTop=pn,an.paddingBottom=pn}else if(mn)mn.forEach((fn,hn)=>{if(rn[fn]==null)an[fn]=pn});else an[ln]=pn}};for(var ln in rn)if(sn())continue;return an},u8t=Rq.default=dYe;Aq.exports=Rq.default});var Oq=In(function(wq,Lq){wq.__esModule=!0;wq.default=void 0;function mYe(rn,nn){var an=rn.length,sn=nn^an,ln=0,cn;while(an>=4)cn=rn.charCodeAt(ln)&255|(rn.charCodeAt(++ln)&255)<<8|(rn.charCodeAt(++ln)&255)<<16|(rn.charCodeAt(++ln)&255)<<24,cn=(cn&65535)*1540483477+(((cn>>>16)*1540483477&65535)<<16),cn^=cn>>>24,cn=(cn&65535)*1540483477+(((cn>>>16)*1540483477&65535)<<16),sn=(sn&65535)*1540483477+(((sn>>>16)*1540483477&65535)<<16)^cn,an-=4,++ln;switch(an){case 3:sn^=(rn.charCodeAt(ln+2)&255)<<16;case 2:sn^=(rn.charCodeAt(ln+1)&255)<<8;case 1:sn^=rn.charCodeAt(ln)&255,sn=(sn&65535)*1540483477+(((sn>>>16)*1540483477&65535)<<16)}return sn^=sn>>>13,sn=(sn&65535)*1540483477+(((sn>>>16)*1540483477&65535)<<16),sn^=sn>>>15,sn>>>0}var fYe=(rn)=>mYe(rn,1).toString(36),d8t=wq.default=fYe;Lq.exports=wq.default});var Nq=In(function(Pq,gq){Pq.__esModule=!0;Pq.default=void 0;var bYe=/[A-Z]/g,yYe=/^ms-/,IO={};function EYe(rn){return"-"+rn.toLowerCase()}function SYe(rn){if(rn in IO)return IO[rn];var nn=rn.replace(bYe,EYe);return IO[rn]=yYe.test(nn)?"-"+nn:nn}var p8t=Pq.default=SYe;gq.exports=Pq.default});var OO=In(function(Gq){Object.defineProperty(Gq,"__esModule",{value:!0});Gq.default=vYe;function vYe(rn){return rn.charAt(0).toUpperCase()+rn.slice(1)}});var Bq=In(function(kq){Object.defineProperty(kq,"__esModule",{value:!0});kq.default=MYe;var xYe=OO(),RYe=AYe(xYe);function AYe(rn){return rn&&rn.__esModule?rn:{default:rn}}function MYe(rn,nn,an){var sn=rn[nn];if(sn&&an.hasOwnProperty(nn)){var ln=(0,RYe.default)(nn);for(var cn=0;cn<sn.length;++cn){var un=sn[cn]+ln;if(!an[un])an[un]=an[nn]}}return an}});var Hq=In(function(Fq){Object.defineProperty(Fq,"__esModule",{value:!0});Fq.default=wYe;function wYe(rn,nn,an,sn,ln){for(var cn=0,un=rn.length;cn<un;++cn){var dn=rn[cn](nn,an,sn,ln);if(dn)return dn}}});var Vq=In(function(Uq){Object.defineProperty(Uq,"__esModule",{value:!0});Uq.default=IYe;function Wq(rn,nn){if(rn.indexOf(nn)===-1)rn.push(nn)}function IYe(rn,nn){if(Array.isArray(nn))for(var an=0,sn=nn.length;an<sn;++an)Wq(rn,nn[an]);else Wq(rn,nn)}});var qq=In(function(zq){Object.defineProperty(zq,"__esModule",{value:!0});zq.default=PYe;function PYe(rn){return rn instanceof Object&&!Array.isArray(rn)}});var Xq=In(function(Kq){Object.defineProperty(Kq,"__esModule",{value:!0});Kq.default=WYe;var DYe=Bq(),NYe=nR(DYe),GYe=Hq(),Yq=nR(GYe),kYe=Vq(),BYe=nR(kYe),FYe=qq(),HYe=nR(FYe);function nR(rn){return rn&&rn.__esModule?rn:{default:rn}}function WYe(rn){var{prefixMap:nn,plugins:an}=rn;return function sn(ln){for(var cn in ln){var un=ln[cn];if((0,HYe.default)(un))ln[cn]=sn(un);else if(Array.isArray(un)){var dn=[];for(var pn=0,mn=un.length;pn<mn;++pn){var fn=(0,Yq.default)(an,cn,un[pn],ln,nn);(0,BYe.default)(dn,fn||un[pn])}if(dn.length>0)ln[cn]=dn}else{var hn=(0,Yq.default)(an,cn,un,ln,nn);if(hn)ln[cn]=hn;ln=(0,NYe.default)(nn,cn,ln)}}return ln}}});var Qq=In(function(Zq){Object.defineProperty(Zq,"__esModule",{value:!0});Zq.default=$q;function aR(rn){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")aR=function(an){return typeof an};else aR=function(an){return an&&typeof Symbol==="function"&&an.constructor===Symbol&&an!==Symbol.prototype?"symbol":typeof an};return aR(rn)}function VYe(rn){return KYe(rn)||YYe(rn)||qYe(rn)||zYe()}function zYe(){throw TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qYe(rn,nn){if(!rn)return;if(typeof rn==="string")return PO(rn,nn);var an=Object.prototype.toString.call(rn).slice(8,-1);if(an==="Object"&&rn.constructor)an=rn.constructor.name;if(an==="Map"||an==="Set")return Array.from(an);if(an==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(an))return PO(rn,nn)}function YYe(rn){if(typeof Symbol<"u"&&Symbol.iterator in Object(rn))return Array.from(rn)}function KYe(rn){if(Array.isArray(rn))return PO(rn)}function PO(rn,nn){if(nn==null||nn>rn.length)nn=rn.length;for(var an=0,sn=Array(nn);an<nn;an++)sn[an]=rn[an];return sn}function jq(rn){return rn.filter(function(nn,an){return rn.lastIndexOf(nn)===an})}function $q(rn){for(var nn=0,an=arguments.length<=1?0:arguments.length-1;nn<an;++nn){var sn=nn+1<1||arguments.length<=nn+1?void 0:arguments[nn+1];for(var ln in sn){var cn=sn[ln],un=rn[ln];if(un&&cn){if(Array.isArray(un)){rn[ln]=jq(un.concat(cn));continue}if(Array.isArray(cn)){rn[ln]=jq([un].concat(VYe(cn)));continue}if(aR(cn)==="object"){rn[ln]=$q({},un,cn);continue}}rn[ln]=cn}}return rn}});var DO=In(function(Jq){Object.defineProperty(Jq,"__esModule",{value:!0});Jq.default=QYe;var jYe=/-([a-z])/g,$Ye=/^Ms/g,gO={};function ZYe(rn){return rn[1].toUpperCase()}function QYe(rn){if(gO.hasOwnProperty(rn))return gO[rn];var nn=rn.replace(jYe,ZYe).replace($Ye,"ms");return gO[rn]=nn,nn}});var tY=In(function(v8t,eY){var eKe=/[A-Z]/g,tKe=/^ms-/,NO={};function oKe(rn){return"-"+rn.toLowerCase()}function rKe(rn){if(NO.hasOwnProperty(rn))return NO[rn];var nn=rn.replace(eKe,oKe);return NO[rn]=tKe.test(nn)?"-"+nn:nn}eY.exports=rKe});var A1=In(function(oY){Object.defineProperty(oY,"__esModule",{value:!0});oY.default=iKe;var nKe=tY(),aKe=sKe(nKe);function sKe(rn){return rn&&rn.__esModule?rn:{default:rn}}function iKe(rn){return(0,aKe.default)(rn)}});var GO=In(function(rY){Object.defineProperty(rY,"__esModule",{value:!0});rY.default=pKe;var cKe=A1(),uKe=dKe(cKe);function dKe(rn){return rn&&rn.__esModule?rn:{default:rn}}function pKe(rn,nn){return(0,uKe.default)(rn)+":"+nn}});var aY=In(function(nY){Object.defineProperty(nY,"__esModule",{value:!0});nY.default=yKe;var fKe=GO(),hKe=bKe(fKe);function bKe(rn){return rn&&rn.__esModule?rn:{default:rn}}function yKe(rn){var nn="";for(var an in rn){var sn=rn[an];if(typeof sn!=="string"&&typeof sn!=="number")continue;if(nn)nn+=";";nn+=(0,hKe.default)(an,sn)}return nn}});var iY=In(function(sY){Object.defineProperty(sY,"__esModule",{value:!0});sY.default=_Ke;var SKe=/^(Webkit|Moz|O|ms)/;function _Ke(rn){return SKe.test(rn)}});var sR=In(function(lY){Object.defineProperty(lY,"__esModule",{value:!0});lY.default=xKe;var TKe=/-webkit-|-moz-|-ms-/;function xKe(rn){return typeof rn==="string"&&TKe.test(rn)}});var pY=In(function(dY){Object.defineProperty(dY,"__esModule",{value:!0});dY.default=LKe;var AKe=A1(),MKe=CKe(AKe);function CKe(rn){return rn&&rn.__esModule?rn:{default:rn}}var x2={borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},cY=["animationIterationCount","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineClamp","order"],uY=["Webkit","ms","Moz","O"];function wKe(rn,nn){return rn+nn.charAt(0).toUpperCase()+nn.slice(1)}for(v2=0,kO=cY.length;v2<kO;++v2){iR=cY[v2],x2[iR]=!0;for(T2=0,BO=uY.length;T2<BO;++T2)x2[wKe(uY[T2],iR)]=!0}var iR,T2,BO,v2,kO;for(FO in x2)x2[(0,MKe.default)(FO)]=!0;var FO;function LKe(rn){return x2.hasOwnProperty(rn)}});var HO=In(function(mY){Object.defineProperty(mY,"__esModule",{value:!0});mY.default=PKe;var OKe=/^(ms|Webkit|Moz|O)/;function PKe(rn){var nn=rn.replace(OKe,"");return nn.charAt(0).toLowerCase()+nn.slice(1)}});var bY=In(function(hY){Object.defineProperty(hY,"__esModule",{value:!0});hY.default=BKe;var DKe=DO(),NKe=fY(DKe),GKe=HO(),kKe=fY(GKe);function fY(rn){return rn&&rn.__esModule?rn:{default:rn}}function BKe(rn){return(0,kKe.default)((0,NKe.default)(rn))}});var EY=In(function(yY){Object.defineProperty(yY,"__esModule",{value:!0});yY.default=VKe;var HKe=A1(),WKe=UKe(HKe);function UKe(rn){return rn&&rn.__esModule?rn:{default:rn}}function VKe(rn,nn){return nn.join(";"+(0,WKe.default)(rn)+":")}});var _Y=In(function(SY){Object.defineProperty(SY,"__esModule",{value:!0});SY.default=YKe;var qKe=/(-ms-|-webkit-|-moz-|-o-)/g;function YKe(rn){if(typeof rn==="string")return rn.replace(qKe,"");return rn}});var xY=In(function(vY){Object.defineProperty(vY,"__esModule",{value:!0});vY.unprefixValue=vY.unprefixProperty=vY.resolveArrayValue=vY.normalizeProperty=vY.isUnitlessProperty=vY.isPrefixedValue=vY.isPrefixedProperty=vY.hyphenateProperty=vY.cssifyObject=vY.cssifyDeclaration=vY.camelCaseProperty=vY.assignStyle=void 0;var XKe=Qq(),jKe=ac(XKe),$Ke=DO(),ZKe=ac($Ke),QKe=GO(),JKe=ac(QKe),eXe=aY(),tXe=ac(eXe),oXe=A1(),rXe=ac(oXe),nXe=iY(),aXe=ac(nXe),sXe=sR(),iXe=ac(sXe),lXe=pY(),cXe=ac(lXe),uXe=bY(),dXe=ac(uXe),pXe=EY(),mXe=ac(pXe),fXe=HO(),hXe=ac(fXe),bXe=_Y(),yXe=ac(bXe);function ac(rn){return rn&&rn.__esModule?rn:{default:rn}}vY.assignStyle=jKe.default;vY.camelCaseProperty=ZKe.default;vY.cssifyDeclaration=JKe.default;vY.cssifyObject=tXe.default;vY.hyphenateProperty=rXe.default;vY.isPrefixedProperty=aXe.default;vY.isPrefixedValue=iXe.default;vY.isUnitlessProperty=cXe.default;vY.normalizeProperty=dXe.default;vY.resolveArrayValue=mXe.default;vY.unprefixProperty=hXe.default;vY.unprefixValue=yXe.default});var AY=In(function(RY){Object.defineProperty(RY,"__esModule",{value:!0});RY.default=PXe;var LXe=xY(),IXe=/cross-fade\(/g,OXe=["-webkit-",""];function PXe(rn,nn){if(typeof nn==="string"&&!(0,LXe.isPrefixedValue)(nn)&&nn.indexOf("cross-fade(")!==-1)return OXe.map(function(an){return nn.replace(IXe,an+"cross-fade(")})}});var CY=In(function(MY){Object.defineProperty(MY,"__esModule",{value:!0});MY.default=BXe;var DXe=sR(),NXe=GXe(DXe);function GXe(rn){return rn&&rn.__esModule?rn:{default:rn}}var kXe=["-webkit-",""];function BXe(rn,nn){if(typeof nn==="string"&&!(0,NXe.default)(nn)&&nn.indexOf("image-set(")>-1)return kXe.map(function(an){return nn.replace(/image-set\(/g,an+"image-set(")})}});var IY=In(function(LY){Object.defineProperty(LY,"__esModule",{value:!0});LY.default=HXe;var wY={marginBlockStart:["WebkitMarginBefore"],marginBlockEnd:["WebkitMarginAfter"],marginInlineStart:["WebkitMarginStart","MozMarginStart"],marginInlineEnd:["WebkitMarginEnd","MozMarginEnd"],paddingBlockStart:["WebkitPaddingBefore"],paddingBlockEnd:["WebkitPaddingAfter"],paddingInlineStart:["WebkitPaddingStart","MozPaddingStart"],paddingInlineEnd:["WebkitPaddingEnd","MozPaddingEnd"],borderBlockStart:["WebkitBorderBefore"],borderBlockStartColor:["WebkitBorderBeforeColor"],borderBlockStartStyle:["WebkitBorderBeforeStyle"],borderBlockStartWidth:["WebkitBorderBeforeWidth"],borderBlockEnd:["WebkitBorderAfter"],borderBlockEndColor:["WebkitBorderAfterColor"],borderBlockEndStyle:["WebkitBorderAfterStyle"],borderBlockEndWidth:["WebkitBorderAfterWidth"],borderInlineStart:["WebkitBorderStart","MozBorderStart"],borderInlineStartColor:["WebkitBorderStartColor","MozBorderStartColor"],borderInlineStartStyle:["WebkitBorderStartStyle","MozBorderStartStyle"],borderInlineStartWidth:["WebkitBorderStartWidth","MozBorderStartWidth"],borderInlineEnd:["WebkitBorderEnd","MozBorderEnd"],borderInlineEndColor:["WebkitBorderEndColor","MozBorderEndColor"],borderInlineEndStyle:["WebkitBorderEndStyle","MozBorderEndStyle"],borderInlineEndWidth:["WebkitBorderEndWidth","MozBorderEndWidth"]};function HXe(rn,nn,an){if(Object.prototype.hasOwnProperty.call(wY,rn)){var sn=wY[rn];for(var ln=0,cn=sn.length;ln<cn;++ln)an[sn[ln]]=nn}}});var PY=In(function(OY){Object.defineProperty(OY,"__esModule",{value:!0});OY.default=UXe;function UXe(rn,nn){if(rn==="position"&&nn==="sticky")return["-webkit-sticky","sticky"]}});var DY=In(function(gY){Object.defineProperty(gY,"__esModule",{value:!0});gY.default=KXe;var zXe=["-webkit-","-moz-",""],qXe={maxHeight:!0,maxWidth:!0,width:!0,height:!0,columnWidth:!0,minWidth:!0,minHeight:!0},YXe={"min-content":!0,"max-content":!0,"fill-available":!0,"fit-content":!0,"contain-floats":!0};function KXe(rn,nn){if(qXe.hasOwnProperty(rn)&&YXe.hasOwnProperty(nn))return zXe.map(function(an){return an+nn})}});var kY=In(function(GY){Object.defineProperty(GY,"__esModule",{value:!0});GY.default=rje;var jXe=A1(),$Xe=WO(jXe),ZXe=sR(),QXe=WO(ZXe),JXe=OO(),NY=WO(JXe);function WO(rn){return rn&&rn.__esModule?rn:{default:rn}}var eje={transition:!0,transitionProperty:!0,WebkitTransition:!0,WebkitTransitionProperty:!0,MozTransition:!0,MozTransitionProperty:!0},tje={Webkit:"-webkit-",Moz:"-moz-",ms:"-ms-"};function oje(rn,nn){if((0,QXe.default)(rn))return rn;var an=rn.split(/,(?![^()]*(?:\([^()]*\))?\))/g);for(var sn=0,ln=an.length;sn<ln;++sn){var cn=an[sn],un=[cn];for(var dn in nn){var pn=(0,$Xe.default)(dn);if(cn.indexOf(pn)>-1&&pn!=="order"){var mn=nn[dn];for(var fn=0,hn=mn.length;fn<hn;++fn)un.unshift(cn.replace(pn,tje[mn[fn]]+pn))}}an[sn]=un.join(",")}return an.join(",")}function rje(rn,nn,an,sn){if(typeof nn==="string"&&eje.hasOwnProperty(rn)){var ln=oje(nn,sn),cn=ln.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function(dn){return!/-moz-|-ms-/.test(dn)}).join(",");if(rn.indexOf("Webkit")>-1)return cn;var un=ln.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function(dn){return!/-webkit-|-ms-/.test(dn)}).join(",");if(rn.indexOf("Moz")>-1)return un;return an["Webkit"+(0,NY.default)(rn)]=cn,an["Moz"+(0,NY.default)(rn)]=un,ln}}});var WY=In(function(BY,FY){var M1=Gn().default;BY.__esModule=!0;BY.default=void 0;var aje=M1(AY()),sje=M1(CY()),ije=M1(IY()),lje=M1(PY()),cje=M1(DY()),uje=M1(kY()),fs=["Webkit"],dje=["Moz"],pje=["Webkit","Moz"],Fs=["Webkit","ms"],mje=["Webkit","Moz","ms"],F8t=BY.default={plugins:[aje.default,sje.default,ije.default,lje.default,cje.default,uje.default],prefixMap:{appearance:mje,userSelect:pje,textEmphasisPosition:Fs,textEmphasis:Fs,textEmphasisStyle:Fs,textEmphasisColor:Fs,boxDecorationBreak:Fs,clipPath:fs,maskImage:Fs,maskMode:Fs,maskRepeat:Fs,maskPosition:Fs,maskClip:Fs,maskOrigin:Fs,maskSize:Fs,maskComposite:Fs,mask:Fs,maskBorderSource:Fs,maskBorderMode:Fs,maskBorderSlice:Fs,maskBorderWidth:Fs,maskBorderOutset:Fs,maskBorderRepeat:Fs,maskBorder:Fs,maskType:Fs,textDecorationStyle:fs,textDecorationSkip:fs,textDecorationLine:fs,textDecorationColor:fs,filter:fs,breakAfter:fs,breakBefore:fs,breakInside:fs,columnCount:fs,columnFill:fs,columnGap:fs,columnRule:fs,columnRuleColor:fs,columnRuleStyle:fs,columnRuleWidth:fs,columns:fs,columnSpan:fs,columnWidth:fs,backdropFilter:fs,hyphens:fs,flowInto:fs,flowFrom:fs,regionFragment:fs,textOrientation:fs,tabSize:dje,fontKerning:fs,textSizeAdjust:fs}};FY.exports=BY.default});var YY=In(function(VY,zY){var UY=Gn().default;VY.__esModule=!0;VY.default=void 0;var hje=UY(Xq()),bje=UY(WY()),yje=(0,hje.default)(bje.default),H8t=VY.default=yje;zY.exports=VY.default});var JY=In(function(Dje){var of=Gn().default;Dje.__esModule=!0;Dje.atomic=Lje;Dje.classic=Ije;Dje.inline=Oje;Dje.stringifyValueWithProperty=ZY;var KY=of(ns()),Sje=of(as()),jY=of(Cq()),_je=of(Oq()),vje=of(Nq()),Tje=of(rR()),xje=of(YY()),Rje=["animationKeyframes"],XY=new Map,Aje={},Mje=1,Cje=3,wje={borderColor:2,borderRadius:2,borderStyle:2,borderWidth:2,display:2,flex:2,inset:2,margin:2,overflow:2,overscrollBehavior:2,padding:2,insetBlock:2.1,insetInline:2.1,marginInline:2.1,marginBlock:2.1,paddingInline:2.1,paddingBlock:2.1,borderBlockStartColor:2.2,borderBlockStartStyle:2.2,borderBlockStartWidth:2.2,borderBlockEndColor:2.2,borderBlockEndStyle:2.2,borderBlockEndWidth:2.2,borderInlineStartColor:2.2,borderInlineStartStyle:2.2,borderInlineStartWidth:2.2,borderInlineEndColor:2.2,borderInlineEndStyle:2.2,borderInlineEndWidth:2.2,borderEndStartRadius:2.2,borderEndEndRadius:2.2,borderStartStartRadius:2.2,borderStartEndRadius:2.2,insetBlockEnd:2.2,insetBlockStart:2.2,insetInlineEnd:2.2,insetInlineStart:2.2,marginBlockStart:2.2,marginBlockEnd:2.2,marginInlineStart:2.2,marginInlineEnd:2.2,paddingBlockStart:2.2,paddingBlockEnd:2.2,paddingInlineStart:2.2,paddingInlineEnd:2.2},UO="borderTopLeftRadius",VO="borderTopRightRadius",zO="borderBottomLeftRadius",qO="borderBottomRightRadius",YO="borderLeftColor",KO="borderLeftStyle",XO="borderLeftWidth",jO="borderRightColor",$O="borderRightStyle",ZO="borderRightWidth",QO="right",JO="marginLeft",eP="marginRight",tP="paddingLeft",oP="paddingRight",rP="left",lR={[UO]:VO,[VO]:UO,[zO]:qO,[qO]:zO,[YO]:jO,[KO]:$O,[XO]:ZO,[jO]:YO,[$O]:KO,[ZO]:XO,[rP]:QO,[JO]:eP,[eP]:JO,[tP]:oP,[oP]:tP,[QO]:rP},R2={borderStartStartRadius:UO,borderStartEndRadius:VO,borderEndStartRadius:zO,borderEndEndRadius:qO,borderInlineStartColor:YO,borderInlineStartStyle:KO,borderInlineStartWidth:XO,borderInlineEndColor:jO,borderInlineEndStyle:$O,borderInlineEndWidth:ZO,insetInlineEnd:QO,insetInlineStart:rP,marginInlineStart:JO,marginInlineEnd:eP,paddingInlineStart:tP,paddingInlineEnd:oP},$Y=["clear","float","textAlign"];function Lje(rn){var nn={$$css:!0},an=[];function sn(ln,cn,un){var dn=ZY(un,cn),pn=cn+dn,mn=XY.get(pn),fn;if(mn!=null)fn=mn[0],an.push(mn[1]);else{var hn=ln!==cn?pn:dn;fn=nP("r",ln,hn);var bn=wje[ln]||Cje,yn=Pje(fn,cn,un),En=[yn,bn];an.push(En),XY.set(pn,[fn,En])}return fn}return Object.keys(rn).sort().forEach((ln)=>{var cn=rn[ln];if(cn!=null){var un;if($Y.indexOf(ln)>-1){var dn=sn(ln,ln,"left"),pn=sn(ln,ln,"right");if(cn==="start")un=[dn,pn];else if(cn==="end")un=[pn,dn]}var mn=R2[ln];if(mn!=null){var fn=sn(ln,mn,cn),hn=sn(ln,lR[mn],cn);un=[fn,hn]}if(ln==="transitionProperty"){var bn=Array.isArray(cn)?cn:[cn],yn=[];for(var En=0;En<bn.length;En++){var Sn=bn[En];if(typeof Sn==="string"&&R2[Sn]!=null)yn.push(En)}if(yn.length>0){var _n=[...bn],vn=[...bn];yn.forEach((Tn)=>{var Rn=_n[Tn];if(typeof Rn==="string"){var An=R2[Rn],Mn=lR[An];_n[Tn]=An,vn[Tn]=Mn;var Cn=sn(ln,ln,_n),Ln=sn(ln,ln,vn);un=[Cn,Ln]}})}}if(un==null)un=sn(ln,ln,cn);else nn.$$css$localize=!0;nn[ln]=un}}),[nn,an]}function Ije(rn,nn){var an={$$css:!0},sn=[],ln=rn.animationKeyframes,cn=(0,Sje.default)(rn,Rje),un=nP("css",nn,JSON.stringify(rn)),dn="."+un,pn;if(ln!=null){var mn=QY(ln),fn=mn[0],hn=mn[1];pn=fn.join(","),sn.push(...hn)}var bn=Ou((0,KY.default)((0,KY.default)({},cn),{},{animationName:pn}));return sn.push(""+dn+bn),an[un]=un,[an,[[sn,Mje]]]}function Oje(rn,nn){var an=rn||Aje,sn={},ln={},cn=function(){var pn=an[un],mn=un,fn=pn;if(!Object.prototype.hasOwnProperty.call(an,un)||pn==null)return 1;if($Y.indexOf(un)>-1){if(pn==="start")fn=nn?"right":"left";else if(pn==="end")fn=nn?"left":"right"}var hn=R2[un];if(hn!=null)mn=nn?lR[hn]:hn;if(un==="transitionProperty"){var bn=Array.isArray(pn)?pn:[pn];bn.forEach((yn,En)=>{if(typeof yn==="string"){var Sn=R2[yn];if(Sn!=null)bn[En]=nn?lR[Sn]:Sn,fn=bn.join(" ")}})}if(!sn[mn])ln[mn]=fn;if(mn===un)sn[mn]=!0};for(var un in an)if(cn())continue;return(0,jY.default)(ln,!0)}function ZY(rn,nn){var an=(0,Tje.default)(rn,nn);return typeof an!=="string"?JSON.stringify(an||""):an}function Pje(rn,nn,an){var sn=[],ln="."+rn;switch(nn){case"animationKeyframes":{var cn=QY(an),un=cn[0],dn=cn[1],pn=Ou({animationName:un.join(",")});sn.push(""+ln+pn,...dn);break}case"placeholderTextColor":{var mn=Ou({color:an,opacity:1});sn.push(ln+"::-webkit-input-placeholder"+mn,ln+"::-moz-placeholder"+mn,ln+":-ms-input-placeholder"+mn,ln+"::placeholder"+mn);break}case"pointerEvents":{var fn=an;if(an==="auto")fn="auto!important";else if(an==="none"){fn="none!important";var hn=Ou({pointerEvents:"none"});sn.push(ln+">* "+hn)}else if(an==="box-none"){fn="none!important";var bn=Ou({pointerEvents:"auto"});sn.push(ln+">* "+bn)}else if(an==="box-only"){fn="auto!important";var yn=Ou({pointerEvents:"none"});sn.push(ln+">* "+yn)}var En=Ou({pointerEvents:fn});sn.push(""+ln+En);break}case"scrollbarWidth":{if(an==="none")sn.push(ln+"::-webkit-scrollbar{display:none}");var Sn=Ou({scrollbarWidth:an});sn.push(""+ln+Sn);break}default:{var _n=Ou({[nn]:an});sn.push(""+ln+_n);break}}return sn}function Ou(rn){var nn=(0,xje.default)((0,jY.default)(rn)),an=Object.keys(nn).map((sn)=>{var ln=nn[sn],cn=(0,vje.default)(sn);if(Array.isArray(ln))return ln.map((un)=>cn+":"+un).join(";");else return cn+":"+ln}).sort().join(";");return"{"+an+";}"}function nP(rn,nn,an){var sn=(0,_je.default)(nn+an);return rn+"-"+sn}function gje(rn){var nn=["-webkit-",""],an=nP("r","animation",JSON.stringify(rn)),sn="{"+Object.keys(rn).map((cn)=>{var un=rn[cn],dn=Ou(un);return""+cn+dn}).join("")+"}",ln=nn.map((cn)=>"@"+cn+"keyframes "+an+sn);return[an,ln]}function QY(rn){if(typeof rn==="number")throw Error("Invalid CSS keyframes type: "+typeof rn);var nn=[],an=[],sn=Array.isArray(rn)?rn:[rn];return sn.forEach((ln)=>{if(typeof ln==="string")nn.push(ln);else{var cn=gje(ln),un=cn[0],dn=cn[1];nn.push(un),an.push(...dn)}}),[nn,an]}});var oK=In(function(eK,tK){var Hje=Gn().default;eK.__esModule=!0;eK.default=Uje;var Wje=Hje(ti());function Uje(rn,nn,an){if(Wje.default){var sn=nn!=null?nn:document,ln=sn.getElementById(rn);if(ln==null){if(ln=document.createElement("style"),ln.setAttribute("id",rn),typeof an==="string")ln.appendChild(document.createTextNode(an));if(sn instanceof ShadowRoot)sn.insertBefore(ln,sn.firstChild);else{var cn=sn.head;if(cn)cn.insertBefore(ln,cn.firstChild)}}return ln.sheet}else return null}tK.exports=eK.default});var iK=In(function(aK,sK){aK.__esModule=!0;aK.default=Yje;var qje=Array.prototype.slice;function Yje(rn){var nn={},an={};if(rn!=null){var sn;qje.call(rn.cssRules).forEach((un,dn)=>{var pn=un.cssText;if(pn.indexOf("stylesheet-group")>-1)sn=jje(un),nn[sn]={start:dn,rules:[pn]};else{var mn=nK(pn);if(mn!=null)an[mn]=!0,nn[sn].rules.push(pn)}})}function ln(un,dn,pn){var mn=rK(nn),fn=mn.indexOf(dn),hn=fn+1,bn=mn[hn],yn=bn!=null&&nn[bn].start!=null?nn[bn].start:un.cssRules.length,En=Zje(un,pn,yn);if(En){if(nn[dn].start==null)nn[dn].start=yn;for(var Sn=hn;Sn<mn.length;Sn+=1){var _n=mn[Sn],vn=nn[_n].start||0;nn[_n].start=vn+1}}return En}var cn={getTextContent(){return rK(nn).map((un)=>{var dn=nn[un].rules,pn=dn.shift();return dn.sort(),dn.unshift(pn),dn.join(`
3
+ `)}).join(`
4
+ `)},insert(un,dn){var pn=Number(dn);if(nn[pn]==null){var mn=Kje(pn);if(nn[pn]={start:null,rules:[mn]},rn!=null)ln(rn,pn,mn)}var fn=nK(un);if(fn!=null&&an[fn]==null){if(an[fn]=!0,nn[pn].rules.push(un),rn!=null){var hn=ln(rn,pn,un);if(!hn)nn[pn].rules.pop()}}}};return cn}function Kje(rn){return'[stylesheet-group="'+rn+'"]{}'}var Xje=/["']/g;function jje(rn){return Number(rn.selectorText.split(Xje)[1])}function rK(rn){return Object.keys(rn).map(Number).sort((nn,an)=>nn>an?1:-1)}var $je=/\s*([,])\s*/g;function nK(rn){var nn=rn.split("{")[0].trim();return nn!==""?nn.replace($je,"$1"):null}function Zje(rn,nn,an){try{return rn.insertRule(nn,an),!0}catch(sn){return!1}}sK.exports=aK.default});var cP=In(function(r$e){var lP=Gn().default;r$e.__esModule=!0;r$e.createSheet=o$e;var e$e=lP(ti()),aP=lP(oK()),sP=lP(iK()),t$e="react-native-stylesheet",iP=new WeakMap,Xc=[],lK=["html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}","body{margin:0;}","button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}","input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}"];function o$e(rn,nn){if(nn===void 0)nn=t$e;var an;if(e$e.default){var sn=rn!=null?rn.getRootNode():document;if(Xc.length===0)an=(0,sP.default)((0,aP.default)(nn)),lK.forEach((dn)=>{an.insert(dn,0)}),iP.set(sn,Xc.length),Xc.push(an);else{var ln=iP.get(sn);if(ln==null){var cn=Xc[0],un=cn!=null?cn.getTextContent():"";an=(0,sP.default)((0,aP.default)(nn,sn,un)),iP.set(sn,Xc.length),Xc.push(an)}else an=Xc[ln]}}else if(Xc.length===0)an=(0,sP.default)((0,aP.default)(nn)),lK.forEach((dn)=>{an.insert(dn,0)}),Xc.push(an);else an=Xc[0];return{getTextContent(){return an.getTextContent()},id:nn,insert(dn,pn){Xc.forEach((mn)=>{mn.insert(dn,pn)})}}}});var pK=In(function(dK){Object.defineProperty(dK,"__esModule",{value:!0});dK.localizeStyle=s$e;var cR=new WeakMap,uK="$$css$localize";function cK(rn,nn){var an={};for(var sn in rn)if(sn!==uK){var ln=rn[sn];if(Array.isArray(ln))an[sn]=nn?ln[1]:ln[0];else an[sn]=ln}return an}function s$e(rn,nn){if(rn[uK]!=null){var an=nn?1:0;if(cR.has(rn)){var sn=cR.get(rn),ln=sn[an];if(ln==null)ln=cK(rn,nn),sn[an]=ln,cR.set(rn,sn);return ln}var cn=cK(rn,nn),un=[,,];return un[an]=cn,cR.set(rn,un),cn}return rn}});var uP=In(function(f$e){var mK=Gn().default;f$e.__esModule=!0;f$e.preprocess=f$e.default=f$e.createTransformValue=f$e.createTransformOriginValue=f$e.createTextShadowValue=f$e.createBoxShadowValue=f$e.createBoxShadowArrayValue=void 0;var fK=mK(LO()),Ol=mK(rR()),l$e={},hK={height:0,width:0},bK=(rn)=>{var{shadowColor:nn,shadowOffset:an,shadowOpacity:sn,shadowRadius:ln}=rn,cn=an||hK,{height:un,width:dn}=cn,pn=(0,Ol.default)(dn),mn=(0,Ol.default)(un),fn=(0,Ol.default)(ln||0),hn=(0,fK.default)(nn||"black",sn);if(hn!=null&&pn!=null&&mn!=null&&fn!=null)return pn+" "+mn+" "+fn+" "+hn};f$e.createBoxShadowValue=bK;var yK=(rn)=>{var{textShadowColor:nn,textShadowOffset:an,textShadowRadius:sn}=rn,ln=an||hK,{height:cn,width:un}=ln,dn=sn||0,pn=(0,Ol.default)(un),mn=(0,Ol.default)(cn),fn=(0,Ol.default)(dn),hn=(0,Ol.default)(nn,"textShadowColor");if(hn&&(cn!==0||un!==0||dn!==0)&&pn!=null&&mn!=null&&fn!=null)return pn+" "+mn+" "+fn+" "+hn};f$e.createTextShadowValue=yK;var c$e=(rn)=>{if(typeof rn==="string")return rn;var nn=(0,Ol.default)(rn.offsetX)||0,an=(0,Ol.default)(rn.offsetY)||0,sn=(0,Ol.default)(rn.blurRadius)||0,ln=(0,Ol.default)(rn.spreadDistance)||0,cn=(0,fK.default)(rn.color)||"black",un=rn.inset?"inset ":"";return""+un+nn+" "+an+" "+sn+" "+ln+" "+cn},EK=(rn)=>rn.map(c$e).join(", ");f$e.createBoxShadowArrayValue=EK;var u$e=(rn)=>{var nn=Object.keys(rn)[0],an=rn[nn];if(nn==="matrix"||nn==="matrix3d")return nn+"("+an.join(",")+")";else{var sn=(0,Ol.default)(an,nn);return nn+"("+sn+")"}},SK=(rn)=>rn.map(u$e).join(" ");f$e.createTransformValue=SK;var _K=(rn)=>rn.map((nn)=>(0,Ol.default)(nn)).join(" ");f$e.createTransformOriginValue=_K;var d$e={borderBottomEndRadius:"borderEndEndRadius",borderBottomStartRadius:"borderEndStartRadius",borderTopEndRadius:"borderStartEndRadius",borderTopStartRadius:"borderStartStartRadius",borderEndColor:"borderInlineEndColor",borderEndStyle:"borderInlineEndStyle",borderEndWidth:"borderInlineEndWidth",borderStartColor:"borderInlineStartColor",borderStartStyle:"borderInlineStartStyle",borderStartWidth:"borderInlineStartWidth",end:"insetInlineEnd",marginEnd:"marginInlineEnd",marginHorizontal:"marginInline",marginStart:"marginInlineStart",marginVertical:"marginBlock",paddingEnd:"paddingInlineEnd",paddingHorizontal:"paddingInline",paddingStart:"paddingInlineStart",paddingVertical:"paddingBlock",start:"insetInlineStart"},p$e={elevation:!0,overlayColor:!0,resizeMode:!0,tintColor:!0},m$e=f$e.preprocess=function(nn,an){if(an===void 0)an={};var sn=nn||l$e,ln={};if(an.shadow,sn.shadowColor!=null||sn.shadowOffset!=null||sn.shadowOpacity!=null||sn.shadowRadius!=null){var cn=bK(sn);if(cn!=null)ln.boxShadow=cn}if(an.textShadow,sn.textShadowColor!=null||sn.textShadowOffset!=null||sn.textShadowRadius!=null){var un=yK(sn);if(un!=null&&ln.textShadow==null){var dn=sn.textShadow,pn=dn?dn+", "+un:un;ln.textShadow=pn}}for(var mn in sn){if(p$e[mn]!=null||mn==="shadowColor"||mn==="shadowOffset"||mn==="shadowOpacity"||mn==="shadowRadius"||mn==="textShadowColor"||mn==="textShadowOffset"||mn==="textShadowRadius")continue;var fn=sn[mn],hn=d$e[mn]||mn,bn=fn;if(!Object.prototype.hasOwnProperty.call(sn,mn)||hn!==mn&&sn[hn]!=null)continue;if(hn==="aspectRatio"&&typeof bn==="number")ln[hn]=bn.toString();else if(hn==="boxShadow"){if(Array.isArray(bn))bn=EK(bn);var yn=ln.boxShadow;ln.boxShadow=yn?bn+", "+yn:bn}else if(hn==="fontVariant"){if(Array.isArray(bn)&&bn.length>0)bn=bn.join(" ");ln[hn]=bn}else if(hn==="textAlignVertical"){if(sn.verticalAlign==null)ln.verticalAlign=bn==="center"?"middle":bn}else if(hn==="transform"){if(Array.isArray(bn))bn=SK(bn);ln.transform=bn}else if(hn==="transformOrigin"){if(Array.isArray(bn))bn=_K(bn);ln.transformOrigin=bn}else ln[hn]=bn}return ln},z8t=f$e.default=m$e});var MK=In(function(RK){Object.defineProperty(RK,"__esModule",{value:!0});RK.styleq=void 0;var T$e=new WeakMap,x$e="$$css";function TK(rn){var nn,an,sn;if(rn!=null)nn=rn.disableCache===!0,an=rn.disableMix===!0,sn=rn.transform;return function(){var cn=[],un="",dn=null,pn=nn?null:T$e,mn=Array(arguments.length);for(var fn=0;fn<arguments.length;fn++)mn[fn]=arguments[fn];while(mn.length>0){var hn=mn.pop();if(hn==null||hn===!1)continue;if(Array.isArray(hn)){for(var bn=0;bn<hn.length;bn++)mn.push(hn[bn]);continue}var yn=sn!=null?sn(hn):hn;if(yn.$$css){var En="";if(pn!=null&&pn.has(yn)){var Sn=pn.get(yn);if(Sn!=null)En=Sn[0],cn.push.apply(cn,Sn[1]),pn=Sn[2]}else{var _n=[];for(var vn in yn){var Tn=yn[vn];if(vn===x$e)continue;if(typeof Tn==="string"||Tn===null){if(!cn.includes(vn)){if(cn.push(vn),pn!=null)_n.push(vn);if(typeof Tn==="string")En+=En?" "+Tn:Tn}}else console.error("styleq: ".concat(vn," typeof ").concat(String(Tn),' is not "string" or "null".'))}if(pn!=null){var Rn=new WeakMap;pn.set(yn,[En,_n,Rn]),pn=Rn}}if(En)un=un?En+" "+un:En}else if(an){if(dn==null)dn={};dn=Object.assign({},yn,dn)}else{var An=null;for(var Mn in yn){var Cn=yn[Mn];if(Cn!==void 0){if(!cn.includes(Mn)){if(Cn!=null){if(dn==null)dn={};if(An==null)An={};An[Mn]=Cn}cn.push(Mn),pn=null}}}if(An!=null)dn=Object.assign(An,dn)}}var Ln=[un,dn];return Ln}}var xK=TK();RK.styleq=xK;xK.factory=TK});var wK=In(function(K8t,CK){var dP=40,pP=41,uR=39,mP=34,fP=92,C1=47,hP=44,bP=58,dR=42,R$e=117,A$e=85,M$e=43,C$e=/^[a-f0-9?-]+$/i;CK.exports=function(rn){var nn=[],an=rn,sn,ln,cn,un,dn,pn,mn,fn,hn=0,bn=an.charCodeAt(hn),yn=an.length,En=[{nodes:nn}],Sn=0,_n,vn="",Tn="",Rn="";while(hn<yn)if(bn<=32){sn=hn;do sn+=1,bn=an.charCodeAt(sn);while(bn<=32);if(un=an.slice(hn,sn),cn=nn[nn.length-1],bn===pP&&Sn)Rn=un;else if(cn&&cn.type==="div")cn.after=un,cn.sourceEndIndex+=un.length;else if(bn===hP||bn===bP||bn===C1&&an.charCodeAt(sn+1)!==dR&&(!_n||_n&&_n.type==="function"&&_n.value!=="calc"))Tn=un;else nn.push({type:"space",sourceIndex:hn,sourceEndIndex:sn,value:un});hn=sn}else if(bn===uR||bn===mP){sn=hn,ln=bn===uR?"'":'"',un={type:"string",sourceIndex:hn,quote:ln};do if(dn=!1,sn=an.indexOf(ln,sn+1),~sn){pn=sn;while(an.charCodeAt(pn-1)===fP)pn-=1,dn=!dn}else an+=ln,sn=an.length-1,un.unclosed=!0;while(dn);un.value=an.slice(hn+1,sn),un.sourceEndIndex=un.unclosed?sn:sn+1,nn.push(un),hn=sn+1,bn=an.charCodeAt(hn)}else if(bn===C1&&an.charCodeAt(hn+1)===dR){if(sn=an.indexOf("*/",hn),un={type:"comment",sourceIndex:hn,sourceEndIndex:sn+2},sn===-1)un.unclosed=!0,sn=an.length,un.sourceEndIndex=sn;un.value=an.slice(hn+2,sn),nn.push(un),hn=sn+2,bn=an.charCodeAt(hn)}else if((bn===C1||bn===dR)&&_n&&_n.type==="function"&&_n.value==="calc")un=an[hn],nn.push({type:"word",sourceIndex:hn-Tn.length,sourceEndIndex:hn+un.length,value:un}),hn+=1,bn=an.charCodeAt(hn);else if(bn===C1||bn===hP||bn===bP)un=an[hn],nn.push({type:"div",sourceIndex:hn-Tn.length,sourceEndIndex:hn+un.length,value:un,before:Tn,after:""}),Tn="",hn+=1,bn=an.charCodeAt(hn);else if(dP===bn){sn=hn;do sn+=1,bn=an.charCodeAt(sn);while(bn<=32);if(fn=hn,un={type:"function",sourceIndex:hn-vn.length,value:vn,before:an.slice(fn+1,sn)},hn=sn,vn==="url"&&bn!==uR&&bn!==mP){sn-=1;do if(dn=!1,sn=an.indexOf(")",sn+1),~sn){pn=sn;while(an.charCodeAt(pn-1)===fP)pn-=1,dn=!dn}else an+=")",sn=an.length-1,un.unclosed=!0;while(dn);mn=sn;do mn-=1,bn=an.charCodeAt(mn);while(bn<=32);if(fn<mn){if(hn!==mn+1)un.nodes=[{type:"word",sourceIndex:hn,sourceEndIndex:mn+1,value:an.slice(hn,mn+1)}];else un.nodes=[];if(un.unclosed&&mn+1!==sn)un.after="",un.nodes.push({type:"space",sourceIndex:mn+1,sourceEndIndex:sn,value:an.slice(mn+1,sn)});else un.after=an.slice(mn+1,sn),un.sourceEndIndex=sn}else un.after="",un.nodes=[];hn=sn+1,un.sourceEndIndex=un.unclosed?sn:hn,bn=an.charCodeAt(hn),nn.push(un)}else Sn+=1,un.after="",un.sourceEndIndex=hn+1,nn.push(un),En.push(un),nn=un.nodes=[],_n=un;vn=""}else if(pP===bn&&Sn)hn+=1,bn=an.charCodeAt(hn),_n.after=Rn,_n.sourceEndIndex+=Rn.length,Rn="",Sn-=1,En[En.length-1].sourceEndIndex=hn,En.pop(),_n=En[Sn],nn=_n.nodes;else{sn=hn;do{if(bn===fP)sn+=1;sn+=1,bn=an.charCodeAt(sn)}while(sn<yn&&!(bn<=32||bn===uR||bn===mP||bn===hP||bn===bP||bn===C1||bn===dP||bn===dR&&_n&&_n.type==="function"&&_n.value==="calc"||bn===C1&&_n.type==="function"&&_n.value==="calc"||bn===pP&&Sn));if(un=an.slice(hn,sn),dP===bn)vn=un;else if((R$e===un.charCodeAt(0)||A$e===un.charCodeAt(0))&&M$e===un.charCodeAt(1)&&C$e.test(un.slice(2)))nn.push({type:"unicode-range",sourceIndex:hn,sourceEndIndex:sn,value:un});else nn.push({type:"word",sourceIndex:hn,sourceEndIndex:sn,value:un});hn=sn}for(hn=En.length-1;hn;hn-=1)En[hn].unclosed=!0,En[hn].sourceEndIndex=an.length;return En[0].nodes}});var IK=In(function(X8t,LK){LK.exports=function rn(nn,an,sn){var ln,cn,un,dn;for(ln=0,cn=nn.length;ln<cn;ln+=1){if(un=nn[ln],!sn)dn=an(un,ln,nn);if(dn!==!1&&un.type==="function"&&Array.isArray(un.nodes))rn(un.nodes,an,sn);if(sn)an(un,ln,nn)}}});var DK=In(function(j8t,gK){function OK(rn,nn){var{type:an,value:sn}=rn,ln,cn;if(nn&&(cn=nn(rn))!==void 0)return cn;else if(an==="word"||an==="space")return sn;else if(an==="string")return ln=rn.quote||"",ln+sn+(rn.unclosed?"":ln);else if(an==="comment")return"/*"+sn+(rn.unclosed?"":"*/");else if(an==="div")return(rn.before||"")+sn+(rn.after||"");else if(Array.isArray(rn.nodes)){if(ln=PK(rn.nodes,nn),an!=="function")return ln;return sn+"("+(rn.before||"")+ln+(rn.after||"")+(rn.unclosed?"":")")}return sn}function PK(rn,nn){var an,sn;if(Array.isArray(rn)){an="";for(sn=rn.length-1;~sn;sn-=1)an=OK(rn[sn],nn)+an;return an}return OK(rn,nn)}gK.exports=PK});var GK=In(function($8t,NK){var pR=45,mR=43,yP=46,w$e=101,L$e=69;function I$e(rn){var nn=rn.charCodeAt(0),an;if(nn===mR||nn===pR){if(an=rn.charCodeAt(1),an>=48&&an<=57)return!0;var sn=rn.charCodeAt(2);if(an===yP&&sn>=48&&sn<=57)return!0;return!1}if(nn===yP){if(an=rn.charCodeAt(1),an>=48&&an<=57)return!0;return!1}if(nn>=48&&nn<=57)return!0;return!1}NK.exports=function(rn){var nn=0,an=rn.length,sn,ln,cn;if(an===0||!I$e(rn))return!1;if(sn=rn.charCodeAt(nn),sn===mR||sn===pR)nn++;while(nn<an){if(sn=rn.charCodeAt(nn),sn<48||sn>57)break;nn+=1}if(sn=rn.charCodeAt(nn),ln=rn.charCodeAt(nn+1),sn===yP&&ln>=48&&ln<=57){nn+=2;while(nn<an){if(sn=rn.charCodeAt(nn),sn<48||sn>57)break;nn+=1}}if(sn=rn.charCodeAt(nn),ln=rn.charCodeAt(nn+1),cn=rn.charCodeAt(nn+2),(sn===w$e||sn===L$e)&&(ln>=48&&ln<=57||(ln===mR||ln===pR)&&cn>=48&&cn<=57)){nn+=ln===mR||ln===pR?3:2;while(nn<an){if(sn=rn.charCodeAt(nn),sn<48||sn>57)break;nn+=1}}return{number:rn.slice(0,nn),unit:rn.slice(nn)}}});var HK=In(function(Z8t,FK){var O$e=wK(),kK=IK(),BK=DK();function sp(rn){if(this instanceof sp)return this.nodes=O$e(rn),this;return new sp(rn)}sp.prototype.toString=function(){return Array.isArray(this.nodes)?BK(this.nodes):""};sp.prototype.walk=function(rn,nn){return kK(this.nodes,rn,nn),this};sp.unit=GK();sp.walk=kK;sp.stringify=BK;FK.exports=sp});var UK=In(function(k$e){var P$e=Gn().default;k$e.__esModule=!0;k$e.validate=G$e;var g$e=P$e(HK()),D$e={background:!0,borderBottom:!0,borderLeft:!0,borderRight:!0,borderTop:!0,font:!0,grid:!0,outline:!0,textDecoration:!0},N$e={flex:!0,margin:!0,padding:!0,borderColor:!0,borderRadius:!0,borderStyle:!0,borderWidth:!0,inset:!0,insetBlock:!0,insetInline:!0,marginBlock:!0,marginInline:!0,marginHorizontal:!0,marginVertical:!0,paddingBlock:!0,paddingInline:!0,paddingHorizontal:!0,paddingVertical:!0,overflow:!0,overscrollBehavior:!0,backgroundPosition:!0};function WK(rn){console.error(rn)}function G$e(rn){for(var nn in rn){var an=nn.trim(),sn=rn[an],ln=!1;if(sn===null)continue;if(typeof sn==="string"&&sn.indexOf("!important")>-1)WK('Invalid style declaration "'+an+":"+sn+'". Values cannot include "!important"'),ln=!0;else{var cn="";if(an==="animation"||an==="animationName")cn='Did you mean "animationKeyframes"?',ln=!0;else if(an==="direction")cn='Did you mean "writingDirection"?',ln=!0;else if(D$e[an])cn="Please use long-form properties.",ln=!0;else if(N$e[an]){if(typeof sn==="string"&&(0,g$e.default)(sn).nodes.length>1)cn='Value is "'+sn+'" but only single values are supported.',ln=!0}if(cn!=="")WK('Invalid style property of "'+an+'". '+cn)}if(ln)delete rn[nn]}}});var es=In(function(jK,$K){var SP=Gn().default;jK.__esModule=!0;jK.default=void 0;var EP=SP(ns()),H$e=SP(as()),_P=JY(),W$e=cP(),U$e=pK(),VK=uP(),V$e=MK(),J8t=UK(),z$e=SP(ti()),q$e=["writingDirection"],zK=new WeakMap,fR=(0,W$e.createSheet)(),qK={shadow:!0,textShadow:!0};function Y$e(rn,nn){if(nn===void 0)nn={};var an=nn,sn=an.writingDirection,ln=(0,H$e.default)(an,q$e),cn=sn==="rtl";return V$e.styleq.factory({transform(un){var dn=zK.get(un);if(dn!=null)return(0,U$e.localizeStyle)(dn,cn);return(0,VK.preprocess)(un,(0,EP.default)((0,EP.default)({},qK),ln))}})(rn)}function YK(rn){rn.forEach((nn)=>{var an=nn[0],sn=nn[1];if(fR!=null)an.forEach((ln)=>{fR.insert(ln,sn)})})}function K$e(rn){var nn=(0,_P.atomic)((0,VK.preprocess)(rn,qK)),an=nn[0],sn=nn[1];return YK(sn),an}function X$e(rn,nn){var an=(0,_P.classic)(rn,nn),sn=an[0],ln=an[1];return YK(ln),sn}var KK={position:"absolute",left:0,right:0,top:0,bottom:0},j$e=XK({x:(0,EP.default)({},KK)}).x;function XK(rn){return Object.keys(rn).forEach((nn)=>{var an=rn[nn];if(an!=null&&an.$$css!==!0){var sn;if(nn.indexOf("$raw")>-1)sn=X$e(an,nn.split("$raw")[0]);else sn=K$e(an);zK.set(an,sn)}}),rn}function $$e(rn,nn){if(!1){var an;if(an>2)var sn}return[rn,nn]}function Z$e(){for(var rn=arguments.length,nn=Array(rn),an=0;an<rn;an++)nn[an]=arguments[an];var sn=nn.flat(1/0),ln={};for(var cn=0;cn<sn.length;cn++){var un=sn[cn];if(un!=null&&typeof un==="object")Object.assign(ln,un)}return ln}function Q$e(){return{id:fR.id,textContent:fR.getTextContent()}}function P0(rn,nn){if(nn===void 0)nn={};var an=nn.writingDirection==="rtl",sn=Y$e(rn,nn);if(Array.isArray(sn)&&sn[1]!=null)sn[1]=(0,_P.inline)(sn[1],an);return sn}P0.absoluteFill=j$e;P0.absoluteFillObject=KK;P0.create=XK;P0.compose=$$e;P0.flatten=Z$e;P0.getSheet=Q$e;P0.hairlineWidth=1;if(z$e.default&&window.__REACT_DEVTOOLS_GLOBAL_HOOK__)window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle=P0.flatten;var J$e=P0,ekt=jK.default=J$e;$K.exports=jK.default});var oX=In(function(JK,eX){var hR=Gn().default;JK.__esModule=!0;JK.default=void 0;var tZe=hR(ns()),oZe=hR(as()),rZe=hR(Jx()),QK=hR(es()),nZe=["aria-activedescendant","accessibilityActiveDescendant","aria-atomic","accessibilityAtomic","aria-autocomplete","accessibilityAutoComplete","aria-busy","accessibilityBusy","aria-checked","accessibilityChecked","aria-colcount","accessibilityColumnCount","aria-colindex","accessibilityColumnIndex","aria-colspan","accessibilityColumnSpan","aria-controls","accessibilityControls","aria-current","accessibilityCurrent","aria-describedby","accessibilityDescribedBy","aria-details","accessibilityDetails","aria-disabled","accessibilityDisabled","aria-errormessage","accessibilityErrorMessage","aria-expanded","accessibilityExpanded","aria-flowto","accessibilityFlowTo","aria-haspopup","accessibilityHasPopup","aria-hidden","accessibilityHidden","aria-invalid","accessibilityInvalid","aria-keyshortcuts","accessibilityKeyShortcuts","aria-label","accessibilityLabel","aria-labelledby","accessibilityLabelledBy","aria-level","accessibilityLevel","aria-live","accessibilityLiveRegion","aria-modal","accessibilityModal","aria-multiline","accessibilityMultiline","aria-multiselectable","accessibilityMultiSelectable","aria-orientation","accessibilityOrientation","aria-owns","accessibilityOwns","aria-placeholder","accessibilityPlaceholder","aria-posinset","accessibilityPosInSet","aria-pressed","accessibilityPressed","aria-readonly","accessibilityReadOnly","aria-required","accessibilityRequired","role","accessibilityRole","aria-roledescription","accessibilityRoleDescription","aria-rowcount","accessibilityRowCount","aria-rowindex","accessibilityRowIndex","aria-rowspan","accessibilityRowSpan","aria-selected","accessibilitySelected","aria-setsize","accessibilitySetSize","aria-sort","accessibilitySort","aria-valuemax","accessibilityValueMax","aria-valuemin","accessibilityValueMin","aria-valuenow","accessibilityValueNow","aria-valuetext","accessibilityValueText","dataSet","focusable","id","nativeID","pointerEvents","style","tabIndex","testID"],aZe={},sZe=Object.prototype.hasOwnProperty,iZe=Array.isArray,lZe=/[A-Z]/g;function cZe(rn){return"-"+rn.toLowerCase()}function uZe(rn){return rn.replace(lZe,cZe)}function w1(rn){return iZe(rn)?rn.join(" "):rn}var dZe=QK.default.create({auto:{pointerEvents:"auto"},"box-none":{pointerEvents:"box-none"},"box-only":{pointerEvents:"box-only"},none:{pointerEvents:"none"}}),pZe=(rn,nn,an)=>{if(!nn)nn=aZe;var sn=nn,ln=sn["aria-activedescendant"],cn=sn.accessibilityActiveDescendant,un=sn["aria-atomic"],dn=sn.accessibilityAtomic,pn=sn["aria-autocomplete"],mn=sn.accessibilityAutoComplete,fn=sn["aria-busy"],hn=sn.accessibilityBusy,bn=sn["aria-checked"],yn=sn.accessibilityChecked,En=sn["aria-colcount"],Sn=sn.accessibilityColumnCount,_n=sn["aria-colindex"],vn=sn.accessibilityColumnIndex,Tn=sn["aria-colspan"],Rn=sn.accessibilityColumnSpan,An=sn["aria-controls"],Mn=sn.accessibilityControls,Cn=sn["aria-current"],Ln=sn.accessibilityCurrent,On=sn["aria-describedby"],Dn=sn.accessibilityDescribedBy,Nn=sn["aria-details"],Wn=sn.accessibilityDetails,Fn=sn["aria-disabled"],qn=sn.accessibilityDisabled,Kn=sn["aria-errormessage"],ea=sn.accessibilityErrorMessage,Yn=sn["aria-expanded"],ia=sn.accessibilityExpanded,Xn=sn["aria-flowto"],La=sn.accessibilityFlowTo,Ia=sn["aria-haspopup"],Va=sn.accessibilityHasPopup,ls=sn["aria-hidden"],Bs=sn.accessibilityHidden,ei=sn["aria-invalid"],Ms=sn.accessibilityInvalid,rs=sn["aria-keyshortcuts"],Ps=sn.accessibilityKeyShortcuts,za=sn["aria-label"],li=sn.accessibilityLabel,xi=sn["aria-labelledby"],Ri=sn.accessibilityLabelledBy,Ga=sn["aria-level"],qs=sn.accessibilityLevel,fi=sn["aria-live"],rc=sn.accessibilityLiveRegion,Hx=sn["aria-modal"],fa=sn.accessibilityModal,i2=sn["aria-multiline"],ll=sn.accessibilityMultiline,ef=sn["aria-multiselectable"],op=sn.accessibilityMultiSelectable,Iu=sn["aria-orientation"],l2=sn.accessibilityOrientation,c2=sn["aria-owns"],u2=sn.accessibilityOwns,Wx=sn["aria-placeholder"],cO=sn.accessibilityPlaceholder,Ux=sn["aria-posinset"],uO=sn.accessibilityPosInSet,Vx=sn["aria-pressed"],dO=sn.accessibilityPressed,zx=sn["aria-readonly"],pO=sn.accessibilityReadOnly,qx=sn["aria-required"],{accessibilityRequired:gs,role:EV,accessibilityRole:SV}=sn,Yx=sn["aria-roledescription"],mO=sn.accessibilityRoleDescription,Kx=sn["aria-rowcount"],fO=sn.accessibilityRowCount,Ma=sn["aria-rowindex"],Ys=sn.accessibilityRowIndex,nc=sn["aria-rowspan"],d2=sn.accessibilityRowSpan,rp=sn["aria-selected"],Xx=sn.accessibilitySelected,_V=sn["aria-setsize"],Uze=sn.accessibilitySetSize,vV=sn["aria-sort"],Vze=sn.accessibilitySort,TV=sn["aria-valuemax"],zze=sn.accessibilityValueMax,xV=sn["aria-valuemin"],qze=sn.accessibilityValueMin,RV=sn["aria-valuenow"],Yze=sn.accessibilityValueNow,AV=sn["aria-valuetext"],{accessibilityValueText:Kze,dataSet:jx,focusable:$x,id:MV,nativeID:Xze,pointerEvents:CV,style:jze,tabIndex:p2,testID:wV}=sn,ua=(0,oZe.default)(sn,nZe),$ze=Fn||qn,L0=rZe.default.propsToAriaRole(nn),LV=ln!=null?ln:cn;if(LV!=null)ua["aria-activedescendant"]=LV;var IV=un!=null?ln:dn;if(IV!=null)ua["aria-atomic"]=IV;var OV=pn!=null?pn:mn;if(OV!=null)ua["aria-autocomplete"]=OV;var PV=fn!=null?fn:hn;if(PV!=null)ua["aria-busy"]=PV;var gV=bn!=null?bn:yn;if(gV!=null)ua["aria-checked"]=gV;var DV=En!=null?En:Sn;if(DV!=null)ua["aria-colcount"]=DV;var NV=_n!=null?_n:vn;if(NV!=null)ua["aria-colindex"]=NV;var GV=Tn!=null?Tn:Rn;if(GV!=null)ua["aria-colspan"]=GV;var kV=An!=null?An:Mn;if(kV!=null)ua["aria-controls"]=w1(kV);var BV=Cn!=null?Cn:Ln;if(BV!=null)ua["aria-current"]=BV;var FV=On!=null?On:Dn;if(FV!=null)ua["aria-describedby"]=w1(FV);var HV=Nn!=null?Nn:Wn;if(HV!=null)ua["aria-details"]=HV;if($ze===!0){if(ua["aria-disabled"]=!0,rn==="button"||rn==="form"||rn==="input"||rn==="select"||rn==="textarea")ua.disabled=!0}var WV=Kn!=null?Kn:ea;if(WV!=null)ua["aria-errormessage"]=WV;var UV=Yn!=null?Yn:ia;if(UV!=null)ua["aria-expanded"]=UV;var VV=Xn!=null?Xn:La;if(VV!=null)ua["aria-flowto"]=w1(VV);var zV=Ia!=null?Ia:Va;if(zV!=null)ua["aria-haspopup"]=zV;var qV=ls!=null?ls:Bs;if(qV===!0)ua["aria-hidden"]=qV;var YV=ei!=null?ei:Ms;if(YV!=null)ua["aria-invalid"]=YV;var KV=rs!=null?rs:Ps;if(KV!=null)ua["aria-keyshortcuts"]=w1(KV);var XV=za!=null?za:li;if(XV!=null)ua["aria-label"]=XV;var jV=xi!=null?xi:Ri;if(jV!=null)ua["aria-labelledby"]=w1(jV);var $V=Ga!=null?Ga:qs;if($V!=null)ua["aria-level"]=$V;var hO=fi!=null?fi:rc;if(hO!=null)ua["aria-live"]=hO==="none"?"off":hO;var ZV=Hx!=null?Hx:fa;if(ZV!=null)ua["aria-modal"]=ZV;var QV=i2!=null?i2:ll;if(QV!=null)ua["aria-multiline"]=QV;var JV=ef!=null?ef:op;if(JV!=null)ua["aria-multiselectable"]=JV;var ez=Iu!=null?Iu:l2;if(ez!=null)ua["aria-orientation"]=ez;var tz=c2!=null?c2:u2;if(tz!=null)ua["aria-owns"]=w1(tz);var oz=Wx!=null?Wx:cO;if(oz!=null)ua["aria-placeholder"]=oz;var rz=Ux!=null?Ux:uO;if(rz!=null)ua["aria-posinset"]=rz;var nz=Vx!=null?Vx:dO;if(nz!=null)ua["aria-pressed"]=nz;var az=zx!=null?zx:pO;if(az!=null){if(ua["aria-readonly"]=az,rn==="input"||rn==="select"||rn==="textarea")ua.readOnly=!0}var sz=qx!=null?qx:gs;if(sz!=null){if(ua["aria-required"]=sz,rn==="input"||rn==="select"||rn==="textarea")ua.required=gs}if(L0!=null)ua.role=L0==="none"?"presentation":L0;var iz=Yx!=null?Yx:mO;if(iz!=null)ua["aria-roledescription"]=iz;var lz=Kx!=null?Kx:fO;if(lz!=null)ua["aria-rowcount"]=lz;var cz=Ma!=null?Ma:Ys;if(cz!=null)ua["aria-rowindex"]=cz;var uz=nc!=null?nc:d2;if(uz!=null)ua["aria-rowspan"]=uz;var dz=rp!=null?rp:Xx;if(dz!=null)ua["aria-selected"]=dz;var pz=_V!=null?_V:Uze;if(pz!=null)ua["aria-setsize"]=pz;var mz=vV!=null?vV:Vze;if(mz!=null)ua["aria-sort"]=mz;var fz=TV!=null?TV:zze;if(fz!=null)ua["aria-valuemax"]=fz;var hz=xV!=null?xV:qze;if(hz!=null)ua["aria-valuemin"]=hz;var bz=RV!=null?RV:Yze;if(bz!=null)ua["aria-valuenow"]=bz;var yz=AV!=null?AV:Kze;if(yz!=null)ua["aria-valuetext"]=yz;if(jx!=null){for(var bO in jx)if(sZe.call(jx,bO)){var Zze=uZe(bO),Ez=jx[bO];if(Ez!=null)ua["data-"+Zze]=Ez}}if(p2===0||p2==="0"||p2===-1||p2==="-1")ua.tabIndex=p2;else{if($x===!1)ua.tabIndex="-1";if(rn==="a"||rn==="button"||rn==="input"||rn==="select"||rn==="textarea"){if($x===!1||qn===!0)ua.tabIndex="-1"}else if(L0==="button"||L0==="checkbox"||L0==="link"||L0==="radio"||L0==="textbox"||L0==="switch"){if($x!==!1)ua.tabIndex="0"}else if($x===!0)ua.tabIndex="0"}var Sz=(0,QK.default)([jze,CV&&dZe[CV]],(0,tZe.default)({writingDirection:"ltr"},an)),_z=Sz[0],vz=Sz[1];if(_z)ua.className=_z;if(vz)ua.style=vz;var Tz=MV!=null?MV:Xze;if(Tz!=null)ua.id=Tz;if(wV!=null)ua["data-testid"]=wV;if(ua.type==null&&rn==="button")ua.type="button";return ua},tkt=JK.default=pZe;eX.exports=JK.default});var Ra=In(function(okt,A2){var L1;function fZe(rn,nn){if(!nn&&rn&&rn.__esModule)return rn;var an,sn,ln=Object.defineProperty,cn={__proto__:null,default:rn};if(Object(rn)!==rn)return cn;if(L1||typeof WeakMap!="function"||(L1=new WeakMap),L1){if(L1.has(rn))return L1.get(rn);L1.set(rn,cn)}for(sn in rn)sn!=="default"&&{}.hasOwnProperty.call(rn,sn)&&((an=ln&&Object.getOwnPropertyDescriptor(rn,sn))&&(an.get||an.set)?ln(cn,sn,an):cn[sn]=rn[sn]);return cn}A2.exports=fZe,A2.exports.__esModule=!0,A2.exports.default=A2.exports});var aX=In(function(yZe){yZe.__esModule=!0;yZe.isLocaleRTL=bZe;var hZe=new Set(["Arab","Syrc","Samr","Mand","Thaa","Mend","Nkoo","Adlm","Rohg","Hebr"]),rX=new Set(["ae","ar","arc","bcc","bqi","ckb","dv","fa","far","glk","he","iw","khw","ks","ku","mzn","nqo","pnb","ps","sd","ug","ur","yi"]),nX=new Map;function bZe(rn){var nn=nX.get(rn);if(nn)return nn;var an=!1;if(Intl.Locale)try{var sn=new Intl.Locale(rn).maximize().script;an=hZe.has(sn)}catch(un){var ln=rn.split("-")[0];an=rX.has(ln)}else{var cn=rn.split("-")[0];an=rX.has(cn)}return nX.set(rn,an),an}});import*as IZe from"react";var I1=In(function(AZe){var _Ze=Ra().default;AZe.__esModule=!0;AZe.LocaleProvider=xZe;AZe.getLocaleDirection=iX;AZe.useLocaleContext=RZe;var vP=_Ze(IZe),vZe=aX(),TZe={direction:"ltr",locale:"en-US"},sX=(0,vP.createContext)(TZe);function iX(rn){return(0,vZe.isLocaleRTL)(rn)?"rtl":"ltr"}function xZe(rn){var{direction:nn,locale:an,children:sn}=rn,ln=nn||an;return ln?vP.default.createElement(sX.Provider,{children:sn,value:{direction:an?iX(an):nn,locale:an}}):sn}function RZe(){return(0,vP.useContext)(sX)}});import*as GZe from"react";var sc=In(function(cX,uX){var TP=Gn().default;cX.__esModule=!0;cX.default=void 0;var OZe=TP(Jx()),PZe=TP(oX()),lX=TP(GZe),gZe=I1(),DZe=(rn,nn,an)=>{var sn;if(rn&&rn.constructor===String)sn=OZe.default.propsToAccessibilityComponent(nn);var ln=sn||rn,cn=(0,PZe.default)(ln,nn,an),un=lX.default.createElement(ln,cn),dn=cn.dir?lX.default.createElement(gZe.LocaleProvider,{children:un,direction:cn.dir,locale:cn.lang}):un;return dn},akt=cX.default=DZe;uX.exports=cX.default});var hX=In(function(pX,mX){pX.__esModule=!0;pX.default=void 0;var kZe=(rn)=>{throw Error("findNodeHandle is not supported on web. Use the ref property on the component instead.")},skt=pX.default=kZe;mX.exports=pX.default});import*as bR from"react-dom/client";var xP=In(function(WZe){WZe.__esModule=!0;WZe.default=HZe;WZe.hydrate=FZe;var bX=cP();function FZe(rn,nn){return(0,bX.createSheet)(nn),bR.hydrateRoot(nn,rn)}function HZe(rn,nn){(0,bX.createSheet)(nn);var an=bR.createRoot(nn);return an.render(rn),an}});var RP=In(function(yX,EX){yX.__esModule=!0;yX.default=qZe;function qZe(rn){return rn.unmount(),!0}EX.exports=yX.default});var AP=In(function(SX,_X){SX.__esModule=!0;SX.default=void 0;var XZe=(rn)=>{if(rn!=null){var nn=rn.nodeType===1;if(nn&&typeof rn.getBoundingClientRect==="function")return rn.getBoundingClientRect()}},lkt=SX.default=XZe;_X.exports=SX.default});var AX=In(function(TX,xX){TX.__esModule=!0;TX.default=void 0;var yR={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexOrder:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,gridRow:!0,gridRowEnd:!0,gridRowGap:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnGap:!0,gridColumnStart:!0,lineClamp:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0,scale:!0,scaleX:!0,scaleY:!0,scaleZ:!0,shadowOpacity:!0},$Ze=["ms","Moz","O","Webkit"],ZZe=(rn,nn)=>rn+nn.charAt(0).toUpperCase()+nn.substring(1);Object.keys(yR).forEach((rn)=>{$Ze.forEach((nn)=>{yR[ZZe(nn,rn)]=yR[rn]})});var ckt=TX.default=yR;xX.exports=TX.default});var IX=In(function(CX,wX){var JZe=Gn().default;CX.__esModule=!0;CX.default=void 0;var MX=JZe(AX());function eQe(rn,nn,an){var sn=nn==null||typeof nn==="boolean"||nn==="";if(sn)return"";if(!an&&typeof nn==="number"&&nn!==0&&!(MX.default.hasOwnProperty(rn)&&MX.default[rn]))return nn+"px";return(""+nn).trim()}var ukt=CX.default=eQe;wX.exports=CX.default});var DX=In(function(OX,PX){var oQe=Gn().default;OX.__esModule=!0;OX.default=void 0;var rQe=oQe(IX());function nQe(rn,nn){var an=rn.style;for(var sn in nn){if(!nn.hasOwnProperty(sn))continue;var ln=sn.indexOf("--")===0,cn=(0,rQe.default)(sn,nn[sn],ln);if(sn==="float")sn="cssFloat";if(ln)an.setProperty(sn,cn);else an[sn]=cn}}var dkt=OX.default=nQe;PX.exports=OX.default});var Pu=In(function(BX,FX){var kX=Gn().default;BX.__esModule=!0;BX.default=void 0;var sQe=kX(AP()),iQe=kX(DX()),NX=(rn)=>{var nn=rn.offsetHeight,an=rn.offsetWidth,sn=rn.offsetLeft,ln=rn.offsetTop;rn=rn.offsetParent;while(rn&&rn.nodeType===1)sn+=rn.offsetLeft+rn.clientLeft-rn.scrollLeft,ln+=rn.offsetTop+rn.clientTop-rn.scrollTop,rn=rn.offsetParent;return ln-=window.scrollY,sn-=window.scrollX,{width:an,height:nn,top:ln,left:sn}},GX=(rn,nn,an)=>{var sn=nn||rn&&rn.parentNode;if(rn&&sn)setTimeout(()=>{if(rn.isConnected&&sn.isConnected){var ln=NX(sn),cn=NX(rn),{height:un,left:dn,top:pn,width:mn}=cn,fn=dn-ln.left,hn=pn-ln.top;an(fn,hn,mn,un,dn,pn)}},0)},lQe={A:!0,BODY:!0,INPUT:!0,SELECT:!0,TEXTAREA:!0},cQe={blur(rn){try{rn.blur()}catch(nn){}},focus(rn){try{var nn=rn.nodeName;if(rn.getAttribute("tabIndex")==null&&rn.isContentEditable!==!0&&lQe[nn]==null)rn.setAttribute("tabIndex","-1");rn.focus()}catch(an){}},measure(rn,nn){GX(rn,null,nn)},measureInWindow(rn,nn){if(rn)setTimeout(()=>{var an=(0,sQe.default)(rn),{height:sn,left:ln,top:cn,width:un}=an;nn(ln,cn,un,sn)},0)},measureLayout(rn,nn,an,sn){GX(rn,nn,sn)},updateView(rn,nn){for(var an in nn){if(!Object.prototype.hasOwnProperty.call(nn,an))continue;var sn=nn[an];switch(an){case"style":{(0,iQe.default)(rn,sn);break}case"class":case"className":{rn.setAttribute("class",sn);break}case"text":case"value":rn.value=sn;break;default:rn.setAttribute(an,sn)}}},configureNextLayoutAnimation(rn,nn){nn()},setLayoutAnimationEnabledExperimental(){}},pkt=BX.default=cQe;FX.exports=BX.default});var zX=In(function(WX,UX){var dQe=Gn().default;WX.__esModule=!0;WX.default=void 0;var pQe=dQe(Pu()),mQe={UIManager:pQe.default},mkt=WX.default=mQe;UX.exports=WX.default});var ZX=In(function(XX,jX){var hQe=Gn().default;XX.__esModule=!0;XX.default=void 0;var bQe=hQe(ti());function qX(){return new Promise((rn,nn)=>{rn(!0)})}var ic=bQe.default&&typeof window.matchMedia==="function"?window.matchMedia("(prefers-reduced-motion: reduce)"):null;function yQe(){return new Promise((rn,nn)=>{rn(ic?ic.matches:!0)})}function EQe(rn){if(ic!=null)ic.addEventListener!=null?ic.addEventListener("change",rn):ic.addListener(rn)}function SQe(rn){if(ic!=null)ic.removeEventListener!=null?ic.removeEventListener("change",rn):ic.removeListener(rn)}var YX={},KX={isScreenReaderEnabled:qX,isReduceMotionEnabled:yQe,fetch:qX,addEventListener:function(nn,an){if(nn==="reduceMotionChanged"){if(!ic)return;var sn=(ln)=>{an(ln.matches)};EQe(sn),YX[an]=sn}return{remove:()=>KX.removeEventListener(nn,an)}},setAccessibilityFocus:function(nn){},announceForAccessibility:function(nn){},removeEventListener:function(nn,an){if(nn==="reduceMotionChanged"){var sn=YX[an];if(!sn||!ic)return;SQe(sn)}return}},fkt=XX.default=KX;jX.exports=XX.default});var oj=In(function(JX,ej){JX.__esModule=!0;JX.default=void 0;class QX{static alert(){}}var hkt=JX.default=QX;ej.exports=JX.default});var g0=In(function(rj,nj){rj.__esModule=!0;rj.default=void 0;var TQe={OS:"web",select:(rn)=>("web"in rn)?rn.web:rn.default,get isTesting(){return!1},get Version(){return"0.0.0"}},bkt=rj.default=TQe;nj.exports=rj.default});var hs=In(function(ykt,D0){function MP(){return D0.exports=MP=Object.assign?Object.assign.bind():function(rn){for(var nn=1;nn<arguments.length;nn++){var an=arguments[nn];for(var sn in an)({}).hasOwnProperty.call(an,sn)&&(rn[sn]=an[sn])}return rn},D0.exports.__esModule=!0,D0.exports.default=D0.exports,MP.apply(null,arguments)}D0.exports=MP,D0.exports.__esModule=!0,D0.exports.default=D0.exports});var ER=In(function(RQe){RQe.__esModule=!0;RQe.touchProps=RQe.styleProps=RQe.mouseProps=RQe.keyboardProps=RQe.focusProps=RQe.defaultProps=RQe.clickProps=RQe.accessibilityProps=void 0;var Ekt=RQe.defaultProps={children:!0,dataSet:!0,dir:!0,id:!0,ref:!0,suppressHydrationWarning:!0,tabIndex:!0,testID:!0,focusable:!0,nativeID:!0},Skt=RQe.accessibilityProps={"aria-activedescendant":!0,"aria-atomic":!0,"aria-autocomplete":!0,"aria-busy":!0,"aria-checked":!0,"aria-colcount":!0,"aria-colindex":!0,"aria-colspan":!0,"aria-controls":!0,"aria-current":!0,"aria-describedby":!0,"aria-details":!0,"aria-disabled":!0,"aria-errormessage":!0,"aria-expanded":!0,"aria-flowto":!0,"aria-haspopup":!0,"aria-hidden":!0,"aria-invalid":!0,"aria-keyshortcuts":!0,"aria-label":!0,"aria-labelledby":!0,"aria-level":!0,"aria-live":!0,"aria-modal":!0,"aria-multiline":!0,"aria-multiselectable":!0,"aria-orientation":!0,"aria-owns":!0,"aria-placeholder":!0,"aria-posinset":!0,"aria-pressed":!0,"aria-readonly":!0,"aria-required":!0,inert:!0,role:!0,"aria-roledescription":!0,"aria-rowcount":!0,"aria-rowindex":!0,"aria-rowspan":!0,"aria-selected":!0,"aria-setsize":!0,"aria-sort":!0,"aria-valuemax":!0,"aria-valuemin":!0,"aria-valuenow":!0,"aria-valuetext":!0,accessibilityActiveDescendant:!0,accessibilityAtomic:!0,accessibilityAutoComplete:!0,accessibilityBusy:!0,accessibilityChecked:!0,accessibilityColumnCount:!0,accessibilityColumnIndex:!0,accessibilityColumnSpan:!0,accessibilityControls:!0,accessibilityCurrent:!0,accessibilityDescribedBy:!0,accessibilityDetails:!0,accessibilityDisabled:!0,accessibilityErrorMessage:!0,accessibilityExpanded:!0,accessibilityFlowTo:!0,accessibilityHasPopup:!0,accessibilityHidden:!0,accessibilityInvalid:!0,accessibilityKeyShortcuts:!0,accessibilityLabel:!0,accessibilityLabelledBy:!0,accessibilityLevel:!0,accessibilityLiveRegion:!0,accessibilityModal:!0,accessibilityMultiline:!0,accessibilityMultiSelectable:!0,accessibilityOrientation:!0,accessibilityOwns:!0,accessibilityPlaceholder:!0,accessibilityPosInSet:!0,accessibilityPressed:!0,accessibilityReadOnly:!0,accessibilityRequired:!0,accessibilityRole:!0,accessibilityRoleDescription:!0,accessibilityRowCount:!0,accessibilityRowIndex:!0,accessibilityRowSpan:!0,accessibilitySelected:!0,accessibilitySetSize:!0,accessibilitySort:!0,accessibilityValueMax:!0,accessibilityValueMin:!0,accessibilityValueNow:!0,accessibilityValueText:!0},_kt=RQe.clickProps={onClick:!0,onAuxClick:!0,onContextMenu:!0,onGotPointerCapture:!0,onLostPointerCapture:!0,onPointerCancel:!0,onPointerDown:!0,onPointerEnter:!0,onPointerMove:!0,onPointerLeave:!0,onPointerOut:!0,onPointerOver:!0,onPointerUp:!0},vkt=RQe.focusProps={onBlur:!0,onFocus:!0},Tkt=RQe.keyboardProps={onKeyDown:!0,onKeyDownCapture:!0,onKeyUp:!0,onKeyUpCapture:!0},xkt=RQe.mouseProps={onMouseDown:!0,onMouseEnter:!0,onMouseLeave:!0,onMouseMove:!0,onMouseOver:!0,onMouseOut:!0,onMouseUp:!0},Rkt=RQe.touchProps={onTouchCancel:!0,onTouchCancelCapture:!0,onTouchEnd:!0,onTouchEndCapture:!0,onTouchMove:!0,onTouchMoveCapture:!0,onTouchStart:!0,onTouchStartCapture:!0},Akt=RQe.styleProps={style:!0}});var M2=In(function(ij,lj){ij.__esModule=!0;ij.default=gQe;function gQe(rn,nn){var an={};for(var sn in rn)if(rn.hasOwnProperty(sn)){if(nn[sn]===!0)an[sn]=rn[sn]}return an}lj.exports=ij.default});import*as SR from"react";var rf=In(function(cj,uj){var GQe=Gn().default;cj.__esModule=!0;cj.default=void 0;var kQe=GQe(ti()),BQe=kQe.default?SR.useLayoutEffect:SR.useEffect,Ckt=cj.default=BQe;uj.exports=cj.default});var _R=In(function(fj,hj){var LP=Gn().default;fj.__esModule=!0;fj.default=VQe;var pj=LP(rf()),HQe=LP(Pu()),mj=LP(ti()),wP="__reactLayoutHandler",WQe=!mj.default,CP=null;function UQe(){if(mj.default&&typeof window.ResizeObserver<"u"){if(CP==null)CP=new window.ResizeObserver(function(rn){rn.forEach((nn)=>{var an=nn.target,sn=an[wP];if(typeof sn==="function")HQe.default.measure(an,(ln,cn,un,dn,pn,mn)=>{var fn={nativeEvent:{layout:{x:ln,y:cn,width:un,height:dn,left:pn,top:mn}},timeStamp:Date.now()};Object.defineProperty(fn.nativeEvent,"target",{enumerable:!0,get:()=>nn.target}),sn(fn)})})})}return CP}function VQe(rn,nn){var an=UQe();(0,pj.default)(()=>{var sn=rn.current;if(sn!=null)sn[wP]=nn},[rn,nn]),(0,pj.default)(()=>{var sn=rn.current;if(sn!=null&&an!=null)if(typeof sn[wP]==="function")an.observe(sn);else an.unobserve(sn);return()=>{if(sn!=null&&an!=null)an.unobserve(sn)}},[rn,an])}hj.exports=fj.default});import*as $Qe from"react";var IP=In(function(bj,yj){var YQe=Ra().default;bj.__esModule=!0;bj.default=KQe;var wkt=YQe($Qe);function KQe(){for(var rn=arguments.length,nn=Array(rn),an=0;an<rn;an++)nn[an]=arguments[an];return function(ln){nn.forEach((cn)=>{if(cn==null)return;if(typeof cn==="function"){cn(ln);return}if(typeof cn==="object"){cn.current=ln;return}console.error("mergeRefs cannot handle Refs of type boolean, number or string, received ref "+String(cn))})}}yj.exports=bj.default});import*as nJe from"react";var gu=In(function(Ej,Sj){var ZQe=Gn().default,QQe=Ra().default;Ej.__esModule=!0;Ej.default=tJe;var JQe=QQe(nJe),eJe=ZQe(IP());function tJe(){for(var rn=arguments.length,nn=Array(rn),an=0;an<rn;an++)nn[an]=arguments[an];return JQe.useMemo(()=>(0,eJe.default)(...nn),[...nn])}Sj.exports=Ej.default});import*as uJe from"react";var OP=In(function(vj,Tj){var aJe=Ra().default;vj.__esModule=!0;vj.default=iJe;var sJe=aJe(uJe),_j=typeof Symbol==="function"&&typeof Symbol()==="symbol"?Symbol():Object.freeze({});function iJe(rn){var nn=sJe.useRef(_j);if(nn.current===_j)nn.current=rn();return nn.current}Tj.exports=vj.default});var C2=In(function(Rj,Aj){var xj=Gn().default;Rj.__esModule=!0;Rj.default=pJe;var PP=xj(Pu()),dJe=xj(OP());function pJe(rn){var{pointerEvents:nn,style:an}=rn,sn=(0,dJe.default)(()=>(ln)=>{if(ln!=null)ln.measure=(cn)=>PP.default.measure(ln,cn),ln.measureLayout=(cn,un,dn)=>PP.default.measureLayout(ln,cn,dn,un),ln.measureInWindow=(cn)=>PP.default.measureInWindow(ln,cn)});return sn}Aj.exports=Rj.default});var Oj=In(function(Lj,Ij){var hJe=Gn().default;Lj.__esModule=!0;Lj.default=EJe;var Mj=hJe(AP()),Cj=()=>{},bJe={},yJe=[];function wj(rn){return rn>20?rn%20:rn}function EJe(rn,nn){var an,sn=!1,ln,cn,{changedTouches:un,type:dn}=rn,pn=rn.metaKey===!0,mn=rn.shiftKey===!0,fn=un&&un[0].force||0,hn=wj(un&&un[0].identifier||0),bn=un&&un[0].clientX||rn.clientX,yn=un&&un[0].clientY||rn.clientY,En=un&&un[0].pageX||rn.pageX,Sn=un&&un[0].pageY||rn.pageY,_n=typeof rn.preventDefault==="function"?rn.preventDefault.bind(rn):Cj,vn=rn.timeStamp;function Tn(Ln){return Array.prototype.slice.call(Ln).map((On)=>({force:On.force,identifier:wj(On.identifier),get locationX(){return Mn(On.clientX)},get locationY(){return Cn(On.clientY)},pageX:On.pageX,pageY:On.pageY,target:On.target,timestamp:vn}))}if(un!=null)ln=Tn(un),cn=Tn(rn.touches);else{var Rn=[{force:fn,identifier:hn,get locationX(){return Mn(bn)},get locationY(){return Cn(yn)},pageX:En,pageY:Sn,target:rn.target,timestamp:vn}];ln=Rn,cn=dn==="mouseup"||dn==="dragstart"?yJe:Rn}var An={bubbles:!0,cancelable:!0,currentTarget:null,defaultPrevented:rn.defaultPrevented,dispatchConfig:bJe,eventPhase:rn.eventPhase,isDefaultPrevented(){return rn.defaultPrevented},isPropagationStopped(){return sn},isTrusted:rn.isTrusted,nativeEvent:{altKey:!1,ctrlKey:!1,metaKey:pn,shiftKey:mn,changedTouches:ln,force:fn,identifier:hn,get locationX(){return Mn(bn)},get locationY(){return Cn(yn)},pageX:En,pageY:Sn,target:rn.target,timestamp:vn,touches:cn,type:dn},persist:Cj,preventDefault:_n,stopPropagation(){sn=!0},target:rn.target,timeStamp:vn,touchHistory:nn.touchHistory};function Mn(Ln){if(an=an||(0,Mj.default)(An.currentTarget),an)return Ln-an.left}function Cn(Ln){if(an=an||(0,Mj.default)(An.currentTarget),an)return Ln-an.top}return An}Ij.exports=Lj.default});var gP=In(function(kJe){kJe.__esModule=!0;kJe.TOUCH_START=kJe.TOUCH_MOVE=kJe.TOUCH_END=kJe.TOUCH_CANCEL=kJe.SELECTION_CHANGE=kJe.SELECT=kJe.SCROLL=kJe.MOUSE_UP=kJe.MOUSE_MOVE=kJe.MOUSE_DOWN=kJe.MOUSE_CANCEL=kJe.FOCUS_OUT=kJe.CONTEXT_MENU=kJe.BLUR=void 0;kJe.isCancelish=Pj;kJe.isEndish=DJe;kJe.isMoveish=gJe;kJe.isScroll=NJe;kJe.isSelectionChange=GJe;kJe.isStartish=PJe;var Lkt=kJe.BLUR="blur",Ikt=kJe.CONTEXT_MENU="contextmenu",Okt=kJe.FOCUS_OUT="focusout",vJe=kJe.MOUSE_DOWN="mousedown",TJe=kJe.MOUSE_MOVE="mousemove",xJe=kJe.MOUSE_UP="mouseup",RJe=kJe.MOUSE_CANCEL="dragstart",AJe=kJe.TOUCH_START="touchstart",MJe=kJe.TOUCH_MOVE="touchmove",CJe=kJe.TOUCH_END="touchend",wJe=kJe.TOUCH_CANCEL="touchcancel",LJe=kJe.SCROLL="scroll",IJe=kJe.SELECT="select",OJe=kJe.SELECTION_CHANGE="selectionchange";function PJe(rn){return rn===AJe||rn===vJe}function gJe(rn){return rn===MJe||rn===TJe}function DJe(rn){return rn===CJe||rn===xJe||Pj(rn)}function Pj(rn){return rn===wJe||rn===RJe}function NJe(rn){return rn===LJe}function GJe(rn){return rn===IJe||rn===OJe}});var Gj=In(function(Dj,Nj){Dj.__esModule=!0;Dj.default=net;function net(){var rn=window.getSelection(),nn=rn.toString(),{anchorNode:an,focusNode:sn}=rn,ln=an&&an.nodeType===window.Node.TEXT_NODE||sn&&sn.nodeType===window.Node.TEXT_NODE;return nn.length>=1&&nn!==`
5
+ `&&ln}Nj.exports=Dj.default});var Fj=In(function(Eet){var iet=Gn().default;Eet.__esModule=!0;Eet.getLowestCommonAncestor=fet;Eet.getResponderPaths=met;Eet.hasTargetTouches=het;Eet.hasValidSelection=bet;Eet.isPrimaryPointerDown=yet;Eet.setResponderId=pet;var cet=iet(Gj()),Bj="__reactResponderId";function uet(rn){if(rn.type==="selectionchange"){var nn=window.getSelection().anchorNode;return kj(nn)}else{var an=rn.composedPath!=null?rn.composedPath():kj(rn.target);return an}}function kj(rn){var nn=[];while(rn!=null&&rn!==document.body)nn.push(rn),rn=rn.parentNode;return nn}function det(rn){if(rn!=null)return rn[Bj];return null}function pet(rn,nn){if(rn!=null)rn[Bj]=nn}function met(rn){var nn=[],an=[],sn=uet(rn);for(var ln=0;ln<sn.length;ln++){var cn=sn[ln],un=det(cn);if(un!=null)nn.push(un),an.push(cn)}return{idPath:nn,nodePath:an}}function fet(rn,nn){var an=rn.length,sn=nn.length;if(an===0||sn===0||rn[an-1]!==nn[sn-1])return null;var ln=rn[0],cn=0,un=nn[0],dn=0;if(an-sn>0)cn=an-sn,ln=rn[cn],an=sn;if(sn-an>0)dn=sn-an,un=nn[dn],sn=an;var pn=an;while(pn--){if(ln===un)return ln;ln=rn[cn++],un=nn[dn++]}return null}function het(rn,nn){if(!nn||nn.length===0)return!1;for(var an=0;an<nn.length;an++){var sn=nn[an].target;if(sn!=null){if(rn.contains(sn))return!0}}return!1}function bet(rn){if(rn.type==="selectionchange")return(0,cet.default)();return rn.type==="select"}function yet(rn){var{altKey:nn,button:an,buttons:sn,ctrlKey:ln,type:cn}=rn,un=cn==="touchstart"||cn==="touchmove",dn=cn==="mousedown"&&(an===0||sn===1),pn=cn==="mousemove"&&sn===1,mn=nn===!1&&ln===!1;if(un||dn&&mn||pn&&mn)return!0;return!1}});var qj=In(function(Pet){Pet.__esModule=!0;Pet.ResponderTouchHistoryStore=void 0;var DP=gP(),Hj=!1,vR=20;function lc(rn){return rn.timeStamp||rn.timestamp}function Cet(rn){return{touchActive:!0,startPageX:rn.pageX,startPageY:rn.pageY,startTimeStamp:lc(rn),currentPageX:rn.pageX,currentPageY:rn.pageY,currentTimeStamp:lc(rn),previousPageX:rn.pageX,previousPageY:rn.pageY,previousTimeStamp:lc(rn)}}function wet(rn,nn){rn.touchActive=!0,rn.startPageX=nn.pageX,rn.startPageY=nn.pageY,rn.startTimeStamp=lc(nn),rn.currentPageX=nn.pageX,rn.currentPageY=nn.pageY,rn.currentTimeStamp=lc(nn),rn.previousPageX=nn.pageX,rn.previousPageY=nn.pageY,rn.previousTimeStamp=lc(nn)}function NP(rn){var nn=rn.identifier;if(nn==null)console.error("Touch object is missing identifier.");if(Hj){if(nn>vR)console.error("Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.",nn,vR)}return nn}function Let(rn,nn){var an=NP(rn),sn=nn.touchBank[an];if(sn)wet(sn,rn);else nn.touchBank[an]=Cet(rn);nn.mostRecentTimeStamp=lc(rn)}function Iet(rn,nn){var an=nn.touchBank[NP(rn)];if(an)an.touchActive=!0,an.previousPageX=an.currentPageX,an.previousPageY=an.currentPageY,an.previousTimeStamp=an.currentTimeStamp,an.currentPageX=rn.pageX,an.currentPageY=rn.pageY,an.currentTimeStamp=lc(rn),nn.mostRecentTimeStamp=lc(rn);else console.warn(`Cannot record touch move without a touch start.
6
+ `,"Touch Move: "+Wj(rn)+`
7
+ `,"Touch Bank: "+Uj(nn))}function Oet(rn,nn){var an=nn.touchBank[NP(rn)];if(an)an.touchActive=!1,an.previousPageX=an.currentPageX,an.previousPageY=an.currentPageY,an.previousTimeStamp=an.currentTimeStamp,an.currentPageX=rn.pageX,an.currentPageY=rn.pageY,an.currentTimeStamp=lc(rn),nn.mostRecentTimeStamp=lc(rn);else console.warn(`Cannot record touch end without a touch start.
8
+ `,"Touch End: "+Wj(rn)+`
9
+ `,"Touch Bank: "+Uj(nn))}function Wj(rn){return JSON.stringify({identifier:rn.identifier,pageX:rn.pageX,pageY:rn.pageY,timestamp:lc(rn)})}function Uj(rn){var nn=rn.touchBank,an=JSON.stringify(nn.slice(0,vR));if(nn.length>vR)an+=" (original size: "+nn.length+")";return an}class Vj{constructor(){this._touchHistory={touchBank:[],numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0}}recordTouchTrack(rn,nn){var an=this._touchHistory;if((0,DP.isMoveish)(rn))nn.changedTouches.forEach((dn)=>Iet(dn,an));else if((0,DP.isStartish)(rn)){if(nn.changedTouches.forEach((dn)=>Let(dn,an)),an.numberActiveTouches=nn.touches.length,an.numberActiveTouches===1)an.indexOfSingleActiveTouch=nn.touches[0].identifier}else if((0,DP.isEndish)(rn)){if(nn.changedTouches.forEach((dn)=>Oet(dn,an)),an.numberActiveTouches=nn.touches.length,an.numberActiveTouches===1){var sn=an.touchBank;for(var ln=0;ln<sn.length;ln++){var cn=sn[ln];if(cn!=null&&cn.touchActive){an.indexOfSingleActiveTouch=ln;break}}if(Hj){var un=sn[an.indexOfSingleActiveTouch];if(!(un!=null&&un.touchActive))console.error("Cannot find single active touch.")}}}}get touchHistory(){return this._touchHistory}}Pet.ResponderTouchHistoryStore=Vj});var Zj=In(function(Ket){var Xj=Gn().default;Ket.__esModule=!0;Ket.addNode=zet;Ket.attachListeners=Vet;Ket.getResponderNode=Yet;Ket.removeNode=qet;Ket.terminateResponder=$j;var jj=Xj(Oj()),O1=gP(),P1=Fj(),Det=qj(),Net=Xj(ti()),Get={},Yj=["onStartShouldSetResponderCapture","onStartShouldSetResponder",{bubbles:!0}],Kj=["onMoveShouldSetResponderCapture","onMoveShouldSetResponder",{bubbles:!0}],ket=["onScrollShouldSetResponderCapture","onScrollShouldSetResponder",{bubbles:!1}],Bet={touchstart:Yj,mousedown:Yj,touchmove:Kj,mousemove:Kj,scroll:ket},kP={id:null,idPath:null,node:null},TR=new Map,ip=!1,Du=0,Nu={id:null,node:null,idPath:null},BP=new Det.ResponderTouchHistoryStore;function w2(rn){Nu=rn}function L2(rn){var nn=TR.get(rn);return nn!=null?nn:Get}function GP(rn){var{type:nn,target:an}=rn;if(nn==="touchstart")ip=!0;if(nn==="touchmove"||Du>1)ip=!1;if(nn==="mousedown"&&ip||nn==="mousemove"&&ip||nn==="mousemove"&&Du<1)return;if(ip&&nn==="mouseup"){if(Du===0)ip=!1;return}var sn=(0,O1.isStartish)(nn)&&(0,P1.isPrimaryPointerDown)(rn),ln=(0,O1.isMoveish)(nn),cn=(0,O1.isEndish)(nn),un=(0,O1.isScroll)(nn),dn=(0,O1.isSelectionChange)(nn),pn=(0,jj.default)(rn,BP);if(sn||ln||cn){if(rn.touches)Du=rn.touches.length;else if(sn)Du=1;else if(cn)Du=0;BP.recordTouchTrack(nn,pn.nativeEvent)}var mn=(0,P1.getResponderPaths)(rn),fn=!1,hn;if(sn||ln||un&&Du>0){var bn=Nu.idPath,yn=mn.idPath;if(bn!=null&&yn!=null){var En=(0,P1.getLowestCommonAncestor)(bn,yn);if(En!=null){var Sn=yn.indexOf(En),_n=Sn+(En===Nu.id?1:0);mn={idPath:yn.slice(_n),nodePath:mn.nodePath.slice(_n)}}else mn=null}if(mn!=null){if(hn=Fet(mn,rn,pn),hn!=null)Het(pn,hn),fn=!0}}if(Nu.id!=null&&Nu.node!=null){var vn=Nu,{id:Tn,node:Rn}=vn,An=L2(Tn),{onResponderStart:Mn,onResponderMove:Cn,onResponderEnd:Ln,onResponderRelease:On,onResponderTerminate:Dn,onResponderTerminationRequest:Nn}=An;if(pn.bubbles=!1,pn.cancelable=!1,pn.currentTarget=Rn,sn){if(Mn!=null)pn.dispatchConfig.registrationName="onResponderStart",Mn(pn)}else if(ln){if(Cn!=null)pn.dispatchConfig.registrationName="onResponderMove",Cn(pn)}else{var Wn=(0,O1.isCancelish)(nn)||nn==="contextmenu"||nn==="blur"&&an===window||nn==="blur"&&an.contains(Rn)&&rn.relatedTarget!==Rn||un&&Du===0||un&&an.contains(Rn)&&an!==Rn||dn&&(0,P1.hasValidSelection)(rn),Fn=cn&&!Wn&&!(0,P1.hasTargetTouches)(Rn,rn.touches);if(cn){if(Ln!=null)pn.dispatchConfig.registrationName="onResponderEnd",Ln(pn)}if(Fn){if(On!=null)pn.dispatchConfig.registrationName="onResponderRelease",On(pn);w2(kP)}if(Wn){var qn=!0;if(nn==="contextmenu"||nn==="scroll"||nn==="selectionchange"){if(fn)qn=!1;else if(Nn!=null){if(pn.dispatchConfig.registrationName="onResponderTerminationRequest",Nn(pn)===!1)qn=!1}}if(qn){if(Dn!=null)pn.dispatchConfig.registrationName="onResponderTerminate",Dn(pn);w2(kP),ip=!1,Du=0}}}}}function Fet(rn,nn,an){var sn=Bet[nn.type];if(sn!=null){var{idPath:ln,nodePath:cn}=rn,un=sn[0],dn=sn[1],pn=sn[2].bubbles,mn=function(Cn,Ln,On){var Dn=L2(Cn),Nn=Dn[On];if(Nn!=null){if(an.currentTarget=Ln,Nn(an)===!0){var Wn=ln.slice(ln.indexOf(Cn));return{id:Cn,node:Ln,idPath:Wn}}}};for(var fn=ln.length-1;fn>=0;fn--){var hn=ln[fn],bn=cn[fn],yn=mn(hn,bn,un);if(yn!=null)return yn;if(an.isPropagationStopped()===!0)return}if(pn)for(var En=0;En<ln.length;En++){var Sn=ln[En],_n=cn[En],vn=mn(Sn,_n,dn);if(vn!=null)return vn;if(an.isPropagationStopped()===!0)return}else{var Tn=ln[0],Rn=cn[0],An=nn.target;if(An===Rn)return mn(Tn,Rn,dn)}}}function Het(rn,nn){var an=Nu,{id:sn,node:ln}=an,{id:cn,node:un}=nn,dn=L2(cn),{onResponderGrant:pn,onResponderReject:mn}=dn;if(rn.bubbles=!1,rn.cancelable=!1,rn.currentTarget=un,sn==null){if(pn!=null)rn.currentTarget=un,rn.dispatchConfig.registrationName="onResponderGrant",pn(rn);w2(nn)}else{var fn=L2(sn),{onResponderTerminate:hn,onResponderTerminationRequest:bn}=fn,yn=!0;if(bn!=null){if(rn.currentTarget=ln,rn.dispatchConfig.registrationName="onResponderTerminationRequest",bn(rn)===!1)yn=!1}if(yn){if(hn!=null)rn.currentTarget=ln,rn.dispatchConfig.registrationName="onResponderTerminate",hn(rn);if(pn!=null)rn.currentTarget=un,rn.dispatchConfig.registrationName="onResponderGrant",pn(rn);w2(nn)}else if(mn!=null)rn.currentTarget=un,rn.dispatchConfig.registrationName="onResponderReject",mn(rn)}}var Wet=["blur","scroll"],Uet=["mousedown","mousemove","mouseup","dragstart","touchstart","touchmove","touchend","touchcancel","contextmenu","select","selectionchange"];function Vet(){if(Net.default&&window.__reactResponderSystemActive==null)window.addEventListener("blur",GP),Uet.forEach((rn)=>{document.addEventListener(rn,GP)}),Wet.forEach((rn)=>{document.addEventListener(rn,GP,!0)}),window.__reactResponderSystemActive=!0}function zet(rn,nn,an){(0,P1.setResponderId)(nn,rn),TR.set(rn,an)}function qet(rn){if(Nu.id===rn)$j();if(TR.has(rn))TR.delete(rn)}function $j(){var rn=Nu,{id:nn,node:an}=rn;if(nn!=null&&an!=null){var sn=L2(nn),ln=sn.onResponderTerminate;if(ln!=null){var cn=(0,jj.default)({},BP);cn.currentTarget=an,ln(cn)}w2(kP)}ip=!1,Du=0}function Yet(){return Nu.node}});import*as stt from"react";var xR=In(function(Jj,e$){var Qj=Ra().default;Jj.__esModule=!0;Jj.default=rtt;var g1=Qj(stt),I2=Qj(Zj()),ett={},ttt=0;function ott(rn){var nn=g1.useRef(null);if(nn.current==null)nn.current=rn();return nn.current}function rtt(rn,nn){if(nn===void 0)nn=ett;var an=ott(()=>ttt++),sn=g1.useRef(!1);g1.useEffect(()=>(I2.attachListeners(),()=>{I2.removeNode(an)}),[an]),g1.useEffect(()=>{var ln=nn,{onMoveShouldSetResponder:cn,onMoveShouldSetResponderCapture:un,onScrollShouldSetResponder:dn,onScrollShouldSetResponderCapture:pn,onSelectionChangeShouldSetResponder:mn,onSelectionChangeShouldSetResponderCapture:fn,onStartShouldSetResponder:hn,onStartShouldSetResponderCapture:bn}=ln,yn=cn!=null||un!=null||dn!=null||pn!=null||mn!=null||fn!=null||hn!=null||bn!=null,En=rn.current;if(yn)I2.addNode(an,En,nn),sn.current=!0;else if(sn.current)I2.removeNode(an),sn.current=!1},[nn,rn,an]),g1.useDebugValue({isResponder:rn.current===I2.getResponderNode()}),g1.useDebugValue(nn)}e$.exports=Jj.default});import*as t$ from"react";var RR=In(function(o$,r$){o$.__esModule=!0;o$.default=void 0;var itt=t$.createContext(!1),Gkt=o$.default=itt;r$.exports=o$.default});import*as Ttt from"react";var bs=In(function(c$,u$){var N0=Gn().default,i$=Ra().default;c$.__esModule=!0;c$.default=void 0;var ctt=N0(as()),FP=i$(Ttt),utt=N0(sc()),lp=i$(ER()),dtt=N0(M2()),ptt=N0(_R()),mtt=N0(gu()),ftt=N0(C2()),htt=N0(xR()),btt=N0(es()),ytt=N0(RR()),a$=I1(),Ett=["hrefAttrs","onLayout","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture"],Stt=Object.assign({},lp.defaultProps,lp.accessibilityProps,lp.clickProps,lp.focusProps,lp.keyboardProps,lp.mouseProps,lp.touchProps,lp.styleProps,{href:!0,lang:!0,onScroll:!0,onWheel:!0,pointerEvents:!0}),_tt=(rn)=>(0,dtt.default)(rn,Stt),l$=FP.forwardRef((rn,nn)=>{var{hrefAttrs:an,onLayout:sn,onMoveShouldSetResponder:ln,onMoveShouldSetResponderCapture:cn,onResponderEnd:un,onResponderGrant:dn,onResponderMove:pn,onResponderReject:mn,onResponderRelease:fn,onResponderStart:hn,onResponderTerminate:bn,onResponderTerminationRequest:yn,onScrollShouldSetResponder:En,onScrollShouldSetResponderCapture:Sn,onSelectionChangeShouldSetResponder:_n,onSelectionChangeShouldSetResponderCapture:vn,onStartShouldSetResponder:Tn,onStartShouldSetResponderCapture:Rn}=rn,An=(0,ctt.default)(rn,Ett),Mn=FP.useContext(ytt.default),Cn=FP.useRef(null),Ln=(0,a$.useLocaleContext)(),On=Ln.direction;(0,ptt.default)(Cn,sn),(0,htt.default)(Cn,{onMoveShouldSetResponder:ln,onMoveShouldSetResponderCapture:cn,onResponderEnd:un,onResponderGrant:dn,onResponderMove:pn,onResponderReject:mn,onResponderRelease:fn,onResponderStart:hn,onResponderTerminate:bn,onResponderTerminationRequest:yn,onScrollShouldSetResponder:En,onScrollShouldSetResponderCapture:Sn,onSelectionChangeShouldSetResponder:_n,onSelectionChangeShouldSetResponderCapture:vn,onStartShouldSetResponder:Tn,onStartShouldSetResponderCapture:Rn});var Dn="div",Nn=rn.lang!=null?(0,a$.getLocaleDirection)(rn.lang):null,Wn=rn.dir||Nn,Fn=Wn||On,qn=_tt(An);if(qn.dir=Wn,qn.style=[s$.view$raw,Mn&&s$.inline,rn.style],rn.href!=null){if(Dn="a",an!=null){var{download:Kn,rel:ea,target:Yn}=an;if(Kn!=null)qn.download=Kn;if(ea!=null)qn.rel=ea;if(typeof Yn==="string")qn.target=Yn.charAt(0)!=="_"?"_"+Yn:Yn}}var ia=(0,ftt.default)(qn),Xn=(0,mtt.default)(Cn,ia,nn);return qn.ref=Xn,(0,utt.default)(Dn,qn,{writingDirection:Fn})});l$.displayName="View";var s$=btt.default.create({view$raw:{alignContent:"flex-start",alignItems:"stretch",backgroundColor:"transparent",border:"0 solid black",boxSizing:"border-box",display:"flex",flexBasis:"auto",flexDirection:"column",flexShrink:0,listStyle:"none",margin:0,minHeight:0,minWidth:0,padding:0,position:"relative",textDecoration:"none",zIndex:0},inline:{display:"inline-flex"}}),kkt=c$.default=l$;u$.exports=c$.default});var h$=In(function(p$,m$){p$.__esModule=!0;p$.default=void 0;var HP=function(nn,an,sn){if(sn===void 0)sn=-1;if(sn===0)return!0;if(nn===an)return!1;if(typeof nn==="function"&&typeof an==="function")return!1;if(typeof nn!=="object"||nn===null)return nn!==an;if(typeof an!=="object"||an===null)return!0;if(nn.constructor!==an.constructor)return!0;if(Array.isArray(nn)){var ln=nn.length;if(an.length!==ln)return!0;for(var cn=0;cn<ln;cn++)if(HP(nn[cn],an[cn],sn-1))return!0}else{for(var un in nn)if(HP(nn[un],an[un],sn-1))return!0;for(var dn in an)if(nn[dn]===void 0&&an[dn]!==void 0)return!0}return!1},Bkt=p$.default=HP;m$.exports=p$.default});var cs=In(function(Fkt,b$){var Rtt=function(rn){};function Att(rn,nn){for(var an=arguments.length,sn=Array(an>2?an-2:0),ln=2;ln<an;ln++)sn[ln-2]=arguments[ln];if(Rtt(nn),!rn){var cn;if(nn===void 0)cn=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var un=0;cn=Error(nn.replace(/%s/g,function(){return String(sn[un++])})),cn.name="Invariant Violation"}throw cn.framesToPop=1,cn}}b$.exports=Att});var y$=In(function(Hkt,O2){function Mtt(rn,nn){(nn==null||nn>rn.length)&&(nn=rn.length);for(var an=0,sn=Array(nn);an<nn;an++)sn[an]=rn[an];return sn}O2.exports=Mtt,O2.exports.__esModule=!0,O2.exports.default=O2.exports});var S$=In(function(Wkt,P2){var E$=y$();function Ctt(rn,nn){if(rn){if(typeof rn=="string")return E$(rn,nn);var an={}.toString.call(rn).slice(8,-1);return an==="Object"&&rn.constructor&&(an=rn.constructor.name),an==="Map"||an==="Set"?Array.from(rn):an==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(an)?E$(rn,nn):void 0}}P2.exports=Ctt,P2.exports.__esModule=!0,P2.exports.default=P2.exports});var D1=In(function(Ukt,g2){var wtt=S$();function Ltt(rn,nn){var an=typeof Symbol<"u"&&rn[Symbol.iterator]||rn["@@iterator"];if(an)return(an=an.call(rn)).next.bind(an);if(Array.isArray(rn)||(an=wtt(rn))||nn&&rn&&typeof rn.length=="number"){an&&(rn=an);var sn=0;return function(){return sn>=rn.length?{done:!0}:{done:!1,value:rn[sn++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
10
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}g2.exports=Ltt,g2.exports.__esModule=!0,g2.exports.default=g2.exports});import*as Gtt from"react";var UP=In(function(_$,v$){var WP=Gn().default;_$.__esModule=!0;_$.default=void 0;var Itt=WP(as()),Ott=WP(bs()),Ptt=WP(Gtt),gtt=["colors","enabled","onRefresh","progressBackgroundColor","progressViewOffset","refreshing","size","tintColor","title","titleColor"];function Dtt(rn){var{colors:nn,enabled:an,onRefresh:sn,progressBackgroundColor:ln,progressViewOffset:cn,refreshing:un,size:dn,tintColor:pn,title:mn,titleColor:fn}=rn,hn=(0,Itt.default)(rn,gtt);return Ptt.default.createElement(Ott.default,hn)}var Vkt=_$.default=Dtt;v$.exports=_$.default});var D2=In(function(L$,I$){var M$=Gn().default;L$.__esModule=!0;L$.default=void 0;var x$=M$(cs()),AR=M$(ti()),nf={window:{fontScale:1,height:0,scale:1,width:0},screen:{fontScale:1,height:0,scale:1,width:0}},cp={},R$=AR.default;function C$(){if(!AR.default)return;var rn=window,nn,an;if(rn.visualViewport){var sn=rn.visualViewport;nn=Math.round(sn.height*sn.scale),an=Math.round(sn.width*sn.scale)}else{var ln=rn.document.documentElement;nn=ln.clientHeight,an=ln.clientWidth}nf.window={fontScale:1,height:nn,scale:rn.devicePixelRatio||1,width:an},nf.screen={fontScale:1,height:rn.screen.height,scale:rn.devicePixelRatio||1,width:rn.screen.width}}function A$(){if(C$(),Array.isArray(cp.change))cp.change.forEach((rn)=>rn(nf))}class w${static get(rn){if(R$)R$=!1,C$();return(0,x$.default)(nf[rn],"No dimension set for key "+rn),nf[rn]}static set(rn){if(rn)if(AR.default)(0,x$.default)(!1,"Dimensions cannot be set in the browser");else{if(rn.screen!=null)nf.screen=rn.screen;if(rn.window!=null)nf.window=rn.window}}static addEventListener(rn,nn){return cp[rn]=cp[rn]||[],cp[rn].push(nn),{remove:()=>{this.removeEventListener(rn,nn)}}}static removeEventListener(rn,nn){if(Array.isArray(cp[rn]))cp[rn]=cp[rn].filter((an)=>an!==nn)}}L$.default=w$;if(AR.default)if(window.visualViewport)window.visualViewport.addEventListener("resize",A$,!1);else window.addEventListener("resize",A$,!1);I$.exports=L$.default});var MR=In(function(g$,D$){var Btt=Gn().default;g$.__esModule=!0;g$.default=void 0;var P$=Btt(Pu()),Ftt={_currentlyFocusedNode:null,currentlyFocusedField(){if(document.activeElement!==this._currentlyFocusedNode)this._currentlyFocusedNode=null;return this._currentlyFocusedNode},focusTextInput(rn){if(rn!==null){if(this._currentlyFocusedNode=rn,document.activeElement!==rn)P$.default.focus(rn)}},blurTextInput(rn){if(rn!==null){if(this._currentlyFocusedNode=null,document.activeElement===rn)P$.default.blur(rn)}}},zkt=g$.default=Ftt;D$.exports=g$.default});var VP=In(function(k$,B$){var Wtt=Gn().default;k$.__esModule=!0;k$.default=void 0;var G$=Wtt(MR()),Utt=()=>{G$.default.blurTextInput(G$.default.currentlyFocusedField())},qkt=k$.default=Utt;B$.exports=k$.default});import*as eot from"react";var q$=In(function(U$,V$){var G2=Gn().default,ztt=Ra().default;U$.__esModule=!0;U$.default=void 0;var qtt=G2(hs()),Ytt=G2(as()),N2=ztt(eot),Ktt=G2(es()),Xtt=G2(bs()),jtt=G2(gu()),$tt=["onScroll","onTouchMove","onWheel","scrollEnabled","scrollEventThrottle","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","style"];function H$(rn){return{nativeEvent:{contentOffset:{get x(){return rn.target.scrollLeft},get y(){return rn.target.scrollTop}},contentSize:{get height(){return rn.target.scrollHeight},get width(){return rn.target.scrollWidth}},layoutMeasurement:{get height(){return rn.target.offsetHeight},get width(){return rn.target.offsetWidth}}},timeStamp:Date.now()}}function Ztt(rn,nn){var an=Date.now()-rn;return nn>0&&an>=nn}var Qtt=N2.forwardRef((rn,nn)=>{var{onScroll:an,onTouchMove:sn,onWheel:ln,scrollEnabled:cn}=rn,un=cn===void 0?!0:cn,dn=rn.scrollEventThrottle,pn=dn===void 0?0:dn,{showsHorizontalScrollIndicator:mn,showsVerticalScrollIndicator:fn,style:hn}=rn,bn=(0,Ytt.default)(rn,$tt),yn=N2.useRef({isScrolling:!1,scrollLastTick:0}),En=N2.useRef(null),Sn=N2.useRef(null);function _n(Cn){return(Ln)=>{if(un){if(Cn)Cn(Ln)}}}function vn(Cn){if(Cn.stopPropagation(),Cn.target===Sn.current){if(Cn.persist(),En.current!=null)clearTimeout(En.current);if(En.current=setTimeout(()=>{An(Cn)},100),yn.current.isScrolling){if(Ztt(yn.current.scrollLastTick,pn))Rn(Cn)}else Tn(Cn)}}function Tn(Cn){yn.current.isScrolling=!0,Rn(Cn)}function Rn(Cn){if(yn.current.scrollLastTick=Date.now(),an)an(H$(Cn))}function An(Cn){if(yn.current.isScrolling=!1,an)an(H$(Cn))}var Mn=mn===!1||fn===!1;return N2.createElement(Xtt.default,(0,qtt.default)({},bn,{onScroll:vn,onTouchMove:_n(sn),onWheel:_n(ln),ref:(0,jtt.default)(Sn,nn),style:[hn,!un&&W$.scrollDisabled,Mn&&W$.hideScrollbar]}))}),W$=Ktt.default.create({scrollDisabled:{overflowX:"hidden",overflowY:"hidden",touchAction:"none"},hideScrollbar:{scrollbarWidth:"none"}}),Ykt=U$.default=Qtt;V$.exports=U$.default});var K$=In(function(Kkt,Y$){function CR(rn){return function(){return rn}}var af=function(){};af.thatReturns=CR;af.thatReturnsFalse=CR(!1);af.thatReturnsTrue=CR(!0);af.thatReturnsNull=CR(null);af.thatReturnsThis=function(){return this};af.thatReturnsArgument=function(rn){return rn};Y$.exports=af});var j$=In(function(Xkt,X$){var tot=K$(),oot=tot;X$.exports=oot});import*as hot from"react";var wR=In(function(rZ,nZ){var zi=Gn().default;rZ.__esModule=!0;rZ.default=void 0;var N1=zi(ns()),zP=zi(hs()),rot=zi(as()),not=zi(D2()),aot=zi(VP()),$$=zi(cs()),sot=zi(IP()),iot=zi(g0()),lot=zi(q$()),cot=zi(es()),Z$=zi(MR()),uot=zi(Pu()),Q$=zi(bs()),dp=zi(hot),dot=zi(j$()),pot=["contentContainerStyle","horizontal","onContentSizeChange","refreshControl","stickyHeaderIndices","pagingEnabled","forwardedRef","keyboardDismissMode","onScroll","centerContent"],J$={},mot=16;class tZ extends dp.default.Component{constructor(){super(...arguments);this._scrollNodeRef=null,this._innerViewRef=null,this.isTouching=!1,this.lastMomentumScrollBeginTime=0,this.lastMomentumScrollEndTime=0,this.observedScrollSinceBecomingResponder=!1,this.becameResponderWhileAnimating=!1,this.scrollResponderHandleScrollShouldSetResponder=()=>this.isTouching,this.scrollResponderHandleStartShouldSetResponderCapture=(rn)=>this.scrollResponderIsAnimating(),this.scrollResponderHandleTerminationRequest=()=>!this.observedScrollSinceBecomingResponder,this.scrollResponderHandleTouchEnd=(rn)=>{var nn=rn.nativeEvent;this.isTouching=nn.touches.length!==0,this.props.onTouchEnd&&this.props.onTouchEnd(rn)},this.scrollResponderHandleResponderRelease=(rn)=>{this.props.onResponderRelease&&this.props.onResponderRelease(rn);var nn=Z$.default.currentlyFocusedField();if(!this.props.keyboardShouldPersistTaps&&nn!=null&&rn.target!==nn&&!this.observedScrollSinceBecomingResponder&&!this.becameResponderWhileAnimating)this.props.onScrollResponderKeyboardDismissed&&this.props.onScrollResponderKeyboardDismissed(rn),Z$.default.blurTextInput(nn)},this.scrollResponderHandleScroll=(rn)=>{this.observedScrollSinceBecomingResponder=!0,this.props.onScroll&&this.props.onScroll(rn)},this.scrollResponderHandleResponderGrant=(rn)=>{this.observedScrollSinceBecomingResponder=!1,this.props.onResponderGrant&&this.props.onResponderGrant(rn),this.becameResponderWhileAnimating=this.scrollResponderIsAnimating()},this.scrollResponderHandleScrollBeginDrag=(rn)=>{this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(rn)},this.scrollResponderHandleScrollEndDrag=(rn)=>{this.props.onScrollEndDrag&&this.props.onScrollEndDrag(rn)},this.scrollResponderHandleMomentumScrollBegin=(rn)=>{this.lastMomentumScrollBeginTime=Date.now(),this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(rn)},this.scrollResponderHandleMomentumScrollEnd=(rn)=>{this.lastMomentumScrollEndTime=Date.now(),this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(rn)},this.scrollResponderHandleTouchStart=(rn)=>{this.isTouching=!0,this.props.onTouchStart&&this.props.onTouchStart(rn)},this.scrollResponderHandleTouchMove=(rn)=>{this.props.onTouchMove&&this.props.onTouchMove(rn)},this.scrollResponderIsAnimating=()=>{var rn=Date.now(),nn=rn-this.lastMomentumScrollEndTime,an=nn<mot||this.lastMomentumScrollEndTime<this.lastMomentumScrollBeginTime;return an},this.scrollResponderScrollTo=(rn,nn,an)=>{if(typeof rn==="number")console.warn("`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.");else{var sn=rn||J$;rn=sn.x,nn=sn.y,an=sn.animated}var ln=this.getScrollableNode(),cn=rn||0,un=nn||0;if(ln!=null)if(typeof ln.scroll==="function")ln.scroll({top:un,left:cn,behavior:!an?"auto":"smooth"});else ln.scrollLeft=cn,ln.scrollTop=un},this.scrollResponderZoomTo=(rn,nn)=>{if(iot.default.OS!=="ios")(0,$$.default)("zoomToRect is not implemented")},this.scrollResponderScrollNativeHandleToKeyboard=(rn,nn,an)=>{this.additionalScrollOffset=nn||0,this.preventNegativeScrollOffset=!!an,uot.default.measureLayout(rn,this.getInnerViewNode(),this.scrollResponderTextInputFocusError,this.scrollResponderInputMeasureAndScrollToKeyboard)},this.scrollResponderInputMeasureAndScrollToKeyboard=(rn,nn,an,sn)=>{var ln=not.default.get("window").height;if(this.keyboardWillOpenTo)ln=this.keyboardWillOpenTo.endCoordinates.screenY;var cn=nn-ln+sn+this.additionalScrollOffset;if(this.preventNegativeScrollOffset)cn=Math.max(0,cn);this.scrollResponderScrollTo({x:0,y:cn,animated:!0}),this.additionalOffset=0,this.preventNegativeScrollOffset=!1},this.scrollResponderKeyboardWillShow=(rn)=>{this.keyboardWillOpenTo=rn,this.props.onKeyboardWillShow&&this.props.onKeyboardWillShow(rn)},this.scrollResponderKeyboardWillHide=(rn)=>{this.keyboardWillOpenTo=null,this.props.onKeyboardWillHide&&this.props.onKeyboardWillHide(rn)},this.scrollResponderKeyboardDidShow=(rn)=>{if(rn)this.keyboardWillOpenTo=rn;this.props.onKeyboardDidShow&&this.props.onKeyboardDidShow(rn)},this.scrollResponderKeyboardDidHide=(rn)=>{this.keyboardWillOpenTo=null,this.props.onKeyboardDidHide&&this.props.onKeyboardDidHide(rn)},this.flashScrollIndicators=()=>{this.scrollResponderFlashScrollIndicators()},this.getScrollResponder=()=>this,this.getScrollableNode=()=>this._scrollNodeRef,this.getInnerViewRef=()=>this._innerViewRef,this.getInnerViewNode=()=>this._innerViewRef,this.getNativeScrollRef=()=>this._scrollNodeRef,this.scrollTo=(rn,nn,an)=>{if(typeof rn==="number")console.warn("`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.");else{var sn=rn||J$;nn=sn.x,rn=sn.y,an=sn.animated}this.scrollResponderScrollTo({x:nn||0,y:rn||0,animated:an!==!1})},this.scrollToEnd=(rn)=>{var nn=(rn&&rn.animated)!==!1,an=this.props.horizontal,sn=this.getScrollableNode(),ln=an?sn.scrollWidth:0,cn=an?0:sn.scrollHeight;this.scrollResponderScrollTo({x:ln,y:cn,animated:nn})},this._handleContentOnLayout=(rn)=>{var nn=rn.nativeEvent.layout,{width:an,height:sn}=nn;this.props.onContentSizeChange(an,sn)},this._handleScroll=(rn)=>{if(this.props.keyboardDismissMode==="on-drag")(0,aot.default)();this.scrollResponderHandleScroll(rn)},this._setInnerViewRef=(rn)=>{this._innerViewRef=rn},this._setScrollNodeRef=(rn)=>{if(this._scrollNodeRef=rn,rn!=null)rn.getScrollResponder=this.getScrollResponder,rn.getInnerViewNode=this.getInnerViewNode,rn.getInnerViewRef=this.getInnerViewRef,rn.getNativeScrollRef=this.getNativeScrollRef,rn.getScrollableNode=this.getScrollableNode,rn.scrollTo=this.scrollTo,rn.scrollToEnd=this.scrollToEnd,rn.flashScrollIndicators=this.flashScrollIndicators,rn.scrollResponderZoomTo=this.scrollResponderZoomTo,rn.scrollResponderScrollNativeHandleToKeyboard=this.scrollResponderScrollNativeHandleToKeyboard;var nn=(0,sot.default)(this.props.forwardedRef);nn(rn)}}scrollResponderHandleStartShouldSetResponder(){return!1}scrollResponderHandleResponderReject(){(0,dot.default)(!1,"ScrollView doesn't take rejection well - scrolls anyway")}scrollResponderFlashScrollIndicators(){}scrollResponderTextInputFocusError(rn){console.error("Error measuring text field: ",rn)}render(){var rn=this.props,{contentContainerStyle:nn,horizontal:an,onContentSizeChange:sn,refreshControl:ln,stickyHeaderIndices:cn,pagingEnabled:un,forwardedRef:dn,keyboardDismissMode:pn,onScroll:mn,centerContent:fn}=rn,hn=(0,rot.default)(rn,pot);if(!1)var bn,yn;var En={};if(sn)En={onLayout:this._handleContentOnLayout};var Sn=!an&&Array.isArray(cn),_n=Sn||un?dp.default.Children.map(this.props.children,(Ln,On)=>{var Dn=Sn&&cn.indexOf(On)>-1;if(Ln!=null&&(Dn||un))return dp.default.createElement(Q$.default,{style:[Dn&&up.stickyHeader,un&&up.pagingEnabledChild]},Ln);else return Ln}):this.props.children,vn=dp.default.createElement(Q$.default,(0,zP.default)({},En,{children:_n,collapsable:!1,ref:this._setInnerViewRef,style:[an&&up.contentContainerHorizontal,fn&&up.contentContainerCenterContent,nn]})),Tn=an?up.baseHorizontal:up.baseVertical,Rn=an?up.pagingEnabledHorizontal:up.pagingEnabledVertical,An=(0,N1.default)((0,N1.default)({},hn),{},{style:[Tn,un&&Rn,this.props.style],onTouchStart:this.scrollResponderHandleTouchStart,onTouchMove:this.scrollResponderHandleTouchMove,onTouchEnd:this.scrollResponderHandleTouchEnd,onScrollBeginDrag:this.scrollResponderHandleScrollBeginDrag,onScrollEndDrag:this.scrollResponderHandleScrollEndDrag,onMomentumScrollBegin:this.scrollResponderHandleMomentumScrollBegin,onMomentumScrollEnd:this.scrollResponderHandleMomentumScrollEnd,onStartShouldSetResponder:this.scrollResponderHandleStartShouldSetResponder,onStartShouldSetResponderCapture:this.scrollResponderHandleStartShouldSetResponderCapture,onScrollShouldSetResponder:this.scrollResponderHandleScrollShouldSetResponder,onScroll:this._handleScroll,onResponderGrant:this.scrollResponderHandleResponderGrant,onResponderTerminationRequest:this.scrollResponderHandleTerminationRequest,onResponderTerminate:this.scrollResponderHandleTerminate,onResponderRelease:this.scrollResponderHandleResponderRelease,onResponderReject:this.scrollResponderHandleResponderReject}),Mn=lot.default;(0,$$.default)(Mn!==void 0,"ScrollViewClass must not be undefined");var Cn=dp.default.createElement(Mn,(0,zP.default)({},An,{ref:this._setScrollNodeRef}),vn);if(ln)return dp.default.cloneElement(ln,{style:An.style},Cn);return Cn}}var eZ={flexGrow:1,flexShrink:1,transform:"translateZ(0)",WebkitOverflowScrolling:"touch"},up=cot.default.create({baseVertical:(0,N1.default)((0,N1.default)({},eZ),{},{flexDirection:"column",overflowX:"hidden",overflowY:"auto"}),baseHorizontal:(0,N1.default)((0,N1.default)({},eZ),{},{flexDirection:"row",overflowX:"auto",overflowY:"hidden"}),contentContainerHorizontal:{flexDirection:"row"},contentContainerCenterContent:{justifyContent:"center",flexGrow:1},stickyHeader:{position:"sticky",top:0,zIndex:10},pagingEnabledHorizontal:{scrollSnapType:"x mandatory"},pagingEnabledVertical:{scrollSnapType:"y mandatory"},pagingEnabledChild:{scrollSnapAlign:"start"}}),oZ=dp.default.forwardRef((rn,nn)=>dp.default.createElement(tZ,(0,zP.default)({},rn,{forwardedRef:nn})));oZ.displayName="ScrollView";var jkt=rZ.default=oZ;nZ.exports=rZ.default});var pZ=In(function(cZ,uZ){var iZ=Gn().default;cZ.__esModule=!0;cZ.default=void 0;var sZ=iZ(ns()),bot=iZ(cs());class lZ{constructor(rn){var nn=rn.onMoreTasks;this._onMoreTasks=nn,this._queueStack=[{tasks:[],popable:!0}]}enqueue(rn){this._getCurrentQueue().push(rn)}enqueueTasks(rn){rn.forEach((nn)=>this.enqueue(nn))}cancelTasks(rn){this._queueStack=this._queueStack.map((nn)=>(0,sZ.default)((0,sZ.default)({},nn),{},{tasks:nn.tasks.filter((an)=>rn.indexOf(an)===-1)})).filter((nn,an)=>nn.tasks.length>0||an===0)}hasTasksToProcess(){return this._getCurrentQueue().length>0}processNext(){var rn=this._getCurrentQueue();if(rn.length){var nn=rn.shift();try{if(typeof nn==="object"&&nn.gen)this._genPromise(nn);else if(typeof nn==="object"&&nn.run)nn.run();else(0,bot.default)(typeof nn==="function",`Expected Function, SimpleTask, or PromiseTask, but got:
11
+ `+JSON.stringify(nn,null,2)),nn()}catch(an){throw an.message="TaskQueue: Error with task "+(nn.name||"")+": "+an.message,an}}}_getCurrentQueue(){var rn=this._queueStack.length-1,nn=this._queueStack[rn];if(nn.popable&&nn.tasks.length===0&&rn>0)return this._queueStack.pop(),this._getCurrentQueue();else return nn.tasks}_genPromise(rn){var nn=this._queueStack.push({tasks:[],popable:!1}),an=nn-1,sn=this._queueStack[an];rn.gen().then(()=>{sn.popable=!0,this.hasTasksToProcess()&&this._onMoreTasks()}).catch((ln)=>{setTimeout(()=>{throw ln.message="TaskQueue: Error resolving Promise in task "+rn.name+": "+ln.message,ln},0)})}}var $kt=cZ.default=lZ;uZ.exports=cZ.default});var LR=In(function(fZ,hZ){fZ.__esModule=!0;fZ.default=void 0;class mZ{constructor(){this._registry={}}addListener(rn,nn,an){var sn=Eot(this._registry,rn),ln={context:an,listener:nn,remove(){sn.delete(ln)}};return sn.add(ln),ln}emit(rn){var nn=this._registry[rn];if(nn!=null){for(var an=arguments.length,sn=Array(an>1?an-1:0),ln=1;ln<an;ln++)sn[ln-1]=arguments[ln];for(var cn=0,un=[...nn];cn<un.length;cn++){var dn=un[cn];dn.listener.apply(dn.context,sn)}}}removeAllListeners(rn){if(rn==null)this._registry={};else delete this._registry[rn]}listenerCount(rn){var nn=this._registry[rn];return nn==null?0:nn.size}}fZ.default=mZ;function Eot(rn,nn){var an=rn[nn];if(an==null)an=new Set,rn[nn]=an;return an}hZ.exports=fZ.default});var SZ=In(function(Aot){var _ot=Gn().default;Aot.__esModule=!0;Aot.default=Aot.cancelIdleCallback=void 0;var vot=_ot(ti()),Tot=function(nn,an){return setTimeout(()=>{var sn=Date.now();nn({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-sn))}})},1)},xot=function(nn){clearTimeout(nn)},yZ=vot.default&&typeof window.requestIdleCallback<"u",Rot=yZ?window.requestIdleCallback:Tot,Zkt=Aot.cancelIdleCallback=yZ?window.cancelIdleCallback:xot,Qkt=Aot.default=Rot});var B2=In(function(vZ,TZ){var GR=Gn().default;vZ.__esModule=!0;vZ.default=void 0;var wot=GR(cs()),Lot=GR(pZ()),Iot=GR(LR()),Oot=GR(SZ()),PR=new Iot.default,qP={Events:{interactionStart:"interactionStart",interactionComplete:"interactionComplete"},runAfterInteractions(rn){var nn=[],an=new Promise((sn)=>{if(k2(),rn)nn.push(rn);nn.push({run:sn,name:"resolve "+(rn&&rn.name||"?")}),DR.enqueueTasks(nn)});return{then:an.then.bind(an),done:an.then.bind(an),cancel:()=>{DR.cancelTasks(nn)}}},createInteractionHandle(){k2();var rn=++Pot;return gR.add(rn),rn},clearInteractionHandle(rn){(0,wot.default)(!!rn,"Must provide a handle to clear."),k2(),gR.delete(rn),YP.add(rn)},addListener:PR.addListener.bind(PR),setDeadline(rn){NR=rn}},IR=new Set,gR=new Set,YP=new Set,DR=new Lot.default({onMoreTasks:k2}),OR=0,Pot=0,NR=-1;function k2(){if(!OR)if(NR>0)OR=setTimeout(_Z);else OR=(0,Oot.default)(_Z)}function _Z(){OR=0;var rn=IR.size;gR.forEach((sn)=>IR.add(sn)),YP.forEach((sn)=>IR.delete(sn));var nn=IR.size;if(rn!==0&&nn===0)PR.emit(qP.Events.interactionComplete);else if(rn===0&&nn!==0)PR.emit(qP.Events.interactionStart);if(nn===0){var an=Date.now();while(DR.hasTasksToProcess())if(DR.processNext(),NR>0&&Date.now()-an>=NR){k2();break}}gR.clear(),YP.clear()}var eBt=vZ.default=qP;TZ.exports=vZ.default});var wZ=In(function(AZ,MZ){var Dot=Gn().default;AZ.__esModule=!0;AZ.default=void 0;var Not=Dot(B2());class RZ{constructor(rn,nn){this._delay=nn,this._callback=rn}dispose(rn){if(rn===void 0)rn={abort:!1};if(this._taskHandle){if(this._taskHandle.cancel(),!rn.abort)this._callback();this._taskHandle=null}}schedule(){if(this._taskHandle)return;var rn=setTimeout(()=>{this._taskHandle=Not.default.runAfterInteractions(()=>{this._taskHandle=null,this._callback()})},this._delay);this._taskHandle={cancel:()=>clearTimeout(rn)}}}var tBt=AZ.default=RZ;MZ.exports=AZ.default});var PZ=In(function(LZ,IZ){LZ.__esModule=!0;LZ.default=void 0;function kot(rn,nn,an){if(nn<rn)return rn;if(nn>an)return an;return nn}var oBt=LZ.default=kot;IZ.exports=LZ.default});var GZ=In(function(gZ,DZ){gZ.__esModule=!0;gZ.default=void 0;function Fot(){return console.log(...arguments)}var rBt=gZ.default=Fot;DZ.exports=gZ.default});var WZ=In(function(Wot){var BZ=Gn().default;Wot.__esModule=!0;Wot.CellRenderMask=void 0;var kZ=BZ(ns()),KP=BZ(cs());class FZ{constructor(rn){if((0,KP.default)(rn>=0,"CellRenderMask must contain a non-negative number os cells"),this._numCells=rn,rn===0)this._regions=[];else this._regions=[{first:0,last:rn-1,isSpacer:!0}]}enumerateRegions(){return this._regions}addCells(rn){if((0,KP.default)(rn.first>=0&&rn.first<this._numCells&&rn.last>=-1&&rn.last<this._numCells&&rn.last>=rn.first-1,"CellRenderMask.addCells called with invalid cell range"),rn.last<rn.first)return;var nn=this._findRegion(rn.first),an=nn[0],sn=nn[1],ln=this._findRegion(rn.last),cn=ln[0],un=ln[1];if(sn===un&&!an.isSpacer)return;var dn=[],pn=[],mn=(0,kZ.default)((0,kZ.default)({},rn),{},{isSpacer:!1});if(an.first<mn.first)if(an.isSpacer)dn.push({first:an.first,last:mn.first-1,isSpacer:!0});else mn.first=an.first;if(cn.last>mn.last)if(cn.isSpacer)pn.push({first:mn.last+1,last:cn.last,isSpacer:!0});else mn.last=cn.last;var fn=[...dn,mn,...pn],hn=un-sn+1;this._regions.splice(sn,hn,...fn)}numCells(){return this._numCells}equals(rn){return this._numCells===rn._numCells&&this._regions.length===rn._regions.length&&this._regions.every((nn,an)=>nn.first===rn._regions[an].first&&nn.last===rn._regions[an].last&&nn.isSpacer===rn._regions[an].isSpacer)}_findRegion(rn){var nn=0,an=this._regions.length-1;while(nn<=an){var sn=Math.floor((nn+an)/2),ln=this._regions[sn];if(rn>=ln.first&&rn<=ln.last)return[ln,sn];else if(rn<ln.first)an=sn-1;else if(rn>ln.last)nn=sn+1}(0,KP.default)(!1,"A region was not found containing cellIdx "+rn)}}Wot.CellRenderMask=FZ});var KZ=In(function(zZ,qZ){var UZ=Gn().default;zZ.__esModule=!0;zZ.default=void 0;var kR=UZ(D1()),XP=UZ(cs());class VZ{constructor(){this._cellKeyToChildren=new Map,this._childrenToCellKey=new Map}add(rn,nn){var an;(0,XP.default)(!this._childrenToCellKey.has(rn),"Trying to add already present child list");var sn=(an=this._cellKeyToChildren.get(nn))!==null&&an!==void 0?an:new Set;sn.add(rn),this._cellKeyToChildren.set(nn,sn),this._childrenToCellKey.set(rn,nn)}remove(rn){var nn=this._childrenToCellKey.get(rn);(0,XP.default)(nn!=null,"Trying to remove non-present child list"),this._childrenToCellKey.delete(rn);var an=this._cellKeyToChildren.get(nn);if((0,XP.default)(an,"_cellKeyToChildren should contain cellKey"),an.delete(rn),an.size===0)this._cellKeyToChildren.delete(nn)}forEach(rn){for(var nn=(0,kR.default)(this._cellKeyToChildren.values()),an;!(an=nn()).done;){var sn=an.value;for(var ln=(0,kR.default)(sn),cn;!(cn=ln()).done;){var un=cn.value;rn(un)}}}forEachInCell(rn,nn){var an,sn=(an=this._cellKeyToChildren.get(rn))!==null&&an!==void 0?an:[];for(var ln=(0,kR.default)(sn),cn;!(cn=ln()).done;){var un=cn.value;nn(un)}}anyInCell(rn,nn){var an,sn=(an=this._cellKeyToChildren.get(rn))!==null&&an!==void 0?an:[];for(var ln=(0,kR.default)(sn),cn;!(cn=ln()).done;){var un=cn.value;if(nn(un))return!0}return!1}size(){return this._childrenToCellKey.size}}zZ.default=VZ;qZ.exports=zZ.default});var eQ=In(function(ZZ,QZ){var zot=Gn().default;ZZ.__esModule=!0;ZZ.default=void 0;var XZ=zot(ns());class $P{constructor(){this.any_blank_count=0,this.any_blank_ms=0,this.any_blank_speed_sum=0,this.mostly_blank_count=0,this.mostly_blank_ms=0,this.pixels_blank=0,this.pixels_sampled=0,this.pixels_scrolled=0,this.total_time_spent=0,this.sample_count=0}}var FR=!1,BR=[],jZ=10,jP=FR?1:null;class $Z{static addListener(rn){if(jP===null)console.warn("Call `FillRateHelper.setSampleRate` before `addListener`.");return BR.push(rn),{remove:()=>{BR=BR.filter((nn)=>rn!==nn)}}}static setSampleRate(rn){jP=rn}static setMinSampleCount(rn){jZ=rn}constructor(rn){this._anyBlankStartTime=null,this._enabled=!1,this._info=new $P,this._mostlyBlankStartTime=null,this._samplesStartTime=null,this._getFrameMetrics=rn,this._enabled=(jP||0)>Math.random(),this._resetData()}activate(){if(this._enabled&&this._samplesStartTime==null)FR&&console.debug("FillRateHelper: activate"),this._samplesStartTime=globalThis.performance.now()}deactivateAndFlush(){if(!this._enabled)return;var rn=this._samplesStartTime;if(rn==null){FR&&console.debug("FillRateHelper: bail on deactivate with no start time");return}if(this._info.sample_count<jZ){this._resetData();return}var nn=globalThis.performance.now()-rn,an=(0,XZ.default)((0,XZ.default)({},this._info),{},{total_time_spent:nn});if(FR){var sn={avg_blankness:this._info.pixels_blank/this._info.pixels_sampled,avg_speed:this._info.pixels_scrolled/(nn/1000),avg_speed_when_any_blank:this._info.any_blank_speed_sum/this._info.any_blank_count,any_blank_per_min:this._info.any_blank_count/(nn/1000/60),any_blank_time_frac:this._info.any_blank_ms/nn,mostly_blank_per_min:this._info.mostly_blank_count/(nn/1000/60),mostly_blank_time_frac:this._info.mostly_blank_ms/nn};for(var ln in sn)sn[ln]=Math.round(1000*sn[ln])/1000;console.debug("FillRateHelper deactivateAndFlush: ",{derived:sn,info:an})}BR.forEach((cn)=>cn(an)),this._resetData()}computeBlankness(rn,nn,an){if(!this._enabled||rn.getItemCount(rn.data)===0||nn.last<nn.first||this._samplesStartTime==null)return 0;var{dOffset:sn,offset:ln,velocity:cn,visibleLength:un}=an;this._info.sample_count++,this._info.pixels_sampled+=Math.round(un),this._info.pixels_scrolled+=Math.round(Math.abs(sn));var dn=Math.round(Math.abs(cn)*1000),pn=globalThis.performance.now();if(this._anyBlankStartTime!=null)this._info.any_blank_ms+=pn-this._anyBlankStartTime;if(this._anyBlankStartTime=null,this._mostlyBlankStartTime!=null)this._info.mostly_blank_ms+=pn-this._mostlyBlankStartTime;this._mostlyBlankStartTime=null;var mn=0,fn=nn.first,hn=this._getFrameMetrics(fn,rn);while(fn<=nn.last&&(!hn||!hn.inLayout))hn=this._getFrameMetrics(fn,rn),fn++;if(hn&&fn>0)mn=Math.min(un,Math.max(0,hn.offset-ln));var bn=0,yn=nn.last,En=this._getFrameMetrics(yn,rn);while(yn>=nn.first&&(!En||!En.inLayout))En=this._getFrameMetrics(yn,rn),yn--;if(En&&yn<rn.getItemCount(rn.data)-1){var Sn=En.offset+En.length;bn=Math.min(un,Math.max(0,ln+un-Sn))}var _n=Math.round(mn+bn),vn=_n/un;if(vn>0){if(this._anyBlankStartTime=pn,this._info.any_blank_speed_sum+=dn,this._info.any_blank_count++,this._info.pixels_blank+=_n,vn>0.5)this._mostlyBlankStartTime=pn,this._info.mostly_blank_count++}else if(dn<0.01||Math.abs(sn)<1)this.deactivateAndFlush();return vn}enabled(){return this._enabled}_resetData(){this._anyBlankStartTime=null,this._info=new $P,this._mostlyBlankStartTime=null,this._samplesStartTime=null}}var aBt=ZZ.default=$Z;QZ.exports=ZZ.default});import*as $ot from"react";var sQ=In(function(rQ,nQ){var Yot=Ra().default,Kot=Gn().default;rQ.__esModule=!0;rQ.default=void 0;var tQ=Kot(cs()),Xot=Yot($ot);class oQ extends Xot.PureComponent{constructor(rn){super(rn);this._inAsyncStateUpdate=!1,this._installSetStateHooks()}setState(rn,nn){if(typeof rn==="function")super.setState((an,sn)=>{this._inAsyncStateUpdate=!0;var ln;try{ln=rn(an,sn)}catch(cn){throw cn}finally{this._inAsyncStateUpdate=!1}return ln},nn);else super.setState(rn,nn)}_installSetStateHooks(){var rn=this,nn=this.props,an=this.state;Object.defineProperty(this,"props",{get(){return(0,tQ.default)(!rn._inAsyncStateUpdate,'"this.props" should not be accessed during state updates'),nn},set(sn){nn=sn}}),Object.defineProperty(this,"state",{get(){return(0,tQ.default)(!rn._inAsyncStateUpdate,'"this.state" should not be acceessed during state updates'),an},set(sn){an=sn}})}}rQ.default=oQ;nQ.exports=rQ.default});var mQ=In(function(uQ,dQ){var ZP=Gn().default;uQ.__esModule=!0;uQ.default=void 0;var iQ=ZP(ns()),lQ=ZP(D1()),Zot=ZP(cs());class cQ{constructor(rn){if(rn===void 0)rn={viewAreaCoveragePercentThreshold:0};this._hasInteracted=!1,this._timers=new Set,this._viewableIndices=[],this._viewableItems=new Map,this._config=rn}dispose(){this._timers.forEach(clearTimeout)}computeViewableItems(rn,nn,an,sn,ln){var cn=rn.getItemCount(rn.data),un=this._config,{itemVisiblePercentThreshold:dn,viewAreaCoveragePercentThreshold:pn}=un,mn=pn!=null,fn=mn?pn:dn;(0,Zot.default)(fn!=null&&dn!=null!==(pn!=null),"Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold");var hn=[];if(cn===0)return hn;var bn=-1,yn=ln||{first:0,last:cn-1},{first:En,last:Sn}=yn;if(Sn>=cn)return console.warn("Invalid render range computing viewability "+JSON.stringify({renderRange:ln,itemCount:cn})),[];for(var _n=En;_n<=Sn;_n++){var vn=sn(_n,rn);if(!vn)continue;var Tn=vn.offset-nn,Rn=Tn+vn.length;if(Tn<an&&Rn>0){if(bn=_n,Qot(mn,fn,Tn,Rn,an,vn.length))hn.push(_n)}else if(bn>=0)break}return hn}onUpdate(rn,nn,an,sn,ln,cn,un){var dn=rn.getItemCount(rn.data);if(this._config.waitForInteraction&&!this._hasInteracted||dn===0||!sn(0,rn))return;var pn=[];if(dn)pn=this.computeViewableItems(rn,nn,an,sn,un);if(this._viewableIndices.length===pn.length&&this._viewableIndices.every((fn,hn)=>fn===pn[hn]))return;if(this._viewableIndices=pn,this._config.minimumViewTime){var mn=setTimeout(()=>{this._timers.delete(mn),this._onUpdateSync(rn,pn,cn,ln)},this._config.minimumViewTime);this._timers.add(mn)}else this._onUpdateSync(rn,pn,cn,ln)}resetViewableIndices(){this._viewableIndices=[]}recordInteraction(){this._hasInteracted=!0}_onUpdateSync(rn,nn,an,sn){nn=nn.filter((vn)=>this._viewableIndices.includes(vn));var ln=this._viewableItems,cn=new Map(nn.map((vn)=>{var Tn=sn(vn,!0,rn);return[Tn.key,Tn]})),un=[];for(var dn=(0,lQ.default)(cn),pn;!(pn=dn()).done;){var mn=pn.value,fn=mn[0],hn=mn[1];if(!ln.has(fn))un.push(hn)}for(var bn=(0,lQ.default)(ln),yn;!(yn=bn()).done;){var En=yn.value,Sn=En[0],_n=En[1];if(!cn.has(Sn))un.push((0,iQ.default)((0,iQ.default)({},_n),{},{isViewable:!1}))}if(un.length>0)this._viewableItems=cn,an({viewableItems:Array.from(cn.values()),changed:un,viewabilityConfig:this._config})}}function Qot(rn,nn,an,sn,ln,cn){if(ert(an,sn,ln))return!0;else{var un=Jot(an,sn,ln),dn=100*(rn?un/ln:un/cn);return dn>=nn}}function Jot(rn,nn,an){var sn=Math.min(nn,an)-Math.max(rn,0);return Math.max(0,sn)}function ert(rn,nn,an){return rn>=0&&nn<=an&&nn>rn}var sBt=uQ.default=cQ;dQ.exports=uQ.default});import*as mrt from"react";var QP=In(function(lrt){var ort=Ra().default,rrt=Gn().default;lrt.__esModule=!0;lrt.VirtualizedListCellContextProvider=irt;lrt.VirtualizedListContext=void 0;lrt.VirtualizedListContextProvider=srt;lrt.VirtualizedListContextResetter=art;var fQ=rrt(ns()),HR=ort(mrt),WR=HR,nrt=!1,F2=lrt.VirtualizedListContext=WR.createContext(null);if(nrt)F2.displayName="VirtualizedListContext";function art(rn){var nn=rn.children;return WR.createElement(F2.Provider,{value:null},nn)}function srt(rn){var{children:nn,value:an}=rn,sn=(0,HR.useMemo)(()=>({cellKey:null,getScrollMetrics:an.getScrollMetrics,horizontal:an.horizontal,getOutermostParentListRef:an.getOutermostParentListRef,registerAsNestedChild:an.registerAsNestedChild,unregisterAsNestedChild:an.unregisterAsNestedChild}),[an.getScrollMetrics,an.horizontal,an.getOutermostParentListRef,an.registerAsNestedChild,an.unregisterAsNestedChild]);return WR.createElement(F2.Provider,{value:sn},nn)}function irt(rn){var{cellKey:nn,children:an}=rn,sn=(0,HR.useContext)(F2),ln=(0,HR.useMemo)(()=>sn==null?null:(0,fQ.default)((0,fQ.default)({},sn),{},{cellKey:nn}),[sn,nn]);return WR.createElement(F2.Provider,{value:ln},an)}});import*as _rt from"react";var vQ=In(function(EQ,SQ){var frt=Ra().default,H2=Gn().default;EQ.__esModule=!0;EQ.default=void 0;var bQ=H2(hs()),UR=H2(ns()),hrt=H2(bs()),brt=H2(es()),yrt=QP(),Ert=H2(cs()),sf=frt(_rt);class yQ extends sf.Component{constructor(){super(...arguments);this.state={separatorProps:{highlighted:!1,leadingItem:this.props.item}},this._separators={highlight:()=>{var rn=this.props,{cellKey:nn,prevCellKey:an}=rn;this.props.onUpdateSeparators([nn,an],{highlighted:!0})},unhighlight:()=>{var rn=this.props,{cellKey:nn,prevCellKey:an}=rn;this.props.onUpdateSeparators([nn,an],{highlighted:!1})},updateProps:(rn,nn)=>{var an=this.props,{cellKey:sn,prevCellKey:ln}=an;this.props.onUpdateSeparators([rn==="leading"?ln:sn],nn)}},this._onLayout=(rn)=>{this.props.onCellLayout&&this.props.onCellLayout(rn,this.props.cellKey,this.props.index)}}static getDerivedStateFromProps(rn,nn){return{separatorProps:(0,UR.default)((0,UR.default)({},nn.separatorProps),{},{leadingItem:rn.item})}}updateSeparatorProps(rn){this.setState((nn)=>({separatorProps:(0,UR.default)((0,UR.default)({},nn.separatorProps),rn)}))}componentWillUnmount(){this.props.onUnmount(this.props.cellKey)}_renderElement(rn,nn,an,sn){if(rn&&nn)console.warn("VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take precedence over renderItem.");if(nn)return sf.createElement(nn,{item:an,index:sn,separators:this._separators});if(rn)return rn({item:an,index:sn,separators:this._separators});(0,Ert.default)(!1,"VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.")}render(){var rn=this.props,{CellRendererComponent:nn,ItemSeparatorComponent:an,ListItemComponent:sn,cellKey:ln,horizontal:cn,item:un,index:dn,inversionStyle:pn,onCellFocusCapture:mn,onCellLayout:fn,renderItem:hn}=rn,bn=this._renderElement(hn,sn,un,dn),yn=sf.isValidElement(an)?an:an&&sf.createElement(an,this.state.separatorProps),En=pn?cn?[JP.rowReverse,pn]:[JP.columnReverse,pn]:cn?[JP.row,pn]:pn,Sn=!nn?sf.createElement(hrt.default,(0,bQ.default)({style:En,onFocusCapture:mn},fn&&{onLayout:this._onLayout}),bn,yn):sf.createElement(nn,(0,bQ.default)({cellKey:ln,index:dn,item:un,style:En,onFocusCapture:mn},fn&&{onLayout:this._onLayout}),bn,yn);return sf.createElement(yrt.VirtualizedListCellContextProvider,{cellKey:this.props.cellKey},Sn)}}EQ.default=yQ;var JP=brt.default.create({row:{flexDirection:"row"},rowReverse:{flexDirection:"row-reverse"},columnReverse:{flexDirection:"column-reverse"}});SQ.exports=EQ.default});var VR=In(function(xrt){xrt.__esModule=!0;xrt.computeWindowedRenderLimits=vrt;xrt.elementsThatOverlapOffsets=TQ;xrt.keyExtractor=Trt;xrt.newRangeCount=xQ;function TQ(rn,nn,an,sn){if(sn===void 0)sn=1;var ln=nn.getItemCount(nn.data),cn=[];for(var un=0;un<rn.length;un++){var dn=rn[un],pn=0,mn=ln-1;while(pn<=mn){var fn=pn+(mn-pn>>>1),hn=an(fn,nn),bn=hn.offset*sn,yn=(hn.offset+hn.length)*sn;if(fn===0&&dn<bn||fn!==0&&dn<=bn)mn=fn-1;else if(dn>yn)pn=fn+1;else{cn[un]=fn;break}}}return cn}function xQ(rn,nn){return nn.last-nn.first+1-Math.max(0,1+Math.min(nn.last,rn.last)-Math.max(nn.first,rn.first))}function vrt(rn,nn,an,sn,ln,cn){var un=rn.getItemCount(rn.data);if(un===0)return{first:0,last:-1};var{offset:dn,velocity:pn,visibleLength:mn,zoomScale:fn}=cn,hn=fn===void 0?1:fn,bn=Math.max(0,dn),yn=bn+mn,En=(an-1)*mn,Sn=0.5,_n=pn>1?"after":pn<-1?"before":"none",vn=Math.max(0,bn-(1-Sn)*En),Tn=Math.max(0,yn+Sn*En),Rn=ln(un-1,rn).offset*hn;if(Rn<vn)return{first:Math.max(0,un-1-nn),last:un-1};var An=TQ([vn,bn,yn,Tn],rn,ln,hn),Mn=An[0],Cn=An[1],Ln=An[2],On=An[3];Mn=Mn==null?0:Mn,Cn=Cn==null?Math.max(0,Mn):Cn,On=On==null?un-1:On,Ln=Ln==null?Math.min(On,Cn+nn-1):Ln;var Dn={first:Cn,last:Ln},Nn=xQ(sn,Dn);while(!0){if(Cn<=Mn&&Ln>=On)break;var Wn=Nn>=nn,Fn=Cn<=sn.first||Cn>sn.last,qn=Cn>Mn&&(!Wn||!Fn),Kn=Ln>=sn.last||Ln<sn.first,ea=Ln<On&&(!Wn||!Kn);if(Wn&&!qn&&!ea)break;if(qn&&!(_n==="after"&&ea&&Kn)){if(Fn)Nn++;Cn--}if(ea&&!(_n==="before"&&qn&&Fn)){if(Kn)Nn++;Ln++}}if(!(Ln>=Cn&&Cn>=0&&Ln<un&&Cn>=Mn&&Ln<=On&&Cn<=Dn.first&&Ln>=Dn.last))throw Error("Bad window calculation "+JSON.stringify({first:Cn,last:Ln,itemCount:un,overscanFirst:Mn,overscanLast:On,visible:Dn}));return{first:Cn,last:Ln}}function Trt(rn,nn){if(typeof rn==="object"&&(rn==null?void 0:rn.key)!=null)return rn.key;if(typeof rn==="object"&&(rn==null?void 0:rn.id)!=null)return rn.id;return String(nn)}});var AQ=In(function(cBt,zR){function RQ(rn,nn){if(rn!=null)return rn;var an=Error(nn!==void 0?nn:"Got unexpected "+rn);throw an.framesToPop=1,an}zR.exports=RQ;zR.exports.default=RQ;Object.defineProperty(zR.exports,"__esModule",{value:!0})});import*as Yrt from"react";var qR=In(function(GQ,kQ){var Lrt=Ra().default,Ai=Gn().default;GQ.__esModule=!0;GQ.default=void 0;var Irt=Ai(D1()),MQ=Ai(hs()),G1=Ai(ns()),Ort=Ai(UP()),CQ=Ai(wR()),G0=Ai(bs()),NQ=Ai(es()),Prt=Ai(wZ()),wQ=Ai(PZ()),grt=Ai(GZ()),Drt=WZ(),Nrt=Ai(KZ()),Grt=Ai(eQ()),krt=Ai(sQ()),LQ=Ai(mQ()),Brt=Ai(vQ()),W2=QP(),IQ=VR(),Pl=Ai(cs()),Frt=Ai(AQ()),Ts=Lrt(Yrt),Hrt=!1,OQ=0.001,eg=!1,tg="";function lf(rn){return rn!==null&&rn!==void 0?rn:!1}function Wrt(rn){return rn!==null&&rn!==void 0?rn:10}function og(rn){return rn!==null&&rn!==void 0?rn:10}function Urt(rn){return rn!==null&&rn!==void 0?rn:2}function PQ(rn){return rn!==null&&rn!==void 0?rn:2}function gQ(rn,nn){return rn*nn/2}function Vrt(rn){return rn!==null&&rn!==void 0?rn:50}function DQ(rn){return rn!==null&&rn!==void 0?rn:21}function zrt(rn,nn){for(var an=rn.length-1;an>=0;an--)if(nn(rn[an]))return rn[an];return null}class cc extends krt.default{scrollToEnd(rn){var nn=rn?rn.animated:!0,an=this.props.getItemCount(this.props.data)-1;if(an<0)return;var sn=this.__getFrameMetricsApprox(an,this.props),ln=Math.max(0,sn.offset+sn.length+this._footerLength-this._scrollMetrics.visibleLength);if(this._scrollRef==null)return;if(this._scrollRef.scrollTo==null){console.warn("No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.");return}this._scrollRef.scrollTo(lf(this.props.horizontal)?{x:ln,animated:nn}:{y:ln,animated:nn})}scrollToIndex(rn){var nn=this.props,{data:an,horizontal:sn,getItemCount:ln,getItemLayout:cn,onScrollToIndexFailed:un}=nn,{animated:dn,index:pn,viewOffset:mn,viewPosition:fn}=rn;if((0,Pl.default)(pn>=0,"scrollToIndex out of range: requested index "+pn+" but minimum is 0"),(0,Pl.default)(ln(an)>=1,"scrollToIndex out of range: item length "+ln(an)+" but minimum is 1"),(0,Pl.default)(pn<ln(an),"scrollToIndex out of range: requested index "+pn+" is out of 0 to "+(ln(an)-1)),!cn&&pn>this._highestMeasuredFrameIndex){(0,Pl.default)(!!un,"scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, otherwise there is no way to know the location of offscreen indices or handle failures."),un({averageItemLength:this._averageCellLength,highestMeasuredFrameIndex:this._highestMeasuredFrameIndex,index:pn});return}var hn=this.__getFrameMetricsApprox(Math.floor(pn),this.props),bn=Math.max(0,this._getOffsetApprox(pn,this.props)-(fn||0)*(this._scrollMetrics.visibleLength-hn.length))-(mn||0);if(this._scrollRef==null)return;if(this._scrollRef.scrollTo==null){console.warn("No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.");return}this._scrollRef.scrollTo(sn?{x:bn,animated:dn}:{y:bn,animated:dn})}scrollToItem(rn){var nn=rn.item,an=this.props,{data:sn,getItem:ln,getItemCount:cn}=an,un=cn(sn);for(var dn=0;dn<un;dn++)if(ln(sn,dn)===nn){this.scrollToIndex((0,G1.default)((0,G1.default)({},rn),{},{index:dn}));break}}scrollToOffset(rn){var{animated:nn,offset:an}=rn;if(this._scrollRef==null)return;if(this._scrollRef.scrollTo==null){console.warn("No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.");return}this._scrollRef.scrollTo(lf(this.props.horizontal)?{x:an,animated:nn}:{y:an,animated:nn})}recordInteraction(){this._nestedChildLists.forEach((rn)=>{rn.recordInteraction()}),this._viewabilityTuples.forEach((rn)=>{rn.viewabilityHelper.recordInteraction()}),this._updateViewableItems(this.props,this.state.cellsAroundViewport)}flashScrollIndicators(){if(this._scrollRef==null)return;this._scrollRef.flashScrollIndicators()}getScrollResponder(){if(this._scrollRef&&this._scrollRef.getScrollResponder)return this._scrollRef.getScrollResponder()}getScrollableNode(){if(this._scrollRef&&this._scrollRef.getScrollableNode)return this._scrollRef.getScrollableNode();else return this._scrollRef}getScrollRef(){if(this._scrollRef&&this._scrollRef.getScrollRef)return this._scrollRef.getScrollRef();else return this._scrollRef}_getCellKey(){var rn;return((rn=this.context)==null?void 0:rn.cellKey)||"rootList"}hasMore(){return this._hasMore}constructor(rn){var nn;super(rn);if(this._getScrollMetrics=()=>this._scrollMetrics,this._getOutermostParentListRef=()=>{if(this._isNestedWithSameOrientation())return this.context.getOutermostParentListRef();else return this},this._registerAsNestedChild=(un)=>{if(this._nestedChildLists.add(un.ref,un.cellKey),this._hasInteracted)un.ref.recordInteraction()},this._unregisterAsNestedChild=(un)=>{this._nestedChildLists.remove(un.ref)},this._onUpdateSeparators=(un,dn)=>{un.forEach((pn)=>{var mn=pn!=null&&this._cellRefs[pn];mn&&mn.updateSeparatorProps(dn)})},this._getSpacerKey=(un)=>un?"height":"width",this._averageCellLength=0,this._cellRefs={},this._frames={},this._footerLength=0,this._hasTriggeredInitialScrollToIndex=!1,this._hasInteracted=!1,this._hasMore=!1,this._hasWarned={},this._headerLength=0,this._hiPriInProgress=!1,this._highestMeasuredFrameIndex=0,this._indicesToKeys=new Map,this._lastFocusedCellKey=null,this._nestedChildLists=new Nrt.default,this._offsetFromParentVirtualizedList=0,this._prevParentOffset=0,this._scrollMetrics={contentLength:0,dOffset:0,dt:10,offset:0,timestamp:0,velocity:0,visibleLength:0,zoomScale:1},this._scrollRef=null,this._sentStartForContentLength=0,this._sentEndForContentLength=0,this._totalCellLength=0,this._totalCellsMeasured=0,this._viewabilityTuples=[],this._captureScrollRef=(un)=>{this._scrollRef=un},this._defaultRenderScrollComponent=(un)=>{var dn=un.onRefresh;if(this._isNestedWithSameOrientation())return Ts.createElement(G0.default,un);else if(dn){var pn;return(0,Pl.default)(typeof un.refreshing==="boolean","`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `"+JSON.stringify((pn=un.refreshing)!==null&&pn!==void 0?pn:"undefined")+"`"),Ts.createElement(CQ.default,(0,MQ.default)({},un,{refreshControl:un.refreshControl==null?Ts.createElement(Ort.default,{refreshing:un.refreshing,onRefresh:dn,progressViewOffset:un.progressViewOffset}):un.refreshControl}))}else return Ts.createElement(CQ.default,un)},this._onCellLayout=(un,dn,pn)=>{var mn=un.nativeEvent.layout,fn={offset:this._selectOffset(mn),length:this._selectLength(mn),index:pn,inLayout:!0},hn=this._frames[dn];if(!hn||fn.offset!==hn.offset||fn.length!==hn.length||pn!==hn.index)this._totalCellLength+=fn.length-(hn?hn.length:0),this._totalCellsMeasured+=hn?0:1,this._averageCellLength=this._totalCellLength/this._totalCellsMeasured,this._frames[dn]=fn,this._highestMeasuredFrameIndex=Math.max(this._highestMeasuredFrameIndex,pn),this._scheduleCellsToRenderUpdate();else this._frames[dn].inLayout=!0;this._triggerRemeasureForChildListsInCell(dn),this._computeBlankness(),this._updateViewableItems(this.props,this.state.cellsAroundViewport)},this._onCellUnmount=(un)=>{delete this._cellRefs[un];var dn=this._frames[un];if(dn)this._frames[un]=(0,G1.default)((0,G1.default)({},dn),{},{inLayout:!1})},this._onLayout=(un)=>{if(this._isNestedWithSameOrientation())this.measureLayoutRelativeToContainingList();else this._scrollMetrics.visibleLength=this._selectLength(un.nativeEvent.layout);this.props.onLayout&&this.props.onLayout(un),this._scheduleCellsToRenderUpdate(),this._maybeCallOnEdgeReached()},this._onLayoutEmpty=(un)=>{this.props.onLayout&&this.props.onLayout(un)},this._onLayoutFooter=(un)=>{this._triggerRemeasureForChildListsInCell(this._getFooterCellKey()),this._footerLength=this._selectLength(un.nativeEvent.layout)},this._onLayoutHeader=(un)=>{this._headerLength=this._selectLength(un.nativeEvent.layout)},this._onContentSizeChange=(un,dn)=>{if(un>0&&dn>0&&this.props.initialScrollIndex!=null&&this.props.initialScrollIndex>0&&!this._hasTriggeredInitialScrollToIndex){if(this.props.contentOffset==null)if(this.props.initialScrollIndex<this.props.getItemCount(this.props.data))this.scrollToIndex({animated:!1,index:(0,Frt.default)(this.props.initialScrollIndex)});else this.scrollToEnd({animated:!1});this._hasTriggeredInitialScrollToIndex=!0}if(this.props.onContentSizeChange)this.props.onContentSizeChange(un,dn);this._scrollMetrics.contentLength=this._selectLength({height:dn,width:un}),this._scheduleCellsToRenderUpdate(),this._maybeCallOnEdgeReached()},this._convertParentScrollMetrics=(un)=>{var dn=un.offset-this._offsetFromParentVirtualizedList,pn=un.visibleLength,mn=dn-this._scrollMetrics.offset,fn=this._scrollMetrics.contentLength;return{visibleLength:pn,contentLength:fn,offset:dn,dOffset:mn}},this._onScroll=(un)=>{if(this._nestedChildLists.forEach((_n)=>{_n._onScroll(un)}),this.props.onScroll)this.props.onScroll(un);var dn=un.timeStamp,pn=this._selectLength(un.nativeEvent.layoutMeasurement),mn=this._selectLength(un.nativeEvent.contentSize),fn=this._selectOffset(un.nativeEvent.contentOffset),hn=fn-this._scrollMetrics.offset;if(this._isNestedWithSameOrientation()){if(this._scrollMetrics.contentLength===0)return;var bn=this._convertParentScrollMetrics({visibleLength:pn,offset:fn});pn=bn.visibleLength,mn=bn.contentLength,fn=bn.offset,hn=bn.dOffset}var yn=this._scrollMetrics.timestamp?Math.max(1,dn-this._scrollMetrics.timestamp):1,En=hn/yn;if(yn>500&&this._scrollMetrics.dt>500&&mn>5*pn&&!this._hasWarned.perf)(0,grt.default)("VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc.",{dt:yn,prevDt:this._scrollMetrics.dt,contentLength:mn}),this._hasWarned.perf=!0;var Sn=un.nativeEvent.zoomScale<0?1:un.nativeEvent.zoomScale;if(this._scrollMetrics={contentLength:mn,dt:yn,dOffset:hn,offset:fn,timestamp:dn,velocity:En,visibleLength:pn,zoomScale:Sn},this._updateViewableItems(this.props,this.state.cellsAroundViewport),!this.props)return;if(this._maybeCallOnEdgeReached(),En!==0)this._fillRateHelper.activate();this._computeBlankness(),this._scheduleCellsToRenderUpdate()},this._onScrollBeginDrag=(un)=>{this._nestedChildLists.forEach((dn)=>{dn._onScrollBeginDrag(un)}),this._viewabilityTuples.forEach((dn)=>{dn.viewabilityHelper.recordInteraction()}),this._hasInteracted=!0,this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(un)},this._onScrollEndDrag=(un)=>{this._nestedChildLists.forEach((pn)=>{pn._onScrollEndDrag(un)});var dn=un.nativeEvent.velocity;if(dn)this._scrollMetrics.velocity=this._selectOffset(dn);this._computeBlankness(),this.props.onScrollEndDrag&&this.props.onScrollEndDrag(un)},this._onMomentumScrollBegin=(un)=>{this._nestedChildLists.forEach((dn)=>{dn._onMomentumScrollBegin(un)}),this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(un)},this._onMomentumScrollEnd=(un)=>{this._nestedChildLists.forEach((dn)=>{dn._onMomentumScrollEnd(un)}),this._scrollMetrics.velocity=0,this._computeBlankness(),this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(un)},this._updateCellsToRender=()=>{this._updateViewableItems(this.props,this.state.cellsAroundViewport),this.setState((un,dn)=>{var pn=this._adjustCellsAroundViewport(dn,un.cellsAroundViewport),mn=cc._createRenderMask(dn,pn,this._getNonViewportRenderRegions(dn));if(pn.first===un.cellsAroundViewport.first&&pn.last===un.cellsAroundViewport.last&&mn.equals(un.renderMask))return null;return{cellsAroundViewport:pn,renderMask:mn}})},this._createViewToken=(un,dn,pn)=>{var{data:mn,getItem:fn}=pn,hn=fn(mn,un);return{index:un,item:hn,key:this._keyExtractor(hn,un,pn),isViewable:dn}},this._getOffsetApprox=(un,dn)=>{if(Number.isInteger(un))return this.__getFrameMetricsApprox(un,dn).offset;else{var pn=this.__getFrameMetricsApprox(Math.floor(un),dn),mn=un-Math.floor(un);return pn.offset+mn*pn.length}},this.__getFrameMetricsApprox=(un,dn)=>{var pn=this._getFrameMetrics(un,dn);if(pn&&pn.index===un)return pn;else{var{data:mn,getItemCount:fn,getItemLayout:hn}=dn;return(0,Pl.default)(un>=0&&un<fn(mn),"Tried to get frame for out of range index "+un),(0,Pl.default)(!hn,"Should not have to estimate frames when a measurement metrics function is provided"),{length:this._averageCellLength,offset:this._averageCellLength*un}}},this._getFrameMetrics=(un,dn)=>{var{data:pn,getItem:mn,getItemCount:fn,getItemLayout:hn}=dn;(0,Pl.default)(un>=0&&un<fn(pn),"Tried to get frame for out of range index "+un);var bn=mn(pn,un),yn=this._frames[this._keyExtractor(bn,un,dn)];if(!yn||yn.index!==un){if(hn)return hn(pn,un)}return yn},this._getNonViewportRenderRegions=(un)=>{if(!(this._lastFocusedCellKey&&this._cellRefs[this._lastFocusedCellKey]))return[];var dn=this._cellRefs[this._lastFocusedCellKey],pn=dn.props.index,mn=un.getItemCount(un.data);if(pn>=mn||this._keyExtractor(un.getItem(un.data,pn),pn,un)!==this._lastFocusedCellKey)return[];var fn=pn,hn=0;for(var bn=fn-1;bn>=0&&hn<this._scrollMetrics.visibleLength;bn--)fn--,hn+=this.__getFrameMetricsApprox(bn,un).length;var yn=pn,En=0;for(var Sn=yn+1;Sn<mn&&En<this._scrollMetrics.visibleLength;Sn++)yn++,En+=this.__getFrameMetricsApprox(Sn,un).length;return[{first:fn,last:yn}]},this._checkProps(rn),this._fillRateHelper=new Grt.default(this._getFrameMetrics),this._updateCellsToRenderBatcher=new Prt.default(this._updateCellsToRender,(nn=this.props.updateCellsBatchingPeriod)!==null&&nn!==void 0?nn:50),this.props.viewabilityConfigCallbackPairs)this._viewabilityTuples=this.props.viewabilityConfigCallbackPairs.map((un)=>({viewabilityHelper:new LQ.default(un.viewabilityConfig),onViewableItemsChanged:un.onViewableItemsChanged}));else{var an=this.props,{onViewableItemsChanged:sn,viewabilityConfig:ln}=an;if(sn)this._viewabilityTuples.push({viewabilityHelper:new LQ.default(ln),onViewableItemsChanged:sn})}var cn=cc._initialRenderRegion(rn);this.state={cellsAroundViewport:cn,renderMask:cc._createRenderMask(rn,cn)},this.invertedWheelEventHandler=(un)=>{var dn=this.props.horizontal?un.target.scrollLeft:un.target.scrollTop,pn=this.props.horizontal?un.target.scrollWidth:un.target.scrollHeight,mn=this.props.horizontal?un.target.clientWidth:un.target.clientHeight,fn=pn>mn,hn=this.props.horizontal?un.deltaX||un.wheelDeltaX:un.deltaY||un.wheelDeltaY,bn=hn;if(fn)bn=hn<0?Math.min(hn+dn,0):Math.max(hn-(pn-mn-dn),0);var yn=hn-bn;if(this.props.inverted&&this._scrollRef&&this._scrollRef.getScrollableNode){var En=this._scrollRef.getScrollableNode();if(this.props.horizontal){un.target.scrollLeft+=yn;var Sn=En.scrollLeft-bn;En.scrollLeft=!this.props.getItemLayout?Math.min(Sn,this._totalCellLength):Sn}else{un.target.scrollTop+=yn;var _n=En.scrollTop-bn;En.scrollTop=!this.props.getItemLayout?Math.min(_n,this._totalCellLength):_n}un.preventDefault()}}}_checkProps(rn){var{onScroll:nn,windowSize:an,getItemCount:sn,data:ln,initialScrollIndex:cn}=rn;(0,Pl.default)(!nn||!nn.__isNative,"Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent to support native onScroll events with useNativeDriver"),(0,Pl.default)(DQ(an)>0,"VirtualizedList: The windowSize prop must be present and set to a value greater than 0."),(0,Pl.default)(sn,'VirtualizedList: The "getItemCount" prop must be provided');var un=sn(ln);if(cn!=null&&!this._hasTriggeredInitialScrollToIndex&&(cn<0||un>0&&cn>=un)&&!this._hasWarned.initialScrollIndex)console.warn('initialScrollIndex "'+cn+'" is not valid (list has '+un+" items)"),this._hasWarned.initialScrollIndex=!0;if(Hrt&&!this._hasWarned.flexWrap){var dn=NQ.default.flatten(this.props.contentContainerStyle);if(dn!=null&&dn.flexWrap==="wrap")console.warn("`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.Consider using `numColumns` with `FlatList` instead."),this._hasWarned.flexWrap=!0}}static _createRenderMask(rn,nn,an){var sn=rn.getItemCount(rn.data);(0,Pl.default)(nn.first>=0&&nn.last>=nn.first-1&&nn.last<sn,'Invalid cells around viewport "['+nn.first+", "+nn.last+']" was passed to VirtualizedList._createRenderMask');var ln=new Drt.CellRenderMask(sn);if(sn>0){var cn=[nn,...an!==null&&an!==void 0?an:[]];for(var un=0,dn=cn;un<dn.length;un++){var pn=dn[un];ln.addCells(pn)}if(rn.initialScrollIndex==null||rn.initialScrollIndex<=0){var mn=cc._initialRenderRegion(rn);ln.addCells(mn)}var fn=new Set(rn.stickyHeaderIndices);cc._ensureClosestStickyHeader(rn,fn,ln,nn.first)}return ln}static _initialRenderRegion(rn){var nn,an=rn.getItemCount(rn.data),sn=Math.max(0,Math.min(an-1,Math.floor((nn=rn.initialScrollIndex)!==null&&nn!==void 0?nn:0))),ln=Math.min(an,sn+Wrt(rn.initialNumToRender))-1;return{first:sn,last:ln}}static _ensureClosestStickyHeader(rn,nn,an,sn){var ln=rn.ListHeaderComponent?1:0;for(var cn=sn-1;cn>=0;cn--)if(nn.has(cn+ln)){an.addCells({first:cn,last:cn});break}}_adjustCellsAroundViewport(rn,nn){var{data:an,getItemCount:sn}=rn,ln=PQ(rn.onEndReachedThreshold),cn=this._scrollMetrics,{contentLength:un,offset:dn,visibleLength:pn}=cn,mn=un-pn-dn;if(pn<=0||un<=0)return nn.last>=sn(an)?cc._constrainToItemCount(nn,rn):nn;var fn;if(rn.disableVirtualization){var hn=mn<ln*pn?og(rn.maxToRenderPerBatch):0;fn={first:0,last:Math.min(nn.last+hn,sn(an)-1)}}else{if(rn.initialScrollIndex&&!this._scrollMetrics.offset&&Math.abs(mn)>=Number.EPSILON)return nn.last>=sn(an)?cc._constrainToItemCount(nn,rn):nn;fn=(0,IQ.computeWindowedRenderLimits)(rn,og(rn.maxToRenderPerBatch),DQ(rn.windowSize),nn,this.__getFrameMetricsApprox,this._scrollMetrics),(0,Pl.default)(fn.last<sn(an),"computeWindowedRenderLimits() should return range in-bounds")}if(this._nestedChildLists.size()>0){var bn=this._findFirstChildWithMore(fn.first,fn.last);fn.last=bn!==null&&bn!==void 0?bn:fn.last}return fn}_findFirstChildWithMore(rn,nn){for(var an=rn;an<=nn;an++){var sn=this._indicesToKeys.get(an);if(sn!=null&&this._nestedChildLists.anyInCell(sn,(ln)=>ln.hasMore()))return an}return null}componentDidMount(){if(this._isNestedWithSameOrientation())this.context.registerAsNestedChild({ref:this,cellKey:this.context.cellKey});this.setupWebWheelHandler()}componentWillUnmount(){if(this._isNestedWithSameOrientation())this.context.unregisterAsNestedChild({ref:this});this._updateCellsToRenderBatcher.dispose({abort:!0}),this._viewabilityTuples.forEach((rn)=>{rn.viewabilityHelper.dispose()}),this._fillRateHelper.deactivateAndFlush(),this.teardownWebWheelHandler()}setupWebWheelHandler(){if(this._scrollRef&&this._scrollRef.getScrollableNode)this._scrollRef.getScrollableNode().addEventListener("wheel",this.invertedWheelEventHandler);else{setTimeout(()=>this.setupWebWheelHandler(),50);return}}teardownWebWheelHandler(){if(this._scrollRef&&this._scrollRef.getScrollableNode)this._scrollRef.getScrollableNode().removeEventListener("wheel",this.invertedWheelEventHandler)}static getDerivedStateFromProps(rn,nn){var an=rn.getItemCount(rn.data);if(an===nn.renderMask.numCells())return nn;var sn=cc._constrainToItemCount(nn.cellsAroundViewport,rn);return{cellsAroundViewport:sn,renderMask:cc._createRenderMask(rn,sn)}}_pushCells(rn,nn,an,sn,ln,cn){var un=this,dn=this.props,{CellRendererComponent:pn,ItemSeparatorComponent:mn,ListHeaderComponent:fn,ListItemComponent:hn,data:bn,debug:yn,getItem:En,getItemCount:Sn,getItemLayout:_n,horizontal:vn,renderItem:Tn}=dn,Rn=fn?1:0,An=Sn(bn)-1,Mn;ln=Math.min(An,ln);var Cn=function(){var Dn=En(bn,Ln),Nn=un._keyExtractor(Dn,Ln,un.props);if(un._indicesToKeys.set(Ln,Nn),an.has(Ln+Rn))nn.push(rn.length);var Wn=_n==null||yn||un._fillRateHelper.enabled();rn.push(Ts.createElement(Brt.default,(0,MQ.default)({CellRendererComponent:pn,ItemSeparatorComponent:Ln<An?mn:void 0,ListItemComponent:hn,cellKey:Nn,horizontal:vn,index:Ln,inversionStyle:cn,item:Dn,key:Nn,prevCellKey:Mn,onUpdateSeparators:un._onUpdateSeparators,onCellFocusCapture:(Fn)=>un._onCellFocusCapture(Nn),onUnmount:un._onCellUnmount,ref:(Fn)=>{un._cellRefs[Nn]=Fn},renderItem:Tn},Wn&&{onCellLayout:un._onCellLayout}))),Mn=Nn};for(var Ln=sn;Ln<=ln;Ln++)Cn()}static _constrainToItemCount(rn,nn){var an=nn.getItemCount(nn.data),sn=Math.min(an-1,rn.last),ln=og(nn.maxToRenderPerBatch);return{first:(0,wQ.default)(0,an-1-ln,rn.first),last:sn}}_isNestedWithSameOrientation(){var rn=this.context;return!!(rn&&!!rn.horizontal===lf(this.props.horizontal))}_keyExtractor(rn,nn,an){if(an.keyExtractor!=null)return an.keyExtractor(rn,nn);var sn=(0,IQ.keyExtractor)(rn,nn);if(sn===String(nn)){if(eg=!0,rn.type&&rn.type.displayName)tg=rn.type.displayName}return sn}render(){this._checkProps(this.props);var rn=this.props,{ListEmptyComponent:nn,ListFooterComponent:an,ListHeaderComponent:sn}=rn,ln=this.props,{data:cn,horizontal:un}=ln,dn=this.props.inverted?lf(this.props.horizontal)?jc.horizontallyInverted:jc.verticallyInverted:null,pn=[],mn=new Set(this.props.stickyHeaderIndices),fn=[];if(sn){if(mn.has(0))fn.push(0);var hn=Ts.isValidElement(sn)?sn:Ts.createElement(sn,null);pn.push(Ts.createElement(W2.VirtualizedListCellContextProvider,{cellKey:this._getCellKey()+"-header",key:"$header"},Ts.createElement(G0.default,{onLayout:this._onLayoutHeader,style:[dn,this.props.ListHeaderComponentStyle]},hn)))}var bn=this.props.getItemCount(cn);if(bn===0&&nn){var yn=Ts.isValidElement(nn)?nn:Ts.createElement(nn,null);pn.push(Ts.createElement(W2.VirtualizedListCellContextProvider,{cellKey:this._getCellKey()+"-empty",key:"$empty"},Ts.cloneElement(yn,{onLayout:(Kn)=>{if(this._onLayoutEmpty(Kn),yn.props.onLayout)yn.props.onLayout(Kn)},style:[dn,yn.props.style]})))}if(bn>0){eg=!1,tg="";var En=this._getSpacerKey(!un),Sn=this.state.renderMask.enumerateRegions(),_n=zrt(Sn,(Kn)=>Kn.isSpacer);for(var vn=(0,Irt.default)(Sn),Tn;!(Tn=vn()).done;){var Rn=Tn.value;if(Rn.isSpacer){if(this.props.disableVirtualization)continue;var An=Rn===_n,Mn=An&&!this.props.getItemLayout,Cn=Mn?(0,wQ.default)(Rn.first-1,Rn.last,this._highestMeasuredFrameIndex):Rn.last,Ln=this.__getFrameMetricsApprox(Rn.first,this.props),On=this.__getFrameMetricsApprox(Cn,this.props),Dn=On.offset+On.length-Ln.offset;pn.push(Ts.createElement(G0.default,{key:"$spacer-"+Rn.first,style:{[En]:Dn}}))}else this._pushCells(pn,fn,mn,Rn.first,Rn.last,dn)}if(!this._hasWarned.keys&&eg)console.warn("VirtualizedList: missing keys for items, make sure to specify a key or id property on each item or provide a custom keyExtractor.",tg),this._hasWarned.keys=!0}if(an){var Nn=Ts.isValidElement(an)?an:Ts.createElement(an,null);pn.push(Ts.createElement(W2.VirtualizedListCellContextProvider,{cellKey:this._getFooterCellKey(),key:"$footer"},Ts.createElement(G0.default,{onLayout:this._onLayoutFooter,style:[dn,this.props.ListFooterComponentStyle]},Nn)))}var Wn=(0,G1.default)((0,G1.default)({},this.props),{},{onContentSizeChange:this._onContentSizeChange,onLayout:this._onLayout,onScroll:this._onScroll,onScrollBeginDrag:this._onScrollBeginDrag,onScrollEndDrag:this._onScrollEndDrag,onMomentumScrollBegin:this._onMomentumScrollBegin,onMomentumScrollEnd:this._onMomentumScrollEnd,scrollEventThrottle:Vrt(this.props.scrollEventThrottle),invertStickyHeaders:this.props.invertStickyHeaders!==void 0?this.props.invertStickyHeaders:this.props.inverted,stickyHeaderIndices:fn,style:dn?[dn,this.props.style]:this.props.style});this._hasMore=this.state.cellsAroundViewport.last<bn-1;var Fn=Ts.createElement(W2.VirtualizedListContextProvider,{value:{cellKey:null,getScrollMetrics:this._getScrollMetrics,horizontal:lf(this.props.horizontal),getOutermostParentListRef:this._getOutermostParentListRef,registerAsNestedChild:this._registerAsNestedChild,unregisterAsNestedChild:this._unregisterAsNestedChild}},Ts.cloneElement((this.props.renderScrollComponent||this._defaultRenderScrollComponent)(Wn),{ref:this._captureScrollRef},pn)),qn=Fn;if(this.props.debug)return Ts.createElement(G0.default,{style:jc.debug},qn,this._renderDebugOverlay());else return qn}componentDidUpdate(rn){var nn=this.props,{data:an,extraData:sn}=nn;if(an!==rn.data||sn!==rn.extraData)this._viewabilityTuples.forEach((cn)=>{cn.viewabilityHelper.resetViewableIndices()});var ln=this._hiPriInProgress;if(this._scheduleCellsToRenderUpdate(),ln)this._hiPriInProgress=!1}_computeBlankness(){this._fillRateHelper.computeBlankness(this.props,this.state.cellsAroundViewport,this._scrollMetrics)}_onCellFocusCapture(rn){this._lastFocusedCellKey=rn,this._updateCellsToRender()}_triggerRemeasureForChildListsInCell(rn){this._nestedChildLists.forEachInCell(rn,(nn)=>{nn.measureLayoutRelativeToContainingList()})}measureLayoutRelativeToContainingList(){try{if(!this._scrollRef)return;this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(),(rn,nn,an,sn)=>{this._offsetFromParentVirtualizedList=this._selectOffset({x:rn,y:nn}),this._scrollMetrics.contentLength=this._selectLength({width:an,height:sn});var ln=this._convertParentScrollMetrics(this.context.getScrollMetrics()),cn=this._scrollMetrics.visibleLength!==ln.visibleLength||this._scrollMetrics.offset!==ln.offset;if(cn)this._scrollMetrics.visibleLength=ln.visibleLength,this._scrollMetrics.offset=ln.offset,this._nestedChildLists.forEach((un)=>{un.measureLayoutRelativeToContainingList()})},(rn)=>{console.warn("VirtualizedList: Encountered an error while measuring a list's offset from its containing VirtualizedList.")})}catch(rn){console.warn("measureLayoutRelativeToContainingList threw an error",rn.stack)}}_getFooterCellKey(){return this._getCellKey()+"-footer"}_renderDebugOverlay(){var rn=this._scrollMetrics.visibleLength/(this._scrollMetrics.contentLength||1),nn=[],an=this.props.getItemCount(this.props.data);for(var sn=0;sn<an;sn++){var ln=this.__getFrameMetricsApprox(sn,this.props);if(ln.inLayout)nn.push(ln)}var cn=this.__getFrameMetricsApprox(this.state.cellsAroundViewport.first,this.props).offset,un=this.__getFrameMetricsApprox(this.state.cellsAroundViewport.last,this.props),dn=un.offset+un.length-cn,pn=this._scrollMetrics.offset,mn=this._scrollMetrics.visibleLength;return Ts.createElement(G0.default,{style:[jc.debugOverlayBase,jc.debugOverlay]},nn.map((fn,hn)=>Ts.createElement(G0.default,{key:"f"+hn,style:[jc.debugOverlayBase,jc.debugOverlayFrame,{top:fn.offset*rn,height:fn.length*rn}]})),Ts.createElement(G0.default,{style:[jc.debugOverlayBase,jc.debugOverlayFrameLast,{top:cn*rn,height:dn*rn}]}),Ts.createElement(G0.default,{style:[jc.debugOverlayBase,jc.debugOverlayFrameVis,{top:pn*rn,height:mn*rn}]}))}_selectLength(rn){return!lf(this.props.horizontal)?rn.height:rn.width}_selectOffset(rn){return!lf(this.props.horizontal)?rn.y:rn.x}_maybeCallOnEdgeReached(){var rn=this.props,{data:nn,getItemCount:an,onStartReached:sn,onStartReachedThreshold:ln,onEndReached:cn,onEndReachedThreshold:un,initialScrollIndex:dn}=rn,pn=this._scrollMetrics,{contentLength:mn,visibleLength:fn,offset:hn}=pn,bn=hn,yn=mn-fn-hn;if(bn<OQ)bn=0;if(yn<OQ)yn=0;var En=2,Sn=ln!=null?ln*fn:En,_n=un!=null?un*fn:En,vn=bn<=Sn,Tn=yn<=_n;if(cn&&this.state.cellsAroundViewport.last===an(nn)-1&&Tn&&this._scrollMetrics.contentLength!==this._sentEndForContentLength)this._sentEndForContentLength=this._scrollMetrics.contentLength,cn({distanceFromEnd:yn});else if(sn!=null&&this.state.cellsAroundViewport.first===0&&vn&&this._scrollMetrics.contentLength!==this._sentStartForContentLength){if(!dn||this._scrollMetrics.timestamp!==0)this._sentStartForContentLength=this._scrollMetrics.contentLength,sn({distanceFromStart:bn})}else this._sentStartForContentLength=vn?this._sentStartForContentLength:0,this._sentEndForContentLength=Tn?this._sentEndForContentLength:0}_scheduleCellsToRenderUpdate(){var rn=this.state.cellsAroundViewport,{first:nn,last:an}=rn,sn=this._scrollMetrics,{offset:ln,visibleLength:cn,velocity:un}=sn,dn=this.props.getItemCount(this.props.data),pn=!1,mn=Urt(this.props.onStartReachedThreshold),fn=PQ(this.props.onEndReachedThreshold);if(nn>0){var hn=ln-this.__getFrameMetricsApprox(nn,this.props).offset;pn=hn<0||un<-2&&hn<gQ(mn,cn)}if(!pn&&an>=0&&an<dn-1){var bn=this.__getFrameMetricsApprox(an,this.props).offset-(ln+cn);pn=bn<0||un>2&&bn<gQ(fn,cn)}if(pn&&(this._averageCellLength||this.props.getItemLayout)&&!this._hiPriInProgress){this._hiPriInProgress=!0,this._updateCellsToRenderBatcher.dispose({abort:!0}),this._updateCellsToRender();return}else this._updateCellsToRenderBatcher.schedule()}_updateViewableItems(rn,nn){this._viewabilityTuples.forEach((an)=>{an.viewabilityHelper.onUpdate(rn,this._scrollMetrics.offset,this._scrollMetrics.visibleLength,this._getFrameMetrics,this._createViewToken,an.onViewableItemsChanged,nn)})}}cc.contextType=W2.VirtualizedListContext;var jc=NQ.default.create({verticallyInverted:{transform:"scaleY(-1)"},horizontallyInverted:{transform:"scaleX(-1)"},debug:{flex:1},debugOverlayBase:{position:"absolute",top:0,right:0},debugOverlay:{bottom:0,width:20,borderColor:"blue",borderWidth:1},debugOverlayFrame:{left:0,backgroundColor:"orange"},debugOverlayFrameLast:{left:0,borderColor:"green",borderWidth:2},debugOverlayFrameVis:{left:0,borderColor:"red",borderWidth:2}}),uBt=GQ.default=cc;kQ.exports=GQ.default});var WQ=In(function(dBt,HQ){var FQ=Number.isNaN||function(nn){return typeof nn==="number"&&nn!==nn};function Krt(rn,nn){if(rn===nn)return!0;if(FQ(rn)&&FQ(nn))return!0;return!1}function Xrt(rn,nn){if(rn.length!==nn.length)return!1;for(var an=0;an<rn.length;an++)if(!Krt(rn[an],nn[an]))return!1;return!0}function jrt(rn,nn){if(nn===void 0)nn=Xrt;var an=null;function sn(){var ln=[];for(var cn=0;cn<arguments.length;cn++)ln[cn]=arguments[cn];if(an&&an.lastThis===this&&nn(ln,an.lastArgs))return an.lastResult;var un=rn.apply(this,ln);return an={lastResult:un,lastArgs:ln,lastThis:this},un}return sn.clear=function(){an=null},sn}HQ.exports=jrt});import*as unt from"react";var XQ=In(function(qQ,YQ){var Gu=Gn().default,$rt=Ra().default;qQ.__esModule=!0;qQ.default=void 0;var Zrt=Gu(hs()),Qrt=Gu(as()),UQ=Gu(ns()),Jrt=Gu(bs()),ent=Gu(es()),tnt=Gu(h$()),ont=Gu(g0()),$c=Gu(cs()),k1=$rt(unt),rnt=Gu(qR()),VQ=VR(),nnt=Gu(WQ()),ant=["numColumns","columnWrapperStyle","removeClippedSubviews","strictMode"];function snt(rn){return rn!==null&&rn!==void 0?rn:ont.default.OS==="android"}function cf(rn){return rn!==null&&rn!==void 0?rn:1}function int(rn){return typeof Object(rn).length==="number"}class zQ extends k1.PureComponent{scrollToEnd(rn){if(this._listRef)this._listRef.scrollToEnd(rn)}scrollToIndex(rn){if(this._listRef)this._listRef.scrollToIndex(rn)}scrollToItem(rn){if(this._listRef)this._listRef.scrollToItem(rn)}scrollToOffset(rn){if(this._listRef)this._listRef.scrollToOffset(rn)}recordInteraction(){if(this._listRef)this._listRef.recordInteraction()}flashScrollIndicators(){if(this._listRef)this._listRef.flashScrollIndicators()}getScrollResponder(){if(this._listRef)return this._listRef.getScrollResponder()}getNativeScrollRef(){if(this._listRef)return this._listRef.getScrollRef()}getScrollableNode(){if(this._listRef)return this._listRef.getScrollableNode()}constructor(rn){super(rn);if(this._virtualizedListPairs=[],this._captureRef=(nn)=>{this._listRef=nn},this._getItem=(nn,an)=>{var sn=cf(this.props.numColumns);if(sn>1){var ln=[];for(var cn=0;cn<sn;cn++){var un=an*sn+cn;if(un<nn.length){var dn=nn[un];ln.push(dn)}}return ln}else return nn[an]},this._getItemCount=(nn)=>{if(nn!=null&&int(nn)){var an=cf(this.props.numColumns);return an>1?Math.ceil(nn.length/an):nn.length}else return 0},this._keyExtractor=(nn,an)=>{var sn,ln=cf(this.props.numColumns),cn=(sn=this.props.keyExtractor)!==null&&sn!==void 0?sn:VQ.keyExtractor;if(ln>1)return(0,$c.default)(Array.isArray(nn),"FlatList: Encountered internal consistency error, expected each item to consist of an array with 1-%s columns; instead, received a single item.",ln),nn.map((un,dn)=>cn(un,an*ln+dn)).join(":");return cn(nn,an)},this._renderer=(nn,an,sn,ln,cn)=>{var un=cf(ln),dn=(mn)=>{if(nn)return k1.createElement(nn,mn);else if(an)return an(mn);else return null},pn=(mn)=>{if(un>1){var{item:fn,index:hn}=mn;return(0,$c.default)(Array.isArray(fn),"Expected array of items with numColumns > 1"),k1.createElement(Jrt.default,{style:[lnt.row,sn]},fn.map((bn,yn)=>{var En=dn({item:bn,index:hn*un+yn,separators:mn.separators});return En!=null?k1.createElement(k1.Fragment,{key:yn},En):null}))}else return dn(mn)};return nn?{ListItemComponent:pn}:{renderItem:pn}},this._memoizedRenderer=(0,nnt.default)(this._renderer),this._checkProps(this.props),this.props.viewabilityConfigCallbackPairs)this._virtualizedListPairs=this.props.viewabilityConfigCallbackPairs.map((nn)=>({viewabilityConfig:nn.viewabilityConfig,onViewableItemsChanged:this._createOnViewableItemsChanged(nn.onViewableItemsChanged)}));else if(this.props.onViewableItemsChanged)this._virtualizedListPairs.push({viewabilityConfig:this.props.viewabilityConfig,onViewableItemsChanged:this._createOnViewableItemsChanged(this.props.onViewableItemsChanged)})}componentDidUpdate(rn){(0,$c.default)(rn.numColumns===this.props.numColumns,"Changing numColumns on the fly is not supported. Change the key prop on FlatList when changing the number of columns to force a fresh render of the component."),(0,$c.default)(rn.onViewableItemsChanged===this.props.onViewableItemsChanged,"Changing onViewableItemsChanged on the fly is not supported"),(0,$c.default)(!(0,tnt.default)(rn.viewabilityConfig,this.props.viewabilityConfig),"Changing viewabilityConfig on the fly is not supported"),(0,$c.default)(rn.viewabilityConfigCallbackPairs===this.props.viewabilityConfigCallbackPairs,"Changing viewabilityConfigCallbackPairs on the fly is not supported"),this._checkProps(this.props)}_checkProps(rn){var{getItem:nn,getItemCount:an,horizontal:sn,columnWrapperStyle:ln,onViewableItemsChanged:cn,viewabilityConfigCallbackPairs:un}=rn,dn=cf(this.props.numColumns);if((0,$c.default)(!nn&&!an,"FlatList does not support custom data formats."),dn>1)(0,$c.default)(!sn,"numColumns does not support horizontal.");else(0,$c.default)(!ln,"columnWrapperStyle not supported for single column lists");(0,$c.default)(!(cn&&un),"FlatList does not support setting both onViewableItemsChanged and viewabilityConfigCallbackPairs.")}_pushMultiColumnViewable(rn,nn){var an,sn=cf(this.props.numColumns),ln=(an=this.props.keyExtractor)!==null&&an!==void 0?an:VQ.keyExtractor;nn.item.forEach((cn,un)=>{(0,$c.default)(nn.index!=null,"Missing index!");var dn=nn.index*sn+un;rn.push((0,UQ.default)((0,UQ.default)({},nn),{},{item:cn,key:ln(cn,dn),index:dn}))})}_createOnViewableItemsChanged(rn){return(nn)=>{var an=cf(this.props.numColumns);if(rn)if(an>1){var sn=[],ln=[];nn.viewableItems.forEach((cn)=>this._pushMultiColumnViewable(ln,cn)),nn.changed.forEach((cn)=>this._pushMultiColumnViewable(sn,cn)),rn({viewableItems:ln,changed:sn})}else rn(nn)}}render(){var rn=this.props,{numColumns:nn,columnWrapperStyle:an,removeClippedSubviews:sn,strictMode:ln}=rn,cn=ln===void 0?!1:ln,un=(0,Qrt.default)(rn,ant),dn=cn?this._memoizedRenderer:this._renderer;return k1.createElement(rnt.default,(0,Zrt.default)({},un,{getItem:this._getItem,getItemCount:this._getItemCount,keyExtractor:this._keyExtractor,ref:this._captureRef,viewabilityConfigCallbackPairs:this._virtualizedListPairs,removeClippedSubviews:snt(sn)},dn(this.props.ListItemComponent,this.props.renderItem,an,nn,this.props.extraData)))}}var lnt=ent.default.create({row:{flexDirection:"row"}}),pBt=qQ.default=zQ;YQ.exports=qQ.default});var rg=In(function(jQ,$Q){var dnt=Gn().default;jQ.__esModule=!0;jQ.default=void 0;var pnt=dnt(XQ()),mBt=jQ.default=pnt.default;$Q.exports=jQ.default});var ng=In(function(ynt){var fnt=Gn().default;ynt.__esModule=!0;ynt.get=QQ;ynt.getEnforcing=bnt;var hnt=fnt(cs());function QQ(rn){return null}function bnt(rn){var nn=QQ(rn);return(0,hnt.default)(nn!=null,"TurboModuleRegistry.getEnforcing(...): '"+rn+"' could not be found. Verify that a module by this name is registered in the native binary."),nn}});var oJ=In(function(JQ,eJ){var vnt=Ra().default;JQ.__esModule=!0;JQ.default=void 0;var Tnt=vnt(ng()),hBt=JQ.default=Tnt.get("NativeAnimatedModule");eJ.exports=JQ.default});var sJ=In(function(rJ,nJ){var Rnt=Ra().default;rJ.__esModule=!0;rJ.default=void 0;var Ant=Rnt(ng()),bBt=rJ.default=Ant.get("NativeAnimatedTurboModule");nJ.exports=rJ.default});var YR=In(function(iJ,lJ){var Cnt=Gn().default;iJ.__esModule=!0;iJ.default=void 0;var wnt=Cnt(LR()),yBt=iJ.default=new wnt.default;lJ.exports=iJ.default});var sg=In(function(pJ,mJ){var ag=Gn().default;pJ.__esModule=!0;pJ.default=void 0;var Int=ag(g0()),U2=ag(YR()),uJ=ag(cs());class dJ{constructor(rn){if(Int.default.OS==="ios")(0,uJ.default)(rn!=null,"`new NativeEventEmitter()` requires a non-null argument."),this._nativeModule=rn}addListener(rn,nn,an){var sn;(sn=this._nativeModule)==null||sn.addListener(rn);var ln=U2.default.addListener(rn,nn,an);return{remove:()=>{if(ln!=null){var cn;(cn=this._nativeModule)==null||cn.removeListeners(1),ln.remove(),ln=null}}}}removeListener(rn,nn){var an;(an=this._nativeModule)==null||an.removeListeners(1),U2.default.removeListener(rn,nn)}emit(rn){for(var nn=arguments.length,an=Array(nn>1?nn-1:0),sn=1;sn<nn;sn++)an[sn-1]=arguments[sn];U2.default.emit(rn,...an)}removeAllListeners(rn){var nn;(0,uJ.default)(rn!=null,"`NativeEventEmitter.removeAllListener()` requires a non-null argument."),(nn=this._nativeModule)==null||nn.removeListeners(this.listenerCount(rn)),U2.default.removeAllListeners(rn)}listenerCount(rn){return U2.default.listenerCount(rn)}}pJ.default=dJ;mJ.exports=pJ.default});var EJ=In(function(hJ,bJ){var Pnt=Gn().default;hJ.__esModule=!0;hJ.default=void 0;var gnt=Pnt(g0()),EBt=hJ.default=gnt.default;bJ.exports=hJ.default});var TJ=In(function(SJ,_J){SJ.__esModule=!0;SJ.default=void 0;var Nnt={isLayoutAnimationEnabled:()=>!0,shouldEmitW3CPointerEvents:()=>!1,shouldPressibilityUseW3CPointerEventsForHover:()=>!1,animatedShouldDebounceQueueFlush:()=>!1,animatedShouldUseSingleOp:()=>!1},SBt=SJ.default=Nnt;_J.exports=SJ.default});var Pi=In(function(qnt){var pp=Gn().default;qnt.__esModule=!0;qnt.API=void 0;qnt.addWhitelistedInterpolationParam=PJ;qnt.addWhitelistedStyleProp=IJ;qnt.addWhitelistedTransformProp=OJ;qnt.assertNativeAnimatedModule=FJ;qnt.default=void 0;qnt.generateNewAnimationId=BJ;qnt.generateNewNodeTag=kJ;qnt.isSupportedColorStyleProp=gJ;qnt.isSupportedInterpolationParam=fg;qnt.isSupportedStyleProp=pg;qnt.isSupportedTransformProp=mg;qnt.shouldUseNativeDriver=HJ;qnt.transformDataType=WJ;qnt.validateInterpolation=GJ;qnt.validateStyles=NJ;qnt.validateTransform=DJ;var xJ=pp(ns()),knt=pp(oJ()),Bnt=pp(sJ()),Fnt=pp(sg()),dg=pp(EJ()),ug=pp(TJ()),Ks=pp(cs()),_Bt=pp(YR()),B1=dg.default.OS==="ios"&&globalThis.RN$Bridgeless===!0?Bnt.default:knt.default,Hnt=1,Wnt=1,ig,lg=new Set,cg=!1,RJ=[],Unt=[],XR=!1;dg.default.OS==="android"&&!!(B1!=null&&B1.queueAndExecuteBatchedOperations)&&ug.default.animatedShouldUseSingleOp();var KR=null,Vnt={},znt={},ka=XR?function(){var rn=["createAnimatedNode","updateAnimatedNodeConfig","getValue","startListeningToAnimatedNodeValue","stopListeningToAnimatedNodeValue","connectAnimatedNodes","disconnectAnimatedNodes","startAnimatingNode","stopAnimation","setAnimatedNodeValue","setAnimatedNodeOffset","flattenAnimatedNodeOffset","extractAnimatedNodeOffset","connectAnimatedNodeToView","disconnectAnimatedNodeFromView","restoreDefaultValues","dropAnimatedNode","addAnimatedEventToView","removeAnimatedEventFromView","addListener","removeListener"];return rn.reduce((nn,an,sn)=>(nn[an]=sn+1,nn),{})}():B1,Cs=qnt.API={getValue:function(nn,an){if((0,Ks.default)(ka,"Native animated module is not available"),XR){if(an)Vnt[nn]=an;Cs.queueOperation(ka.getValue,nn)}else Cs.queueOperation(ka.getValue,nn,an)},setWaitingForIdentifier:function(nn){if(lg.add(nn),cg=!0,ug.default.animatedShouldDebounceQueueFlush()&&KR)clearTimeout(KR)},unsetWaitingForIdentifier:function(nn){if(lg.delete(nn),lg.size===0)cg=!1,Cs.disableQueue()},disableQueue:function(){if((0,Ks.default)(ka,"Native animated module is not available"),ug.default.animatedShouldDebounceQueueFlush()){var nn=KR;clearImmediate(nn),KR=setImmediate(Cs.flushQueue)}else Cs.flushQueue()},flushQueue:function(){},queueOperation:function(nn){for(var an=arguments.length,sn=Array(an>1?an-1:0),ln=1;ln<an;ln++)sn[ln-1]=arguments[ln];if(XR){Unt.push(nn,...sn);return}if(cg||RJ.length!==0)RJ.push(()=>nn(...sn));else nn(...sn)},createAnimatedNode:function(nn,an){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.createAnimatedNode,nn,an)},updateAnimatedNodeConfig:function(nn,an){(0,Ks.default)(ka,"Native animated module is not available")},startListeningToAnimatedNodeValue:function(nn){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.startListeningToAnimatedNodeValue,nn)},stopListeningToAnimatedNodeValue:function(nn){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.stopListeningToAnimatedNodeValue,nn)},connectAnimatedNodes:function(nn,an){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.connectAnimatedNodes,nn,an)},disconnectAnimatedNodes:function(nn,an){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.disconnectAnimatedNodes,nn,an)},startAnimatingNode:function(nn,an,sn,ln){if((0,Ks.default)(ka,"Native animated module is not available"),XR){if(ln)znt[nn]=ln;Cs.queueOperation(ka.startAnimatingNode,nn,an,sn)}else Cs.queueOperation(ka.startAnimatingNode,nn,an,sn,ln)},stopAnimation:function(nn){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.stopAnimation,nn)},setAnimatedNodeValue:function(nn,an){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.setAnimatedNodeValue,nn,an)},setAnimatedNodeOffset:function(nn,an){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.setAnimatedNodeOffset,nn,an)},flattenAnimatedNodeOffset:function(nn){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.flattenAnimatedNodeOffset,nn)},extractAnimatedNodeOffset:function(nn){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.extractAnimatedNodeOffset,nn)},connectAnimatedNodeToView:function(nn,an){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.connectAnimatedNodeToView,nn,an)},disconnectAnimatedNodeFromView:function(nn,an){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.disconnectAnimatedNodeFromView,nn,an)},restoreDefaultValues:function(nn){if((0,Ks.default)(ka,"Native animated module is not available"),ka.restoreDefaultValues!=null)Cs.queueOperation(ka.restoreDefaultValues,nn)},dropAnimatedNode:function(nn){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.dropAnimatedNode,nn)},addAnimatedEventToView:function(nn,an,sn){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.addAnimatedEventToView,nn,an,sn)},removeAnimatedEventFromView(rn,nn,an){(0,Ks.default)(ka,"Native animated module is not available"),Cs.queueOperation(ka.removeAnimatedEventFromView,rn,nn,an)}},MJ={backgroundColor:!0,borderBottomColor:!0,borderColor:!0,borderEndColor:!0,borderLeftColor:!0,borderRightColor:!0,borderStartColor:!0,borderTopColor:!0,color:!0,tintColor:!0},CJ=(0,xJ.default)((0,xJ.default)({},MJ),{},{borderBottomEndRadius:!0,borderBottomLeftRadius:!0,borderBottomRightRadius:!0,borderBottomStartRadius:!0,borderRadius:!0,borderTopEndRadius:!0,borderTopLeftRadius:!0,borderTopRightRadius:!0,borderTopStartRadius:!0,elevation:!0,opacity:!0,transform:!0,zIndex:!0,shadowOpacity:!0,shadowRadius:!0,scaleX:!0,scaleY:!0,translateX:!0,translateY:!0}),wJ={translateX:!0,translateY:!0,scale:!0,scaleX:!0,scaleY:!0,rotate:!0,rotateX:!0,rotateY:!0,rotateZ:!0,perspective:!0},LJ={inputRange:!0,outputRange:!0,extrapolate:!0,extrapolateRight:!0,extrapolateLeft:!0};function IJ(rn){CJ[rn]=!0}function OJ(rn){wJ[rn]=!0}function PJ(rn){LJ[rn]=!0}function gJ(rn){return MJ.hasOwnProperty(rn)}function pg(rn){return CJ.hasOwnProperty(rn)}function mg(rn){return wJ.hasOwnProperty(rn)}function fg(rn){return LJ.hasOwnProperty(rn)}function DJ(rn){rn.forEach((nn)=>{if(!mg(nn.property))throw Error("Property '"+nn.property+"' is not supported by native animated module")})}function NJ(rn){for(var nn in rn)if(!pg(nn))throw Error("Style property '"+nn+"' is not supported by native animated module")}function GJ(rn){for(var nn in rn)if(!fg(nn))throw Error("Interpolation property '"+nn+"' is not supported by native animated module")}function kJ(){return Hnt++}function BJ(){return Wnt++}function FJ(){(0,Ks.default)(B1,"Native animated module is not available")}var AJ=!1;function HJ(rn){if(rn.useNativeDriver==null)console.warn("Animated: `useNativeDriver` was not specified. This is a required option and must be explicitly set to `true` or `false`");if(rn.useNativeDriver===!0&&!B1){if(!AJ)console.warn("Animated: `useNativeDriver` is not supported because the native animated module is missing. Falling back to JS-based animation. To resolve this, add `RCTAnimation` module to this app, or remove `useNativeDriver`. Make sure to run `bundle exec pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md"),AJ=!0;return!1}return rn.useNativeDriver||!1}function WJ(rn){if(typeof rn!=="string")return rn;if(/deg$/.test(rn)){var nn=parseFloat(rn)||0,an=nn*Math.PI/180;return an}else return rn}var vBt=qnt.default={API:Cs,isSupportedColorStyleProp:gJ,isSupportedStyleProp:pg,isSupportedTransformProp:mg,isSupportedInterpolationParam:fg,addWhitelistedStyleProp:IJ,addWhitelistedTransformProp:OJ,addWhitelistedInterpolationParam:PJ,validateStyles:NJ,validateTransform:DJ,validateInterpolation:GJ,generateNewNodeTag:kJ,generateNewAnimationId:BJ,assertNativeAnimatedModule:FJ,shouldUseNativeDriver:HJ,transformDataType:WJ,get nativeEventEmitter(){if(!ig)ig=new Fnt.default(dg.default.OS!=="ios"?null:B1);return ig}}});var k0=In(function(KJ,XJ){var qJ=Gn().default;KJ.__esModule=!0;KJ.default=void 0;var F1=qJ(Pi()),lat=qJ(cs()),zJ=F1.default.API,cat=1;class YJ{__attach(){}__detach(){if(this.__isNative&&this.__nativeTag!=null)F1.default.API.dropAnimatedNode(this.__nativeTag),this.__nativeTag=void 0}__getValue(){}__getAnimatedValue(){return this.__getValue()}__addChild(rn){}__removeChild(rn){}__getChildren(){return[]}constructor(){this._listeners={}}__makeNative(rn){if(!this.__isNative)throw Error('This node cannot be made a "native" animated node');if(this._platformConfig=rn,this.hasListeners())this._startListeningToNativeValueUpdates()}addListener(rn){var nn=String(cat++);if(this._listeners[nn]=rn,this.__isNative)this._startListeningToNativeValueUpdates();return nn}removeListener(rn){if(delete this._listeners[rn],this.__isNative&&!this.hasListeners())this._stopListeningForNativeValueUpdates()}removeAllListeners(){if(this._listeners={},this.__isNative)this._stopListeningForNativeValueUpdates()}hasListeners(){return!!Object.keys(this._listeners).length}_startListeningToNativeValueUpdates(){if(this.__nativeAnimatedValueListener&&!this.__shouldUpdateListenersForNewNativeTag)return;if(this.__shouldUpdateListenersForNewNativeTag)this.__shouldUpdateListenersForNewNativeTag=!1,this._stopListeningForNativeValueUpdates();zJ.startListeningToAnimatedNodeValue(this.__getNativeTag()),this.__nativeAnimatedValueListener=F1.default.nativeEventEmitter.addListener("onAnimatedValueUpdate",(rn)=>{if(rn.tag!==this.__getNativeTag())return;this.__onAnimatedValueUpdateReceived(rn.value)})}__onAnimatedValueUpdateReceived(rn){this.__callListeners(rn)}__callListeners(rn){for(var nn in this._listeners)this._listeners[nn]({value:rn})}_stopListeningForNativeValueUpdates(){if(!this.__nativeAnimatedValueListener)return;this.__nativeAnimatedValueListener.remove(),this.__nativeAnimatedValueListener=null,zJ.stopListeningToAnimatedNodeValue(this.__getNativeTag())}__getNativeTag(){var rn;F1.default.assertNativeAnimatedModule(),(0,lat.default)(this.__isNative,'Attempt to get native tag from node not marked as "native"');var nn=(rn=this.__nativeTag)!==null&&rn!==void 0?rn:F1.default.generateNewNodeTag();if(this.__nativeTag==null){this.__nativeTag=nn;var an=this.__getNativeConfig();if(this._platformConfig)an.platformConfig=this._platformConfig;F1.default.API.createAnimatedNode(nn,an),this.__shouldUpdateListenersForNewNativeTag=!0}return nn}__getNativeConfig(){throw Error("This JS animated node type cannot be used as native animated node")}toJSON(){return this.__getValue()}__getPlatformConfig(){return this._platformConfig}__setPlatformConfig(rn){this._platformConfig=rn}}var xBt=KJ.default=YJ;XJ.exports=KJ.default});var gl=In(function(QJ,JJ){var bg=Gn().default;QJ.__esModule=!0;QJ.default=void 0;var $J=bg(D1()),dat=bg(k0()),hg=bg(Pi());class ZJ extends dat.default{constructor(){super();this._children=[]}__makeNative(rn){if(!this.__isNative){this.__isNative=!0;for(var nn=(0,$J.default)(this._children),an;!(an=nn()).done;){var sn=an.value;sn.__makeNative(rn),hg.default.API.connectAnimatedNodes(this.__getNativeTag(),sn.__getNativeTag())}}super.__makeNative(rn)}__addChild(rn){if(this._children.length===0)this.__attach();if(this._children.push(rn),this.__isNative)rn.__makeNative(this.__getPlatformConfig()),hg.default.API.connectAnimatedNodes(this.__getNativeTag(),rn.__getNativeTag())}__removeChild(rn){var nn=this._children.indexOf(rn);if(nn===-1){console.warn("Trying to remove a child that doesn't exist");return}if(this.__isNative&&rn.__isNative)hg.default.API.disconnectAnimatedNodes(this.__getNativeTag(),rn.__getNativeTag());if(this._children.splice(nn,1),this._children.length===0)this.__detach()}__getChildren(){return this._children}__callListeners(rn){if(super.__callListeners(rn),!this.__isNative)for(var nn=(0,$J.default)(this._children),an;!(an=nn()).done;){var sn=an.value;if(sn.__getValue)sn.__callListeners(sn.__getValue())}}}var RBt=QJ.default=ZJ;JJ.exports=QJ.default});var Zc=In(function(aee,see){var V2=Gn().default;aee.__esModule=!0;aee.default=void 0;var tee=V2(ns()),mat=V2(gl()),oee=V2(Pi()),B0=V2(cs()),fat=V2(_2()),nee=!1,hat=(rn)=>rn;function yg(rn){if(rn.outputRange&&typeof rn.outputRange[0]==="string")return Eat(rn);var{outputRange:nn,inputRange:an}=rn;if(nee)ree("outputRange",nn),ree("inputRange",an),Tat(an),(0,B0.default)(an.length===nn.length,"inputRange ("+an.length+") and outputRange ("+nn.length+") must have the same length");var sn=rn.easing||hat,ln="extend";if(rn.extrapolateLeft!==void 0)ln=rn.extrapolateLeft;else if(rn.extrapolate!==void 0)ln=rn.extrapolate;var cn="extend";if(rn.extrapolateRight!==void 0)cn=rn.extrapolateRight;else if(rn.extrapolate!==void 0)cn=rn.extrapolate;return(un)=>{(0,B0.default)(typeof un==="number","Cannot interpolation an input which is not a number");var dn=vat(un,an);return bat(un,an[dn],an[dn+1],nn[dn],nn[dn+1],sn,ln,cn)}}function bat(rn,nn,an,sn,ln,cn,un,dn){var pn=rn;if(pn<nn){if(un==="identity")return pn;else if(un==="clamp")pn=nn}if(pn>an){if(dn==="identity")return pn;else if(dn==="clamp")pn=an}if(sn===ln)return sn;if(nn===an){if(rn<=nn)return sn;return ln}if(nn===-1/0)pn=-pn;else if(an===1/0)pn=pn-nn;else pn=(pn-nn)/(an-nn);if(pn=cn(pn),sn===-1/0)pn=-pn;else if(ln===1/0)pn=pn+sn;else pn=pn*(ln-sn)+sn;return pn}function yat(rn){var nn=(0,fat.default)(rn);if(nn===null||typeof nn!=="number")return rn;nn=nn||0;var an=(nn&4278190080)>>>24,sn=(nn&16711680)>>>16,ln=(nn&65280)>>>8,cn=(nn&255)/255;return"rgba("+an+", "+sn+", "+ln+", "+cn+")"}var H1=/[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;function Eat(rn){var nn=rn.outputRange;(0,B0.default)(nn.length>=2,"Bad output range"),nn=nn.map(yat),_at(nn);var an=nn[0].match(H1).map(()=>[]);nn.forEach((cn)=>{cn.match(H1).forEach((un,dn)=>{an[dn].push(+un)})});var sn=nn[0].match(H1).map((cn,un)=>yg((0,tee.default)((0,tee.default)({},rn),{},{outputRange:an[un]}))),ln=Sat(nn[0]);return(cn)=>{var un=0;return nn[0].replace(H1,()=>{var dn=+sn[un++](cn);if(ln)dn=un<4?Math.round(dn):Math.round(dn*1000)/1000;return String(dn)})}}function Sat(rn){return typeof rn==="string"&&rn.startsWith("rgb")}function _at(rn){var nn=rn[0].replace(H1,"");for(var an=1;an<rn.length;++an)(0,B0.default)(nn===rn[an].replace(H1,""),"invalid pattern "+rn[0]+" and "+rn[an])}function vat(rn,nn){var an;for(an=1;an<nn.length-1;++an)if(nn[an]>=rn)break;return an-1}function Tat(rn){(0,B0.default)(rn.length>=2,"inputRange must have at least 2 elements");var nn="inputRange must be monotonically non-decreasing "+String(rn);for(var an=1;an<rn.length;++an)(0,B0.default)(rn[an]>=rn[an-1],nn)}function ree(rn,nn){(0,B0.default)(nn.length>=2,rn+" must have at least 2 elements"),(0,B0.default)(nn.length!==2||nn[0]!==-1/0||nn[1]!==1/0,rn+"cannot be ]-infinity;+infinity[ "+nn)}class jR extends mat.default{constructor(rn,nn){super();this._parent=rn,this._config=nn,this._interpolation=yg(nn)}__makeNative(rn){this._parent.__makeNative(rn),super.__makeNative(rn)}__getValue(){var rn=this._parent.__getValue();return(0,B0.default)(typeof rn==="number","Cannot interpolate an input which is not a number."),this._interpolation(rn)}interpolate(rn){return new jR(this,rn)}__attach(){this._parent.__addChild(this)}__detach(){this._parent.__removeChild(this),super.__detach()}__transformDataType(rn){return rn.map(oee.default.transformDataType)}__getNativeConfig(){if(nee)oee.default.validateInterpolation(this._config);return{inputRange:this._config.inputRange,outputRange:this.__transformDataType(this._config.outputRange),extrapolateLeft:this._config.extrapolateLeft||this._config.extrapolate||"extend",extrapolateRight:this._config.extrapolateRight||this._config.extrapolate||"extend",type:"interpolation"}}}jR.__createInterpolation=yg;var ABt=aee.default=jR;see.exports=aee.default});var uc=In(function(uee,dee){var $R=Gn().default;uee.__esModule=!0;uee.default=void 0;var Rat=$R(Zc()),Aat=$R(gl()),lee=$R(B2()),Mat=$R(Pi()),F0=Mat.default.API;function Cat(rn){var nn=new Set;function an(sn){if(typeof sn.update==="function")nn.add(sn);else sn.__getChildren().forEach(an)}an(rn),nn.forEach((sn)=>sn.update())}function wat(rn,nn){F0.setWaitingForIdentifier(rn),nn(),F0.unsetWaitingForIdentifier(rn)}class cee extends Aat.default{constructor(rn,nn){super();if(typeof rn!=="number")throw Error("AnimatedValue: Attempting to set value to undefined");if(this._startingValue=this._value=rn,this._offset=0,this._animation=null,nn&&nn.useNativeDriver)this.__makeNative()}__detach(){if(this.__isNative)F0.getValue(this.__getNativeTag(),(rn)=>{this._value=rn-this._offset});this.stopAnimation(),super.__detach()}__getValue(){return this._value+this._offset}setValue(rn){if(this._animation)this._animation.stop(),this._animation=null;if(this._updateValue(rn,!this.__isNative),this.__isNative)wat(this.__getNativeTag().toString(),()=>F0.setAnimatedNodeValue(this.__getNativeTag(),rn))}setOffset(rn){if(this._offset=rn,this.__isNative)F0.setAnimatedNodeOffset(this.__getNativeTag(),rn)}flattenOffset(){if(this._value+=this._offset,this._offset=0,this.__isNative)F0.flattenAnimatedNodeOffset(this.__getNativeTag())}extractOffset(){if(this._offset+=this._value,this._value=0,this.__isNative)F0.extractAnimatedNodeOffset(this.__getNativeTag())}stopAnimation(rn){if(this.stopTracking(),this._animation&&this._animation.stop(),this._animation=null,rn)if(this.__isNative)F0.getValue(this.__getNativeTag(),rn);else rn(this.__getValue())}resetAnimation(rn){if(this.stopAnimation(rn),this._value=this._startingValue,this.__isNative)F0.setAnimatedNodeValue(this.__getNativeTag(),this._startingValue)}__onAnimatedValueUpdateReceived(rn){this._updateValue(rn,!1)}interpolate(rn){return new Rat.default(this,rn)}animate(rn,nn){var an=null;if(rn.__isInteraction)an=lee.default.createInteractionHandle();var sn=this._animation;this._animation&&this._animation.stop(),this._animation=rn,rn.start(this._value,(ln)=>{this._updateValue(ln,!0)},(ln)=>{if(this._animation=null,an!==null)lee.default.clearInteractionHandle(an);nn&&nn(ln)},sn,this)}stopTracking(){this._tracking&&this._tracking.__detach(),this._tracking=null}track(rn){this.stopTracking(),this._tracking=rn,this._tracking&&this._tracking.update()}_updateValue(rn,nn){if(rn===void 0)throw Error("AnimatedValue: Attempting to set value to undefined");if(this._value=rn,nn)Cat(this);super.__callListeners(this.__getValue())}__getNativeConfig(){return{type:"value",value:this._value,offset:this._offset}}}var MBt=uee.default=cee;dee.exports=uee.default});var z2=In(function(Oat){var Iat=Ra().default,hee=Gn().default;Oat.__esModule=!0;Oat.AnimatedEvent=void 0;Oat.attachNativeEvent=bee;var ZR=hee(uc()),Eg=Iat(Pi()),mp=hee(cs()),mee=!1;function bee(rn,nn,an){var sn=[],ln=(cn,un)=>{if(cn instanceof ZR.default)cn.__makeNative(),sn.push({nativeEventPath:un,animatedValueTag:cn.__getNativeTag()});else if(typeof cn==="object")for(var dn in cn)ln(cn[dn],un.concat(dn))};if((0,mp.default)(an[0]&&an[0].nativeEvent,"Native driven events only support animated values contained inside `nativeEvent`."),ln(an[0].nativeEvent,[]),rn!=null)sn.forEach((cn)=>{Eg.default.API.addAnimatedEventToView(rn,nn,cn)});return{detach(){if(rn!=null)sn.forEach((cn)=>{Eg.default.API.removeAnimatedEventFromView(rn,nn,cn.animatedValueTag)})}}}function fee(rn,nn){var an=(sn,ln,cn)=>{if(sn instanceof ZR.default){(0,mp.default)(typeof ln==="number","Bad mapping of event key "+cn+", should be number but got "+typeof ln);return}if(typeof ln==="number"){(0,mp.default)(sn instanceof ZR.default,"Bad mapping of type "+typeof sn+" for key "+cn+", event value must map to AnimatedValue");return}(0,mp.default)(typeof sn==="object","Bad mapping of type "+typeof sn+" for key "+cn),(0,mp.default)(typeof ln==="object","Bad event of type "+typeof ln+" for key "+cn);for(var un in sn)an(sn[un],ln[un],un)};(0,mp.default)(nn.length>=rn.length,"Event has less arguments than mapping"),rn.forEach((sn,ln)=>{an(sn,nn[ln],"arg"+ln)})}class yee{constructor(rn,nn){if(this._listeners=[],this._argMapping=rn,nn==null)console.warn("Animated.event now requires a second argument for options"),nn={useNativeDriver:!1};if(nn.listener)this.__addListener(nn.listener);this._callListeners=this._callListeners.bind(this),this._attachedEvent=null,this.__isNative=(0,Eg.shouldUseNativeDriver)(nn)}__addListener(rn){this._listeners.push(rn)}__removeListener(rn){this._listeners=this._listeners.filter((nn)=>nn!==rn)}__attach(rn,nn){(0,mp.default)(this.__isNative,"Only native driven events need to be attached."),this._attachedEvent=bee(rn,nn,this._argMapping)}__detach(rn,nn){(0,mp.default)(this.__isNative,"Only native driven events need to be detached."),this._attachedEvent&&this._attachedEvent.detach()}__getHandler(){var rn=this;if(this.__isNative)if(mee){var nn=!1;return function(){for(var sn=arguments.length,ln=Array(sn),cn=0;cn<sn;cn++)ln[cn]=arguments[cn];if(!nn)fee(rn._argMapping,ln),nn=!0;rn._callListeners(...ln)}}else return this._callListeners;var an=!1;return function(){for(var sn=arguments.length,ln=Array(sn),cn=0;cn<sn;cn++)ln[cn]=arguments[cn];if(mee&&!an)fee(rn._argMapping,ln),an=!0;var un=(dn,pn,mn)=>{if(dn instanceof ZR.default){if(typeof pn==="number")dn.setValue(pn)}else if(typeof dn==="object")for(var fn in dn)un(dn[fn],pn[fn],fn)};rn._argMapping.forEach((dn,pn)=>{un(dn,ln[pn],"arg"+pn)}),rn._callListeners(...ln)}}_callListeners(){for(var rn=arguments.length,nn=Array(rn),an=0;an<rn;an++)nn[an]=arguments[an];this._listeners.forEach((sn)=>sn(...nn))}}Oat.AnimatedEvent=yee});var Ree=In(function(vee,Tee){var Sg=Gn().default;vee.__esModule=!0;vee.default=void 0;var W1=Sg(k0()),Dat=Sg(gl()),See=Sg(Pi());class _ee extends Dat.default{constructor(rn){super();this._transforms=rn}__makeNative(){this._transforms.forEach((rn)=>{for(var nn in rn){var an=rn[nn];if(an instanceof W1.default)an.__makeNative()}}),super.__makeNative()}__getValue(){return this._transforms.map((rn)=>{var nn={};for(var an in rn){var sn=rn[an];if(sn instanceof W1.default)nn[an]=sn.__getValue();else nn[an]=sn}return nn})}__getAnimatedValue(){return this._transforms.map((rn)=>{var nn={};for(var an in rn){var sn=rn[an];if(sn instanceof W1.default)nn[an]=sn.__getAnimatedValue();else nn[an]=sn}return nn})}__attach(){this._transforms.forEach((rn)=>{for(var nn in rn){var an=rn[nn];if(an instanceof W1.default)an.__addChild(this)}})}__detach(){this._transforms.forEach((rn)=>{for(var nn in rn){var an=rn[nn];if(an instanceof W1.default)an.__removeChild(this)}}),super.__detach()}__getNativeConfig(){var rn=[];return this._transforms.forEach((nn)=>{for(var an in nn){var sn=nn[an];if(sn instanceof W1.default)rn.push({type:"animated",property:an,nodeTag:sn.__getNativeTag()});else rn.push({type:"static",property:an,value:See.default.transformDataType(sn)})}}),See.default.validateTransform(rn),{type:"transform",transforms:rn}}}var wBt=vee.default=_ee;Tee.exports=vee.default});var Iee=In(function(Cee,wee){var q2=Gn().default;Cee.__esModule=!0;Cee.default=void 0;var uf=q2(k0()),Gat=q2(Ree()),kat=q2(gl()),Bat=q2(Pi()),Fat=q2(es()),Hat=Fat.default.flatten;function Aee(rn){var nn=Hat(rn),an={};for(var sn in nn){var ln=nn[sn];if(sn==="transform"&&Array.isArray(ln))an[sn]=new Gat.default(ln);else if(ln instanceof uf.default)an[sn]=ln;else if(ln&&!Array.isArray(ln)&&typeof ln==="object")an[sn]=Aee(ln)}return an}class Mee extends kat.default{constructor(rn){super();this._inputStyle=rn,this._style=Aee(rn)}_walkStyleAndGetValues(rn){var nn={};for(var an in rn){var sn=rn[an];if(sn instanceof uf.default){if(!sn.__isNative)nn[an]=sn.__getValue()}else if(sn&&!Array.isArray(sn)&&typeof sn==="object")nn[an]=this._walkStyleAndGetValues(sn);else nn[an]=sn}return nn}__getValue(){return[this._inputStyle,this._walkStyleAndGetValues(this._style)]}_walkStyleAndGetAnimatedValues(rn){var nn={};for(var an in rn){var sn=rn[an];if(sn instanceof uf.default)nn[an]=sn.__getAnimatedValue();else if(sn&&!Array.isArray(sn)&&typeof sn==="object")nn[an]=this._walkStyleAndGetAnimatedValues(sn)}return nn}__getAnimatedValue(){return this._walkStyleAndGetAnimatedValues(this._style)}__attach(){for(var rn in this._style){var nn=this._style[rn];if(nn instanceof uf.default)nn.__addChild(this)}}__detach(){for(var rn in this._style){var nn=this._style[rn];if(nn instanceof uf.default)nn.__removeChild(this)}super.__detach()}__makeNative(){for(var rn in this._style){var nn=this._style[rn];if(nn instanceof uf.default)nn.__makeNative()}super.__makeNative()}__getNativeConfig(){var rn={};for(var nn in this._style)if(this._style[nn]instanceof uf.default){var an=this._style[nn];an.__makeNative(),rn[nn]=an.__getNativeTag()}return Bat.default.validateStyles(rn),{type:"style",style:rn}}}var LBt=Cee.default=Mee;wee.exports=Cee.default});var vg=In(function(Dee,Nee){var Y2=Gn().default;Dee.__esModule=!0;Dee.default=void 0;var Oee=Y2(ns()),Uat=z2(),df=Y2(k0()),Pee=Y2(Iee()),_g=Y2(Pi()),QR=Y2(cs());class gee extends df.default{constructor(rn,nn){super();if(rn.style)rn=(0,Oee.default)((0,Oee.default)({},rn),{},{style:new Pee.default(rn.style)});this._props=rn,this._callback=nn}__getValue(){var rn={};for(var nn in this._props){var an=this._props[nn];if(an instanceof df.default){if(!an.__isNative||an instanceof Pee.default)rn[nn]=an.__getValue()}else if(an instanceof Uat.AnimatedEvent)rn[nn]=an.__getHandler();else rn[nn]=an}return rn}__getAnimatedValue(){var rn={};for(var nn in this._props){var an=this._props[nn];if(an instanceof df.default)rn[nn]=an.__getAnimatedValue()}return rn}__attach(){for(var rn in this._props){var nn=this._props[rn];if(nn instanceof df.default)nn.__addChild(this)}}__detach(){if(this.__isNative&&this._animatedView)this.__disconnectAnimatedView();this._animatedView=null;for(var rn in this._props){var nn=this._props[rn];if(nn instanceof df.default)nn.__removeChild(this)}super.__detach()}update(){this._callback()}__makeNative(){if(!this.__isNative){this.__isNative=!0;for(var rn in this._props){var nn=this._props[rn];if(nn instanceof df.default)nn.__makeNative()}if(this._animatedView)this.__connectAnimatedView()}}setNativeView(rn){if(this._animatedView===rn)return;if(this._animatedView=rn,this.__isNative)this.__connectAnimatedView()}__connectAnimatedView(){(0,QR.default)(this.__isNative,'Expected node to be marked as "native"');var rn=this._animatedView;(0,QR.default)(rn!=null,"Unable to locate attached view in the native tree"),_g.default.API.connectAnimatedNodeToView(this.__getNativeTag(),rn)}__disconnectAnimatedView(){(0,QR.default)(this.__isNative,'Expected node to be marked as "native"');var rn=this._animatedView;(0,QR.default)(rn!=null,"Unable to locate attached view in the native tree"),_g.default.API.disconnectAnimatedNodeFromView(this.__getNativeTag(),rn)}__restoreDefaultValues(){if(this.__isNative)_g.default.API.restoreDefaultValues(this.__getNativeTag())}__getNativeConfig(){var rn={};for(var nn in this._props){var an=this._props[nn];if(an instanceof df.default)an.__makeNative(),rn[nn]=an.__getNativeTag()}return{type:"props",props:rn}}}var IBt=Dee.default=gee;Nee.exports=Dee.default});import*as JR from"react";var Fee=In(function(kee,Bee){kee.__esModule=!0;kee.default=zat;function zat(rn){var nn=JR.useRef(void 0);return JR.useCallback((an)=>{if(nn.current)nn.current(),nn.current=void 0;if(an!=null)nn.current=rn(an)},[rn])}Bee.exports=kee.default});import*as dc from"react";var zee=In(function(Uee,Vee){var K2=Gn().default;Uee.__esModule=!0;Uee.default=Zat;var Hee=K2(ns()),Kat=K2(vg()),Xat=z2(),jat=K2(Fee()),$at=K2(Pi()),Wee=K2(rf());function Zat(rn){var nn=dc.useReducer((dn)=>dn+1,0),an=nn[1],sn=dc.useRef(null),ln=dc.useMemo(()=>new Kat.default(rn,()=>sn.current==null?void 0:sn.current()),[rn]);Jat(ln);var cn=dc.useCallback((dn)=>{ln.setNativeView(dn),sn.current=()=>{an()};var pn=est(dn),mn=[];for(var fn in rn){var hn=rn[fn];if(hn instanceof Xat.AnimatedEvent&&hn.__isNative)hn.__attach(pn,fn),mn.push([fn,hn])}return()=>{sn.current=null;for(var bn=0,yn=mn;bn<yn.length;bn++){var En=yn[bn],Sn=En[0],_n=En[1];_n.__detach(pn,Sn)}}},[rn,ln]),un=(0,jat.default)(cn);return[Qat(ln),un]}function Qat(rn){return(0,Hee.default)((0,Hee.default)({},rn.__getValue()),{},{collapsable:!1})}function Jat(rn){var nn=dc.useRef(null),an=dc.useRef(!1);dc.useEffect(()=>{$at.default.API.flushQueue()}),(0,Wee.default)(()=>(an.current=!1,()=>{an.current=!0}),[]),(0,Wee.default)(()=>{if(rn.__attach(),nn.current!=null){var sn=nn.current;sn.__restoreDefaultValues(),sn.__detach(),nn.current=null}return()=>{if(an.current)rn.__detach();else nn.current=rn}},[rn])}function est(rn){return typeof rn==="object"&&typeof(rn==null?void 0:rn.getScrollableNode)==="function"?rn.getScrollableNode():rn}Vee.exports=Uee.default});import*as qee from"react";var Xee=In(function(Yee,Kee){Yee.__esModule=!0;Yee.default=rst;function rst(){for(var rn=arguments.length,nn=Array(rn),an=0;an<rn;an++)nn[an]=arguments[an];return qee.useCallback((sn)=>{for(var ln=0,cn=nn;ln<cn.length;ln++){var un=cn[ln];if(un!=null)if(typeof un==="function")un(sn);else un.current=sn}},[...nn])}Kee.exports=Yee.default});import*as hst from"react";var H0=In(function($ee,Zee){var U1=Gn().default,sst=Ra().default;$ee.__esModule=!0;$ee.default=pst;var ist=U1(hs()),lst=U1(as()),cst=U1(zee()),ust=U1(Xee()),OBt=U1(es()),PBt=U1(bs()),jee=sst(hst),dst=["style"];function pst(rn){return jee.forwardRef((nn,an)=>{var sn=(0,cst.default)(nn),ln=sn[0],cn=sn[1],un=(0,ust.default)(cn,an),{passthroughAnimatedPropExplicitValues:dn,style:pn}=ln,mn=dn!==null&&dn!==void 0?dn:{},fn=mn.style,hn=(0,lst.default)(mn,dst),bn=[pn,fn];return jee.createElement(rn,(0,ist.default)({},ln,hn,{style:bn,ref:un}))})}Zee.exports=$ee.default});import*as Tst from"react";var ote=In(function(Jee,ete){var bst=Ra().default,Tg=Gn().default;Jee.__esModule=!0;Jee.default=void 0;var yst=Tg(hs()),Qee=bst(Tst),Est=Tg(rg()),Sst=Tg(H0()),_st=Qee.forwardRef((rn,nn)=>Qee.createElement(Est.default,(0,yst.default)({scrollEventThrottle:0.0001},rn,{ref:nn}))),gBt=Jee.default=(0,Sst.default)(_st);ete.exports=Jee.default});var Ag=In(function(Ast){Ast.__esModule=!0;Ast.getAssetByID=Rst;Ast.registerAsset=xst;var xg=typeof globalThis<"u"?globalThis:typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Rg=Symbol.for("react-native-web.AssetRegistry");if(!xg[Rg])xg[Rg]=[];var rte=xg[Rg];function xst(rn){return rte.push(rn)}function Rst(rn){return rte[rn-1]}});var ate=In(function(Ist){Ist.__esModule=!0;Ist.default=Ist.ImageUriCache=void 0;var Lst=/^data:/;class cl{static has(rn){var nn=cl._entries,an=Lst.test(rn);return an||Boolean(nn[rn])}static add(rn){var nn=cl._entries,an=Date.now();if(nn[rn])nn[rn].lastUsedTimestamp=an,nn[rn].refCount+=1;else nn[rn]={lastUsedTimestamp:an,refCount:1}}static remove(rn){var nn=cl._entries;if(nn[rn])nn[rn].refCount-=1;cl._cleanUpIfNeeded()}static _cleanUpIfNeeded(){var rn=cl._entries,nn=Object.keys(rn);if(nn.length+1>cl._maximumEntries){var an,sn;if(nn.forEach((ln)=>{var cn=rn[ln];if((!sn||cn.lastUsedTimestamp<sn.lastUsedTimestamp)&&cn.refCount===0)an=ln,sn=cn}),an)delete rn[an]}}}Ist.ImageUriCache=cl;cl._maximumEntries=256;cl._entries={};var Mg=0,eA={},X2={abort(rn){var nn=eA[""+rn];if(nn)nn.onerror=null,nn.onload=null,nn=null,delete eA[""+rn]},getSize(rn,nn,an){var sn=!1,ln=setInterval(un,16),cn=X2.load(rn,un,dn);function un(){var pn=eA[""+cn];if(pn){var{naturalHeight:mn,naturalWidth:fn}=pn;if(mn&&fn)nn(fn,mn),sn=!0}if(sn)X2.abort(cn),clearInterval(ln)}function dn(){if(typeof an==="function")an();X2.abort(cn),clearInterval(ln)}},has(rn){return cl.has(rn)},load(rn,nn,an){Mg+=1;var sn=new window.Image;return sn.onerror=an,sn.onload=(ln)=>{var cn=()=>nn({nativeEvent:ln});if(typeof sn.decode==="function")sn.decode().then(cn,cn);else setTimeout(cn,0)},sn.src=rn,eA[""+Mg]=sn,Mg},prefetch(rn){return new Promise((nn,an)=>{X2.load(rn,()=>{cl.add(rn),cl.remove(rn),nn()},an)})},queryCache(rn){var nn={};return rn.forEach((an)=>{if(cl.has(an))nn[an]="disk/memory"}),Promise.resolve(nn)}},NBt=Ist.default=X2});var Cg=In(function(ite,lte){var gst=Gn().default;ite.__esModule=!0;ite.default=void 0;var ste=gst(D2());class j2{static get(){return ste.default.get("window").scale}static getFontScale(){return ste.default.get("window").fontScale||j2.get()}static getPixelSizeForLayoutSize(rn){return Math.round(rn*j2.get())}static roundToNearestPixel(rn){var nn=j2.get();return Math.round(rn*nn)/nn}}ite.default=j2;lte.exports=ite.default});import*as Jst from"react";var rA=In(function(fte,hte){var ku=Gn().default,Nst=Ra().default;fte.__esModule=!0;fte.default=void 0;var tA=ku(ns()),Gst=ku(hs()),kst=ku(as()),gi=Nst(Jst),Bst=ku(sc()),pte=Ag(),Fst=uP(),V1=ku(ate()),Hst=ku(Cg()),Z2=ku(es()),Wst=ku(RR()),Ust=ku(rf()),ute=ku(bs()),Vst=["aria-label","accessibilityLabel","blurRadius","defaultSource","draggable","onError","onLayout","onLoad","onLoadEnd","onLoadStart","pointerEvents","source","style"],zst="ERRORED",wg="LOADED",dte="LOADING",qst="IDLE",Yst=0,Kst=/^(data:image\/svg\+xml;utf8,)(.*)/;function Xst(rn,nn){return rn&&nn!=null?gi.createElement("svg",{style:{position:"absolute",height:0,visibility:"hidden",width:0}},gi.createElement("defs",null,gi.createElement("filter",{id:"tint-"+nn,suppressHydrationWarning:!0},gi.createElement("feFlood",{floodColor:""+rn,key:rn}),gi.createElement("feComposite",{in2:"SourceAlpha",operator:"in"})))):null}function jst(rn,nn,an,sn){var ln=Z2.default.flatten(rn),{filter:cn,resizeMode:un,shadowOffset:dn,tintColor:pn}=ln,mn=[],fn=null;if(cn)mn.push(cn);if(nn)mn.push("blur("+nn+"px)");if(dn){var hn=(0,Fst.createBoxShadowValue)(ln);if(hn)mn.push("drop-shadow("+hn+")")}if((sn||pn)&&an!=null)mn.push("url(#tint-"+an+")");if(mn.length>0)fn=mn.join(" ");return[un,fn,pn]}function $st(rn){if(typeof rn==="number"){var nn=(0,pte.getAssetByID)(rn),{height:an,width:sn}=nn;return{height:an,width:sn}}else if(rn!=null&&!Array.isArray(rn)&&typeof rn==="object"){var{height:ln,width:cn}=rn;return{height:ln,width:cn}}}function Lg(rn){var nn=null;if(typeof rn==="number"){var an=(0,pte.getAssetByID)(rn);if(an==null)throw Error('Image: asset with ID "'+rn+'" could not be found. Please check the image source or packager.');var sn=an.scales[0];if(an.scales.length>1){var ln=Hst.default.get();sn=an.scales.reduce((fn,hn)=>Math.abs(hn-ln)<Math.abs(fn-ln)?hn:fn)}var cn=sn!==1?"@"+sn+"x":"";nn=an?an.httpServerLocation+"/"+an.name+cn+"."+an.type:""}else if(typeof rn==="string")nn=rn;else if(rn&&typeof rn.uri==="string")nn=rn.uri;if(nn){var un=nn.match(Kst);if(un){var dn=un[1],pn=un[2],mn=encodeURIComponent(pn);return""+dn+mn}}return nn}var mte=gi.forwardRef((rn,nn)=>{var an=rn["aria-label"],{accessibilityLabel:sn,blurRadius:ln,defaultSource:cn,draggable:un,onError:dn,onLayout:pn,onLoad:mn,onLoadEnd:fn,onLoadStart:hn,pointerEvents:bn,source:yn,style:En}=rn,Sn=(0,kst.default)(rn,Vst),_n=an||sn,vn=gi.useState(()=>{var za=Lg(yn);if(za!=null){var li=V1.default.has(za);if(li)return wg}return qst}),Tn=vn[0],Rn=vn[1],An=gi.useState({}),Mn=An[0],Cn=An[1],Ln=gi.useContext(Wst.default),On=gi.useRef(null),Dn=gi.useRef(Yst++),Nn=gi.useRef(null),Wn=Tn===wg||Tn===dte&&cn==null,Fn=jst(En,ln,Dn.current,rn.tintColor),qn=Fn[0],Kn=Fn[1],ea=Fn[2],Yn=rn.resizeMode||qn||"cover",ia=rn.tintColor||ea,Xn=Wn?yn:cn,La=Lg(Xn),Ia=$st(Xn),Va=La?'url("'+La+'")':null,ls=ei(),Bs=La?(0,Bst.default)("img",{alt:_n||"",style:$2.accessibilityImage$raw,draggable:un||!1,ref:On,src:La}):null;function ei(){if(On.current!=null&&(Yn==="center"||Yn==="repeat")){var za=On.current,{naturalHeight:li,naturalWidth:xi}=za,{height:Ri,width:Ga}=Mn;if(li&&xi&&Ri&&Ga){var qs=Math.min(1,Ga/xi,Ri/li),fi=Math.ceil(qs*xi),rc=Math.ceil(qs*li);return fi+"px "+rc+"px"}}}function Ms(za){if(Yn==="center"||Yn==="repeat"||pn){var li=za.nativeEvent.layout;pn&&pn(za),Cn(li)}}var rs=gi.useRef({onError:dn,onLoad:mn,onLoadEnd:fn,onLoadStart:hn});(0,Ust.default)(()=>{rs.current={onError:dn,onLoad:mn,onLoadEnd:fn,onLoadStart:hn}});var Ps=Lg(yn);return gi.useEffect(()=>{if(li(),Ps!=null){Rn(dte);var za=rs.current.onLoadStart;if(za)za();Nn.current=V1.default.load(Ps,function(Ri){Rn(wg);var Ga=rs.current,{onLoad:qs,onLoadEnd:fi}=Ga;if(qs)qs(Ri);if(fi)fi()},function(){Rn(zst);var Ri=rs.current,{onError:Ga,onLoadEnd:qs}=Ri;if(Ga)Ga({nativeEvent:{error:"Failed to load resource "+Ps}});if(qs)qs()})}function li(){if(Nn.current!=null)V1.default.abort(Nn.current),Nn.current=null}return li},[Ps,Nn,Rn]),gi.createElement(ute.default,(0,Gst.default)({},Sn,{"aria-label":_n,onLayout:Ms,pointerEvents:bn,ref:nn,style:[$2.root,Ln&&$2.inline,Ia,En,$2.undo,{boxShadow:null}]}),gi.createElement(ute.default,{style:[$2.image,Zst[Yn],{backgroundImage:Va,filter:Kn},ls!=null&&{backgroundSize:ls}],suppressHydrationWarning:!0}),Bs,Xst(ia,Dn.current))});mte.displayName="Image";var oA=mte;oA.getSize=function(rn,nn,an){V1.default.getSize(rn,nn,an)};oA.prefetch=function(rn){return V1.default.prefetch(rn)};oA.queryCache=function(rn){return V1.default.queryCache(rn)};var $2=Z2.default.create({root:{flexBasis:"auto",overflow:"hidden",zIndex:0},inline:{display:"inline-flex"},undo:{blurRadius:null,shadowColor:null,shadowOpacity:null,shadowOffset:null,shadowRadius:null,tintColor:null,overlayColor:null,resizeMode:null},image:(0,tA.default)((0,tA.default)({},Z2.default.absoluteFillObject),{},{backgroundColor:"transparent",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",height:"100%",width:"100%",zIndex:-1}),accessibilityImage$raw:(0,tA.default)((0,tA.default)({},Z2.default.absoluteFillObject),{},{height:"100%",opacity:0,width:"100%",zIndex:-1})}),Zst=Z2.default.create({center:{backgroundSize:"auto"},contain:{backgroundSize:"contain"},cover:{backgroundSize:"cover"},none:{backgroundPosition:"0",backgroundSize:"auto"},repeat:{backgroundPosition:"0",backgroundRepeat:"repeat",backgroundSize:"auto"},stretch:{backgroundSize:"100% 100%"}}),kBt=fte.default=oA;hte.exports=fte.default});import*as nit from"react";var vte=In(function(Ete,Ste){var yte=Gn().default,eit=Ra().default;Ete.__esModule=!0;Ete.default=void 0;var BBt=eit(nit),tit=yte(rA()),oit=yte(H0()),FBt=Ete.default=(0,oit.default)(tit.default);Ste.exports=Ete.default});import*as dit from"react";var Mte=In(function(xte,Rte){var ait=Ra().default,Ig=Gn().default;xte.__esModule=!0;xte.default=void 0;var sit=Ig(hs()),Tte=ait(dit),iit=Ig(wR()),lit=Ig(H0()),cit=Tte.forwardRef((rn,nn)=>Tte.createElement(iit.default,(0,sit.default)({scrollEventThrottle:0.0001},rn,{ref:nn}))),HBt=xte.default=(0,lit.default)(cit);Rte.exports=xte.default});import*as _it from"react";var gte=In(function(Ite,Ote){var pf=Gn().default,pit=Ra().default;Ite.__esModule=!0;Ite.default=void 0;var Og=pf(hs()),mit=pf(D1()),fit=pf(as()),Bu=pf(ns()),hit=pf(bs()),bit=pf(qR()),Cte=VR(),wte=pf(cs()),Qc=pit(_it),yit=["ItemSeparatorComponent","SectionSeparatorComponent","renderItem","renderSectionFooter","renderSectionHeader","sections","stickySectionHeadersEnabled"];class Lte extends Qc.PureComponent{constructor(){super(...arguments);this._keyExtractor=(rn,nn)=>{var an=this._subExtractor(nn);return an&&an.key||String(nn)},this._convertViewable=(rn)=>{var nn;(0,wte.default)(rn.index!=null,"Received a broken ViewToken");var an=this._subExtractor(rn.index);if(!an)return null;var sn=an.section.keyExtractor,ln=this.props.keyExtractor||Cte.keyExtractor,cn=sn!=null?sn(rn.item,an.index):ln(rn.item,(nn=an.index)!==null&&nn!==void 0?nn:0);return(0,Bu.default)((0,Bu.default)({},rn),{},{index:an.index,key:cn,section:an.section})},this._onViewableItemsChanged=(rn)=>{var{viewableItems:nn,changed:an}=rn,sn=this.props.onViewableItemsChanged;if(sn!=null)sn({viewableItems:nn.map(this._convertViewable,this).filter(Boolean),changed:an.map(this._convertViewable,this).filter(Boolean)})},this._renderItem=(rn)=>(nn)=>{var{item:an,index:sn}=nn,ln=this._subExtractor(sn);if(!ln)return null;var cn=ln.index;if(cn==null){var un=ln.section;if(ln.header===!0){var dn=this.props.renderSectionHeader;return dn?dn({section:un}):null}else{var pn=this.props.renderSectionFooter;return pn?pn({section:un}):null}}else{var mn=ln.section.renderItem||this.props.renderItem,fn=this._getSeparatorComponent(sn,ln,rn);return(0,wte.default)(mn,"no renderItem!"),Qc.createElement(Eit,{SeparatorComponent:fn,LeadingSeparatorComponent:cn===0?this.props.SectionSeparatorComponent:void 0,cellKey:ln.key,index:cn,item:an,leadingItem:ln.leadingItem,leadingSection:ln.leadingSection,prevCellKey:(this._subExtractor(sn-1)||{}).key,setSelfHighlightCallback:this._setUpdateHighlightFor,setSelfUpdatePropsCallback:this._setUpdatePropsFor,updateHighlightFor:this._updateHighlightFor,updatePropsFor:this._updatePropsFor,renderItem:mn,section:ln.section,trailingItem:ln.trailingItem,trailingSection:ln.trailingSection,inverted:!!this.props.inverted})}},this._updatePropsFor=(rn,nn)=>{var an=this._updatePropsMap[rn];if(an!=null)an(nn)},this._updateHighlightFor=(rn,nn)=>{var an=this._updateHighlightMap[rn];if(an!=null)an(nn)},this._setUpdateHighlightFor=(rn,nn)=>{if(nn!=null)this._updateHighlightMap[rn]=nn;else delete this._updateHighlightFor[rn]},this._setUpdatePropsFor=(rn,nn)=>{if(nn!=null)this._updatePropsMap[rn]=nn;else delete this._updatePropsMap[rn]},this._updateHighlightMap={},this._updatePropsMap={},this._captureRef=(rn)=>{this._listRef=rn}}scrollToLocation(rn){var nn=rn.itemIndex;for(var an=0;an<rn.sectionIndex;an++)nn+=this.props.getItemCount(this.props.sections[an].data)+2;var sn=rn.viewOffset||0;if(this._listRef==null)return;if(rn.itemIndex>0&&this.props.stickySectionHeadersEnabled){var ln=this._listRef.__getFrameMetricsApprox(nn-rn.itemIndex,this._listRef.props);sn+=ln.length}var cn=(0,Bu.default)((0,Bu.default)({},rn),{},{viewOffset:sn,index:nn});this._listRef.scrollToIndex(cn)}getListRef(){return this._listRef}render(){var rn=this.props,{ItemSeparatorComponent:nn,SectionSeparatorComponent:an,renderItem:sn,renderSectionFooter:ln,renderSectionHeader:cn,sections:un,stickySectionHeadersEnabled:dn}=rn,pn=(0,fit.default)(rn,yit),mn=this.props.ListHeaderComponent?1:0,fn=this.props.stickySectionHeadersEnabled?[]:void 0,hn=0;for(var bn=(0,mit.default)(this.props.sections),yn;!(yn=bn()).done;){var En=yn.value;if(fn!=null)fn.push(hn+mn);hn+=2,hn+=this.props.getItemCount(En.data)}var Sn=this._renderItem(hn);return Qc.createElement(bit.default,(0,Og.default)({},pn,{keyExtractor:this._keyExtractor,stickyHeaderIndices:fn,renderItem:Sn,data:this.props.sections,getItem:(_n,vn)=>this._getItem(this.props,_n,vn),getItemCount:()=>hn,onViewableItemsChanged:this.props.onViewableItemsChanged?this._onViewableItemsChanged:void 0,ref:this._captureRef}))}_getItem(rn,nn,an){if(!nn)return null;var sn=an-1;for(var ln=0;ln<nn.length;ln++){var cn=nn[ln],un=cn.data,dn=rn.getItemCount(un);if(sn===-1||sn===dn)return cn;else if(sn<dn)return rn.getItem(un,sn);else sn-=dn+2}return null}_subExtractor(rn){var nn=rn,an=this.props,{getItem:sn,getItemCount:ln,keyExtractor:cn,sections:un}=an;for(var dn=0;dn<un.length;dn++){var pn=un[dn],mn=pn.data,fn=pn.key||String(dn);if(nn-=1,nn>=ln(mn)+1)nn-=ln(mn)+1;else if(nn===-1)return{section:pn,key:fn+":header",index:null,header:!0,trailingSection:un[dn+1]};else if(nn===ln(mn))return{section:pn,key:fn+":footer",index:null,header:!1,trailingSection:un[dn+1]};else{var hn=pn.keyExtractor||cn||Cte.keyExtractor;return{section:pn,key:fn+":"+hn(sn(mn,nn),nn),index:nn,leadingItem:sn(mn,nn-1),leadingSection:un[dn-1],trailingItem:sn(mn,nn+1),trailingSection:un[dn+1]}}}}_getSeparatorComponent(rn,nn,an){if(nn=nn||this._subExtractor(rn),!nn)return null;var sn=nn.section.ItemSeparatorComponent||this.props.ItemSeparatorComponent,ln=this.props.SectionSeparatorComponent,cn=rn===an-1,un=nn.index===this.props.getItemCount(nn.section.data)-1;if(ln&&un)return ln;if(sn&&!un&&!cn)return sn;return null}}function Eit(rn){var{LeadingSeparatorComponent:nn,SeparatorComponent:an,cellKey:sn,prevCellKey:ln,setSelfHighlightCallback:cn,updateHighlightFor:un,setSelfUpdatePropsCallback:dn,updatePropsFor:pn,item:mn,index:fn,section:hn,inverted:bn}=rn,yn=Qc.useState(!1),En=yn[0],Sn=yn[1],_n=Qc.useState(!1),vn=_n[0],Tn=_n[1],Rn=Qc.useState({leadingItem:rn.leadingItem,leadingSection:rn.leadingSection,section:rn.section,trailingItem:rn.item,trailingSection:rn.trailingSection}),An=Rn[0],Mn=Rn[1],Cn=Qc.useState({leadingItem:rn.item,leadingSection:rn.leadingSection,section:rn.section,trailingItem:rn.trailingItem,trailingSection:rn.trailingSection}),Ln=Cn[0],On=Cn[1];Qc.useEffect(()=>(cn(sn,Tn),dn(sn,On),()=>{dn(sn,null),cn(sn,null)}),[sn,cn,On,dn]);var Dn={highlight:()=>{if(Sn(!0),Tn(!0),ln!=null)un(ln,!0)},unhighlight:()=>{if(Sn(!1),Tn(!1),ln!=null)un(ln,!1)},updateProps:(qn,Kn)=>{if(qn==="leading"){if(nn!=null)Mn((0,Bu.default)((0,Bu.default)({},An),Kn));else if(ln!=null)pn(ln,(0,Bu.default)((0,Bu.default)({},An),Kn))}else if(qn==="trailing"&&an!=null)On((0,Bu.default)((0,Bu.default)({},Ln),Kn))}},Nn=rn.renderItem({item:mn,index:fn,section:hn,separators:Dn}),Wn=nn!=null&&Qc.createElement(nn,(0,Og.default)({highlighted:En},An)),Fn=an!=null&&Qc.createElement(an,(0,Og.default)({highlighted:vn},Ln));return Wn||Fn?Qc.createElement(hit.default,null,bn===!1?Wn:Fn,Nn,bn===!1?Fn:Wn):Nn}var WBt=Ite.default=Lte;Ote.exports=Ite.default});import*as wit from"react";var Fte=In(function(Gte,kte){var nA=Gn().default,vit=Ra().default;Gte.__esModule=!0;Gte.default=void 0;var Tit=nA(hs()),xit=nA(as()),Rit=nA(g0()),Dte=vit(wit),Ait=nA(gte()),Mit=["stickySectionHeadersEnabled"];class Nte extends Dte.PureComponent{constructor(){super(...arguments);this._captureRef=(rn)=>{this._wrapperListRef=rn}}scrollToLocation(rn){if(this._wrapperListRef!=null)this._wrapperListRef.scrollToLocation(rn)}recordInteraction(){var rn=this._wrapperListRef&&this._wrapperListRef.getListRef();rn&&rn.recordInteraction()}flashScrollIndicators(){var rn=this._wrapperListRef&&this._wrapperListRef.getListRef();rn&&rn.flashScrollIndicators()}getScrollResponder(){var rn=this._wrapperListRef&&this._wrapperListRef.getListRef();if(rn)return rn.getScrollResponder()}getScrollableNode(){var rn=this._wrapperListRef&&this._wrapperListRef.getListRef();if(rn)return rn.getScrollableNode()}render(){var rn=this.props,nn=rn.stickySectionHeadersEnabled,an=(0,xit.default)(rn,Mit),sn=nn!==null&&nn!==void 0?nn:Rit.default.OS==="ios";return Dte.createElement(Ait.default,(0,Tit.default)({},an,{stickySectionHeadersEnabled:sn,ref:this._captureRef,getItemCount:(ln)=>ln.length,getItem:(ln,cn)=>ln[cn]}))}}Gte.default=Nte;kte.exports=Gte.default});var Pg=In(function(Hte,Wte){var Lit=Gn().default;Hte.__esModule=!0;Hte.default=void 0;var Iit=Lit(Fte()),UBt=Hte.default=Iit.default;Wte.exports=Hte.default});import*as Bit from"react";var Kte=In(function(zte,qte){var Pit=Ra().default,gg=Gn().default;zte.__esModule=!0;zte.default=void 0;var git=gg(hs()),Vte=Pit(Bit),Dit=gg(Pg()),Nit=gg(H0()),Git=Vte.forwardRef((rn,nn)=>Vte.createElement(Dit.default,(0,git.default)({scrollEventThrottle:0.0001},rn,{ref:nn}))),VBt=zte.default=(0,Nit.default)(Git);qte.exports=zte.default});import*as Zit from"react";var aA=In(function(eoe,toe){var Fu=Gn().default,Qte=Ra().default;eoe.__esModule=!0;eoe.default=void 0;var Xte=Fu(ns()),Fit=Fu(as()),Q2=Qte(Zit),Hit=Fu(sc()),fp=Qte(ER()),Wit=Fu(M2()),Uit=Fu(_R()),Vit=Fu(gu()),zit=Fu(C2()),qit=Fu(xR()),Yit=Fu(es()),jte=Fu(RR()),$te=I1(),Kit=["hrefAttrs","numberOfLines","onClick","onLayout","onPress","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","selectable"],Xit=Object.assign({},fp.defaultProps,fp.accessibilityProps,fp.clickProps,fp.focusProps,fp.keyboardProps,fp.mouseProps,fp.touchProps,fp.styleProps,{href:!0,lang:!0,pointerEvents:!0}),jit=(rn)=>(0,Wit.default)(rn,Xit),Jte=Q2.forwardRef((rn,nn)=>{var{hrefAttrs:an,numberOfLines:sn,onClick:ln,onLayout:cn,onPress:un,onMoveShouldSetResponder:dn,onMoveShouldSetResponderCapture:pn,onResponderEnd:mn,onResponderGrant:fn,onResponderMove:hn,onResponderReject:bn,onResponderRelease:yn,onResponderStart:En,onResponderTerminate:Sn,onResponderTerminationRequest:_n,onScrollShouldSetResponder:vn,onScrollShouldSetResponderCapture:Tn,onSelectionChangeShouldSetResponder:Rn,onSelectionChangeShouldSetResponderCapture:An,onStartShouldSetResponder:Mn,onStartShouldSetResponderCapture:Cn,selectable:Ln}=rn,On=(0,Fit.default)(rn,Kit),Dn=Q2.useContext(jte.default),Nn=Q2.useRef(null),Wn=(0,$te.useLocaleContext)(),Fn=Wn.direction;(0,Uit.default)(Nn,cn),(0,qit.default)(Nn,{onMoveShouldSetResponder:dn,onMoveShouldSetResponderCapture:pn,onResponderEnd:mn,onResponderGrant:fn,onResponderMove:hn,onResponderReject:bn,onResponderRelease:yn,onResponderStart:En,onResponderTerminate:Sn,onResponderTerminationRequest:_n,onScrollShouldSetResponder:vn,onScrollShouldSetResponderCapture:Tn,onSelectionChangeShouldSetResponder:Rn,onSelectionChangeShouldSetResponderCapture:An,onStartShouldSetResponder:Mn,onStartShouldSetResponderCapture:Cn});var qn=Q2.useCallback((Ms)=>{if(ln!=null)ln(Ms);else if(un!=null)Ms.stopPropagation(),un(Ms)},[ln,un]),Kn=Dn?"span":"div",ea=rn.lang!=null?(0,$te.getLocaleDirection)(rn.lang):null,Yn=rn.dir||ea,ia=Yn||Fn,Xn=jit(On);if(Xn.dir=Yn,!Dn)Xn.dir=Yn!=null?Yn:"auto";if(ln||un)Xn.onClick=qn;if(Xn.style=[sn!=null&&sn>1&&{WebkitLineClamp:sn},Dn===!0?mf.textHasAncestor$raw:mf.text$raw,sn===1&&mf.textOneLine,sn!=null&&sn>1&&mf.textMultiLine,rn.style,Ln===!0&&mf.selectable,Ln===!1&&mf.notSelectable,un&&mf.pressable],rn.href!=null){if(Kn="a",an!=null){var{download:La,rel:Ia,target:Va}=an;if(La!=null)Xn.download=La;if(Ia!=null)Xn.rel=Ia;if(typeof Va==="string")Xn.target=Va.charAt(0)!=="_"?"_"+Va:Va}}var ls=(0,zit.default)(Xn),Bs=(0,Vit.default)(Nn,ls,nn);Xn.ref=Bs;var ei=(0,Hit.default)(Kn,Xn,{writingDirection:ia});return Dn?ei:Q2.createElement(jte.default.Provider,{value:!0},ei)});Jte.displayName="Text";var Zte={backgroundColor:"transparent",border:"0 solid black",boxSizing:"border-box",color:"black",display:"inline",font:"14px System",listStyle:"none",margin:0,padding:0,position:"relative",textAlign:"start",textDecoration:"none",whiteSpace:"pre-wrap",wordWrap:"break-word"},mf=Yit.default.create({text$raw:Zte,textHasAncestor$raw:(0,Xte.default)((0,Xte.default)({},Zte),{},{color:"inherit",font:"inherit",textAlign:"inherit",whiteSpace:"inherit"}),textOneLine:{maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",wordWrap:"normal"},textMultiLine:{display:"-webkit-box",maxWidth:"100%",overflow:"clip",textOverflow:"ellipsis",WebkitBoxOrient:"vertical"},notSelectable:{userSelect:"none"},selectable:{userSelect:"text"},pressable:{cursor:"pointer"}}),zBt=eoe.default=Jte;toe.exports=eoe.default});import*as olt from"react";var ioe=In(function(noe,aoe){var roe=Gn().default,Qit=Ra().default;noe.__esModule=!0;noe.default=void 0;var qBt=Qit(olt),Jit=roe(aA()),elt=roe(H0()),YBt=noe.default=(0,elt.default)(Jit.default);aoe.exports=noe.default});import*as ilt from"react";var poe=In(function(coe,uoe){var loe=Gn().default,rlt=Ra().default;coe.__esModule=!0;coe.default=void 0;var KBt=rlt(ilt),nlt=loe(bs()),alt=loe(H0()),XBt=coe.default=(0,alt.default)(nlt.default);uoe.exports=coe.default});var Eoe=In(function(hoe,boe){var Dg=Gn().default;hoe.__esModule=!0;hoe.default=void 0;var llt=Dg(Zc()),moe=Dg(uc()),clt=Dg(gl());class foe extends clt.default{constructor(rn,nn){super();this._a=typeof rn==="number"?new moe.default(rn):rn,this._b=typeof nn==="number"?new moe.default(nn):nn}__makeNative(rn){this._a.__makeNative(rn),this._b.__makeNative(rn),super.__makeNative(rn)}__getValue(){return this._a.__getValue()+this._b.__getValue()}interpolate(rn){return new llt.default(this,rn)}__attach(){this._a.__addChild(this),this._b.__addChild(this)}__detach(){this._a.__removeChild(this),this._b.__removeChild(this),super.__detach()}__getNativeConfig(){return{type:"addition",input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}var jBt=hoe.default=foe;boe.exports=hoe.default});var Roe=In(function(voe,Toe){var Soe=Gn().default;voe.__esModule=!0;voe.default=void 0;var dlt=Soe(Zc()),plt=Soe(gl());class _oe extends plt.default{constructor(rn,nn,an){super();this._a=rn,this._min=nn,this._max=an,this._value=this._lastValue=this._a.__getValue()}__makeNative(rn){this._a.__makeNative(rn),super.__makeNative(rn)}interpolate(rn){return new dlt.default(this,rn)}__getValue(){var rn=this._a.__getValue(),nn=rn-this._lastValue;return this._lastValue=rn,this._value=Math.min(Math.max(this._value+nn,this._min),this._max),this._value}__attach(){this._a.__addChild(this)}__detach(){this._a.__removeChild(this),super.__detach()}__getNativeConfig(){return{type:"diffclamp",input:this._a.__getNativeTag(),min:this._min,max:this._max}}}var $Bt=voe.default=_oe;Toe.exports=voe.default});var Ioe=In(function(Coe,woe){var sA=Gn().default;Coe.__esModule=!0;Coe.default=void 0;var flt=sA(Zc()),hlt=sA(k0()),Aoe=sA(uc()),blt=sA(gl());class Moe extends blt.default{constructor(rn,nn){super();if(this._warnedAboutDivideByZero=!1,nn===0||nn instanceof hlt.default&&nn.__getValue()===0)console.error("Detected potential division by zero in AnimatedDivision");this._a=typeof rn==="number"?new Aoe.default(rn):rn,this._b=typeof nn==="number"?new Aoe.default(nn):nn}__makeNative(rn){this._a.__makeNative(rn),this._b.__makeNative(rn),super.__makeNative(rn)}__getValue(){var rn=this._a.__getValue(),nn=this._b.__getValue();if(nn===0){if(!this._warnedAboutDivideByZero)console.error("Detected division by zero in AnimatedDivision"),this._warnedAboutDivideByZero=!0;return 0}return this._warnedAboutDivideByZero=!1,rn/nn}interpolate(rn){return new flt.default(this,rn)}__attach(){this._a.__addChild(this),this._b.__addChild(this)}__detach(){this._a.__removeChild(this),this._b.__removeChild(this),super.__detach()}__getNativeConfig(){return{type:"division",input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}var ZBt=Coe.default=Moe;woe.exports=Coe.default});var Goe=In(function(goe,Doe){var Ooe=Gn().default;goe.__esModule=!0;goe.default=void 0;var Elt=Ooe(Zc()),Slt=Ooe(gl());class Poe extends Slt.default{constructor(rn,nn){super();this._a=rn,this._modulus=nn}__makeNative(rn){this._a.__makeNative(rn),super.__makeNative(rn)}__getValue(){return(this._a.__getValue()%this._modulus+this._modulus)%this._modulus}interpolate(rn){return new Elt.default(this,rn)}__attach(){this._a.__addChild(this)}__detach(){this._a.__removeChild(this),super.__detach()}__getNativeConfig(){return{type:"modulus",input:this._a.__getNativeTag(),modulus:this._modulus}}}var QBt=goe.default=Poe;Doe.exports=goe.default});var Uoe=In(function(Foe,Hoe){var Ng=Gn().default;Foe.__esModule=!0;Foe.default=void 0;var vlt=Ng(Zc()),koe=Ng(uc()),Tlt=Ng(gl());class Boe extends Tlt.default{constructor(rn,nn){super();this._a=typeof rn==="number"?new koe.default(rn):rn,this._b=typeof nn==="number"?new koe.default(nn):nn}__makeNative(rn){this._a.__makeNative(rn),this._b.__makeNative(rn),super.__makeNative(rn)}__getValue(){return this._a.__getValue()*this._b.__getValue()}interpolate(rn){return new vlt.default(this,rn)}__attach(){this._a.__addChild(this),this._b.__addChild(this)}__detach(){this._a.__removeChild(this),this._b.__removeChild(this),super.__detach()}__getNativeConfig(){return{type:"multiplication",input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}var JBt=Foe.default=Boe;Hoe.exports=Foe.default});var Xoe=In(function(qoe,Yoe){var Gg=Gn().default;qoe.__esModule=!0;qoe.default=void 0;var Rlt=Gg(Zc()),Voe=Gg(uc()),Alt=Gg(gl());class zoe extends Alt.default{constructor(rn,nn){super();this._a=typeof rn==="number"?new Voe.default(rn):rn,this._b=typeof nn==="number"?new Voe.default(nn):nn}__makeNative(rn){this._a.__makeNative(rn),this._b.__makeNative(rn),super.__makeNative(rn)}__getValue(){return this._a.__getValue()-this._b.__getValue()}interpolate(rn){return new Rlt.default(this,rn)}__attach(){this._a.__addChild(this),this._b.__addChild(this)}__detach(){this._a.__removeChild(this),this._b.__removeChild(this),super.__detach()}__getNativeConfig(){return{type:"subtraction",input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}var e7t=qoe.default=zoe;Yoe.exports=qoe.default});var ere=In(function(Zoe,Qoe){var kg=Gn().default;Zoe.__esModule=!0;Zoe.default=void 0;var iA=kg(ns()),t7t=kg(uc()),Clt=kg(k0()),joe=Pi();class $oe extends Clt.default{constructor(rn,nn,an,sn,ln){super();this._value=rn,this._parent=nn,this._animationClass=an,this._animationConfig=sn,this._useNativeDriver=(0,joe.shouldUseNativeDriver)(sn),this._callback=ln,this.__attach()}__makeNative(){this.__isNative=!0,this._parent.__makeNative(),super.__makeNative(),this._value.__makeNative()}__getValue(){return this._parent.__getValue()}__attach(){if(this._parent.__addChild(this),this._useNativeDriver)this.__makeNative()}__detach(){this._parent.__removeChild(this),super.__detach()}update(){this._value.animate(new this._animationClass((0,iA.default)((0,iA.default)({},this._animationConfig),{},{toValue:this._animationConfig.toValue.__getValue()})),this._callback)}__getNativeConfig(){var rn=new this._animationClass((0,iA.default)((0,iA.default)({},this._animationConfig),{},{toValue:void 0})),nn=rn.__getNativeAnimationConfig();return{type:"tracking",animationId:(0,joe.generateNewAnimationId)(),animationConfig:nn,toValue:this._parent.__getNativeTag(),value:this._value.__getNativeTag()}}}var o7t=Zoe.default=$oe;Qoe.exports=Zoe.default});var cA=In(function(ore,rre){var Bg=Gn().default;ore.__esModule=!0;ore.default=void 0;var lA=Bg(uc()),Llt=Bg(gl()),Ilt=Bg(cs()),Olt=1;class tre extends Llt.default{constructor(rn){super();var nn=rn||{x:0,y:0};if(typeof nn.x==="number"&&typeof nn.y==="number")this.x=new lA.default(nn.x),this.y=new lA.default(nn.y);else(0,Ilt.default)(nn.x instanceof lA.default&&nn.y instanceof lA.default,"AnimatedValueXY must be initialized with an object of numbers or AnimatedValues."),this.x=nn.x,this.y=nn.y;this._listeners={}}setValue(rn){this.x.setValue(rn.x),this.y.setValue(rn.y)}setOffset(rn){this.x.setOffset(rn.x),this.y.setOffset(rn.y)}flattenOffset(){this.x.flattenOffset(),this.y.flattenOffset()}extractOffset(){this.x.extractOffset(),this.y.extractOffset()}__getValue(){return{x:this.x.__getValue(),y:this.y.__getValue()}}resetAnimation(rn){this.x.resetAnimation(),this.y.resetAnimation(),rn&&rn(this.__getValue())}stopAnimation(rn){this.x.stopAnimation(),this.y.stopAnimation(),rn&&rn(this.__getValue())}addListener(rn){var nn=String(Olt++),an=(sn)=>{var ln=sn.value;rn(this.__getValue())};return this._listeners[nn]={x:this.x.addListener(an),y:this.y.addListener(an)},nn}removeListener(rn){this.x.removeListener(this._listeners[rn].x),this.y.removeListener(this._listeners[rn].y),delete this._listeners[rn]}removeAllListeners(){this.x.removeAllListeners(),this.y.removeAllListeners(),this._listeners={}}getLayout(){return{left:this.x,top:this.y}}getTranslateTransform(){return[{translateX:this.x},{translateY:this.y}]}}var r7t=ore.default=tre;rre.exports=ore.default});var uA=In(function(ire,lre){var glt=Gn().default;ire.__esModule=!0;ire.default=void 0;var J2=glt(Pi()),are=1;class sre{start(rn,nn,an,sn,ln){}stop(){if(this.__nativeId)J2.default.API.stopAnimation(this.__nativeId)}__getNativeAnimationConfig(){throw Error("This animation type cannot be offloaded to native")}__debouncedOnEnd(rn){var nn=this.__onEnd;this.__onEnd=null,nn&&nn(rn)}__startNativeAnimation(rn){var nn=are+":startAnimation";are+=1,J2.default.API.setWaitingForIdentifier(nn);try{var an=this.__getNativeAnimationConfig();rn.__makeNative(an.platformConfig),this.__nativeId=J2.default.generateNewAnimationId(),J2.default.API.startAnimatingNode(this.__nativeId,rn.__getNativeTag(),an,this.__debouncedOnEnd.bind(this))}catch(sn){throw sn}finally{J2.default.API.unsetWaitingForIdentifier(nn)}}}var n7t=ire.default=sre;lre.exports=ire.default});var fre=In(function(dre,pre){var Nlt=Gn().default;dre.__esModule=!0;dre.default=void 0;var Glt=Nlt(uA()),klt=Pi();class ure extends Glt.default{constructor(rn){var nn,an,sn;super();this._deceleration=(nn=rn.deceleration)!==null&&nn!==void 0?nn:0.998,this._velocity=rn.velocity,this._useNativeDriver=(0,klt.shouldUseNativeDriver)(rn),this.__isInteraction=(an=rn.isInteraction)!==null&&an!==void 0?an:!this._useNativeDriver,this.__iterations=(sn=rn.iterations)!==null&&sn!==void 0?sn:1}__getNativeAnimationConfig(){return{type:"decay",deceleration:this._deceleration,velocity:this._velocity,iterations:this.__iterations}}start(rn,nn,an,sn,ln){if(this.__active=!0,this._lastValue=rn,this._fromValue=rn,this._onUpdate=nn,this.__onEnd=an,this._startTime=Date.now(),this._useNativeDriver)this.__startNativeAnimation(ln);else this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))}onUpdate(){var rn=Date.now(),nn=this._fromValue+this._velocity/(1-this._deceleration)*(1-Math.exp(-(1-this._deceleration)*(rn-this._startTime)));if(this._onUpdate(nn),Math.abs(this._lastValue-nn)<0.1){this.__debouncedOnEnd({finished:!0});return}if(this._lastValue=nn,this.__active)this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))}stop(){super.stop(),this.__active=!1,globalThis.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}var a7t=dre.default=ure;pre.exports=dre.default});var _re=In(function(yre,Ere){yre.__esModule=!0;yre.default=void 0;function hre(rn){return(rn-30)*3.62+194}function bre(rn){return(rn-8)*3+25}function Flt(rn,nn){return{stiffness:hre(rn),damping:bre(nn)}}function Hlt(rn,nn){function an(En,Sn,_n){return(En-Sn)/(_n-Sn)}function sn(En,Sn,_n){return Sn+En*(_n-Sn)}function ln(En,Sn,_n){return En*_n+(1-En)*Sn}function cn(En,Sn,_n){return ln(2*En-En*En,Sn,_n)}function un(En){return 0.0007*Math.pow(En,3)-0.031*Math.pow(En,2)+0.64*En+1.28}function dn(En){return 0.000044*Math.pow(En,3)-0.006*Math.pow(En,2)+0.36*En+2}function pn(En){return 0.00000045*Math.pow(En,3)-0.000332*Math.pow(En,2)+0.1078*En+5.84}function mn(En){if(En<=18)return un(En);else if(En>18&&En<=44)return dn(En);else return pn(En)}var fn=an(rn/1.7,0,20);fn=sn(fn,0,0.8);var hn=an(nn/1.7,0,20),bn=sn(hn,0.5,200),yn=cn(fn,mn(bn),0.01);return{stiffness:hre(bn),damping:bre(yn)}}var s7t=yre.default={fromOrigamiTensionAndFriction:Flt,fromBouncinessAndSpeed:Hlt};Ere.exports=yre.default});var eS=In(function(xre,Rre){var pA=Gn().default;xre.__esModule=!0;xre.default=void 0;var hp=pA(uc()),Ult=pA(gl()),Vlt=pA(_2()),zlt=pA(Pi()),Fg=zlt.default.API,dA={r:0,g:0,b:0,a:1},qlt=1,Ylt=(rn)=>rn;function vre(rn){if(rn===void 0||rn===null)return null;if(Hg(rn))return rn;var nn=(0,Vlt.default)(rn);if(nn===void 0||nn===null)return null;if(typeof nn==="object"){var an=Ylt(nn);if(an!=null)return an}else if(typeof nn==="number"){var sn=(nn&4278190080)>>>24,ln=(nn&16711680)>>>16,cn=(nn&65280)>>>8,un=(nn&255)/255;return{r:sn,g:ln,b:cn,a:un}}return null}function Hg(rn){return rn&&typeof rn.r==="number"&&typeof rn.g==="number"&&typeof rn.b==="number"&&typeof rn.a==="number"}function Klt(rn){return rn&&rn.r instanceof hp.default&&rn.g instanceof hp.default&&rn.b instanceof hp.default&&rn.a instanceof hp.default}class Tre extends Ult.default{constructor(rn,nn){super();this._listeners={};var an=rn!==null&&rn!==void 0?rn:dA;if(Klt(an)){var sn=an;this.r=sn.r,this.g=sn.g,this.b=sn.b,this.a=sn.a}else{var ln,cn=(ln=vre(an))!==null&&ln!==void 0?ln:dA,un=dA;if(Hg(cn))un=cn;else this.nativeColor=cn;this.r=new hp.default(un.r),this.g=new hp.default(un.g),this.b=new hp.default(un.b),this.a=new hp.default(un.a)}if(this.nativeColor||nn&&nn.useNativeDriver)this.__makeNative()}setValue(rn){var nn,an=!1;if(this.__isNative){var sn=this.__getNativeTag();Fg.setWaitingForIdentifier(sn.toString())}var ln=(nn=vre(rn))!==null&&nn!==void 0?nn:dA;if(Hg(ln)){var cn=ln;if(this.r.setValue(cn.r),this.g.setValue(cn.g),this.b.setValue(cn.b),this.a.setValue(cn.a),this.nativeColor!=null)this.nativeColor=null,an=!0}else{var un=ln;if(this.nativeColor!==un)this.nativeColor=un,an=!0}if(this.__isNative){var dn=this.__getNativeTag();if(an)Fg.updateAnimatedNodeConfig(dn,this.__getNativeConfig());Fg.unsetWaitingForIdentifier(dn.toString())}}setOffset(rn){this.r.setOffset(rn.r),this.g.setOffset(rn.g),this.b.setOffset(rn.b),this.a.setOffset(rn.a)}flattenOffset(){this.r.flattenOffset(),this.g.flattenOffset(),this.b.flattenOffset(),this.a.flattenOffset()}extractOffset(){this.r.extractOffset(),this.g.extractOffset(),this.b.extractOffset(),this.a.extractOffset()}addListener(rn){var nn=String(qlt++),an=(sn)=>{var ln=sn.value;rn(this.__getValue())};return this._listeners[nn]={r:this.r.addListener(an),g:this.g.addListener(an),b:this.b.addListener(an),a:this.a.addListener(an)},nn}removeListener(rn){this.r.removeListener(this._listeners[rn].r),this.g.removeListener(this._listeners[rn].g),this.b.removeListener(this._listeners[rn].b),this.a.removeListener(this._listeners[rn].a),delete this._listeners[rn]}removeAllListeners(){this.r.removeAllListeners(),this.g.removeAllListeners(),this.b.removeAllListeners(),this.a.removeAllListeners(),this._listeners={}}stopAnimation(rn){this.r.stopAnimation(),this.g.stopAnimation(),this.b.stopAnimation(),this.a.stopAnimation(),rn&&rn(this.__getValue())}resetAnimation(rn){this.r.resetAnimation(),this.g.resetAnimation(),this.b.resetAnimation(),this.a.resetAnimation(),rn&&rn(this.__getValue())}__getValue(){if(this.nativeColor!=null)return this.nativeColor;else return"rgba("+this.r.__getValue()+", "+this.g.__getValue()+", "+this.b.__getValue()+", "+this.a.__getValue()+")"}__attach(){this.r.__addChild(this),this.g.__addChild(this),this.b.__addChild(this),this.a.__addChild(this),super.__attach()}__detach(){this.r.__removeChild(this),this.g.__removeChild(this),this.b.__removeChild(this),this.a.__removeChild(this),super.__detach()}__makeNative(rn){this.r.__makeNative(rn),this.g.__makeNative(rn),this.b.__makeNative(rn),this.a.__makeNative(rn),super.__makeNative(rn)}__getNativeConfig(){return{type:"color",r:this.r.__getNativeTag(),g:this.g.__getNativeTag(),b:this.b.__getNativeTag(),a:this.a.__getNativeTag(),nativeColor:this.nativeColor}}}xre.default=Tre;Rre.exports=xre.default});var Ire=In(function(Cre,wre){var mA=Gn().default;Cre.__esModule=!0;Cre.default=void 0;var jlt=mA(uA()),Mre=mA(_re()),tS=mA(cs()),$lt=Pi(),i7t=mA(eS());class Wg extends jlt.default{constructor(rn){var nn,an,sn,ln,cn,un,dn,pn;super();if(this._overshootClamping=(nn=rn.overshootClamping)!==null&&nn!==void 0?nn:!1,this._restDisplacementThreshold=(an=rn.restDisplacementThreshold)!==null&&an!==void 0?an:0.001,this._restSpeedThreshold=(sn=rn.restSpeedThreshold)!==null&&sn!==void 0?sn:0.001,this._initialVelocity=(ln=rn.velocity)!==null&&ln!==void 0?ln:0,this._lastVelocity=(cn=rn.velocity)!==null&&cn!==void 0?cn:0,this._toValue=rn.toValue,this._delay=(un=rn.delay)!==null&&un!==void 0?un:0,this._useNativeDriver=(0,$lt.shouldUseNativeDriver)(rn),this._platformConfig=rn.platformConfig,this.__isInteraction=(dn=rn.isInteraction)!==null&&dn!==void 0?dn:!this._useNativeDriver,this.__iterations=(pn=rn.iterations)!==null&&pn!==void 0?pn:1,rn.stiffness!==void 0||rn.damping!==void 0||rn.mass!==void 0){var mn,fn,hn;(0,tS.default)(rn.bounciness===void 0&&rn.speed===void 0&&rn.tension===void 0&&rn.friction===void 0,"You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one"),this._stiffness=(mn=rn.stiffness)!==null&&mn!==void 0?mn:100,this._damping=(fn=rn.damping)!==null&&fn!==void 0?fn:10,this._mass=(hn=rn.mass)!==null&&hn!==void 0?hn:1}else if(rn.bounciness!==void 0||rn.speed!==void 0){var bn,yn;(0,tS.default)(rn.tension===void 0&&rn.friction===void 0&&rn.stiffness===void 0&&rn.damping===void 0&&rn.mass===void 0,"You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one");var En=Mre.default.fromBouncinessAndSpeed((bn=rn.bounciness)!==null&&bn!==void 0?bn:8,(yn=rn.speed)!==null&&yn!==void 0?yn:12);this._stiffness=En.stiffness,this._damping=En.damping,this._mass=1}else{var Sn,_n,vn=Mre.default.fromOrigamiTensionAndFriction((Sn=rn.tension)!==null&&Sn!==void 0?Sn:40,(_n=rn.friction)!==null&&_n!==void 0?_n:7);this._stiffness=vn.stiffness,this._damping=vn.damping,this._mass=1}(0,tS.default)(this._stiffness>0,"Stiffness value must be greater than 0"),(0,tS.default)(this._damping>0,"Damping value must be greater than 0"),(0,tS.default)(this._mass>0,"Mass value must be greater than 0")}__getNativeAnimationConfig(){var rn;return{type:"spring",overshootClamping:this._overshootClamping,restDisplacementThreshold:this._restDisplacementThreshold,restSpeedThreshold:this._restSpeedThreshold,stiffness:this._stiffness,damping:this._damping,mass:this._mass,initialVelocity:(rn=this._initialVelocity)!==null&&rn!==void 0?rn:this._lastVelocity,toValue:this._toValue,iterations:this.__iterations,platformConfig:this._platformConfig}}start(rn,nn,an,sn,ln){if(this.__active=!0,this._startPosition=rn,this._lastPosition=this._startPosition,this._onUpdate=nn,this.__onEnd=an,this._lastTime=Date.now(),this._frameTime=0,sn instanceof Wg){var cn=sn.getInternalState();this._lastPosition=cn.lastPosition,this._lastVelocity=cn.lastVelocity,this._initialVelocity=this._lastVelocity,this._lastTime=cn.lastTime}var un=()=>{if(this._useNativeDriver)this.__startNativeAnimation(ln);else this.onUpdate()};if(this._delay)this._timeout=setTimeout(un,this._delay);else un()}getInternalState(){return{lastPosition:this._lastPosition,lastVelocity:this._lastVelocity,lastTime:this._lastTime}}onUpdate(){var rn=64,nn=Date.now();if(nn>this._lastTime+rn)nn=this._lastTime+rn;var an=(nn-this._lastTime)/1000;this._frameTime+=an;var sn=this._damping,ln=this._mass,cn=this._stiffness,un=-this._initialVelocity,dn=sn/(2*Math.sqrt(cn*ln)),pn=Math.sqrt(cn/ln),mn=pn*Math.sqrt(1-dn*dn),fn=this._toValue-this._startPosition,hn=0,bn=0,yn=this._frameTime;if(dn<1){var En=Math.exp(-dn*pn*yn);hn=this._toValue-En*((un+dn*pn*fn)/mn*Math.sin(mn*yn)+fn*Math.cos(mn*yn)),bn=dn*pn*En*(Math.sin(mn*yn)*(un+dn*pn*fn)/mn+fn*Math.cos(mn*yn))-En*(Math.cos(mn*yn)*(un+dn*pn*fn)-mn*fn*Math.sin(mn*yn))}else{var Sn=Math.exp(-pn*yn);hn=this._toValue-Sn*(fn+(un+pn*fn)*yn),bn=Sn*(un*(yn*pn-1)+yn*fn*(pn*pn))}if(this._lastTime=nn,this._lastPosition=hn,this._lastVelocity=bn,this._onUpdate(hn),!this.__active)return;var _n=!1;if(this._overshootClamping&&this._stiffness!==0)if(this._startPosition<this._toValue)_n=hn>this._toValue;else _n=hn<this._toValue;var vn=Math.abs(bn)<=this._restSpeedThreshold,Tn=!0;if(this._stiffness!==0)Tn=Math.abs(this._toValue-hn)<=this._restDisplacementThreshold;if(_n||vn&&Tn){if(this._stiffness!==0)this._lastPosition=this._toValue,this._lastVelocity=0,this._onUpdate(this._toValue);this.__debouncedOnEnd({finished:!0});return}this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))}stop(){super.stop(),this.__active=!1,clearTimeout(this._timeout),globalThis.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}var l7t=Cre.default=Wg;wre.exports=Cre.default});var kre=In(function(Nre,Gre){Nre.__esModule=!0;Nre.default=act;var Qlt=4,Jlt=0.001,ect=0.0000001,tct=10,oS=11,fA=1/(oS-1),oct=typeof Float32Array==="function";function Ore(rn,nn){return 1-3*nn+3*rn}function Pre(rn,nn){return 3*nn-6*rn}function gre(rn){return 3*rn}function hA(rn,nn,an){return((Ore(nn,an)*rn+Pre(nn,an))*rn+gre(nn))*rn}function Dre(rn,nn,an){return 3*Ore(nn,an)*rn*rn+2*Pre(nn,an)*rn+gre(nn)}function rct(rn,nn,an,sn,ln){var cn,un,dn=0,pn=nn,mn=an;do if(un=pn+(mn-pn)/2,cn=hA(un,sn,ln)-rn,cn>0)mn=un;else pn=un;while(Math.abs(cn)>ect&&++dn<tct);return un}function nct(rn,nn,an,sn){var ln=nn;for(var cn=0;cn<Qlt;++cn){var un=Dre(ln,an,sn);if(un===0)return ln;var dn=hA(ln,an,sn)-rn;ln-=dn/un}return ln}function act(rn,nn,an,sn){if(!(rn>=0&&rn<=1&&an>=0&&an<=1))throw Error("bezier x values must be in [0, 1] range");var ln=oct?new Float32Array(oS):Array(oS);if(rn!==nn||an!==sn)for(var cn=0;cn<oS;++cn)ln[cn]=hA(cn*fA,rn,an);function un(dn){var pn=0,mn=1,fn=oS-1;for(;mn!==fn&&ln[mn]<=dn;++mn)pn+=fA;--mn;var hn=(dn-ln[mn])/(ln[mn+1]-ln[mn]),bn=pn+hn*fA,yn=Dre(bn,rn,an);if(yn>=Jlt)return nct(dn,bn,rn,an);else if(yn===0)return bn;else return rct(dn,pn,pn+fA,rn,an)}return function(pn){if(rn===nn&&an===sn)return pn;if(pn===0)return 0;if(pn===1)return 1;return hA(un(pn),nn,sn)}}Gre.exports=Nre.default});var Wre=In(function(Bre,Fre){var lct=Gn().default;Bre.__esModule=!0;Bre.default=void 0;var cct=lct(kre()),Ug;class Vg{static step0(rn){return rn>0?1:0}static step1(rn){return rn>=1?1:0}static linear(rn){return rn}static ease(rn){if(!Ug)Ug=Vg.bezier(0.42,0,1,1);return Ug(rn)}static quad(rn){return rn*rn}static cubic(rn){return rn*rn*rn}static poly(rn){return(nn)=>Math.pow(nn,rn)}static sin(rn){return 1-Math.cos(rn*Math.PI/2)}static circle(rn){return 1-Math.sqrt(1-rn*rn)}static exp(rn){return Math.pow(2,10*(rn-1))}static elastic(rn){if(rn===void 0)rn=1;var nn=rn*Math.PI;return(an)=>1-Math.pow(Math.cos(an*Math.PI/2),3)*Math.cos(an*nn)}static back(rn){if(rn===void 0)rn=1.70158;return(nn)=>nn*nn*((rn+1)*nn-rn)}static bounce(rn){if(rn<0.36363636363636365)return 7.5625*rn*rn;if(rn<0.7272727272727273){var nn=rn-0.5454545454545454;return 7.5625*nn*nn+0.75}if(rn<0.9090909090909091){var an=rn-0.8181818181818182;return 7.5625*an*an+0.9375}var sn=rn-0.9545454545454546;return 7.5625*sn*sn+0.984375}static bezier(rn,nn,an,sn){return(0,cct.default)(rn,nn,an,sn)}static in(rn){return rn}static out(rn){return(nn)=>1-rn(1-nn)}static inOut(rn){return(nn)=>{if(nn<0.5)return rn(nn*2)/2;return 1-rn((1-nn)*2)/2}}}var c7t=Bre.default=Vg;Fre.exports=Bre.default});var zg=In(function(Ure,Vre){var dct=Gn().default;Ure.__esModule=!0;Ure.default=void 0;var pct=dct(Wre()),u7t=Ure.default=pct.default;Vre.exports=Ure.default});var $re=In(function(Kre,Xre){var z1=Gn().default;Kre.__esModule=!0;Kre.default=void 0;var d7t=z1(uc()),p7t=z1(cA()),m7t=z1(Zc()),qre=z1(zg()),fct=z1(uA()),hct=Pi(),f7t=z1(eS()),qg;function bct(){if(!qg)qg=qre.default.inOut(qre.default.ease);return qg}class Yre extends fct.default{constructor(rn){var nn,an,sn,ln,cn;super();this._toValue=rn.toValue,this._easing=(nn=rn.easing)!==null&&nn!==void 0?nn:bct(),this._duration=(an=rn.duration)!==null&&an!==void 0?an:500,this._delay=(sn=rn.delay)!==null&&sn!==void 0?sn:0,this.__iterations=(ln=rn.iterations)!==null&&ln!==void 0?ln:1,this._useNativeDriver=(0,hct.shouldUseNativeDriver)(rn),this._platformConfig=rn.platformConfig,this.__isInteraction=(cn=rn.isInteraction)!==null&&cn!==void 0?cn:!this._useNativeDriver}__getNativeAnimationConfig(){var rn=16.666666666666668,nn=[],an=Math.round(this._duration/rn);for(var sn=0;sn<an;sn++)nn.push(this._easing(sn/an));return nn.push(this._easing(1)),{type:"frames",frames:nn,toValue:this._toValue,iterations:this.__iterations,platformConfig:this._platformConfig}}start(rn,nn,an,sn,ln){this.__active=!0,this._fromValue=rn,this._onUpdate=nn,this.__onEnd=an;var cn=()=>{if(this._duration===0&&!this._useNativeDriver)this._onUpdate(this._toValue),this.__debouncedOnEnd({finished:!0});else if(this._startTime=Date.now(),this._useNativeDriver)this.__startNativeAnimation(ln);else this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))};if(this._delay)this._timeout=setTimeout(cn,this._delay);else cn()}onUpdate(){var rn=Date.now();if(rn>=this._startTime+this._duration){if(this._duration===0)this._onUpdate(this._toValue);else this._onUpdate(this._fromValue+this._easing(1)*(this._toValue-this._fromValue));this.__debouncedOnEnd({finished:!0});return}if(this._onUpdate(this._fromValue+this._easing((rn-this._startTime)/this._duration)*(this._toValue-this._fromValue)),this.__active)this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))}stop(){super.stop(),this.__active=!1,clearTimeout(this._timeout),globalThis.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}var h7t=Kre.default=Yre;Xre.exports=Kre.default});var $g=In(function(ine,lne){var bi=Gn().default;ine.__esModule=!0;ine.default=void 0;var pc=bi(ns()),rS=z2(),Ect=bi(Eoe()),Sct=bi(Roe()),_ct=bi(Ioe()),vct=bi(Zc()),Tct=bi(Goe()),xct=bi(Uoe()),Yg=bi(k0()),b7t=bi(vg()),Rct=bi(Xoe()),Jre=bi(ere()),ene=bi(uc()),tne=bi(cA()),Act=bi(fre()),Zre=bi(Ire()),Qre=bi($re()),Mct=bi(H0()),one=bi(eS()),Cct=function(nn,an){return new Ect.default(nn,an)},wct=function(nn,an){return new Rct.default(nn,an)},Lct=function(nn,an){return new _ct.default(nn,an)},Ict=function(nn,an){return new xct.default(nn,an)},Oct=function(nn,an){return new Tct.default(nn,an)},Pct=function(nn,an,sn){return new Sct.default(nn,an,sn)},Kg=function(nn,an){if(nn&&an.onComplete)return function(){an.onComplete&&an.onComplete(...arguments),nn&&nn(...arguments)};else return nn||an.onComplete},Xg=function(nn,an,sn){if(nn instanceof tne.default){var ln=(0,pc.default)({},an),cn=(0,pc.default)({},an);for(var un in an){var dn=an[un],{x:pn,y:mn}=dn;if(pn!==void 0&&mn!==void 0)ln[un]=pn,cn[un]=mn}var fn=sn(nn.x,ln),hn=sn(nn.y,cn);return bA([fn,hn],{stopTogether:!1})}else if(nn instanceof one.default){var bn=(0,pc.default)({},an),yn=(0,pc.default)({},an),En=(0,pc.default)({},an),Sn=(0,pc.default)({},an);for(var _n in an){var vn=an[_n],{r:Tn,g:Rn,b:An,a:Mn}=vn;if(Tn!==void 0&&Rn!==void 0&&An!==void 0&&Mn!==void 0)bn[_n]=Tn,yn[_n]=Rn,En[_n]=An,Sn[_n]=Mn}var Cn=sn(nn.r,bn),Ln=sn(nn.g,yn),On=sn(nn.b,En),Dn=sn(nn.a,Sn);return bA([Cn,Ln,On,Dn],{stopTogether:!1})}return null},rne=function(nn,an){var sn=function(cn,un,dn){dn=Kg(dn,un);var pn=cn,mn=un;if(pn.stopTracking(),un.toValue instanceof Yg.default)pn.track(new Jre.default(pn,un.toValue,Zre.default,mn,dn));else pn.animate(new Zre.default(mn),dn)};return Xg(nn,an,rne)||{start:function(cn){sn(nn,an,cn)},stop:function(){nn.stopAnimation()},reset:function(){nn.resetAnimation()},_startNativeLoop:function(cn){var un=(0,pc.default)((0,pc.default)({},an),{},{iterations:cn});sn(nn,un)},_isUsingNativeDriver:function(){return an.useNativeDriver||!1}}},jg=function(nn,an){var sn=function(cn,un,dn){dn=Kg(dn,un);var pn=cn,mn=un;if(pn.stopTracking(),un.toValue instanceof Yg.default)pn.track(new Jre.default(pn,un.toValue,Qre.default,mn,dn));else pn.animate(new Qre.default(mn),dn)};return Xg(nn,an,jg)||{start:function(cn){sn(nn,an,cn)},stop:function(){nn.stopAnimation()},reset:function(){nn.resetAnimation()},_startNativeLoop:function(cn){var un=(0,pc.default)((0,pc.default)({},an),{},{iterations:cn});sn(nn,un)},_isUsingNativeDriver:function(){return an.useNativeDriver||!1}}},nne=function(nn,an){var sn=function(cn,un,dn){dn=Kg(dn,un);var pn=cn,mn=un;pn.stopTracking(),pn.animate(new Act.default(mn),dn)};return Xg(nn,an,nne)||{start:function(cn){sn(nn,an,cn)},stop:function(){nn.stopAnimation()},reset:function(){nn.resetAnimation()},_startNativeLoop:function(cn){var un=(0,pc.default)((0,pc.default)({},an),{},{iterations:cn});sn(nn,un)},_isUsingNativeDriver:function(){return an.useNativeDriver||!1}}},ane=function(nn){var an=0;return{start:function(ln){var cn=function(dn){if(!dn.finished){ln&&ln(dn);return}if(an++,an===nn.length){an=0,ln&&ln(dn);return}nn[an].start(cn)};if(nn.length===0)ln&&ln({finished:!0});else nn[an].start(cn)},stop:function(){if(an<nn.length)nn[an].stop()},reset:function(){nn.forEach((ln,cn)=>{if(cn<=an)ln.reset()}),an=0},_startNativeLoop:function(){throw Error("Loops run using the native driver cannot contain Animated.sequence animations")},_isUsingNativeDriver:function(){return!1}}},bA=function(nn,an){var sn=0,ln={},cn=!(an&&an.stopTogether===!1),un={start:function(pn){if(sn===nn.length){pn&&pn({finished:!0});return}nn.forEach((mn,fn)=>{var hn=function(yn){if(ln[fn]=!0,sn++,sn===nn.length){sn=0,pn&&pn(yn);return}if(!yn.finished&&cn)un.stop()};if(!mn)hn({finished:!0});else mn.start(hn)})},stop:function(){nn.forEach((pn,mn)=>{!ln[mn]&&pn.stop(),ln[mn]=!0})},reset:function(){nn.forEach((pn,mn)=>{pn.reset(),ln[mn]=!1,sn=0})},_startNativeLoop:function(){throw Error("Loops run using the native driver cannot contain Animated.parallel animations")},_isUsingNativeDriver:function(){return!1}};return un},sne=function(nn){return jg(new ene.default(0),{toValue:0,delay:nn,duration:0,useNativeDriver:!1})},gct=function(nn,an){return bA(an.map((sn,ln)=>ane([sne(nn*ln),sn])))},Dct=function(nn,an){var sn=an===void 0?{}:an,ln=sn.iterations,cn=ln===void 0?-1:ln,un=sn.resetBeforeIteration,dn=un===void 0?!0:un,pn=!1,mn=0;return{start:function(hn){var bn=function(En){if(En===void 0)En={finished:!0};if(pn||mn===cn||En.finished===!1)hn&&hn(En);else mn++,dn&&nn.reset(),nn.start(bn)};if(!nn||cn===0)hn&&hn({finished:!0});else if(nn._isUsingNativeDriver())nn._startNativeLoop(cn);else bn()},stop:function(){pn=!0,nn.stop()},reset:function(){mn=0,pn=!1,nn.reset()},_startNativeLoop:function(){throw Error("Loops run using the native driver cannot contain Animated.loop animations")},_isUsingNativeDriver:function(){return nn._isUsingNativeDriver()}}};function Nct(rn,nn){if(!rn)return nn;else if(rn instanceof rS.AnimatedEvent)return rn.__addListener(nn),rn;else return function(){typeof rn==="function"&&rn(...arguments),nn(...arguments)}}function Gct(rn,nn){if(rn&&rn instanceof rS.AnimatedEvent)rn.__removeListener(nn)}var kct=function(nn,an){var sn=new rS.AnimatedEvent(nn,an);if(sn.__isNative)return sn;else return sn.__getHandler()},y7t=ine.default={Value:ene.default,ValueXY:tne.default,Color:one.default,Interpolation:vct.default,Node:Yg.default,decay:nne,timing:jg,spring:rne,add:Cct,subtract:wct,divide:Lct,multiply:Ict,modulo:Oct,diffClamp:Pct,delay:sne,sequence:ane,parallel:bA,stagger:gct,loop:Dct,event:kct,createAnimatedComponent:Mct.default,attachNativeEvent:rS.attachNativeEvent,forkEvent:Nct,unforkEvent:Gct,Event:rS.AnimatedEvent};lne.exports=ine.default});var fne=In(function(dne,pne){var bp=Gn().default;dne.__esModule=!0;dne.default=void 0;var q1=bp(ns()),une=z2(),W0=bp($g()),Fct=bp(Zc()),Hct=bp(k0()),Wct=bp(uc()),Uct=bp(cA()),Vct=bp(H0()),zct=bp(eS()),Zg=!1;function Qg(rn){return(nn)=>{var an=nn==null?nn:function(){if(Zg){console.warn("Ignoring recursive animation callback when running mock animations");return}Zg=!0;try{nn(...arguments)}finally{Zg=!1}};rn(an)}}var Y1={start:()=>{},stop:()=>{},reset:()=>{},_startNativeLoop:()=>{},_isUsingNativeDriver:()=>!1},Jg=(rn)=>(0,q1.default)((0,q1.default)({},Y1),{},{start:Qg((nn)=>{rn.forEach((an)=>an.start()),nn==null||nn({finished:!0})})}),qct=function(nn,an){var sn=nn;return(0,q1.default)((0,q1.default)({},Y1),{},{start:Qg((ln)=>{sn.setValue(an.toValue),ln==null||ln({finished:!0})})})},Yct=function(nn,an){var sn=nn;return(0,q1.default)((0,q1.default)({},Y1),{},{start:Qg((ln)=>{sn.setValue(an.toValue),ln==null||ln({finished:!0})})})},Kct=function(nn,an){return Y1},Xct=function(nn){return Jg(nn)},jct=function(nn,an){return Jg(nn)},$ct=function(nn){return Y1},Zct=function(nn,an){return Jg(an)},Qct=function(nn,an){var sn=an===void 0?{}:an,ln=sn.iterations,cn=ln===void 0?-1:ln;return Y1},E7t=dne.default={Value:Wct.default,ValueXY:Uct.default,Color:zct.default,Interpolation:Fct.default,Node:Hct.default,decay:Kct,timing:Yct,spring:qct,add:W0.default.add,subtract:W0.default.subtract,divide:W0.default.divide,multiply:W0.default.multiply,modulo:W0.default.modulo,diffClamp:W0.default.diffClamp,delay:$ct,sequence:Xct,parallel:jct,stagger:Zct,loop:Qct,event:W0.default.event,createAnimatedComponent:Vct.default,attachNativeEvent:une.attachNativeEvent,forkEvent:W0.default.forkEvent,unforkEvent:W0.default.unforkEvent,Event:une.AnimatedEvent};pne.exports=dne.default});var Ene=In(function(hne,bne){var Hu=Gn().default;hne.__esModule=!0;hne.default=void 0;var eut=Hu(ns()),tut=Hu(g0()),out=Hu(ote()),rut=Hu(vte()),nut=Hu(Mte()),aut=Hu(Kte()),sut=Hu(ioe()),iut=Hu(poe()),lut=Hu(fne()),cut=Hu($g()),uut=tut.default.isTesting?lut.default:cut.default,S7t=hne.default=(0,eut.default)({FlatList:out.default,Image:rut.default,ScrollView:nut.default,SectionList:aut.default,Text:sut.default,View:iut.default},uut);bne.exports=hne.default});var Tne=In(function(Sne,_ne){var put=Gn().default;Sne.__esModule=!0;Sne.default=void 0;var mut=put(Ene()),_7t=Sne.default=mut.default;_ne.exports=Sne.default});var e4=In(function(xne,Rne){var hut=Gn().default;xne.__esModule=!0;xne.default=void 0;var but=hut(ti());function yut(){return but.default&&window.matchMedia!=null?window.matchMedia("(prefers-color-scheme: dark)"):null}var K1=yut(),yA=new WeakMap,Eut={getColorScheme(){return K1&&K1.matches?"dark":"light"},addChangeListener(rn){var nn=yA.get(rn);if(!nn)nn=(sn)=>{var ln=sn.matches;rn({colorScheme:ln?"dark":"light"})},yA.set(rn,nn);if(K1)K1.addListener(nn);function an(){var sn=yA.get(rn);if(K1&&sn)K1.removeListener(sn);yA.delete(rn)}return{remove:an}}},v7t=xne.default=Eut;Rne.exports=xne.default});import*as Rut from"react";var gne=In(function(Ine,One){var wne=Gn().default,_ut=Ra().default;Ine.__esModule=!0;Ine.default=void 0;var X1=_ut(Rut),vut=wne(es()),Mne=wne(bs()),Tut=X1.createContext(null),Lne=X1.forwardRef((rn,nn)=>{var{children:an,WrapperComponent:sn}=rn,ln=X1.createElement(Mne.default,{children:an,key:1,style:Cne.appContainer});if(sn)ln=X1.createElement(sn,null,ln);return X1.createElement(Tut.Provider,{value:rn.rootTag},X1.createElement(Mne.default,{ref:nn,style:Cne.appContainer},ln))});Lne.displayName="AppContainer";var T7t=Ine.default=Lne,Cne=vut.default.create({appContainer:{flex:1,pointerEvents:"box-none"}});One.exports=Ine.default});import*as Nut from"react";var Gne=In(function(Out){var Aut=Ra().default,aS=Gn().default;Out.__esModule=!0;Out.default=Lut;Out.getApplication=Iut;var Mut=aS(hs()),Nne=aS(gne()),Cut=aS(cs()),Dne=Aut(xP()),wut=aS(es()),nS=aS(Nut);function Lut(rn,nn,an,sn){var{hydrate:ln,initialProps:cn,rootTag:un}=sn,dn=ln?Dne.hydrate:Dne.default;return(0,Cut.default)(un,"Expect to have a valid rootTag, instead got ",un),dn(nS.default.createElement(Nne.default,{WrapperComponent:nn,ref:an,rootTag:un},nS.default.createElement(rn,cn)),un)}function Iut(rn,nn,an){var sn=nS.default.createElement(Nne.default,{WrapperComponent:an,rootTag:{}},nS.default.createElement(rn,nn)),ln=(cn)=>{var un=wut.default.getSheet();return nS.default.createElement("style",(0,Mut.default)({},cn,{dangerouslySetInnerHTML:{__html:un.textContent},id:un.id}))};return{element:sn,getStyleElement:ln}}});var Une=In(function(Fne,Hne){var Gut=Ra().default,r4=Gn().default;Fne.__esModule=!0;Fne.default=void 0;var kut=r4(ns()),t4=r4(cs()),But=r4(RP()),kne=Gut(Gne()),Bne={},U0={},o4=(rn)=>rn(),sS;class EA{static getAppKeys(){return Object.keys(U0)}static getApplication(rn,nn){return(0,t4.default)(U0[rn]&&U0[rn].getApplication,"Application "+rn+" has not been registered. This is either due to an import error during initialization or failure to call AppRegistry.registerComponent."),U0[rn].getApplication(nn)}static registerComponent(rn,nn){return U0[rn]={getApplication:(an)=>(0,kne.getApplication)(o4(nn),an?an.initialProps:Bne,sS&&sS(an)),run:(an)=>(0,kne.default)(o4(nn),sS&&sS(an),an.callback,{hydrate:an.hydrate||!1,initialProps:an.initialProps||Bne,mode:an.mode||"concurrent",rootTag:an.rootTag})},rn}static registerConfig(rn){rn.forEach((nn)=>{var{appKey:an,component:sn,run:ln}=nn;if(ln)EA.registerRunnable(an,ln);else(0,t4.default)(sn,"No component provider passed in"),EA.registerComponent(an,sn)})}static registerRunnable(rn,nn){return U0[rn]={run:nn},rn}static runApplication(rn,nn){var an=!1;if(an){var sn=(0,kut.default)({},nn);sn.rootTag="#"+sn.rootTag.id,console.log('Running application "'+rn+`" with appParams:
12
+ `,sn,`
13
+ Development-level warnings: `+(an?"ON":"OFF")+"."+(`
14
+ Performance optimizations: `+(an?"OFF":"ON")+"."))}return(0,t4.default)(U0[rn]&&U0[rn].run,'Application "'+rn+'" has not been registered. This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.'),U0[rn].run(nn)}static setComponentProviderInstrumentationHook(rn){o4=rn}static setWrapperComponentProvider(rn){sS=rn}static unmountApplicationComponentAtRootTag(rn){(0,But.default)(rn)}}Fne.default=EA;Hne.exports=Fne.default});var jne=In(function(Yne,Kne){var a4=Gn().default;Yne.__esModule=!0;Yne.default=void 0;var Hut=a4(cs()),Wut=a4(LR()),Vne=a4(ti()),zne=Vne.default&&!document.hasOwnProperty("hidden")&&document.hasOwnProperty("webkitHidden"),Uut=["change","memoryWarning"],Vut=zne?"webkitvisibilitychange":"visibilitychange",qne=zne?"webkitVisibilityState":"visibilityState",n4={BACKGROUND:"background",ACTIVE:"active"},iS=null;class j1{static get currentState(){if(!j1.isAvailable)return n4.ACTIVE;switch(document[qne]){case"hidden":case"prerender":case"unloaded":return n4.BACKGROUND;default:return n4.ACTIVE}}static addEventListener(rn,nn){if(j1.isAvailable){if((0,Hut.default)(Uut.indexOf(rn)!==-1,'Trying to subscribe to unknown event: "%s"',rn),rn==="change"){if(!iS)iS=new Wut.default,document.addEventListener(Vut,()=>{if(iS)iS.emit("change",j1.currentState)},!1);return iS.addListener(rn,nn)}}}}Yne.default=j1;j1.isAvailable=Vne.default&&!!document[qne];Kne.exports=Yne.default});var eae=In(function(Zne,Qne){Zne.__esModule=!0;Zne.default=void 0;var $ne=Ag(),qut={registerAsset:$ne.registerAsset,getAssetByID:$ne.getAssetByID},R7t=Zne.default=qut;Qne.exports=Zne.default});var nae=In(function(tae,oae){tae.__esModule=!0;tae.default=void 0;function s4(){}var Kut={exitApp:s4,addEventListener(){return console.error("BackHandler is not supported on web and should not be used."),{remove:s4}},removeEventListener:s4},A7t=tae.default=Kut;oae.exports=tae.default});var cae=In(function(sae,iae){sae.__esModule=!0;sae.default=void 0;var i4;class aae{static isAvailable(){if(i4===void 0)i4=typeof document.queryCommandSupported==="function"&&document.queryCommandSupported("copy");return i4}static getString(){return Promise.resolve("")}static setString(rn){var nn=!1,an=document.body;if(an){var sn=document.createElement("span");sn.textContent=rn,sn.style.opacity="0",sn.style.position="absolute",sn.style.whiteSpace="pre-wrap",sn.style.userSelect="auto",an.appendChild(sn);var ln=window.getSelection();ln.removeAllRanges();var cn=document.createRange();cn.selectNodeContents(sn),ln.addRange(cn);try{document.execCommand("copy"),nn=!0}catch(un){}ln.removeAllRanges(),an.removeChild(sn)}return nn}}sae.default=aae;iae.exports=sae.default});var mae=In(function(uae,dae){uae.__esModule=!0;uae.default=void 0;var $ut={allowRTL(){return},forceRTL(){return},getConstants(){return{isRTL:!1}}},M7t=uae.default=$ut;dae.exports=uae.default});var yae=In(function(fae,hae){var Qut=Gn().default;fae.__esModule=!0;fae.default=void 0;var Jut=Qut(VP()),e0t={isVisible(){return!1},addListener(){return{remove:()=>{}}},dismiss(){(0,Jut.default)()},removeAllListeners(){},removeListener(){}},C7t=fae.default=e0t;hae.exports=fae.default});var Tae=In(function(Sae,_ae){var Eae=Gn().default;Sae.__esModule=!0;Sae.default=void 0;var o0t=Eae(g0()),r0t=Eae(Pu());function SA(rn,nn){if(!o0t.default.isTesting)r0t.default.configureNextLayoutAnimation(rn,nn!==null&&nn!==void 0?nn:function(){},function(){})}function l4(rn,nn,an){return{duration:rn,create:{type:nn,property:an},update:{type:nn},delete:{type:nn,property:an}}}var _A={easeInEaseOut:l4(300,"easeInEaseOut","opacity"),linear:l4(500,"linear","opacity"),spring:{duration:700,create:{type:"linear",property:"opacity"},update:{type:"spring",springDamping:0.4},delete:{type:"linear",property:"opacity"}}},n0t={configureNext:SA,create:l4,Types:Object.freeze({spring:"spring",linear:"linear",easeInEaseOut:"easeInEaseOut",easeIn:"easeIn",easeOut:"easeOut",keyboard:"keyboard"}),Properties:Object.freeze({opacity:"opacity",scaleX:"scaleX",scaleY:"scaleY",scaleXY:"scaleXY"}),checkConfig(){console.error("LayoutAnimation.checkConfig(...) has been disabled.")},Presets:_A,easeInEaseOut:SA.bind(null,_A.easeInEaseOut),linear:SA.bind(null,_A.linear),spring:SA.bind(null,_A.spring)},w7t=Sae.default=n0t;_ae.exports=Sae.default});var Mae=In(function(xae,Rae){var s0t=Gn().default;xae.__esModule=!0;xae.default=void 0;var i0t=s0t(Tae()),L7t=xae.default=i0t.default;Rae.exports=xae.default});var Dae=In(function(Oae,Pae){var wae=Gn().default;Oae.__esModule=!0;Oae.default=void 0;var Cae=wae(cs()),Lae=wae(ti()),c0t=Lae.default?window.location.href:"";class Iae{constructor(){this._eventCallbacks={}}_dispatchEvent(rn){for(var nn=arguments.length,an=Array(nn>1?nn-1:0),sn=1;sn<nn;sn++)an[sn-1]=arguments[sn];var ln=this._eventCallbacks[rn];if(ln!=null&&Array.isArray(ln))ln.map((cn)=>{cn(...an)})}addEventListener(rn,nn){var an=this;if(!an._eventCallbacks[rn])an._eventCallbacks[rn]=[nn];return an._eventCallbacks[rn].push(nn),{remove(){var sn=an._eventCallbacks[rn],ln=sn.filter((cn)=>cn.toString()!==nn.toString());an._eventCallbacks[rn]=ln}}}removeEventListener(rn,nn){console.error("Linking.removeEventListener('"+rn+"', ...): Method has been deprecated. Please instead use `remove()` on the subscription returned by `Linking.addEventListener`.");var an=this._eventCallbacks[rn],sn=an.filter((ln)=>ln.toString()!==nn.toString());this._eventCallbacks[rn]=sn}canOpenURL(){return Promise.resolve(!0)}getInitialURL(){return Promise.resolve(c0t)}openURL(rn,nn){if(arguments.length===1)nn="_blank";try{return u0t(rn,nn),this._dispatchEvent("onOpen",rn),Promise.resolve()}catch(an){return Promise.reject(an)}}_validateURL(rn){(0,Cae.default)(typeof rn==="string","Invalid URL: should be a string. Was: "+rn),(0,Cae.default)(rn,"Invalid URL: cannot be empty")}}var u0t=(rn,nn)=>{if(Lae.default){var an=new URL(rn,window.location).toString();if(an.indexOf("tel:")===0)window.location=an;else window.open(an,nn,"noopener")}},I7t=Oae.default=new Iae;Pae.exports=Oae.default});var Bae=In(function(Nae,Gae){var p0t=Gn().default;Nae.__esModule=!0;Nae.default=void 0;var m0t=p0t(sg()),O7t=Nae.default=m0t.default;Gae.exports=Nae.default});var Uae=In(function(Fae,Hae){Fae.__esModule=!0;Fae.default=void 0;var yp={centroidDimension:function(nn,an,sn,ln){var cn=nn.touchBank,un=0,dn=0,pn=nn.numberActiveTouches===1?nn.touchBank[nn.indexOfSingleActiveTouch]:null;if(pn!==null){if(pn.touchActive&&pn.currentTimeStamp>an)un+=ln&&sn?pn.currentPageX:ln&&!sn?pn.currentPageY:!ln&&sn?pn.previousPageX:pn.previousPageY,dn=1}else for(var mn=0;mn<cn.length;mn++){var fn=cn[mn];if(fn!==null&&fn!==void 0&&fn.touchActive&&fn.currentTimeStamp>=an){var hn=void 0;if(ln&&sn)hn=fn.currentPageX;else if(ln&&!sn)hn=fn.currentPageY;else if(!ln&&sn)hn=fn.previousPageX;else hn=fn.previousPageY;un+=hn,dn++}}return dn>0?un/dn:yp.noCentroid},currentCentroidXOfTouchesChangedAfter:function(nn,an){return yp.centroidDimension(nn,an,!0,!0)},currentCentroidYOfTouchesChangedAfter:function(nn,an){return yp.centroidDimension(nn,an,!1,!0)},previousCentroidXOfTouchesChangedAfter:function(nn,an){return yp.centroidDimension(nn,an,!0,!1)},previousCentroidYOfTouchesChangedAfter:function(nn,an){return yp.centroidDimension(nn,an,!1,!1)},currentCentroidX:function(nn){return yp.centroidDimension(nn,0,!0,!0)},currentCentroidY:function(nn){return yp.centroidDimension(nn,0,!1,!0)},noCentroid:-1},P7t=Fae.default=yp;Hae.exports=Fae.default});var Zae=In(function(Xae,jae){var Yae=Gn().default;Xae.__esModule=!0;Xae.default=void 0;var Kae=Yae(B2()),Z1=Yae(Uae()),Vae=Z1.default.currentCentroidXOfTouchesChangedAfter,zae=Z1.default.currentCentroidYOfTouchesChangedAfter,b0t=Z1.default.previousCentroidXOfTouchesChangedAfter,y0t=Z1.default.previousCentroidYOfTouchesChangedAfter,E0t=Z1.default.currentCentroidX,S0t=Z1.default.currentCentroidY,$1={_initializeGestureState(rn){rn.moveX=0,rn.moveY=0,rn.x0=0,rn.y0=0,rn.dx=0,rn.dy=0,rn.vx=0,rn.vy=0,rn.numberActiveTouches=0,rn._accountsForMovesUpTo=0},_updateGestureStateOnMove(rn,nn){rn.numberActiveTouches=nn.numberActiveTouches,rn.moveX=Vae(nn,rn._accountsForMovesUpTo),rn.moveY=zae(nn,rn._accountsForMovesUpTo);var an=rn._accountsForMovesUpTo,sn=b0t(nn,an),ln=Vae(nn,an),cn=y0t(nn,an),un=zae(nn,an),dn=rn.dx+(ln-sn),pn=rn.dy+(un-cn),mn=nn.mostRecentTimeStamp-rn._accountsForMovesUpTo;rn.vx=(dn-rn.dx)/mn,rn.vy=(pn-rn.dy)/mn,rn.dx=dn,rn.dy=pn,rn._accountsForMovesUpTo=nn.mostRecentTimeStamp},create(rn){var nn={handle:null,shouldCancelClick:!1,timeout:null},an={stateID:Math.random(),moveX:0,moveY:0,x0:0,y0:0,dx:0,dy:0,vx:0,vy:0,numberActiveTouches:0,_accountsForMovesUpTo:0},sn={onStartShouldSetResponder(ln){return rn.onStartShouldSetPanResponder==null?!1:rn.onStartShouldSetPanResponder(ln,an)},onMoveShouldSetResponder(ln){return rn.onMoveShouldSetPanResponder==null?!1:rn.onMoveShouldSetPanResponder(ln,an)},onStartShouldSetResponderCapture(ln){if(ln.nativeEvent.touches.length===1)$1._initializeGestureState(an);return an.numberActiveTouches=ln.touchHistory.numberActiveTouches,rn.onStartShouldSetPanResponderCapture!=null?rn.onStartShouldSetPanResponderCapture(ln,an):!1},onMoveShouldSetResponderCapture(ln){var cn=ln.touchHistory;if(an._accountsForMovesUpTo===cn.mostRecentTimeStamp)return!1;return $1._updateGestureStateOnMove(an,cn),rn.onMoveShouldSetPanResponderCapture?rn.onMoveShouldSetPanResponderCapture(ln,an):!1},onResponderGrant(ln){if(!nn.handle)nn.handle=Kae.default.createInteractionHandle();if(nn.timeout)_0t(nn);if(nn.shouldCancelClick=!0,an.x0=E0t(ln.touchHistory),an.y0=S0t(ln.touchHistory),an.dx=0,an.dy=0,rn.onPanResponderGrant)rn.onPanResponderGrant(ln,an);return rn.onShouldBlockNativeResponder==null?!0:rn.onShouldBlockNativeResponder(ln,an)},onResponderReject(ln){vA(nn,rn.onPanResponderReject,ln,an)},onResponderRelease(ln){vA(nn,rn.onPanResponderRelease,ln,an),qae(nn),$1._initializeGestureState(an)},onResponderStart(ln){var cn=ln.touchHistory;if(an.numberActiveTouches=cn.numberActiveTouches,rn.onPanResponderStart)rn.onPanResponderStart(ln,an)},onResponderMove(ln){var cn=ln.touchHistory;if(an._accountsForMovesUpTo===cn.mostRecentTimeStamp)return;if($1._updateGestureStateOnMove(an,cn),rn.onPanResponderMove)rn.onPanResponderMove(ln,an)},onResponderEnd(ln){var cn=ln.touchHistory;an.numberActiveTouches=cn.numberActiveTouches,vA(nn,rn.onPanResponderEnd,ln,an)},onResponderTerminate(ln){vA(nn,rn.onPanResponderTerminate,ln,an),qae(nn),$1._initializeGestureState(an)},onResponderTerminationRequest(ln){return rn.onPanResponderTerminationRequest==null?!0:rn.onPanResponderTerminationRequest(ln,an)},onClickCapture:(ln)=>{if(nn.shouldCancelClick===!0)ln.stopPropagation(),ln.preventDefault()}};return{panHandlers:sn,getInteractionHandle(){return nn.handle}}}};function vA(rn,nn,an,sn){if(rn.handle)Kae.default.clearInteractionHandle(rn.handle),rn.handle=null;if(nn)nn(an,sn)}function _0t(rn){clearTimeout(rn.timeout)}function qae(rn){rn.timeout=setTimeout(()=>{rn.shouldCancelClick=!1},250)}var g7t=Xae.default=$1;jae.exports=Xae.default});var tse=In(function(Qae,Jae){var T0t=Gn().default;Qae.__esModule=!0;Qae.default=void 0;var x0t=T0t(Zae()),D7t=Qae.default=x0t.default;Jae.exports=Qae.default});var sse=In(function(rse,nse){var A0t=Gn().default;rse.__esModule=!0;rse.default=void 0;var TA=A0t(cs());class ose{static share(rn,nn){if(nn===void 0)nn={};if((0,TA.default)(typeof rn==="object"&&rn!==null,"Content to share must be a valid object"),(0,TA.default)(typeof rn.url==="string"||typeof rn.message==="string","At least one of URL and message is required"),(0,TA.default)(typeof nn==="object"&&nn!==null,"Options must be a valid object"),(0,TA.default)(!rn.title||typeof rn.title==="string","Invalid title: title should be a string."),window.navigator.share!==void 0)return window.navigator.share({title:rn.title,text:rn.message,url:rn.url});else return Promise.reject(Error("Share is not supported in this browser"))}static get sharedAction(){return"sharedAction"}static get dismissedAction(){return"dismissedAction"}}var N7t=rse.default=ose;nse.exports=rse.default});var dse=In(function(lse,cse){lse.__esModule=!0;lse.default=void 0;var ise=(rn)=>{if("vibrate"in window.navigator)window.navigator.vibrate(rn)},C0t={cancel(){ise(0)},vibrate(rn){if(rn===void 0)rn=400;ise(rn)}},G7t=lse.default=C0t;cse.exports=lse.default});import*as N0t from"react";var Sse=In(function(bse,yse){var RA=Gn().default,L0t=Ra().default;bse.__esModule=!0;bse.default=void 0;var I0t=RA(hs()),O0t=RA(as()),lS=L0t(N0t),fse=RA(es()),pse=RA(bs()),P0t=["animating","color","hidesWhenStopped","size","style"],mse=(rn)=>lS.createElement("circle",{cx:"16",cy:"16",fill:"none",r:"14",strokeWidth:"4",style:rn}),hse=lS.forwardRef((rn,nn)=>{var an=rn.animating,sn=an===void 0?!0:an,ln=rn.color,cn=ln===void 0?"#1976D2":ln,un=rn.hidesWhenStopped,dn=un===void 0?!0:un,pn=rn.size,mn=pn===void 0?"small":pn,fn=rn.style,hn=(0,O0t.default)(rn,P0t),bn=lS.createElement("svg",{height:"100%",viewBox:"0 0 32 32",width:"100%"},mse({stroke:cn,opacity:0.2}),mse({stroke:cn,strokeDasharray:80,strokeDashoffset:60}));return lS.createElement(pse.default,(0,I0t.default)({},hn,{"aria-valuemax":1,"aria-valuemin":0,ref:nn,role:"progressbar",style:[xA.container,fn]}),lS.createElement(pse.default,{children:bn,style:[typeof mn==="number"?{height:mn,width:mn}:g0t[mn],xA.animation,!sn&&xA.animationPause,!sn&&dn&&xA.hidesWhenStopped]}))});hse.displayName="ActivityIndicator";var xA=fse.default.create({container:{alignItems:"center",justifyContent:"center"},hidesWhenStopped:{visibility:"hidden"},animation:{animationDuration:"0.75s",animationKeyframes:[{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}],animationTimingFunction:"linear",animationIterationCount:"infinite"},animationPause:{animationPlayState:"paused"}}),g0t=fse.default.create({small:{width:20,height:20},large:{width:36,height:36}}),k7t=bse.default=hse;yse.exports=bse.default});var gse=In(function(Ise,Ose){Ise.__esModule=!0;Ise.default=void 0;var _se="DELAY",Jc="ERROR",vse="LONG_PRESS_DETECTED",qi="NOT_RESPONDER",Q1="RESPONDER_ACTIVE_LONG_PRESS_START",CA="RESPONDER_ACTIVE_PRESS_START",u4="RESPONDER_INACTIVE_PRESS_START",G0t="RESPONDER_GRANT",AA="RESPONDER_RELEASE",Cse="RESPONDER_TERMINATED",Tse=Object.freeze({NOT_RESPONDER:{DELAY:Jc,RESPONDER_GRANT:u4,RESPONDER_RELEASE:Jc,RESPONDER_TERMINATED:Jc,LONG_PRESS_DETECTED:Jc},RESPONDER_INACTIVE_PRESS_START:{DELAY:CA,RESPONDER_GRANT:Jc,RESPONDER_RELEASE:qi,RESPONDER_TERMINATED:qi,LONG_PRESS_DETECTED:Jc},RESPONDER_ACTIVE_PRESS_START:{DELAY:Jc,RESPONDER_GRANT:Jc,RESPONDER_RELEASE:qi,RESPONDER_TERMINATED:qi,LONG_PRESS_DETECTED:Q1},RESPONDER_ACTIVE_LONG_PRESS_START:{DELAY:Jc,RESPONDER_GRANT:Jc,RESPONDER_RELEASE:qi,RESPONDER_TERMINATED:qi,LONG_PRESS_DETECTED:Q1},ERROR:{DELAY:qi,RESPONDER_GRANT:u4,RESPONDER_RELEASE:qi,RESPONDER_TERMINATED:qi,LONG_PRESS_DETECTED:qi}}),wse=(rn)=>rn.getAttribute("role"),d4=(rn)=>rn.tagName.toLowerCase(),xse=(rn)=>rn===CA||rn===Q1,MA=(rn)=>wse(rn)==="button",Rse=(rn)=>rn===u4||rn===CA||rn===Q1,k0t=(rn)=>rn===Cse||rn===AA,Ase=(rn)=>{var{key:nn,target:an}=rn,sn=nn===" "||nn==="Spacebar",ln=d4(an)==="button"||MA(an);return nn==="Enter"||sn&&ln},B0t=450,F0t=50;class Lse{constructor(rn){this._eventHandlers=null,this._isPointerTouch=!1,this._longPressDelayTimeout=null,this._longPressDispatched=!1,this._pressDelayTimeout=null,this._pressOutDelayTimeout=null,this._touchState=qi,this._responderElement=null,this.configure(rn)}configure(rn){this._config=rn}reset(){this._cancelLongPressDelayTimeout(),this._cancelPressDelayTimeout(),this._cancelPressOutDelayTimeout()}getEventHandlers(){if(this._eventHandlers==null)this._eventHandlers=this._createEventHandlers();return this._eventHandlers}_createEventHandlers(){var rn=(sn,ln)=>{sn.persist(),this._cancelPressOutDelayTimeout(),this._longPressDispatched=!1,this._selectionTerminated=!1,this._touchState=qi,this._isPointerTouch=sn.nativeEvent.type==="touchstart",this._receiveSignal(G0t,sn);var cn=c4(this._config.delayPressStart,0,F0t);if(ln!==!1&&cn>0)this._pressDelayTimeout=setTimeout(()=>{this._receiveSignal(_se,sn)},cn);else this._receiveSignal(_se,sn);var un=c4(this._config.delayLongPress,10,B0t);this._longPressDelayTimeout=setTimeout(()=>{this._handleLongPress(sn)},un+cn)},nn=(sn)=>{this._receiveSignal(AA,sn)},an=(sn)=>{var ln=this._config.onPress,cn=sn.target;if(this._touchState!==qi&&Ase(sn)){nn(sn),document.removeEventListener("keyup",an);var un=cn.getAttribute("role"),dn=d4(cn),pn=un==="link"||dn==="a"||dn==="button"||dn==="input"||dn==="select"||dn==="textarea",mn=this._responderElement===cn;if(ln!=null&&!pn&&mn)ln(sn);this._responderElement=null}};return{onStartShouldSetResponder:(sn)=>{var ln=this._config.disabled;if(ln&&MA(sn.currentTarget))sn.stopPropagation();if(ln==null)return!0;return!ln},onKeyDown:(sn)=>{var ln=this._config.disabled,{key:cn,target:un}=sn;if(!ln&&Ase(sn)){if(this._touchState===qi)rn(sn,!1),this._responderElement=un,document.addEventListener("keyup",an);var dn=cn===" "||cn==="Spacebar",pn=wse(un),mn=pn==="button"||pn==="menuitem";if(dn&&mn&&d4(un)!=="button")sn.preventDefault();sn.stopPropagation()}},onResponderGrant:(sn)=>rn(sn),onResponderMove:(sn)=>{if(this._config.onPressMove!=null)this._config.onPressMove(sn);var ln=Mse(sn);if(this._touchActivatePosition!=null){var cn=this._touchActivatePosition.pageX-ln.pageX,un=this._touchActivatePosition.pageY-ln.pageY;if(Math.hypot(cn,un)>10)this._cancelLongPressDelayTimeout()}},onResponderRelease:(sn)=>nn(sn),onResponderTerminate:(sn)=>{if(sn.nativeEvent.type==="selectionchange")this._selectionTerminated=!0;this._receiveSignal(Cse,sn)},onResponderTerminationRequest:(sn)=>{var ln=this._config,{cancelable:cn,disabled:un,onLongPress:dn}=ln;if(!un&&dn!=null&&this._isPointerTouch&&sn.nativeEvent.type==="contextmenu")return!1;if(cn==null)return!0;return cn},onClick:(sn)=>{var ln=this._config,{disabled:cn,onPress:un}=ln;if(!cn){if(sn.stopPropagation(),this._longPressDispatched||this._selectionTerminated)sn.preventDefault();else if(un!=null&&sn.altKey===!1)un(sn)}else if(MA(sn.currentTarget))sn.stopPropagation()},onContextMenu:(sn)=>{var ln=this._config,{disabled:cn,onLongPress:un}=ln;if(!cn){if(un!=null&&this._isPointerTouch&&!sn.defaultPrevented)sn.preventDefault(),sn.stopPropagation()}else if(MA(sn.currentTarget))sn.stopPropagation()}}}_receiveSignal(rn,nn){var an=this._touchState,sn=null;if(Tse[an]!=null)sn=Tse[an][rn];if(this._touchState===qi&&rn===AA)return;if(sn==null||sn===Jc)console.error("PressResponder: Invalid signal "+rn+" for state "+an+" on responder");else if(an!==sn)this._performTransitionSideEffects(an,sn,rn,nn),this._touchState=sn}_performTransitionSideEffects(rn,nn,an,sn){if(k0t(an))setTimeout(()=>{this._isPointerTouch=!1},0),this._touchActivatePosition=null,this._cancelLongPressDelayTimeout();if(Rse(rn)&&an===vse){var ln=this._config.onLongPress;if(ln!=null&&sn.nativeEvent.key==null)ln(sn),this._longPressDispatched=!0}var cn=xse(rn),un=xse(nn);if(!cn&&un)this._activate(sn);else if(cn&&!un)this._deactivate(sn);if(Rse(rn)&&an===AA){var dn=this._config,{onLongPress:pn,onPress:mn}=dn;if(mn!=null){var fn=pn!=null&&rn===Q1;if(!fn){if(!un&&!cn)this._activate(sn),this._deactivate(sn)}}}this._cancelPressDelayTimeout()}_activate(rn){var nn=this._config,{onPressChange:an,onPressStart:sn}=nn,ln=Mse(rn);if(this._touchActivatePosition={pageX:ln.pageX,pageY:ln.pageY},sn!=null)sn(rn);if(an!=null)an(!0)}_deactivate(rn){var nn=this._config,{onPressChange:an,onPressEnd:sn}=nn;function ln(){if(sn!=null)sn(rn);if(an!=null)an(!1)}var cn=c4(this._config.delayPressEnd);if(cn>0)this._pressOutDelayTimeout=setTimeout(()=>{ln()},cn);else ln()}_handleLongPress(rn){if(this._touchState===CA||this._touchState===Q1)this._receiveSignal(vse,rn)}_cancelLongPressDelayTimeout(){if(this._longPressDelayTimeout!=null)clearTimeout(this._longPressDelayTimeout),this._longPressDelayTimeout=null}_cancelPressDelayTimeout(){if(this._pressDelayTimeout!=null)clearTimeout(this._pressDelayTimeout),this._pressDelayTimeout=null}_cancelPressOutDelayTimeout(){if(this._pressOutDelayTimeout!=null)clearTimeout(this._pressOutDelayTimeout),this._pressOutDelayTimeout=null}}Ise.default=Lse;function c4(rn,nn,an){if(nn===void 0)nn=0;if(an===void 0)an=0;return Math.max(nn,rn!==null&&rn!==void 0?rn:an)}function Mse(rn){var nn=rn.nativeEvent,{changedTouches:an,touches:sn}=nn;if(sn!=null&&sn.length>0)return sn[0];if(an!=null&&an.length>0)return an[0];return rn.nativeEvent}Ose.exports=Ise.default});import*as ff from"react";var cS=In(function(Dse,Nse){var W0t=Gn().default;Dse.__esModule=!0;Dse.default=V0t;var U0t=W0t(gse());function V0t(rn,nn){var an=ff.useRef(null);if(an.current==null)an.current=new U0t.default(nn);var sn=an.current;return ff.useEffect(()=>{sn.configure(nn)},[nn,sn]),ff.useEffect(()=>()=>{sn.reset()},[sn]),ff.useDebugValue(nn),sn.getEventHandlers()}Nse.exports=Dse.default});import*as odt from"react";var m4=In(function(Bse,Fse){var J1=Gn().default,Y0t=Ra().default;Bse.__esModule=!0;Bse.default=void 0;var K0t=J1(hs()),X0t=J1(as()),Ep=Y0t(odt),p4=Ep,j0t=J1(gu()),$0t=J1(cS()),Z0t=J1(es()),Q0t=J1(bs()),J0t=["activeOpacity","delayPressIn","delayPressOut","delayLongPress","disabled","focusable","onLongPress","onPress","onPressIn","onPressOut","rejectResponderTermination","style"];function edt(rn,nn){var{activeOpacity:an,delayPressIn:sn,delayPressOut:ln,delayLongPress:cn,disabled:un,focusable:dn,onLongPress:pn,onPress:mn,onPressIn:fn,onPressOut:hn,rejectResponderTermination:bn,style:yn}=rn,En=(0,X0t.default)(rn,J0t),Sn=(0,Ep.useRef)(null),_n=(0,j0t.default)(nn,Sn),vn=(0,Ep.useState)("0s"),Tn=vn[0],Rn=vn[1],An=(0,Ep.useState)(null),Mn=An[0],Cn=An[1],Ln=(0,Ep.useCallback)((Fn,qn)=>{Cn(Fn),Rn(qn?qn/1000+"s":"0s")},[Cn,Rn]),On=(0,Ep.useCallback)((Fn)=>{Ln(an!==null&&an!==void 0?an:0.2,Fn)},[an,Ln]),Dn=(0,Ep.useCallback)((Fn)=>{Ln(null,Fn)},[Ln]),Nn=(0,Ep.useMemo)(()=>({cancelable:!bn,disabled:un,delayLongPress:cn,delayPressStart:sn,delayPressEnd:ln,onLongPress:pn,onPress:mn,onPressStart(Fn){var qn=Fn.dispatchConfig!=null?Fn.dispatchConfig.registrationName==="onResponderGrant":Fn.type==="keydown";if(On(qn?0:150),fn!=null)fn(Fn)},onPressEnd(Fn){if(Dn(250),hn!=null)hn(Fn)}}),[cn,sn,ln,un,pn,mn,fn,hn,bn,On,Dn]),Wn=(0,$0t.default)(Sn,Nn);return p4.createElement(Q0t.default,(0,K0t.default)({},En,Wn,{accessibilityDisabled:un,focusable:!un&&dn!==!1,pointerEvents:un?"box-none":void 0,ref:_n,style:[Gse.root,!un&&Gse.actionable,yn,Mn!=null&&{opacity:Mn},{transitionDuration:Tn}]}))}var Gse=Z0t.default.create({root:{transitionProperty:"opacity",transitionDuration:"0.15s",userSelect:"none"},actionable:{cursor:"pointer",touchAction:"manipulation"}}),kse=p4.memo(p4.forwardRef(edt));kse.displayName="TouchableOpacity";var B7t=Bse.default=kse;Fse.exports=Bse.default});import*as ldt from"react";var qse=In(function(Use,Vse){var h4=Gn().default,rdt=Ra().default;Use.__esModule=!0;Use.default=void 0;var f4=rdt(ldt),ndt=h4(es()),adt=h4(m4()),sdt=h4(aA()),Wse=f4.forwardRef((rn,nn)=>{var{accessibilityLabel:an,color:sn,disabled:ln,onPress:cn,testID:un,title:dn}=rn;return f4.createElement(adt.default,{accessibilityLabel:an,accessibilityRole:"button",disabled:ln,focusable:!ln,onPress:cn,ref:nn,style:[wA.button,sn&&{backgroundColor:sn},ln&&wA.buttonDisabled],testID:un},f4.createElement(sdt.default,{style:[wA.text,ln&&wA.textDisabled]},dn))});Wse.displayName="Button";var wA=ndt.default.create({button:{backgroundColor:"#2196F3",borderRadius:2},text:{color:"#fff",fontWeight:"500",padding:8,textAlign:"center",textTransform:"uppercase"},buttonDisabled:{backgroundColor:"#dfdfdf"},textDisabled:{color:"#a1a1a1"}}),F7t=Use.default=Wse;Vse.exports=Use.default});import*as hdt from"react";var Jse=In(function($se,Zse){var eb=Gn().default,cdt=Ra().default;$se.__esModule=!0;$se.default=void 0;var Yse=eb(ns()),udt=eb(hs()),ddt=eb(as()),b4=cdt(hdt),pdt=eb(sc()),Kse=eb(es()),Xse=eb(bs()),mdt=["aria-readonly","color","disabled","onChange","onValueChange","readOnly","style","value"],jse=b4.forwardRef((rn,nn)=>{var an=rn["aria-readonly"],{color:sn,disabled:ln,onChange:cn,onValueChange:un,readOnly:dn,style:pn,value:mn}=rn,fn=(0,ddt.default)(rn,mdt);function hn(En){var Sn=En.nativeEvent.target.checked;En.nativeEvent.value=Sn,cn&&cn(En),un&&un(Sn)}var bn=b4.createElement(Xse.default,{style:[Sp.fakeControl,mn&&Sp.fakeControlChecked,mn&&sn&&{backgroundColor:sn,borderColor:sn},ln&&Sp.fakeControlDisabled,mn&&ln&&Sp.fakeControlCheckedAndDisabled]}),yn=(0,pdt.default)("input",{checked:mn,disabled:ln,onChange:hn,readOnly:dn===!0||an===!0||fn.accessibilityReadOnly===!0,ref:nn,style:[Sp.nativeControl,Sp.cursorInherit],type:"checkbox"});return b4.createElement(Xse.default,(0,udt.default)({},fn,{"aria-disabled":ln,"aria-readonly":an,style:[Sp.root,pn,ln&&Sp.cursorDefault]}),bn,yn)});jse.displayName="CheckBox";var Sp=Kse.default.create({root:{cursor:"pointer",height:16,userSelect:"none",width:16},cursorDefault:{cursor:"default"},cursorInherit:{cursor:"inherit"},fakeControl:{alignItems:"center",backgroundColor:"#fff",borderColor:"#657786",borderRadius:2,borderStyle:"solid",borderWidth:2,height:"100%",justifyContent:"center",width:"100%"},fakeControlChecked:{backgroundColor:"#009688",backgroundImage:'url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K")',backgroundRepeat:"no-repeat",borderColor:"#009688"},fakeControlDisabled:{borderColor:"#CCD6DD"},fakeControlCheckedAndDisabled:{backgroundColor:"#AAB8C2",borderColor:"#AAB8C2"},nativeControl:(0,Yse.default)((0,Yse.default)({},Kse.default.absoluteFillObject),{},{height:"100%",margin:0,appearance:"none",padding:0,width:"100%"})}),H7t=$se.default=jse;Zse.exports=$se.default});import*as Rdt from"react";var iie=In(function(nie,aie){var uS=Gn().default,bdt=Ra().default;nie.__esModule=!0;nie.default=void 0;var ydt=uS(hs()),Edt=uS(as()),oie=bdt(Rdt),eie=oie,Sdt=uS(rA()),tie=uS(es()),_dt=uS(bs()),vdt=["children","style","imageStyle","imageRef"],Tdt={},rie=(0,oie.forwardRef)((rn,nn)=>{var{children:an,style:sn}=rn,ln=sn===void 0?Tdt:sn,{imageStyle:cn,imageRef:un}=rn,dn=(0,Edt.default)(rn,vdt),pn=tie.default.flatten(ln),{height:mn,width:fn}=pn;return eie.createElement(_dt.default,{ref:nn,style:ln},eie.createElement(Sdt.default,(0,ydt.default)({},dn,{ref:un,style:[{width:fn,height:mn,zIndex:-1},tie.default.absoluteFill,cn]})),an)});rie.displayName="ImageBackground";var W7t=nie.default=rie;aie.exports=nie.default});import*as gdt from"react";var IA=In(function(lie,cie){var LA=Gn().default;lie.__esModule=!0;lie.default=void 0;var Adt=LA(hs()),Mdt=LA(as()),Cdt=LA(bs()),wdt=LA(gdt),Ldt=["style"];function Idt(rn){var nn=rn.style,an=(0,Mdt.default)(rn,Ldt);return wdt.default.createElement(Cdt.default,(0,Adt.default)({},an,{style:[Odt,nn]}))}var Odt={},U7t=lie.default=Idt;cie.exports=lie.default});var fie=In(function(die,pie){var Ddt=Gn().default;die.__esModule=!0;die.default=void 0;var Ndt=Ddt(IA()),V7t=die.default=Ndt.default;pie.exports=die.default});import*as Vdt from"react";var _ie=In(function(yie,Eie){var y4=Gn().default,kdt=Ra().default;yie.__esModule=!0;yie.default=void 0;var Bdt=y4(hs()),Fdt=y4(as()),hie=kdt(Vdt),Hdt=y4(bs()),Wdt=["behavior","contentContainerStyle","keyboardVerticalOffset"];class bie extends hie.Component{constructor(){super(...arguments);this.frame=null,this.onLayout=(rn)=>{this.frame=rn.nativeEvent.layout}}relativeKeyboardHeight(rn){var nn=this.frame;if(!nn||!rn)return 0;var an=rn.screenY-(this.props.keyboardVerticalOffset||0);return Math.max(nn.y+nn.height-an,0)}onKeyboardChange(rn){}render(){var rn=this.props,{behavior:nn,contentContainerStyle:an,keyboardVerticalOffset:sn}=rn,ln=(0,Fdt.default)(rn,Wdt);return hie.createElement(Hdt.default,(0,Bdt.default)({onLayout:this.onLayout},ln))}}var z7t=yie.default=bie;Eie.exports=yie.default});import*as Xdt from"react";import*as Tie from"react-dom";var Mie=In(function(xie,Rie){var zdt=Gn().default,qdt=Ra().default;xie.__esModule=!0;xie.default=void 0;var vie=qdt(Xdt),E4=zdt(ti());function Ydt(rn){var nn=rn.children,an=vie.useRef(null);if(E4.default&&!an.current){var sn=document.createElement("div");if(sn&&document.body)document.body.appendChild(sn),an.current=sn}return vie.useEffect(()=>{if(E4.default)return()=>{if(document.body&&an.current)document.body.removeChild(an.current),an.current=null}},[]),an.current&&E4.default?Tie.createPortal(nn,an.current):null}var q7t=xie.default=Ydt;Rie.exports=xie.default});import*as apt from"react";var Pie=In(function(Lie,Iie){var wie=Gn().default,jdt=Ra().default;Lie.__esModule=!0;Lie.default=void 0;var tb=jdt(apt),$dt=wie(es()),Zdt=wie(sc()),Cie=250;function Qdt(rn,nn){if(rn==="slide")return nn?ept:tpt;if(rn==="fade")return nn?opt:rpt;return nn?Yi.container:Yi.hidden}function Jdt(rn){var{animationType:nn,children:an,onDismiss:sn,onShow:ln,visible:cn}=rn,un=tb.useState(!1),dn=un[0],pn=un[1],mn=tb.useRef(!1),fn=tb.useRef(!1),hn=nn&&nn!=="none",bn=tb.useCallback((yn)=>{if(yn&&yn.currentTarget!==yn.target)return;if(cn){if(ln)ln()}else pn(!1)},[ln,cn]);return tb.useEffect(()=>{if(fn.current&&!dn&&sn)sn();fn.current=dn},[dn,sn]),tb.useEffect(()=>{if(cn)pn(!0);if(cn!==mn.current&&!hn)bn();mn.current=cn},[hn,cn,bn]),dn||cn?(0,Zdt.default)("div",{style:dn?Qdt(nn,cn):Yi.hidden,onAnimationEnd:bn,children:an}):null}var Yi=$dt.default.create({container:{position:"fixed",top:0,right:0,bottom:0,left:0,zIndex:9999},animatedIn:{animationDuration:Cie+"ms",animationTimingFunction:"cubic-bezier(0.215, 0.61, 0.355, 1)"},animatedOut:{pointerEvents:"none",animationDuration:Cie+"ms",animationTimingFunction:"cubic-bezier(0.47, 0, 0.745, 0.715)"},fadeIn:{opacity:1,animationKeyframes:{"0%":{opacity:0},"100%":{opacity:1}}},fadeOut:{opacity:0,animationKeyframes:{"0%":{opacity:1},"100%":{opacity:0}}},slideIn:{transform:"translateY(0%)",animationKeyframes:{"0%":{transform:"translateY(100%)"},"100%":{transform:"translateY(0%)"}}},slideOut:{transform:"translateY(100%)",animationKeyframes:{"0%":{transform:"translateY(0%)"},"100%":{transform:"translateY(100%)"}}},hidden:{opacity:0}}),ept=[Yi.container,Yi.animatedIn,Yi.slideIn],tpt=[Yi.container,Yi.animatedOut,Yi.slideOut],opt=[Yi.container,Yi.animatedIn,Yi.fadeIn],rpt=[Yi.container,Yi.animatedOut,Yi.fadeOut],Y7t=Lie.default=Jdt;Iie.exports=Lie.default});import*as fpt from"react";var kie=In(function(Die,Nie){var pS=Gn().default,spt=Ra().default;Die.__esModule=!0;Die.default=void 0;var ipt=pS(hs()),lpt=pS(as()),dS=spt(fpt),gie=pS(bs()),cpt=pS(es()),upt=pS(ti()),dpt=["active","children","onRequestClose","transparent"],ppt=dS.forwardRef((rn,nn)=>{var{active:an,children:sn,onRequestClose:ln,transparent:cn}=rn,un=(0,lpt.default)(rn,dpt);dS.useEffect(()=>{if(upt.default){var pn=(mn)=>{if(an&&mn.key==="Escape"){if(mn.stopPropagation(),ln)ln()}};return document.addEventListener("keyup",pn,!1),()=>document.removeEventListener("keyup",pn,!1)}},[an,ln]);var dn=dS.useMemo(()=>[OA.modal,cn?OA.modalTransparent:OA.modalOpaque],[cn]);return dS.createElement(gie.default,(0,ipt.default)({},un,{"aria-modal":!0,ref:nn,role:an?"dialog":null,style:dn}),dS.createElement(gie.default,{style:OA.container},sn))}),OA=cpt.default.create({modal:{position:"fixed",top:0,right:0,bottom:0,left:0},modalTransparent:{backgroundColor:"transparent"},modalOpaque:{backgroundColor:"white"},container:{top:0,flex:1}}),K7t=Die.default=ppt;Nie.exports=Die.default});import*as Tpt from"react";var Yie=In(function(Vie,zie){var mS=Gn().default,hpt=Ra().default;Vie.__esModule=!0;Vie.default=void 0;var V0=hpt(Tpt),bpt=mS(bs()),ypt=mS(sc()),Ept=mS(es()),Bie=mS(Pu()),S4=mS(ti()),Fie=()=>(0,ypt.default)("div",{role:"none",tabIndex:0,style:_pt.focusBracket});function Hie(rn){if(!S4.default)return!1;try{rn.focus()}catch(nn){}return document.activeElement===rn}function Wie(rn){for(var nn=0;nn<rn.childNodes.length;nn++){var an=rn.childNodes[nn];if(Hie(an)||Wie(an))return!0}return!1}function Uie(rn){for(var nn=rn.childNodes.length-1;nn>=0;nn--){var an=rn.childNodes[nn];if(Hie(an)||Uie(an))return!0}return!1}var Spt=(rn)=>{var{active:nn,children:an}=rn,sn=V0.useRef(),ln=V0.useRef({trapFocusInProgress:!1,lastFocusedElement:null});return V0.useEffect(()=>{if(S4.default){var cn=()=>{if(sn.current==null||ln.current.trapFocusInProgress||!nn)return;try{if(ln.current.trapFocusInProgress=!0,document.activeElement instanceof Node&&!sn.current.contains(document.activeElement)){var un=Wie(sn.current);if(ln.current.lastFocusedElement===document.activeElement)un=Uie(sn.current);if(!un&&sn.current!=null&&document.activeElement)Bie.default.focus(sn.current)}}finally{ln.current.trapFocusInProgress=!1}ln.current.lastFocusedElement=document.activeElement};return cn(),document.addEventListener("focus",cn,!0),()=>document.removeEventListener("focus",cn,!0)}},[nn]),V0.useEffect(function(){if(S4.default){var cn=document.activeElement;return function(){if(cn&&document.contains(cn))Bie.default.focus(cn)}}},[]),V0.createElement(V0.Fragment,null,V0.createElement(Fie,null),V0.createElement(bpt.default,{ref:sn},an),V0.createElement(Fie,null))},X7t=Vie.default=Spt,_pt=Ept.default.create({focusBracket:{outlineStyle:"none"}});zie.exports=Vie.default});import*as Npt from"react";var Zie=In(function(Xie,jie){var rb=Gn().default,xpt=Ra().default;Xie.__esModule=!0;Xie.default=void 0;var Rpt=rb(hs()),Apt=rb(as()),Wu=xpt(Npt),Mpt=rb(Mie()),Cpt=rb(Pie()),wpt=rb(kie()),Lpt=rb(Yie()),Ipt=["animationType","children","onDismiss","onRequestClose","onShow","transparent","visible"],Opt=0,hf=[],ob={};function Kie(){if(hf.length===0)return;var rn=hf[hf.length-1];hf.forEach((nn)=>{if(nn in ob)ob[nn](nn===rn)})}function _4(rn){if(rn in ob)ob[rn](!1),delete ob[rn];var nn=hf.indexOf(rn);if(nn!==-1)hf.splice(nn,1),Kie()}function Ppt(rn,nn){_4(rn),hf.push(rn),ob[rn]=nn,Kie()}var gpt=Wu.forwardRef((rn,nn)=>{var{animationType:an,children:sn,onDismiss:ln,onRequestClose:cn,onShow:un,transparent:dn,visible:pn}=rn,mn=pn===void 0?!0:pn,fn=(0,Apt.default)(rn,Ipt),hn=Wu.useMemo(()=>Opt++,[]),bn=Wu.useState(!1),yn=bn[0],En=bn[1],Sn=Wu.useCallback(()=>{if(_4(hn),ln)ln()},[hn,ln]),_n=Wu.useCallback(()=>{if(Ppt(hn,En),un)un()},[hn,un]);return Wu.useEffect(()=>()=>_4(hn),[hn]),Wu.createElement(Mpt.default,null,Wu.createElement(Cpt.default,{animationType:an,onDismiss:Sn,onShow:_n,visible:mn},Wu.createElement(Lpt.default,{active:yn},Wu.createElement(wpt.default,(0,Rpt.default)({},fn,{active:yn,onRequestClose:cn,ref:nn,transparent:dn}),sn))))}),j7t=Xie.default=gpt;jie.exports=Xie.default});var ele=In(function(Qie,Jie){var Gpt=Gn().default;Qie.__esModule=!0;Qie.default=Bpt;var kpt=Gpt(sc());function Bpt(rn){var{color:nn,label:an,testID:sn,value:ln}=rn,cn={color:nn};return(0,kpt.default)("option",{children:an,style:cn,testID:sn,value:ln})}Jie.exports=Qie.default});import*as Qpt from"react";var sle=In(function(rle,nle){var bf=Gn().default,Wpt=Ra().default;rle.__esModule=!0;rle.default=void 0;var Upt=bf(ns()),Vpt=bf(as()),tle=Wpt(Qpt),zpt=bf(sc()),qpt=bf(gu()),Ypt=bf(C2()),Kpt=bf(ele()),Xpt=bf(es()),jpt=["children","enabled","onValueChange","selectedValue","style","testID","itemStyle","mode","prompt"],ole=tle.forwardRef((rn,nn)=>{var{children:an,enabled:sn,onValueChange:ln,selectedValue:cn,style:un,testID:dn,itemStyle:pn,mode:mn,prompt:fn}=rn,hn=(0,Vpt.default)(rn,jpt),bn=tle.useRef(null);function yn(vn){var Tn=vn.target,{selectedIndex:Rn,value:An}=Tn;if(ln)ln(An,Rn)}var En=(0,Upt.default)({children:an,disabled:sn===!1?!0:void 0,onChange:yn,style:[$pt.initial,un],testID:dn,value:cn},hn),Sn=(0,Ypt.default)(En),_n=(0,qpt.default)(bn,Sn,nn);return En.ref=_n,(0,zpt.default)("select",En)});ole.Item=Kpt.default;var $pt=Xpt.default.create({initial:{fontFamily:"System",fontSize:"inherit",margin:0}}),$7t=rle.default=ole;nle.exports=rle.default});var v4=In(function(cmt){var Jpt=Gn().default;cmt.__esModule=!0;cmt.addEventListener=lmt;var emt=Jpt(ti()),tmt=()=>{};function omt(){var rn=!1;if(emt.default)try{var nn={};Object.defineProperty(nn,"passive",{get(){return rn=!0,!1}}),window.addEventListener("test",null,nn),window.removeEventListener("test",null,nn)}catch(an){}return rn}var rmt=omt();function nmt(rn){if(rn==null)return!1;return rmt?rn:Boolean(rn.capture)}function amt(){return this.cancelBubble}function smt(){return this.defaultPrevented}function imt(rn){return rn.nativeEvent=rn,rn.persist=tmt,rn.isDefaultPrevented=smt,rn.isPropagationStopped=amt,rn}function lmt(rn,nn,an,sn){var ln=nmt(sn),cn=(un)=>an(imt(un));return rn.addEventListener(nn,cn,ln),function(){if(rn!=null)rn.removeEventListener(nn,cn,ln)}}});var _le=In(function(Cmt){var pmt=Gn().default;Cmt.__esModule=!0;Cmt.addModalityListener=Amt;Cmt.getActiveModality=xmt;Cmt.getModality=Rmt;Cmt.testOnly_resetActiveModality=Mmt;var Ki=v4(),mmt=pmt(ti()),fmt=()=>typeof window<"u"&&window.PointerEvent!=null,Nl="keyboard",Xi="keyboard",hS,bS,nb=!1,x4=new Set,yf="keyboard",fS="mouse",T4="touch",hmt="blur",lle="contextmenu",bmt="focus",ymt="keydown",cle="mousedown",ule="mousemove",dle="mouseup",ple="pointerdown",mle="pointermove",fle="scroll",hle="selectionchange",ble="touchcancel",yle="touchmove",Ele="touchstart",Emt="visibilitychange",ile={passive:!0},Dl={capture:!0,passive:!0};function Sle(){if(hS!=null||bS!=null){if(hS!=null)Xi=hS,hS=null;if(bS!=null)Nl=bS,bS=null;_p()}}function Smt(){hS=Xi,bS=Nl,Nl=yf,Xi=yf,_p(),nb=!1}function _mt(){Sle()}function vmt(rn){if(rn.metaKey||rn.altKey||rn.ctrlKey)return;if(Xi!==yf)Xi=yf,Nl=yf,_p()}function Tmt(){if(document.visibilityState!=="hidden")Sle()}function eu(rn){var nn=rn.type;if(fmt()){if(nn===ple){if(Nl!==rn.pointerType)Xi=rn.pointerType,Nl=rn.pointerType,_p();return}if(nn===mle){if(Xi!==rn.pointerType)Xi=rn.pointerType,_p();return}}else{if(!nb){if(nn===cle){if(Nl!==fS)Xi=fS,Nl=fS,_p()}if(nn===ule){if(Xi!==fS)Xi=fS,_p()}}if(nn===Ele){if(nb=!0,rn.touches&&rn.touches.length>1)nb=!1;if(Nl!==T4)Xi=T4,Nl=T4,_p();return}if(nn===lle||nn===dle||nn===hle||nn===fle||nn===ble||nn===yle)nb=!1}}if(mmt.default)(0,Ki.addEventListener)(window,hmt,Smt,ile),(0,Ki.addEventListener)(window,bmt,_mt,ile),(0,Ki.addEventListener)(document,ymt,vmt,Dl),(0,Ki.addEventListener)(document,Emt,Tmt,Dl),(0,Ki.addEventListener)(document,ple,eu,Dl),(0,Ki.addEventListener)(document,mle,eu,Dl),(0,Ki.addEventListener)(document,lle,eu,Dl),(0,Ki.addEventListener)(document,cle,eu,Dl),(0,Ki.addEventListener)(document,ule,eu,Dl),(0,Ki.addEventListener)(document,dle,eu,Dl),(0,Ki.addEventListener)(document,ble,eu,Dl),(0,Ki.addEventListener)(document,yle,eu,Dl),(0,Ki.addEventListener)(document,Ele,eu,Dl),(0,Ki.addEventListener)(document,hle,eu,Dl),(0,Ki.addEventListener)(document,fle,eu,Dl);function _p(){var rn={activeModality:Nl,modality:Xi};x4.forEach((nn)=>{nn(rn)})}function xmt(){return Nl}function Rmt(){return Xi}function Amt(rn){return x4.add(rn),()=>{x4.delete(rn)}}function Mmt(){nb=!1,Nl=yf,Xi=yf}});var Ale=In(function(xle,Rle){var Tle=Gn().default;xle.__esModule=!0;xle.default=Nmt;var gmt=v4(),Dmt=Tle(rf()),vle=Tle(OP());function Nmt(rn,nn){var an=(0,vle.default)(()=>new Map),sn=(0,vle.default)(()=>(ln,cn)=>{var un=an.get(ln);if(un!=null)un();if(cn==null)an.delete(ln),cn=()=>{};var dn=(0,gmt.addEventListener)(ln,rn,cn,nn);return an.set(ln,dn),dn});return(0,Dmt.default)(()=>()=>{an.forEach((ln)=>{ln()}),an.clear()},[an]),sn}Rle.exports=xle.default});var Ple=In(function(Ile,Ole){var Lle=Gn().default;Ile.__esModule=!0;Ile.default=Umt;var Bmt=_le(),yS=Lle(Ale()),Fmt=Lle(rf()),Hmt={},ES={passive:!0},Mle="react-gui:hover:lock",Cle="react-gui:hover:unlock",Wmt=()=>typeof window<"u"&&window.PointerEvent!=null;function wle(rn,nn,an){var sn=document.createEvent("CustomEvent"),ln=an||Hmt,cn=ln.bubbles,un=cn===void 0?!0:cn,dn=ln.cancelable,pn=dn===void 0?!0:dn,mn=ln.detail;sn.initCustomEvent(nn,un,pn,mn),rn.dispatchEvent(sn)}function R4(rn){var nn=rn.pointerType;return nn!=null?nn:(0,Bmt.getModality)()}function Umt(rn,nn){var{contain:an,disabled:sn,onHoverStart:ln,onHoverChange:cn,onHoverUpdate:un,onHoverEnd:dn}=nn,pn=Wmt(),mn=(0,yS.default)(pn?"pointermove":"mousemove",ES),fn=(0,yS.default)(pn?"pointerenter":"mouseenter",ES),hn=(0,yS.default)(pn?"pointerleave":"mouseleave",ES),bn=(0,yS.default)(Mle,ES),yn=(0,yS.default)(Cle,ES);(0,Fmt.default)(()=>{var En=rn.current;if(En!==null){var Sn=function(Mn){if(dn!=null)dn(Mn);if(cn!=null)cn(!1);mn(En,null),hn(En,null)},_n=function(Mn){var Cn=rn.current;if(Cn!=null&&R4(Mn)!=="touch"){if(an)wle(Cn,Cle);Sn(Mn)}},vn=function(Mn){if(R4(Mn)!=="touch"){if(un!=null){if(Mn.x==null)Mn.x=Mn.clientX;if(Mn.y==null)Mn.y=Mn.clientY;un(Mn)}}},Tn=function(Mn){if(ln!=null)ln(Mn);if(cn!=null)cn(!0);if(un!=null)mn(En,!sn?vn:null);hn(En,!sn?_n:null)},Rn=function(Mn){var Cn=rn.current;if(Cn!=null&&R4(Mn)!=="touch"){if(an)wle(Cn,Mle);Tn(Mn);var Ln=function(Nn){if(Nn.target!==Cn)Sn(Mn)},On=function(Nn){if(Nn.target!==Cn)Tn(Mn)};bn(Cn,!sn?Ln:null),yn(Cn,!sn?On:null)}};fn(En,!sn?Rn:null)}},[fn,mn,hn,bn,yn,an,sn,ln,cn,un,dn,rn])}Ole.exports=Ile.default});import*as oft from"react";var Ble=In(function(Nle,Gle){var Ef=Gn().default,qmt=Ra().default;Nle.__esModule=!0;Nle.default=void 0;var Ymt=Ef(hs()),Kmt=Ef(as()),ab=qmt(oft),SS=ab,Xmt=Ef(gu()),jmt=Ef(Ple()),$mt=Ef(cS()),Zmt=Ef(es()),Qmt=Ef(bs()),Jmt=["children","delayLongPress","delayPressIn","delayPressOut","disabled","onBlur","onContextMenu","onFocus","onHoverIn","onHoverOut","onKeyDown","onLongPress","onPress","onPressMove","onPressIn","onPressOut","style","tabIndex","testOnly_hovered","testOnly_pressed"];function eft(rn,nn){var{children:an,delayLongPress:sn,delayPressIn:ln,delayPressOut:cn,disabled:un,onBlur:dn,onContextMenu:pn,onFocus:mn,onHoverIn:fn,onHoverOut:hn,onKeyDown:bn,onLongPress:yn,onPress:En,onPressMove:Sn,onPressIn:_n,onPressOut:vn,style:Tn,tabIndex:Rn,testOnly_hovered:An,testOnly_pressed:Mn}=rn,Cn=(0,Kmt.default)(rn,Jmt),Ln=A4(An===!0),On=Ln[0],Dn=Ln[1],Nn=A4(!1),Wn=Nn[0],Fn=Nn[1],qn=A4(Mn===!0),Kn=qn[0],ea=qn[1],Yn=(0,ab.useRef)(null),ia=(0,Xmt.default)(nn,Yn),Xn=(0,ab.useMemo)(()=>({delayLongPress:sn,delayPressStart:ln,delayPressEnd:cn,disabled:un,onLongPress:yn,onPress:En,onPressChange:ea,onPressStart:_n,onPressMove:Sn,onPressEnd:vn}),[sn,ln,cn,un,yn,En,_n,Sn,vn,ea]),La=(0,$mt.default)(Yn,Xn),{onContextMenu:Ia,onKeyDown:Va}=La;(0,jmt.default)(Yn,{contain:!0,disabled:un,onHoverChange:Dn,onHoverStart:fn,onHoverEnd:hn});var ls={hovered:On,focused:Wn,pressed:Kn},Bs=SS.useCallback((za)=>{if(za.nativeEvent.target===Yn.current){if(Fn(!1),dn!=null)dn(za)}},[Yn,Fn,dn]),ei=SS.useCallback((za)=>{if(za.nativeEvent.target===Yn.current){if(Fn(!0),mn!=null)mn(za)}},[Yn,Fn,mn]),Ms=SS.useCallback((za)=>{if(Ia!=null)Ia(za);if(pn!=null)pn(za)},[pn,Ia]),rs=SS.useCallback((za)=>{if(Va!=null)Va(za);if(bn!=null)bn(za)},[bn,Va]),Ps;if(Rn!==void 0)Ps=Rn;else Ps=un?-1:0;return SS.createElement(Qmt.default,(0,Ymt.default)({},Cn,La,{"aria-disabled":un,onBlur:Bs,onContextMenu:Ms,onFocus:ei,onKeyDown:rs,ref:ia,style:[un?gle.disabled:gle.active,typeof Tn==="function"?Tn(ls):Tn],tabIndex:Ps}),typeof an==="function"?an(ls):an)}function A4(rn){var nn=(0,ab.useState)(!1),an=nn[0],sn=nn[1];return[an||rn,sn]}var gle=Zmt.default.create({active:{cursor:"pointer",touchAction:"manipulation"},disabled:{pointerEvents:"box-none"}}),Dle=(0,ab.memo)((0,ab.forwardRef)(eft));Dle.displayName="Pressable";var J7t=Nle.default=Dle;Gle.exports=Nle.default});import*as cft from"react";var zle=In(function(Wle,Ule){var PA=Gn().default,rft=Ra().default;Wle.__esModule=!0;Wle.default=void 0;var nft=PA(hs()),aft=PA(as()),M4=rft(cft),sft=PA(es()),Fle=PA(bs()),ift=["color","indeterminate","progress","trackColor","style"],Hle=M4.forwardRef((rn,nn)=>{var an=rn.color,sn=an===void 0?"#1976D2":an,ln=rn.indeterminate,cn=ln===void 0?!1:ln,un=rn.progress,dn=un===void 0?0:un,pn=rn.trackColor,mn=pn===void 0?"transparent":pn,fn=rn.style,hn=(0,aft.default)(rn,ift),bn=dn*100,yn=cn?"25%":bn+"%";return M4.createElement(Fle.default,(0,nft.default)({},hn,{"aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":cn?null:bn,ref:nn,role:"progressbar",style:[C4.track,fn,{backgroundColor:mn}]}),M4.createElement(Fle.default,{style:[{backgroundColor:sn,width:yn},C4.progress,cn&&C4.animation]}))});Hle.displayName="ProgressBar";var C4=sft.default.create({track:{forcedColorAdjust:"none",height:5,overflow:"hidden",userSelect:"none",zIndex:0},progress:{forcedColorAdjust:"none",height:"100%",zIndex:-1},animation:{animationDuration:"1s",animationKeyframes:[{"0%":{transform:"translateX(-100%)"},"100%":{transform:"translateX(400%)"}}],animationTimingFunction:"linear",animationIterationCount:"infinite"}}),eFt=Wle.default=Hle;Ule.exports=Wle.default});import*as Sft from"react";var $le=In(function(Kle,Xle){var _S=Gn().default,uft=Ra().default;Kle.__esModule=!0;Kle.default=void 0;var dft=_S(hs()),pft=_S(as()),qle=uft(Sft),mft=_S(es()),fft=_S(bs()),hft=_S(ti()),bft=["style"],gA=function(){if(hft.default&&window.CSS&&window.CSS.supports&&window.CSS.supports("top: constant(safe-area-inset-top)"))return"constant";return"env"}(),Yle=qle.forwardRef((rn,nn)=>{var an=rn.style,sn=(0,pft.default)(rn,bft);return qle.createElement(fft.default,(0,dft.default)({},sn,{ref:nn,style:[yft.root,an]}))});Yle.displayName="SafeAreaView";var yft=mft.default.create({root:{paddingTop:gA+"(safe-area-inset-top)",paddingRight:gA+"(safe-area-inset-right)",paddingBottom:gA+"(safe-area-inset-bottom)",paddingLeft:gA+"(safe-area-inset-left)"}}),tFt=Kle.default=Yle;Xle.exports=Kle.default});var ece=In(function(Zle,Qle){Zle.__esModule=!0;Zle.default=void 0;var vS=()=>{};function sb(){return null}sb.setBackgroundColor=vS;sb.setBarStyle=vS;sb.setHidden=vS;sb.setNetworkActivityIndicatorVisible=vS;sb.setTranslucent=vS;var oFt=Zle.default=sb;Qle.exports=Zle.default});var nce=In(function(tce,oce){tce.__esModule=!0;tce.default=void 0;var vft=/^[+-]?\d*(?:\.\d+)?(?:[Ee][+-]?\d+)?(%|\w*)/,Tft=(rn)=>rn.match(vft)[1],xft=(rn)=>!isNaN(parseFloat(rn))&&isFinite(rn),Rft=(rn,nn)=>{if(typeof rn==="string"){var an=parseFloat(rn)*nn,sn=Tft(rn);return""+an+sn}else if(xft(rn))return rn*nn},rFt=tce.default=Rft;oce.exports=tce.default});import*as Bft from"react";var dce=In(function(lce,cce){var _f=Gn().default,Mft=Ra().default;lce.__esModule=!0;lce.default=void 0;var DA=_f(ns()),Cft=_f(hs()),wft=_f(as()),TS=Mft(Bft),Lft=_f(sc()),w4=_f(nce()),NA=_f(es()),L4=_f(bs()),Ift=["aria-label","accessibilityLabel","activeThumbColor","activeTrackColor","disabled","onValueChange","style","thumbColor","trackColor","value"],Oft={},I4="0px 1px 3px rgba(0,0,0,0.5)",Pft=I4+", 0 0 0 10px rgba(0,0,0,0.1)",gft="#A3D3CF",Dft="#939393",ace="#D5D5D5",Nft="#009688",Gft="#FAFAFA",sce="#BDBDBD",ice=TS.forwardRef((rn,nn)=>{var an=rn["aria-label"],{accessibilityLabel:sn,activeThumbColor:ln,activeTrackColor:cn,disabled:un}=rn,dn=un===void 0?!1:un,{onValueChange:pn,style:mn}=rn,fn=mn===void 0?Oft:mn,{thumbColor:hn,trackColor:bn,value:yn}=rn,En=yn===void 0?!1:yn,Sn=(0,wft.default)(rn,Ift),_n=TS.useRef(null);function vn(Ia){if(pn!=null)pn(Ia.nativeEvent.target.checked)}function Tn(Ia){var Va=Ia.nativeEvent.type==="focus",ls=Va?Pft:I4;if(_n.current!=null)_n.current.style.boxShadow=ls}var Rn=NA.default.flatten(fn),{height:An,width:Mn}=Rn,Cn=An||"20px",Ln=(0,w4.default)(Cn,2),On=Mn>Ln?Mn:Ln,Dn=(0,w4.default)(Cn,0.5),Nn=function(){if(En===!0)if(bn!=null&&typeof bn==="object")return bn.true;else return cn!==null&&cn!==void 0?cn:gft;else if(bn!=null&&typeof bn==="object")return bn.false;else return bn!==null&&bn!==void 0?bn:Dft}(),Wn=En?ln!==null&&ln!==void 0?ln:Nft:hn!==null&&hn!==void 0?hn:Gft,Fn=Cn,qn=Fn,Kn=[Sf.root,fn,dn&&Sf.cursorDefault,{height:Cn,width:On}],ea=function(){if(En===!0)if(typeof cn==="string"&&cn!=null||typeof bn==="object"&&bn!=null&&bn.true)return Nn;else return ace;else if(typeof bn==="string"&&bn!=null||typeof bn==="object"&&bn!=null&&bn.false)return Nn;else return ace}(),Yn=function(){if(En===!0)if(ln==null)return sce;else return Wn;else if(hn==null)return sce;else return Wn}(),ia=[Sf.track,{backgroundColor:dn?ea:Nn,borderRadius:Dn}],Xn=[Sf.thumb,En&&Sf.thumbActive,{backgroundColor:dn?Yn:Wn,height:Fn,marginStart:En?(0,w4.default)(qn,-1):0,width:qn}],La=(0,Lft.default)("input",{"aria-label":an||sn,checked:En,disabled:dn,onBlur:Tn,onChange:vn,onFocus:Tn,ref:nn,style:[Sf.nativeControl,Sf.cursorInherit],type:"checkbox",role:"switch"});return TS.createElement(L4.default,(0,Cft.default)({},Sn,{style:Kn}),TS.createElement(L4.default,{style:ia}),TS.createElement(L4.default,{ref:_n,style:Xn}),La)});ice.displayName="Switch";var Sf=NA.default.create({root:{cursor:"pointer",userSelect:"none"},cursorDefault:{cursor:"default"},cursorInherit:{cursor:"inherit"},track:(0,DA.default)((0,DA.default)({forcedColorAdjust:"none"},NA.default.absoluteFillObject),{},{height:"70%",margin:"auto",transitionDuration:"0.1s",width:"100%"}),thumb:{forcedColorAdjust:"none",alignSelf:"flex-start",borderRadius:"100%",boxShadow:I4,start:"0%",transform:"translateZ(0)",transitionDuration:"0.1s"},thumbActive:{insetInlineStart:"100%"},nativeControl:(0,DA.default)((0,DA.default)({},NA.default.absoluteFillObject),{},{height:"100%",margin:0,appearance:"none",padding:0,width:"100%"})}),nFt=lce.default=ice;cce.exports=lce.default});import*as Qft from"react";var Ece=In(function(hce,bce){var z0=Gn().default,fce=Ra().default;hce.__esModule=!0;hce.default=void 0;var vp=fce(Qft),Fft=z0(sc()),Tp=fce(ER()),Hft=z0(M2()),Wft=z0(_R()),Uft=z0(rf()),Vft=z0(gu()),zft=z0(C2()),qft=z0(xR()),pce=I1(),Yft=z0(es()),xS=z0(MR()),Kft=(rn,nn)=>{var{selectionEnd:an,selectionStart:sn}=rn,{start:ln,end:cn}=nn;return ln!==sn||cn!==an},mce=(rn,nn)=>{if(Kft(rn,nn)){var{start:an,end:sn}=nn;try{rn.setSelectionRange(an,sn||an)}catch(ln){}}},Xft=Object.assign({},Tp.defaultProps,Tp.accessibilityProps,Tp.clickProps,Tp.focusProps,Tp.keyboardProps,Tp.mouseProps,Tp.touchProps,Tp.styleProps,{autoCapitalize:!0,autoComplete:!0,autoCorrect:!0,autoFocus:!0,defaultValue:!0,disabled:!0,lang:!0,maxLength:!0,onChange:!0,onScroll:!0,placeholder:!0,pointerEvents:!0,readOnly:!0,rows:!0,spellCheck:!0,value:!0,type:!0}),jft=(rn)=>(0,Hft.default)(rn,Xft);function $ft(rn){return rn.isComposing||rn.keyCode===229}var O4=null,g4=vp.forwardRef((rn,nn)=>{var an=rn.autoCapitalize,sn=an===void 0?"sentences":an,{autoComplete:ln,autoCompleteType:cn,autoCorrect:un}=rn,dn=un===void 0?!0:un,{blurOnSubmit:pn,caretHidden:mn,clearTextOnFocus:fn,dir:hn,editable:bn,enterKeyHint:yn,inputMode:En,keyboardType:Sn,multiline:_n}=rn,vn=_n===void 0?!1:_n,{numberOfLines:Tn,onBlur:Rn,onChange:An,onChangeText:Mn,onContentSizeChange:Cn,onFocus:Ln,onKeyPress:On,onLayout:Dn,onMoveShouldSetResponder:Nn,onMoveShouldSetResponderCapture:Wn,onResponderEnd:Fn,onResponderGrant:qn,onResponderMove:Kn,onResponderReject:ea,onResponderRelease:Yn,onResponderStart:ia,onResponderTerminate:Xn,onResponderTerminationRequest:La,onScrollShouldSetResponder:Ia,onScrollShouldSetResponderCapture:Va,onSelectionChange:ls,onSelectionChangeShouldSetResponder:Bs,onSelectionChangeShouldSetResponderCapture:ei,onStartShouldSetResponder:Ms,onStartShouldSetResponderCapture:rs,onSubmitEditing:Ps,placeholderTextColor:za,readOnly:li}=rn,xi=li===void 0?!1:li,{returnKeyType:Ri,rows:Ga,secureTextEntry:qs}=rn,fi=qs===void 0?!1:qs,{selection:rc,selectTextOnFocus:Hx,showSoftInputOnFocus:fa,spellCheck:i2}=rn,ll,ef;if(En!=null)if(ef=En,En==="email")ll="email";else if(En==="tel")ll="tel";else if(En==="search")ll="search";else if(En==="url")ll="url";else ll="text";else if(Sn!=null)switch(Sn){case"email-address":ll="email";break;case"number-pad":case"numeric":ef="numeric";break;case"decimal-pad":ef="decimal";break;case"phone-pad":ll="tel";break;case"search":case"web-search":ll="search";break;case"url":ll="url";break;default:ll="text"}if(fi)ll="password";var op=vp.useRef({height:null,width:null}),Iu=vp.useRef(null),l2=vp.useRef(null),c2=vp.useRef(!1);vp.useEffect(()=>{if(Iu.current&&l2.current)mce(Iu.current,l2.current);c2.current=fi},[fi]);var u2=vp.useCallback((Ma)=>{if(vn&&Cn&&Ma!=null){var{scrollHeight:Ys,scrollWidth:nc}=Ma;if(Ys!==op.current.height||nc!==op.current.width)op.current.height=Ys,op.current.width=nc,Cn({nativeEvent:{contentSize:{height:op.current.height,width:op.current.width}}})}},[vn,Cn]),Wx=vp.useMemo(()=>(Ma)=>{if(Ma!=null)Ma.clear=function(){if(Ma!=null)Ma.value=""},Ma.isFocused=function(){return Ma!=null&&xS.default.currentlyFocusedField()===Ma},u2(Ma)},[u2]);function cO(Ma){if(xS.default._currentlyFocusedNode=null,Rn)Ma.nativeEvent.text=Ma.target.value,Rn(Ma)}function Ux(Ma){var Ys=Ma.target,nc=Ys.value;if(Ma.nativeEvent.text=nc,u2(Ys),An)An(Ma);if(Mn)Mn(nc)}function uO(Ma){var Ys=Ma.target;if(Ln)Ma.nativeEvent.text=Ys.value,Ln(Ma);if(Ys!=null){if(xS.default._currentlyFocusedNode=Ys,fn)Ys.value="";if(Hx){if(O4!=null)clearTimeout(O4);O4=setTimeout(()=>{if(Ys!=null&&document.activeElement===Ys)Ys.select()},0)}}}function Vx(Ma){var Ys=Ma.target;Ma.stopPropagation();var nc=!vn,d2=pn==null?nc:pn,rp=Ma.nativeEvent,Xx=$ft(rp);if(On)On(Ma);if(Ma.key==="Enter"&&!Ma.shiftKey&&!Xx&&!Ma.isDefaultPrevented()){if((pn||!vn)&&Ps)Ma.preventDefault(),rp.text=Ma.target.value,Ps(Ma);if(d2&&Ys!=null)setTimeout(()=>Ys.blur(),0)}}function dO(Ma){try{var Ys=Ma.target,{selectionStart:nc,selectionEnd:d2}=Ys,rp={start:nc,end:d2};if(ls)Ma.nativeEvent.selection=rp,Ma.nativeEvent.text=Ma.target.value,ls(Ma);if(c2.current===fi)l2.current=rp}catch(Xx){}}(0,Uft.default)(()=>{var Ma=Iu.current;if(Ma!=null&&rc!=null)mce(Ma,rc);if(document.activeElement===Ma)xS.default._currentlyFocusedNode=Ma},[Iu,rc]);var zx=vn?"textarea":"input";(0,Wft.default)(Iu,Dn),(0,qft.default)(Iu,{onMoveShouldSetResponder:Nn,onMoveShouldSetResponderCapture:Wn,onResponderEnd:Fn,onResponderGrant:qn,onResponderMove:Kn,onResponderReject:ea,onResponderRelease:Yn,onResponderStart:ia,onResponderTerminate:Xn,onResponderTerminationRequest:La,onScrollShouldSetResponder:Ia,onScrollShouldSetResponderCapture:Va,onSelectionChangeShouldSetResponder:Bs,onSelectionChangeShouldSetResponderCapture:ei,onStartShouldSetResponder:Ms,onStartShouldSetResponderCapture:rs});var pO=(0,pce.useLocaleContext)(),qx=pO.direction,gs=jft(rn);gs.autoCapitalize=sn,gs.autoComplete=ln||cn||"on",gs.autoCorrect=dn?"on":"off",gs.dir=hn!==void 0?hn:"auto",gs.enterKeyHint=yn||Ri,gs.inputMode=ef,gs.onBlur=cO,gs.onChange=Ux,gs.onFocus=uO,gs.onKeyDown=Vx,gs.onSelect=dO,gs.readOnly=xi===!0||bn===!1,gs.rows=vn?Ga!=null?Ga:Tn:1,gs.spellCheck=i2!=null?i2:dn,gs.style=[{"--placeholderTextColor":za},P4.textinput$raw,P4.placeholder,rn.style,mn&&P4.caretHidden],gs.type=vn?void 0:ll,gs.virtualkeyboardpolicy=fa===!1?"manual":"auto";var EV=(0,zft.default)(gs),SV=(0,Vft.default)(Iu,EV,Wx,nn);gs.ref=SV;var Yx=rn.lang!=null?(0,pce.getLocaleDirection)(rn.lang):null,mO=rn.dir||Yx,Kx=mO||qx,fO=(0,Fft.default)(zx,gs,{writingDirection:Kx});return fO});g4.displayName="TextInput";g4.State=xS.default;var P4=Yft.default.create({textinput$raw:{MozAppearance:"textfield",WebkitAppearance:"none",backgroundColor:"transparent",border:"0 solid black",borderRadius:0,boxSizing:"border-box",font:"14px System",margin:0,padding:0,resize:"none"},placeholder:{placeholderTextColor:"var(--placeholderTextColor)"},caretHidden:{caretColor:"transparent"}}),aFt=hce.default=g4;bce.exports=hce.default});var D4=In(function(_ce,vce){var Jft=Gn().default;_ce.__esModule=!0;_ce.default=void 0;var sFt=Jft(cs()),Sce=function(nn,an){var sn=this;if(sn.instancePool.length){var ln=sn.instancePool.pop();return sn.call(ln,nn,an),ln}else return new sn(nn,an)},eht=function(nn){var an=this;if(nn.destructor(),an.instancePool.length<an.poolSize)an.instancePool.push(nn)},tht=10,oht=Sce,rht=function(nn,an){var sn=nn;if(sn.instancePool=[],sn.getPooled=an||oht,!sn.poolSize)sn.poolSize=tht;return sn.release=eht,sn},nht={addPoolingTo:rht,twoArgumentPooler:Sce},iFt=_ce.default=nht;vce.exports=_ce.default});var Cce=In(function(Rce,Ace){var sht=Gn().default;Rce.__esModule=!0;Rce.default=void 0;var xce=sht(D4()),iht=xce.default.twoArgumentPooler;function RS(rn,nn){this.width=rn,this.height=nn}RS.prototype.destructor=function(){this.width=null,this.height=null};RS.getPooledFromElement=function(rn){return RS.getPooled(rn.offsetWidth,rn.offsetHeight)};xce.default.addPoolingTo(RS,iht);var lFt=Rce.default=RS;Ace.exports=Rce.default});var Pce=In(function(Lce,Ice){var cht=Gn().default;Lce.__esModule=!0;Lce.default=void 0;var wce=cht(D4()),uht=wce.default.twoArgumentPooler;function N4(rn,nn){this.left=rn,this.top=nn}N4.prototype.destructor=function(){this.left=null,this.top=null};wce.default.addPoolingTo(N4,uht);var cFt=Lce.default=N4;Ice.exports=Lce.default});import*as vht from"react";var Yce=In(function(Vce,zce){var q0=Gn().default;Vce.__esModule=!0;Vce.default=void 0;var pht=q0(as()),vf=q0(ns()),mht=q0(Jx()),gce=q0(Cce()),fht=q0(_2()),Dce=q0(Pce()),hht=q0(vht),Nce=q0(Pu()),bht=q0(bs()),Gce=(rn)=>{var{touches:nn,changedTouches:an}=rn,sn=nn&&nn.length>0,ln=an&&an.length>0;return!sn&&ln?an[0]:sn?nn[0]:rn},ra={NOT_RESPONDER:"NOT_RESPONDER",RESPONDER_INACTIVE_PRESS_IN:"RESPONDER_INACTIVE_PRESS_IN",RESPONDER_INACTIVE_PRESS_OUT:"RESPONDER_INACTIVE_PRESS_OUT",RESPONDER_ACTIVE_PRESS_IN:"RESPONDER_ACTIVE_PRESS_IN",RESPONDER_ACTIVE_PRESS_OUT:"RESPONDER_ACTIVE_PRESS_OUT",RESPONDER_ACTIVE_LONG_PRESS_IN:"RESPONDER_ACTIVE_LONG_PRESS_IN",RESPONDER_ACTIVE_LONG_PRESS_OUT:"RESPONDER_ACTIVE_LONG_PRESS_OUT",ERROR:"ERROR"},k4={NOT_RESPONDER:!1,RESPONDER_INACTIVE_PRESS_IN:!1,RESPONDER_INACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_PRESS_IN:!1,RESPONDER_ACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_LONG_PRESS_IN:!1,RESPONDER_ACTIVE_LONG_PRESS_OUT:!1,ERROR:!1},kce=(0,vf.default)((0,vf.default)({},k4),{},{RESPONDER_ACTIVE_PRESS_OUT:!0,RESPONDER_ACTIVE_PRESS_IN:!0}),Bce=(0,vf.default)((0,vf.default)({},k4),{},{RESPONDER_INACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),Fce=(0,vf.default)((0,vf.default)({},k4),{},{RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),mc={DELAY:"DELAY",RESPONDER_GRANT:"RESPONDER_GRANT",RESPONDER_RELEASE:"RESPONDER_RELEASE",RESPONDER_TERMINATED:"RESPONDER_TERMINATED",ENTER_PRESS_RECT:"ENTER_PRESS_RECT",LEAVE_PRESS_RECT:"LEAVE_PRESS_RECT",LONG_PRESS_DETECTED:"LONG_PRESS_DETECTED"},Hce={NOT_RESPONDER:{DELAY:ra.ERROR,RESPONDER_GRANT:ra.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:ra.ERROR,RESPONDER_TERMINATED:ra.ERROR,ENTER_PRESS_RECT:ra.ERROR,LEAVE_PRESS_RECT:ra.ERROR,LONG_PRESS_DETECTED:ra.ERROR},RESPONDER_INACTIVE_PRESS_IN:{DELAY:ra.RESPONDER_ACTIVE_PRESS_IN,RESPONDER_GRANT:ra.ERROR,RESPONDER_RELEASE:ra.NOT_RESPONDER,RESPONDER_TERMINATED:ra.NOT_RESPONDER,ENTER_PRESS_RECT:ra.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:ra.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:ra.ERROR},RESPONDER_INACTIVE_PRESS_OUT:{DELAY:ra.RESPONDER_ACTIVE_PRESS_OUT,RESPONDER_GRANT:ra.ERROR,RESPONDER_RELEASE:ra.NOT_RESPONDER,RESPONDER_TERMINATED:ra.NOT_RESPONDER,ENTER_PRESS_RECT:ra.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:ra.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:ra.ERROR},RESPONDER_ACTIVE_PRESS_IN:{DELAY:ra.ERROR,RESPONDER_GRANT:ra.ERROR,RESPONDER_RELEASE:ra.NOT_RESPONDER,RESPONDER_TERMINATED:ra.NOT_RESPONDER,ENTER_PRESS_RECT:ra.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:ra.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:ra.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_PRESS_OUT:{DELAY:ra.ERROR,RESPONDER_GRANT:ra.ERROR,RESPONDER_RELEASE:ra.NOT_RESPONDER,RESPONDER_TERMINATED:ra.NOT_RESPONDER,ENTER_PRESS_RECT:ra.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:ra.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:ra.ERROR},RESPONDER_ACTIVE_LONG_PRESS_IN:{DELAY:ra.ERROR,RESPONDER_GRANT:ra.ERROR,RESPONDER_RELEASE:ra.NOT_RESPONDER,RESPONDER_TERMINATED:ra.NOT_RESPONDER,ENTER_PRESS_RECT:ra.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:ra.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:ra.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_LONG_PRESS_OUT:{DELAY:ra.ERROR,RESPONDER_GRANT:ra.ERROR,RESPONDER_RELEASE:ra.NOT_RESPONDER,RESPONDER_TERMINATED:ra.NOT_RESPONDER,ENTER_PRESS_RECT:ra.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:ra.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:ra.ERROR},error:{DELAY:ra.NOT_RESPONDER,RESPONDER_GRANT:ra.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:ra.NOT_RESPONDER,RESPONDER_TERMINATED:ra.NOT_RESPONDER,ENTER_PRESS_RECT:ra.NOT_RESPONDER,LEAVE_PRESS_RECT:ra.NOT_RESPONDER,LONG_PRESS_DETECTED:ra.NOT_RESPONDER}},G4=130,GA=20,yht=500,Wce=yht-G4,Eht=10,AS={componentDidMount:function(){var nn=this.getTouchableNode&&this.getTouchableNode();if(nn&&nn.addEventListener)this._touchableBlurListener=(an)=>{if(this._isTouchableKeyboardActive){if(this.state.touchable.touchState&&this.state.touchable.touchState!==ra.NOT_RESPONDER)this.touchableHandleResponderTerminate({nativeEvent:an});this._isTouchableKeyboardActive=!1}},nn.addEventListener("blur",this._touchableBlurListener)},componentWillUnmount:function(){var nn=this.getTouchableNode&&this.getTouchableNode();if(nn&&nn.addEventListener)nn.removeEventListener("blur",this._touchableBlurListener);this.touchableDelayTimeout&&clearTimeout(this.touchableDelayTimeout),this.longPressDelayTimeout&&clearTimeout(this.longPressDelayTimeout),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout),this.pressInLocation=null,this.state.touchable.responderID=null},touchableGetInitialState:function(){return{touchable:{touchState:void 0,responderID:null}}},touchableHandleResponderTerminationRequest:function(){return!this.props.rejectResponderTermination},touchableHandleStartShouldSetResponder:function(){return!this.props.disabled},touchableLongPressCancelsPress:function(){return!0},touchableHandleResponderGrant:function(nn){var an=nn.currentTarget;nn.persist(),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout),this.pressOutDelayTimeout=null,this.state.touchable.touchState=ra.NOT_RESPONDER,this.state.touchable.responderID=an,this._receiveSignal(mc.RESPONDER_GRANT,nn);var sn=this.touchableGetHighlightDelayMS!==void 0?Math.max(this.touchableGetHighlightDelayMS(),0):G4;if(sn=isNaN(sn)?G4:sn,sn!==0)this.touchableDelayTimeout=setTimeout(this._handleDelay.bind(this,nn),sn);else this._handleDelay(nn);var ln=this.touchableGetLongPressDelayMS!==void 0?Math.max(this.touchableGetLongPressDelayMS(),10):Wce;ln=isNaN(ln)?Wce:ln,this.longPressDelayTimeout=setTimeout(this._handleLongDelay.bind(this,nn),ln+sn)},touchableHandleResponderRelease:function(nn){this.pressInLocation=null,this._receiveSignal(mc.RESPONDER_RELEASE,nn)},touchableHandleResponderTerminate:function(nn){this.pressInLocation=null,this._receiveSignal(mc.RESPONDER_TERMINATED,nn)},touchableHandleResponderMove:function(nn){if(!this.state.touchable.positionOnActivate)return;var an=this.state.touchable.positionOnActivate,sn=this.state.touchable.dimensionsOnActivate,ln=this.touchableGetPressRectOffset?this.touchableGetPressRectOffset():{left:GA,right:GA,top:GA,bottom:GA},{left:cn,top:un,right:dn,bottom:pn}=ln,mn=this.touchableGetHitSlop?this.touchableGetHitSlop():null;if(mn)cn+=mn.left||0,un+=mn.top||0,dn+=mn.right||0,pn+=mn.bottom||0;var fn=Gce(nn.nativeEvent),hn=fn&&fn.pageX,bn=fn&&fn.pageY;if(this.pressInLocation){var yn=this._getDistanceBetweenPoints(hn,bn,this.pressInLocation.pageX,this.pressInLocation.pageY);if(yn>Eht)this._cancelLongPressDelayTimeout()}var En=hn>an.left-cn&&bn>an.top-un&&hn<an.left+sn.width+dn&&bn<an.top+sn.height+pn;if(En){var Sn=this.state.touchable.touchState;this._receiveSignal(mc.ENTER_PRESS_RECT,nn);var _n=this.state.touchable.touchState;if(_n===ra.RESPONDER_INACTIVE_PRESS_IN&&Sn!==ra.RESPONDER_INACTIVE_PRESS_IN)this._cancelLongPressDelayTimeout()}else this._cancelLongPressDelayTimeout(),this._receiveSignal(mc.LEAVE_PRESS_RECT,nn)},touchableHandleFocus:function(nn){this.props.onFocus&&this.props.onFocus(nn)},touchableHandleBlur:function(nn){this.props.onBlur&&this.props.onBlur(nn)},_remeasureMetricsOnActivation:function(){var nn=this.state.touchable.responderID;if(nn==null)return;Nce.default.measure(nn,this._handleQueryLayout)},_handleQueryLayout:function(nn,an,sn,ln,cn,un){if(!nn&&!an&&!sn&&!ln&&!cn&&!un)return;this.state.touchable.positionOnActivate&&Dce.default.release(this.state.touchable.positionOnActivate),this.state.touchable.dimensionsOnActivate&&gce.default.release(this.state.touchable.dimensionsOnActivate),this.state.touchable.positionOnActivate=Dce.default.getPooled(cn,un),this.state.touchable.dimensionsOnActivate=gce.default.getPooled(sn,ln)},_handleDelay:function(nn){this.touchableDelayTimeout=null,this._receiveSignal(mc.DELAY,nn)},_handleLongDelay:function(nn){this.longPressDelayTimeout=null;var an=this.state.touchable.touchState;if(an!==ra.RESPONDER_ACTIVE_PRESS_IN&&an!==ra.RESPONDER_ACTIVE_LONG_PRESS_IN)console.error("Attempted to transition from state `"+an+"` to `"+ra.RESPONDER_ACTIVE_LONG_PRESS_IN+"`, which is not supported. This is most likely due to `Touchable.longPressDelayTimeout` not being cancelled.");else this._receiveSignal(mc.LONG_PRESS_DETECTED,nn)},_receiveSignal:function(nn,an){var sn=this.state.touchable.responderID,ln=this.state.touchable.touchState,cn=Hce[ln]&&Hce[ln][nn];if(!sn&&nn===mc.RESPONDER_RELEASE)return;if(!cn)throw Error("Unrecognized signal `"+nn+"` or state `"+ln+"` for Touchable responder `"+sn+"`");if(cn===ra.ERROR)throw Error("Touchable cannot transition from `"+ln+"` to `"+nn+"` for responder `"+sn+"`");if(ln!==cn)this._performSideEffectsForTransition(ln,cn,nn,an),this.state.touchable.touchState=cn},_cancelLongPressDelayTimeout:function(){this.longPressDelayTimeout&&clearTimeout(this.longPressDelayTimeout),this.longPressDelayTimeout=null},_isHighlight:function(nn){return nn===ra.RESPONDER_ACTIVE_PRESS_IN||nn===ra.RESPONDER_ACTIVE_LONG_PRESS_IN},_savePressInLocation:function(nn){var an=Gce(nn.nativeEvent),sn=an&&an.pageX,ln=an&&an.pageY,cn=an&&an.locationX,un=an&&an.locationY;this.pressInLocation={pageX:sn,pageY:ln,locationX:cn,locationY:un}},_getDistanceBetweenPoints:function(nn,an,sn,ln){var cn=nn-sn,un=an-ln;return Math.sqrt(cn*cn+un*un)},_performSideEffectsForTransition:function(nn,an,sn,ln){var cn=this._isHighlight(nn),un=this._isHighlight(an),dn=sn===mc.RESPONDER_TERMINATED||sn===mc.RESPONDER_RELEASE;if(dn)this._cancelLongPressDelayTimeout();var pn=nn===ra.NOT_RESPONDER&&an===ra.RESPONDER_INACTIVE_PRESS_IN,mn=!kce[nn]&&kce[an];if(pn||mn)this._remeasureMetricsOnActivation();if(Bce[nn]&&sn===mc.LONG_PRESS_DETECTED)this.touchableHandleLongPress&&this.touchableHandleLongPress(ln);if(un&&!cn)this._startHighlight(ln);else if(!un&&cn)this._endHighlight(ln);if(Bce[nn]&&sn===mc.RESPONDER_RELEASE){var fn=!!this.props.onLongPress,hn=Fce[nn]&&(!fn||!this.touchableLongPressCancelsPress()),bn=!Fce[nn]||hn;if(bn&&this.touchableHandlePress){if(!un&&!cn)this._startHighlight(ln),this._endHighlight(ln);this.touchableHandlePress(ln)}}this.touchableDelayTimeout&&clearTimeout(this.touchableDelayTimeout),this.touchableDelayTimeout=null},_playTouchSound:function(){Nce.default.playTouchSound()},_startHighlight:function(nn){this._savePressInLocation(nn),this.touchableHandleActivePressIn&&this.touchableHandleActivePressIn(nn)},_endHighlight:function(nn){if(this.touchableHandleActivePressOut)if(this.touchableGetPressOutDelayMS&&this.touchableGetPressOutDelayMS())this.pressOutDelayTimeout=setTimeout(()=>{this.touchableHandleActivePressOut(nn)},this.touchableGetPressOutDelayMS());else this.touchableHandleActivePressOut(nn)},touchableHandleKeyEvent:function(nn){var{type:an,key:sn}=nn;if(sn==="Enter"||sn===" "){if(an==="keydown"){if(!this._isTouchableKeyboardActive){if(!this.state.touchable.touchState||this.state.touchable.touchState===ra.NOT_RESPONDER)this.touchableHandleResponderGrant(nn),this._isTouchableKeyboardActive=!0}}else if(an==="keyup"){if(this._isTouchableKeyboardActive){if(this.state.touchable.touchState&&this.state.touchable.touchState!==ra.NOT_RESPONDER)this.touchableHandleResponderRelease(nn),this._isTouchableKeyboardActive=!1}}if(nn.stopPropagation(),!(sn==="Enter"&&mht.default.propsToAriaRole(this.props)==="link"))nn.preventDefault()}},withoutDefaultFocusAndBlur:{}},{touchableHandleFocus:uFt,touchableHandleBlur:dFt}=AS,Sht=(0,pht.default)(AS,["touchableHandleFocus","touchableHandleBlur"]);AS.withoutDefaultFocusAndBlur=Sht;var Uce={Mixin:AS,TOUCH_TARGET_DEBUG:!1,renderDebugView:(rn)=>{var{color:nn,hitSlop:an}=rn;if(!Uce.TOUCH_TARGET_DEBUG)return null;var sn={};an=an||{top:0,bottom:0,left:0,right:0};for(var ln in an)sn[ln]=-an[ln];var cn=(0,fht.default)(nn);if(typeof cn!=="number")return null;var un="#"+("00000000"+cn.toString(16)).substr(-8);return hht.default.createElement(bht.default,{pointerEvents:"none",style:(0,vf.default)({position:"absolute",borderColor:un.slice(0,-2)+"55",borderWidth:1,borderStyle:"dashed",backgroundColor:un.slice(0,-2)+"0F"},sn)})}},pFt=Vce.default=Uce;zce.exports=Vce.default});import*as Pht from"react";var eue=In(function(Zce,Qce){var lb=Gn().default,Tht=Ra().default;Zce.__esModule=!0;Zce.default=void 0;var xht=lb(hs()),Rht=lb(as()),ib=Tht(Pht),MS=ib,Aht=lb(gu()),Mht=lb(cS()),Cht=lb(es()),wht=lb(bs()),Lht=["activeOpacity","children","delayPressIn","delayPressOut","delayLongPress","disabled","focusable","onHideUnderlay","onLongPress","onPress","onPressIn","onPressOut","onShowUnderlay","rejectResponderTermination","style","testOnly_pressed","underlayColor"];function Kce(rn,nn){return{child:{opacity:rn!==null&&rn!==void 0?rn:0.85},underlay:{backgroundColor:nn===void 0?"black":nn}}}function Xce(rn){return rn.onPress!=null||rn.onPressIn!=null||rn.onPressOut!=null||rn.onLongPress!=null}function Iht(rn,nn){var{activeOpacity:an,children:sn,delayPressIn:ln,delayPressOut:cn,delayLongPress:un,disabled:dn,focusable:pn,onHideUnderlay:mn,onLongPress:fn,onPress:hn,onPressIn:bn,onPressOut:yn,onShowUnderlay:En,rejectResponderTermination:Sn,style:_n,testOnly_pressed:vn,underlayColor:Tn}=rn,Rn=(0,Rht.default)(rn,Lht),An=(0,ib.useRef)(null),Mn=(0,Aht.default)(nn,An),Cn=(0,ib.useState)(vn===!0?Kce(an,Tn):null),Ln=Cn[0],On=Cn[1],Dn=(0,ib.useCallback)(()=>{if(!Xce(rn))return;if(On(Kce(an,Tn)),En!=null)En()},[an,En,rn,Tn]),Nn=(0,ib.useCallback)(()=>{if(vn===!0)return;if(Xce(rn)){if(On(null),mn!=null)mn()}},[mn,rn,vn]),Wn=(0,ib.useMemo)(()=>({cancelable:!Sn,disabled:dn,delayLongPress:un,delayPressStart:ln,delayPressEnd:cn,onLongPress:fn,onPress:hn,onPressStart(Kn){if(Dn(),bn!=null)bn(Kn)},onPressEnd(Kn){if(Nn(),yn!=null)yn(Kn)}}),[un,ln,cn,dn,fn,hn,bn,yn,Sn,Dn,Nn]),Fn=(0,Mht.default)(An,Wn),qn=MS.Children.only(sn);return MS.createElement(wht.default,(0,xht.default)({},Rn,Fn,{accessibilityDisabled:dn,focusable:!dn&&pn!==!1,pointerEvents:dn?"box-none":void 0,ref:Mn,style:[jce.root,_n,!dn&&jce.actionable,Ln&&Ln.underlay]}),MS.cloneElement(qn,{style:[qn.props.style,Ln&&Ln.child]}))}var jce=Cht.default.create({root:{userSelect:"none"},actionable:{cursor:"pointer",touchAction:"manipulation"}}),$ce=MS.memo(MS.forwardRef(Iht));$ce.displayName="TouchableHighlight";var mFt=Zce.default=$ce;Qce.exports=Zce.default});var nue=In(function(tue,oue){var ght=Gn().default;tue.__esModule=!0;tue.default=void 0;var Dht=ght(IA()),fFt=tue.default=Dht.default;oue.exports=tue.default});import*as zht from"react";var cue=In(function(sue,iue){var F4=Gn().default,Ght=Ra().default;sue.__esModule=!0;sue.default=void 0;var B4=Ght(zht),kA=B4,kht=F4(M2()),Bht=F4(gu()),Fht=F4(cS()),Hht={accessibilityDisabled:!0,accessibilityLabel:!0,accessibilityLiveRegion:!0,accessibilityRole:!0,accessibilityState:!0,accessibilityValue:!0,children:!0,disabled:!0,focusable:!0,nativeID:!0,onBlur:!0,onFocus:!0,onLayout:!0,testID:!0},Wht=(rn)=>(0,kht.default)(rn,Hht);function Uht(rn,nn){var{delayPressIn:an,delayPressOut:sn,delayLongPress:ln,disabled:cn,focusable:un,onLongPress:dn,onPress:pn,onPressIn:mn,onPressOut:fn,rejectResponderTermination:hn}=rn,bn=(0,B4.useRef)(null),yn=(0,B4.useMemo)(()=>({cancelable:!hn,disabled:cn,delayLongPress:ln,delayPressStart:an,delayPressEnd:sn,onLongPress:dn,onPress:pn,onPressStart:mn,onPressEnd:fn}),[cn,an,sn,ln,dn,pn,mn,fn,hn]),En=(0,Fht.default)(bn,yn),Sn=kA.Children.only(rn.children),_n=[Sn.props.children],vn=Wht(rn);vn.accessibilityDisabled=cn,vn.focusable=!cn&&un!==!1,vn.ref=(0,Bht.default)(nn,bn,Sn.ref);var Tn=Object.assign(vn,En);return kA.cloneElement(Sn,Tn,..._n)}var aue=kA.memo(kA.forwardRef(Uht));aue.displayName="TouchableWithoutFeedback";var hFt=sue.default=aue;iue.exports=sue.default});var mue=In(function(uue,due){var qht=Gn().default;uue.__esModule=!0;uue.default=void 0;var Yht=qht(qR()),bFt=uue.default=Yht.default;due.exports=uue.default});import*as Zht from"react";var Sue=In(function(bue,yue){var fue=Gn().default;bue.__esModule=!0;bue.default=void 0;var Xht=fue(Zht),jht=fue(IA());function hue(rn){return Xht.default.createElement(jht.default,rn)}hue.ignoreWarnings=()=>{};var yFt=bue.default=hue;yue.exports=bue.default});var xue=In(function(_ue,vue){_ue.__esModule=!0;_ue.default=void 0;var Qht={ignoreLogs(){},ignoreAllLogs(){},uninstall(){},install(){}},EFt=_ue.default=Qht;vue.exports=_ue.default});var Cue=In(function(Rue,Aue){var e1t=Gn().default;Rue.__esModule=!0;Rue.default=void 0;var t1t=e1t(YR()),SFt=Rue.default=t1t.default;Aue.exports=Rue.default});import*as l1t from"react";var Pue=In(function(Iue,Oue){var r1t=Gn().default,n1t=Ra().default;Iue.__esModule=!0;Iue.default=a1t;var wue=n1t(l1t),Lue=r1t(e4());function a1t(){var rn=wue.useState(Lue.default.getColorScheme()),nn=rn[0],an=rn[1];return wue.useEffect(()=>{function sn(un){an(un.colorScheme)}var ln=Lue.default.addChangeListener(sn),cn=ln.remove;return cn},[]),nn}Oue.exports=Iue.default});var Gue=In(function(gue,Due){gue.__esModule=!0;gue.default=void 0;var c1t=I1(),_Ft=gue.default=c1t.useLocaleContext;Due.exports=gue.default});import*as FA from"react";var Fue=In(function(kue,Bue){var d1t=Gn().default;kue.__esModule=!0;kue.default=p1t;var BA=d1t(D2());function p1t(){var rn=FA.useState(()=>BA.default.get("window")),nn=rn[0],an=rn[1];return FA.useEffect(()=>{function sn(ln){var cn=ln.window;if(cn!=null)an(cn)}return BA.default.addEventListener("change",sn),an(BA.default.get("window")),()=>{BA.default.removeEventListener("change",sn)}},[]),nn}Bue.exports=kue.default});var S=In(function(Rbt){var ca=Gn().default;Rbt.__esModule=!0;Rbt.useWindowDimensions=Rbt.useLocaleContext=Rbt.useColorScheme=Rbt.unstable_createElement=Rbt.unmountComponentAtNode=Rbt.render=Rbt.processColor=Rbt.findNodeHandle=Rbt.YellowBox=Rbt.VirtualizedList=Rbt.View=Rbt.Vibration=Rbt.UIManager=Rbt.TouchableWithoutFeedback=Rbt.TouchableOpacity=Rbt.TouchableNativeFeedback=Rbt.TouchableHighlight=Rbt.Touchable=Rbt.TextInput=Rbt.Text=Rbt.Switch=Rbt.StyleSheet=Rbt.StatusBar=Rbt.Share=Rbt.SectionList=Rbt.ScrollView=Rbt.SafeAreaView=Rbt.RefreshControl=Rbt.ProgressBar=Rbt.Pressable=Rbt.Platform=Rbt.PixelRatio=Rbt.Picker=Rbt.PanResponder=Rbt.NativeModules=Rbt.NativeEventEmitter=Rbt.Modal=Rbt.LogBox=Rbt.Linking=Rbt.LayoutAnimation=Rbt.KeyboardAvoidingView=Rbt.Keyboard=Rbt.InteractionManager=Rbt.InputAccessoryView=Rbt.ImageBackground=Rbt.Image=Rbt.I18nManager=Rbt.FlatList=Rbt.Easing=Rbt.Dimensions=Rbt.DeviceEventEmitter=Rbt.Clipboard=Rbt.CheckBox=Rbt.Button=Rbt.BackHandler=Rbt.AssetRegistry=Rbt.Appearance=Rbt.AppState=Rbt.AppRegistry=Rbt.Animated=Rbt.Alert=Rbt.ActivityIndicator=Rbt.AccessibilityInfo=void 0;var h1t=ca(sc());Rbt.unstable_createElement=h1t.default;var b1t=ca(hX());Rbt.findNodeHandle=b1t.default;var y1t=ca(wO());Rbt.processColor=y1t.default;var E1t=ca(xP());Rbt.render=E1t.default;var S1t=ca(RP());Rbt.unmountComponentAtNode=S1t.default;var _1t=ca(zX());Rbt.NativeModules=_1t.default;var v1t=ca(ZX());Rbt.AccessibilityInfo=v1t.default;var T1t=ca(oj());Rbt.Alert=T1t.default;var x1t=ca(Tne());Rbt.Animated=x1t.default;var R1t=ca(e4());Rbt.Appearance=R1t.default;var A1t=ca(Une());Rbt.AppRegistry=A1t.default;var M1t=ca(jne());Rbt.AppState=M1t.default;var C1t=ca(eae());Rbt.AssetRegistry=C1t.default;var w1t=ca(nae());Rbt.BackHandler=w1t.default;var L1t=ca(cae());Rbt.Clipboard=L1t.default;var I1t=ca(D2());Rbt.Dimensions=I1t.default;var O1t=ca(zg());Rbt.Easing=O1t.default;var P1t=ca(mae());Rbt.I18nManager=P1t.default;var g1t=ca(yae());Rbt.Keyboard=g1t.default;var D1t=ca(B2());Rbt.InteractionManager=D1t.default;var N1t=ca(Mae());Rbt.LayoutAnimation=N1t.default;var G1t=ca(Dae());Rbt.Linking=G1t.default;var k1t=ca(Bae());Rbt.NativeEventEmitter=k1t.default;var B1t=ca(tse());Rbt.PanResponder=B1t.default;var F1t=ca(Cg());Rbt.PixelRatio=F1t.default;var H1t=ca(g0());Rbt.Platform=H1t.default;var W1t=ca(sse());Rbt.Share=W1t.default;var U1t=ca(es());Rbt.StyleSheet=U1t.default;var V1t=ca(Pu());Rbt.UIManager=V1t.default;var z1t=ca(dse());Rbt.Vibration=z1t.default;var q1t=ca(Sse());Rbt.ActivityIndicator=q1t.default;var Y1t=ca(qse());Rbt.Button=Y1t.default;var K1t=ca(Jse());Rbt.CheckBox=K1t.default;var X1t=ca(rg());Rbt.FlatList=X1t.default;var j1t=ca(rA());Rbt.Image=j1t.default;var $1t=ca(iie());Rbt.ImageBackground=$1t.default;var Z1t=ca(fie());Rbt.InputAccessoryView=Z1t.default;var Q1t=ca(_ie());Rbt.KeyboardAvoidingView=Q1t.default;var J1t=ca(Zie());Rbt.Modal=J1t.default;var ebt=ca(sle());Rbt.Picker=ebt.default;var tbt=ca(Ble());Rbt.Pressable=tbt.default;var obt=ca(zle());Rbt.ProgressBar=obt.default;var rbt=ca(UP());Rbt.RefreshControl=rbt.default;var nbt=ca($le());Rbt.SafeAreaView=nbt.default;var abt=ca(wR());Rbt.ScrollView=abt.default;var sbt=ca(Pg());Rbt.SectionList=sbt.default;var ibt=ca(ece());Rbt.StatusBar=ibt.default;var lbt=ca(dce());Rbt.Switch=lbt.default;var cbt=ca(aA());Rbt.Text=cbt.default;var ubt=ca(Ece());Rbt.TextInput=ubt.default;var dbt=ca(Yce());Rbt.Touchable=dbt.default;var pbt=ca(eue());Rbt.TouchableHighlight=pbt.default;var mbt=ca(nue());Rbt.TouchableNativeFeedback=mbt.default;var fbt=ca(m4());Rbt.TouchableOpacity=fbt.default;var hbt=ca(cue());Rbt.TouchableWithoutFeedback=hbt.default;var bbt=ca(bs());Rbt.View=bbt.default;var ybt=ca(mue());Rbt.VirtualizedList=ybt.default;var Ebt=ca(Sue());Rbt.YellowBox=Ebt.default;var Sbt=ca(xue());Rbt.LogBox=Sbt.default;var _bt=ca(Cue());Rbt.DeviceEventEmitter=_bt.default;var vbt=ca(Pue());Rbt.useColorScheme=vbt.default;var Tbt=ca(Gue());Rbt.useLocaleContext=Tbt.default;var xbt=ca(Fue());Rbt.useWindowDimensions=xbt.default});var $n=(rn)=>Math.min(rn-48,420);var H4=()=>{};function g(){let{width:rn,height:nn}=Wue.Dimensions.get("window");return{width:rn,height:nn}}var Wue,c,C=()=>{let{width:rn,height:nn}=g();return{width:$n(rn),height:nn,screenWidth:rn}},D,i,E=(rn)=>{let nn=Math.floor(rn/60),an=rn%60;return`${nn.toString().padStart(2,"0")}:${an.toString().padStart(2,"0")}`};var a=e(()=>{H4();Wue=T(S());c=g().width>640,D={isVisible:!1,enableSounds:!0,enableHaptics:!0,enableMusic:!1,offset:0};((fa)=>{fa.WHACK_A_MOLE="whack-a-mole";fa.POPIT_FIDGET="popit-fidget";fa.FRUIT_NINJA="fruit-ninja";fa.BALLOON_BLASTER="balloon-blaster";fa.SPACE_FIGHTER="space-fighter";fa.MAZE_RUNNER="maze-runner";fa.SLIDING_NUMBERS="sliding-numbers";fa.GAME_2048="game-2048";fa.DINO_JUMP="dino-jump";fa.COLORS_SORT="colors-sort";fa.FRUIT_MERGER="fruit-merger";fa.FLAPPY_BIRD="flappy-bird";fa.CANDY_CRUSH="candy-crush";fa.SNAKE_3D="snake-3d";fa.CAR_RACING="car-racing";fa.BIKE_RACING="bike-racing";fa.BLOCK_BLAST="block-blast";fa.BUBBLE_SHOOTER="bubble-shooter";fa.PERFECT_CIRCLE="perfect-circle";fa.SPIDER_SOLITAIRE="spider-solitaire";fa.TIC_TAC_TOE="tic-tac-toe";fa.PAC_MAN="pac-man";fa.TILE_HOME="tile-home";fa.WORD_SEARCH="word-search";fa.CONNECT_EM_ALL="connect-em-all";fa.NUTS_AND_BOLTS="nuts-and-bolts";fa.NUMBER_SEARCH="number-search";fa.DOTS_AND_BOXES="dots-and-boxes";fa.LUDO_KING="ludo-king";fa.TANK_1990="tank-1990";fa.BLOCK_BREAKER="block-breaker";fa.STACK_TOWER="stack-tower";fa.MINE_SWEEPER="mine-sweeper";fa.SUDOKU="sudoku";fa.KNIFE_HIT="knife-hit";fa.COLOR_SWITCH="color-switch";fa.PIPE_CONNECT="pipe-connect";fa.ARROWS="arrows";fa.FIND_DIFFERENT_NUMBER="find-different-number";fa.SNAKES_AND_LADDERS="snakes-and-ladders";fa.BLUK="bluk";fa.CHAMELEON_RUN="chameleon-run";fa.MOB_CONTROL="mob-control";fa.PAPER_IO="paper-io";fa.CROSSY_ROAD="crossy-road";fa.TANGRAM="tangram";fa.CHECKERS="checkers";fa.MEMORY_MATCH="memory-match";fa.FALLING_STICKS="falling-sticks";fa.REVERSI="reversi";fa.PENGUIN_RUN="penguin-run";fa.PLAY_WITH_TUA="play-with-tua";fa.TREASURE_HUNT="treasure-hunt"})(i||={})});var W4="#ffffff",Uue="#3a3a5e",Y0,tu,Vue=(rn)=>{switch(rn){case"play-with-tua":return"Play With Tua";case"treasure-hunt":return"Treasure Hunt";case"balloon-blaster":return"Balloon Blaster";case"fruit-ninja":return"Fruit Ninja";case"maze-runner":return"Maze Runner";case"whack-a-mole":return"Whack-a-Mole";case"space-fighter":return"Space Fighter";case"popit-fidget":return"Pop It Fidget";case"sliding-numbers":return"Sliding Numbers";case"game-2048":return"2048";case"dino-jump":return"Dino Jump";case"colors-sort":return"Colors Sort";case"fruit-merger":return"Fruit Merger";case"flappy-bird":return"Flappy Bird";case"candy-crush":return"Candy Crush";case"snake-3d":return"Snake 3D";case"car-racing":return"Car Racing";case"bike-racing":return"Bike Racing";case"block-blast":return"Block Blast";case"bubble-shooter":return"Bubble Shooter";case"perfect-circle":return"Perfect Circle";case"tic-tac-toe":return"Tic Tac Toe";case"spider-solitaire":return"Spider Solitaire";case"pac-man":return"Pac-Man";case"tile-home":return"Tile Home";case"word-search":return"Word Search";case"connect-em-all":return"Connect Em All";case"nuts-and-bolts":return"Nuts and Bolts";case"number-search":return"Number Search";case"dots-and-boxes":return"Dots and Boxes";case"ludo-king":return"Ludo King";case"tank-1990":return"Tank 1990";case"block-breaker":return"Block Breaker";case"stack-tower":return"Stack Tower";case"mine-sweeper":return"Mine Sweeper";case"sudoku":return"Sudoku";case"knife-hit":return"Knife Hit";case"color-switch":return"Color Switch";case"pipe-connect":return"Pipe Connect";case"arrows":return"Arrows";case"find-different-number":return"Find Different Number";case"snakes-and-ladders":return"Snakes and Ladders";case"bluk":return"Bluk";case"chameleon-run":return"Chameleon Run";case"mob-control":return"Mob Control";case"paper-io":return"Paper IO";case"crossy-road":return"Crossy Road";case"tangram":return"Tangram";case"checkers":return"Checkers";case"memory-match":return"Memory Match";case"falling-sticks":return"Falling Sticks";case"reversi":return"Reversi";case"penguin-run":return"Penguin Run";default:return"Game Settings"}},zue=(rn)=>{let nn=rn.replace("#","");return[parseInt(nn.substring(0,2),16),parseInt(nn.substring(2,4),16),parseInt(nn.substring(4,6),16)]},que=(rn,nn,an)=>"#"+[rn,nn,an].map((sn)=>Math.max(0,Math.min(255,Math.round(sn))).toString(16).padStart(2,"0")).join(""),xp=(rn,nn)=>{let[an,sn,ln]=zue(rn);return que(an+(255-an)*nn,sn+(255-sn)*nn,ln+(255-ln)*nn)},HA=(rn,nn)=>{let[an,sn,ln]=zue(rn);return que(an*(1-nn),sn*(1-nn),ln*(1-nn))};var Uu=e(()=>{a();Y0={BG_35:"rgba(255, 255, 255, 0.35)",BG_40:"rgba(255, 255, 255, 0.40)",BG_50:"rgba(255, 255, 255, 0.50)",OVERLAY:"rgba(0, 0, 0, 0.8)",OVERLAY_LIGHT:"rgba(0, 0, 0, 0.5)",TEXT:"#ffffff",TEXT_MUTED:"#cccccc",ACCENT:"#3b82f6",ACCENT_LIGHT:"#60a5fa",SWITCH_TRACK_OFF:"#555555",SWITCH_TRACK_ON:"#3b82f6",SWITCH_THUMB:"#ffffff",SCORE_GOLD:"#facc15"},tu={SURFACE:"rgba(255, 255, 255, 0.3)",BORDER:"rgba(255, 255, 255, 0.6)",BORDER_WIDTH:1.5,DIVIDER:"rgba(255, 255, 255, 0.25)",TEXT:"#ffffff",TEXT_MUTED:"rgba(255, 255, 255, 0.85)",TEXT_SHADOW:"rgba(0, 0, 0, 0.35)",SOLID:"#ffffff",ON_SOLID:"#3a3a5e"}});var Yue,V4,z4,nt,tn,Lo,U4=(rn,nn)=>{if(!nn)return rn;let an={...rn};for(let[sn,ln]of Object.entries(nn)){if(ln===void 0)continue;let cn=an[sn];an[sn]=ln&&typeof ln==="object"&&!Array.isArray(ln)&&cn&&typeof cn==="object"?U4(cn,ln):ln}return an},Kue,on=(rn)=>{Kue={light:U4(V4,rn.light),dark:U4(z4,rn.dark)}},m=(rn)=>rn?Kue[rn]:Yue,Qr,Io=(rn)=>!!rn&&Qr.has(rn);var _=e(()=>{Uu();a();Yue={mode:"classic",isDark:!0,BACKGROUND:Uue,PATTERN_OPACITY:1,SURFACE:tu.SURFACE,BORDER:tu.BORDER,BORDER_WIDTH:tu.BORDER_WIDTH,DIVIDER:tu.DIVIDER,TEXT:tu.TEXT,TEXT_MUTED:tu.TEXT_MUTED,LABEL:tu.TEXT,TEXT_SUBTLE:Y0.TEXT_MUTED,TEXT_SHADOW:tu.TEXT_SHADOW,SOLID:tu.SOLID,ON_SOLID:tu.ON_SOLID,SCORE_HIGHLIGHT:Y0.SCORE_GOLD,DANGER:"#FF5252",CHIP:"rgba(255, 255, 255, 0.2)",OVERLAY:Y0.OVERLAY,SWITCH_TRACK_OFF:Y0.SWITCH_TRACK_OFF,SWITCH_TRACK_ON:Y0.SWITCH_TRACK_ON,SWITCH_THUMB:Y0.SWITCH_THUMB,HEADER:{BACKGROUND:"rgba(255, 255, 255, 0.2)",BORDER:"rgba(255, 255, 255, 0.3)",TINT:"#FFFFFF"},BOARD:{SURFACE:"rgba(255, 255, 255, 0.15)",BORDER:"transparent",CELL_EMPTY:"rgba(255, 255, 255, 0.25)",GRID_LINE:"rgba(255, 255, 255, 0.35)",CELL_HIGHLIGHT:"rgba(255, 255, 255, 0.32)",CELL_INVALID:"#ff4444",FLASH:"#ffffff"}},V4={mode:"light",isDark:!1,BACKGROUND:"#C8C2E0",PATTERN_OPACITY:0.55,SURFACE:"rgba(255, 255, 255, 0.35)",BORDER:"rgba(255, 255, 255, 0.9)",BORDER_WIDTH:1.5,DIVIDER:"rgba(15, 23, 41, 0.08)",TEXT:"#0F1729",TEXT_MUTED:"#65758B",LABEL:"#0F1729",TEXT_SUBTLE:"#0F1729",TEXT_SHADOW:"transparent",SOLID:"#6F3EF4",ON_SOLID:"#FFFFFF",SCORE_HIGHLIGHT:"#6F3EF4",DANGER:"#EF4343",CHIP:"rgba(255, 255, 255, 0.75)",OVERLAY:"rgba(15, 23, 41, 0.8)",SWITCH_TRACK_OFF:"rgba(15, 23, 41, 0.15)",SWITCH_TRACK_ON:"#6F3EF4",SWITCH_THUMB:"#FFFFFF",HEADER:{BACKGROUND:"rgba(255, 255, 255, 0.35)",BORDER:"rgba(255, 255, 255, 0.9)",TINT:"#0F1729"},BOARD:{SURFACE:"rgba(255, 255, 255, 0.45)",BORDER:"rgba(255, 255, 255, 0.9)",CELL_EMPTY:"rgba(255, 255, 255, 0.65)",GRID_LINE:"rgba(15, 23, 41, 0.14)",CELL_HIGHLIGHT:"rgba(111, 62, 244, 0.22)",CELL_INVALID:"#EF4343",FLASH:"#FFFFFF"}},z4={mode:"dark",isDark:!0,BACKGROUND:"#100C1D",PATTERN_OPACITY:0.25,SURFACE:"rgba(20, 16, 34, 0.35)",BORDER:"rgba(153, 118, 249, 0.22)",BORDER_WIDTH:1.5,DIVIDER:"rgba(153, 118, 249, 0.25)",TEXT:"#F9F8FB",TEXT_MUTED:"#9893B4",LABEL:"#F9F8FB",TEXT_SUBTLE:"#F9F8FB",TEXT_SHADOW:"transparent",SOLID:"#9976F9",ON_SOLID:"#FFFFFF",SCORE_HIGHLIGHT:"#F6A823",DANGER:"#DC2828",CHIP:"rgba(153, 118, 249, 0.25)",OVERLAY:"rgba(0, 0, 0, 0.86)",SWITCH_TRACK_OFF:"rgba(153, 118, 249, 0.3)",SWITCH_TRACK_ON:"#9976F9",SWITCH_THUMB:"#F9F8FB",HEADER:{BACKGROUND:"rgba(20, 16, 34, 0.35)",BORDER:"rgba(153, 118, 249, 0.2)",TINT:"#F9F8FB"},BOARD:{SURFACE:"rgba(153, 118, 249, 0.12)",BORDER:"rgba(153, 118, 249, 0.3)",CELL_EMPTY:"rgba(153, 118, 249, 0.2)",GRID_LINE:"rgba(153, 118, 249, 0.35)",CELL_HIGHLIGHT:"rgba(153, 118, 249, 0.3)",CELL_INVALID:"#DC2828",FLASH:"#FFFFFF"}},nt={SKY:["#120E24","#17122B","#241D40","#3A3160"],HAZE:"rgba(153, 118, 249, 0.10)",STAR:"rgba(249, 248, 251, 0.85)",MOON:{CORE:["#FFFFFF","#EEEAF8","#D6CEEC"],CRATER:"rgba(120, 108, 165, 0.22)",GLOW:"#C4B5FD"},CLOUD:{BODY:"rgba(92, 84, 132, 0.78)",SHADOW:"rgba(52, 45, 84, 0.55)",RIM:"rgba(196, 181, 253, 0.45)"},HILL:{FAR:["#22264E","#1A1D40"],MID:["#22334A","#18263A"],NEAR:["#17362A","#0F241C"],RIM:"rgba(214, 204, 255, 0.2)",MIST:"rgba(120, 104, 190, 0.22)"},GRASS:["#24442C","#1A3322"],GROUND:["#3B2F2A","#2A211E"]},tn={HILL:{FAR:["#BCD8C8","#A6CBB6"],MID:["#93C29E","#7DB38A"],NEAR:["#74AE7E","#5E9C69"],RIM:"rgba(255, 255, 240, 0.18)",MIST:"rgba(255, 255, 255, 0.28)"}},Lo={classic:Yue,light:V4,dark:z4},Kue={light:V4,dark:z4},Qr=new Set(Object.values(i))});import{createContext as Dyt,useContext as Nyt}from"react";import{jsx as Gyt}from"react/jsx-runtime";var Xue,jue,B=({theme:rn,children:nn})=>Gyt(jue.Provider,{value:m(rn),children:nn}),Tf=()=>Nyt(jue),q4=(rn)=>{let nn=new Map;return(an)=>{let sn=nn.get(an);if(sn)return sn;let ln=Xue.StyleSheet.create(rn(an));return nn.set(an,ln),ln}};var F=e(()=>{_();Xue=T(S()),jue=Dyt(Lo.classic)});function Xe(rn,nn){let an=[{start:[0,0],end:[rn,nn],colors:[`${yi[0]}40`,`${yi[2]}35`,`${yi[4]}40`,`${yi[6]}35`,`${yi[8]}40`,`${yi[10]}35`,`${yi[12]}40`,`${yi[14]}35`]},{start:[0,0],end:[rn/2,nn/2],colors:[`${yi[1]}25`,"transparent",`${yi[5]}25`,"transparent",`${yi[9]}25`,"transparent",`${yi[13]}25`,"transparent"]},{start:[rn,0],end:[0,nn],colors:[`${yi[3]}20`,"transparent",`${yi[7]}20`,"transparent",`${yi[11]}20`,"transparent"]}],sn=[],ln=20;for(let dn=0;dn<20;dn++){let pn=rn/20*dn+Math.sin(dn*0.5)*40+Y4(dn*3+1)*80,mn=nn/20*dn+Math.cos(dn*0.7)*50+Y4(dn*3+2)*100,fn=24+Y4(dn*3+3)*24,hn=`${yi[dn%yi.length]}${Byt(0.2+Math.sin(dn)*0.1)}`,bn=Math.max(fn,Math.min(rn-fn,pn)),yn=Math.max(fn,Math.min(nn-fn,mn));switch(dn%5){case 0:sn.push({kind:"circle",cx:bn+fn/2,cy:yn+fn/2,r:fn/2,color:hn});break;case 1:sn.push({kind:"rrect",x:bn,y:yn,w:fn,h:fn,r:fn*0.2,color:hn});break;case 2:sn.push({kind:"rrect",x:bn,y:yn,w:fn*0.55,h:fn*1.3,r:fn*0.12,color:hn});break;case 3:sn.push({kind:"rrect",x:bn,y:yn,w:fn*1.3,h:fn*0.55,r:fn*0.12,color:hn});break;default:sn.push({kind:"diamond",cx:bn+fn/2,cy:yn+fn/2,size:fn,color:hn})}}let cn=(dn)=>`${yi[dn]}30`;sn.push({kind:"circle",cx:rn*0.1,cy:nn*0.15,r:40,color:cn(0)},{kind:"rrect",x:rn*0.85,y:nn*0.82,w:70,h:70,r:14,color:cn(3)},{kind:"diamond",cx:rn*0.85,cy:nn*0.2,size:60,color:cn(8)},{kind:"rrect",x:rn*0.1,y:nn*0.77,w:90,h:40,r:8,color:cn(12)},{kind:"circle",cx:rn*0.5,cy:nn*0.1,r:25,color:cn(14)},{kind:"rrect",x:rn*0.17,y:nn*0.47,w:36,h:64,r:8,color:cn(6)},{kind:"diamond",cx:rn*0.8,cy:nn*0.6,size:56,color:cn(10)},{kind:"rrect",x:rn*0.56,y:nn*0.87,w:50,h:50,r:10,color:cn(1)},{kind:"circle",cx:rn*0.3,cy:nn*0.25,r:24,color:cn(4)},{kind:"rrect",x:rn*0.66,y:nn*0.32,w:56,h:30,r:6,color:cn(9)});let un=[];for(let dn=0;dn<Math.floor(rn/40);dn++)un.push({x:dn*40,y:0,w:1,h:nn});for(let dn=0;dn<Math.floor(nn/40);dn++)un.push({x:0,y:dn*40,w:rn,h:1});return{width:rn,height:nn,gradients:an,shapes:sn,grid:un}}var kyt,yi,at="rgba(0, 0, 0, 0.02)",Y4=(rn)=>{let nn=Math.sin(rn*12.9898+rn*78.233)*43758.5453;return nn-Math.floor(nn)},Byt=(rn)=>Math.floor(rn*255).toString(16).padStart(2,"0");var st=e(()=>{kyt=["#E91E63","#F44336","#FF5722","#FF9800","#FFC107","#8E24AA","#CDDC39","#8BC34A","#4CAF50","#009688","#00BCD4","#03A9F4","#2196F3","#3F51B5","#9C27B0"],yi=kyt});var $ue="6db8360ff38ef1524ff6b80f67938974";var Zue=()=>{};import{ProceduralCache as Fyt}from"@nayan-ui/engine";function Bn(rn,nn){return Que??=new Fyt($ue),Que.get(rn,nn)}var Que;var Jue=e(()=>{Zue()});import{createShape as Hyt}from"@nayan-ui/engine";function wn(rn,nn={}){return Hyt(rn,{...nn,optimize:nn.optimize??!0})}var na=e(()=>{Jue()});function xn(rn,nn=1){let an=Wyt.exec(rn);if(an){let ln=parseInt(an[1],16),cn=an[2]?parseInt(an[2],16)/255:1;return[(ln>>16&255)/255,(ln>>8&255)/255,(ln&255)/255,cn*nn]}let sn=Uyt.exec(rn);if(sn)return[Number(sn[1])/255,Number(sn[2])/255,Number(sn[3])/255,(sn[4]===void 0?1:Number(sn[4]))*nn];return[0,0,0,0]}function ws(rn){let[nn,an,sn]=xn(rn);return[nn,an,sn]}function Zn(rn,nn){let[an,sn,ln]=rn,cn=ln/Math.hypot(an,sn,ln),un=1/(nn*0.8+(1-nn)*cn);return{direction:rn,ambient:nn,shadows:!1,color:[un,un,un]}}function fc(rn,nn){if(rn.intro&&rn.introAge>=0&&(rn.introAge+=nn)>=Vyt)rn.intro=!1}var Wyt,Uyt,Vyt=0.5;var Hn=e(()=>{H4();Wyt=/^#([0-9a-f]{6})([0-9a-f]{2})?$/i,Uyt=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i});var Oo={};n(Oo,{BACKDROP_LIGHT:()=>K4,backdropMesh:()=>ub,cardBackdropMesh:()=>X4,setBackdropTheme:()=>aa,spawnBackdrop:()=>oa});function zyt(rn,nn,an,sn){let ln=rn.end[0]-rn.start[0],cn=rn.end[1]-rn.start[1],dn=Math.max(0,Math.min(1,((an-rn.start[0])*ln+(sn-rn.start[1])*cn)/(ln*ln+cn*cn)))*(nn.length-1),pn=Math.min(nn.length-2,Math.floor(dn)),mn=dn-pn,fn=nn[pn],hn=nn[pn+1];return[fn[0]+(hn[0]-fn[0])*mn,fn[1]+(hn[1]-fn[1])*mn,fn[2]+(hn[2]-fn[2])*mn,fn[3]+(hn[3]-fn[3])*mn]}function qyt(rn,nn,an){switch(rn.kind){case"circle":return(nn-rn.cx)**2+(an-rn.cy)**2<=rn.r*rn.r;case"rrect":return nn>=rn.x&&nn<=rn.x+rn.w&&an>=rn.y&&an<=rn.y+rn.h;default:return Math.abs(nn-rn.cx)+Math.abs(an-rn.cy)<=rn.size/2}}class o0e{pattern;opacity;stops;colors;gridColor=xn(at);bg;constructor(rn,nn,an){this.pattern=rn;this.opacity=an;this.stops=rn.gradients.map((sn)=>sn.colors.map((ln)=>xn(ln))),this.colors=rn.shapes.map((sn)=>xn(sn.color)),this.bg=xn(nn)}at(rn,nn,an,sn){let ln=0,cn=0,un=0,dn=0,pn=(fn)=>{let hn=1-fn[3];ln=fn[0]*fn[3]+ln*hn,cn=fn[1]*fn[3]+cn*hn,un=fn[2]*fn[3]+un*hn,dn=fn[3]+dn*hn};this.pattern.gradients.forEach((fn,hn)=>pn(zyt(fn,this.stops[hn],rn,nn)));for(let fn=0;fn<an;fn++)if(qyt(this.pattern.shapes[fn],rn,nn))pn(this.colors[fn]);if(typeof sn==="number")pn(this.colors[sn]);else if(sn==="grid")pn(this.gridColor);let mn=this.opacity;return[ln*mn+this.bg[0]*(1-dn*mn),cn*mn+this.bg[1]*(1-dn*mn),un*mn+this.bg[2]*(1-dn*mn)]}}class r0e{vertices=[];indices=[];vertex(rn,nn,an,[sn,ln,cn]){return this.vertices.push(rn,-nn,an,0,0,1,sn,ln,cn,0,0),this.vertices.length/11-1}quad(rn,nn,an,sn){this.indices.push(rn,nn,an,rn,an,sn)}geometry(){return{vertices:new Float32Array(this.vertices),indices:new Uint32Array(this.indices)}}}function Yyt(rn){if(rn.kind==="circle")return Array.from({length:e0e},(ln,cn)=>{let un=-cn/e0e*Math.PI*2;return[rn.cx+Math.cos(un)*rn.r,rn.cy+Math.sin(un)*rn.r]});if(rn.kind==="diamond"){let ln=rn.size/2;return[[rn.cx+ln,rn.cy],[rn.cx,rn.cy-ln],[rn.cx-ln,rn.cy],[rn.cx,rn.cy+ln]]}let nn=Math.min(rn.r,rn.w/2,rn.h/2),an=[[rn.x+rn.w-nn,rn.y+rn.h-nn,-Math.PI/2],[rn.x+rn.w-nn,rn.y+nn,0],[rn.x+nn,rn.y+nn,Math.PI/2],[rn.x+nn,rn.y+rn.h-nn,Math.PI]],sn=[];for(let[ln,cn,un]of an)for(let dn=0;dn<=UA;dn++){let pn=un+dn/UA*(Math.PI/2);sn.push([ln+Math.cos(pn)*nn,cn-Math.sin(pn)*nn])}return sn}function Kyt(rn){return rn.kind==="rrect"?[rn.x+rn.w/2,rn.y+rn.h/2]:[rn.cx,rn.cy]}function n0e(rn,nn,an,sn=!0){let ln=new r0e,cn=new o0e(rn,nn,an),{width:un,height:dn,shapes:pn}=rn,mn=sn?rn.grid:[],fn=Math.ceil(un/cb),hn=Math.ceil(dn/cb),bn=ln.vertices.length/11;for(let Sn=0;Sn<=hn;Sn++){let _n=Math.min(dn,Sn*cb);for(let vn=0;vn<=fn;vn++){let Tn=Math.min(un,vn*cb);ln.vertex(Tn,_n,0,cn.at(Tn,_n,0,null))}}let yn=(Sn,_n)=>bn+_n*(fn+1)+Sn;for(let Sn=0;Sn<hn;Sn++)for(let _n=0;_n<fn;_n++)ln.quad(yn(_n,Sn+1),yn(_n+1,Sn+1),yn(_n+1,Sn),yn(_n,Sn));pn.forEach((Sn,_n)=>{let vn=(_n+1)*t0e,[Tn,Rn]=Kyt(Sn),An=ln.vertex(Tn,Rn,vn,cn.at(Tn,Rn,_n,_n)),Mn=Yyt(Sn).map(([Cn,Ln])=>ln.vertex(Cn,Ln,vn,cn.at(Cn,Ln,_n,_n)));Mn.forEach((Cn,Ln)=>ln.indices.push(An,Cn,Mn[(Ln+1)%Mn.length]))});let En=(pn.length+1)*t0e;for(let Sn of mn){let _n=Math.max(Sn.w,Sn.h),vn=Math.max(1,Math.ceil(_n/cb)),Tn=Sn.h>Sn.w,Rn=null;for(let An=0;An<=vn;An++){let Mn=Math.min(_n,An*cb),Cn=Tn?[Sn.x,Sn.y+Mn,Sn.x+Sn.w,Sn.y+Mn]:[Sn.x+Mn,Sn.y,Sn.x+Mn,Sn.y+Sn.h],Ln=ln.vertex(Cn[0],Cn[1],En,cn.at(Cn[0],Cn[1],pn.length,"grid")),On=ln.vertex(Cn[2],Cn[3],En,cn.at(Cn[2],Cn[3],pn.length,"grid"));if(Rn)if(Tn)ln.quad(Ln,On,Rn[1],Rn[0]);else ln.quad(Rn[1],On,Ln,Rn[0]);Rn=[Ln,On]}}return ln.geometry()}function ub(rn){let{width:nn,height:an}=g(),sn=`${rn.BACKGROUND}:${rn.PATTERN_OPACITY}:${Math.round(nn)}x${Math.round(an)}`,ln=VA.get(sn);if(!ln)ln=Bn(`backdrop:${sn}`,()=>wn(n0e(Xe(nn,an),rn.BACKGROUND,rn.PATTERN_OPACITY),{center:!1})),VA.set(sn,ln);return ln}function Xyt({vertices:rn,indices:nn},an){let sn=[],ln=[],cn=(un)=>Array.from(rn.subarray(un*WA,un*WA+WA));for(let un=0;un<nn.length;un+=3){let dn=[cn(nn[un]),cn(nn[un+1]),cn(nn[un+2])];for(let mn=0;mn<an.length&&dn.length>0;mn++){let[fn,hn]=an[mn],[bn,yn]=an[(mn+1)%an.length],En=(_n)=>(bn-fn)*(_n[1]-hn)-(yn-hn)*(_n[0]-fn),Sn=[];for(let _n=0;_n<dn.length;_n++){let vn=dn[_n],Tn=dn[(_n+1)%dn.length],Rn=En(vn),An=En(Tn);if(Rn>=0)Sn.push(vn);if(Rn>=0!==An>=0){let Mn=Rn/(Rn-An);Sn.push(vn.map((Cn,Ln)=>Cn+(Tn[Ln]-Cn)*Mn))}}dn=Sn}if(dn.length<3)continue;let pn=sn.length/WA;for(let mn of dn)sn.push(...mn);for(let mn=1;mn+1<dn.length;mn++)ln.push(pn,pn+mn,pn+mn+1)}return{vertices:new Float32Array(sn),indices:new Uint32Array(ln)}}function X4(rn,nn,an,sn){let ln=g(),[cn,un]=[Math.round(nn),Math.round(an)],dn=`card-nogrid:${rn.BACKGROUND}:${rn.PATTERN_OPACITY}:${Math.round(ln.width)}x${Math.round(ln.height)}:${cn}x${un}:${sn}`,pn=VA.get(dn);if(!pn){let mn=Math.min(sn,cn/2,un/2),fn=[],hn=[[cn-mn,-un+mn,-Math.PI/2],[cn-mn,-mn,0],[mn,-mn,Math.PI/2],[mn,-un+mn,Math.PI]];for(let[yn,En,Sn]of hn)for(let _n=0;_n<=UA;_n++){let vn=Sn+_n/UA*(Math.PI/2);fn.push([yn+Math.cos(vn)*mn,En+Math.sin(vn)*mn])}let bn=n0e(Xe(ln.width,ln.height),rn.BACKGROUND,rn.PATTERN_OPACITY,!1);pn=wn(Xyt(bn,fn),{center:!1}),VA.set(dn,pn)}return pn}function oa(rn,nn,an,sn,ln){return rn.spawn({mesh:ub(ln),position:[-nn/2,an/2,sn],color:[1,1,1,1],pickable:!1})}function aa(rn,nn,an){rn.set(nn,{mesh:ub(an)})}var K4,cb=16,e0e=40,UA=6,t0e=0.05,VA,WA=11;var u=e(()=>{st();a();na();Hn();K4=Zn([0,0,1],1);VA=new Map});import{useEffect as jyt,useRef as $yt}from"react";function hc(rn,nn){let an=$yt(null);an.current??={value:rn(),users:0};let sn=an.current;return jyt(()=>(sn.users++,sn.cleanup??=nn(sn.value),()=>{sn.users--,queueMicrotask(()=>{if(sn.users!==0)return;sn.cleanup?.(),sn.cleanup=void 0})}),[sn]),sn.value}var xf=()=>{};import s0e,{useCallback as i0e,useEffect as Zyt,useMemo as a0e,useState as Qyt}from"react";import{GameView as Jyt,isEngineAvailable as eEt,World as tEt}from"@nayan-ui/engine";import{jsx as j4}from"react/jsx-runtime";var CS,l0e,$4,oEt;var c0e=e(()=>{F();u();Hn();xf();CS=T(S()),l0e=s0e.memo(({width:rn,height:nn})=>{let an=Tf(),sn=hc(()=>{let dn=new tEt(4),pn=dn.spawn({mesh:ub(an),color:[1,1,1,1],pickable:!1});return{world:dn,backdrop:pn}},(dn)=>()=>dn.world.dispose());Zyt(()=>{sn.world.set(sn.backdrop,{mesh:ub(an)})},[sn,an]);let ln=a0e(()=>({eye:[rn/2,-nn/2,100],target:[rn/2,-nn/2,0],fov:1,ortho:nn/2}),[rn,nn]),cn=a0e(()=>ws(an.BACKGROUND),[an.BACKGROUND]),un=i0e((dn)=>sn.world.update(dn),[sn]);return j4(Jyt,{source:sn.world,camera:ln,light:K4,background:cn,onUpdate:un})});l0e.displayName="CardScene";$4=s0e.memo(()=>{let rn=Tf(),[nn,an]=Qyt(null),sn=i0e((ln)=>{let{width:cn,height:un}=ln.nativeEvent.layout;an((dn)=>dn&&dn.width===cn&&dn.height===un?dn:{width:cn,height:un})},[]);return j4(CS.View,{style:[CS.StyleSheet.absoluteFill,oEt.passThrough,{backgroundColor:rn.BACKGROUND}],onLayout:sn,children:eEt&&nn&&nn.width>0&&nn.height>0?j4(l0e,{width:nn.width,height:nn.height}):null})});$4.displayName="BackdropCard";oEt=CS.StyleSheet.create({passThrough:{pointerEvents:"none"}})});var s,Jr;var v=e(()=>{a();s={"block-blast":{id:"block-blast",title:"Block Blast",description:"Place blocks on the grid to clear full lines - strategic puzzle challenge!",instructions:["Drag and drop block shapes onto the grid.","Fill a complete row or column to clear it.","Plan ahead to avoid running out of space.","Score increases with each line cleared.","Game ends when no blocks can be placed."],categories:["block","puzzle"]},"connect-em-all":{id:"connect-em-all",title:"Connect Em All",description:"Connect matching colored dots on the board to clear them and score points!",instructions:["Tap a colored dot and drag to a matching one.","Paths cannot cross other connections.","Fill the entire board to complete the level.","Use fewer moves for a higher score.","Undo moves by tapping the last connected dot."],categories:["block","puzzle"]},"tile-home":{id:"tile-home",title:"Tile Home",description:"Match 3 tiles of the same type to clear them - classic mahjong puzzle fun!",instructions:["Tap tiles to add them to the holding bar.","Match 3 identical tiles to clear them.","The bar holds up to 7 tiles at a time.","Plan your picks to avoid filling the bar.","Game ends if the bar is full with no matches."],categories:["block","casual"]},arrows:{id:"arrows",title:"Arrows",description:"Tap arrows to fly them off the board - clear them all before time runs out!",instructions:["Tap an arrow to send it flying in its direction.","An arrow can only leave if its path to the edge is clear.","Blocked arrows shake — clear the ones in front first.","Removing arrows opens new paths, so you can never get stuck.","Clear every arrow before the timer ends to win."],categories:["puzzle"]},"candy-crush":{id:"candy-crush",title:"Candy Crush",description:"Match colorful candies in rows to score points - sweet puzzle fun!",instructions:["Swap adjacent candies to match 3 or more.","Matched candies are cleared and new ones fall.","Match 4 or 5 for special candy power-ups.","Clear the required targets to pass each level.","Plan moves ahead for bigger combos."],categories:["block","casual"]},"penguin-run":{id:"penguin-run",isPremium:!0,title:"Penguin Run",description:"A 3D temple runner - dash a penguin down an ancient jungle causeway to the finish line!",instructions:["Every run is a fresh 1000 m track - reach the finish line to win and dance!","Swipe left or right to switch lanes and grab coins for points.","Swipe up to jump over broken gaps in the track.","Swipe down to slide under spiked gateways.","You have 3 lives - each slip costs one, and it gets faster the further you go!"],categories:["action","arcade"]},"treasure-hunt":{id:"treasure-hunt",isPremium:!0,title:"Treasure Hunt",description:"Explore a fresh 3D wilderness, discover diamonds and battle rogue robots.",instructions:["Press Start Game to begin a new expedition through randomly generated grasslands.","Swipe and hold to walk, drag farther to run, and release to stop.","Tap to punch nearby robots; another finger can punch while you keep moving.","Collect 24 diamonds and defeat 8 robots to complete the expedition.","Use bridges to cross rivers and explore cave passages. Hills, water, rocks and tree trunks are solid."],categories:["action","arcade"]},"car-racing":{id:"car-racing",isPremium:!0,title:"Car Racing",description:"Dodge oncoming traffic and race through busy lanes - test your reflexes!",instructions:["Swipe left or right to steer across the road.","Pass cars to score 500 points each.","Rear-ending a car costs a life; side swipes only slow you down.","Speed builds up the longer you drive.","Reach the finish line at 2000 meters with lives left to win."],categories:["racing"]},"bike-racing":{id:"bike-racing",isPremium:!0,title:"Bike Racing",description:"Race on bikes through heavy traffic - faster speeds and bigger challenges!",instructions:["Swipe left or right to steer and lean through traffic.","Pass bikes to score 500 points each.","Running into a bike costs a life.","Speed builds up the longer you ride.","Reach the finish line at 2000 meters with lives left to win."],categories:["racing"]},"play-with-tua":{id:"play-with-tua",title:"Play With Tua",description:"Play with Tua, your playful companion. Dance, wave, laugh and discover every move!",instructions:["Press Start Game or tap Tua to begin.","Tap the scene to cycle through 10 actions, or choose one from the action strip.","Drag across the scene to turn Tua and see every side.","Each action repeats until you choose another. Stop Game resets your session."],categories:["casual","arcade"]},"bubble-shooter":{id:"bubble-shooter",title:"Bubble Shooter",description:"Aim and shoot bubbles to match 3 or more of the same color and clear them!",instructions:["Aim and tap to shoot a bubble upward.","Match 3 or more same-colored bubbles to pop them.","Bubbles without support fall and give bonus points.","Use wall bounces for tricky angles.","Game ends if bubbles reach the bottom line."],categories:["puzzle","arcade"]},"block-breaker":{id:"block-breaker",title:"Block Breaker",description:"Break all the bricks with a bouncing ball and paddle - arcade action fun!",instructions:["Drag the paddle left and right to bounce the ball.","Hit all bricks on screen to clear the level.","Some bricks need multiple hits to break.","Don't let the ball fall below the paddle.","Collect power-ups for extra abilities."],categories:["block","arcade"]},"fruit-ninja":{id:"fruit-ninja",title:"Fruit Ninja",description:"Slice all flying fruits with finger swipes and combos - avoid the bombs!",instructions:["Swipe across fruits to slice them.","Slice multiple fruits in one swipe for combos.","Avoid slicing bombs or you lose a life.","Don't let fruits fall without slicing them.","Score as many points as you can before lives run out."],categories:["action"]},"balloon-blaster":{id:"balloon-blaster",title:"Balloon Blaster",description:"Pop colorful balloons as fast as you can before time runs out!",instructions:["Tap balloons to pop them and earn points.","Pop same-colored balloons in a row for combos.","Avoid letting balloons fly off the screen.","Special balloons give bonus points or extra time.","Score as high as you can before time expires."],categories:["action"]},"flappy-bird":{id:"flappy-bird",title:"Flappy Bird",description:"Tap to flap and navigate through pipes - classic arcade challenge!",instructions:["Tap the screen to flap and gain height.","Navigate through gaps between pipes.","Each pipe passed scores one point.","Don't hit the pipes or the ground.","Try to beat your high score each attempt."],categories:["arcade"]},"dino-jump":{id:"dino-jump",title:"Dino Jump",description:"Jump over obstacles and collect stars for extra lives - endless runner fun!",instructions:["Tap to jump over incoming obstacles.","Collect stars for bonus points and extra lives.","Speed increases as you progress further.","Time your jumps carefully for tall obstacles.","Survive as long as possible for a high score."],categories:["arcade","action"]},"snakes-and-ladders":{id:"snakes-and-ladders",title:"Snakes and Ladders",description:"Classic board game - roll the dice, climb ladders, and avoid snakes to reach 100!",instructions:["Roll the dice by tapping it on your turn.","Climb ladders to jump ahead on the board.","Watch out for snakes that slide you back down!","Roll a 6 to get an extra turn.","First player to reach cell 100 wins the game."],categories:["strategy"]},"ludo-king":{id:"ludo-king",title:"Ludo King",description:"Classic board game for all ages - roll dice and race your tokens back home!",instructions:["Roll the dice by tapping it.","Move your tokens based on the dice value.","Roll a 6 to bring a new token into play.","Land on an opponent's token to send it back.","Get all 4 tokens home to win the game."],categories:["strategy"]},"dots-and-boxes":{id:"dots-and-boxes",title:"Dots and Boxes",description:"Connect the dots to complete boxes and outscore the AI - strategy game!",instructions:["Tap between two dots to draw a line.","Complete the fourth side of a box to claim it.","Claimed boxes earn you a point and an extra turn.","Try to force the opponent into giving you boxes.","Player with the most boxes at the end wins."],categories:["brain","strategy"]},"whack-a-mole":{id:"whack-a-mole",title:"Whack A Mole",description:"Whack cute cats popping from holes - test your lightning reflexes!",instructions:["Tap on moles as they pop up from holes.","Each hit earns you points.","Moles appear faster as you progress.","Missing too many moles costs you lives.","Score as high as you can before time runs out."],categories:["action"]},"pac-man":{id:"pac-man",title:"Pac-Man",description:"Classic arcade action - eat all dots, avoid ghosts, and clear the maze!",instructions:["Swipe to move Pac-Man through the maze.","Eat all dots on the board to clear the level.","Avoid ghosts or you lose a life.","Eat power pellets to turn ghosts vulnerable.","Eat vulnerable ghosts for bonus points."],categories:["arcade"]},"space-fighter":{id:"space-fighter",title:"Space Fighter",description:"Pilot your spaceship through asteroid fields - endless space survival!",instructions:["Drag your ship to dodge incoming asteroids.","Shoot enemies by tapping the screen.","Collect power-ups for shields and weapons.","Survive as long as possible for a high score.","Avoid collisions with asteroids and enemies."],categories:["action"]},"colors-sort":{id:"colors-sort",title:"Colors Sort",description:"Sort colored liquids into matching tubes - challenging logic puzzle!",instructions:["Tap a tube to pick up the top color layer.","Tap another tube to pour it in.","You can only pour onto the same color or an empty tube.","Sort all colors so each tube has one color.","Use empty tubes strategically to rearrange."],categories:["puzzle"]},"popit-fidget":{id:"popit-fidget",title:"Popit Fidget",description:"Pop satisfying bubbles in this relaxing fidget toy simulation game!",instructions:["Tap bubbles to pop them one by one.","Pop all bubbles to complete a board.","Enjoy the satisfying pop sounds and haptics.","Try different patterns and shapes.","A relaxing game with no time pressure."],categories:["casual"]},"word-search":{id:"word-search",title:"Word Search",description:"Find all hidden words in the letter grid - swipe to select and score!",instructions:["Find words from the list hidden in the grid.","Swipe across letters to select a word.","Words can be horizontal, vertical, or diagonal.","Found words are highlighted and crossed off.","Find all words to complete the puzzle."],categories:["education"]},"number-search":{id:"number-search",title:"Number Search",description:"Find all hidden numbers in the digit grid - swipe to select and score!",instructions:["Find number sequences hidden in the grid.","Swipe across digits to select a number.","Numbers can be in any direction.","Found numbers are highlighted and crossed off.","Find all numbers to complete the puzzle."],categories:["education"]},"tank-1990":{id:"tank-1990",title:"Tank 1990",description:"Classic tank battle game - destroy enemy tanks and defend your base to win!",instructions:["Use the joystick to move your tank.","Tap the fire button to shoot.","Destroy all enemy tanks to clear the level.","Protect your base from enemy fire.","Collect power-ups for stronger weapons."],categories:["action"]},"nuts-and-bolts":{id:"nuts-and-bolts",title:"Nuts and Bolts",description:"Unscrew bolts and remove wooden planks to solve tricky mechanical puzzles!",instructions:["Tap a bolt to unscrew it from a plank.","Tap an empty hole to screw the bolt in.","Remove all planks by unscrewing their bolts.","Plan the order of moves carefully.","Some bolts are blocked by other planks."],categories:["puzzle"]},"stack-tower":{id:"stack-tower",title:"Stack Tower",description:"Stack sliding blocks perfectly to build the tallest tower you can reach!",instructions:["Tap to drop the sliding block onto the tower.","Align it as perfectly as possible.","Keep at least 40% of each block supported.","Less support makes the block fall and ends the game.","Build as tall as you can for a high score."],categories:["arcade"]},"pipe-connect":{id:"pipe-connect",title:"Pipe Connect",description:"Rotate pipes to connect the water flow from source to sink in time!",instructions:["Tap a pipe piece to rotate it.","Connect all pipes from the source to the sink.","Water flows once the path is complete.","Complete the puzzle before time runs out.","All pipe pieces must be part of the path."],categories:["puzzle"]},"mine-sweeper":{id:"mine-sweeper",title:"Mine Sweeper",description:"Reveal all safe cells on the grid without hitting a hidden mine below!",instructions:["Tap a cell to reveal what's underneath.","Numbers show how many mines are adjacent.","Long press a cell to flag it as a mine.","Reveal all non-mine cells to win.","Hitting a mine ends the game immediately."],categories:["brain"]},"knife-hit":{id:"knife-hit",title:"Knife Hit",description:"Throw knives at the spinning log — don't hit another knife or apple!",instructions:["Tap to throw a knife at the spinning log.","Don't hit another knife already on the log.","Hit apples for bonus points.","Timing is key as the log spins.","Throw all knives to clear the level."],categories:["action"]},"color-switch":{id:"color-switch",title:"Color Switch",description:"Jump through matching color obstacles — time your taps to survive!",instructions:["Tap to make the ball jump upward.","Pass through obstacles matching your ball's color.","Your color changes when you hit a color switcher.","Hitting the wrong color ends the game.","Score points for each obstacle cleared."],categories:["arcade"]},"spider-solitaire":{id:"spider-solitaire",title:"Spider Solitaire",description:"Classic Spider Solitaire - build card sequences and clear the full tableau!",instructions:["Arrange cards in descending order on columns.","A complete sequence from King to Ace is removed.","Tap the deck to deal new cards to all columns.","Only ordered sequences can be moved together.","Clear all cards from the tableau to win."],categories:["brain"]},"maze-runner":{id:"maze-runner",title:"Maze Runner",description:"Navigate ball through procedural mazes - tilt and physics controls!",instructions:["Tilt your device to roll the ball through the maze.","Navigate from the start to the exit point.","Avoid dead ends and backtrack when needed.","Complete the maze as quickly as possible.","Each maze is randomly generated for variety."],categories:["puzzle"]},"tic-tac-toe":{id:"tic-tac-toe",title:"Tic Tac Toe",description:"Classic X and O strategy game - play against a smart AI and try to win!",instructions:["Tap an empty cell to place your mark (X or O).","Get 3 in a row horizontally, vertically, or diagonally.","Block your opponent from completing their row.","The AI adapts to your strategy.","The game is a draw if the board fills with no winner."],categories:["brain"]},"sliding-numbers":{id:"sliding-numbers",title:"Sliding Numbers",description:"Slide numbered tiles into the right order - classic sliding puzzle game!",instructions:["Tap a tile adjacent to the empty space to slide it.","Arrange all numbers in ascending order.","Start from top-left and work row by row.","Use fewer moves for a better score.","The puzzle is solved when all tiles are in order."],categories:["puzzle"]},"game-2048":{id:"game-2048",title:"2048",description:"Merge matching number tiles to reach 2048 and beyond - addictive puzzle!",instructions:["Swipe to move all tiles in one direction.","Matching numbers merge into their sum.","Plan moves to avoid filling the board.","Reach the 2048 tile to win.","Game ends when no moves are possible."],categories:["puzzle"]},sudoku:{id:"sudoku",title:"Sudoku",description:"Fill the 9x9 grid with numbers 1-9 with no repeats in rows or columns!",instructions:["Tap a cell and select a number to fill it.","Each row must contain numbers 1-9 without repeats.","Each column must also have no repeated numbers.","Each 3x3 box must have unique numbers 1-9.","Use logic to eliminate possibilities and solve."],categories:["brain"]},"snake-3d":{id:"snake-3d",title:"Snake 3D",description:"Eat eggs to grow longer and avoid hitting the walls - classic snake game!",instructions:["Swipe to change the snake's direction.","Eat eggs to grow longer and score points.","Avoid hitting the walls or your own tail.","The snake moves faster as it grows.","Survive as long as possible for a high score."],categories:["arcade"]},"perfect-circle":{id:"perfect-circle",title:"Perfect Circle",description:"Draw the most perfect circle you can on screen - test your hand precision!",instructions:["Draw a circle on the screen with your finger.","The closer to a perfect circle, the higher the score.","Keep a steady hand and consistent speed.","Try to connect the start and end points.","Challenge yourself to beat your best score."],categories:["casual"]},"fruit-merger":{id:"fruit-merger",title:"Fruit Merger",description:"Drop and merge fruits to create bigger ones - reach the watermelon!",instructions:["Tap to drop a fruit into the container.","Two identical fruits merge into a larger one.","Keep merging to create bigger fruits.","Don't let fruits overflow past the top line.","Aim for the highest score by merging strategically."],categories:["casual","puzzle"]},"find-different-number":{id:"find-different-number",title:"Find Different Number",description:"Find the 10 different numbers hidden in a 10×10 grid before time runs out!",instructions:["A 10×10 grid of numbers is shown, 10 are different from the rest.","Find and tap all 10 different numbers to advance to the next round.","Each correct tap earns points. Finding all 10 adds bonus time.","Numbers get trickier at higher rounds.","Wrong taps lose 3 seconds — be accurate! You have 1 minute."],categories:["education"]},bluk:{id:"bluk",title:"Bluk",description:"Sling your block from pillar to pillar - a skill-based physics jumping adventure!",instructions:["Drag anywhere to aim - a dotted line predicts your jump arc.","Release to launch your block toward the next pillar.","Land safely on a pillar to score a point.","Hit the glowing sweet spot for bonus points and combos.","Miss the pillar and fall - the game is over!"],categories:["arcade","casual"]},"chameleon-run":{id:"chameleon-run",title:"Chameleon Run",description:"Jump, switch colors and chase star streaks across a floating 3D sky course!",instructions:["Run a fresh 500 m course at a steady pace. Cross the finish line to win.","Swipe up to jump. Swipe up again in the air to double-jump.","Tap anywhere to change between pink and yellow.","Match your color to the platform: yellow has stripes, pink has dots. White platforms are always safe.","You have three lives. A wrong color or missed jump costs a life, followed by a brief recovery period.","Collect consecutive stars for a bonus multiplier up to 5x. Missing a star or taking a hit resets your streak."],categories:["arcade","action"]},"mob-control":{id:"mob-control",title:"Mob Control",description:"Command your mob through multiplier gates and overwhelm the enemy base to win!",instructions:["Drag left and right to aim your cannon.","Your cannon automatically launches individual blue soldiers.","Chain blue addition and purple multiplier gates to grow your army. Red division gates shrink it.","Blue and red soldiers cancel each other out. Intercept enemies before they breach your shield.","The gold meter on your cannon charges a giant champion that launches automatically.","Speed pads accelerate your troops; numbered barricades consume soldiers until broken.","Each level is one battle. Capture all three towers and defeat any boss to clear it and unlock the next level."],categories:["arcade","action","strategy"]},"paper-io":{id:"paper-io",title:"Paper IO",description:"Claim territory, outmaneuver rivals and conquer the board in this classic io battle!",instructions:["Swipe or drag to steer your block around the board.","Leave your safe zone to draw a trail, then return to fill the area.","Every loop you close is captured as your territory.","Cut rivals by crossing their trail before they close it.","Don't let anyone hit your trail - protect it and grow the biggest area!"],categories:["arcade","action","strategy"]},"crossy-road":{id:"crossy-road",title:"Crossy Road",description:"Hop across busy roads, rivers and railways - how far can you go without getting squished?",instructions:["Tap to hop forward one lane.","Swipe left, right or down to move sideways or back.","Dodge cars and trains on the roads.","Ride floating logs to cross the rivers - don't fall in!","Keep moving forward - don't let the screen leave you behind!"],categories:["arcade","action","casual"]},tangram:{id:"tangram",title:"Tangram",description:"Arrange the seven classic tans to perfectly fill the target shape - a timeless dissection puzzle!",instructions:["Drag each colored tan onto the shaded silhouette.","Tap a piece to rotate it by 45 degrees.","Match a piece to its outline to lock it in place.","Fill the whole silhouette to solve the puzzle.","Beat the clock and earn bonus points for time left."],categories:["puzzle","brain"]},checkers:{id:"checkers",title:"Checkers",description:"Outsmart the robot in the classic game of Checkers - capture all its pieces to win!",instructions:["Tap one of your red pieces to select it.","Tap a highlighted square to move diagonally.","Jump over the robot's pieces to capture them.","Chain multiple jumps in a single turn when you can.","Reach the far row to crown a King that moves both ways."],categories:["strategy","brain"]},"memory-match":{id:"memory-match",title:"Memory Match",description:"Flip the cards two at a time and match every pair before the clock runs out!",instructions:["Tap a card to flip it face up.","Flip a second card to find its match.","Matching pairs stay revealed.","Mismatched cards flip back over - remember where they are!","Clear the whole board before time runs out."],categories:["brain","puzzle","education"]},"falling-sticks":{id:"falling-sticks",title:"Falling Sticks",description:"Colorful sticks rain down from the sky - tap them before they hit the floor!",instructions:["Sticks fall from the top of the screen.","Tap a stick to catch it and score points.","Let a stick reach the floor and you lose a life.","You have three lives - the game speeds up as you score.","Catch as many as you can for a high score!"],categories:["arcade","action","casual"]},reversi:{id:"reversi",title:"Reversi",description:"Outflank the robot in this classic Othello duel - trap its discs to flip them to your color!",instructions:["You play black and move first.","Place a disc so it traps a line of white discs between your discs.","All trapped discs flip to black.","If you have no valid move, your turn is skipped.","When the board fills up, whoever has more discs wins!"],categories:["strategy","brain","puzzle"]}},Jr=Object.values(s)});var Po={};n(Po,{GameSettingsModal:()=>wS});import u0e from"react";import{jsx as ss,jsxs as ul,Fragment as aEt}from"react/jsx-runtime";var Aa,Z4,rEt=(rn)=>{return},nEt=({gameId:rn,settings:nn,onSettingsChange:an=rEt})=>{let sn=Tf(),ln=d0e(sn),cn=`${Vue(rn)} Settings`,un=s[rn],{isVisible:dn,enableSounds:pn,enableHaptics:mn}=nn,fn=Aa.useWindowDimensions(),hn=Aa.Platform.OS==="web",bn=Math.max(0,Math.min(360,fn.width-32)),yn=Math.max(16,Math.min(nn.anchor?.top??80,fn.height-160)),En=Math.max(16,fn.width-bn-16),Sn=Math.min(En,Math.max(16,nn.anchor?.right??16)),_n=Io(rn),vn=nn.theme==="dark",Tn=(Cn)=>{an({...nn,enableSounds:Cn})},Rn=(Cn)=>{an({...nn,enableHaptics:Cn})},An=(Cn)=>{an({...nn,theme:Cn?"dark":"light"})},Mn=()=>{an({...nn,isVisible:!1})};return ss(Aa.Modal,{visible:dn,transparent:!0,onRequestClose:Mn,children:ul(Aa.View,{style:[ln.overlay,hn&&{backgroundColor:"transparent"}],children:[hn&&ss(Aa.Pressable,{accessibilityRole:"button",accessibilityLabel:"Dismiss game settings",style:Aa.StyleSheet.absoluteFill,onPress:Mn}),ul(Aa.View,{testID:hn?"game-settings-popover":void 0,role:hn?"dialog":void 0,accessibilityLabel:hn?cn:void 0,style:[ln.container,hn&&{position:"absolute",top:yn,right:Sn,width:bn,maxHeight:Math.max(0,fn.height-yn-16),backgroundColor:sn.SURFACE,borderRadius:16,borderWidth:1,borderColor:sn.SURFACE,padding:20,boxShadow:"0 12px 40px #0004"}],children:[!hn&&ss($4,{}),ul(Aa.View,{style:[ln.header,hn&&ln.popoverHeader],children:[ss(Aa.Text,{accessibilityRole:"header",style:[ln.headerTitle,hn&&ln.popoverHeaderTitle],children:hn?"Settings":cn}),ss(Aa.TouchableOpacity,{accessibilityRole:"button",accessibilityLabel:"Close settings",onPress:Mn,style:[ln.closeButton,hn&&ln.popoverCloseButton],children:ss(Aa.Text,{style:[ln.closeButtonText,hn&&ln.popoverCloseButtonText],children:"✕"})})]}),ul(Aa.ScrollView,{style:[ln.scrollView,hn&&ln.popoverScrollView],contentContainerStyle:ln.scrollContent,showsVerticalScrollIndicator:!1,children:[ul(Aa.View,{style:[ln.section,hn&&ln.popoverSection],children:[ul(Aa.View,{style:ln.toggleContainer,children:[ss(Aa.View,{style:ln.toggleLeft,children:ul(Aa.View,{children:[ss(Aa.Text,{style:[ln.toggleTitle,hn&&ln.popoverText],children:"Sound Effects"}),ss(Aa.Text,{style:[ln.toggleSubtitle,hn&&ln.popoverText],children:"Play sounds during gameplay"})]})}),ss(Z4,{label:"Sound Effects",value:pn,onValueChange:Tn})]}),ss(Aa.View,{style:[ln.divider,hn&&ln.popoverDivider]}),ul(Aa.View,{style:ln.toggleContainer,children:[ss(Aa.View,{style:ln.toggleLeft,children:ul(Aa.View,{children:[ss(Aa.Text,{style:[ln.toggleTitle,hn&&ln.popoverText],children:"Haptic Feedback"}),ss(Aa.Text,{style:[ln.toggleSubtitle,hn&&ln.popoverText],children:"Vibration on interactions"})]})}),ss(Z4,{label:"Haptic Feedback",value:mn,onValueChange:Rn})]}),_n&&ul(aEt,{children:[ss(Aa.View,{style:[ln.divider,hn&&ln.popoverDivider]}),ul(Aa.View,{style:ln.toggleContainer,children:[ss(Aa.View,{style:ln.toggleLeft,children:ul(Aa.View,{children:[ss(Aa.Text,{style:[ln.toggleTitle,hn&&ln.popoverText],children:"Dark Mode"}),ss(Aa.Text,{style:[ln.toggleSubtitle,hn&&ln.popoverText],children:"Play with the dark theme"})]})}),ss(Z4,{label:"Dark Mode",value:vn,onValueChange:An})]})]})]}),!hn&&un&&ul(Aa.View,{style:[ln.section],children:[ss(Aa.View,{style:ln.sectionLabelRow,children:ss(Aa.Text,{style:ln.sectionLabel,children:"How to Play"})}),ss(Aa.Text,{style:ln.gameDescription,children:un.description}),un.instructions.map((Cn,Ln)=>ul(Aa.View,{style:ln.instructionRow,children:[ss(Aa.View,{style:ln.instructionBadge,children:ss(Aa.Text,{style:ln.instructionNumber,children:Ln+1})}),ss(Aa.Text,{style:ln.instructionText,children:Cn})]},Ln))]})]})]})]})})},wS,d0e;var it=e(()=>{c0e();Uu();v();_();a();F();Aa=T(S()),Z4=u0e.memo(({label:rn,value:nn,onValueChange:an})=>{let sn=Tf(),ln=d0e(sn);return ss(Aa.Pressable,{accessibilityRole:"switch",accessibilityLabel:rn,accessibilityState:{checked:nn},"aria-checked":nn,onPress:()=>an(!nn),children:ss(Aa.View,{style:[ln.switchTrack,{backgroundColor:nn?sn.SWITCH_TRACK_ON:sn.SWITCH_TRACK_OFF}],children:ss(Aa.View,{style:[ln.switchThumb,{left:nn?25:3}]})})})}),wS=u0e.memo(nEt);wS.displayName="GameSettingsModal";d0e=q4((rn)=>({overlay:{flex:1,backgroundColor:rn.OVERLAY,justifyContent:"center",alignItems:"center"},container:{width:"95%",maxWidth:c?500:360,maxHeight:"70%",borderRadius:10,overflow:"hidden",backgroundColor:rn.BACKGROUND},header:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",padding:10,paddingHorizontal:16,backgroundColor:rn.SURFACE,borderBottomWidth:1,borderBottomColor:rn.DIVIDER},headerTitle:{fontSize:20,fontWeight:"semibold",color:rn.TEXT},closeButton:{padding:8},closeButtonText:{fontSize:18,fontWeight:"semibold",color:rn.TEXT},popoverHeader:{padding:0,paddingHorizontal:0,marginBottom:16,backgroundColor:"transparent",borderBottomWidth:0},popoverText:{fontFamily:"inherit",color:rn.TEXT},popoverHeaderTitle:{fontFamily:"inherit",fontSize:16,fontWeight:"700"},popoverCloseButton:{width:40,height:40,padding:0,alignItems:"center",justifyContent:"center",borderRadius:20,borderWidth:1,borderColor:rn.SURFACE,backgroundColor:rn.SURFACE},popoverCloseButtonText:{fontSize:18,fontWeight:"400",lineHeight:18},popoverScrollView:{padding:0,paddingBottom:0},popoverSection:{padding:0,marginBottom:0,borderWidth:0,backgroundColor:"transparent"},popoverDivider:{backgroundColor:rn.SURFACE},scrollView:{flexShrink:1,padding:10,paddingBottom:0},scrollContent:{paddingBottom:0},section:{borderRadius:12,padding:16,marginBottom:10,backgroundColor:rn.SURFACE,borderWidth:rn.BORDER_WIDTH,borderColor:rn.BORDER},toggleContainer:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},toggleLeft:{flexDirection:"row",alignItems:"center",flex:1,gap:12,marginRight:12},toggleTitle:{fontSize:15,fontWeight:"600",color:rn.TEXT},toggleSubtitle:{fontSize:13,marginTop:2,color:rn.TEXT_MUTED},divider:{height:1,backgroundColor:rn.DIVIDER,marginVertical:12},sectionLabelRow:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},sectionLabel:{fontSize:15,fontWeight:"600",color:rn.TEXT},gameDescription:{fontSize:13,color:rn.TEXT,lineHeight:19,marginBottom:12},instructionRow:{flexDirection:"row",alignItems:"flex-start",marginBottom:8},instructionBadge:{width:22,height:22,borderRadius:11,backgroundColor:rn.CHIP,alignItems:"center",justifyContent:"center",marginRight:10,marginTop:1},instructionNumber:{fontSize:12,fontWeight:"700",color:rn.TEXT},instructionText:{fontSize:14,color:rn.TEXT,flex:1,lineHeight:20},switchTrack:{width:52,height:30,borderRadius:15,justifyContent:"center"},switchThumb:{width:24,height:24,borderRadius:12,position:"absolute",backgroundColor:rn.SWITCH_THUMB,shadowColor:"#000",shadowOffset:{width:0,height:2},shadowOpacity:0.25,shadowRadius:4,elevation:4}}))});var p0e=e(()=>{it();F()});var m0e="M134.7 33.8Q138.7 32.8 256.7 32.3Q374.7 31.8 378.7 33.8Q391.7 38.8 396.7 51.8Q399.7 57.8 399.7 68.8V79.8H434.7L469.7 80.8L472.7 82.8Q477.7 86.8 479.7 94.8Q482.7 112.8 476.7 143.8Q468.7 178.8 450.2 203.3Q431.7 227.8 406.7 235.8L398.7 238.8L396.7 246.8Q384.7 293.8 329.7 327.8Q303.7 343.8 277.7 348.8L272.7 349.8L271.7 398.8V447.8H305.7Q338.7 447.8 342.7 449.8Q348.7 452.8 350.7 459.8Q352.7 465.8 349.7 471.8Q346.7 477.8 340.7 478.8Q337.7 479.8 255.7 479.8Q173.7 479.8 170.7 478.8Q164.7 477.8 161.7 471.8Q158.7 465.8 160.7 459.8Q162.7 452.8 168.7 449.8Q172.7 447.8 205.7 447.8H239.7V398.8V350.8L236.7 349.8Q192.7 339.8 158.2 310.8Q123.7 281.8 114.7 245.8L112.7 238.8L104.7 235.8Q67.7 223.8 46.7 179.8Q33.7 151.8 31.7 116.8Q30.7 98.8 32.2 92.8Q33.7 86.8 38.7 82.8L41.7 80.8L76.7 79.8H111.7V68.8Q111.7 57.8 113.7 52.8Q119.7 37.8 134.7 33.8ZM367.7 146.8V63.8H255.7H143.7V149.8Q144.7 221.8 145.2 231.8Q145.7 241.8 150.7 252.8Q164.7 280.8 198.7 300.8Q230.7 319.8 255.7 319.8Q283.7 319.8 317.7 297.8Q352.7 274.8 363.7 245.8Q366.7 237.8 367.2 225.3Q367.7 212.8 367.7 146.8ZM111.7 157.8V111.8H87.7H63.7V118.8Q66.7 159.8 89.7 187.8Q97.7 197.8 107.7 202.8L111.7 204.8ZM447.7 118.8Q447.7 118.8 447.7 118.8V111.8H423.7H399.7V157.8V204.8L403.7 202.8Q413.7 197.8 421.7 187.8Q444.7 159.8 447.7 118.8Z",f0e="M376.2 48.8Q406.2 44.8 427.2 64.8Q439.2 75.8 444.2 87.8Q453.2 113.8 441.7 138.8Q430.2 163.8 404.2 172.8Q397.2 174.8 384.2 174.8Q371.2 174.8 364.2 172.8Q353.2 168.8 343.2 160.8L338.2 156.8L264.2 197.8L190.2 238.8L191.2 243.8Q192.2 247.8 192.2 255.8Q192.2 263.8 191.2 267.8L190.2 272.8L264.2 313.8L337.2 355.8L343.2 350.8Q358.2 338.8 376.7 336.3Q395.2 333.8 412.2 342.8Q446.2 358.8 448.2 395.8Q449.2 425.8 428.2 445.8Q417.2 455.8 404.2 460.8Q396.2 463.8 384.2 463.8Q372.2 463.8 364.2 460.8Q356.2 457.8 351.2 454.8Q332.2 442.8 324.2 423.8Q319.2 410.8 320.2 395.8Q321.2 387.8 321.2 385.8L316.2 380.8Q309.2 375.8 251.2 342.8Q180.2 302.8 177.2 301.8L174.2 299.8L169.2 304.8Q159.2 312.8 146.2 317.8Q140.2 319.8 128.2 319.8Q116.2 319.8 110.2 317.8Q77.2 306.8 66.2 273.8Q61.2 255.8 66.2 237.8Q77.2 204.8 110.2 194.8Q116.2 192.8 128.2 192.8Q140.2 192.8 146.2 194.8Q159.2 198.8 169.2 206.8Q174.2 211.8 176.7 210.3Q179.2 208.8 250.2 168.8Q321.2 128.8 321.2 126.3Q321.2 123.8 320.2 115.8Q318.2 85.8 341.2 64.8Q356.2 50.8 376.2 48.8ZM398.2 82.8Q392.2 80.8 385.2 80.3Q378.2 79.8 375.2 80.8Q362.2 85.8 355.2 98.8Q353.2 102.8 353.2 111.8Q353.2 120.8 355.2 124.8Q360.2 134.8 369.7 139.8Q379.2 144.8 389.2 142.8Q406.2 139.8 413.2 124.8Q415.2 120.8 415.2 111.8Q415.2 102.8 413.2 98.8Q408.2 87.8 398.2 82.8ZM142.2 226.8Q137.2 224.8 129.2 224.3Q121.2 223.8 118.2 225.8Q105.2 229.8 99.2 242.8Q97.2 246.8 97.2 255.8Q97.2 264.8 99.2 269.8Q110.2 290.8 133.2 287.8Q149.2 284.8 157.2 269.8Q159.2 264.8 159.2 255.8Q159.2 246.8 157.2 242.8Q152.2 231.8 142.2 226.8ZM389.2 368.8Q389.2 368.8 389.2 368.8Q384.2 367.8 383.7 367.8Q383.2 367.8 378.2 368.8Q362.2 370.8 355.2 386.8Q353.2 390.8 353.2 399.8Q353.2 408.8 355.2 412.8Q360.2 423.8 370.2 428.8Q376.2 430.8 384.2 430.8Q392.2 430.8 398.2 428.8Q408.2 423.8 413.2 412.8Q415.2 408.8 415.2 399.8Q415.2 390.8 413.2 386.8Q408.2 376.8 398.2 371.8Q394.2 369.8 389.2 368.8Z",h0e="M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z";var b0e=()=>{};function y0e(rn,nn,an){let sn=rn.trim().split(/\s+/).filter(Boolean),ln=sn.slice(0,4).join(" ")+(sn.length>4?"…":"");if(!ln||nn<=0)return"";if(an(ln)<=nn)return ln;if(an("…")>nn)return"";let cn=Array.from(ln.replace(/…$/,"")),un=0,dn=cn.length;while(un<dn){let pn=Math.ceil((un+dn)/2);if(an(cn.slice(0,pn).join("").trimEnd()+"…")<=nn)un=pn;else dn=pn-1}return cn.slice(0,un).join("").trimEnd()+"…"}var E0e=()=>{};var lt={};n(lt,{EngineHud:()=>jA,getSceneInputInsets:()=>bc,getScoreBoardTop:()=>la,livesColumn:()=>ys,loadHudFonts:()=>mb,scoreColumn:()=>Qn,textColumn:()=>ma,timerColumn:()=>ta,warmAssets:()=>IEt});import{extrude as tD,loadFont as sEt,measureText as iEt,Path as oD,World as lEt}from"@nayan-ui/engine";function mb(){return O0e??=sEt(new URL("./assets/e8cbc2b88bc4-Inter-SemiBold.ttf",import.meta.url).href,{depth:0,chars:LEt}).then((rn)=>K0={semi:rn,regular:rn}),O0e}function KA(rn,nn,an=0,sn="semi"){let ln=K0?.[sn];if(!ln)return 0;return iEt(ln,rn,{letterSpacing:an/nn})*nn}function P0e(rn,nn,an,sn){let ln=[],cn="";for(let un of rn.split(/\s+/)){let dn=cn?`${cn} ${un}`:un;if(cn&&KA(dn,nn,0,sn)>an)ln.push(cn),cn=un;else cn=dn}if(cn)ln.push(cn);return ln}function Gl(rn,nn,an,sn,ln,cn,un,dn=0,pn="semi",mn=!1){return rn.spawn({text:an,font:K0[pn],parent:nn,position:[sn,ln,2],scale:cn,color:un,letterSpacing:dn/cn,tabular:mn,pickable:!1})}class jA{world;theme;size={width:0,height:0,offset:0};columns=[];playing=!1;subtext="Begin playing!";actions={onStart:()=>{},onStop:()=>{}};board=null;controls=null;values=[];buttons=[];pressed=null;over=null;overReserve=0;disposed=!1;feedback=null;waiting=null;layers=new Map;choices=[];choiceRoot=null;choiceButtons=[];choicePage=0;get ready(){return!this.disposed&&!!K0&&this.size.width>0}get viewport(){return this.size}layer(rn){let nn=this.layers.get(rn);if(nn===void 0)nn=this.world.spawn({mesh:"none",position:[0,0,5],pickable:!1}),this.layers.set(rn,nn);return nn}clearLayer(rn){let nn=this.layers.get(rn);if(nn!==void 0)this.world.despawn(nn);this.layers.delete(rn)}text(rn,nn,an,sn,ln,cn){return Gl(this.world,rn,nn,an,sn,ln,cn)}rectangle(rn,nn,an,sn,ln,cn,un=0){return this.world.spawn({mesh:YA(1,1,0),parent:rn,position:[nn,an,un],scale:[sn,ln,1],color:cn,pickable:!1})}setChoices(rn){let nn=rn.length!==this.choices.length||rn.some((an,sn)=>{let ln=this.choices[sn];return an.id!==ln?.id||an.label!==ln.label||an.selected!==ln.selected});if(this.choices=rn,nn)this.buildChoices()}buildChoices(){if(this.choiceRoot!==null)this.world.despawn(this.choiceRoot);if(this.choiceRoot=null,this.choiceButtons=[],!this.ready||!this.choices.length)return;let{width:rn,height:nn}=this.size,an=3,sn=Math.ceil(this.choices.length/an);this.choicePage=Math.min(this.choicePage,sn-1);let ln=this.world.spawn({mesh:"none",position:[0,0,6],pickable:!1});this.choiceRoot=ln;let cn=Math.min(rn-24,500),un=6,dn=(cn-un*4)/5,pn=nn-bc().bottom-22,mn=(fn,hn,bn,yn=!1)=>{let En=(rn-cn)/2+dn/2+hn*(dn+un),Sn=this.panel(ln,En,pn,dn,36,12,yn?this.theme.SOLID:this.theme.SURFACE);Gl(this.world,Sn,fn,0,0,Math.min(12,(dn-8)/Math.max(1,fn.length)/0.65),xn(yn?this.theme.ON_SOLID:this.theme.TEXT)),this.choiceButtons.push({id:"choice",x:En-dn/2,y:pn-18,w:dn,h:36,root:Sn,action:bn})};mn("<",0,()=>{this.choicePage=(this.choicePage+sn-1)%sn,this.buildChoices()}),this.choices.slice(this.choicePage*an,(this.choicePage+1)*an).forEach((fn,hn)=>mn(fn.label,hn+1,()=>this.choices.find((bn)=>bn.id===fn.id)?.onPress(),fn.selected)),mn(">",4,()=>{this.choicePage=(this.choicePage+1)%sn,this.buildChoices()})}constructor(rn,nn=cEt){this.world=new lEt(nn),this.theme=rn,mb().then(()=>{if(this.disposed)return;if(this.buildBoard(),this.buildControls(),this.buildChoices(),this.waiting)this.buildOver(this.waiting,!0);this.waiting=null}).catch((an)=>console.error(`EngineHud: ${an instanceof Error?an.message:String(an)}`))}setActions(rn){let nn=!!rn.onShare!==!!this.actions.onShare||!!rn.onShowLeaderboard!==!!this.actions.onShowLeaderboard;if(this.actions=rn,nn)this.buildControls()}layout(rn,nn,an){if(rn===this.size.width&&nn===this.size.height&&an===this.size.offset)return;if(this.size={width:rn,height:nn,offset:an},this.layoutFeedback(),this.buildBoard(),this.buildControls(),this.buildChoices(),this.over)this.buildOver(this.over.card,!1)}setTheme(rn){if(rn===this.theme)return;if(this.theme=rn,this.clearFeedback(),this.buildBoard(),this.buildControls(),this.buildChoices(),this.over)this.buildOver(this.over.card,!1)}setColumns(rn){let nn=rn.length===this.columns.length&&rn.every((an,sn)=>an.label===this.columns[sn].label);if(this.columns=rn,!nn||this.values.length!==rn.length)return this.buildBoard();rn.forEach((an,sn)=>{let ln=this.values[sn],cn=g0e(an);if(ln.key===cn||this.disposed||this.board===null)return;this.world.despawn(ln.entity),ln.entity=this.spawnValue(this.board,an,ln.x,ln.y),ln.key=cn})}setPlaying(rn,nn=this.subtext){if(rn===this.playing&&nn===this.subtext)return;this.playing=rn,this.subtext=nn,this.buildControls()}update(rn,nn){if(this.disposed)return;if(nn)this.showFeedback(nn);let an=this.over;if(an&&an.elapsed<A0e+M0e){an.elapsed+=rn;let sn=Math.min(1,Math.max(0,(an.elapsed-A0e)/M0e));this.setOverScore(Math.round(an.card.score*(1-(1-sn)**3)))}this.world.update(rn)}showFeedback(rn){if(!this.size.width||!K0)return;if(!this.over&&!this.waiting&&(rn.flash||rn.message)){let nn=this.feedback??={root:this.world.spawn({mesh:"none",position:[0,0,T0e-5],pickable:!1}),flash:null,message:null,text:""};if(rn.flash){nn.flash??=this.world.spawn({mesh:YA(1,1,0),parent:nn.root,pickable:!1});let an=xn(this.theme.DANGER,0.6);this.world.stopAnimation(nn.flash),this.world.set(nn.flash,{color:an}),this.world.animate(nn.flash,{color:[an[0],an[1],an[2],0]},{duration:0.4})}if(rn.message){if(nn.text!==rn.message&&nn.message!==null)this.world.despawn(nn.message),nn.message=null;let an=xn(this.theme.SCORE_HIGHLIGHT);nn.text=rn.message,nn.message??=Gl(this.world,nn.root,nn.text,0,0,30,an),this.world.stopAnimation(nn.message),this.world.set(nn.message,{color:an}),this.world.animate(nn.message,{color:[an[0],an[1],an[2],0]},{duration:0.9})}this.layoutFeedback()}rn.flash=!1,rn.message=void 0}layoutFeedback(){let rn=this.feedback;if(!rn)return;let{width:nn,height:an,offset:sn}=this.size;if(rn.flash!==null)this.world.set(rn.flash,{position:[nn/2,-an/2,0],scale:[nn,an,1]});if(rn.message!==null)this.world.set(rn.message,{position:[nn/2,-(la(sn)+pb+14+15),2]})}clearFeedback(){if(this.feedback&&!this.disposed)this.world.despawn(this.feedback.root);this.feedback=null}showGameOver(rn){this.clearFeedback();let nn=this.over;if(nn&&nn.card.title===rn.title&&nn.card.message===rn.message&&nn.card.score===rn.score&&!!nn.card.onShare===!!rn.onShare){nn.card=rn;return}if(!K0)this.waiting=rn;else this.buildOver(rn,!0)}hideGameOver(){if(this.waiting=null,!this.over)return;if(!this.disposed)this.world.despawn(this.over.root);if(this.pressed&&this.over.buttons.includes(this.pressed))this.pressed=null;this.over=null}get gameOverBanner(){return this.over?{top:this.over.bannerTop,width:this.over.bannerWidth}:null}setGameOverReserve(rn){if(Math.abs(rn-this.overReserve)<1)return;if(this.overReserve=rn,this.over)this.buildOver(this.over.card,!1)}touch=(rn,nn,an)=>{if(rn==="start"){let un=(this.over?this.over.buttons:[...this.buttons,...this.choiceButtons]).find((dn)=>nn>=dn.x&&nn<=dn.x+dn.w&&an>=dn.y&&an<=dn.y+dn.h);if(!un)return this.over!==null;return this.pressed=un,this.world.animate(un.root,{scale:bEt},{duration:0.08}),!0}if(rn==="move"||!this.pressed)return!0;let sn=this.pressed;this.pressed=null;let ln=nn>=sn.x-10&&nn<=sn.x+sn.w+10&&an>=sn.y-10&&an<=sn.y+sn.h+10;if(this.release(sn),rn==="end"&&ln)if(sn.action)sn.action();else this.fire(sn.id);return!0};dispose(){if(this.disposed)return;this.disposed=!0,this.world.dispose()}release(rn){if(rn.id==="main"&&!this.playing&&!rn.action)this.pulse(rn.root);else this.world.animate(rn.root,{scale:1},{duration:0.12})}pulse(rn){this.world.set(rn,{scale:1}),this.world.animate(rn,{scale:hEt},{duration:1,repeat:"forever",yoyo:!0})}fire(rn){if(rn==="main"){if(this.playing)this.clearFeedback();(this.playing?this.actions.onStop:this.actions.onStart)()}else if(rn==="share")this.actions.onShare?.();else this.actions.onShowLeaderboard?.()}panel(rn,nn,an,sn,ln,cn,un=this.theme.SURFACE,dn=this.theme.BORDER){let pn=this.theme,mn=this.world.spawn({mesh:"none",...rn!==null&&{parent:rn},position:[nn,-an,0],pickable:!1}),fn=pn.BORDER_WIDTH??0;if(fn>0)this.world.spawn({mesh:CEt(sn,ln,cn,fn),parent:mn,position:[0,0,0.5],color:xn(dn),pickable:!1});return this.world.spawn({mesh:YA(sn-fn*2,ln-fn*2,cn-fn),parent:mn,position:[0,0,0],color:xn(un),pickable:!1}),mn}setOverScore(rn){let nn=this.over;if(!nn)return;let an=(nn.card.formatter??((sn)=>sn.toLocaleString()))(rn);if(an===nn.scoreText&&nn.scoreEntity!==null)return;if(nn.scoreEntity!==null)this.world.despawn(nn.scoreEntity);nn.scoreText=an,nn.scoreEntity=Gl(this.world,nn.scoreParent,an,0,nn.scoreY,SEt,xn(this.theme.SCORE_HIGHLIGHT),0,"semi",!0)}buildOver(rn,nn){let an=this.over&&!nn?this.over.elapsed:0;this.hideGameOver();let{width:sn,height:ln}=this.size;if(this.disposed||!sn||!K0)return;let cn=this.theme,un=Math.min(C().width,sn-30),dn=un-zA*2,pn=rn.message?P0e(rn.message,x0e,dn,"regular"):[],mn=rn.onShare?P0e(TEt,R0e,dn+30,"regular"):[],fn=34,hn=104,bn=zA+qA+8+fn+(pn.length?4+pn.length*20+16:20)+hn+24+(mn.length?mn.length*25+5+12:0)+db+(this.overReserve>0?12+this.overReserve:0)+zA,yn=Math.max(10,(ln-bn)/2),En=sn/2,Sn=this.world.spawn({mesh:"none",position:[0,0,T0e],pickable:!1}),_n=this.world.spawn({mesh:YA(sn,ln,0),parent:Sn,position:[sn/2,-ln/2,0],color:nn?xn(cn.OVERLAY,0):xn(cn.OVERLAY),pickable:!1}),vn=this.world.spawn({mesh:"none",parent:Sn,position:[En,-(yn+bn/2),2],pickable:!1});this.world.spawn({mesh:X4(cn,un,bn,16),parent:vn,position:[-Math.round(un)/2,Math.round(bn)/2,0],color:[1,1,1,1],pickable:!1});let Tn=(Ia)=>bn/2-Ia,Rn=(Ia)=>this.world.spawn({mesh:"none",parent:vn,position:[0,Tn(Ia),1],pickable:!1}),An=zA,Mn=Rn(An+qA/2);if(this.world.spawn({mesh:J4(),parent:Mn,position:[0,0,0],scale:qA*L0e,color:[1,1,1,1],pickable:!1}),An+=qA+8,Gl(this.world,Rn(An+fn/2),rn.title,0,0,yEt,xn(cn.TEXT),1),An+=fn,pn.length){An+=4;for(let Ia of pn)Gl(this.world,Rn(An+10),Ia,0,0,x0e,xn(cn.TEXT_SUBTLE),0,"regular"),An+=20;An+=16}else An+=20;let Cn=Tn(An+hn/2),Ln=Rn(An+hn/2),On=Math.max(200,Math.min(dn,260)),Dn=this.panel(Ln,0,0,On,hn,16);Gl(this.world,Dn,rn.scoreLabel.toUpperCase(),0,hn/2-16-8,EEt,xn(cn.TEXT_SUBTLE),1,"semi");let Nn=-hn/2+16+26;An+=hn+24;let Wn=Tn(An),Fn=Rn(An),qn=0;for(let Ia of mn)Gl(this.world,Fn,Ia,0,-(qn+12.5),R0e,xn(cn.TEXT_SUBTLE),0,"regular"),qn+=25;if(mn.length)qn+=17;let Kn=[],ea=qn+db/2,Yn=-dn/2,ia=rn.onShare?(dn-10)*2/5:0,Xn=rn.onShare?dn-10-ia:dn,La=(Ia,Va,ls,Bs,ei,Ms,rs,Ps,za,li,xi)=>{let Ri=this.panel(Fn,Ia+Va/2,ea,Va,db,26,ls,Bs),Ga=Math.min(Ms,Ms*(Va-44)/Math.max(1,KA(ei,Ms,0.5,rs))),qs=KA(ei,Ga,0.5,rs),fi=-(qs+26)/2+9;this.world.spawn({mesh:za,parent:Ri,position:[fi,0,2],scale:18*li,color:Ps,pickable:!1}),Gl(this.world,Ri,ei,fi+9+8+qs/2,0,Ga,Ps,0.5,rs),Kn.push({id:"main",x:En+Ia,y:yn+An+ea-db/2,w:Va,h:db,root:Ri,action:xi})};if(rn.onShare)La(Yn,ia,cn.SURFACE,cn.BORDER,"Share",vEt,"semi",xn(cn.TEXT),eD(),I0e,()=>this.over?.card.onShare?.());if(La(Yn+(rn.onShare?ia+10:0),Xn,cn.SOLID,cn.SOLID,rn.buttonText,_Et,"semi",xn(cn.ON_SOLID),N0e(),wEt,()=>this.over?.card.onPlayAgain()),qn+=db,this.over={card:rn,root:Sn,scoreParent:Dn,scoreY:Nn,scoreText:"",scoreEntity:null,elapsed:an,buttons:Kn,bannerTop:yn+An+qn+12,bannerWidth:dn},this.setOverScore(nn?0:rn.score),!nn)return;this.world.animate(_n,{color:xn(cn.OVERLAY)},{duration:0.16}),this.world.set(vn,{scale:0.85}),this.world.animate(vn,{scale:1},{spring:"bouncy"}),this.world.set(Mn,{scale:0}),this.world.animate(Mn,[{scale:1.18},{scale:1}],{delay:0.09,duration:0.35,easing:"back"});for(let[Ia,Va,ls]of[[Ln,Cn,0.2],[Fn,Wn,0.33]])this.world.set(Ia,{position:[0,Va-18,1]}),this.world.animate(Ia,{position:[0,Va,1]},{delay:ls,spring:!0})}buildBoard(){if(this.disposed)return;if(this.board!==null)this.world.despawn(this.board);this.board=null,this.values=[];let{width:rn,offset:nn}=this.size;if(!rn||!K0)return;let an=$n(rn),sn=la(nn),ln=this.panel(null,rn/2,sn+pb/2,an,pb,uEt);this.board=ln;let cn=this.columns.length,un=pb/2-Q4-6,dn=-pb/2+Q4+12,pn=xn(this.theme.LABEL);this.columns.forEach((mn,fn)=>{let hn=-an/2+an*(fn+0.5)/cn;Gl(this.world,ln,mn.label,hn,un,dEt,mn.color?xn(mn.color):pn,mEt,"semi"),this.values.push({entity:this.spawnValue(ln,mn,hn,dn),key:g0e(mn),x:hn,y:dn})})}activatePrimary(){if(!this.ready)return;if(this.over)this.over.card.onPlayAgain();else this.fire("main")}spawnValue(rn,nn,an,sn){if(!nn.lives)return Gl(this.world,rn,nn.value,an,sn,pEt,xn(nn.valueColor??nn.color??this.theme.TEXT),0,"semi",!0);let{count:ln,max:cn}=nn.lives,un=this.world.spawn({mesh:"none",parent:rn,position:[an,sn,2],pickable:!1}),dn=$n(this.size.width)/this.columns.length-12,pn=Math.min(REt,Math.max(6,(dn-(cn-1)*C0e)/Math.max(1,cn))),mn=pn+C0e;for(let fn=0;fn<cn;fn++){let hn=(fn-(cn-1)/2)*mn;this.world.spawn({mesh:G0e(),parent:un,position:[hn,0,0],scale:pn,color:xn(fn<ln?AEt:MEt),pickable:!1})}return un}buildControls(){if(this.disposed)return;if(this.controls!==null)this.world.despawn(this.controls);this.controls=null,this.buttons=[],this.pressed=null;let{width:rn,height:nn}=this.size;if(!rn||!K0)return;let an=Math.min(C().width,rn),sn=(rn-an)/2+S0e,ln=(rn+an)/2-S0e,cn=nn-5-D0e-LS/2,un=this.world.spawn({mesh:"none",position:[0,0,10],pickable:!1});this.controls=un;let dn=xn(this.theme.TEXT),pn=sn,mn=ln,fn=(Sn,_n,vn,Tn)=>{let Rn=this.panel(un,_n,cn,ou,ou,ou/2);this.world.spawn({mesh:vn,parent:Rn,position:[0,0,2],scale:24*Tn,color:dn,pickable:!1}),this.buttons.push({id:Sn,x:_n-ou/2,y:cn-ou/2,w:ou,h:ou,root:Rn})};if(this.actions.onShowLeaderboard)fn("leaderboard",sn+ou/2,J4(),L0e),pn+=ou+_0e;if(this.actions.onShare)fn("share",ln-ou/2,eD(),I0e),mn-=ou+_0e;let hn=mn-pn,bn=(pn+mn)/2,yn=this.panel(un,bn,cn,hn,LS,30);Gl(this.world,yn,this.playing?"STOP GAME":"START GAME",0,7,fEt,dn,1);let En=y0e(this.playing?"Stop current game":this.subtext,Math.max(0,hn-24),(Sn)=>KA(Sn,v0e,0.5));if(Gl(this.world,yn,En,0,-12,v0e,xn(this.theme.LABEL),0.5,"semi"),this.buttons.push({id:"main",x:pn,y:cn-LS/2,w:hn,h:LS,root:yn}),!this.playing)this.pulse(yn)}}function*IEt(){yield J4,yield eD,yield N0e,yield G0e}var cEt=900,Q4=14,uEt=18,dEt=12,pEt=24,mEt=1.2,pb,D0e=20,S0e=16,_0e=20,LS=60,ou=56,fEt=16,v0e=10,hEt=1.05,bEt=0.95,T0e=40,zA=20,qA=48,yEt=28,x0e=14,EEt=13,SEt=44,R0e=15,_Et=17,vEt=16,db=52,A0e=0.2,M0e=0.9,TEt="Share your goals with your family and friends and challenge them to beat your score!",la=(rn=0)=>rn>0?rn+15:15,bc=(rn=0)=>({top:la(rn)+pb+10,bottom:D0e+LS+10+5}),Qn=(rn,nn="SCORE",an=(sn)=>sn.toLocaleString())=>({label:nn,value:an(rn)}),ta=(rn,nn,an=30,sn="TIMER")=>{let ln=Math.max(0,Math.ceil(rn));return{label:sn,value:E(ln),valueColor:ln<=an?nn.DANGER:void 0}},ys=(rn,nn,an="LIVES")=>({label:an,value:`${rn}/${nn}`,lives:{count:rn,max:nn}}),ma=(rn,nn,an)=>({label:rn,value:String(nn),color:an}),xEt="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z",REt=20,C0e=2,AEt="#E53935",MEt="#2B2B2B",w0e,rD=(rn,nn)=>{let an=w0e.get(rn);if(!an)an=Bn("shared/EngineHud:"+rn,nn),w0e.set(rn,an);return an},YA=(rn,nn,an)=>{let[sn,ln]=[Math.round(rn),Math.round(nn)];return rD(`hud-panel:${sn}:${ln}:${an}`,()=>wn(tD(new oD().addRoundedRect(-sn/2,-ln/2,sn,ln,Math.min(an,sn/2,ln/2)),{depth:0}),{center:!1}))},CEt=(rn,nn,an,sn)=>{let[ln,cn]=[Math.round(rn),Math.round(nn)];return rD(`hud-ring:${ln}:${cn}:${an}:${sn}`,()=>{let un=Math.min(an,ln/2,cn/2),dn=new oD().addRoundedRect(-ln/2,-cn/2,ln,cn,un).addRoundedRect(-ln/2+sn,-cn/2+sn,ln-sn*2,cn-sn*2,Math.max(0,un-sn));return wn(tD(dn,{depth:0,fillRule:"evenodd"}),{center:!1})})},XA=(rn,nn)=>rD(`hud-icon:${rn}`,()=>wn(tD(oD.fromSVG(nn),{depth:0}),{fit:1})),J4=()=>XA("trophy",m0e),eD=()=>XA("share",f0e),N0e=()=>XA("play",h0e),G0e=()=>XA("heart",xEt),L0e=0.875,I0e=0.810546875,wEt=0.6484375,K0=null,O0e=null,LEt="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,:!?'%/+-·×÷…",g0e=(rn)=>`${rn.value}\x00${rn.color??""}\x00${rn.valueColor??""}\x00${rn.lives?`${rn.lives.count}/${rn.lives.max}`:""}`;var o=e(()=>{b0e();a();u();E0e();na();Hn();pb=Q4*2+12+4+24,w0e=new Map});import{createContext as OEt}from"react";var je;var ct=e(()=>{je=OEt(!1)});import{createContext as PEt,useContext as gEt,useLayoutEffect as DEt}from"react";function k0e(rn){let nn=gEt(nD);DEt(()=>(nn?.(rn),()=>nn?.(!1)),[nn,rn])}var nD;var B0e=e(()=>{nD=PEt(void 0)});import{extrude as NEt,measureText as F0e,merge as GEt,Path as sD,World as kEt}from"@nayan-ui/engine";function iD(rn,nn){let an=U0e[rn]??{...BEt,tag:"READY FOR A NEW ROUND",message:"A little playtime is on its way."};return{...an,colours:nn==="light"?an.light:an.dark}}function lD(rn,nn,an=!1){let sn=H0e.get(rn);if(!sn)sn=Bn(`loading:${rn}`,()=>{let ln=NEt(nn(),{depth:0});return wn(an?GEt([{geometry:ln,scale:[1,-1,1]}]):ln,{center:!1})}),H0e.set(rn,sn);return sn}function qEt(rn){let nn=`${rn.sky}:${rn.horizon}:${rn.ground}`,an=W0e.get(nn);if(!an)an=Bn(`loading:gradient:${nn}`,()=>{let sn=[],ln=[];for(let[cn,un]of[rn.sky,rn.horizon,rn.ground].entries()){let[dn,pn,mn]=xn(un);for(let fn of[0,1])sn.push(fn,-cn/2,0,0,0,1,dn,pn,mn,0,0)}for(let cn=0;cn<2;cn++){let un=cn*2;ln.push(un,un+2,un+1,un+1,un+2,un+3)}return wn({vertices:new Float32Array(sn),indices:new Uint32Array(ln)},{center:!1})}),W0e.set(nn,an);return an}function cD(rn,nn,an=0){let sn=Math.max(0.1,Math.min((rn-30)/360,(nn-an-24)/620)),ln=an+Math.max(12,(nn-an-590*sn)/2);return{scale:sn,top:ln,retryBounds:{left:rn/2-90*sn,top:ln+542*sn,width:180*sn,height:46*sn}}}class uD{font;world=new kEt(512);camera={eye:[200,-425,100],target:[200,-425,0],fov:1,ortho:425};look;clearColor;backdrop;content;progress;retryButton;statusText=null;messageText=[];motions=[];status={label:"",error:!1,retry:!1,reducedMotion:!0};disposed=!1;retryBox={left:0,top:0,width:0,height:0};constructor(rn,nn,an){this.font=an;this.look=iD(rn,nn);let sn=this.look.colours;this.clearColor=ws(sn.sky),this.backdrop=this.world.spawn({mesh:qEt(sn),pickable:!1}),this.content=this.world.spawn({mesh:"none",position:[200,-70,5],pickable:!1});for(let un=0;un<7;un++)this.disc(this.content,Math.sin(un*2.4)*175,25+un*75,45+un*13,45+un*13,xn(un%2?sn.accent:sn.second,0.055),-1);this.box(this.content,0,28,230,32,xn(sn.accent,0.14)),this.text(this.content,this.look.tag,0,28,10,sn.accent,210);let ln=this.world.spawn({mesh:"none",parent:this.content,position:[0,-215,4],pickable:!1});this.disc(ln,0,105,245,25,xn("#000000",0.16),-2),this.drawHero(ln),this.motion(ln,{moveBy:[0,7,0]},{duration:1.5,repeat:"forever",yoyo:!0,easing:"easeInOut"},{position:[0,-215,4]});for(let[un,dn]of[-140,140,-112,114].entries()){let pn=this.path(ln,"star",UEt,dn,un%2?-67:-110,un%2?sn.second:sn.accent,0.5+un*0.1);this.motion(pn,{scale:0.85+un*0.12},{duration:0.9+un*0.12,repeat:"forever",yoyo:!0},{scale:0.5+un*0.1})}this.text(this.content,s[rn].title,0,385,30,sn.text,330),this.text(this.content,this.look.message,0,425,13,sn.muted,330),this.progress=this.world.spawn({mesh:"none",parent:this.content,position:[0,-485,5],pickable:!1}),this.box(this.progress,0,0,290,14,xn(sn.accent,0.14));let cn=this.box(this.progress,-108,0,64,10,xn(sn.accent));this.motion(cn,{position:[108,0,1]},{duration:1.3,repeat:"forever",yoyo:!0,easing:"easeInOut"},{position:[-108,0,1]});for(let un=0;un<3;un++){let dn=this.disc(this.progress,-15+un*15,62,6,6,xn(sn.accent,0.5));this.motion(dn,{scale:[9,9,1],color:xn(sn.accent,1)},{duration:0.55,delay:un*0.16,repeat:"forever",yoyo:!0},{scale:[6,6,1],color:xn(sn.accent,0.5)})}this.retryButton=this.world.spawn({mesh:"none",parent:this.content,position:[0,-565,6],scale:0,pickable:!1}),this.box(this.retryButton,0,0,180,46,xn(sn.accent)),this.text(this.retryButton,"Try again",0,0,16,sn.sky,160)}box(rn,nn,an,sn,ln,cn,un=1){return this.world.spawn({mesh:HEt(),parent:rn,position:[nn,-an,un],scale:[sn,ln,1],color:cn,pickable:!1})}disc(rn,nn,an,sn,ln,cn,un=1){return this.world.spawn({mesh:FEt(),parent:rn,position:[nn,-an,un],scale:[sn,ln,1],color:cn,pickable:!1})}path(rn,nn,an,sn,ln,cn,un=1,dn=2){return this.world.spawn({mesh:WEt(nn,an),parent:rn,position:[sn,-ln,dn],scale:un,color:xn(cn),pickable:!1})}text(rn,nn,an,sn,ln,cn,un=330){let dn=F0e(this.font,nn);return this.world.spawn({text:nn,font:this.font,parent:rn,position:[an,-sn,10],scale:Math.min(ln,un/Math.max(1,dn)),color:xn(cn),pickable:!1})}motion(rn,nn,an,sn){this.motions.push({entity:rn,target:nn,options:an,initial:sn})}tree(rn,nn,an,sn,ln){this.box(rn,nn,an+35,7*sn,70*sn,xn("#75604B")),this.path(rn,"pine",zEt,nn,an,ln,sn)}fruit(rn,nn,an,sn,ln){this.disc(rn,nn,an,sn,sn,xn(ln)),this.disc(rn,nn-sn*0.22,an-sn*0.18,sn*0.18,sn*0.3,xn("#FFFFFF",0.3),2),this.path(rn,"leaf",VEt,nn,an-sn*0.45,"#74BA65",sn/75,3)}drawHero(rn){let nn=this.look.colours,an=this.look.scene;if(an==="forest"||an==="penguin"||an==="ninja")this.disc(rn,0,82,310,88,xn("#426C48")),this.disc(rn,12,103,275,35,xn("#284F39")),this.tree(rn,-112,-3,0.9,"#578257"),this.tree(rn,110,10,0.85,"#345E44"),this.tree(rn,-73,-28,0.58,"#81A96C");if(an==="forest"){this.path(rn,"river","M-45-105Q20-65-20-30Q-60 5 4 28L16 12Q-31-3-4-24Q42-62-24-110Z",0,0,"#6EBACB",1,2),this.box(rn,-5,55,67,12,xn("#DFCAA0"),3),this.path(rn,"diamond",aD,8,-60,"#A9EBF7",2,5),this.path(rn,"diamond",aD,120,62,"#D2F8FF",0.55,5);return}if(an==="car"||an==="bike"||an==="crossing"){for(let ln=0;ln<6;ln++){let cn=-142+ln*55,un=45+ln%3*23;this.box(rn,cn,25-un/2,42,un,xn(nn.horizon,0.8),-1);for(let dn=0;dn<2;dn++)for(let pn=0;pn<2;pn++)this.box(rn,cn-9+pn*18,20-un+14+dn*18,7,8,xn(nn.second,0.6),0)}this.box(rn,0,76,320,51,xn("#303C47")),this.box(rn,0,52,320,3,xn("#F1D998")),this.box(rn,0,100,320,3,xn("#F1D998"));for(let ln=-140;ln<=140;ln+=70){let cn=this.box(rn,ln,76,34,3,xn("#FFFFFF",0.6));this.motion(cn,{moveBy:[-24,0,0]},{duration:0.8,repeat:"forever",easing:"linear"},{position:[ln,-76,1]})}if(an==="car"){this.box(rn,0,10,218,66,xn("#EF575B"),3),this.path(rn,"roof","M-72 0L-46 47H39L79 0Z",0,-23,"#D94248",1,4),this.path(rn,"window","M-48 0L-31 29H-5V0ZM5 0V29H29L53 0Z",0,-33,"#BCE0E5",1,5),this.box(rn,-94,8,22,12,xn("#FFE5AA"),6),this.box(rn,97,10,14,16,xn("#FFD49B"),6);for(let ln of[-66,66])this.disc(rn,ln,44,49,49,xn("#253342"),6),this.disc(rn,ln,44,24,24,xn("#C9D2D5"),7)}else if(an==="bike"){for(let ln of[-78,78])this.disc(rn,ln,43,70,70,xn("#263444"),3),this.disc(rn,ln,43,47,47,xn("#C8D5D8"),4),this.disc(rn,ln,43,34,34,xn(nn.sky),5);this.path(rn,"bike-frame","M-78-43L-28 12L27-43H15L-27-3L-66-43ZM-18 20H35L82-43H70L30 8H-18Z",0,0,"#F9A54D",1,6),this.box(rn,7,-30,70,17,xn("#293B48"),7),this.box(rn,-13,-5,63,35,xn("#E97143"),6),this.path(rn,"rider","M-9 2L-27 45L5 68L28 36L13 28L3 43L-8 35L8 8Z",0,-45,"#4B91B3",1,8),this.disc(rn,6,-87,45,45,xn("#FFD177"),9),this.box(rn,15,-88,32,15,xn("#31434F"),10)}else{this.box(rn,-55,-19,111,48,xn("#E78459"),4);for(let ln of[-90,-23])this.disc(rn,ln,5,25,25,xn("#263444"),5);this.disc(rn,77,-4,58,68,xn("#FFF8E7"),6),this.disc(rn,93,-30,39,39,xn("#FFF8E7"),7),this.box(rn,115,-27,20,12,xn("#EDB44C"),8)}return}if(an==="penguin"){this.disc(rn,0,5,108,140,xn("#1E2D43"),3),this.disc(rn,0,20,73,95,xn("#FFF8ED"),4),this.disc(rn,0,-67,94,90,xn("#192A40"),5),this.disc(rn,0,-61,77,60,xn("#FFF8ED"),6);for(let ln of[-21,21])this.disc(rn,ln,-67,21,26,xn("#5394D8"),7),this.disc(rn,ln,-66,10,15,xn("#162539"),8);this.path(rn,"beak","M-14 5H14L0-10Z",0,-40,"#FFB542",1,9),this.disc(rn,-27,78,42,18,xn("#F7AE42"),5),this.disc(rn,27,78,42,18,xn("#F7AE42"),5);return}if(an==="ninja"||an==="merger"){if(this.fruit(rn,-74,35,100,"#EE6465"),this.fruit(rn,43,-8,117,"#F8B246"),this.fruit(rn,115,61,66,"#A4CE68"),an==="ninja")this.path(rn,"slash","M-138-78Q-4-37 119 111L143 99Q19-61-126-91Z",0,0,"#ECFFF1",1,8);return}if(an==="tua"){this.disc(rn,0,49,95,106,xn("#D2AAEE"),3),this.disc(rn,0,-37,128,119,xn("#DCC0F3"),5);for(let ln of[-36,36])this.disc(rn,ln,-103,33,86,xn("#DCC0F3"),3),this.disc(rn,ln,-104,14,55,xn("#F7C7D9"),4);this.disc(rn,0,-13,75,51,xn("#FFF2E4"),6);for(let ln of[-25,25])this.disc(rn,ln,-43,13,19,xn("#382B51"),7),this.disc(rn,ln-2,-47,4,6,[1,1,1,1],8);this.disc(rn,0,-19,15,10,xn("#A06C94"),8),this.disc(rn,-57,37,31,67,xn("#B996DF"),2),this.disc(rn,57,37,31,67,xn("#B996DF"),2),this.disc(rn,-29,101,51,25,xn("#B996DF"),4),this.disc(rn,29,101,51,25,xn("#B996DF"),4);return}if(an==="chameleon"){this.path(rn,"chameleon-step","M-140-60H-55V-30H-140ZM-15-15H60V15H-15ZM100 35H156V65H100Z",0,0,"#F2C950",1,2),this.disc(rn,8,-26,110,59,xn("#ED67AD"),3),this.disc(rn,67,-39,65,65,xn("#F6D856"),4),this.disc(rn,81,-55,30,30,xn("#FFF8E8"),5),this.disc(rn,85,-54,11,13,xn("#3E3756"),6),this.path(rn,"tail","M-40 42Q-123 97-111 18Q-100-20-67 10Q-50 40-85 43L-84 29Q-68 29-78 18Q-94 6-97 23Q-105 74-47 29Z",0,0,"#ED67AD",1,4);return}let sn=["#F3B655","#A98ADB","#7DC4AB","#ED8292","#73BBD6","#E7D365"];for(let ln=0;ln<2;ln++)for(let cn=0;cn<3;cn++){let un=(cn-1)*87,dn=(ln-0.5)*87;this.box(rn,un+4,dn+8,76,76,xn("#000000",0.16)),this.box(rn,un,dn,76,76,xn(sn[ln*3+cn])),this.path(rn,"diamond",aD,un,dn,"#FFFFFF",0.65,4)}}layout(rn,nn,an=0){let{scale:sn,top:ln,retryBounds:cn}=cD(rn,nn,an);this.world.set(this.backdrop,{scale:[rn,nn,1]}),this.world.set(this.content,{position:[rn/2,-ln,5],scale:sn}),this.camera.eye=[rn/2,-nn/2,100],this.camera.target=[rn/2,-nn/2,0],this.camera.ortho=nn/2,this.retryBox=cn}get retryBounds(){return this.retryBox}setStatus(rn){if(this.disposed)return;let nn=this.look.colours;if(rn.label!==this.status.label||rn.error!==this.status.error){if(this.statusText!==null)this.world.despawn(this.statusText);this.statusText=this.text(this.content,rn.error?"A little bump along the way":`${rn.label}…`,0,520,13,nn.text,315)}if(rn.message!==this.status.message||rn.error!==this.status.error){for(let an of this.messageText)this.world.despawn(an);if(this.messageText=[],rn.error&&rn.message){let an=[],sn="",ln=rn.message.slice(0,240).split(/\s+/).flatMap((cn)=>cn.match(/.{1,40}/gu)??[]);for(let cn of ln){let un=sn?`${sn} ${cn}`:cn;if(sn&&F0e(this.font,un)*12>325)an.push(sn),sn=cn;else sn=un}if(sn)an.push(sn);for(let[cn,un]of an.slice(0,3).entries())this.messageText.push(this.text(this.content,un,0,452+cn*16,12,nn.muted,325))}}if(this.world.set(this.progress,{scale:rn.error?0:1}),this.world.set(this.retryButton,{scale:rn.error&&rn.retry?1:0}),rn.reducedMotion!==this.status.reducedMotion||rn.error!==this.status.error){for(let an of this.motions)if(this.world.stopAnimation(an.entity),this.world.set(an.entity,an.initial),!rn.reducedMotion&&!rn.error)this.world.animate(an.entity,an.target,an.options)}this.status={...rn}}update(rn){if(!this.disposed)this.world.update(rn)}dispose(){if(this.disposed)return;this.disposed=!0,this.world.dispose()}}var Hs=(rn,nn,an,sn,ln,cn,un)=>({sky:rn,horizon:nn,ground:an,accent:sn,second:ln,text:cn,muted:un}),U0e,BEt,V0e,H0e,FEt=()=>lD("circle",()=>new sD().addCircle(0,0,0.5)),HEt=()=>lD("rect",()=>new sD().addRoundedRect(-0.5,-0.5,1,1,0.12)),WEt=(rn,nn)=>lD(rn,()=>sD.fromSVG(nn),!0),UEt="M0 11L3 3L11 0L3-3L0-11L-3-3L-11 0L-3 3Z",aD="M-20 3L-10 16H10L20 3L0-23Z",VEt="M0 0Q-5 24 25 20Q24-3 0 0Z",zEt="M0 65L-24 23H-12L-31-5H-16L-39-35H39L16-5H31L12 23H24Z",W0e;var z0e=e(()=>{v();a();na();Hn();U0e={"treasure-hunt":{scene:"forest",tag:"INTO THE WILD",message:"Follow the river. Find the diamonds.",dark:Hs("#0D2420","#234332","#142E25","#AED492","#9BDCE8","#F0F7E9","#BED0B9"),light:Hs("#E5EDDF","#BDCFAC","#95B18A","#386747","#347C8B","#253C2B","#51674F")},"penguin-run":{scene:"penguin",tag:"JUNGLE DASH",message:"Through the jungle. Over the ruins.",dark:Hs("#112B28","#2C4B3D","#172C28","#FFBD58","#95B484","#FFF7E8","#C8D1BC"),light:Hs("#E7EBDD","#C1D0AB","#8DA988","#916027","#446C48","#2C3B31","#596A52")},"car-racing":{scene:"car",tag:"START YOUR ENGINES",message:"Your red racer. A fresh stretch of road.",dark:Hs("#111C29","#293948","#151E28","#FF6A68","#F1CC7A","#F6F5ED","#BEC6CD"),light:Hs("#ECF0F3","#CAD6DD","#A5B4BC","#B93038","#88703F","#27333E","#5C6A73")},"bike-racing":{scene:"bike",tag:"READY TO RIDE",message:"Lean in. The open road awaits.",dark:Hs("#121E28","#2C3A43","#16222A","#FFA153","#E9D4A5","#FBF5EB","#C8C9BE"),light:Hs("#EDF0EC","#CCD8D5","#A3B5AB","#A3551B","#786846","#2C3835","#5A6A61")},"fruit-ninja":{scene:"ninja",tag:"SLICE INTO ACTION",message:"Fresh fruit. One perfect slice.",dark:Hs("#152C24","#35513B","#1C3026","#FFAA82","#B8D492","#FFF7E9","#C8D3B9"),light:Hs("#EEF1DE","#CDDBB5","#A1B582","#AA4734","#476A39","#334329","#616E4C")},"fruit-merger":{scene:"merger",tag:"SMALL FRUIT. BIG FUN.",message:"Drop. Match. Make something bigger.",dark:Hs("#241D37","#443459","#2B233D","#FFBE79","#ECCF9B","#FFF5E7","#D6C8E1"),light:Hs("#F1EAF5","#E1D4EB","#CDBFDD","#9C5728","#A35568","#43304E","#75617F")},"tile-home":{scene:"tiles",tag:"THREE OF A KIND",message:"A perfect little match is waiting.",dark:Hs("#241F38","#44365D","#2D2540","#CAB0F1","#F2DCB9","#FFF8EE","#D5C9E4"),light:Hs("#F3EDF6","#E3D9EE","#D0C4DE","#75528E","#937341","#44334F","#786685")},"play-with-tua":{scene:"tua",tag:"YOUR PLAYFUL COMPANION",message:"Wave, laugh and play with Tua.",dark:Hs("#281F3D","#493763","#21333A","#D0AFF2","#8ED4C5","#FCF4FF","#D3C4E5"),light:Hs("#F2EAF9","#DCCDEC","#C3DDD5","#8055AB","#347F76","#473255","#766282")},"chameleon-run":{scene:"chameleon",tag:"SWITCH. JUMP. RUN.",message:"Yellow or pink? Find your rhythm.",dark:Hs("#1A2A38","#344A5B","#1C2D3A","#FFD447","#F653A6","#FFF7E2","#C6D2D8"),light:Hs("#E9F0F0","#CBDEE0","#AEC7CD","#8D6921","#B63B7D","#30454F","#5E7480")},"paper-io":{scene:"paper",tag:"MAKE YOUR MARK",message:"Paint your path. Claim your world.",dark:Hs("#221F33","#3B354C","#28263B","#88D693","#F58B8B","#F5F6EF","#C7CED1"),light:Hs("#F0EDF5","#DDD7E7","#C9C4D8","#3B7D47","#B4474D","#364438","#65706C")},"crossy-road":{scene:"crossing",tag:"ONE HOP AT A TIME",message:"Watch the traffic. Make your move.",dark:Hs("#1A2B2E","#344D43","#294732","#EDD785","#9AC984","#FCF6E3","#CDD5BE"),light:Hs("#EAF0E7","#C7D8BC","#9BBB80","#886727","#4A7544","#34462E","#617454")}},BEt=U0e["tile-home"];V0e=Zn([0,0,1],1),H0e=new Map;W0e=new Map});import{memo as q0e,useCallback as ZA,useEffect as QA,useRef as YEt,useState as $A}from"react";import{GameView as KEt,isEngineAvailable as XEt,warmUpEngine as jEt}from"@nayan-ui/engine";import{jsx as yc,jsxs as dD,Fragment as ZEt}from"react/jsx-runtime";var Ws,$Et,b,Vu;var O=e(()=>{v();_();o();z0e();xf();Ws=T(S()),$Et=q0e(function({gameId:nn,theme:an,font:sn,width:ln,height:cn,offset:un=0,label:dn="Getting ready",error:pn=!1,message:mn,onRetry:fn,visible:hn=!0,reducedMotion:bn,onFailure:yn}){let En=hc(()=>new uD(nn,an,sn),(Rn)=>()=>Rn.dispose());QA(()=>En.layout(ln,cn,un),[En,ln,cn,un]),QA(()=>En.setStatus({label:dn,error:pn,message:mn,retry:!!fn,reducedMotion:bn}),[En,dn,pn,mn,fn,bn]);let Sn=ZA((Rn)=>En.update(Rn),[En]),_n=YEt(fn);_n.current=fn;let vn=ZA((Rn,An)=>{let Mn=En.retryBounds;if(pn&&Rn>=Mn.left&&Rn<=Mn.left+Mn.width&&An>=Mn.top&&An<=Mn.top+Mn.height)_n.current?.()},[En,pn]),{retryBounds:Tn}=cD(ln,cn,un);return dD(ZEt,{children:[yc(KEt,{source:En.world,camera:En.camera,light:V0e,background:En.clearColor,onUpdate:Sn,paused:!hn,onTap:vn,onError:yn,style:Ws.StyleSheet.absoluteFill}),hn&&pn&&fn&&yc(Ws.Pressable,{accessibilityRole:"button",accessibilityLabel:"Try again",onPress:fn,style:{position:"absolute",...Tn}})]})}),b=q0e(function({gameId:nn,theme:an,label:sn="Getting ready",error:ln=!1,message:cn,onRetry:un,offset:dn=0,visible:pn=!0}){let mn=m(an),fn=iD(nn,an),hn=s[nn].title,[bn,yn]=$A(null),[En,Sn]=$A(null),[_n,vn]=$A(!1),[Tn,Rn]=$A(!0);QA(()=>{let Ln=!0;Ws.AccessibilityInfo.isReduceMotionEnabled().then((Dn)=>{if(Ln)Rn(Dn)},()=>{});let On=Ws.AccessibilityInfo.addEventListener("reduceMotionChanged",Rn);return()=>{Ln=!1,On.remove()}},[]),QA(()=>{if(En||!pn||!XEt||_n)return;let Ln=!0;return jEt().then(mb).then((On)=>{if(Ln)Sn(On.semi)},()=>{if(Ln)vn(!0)}),()=>{Ln=!1}},[En,pn,_n]);let An=ZA((Ln)=>{let{width:On,height:Dn}=Ln.nativeEvent.layout;yn((Nn)=>Nn?.width===On&&Nn.height===Dn?Nn:{width:On,height:Dn})},[]),Mn=ZA(()=>vn(!0),[]),Cn=!!En&&!!bn&&bn.width>0&&bn.height>0&&!_n;return yc(Ws.View,{testID:"game-loading",style:[Vu.root,{backgroundColor:fn.colours.sky}],onLayout:An,accessible:!ln,accessibilityLiveRegion:"polite",accessibilityRole:ln?"alert":"progressbar",accessibilityState:{busy:!ln},accessibilityLabel:`${hn}. ${ln?cn??"Unable to prepare this game":sn}`,children:Cn?yc($Et,{gameId:nn,theme:an,font:En,width:bn.width,height:bn.height,label:sn,error:ln,message:cn,onRetry:un,offset:dn,visible:pn,reducedMotion:Tn,onFailure:Mn},`${nn}:${an}`):pn&&dD(Ws.View,{style:[Vu.fallback,{paddingTop:dn}],children:[dD(Ws.View,{testID:"game-loading-art",accessible:!1,style:Vu.art,children:[yc(Ws.View,{style:[Vu.tile,{backgroundColor:fn.colours.second,left:8,top:26,transform:[{rotate:"-16deg"}]}]}),yc(Ws.View,{style:[Vu.tile,{backgroundColor:fn.colours.horizon,right:8,top:26,transform:[{rotate:"16deg"}]}]}),yc(Ws.View,{style:[Vu.tile,{backgroundColor:fn.colours.accent,left:45,top:8}]})]}),yc(Ws.Text,{style:[Vu.title,{color:mn.TEXT}],children:hn}),!ln&&yc(Ws.ActivityIndicator,{animating:!Tn,hidesWhenStopped:!1,color:fn.colours.accent,style:Vu.spinner}),yc(Ws.Text,{accessibilityLiveRegion:"polite",accessibilityRole:ln?"alert":"progressbar",style:[Vu.label,{color:mn.TEXT_SUBTLE}],children:ln?cn??"Unable to prepare this game.":`${sn}…`}),ln&&un&&yc(Ws.Pressable,{accessibilityRole:"button",onPress:un,style:[Vu.retry,{backgroundColor:mn.SOLID}],children:yc(Ws.Text,{style:{color:mn.ON_SOLID},children:"Try again"})})]})})}),Vu=Ws.StyleSheet.create({root:{flex:1},fallback:{flex:1,justifyContent:"center",alignItems:"center",padding:24},art:{width:144,height:104,marginBottom:24},tile:{position:"absolute",width:54,height:54,borderRadius:14,borderWidth:2,borderColor:"#ffffff55"},spinner:{marginTop:20},title:{fontSize:24,fontWeight:"600",textAlign:"center"},label:{fontSize:16,marginTop:12,textAlign:"center"},retry:{marginTop:20,paddingHorizontal:20,paddingVertical:12,borderRadius:12}})});import{memo as QEt,useEffect as JEt,useRef as e2t,useState as t2t}from"react";import{jsx as r2t,jsxs as n2t}from"react/jsx-runtime";var kl,y,o2t;var P=e(()=>{kl=T(S()),y=QEt(function({ready:nn,loader:an,children:sn}){let[ln,cn]=t2t(!nn),un=e2t(new kl.Animated.Value(1)).current;return JEt(()=>{if(!nn){un.setValue(1),cn(!0);return}if(!ln)return;let dn=!0,pn=0,mn;return kl.AccessibilityInfo.isReduceMotionEnabled().catch(()=>!1).then((fn)=>{if(!dn)return;pn=requestAnimationFrame(()=>{pn=requestAnimationFrame(()=>{if(!dn)return;mn=kl.Animated.timing(un,{toValue:0,duration:fn?0:160,useNativeDriver:kl.Platform.OS!=="web"}),mn.start(({finished:hn})=>{if(dn&&hn)cn(!1)})})})}),()=>{dn=!1,cancelAnimationFrame(pn),mn?.stop()}},[nn,ln,un]),n2t(kl.View,{style:o2t.root,children:[nn&&sn,(ln||!nn)&&r2t(kl.Animated.View,{pointerEvents:nn?"none":"auto",accessibilityElementsHidden:nn,importantForAccessibility:nn?"no-hide-descendants":"auto",style:[kl.StyleSheet.absoluteFill,{opacity:nn?un:1}],children:an})]})}),o2t=kl.StyleSheet.create({root:{flex:1}})});import a2t,{useCallback as pD,useContext as s2t,useEffect as zu,useLayoutEffect as Y0e,useMemo as i2t,useRef as fb,useState as IS}from"react";import{audio as K0e,GameView as l2t,isEngineAvailable as JA,warmUpEngine as c2t,World as u2t}from"@nayan-ui/engine";import{jsx as Ec,jsxs as d2t}from"react/jsx-runtime";function Vn(rn,nn){let an=a2t.memo((sn)=>{let ln=s2t(je),[cn,un]=IS(ln),[dn,pn]=IS(null);zu(()=>{if(!JA||ln)return;let fn=!0;return c2t().then(()=>{if(fn)un(!0)},(hn)=>{if(fn)pn(hn instanceof Error?hn.message:String(hn))}),()=>{fn=!1}},[ln]);let mn=sn.settings??D;return Ec(B,{theme:mn.theme,children:Ec(Di.View,{style:e5.root,children:Ec(y,{ready:JA&&cn,loader:Ec(b,{gameId:rn,theme:mn.theme,offset:mn.offset,visible:!mn.isVisible,error:!!dn||!JA,message:dn??(!JA?"This game needs the Nayan engine, which is not available in this build.":void 0)}),children:Ec(nD.Provider,{value:sn.onPlayingChange,children:Ec(nn,{...sn,settings:mn})})})})})});return an.displayName=s[rn].title,an}var Di,mD,Un=({gameId:rn,hudCapacity:nn,errorMessage:an,feedback:sn,choices:ln,onAudioChange:cn,onActiveChange:un,settings:dn=D,onSettingsChange:pn,onShare:mn,onShowLeaderboard:fn,bannerAd:hn,background:bn,onUpdate:yn,onResize:En,columns:Sn,playing:_n,subtext:vn,onStart:Tn,onStop:Rn,gameOver:An,children:Mn,source:Cn,...Ln})=>{k0e(_n);let On=m(dn.theme),Dn=dn.offset??0;zu(()=>L([t.STOP,t.RESET]),[]);let Nn=fb({}).current,[Wn,Fn]=IS(()=>Di.AppState.currentState!=="background"&&Di.AppState.currentState!=="inactive");zu(()=>{let Ga=Di.AppState.addEventListener("change",(qs)=>Fn(qs==="active"));return()=>Ga.remove()},[]);let qn=Wn&&!dn.isVisible&&!dn.paused&&!Ln.paused&&!an;zu(()=>{un?.(qn)},[qn,un]);let Kn=qn&&dn.enableSounds;zu(()=>{if(mD=Nn,K0e.muted=!Kn,!Kn)h();return cn?.(Kn),()=>{if(cn?.(!1),mD===Nn)h(),K0e.muted=!1,mD=void 0}},[Kn,cn,Nn]);let ea=hc(()=>new jA(On,nn),(Ga)=>()=>Ga.dispose()),[Yn,ia]=IS(null),Xn=pD((Ga)=>{let{width:qs,height:fi}=Ga.nativeEvent.layout;ia((rc)=>rc&&rc.width===qs&&rc.height===fi?rc:{width:qs,height:fi})},[]),La=fb(En);La.current=En,zu(()=>{if(!Yn)return;La.current?.(Yn.width,Yn.height,Dn),ea.layout(Yn.width,Yn.height,Dn)},[ea,Yn,Dn]),Y0e(()=>ea.setTheme(On),[ea,On]),zu(()=>ea.setChoices(ln??[]),[ea,ln]);let Ia=fb(sn);Ia.current=sn;let Va=fb(yn);Va.current=yn;let ls=pD((Ga)=>{if(dn.isVisible){if(Cn instanceof u2t)Cn.update(0);ea.update(0);return}Va.current?.(Ga,ea),ea.update(Ga,Ia.current)},[ea,Cn,dn.isVisible]);ea.setActions({onStart:()=>{h(),Tn()},onStop:()=>{h(),Rn(),I(t.STOP,dn.enableSounds)},onShare:mn,onShowLeaderboard:fn});let Bs=Sn.map((Ga)=>[Ga.label,Ga.value,Ga.color,Ga.valueColor,Ga.lives?.count,Ga.lives?.max].join("\x00")).join("\x01");zu(()=>ea.setColumns(Sn),[ea,Bs]),Y0e(()=>ea.setPlaying(_n,vn),[ea,_n,vn]);let ei=fb(dn.enableSounds);ei.current=dn.enableSounds;let Ms=fb(An);Ms.current=An;let rs=An?[An.title,An.message,An.scoreLabel,An.score,An.buttonText,!!An.onShare].join("\x00"):null,[Ps,za]=IS(null);zu(()=>{let Ga=Ms.current;if(!Ga){ea.hideGameOver(),za(null);return}ea.showGameOver({...Ga,onPlayAgain:()=>{h(),Ms.current?.onPlayAgain(),I(t.RESET,ei.current)},onShare:Ga.onShare?()=>Ms.current?.onShare?.():void 0}),za(ea.gameOverBanner)},[ea,rs,Yn,On]);let li=pD((Ga)=>{ea.setGameOverReserve(Ga.nativeEvent.layout.height),za(ea.gameOverBanner)},[ea]),xi=An!==null;zu(()=>{if(!xi)return;let Ga=Di.BackHandler.addEventListener("hardwareBackPress",()=>(Ms.current?.onPlayAgain(),!0));return()=>Ga.remove()},[xi]);let Ri=i2t(()=>ws(On.BACKGROUND),[On.BACKGROUND]);return d2t(Di.View,{pointerEvents:dn.paused?"none":"auto",style:[e5.root,{backgroundColor:On.BACKGROUND}],onLayout:Xn,children:[Cn?Ec(l2t,{...Ln,paused:Ln.paused||!!an||dn.paused&&_n||!Wn,source:Cn,background:bn??Ri,onUpdate:ls,overlay:ea.world,onOverlayTouch:ea.touch,onPrimaryAction:()=>ea.activatePrimary(),onStats:void 0}):null,xi?null:Mn,an&&Ec(Di.View,{pointerEvents:"none",style:e5.error,children:Ec(Di.Text,{accessibilityRole:"alert",style:{color:On.TEXT},children:an})}),xi&&hn&&Ps?Ec(Di.View,{pointerEvents:"box-none",style:[e5.banner,{top:Ps.top,width:Ps.width,left:((Yn?.width??0)-Ps.width)/2}],children:Ec(Di.View,{onLayout:li,children:hn})}):null,Ec(wS,{gameId:rn,settings:dn,onSettingsChange:pn})]})},e5;var _a=e(()=>{p0e();v();l();_();a();o();ct();Hn();B0e();O();P();xf();Di=T(S());e5=Di.StyleSheet.create({root:{flex:1},error:{position:"absolute",top:"45%",alignSelf:"center",padding:24},banner:{position:"absolute",alignItems:"center",overflow:"hidden",borderRadius:10}})});import{useRef as p2t,useSyncExternalStore as m2t}from"react";function h2t(rn,nn){let an=rn,sn=rn,ln=-1/0,cn=null,un=new Set,dn=()=>{if(cn=null,ln=Date.now(),Object.is(an,sn))return;an=sn;for(let pn of un)pn()};return{get:()=>an,subscribe:(pn)=>(un.add(pn),()=>{if(un.delete(pn),!un.size&&cn)clearTimeout(cn),cn=null}),set:(pn)=>{if(sn=typeof pn==="function"?pn(sn):pn,cn)return;let mn=nn-(Date.now()-ln);if(mn<=0)dn();else cn=setTimeout(dn,mn)}}}function gn(rn,nn=f2t){let an=p2t(null);if(!an.current)an.current=h2t(typeof rn==="function"?rn():rn,nn);return[m2t(an.current.subscribe,an.current.get),an.current.set]}var f2t=100;var va=()=>{};import{useEffect as b2t,useLayoutEffect as y2t,useRef as X0e}from"react";function zn(rn,nn){let{settings:an}=rn,sn=m(an.theme),[ln,cn]=gn("ready",0),[un,dn]=gn("lose",0),[pn,mn]=gn(!1,0),fn=X0e({props:rn,spec:nn});fn.current={props:rn,spec:nn};let hn=hc(()=>{let Tn=nn.create(sn),Rn=!1,An=!1,Mn=(Dn,Nn)=>{if(An||fn.current.props.settings.isVisible)return;let{enableSounds:Wn,enableHaptics:Fn}=fn.current.props.settings;if(Dn)I(Dn,Wn);if(Nn!=null)wz(Nn,Fn)},Cn=(Dn)=>{if(Rn)return;Rn=!0;let Nn=fn.current.spec.reportScore?.(Tn,Dn)??Tn.score??0,Wn=fn.current.spec.reportData?.(Tn,Dn);fn.current.props.onEndGame?.({status:Dn,score:Nn.toString(),...Wn?{additionalData:Wn}:{}})};Tn.onPhase=(Dn)=>{if(Dn==="over"){let Nn=fn.current.spec.outcome?.(Tn)??(Tn.won?"win":"lose");dn(Nn),Cn(Nn==="draw"?"cancel":Nn),fn.current.spec.onOver?.(Mn,Nn,Tn)}cn(Dn)};let Ln=()=>fn.current.spec;return{game:Tn,fx:Mn,report:Cn,handlers:{onActiveChange:(Dn)=>Ln().setActive?.(Tn,Dn),onUpdate:(Dn,Nn)=>{if(Ln().tick?.(Tn,Dn),Nn)Ln().hud?.(Tn,Nn)},onResize:(Dn,Nn,Wn)=>Ln().resize?.(Tn,Dn,Nn,Wn),onDrag:(Dn)=>Ln().drag?.(Tn,Dn),onTap:(Dn,Nn)=>Ln().tap?.(Tn,Dn,Nn),onStart:()=>{h(),Rn=!1,Ln().start(Tn),Ln().onStart?.(Mn)},onStop:()=>{h(),Cn("cancel"),Ln().onStop?.(Mn),Ln().reset(Tn)},playAgain:()=>{h(),Rn=!1,fn.current.props.onReplayGame?.(),(Ln().replay??Ln().reset)(Tn),Ln().onPlayAgain?.(Mn)}},closeFeedback:()=>{An=!0,h()}}},(Tn)=>{let{game:Rn,fx:An}=Tn;if(Ke(nn.gameId),nn.sounds)L(nn.sounds);let Mn=nn.wire?.(Rn,An);return()=>{if(Tn.closeFeedback(),Mn?.(),Rn.phase==="playing")Tn.report("cancel");fn.current.spec.dispose(Rn)}}),{game:bn,fx:yn,handlers:En}=hn,Sn=X0e(sn);y2t(()=>{if(Sn.current===sn)return;Sn.current=sn,fn.current.spec.setTheme?.(bn,sn)},[bn,sn]),b2t(()=>{if(ln!=="over")return mn(!1);let Tn=fn.current.spec.resultsDelay?.(un)??0;if(!Tn)return mn(!0);let Rn=setTimeout(()=>mn(!0),Tn);return()=>clearTimeout(Rn)},[ln,un,mn]);let _n={gameId:nn.gameId,feedback:bn.hudFeedback,onActiveChange:En.onActiveChange,settings:an,onSettingsChange:rn.onSettingsChange,onShare:rn.onShareScreenshot??rn.onShare,onShowLeaderboard:rn.onShowLeaderboard,bannerAd:rn.bannerAd,source:bn.world,camera:bn.camera,onUpdate:En.onUpdate,onResize:nn.resize?En.onResize:void 0,onDrag:nn.drag?En.onDrag:void 0,onTap:nn.tap?En.onTap:void 0,playing:ln==="playing",onStart:En.onStart,onStop:En.onStop};return{game:bn,theme:sn,phase:ln,status:un,fx:yn,screen:_n,gameOver:(Tn)=>pn?{...Tn,onPlayAgain:En.playAgain,onShare:rn.onShareScreenshot}:null}}var xa=e(()=>{Ta();l();_();xf();va()});var OS,j0e,t5=1.21,o5=2.057,$0e=16,Rf,Z0e,Q0e=156;var PS=e(()=>{OS={standing:{duration:9.6,loop:!0},walking:{duration:3.75,loop:!0},running:{duration:3,loop:!0},jumping:{duration:2.5,loop:!1},waving:{duration:2.7,loop:!1},winking:{duration:1.65,loop:!1},dancing:{duration:5.25,loop:!0},laughing:{duration:3.6,loop:!0},fighting:{duration:7.8,loop:!1},falling:{duration:4.25,loop:!1}},j0e={standing:[],walking:[0.63,1.13,1.63,2.13,2.63,3.12].map((rn)=>({at:rn,sound:"WALKING"})),running:[0.37,0.67,0.97,1.27,1.57,1.87,2.17,2.47,2.8].map((rn)=>({at:rn,sound:"RUNNING"})),jumping:[{at:0.42,sound:"JUMPING"},{at:1.45,sound:"LAND"}],waving:[{at:0.25,sound:"WAVING"}],winking:[{at:0.5,sound:"WINKING"}],dancing:[{at:0,sound:"DANCING",once:!0}],laughing:[{at:0.65,sound:"LAUGHING"},{at:1.9,sound:"LAUGHING"}],fighting:[...[0.73,1.43,2.75,3.03,3.78].map((rn)=>({at:rn,sound:"FIGHTING"})),{at:5.1,sound:"JUMPING"},{at:5.72,sound:"FIGHTING"},{at:6.35,sound:"LAND"}],falling:[{at:0.25,sound:"STUMBLE"},{at:0.8,sound:"FALLING"}]},Rf=[{id:"standing",label:"Standing"},{id:"waving",label:"Waving"},{id:"winking",label:"Winking"},{id:"walking",label:"Walking"},{id:"running",label:"Running"},{id:"jumping",label:"Jumping"},{id:"dancing",label:"Dancing"},{id:"laughing",label:"Laughing"},{id:"fighting",label:"Fighting"},{id:"falling",label:"Falling"}],Z0e={direction:[-0.5,1,1],ambient:0.72,shadows:!0,shadowExtent:5}});var go={};n(go,{getCachedCharacter:()=>hD,loadCharacter:()=>r5,playAnimation:()=>hb,spawnCharacter:()=>bD,warmAssets:()=>S2t});import{loadModel as E2t}from"@nayan-ui/engine";function r5(){return fD??=(async()=>{let rn=await E2t(new URL("./assets/7eb943b85c21-play-with-tua.glb",import.meta.url).href,{center:!1,shine:0.08});if(rn.jointCount!==20||Object.keys(OS).some((nn)=>!rn.animations.some((an)=>an.name===nn)))throw Error("Play With Tua is missing its skeletal rig or animation clips");return J0e=rn,rn})().catch((rn)=>{throw fD=void 0,rn}),fD}function bD(rn,nn){let an=rn.spawn({mesh:nn,scale:[t5,t5,t5],pickable:!1});return hb(rn,an,"standing",{speed:0,time:0,fade:0}),an}function hb(rn,nn,an,sn={}){return rn.playClip(nn,an,{loop:OS[an].loop,...sn})}function*S2t(){yield r5}var fD,J0e=null,hD=()=>J0e;var H=e(()=>{PS()});function ede(rn,nn,an){return{character:bD(rn,nn),floor:rn.spawn({mesh:"cube",position:[0,-0.055,0],scale:[200,0.1,200],color:ws(an.BACKGROUND),pickable:!1}),camera:{eye:[0,o5+0.12,9],target:[0,o5,0],fov:0.7}}}function tde(rn,nn,an,sn){let ln=la(sn)+88,cn=an-Q0e,un=Math.max(80,cn-ln),dn=Math.max(2.12*an/un,1.9*an/Math.max(1,nn)),pn=(ln+cn)/2,mn=o5+(pn/Math.max(1,an)-0.5)*2*dn;return rn.camera.target=[0,mn,0],rn.camera.eye=[0,mn+0.12,dn/Math.tan(rn.camera.fov/2)],{top:ln,bottom:cn}}function ode(rn,nn,an){rn.set(nn.floor,{color:ws(an.BACKGROUND)})}var rde=e(()=>{o();Hn();PS();H()});import{quat as nde,World as _2t}from"@nayan-ui/engine";function ade(rn,nn){let an=new _2t($0e);try{return{world:an,...ede(an,rn,nn),phase:"ready",score:0,move:"standing",angle:0,dragStart:0,dragging:!1,inputTop:0,inputBottom:1/0,audible:!1,moveTime:0,soundTime:0,onSound:()=>{},onSilence:()=>{},onPhase:()=>{},onScore:()=>{},onMove:()=>{}}}catch(sn){throw an.dispose(),sn}}function sde(rn){if(rn.world.isDisposed)return;rn.onSilence(),rn.moveTime=rn.soundTime=0,rn.phase="ready",rn.score=0,rn.move="standing",rn.angle=0,rn.dragStart=0,rn.dragging=!1,rn.world.set(rn.character,{rotation:nde.identity}),hb(rn.world,rn.character,"standing",{speed:0,time:0,fade:0}),rn.onMove(rn.move),rn.onScore(rn.score),rn.onPhase(rn.phase)}function ide(rn){if(rn.world.isDisposed||rn.phase==="playing")return;rn.phase="playing",rn.moveTime=rn.soundTime=0,hb(rn.world,rn.character,"standing",{time:0,fade:0.15}),rn.onPhase(rn.phase)}function yD(rn,nn){if(rn.world.isDisposed||rn.phase!=="playing")return;if(!hb(rn.world,rn.character,nn,{loop:!0,time:0,fade:0.18}))return;if(rn.onSilence(),rn.moveTime=0,rn.soundTime=-0.000001,rn.move=nn,nn!=="standing")rn.onScore(++rn.score);rn.onMove(nn)}function lde(rn){let nn=Rf.findIndex((an)=>an.id===rn.move);yD(rn,Rf[(nn+1)%Rf.length].id)}function cde(rn,nn){if(nn.phase==="start"){if(rn.dragging=nn.y>=rn.inputTop&&nn.y<=rn.inputBottom,rn.dragging)rn.dragStart=rn.angle}if(!rn.dragging)return;if(rn.angle=nn.cancelled?rn.dragStart:rn.dragStart+nn.dx*0.01,rn.world.set(rn.character,{rotation:nde.y(rn.angle,v2t)}),nn.phase==="end")rn.dragging=!1}function ude(rn,nn,an,sn){let ln=tde(rn,nn,an,sn);rn.inputTop=ln.top,rn.inputBottom=ln.bottom}function dde(rn,nn){ode(rn.world,rn,nn)}function pde(rn,nn){if(rn.world.isDisposed)return;let an=Number.isFinite(nn)?Math.max(0,Math.min(0.05,nn)):0;if(rn.world.update(an),rn.phase!=="playing"||an<=0)return;let sn=rn.soundTime;if(rn.moveTime+=an,rn.soundTime=rn.moveTime,!rn.audible)return;let ln=OS[rn.move].duration,cn,un=-1/0;for(let dn of j0e[rn.move]){let pn=dn.once?0:Math.floor((rn.moveTime-dn.at)/ln),mn=pn*ln+dn.at;if(pn>=0&&mn>sn&&mn<=rn.moveTime&&rn.moveTime-mn<0.12&&mn>un)cn=dn,un=mn}if(cn)rn.onSound(cn)}function mde(rn,nn){if(rn.world.isDisposed||rn.audible===nn)return;if(rn.audible=nn,!nn)rn.onSilence();else if(rn.phase==="playing"&&rn.move==="dancing")rn.onSound({at:rn.moveTime,sound:"DANCING",once:!0}),rn.soundTime=rn.moveTime}function fde(rn){if(rn.world.isDisposed)return;rn.onSilence(),rn.audible=!1,rn.world.dispose()}var v2t;var hde=e(()=>{PS();H();rde();v2t=[0,0,0,1]});var Do={};n(Do,{PlayWithTua:()=>ut});import{memo as T2t,useCallback as x2t,useEffect as R2t,useRef as A2t,useState as bde}from"react";import{audio as yde}from"@nayan-ui/engine";import{jsx as a5}from"react/jsx-runtime";var n5,M2t,ut;var W=e(()=>{Ta();l();a();_a();o();O();P();xa();va();PS();hde();H();n5=t.PLAY_WITH_TUA,M2t=T2t(function(nn){let[an,sn]=gn(0,0),[ln,cn]=gn("standing",0),un=A2t(nn.settings);un.current=nn.settings;let{game:dn,screen:pn}=zn(nn,{gameId:"play-with-tua",create:(hn)=>ade(nn.model,hn),start:ide,reset:sde,dispose:fde,tick:pde,resize:ude,drag:cde,setTheme:dde,sounds:n5,reportData:(hn)=>({action:hn.move,moves:hn.score}),wire:(hn,bn)=>{let yn=[];return hn.onSilence=()=>{for(let En of yn)yde.stop(En);yn.length=0},hn.onSound=(En)=>{let Sn=un.current,_n=k(n5[En.sound],hn.audible&&Sn.enableSounds&&!Sn.isVisible);if(_n!=null){if(yn.push(_n),yn.length>12)yde.stop(yn.shift())}},hn.onScore=sn,hn.onMove=(En)=>{if(cn(En),hn.phase==="playing")bn(En==="standing"?n5.STANDING:null,"light")},()=>hn.onSilence()},onStart:(hn)=>hn(n5.START,"light")}),mn=x2t((hn)=>mde(dn,hn),[dn]),fn=(hn)=>{if(nn.settings.isVisible)return;if(dn.phase==="ready")pn.onStart();yD(dn,hn)};return a5(Un,{...pn,light:Z0e,quality:"auto",onAudioChange:mn,gameOver:null,onTap:()=>{if(dn.phase==="ready")pn.onStart();lde(dn)},columns:[Qn(an,"MOVES"),ma("ACTION",Rf.find((hn)=>hn.id===ln).label)],subtext:"Tap for next action · Drag to rotate",choices:Rf.map((hn)=>({id:hn.id,label:hn.label,selected:hn.id===ln,onPress:()=>fn(hn.id)}))})}),ut=Vn("play-with-tua",(rn)=>{let[nn,an]=bde(hD),[sn,ln]=bde(null);return R2t(()=>{if(nn)return;let cn=!0;return r5().then((un)=>{if(cn)an(un)}).catch((un)=>{if(cn)ln(un instanceof Error?un.message:String(un))}),()=>{cn=!1}},[nn]),a5(y,{ready:!!nn,loader:a5(b,{gameId:"play-with-tua",theme:rn.settings.theme,offset:rn.settings.offset,error:!!sn,message:sn??void 0}),children:nn&&a5(M2t,{...rn,model:nn})})})});import{memo as C2t,useCallback as w2t,useEffect as ED,useRef as L2t}from"react";import{jsx as O2t}from"react/jsx-runtime";var Rp,Ede,I2t;var Sde=e(()=>{Rp=T(S()),Ede=C2t(function({enabled:nn,insets:an,onStart:sn,onMove:ln,onEnd:cn,onCancel:un}){let dn=L2t(new Set),pn=w2t(()=>{dn.current.clear(),un()},[un]);ED(()=>{if(!nn)pn()},[nn,pn]),ED(()=>()=>pn(),[pn]),ED(()=>{if(Rp.Platform.OS!=="web")return;let hn=()=>{if(document.hidden)pn()};return window.addEventListener("blur",pn),document.addEventListener("visibilitychange",hn),()=>{window.removeEventListener("blur",pn),document.removeEventListener("visibilitychange",hn)}},[pn]);let mn=(hn)=>({identifier:hn.pointerId,pageX:hn.pageX,pageY:hn.pageY,timeStamp:hn.timeStamp}),fn=(hn,bn)=>{if(!nn&&bn!=="end")return;let yn=bn==="move"?hn.nativeEvent.touches:hn.nativeEvent.changedTouches;for(let En of yn){let Sn={identifier:En.identifier,pageX:En.pageX,pageY:En.pageY,timeStamp:hn.timeStamp};if(bn==="start")sn(Sn);else if(bn==="move")ln(Sn);else cn(Sn)}};return O2t(Rp.View,{collapsable:!1,pointerEvents:nn?"auto":"none",style:[I2t.surface,an,Rp.Platform.OS==="web"?{touchAction:"none"}:null],...Rp.Platform.OS==="web"?{onPointerDown:(hn)=>{let bn=hn;if(!nn||bn.button!==0)return;if(bn.isTrusted!==!1)bn.currentTarget.setPointerCapture(bn.pointerId);dn.current.add(bn.pointerId),sn(mn(bn))},onPointerMove:(hn)=>{if(nn)ln(mn(hn))},onPointerUp:(hn)=>{let bn=hn;dn.current.delete(bn.pointerId),cn(mn(bn))},onPointerCancel:pn,onLostPointerCapture:(hn)=>{if(dn.current.has(hn.pointerId))pn()}}:{onTouchStart:(hn)=>fn(hn,"start"),onTouchMove:(hn)=>fn(hn,"move"),onTouchEnd:(hn)=>fn(hn,"end"),onTouchCancel:pn}})}),I2t=Rp.StyleSheet.create({surface:{position:"absolute",top:0,right:0,bottom:0,left:0}})});var X0;var SD=e(()=>{X0={name:"Treasure Hunt Explorer",model:"explorer.glb",atlas:"../../textures/explorer-atlas.png",atlasSize:1024,atlasPackingSize:2048,atlasEncoding:{format:"png",palette:!0,quality:90,colours:256,dither:0.5},source:"https://github.com/olatunde85/3d-gen",sourceCommit:"0c3473d7d46a2badcdcd1dcfd4aeb0762eb04b20",assets:"https://ara3dgen.com/assets/",bodyAssets:"MakeHuman system assets",license:"CC0-1.0",motionCapture:"CMU Graphics Lab Motion Capture Database; see LICENSE.txt",modelSha256:"005ea2045b17e28dc36ab94347888c91d4a326983d7b4161e5104421c6883d40",compression:{extension:"EXT_meshopt_compression",originalBytes:2198876,compressedBytes:559820,floatBits:16,normalBits:16,rotationBits:16,uvBits:16,weightBits:16,preservesVertexOrder:!0,preservesTopology:!0,preservesAnimationTiming:!0},height:2.06,cameraHeight:1.44,vertexCount:17737,indexCount:103968,jointCount:66,runtime:"Native skeletal GLB with a shared texture atlas",soleVertices:[[10716,10744,10746,10748,10749,10750,10751,10752,10753,10754,10755,10756,10757,10758,10759,10760,10761,10762,10763,10764,10765,10766,10767,10768,10769,10770,10771,10772,10773,10774,10775,10776,10777,10778,10798,10812,10819,10820,10821,10822,10823,10824,10825,10826,10827,10828,10829,10830,10831,10832,10833,10834,10835,10836,10837,10838,10839,10840,10841,10842,10861,10862,10863,10864,10865,10866,10867,10869,10870,10871,10872,10873,10874,10875,10876,10877,10878,10906,10907,10908,10909,10910,10911,10912,10913,10914,10915,10916,10917,10918,10919,10920,10921,10922,10923,10966,10967,10968,10969,10970,10971,10972,10973,10974,10975,10976,10977,10978,10979,10980,10981,10984,10985,10986,10987,10990,10991,10992,10993,10994,10995,10996,10997,10998,10999,11000,11001,11002,11003,11004,11005,11006,11007,11008,11009,11030,11031,11032,11033,11034,11035,11036,11037,11038,11039,11040,11041,11054,11055,11056,11057,11058,11059,11060,11061,11062,11063,11064,11065,11066,11067,11068,11069,11070,11071,11072,11073,11118,11119,11120,11121,11122,11123,11124,11125,11126,11127,11128,11129,11130,11131,11132,11133,11135,11137,11138,11139,11140,11141,11142,11143,11144,11145,11146,11147,11148,11149,11150,11151,11152,11153,11169,11170,11171,11172,11173,11174,11175,11176,11177,11187,11188,11189,11190,11191,11192,11193,11194,11195,11196,11197,11198,11199,11200,11201,11292,11293,11294,11295,11296,11297,11298,11299,11300,11301,11302,11303,11304,11305,11306,11307,11308,11309,11310,11311,11312,11313,11314,11315,11316,11317,11318,11319,11320,11321,11322,11323,11324,11325,11326,11327,11328,11329,11330,11331,11332,11339,11343,11346,11347,11348,11349,11350,11351,11353,11354,11357,11358,11359,11361,11362,11363,11364,11365,11366,11367,11368,11369,11370,11376,11377,11390,11391,11392,11394,11395,11396,11397,11399,11400,11401,11402,11403,11404,11405,11406,11407,11408,11409,11410,11411,11412,11418,11419,11421,11422,11423,11426,11427,11428,11429,11430,11431,11432,11433,11434,11435,11436,11437,11438,11439,11448,11449,11450,11451,11452,11453,11454,11455,11456,11457,11458,11459,11460,11461,11462,11463,11464,11465,11466,11467,11468,11469,11470,11471,11472,11473,11474,11475,11478,11479,11480,11481,11482,11483,11484,11485,11486,11487,11488,11491,11492,11493,11494,11495,11496],[9918,9945,9948,9949,9951,9952,9953,9954,9955,9956,9957,9958,9959,9960,9961,9962,9963,9964,9965,9966,9967,9968,9969,9970,9971,9972,9973,9974,9975,9976,9977,9978,9979,9980,1e4,10014,10021,10022,10023,10024,10025,10026,10027,10028,10029,10030,10031,10032,10033,10034,10035,10036,10037,10038,10039,10040,10041,10042,10043,10044,10063,10064,10065,10066,10067,10068,10070,10071,10072,10073,10074,10075,10076,10077,10078,10079,10080,10108,10109,10110,10111,10112,10113,10114,10115,10116,10117,10118,10119,10120,10121,10122,10123,10124,10125,10168,10169,10170,10171,10172,10173,10174,10175,10176,10177,10178,10179,10180,10181,10182,10183,10186,10187,10188,10189,10192,10193,10194,10195,10196,10197,10198,10199,10200,10201,10202,10203,10204,10205,10206,10207,10208,10209,10210,10211,10232,10233,10234,10235,10236,10237,10238,10239,10240,10241,10242,10243,10256,10257,10258,10259,10260,10261,10262,10263,10264,10265,10266,10267,10268,10269,10270,10271,10272,10273,10274,10275,10320,10321,10322,10323,10324,10325,10326,10327,10328,10329,10330,10331,10332,10333,10334,10335,10338,10339,10340,10341,10342,10343,10344,10345,10346,10347,10348,10349,10350,10351,10352,10353,10354,10355,10371,10372,10373,10374,10375,10376,10377,10378,10379,10389,10390,10391,10392,10393,10394,10395,10396,10397,10398,10399,10400,10401,10402,10403,10494,10495,10496,10497,10498,10499,10500,10501,10502,10503,10504,10505,10506,10507,10508,10509,10510,10511,10512,10513,10514,10515,10516,10517,10518,10519,10520,10521,10522,10523,10524,10525,10526,10527,10528,10529,10530,10531,10532,10533,10534,10541,10543,10548,10549,10550,10551,10552,10553,10556,10557,10558,10560,10561,10563,10564,10565,10566,10567,10568,10569,10570,10571,10572,10578,10579,10592,10594,10595,10596,10597,10598,10599,10601,10602,10603,10604,10605,10606,10607,10608,10609,10610,10611,10612,10613,10615,10621,10622,10623,10624,10625,10628,10629,10630,10631,10632,10633,10634,10635,10636,10637,10638,10639,10640,10641,10650,10651,10652,10653,10654,10655,10656,10657,10658,10659,10660,10661,10662,10663,10664,10665,10666,10667,10668,10669,10670,10671,10672,10673,10674,10675,10676,10677,10680,10681,10682,10683,10684,10685,10686,10687,10688,10689,10690,10693,10694,10695,10696,10697,10698]],bodyContactVertices:[357,801,852,976,993,1043,1595,1619,1624,1640,1659,1661,1662,1665,1666,1669,1680,1702,1703,1715,1717,1736,1747,1749,1759,1760,1768,1769,1779,1783,1790,1791,1807,1808,1809,1811,1812,1813,1833,1834,1839,1844,1845,1846,1849,1873,1878,1879,1893,1894,1895,1896,1901,1922,1923,1925,1934,1938,1958,1961,1963,1964,1966,1967,1968,2002,2003,2017,2039,2040,2055,2060,2068,2069,2083,2084,2090,2093,2100,2111,2112,2121,2146,2149,2153,2159,2172,2173,2174,2178,2179,2180,2183,2184,2194,2195,2196,2197,2201,2206,2208,2211,2214,2215,2218,2221,2227,2234,2258,2260,2261,2262,2265,2266,2268,2279,2316,2340,2353,2356,2359,2367,2368,2381,2391,2393,2398,2412,2413,2445,2446,2448,2449,2450,2452,2457,2458,2459,2467,2478,2480,2483,2484,2492,2493,2494,2495,2496,2497,2498,2506,2507,2511,2512,2513,2514,2522,2524,2526,2532,2533,2558,2561,2562,2563,2564,2566,2569,2571,2572,2575,2579,2602,2603,2617,2631,2641,2653,2656,2665,2668,2682,2689,2699,2702,2709,2711,2748,2750,2751,2752,2758,2774,2775,2776,2780,2787,2794,2795,2796,2797,2799,2808,2809,2816,2818,2824,2827,2828,2831,2839,2851,2858,2859,2860,2862,2863,2865,2866,2869,2872,2884,2895,2898,2900,2901,2907,2908,2910,2918,2919,2922,2926,2953,2960,2968,2969,2970,2972,2996,3007,3063,3064,3067,3068,3075,3080,3086,3087,3091,3094,3095,3096,3098,3102,3106,3118,3119,3122,3144,3145,3147,3171,3195,3202,3208,3218,3275,3293,3294,3367,3368,3372,3373,3376,3380,3381,3384,3386,3387,3399,3411,3415,3416,3419,3435,3436,3439,3445,3566,3576,3626,3639,3741,3750,5017,5815,5820,5835,5851,5853,5854,5855,5858,5859,5872,5893,5894,5907,5909,5928,5937,5943,5951,5954,5961,5962,5973,5977,5982,5983,5999,6000,6001,6003,6005,6006,6026,6027,6029,6036,6038,6039,6043,6065,6070,6071,6085,6086,6087,6088,6094,6114,6115,6117,6126,6128,6150,6151,6156,6157,6158,6160,6161,6193,6194,6209,6229,6232,6247,6254,6261,6262,6276,6277,6283,6286,6290,6303,6306,6313,6338,6343,6347,6349,6364,6365,6366,6370,6371,6372,6375,6376,6386,6387,6388,6389,6394,6397,6399,6404,6405,6407,6410,6413,6419,6426,6450,6451,6452,6454,6455,6458,6460,6473,6508,6532,6546,6550,6551,6559,6562,6571,6582,6586,6592,6605,6606,6638,6639,6640,6642,6643,6644,6649,6650,6651,6661,6670,6672,6675,6676,6684,6685,6686,6687,6688,6689,6690,6697,6700,6703,6704,6705,6706,6714,6716,6718,6724,6725,6750,6751,6754,6756,6757,6758,6759,6764,6765,6769,6773,6793,6794,6809,6823,6835,6846,6850,6857,6858,6874,6883,6891,6892,6901,6903,6940,6942,6944,6945,6950,6966,6967,6968,6972,6979,6986,6987,6988,6989,6991,6999,7002,7009,7010,7016,7019,7020,7023,7031,7043,7050,7051,7052,7055,7056,7057,7058,7061,7064,7076,7088,7090,7092,7093,7099,7100,7102,7109,7110,7114,7120,7144,7152,7160,7161,7162,7163,7188,7199,7254,7256,7257,7260,7267,7272,7279,7280,7283,7286,7287,7288,7291,7294,7298,7310,7311,7312,7337,7338,7339,7361,7387,7395,7400,7410,7467,7485,7486,7559,7560,7564,7565,7568,7572,7573,7576,7578,7579,7593,7603,7607,7608,7611,7627,7628,7631,7637,7756,7766,7816,7829,7935,8173,9955,9976,9977,9994,10019,10023,10041,10061,10076,10139,10166,10177,10181,10187,10188,10327,10334,10396,10400,10417,10439,10442,10448,10461,10754,10774,10776,10794,10818,10821,10840,10858,10875,10939,10965,10975,10979,10985,10987,11125,11131,11196,11198,11215,11237,11240,11246,11259,11517,11632,11634,11639,11642,11644,11645,11648,11650,11709,11787,11793,11797,11799,11802,11804,11819,11822,11857,11860,11862,11869,11882,11917,11920,11921,11923,11924,11938,11964,11965,12001,12013,12058,12061,12062,12064,12078,12095,12096,12097,12099,12100,12102,12105,12112,12117,12120,12131,12145,12152,12157,12201,12202,12203,12205,12206,12209,12210,12216,12221,12237,12263,12294,12306,12320,12327,12330,12349,12364,12367,12368,12377,12378,12381,12384,12386,12396,12397,12400,12401,12404,12464,12489,12490,12578,12583,12585,12589,12593,12598,12599,12615,12622,12647,12659,12660,12697,12703,12715,12717,12720,12724,12727,12730,12742,12753,12773,12800,12806,12828,12915,12916,12941,12963,12970,12994,12996,12997,12999,13013,13015,13017,13027,13036,13039,13046,13048,13049,13050,13069,13072,13077,13082,13092,13093,13106,13107,13109,13110,13111,13122,13153,13158,13208,13209,13211,13212,13213,13216,13217,13222,13229,13245,13271,13301,13312,13327,13335,13340,13357,13370,13375,13378,13384,13385,13389,13392,13394,13405,13406,13409,13410,13414,13471,13496,13497,13583,13585,13589,13593,13599,13600,13617,13622,13647,13658,13659,13698,13703,13720,13723,13751,13771,13797,13826,13912,13914,13937,13965,13987,13990,13991,13993,14009,14011,14030,14033,14042,14043,14044,14063,14066,14076,14087,14088,14123,14148,14422,14423,14525,14528,14745,14747,14750,14751,14755,14770,14772,14784,14814,14817,14818,14832,14833,14835,14837,14863,14869,14870,14874,14892,14897,14919,14920,14925,14926,14930,14937,14940,14942,14943,14944,14949,14952,14953,14977,14979,14981,14991,14996,15002,15005,15079,15229,15245,15250,15254,15276,15284,15287,15295,15312,15313,15475,15481,15482,15483,15484,15505,15513,15514,15515,15546,15597,15623,15664,15702,15743,15799,15802,15863,15918,15978,16027,16228,16545,16696,16785,16787,16803,16897,16970,16977,17044,17211,17471,17677,17684],clips:{idle:{duration:3.2,loop:!0},walk:{duration:1.075,loop:!0},run:{duration:0.7333,loop:!0},punchStart:{duration:0.52,loop:!1},punchRight:{duration:0.52,loop:!1},punchLeft:{duration:0.52,loop:!1},combatIdle:{duration:1.3,loop:!0},combatExit:{duration:0.18,loop:!1},hit:{duration:0.42,loop:!1},fall:{duration:1.05,loop:!1},celebrate:{duration:1.6,loop:!0}},combat:{contactTime:0.16,choreography:"Planted stance, independent arm IK, torso-driven straight punches and guard transitions"},materialTiles:[{texture:"skin_young_caucasian_male.jpg",x:8,y:8,size:1008},{texture:"eyes_brownlight.png",x:8,y:1032,size:496},{texture:"eyebrows_eyebrow001.png",x:520,y:1032,size:496},{texture:"eyelashes_eyelashes01.png",x:1032,y:1032,size:496},{texture:"outfit_shoes01.jpg",x:1544,y:1032,size:496},{texture:"outfit_male_casualsuit05.jpg",x:1032,y:8,size:1008},{texture:"hair_short02.png",x:8,y:1544,size:496}]}});var ft={};n(ft,{ATTACK_COOLDOWN:()=>GS,ATTACK_HIT_TIME:()=>PD,ATTACK_RANGE:()=>s5,ENEMY_COUNT:()=>kS,GEM_GOAL:()=>bb,HUMAN_CAMERA_HEIGHT:()=>gS,HUMAN_CLIPS:()=>Ap,HUMAN_CLIP_TIME:()=>DS,HUMAN_GUARD_TIME:()=>TD,HUMAN_HEIGHT:()=>Af,HUMAN_LOOPS:()=>xD,MAX_HEALTH:()=>Mp,MINIMAP_SIZE:()=>ri,MOVEMENT_START:()=>NS,MOVEMENT_STOP:()=>yb,NATURE_LIGHT:()=>i5,NIGHT_LIGHT:()=>ND,NIGHT_SKY:()=>DD,PLAYER_RADIUS:()=>Mf,PLAYER_SPEED:()=>OD,POINTS_GEM:()=>CD,POINTS_HEALTH_BONUS:()=>ID,POINTS_ROBOT_DEFEAT:()=>LD,POINTS_ROBOT_HIT:()=>wD,SKY:()=>gD,TERRAIN_PROFILES:()=>MD,WORLD_EDGE:()=>oi,getCachedAssets:()=>GD,loadAssets:()=>l5,locomotionAnimation:()=>RD,locomotionRate:()=>AD,sounds:()=>qu,warmAssets:()=>N2t});function RD(rn,nn=null){if(rn<0.05)return"idle";return rn>=(nn==="run"?3.2:3.8)?"run":"walk"}function AD(rn,nn){let an=Math.max(0.65,Math.min(1.6,rn));if(nn!==void 0&&Math.abs(an-nn)<0.18)return nn;return Math.max(0.65,Math.min(1.6,Math.round(rn*4)/4))}function l5(){return _D??=(async()=>{let[{audio:rn,loadTexture:nn},{loadHumanAssets:an}]=await Promise.all([import("@nayan-ui/engine"),(Cz("8675t224"),import("./chunk-8675t224.js"))]);qu??=rn.load({gem:new URL("./assets/501994226995-coin.wav",import.meta.url).href,punch:new URL("./assets/970f7c59265d-swoosh.wav",import.meta.url).href,impact:new URL("./assets/9ab04403898b-clang.wav",import.meta.url).href,defeat:new URL("./assets/9d9c02ddc7ed-boom.wav",import.meta.url).href,hurt:new URL("./assets/01e2f0a0bbf6-hurt.wav",import.meta.url).href,win:new URL("./assets/b8900bb2c5c7-win.wav",import.meta.url).href,footstepWalk:new URL("./assets/c4aa9d773f2a-footstep_walk.wav",import.meta.url).href,footstepRun:new URL("./assets/aa0960e8bee6-footstep_run.wav",import.meta.url).href}),qu.ready.catch(()=>{});let[sn,ln,cn,un,dn,pn,mn]=await Promise.all([nn(new URL("./assets/b3c6225d055a-meadow.jpg",import.meta.url).href),nn(new URL("./assets/6ff9a6a13714-limestone.jpg",import.meta.url).href),nn(new URL("./assets/6e686dea513c-bark.jpg",import.meta.url).href),nn(new URL("./assets/7e1a902176f6-pine.png",import.meta.url).href),nn(new URL("./assets/a98ddb724460-leaves.png",import.meta.url).href),nn(new URL("./assets/87cc6d503ec6-river.jpg",import.meta.url).href),an()]);return vD={meadow:sn,stone:ln,bark:cn,pine:un,leaves:dn,water:pn,human:mn},vD})().catch((rn)=>{throw _D=void 0,rn}),_D}function*N2t(){yield l5}var g2t=0.52,D2t=0.16,TD=1.15,Af,gS,Ap,DS,xD,oi=128,MD=16,ri=124,Mp=5,bb=24,CD=200,wD=50,LD=300,ID=400,OD=6,Mf=0.5,NS=0.08,yb=0.04,s5=1.9,GS,PD,kS=8,gD,i5,DD,ND,qu,_D,vD=null,GD=()=>vD;var R=e(()=>{SD();Af=X0.height,gS=X0.cameraHeight,Ap=X0.clips,DS=Object.fromEntries(Object.entries(Ap).map(([rn,nn])=>[rn,nn.duration])),xD=new Set(Object.keys(Ap).filter((rn)=>Ap[rn].loop));GS=g2t,PD=D2t,gD=[0.62,0.77,0.86],i5={direction:[-0.55,0.85,-0.3],ambient:0.5,shadows:!0,shadowExtent:30,color:[1.15,1.09,0.94]},DD=[0.07,0.13,0.2],ND={...i5,ambient:0.52,color:[0.8,0.95,1.08]}});var dt={};n(dt,{BRIDGE_POST_HEIGHT:()=>m5,BRIDGE_POST_WIDTH:()=>_b,CAVE_INNER_HEIGHT:()=>p5,CAVE_INNER_WIDTH:()=>d5,ROCK_RINGS:()=>FS,ROCK_SIDES:()=>HS,TERRAIN_EDGE:()=>Tb,TERRAIN_GRID:()=>dl,bridgeBarriers:()=>h5,caveAt:()=>qD,caveClearance:()=>US,createState:()=>S5,groundHeight:()=>qa,groundTilt:()=>VS,hillRise:()=>Rb,isWalkable:()=>j0,landscapeFor:()=>xb,mapOverview:()=>zD,peekNextMap:()=>E5,random:()=>$0,riverWidth:()=>Sc,riverX:()=>Bl,rockSurface:()=>f5,solidClearance:()=>WS,step:()=>KD,surfaceAt:()=>zS,terrainHeight:()=>Cf,terrainMeshHeight:()=>b5,terrainSurface:()=>y5,toLocal:()=>Z0,toWorld:()=>pl,warmNextMap:()=>YD,waterLevel:()=>vb});function f5(rn,nn,an){let sn=1+Math.sin(nn*3+an*5+rn)*0.12+Math.cos(nn*7-an*3)*0.05,ln=[Math.sin(an)*Math.cos(nn),Math.cos(an),Math.sin(an)*Math.sin(nn)];return{position:[ln[0]*sn,Math.max(-0.2,ln[1]*sn*0.8+0.45),ln[2]*sn*0.9],normal:ln}}function B2t(rn){let nn=_de.get(rn);if(nn)return nn;let an=[],sn=1/0,ln=-1/0;for(let pn=0;pn<=FS;pn++)for(let mn=0;mn<HS;mn++){let{position:[fn,hn,bn]}=f5(rn,mn/HS*Math.PI*2,pn/FS*Math.PI);an.push({x:fn,z:bn}),sn=Math.min(sn,hn),ln=Math.max(ln,hn)}an.sort((pn,mn)=>pn.x-mn.x||pn.z-mn.z);let cn=(pn,mn,fn)=>(mn.x-pn.x)*(fn.z-pn.z)-(mn.z-pn.z)*(fn.x-pn.x),un=(pn)=>{let mn=[];for(let fn of pn){while(mn.length>1&&cn(mn[mn.length-2],mn[mn.length-1],fn)<=0)mn.pop();mn.push(fn)}return mn.pop(),mn},dn={points:[...un(an),...un([...an].reverse())],bottom:sn,top:ln};return _de.set(rn,dn),dn}function Cde(rn,nn,an,sn,ln,cn){return{shape:"circle",tag:rn,x:nn,z:an,radius:sn,bottom:ln,top:cn,minX:nn-sn,maxX:nn+sn,minZ:an-sn,maxZ:an+sn}}function wde(rn,nn,an,sn,ln,cn){return{shape:"polygon",tag:rn,x:nn,z:an,points:sn,bottom:ln,top:cn,minX:Math.min(...sn.map((un)=>un.x)),maxX:Math.max(...sn.map((un)=>un.x)),minZ:Math.min(...sn.map((un)=>un.z)),maxZ:Math.max(...sn.map((un)=>un.z))}}function F2t(rn,nn,an,sn,ln,cn,un,dn){let pn=Math.cos(cn),mn=Math.sin(cn),fn=[[-sn,-ln],[sn,-ln],[sn,ln],[-sn,ln]].map(([hn,bn])=>({x:nn+pn*hn+mn*bn,z:an-mn*hn+pn*bn}));return wde(rn,nn,an,fn,un,dn)}function Lde(rn,nn,an,sn,ln,cn){let un=B2t(cn),dn=Math.cos(ln),pn=Math.sin(ln),mn=un.points.map((fn)=>({x:rn+dn*fn.x*sn[0]+pn*fn.z*sn[2],z:an-pn*fn.x*sn[0]+dn*fn.z*sn[2]}));return wde("rock",rn,an,mn,nn+un.bottom*sn[1],nn+un.top*sn[1])}function H2t(rn,nn,an){if(rn.shape==="circle")return Math.hypot(nn-rn.x,an-rn.z)-rn.radius;let sn=1/0,ln=!0;for(let cn=0;cn<rn.points.length;cn++){let un=rn.points[cn],dn=rn.points[(cn+1)%rn.points.length],pn=dn.x-un.x,mn=dn.z-un.z,fn=pn*pn+mn*mn;if(pn*(an-un.z)-mn*(nn-un.x)<-0.0000000001)ln=!1;let hn=Math.max(0,Math.min(1,((nn-un.x)*pn+(an-un.z)*mn)/fn));sn=Math.min(sn,(nn-un.x-pn*hn)**2+(an-un.z-mn*hn)**2)}return Math.sqrt(sn)*(ln?-1:1)}function HD(rn,nn){for(let an=Math.floor((nn.minX-c5)/Eb);an<=Math.floor((nn.maxX+c5)/Eb);an++)for(let sn=Math.floor((nn.minZ-c5)/Eb);sn<=Math.floor((nn.maxZ+c5)/Eb);sn++){let ln=`${an},${sn}`,cn=rn.get(ln)??[];cn.push(nn),rn.set(ln,cn)}}function WS(rn,nn,an,sn,ln,cn){let un=1/0;for(let dn of rn.get(`${Math.floor(nn/Eb)},${Math.floor(an/Eb)}`)??[]){if(dn.top<=ln+0.001||dn.bottom>=cn)continue;un=Math.min(un,H2t(dn,nn,an)-sn)}return un}function h5(rn){let nn=[];for(let an of[-1,1]){let sn=an*(rn.halfWidth-G2t);nn.push({kind:"rail",x:0,z:sn,halfX:rn.halfLength,halfZ:k2t/2});for(let ln=-rn.halfLength+0.2;ln<=rn.halfLength;ln+=2)nn.push({kind:"post",x:ln,z:sn,halfX:_b/2,halfZ:_b/2})}return nn}function $0(rn){let nn=rn>>>0;return()=>{nn+=1831565813;let an=Math.imul(nn^nn>>>15,1|nn);return an^=an+Math.imul(an^an>>>7,61|an),((an^an>>>14)>>>0)/4294967296}}function xb(rn){let nn=xde.get(rn);if(nn)return nn;let an=$0(rn*7919+314159),sn={profile:rn,phase:an()*Math.PI*2,hills:Array.from({length:9},(ln,cn)=>({x:(cn%2?-1:1)*(34+an()*65),z:-95+an()*190,height:2+an()*4,width:16+an()*22,depth:16+an()*22,yaw:an()*Math.PI*2})),caves:[],bridges:[]};for(let[ln,cn]of[[-36-an()*12,15+an()*13],[47+an()*12,-45+an()*12]]){let un={x:ln,z:cn,y:vb(sn,cn)+1+Pde(sn,ln,cn),length:20};sn.caves.push(un)}for(let ln of[-46,-2,58])sn.bridges.push({x:Bl(sn,ln),z:ln,halfLength:Sc(sn,ln)+4.5,halfWidth:2.8,y:vb(sn,ln)+1.08});return xde.set(rn,sn),sn}function Bl(rn,nn){return 10+Math.sin(nn*0.035+rn.phase)*11+Math.sin(nn*0.073)*2}function Sc(rn,nn){return 4.8+Math.sin(nn*0.05+rn.phase)*0.6}function vb(rn,nn){return 0.018*nn}function Rb(rn,nn,an){let sn=Rde.get(rn);if(!sn)sn=rn.hills.map((dn)=>({hill:dn,cos:Math.cos(dn.yaw),sin:Math.sin(dn.yaw)})),Rde.set(rn,sn);let ln=0;for(let{hill:dn,cos:pn,sin:mn}of sn){let fn=dn.width*0.8,hn=nn-dn.x,bn=an-dn.z,yn=(hn*pn+bn*mn)/fn,En=(-hn*mn+bn*pn)/(dn.depth*0.8),Sn=Math.max(0,1-yn*yn-En*En);ln+=dn.height*Sn**2}let cn=6*Sb((Math.hypot(nn,an)-111)/17);if(ln===0)return cn;let un=Math.abs(nn-Bl(rn,an))-Sc(rn,an);for(let dn of rn.bridges){let pn=Math.max(0,Math.abs(nn-dn.x)-dn.halfLength-3),mn=Math.hypot(pn,an-dn.z);ln*=Sb((mn-dn.halfWidth-2)/6)}for(let dn of rn.caves)ln*=Sb((VD(dn,nn,an)-8.5)/5);return ln*Sb((un-3)/10)+cn}function Pde(rn,nn,an){return 0.08*Math.sin(nn*0.12+rn.phase)*Math.cos(an*0.11)}function W2t(rn,nn,an){let sn=Math.abs(nn-Bl(rn,an)),ln=Sc(rn,an),cn=vb(rn,an);if(sn<=ln)return cn-1.8*(1-(sn/ln)**4);let un=Sb((sn-ln)/1.4),dn=Pde(rn,nn,an);return cn+un*(1+dn+Rb(rn,nn,an))}function Cf(rn,nn,an){let sn=W2t(rn,nn,an);for(let ln of rn.caves){let cn=1-Sb((VD(ln,nn,an)-5.8)/4);sn+=(ln.y-sn)*cn}return sn}function b5(rn,nn,an){let sn=vde.get(rn),ln=dl.length;if(!sn)sn=Float32Array.from({length:ln*ln},(hn,bn)=>Cf(rn,dl[bn%ln],dl[Math.floor(bn/ln)])),vde.set(rn,sn);let cn=(hn)=>Math.max(0,Math.min(ln-2,hn<-oi?Math.floor((hn+Tb)/6):hn<oi?u5+Math.floor((hn+oi)/Ide):u5+WD+Math.floor((hn-oi)/6))),un=cn(nn),dn=cn(an),pn=dn*ln+un,mn=Math.max(0,Math.min(1,(nn-dl[un])/(dl[un+1]-dl[un]))),fn=Math.max(0,Math.min(1,(an-dl[dn])/(dl[dn+1]-dl[dn])));return mn+fn<=1?sn[pn]+mn*(sn[pn+1]-sn[pn])+fn*(sn[pn+ln]-sn[pn]):sn[pn+ln+1]+(1-mn)*(sn[pn+ln]-sn[pn+ln+1])+(1-fn)*(sn[pn+1]-sn[pn+ln+1])}function VD(rn,nn,an){return Math.hypot(nn-rn.x,Math.max(0,Math.abs(an-rn.z)-rn.length/2+3.5))}function US(rn,nn,an){return Math.min(...rn.caves.map((sn)=>VD(sn,nn,an)-7),1/0)}function y5(rn,nn,an){let sn=Math.abs(nn-Bl(rn,an)),ln=Sc(rn,an);if(sn<=ln)return"river";if(sn<ln+1.4)return"shore";if(US(rn,nn,an)<0)return"cave";return Rb(rn,nn,an)>0.35?"hill":"grass"}function pl(rn,nn,an){let{sin:sn,cos:ln}=gde(rn);return{x:ln*nn+sn*an,z:-sn*nn+ln*an}}function Z0(rn,nn,an){let{sin:sn,cos:ln}=gde(rn);return{x:ln*nn-sn*an,z:sn*nn+ln*an}}function gde(rn){let nn=Ade.get(rn);if(!nn||nn.angle!==rn.rotation)nn={angle:rn.rotation,sin:Math.sin(rn.rotation),cos:Math.cos(rn.rotation)},Ade.set(rn,nn);return nn}function qa(rn,nn,an){let sn=Z0(rn,nn,an);return Dde(rn.landscape,sn.x,sn.z)?.y??b5(rn.landscape,sn.x,sn.z)}function VS(rn,nn,an,sn=0){let ln=Math.cos(sn)*0.12,cn=Math.sin(sn)*0.12,un=(qa(rn,nn+ln,an-cn)-qa(rn,nn-ln,an+cn))/0.24,dn=(qa(rn,nn+cn,an+ln)-qa(rn,nn-cn,an-ln))/0.24,pn=Math.hypot(un,1,dn),mn=[-dn/pn,0,un/pn,1+1/pn],fn=Math.hypot(...mn);return[mn[0]/fn,0,mn[2]/fn,mn[3]/fn]}function Dde(rn,nn,an){return rn.bridges.find((sn)=>Math.abs(nn-sn.x)<=sn.halfLength&&Math.abs(an-sn.z)<=sn.halfWidth)}function zS(rn,nn,an){let sn=Z0(rn,nn,an);return Dde(rn.landscape,sn.x,sn.z)?"bridge":y5(rn.landscape,sn.x,sn.z)}function Nde(rn,nn){let an=Mde.get(rn);if(!an)an=new Map,Mde.set(rn,an);let sn=an.get(nn);if(!sn)sn={row:0,cells:Array(nn*nn).fill(null)},an.set(nn,sn);return sn}function Gde(rn,nn,an,sn){let ln=Math.min(nn,an.row+sn);for(;an.row<ln;an.row++){let cn=((an.row+0.5)/nn*2-1)*oi;for(let un=0;un<nn;un++){let dn=((un+0.5)/nn*2-1)*oi;an.cells[an.row*nn+un]=Math.hypot(dn,cn)>rn.edge-4?null:zS(rn,dn,cn)}}}function zD(rn,nn){let an=Nde(rn,nn);return Gde(rn,nn,an,nn),an.cells}function qD(rn,nn,an){let sn=Z0(rn,nn,an);return rn.landscape.caves.find((ln)=>Math.abs(sn.x-ln.x)<5.8&&Math.abs(sn.z-ln.z)<ln.length/2+0.2)}function U2t(rn,nn,an){let sn=d5*0.975*Math.sqrt(1-((Af+0.12)/(p5*0.975))**2),ln=-1/0;for(let cn of rn.caves)ln=Math.max(ln,Math.min(sn-Math.abs(nn-cn.x),cn.length/2+5-Math.abs(an-cn.z)));return ln}function kde(rn,nn,an){let sn=Math.min(Math.abs(nn-Bl(rn,an))-Sc(rn,an)-1.4,0.35-Rb(rn,nn,an),US(rn,nn,an)),ln=Math.max(sn,U2t(rn,nn,an));for(let cn of rn.bridges)ln=Math.max(ln,Math.min(cn.halfLength-Math.abs(nn-cn.x),cn.halfWidth-Math.abs(an-cn.z)));return ln}function V2t(rn,nn,an,sn=Mf){let ln=rn.edge-4-sn-Math.hypot(nn,an);for(let[un,dn]of Ode){let pn=Z0(rn,nn+un*sn,an+dn*sn);ln=Math.min(ln,kde(rn.landscape,pn.x,pn.z))}let cn=qa(rn,nn,an);return Math.min(ln,WS(rn.obstacleCells,nn,an,sn,cn+0.02,cn+Af))}function j0(rn,nn,an,sn=Mf){if(!Number.isFinite(nn+an)||Math.hypot(nn,an)+sn>rn.edge-4)return!1;let ln=qa(rn,nn,an);for(let[cn,un]of Ode){let dn=nn+cn*sn,pn=an+un*sn,mn=Z0(rn,dn,pn);if(kde(rn.landscape,mn.x,mn.z)<-0.00000001)return!1;if(Math.abs(qa(rn,dn,pn)-ln)>Math.max(0.25,sn*0.5))return!1}return WS(rn.obstacleCells,nn,an,sn,ln+0.02,ln+Af)>=-0.00000001}function z2t(rn,nn){let an=qa(rn,nn.x,nn.z)-0.07;HD(rn.obstacleCells,nn.kind==="rock"?Lde(nn.x,an,nn.z,[nn.scale,nn.scale,nn.scale],nn.yaw,nn.style):Cde("tree",nn.x,nn.z,0.32*nn.scale,an-0.45*nn.scale,an+(nn.kind==="pine"?9.4:8.2)*nn.scale))}function q2t(rn){let nn=$0(rn.seed^6790115),an=(sn)=>{rn.decorations.push(sn),HD(rn.obstacleCells,sn.kind==="rock"?Lde(sn.x,sn.y,sn.z,sn.scale,sn.yaw,sn.style):Cde("tree",sn.x,sn.z,0.32*sn.scale[0],sn.y-0.45*sn.scale[1],sn.y+9.4*sn.scale[1]))};for(let sn of rn.landscape.bridges)for(let ln of h5(sn)){let cn=pl(rn,sn.x+ln.x,sn.z+ln.z);HD(rn.obstacleCells,F2t(ln.kind==="rail"?"bridge-rail":"bridge-post",cn.x,cn.z,ln.halfX,ln.halfZ,rn.rotation,sn.y+(ln.kind==="rail"?0.445:0),sn.y+(ln.kind==="rail"?1.025:m5)))}for(let sn=0;sn<90;sn++){let ln=sn/90*Math.PI*2,cn=rn.edge+7+nn()*18,un=Math.cos(ln)*cn,dn=Math.sin(ln)*cn;an({kind:"rock",area:"horizon",x:un,z:dn,y:qa(rn,un,dn)-2,scale:[5+nn()*5,3+nn()*4,5+nn()*5],yaw:ln,style:sn%4}),an({kind:"pine",area:"horizon",x:un*0.92,z:dn*0.92,y:qa(rn,un*0.92,dn*0.92),scale:[1.8,1.8,1.8],yaw:ln,style:sn%4})}for(let sn of rn.landscape.caves){for(let ln=0;ln<14;ln++){let cn=pl(rn,sn.x+(nn()-0.5)*5,sn.z-8+ln%7*2.6),un=sn.y+5.5+nn()*0.4,dn=[2+nn(),1+nn(),1.7+nn()];an({kind:"rock",area:"cave-roof",...cn,y:un,scale:dn,yaw:nn()*Math.PI*2,style:ln%4})}for(let ln of[-1,1])for(let cn=0;cn<7;cn++){let un=pl(rn,sn.x+ln*(5.4+nn()*1.6),sn.z-9+cn*3);an({kind:"rock",area:"cave-entrance",...un,y:sn.y-0.2,scale:[1.5,1.8+nn(),2],yaw:cn,style:cn%4})}}}function*Y2t(rn){let an=new Set(["0,0"]),sn=[[0,0]],ln=[],cn=Math.floor((-rn.edge-rn.spawn.x)*2),un=Math.floor((-rn.edge-rn.spawn.z)*2),dn=Math.ceil(rn.edge*4)+3,pn=new Uint8Array(dn*dn),mn=(fn,hn)=>{let bn=fn-cn,yn=hn-un;if(bn<0||yn<0||bn>=dn||yn>=dn)return!1;let En=yn*dn+bn,Sn=pn[En];if(!Sn)Sn=j0(rn,rn.spawn.x+fn*0.5,rn.spawn.z+hn*0.5,0.75)?1:2,pn[En]=Sn;return Sn===1};for(let fn=0;fn<sn.length;fn++){if(fn&&fn%64===0)yield;let[hn,bn]=sn[fn],yn={x:rn.spawn.x+hn*3,z:rn.spawn.z+bn*3};ln.push(yn);for(let[En,Sn]of[[1,0],[-1,0],[0,1],[0,-1],[1,1],[-1,1],[1,-1],[-1,-1]]){let _n=hn+En,vn=bn+Sn,Tn=`${_n},${vn}`;if(an.has(Tn))continue;if(!mn(_n*6,vn*6)){an.add(Tn);continue}let Rn=!0;for(let An=1;An<6;An++)if(!mn(hn*6+En*An,bn*6+Sn*An)){Rn=!1;break}if(Rn)an.add(Tn),sn.push([_n,vn])}}return ln}function*UD(rn){let nn=$0(rn),an=xb((rn>>>0)%MD),sn={seed:rn,edge:oi,rotation:nn()*Math.PI*2,landscape:an,spawn:{x:0,z:0},props:[],decorations:[],obstacleCells:new Map,reachable:[],gems:[],enemies:[]},ln={x:Bl(an,-16)-13,z:-16},cn=pl(sn,ln.x,ln.z);for(let pn=0;pn<30&&!j0(sn,cn.x,cn.z,1.2);pn++)for(let mn=0;mn<24;mn++){let fn=pl(sn,ln.x+Math.cos(mn/24*Math.PI*2)*pn,ln.z+Math.sin(mn/24*Math.PI*2)*pn);if(zS(sn,fn.x,fn.z)==="grass"&&j0(sn,fn.x,fn.z,1.2)){cn=fn;break}}sn.spawn=cn,q2t(sn),yield;for(let pn=0;pn<700;pn++){if(pn&&pn%100===0)yield;let mn=nn()*Math.PI*2,fn=Math.sqrt(nn())*(oi-7),hn=Math.cos(mn)*fn,bn=Math.sin(mn)*fn,yn=Z0(sn,hn,bn);if(kD({x:hn,z:bn},sn.spawn)<9||Math.abs(yn.x-Bl(an,yn.z))<Sc(an,yn.z)+2.5)continue;if(an.bridges.some((vn)=>Math.abs(yn.z-vn.z)<vn.halfWidth+3&&Math.abs(yn.x-vn.x)<vn.halfLength+5))continue;if(an.caves.some((vn)=>Math.abs(yn.x-vn.x)<10&&Math.abs(yn.z-vn.z)<18))continue;if(!j0(sn,hn,bn,1.1))continue;let En=nn()<0.24?"rock":nn()<0.65?"pine":"birch",Sn=En==="rock"?0.65+nn()*2.2:0.75+nn()*1.05,_n={x:hn,z:bn,kind:En,scale:Sn,yaw:nn()*Math.PI*2,style:Math.floor(nn()*4)};sn.props.push(_n),z2t(sn,_n)}sn.reachable=yield*Y2t(sn);let un=[...sn.reachable];for(let pn=un.length-1;pn>0;pn--){let mn=Math.floor(nn()*(pn+1));[un[pn],un[mn]]=[un[mn],un[pn]]}let dn=(pn,mn,fn,hn)=>{for(let bn of un){if(pn.length===mn)break;if(kD(bn,sn.spawn)>=hn&&pn.every((yn)=>kD(bn,yn)>=fn))pn.push({...bn})}if(pn.length!==mn)throw Error("The wilderness needs more reachable objective positions")};return dn(sn.gems,bb,12,6),dn(sn.enemies,kS,24,22),sn}function Bde(rn){let nn=rn.next();while(!nn.done)nn=rn.next();return nn.value}function Hde(rn=Fde()){return Bde(UD(rn))}function*YD(){if(!wp){let sn=Fde();wp={seed:sn,builder:UD(sn),done:!1}}let rn=wp;while(!rn.done)yield()=>{if(rn.done)return;let sn;try{sn=rn.builder.next()}catch(ln){throw rn.builder=UD(rn.seed),ln}if(sn.done)rn.map=sn.value,rn.done=!0};if(wp!==rn)return;let nn=rn.map,an=Nde(nn,ri);while(wp===rn&&an.row<ri)yield()=>Gde(nn,ri,an,4)}function K2t(){let rn=wp;if(wp=void 0,!rn)return Hde();if(!rn.done)rn.map=Bde(rn.builder),rn.done=!0;return rn.map}function S5(rn){let nn=rn===void 0?K2t():Hde(rn);return{map:nn,phase:"ready",player:{...nn.spawn},yaw:nn.rotation,health:Mp,gems:0,defeated:0,score:0,time:0,attackCooldown:0,attackPending:0,invulnerable:0,moving:!1,speed:0,velocity:{x:0,z:0},yawVelocity:0,enemies:nn.enemies.map((an,sn)=>({...an,home:{...an},id:sn,health:2,yaw:0,windup:0,recovery:0,stagger:0,moving:!1})),pickups:nn.gems.map((an,sn)=>({...an,id:sn,taken:!1}))}}function BD(rn,nn,an,sn,ln=Mf,cn=[]){let un=(bn,yn)=>j0(rn,bn,yn,ln)&&cn.every((En)=>{let Sn=Math.hypot(bn-En.x,yn-En.z),_n=Math.hypot(nn.x-En.x,nn.z-En.z);return Sn>=ln+En.radius-0.00000001||_n<ln+En.radius&&Sn>_n+0.00000001}),dn=(bn,yn)=>Math.min(V2t(rn,bn,yn,ln),...cn.map((En)=>Math.hypot(bn-En.x,yn-En.z)-En.radius-ln)),pn=Math.max(1,Math.ceil(Math.hypot(an,sn)/0.2)),mn=an/pn,fn=sn/pn,hn=Math.hypot(mn,fn);if(hn<0.00000001)return;for(let bn=0;bn<pn;bn++){if(un(nn.x+mn,nn.z+fn)){nn.x+=mn,nn.z+=fn;continue}let yn=0,En=1;for(let Dn=0;Dn<9;Dn++){let Nn=(yn+En)/2;if(un(nn.x+mn*Nn,nn.z+fn*Nn))yn=Nn;else En=Nn}let Sn=Math.max(0,yn-0.003/hn);nn.x+=mn*Sn,nn.z+=fn*Sn;let _n=0.08,vn=dn(nn.x+_n,nn.z)-dn(nn.x-_n,nn.z),Tn=dn(nn.x,nn.z+_n)-dn(nn.x,nn.z-_n),Rn=Math.hypot(vn,Tn);if(Rn<0.00000001)continue;let An=vn/Rn,Mn=Tn/Rn,Cn=Math.min(0,mn*An+fn*Mn),Ln=(mn-Cn*An)*(1-Sn),On=(fn-Cn*Mn)*(1-Sn);if(Math.hypot(Ln,On)<0.002)continue;for(let Dn of[1,0.5,0.25])if(un(nn.x+Ln*Dn,nn.z+On*Dn)){nn.x+=Ln*Dn,nn.z+=On*Dn;break}}}function FD(rn,nn){let an=rn.enemies.filter((sn)=>sn!==nn&&sn.health>0).map((sn)=>({x:sn.x,z:sn.z,radius:0.5}));if(nn!==rn.player)an.push({...rn.player,radius:Mf});return an}function BS(rn,nn,an){if(Math.abs(qa(rn,nn.x,nn.z)-qa(rn,an.x,an.z))>1.6)return!1;let sn=Math.ceil(Cp(nn,an)/0.4);for(let ln=1;ln<sn;ln++){let cn=ln/sn;if(!j0(rn,nn.x+(an.x-nn.x)*cn,nn.z+(an.z-nn.z)*cn,0.25))return!1}return!0}function KD(rn,nn,an){if(rn.phase!=="playing")return[];let sn=Math.min(0.05,Math.max(0,an));if(sn===0)return[];let ln=[],cn=(En,Sn,_n)=>ln.push({kind:En,...Sn,id:_n});rn.time+=sn,rn.attackCooldown=Math.max(0,rn.attackCooldown-sn),rn.invulnerable=Math.max(0,rn.invulnerable-sn);let un=Math.hypot(nn.x,nn.y),dn=un>=(rn.moving?yb:NS),pn=dn?nn.x/Math.max(1,un):0,mn=dn?-nn.y/Math.max(1,un):0;if(nn.attack&&rn.attackCooldown===0){let En=rn.enemies.filter((Sn)=>Sn.health>0&&Cp(Sn,rn.player)<=s5&&BS(rn.map,rn.player,Sn)).sort((Sn,_n)=>Cp(Sn,rn.player)-Cp(_n,rn.player))[0];if(En)rn.yaw=Math.atan2(En.x-rn.player.x,En.z-rn.player.z),rn.yawVelocity=0;rn.attackCooldown=GS,rn.attackPending=PD,cn("attack",rn.player)}let fn=rn.player.x,hn=rn.player.z,bn=OD*(rn.attackPending>0?0.3:1),yn=1-Math.exp(-sn/0.065);if(!dn)rn.velocity.x=0,rn.velocity.z=0,rn.yawVelocity=0;if(dn&&rn.attackPending<=0){let En=Math.atan2(pn,mn),Sn=Math.atan2(Math.sin(En-rn.yaw),Math.cos(En-rn.yaw)),_n=12,vn=Math.exp(-12*sn),Tn=(rn.yawVelocity-12*Sn)*sn,Rn=(-Sn+Tn)*vn,An=Math.max(-5*sn,Math.min(5*sn,Sn+Rn));if(rn.yawVelocity=Math.max(-5,Math.min(5,(rn.yawVelocity-12*Tn)*vn)),An*Sn>0&&Math.abs(An)>Math.abs(Sn))An=Sn,rn.yawVelocity=0;rn.yaw+=An}if(dn){let En=Math.sin(rn.yaw),Sn=Math.cos(rn.yaw),_n=Math.max(0,(pn*En+mn*Sn)/Math.max(0.00000001,Math.hypot(pn,mn))),vn=bn*_n*_n;rn.velocity.x+=(pn*vn-rn.velocity.x)*yn,rn.velocity.z+=(mn*vn-rn.velocity.z)*yn;let Tn=Math.min(0,rn.velocity.x*En+rn.velocity.z*Sn);rn.velocity.x-=Tn*En,rn.velocity.z-=Tn*Sn}if(BD(rn.map,rn.player,rn.velocity.x*sn,rn.velocity.z*sn,Mf,FD(rn,rn.player)),rn.velocity.x=(rn.player.x-fn)/sn,rn.velocity.z=(rn.player.z-hn)/sn,rn.speed=Math.hypot(rn.player.x-fn,rn.player.z-hn)/sn,rn.moving=rn.speed>0.001,rn.attackPending>0){if(rn.attackPending=Math.max(0,rn.attackPending-sn),rn.attackPending===0)for(let En of rn.enemies){let Sn=Cp(En,rn.player);if(En.health<=0||Sn>s5||!BS(rn.map,rn.player,En))continue;if(((En.x-rn.player.x)*Math.sin(rn.yaw)+(En.z-rn.player.z)*Math.cos(rn.yaw))/(Sn||1)<0.15&&Sn>0.8)continue;if(En.health--,En.stagger=0.35,En.windup=0,BD(rn.map,En,Math.sin(rn.yaw)*0.65,Math.cos(rn.yaw)*0.65,0.65,FD(rn,En)),cn(En.health===0?"defeated":"hit",En,En.id),rn.score+=En.health===0?LD:wD,En.health===0)rn.defeated++,rn.pickups.push({x:En.x,z:En.z,id:rn.pickups.length,taken:!1})}}for(let En of rn.enemies){if(En.moving=!1,En.health<=0)continue;if(En.recovery=Math.max(0,En.recovery-sn),En.stagger=Math.max(0,En.stagger-sn),En.stagger>0)continue;let Sn=Cp(En,rn.player);if(En.windup>0){if(En.windup=Math.max(0,En.windup-sn),En.windup===0){if(En.recovery=1.2,Sn<2.1&&rn.invulnerable===0&&BS(rn.map,En,rn.player)){if(rn.health--,rn.invulnerable=1.2,cn("hurt",rn.player),rn.health===0)return rn.phase="lost",cn("lost",rn.player),ln}}continue}let _n=Sn<13&&BS(rn.map,En,rn.player);if(_n&&Sn<1.25&&En.recovery===0)En.windup=0.6,En.yaw=Math.atan2(rn.player.x-En.x,rn.player.z-En.z);else{let vn={x:En.home.x+Math.sin(rn.time*0.45+En.id)*1.8,z:En.home.z+Math.cos(rn.time*0.45+En.id)*1.8},Tn=_n?rn.player:vn,Rn=Tn.x-En.x,An=Tn.z-En.z,Mn=Math.hypot(Rn,An);if(Mn>(_n?1.05:0.2)){let Cn=_n?2.7:1.1,Ln={x:En.x,z:En.z};BD(rn.map,En,Rn/Mn*Cn*sn,An/Mn*Cn*sn,0.65,FD(rn,En)),En.yaw=Math.atan2(Rn,An),En.moving=Cp(Ln,En)/sn>0.05}}}for(let En of rn.pickups)if(!En.taken&&Cp(En,rn.player)<1.2&&Math.abs(qa(rn.map,En.x,En.z)-qa(rn.map,rn.player.x,rn.player.z))<1.2&&BS(rn.map,rn.player,En))En.taken=!0,rn.gems++,rn.score+=CD,cn("gem",En,En.id);if(rn.gems>=bb&&rn.defeated===rn.enemies.length)rn.phase="won",rn.score+=rn.health*ID,cn("won",rn.player);return ln}var Eb=8,c5=1.5,FS=12,HS=18,d5=3.5,p5=4.8,G2t=0.15,k2t=0.09,_b=0.3,m5=1.12,_de,Ide=1.6,Tb,u5=8,WD,dl,vde,Tde,xde,Rde,Ade,Ode,Sb=(rn)=>{let nn=Math.max(0,Math.min(1,rn));return nn*nn*(3-2*nn)},kD=(rn,nn)=>Math.hypot(rn.x-nn.x,rn.z-nn.z),Mde,Fde=()=>Tde=Tde+2654435769>>>0,wp,E5=()=>wp?.map,Cp=(rn,nn)=>Math.hypot(rn.x-nn.x,rn.z-nn.z);var w=e(()=>{R();_de=new Map;Tb=oi+48,WD=Math.round(oi*2/Ide),dl=Float32Array.from([...Array.from({length:u5},(rn,nn)=>-Tb+nn*6),...Array.from({length:WD+1},(rn,nn)=>-oi+nn*oi*2/WD),...Array.from({length:u5},(rn,nn)=>oi+(nn+1)*6)]),vde=new WeakMap,Tde=Math.random()*4294967295>>>0;xde=new Map,Rde=new WeakMap,Ade=new WeakMap,Ode=Array.from({length:9},(rn,nn)=>{let an=(nn-1)/8*Math.PI*2;return[nn?Math.cos(an):0,nn?Math.sin(an):0]});Mde=new WeakMap});function Ude(rn){rn.x=rn.y=0,rn.filtered.x=rn.filtered.y=0,rn.filterActive=!1,rn.touchId=null,rn.startX=rn.startY=0}function T5(rn){Ude(rn),rn.contacts.clear()}function Vde(rn,nn,an=0){if(!Number.isFinite(nn.pageX+nn.pageY)||rn.contacts.has(nn.identifier))return;if(rn.contacts.set(nn.identifier,{x:nn.pageX,y:nn.pageY,time:an,dragged:!1}),rn.touchId!==null)return;rn.touchId=nn.identifier,rn.startX=nn.pageX,rn.startY=nn.pageY,rn.x=rn.y=0,rn.filtered.x=rn.filtered.y=0,rn.filterActive=!1}function zde(rn,nn){let an=rn.contacts.get(nn.identifier);if(an&&Math.hypot(nn.pageX-an.x,nn.pageY-an.y)>qS)an.dragged=!0;if(rn.touchId===null||rn.touchId!==nn.identifier)return;let sn=nn.pageX-rn.startX,ln=nn.pageY-rn.startY,cn=Math.hypot(sn,ln);if(!Number.isFinite(cn)||cn<=qS){rn.x=rn.y=0;return}if(cn>_5)rn.startX=nn.pageX-sn/cn*_5,rn.startY=nn.pageY-ln/cn*_5;let un=Math.min(1,(cn-qS)/(_5-qS)),dn=un*un*(3-2*un);rn.x=sn/cn*dn,rn.y=-ln/cn*dn}function qde(rn,nn){if(rn.touchId===null)return rn.filtered.x=rn.filtered.y=0,rn.filterActive=!1,rn.filtered;let an=Math.max(0,Math.min(0.05,nn)),sn=1-Math.exp(-an/j2t);rn.filtered.x+=(rn.x-rn.filtered.x)*sn,rn.filtered.y+=(rn.y-rn.filtered.y)*sn;let ln=Math.hypot(rn.filtered.x,rn.filtered.y);if(ln>=NS)rn.filterActive=!0;else if(ln<yb)rn.filterActive=!1;return rn.filterActive?rn.filtered:$2t}function Yde(rn,nn,an=0){let sn=rn.contacts.get(nn.identifier),ln=sn?an-sn.time:1/0,cn=!!sn&&!sn.dragged&&ln>=0&&ln<=X2t&&Math.hypot(nn.pageX-sn.x,nn.pageY-sn.y)<=qS;if(rn.contacts.delete(nn.identifier),nn.identifier===rn.touchId)Ude(rn);return cn}function Kde(rn,nn,an=0,sn){let ln={eye:[0,0,0],target:[0,0,0],fov:0.95,follow:{target:rn,offset:v5,smoothing:0.045}};return jD(ln,nn,an,sn),ln}function XD(rn,nn,an,sn,ln=0){if(!rn.follow)return;let cn=-Math.sin(nn),un=-Math.cos(nn),dn=v5[2],pn=v5[1];if(an&&sn){let mn=qa(an,sn.x,sn.z),fn=qD(an,sn.x,sn.z);if(fn)pn=0.65;for(;dn>=1.5;dn-=0.25){let hn=!0,bn=pn;for(let yn=1;yn<=12;yn++){let En=yn/12,Sn=sn.x+cn*dn*En,_n=sn.z+un*dn*En;bn=Math.max(bn,(qa(an,Sn,_n)+0.6-mn-YS)/En);let vn=Z0(an,Sn,_n);for(let Rn of an.landscape.caves){let An=Math.abs(vn.x-Rn.x),Mn=An<5.8&&Math.abs(vn.z-Rn.z)<=Rn.length/2+0.1,Cn=mn+YS+pn*En;if(Mn&&Cn<Rn.y+7&&(An>2.8||Cn>Rn.y+4.7*Math.sqrt(Math.max(0,1-(An/3.5)**2))-0.35))hn=!1}let Tn=mn+YS+pn*En;if(WS(an.obstacleCells,Sn,_n,0.35,Tn-0.35,Tn+0.35)<0)hn=!1}if(fn&&bn>pn+0.1)hn=!1;if(hn){pn=Math.min(5,bn);break}}}if(ln>0){let mn=rn.follow.offset,fn=Math.hypot(mn[0],mn[2]),hn=dn<fn?0.055:0.2;if(dn=fn+(dn-fn)*(1-Math.exp(-ln/hn)),pn=mn[1]+(pn-mn[1])*(1-Math.exp(-ln/0.12)),an&&sn){let bn=qa(an,sn.x,sn.z);pn=Math.max(pn,qa(an,sn.x+cn*dn,sn.z+un*dn)+0.35-bn-YS)}}rn.follow.offset=[cn*dn,pn,un*dn]}function jD(rn,nn,an=0,sn){XD(rn,an,sn,nn);let ln=(sn?qa(sn,nn.x,nn.z):0)+YS,cn=rn.follow?.offset??v5;rn.target=[nn.x,ln,nn.z],rn.eye=[nn.x+cn[0],ln+cn[1],nn.z+cn[2]],rn.shake=0}function Xde(rn,nn,an){if(Math.hypot(rn.x,rn.y)<=yb)return an.active=!1,rn;if(!an.active)an.yaw=nn,an.active=!0;let sn=Math.sin(an.yaw),ln=Math.cos(an.yaw);return{...rn,x:-ln*rn.x+sn*rn.y,y:-sn*rn.x-ln*rn.y}}function jde(rn){let nn=null,an=0,sn=0,ln=()=>{rn.stop(nn),nn=null,an=0};return{stop:ln,update(cn,un){an=Math.max(0,an-Math.max(0,Math.min(0.05,un)));let{animation:dn,from:pn,to:mn,speed:fn,audible:hn}=cn;if(!hn||fn<0.15||dn!=="walk"&&dn!=="run"){ln();return}if(pn===mn||an>0)return;let bn=Z2t[dn].findIndex((En)=>pn<mn?En>pn&&En<=mn:En>pn||En<=mn);if(bn<0)return;rn.stop(nn);let yn=dn==="run";nn=rn.play(yn?"footstepRun":"footstepWalk",{volume:(yn?0.5:0.35)*Math.min(1,fn/(yn?4:1.6)),pitch:[0.97,1.02,1,1.04][sn++%4],pan:bn===0?-0.06:0.06}),an=0.17}}}var qS=8,_5=80,X2t=280,j2t=0.035,Wde=()=>({x:0,y:0,filtered:{x:0,y:0},filterActive:!1,touchId:null,startX:0,startY:0,contacts:new Map}),$2t,v5,YS,Z2t;var $D=e(()=>{R();w();$2t={x:0,y:0};v5=[0,0.8,4.1],YS=gS;Z2t={walk:[0.44,0.94],run:[0.22,0.72]}});var ko={};n(ko,{popAndBurst:()=>Xs,popBurst:()=>Lf,stickBlast:()=>t6,warmAssets:()=>eSt});import{effects as wf,extrude as JD,Path as e6}from"@nayan-ui/engine";function Lf(rn,nn){let[an,sn,ln]=nn.color;wf.sparkle(rn,{position:nn.position,count:nn.count??8,size:nn.size*0.2,speed:nn.size*6,lifetime:0.45,colors:[nn.color,$de],flash:!1});let cn=rn.spawn({mesh:Zde(),position:[nn.position[0],nn.position[1],nn.glowZ??nn.position[2]],scale:nn.size*0.85,color:[an,sn,ln,0.6],pickable:!1});rn.animate(cn,{scale:nn.size*2.8,color:[an,sn,ln,0]},{duration:0.28}).then(()=>{if(rn.has(cn))rn.despawn(cn)})}function Xs(rn,nn,an,sn){let ln=an.delay??0,cn=an.duration??wf.POP_TIME;if(ln>0)rn.after(ln+cn*0.12,()=>Lf(rn,sn));else Lf(rn,sn);return wf.pop(rn,nn,an)}function t6(rn,nn,an){let[sn,ln]=an.scale,[cn,un,dn,pn]=an.rotation,mn=[1-2*(un*un+dn*dn),2*(cn*un+pn*dn),2*(cn*dn-pn*un)],fn=[2*(cn*dn+pn*un),2*(un*dn-pn*cn),1-2*(cn*cn+un*un)],hn=(Sn,_n=0)=>[an.position[0]+mn[0]*sn*Sn+fn[0]*_n,an.position[1]+mn[1]*sn*Sn+fn[1]*_n,an.position[2]+mn[2]*sn*Sn+fn[2]*_n],bn=Xs(rn,nn,{scale:an.scale,color:an.color,duration:0.32},{position:hn(0,ln*0.6),size:Math.max(ln*1.6,sn*0.24),color:an.color,count:14});ZD=Qde(),wf.shatter(rn,{position:hn(0,ln*0.4),mesh:ZD,count:7,size:sn*0.16,speed:sn*2,lifetime:0.5,gravity:-sn*4,colors:[an.color,wf.pale(an.color,0.4,1)],flash:!1,dust:!1});for(let Sn of[-1,1])wf.sparks(rn,{position:hn(Sn*0.32,ln*0.5),count:4,size:ln*0.18,speed:sn*2.5,lifetime:0.35,gravity:-sn*1.5,direction:[mn[0]*Sn,mn[1]*Sn,mn[2]*Sn],spread:0.9,colors:[an.color,$de],flash:!1});QD=Jde();let yn=wf.pale(an.color,0.45,0.9),En=rn.spawn({mesh:QD,position:hn(0,ln*0.8),rotation:an.rotation,scale:ln*1.8,color:yn,pickable:!1});return rn.animate(En,{scale:sn*1.1,color:Q2t(yn)},{duration:0.32,easing:"easeOut"}).then(()=>{if(rn.has(En))rn.despawn(En)}),bn}function*eSt(){yield Zde,yield Qde,yield Jde}var $de,Q2t=(rn)=>[rn[0],rn[1],rn[2],0],J2t=null,Zde=()=>Bn("shared/EngineBlasts:discMesh",()=>J2t??=wn(JD(new e6().addCircle(0,0,0.5),{depth:0}))),ZD=null,QD=null,Qde=()=>Bn("shared/EngineBlasts:stickChipMesh",()=>ZD??=wn(JD(new e6().addRoundedRect(-0.5,-0.09,1,0.18,0.07),{depth:0.16}),{shine:0.25})),Jde=()=>Bn("shared/EngineBlasts:catchRingMesh",()=>QD??=wn(JD(new e6().addCircle(0,0,0.5).addCircle(0,0,0.465),{depth:0,fillRule:"evenodd"})));var f=e(()=>{na();$de=[1,1,1,1]});function epe(rn,nn,an=!0){let sn=an?Math.max(0,Math.min(rn[0][1],rn[1][1])):0;return Math.max(nn[0]-rn[0][1],nn[1]-rn[1][1])+sn}class Q0{vertices=[];indices=[];vertex(rn,nn,an,sn=[1,1,1]){let ln=this.vertices.length/11;return this.vertices.push(...rn,...nn,sn[0],sn[1],sn[2],...an),ln}quad(rn,nn,an,sn,ln=!1){if(this.indices.push(rn,nn,an,rn,an,sn),ln)this.indices.push(an,nn,rn,sn,an,rn)}geometry(){return{vertices:new Float32Array(this.vertices),indices:new Uint32Array(this.indices)}}}function tpe(){let rn=new Q0,nn=rn.vertex([0,0,0],[0,1,0],[0.5,0.5]);for(let an=0;an<=32;an++){let sn=an/32*Math.PI*2;if(rn.vertex([Math.cos(sn),0,Math.sin(sn)],[0,1,0],[(Math.cos(sn)+1)/2,(Math.sin(sn)+1)/2]),an>0)rn.indices.push(nn,an+1,an)}return rn.geometry()}function ope(){let rn=new Q0,nn=(hn,bn,yn,En=0)=>Array.from({length:hn},(Sn,_n)=>{let vn=_n/hn*Math.PI*2+En;return[Math.cos(vn)*bn,yn,Math.sin(vn)*bn]}),an=nn(8,0.25,0.34),sn=nn(8,0.365,0.245,Math.PI/8),ln=nn(16,0.52,0.085),cn=nn(16,0.52,0.055),un=nn(8,0.3,-0.23,Math.PI/8),dn=[0,-0.6,0],pn=[[0.88,0.97,1.08],[0.55,0.75,0.89],[1.12,1.17,1.2],[0.74,0.86,0.98]],mn=[[0.46,0.64,0.81],[0.98,1.08,1.17],[0.7,0.87,1.03],[1.16,1.2,1.24]],fn=(hn,bn)=>{let yn=hn[0],En=hn[1],Sn=hn[2],_n=[En[0]-yn[0],En[1]-yn[1],En[2]-yn[2]],vn=[Sn[0]-yn[0],Sn[1]-yn[1],Sn[2]-yn[2]],Tn=[_n[1]*vn[2]-_n[2]*vn[1],_n[2]*vn[0]-_n[0]*vn[2],_n[0]*vn[1]-_n[1]*vn[0]],Rn=hn.reduce((Ln,On)=>[Ln[0]+On[0]/hn.length,Ln[1]+On[1]/hn.length,Ln[2]+On[2]/hn.length],[0,0,0]),An=Tn[0]*Rn[0]+Tn[1]*(Rn[1]+0.1)+Tn[2]*Rn[2]<0,Mn=Math.hypot(...Tn)*(An?-1:1);Tn[0]/=Mn,Tn[1]/=Mn,Tn[2]/=Mn;let Cn=hn.map((Ln)=>rn.vertex(Ln,Tn,[Ln[0]+0.5,Ln[2]+0.5],bn));for(let Ln=1;Ln<Cn.length-1;Ln++)rn.indices.push(Cn[0],Cn[An?Ln+1:Ln],Cn[An?Ln:Ln+1])};fn(an,[1.03,1.1,1.16]);for(let hn=0;hn<8;hn++){let bn=(hn+1)%8,yn=(hn+7)%8,En=hn*2,Sn=En+1,_n=(En+2)%16;fn([an[hn],an[bn],sn[hn]],pn[hn%4]),fn([an[hn],sn[hn],ln[En],sn[yn]],pn[(hn+2)%4]),fn([sn[hn],ln[En],ln[Sn]],pn[(hn+1)%4]),fn([sn[hn],ln[Sn],ln[_n]],pn[(hn+3)%4]),fn([dn,un[yn],cn[En],un[hn]],mn[hn%4]),fn([un[hn],cn[En],cn[Sn]],mn[(hn+2)%4]),fn([un[hn],cn[Sn],cn[_n]],mn[(hn+1)%4])}for(let hn=0;hn<16;hn++)fn([ln[hn],cn[hn],cn[(hn+1)%16],ln[(hn+1)%16]],[0.83,0.94,1.04]);return rn.geometry()}function*rpe(rn){let nn=xb(rn),an=new Q0,sn={meadow:[],stone:[],shore:[]},ln=dl.length-1,cn=(_n)=>{if(_n.index!==void 0)return _n.index;let{x:vn,z:Tn}=_n,Rn=b5(nn,vn,Tn),An=(Cf(nn,vn+0.15,Tn)-Cf(nn,vn-0.15,Tn))/0.3,Mn=(Cf(nn,vn,Tn+0.15)-Cf(nn,vn,Tn-0.15))/0.3,Cn=Math.hypot(An,1,Mn),Ln=0.87+0.09*Math.sin(vn*0.13+Math.sin(Tn*0.1));return _n.index=an.vertex([vn,Rn,Tn],[-An/Cn,1/Cn,-Mn/Cn],[vn/3,Tn/3],[Ln,Ln,Ln*0.95]),_n.index},un=[];for(let _n=0;_n<=ln;_n++){for(let vn=0;vn<=ln;vn++){let Tn={x:dl[vn],z:dl[_n]};cn(Tn),un.push(Tn)}if(_n%2===1)yield}let dn=(_n,vn)=>{if(_n.length<3)return;let Tn=_n.map(cn);for(let Rn=1;Rn<Tn.length-1;Rn++){let An=_n[0],Mn=_n[Rn],Cn=_n[Rn+1];if(Math.abs((Mn.x-An.x)*(Cn.z-An.z)-(Mn.z-An.z)*(Cn.x-An.x))>0.00000001)vn.push(Tn[0],Tn[Rn],Tn[Rn+1])}},pn=(_n,vn)=>{let Tn=[],Rn=[];for(let An=0;An<_n.length;An++){let Mn=_n[An],Cn=_n[(An+1)%_n.length],Ln=vn(Mn),On=vn(Cn);if((Ln<=0?Tn:Rn).push(Mn),Ln<=0!==On<=0){let Dn=0,Nn=1;for(let qn=0;qn<10;qn++){let Kn=(Dn+Nn)/2;if(vn({x:Mn.x+(Cn.x-Mn.x)*Kn,z:Mn.z+(Cn.z-Mn.z)*Kn})<=0===Ln<=0)Dn=Kn;else Nn=Kn}let Wn=(Dn+Nn)/2,Fn={x:Mn.x+(Cn.x-Mn.x)*Wn,z:Mn.z+(Cn.z-Mn.z)*Wn};Tn.push(Fn),Rn.push(Fn)}}return[Tn,Rn]},mn=(_n)=>_n==="grass"?sn.meadow:_n==="hill"||_n==="cave"?sn.stone:sn.shore,fn=(_n)=>{let vn=_n.map((Fn)=>un[Fn]),Tn=vn.map((Fn)=>y5(nn,Fn.x,Fn.z));if(Tn.every((Fn)=>Fn===Tn[0])){dn(vn,mn(Tn[0]));return}let Rn=(Fn)=>Math.abs(Fn.x-Bl(nn,Fn.z))-Sc(nn,Fn.z),[An,Mn]=pn(vn,Rn);dn(An,sn.shore);let[Cn,Ln]=pn(Mn,(Fn)=>Rn(Fn)-1.4);dn(Cn,sn.shore);let[On,Dn]=pn(Ln,(Fn)=>US(nn,Fn.x,Fn.z));dn(On,sn.stone);let[Nn,Wn]=pn(Dn,(Fn)=>Rb(nn,Fn.x,Fn.z)-0.35);dn(Nn,sn.meadow),dn(Wn,sn.stone)};for(let _n=0;_n<ln;_n++){for(let vn=0;vn<ln;vn++){let Tn=_n*(ln+1)+vn,Rn=Tn+ln+1;fn([Tn,Rn,Tn+1]),fn([Tn+1,Rn,Rn+1])}if(_n%2===1)yield}let hn=new Float32Array(an.vertices),bn=(_n)=>{let vn=new Int32Array(hn.length/11).fill(-1),Tn=[],Rn=new Uint32Array(_n.length);for(let An=0;An<_n.length;An++){let Mn=_n[An],Cn=vn[Mn];if(Cn<0){Cn=Tn.length/11,vn[Mn]=Cn;for(let Ln=0;Ln<11;Ln++)Tn.push(hn[Mn*11+Ln])}Rn[An]=Cn}return{vertices:new Float32Array(Tn),indices:Rn}},yn=bn(sn.meadow);yield;let En=bn(sn.stone);yield;let Sn=bn(sn.shore);return{meadow:yn,stone:En,shore:Sn}}function npe(rn){let nn=new Q0;for(let ln=0;ln<=512;ln++){let cn=-Tb+ln*Tb*2/512;for(let un=0;un<=8;un++){let dn=un/8*2-1,pn=Bl(rn,cn)+dn*Sc(rn,cn),mn=vb(rn,cn)+0.04,fn=Math.abs(dn),hn=Math.sin(cn*4.7+dn*8)*0.015,bn=0.86+0.12*Math.sin(cn*2.2+dn*17);nn.vertex([pn,mn+hn*(1-fn),cn],[0,1,0],[un/8,cn*0.3],[0.18*bn+fn*0.15,0.48*bn+fn*0.2,0.49*bn+fn*0.2])}}for(let ln=0;ln<512;ln++)for(let cn=0;cn<8;cn++){let un=ln*9+cn,dn=un+8+1;nn.quad(un,dn,dn+1,un+1,!0)}return nn.geometry()}function ape(){let rn=new Q0,sn=(un)=>{let dn=rn.vertices.length/11;for(let pn=0;pn<=12;pn++)for(let mn=0;mn<=28;mn++){let fn=mn/28*Math.PI,hn=-10+pn/12*20,bn=un?1+Math.sin(mn*2.1+pn*1.7)*0.045:1+Math.sin(mn*1.6+pn*2)*0.025,yn=un?5.8:d5,En=un?7:p5,Sn=un?1:-1;rn.vertex([Math.cos(fn)*yn*bn,Math.sin(fn)*En*bn-0.12,hn],[Math.cos(fn)*Sn,Math.sin(fn)*Sn,0],[mn/28*4,hn/3],un?[0.9,0.92,0.86]:[0.48,0.54,0.49])}for(let pn=0;pn<12;pn++)for(let mn=0;mn<28;mn++){let fn=dn+pn*29+mn,hn=fn+28+1;rn.quad(fn,fn+1,hn+1,hn,!0)}return dn},ln=sn(!0),cn=sn(!1);for(let un of[0,12])for(let dn=0;dn<28;dn++){let pn=ln+un*29+dn,mn=cn+un*29+dn,fn=[pn,pn+1,mn+1,mn].map((hn)=>{let bn=hn*11,yn=rn.vertices[bn],En=rn.vertices[bn+1],Sn=rn.vertices[bn+2];return rn.vertex([yn,En,Sn],[0,0,un===0?-1:1],[yn/3,En/3],[0.78,0.82,0.76])});rn.quad(fn[0],fn[1],fn[2],fn[3],!0)}return rn.geometry()}function spe(rn){let nn=new Q0,an=FS,sn=HS;for(let ln=0;ln<=an;ln++)for(let cn=0;cn<=sn;cn++){let{position:un,normal:dn}=f5(rn,cn/sn*Math.PI*2,ln/an*Math.PI);nn.vertex(un,dn,[cn/sn*2,ln/an],[0.86,0.89,0.82])}for(let ln=0;ln<an;ln++)for(let cn=0;cn<sn;cn++){let un=ln*(sn+1)+cn,dn=un+sn+1;nn.quad(un,un+1,dn+1,dn,!0)}return nn.geometry()}function ipe(rn,nn){let an=$0(173+nn*67+(rn?3:0)),sn=new Q0,ln=rn?74:56;for(let cn=0;cn<ln;cn++){let un=cn*2.399+an(),dn=cn/ln,pn=rn?4.8+dn*4.5:5.3+an()*2.7,mn=rn?(1-dn*0.83)*2.6:0.5+an()*2,fn=[Math.cos(un)*mn*0.7,pn,Math.sin(un)*mn*0.7],hn=rn?mn*1.6:1.8+an(),bn=rn?1.2:1.6+an(),yn=rn?0.3+an()*0.3:-0.8+an()*1.6,En=[Math.cos(un)*hn/2,0,Math.sin(un)*hn/2],Sn=[-Math.sin(un)*bn*Math.cos(yn)/2,Math.sin(yn)*bn/2,Math.cos(un)*bn*Math.cos(yn)/2],_n=0.7+an()*0.32,vn=[[-1,-1,0,1],[1,-1,1,1],[1,1,1,0],[-1,1,0,0]].map(([Tn,Rn,An,Mn])=>sn.vertex([fn[0]+En[0]*Tn+Sn[0]*Rn,fn[1]+Sn[1]*Rn,fn[2]+En[2]*Tn+Sn[2]*Rn],[0,0.9,0.25],[An,Mn],[_n,_n,_n]));sn.quad(vn[0],vn[1],vn[2],vn[3],!0)}return sn.geometry()}function lpe(rn){let nn=$0(rn+543),an=new Q0;for(let sn=0;sn<24;sn++){let ln=(nn()-0.5)*1.8,cn=(nn()-0.5)*1.8,un=0.12+nn()*0.26,dn=nn()*Math.PI*2,pn=Math.cos(dn)*0.008,mn=Math.sin(dn)*0.008,fn=[0.3+nn()*0.16,0.4+nn()*0.2,0.12+nn()*0.1],hn=an.vertex([ln-pn,0,cn-mn],[0,1,0],[0,0],fn),bn=an.vertex([ln+pn,0,cn+mn],[0,1,0],[1,0],fn),yn=an.vertex([ln+0.06,un,cn+0.025],[0,1,0],[0.5,1],fn);an.indices.push(hn,bn,yn,yn,bn,hn)}return an.geometry()}var o6=e(()=>{w()});var Go={};n(Go,{advanceHuman:()=>mt,loadHumanAssets:()=>No,placeContactShadow:()=>Qe,placeHuman:()=>$e,placeRobot:()=>V,playHuman:()=>x,resetHuman:()=>Ze,spawnContactShadow:()=>z,spawnHuman:()=>pt,spawnRobot:()=>U,warmAssets:()=>en});import{lathe as tSt,loadModel as oSt,loadTexture as rSt,merge as nSt,quat as J0,shapeGeometry as aSt,tube as cpe}from"@nayan-ui/engine";function No(){return r6??=(async()=>{let[rn,nn]=await Promise.all([oSt(new URL("./assets/005ea2045b17-explorer.glb",import.meta.url).href,{center:!1,fit:Af,shine:0.055}),rSt(new URL("./assets/01fc0ecf658c-explorer-atlas.png",import.meta.url).href)]);if(!rn.jointCount||Object.keys(Ap).some((an)=>!rn.animations.some((sn)=>sn.name===an)))throw Error("The explorer is missing its native skeletal animation clips");return{model:rn,atlas:nn,soleIndices:new Uint32Array(X0.soleVertices.flat()),supportIndices:new Uint32Array([...X0.soleVertices.flat(),...X0.bodyContactVertices]),leftCount:X0.soleVertices[0].length}})().catch((rn)=>{throw r6=void 0,rn}),r6}function pt(rn,nn,an){let sn=rn.spawn({mesh:"none",position:nn,pickable:!1}),ln=rn.spawn({mesh:an.model,texture:an.atlas,parent:sn,pickable:!1});return{root:sn,body:ln,animation:null,rate:1,strikes:0,phase:0,indices:an.soleIndices,supportIndices:an.supportIndices,samples:new Float32Array(an.supportIndices.length*3),leftCount:an.leftCount,soles:[[0,0,0],[0,0,0]],shadows:[z(rn,sn),z(rn,sn)]}}function $e(rn,nn,an,sn,ln,cn=0,un){let dn=nn.animation==="fall";if(!rn.sampleSkinnedVertices(nn.body,dn?nn.supportIndices:nn.indices,nn.samples,cn))return;for(let hn=0;hn<2;hn++){let bn=hn===0?0:nn.leftCount,yn=hn===0?nn.leftCount:nn.indices.length,En=1/0,Sn=0,_n=0,vn=0;for(let Tn=bn;Tn<yn;Tn++)En=Math.min(En,nn.samples[Tn*3+1]);for(let Tn=bn;Tn<yn;Tn++)if(nn.samples[Tn*3+1]<=En+0.008)Sn+=nn.samples[Tn*3],_n+=nn.samples[Tn*3+2],vn++;nn.soles[hn][0]=Sn/vn,nn.soles[hn][1]=En,nn.soles[hn][2]=_n/vn}let pn=nn.soles,mn=pn.map((hn)=>{let bn=pl({rotation:ln},hn[0],hn[2]);return qa(an,sn.x+bn.x,sn.z+bn.z)}),fn=epe(pn,[mn[0],mn[1]],nn.animation==="run");if(dn)for(let hn=nn.indices.length;hn<nn.supportIndices.length;hn++){let bn=hn*3,yn=pl({rotation:ln},nn.samples[bn],nn.samples[bn+2]);fn=Math.max(fn,qa(an,sn.x+yn.x,sn.z+yn.z)-nn.samples[bn+1])}(un??rn).set(nn.root,{position:[sn.x,fn,sn.z],rotation:J0.y(ln)}),pn.forEach((hn,bn)=>{let yn=pl({rotation:ln},hn[0],hn[2]),En=Math.max(0,fn+hn[1]-mn[bn]);Qe(rn,nn.shadows[bn],[hn[0],mn[bn]-fn+0.006,hn[2]],VS(an,sn.x+yn.x,sn.z+yn.z,ln),0.11+En*0.08,0.19+En*0.1,0.09*Math.exp(-En*6),un)})}function x(rn,nn,an,sn=1){let ln=nn.animation===an&&xD.has(an),cn=AD(sn,ln?nn.rate:void 0);if(ln&&nn.rate===cn)return;if(!ln)nn.phase=0;nn.animation=an,nn.rate=cn,rn.playClip(nn.body,an,{loop:Ap[an].loop,speed:cn,fade:an==="hit"?0.04:0.08,...!ln?{time:0}:{}})}function Ze(rn,nn){nn.animation="idle",nn.rate=0,nn.strikes=0,nn.phase=0,rn.playClip(nn.body,"idle",{loop:!0,speed:0,time:0,fade:0})}function mt(rn,nn){if(!rn.animation)return;let an=Ap[rn.animation],sn=rn.phase+nn*rn.rate/an.duration;rn.phase=an.loop?sn%1:Math.min(1,sn)}function dpe(){return Bn("treasure-hunt/TreasureHuntModel:prepareRobot",()=>sSt())}function sSt(){if(x5)return x5;let rn=[{geometry:tSt([[0.21,0.88],[0.29,0.94],[0.36,1.22],[0.32,1.38],[0.19,1.43]],{segments:12,color:Lp}),scale:[1,1,0.62]},Ls("cylinder",[0,1.06,0],[0.22,0.7,0.22],ml),ni([0,1.23,0.21],[0.46,0.3,0.065],If),ni([0,0.97,0.15],[0.37,0.16,0.055],Lp),ni([0,1.18,-0.21],[0.38,0.4,0.18],ml),Ls("cylinder",[0,1.49,0],[0.17,0.15,0.17],_c),Ls("torus",[0,1.27,0.255],[0.17,0.17,0.05],_c,J0.x(Math.PI/2)),Ls("sphere",[0,1.27,0.28],[0.105,0.105,0.035],[2,0.52,0.12])];for(let un of[-1,1]){rn.push(Ls("sphere",[un*0.37,1.36,0],[0.21,0.23,0.24],ml),Ls("cylinder",[un*0.22,1.25,-0.27],[0.105,0.44,0.105],If)),rn.push({geometry:cpe([[un*0.26,0.94,0.12],[un*0.31,1.03,0.15],[un*0.35,1.24,0.1]],{radius:0.018,sides:6,color:upe})});for(let dn of[1.11,1.34])rn.push(Of(un*0.195,dn,0.255));for(let dn=0;dn<4;dn++)rn.push(ni([un*0.15,1.13+dn*0.035,0.249],[0.095,0.012,0.018],ml))}let nn=[ni([0,1.7,0],[0.45,0.31,0.35],If),ni([0,1.52,0.025],[0.36,0.1,0.29],Lp),ni([0,1.7,0.178],[0.34,0.175,0.028],ml),ni([0,1.845,0],[0.28,0.035,0.2],Lp),ni([0,1.58,0.17],[0.17,0.025,0.025],ml)];for(let un of[-1,1])nn.push(Ls("sphere",[un*0.084,1.718,0.202],[0.072,0.065,0.036],[2,0.17,0.07]),Ls("torus",[un*0.084,1.718,0.195],[0.095,0.095,0.035],_c,J0.x(Math.PI/2)),Of(un*0.18,1.79,0.172),Of(un*0.18,1.6,0.172)),nn.push(Ls("cylinder",[un*0.24,1.7,0],[0.06,0.14,0.13],ml));nn.push({geometry:cpe([[0.18,1.82,-0.03],[0.21,1.99,-0.05],[0.18,2.05,-0.05]],{radius:0.012,sides:6,color:If})},Ls("sphere",[0.18,2.05,-0.05],[0.035,0.035,0.035],[1.7,0.18,0.1]));let an=[Ls("sphere",[0,0,0],[0.2,0.2,0.21],_c),Ls("cylinder",[0,-0.17,0],[0.11,0.31,0.12],ml),ni([0,-0.15,0.045],[0.18,0.26,0.16],Lp),Ls("cylinder",[0,-0.29,0],[0.14,0.1,0.15],_c)];for(let un of[-1,1])an.push(Ls("cylinder",[un*0.06,-0.16,-0.05],[0.025,0.25,0.025],_c),Of(un*0.055,-0.09,0.128));let sn=[Ls("sphere",[0,0,0],[0.13,0.13,0.14],ml),ni([0,-0.16,0.015],[0.17,0.28,0.19],If),ni([0,-0.2,0.12],[0.1,0.12,0.025],Lp),Ls("cylinder",[0,-0.31,0],[0.09,0.06,0.1],_c),ni([0,-0.36,0.02],[0.16,0.1,0.14],ml)];for(let un of[-1,1])sn.push(ni([un*0.063,-0.42,0.045],[0.043,0.12,0.07],If),ni([un*0.063,-0.47,0.08],[0.044,0.05,0.1],_c),Of(un*0.053,-0.1,0.12));let ln=[Ls("sphere",[0,0,0],[0.19,0.2,0.19],ml),Ls("cylinder",[0,-0.18,0],[0.115,0.34,0.12],_c),ni([0,-0.17,0.045],[0.19,0.26,0.16],Lp),ni([0,-0.13,0.13],[0.085,0.11,0.025],upe),Ls("sphere",[0,-0.34,0.01],[0.19,0.17,0.2],ml)],cn=[Ls("sphere",[0,0,0],[0.16,0.16,0.17],_c),ni([0,-0.16,0.02],[0.17,0.29,0.17],Lp),Ls("cylinder",[0,-0.2,-0.055],[0.075,0.33,0.075],ml),ni([0,-0.405,0.075],[0.23,0.12,0.35],ml),ni([0,-0.365,0.12],[0.23,0.07,0.24],If)];for(let un of[-1,1])cn.push(Ls("cylinder",[un*0.083,-0.16,0.015],[0.026,0.28,0.026],_c),Of(un*0.075,-0.04,0.1),Of(un*0.08,-0.36,0.24));return x5={chassis:Ab(rn),head:Ab(nn,0.6),arm:Ab(an),forearm:Ab(sn,0.6),thigh:Ab(ln),shin:Ab(cn,0.6)},x5}function U(rn,nn,an,sn){let ln=dpe(),cn=rn.spawn({mesh:"none",position:[nn,an,sn],pickable:!1}),un=(Tn,Rn,An)=>rn.spawn({mesh:Tn,parent:Rn,position:An,pickable:!1}),dn=un(ln.chassis,cn,[0,0,0]),pn=un(ln.head,cn,[0,0,0]),mn=un(ln.arm,cn,[-0.41,1.38,0]),fn=un(ln.arm,cn,[0.41,1.38,0]),hn=un(ln.forearm,mn,[0,-0.31,0]),bn=un(ln.forearm,fn,[0,-0.31,0]),yn=un(ln.thigh,cn,[-0.2,0.86,0]),En=un(ln.thigh,cn,[0.2,0.86,0]),Sn=un(ln.shin,yn,[0,-0.34,0]),_n=un(ln.shin,En,[0,-0.34,0]),vn=rn.spawn({mesh:"torus",parent:cn,position:[0,0.04,0],scale:0,color:[2,0.24,0.12,1],pickable:!1});return{root:cn,warning:vn,chassis:dn,head:pn,armL:mn,armR:fn,elbowL:hn,elbowR:bn,legL:yn,legR:En,kneeL:Sn,kneeR:_n,motion:null,colorState:null,warningVisible:!1,pose:[NaN,NaN,NaN,NaN]}}function iSt(rn,nn,an){if(nn.motion===an)return;nn.motion=an;let sn=[nn.armL,nn.armR,nn.elbowL,nn.elbowR,nn.legL,nn.legR,nn.kneeL,nn.kneeR];for(let ln of sn)rn.stopAnimation(ln);if(an==="walk")for(let[ln,cn,un,dn,pn]of[[nn.legL,nn.kneeL,nn.armL,nn.elbowL,1],[nn.legR,nn.kneeR,nn.armR,nn.elbowR,-1]]){let mn=[0,0.25,0.5,0.75,1];rn.animate(ln,mn.map((fn)=>({at:fn,rotation:J0.x(Math.sin(fn*Math.PI*2)*pn*0.3)})),{duration:0.85,repeat:"forever",easing:"linear"}),rn.animate(cn,mn.map((fn)=>({at:fn,rotation:J0.x(Math.max(0,Math.sin(fn*Math.PI*2)*pn)*0.46)})),{duration:0.85,repeat:"forever",easing:"linear"}),rn.animate(un,mn.map((fn)=>({at:fn,rotation:J0.x(-Math.sin(fn*Math.PI*2)*pn*0.25)})),{duration:0.85,repeat:"forever",easing:"linear"}),rn.animate(dn,{rotation:J0.x(-0.16)},{duration:0.12})}else for(let ln of sn)rn.animate(ln,{rotation:J0.x(an==="attack"?ln===nn.armL||ln===nn.armR?-0.9:ln===nn.elbowL||ln===nn.elbowR?-0.8:0:an==="stagger"?0.12:0)},{duration:0.15,easing:"easeOut"})}function V(rn,nn,an,sn,ln,cn,un,dn,pn,mn,fn){let hn=fn??rn,bn=nn.pose;if(bn[0]!==an||bn[1]!==ln||bn[2]!==sn||bn[3]!==cn)hn.set(nn.root,{position:[an,ln,sn],rotation:J0.y(cn)}),bn[0]=an,bn[1]=ln,bn[2]=sn,bn[3]=cn;let yn=dn>0?2:un>0?1:0;if(nn.colorState!==yn){let En=yn===2?[1.8,1.8,1.8,1]:yn===1?[1.25,1.05,0.9,1]:[1,1,1,1];hn.set(nn.chassis,{color:En}),hn.set(nn.head,{color:En}),nn.colorState=yn}if(nn.warningVisible!==un>0)hn.set(nn.warning,{scale:un>0?[3.5,0.04,3.5]:0}),nn.warningVisible=un>0;iSt(rn,nn,dn>0?"stagger":un>0?"attack":pn?"walk":"idle")}function z(rn,nn){return n6=ppe(),a6.map(()=>rn.spawn({mesh:n6,parent:nn,scale:0,color:[0,0,0,0],pickable:!1}))}function Qe(rn,nn,an,sn,ln,cn,un,dn){nn.forEach((pn,mn)=>(dn??rn).set(pn,{position:[an[0],an[1]+mn*0.001,an[2]],rotation:sn,scale:[ln*a6[mn],1,cn*a6[mn]],color:[0,0,0,un]}))}function*en(){yield No,yield dpe,yield ppe}var r6,If,Lp,ml,_c,upe,Ls=(rn,nn,an,sn,ln)=>({geometry:aSt(rn),position:nn,scale:an,color:sn,rotation:ln}),ni=(rn,nn,an)=>Ls("roundedBox",rn,nn,an),Of=(rn,nn,an)=>Ls("sphere",[rn,nn,an],[0.035,0.035,0.025],_c),Ab=(rn,nn=0.45)=>wn(nSt(rn),{center:!1,shine:nn}),x5,n6,ppe=()=>Bn("treasure-hunt/TreasureHuntModel:shadowMesh",()=>n6??=wn(tpe(),{center:!1})),a6;var N=e(()=>{SD();na();R();o6();w();If=[0.48,0.56,0.59],Lp=[0.31,0.39,0.42],ml=[0.065,0.09,0.105],_c=[0.72,0.76,0.74],upe=[0.9,0.43,0.11];a6=[1.8,1.3,0.85]});var ht={};n(ht,{animateNature:()=>c6,drawMiniMap:()=>d6,placeRobot:()=>V,spawnGem:()=>u6,spawnNature:()=>w5,spawnRobot:()=>U,terrainModels:()=>Ope,warmAssets:()=>mSt,warmMapScenery:()=>l6});import{extrude as mpe,merge as s6,Path as fpe,quat as i6,shapeGeometry as lSt,tube as hpe}from"@nayan-ui/engine";function xpe(){return Bn("treasure-hunt/TreasureHuntScene:prepareBridge",()=>cSt())}function cSt(){return bpe??={plank:wn(s6([KS("roundedBox",[0,-0.08,0],[0.43,0.16,5.6],[1,1,1])]),{center:!1,shine:0.12}),post:wn(s6([KS("roundedBox",[0,0.5,0],[0.16,m5,0.16],[0.31,0.35,0.33]),KS("cube",[0,0.04,0],[_b,0.08,_b],[0.16,0.2,0.2]),KS("roundedBox",[0,1.08,0],[0.2,0.08,0.2],[0.54,0.57,0.51]),...[-1,1].flatMap((rn)=>[-1,1].map((nn)=>KS("cylinder",[rn*0.09,0.09,nn*0.09],[0.035,0.02,0.035],[0.64,0.64,0.56])))]),{center:!1,shine:0.55})},bpe}function uSt(rn,nn,an,sn,ln){let cn=xpe(),un=pl(an,sn.x,sn.z),dn=rn.spawn({mesh:"none",parent:nn,position:[un.x,sn.y,un.z],rotation:i6.y(an.rotation),pickable:!1}),pn=Math.ceil(sn.halfLength*2/0.43),mn=sn.halfLength*2/pn;for(let fn=0;fn<pn;fn++)rn.spawn({mesh:cn.plank,texture:ln.bark,parent:dn,position:[-sn.halfLength+(fn+0.5)*mn,0,0],scale:[mn/0.43,1,sn.halfWidth*2/5.6],color:[1.4,1.13,0.81,1],pickable:!1});for(let fn of[-1,1]){rn.spawn({mesh:"cube",parent:dn,position:[0,-0.28,fn*1.85],scale:[sn.halfLength*2,0.34,0.22],color:[0.23,0.26,0.24,1],pickable:!1});for(let hn of[-1,1])rn.spawn({mesh:"cube",parent:dn,position:[hn*(sn.halfLength-0.65),-0.7,fn*1.85],scale:[0.85,1.3,0.85],texture:ln.stone,color:[0.72,0.75,0.66,1],pickable:!1})}for(let fn of h5(sn))if(fn.kind==="post")rn.spawn({mesh:cn.post,parent:dn,position:[fn.x,0,fn.z],pickable:!1});else for(let hn of[0.48,0.98])rn.spawn({mesh:"cube",parent:dn,position:[fn.x,hn,fn.z],scale:[fn.halfX*2,0.07,fn.halfZ*2],color:[0.39,0.43,0.4,1],pickable:!1})}function Rpe(rn){let nn=A5.get(rn);if(!nn)nn={builder:rpe(rn),models:{}},A5.set(rn,nn);return nn}function Ape(rn){if(rn.geometry)return;let nn=rn.builder.next();if(nn.done)rn.geometry=nn.value}function jS(rn,nn,an){return nn.models[an]??=Bn(`treasure-terrain:${rn}:${an}`,()=>{if(an==="water")return wn(npe(xb(rn)),{center:!1,shine:0.85});while(!nn.geometry)Ape(nn);return wn(nn.geometry[an],{center:!1})})}function*dSt(rn){if(Mb.has(rn))return;let nn=Rpe(rn);while(!nn.geometry)if(yield()=>Ape(nn),Mb.has(rn))return;for(let an of["meadow","stone","shore","water"])if(yield()=>{jS(rn,nn,an)},Mb.has(rn))return;Mb.set(rn,nn.models),A5.delete(rn)}function pSt(rn,nn){let an=rn?9.4:8.2,sn=[{geometry:hpe([[0,-0.45,0],[0,-0.08,0],[0.03,0.35,0.02],[0.08,2,0.08],[-0.08,4.4,0],[0.2,an,0.1]],{radius:(ln)=>0.32*(1-ln*0.95),sides:9,smoothness:2})}];for(let ln=0;ln<12;ln++){let cn=ln*2.4+nn,un=4.8+ln*(rn?0.33:0.24),dn=rn?(1-ln/16)*2.1:1.6;sn.push({geometry:hpe([[0,un,0],[Math.cos(cn)*dn*0.55,un+0.15,Math.sin(cn)*dn*0.55],[Math.cos(cn)*dn,un+(rn?-0.1:0.9),Math.sin(cn)*dn]],{radius:(pn)=>0.065*(1-pn*0.98),sides:5,smoothness:1})})}return wn(s6(sn),{center:!1})}function Cb(rn,nn){let an=Epe.get(rn);if(!an)an=Bn("treasure-hunt/TreasureHuntScene:"+rn,nn),Epe.set(rn,an);return an}function Ipe(){return ype??={gem:Mpe(),trunks:[M5(!0,0),M5(!1,1)],pine:Array.from({length:4},(rn,nn)=>C5(!0,nn)),birch:Array.from({length:4},(rn,nn)=>C5(!1,nn)),rocks:Array.from({length:4},(rn,nn)=>Cpe(nn)),grass:Array.from({length:4},(rn,nn)=>wpe(nn)),cave:Lpe()},ype}function*mSt(){yield xpe,yield Mpe,yield()=>M5(!0,0),yield()=>M5(!1,1);for(let rn=0;rn<4;rn++)yield()=>C5(!0,rn),yield()=>C5(!1,rn),yield()=>Cpe(rn),yield()=>wpe(rn);yield Lpe}function Ope(rn){let nn=Mb.get(rn);if(!nn){let an=Rpe(rn);nn={meadow:jS(rn,an,"meadow"),stone:jS(rn,an,"stone"),shore:jS(rn,an,"shore"),water:jS(rn,an,"water")},Mb.set(rn,nn),A5.delete(rn)}return nn}function*fSt(rn){let nn=$0(rn.seed^6790115),an=[],sn=Math.cos(rn.rotation),ln=Math.sin(rn.rotation);for(let cn=0;cn<1900;cn++){if(cn&&cn%64===0)yield;let un=rn.reachable[Math.floor(nn()*rn.reachable.length)],dn=un.x+(nn()-0.5)*2,pn=un.z+(nn()-0.5)*2,mn={x:dn*sn-pn*ln,z:dn*ln+pn*sn};if(zS(rn,dn,pn)!=="grass"||!j0(rn,dn,pn,0.9)||Math.abs(mn.x-Bl(rn.landscape,mn.z))<Sc(rn.landscape,mn.z)+1||rn.landscape.caves.some((fn)=>Math.abs(mn.x-fn.x)<6&&Math.abs(mn.z-fn.z)<11))continue;an.push({position:[dn,qa(rn,dn,pn)-0.02,pn],scale:0.7+nn()*0.7,yaw:nn()*Math.PI*2,style:cn%4})}return an}function Ppe(rn){let nn=Spe.get(rn);if(!nn)nn={builder:fSt(rn)},Spe.set(rn,nn);return nn}function gpe(rn){if(rn.placements)return;let nn=rn.builder.next();if(nn.done)rn.placements=nn.value}function*l6(rn){let nn=Ppe(rn);while(!nn.placements)yield()=>gpe(nn);yield()=>{Npe(rn)},yield*dSt(rn.landscape.profile)}function w5(rn,nn,an){let sn=Ipe(),ln=Ope(nn.landscape.profile),cn=rn.spawn({mesh:"none",pickable:!1}),un=(fn,hn,bn=1,yn=XS,En,Sn=0)=>rn.spawn({mesh:fn,position:hn,scale:bn,color:yn,texture:En,rotation:i6.y(Sn),parent:cn,pickable:!1}),dn=(fn,hn)=>{let bn=typeof hn==="number"?hn:hn[0],yn=typeof hn==="number"?hn:hn[2];Qe(rn,z(rn,cn),[fn[0],qa(nn,fn[0],fn[2])+0.006,fn[2]],VS(nn,fn[0],fn[2]),bn*0.27,yn*0.27,0.065)};un(ln.meadow,[0,0,0],1,[0.85,0.96,0.77,1],an.meadow,nn.rotation),un(ln.stone,[0,0,0],1,[0.9,0.94,0.92,1],an.stone,nn.rotation),un(ln.shore,[0,0,0],1,[0.96,0.78,0.53,1],an.stone,nn.rotation);for(let fn of nn.landscape.bridges)uSt(rn,cn,nn,fn,an);let pn=un(ln.water,[0,0,0],1,[1.3,1.3,1.3,0.94],an.water,nn.rotation);for(let fn of nn.props){let hn=[fn.x,qa(nn,fn.x,fn.z)-0.07,fn.z];if(fn.kind==="rock")un(sn.rocks[fn.style],hn,fn.scale,XS,an.stone,fn.yaw);else un(sn.trunks[fn.kind==="pine"?0:1],hn,fn.scale,fn.kind==="pine"?[0.7,0.65,0.52,1]:[1.35,1.35,1.24,1],an.bark,fn.yaw),un(sn[fn.kind][fn.style],hn,fn.scale,XS,fn.kind==="pine"?an.pine:an.leaves,fn.yaw),dn(hn,fn.scale)}for(let fn of nn.decorations){let hn=[fn.x,fn.y,fn.z];if(fn.kind==="rock"){let bn=fn.area==="horizon"?[0.62,0.69,0.65,1]:fn.area==="cave-roof"?[0.85,0.9,0.84,1]:[0.8,0.88,0.8,1];un(sn.rocks[fn.style],hn,fn.scale,bn,an.stone,fn.yaw)}else un(sn.trunks[0],hn,fn.scale,[0.7,0.65,0.52,1],an.bark,fn.yaw),un(sn.pine[fn.style],hn,fn.scale,[0.7,0.8,0.74,1],an.pine,fn.yaw),dn(hn,fn.scale)}let mn=Ppe(nn);while(!mn.placements)gpe(mn);for(let fn of mn.placements)un(sn.grass[fn.style],fn.position,fn.scale,XS,void 0,fn.yaw);for(let fn of nn.landscape.caves){let hn=pl(nn,fn.x,fn.z);un(sn.cave,[hn.x,fn.y,hn.z],1,XS,an.stone,nn.rotation)}return{root:cn,water:pn,flow:0}}function c6(rn,nn,an){nn.flow=(nn.flow+an*0.08)%1,rn.set(nn.water,{textureRegion:[0,nn.flow,1,1+nn.flow]})}function u6(rn,nn,an,sn){return rn.spawn({mesh:Ipe().gem,position:[nn,an+0.9,sn],scale:0.7,color:[0.92,1.02,1.12,1],spin:[0,0.85,0],bob:{amplitude:[0,0.16,0],speed:2.5,phase:nn+sn},pickable:!1})}function Npe(rn){let nn=_pe.get(rn);if(nn)return nn;let an=zD(rn,ri),sn=[],ln=new Map;for(let cn=0;cn<ri;cn++){let un=new Map,dn=0;while(dn<ri){let pn=an[cn*ri+dn],mn=dn+1;while(mn<ri&&an[cn*ri+mn]===pn)mn++;if(pn){let fn=`${dn}:${mn}:${pn}`,hn=ln.get(fn);if(hn)hn.height++,un.set(fn,hn);else{let bn={x:dn,y:cn,width:mn-dn,height:1,color:xn(Dpe[pn])};sn.push(bn),un.set(fn,bn)}}dn=mn}ln=un}return _pe.set(rn,sn),sn}function d6(rn,nn){if(!rn.ready)return;let an=vpe.get(rn);if(an?.map!==nn.map){rn.clearLayer("minimap");let un=rn.layer("minimap");for(let pn of Npe(nn.map))rn.rectangle(un,pn.x+pn.width/2,-pn.y-pn.height/2,pn.width,pn.height,pn.color);for(let pn of nn.map.landscape.bridges){let mn=pl(nn.map,pn.x,pn.z),fn=rn.rectangle(un,Ip(mn.x),-Ip(mn.z),pn.halfLength/oi*ri,Math.max(3,pn.halfWidth/oi*ri),xn(Dpe.bridge),1);rn.world.set(fn,{rotation:i6.z(nn.map.rotation)})}R5??=Bn("treasure-map-dot",()=>wn(mpe(new fpe().addCircle(0,0,0.5),{depth:0}),{center:!1})),Tpe??=Bn("treasure-map-arrow",()=>wn(mpe(fpe.fromSVG("M-3 0H3L0 5Z"),{depth:0}),{center:!1}));let dn=rn.world.spawn({mesh:"none",parent:un,pickable:!1});rn.world.spawn({mesh:R5,parent:dn,scale:10,color:[1,1,1,1],pickable:!1}),rn.world.spawn({mesh:R5,parent:dn,position:[0,0,1],scale:6,color:xn("#173d28"),pickable:!1}),rn.world.spawn({mesh:Tpe,parent:dn,position:[0,7,1],color:[1,1,1,1],pickable:!1}),rn.text(un,"N",ri-8,-8,10,[1,1,1,1]),an={map:nn.map,root:un,player:dn,width:NaN,offset:NaN,x:NaN,z:NaN,yaw:NaN,enemies:new Map,gems:new Map},vpe.set(rn,an)}let{width:sn,offset:ln}=rn.viewport,cn=rn.world.transforms;if(an.width!==sn||an.offset!==ln)cn.position(an.root,sn-ri-18,-(bc(ln).top+6),5),an.width=sn,an.offset=ln;if(an.x!==nn.player.x||an.z!==nn.player.z||an.yaw!==nn.yaw){let un=nn.yaw-Math.PI;cn.transform(an.player,Ip(nn.player.x),-Ip(nn.player.z),4,0,0,Math.sin(un/2),Math.cos(un/2)),an.x=nn.player.x,an.z=nn.player.z,an.yaw=nn.yaw}for(let un of nn.enemies){let dn=an.enemies.get(un.id);if(!dn)dn={entity:rn.world.spawn({mesh:R5,parent:an.root,scale:6,color:xn("#ff6355"),pickable:!1}),x:NaN,z:NaN,visible:!0},an.enemies.set(un.id,dn);let pn=un.health>0;if(dn.x!==un.x||dn.z!==un.z||dn.visible!==pn)cn.position(dn.entity,Ip(un.x),-Ip(un.z),2),cn.scale(dn.entity,pn?6:0),dn.x=un.x,dn.z=un.z,dn.visible=pn}for(let un of nn.pickups){let dn=an.gems.get(un.id);if(!dn){let pn=rn.rectangle(an.root,Ip(un.x),-Ip(un.z),5,5,xn("#bdffff"),3);if(cn.rotation(pn,0,0,Math.sin(Math.PI/8),Math.cos(Math.PI/8)),un.taken)cn.scale(pn,0);else cn.scale(pn,5,5,1);dn={entity:pn,x:un.x,z:un.z,visible:!un.taken},an.gems.set(un.id,dn)}else if(dn.visible!==!un.taken){if(un.taken)cn.scale(dn.entity,0);else cn.scale(dn.entity,5,5,1);dn.visible=!un.taken}}cn.flush()}var bpe,KS=(rn,nn,an,sn)=>({geometry:lSt(rn),position:nn,scale:an,color:sn}),XS,ype,Mb,A5,Epe,Mpe=()=>Cb("gem",()=>wn(ope(),{center:!1,shine:0.98})),M5=(rn,nn)=>Cb(`trunk:${rn}:${nn}`,()=>pSt(rn,nn)),C5=(rn,nn)=>Cb(`foliage:${rn}:${nn}`,()=>wn(ipe(rn,nn),{center:!1})),Cpe=(rn)=>Cb(`rock:${rn}`,()=>wn(spe(rn),{center:!1})),wpe=(rn)=>Cb(`grass:${rn}`,()=>wn(lpe(rn),{center:!1})),Lpe=()=>Cb("cave",()=>wn(ape(),{center:!1})),Spe,Dpe,_pe,vpe,Ip=(rn)=>(rn+oi)/(oi*2)*ri,R5,Tpe;var q=e(()=>{o();na();Hn();R();o6();N();w();N();XS=[1,1,1,1],Mb=new Map,A5=new Map;Epe=new Map;Spe=new WeakMap;Dpe={grass:"#649452",hill:"#b3b8ac",cave:"#777f77",river:"#38b8ee",shore:"#cdb785",bridge:"#f7d79a"},_pe=new WeakMap,vpe=new WeakMap});import{audio as Bpe,effects as Gpe,haptics as $S,warmUpEngine as hSt,World as bSt}from"@nayan-ui/engine";function Fpe(rn){hSt();let nn=new bSt(6500);try{let an=S5(),sn=w5(nn,an.map,rn),ln=pt(nn,[an.player.x,qa(an.map,an.player.x,an.player.z),an.player.z],rn.human),cn=nn.spawn({mesh:"none",parent:ln.root,position:[0,gS,0],pickable:!1}),un={get phase(){return this.state.phase==="ready"?"ready":this.state.phase==="won"||this.state.phase==="lost"?"over":"playing"},get score(){return this.state.score},get won(){return this.state.phase==="won"},onPhase:()=>{},world:nn,assets:rn,camera:Kde(cn,an.player,an.yaw,an.map),movementReference:{active:!1,yaw:an.yaw},nature:sn,state:an,human:ln,footsteps:jde({play:(dn,pn)=>p(qu,dn,pn)??null,stop:(dn)=>Bpe.stop(dn)}),swipe:Wde(),attackBuffer:0,enemies:new Map,gems:new Map,animationTime:0,combatTime:0,hudTime:0,nextRun:null,preparing:!1,prepareDelay:0.3,onChange:()=>{}};return Hpe(un),un.nextRun=p6()[Symbol.iterator](),un}catch(an){throw nn.dispose(),an}}function Hpe(rn){wb(rn),rn.footsteps.stop();for(let nn of rn.enemies.values())rn.world.despawn(nn.root);for(let nn of rn.gems.values())rn.world.despawn(nn);rn.enemies.clear(),rn.gems.clear();for(let nn of rn.state.enemies)rn.enemies.set(nn.id,U(rn.world,nn.x,qa(rn.state.map,nn.x,nn.z),nn.z));Wpe(rn),Ze(rn.world,rn.human),$e(rn.world,rn.human,rn.state.map,rn.state.player,rn.state.yaw),rn.animationTime=0,rn.combatTime=0,rn.movementReference.active=!1,jD(rn.camera,rn.state.player,rn.state.yaw,rn.state.map)}function Wpe(rn){for(let nn of rn.state.pickups)if(!nn.taken&&!rn.gems.has(nn.id))rn.gems.set(nn.id,u6(rn.world,nn.x,qa(rn.state.map,nn.x,nn.z),nn.z))}function Upe(rn){if(rn.world.isDisposed||rn.preparing||rn.state.phase!=="ready")return;rn.state.phase="playing",rn.prepareDelay=0.3,wb(rn),rn.onPhase("playing"),rn.onChange()}function Vpe(rn){if(rn.world.isDisposed||rn.preparing)return;if(wb(rn),rn.footsteps.stop(),Ze(rn.world,rn.human),!rn.nextRun&&!E5())rn.nextRun=p6()[Symbol.iterator]();rn.preparing=!0,rn.prepareDelay=0,rn.state.phase="ready",rn.state.score=rn.state.gems=rn.state.defeated=0,rn.state.health=Mp,rn.onPhase("ready"),rn.onChange()}function zpe(rn){rn.nextRun?.return?.(),rn.nextRun=null,rn.state=S5(),rn.world.despawn(rn.nature.root),rn.nature=w5(rn.world,rn.state.map,rn.assets),Hpe(rn),rn.hudTime=0,rn.preparing=!1,rn.prepareDelay=0.3,rn.nextRun=p6()[Symbol.iterator](),rn.onPhase("ready"),rn.onChange()}function*p6(){yield*YD();let rn=E5();if(rn)yield*l6(rn)}function kpe(rn,nn){if(!rn.nextRun||nn<=0)return;if(rn.prepareDelay=Math.max(0,rn.prepareDelay-nn),rn.prepareDelay>0)return;let an=performance.now()+4;for(let sn=0;sn<32&&rn.nextRun;sn++){let ln=rn.nextRun.next();if(ln.done){if(rn.nextRun=null,rn.preparing)zpe(rn);break}if(ln.value(),performance.now()>=an)break}}function ySt(rn,nn){let{world:an,human:sn}=rn,ln=qa(rn.state.map,nn.x,nn.z),cn=[nn.x,ln+0.9,nn.z];switch(nn.kind){case"attack":{let un=sn.animation==="combatIdle"||sn.animation==="punchStart"||sn.animation==="punchRight"||sn.animation==="punchLeft";if(!un)sn.strikes=0;let dn=!un?"punchStart":sn.strikes%2===0?"punchRight":"punchLeft";sn.strikes++,x(an,sn,dn),rn.combatTime=TD,rn.animationTime=DS.punchRight,p(qu,"punch",{volume:0.35,pitch:1.2});break}case"hit":case"defeated":{p(qu,nn.kind==="defeated"?"defeat":"impact",{volume:0.5});let un=rn.state.player.x-nn.x,dn=rn.state.player.z-nn.z,pn=Math.hypot(un,dn)||1;if(Gpe.sparks(an,{position:[nn.x+un/pn*0.2,ln+1.45,nn.z+dn/pn*0.2],colors:[[1.8,0.65,0.4,1],[1,1.5,2,1]],count:12,size:0.1,speed:4,lifetime:0.3}),$S.impact(nn.kind==="defeated"?0.8:0.45),nn.kind==="defeated"&&nn.id!==void 0){let mn=rn.enemies.get(nn.id);if(mn)rn.enemies.delete(nn.id),Xs(an,mn.root,{scale:1,color:[1,0.4,0.48,1],duration:0.3},{position:cn,size:1.2,color:[1,0.4,0.48,1]}).then(()=>an.despawn(mn.root))}break}case"gem":{let un=nn.id===void 0?void 0:rn.gems.get(nn.id);if(un!==void 0)Xs(an,un,{scale:0.7,color:[0.92,1.02,1.12,1],duration:0.2},{position:cn,size:0.6,color:[0.92,1.02,1.12,1],count:7}).then(()=>{if(an.despawn(un),rn.gems.get(nn.id)===un)rn.gems.delete(nn.id)});p(qu,"gem",{volume:0.55}),$S.selection();break}case"hurt":x(an,sn,"hit"),rn.animationTime=DS.hit,rn.camera.shake=0.25,p(qu,"hurt",{volume:0.5}),$S.impact(0.9);break;case"won":rn.state.yaw=0,x(an,sn,"celebrate"),Gpe.confetti(an,{position:[nn.x,ln+2,nn.z],colors:[[0.4,1.5,1.8,1],[1.8,1.2,0.3,1],[1.5,0.4,0.8,1]],size:0.17,speed:6,count:60,lifetime:2,gravity:-3}),p(qu,"win"),$S.notify("success"),rn.onPhase("over");break;case"lost":x(an,sn,"fall"),$S.notify("error"),rn.onPhase("over");break}}function wb(rn){T5(rn.swipe),rn.attackBuffer=0}function qpe(rn){if(rn.state.phase==="playing")rn.attackBuffer=GS+0.1}function Ype(rn,nn){let an=Math.max(0,Math.min(0.05,nn)),sn=rn.attackBuffer>0,ln=an>0&&rn.state.phase==="playing"&&rn.state.attackCooldown<=an,cn=qde(rn.swipe,an);ESt(rn,{x:cn.x,y:cn.y,attack:sn},nn),rn.attackBuffer=sn&&ln?0:Math.max(0,rn.attackBuffer-an)}function ESt(rn,nn,an){if(rn.world.isDisposed)return;let sn=Math.min(0.05,Math.max(0,an));if(rn.preparing){if(rn.world.update(0),!rn.nextRun&&sn>0)zpe(rn);else kpe(rn,sn);if(!rn.preparing)rn.world.update(0);return}let ln=KD(rn.state,Xde(nn,rn.state.yaw,rn.movementReference),sn),{state:cn,world:un}=rn;for(let mn of ln)ySt(rn,mn);if(XD(rn.camera,cn.yaw,cn.map,cn.player,sn),Wpe(rn),rn.animationTime=Math.max(0,rn.animationTime-sn),rn.combatTime=Math.max(0,rn.combatTime-sn),cn.phase==="playing"&&rn.animationTime===0)if(rn.combatTime>0&&cn.speed<0.05)x(un,rn.human,"combatIdle");else if(rn.human.animation==="combatIdle"&&cn.speed<0.05)x(un,rn.human,"combatExit"),rn.animationTime=DS.combatExit,rn.human.strikes=0;else{let mn=RD(cn.speed,rn.human.animation);x(un,rn.human,mn,mn==="run"?cn.speed/4:mn==="walk"?cn.speed/1.6:1)}let dn=un.transforms;$e(un,rn.human,cn.map,cn.player,cn.yaw,sn,dn);for(let mn of cn.enemies){let fn=rn.enemies.get(mn.id);if(fn)V(un,fn,mn.x,mn.z,qa(cn.map,mn.x,mn.z),mn.yaw,mn.windup,mn.stagger,mn.moving,cn.time,dn)}dn.flush(),c6(un,rn.nature,sn);let pn=rn.human.phase;if(un.update(sn),mt(rn.human,sn),rn.footsteps.update({animation:rn.human.animation,from:pn,to:rn.human.phase,speed:cn.speed,audible:cn.phase==="playing"&&!Bpe.muted},sn),rn.hudTime+=sn,ln.length||rn.hudTime>=0.12)rn.hudTime=0,rn.onChange();kpe(rn,sn)}function Kpe(rn){wb(rn),rn.nextRun?.return?.(),rn.nextRun=null,rn.footsteps.stop(),rn.world.dispose()}var Xpe=e(()=>{l();f();R();$D();N();w();q()});var Bo={};n(Bo,{TreasureHunt:()=>bt});import{memo as $pe,useCallback as Pf,useEffect as m6,useMemo as SSt,useState as f6}from"react";import{haptics as jpe}from"@nayan-ui/engine";import{jsx as Op,jsxs as xSt}from"react/jsx-runtime";function vSt(rn){return{health:rn.health,gems:rn.gems,defeated:rn.defeated,score:rn.score}}var L5,_St,bt,TSt;var Y=e(()=>{l();a();_a();o();Sde();O();P();xa();va();R();$D();Xpe();q();L5=T(S()),_St=$pe(function(nn){let{settings:an}=nn,[sn,ln]=gn(null,0),[cn,un]=f6(null),{game:dn,theme:pn,phase:mn,status:fn,screen:hn,gameOver:bn}=zn(nn,{gameId:"treasure-hunt",create:()=>Fpe(nn.assets),start:Upe,reset:Vpe,dispose:Kpe,tick:Ype,hud:(Mn,Cn)=>d6(Cn,Mn.state),resultsDelay:(Mn)=>Mn==="win"?1500:1200,reportData:(Mn)=>({gems:Mn.state.gems,defeated:Mn.state.defeated,seconds:Math.floor(Mn.state.time)}),sounds:t.TREASURE_HUNT,onStart:(Mn)=>Mn(t.TREASURE_HUNT.START),onOver:(Mn,Cn)=>{if(Cn!=="win")Mn(t.TREASURE_HUNT.LOSE)},wire:(Mn)=>{Mn.onChange=()=>ln({...vSt(Mn.state),preparing:Mn.preparing}),Mn.onChange()}});m6(()=>{jpe.enabled=an.enableHaptics},[an.enableHaptics]),m6(()=>()=>{jpe.enabled=!0},[]);let yn=Pf((Mn)=>{if(Mn)return;wb(dn),dn.footsteps.stop(),dn.movementReference.active=!1},[dn]),En=Pf(()=>qpe(dn),[dn]),Sn=Pf((Mn)=>un(Mn.message),[]),_n=SSt(()=>bc(an.offset),[an.offset]),vn=pn.mode==="dark",Tn=dn.preparing,Rn=Tn&&!!dn.nextRun,An=mn==="playing"&&!Tn;return xSt(Un,{...hn,onStart:()=>{if(!dn.preparing)hn.onStart()},hudCapacity:ri*ri+1024,light:vn?ND:i5,background:vn?DD:gD,fog:0.006,errorMessage:cn??void 0,onAudioChange:yn,onError:Sn,columns:[Qn(sn?.score??0),ys(sn?.health??Mp,Mp,"HEALTH"),ma("GEMS",`${sn?.gems??0}/${bb}`),ma("ROBOTS",`${sn?.defeated??0}/${kS}`)],subtext:"Swipe to explore · Tap to punch",gameOver:bn({title:fn==="win"?"FOREST EXPLORED!":"EXPEDITION OVER",message:`${sn?.gems??0} diamonds found and ${sn?.defeated??0} robots defeated.`,scoreLabel:"Adventure score",score:sn?.score??0,buttonText:"Explore Again!"}),children:[Op(TSt,{input:dn.swipe,enabled:An&&!an.isVisible&&!cn,onTap:En,insets:_n}),Op(L5.View,{pointerEvents:Rn?"auto":"none",style:L5.StyleSheet.absoluteFill,children:Op(y,{ready:!Rn,loader:Op(b,{gameId:"treasure-hunt",theme:an.theme,offset:an.offset,visible:!an.isVisible}),children:null})})]})}),bt=Vn("treasure-hunt",(rn)=>{let[nn,an]=f6(GD),[sn,ln]=f6(null);return m6(()=>{if(nn)return;let cn=!0;return l5().then((un)=>{if(cn)an(un)}).catch((un)=>{if(cn)ln(un instanceof Error?un.message:String(un))}),()=>{cn=!1}},[nn]),Op(y,{ready:!!nn,loader:Op(b,{gameId:"treasure-hunt",theme:rn.settings.theme,offset:rn.settings.offset,error:!!sn,message:sn??void 0}),children:nn&&Op(_St,{...rn,assets:nn})})});TSt=$pe(function({input:nn,enabled:an,onTap:sn,insets:ln}){let cn=Pf((mn)=>{Vde(nn,mn,mn.timeStamp)},[nn]),un=Pf((mn)=>{zde(nn,mn)},[nn]),dn=Pf((mn)=>{if(Yde(nn,mn,mn.timeStamp)&&an)sn()},[nn,an,sn]),pn=Pf(()=>T5(nn),[nn]);return Op(Ede,{enabled:an,insets:ln,onStart:cn,onMove:un,onEnd:dn,onCancel:pn})})});function pme(rn,nn,an){let sn=$n(rn),ln=Math.floor((sn-Lb*(Xa-1))/Xa),cn=Math.min(C().height*0.58,nn-an),un=Math.floor((cn-Lb*(Ei-1))/Ei),dn=Math.max(1,Math.min(ln,Math.max(RSt,un))),pn=Math.max(3,Math.round(dn*0.12)),mn=dn*Xa+Lb*(Xa-1),fn=dn*Ei+Lb*(Ei-1);return{width:rn,height:nn,boardLeft:(rn-mn)/2,boardTop:an+(nn-an-fn)/2,boardWidth:mn,boardHeight:fn,tile:dn,stride:dn+Lb,stroke:pn,headLength:dn*0.35,headHalfWidth:pn*1.8,dotRadius:Math.max(3,Math.round(dn*0.08)),hitMargin:Lb/2+dn*0.1}}var Xa=12,Ei=16,Yu,ed=300,Zpe=500,ru,nu,Qpe=0.8,I5=0.32,Jpe=5,eme=0.42,tme=0.12,ome,O5=0.7,P5=0.35,rme=0.35,nme=1.04,ame,sme="#ffffff",ime="#22c55e",lme="#ef4444",cme="#fbbf24",ume="rgba(180, 180, 200, 0.5)",dme,Lb,RSt=28,h6=(rn,nn,an)=>[an*rn.stride+rn.tile/2,nn*rn.stride+rn.tile/2],b6=(rn)=>rn.tile/2-Math.ceil(rn.stroke/2);var g5=e(()=>{a();Hn();Yu=Xa*Ei,ru=[-1,0,1,0],nu=[0,1,0,-1],ome={damping:10,stiffness:260},ame={damping:9,stiffness:220},dme=Zn([-0.45,0.6,1],0.55),Lb=c?5:3});var mme=100,Ya=(rn,nn,an=100,sn=100)=>{if(rn<=0)return an+nn*sn;let cn=Math.max(0,nn-rn)*sn;return an+cn};var ci=()=>{};import{extrude as ASt,Path as MSt,quat as D5,tube as hme}from"@nayan-ui/engine";function vme(rn){let nn=[rn[0]];for(let an=1;an<rn.length;an++){let sn=rn[an],ln=nn[nn.length-1];if(sn[0]===ln[0]&&sn[1]===ln[1])continue;let cn=nn[nn.length-2];if(cn&&(ln[0]-cn[0])*(sn[1]-ln[1])-(ln[1]-cn[1])*(sn[0]-ln[0])===0)nn[nn.length-1]=sn;else nn.push(sn)}return nn}function S6(rn,nn,an,sn,ln,cn,un){let dn=QS(sn,ln);if(dn<0.01){rn.set(an,{scale:gp});return}rn.set(an,{position:Pp(nn,[(sn[0]+ln[0])/2,(sn[1]+ln[1])/2],un),rotation:sn[0]===ln[0]?Sme:_me,scale:[dn,cn,cn]})}function Tme(rn,nn){let an=nn.waypoints.map((mn)=>h6(rn,mn.row,mn.col)),sn=an[an.length-1],[ln,cn]=yme(nn.exitDir),un=b6(rn),dn=[sn[0]+ln*(un-rn.headLength),sn[1]+cn*(un-rn.headLength)],pn=[sn[0]+ln*(un-rn.headLength/2),sn[1]+cn*(un-rn.headLength/2)];return{centers:an,points:vme([...an,dn]),head:pn}}function xme(rn,nn,an,sn){let ln=rn.spawn({mesh:"none",position:LSt(nn,nn.boardLeft+nn.boardWidth/2,nn.boardTop+nn.boardHeight/2),scale:sn?0.94:1,pickable:!1});if(sn)rn.animate(ln,{scale:1},{duration:rme});return{backdrop:oa(rn,nn.width,nn.height,CSt,an),board:ln}}function Rme(rn,nn){rn.animate(nn,{scale:nme},{duration:0.2}).then(()=>{rn.animate(nn,{scale:1},{spring:ame})})}function Ame(rn,nn,an,sn,ln,cn){let{points:un,head:dn}=Tme(nn,sn),pn=ISt(nn),mn=nn.stroke,fn=rn.spawn({mesh:"none",parent:an,position:[0,0,0],pickable:!1}),hn=[],bn=un.reduce((_n,vn,Tn)=>Tn?_n+QS(un[Tn-1],vn):0,0)||1,yn=O5*(1-P5),En=0;un.forEach((_n,vn)=>{let Tn=cn===null?0:cn+En/bn*yn,Rn=rn.spawn({mesh:"sphere",parent:fn,position:Pp(nn,_n,pn),scale:cn===null?mn:gp,color:ln,pickable:!1});if(cn!==null)rn.animate(Rn,{scale:mn},{duration:0.04,delay:Tn,easing:"linear"});hn.push(Rn);let An=un[vn+1];if(!An)return;let Mn=QS(_n,An),Cn=rn.spawn({mesh:E6(),parent:fn,color:ln,pickable:!1});if(cn===null)S6(rn,nn,Cn,_n,An,mn,pn);else rn.set(Cn,{position:Pp(nn,_n,pn),rotation:_n[0]===An[0]?Sme:_me,scale:[0.001,mn,mn]}),rn.animate(Cn,{position:Pp(nn,[(_n[0]+An[0])/2,(_n[1]+An[1])/2],pn),scale:[Mn,mn,mn]},{duration:Mn/bn*yn,delay:Tn,easing:"linear"});hn.push(Cn),En+=Mn});let Sn=rn.spawn({mesh:bme(),parent:fn,position:Pp(nn,dn,pn),rotation:D5.z(Eme[sn.exitDir]),scale:cn===null?_6(nn):gp,color:ln,pickable:!1});if(cn!==null)rn.animate(Sn,{scale:_6(nn)},{duration:yn*0.25,delay:cn+yn*0.75});return hn.push(Sn),{root:fn,parts:hn}}function Mme(rn,nn,an){for(let sn of nn.parts)rn.set(sn,{color:an})}function Cme(rn,nn,an){rn.animate(nn.root,{shake:Jpe},{duration:I5,easing:"linear"});for(let sn of nn.parts)rn.set(sn,{color:gSt}),rn.animate(sn,{color:an},{duration:I5*0.4,delay:I5*0.6,easing:"linear"})}function wme(rn,nn,an){for(let sn of nn.parts)rn.animate(sn,[{color:DSt,at:0.5},{color:an}],{duration:eme,easing:"easeInOut"})}function Lme(rn,nn,an,sn){let{centers:ln}=Tme(nn,sn),cn=ln[ln.length-1],[un,dn]=yme(sn.exitDir),pn=nn.boardWidth+nn.boardHeight+nn.width+nn.height,mn=vme([...ln,[cn[0]+un*pn,cn[1]+dn*pn]]),fn=[0];for(let Cn=1;Cn<mn.length;Cn++)fn.push(fn[Cn-1]+QS(mn[Cn-1],mn[Cn]));let hn=mn[mn.length-2],bn=fn[mn.length-2],yn=b6(nn),En=bn+QS(hn,cn)+yn-nn.headLength,Sn=[hn[1],nn.boardWidth-hn[0],nn.boardHeight-hn[1],hn[0]][sn.exitDir],_n=[nn.boardTop,nn.width-nn.boardLeft-nn.boardWidth,nn.height-nn.boardTop-nn.boardHeight,nn.boardLeft][sn.exitDir],vn=sn.exitDir===1||sn.exitDir===3,Tn=Math.max(_n,nn.stride*4,vn?nn.width*0.4:0),Rn=rn.spawn({mesh:"none",parent:an,position:[0,0,0],pickable:!1}),An=(Cn,Ln=ZS)=>rn.spawn({mesh:Cn,parent:Rn,scale:gp,color:Ln,pickable:!1}),Mn={root:Rn,bars:mn.slice(1).map(()=>An(E6())),outside:An(E6()),joints:mn.map(()=>An("sphere")),head:rn.spawn({mesh:bme(),parent:Rn,rotation:D5.z(Eme[sn.exitDir]),scale:_6(nn),color:ZS,pickable:!1}),points:mn,arcs:fn,shaft:En,edge:bn+Sn,fade:Tn,far:pn-yn,elapsed:0};return Ome(rn,nn,Mn,0),Mn}function Ib(rn,nn){let an=0;while(an<rn.arcs.length-2&&rn.arcs[an+1]<nn)an++;let sn=rn.points[an],ln=rn.points[an+1],cn=(nn-rn.arcs[an])/(rn.arcs[an+1]-rn.arcs[an]);return[sn[0]+(ln[0]-sn[0])*cn,sn[1]+(ln[1]-sn[1])*cn]}function Ime(rn,nn,an,sn,ln){if(an.elapsed+=sn,an.elapsed>=ln)return rn.despawn(an.root),!1;let cn=an.elapsed/ln;return Ome(rn,nn,an,cn*cn*an.far),!0}function Ome(rn,nn,an,sn){let ln=OSt(nn),cn=nn.stroke+1,un=sn,dn=sn+an.shaft,pn=(yn)=>1-Math.max(0,Math.min(1,(yn-an.edge)/an.fade)),mn=an.bars.length-1;an.bars.forEach((yn,En)=>{let Sn=Math.max(an.arcs[En],un),_n=Math.min(En===mn?an.edge:an.arcs[En+1],dn);if(_n<=Sn)rn.set(yn,{scale:gp});else S6(rn,nn,yn,Ib(an,Sn),Ib(an,_n),cn,ln)});let fn=Math.max(an.edge,un);if(dn<=fn)rn.set(an.outside,{scale:gp});else S6(rn,nn,an.outside,Ib(an,fn),Ib(an,dn),cn,ln),rn.set(an.outside,{color:y6(ZS,pn((fn+dn)/2))});let hn=an.joints.length-1;an.joints.forEach((yn,En)=>{let Sn=En===0?un:En===hn?dn:an.arcs[En];if(Sn<un||Sn>dn){rn.set(yn,{scale:gp});return}rn.set(yn,{position:Pp(nn,Ib(an,Sn),ln),scale:cn,color:y6(ZS,pn(Sn))})});let bn=dn+nn.headLength/2;rn.set(an.head,{position:Pp(nn,Ib(an,bn),ln),color:y6(ZS,pn(bn))})}function x6(rn,nn,an,sn,ln){let cn=rn.spawn({mesh:PSt(),parent:an,position:Pp(nn,h6(nn,sn,ln),wSt),scale:gp,color:NSt,pickable:!1});return rn.animate(cn,{scale:nn.dotRadius*2},{spring:ome,delay:tme}),cn}var CSt=-20,wSt=0.5,gp=0,LSt=(rn,nn,an,sn=0)=>[nn-rn.width/2,rn.height/2-an,sn],Pp=(rn,[nn,an],sn)=>[nn-rn.boardWidth/2,rn.boardHeight/2-an,sn],ISt=(rn)=>rn.stroke,OSt=(rn)=>rn.stroke*3+rn.headHalfWidth,fme,v6=(rn,nn)=>{let an=fme.get(rn);if(!an)an=Bn("arrows/ArrowsScene:"+rn,nn),fme.set(rn,an);return an},E6=()=>v6("arrow-bar",()=>wn(hme([[-0.5,0,0],[0.5,0,0]],{radius:0.5,sides:12,smoothness:1,caps:!1}))),bme=()=>v6("arrow-head",()=>wn(hme([[0,0,0],[1,0,0]],{radius:(rn)=>0.5*(1-rn),sides:16,smoothness:4}))),PSt=()=>v6("disc",()=>wn(ASt(new MSt().addCircle(0,0,0.5),{depth:0}))),T6=(rn)=>xn(rn.mode==="classic"?sme:rn.TEXT),ZS,gSt,DSt,NSt,y6=(rn,nn)=>[rn[0],rn[1],rn[2],nn],GSt,kSt,yme=(rn)=>[GSt[rn],kSt[rn]],Eme,Sme,_me,QS=(rn,nn)=>Math.abs(nn[0]-rn[0])+Math.abs(nn[1]-rn[1]),_6=(rn)=>[rn.headLength,rn.headHalfWidth*2,rn.headHalfWidth*2];var Pme=e(()=>{u();na();Hn();g5();fme=new Map,ZS=xn(ime),gSt=xn(lme),DSt=xn(cme),NSt=xn(ume),GSt=[0,1,0,-1],kSt=[-1,0,1,0],Eme=[Math.PI/2,0,-Math.PI/2,Math.PI],Sme=D5.z(Math.PI/2),_me=D5.z(0)});import{World as BSt}from"@nayan-ui/engine";function kme(rn){let nn=new BSt(qSt),an={eye:[0,0,400],target:[0,0,0],fov:1,ortho:1},sn=Gme(),ln={world:nn,camera:an,theme:rn,color:T6(rn),layout:null,scenery:null,phase:"ready",get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,arrows:sn.arrows,cellToArrowId:sn.cellToArrowId,remaining:sn.count,views:[],dots:[],flights:[],intro:!0,introAge:-1,onPhase:(cn)=>{},onScore:(cn)=>{},onTime:(cn)=>{},onRemaining:(cn)=>{},onClear:()=>{},onBlocked:()=>{},onWin:()=>{},onLose:()=>{}};return nn.scoreboard.reset(0,ed),nn.scoreboard.handlers={onSecond:(cn)=>ln.onTime(cn),onTimeUp:()=>ln.phase==="playing"&&qme(ln,!1)},ln}function Bme(rn,nn){let an=rn.world;if(rn.scenery)an.despawn(rn.scenery.backdrop),an.despawn(rn.scenery.board);rn.flights=[],rn.layout=nn,rn.camera.ortho=nn.height/2,rn.scenery=xme(an,nn,rn.theme,rn.intro),Hme(rn)}function Fme(rn,nn){if(rn.theme=nn,rn.color=T6(nn),!rn.scenery||rn.world.isDisposed)return;aa(rn.world,rn.scenery.backdrop,nn);for(let an of rn.views)if(an)Mme(rn.world,an,rn.color)}function Hme(rn){let{layout:nn,scenery:an}=rn;if(!nn||!an)return;let sn=rn.intro;if(sn)rn.introAge=0;rn.views=rn.arrows.map((ln)=>ln?Ame(rn.world,nn,an.board,ln,rn.color,sn?YSt(ln):null):null),rn.dots=[];for(let ln=0;ln<Yu;ln++)if(rn.cellToArrowId[ln]===null)rn.dots.push(x6(rn.world,nn,an.board,Math.floor(ln/Xa),ln%Xa))}function KSt(rn){let nn=rn.world;for(let an of rn.views)if(an)nn.despawn(an.root);for(let an of rn.dots)nn.despawn(an);for(let an of rn.flights)nn.despawn(an.root);rn.views=[],rn.dots=[],rn.flights=[]}function Wme(rn){KSt(rn);let nn=Gme();rn.arrows=nn.arrows,rn.cellToArrowId=nn.cellToArrowId,rn.remaining=nn.count,rn.intro=!0,Hme(rn)}function Ume(rn){if(rn.phase!=="ready")return;if(rn.remaining<=0)Wme(rn),rn.onRemaining(rn.remaining);rn.phase="playing",rn.world.scoreboard.startCountdown(ed),rn.onPhase("playing")}function Vme(rn){Wme(rn),rn.world.scoreboard.reset(0,ed),rn.won=!1,rn.phase="ready",rn.onScore(0),rn.onTime(ed),rn.onRemaining(rn.remaining),rn.onPhase("ready")}function zme(rn){rn.flights=[],rn.world.dispose()}function qme(rn,nn){if(rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",nn)rn.onWin();else{for(let an of rn.flights)rn.world.despawn(an.root);rn.flights=[],rn.world.scoreboard.set(0),rn.onScore(0),rn.onLose()}rn.onPhase("over")}function Yme(rn,nn){if(rn.world.isDisposed)return;fc(rn,nn);let an=rn.layout;if(an&&rn.flights.length){let sn=Math.min(nn,0.05),ln=0;for(let cn of rn.flights)if(Ime(rn.world,an,cn,sn,Qpe))rn.flights[ln++]=cn;rn.flights.length=ln}rn.world.update(nn)}function XSt(rn,nn){let an=nn.waypoints[nn.waypoints.length-1],sn=ru[nn.exitDir],ln=nu[nn.exitDir],cn=an.row+sn,un=an.col+ln;while(cn>=0&&cn<Ei&&un>=0&&un<Xa){let dn=rn.cellToArrowId[Ni(cn,un)];if(dn!==null&&dn!==void 0&&dn!==nn.id)return rn.arrows[dn]??null;cn+=sn,un+=ln}return null}function Kme(rn,nn,an){let{layout:sn,scenery:ln}=rn;if(!sn||!ln||rn.phase!=="playing")return;let cn=nn-sn.boardLeft+sn.hitMargin,un=an-sn.boardTop+sn.hitMargin;if(cn<0||un<0)return;let dn=Math.floor(cn/sn.stride),pn=Math.floor(un/sn.stride);if(pn>=Ei||dn>=Xa)return;let mn=rn.cellToArrowId[Ni(pn,dn)];if(mn===null||mn===void 0)return;let fn=rn.arrows[mn];if(!fn)return;let hn=rn.world;if(!Nme(rn.cellToArrowId,fn)){let yn=rn.views[mn];if(yn)Cme(hn,yn,rn.color);let En=XSt(rn,fn),Sn=En&&rn.views[En.id];if(Sn)wme(hn,Sn,rn.color);rn.onBlocked();return}for(let yn of fn.waypoints)rn.cellToArrowId[Ni(yn.row,yn.col)]=null,rn.dots.push(x6(hn,sn,ln.board,yn.row,yn.col));rn.arrows[mn]=null;let bn=rn.views[mn];if(bn)hn.despawn(bn.root);if(rn.views[mn]=null,rn.flights.push(Lme(hn,sn,ln.board,fn)),rn.remaining-=1,rn.world.scoreboard.add(Zpe),rn.onRemaining(rn.remaining),rn.onClear(),rn.remaining<=0){rn.world.scoreboard.set(Ya(ed-rn.timeLeft,ed,rn.score)),rn.onScore(rn.score),Rme(hn,ln.board),qme(rn,!0);return}rn.onScore(rn.score)}var Ni=(rn,nn)=>rn*Xa+nn,N5=(rn)=>{for(let nn=rn.length-1;nn>0;nn--){let an=Math.floor(Math.random()*(nn+1));[rn[nn],rn[an]]=[rn[an],rn[nn]]}return rn},Nme=(rn,nn)=>{let an=nn.waypoints[nn.waypoints.length-1],sn=ru[nn.exitDir],ln=nu[nn.exitDir],cn=an.row+sn,un=an.col+ln;while(cn>=0&&cn<Ei&&un>=0&&un<Xa){let dn=rn[Ni(cn,un)];if(dn!==null&&dn!==nn.id)return!1;cn+=sn,un+=ln}return!0},R6=(rn,nn)=>{let an=nn.row-rn.row,sn=nn.col-rn.col;if(an===-1)return 0;if(an===1)return 2;if(sn===1)return 1;return 3},gme=(rn,nn)=>{let an=nn-rn;if(an===-Xa)return 0;if(an===Xa)return 2;if(an===1)return 1;return 3},FSt=(rn)=>({row:Math.floor(rn/Xa),col:rn%Xa}),Dme=()=>{let rn=new Uint8Array(Yu),nn=Array(Yu).fill(null),an=[],sn=0,ln=Yu,cn=(Tn,Rn,An)=>{let Mn=ru[An],Cn=nu[An],Ln=Tn+Mn,On=Rn+Cn;while(Ln>=0&&Ln<Ei&&On>=0&&On<Xa){if(!rn[Ni(Ln,On)])return!1;Ln+=Mn,On+=Cn}return!0},un=3,dn=14,pn=new Int32Array(Yu),mn=0,fn=new Int16Array(dn),hn=new Int16Array(4),bn=(Tn,Rn)=>{let An=ru[Rn],Mn=nu[Rn],Cn=Math.floor(Tn/Xa)+An,Ln=Tn%Xa+Mn;while(Cn>=0&&Cn<Ei&&Ln>=0&&Ln<Xa){if(pn[Ni(Cn,Ln)]===mn)return!0;Cn+=An,Ln+=Mn}return!1},yn=new Int16Array(Yu),En=new Int16Array(Yu),Sn=0,_n=()=>{Sn=0;for(let Tn=0;Tn<Yu;Tn++)if(!rn[Tn])En[Tn]=Sn,yn[Sn++]=Tn},vn=(Tn,Rn)=>{let An=yn[Tn],Mn=yn[Rn];yn[Tn]=Mn,yn[Rn]=An,En[Mn]=Tn,En[An]=Rn};_n();while(ln>0){if(Sn===0)break;let Tn=!1;for(let Rn=0;Rn<Sn;Rn++){vn(Rn,Rn+Math.floor(Math.random()*(Sn-Rn)));let An=yn[Rn];mn++,fn[0]=An,pn[An]=mn;let Mn=1,Cn=An,Ln=un+Math.floor(Math.random()*(dn-un+1));while(Mn<Ln){let Kn=Math.floor(Cn/Xa),ea=Cn%Xa,Yn=0;for(let Xn=0;Xn<4;Xn++){let La=ru[Xn],Ia=nu[Xn],Va=Kn+La,ls=ea+Ia;if(Va<0||Va>=Ei||ls<0||ls>=Xa)continue;let Bs=Ni(Va,ls);if(!rn[Bs]&&pn[Bs]!==mn)hn[Yn++]=Bs}if(Yn===0)break;let ia=hn[Math.floor(Math.random()*Yn)];fn[Mn++]=ia,pn[ia]=mn,Cn=ia}if(Mn<2)continue;let On=fn[Mn-1],Dn=fn[0],Nn=null,Wn=!1,Fn=gme(fn[Mn-2],On);if(cn(Math.floor(On/Xa),On%Xa,Fn)&&!bn(On,Fn))Nn=Fn;else{let Kn=gme(fn[1],Dn);if(cn(Math.floor(Dn/Xa),Dn%Xa,Kn)&&!bn(Dn,Kn))Nn=Kn,Wn=!0}if(Nn===null)continue;let qn=Array(Mn);for(let Kn=0;Kn<Mn;Kn++){let ea=fn[Wn?Mn-1-Kn:Kn];qn[Kn]=FSt(ea),rn[ea]=1,nn[ea]=sn,ln--,vn(En[ea],Sn-1),Sn--}an.push({id:sn,waypoints:qn,exitDir:Nn}),sn++,Tn=!0;break}if(!Tn){for(let Rn=0;Rn<Ei;Rn++)for(let An=0;An<Xa;An++){let Mn=Ni(Rn,An);if(rn[Mn])continue;let Cn=!1;for(let Ln of N5([0,1,2,3])){let On=ru[Ln],Dn=nu[Ln],Nn=Rn+On,Wn=An+Dn;if(Nn<0||Nn>=Ei||Wn<0||Wn>=Xa)continue;let Fn=nn[Ni(Nn,Wn)];if(Fn===null||Fn===void 0)continue;let qn=an[Fn],Kn=qn.waypoints[0];if(Kn.row===Nn&&Kn.col===Wn){qn.waypoints.unshift({row:Rn,col:An}),rn[Mn]=1,nn[Mn]=qn.id,ln--,Cn=!0;break}}if(!Cn)for(let Ln of N5([0,1,2,3])){let On=ru[Ln],Dn=nu[Ln],Nn=Rn+On,Wn=An+Dn;if(Nn<0||Nn>=Ei||Wn<0||Wn>=Xa)continue;let Fn=nn[Ni(Nn,Wn)];if(Fn===null||Fn===void 0)continue;let qn=an[Fn],Kn=qn.waypoints[qn.waypoints.length-1];if(Kn.row!==Nn||Kn.col!==Wn)continue;let ea=R6(Kn,{row:Rn,col:An});if(cn(Rn,An,ea)){qn.waypoints.push({row:Rn,col:An}),qn.exitDir=ea,rn[Mn]=1,nn[Mn]=qn.id,ln--,Cn=!0;break}}if(!Cn){let Ln=!1;for(let On of N5([0,1,2,3])){let Dn=ru[On],Nn=nu[On],Wn=Rn+Dn,Fn=An+Nn;if(Wn<0||Wn>=Ei||Fn<0||Fn>=Xa)continue;if(rn[Ni(Wn,Fn)])continue;let qn=R6({row:Rn,col:An},{row:Wn,col:Fn});if(cn(Wn,Fn,qn)){let Kn=[{row:Rn,col:An},{row:Wn,col:Fn}];an.push({id:sn,waypoints:Kn,exitDir:qn}),rn[Mn]=1,nn[Mn]=sn;let ea=Ni(Wn,Fn);rn[ea]=1,nn[ea]=sn,ln-=2,sn++,Ln=!0;break}}if(!Ln)for(let On of N5([0,1,2,3])){let Dn=ru[On],Nn=nu[On],Wn=Rn+Dn,Fn=An+Nn;if(Wn<0||Wn>=Ei||Fn<0||Fn>=Xa)continue;let qn=nn[Ni(Wn,Fn)];if(qn===null||qn===void 0)continue;let Kn=an[qn],ea=Kn.waypoints[0],Yn=Kn.waypoints[Kn.waypoints.length-1];if(ea.row===Wn&&ea.col===Fn){Kn.waypoints.unshift({row:Rn,col:An}),rn[Mn]=1,nn[Mn]=Kn.id,ln--,Ln=!0;break}if(Yn.row===Wn&&Yn.col===Fn){let ia=R6(Yn,{row:Rn,col:An});Kn.waypoints.push({row:Rn,col:An}),Kn.exitDir=ia,rn[Mn]=1,nn[Mn]=Kn.id,ln--,Ln=!0;break}}if(!Ln)rn[Mn]=1,ln--}}_n()}}return{arrows:an,cellToArrowId:nn,count:an.length}},HSt=(rn,nn)=>{let an=nn.slice(),sn=rn.slice();while(sn.length>0){let ln=[];for(let cn of sn)if(Nme(an,cn))for(let un of cn.waypoints)an[Ni(un.row,un.col)]=null;else ln.push(cn);if(ln.length===sn.length)return!1;sn=ln}return!0},WSt=(rn)=>{let nn=new Int32Array(Yu);for(let an=0;an<rn.length;an++){let sn=rn[an],ln=an+1;for(let fn of sn.waypoints)nn[Ni(fn.row,fn.col)]=ln;let cn=sn.waypoints[sn.waypoints.length-1],un=ru[sn.exitDir],dn=nu[sn.exitDir],pn=cn.row+un,mn=cn.col+dn;while(pn>=0&&pn<Ei&&mn>=0&&mn<Xa){if(nn[Ni(pn,mn)]===ln)return!1;pn+=un,mn+=dn}}return!0},USt=(rn)=>{let nn=0;for(let an of rn)if(an===null)nn++;return nn},VSt=2,zSt=200,Gme=()=>{let rn=null,nn=1/0;for(let an=0;an<zSt;an++){let sn=Dme();if(!sn.arrows.every((cn)=>cn.waypoints.length>=VSt)||!WSt(sn.arrows)||!HSt(sn.arrows,sn.cellToArrowId))continue;let ln=USt(sn.cellToArrowId);if(ln===0)return sn;if(ln<nn)rn=sn,nn=ln}return rn??Dme()},qSt=1600,YSt=(rn)=>rn.id%12/12*P5*O5;var Xme=e(()=>{ci();u();Hn();g5();Pme()});var Fo={};n(Fo,{Arrows:()=>yt});import{jsx as jSt}from"react/jsx-runtime";var Ob,yt;var K=e(()=>{Ta();l();a();_a();o();xa();va();g5();Xme();Ob=t.ARROWS,yt=Vn("arrows",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(null),[cn,un]=gn(ed),{game:dn,theme:pn,status:mn,screen:fn,gameOver:hn}=zn(rn,{gameId:"arrows",create:kme,start:Ume,reset:Vme,dispose:zme,tick:Yme,setTheme:Fme,resize:(bn,yn,En,Sn)=>{let _n=pme(yn,En,Sn);return Bme(bn,_n),_n.boardWidth},tap:Kme,sounds:Ob,onStart:(bn)=>bn(Ob.START,"medium"),wire:(bn,yn)=>{bn.onScore=an,bn.onTime=un,bn.onRemaining=ln,bn.onClear=()=>yn(Ob.CLEAR,"light"),bn.onBlocked=()=>yn(Ob.BLOCKED,"warning"),bn.onWin=()=>yn(Ob.WIN,"success"),bn.onLose=()=>yn(Ob.GAME_OVER,"heavy")}});return jSt(Un,{...fn,light:dme,columns:[Qn(nn),ma("ARROWS",sn??dn.remaining),ta(cn,pn)],subtext:"Clear all the arrows!",gameOver:hn({title:mn==="win"?"CLEARED!":"TIME UP!",message:mn==="win"?"You cleared all the arrows!":"You ran out of time!",scoreLabel:"Score",score:nn,buttonText:mn==="win"?"Play Again!":"Try Again!"})})})});var Ho={};n(Ho,{HAZE:()=>r_,at:()=>Fa,backgroundFor:()=>hl,bushMesh:()=>n_,cameraFor:()=>fl,facing:()=>Mi,fbm:()=>gb,flowerMesh:()=>Nf,lightFor:()=>ji,makeView:()=>Fl,noise:()=>Oa,pineMesh:()=>Db,planeVector:()=>t_,pointSize:()=>Ha,random:()=>Ds,rayThrough:()=>gf,rockMesh:()=>Np,sceneryTint:()=>vc,spawnWorld:()=>$i,tuftMesh:()=>rd,warmAssets:()=>QSt});import{lathe as Zme,merge as Df,quat as k5,recolor as JS,shapeGeometry as Pb,tube as e_}from"@nayan-ui/engine";function Fl(rn,nn,an={}){let sn=an.horizon??0.62,ln=Math.tan(Qme/2),cn=Math.atan((sn-0.5)*2*ln);return{width:rn,height:nn,eye:[0,an.eyeHeight??1.6,0],forward:[0,Math.sin(cn),-Math.cos(cn)],up:[0,Math.cos(cn),Math.sin(cn)],tanHalf:ln,pitch:cn,horizon:sn,playDepth:an.playDepth??3.6}}function fl(rn){let[nn,an,sn]=td(rn.eye,Dp(rn.forward,rn.playDepth));return{eye:[rn.eye[0],rn.eye[1],rn.eye[2]],target:[nn,an,sn],fov:Qme}}function Fa(rn,nn,an,sn=rn.playDepth){let ln=Ha(rn,sn),cn=td(rn.eye,Dp(rn.forward,sn));return[cn[0]+(nn-rn.width/2)*ln,cn[1]+(rn.height/2-an)*ln*rn.up[1],cn[2]+(rn.height/2-an)*ln*rn.up[2]]}function t_(rn,nn,an){let sn=Ha(rn);return[nn*sn,-an*sn*rn.up[1],-an*sn*rn.up[2]]}function Mi(rn,nn=0){return k5.multiply(k5.x(rn.pitch),k5.z(nn))}function gf(rn,nn,an){let sn=(nn-rn.width/2)/(rn.height/2)*rn.tanHalf,ln=(rn.height/2-an)/(rn.height/2)*rn.tanHalf;return C6(td(td(rn.forward,[sn,0,0]),Dp(rn.up,ln)))}function Oa(rn,nn){let an=Math.floor(rn),sn=Math.floor(nn),ln=B5(rn-an),cn=B5(nn-sn),un=G5(an,sn),dn=G5(an+1,sn),pn=G5(an,sn+1),mn=G5(an+1,sn+1);return un+(dn-un)*ln+(pn-un)*cn+(un-dn-pn+mn)*ln*cn}function Ds(rn){let nn=rn>>>0;return()=>{nn=nn+1831565813>>>0;let an=nn;return an=Math.imul(an^an>>>15,an|1),an^=an+Math.imul(an^an>>>7,an|61),((an^an>>>14)>>>0)/4294967296}}class F5{vertices=[];indices=[];vertex(rn,nn,an){return this.vertices.push(rn[0],rn[1],rn[2],nn[0],nn[1],nn[2],an[0],an[1],an[2],0,0),this.vertices.length/11-1}grid(rn,nn,an){let sn=this.vertices.length/11;for(let cn=0;cn<rn;cn++)for(let un=0;un<nn;un++){let{p:dn,n:pn,c:mn}=an(cn,un);this.vertex(dn,pn,mn)}let ln=(cn,un)=>sn+cn*nn+un;for(let cn=0;cn+1<rn;cn++)for(let un=0;un+1<nn;un++)this.indices.push(ln(cn,un),ln(cn,un+1),ln(cn+1,un+1),ln(cn,un),ln(cn+1,un+1),ln(cn+1,un))}geometry(){return{vertices:new Float32Array(this.vertices),indices:new Uint32Array(this.indices)}}}function rfe(rn){let nn=o_(rn);return Ku(`meadow-sky:${nn?"night":"day"}`,()=>{let an=ji(rn),sn=C6(an.direction),ln=0.6+0.4*(sn[1]*0.5+0.5),cn=an.ambient*ln+(1-an.ambient),un=an.color??[1,1,1],dn=nn?efe:Jme,pn=new F5,mn=14,fn=24;return pn.grid(14,24,(hn,bn)=>{let yn=-0.12+hn/13*1.2,En=-1.25+bn/23*2.5,Sn=Math.max(0,yn)/1.08,_n=Sn<0.25?od(dn.horizon,dn.mid,B5(Sn/0.25)):od(dn.mid,dn.zenith,B5((Sn-0.25)/0.75));return{p:[Math.sin(En)*Math.cos(yn)*A6,Math.sin(yn)*A6,-Math.cos(En)*Math.cos(yn)*A6],n:sn,c:[Math.min(1,_n[0]/(cn*un[0])),Math.min(1,_n[1]/(cn*un[1])),Math.min(1,_n[2]/(cn*un[2]))]}}),wn(pn.geometry(),{center:!1})})}function nfe(rn,nn="meadow"){return Ku(`meadow-hill:${nn}:${rn}`,()=>{let an=w6[nn][rn],sn=us(an.colors[0]),ln=us(an.colors[1]),cn=new F5,un=90,dn=an.distance*1.3;cn.grid(3,90,(mn,fn)=>{let hn=-dn+fn/89*dn*2,bn=gb(hn*an.roughness+rn*7,rn*3.1),yn=an.height*(an.mesa?Math.min(1,0.25+Math.max(0,bn-0.35)*3.2):0.35+0.65*bn),En=mn===0?yn:mn===1?yn*0.45:-2,Sn=-an.distance-gb(hn*0.01,rn)*20+(mn===0?0:4*mn),_n=mn===0?sn:od(sn,ln,mn/2);return{p:[hn,En,Sn],n:C6([0,0.55,0.85]),c:od(_n,r_,an.haze)}});let pn=cn.geometry();for(let mn=0;mn<pn.indices.length;mn+=3){let fn=pn.indices[mn+1];pn.indices[mn+1]=pn.indices[mn+2],pn.indices[mn+2]=fn}return wn(pn,{center:!1})})}function afe(){return Ku("meadow-ground",()=>{let rn=us("#5fae3e"),nn=us("#3c7f2a"),an=us("#9bb24a"),sn=new F5,ln=46,cn=40;return sn.grid(46,40,(un,dn)=>{let pn=-(Math.pow(1.13,un)-1)*1.0123456790123457-0.3,mn=12+-pn*1.25,fn=-mn+dn/39*mn*2,hn=gb(fn*0.08,pn*0.08),bn=Oa(fn*0.5,pn*0.5),yn=od(nn,rn,hn);yn=od(yn,an,Math.max(0,bn-0.7)*1.5);let En=1-Math.exp(-((-pn/170)**2));return{p:[fn,0,pn],n:[0,1,0],c:od(yn,r_,En*0.75)}}),wn(sn.geometry(),{center:!1})})}function $i(rn,nn,an,sn={}){let[ln,cn]=sn.sun??[0.8,0.2],[un,dn]=sn.clouds??[0.1,0.42],pn=o_(an),mn=pn?tfe:ofe,fn=(Mn)=>[Mn[0]*mn[0],Mn[1]*mn[1],Mn[2]*mn[2],Mn[3]??1],hn=[],bn=(Mn,Cn,Ln,On,Dn)=>hn.push(rn.spawn({mesh:Mn,position:Cn,scale:Ln,color:On,...Dn?{rotation:Dn}:{},pickable:!1})),yn=Ds(42),En=(Mn)=>k5.y(Mn);bn(rfe(an),nn.eye,1,[1,1,1,1]);let Sn=gf(nn,nn.width*ln,nn.height*cn),_n=td(nn.eye,Dp(Sn,380));if(pn){bn("puff",_n,90,[1.3,1.3,1.9,0.35]),bn("sphere",_n,15,[2.1,2.1,2.3]);for(let Mn=0;Mn<46;Mn++){let Cn=gf(nn,yn()*nn.width,yn()*nn.height*nn.horizon*0.82);bn("sphere",td(nn.eye,Dp(Cn,395)),0.7+yn()*1.1,[2,2,2.2])}}else bn("puff",_n,170,[2.2,1.9,1.2,0.5]),bn("puff",_n,70,[2.4,2.2,1.6,0.85]),bn("sphere",_n,22,[2.6,2.35,1.7]);let vn=pn?[0.66,0.68,0.84,0.88]:[1.18,1.18,1.22,0.92];for(let Mn=0;Mn<7;Mn++){let Cn=gf(nn,Mn/6*nn.width*1.1-nn.width*0.05+(yn()-0.5)*60,nn.height*(un+yn()*(dn-un))),Ln=td(nn.eye,Dp(Cn,200+yn()*120)),On=22+yn()*18;for(let Dn=0;Dn<7;Dn++){let Nn=[(yn()-0.5)*On*2.2,(yn()-0.3)*On*0.5,(yn()-0.5)*On*0.6];hn.push(rn.spawn({mesh:"puff",position:td(Ln,Nn),scale:On*(0.8+yn()*0.7),color:vn,velocity:[0.12,0,0],pickable:!1}))}}let Tn=sn.biome??"meadow";w6[Tn].forEach((Mn,Cn)=>bn(nfe(Cn,Tn),[0,0,0],1,fn([1,1,1,1])));let Rn=sn.near??!0,An=Rn&&(sn.groundDetails??!0);if(Rn)bn(afe(),[0,0,0],1,fn([1,1,1,1]));for(let Mn=0;An&&Mn<26;Mn++){let Cn=-(26+yn()*50),Ln=(yn()*2-1)*(-Cn*0.62+6),On=yn()<0.45,Dn=(On?8:6)+yn()*5;bn(On?Db():M6(),[Ln,0,Cn],[Dn*(0.85+yn()*0.3),Dn,Dn*(0.85+yn()*0.3)],fn([1,1,1,1]),En(yn()*6.3))}if(An&&(sn.framingTrees??!0))bn(M6(),[-4.6,0,-11],[8.5,8,8.5],fn([1,1,1,1]),En(0.6)),bn(Db(),[5.2,0,-14],[8,12,8],fn([1,1,1,1]),En(1.9));for(let Mn=0;An&&Mn<16;Mn++){let Cn=-(7+yn()*24),Ln=(yn()*2-1)*(-Cn*0.55+2),On=1+yn()*1.4;bn(n_(),[Ln,0,Cn],[On*1.2,On,On*1.2],fn([0.9+yn()*0.2,1,0.9,1]),En(yn()*6.3))}for(let Mn=0;An&&Mn<7;Mn++){let Cn=-(6+yn()*20),Ln=(yn()*2-1)*(-Cn*0.5+1.5),On=0.35+yn()*0.8;bn(Np(),[Ln,0,Cn],On,fn([1,1,1,1]),En(yn()*6.3))}for(let Mn=0;Mn<(sn.hotAirBalloons??0);Mn++){let Cn=gf(nn,nn.width*(0.15+0.7*yn()),nn.height*(un+0.05+yn()*(dn-un))),Ln=td(nn.eye,Dp(Cn,70+yn()*60)),On=9+yn()*4;hn.push(rn.spawn({mesh:sfe(Mn%I6.length),position:Ln,scale:On,rotation:En(yn()*6.3),color:fn([1,1,1,1]),velocity:[0.25+yn()*0.2,0,0],bob:{amplitude:[0,On*0.06,0],speed:0.6+yn()*0.3,phase:yn()*6.3},pickable:!1}))}if(!An||!(sn.foreground??!0))return hn;for(let Mn=0;Mn<150;Mn++){let Cn=-(4.4+Math.pow(yn(),1.6)*16),Ln=(yn()*2-1)*(-Cn*0.52+0.8),On=0.9+yn()*0.9;bn(rd(),[Ln,0,Cn],On,fn([1,1,1,1]),En(yn()*6.3))}for(let Mn=0;Mn<55;Mn++){let Cn=-(4.6+Math.pow(yn(),1.4)*14),Ln=(yn()*2-1)*(-Cn*0.5+0.6),On=$me[Math.floor(yn()*$me.length)];bn(Nf(),[Ln,0,Cn],0.9+yn()*0.6,fn(On),En(yn()*6.3))}return hn}function*QSt(rn,nn=["meadow","desert"]){yield()=>rfe(rn);for(let an of nn)for(let sn=0;sn<w6[an].length;sn++)yield()=>nfe(sn,an);for(let an of[afe,M6,Db,n_,Np,rd,Nf])yield an;for(let an=0;an<I6.length;an++)yield()=>sfe(an)}var Qme=0.9,Ha=(rn,nn=rn.playDepth)=>2*nn*rn.tanHalf/rn.height,td=(rn,nn)=>[rn[0]+nn[0],rn[1]+nn[1],rn[2]+nn[2]],Dp=(rn,nn)=>[rn[0]*nn,rn[1]*nn,rn[2]*nn],C6=(rn)=>Dp(rn,1/(Math.hypot(rn[0],rn[1],rn[2])||1)),o_=(rn)=>rn.mode==="dark",$St,ZSt,ji=(rn)=>o_(rn)?ZSt:$St,us=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},od=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an],Jme,efe,r_,tfe,ofe,vc=(rn)=>o_(rn)?tfe:ofe,G5=(rn,nn)=>{let an=Math.sin(rn*127.1+nn*311.7)*43758.5453;return an-Math.floor(an)},B5=(rn)=>rn*rn*(3-2*rn),gb=(rn,nn)=>Oa(rn,nn)*0.55+Oa(rn*2.1,nn*2.1)*0.3+Oa(rn*4.3,nn*4.3)*0.15,jme,Ku=(rn,nn)=>{let an=jme.get(rn);if(!an)an=Bn("shared/EngineMeadow:"+rn,nn),jme.set(rn,an);return an},A6=420,w6,L6=(rn,nn,an)=>({position:sn})=>{let ln=Oa(sn[0]*9+an,sn[1]*9+sn[2]*7);return od(nn,rn,Math.min(1,Math.max(0,0.25+sn[1]*0.6+ln*0.5)))},M6=()=>Ku("meadow-oak",()=>{let rn=us("#6b4423"),nn=Pb("sphere"),sn=[[[0,0.62,0],0.46],[[-0.2,0.54,0.06],0.32],[[0.22,0.56,-0.04],0.34],[[0.04,0.82,0.03],0.32],[[-0.12,0.74,-0.14],0.28],[[0.14,0.72,0.16],0.28],[[-0.24,0.68,-0.02],0.24]].map(([ln,cn],un)=>({geometry:JS(Pb("sphere"),L6(us("#6fbf4a"),us("#24602a"),un*3.7)),position:ln,scale:cn}));return wn(Df([{geometry:e_([[0,0,0],[0.01,0.25,0],[-0.02,0.5,0.01]],{radius:(ln)=>0.055-ln*0.025,color:rn})},...sn,{geometry:nn,position:[0,0.01,0],scale:[0.14,0.03,0.14],color:us("#5a3a1e")}]),{center:!1,shine:0.05})}),Db=()=>Ku("meadow-pine",()=>{let rn=[0,1,2,3].map((nn)=>{let an=0.18+nn*0.19,sn=0.3-nn*0.06;return{geometry:JS(Zme([[sn,an],[sn*0.55,an+0.12],[0.001,an+0.3]],{segments:14}),L6(us("#3f8a45"),us("#123d1d"),nn*5.1))}});return wn(Df([{geometry:e_([[0,0,0],[0,0.4,0]],{radius:(nn)=>0.045-nn*0.02,color:us("#5a3a22")})},...rn]),{center:!1})}),n_=()=>Ku("meadow-bush",()=>wn(Df([[[0,0.22,0],0.5],[[-0.24,0.16,0.05],0.36],[[0.25,0.17,-0.03],0.38],[[0.05,0.36,0.04],0.34]].map(([rn,nn],an)=>({geometry:JS(Pb("sphere"),L6(us("#77c24f"),us("#2d6b2a"),an*2.3)),position:rn,scale:[nn,nn*0.8,nn]}))),{center:!1,shine:0.08})),Np=()=>Ku("meadow-rock",()=>wn(Df([{geometry:JS(Pb("sphere"),({position:rn})=>{let nn=0.48+Oa(rn[0]*6,rn[1]*6+rn[2]*4)*0.22;return[nn,nn*0.98,nn*0.92]}),scale:[1,0.55,0.8],position:[0,0.18,0]}]),{center:!1,shine:0.15})),rd=()=>Ku("meadow-tuft",()=>{let rn=Ds(7),nn=Array.from({length:7},()=>{let an=rn()*Math.PI*2,sn=0.05+rn()*0.08,ln=0.22+rn()*0.14,cn=(rn()-0.5)*0.08,un=(rn()-0.5)*0.08;return{geometry:JS(e_([[cn,0,un],[cn+Math.cos(an)*sn*0.4,ln*0.55,un+Math.sin(an)*sn*0.4],[cn+Math.cos(an)*sn,ln,un+Math.sin(an)*sn]],{radius:(dn)=>0.014*(1-dn),sides:4,smoothness:3}),({position:dn})=>od(us("#2f6e22"),us("#9ad466"),Math.min(1,dn[1]/0.3)))}});return wn(Df(nn),{center:!1})}),Nf=()=>Ku("meadow-flower",()=>{let rn=Pb("sphere"),nn=[0,1,2,3,4].map((an)=>{let sn=an/5*Math.PI*2;return{geometry:rn,position:[Math.cos(sn)*0.05,0.2,Math.sin(sn)*0.05],scale:[0.06,0.025,0.06],color:[1,1,1]}});return wn(Df([{geometry:e_([[0,0,0],[0.01,0.2,0]],{radius:0.006,sides:4,color:us("#3d7a2a")})},...nn,{geometry:rn,position:[0,0.21,0],scale:0.04,color:us("#ffd23f")}]),{center:!1})}),I6,sfe=(rn)=>Ku(`meadow-hot-air:${rn}`,()=>{let[nn,an]=I6[rn].map(us),sn=Zme([[0.08,0.28],[0.16,0.36],[0.3,0.52],[0.36,0.66],[0.35,0.8],[0.27,0.93],[0.12,1],[0.001,1.01]],{segments:24,color:({u:cn})=>Math.floor(cn*12)%2?nn:an}),ln=[0,1,2,3].map((cn)=>{let un=cn/4*Math.PI*2+Math.PI/4;return{geometry:e_([[Math.cos(un)*0.075,0.28,Math.sin(un)*0.075],[Math.cos(un)*0.05,0.12,Math.sin(un)*0.05]],{radius:0.004,sides:3,color:us("#5a4630")})}});return wn(Df([{geometry:sn},...ln,{geometry:Pb("roundedBox"),position:[0,0.08,0],scale:[0.11,0.08,0.11],color:us("#8a5a2b")}]),{center:!1,shine:0.25})}),$me,hl=(rn)=>o_(rn)?efe.horizon:Jme.horizon;var d=e(()=>{_();Hn();na();$St={direction:[0.55,0.8,0.45],ambient:0.42,color:[1.08,1.02,0.94],shadows:!0,shadowExtent:22},ZSt={direction:[-0.45,0.75,0.4],ambient:0.64,color:[0.92,0.95,1.06],shadows:!0,shadowExtent:22},Jme={zenith:us("#2a73c0"),mid:us("#6aaee0"),horizon:us("#d8edf6")},efe={zenith:us("#07061a"),mid:us(nt.SKY[1]),horizon:us(nt.SKY[3])},r_=us("#c6e0ec"),tfe=[0.72,0.76,0.92,1],ofe=[1,1,1,1];jme=new Map;w6={meadow:[{distance:250,height:34,roughness:0.012,colors:["#5f8a6e","#4b7560"],haze:0.62},{distance:150,height:20,roughness:0.02,colors:["#4f8a4a","#3b6e3c"],haze:0.4},{distance:85,height:11,roughness:0.035,colors:["#4a8f3c","#356f2c"],haze:0.2}],desert:[{distance:250,height:40,roughness:0.014,colors:["#c7a07e","#a9846a"],haze:0.58,mesa:!0},{distance:150,height:26,roughness:0.022,colors:["#c9875a","#a5643d"],haze:0.36,mesa:!0},{distance:85,height:9,roughness:0.04,colors:["#ddb27a","#c4925a"],haze:0.16}]};I6=[["#e8433b","#ffd34d"],["#2f7ae5","#ffffff"],["#7b4fd6","#ff8a3d"]],$me=["#FF6B9D","#FF5A5A","#B784FF","#6FA8FF","#FF9F43","#FFFFFF"].map((rn)=>xn(rn))});function vfe(rn,nn){let an=JSt,sn=an*1.25;return{width:rn,height:nn,size:an,bodyHeight:sn,totalHeight:sn+Math.round(an/60*30)}}var a_=120,Gp=3,ife=100,lfe=0.2,s_,Nb,cfe=3,ufe=0.1,O6=0.8,Gf=0.016666666666666666,P6=3,JSt,dfe=-1.2,pfe=-0.005,mfe=0.5,ffe=0.02,g6=0.8,hfe=0.5,bfe=1.6,yfe=6,i_=10,Efe=0.2,Sfe=1.22,_fe,D6;var l_=e(()=>{a();s_=["#FF0040","#0080FF","#FFD700","#00FF80","#8000FF","#FF0080","#FF4000","#00FFFF","#FF00FF","#FFB000","#00FF00"],Nb=["#FF0080","#8000FF","#0080FF","#00FF80","#FFD700","#FF4000"],JSt=c?92:60,_fe={eyeHeight:1.6,horizon:0.8,playDepth:5},D6={sun:[0.8,0.18],clouds:[0.14,0.62],framingTrees:!1,foreground:!1,hotAirBalloons:3}});function Tfe(rn,nn,an,sn=Math.random){let{left:ln,right:cn}=H5(nn),un=N6(nn)+0.1,dn=[[ln,cn]];for(let fn of rn){let hn=Math.abs(fn.y-an);if(hn>=un)continue;let bn=Math.sqrt(un*un-hn*hn),yn=fn.x-bn,En=fn.x+bn,Sn=[];for(let[_n,vn]of dn)if(En<=_n||yn>=vn)Sn.push([_n,vn]);else{if(yn>_n)Sn.push([_n,yn]);if(En<vn)Sn.push([En,vn])}dn=Sn}let pn=dn.reduce((fn,[hn,bn])=>fn+Math.max(0,bn-hn),0);if(pn<0.001)return null;let mn=Math.max(0,Math.min(0.999999,sn()))*pn;for(let[fn,hn]of dn){if(mn<=hn-fn)return fn+mn;mn-=hn-fn}return null}function xfe(rn,nn){let{left:an,right:sn}=H5(nn),ln=(dn)=>Math.max(an,Math.min(sn,dn)),cn=N6(nn);for(let dn of rn)dn.x=ln(dn.x);for(let dn=0;dn<12;dn++){let pn=0;for(let mn=0;mn<rn.length;mn++)for(let fn=mn+1;fn<rn.length;fn++){let hn=rn[mn],bn=rn[fn],yn=bn.x-hn.x,En=bn.y-hn.y;if(Math.abs(yn)>=cn||Math.abs(En)>=cn)continue;let Sn=Math.hypot(yn,En);if(Sn>=cn)continue;pn=Math.max(pn,cn-Sn);let _n=Sn>0.001?yn/Sn:0,vn=Sn>0.001?En/Sn:1,Tn=(cn-Sn+0.01)/2;hn.x=ln(hn.x-_n*Tn),bn.x=ln(bn.x+_n*Tn),hn.y-=vn*Tn,bn.y+=vn*Tn;let Rn=(bn.vx-hn.vx)*_n+(bn.vy-hn.vy)*vn;if(Rn<0){let An=Rn*(1+hfe)/2;hn.vx+=An*_n,bn.vx-=An*_n,hn.vy+=An*vn,bn.vy-=An*vn}}if(pn<0.01)return}let un=[...rn].sort((dn,pn)=>dn.y-pn.y);for(let dn=1;dn<un.length;dn++){let pn=un[dn];for(let mn=0;mn<dn;mn++){let fn=un[mn],hn=pn.x-fn.x;if(Math.abs(hn)>=cn)continue;pn.y=Math.max(pn.y,fn.y+Math.sqrt(cn*cn-hn*hn)+0.01)}}}var N6=(rn)=>rn.size*bfe+yfe,H5=(rn)=>{let nn=(N6(rn)-rn.size)/2;return{left:nn,right:Math.max(nn,rn.width-rn.size-nn)}};var Rfe=e(()=>{l_()});import{effects as G6,extrude as k6,lathe as W5,merge as B6,Path as F6,quat as Afe,tube as e_t}from"@nayan-ui/engine";function W6(){return Lfe??={body:wn(B6([{geometry:W5(Cfe,{segments:28})},{geometry:W5(wfe,{segments:10})}]),{center:!1,shine:0.75}),rainbow:wn(B6([{geometry:W5(Cfe,{segments:28,color:({v:rn})=>{let nn=xn(Nb[Math.min(Nb.length-1,Math.floor(rn*Nb.length))]);return[nn[0],nn[1],nn[2]]}})},{geometry:W5(wfe,{segments:10}),color:xn(Nb[0])}]),{center:!1,shine:0.75}),string:wn(e_t([[0,-0.66,0],[0.035,-0.8,0.01],[-0.03,-0.95,-0.01],[0.02,-1.08,0],[0,-1.16,0]],{radius:0.008,sides:5,smoothness:4,color:[0.92,0.92,0.9]}),{center:!1}),danger:wn(B6([{geometry:k6(new F6().addCircle(0,0,0.5),{depth:0.04,color:[0.95,0.08,0.08]})},{geometry:k6(new F6().addRoundedRect(-0.07,-0.3,0.14,0.38,0.06),{depth:0.02,color:[1,1,1]}),position:[0,0,0.03]},{geometry:k6(new F6().addCircle(0,0.24,0.075),{depth:0.02,color:[1,1,1]}),position:[0,0,0.03]}]),{center:!1,shine:0.3})},Lfe}function Ofe(rn,nn,an,sn,ln,cn,un){let dn=W6(),pn=an.size*Ha(nn,U5(nn,sn)),mn=rn.spawn({mesh:"none",position:Fa(nn,ln,cn,U5(nn,sn)),rotation:Mi(nn,-0.1),pickable:!1});rn.animate(mn,{rotation:Mi(nn,0.1)},{duration:1.6+Math.abs(un)*30,easing:"easeInOut",repeat:"forever",yoyo:!0});let fn=(bn,yn,En=[0,0,0],Sn=pn)=>rn.spawn({mesh:bn,parent:mn,position:En,scale:Sn,color:yn,pickable:!1});if(sn.kind==="life")fn(dn.rainbow,[1,1,1,1]);else fn(dn.body,sn.kind==="balloon"?Ife(sn.color):t_t);let hn=rn.spawn({mesh:dn.string,parent:mn,scale:pn,color:[1,1,1,1],rotation:Afe.z(-0.12),pickable:!1});if(rn.animate(hn,{rotation:Afe.z(0.12)},{duration:1.1+Math.random()*0.6,easing:"easeInOut",repeat:"forever",yoyo:!0}),sn.kind==="bomb")fn(dn.danger,[1,1,1,1],[0,pn*0.05,pn*0.47],pn*0.34);return mn}function Pfe(rn,nn,an,sn,ln,cn,un){let dn=Fa(nn,ln,cn,U5(nn,sn));if(un)un.position(an,dn[0],dn[1],dn[2]);else rn.set(an,{position:dn})}function gfe(rn,nn,an,sn,ln,cn,un){let dn=Ha(nn),pn=an.size*dn,mn=Fa(nn,cn,un,U5(nn,ln)-pn*0.6);rn.stopAnimation(sn),rn.set(sn,{spin:[0,0,0]}),rn.animate(sn,[{scale:Sfe,at:0.3},{scale:0}],{duration:Efe,easing:"linear"}).then(()=>rn.despawn(sn));let fn=0.12*Mfe*Mfe*dn;if(ln.kind==="bomb"){G6.explosion(rn,{position:mn,count:16,size:pn*0.7,speed:pn*2.6,lifetime:0.6,gravity:-fn*0.5,debris:a_t,smoke:[0.35,0.35,0.38,0.7],flash:!1});let bn=rn.spawn({mesh:"puff",position:mn,scale:pn*1.2,color:[H6[0]*2,H6[1]*2,H6[2]*2,0.9],pickable:!1});rn.animate(bn,{scale:pn*3.6,color:[2,0.9,0.2,0]},{duration:0.35}).then(()=>rn.despawn(bn));return}let hn=ln.kind==="life"?n_t:[Ife(ln.color),r_t.get(ln.color)];if(ln.kind==="life")G6.sparkle(rn,{position:mn,count:18,size:pn*0.08,speed:pn*5.5,lifetime:0.6,gravity:-fn*0.5,colors:hn});else G6.shatter(rn,{position:mn,count:10,mesh:"cube",size:pn*0.11,speed:pn*5.5,lifetime:0.6,gravity:-fn,colors:hn,dust:!1})}var Mfe,Cfe,wfe,Lfe,Ife=(rn)=>xn(rn),t_t,o_t=(rn)=>{let[nn,an,sn]=rn;return[Math.min(1,nn+0.35),Math.min(1,an+0.35),Math.min(1,sn+0.35)]},r_t,n_t,a_t,H6,U5=(rn,nn)=>rn.playDepth-(nn.kind==="bomb"?0.08:0);var Dfe=e(()=>{Uu();d();na();Hn();l_();Mfe=1/Gf,Cfe=[[0.001,-0.6],[0.07,-0.57],[0.17,-0.5],[0.3,-0.36],[0.42,-0.17],[0.49,0.03],[0.5,0.18],[0.47,0.34],[0.39,0.48],[0.26,0.58],[0.12,0.622],[0.001,0.625]],wfe=[[0.001,-0.68],[0.06,-0.66],[0.045,-0.62],[0.02,-0.59],[0.001,-0.585]];t_t=[0.07,0.07,0.08,1],r_t=new Map(s_.map((rn)=>[rn,o_t(xn(rn))])),n_t=[...Nb,"#FFFFFF"].map((rn)=>xn(rn)),a_t=["#1f2937","#374151","#f97316","#fde047"].map((rn)=>xn(rn)),H6=xn(xp("#f97316",0.2))});import{World as s_t}from"@nayan-ui/engine";function Gfe(rn){let nn=new s_t(i_t),sn={world:nn,camera:{eye:[0,1.6,0],target:[0,1.6,-1],fov:0.9},theme:rn,layout:null,view:null,scenery:[],phase:"ready",get score(){return nn.scoreboard.score},get lives(){return nn.scoreboard.lives},won:!1,time:0,pending:0,balloons:[],onPhase:(ln)=>{},onScore:(ln)=>{},onLives:(ln)=>{},onTime:(ln)=>{},onPop:()=>{},onBomb:()=>{},onWin:()=>{},onLose:()=>{}};return nn.scoreboard.reset(Gp),nn.scoreboard.handlers={onScore:(ln)=>sn.onScore(ln),onLives:(ln)=>sn.onLives(ln),onSecond:(ln)=>sn.phase==="playing"&&sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&Nfe(sn,!0),onLivesOut:()=>sn.phase==="playing"&&Nfe(sn,!1)},sn}function kfe(rn,nn){let an=rn.world;V6(rn);for(let cn of rn.scenery)an.despawn(cn);rn.pending=0,rn.layout=nn;let sn=Fl(nn.width,nn.height,_fe);rn.view=sn;let ln=fl(sn);rn.camera.eye=ln.eye,rn.camera.target=ln.target,rn.camera.fov=ln.fov,rn.scenery=$i(an,sn,rn.theme,D6),W6()}function Bfe(rn,nn){if(nn===rn.theme&&rn.scenery.length)return;rn.theme=nn;let an=rn.view;if(!an||rn.world.isDisposed)return;for(let sn of rn.scenery)rn.world.despawn(sn);rn.scenery=$i(rn.world,an,nn,D6)}function V6(rn){for(let nn of rn.balloons)rn.world.despawn(nn.root);rn.balloons=[]}function Ffe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(a_),rn.onPhase("playing");for(let nn=0;nn<cfe;nn++)U6(rn,nn*ufe,()=>Wfe(rn));U6(rn,O6,()=>Hfe(rn))}function Hfe(rn){if(rn.phase!=="playing")return;Wfe(rn),U6(rn,O6,()=>Hfe(rn))}function Wfe(rn){let{layout:nn,view:an}=rn;if(!nn||!an||rn.phase!=="playing")return;let sn=Math.random()<lfe?Math.random()<0.5?{kind:"bomb"}:{kind:"life"}:{kind:"balloon",color:s_[Math.floor(Math.random()*s_.length)]},ln=nn.height+nn.size,cn=Tfe(rn.balloons,nn,ln);if(cn===null)return;let un=(Math.random()-0.5)*ffe;rn.balloons.push({what:sn,x:cn,y:ln,vx:(Math.random()-0.5)*mfe,vy:dfe,root:Ofe(rn.world,an,nn,sn,cn+nn.size/2,ln+nn.bodyHeight/2,un)})}function Ufe(rn){rn.world.cancelTimers(),V6(rn),rn.world.scoreboard.reset(Gp),rn.won=!1,rn.time=0,rn.pending=0,rn.phase="ready",rn.onScore(0),rn.onLives(Gp),rn.onTime(a_),rn.onPhase("ready")}function Vfe(rn){rn.world.cancelTimers(),rn.world.dispose()}function Nfe(rn,nn){if(rn.world.cancelTimers(),rn.world.scoreboard.stop(),V6(rn),rn.won=nn,rn.phase="over",nn)rn.onWin();else rn.onLose();rn.onPhase("over")}function zfe(rn,nn){if(rn.world.isDisposed)return;let an=Math.max(0,Math.min(nn,Gf*P6));rn.time+=an;let sn=!1;if(rn.phase==="playing"){rn.pending=Math.min(rn.pending+an,Gf*P6);while(rn.pending+0.000000001>=Gf){if(rn.balloons.length)l_t(rn,1),sn=!0;rn.pending=Math.max(0,rn.pending-Gf)}}if(sn&&rn.view&&rn.layout){let ln=rn.world.transforms;for(let cn of rn.balloons)Pfe(rn.world,rn.view,cn.root,cn.what,cn.x+rn.layout.size/2,cn.y+rn.layout.bodyHeight/2,ln);ln.flush()}rn.world.update(an)}function l_t(rn,nn){let an=rn.layout,{left:sn,right:ln}=H5(an),cn=rn.balloons,un=0;for(let dn of rn.balloons){dn.vy+=pfe*nn;let pn=dn.x+dn.vx*nn,mn=dn.y+dn.vy*nn;if(mn<-an.size*2){rn.world.despawn(dn.root);continue}if(pn<=sn)pn=sn,dn.vx=Math.abs(dn.vx)*g6;else if(pn>=ln)pn=ln,dn.vx=-Math.abs(dn.vx)*g6;dn.x=pn,dn.y=mn,cn[un++]=dn}cn.length=un,xfe(rn.balloons,an)}function qfe(rn,nn,an){let{layout:sn,view:ln}=rn;if(!sn||!ln||rn.phase!=="playing")return;let cn=null,un=1/0;for(let pn of rn.balloons){if(nn<pn.x-i_||nn>pn.x+sn.size+i_||an<pn.y-i_||an>pn.y+sn.totalHeight+i_)continue;let mn=(nn-(pn.x+sn.size/2))**2+(an-(pn.y+sn.size*0.625))**2,fn=pn.what.kind==="bomb",hn=cn?.what.kind==="bomb";if(fn&&!hn||fn===hn&&mn<un)cn=pn,un=mn}if(!cn)return;let dn=cn;if(rn.balloons=rn.balloons.filter((pn)=>pn!==dn),gfe(rn.world,ln,sn,dn.root,dn.what,dn.x+sn.size/2,dn.y+sn.bodyHeight/2),dn.what.kind==="bomb"){rn.onBomb(),rn.world.scoreboard.addLives(-1);return}if(rn.onPop(),dn.what.kind==="life"){if(rn.world.scoreboard.lives<Gp)rn.world.scoreboard.addLives(1)}else rn.world.scoreboard.add(ife)}var i_t=1100,U6=(rn,nn,an)=>rn.world.after(nn,an);var Yfe=e(()=>{d();l_();Rfe();Dfe()});var Wo={};n(Wo,{BalloonBlaster:()=>Et});import{useMemo as Kfe}from"react";import{jsx as c_t}from"react/jsx-runtime";var c_,Et;var X=e(()=>{Ta();l();a();_a();o();d();xa();va();l_();Yfe();c_=t.BALLOON_BLASTER,Et=Vn("balloon-blaster",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(Gp),[cn,un]=gn(a_),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"balloon-blaster",create:Gfe,start:Ffe,reset:Ufe,dispose:Vfe,tick:zfe,setTheme:Bfe,resize:(yn,En,Sn)=>kfe(yn,vfe(En,Sn)),drag:(yn,{phase:En,x:Sn,y:_n})=>{if(En==="start")qfe(yn,Sn,_n)},sounds:c_,onStart:(yn)=>yn(c_.START),wire:(yn,En)=>{yn.onScore=an,yn.onLives=ln,yn.onTime=un,yn.onPop=()=>En(c_.POP,"light"),yn.onBomb=()=>En(c_.BOMB,"heavy"),yn.onWin=()=>En(t.WELL_DONE),yn.onLose=()=>En(c_.GAME_OVER)}}),hn=Kfe(()=>ji(dn),[dn]),bn=Kfe(()=>hl(dn),[dn]);return c_t(Un,{...mn,light:hn,background:bn,columns:[Qn(nn),ys(sn,Gp),ta(cn,dn)],subtext:"Pop balloons to score!",gameOver:fn({title:pn==="win"?"TIME UP!":"GAME OVER",message:pn==="win"?"Great popping!":"You ran out of lives!",scoreLabel:"Final Score",score:nn,buttonText:"Pop Again!"})})})});import{block as bl,ellipsoid as V5,lathe as X5,loft as K5,merge as z6,quat as kp,smoothCurve as q6,tube as z5}from"@nayan-ui/engine";function u_(rn,nn,an={}){let sn=nn/2,ln=rn*(an.rim??0.7),cn=an.spokes??10,un=an.rimColor??m_t,dn=an.spokeColor??f_t,pn=an.gapColor??h_t,mn=[[0.001,sn*0.45],[ln*0.18,sn*0.5],[ln*0.92,sn*0.86],[ln*1.02,sn*0.98],[ln*1.04,sn],[rn*0.94,sn*0.97],[rn*0.995,sn*0.7],[rn*1.005,0],[rn*0.995,-sn*0.7],[rn*0.94,-sn*0.97],[ln*1.04,-sn],[ln*1.02,-sn*0.98],[ln*0.92,-sn*0.86],[ln*0.18,-sn*0.5],[0.001,-sn*0.45]];return X5(mn,{segments:48,color:({u:fn,position:[hn,,bn]})=>{let yn=Math.hypot(hn,bn);if(yn>rn*0.97)return d_t;if(yn>ln*1.05)return p_t;if(yn>ln*0.94)return dn;if(yn<ln*0.14)return Hl;if(yn<ln*0.26)return un;if(Math.cos(fn*Zfe*cn)>0.55)return dn;if(an.caliper&&yn>ln*0.58&&yn<ln*0.86&&hn>0&&bn<0&&Math.atan2(hn,-bn)>0.35&&Math.atan2(hn,-bn)<1.2)return b_t;return yn>ln*0.42?pn:un}})}function x_t(){let rn=new Set;for(let nn=-2.18;nn<2.18;nn+=0.1)rn.add(Math.round(nn*1000)/1000);rn.add(2.18);for(let nn of[d_,p_])for(let an=0;an<=20;an++)rn.add(Math.round((nn-Gb*Math.cos(an/20*Math.PI))*1000)/1000);for(let nn of[d_,p_])for(let an of[-Gb-0.015,Gb+0.015])rn.add(Math.round((nn+an)*1000)/1000);return[...rn].sort((nn,an)=>nn-an).map(Jfe)}function Jfe(rn){let nn=Qfe(rn),an=Math.min(T_t(rn),nn-0.06),sn=Y6(rn),ln=Math.max(0,Math.min(1,(rn+2.18)/0.3));return{z:rn,bottom:an,top:nn,width:sn,topWidth:sn*0.86,square:3+1.8*ln}}function K6(rn,nn){let{bottom:an,top:sn,width:ln,topWidth:cn=ln,square:un=4}=Jfe(rn),dn=Math.max(-1,Math.min(1,(nn-(an+sn)/2)/((sn-an)/2)));return(1-Math.abs(dn)**un)**(1/un)*(dn>0?ln+(cn-ln)*dn:ln)}function C_t(rn,nn,an){let sn=[-1,-0.92,0,0.92,1].map((ln)=>({z:ln*rn/2,bottom:-an/2,top:an/2,width:nn/2*(Math.abs(ln)>0.95?0.94:1),square:2.6}));return K5(sn,{around:20,smoothness:2,color:kf})}function X6(){return Bn("car-racing/CarMeshes:carMeshes",()=>w_t())}function w_t(){if(q5)return q5;let nn=[{geometry:K5(x_t(),{around:56,smoothness:2,color:([,fn])=>{let hn=0.62+0.38*Math.max(0,Math.min(1,(fn-0.18)/0.34));return[hn,hn,hn]}})},{geometry:K5(M_t,{around:32,smoothness:3})}];for(let fn of[-1,1])nn.push({geometry:V5([0.09,0.05,0.12]),position:jfe(fn)});let an=wn(z6(nn),{center:!1,shine:0.9}),sn=wn(K5(A_t,{around:40,smoothness:4,color:u_t}),{center:!1,shine:0.95}),ln=[],cn=u_(Xu,0.26,{rim:0.76,spokes:10,caliper:!0}),un=u_(Xu,0.31,{rim:0.76,spokes:10,caliper:!0}),dn=X5([[0.001,0.01],[Xu+0.03,0.01],[Xu+0.03,-0.01],[0.001,-0.01]],{segments:24,color:Hl}),pn=(fn)=>Qfe(fn)+0.004;for(let fn of[-1,1]){ln.push({geometry:cn,position:[fn*0.98,Xu,d_],rotation:ju},{geometry:un,position:[fn*0.97,Xu,p_],rotation:ju},{geometry:dn,position:[fn*0.8,Xu+0.03,d_],rotation:ju},{geometry:dn,position:[fn*0.78,Xu+0.03,p_],rotation:ju},{geometry:V5([0.3,0.05,0.09],Hl),position:[fn*0.64,0.555,-2.04],rotation:kp.y(fn*0.32)},{geometry:V5([0.26,0.034,0.08],y_t),position:[fn*0.64,0.555,-2.06],rotation:kp.y(fn*0.32)},{geometry:bl(0.32,0.012,0.02,6,E_t),position:[fn*0.62,0.585,-2.08],rotation:kp.y(fn*0.32)},{geometry:bl(0.46,0.14,0.08,6,Hl),position:[fn*0.52,0.34,-2.14],rotation:kp.y(fn*0.15)},{geometry:bl(0.3,0.012,0.16,6,Hl),position:[fn*0.36,pn(-1.58),-1.58],rotation:kp.x(-0.27)},...[0.47,0.53,0.59].map((hn)=>({geometry:bl(0.016,0.022,0.2,6,Hl),position:[fn*(Y6(-0.84)-0.01),hn,-0.84+(hn-0.53)*0.4]})),{geometry:V5([0.02,0.08,0.3],Hl),position:[fn*1.115,0.58,0.72]},{geometry:bl(0.06,0.06,2,6,kf),position:[fn*1.05,0.2,0.01]},{geometry:z5([R_t(fn),[fn*(K6(kb,Bb)+0.05),Bb+0.06,kb+0.02],jfe(fn)],{radius:0.02,sides:8,smoothness:3}),color:kf},{geometry:bl(0.012,0.16,0.34,6,kf),position:[fn*0.87,1.07,1.98]},{geometry:z5([[fn*0.42,0.93,2.04],[fn*0.42,1.08,1.96],[fn*0.42,1.115,1.99]],{radius:0.018,shape:(hn)=>0.45+0.55*Math.abs(Math.cos(hn*Zfe)),sides:10,smoothness:4}),color:kf},{geometry:z5([[fn*0.62,0.79,2.17],[fn*0.86,0.79,2.15],[fn*0.96,0.72,2.11],[fn*0.94,0.62,2.09]],{radius:0.022,sides:8,smoothness:4}),color:__t});for(let hn of[0.2,0.34])ln.push({geometry:z5([[fn*hn,0.3,2.04],[fn*hn,0.3,2.2]],{radius:0.042,sides:14,smoothness:1,color:v_t,capColor:Hl})})}ln.push({geometry:C_t(1.74,0.3,0.035),position:[0,1.1,1.98],rotation:kp.multiply(kp.x(0.08),kp.y(Math.PI/2))},{geometry:bl(1.85,0.035,0.26,8,kf),position:[0,0.19,-2.04]},{geometry:bl(0.5,0.09,0.06,6,Hl),position:[0,0.31,-2.18]},{geometry:bl(1.24,0.03,0.04,8,S_t),position:[0,0.79,2.18]},{geometry:bl(1.1,0.08,0.03,6,Hl),position:[0,0.5,2.18]},{geometry:bl(1.62,0.13,0.26,6,kf),position:[0,0.24,2.06]},{geometry:bl(1.84,0.12,3.5,4,Hl),position:[0,0.22,0]});for(let fn=-2;fn<=2;fn++)ln.push({geometry:bl(0.02,0.1,0.22,4,Hl),position:[fn*0.28,0.25,2.08]});for(let fn=0;fn<6;fn++)ln.push({geometry:bl(0.9,0.012,0.035,4,Hl),position:[0,0.93,1.48+fn*0.075]});let mn=wn(z6(ln),{center:!1,shine:0.4});return q5={body:an,glass:sn,trim:mn},q5}function j6(){return Bn("car-racing/CarMeshes:treeMesh",()=>O_t())}function O_t(){if(Y5)return Y5;let rn=X5([[0.001,0.4],[0.07,0.4],[0.09,0],[0.001,0]],{segments:8,color:L_t}),nn=(an,sn,ln,cn)=>({geometry:X5([[0.001,sn],[ln,an],[0.001,an]],{segments:7,color:cn})});return Y5=wn(z6([{geometry:rn},nn(0.22,0.72,0.75,$fe),nn(0.5,0.98,0.56,I_t),nn(0.76,1.2,0.36,$fe)]),{center:!1}),Y5}var Zfe,u_t,d_t,p_t,m_t,f_t,h_t,b_t,kf,Hl,y_t,E_t,S_t,__t,v_t,ju,Xu=0.36,d_=-1.36,p_=1.38,Gb,Xfe=0.17,Qfe,Y6,T_t=(rn)=>{let nn=q6([[-2.18,0.24],[-1.95,Xfe],[1.95,Xfe],[2.18,0.3]])(rn);for(let an of[d_,p_]){let sn=rn-an;if(Math.abs(sn)<Gb)nn=Math.max(nn,Xu+Math.sqrt(Gb*Gb-sn*sn))}return nn},kb=-0.9,Bb=0.7,R_t=(rn)=>[rn*(K6(kb,Bb)-0.02),Bb,kb],jfe=(rn)=>[rn*(K6(kb,Bb)+0.15),Bb+0.08,kb+0.04],A_t,M_t,q5=null,Fb,m_,L_t,$fe,I_t,Y5=null;var f_=e(()=>{na();Zfe=Math.PI*2,u_t=[0.05,0.065,0.09],d_t=[0.035,0.035,0.04],p_t=[0.07,0.07,0.075],m_t=[0.14,0.14,0.16],f_t=[0.72,0.73,0.77],h_t=[0.32,0.32,0.34],b_t=[0.85,0.08,0.06],kf=[0.055,0.055,0.065],Hl=[0.025,0.025,0.03],y_t=[0.95,0.97,1],E_t=[1.4,1.4,1.45],S_t=[0.8,0.03,0.03],__t=[1.2,0.08,0.06],v_t=[0.8,0.81,0.84],ju=[0,0,Math.SQRT1_2,Math.SQRT1_2];Gb=Xu+0.05,Qfe=q6([[-2.18,0.48],[-2.06,0.58],[-1.75,0.69],[-1.36,0.8],[-1.05,0.78],[-0.3,0.8],[0.55,0.86],[1.38,0.92],[1.9,0.92],[2.1,0.86],[2.18,0.78]]),Y6=q6([[-2.18,0.84],[-2.02,1.04],[-1.6,1.15],[-1.36,1.17],[-0.95,1.11],[-0.15,1.06],[0.6,1.12],[1.1,1.19],[1.4,1.2],[1.85,1.16],[2.18,1]]);A_t=[{z:-1.06,bottom:0.55,top:0.79,width:0.82,topWidth:0.78},{z:-0.72,bottom:0.55,top:0.95,width:0.8,topWidth:0.62},{z:-0.3,bottom:0.55,top:1.09,width:0.79,topWidth:0.55},{z:0.05,bottom:0.55,top:1.12,width:0.78,topWidth:0.53},{z:0.45,bottom:0.55,top:1.1,width:0.79,topWidth:0.55},{z:0.95,bottom:0.6,top:1,width:0.8,topWidth:0.62},{z:1.4,bottom:0.7,top:0.93,width:0.86,topWidth:0.8}],M_t=[{z:-0.36,bottom:1.07,top:1.09,width:0.44,square:6},{z:-0.2,bottom:1.09,top:1.13,width:0.52,square:6},{z:0.42,bottom:1.09,top:1.125,width:0.53,square:6},{z:0.66,bottom:1.05,top:1.07,width:0.46,square:6}];Fb={length:4.36,halfWidth:(rn)=>Math.max(0,Y6(rn)-0.03)},m_={headlights:[-0.64,0.64].map((rn)=>[rn,0.555,-2.08]),headlightSize:[0.46,0.06,0.04],tail:[0,0.79,2.2],tailSize:[1.9,0.04,0.03]},L_t=[0.45,0.3,0.18],$fe=[0.25,0.6,0.3],I_t=[0.32,0.7,0.35]});function*the(){for(let rn of P_t){let nn=(an,sn)=>[rn.normal[0]*0.5005+rn.right[0]*(an-0.5),0.5-sn,rn.normal[2]*0.5005+rn.right[2]*(an-0.5)];for(let an=0;an<ehe.length;an++)for(let sn=0;sn<8;sn++){if(!(ehe[an]&1<<sn))continue;let ln=(sn*8+2.5)/64,cn=(sn*8+6.5)/64,un=(an*10+3.5)/128,dn=(an*10+8.5)/128;yield{normal:rn.normal,corners:[nn(ln,un),nn(cn,un),nn(cn,dn),nn(ln,dn)]}}}}var ehe,P_t;var ohe=e(()=>{ehe=[18,132,131,192,101,130,43,0,112,144,21,32],P_t=[{normal:[1,0,0],right:[0,0,-1]},{normal:[-1,0,0],right:[0,0,1]},{normal:[0,0,1],right:[1,0,0]},{normal:[0,0,-1],right:[-1,0,0]}]});import{ellipsoid as $6,merge as g_t}from"@nayan-ui/engine";class nhe{vertices=[];indices=[];quad(rn,nn,an,sn,ln,cn,un=[1,1]){let dn=this.vertices.length/11;for(let[hn,bn]of[[rn,[0,0]],[nn,[un[0],0]],[an,un],[sn,[0,un[1]]]])this.vertices.push(...hn,...ln,cn[0],cn[1],cn[2],bn[0],bn[1]);let pn=[nn[0]-rn[0],nn[1]-rn[1],nn[2]-rn[2]],mn=[an[0]-rn[0],an[1]-rn[1],an[2]-rn[2]],fn=(pn[1]*mn[2]-pn[2]*mn[1])*ln[0]+(pn[2]*mn[0]-pn[0]*mn[2])*ln[1]+(pn[0]*mn[1]-pn[1]*mn[0])*ln[2];this.indices.push(...(fn>=0?[0,1,2,0,2,3]:[0,2,1,0,3,2]).map((hn)=>dn+hn))}box(rn,nn,an){let[sn,ln,cn]=nn,[un,dn,pn]=rn.map((mn)=>mn/2);this.quad([sn-un,ln-dn,cn+pn],[sn+un,ln-dn,cn+pn],[sn+un,ln+dn,cn+pn],[sn-un,ln+dn,cn+pn],[0,0,1],an),this.quad([sn+un,ln-dn,cn-pn],[sn-un,ln-dn,cn-pn],[sn-un,ln+dn,cn-pn],[sn+un,ln+dn,cn-pn],[0,0,-1],an),this.quad([sn+un,ln-dn,cn+pn],[sn+un,ln-dn,cn-pn],[sn+un,ln+dn,cn-pn],[sn+un,ln+dn,cn+pn],[1,0,0],an),this.quad([sn-un,ln-dn,cn-pn],[sn-un,ln-dn,cn+pn],[sn-un,ln+dn,cn+pn],[sn-un,ln+dn,cn-pn],[-1,0,0],an),this.quad([sn-un,ln+dn,cn+pn],[sn+un,ln+dn,cn+pn],[sn+un,ln+dn,cn-pn],[sn-un,ln+dn,cn-pn],[0,1,0],an),this.quad([sn-un,ln-dn,cn-pn],[sn+un,ln-dn,cn-pn],[sn+un,ln-dn,cn+pn],[sn-un,ln-dn,cn+pn],[0,-1,0],an)}geometry(){return{vertices:new Float32Array(this.vertices),indices:new Uint32Array(this.indices)}}}function Zi(rn,nn,an=0.1){return Bn(`car-racing/scenery-details-v1/${rn}`,()=>{let sn=new nhe;return nn(sn),wn(sn.geometry(),{center:!1,shine:an})})}function N_t(){return Zi("podium",(rn)=>{rn.box([1.025,0.32,1.025],[0,0.16,0],D_t),rn.box([1.012,2.6,1.012],[0,1.5,0],[0.2,0.28,0.3]),rn.box([1.055,0.18,1.055],[0,2.9,0],[0.49,0.48,0.43]);for(let nn of[-1,1]){for(let an of[-0.48,-0.24,0,0.24,0.48])rn.box([0.025,2.5,0.035],[nn*0.514,1.5,an],[0.39,0.41,0.39]),rn.box([0.035,2.5,0.025],[an,1.5,nn*0.514],[0.39,0.41,0.39]);rn.box([0.095,0.12,0.66],[nn*0.55,2.55,0],[0.31,0.36,0.31]),rn.box([0.025,0.08,0.015],[nn*0.534,1.28,0.065],[0.72,0.73,0.69])}},0.25)}function rhe(rn){return Zi(`roof-${rn}`,(nn)=>{nn.box([1.045,0.25,1.045],[0,0.03,0],[0.57,0.56,0.52]);for(let an of[-1,1])nn.box([1.03,0.55,0.018],[0,0.36,an*0.507],[0.46,0.47,0.44]),nn.box([0.018,0.55,1.03],[an*0.507,0.36,0],[0.46,0.47,0.44]);nn.box([0.25,0.8,0.25],[-0.17,0.52,0.16],[0.49,0.53,0.53]);for(let an=0;an<4;an++)nn.box([0.255,0.035,0.025],[-0.17,0.96,0.07+an*0.055],Hb);if(nn.box([0.12,rn?1.5:0.65,0.15],[0.24,rn?0.95:0.52,-0.18],[0.52,0.43,0.35]),rn)nn.box([0.18,0.1,0.21],[0.24,1.72,-0.18],[0.63,0.61,0.56])})}function Z6(rn){return Zi(`trim-${rn}`,(nn)=>{let an=rn===1?[0.58,0.61,0.61]:[0.72,0.7,0.64];for(let sn of[-1,1]){for(let ln of[-1,1])nn.box([0.025,0.985,0.025],[sn*0.496,0,ln*0.496],an);if(rn===0)for(let ln of[-0.25,0.25])nn.box([0.013,0.98,0.012],[ln,0,sn*0.504],an),nn.box([0.012,0.98,0.013],[sn*0.504,0,ln],an)}for(let sn of rn===2?[-0.25,0,0.25,0.49]:[0.49])nn.box([1.025,0.009,1.025],[0,sn,0],an)})}function G_t(){return Zi("night-windows-aligned-v2",(rn)=>{for(let{corners:[nn,an,sn,ln],normal:cn}of the())rn.quad(nn,an,sn,ln,cn,[1.6,1.46,1.02])},0)}function k_t(){return Zi("bench",(rn)=>{for(let nn of[-0.2,-0.07,0.06,0.19])rn.box([1.7,0.07,0.1],[0,0.52,nn],Q6);for(let nn of[0.77,0.91,1.05])rn.box([1.7,0.1,0.07],[0,nn,-0.24],Q6);for(let nn of[-0.59,0.59])rn.box([0.08,0.52,0.45],[nn,0.26,0],Hb),rn.box([0.065,1.06,0.065],[nn,0.53,-0.23],Hb),rn.box([0.07,0.07,0.45],[nn,0.72,0],Hb)})}function B_t(){return Zi("planter",(rn)=>{rn.box([1.5,0.48,1.8],[0,0.24,0],[0.43,0.44,0.39]),rn.box([1.6,0.08,1.9],[0,0.5,0],[0.65,0.64,0.58]),rn.box([1.32,0.035,1.62],[0,0.55,0],[0.21,0.18,0.12])})}function F_t(){return Zi("bin",(rn)=>{rn.box([0.5,0.85,0.5],[0,0.43,0],[0.23,0.29,0.25]),rn.box([0.56,0.08,0.56],[0,0.9,0],[0.39,0.41,0.35]),rn.box([0.36,0.15,0.02],[0,0.76,0.257],[0.055,0.07,0.06]);for(let nn of[-0.18,-0.06,0.06,0.18])rn.box([0.012,0.63,0.025],[nn,0.4,0.26],[0.12,0.18,0.15])})}function H_t(){return Zi("shelter",(rn)=>{rn.box([2.15,0.16,4.4],[0,3,0],[0.39,0.42,0.4]),rn.box([2.3,0.08,4.6],[0,3.13,0],[0.58,0.61,0.57]);for(let nn of[-1.9,1.9])for(let an of[-0.85,0.85])rn.box([0.08,2.95,0.08],[an,1.5,nn],Hb);rn.box([0.035,2.25,3.6],[0.88,1.65,0],[0.34,0.48,0.51]),rn.box([1.7,0.06,0.5],[0,0.62,0],Q6);for(let nn of[-1.1,1.1])rn.box([0.5,0.58,0.08],[0,0.29,nn],Hb);rn.box([0.06,0.95,0.65],[-0.86,1.8,1.4],[0.85,0.86,0.79]);for(let nn=0;nn<5;nn++)rn.box([0.07,0.035,0.42],[-0.9,2.1-nn*0.12,1.4],[0.21,0.35,0.3])})}function W_t(){return Zi("grass",(rn)=>{for(let nn=0;nn<14;nn++){let an=nn*2.39996,sn=Math.cos(an)*(0.15+nn%3*0.08),ln=Math.sin(an)*(0.15+nn%3*0.08),cn=0.22+nn%4*0.07,un=Math.cos(an)*0.13,dn=Math.sin(an)*0.13,pn=[Math.cos(an),0,Math.sin(an)],mn=[-pn[2]*0.025,0,pn[0]*0.025],fn=[0.22+nn%3*0.035,0.34+nn%4*0.025,0.12],hn=[[sn+mn[0],0,ln+mn[2]],[sn-mn[0],0,ln-mn[2]],[sn+un,cn,ln+dn],[sn+un,cn,ln+dn]];rn.quad(hn[0],hn[1],hn[2],hn[3],pn,fn),rn.quad(hn[3],hn[2],hn[1],hn[0],[-pn[0],0,-pn[2]],fn)}})}function U_t(){return Zi("flowers",(rn)=>{for(let nn=0;nn<9;nn++){let an=Math.cos(nn*2.4)*0.44,sn=Math.sin(nn*2.4)*0.5,ln=0.3+nn%3*0.09;rn.box([0.018,ln,0.018],[an,ln/2,sn],[0.19,0.32,0.12]);let cn=nn%3?[0.9,0.78,0.32]:[0.86,0.86,0.79];rn.box([0.17,0.035,0.055],[an,ln,sn],cn),rn.box([0.055,0.04,0.17],[an,ln,sn],cn),rn.box([0.045,0.048,0.045],[an,ln+0.01,sn],[0.59,0.38,0.1])}})}function V_t(){return Zi("pavement",(rn)=>{rn.box([2.6,0.12,6.35],[0,0,0],[0.65,0.65,0.61]);for(let nn=0;nn<6;nn++)rn.box([2.6,0.006,0.015],[0,0.063,-2.5+nn],[0.5,0.51,0.47]);for(let nn of[-0.43,0.43])rn.box([0.015,0.006,6.3],[nn,0.063,0],[0.5,0.51,0.47]);for(let nn of[-1.27,1.27])rn.box([0.065,0.06,6.35],[nn,0.08,0],[0.74,0.73,0.67])})}function z_t(){return Zi("drain",(rn)=>{rn.box([0.31,0.014,0.65],[0,0,0],[0.29,0.3,0.27]);for(let nn=0;nn<7;nn++)rn.box([0.23,0.006,0.035],[0,0.009,-0.25+nn*0.08],[0.085,0.1,0.09])})}function q_t(){return Zi("house-details",(rn)=>{rn.box([5.2,0.16,5.8],[0,3.14,0],[0.64,0.62,0.53]),rn.box([0.55,1.4,0.55],[1.3,4,-0.9],[0.49,0.35,0.28]),rn.box([0.68,0.12,0.68],[1.3,4.73,-0.9],[0.58,0.56,0.51]);for(let nn of[-2.55,2.55])rn.box([0.07,1.2,1.2],[nn,0.64,0.9],[0.31,0.35,0.29]),rn.box([0.9,0.1,1.45],[nn,1.35,0.9],[0.5,0.36,0.24])})}function Y_t(){return Zi("route-sign",(rn)=>{rn.box([4.2,1.5,0.12],[0,0,0],[0.16,0.29,0.22]);for(let nn of[-1,1])rn.box([4.12,0.035,0.015],[0,nn*0.69,0.072],[0.79,0.83,0.73]),rn.box([0.035,1.36,0.015],[nn*2.03,0,0.072],[0.79,0.83,0.73]);rn.box([0.7,0.12,0.02],[1.25,-0.05,0.08],[0.94,0.95,0.86]),rn.quad([1.42,-0.31,0.094],[1.8,-0.05,0.094],[1.42,0.21,0.094],[1.42,0.21,0.094],[0,0,1],[0.94,0.95,0.86])})}function K_t(){return Zi("grass-ground-v2",(rn)=>rn.quad([-0.5,0,-0.5],[0.5,0,-0.5],[0.5,0,0.5],[-0.5,0,0.5],[0,1,0],[1,1,1],[1,1]))}function X_t(){return Bn("car-racing/scenery-details-v1/cloud",()=>wn(g_t([{geometry:$6([14,2.4,6],[1,1,1],10)},{geometry:$6([8,3.8,5],[1,1,1],10),position:[-4,1.1,0]},{geometry:$6([7,2.8,5],[1,1,1],10),position:[8,0.4,1]}]),{center:!1,shine:0}))}function $_t(){return{podium:N_t(),roofs:[rhe(0),rhe(1)],facades:[Z6(0),Z6(1),Z6(2)],windows:G_t(),bench:k_t(),planter:B_t(),bin:F_t(),shelter:H_t(),grass:W_t(),flowers:U_t(),pavement:V_t(),drain:z_t(),house:q_t(),grassGround:K_t(),routeSign:Y_t(),cloud:X_t()}}function h_(){return j_t??=$_t()}var D_t,Hb,Q6,j_t;var J6=e(()=>{na();ohe();D_t=[0.57,0.57,0.53],Hb=[0.2,0.24,0.23],Q6=[0.43,0.31,0.2]});var _t={};n(_t,{AUTOPLAY:()=>au,BEHIND:()=>Q5,CAMERA_FOV:()=>ad,CRASH_SLOWDOWN:()=>tN,DAY_LIGHT:()=>Vf,EDGE:()=>ds,FINISH_CLEAR:()=>nd,INVULNERABLE:()=>oN,LAMP:()=>rN,LAMP_LIT:()=>nN,LANES:()=>yl,LANE_W:()=>Wb,LATERAL_SPEED:()=>Bf,LINE:()=>J5,LIVES:()=>Ub,NIGHT_LIGHT:()=>zf,NIGHT_SKY:()=>Uf,PAINTS:()=>sN,PLAYER_PAINT:()=>iN,POINTS_PER_CAR_PASSED:()=>eN,RAIL:()=>aN,ROAD_HALF:()=>Na,RS:()=>ha,SEGMENTS:()=>Z5,SEG_LEN:()=>Gi,SKY:()=>Wf,SPAWN_AHEAD:()=>$5,START_SPEED:()=>Vb,STEER_RESPONSE:()=>Ff,STEER_WIDTH:()=>Hf,TRACK_LENGTH:()=>xs,TRAFFIC_SPEED:()=>j5,getCachedAssets:()=>lN,getRacingSounds:()=>ts,loadAssets:()=>qf,preloadRacing:()=>St,warmAssets:()=>evt});import{audio as Z_t,loadTexture as Tc,warmUpEngine as Q_t}from"@nayan-ui/engine";function qf(){return b_??=Q_t().then(()=>Promise.all([mb(),Tc(new URL("./assets/029329b2c7c0-asphalt.png",import.meta.url).href),Tc(new URL("./assets/7da09c57f52d-facade.png",import.meta.url).href),Tc(new URL("./assets/fbe299716916-grass.png",import.meta.url).href),Promise.all([Tc(new URL("./assets/bed31305d60d-ad_chevrons.png",import.meta.url).href),Tc(new URL("./assets/837d43c06dba-ad_bubbles.png",import.meta.url).href),Tc(new URL("./assets/76493a2ada2d-ad_bolt.png",import.meta.url).href)])])).then(([rn,nn,an,sn,ln])=>{let{body:cn,glass:un,trim:dn}=X6();return{car:{body:cn,glass:un,trim:dn,size:[Math.max(cn.size[0],dn.size[0]),Math.max(cn.size[1],dn.size[1]),Math.max(cn.size[2],dn.size[2])]},asphalt:nn,facade:an,grass:sn,ads:ln,tree:j6(),scenery:h_(),font:rn.semi}}),b_.then((rn)=>{ahe=rn},()=>{}),b_.catch(()=>b_=void 0),b_}function St(){qf().catch(()=>{})}function*evt(){yield X6,yield j6,yield h_,yield()=>Tc(new URL("./assets/029329b2c7c0-asphalt.png",import.meta.url).href),yield()=>Tc(new URL("./assets/7da09c57f52d-facade.png",import.meta.url).href),yield()=>Tc(new URL("./assets/fbe299716916-grass.png",import.meta.url).href),yield()=>Tc(new URL("./assets/bed31305d60d-ad_chevrons.png",import.meta.url).href),yield()=>Tc(new URL("./assets/837d43c06dba-ad_bubbles.png",import.meta.url).href),yield()=>Tc(new URL("./assets/76493a2ada2d-ad_bolt.png",import.meta.url).href),yield qf,yield()=>ts().ready}var xs=2000,Ub=3,eN=500,nd=30,Wb=3.4,yl,Na,ds,Vb=20,ad=0.95,Bf=9,Ff=10.5,Hf=0.6,j5=12,$5=170,tN=0.55,oN=1.6,Gi=6,Z5=42,ha=0.2,Q5=8,Wf,Uf,Vf,zf,rN,nN,J5,aN,sN,iN,au=!1,J_t,ts=()=>J_t??=Z_t.load({engine:new URL("./assets/308bc31b6af5-engine.wav",import.meta.url).href,nitro:new URL("./assets/40240217810a-nitro.wav",import.meta.url).href,point:new URL("./assets/2c1ec05270b2-point.wav",import.meta.url).href,hit:new URL("./assets/a76940a48c68-hit.wav",import.meta.url).href,win:new URL("./assets/b8900bb2c5c7-win.wav",import.meta.url).href,die:new URL("./assets/c3a9edfad195-die.wav",import.meta.url).href,bump:new URL("./assets/a44a1cf1a1a8-bump.wav",import.meta.url).href}),b_,ahe=null,lN=()=>ahe;var A=e(()=>{o();f_();J6();yl=[-Wb,0,Wb],Na=Wb*1.5,ds=Na-1.05,Wf=[0.62,0.78,0.95],Uf=[0.227,0.192,0.376],Vf={direction:[0.45,0.85,0.3],ambient:0.5,shadowExtent:26},zf={direction:[0.25,0.9,0.35],ambient:0.66,shadowExtent:26,color:[0.84,0.88,1]},rN=[1,0.97,0.82],nN=[2,1.85,1.3],J5=[0.95,0.95,0.9],aN=[0.72,0.74,0.78],sN=[[0.15,0.32,0.95],[0.1,0.75,0.35],[1,0.8,0.15],[0.92,0.92,0.95],[0.12,0.12,0.14],[0.95,0.45,0.1],[0.55,0.2,0.75]],iN=[0.92,0.08,0.1]});import{block as su,ellipsoid as y_,lathe as tvt,loft as cN,merge as uN,quat as E_,smoothCurve as ovt,tube as Xf}from"@nayan-ui/engine";function mN(){return Bn("bike-racing/BikeMeshes:bikeMeshes",()=>hvt())}function hvt(){if(oM)return oM;let rn=wn(uN([{geometry:cN(pvt,{around:40,smoothness:5})},{geometry:cN(mvt,{around:32,smoothness:4})},{geometry:cN(fvt,{around:28,smoothness:4})}]),{center:!1,shine:0.9}),nn=wn(uN([{geometry:y_([0.17,0.2,0.016],rvt,24),position:[0,0.93,-0.66],rotation:E_.x(0.95)}]),{center:!1,shine:0.95}),an={rim:0.74,spokes:5,rimColor:she,spokeColor:she,gapColor:El},sn=[{geometry:u_(iu,0.12,an),position:[0,iu,tM],rotation:ju},{geometry:u_(iu,0.19,an),position:[0,iu,Kf],rotation:ju},{geometry:dN(0.15,che),position:[0.105,iu,Kf],rotation:ju},{geometry:dN(0.1,El),position:[-0.11,iu,Kf],rotation:ju},{geometry:su(0.07,0.05,0.04,6,El),position:[0,0.665,-0.965]},{geometry:su(0.18,0.03,0.12,6,Yf),position:[0,0.885,-0.5]},{geometry:su(0.26,0.06,0.4,5,El),position:[0,0.83,0.25]},{geometry:su(0.016,0.26,0.016,4,eM),position:[0,0.7,0.95]},{geometry:su(0.16,0.1,0.012,6,cvt),position:[0,0.57,0.96]},{geometry:su(0.08,0.025,0.02,6,lvt),position:[0,0.895,0.975]},{geometry:Xf([[0,0.42,0.2],[0,0.68,0.12]],{radius:0.038,sides:12,smoothness:1,color:({v:cn})=>Math.sin(cn*zb*9)>0?uvt:El})},{geometry:Xf(lhe(0,iu,tM,0.335,0.55,2.3,8),{radius:0.06,shape:(cn)=>0.25+0.75*Math.abs(Math.cos(cn*zb)),sides:12,smoothness:3}),color:eM},{geometry:Xf(lhe(0,iu,Kf,0.33,0.6,1.6,6),{radius:0.09,shape:(cn)=>0.22+0.78*Math.abs(Math.cos(cn*zb)),sides:12,smoothness:3}),color:eM},$u([-0.11,0.37,0.06],[-0.11,0.39,Kf],0.008,El,6),$u([-0.11,0.25,0.08],[-0.11,0.21,Kf],0.008,El,6),{geometry:Xf([[0.05,0.26,-0.3],[0.08,0.25,0],[0.12,0.26,0.2],[0.16,0.3,0.34]],{radius:0.025,sides:10,smoothness:4,color:dvt})},{geometry:Xf([[0.16,0.3,0.34],[0.185,0.4,0.52],[0.2,0.47,0.66]],{radius:(cn)=>0.048+0.008*cn,sides:16,smoothness:3,color:avt,capColor:eM})}];for(let cn of[-1,1])sn.push({geometry:y_([0.075,0.016,0.05],svt),position:[cn*0.07,0.705,-0.925],rotation:E_.y(-cn*0.45)},{geometry:su(0.08,0.008,0.012,6,ivt),position:[cn*0.075,0.726,-0.915],rotation:E_.y(-cn*0.45)},$u([cn*0.085,iu,tM],[cn*0.085,0.56,-0.62],0.02,nvt),$u([cn*0.085,0.54,-0.63],[cn*0.085,0.9,-0.48],0.03,pN),{geometry:dN(0.2),position:[cn*0.075,iu,tM],rotation:ju},{geometry:su(0.04,0.13,0.07,6,pN),position:[cn*0.11,0.42,-0.64],rotation:E_.x(0.5)},...[0.46,0.52,0.58].map((un)=>({geometry:su(0.012,0.018,0.16,6,El),position:[cn*0.247,un,-0.33+(0.52-un)*0.5]})),{geometry:su(0.03,0.26,0.24,5,Yf),position:[cn*0.135,0.5,0.1],rotation:E_.x(-0.25)},{geometry:Xf([[cn*0.12,0.42,0.1],[cn*0.12,0.37,0.4],[cn*0.115,iu,Kf]],{radius:0.035,shape:(un)=>0.6+0.4*Math.abs(Math.sin(un*zb)),sides:12,smoothness:3,color:Yf})},$u([cn*0.08,0.86,-0.5],[cn*0.28,0.79,-0.47],0.016,Yf),$u([cn*0.27,0.79,-0.47],[cn*0.345,0.785,-0.465],0.025,El),$u([cn*0.14,0.38,0.12],[cn*0.27,0.38,0.12],0.014,Yf),{geometry:su(0.01,0.12,0.09,6,Yf),position:[cn*0.19,0.42,0.16]},$u([cn*0.2,0.38,0.1],[cn*0.21,0.35,-0.04],0.008,Yf,6),$u([cn*0.2,0.84,-0.7],[cn*0.26,0.9,-0.68],0.01,El),{geometry:y_([0.055,0.03,0.03],El),position:[cn*0.28,0.91,-0.68]},{geometry:y_([0.02,0.008,0.01],ihe),position:[cn*0.3,0.905,-0.7]},$u([0,0.64,0.95],[cn*0.1,0.64,0.95],0.008,El),{geometry:y_([0.025,0.012,0.012],ihe),position:[cn*0.11,0.64,0.95]});let ln=wn(uN(sn),{center:!1,shine:0.5});return oM={body:rn,trim:ln,glass:nn},oM}var zb,rvt,El,she,eM,Yf,nvt,pN,che,avt,svt,ivt,lvt,ihe,cvt,uvt,dvt,iu=0.3,tM=-0.72,Kf=0.72,pvt,mvt,fvt,$u=(rn,nn,an,sn,ln=10)=>({geometry:Xf([rn,nn],{radius:an,sides:ln,smoothness:1}),color:sn}),lhe=(rn,nn,an,sn,ln,cn,un=8)=>Array.from({length:un+1},(dn,pn)=>{let mn=ln+(cn-ln)*pn/un;return[rn,nn+Math.sin(mn)*sn,an-Math.cos(mn)*sn]}),dN=(rn,nn=pN)=>tvt([[0.001,0.004],[rn,0.004],[rn,-0.004],[0.001,-0.004]],{segments:36,color:({u:an,position:[sn,,ln]})=>{let cn=Math.hypot(sn,ln);if(cn<rn*0.55)return Math.cos(an*zb*6)>0.3?nn:El;return Math.cos(an*zb*20)>0.85&&cn>rn*0.66&&cn<rn*0.92?El:che}}),qb,oM=null;var fN=e(()=>{f_();na();zb=Math.PI*2,rvt=[0.05,0.065,0.09],El=[0.02,0.02,0.022],she=[0.07,0.07,0.08],eM=[0.055,0.055,0.065],Yf=[0.68,0.7,0.73],nvt=[0.82,0.83,0.86],pN=[0.86,0.62,0.16],che=[0.55,0.56,0.58],avt=[0.52,0.54,0.58],svt=[0.95,0.97,1],ivt=[1.4,1.4,1.45],lvt=[0.85,0.04,0.04],ihe=[1,0.55,0.08],cvt=[0.9,0.9,0.88],uvt=[0.95,0.75,0.1],dvt=[0.3,0.26,0.3],pvt=[{z:-0.99,bottom:0.64,top:0.72,width:0.04,square:2.4},{z:-0.92,bottom:0.6,top:0.8,width:0.15,square:2.8},{z:-0.8,bottom:0.63,top:0.87,width:0.22,square:3},{z:-0.68,bottom:0.66,top:0.9,width:0.26,square:3},{z:-0.56,bottom:0.6,top:0.88,width:0.27,square:3},{z:-0.46,bottom:0.47,top:0.8,width:0.26,square:3.2},{z:-0.38,bottom:0.26,top:0.74,width:0.25,square:3.4},{z:-0.15,bottom:0.21,top:0.66,width:0.22,square:3.4},{z:0.04,bottom:0.23,top:0.62,width:0.18,square:3.2},{z:0.16,bottom:0.32,top:0.58,width:0.12,square:3}],mvt=[{z:-0.54,bottom:0.78,top:0.86,width:0.1,square:3.4},{z:-0.42,bottom:0.72,top:0.915,width:0.16,square:3.6},{z:-0.22,bottom:0.68,top:0.915,width:0.17,square:3.6},{z:-0.04,bottom:0.68,top:0.87,width:0.13,square:3.4},{z:0.1,bottom:0.72,top:0.83,width:0.1,square:3}],fvt=[{z:0.02,bottom:0.5,top:0.79,width:0.15,square:3.4},{z:0.2,bottom:0.56,top:0.82,width:0.145,square:3.4},{z:0.4,bottom:0.68,top:0.85,width:0.125,square:3.2},{z:0.6,bottom:0.77,top:0.89,width:0.1,square:3.2},{z:0.85,bottom:0.84,top:0.925,width:0.06,square:3},{z:0.985,bottom:0.875,top:0.92,width:0.02,square:2.6}],qb={length:2.04,halfWidth:ovt([[-1.02,0.06],[-0.9,0.15],[-0.7,0.26],[-0.47,0.34],[-0.3,0.28],[-0.06,0.3],[0.13,0.28],[0.4,0.17],[0.7,0.12],[1.02,0.08]])}});var Uo={};n(Uo,{AUTOPLAY:()=>au,CAMERA_FOV:()=>ad,CRASH_SLOWDOWN:()=>bN,DAY_LIGHT:()=>Vf,EDGE:()=>ds,FINISH_CLEAR:()=>nd,INVULNERABLE:()=>yN,LANES:()=>yl,LATERAL_SPEED:()=>Bf,LEAN:()=>aM,LIVES:()=>Yb,MAX_LEAN:()=>sM,NEAR_MISS_GAP:()=>EN,NIGHT_LIGHT:()=>zf,NIGHT_SKY:()=>Uf,PAINTS:()=>_N,PLAYER_PAINT:()=>SN,POINTS_PER_BIKE_PASSED:()=>hN,ROAD_HALF:()=>Na,SKY:()=>Wf,SPAWN_AHEAD:()=>nM,START_SPEED:()=>Kb,STEER_RESPONSE:()=>Ff,STEER_WIDTH:()=>Hf,SUIT:()=>Wl,SUIT_TRIM:()=>__,TRACK_LENGTH:()=>xs,TRAFFIC_SPEED:()=>rM,VISOR:()=>vN,getCachedAssets:()=>TN,getRacingSounds:()=>ts,loadAssets:()=>v_,preloadBikeRacing:()=>Tt,warmAssets:()=>bvt});function v_(){return S_??=qf().then((rn)=>{let{body:nn,trim:an,glass:sn}=mN();return{...rn,bike:{body:nn,trim:an,glass:sn,size:[Math.max(nn.size[0],an.size[0]),Math.max(nn.size[1],an.size[1]),Math.max(nn.size[2],an.size[2])]}}}),S_.then((rn)=>{uhe=rn},()=>{}),S_.catch(()=>S_=void 0),S_}function Tt(){v_().catch(()=>{})}function*bvt(){yield mN,yield v_}var Yb=3,hN=500,Kb=30,rM=16,nM=170,bN=0.5,yN=1.6,EN=1.3,aM=0.045,sM=0.5,SN,_N,Wl,__,vN,S_,uhe=null,TN=()=>uhe;var G=e(()=>{A();fN();A();SN=[1,0.4,0],_N=[[0,0.4,1],[0,0.85,0.4],[1,0,1],[0.95,0.95,0.97],[0.12,0.12,0.14],[1,0.82,0.1]],Wl=[0.11,0.12,0.15],__=[0.3,0.32,0.36],vN=[0.05,0.06,0.09]});var Vo={};n(Vo,{Track:()=>jb,buildHorizon:()=>C_,buildRoad:()=>M_,burn:()=>I_,burning:()=>jf,clamp:()=>sd,explode:()=>L_,forwardOf:()=>x_,newSample:()=>lu,orient:()=>id,pick:()=>Zu,placeAt:()=>xc,placeSegment:()=>Zb,rand:()=>sa,recycleRoad:()=>w_,rightOf:()=>R_,setCarNight:()=>A_,setHorizonNight:()=>$b,spawnCar:()=>cM,spawnProps:()=>Qb,spawnRaceMarkers:()=>O_,warmAssets:()=>Nvt});import{block as Bp,merge as mhe,tube as yvt}from"@nayan-ui/engine";class jb{xs=[0];zs=[0];hs=[0];ensure(rn){for(let nn=this.xs.length;nn<=rn+1;nn++){let an=this.hs[nn-1]+Evt(nn);this.hs.push(an),this.xs.push(this.xs[nn-1]+Math.sin(an)),this.zs.push(this.zs[nn-1]-Math.cos(an))}}sample(rn,nn){if(rn<0)return nn.x=0,nn.y=0,nn.z=-rn,nn.heading=0,nn.pitch=0,nn;let an=rn;this.ensure(an);let sn=Math.floor(an),ln=an-sn;return nn.x=this.xs[sn]+(this.xs[sn+1]-this.xs[sn])*ln,nn.z=this.zs[sn]+(this.zs[sn+1]-this.zs[sn])*ln,nn.heading=this.hs[sn]+(this.hs[sn+1]-this.hs[sn])*ln,nn.y=xN(an),nn.pitch=Math.atan(xN(an+0.5)-xN(an-0.5)),nn}}function xc(rn,nn,an,sn){return sn[0]=rn.x+Math.cos(rn.heading)*nn,sn[1]=rn.y+an,sn[2]=rn.z+Math.sin(rn.heading)*nn,sn}function id(rn,nn,an=0,sn=0,ln=[0,0,0,1]){let cn=-(rn+an)/2,un=Math.sin(cn),dn=Math.cos(cn),pn=Math.sin(nn/2),mn=Math.cos(nn/2),fn=Math.sin(sn/2),hn=Math.cos(sn/2),bn=dn*pn,yn=un*mn,En=-un*pn,Sn=dn*mn;return ln[0]=bn*hn+yn*fn,ln[1]=-bn*fn+yn*hn,ln[2]=Sn*fn+En*hn,ln[3]=Sn*hn-En*fn,ln}function cM(rn,nn,an,sn,ln){let cn=nn.car,un=rn.spawn({mesh:"none",position:sn}),pn=[0,-cn.size[1]/2,0],mn=rn.spawn({mesh:cn.body,parent:un,position:pn,color:an}),fn=rn.spawn({mesh:cn.glass,parent:un,position:pn}),hn=rn.spawn({mesh:cn.trim,parent:un,position:pn}),bn={root:un,body:mn,glass:fn,trim:hn,lights:[]};return A_(rn,bn,ln,cn.size[1]),bn}function A_(rn,nn,an,sn){for(let pn of nn.lights)rn.despawn(pn);if(nn.lights.length=0,!an||!rn.has(nn.root))return;let ln=-sn/2;for(let[pn,mn,fn]of m_.headlights)nn.lights.push(rn.spawn({mesh:"cube",parent:nn.root,position:[pn,ln+mn,fn],scale:m_.headlightSize,color:[2,1.95,1.7],pickable:!1}));let[cn,un,dn]=m_.tail;nn.lights.push(rn.spawn({mesh:"cube",parent:nn.root,position:[cn,ln+un,dn],scale:m_.tailSize,color:[2,0.16,0.1],pickable:!1}))}function M_(rn,nn){let an=[];for(let sn=0;sn<Z5;sn++){let ln=rn.spawn({mesh:"none",physics:{type:"fixed",size:[90,0.4,Gi+0.4],layer:4,mask:0,friction:0.7}}),cn=(pn,mn,fn,hn,bn)=>rn.spawn({mesh:pn,parent:ln,position:mn,scale:fn,color:hn,texture:bn,pickable:!1}),un=sn%2*0.004,dn=Gi+0.35;cn("cube",[0,ha-0.05+un,0],[Na*2+0.6,0.1,dn],[1,1,1],nn.asphalt);for(let pn of[-1,1]){cn(nn.scenery.grassGround,[pn*(Na+31),ha-0.04+un,0],[62,1,Gi+4],sn%2?[1,1,1]:[0.94,0.97,0.92],nn.grass);for(let mn of[-Gi/4,Gi/4]){let fn=(sn*2+(mn>0?1:0))%2===0;cn("cube",[pn*(Na+0.2),ha+0.01+un,mn],[0.5,0.08,Gi/2],fn?[0.85,0.12,0.1]:[0.95,0.95,0.95])}cn("cube",[pn*(Na-0.12),ha+0.004+un,0],[0.14,0.02,dn],J5),cn("cube",[pn*(Wb/2),ha+0.004+un,0],[0.14,0.02,2.6],J5),cn("cube",[pn*(Na+1.1),ha+0.55,0],[0.1,0.26,dn],aN),cn("cube",[pn*(Na+1.15),ha+0.3,0],[0.12,0.6,0.12],[0.45,0.46,0.5])}an.push({root:ln,s:(sn-Q5)*Gi,props:[],lights:[]})}return an}function C_(rn,nn){let an=rn.spawn({mesh:"none"});for(let sn=0;sn<26;sn++){let ln=sn/26*Math.PI*2+sa(-0.08,0.08),cn=sa(150,210),un=sa(40,75);rn.spawn({mesh:"sphere",parent:an,position:[Math.sin(ln)*cn,-un*0.32,-Math.cos(ln)*cn],scale:[un*1.6,un*0.9,un*1.6],color:[0.3+sa(0,0.06),0.52+sa(0,0.08),0.24],pickable:!1})}for(let sn=0;sn<18;sn++){let ln=sn/18*Math.PI*2+sa(-0.1,0.1),cn=sa(45,80);rn.spawn({mesh:"cone",parent:an,position:[Math.sin(ln)*330,cn*0.35-10,-Math.cos(ln)*330],scale:[cn*1.7,cn,cn*1.7],color:[0.45+sa(0,0.08),0.55+sa(0,0.06),0.68],pickable:!1})}return $b(rn,an,nn),an}function $b(rn,nn,an){let sn=dhe.get(rn);if(!sn)sn=new Map,dhe.set(rn,sn);let ln=sn.get(nn)??[];for(let cn of ln)rn.despawn(cn);ln.length=0;for(let cn=0;cn<5;cn++){let un=cn*1.256+0.7;ln.push(rn.spawn({mesh:h_().cloud,parent:nn,position:[Math.sin(un)*160,35+cn%3*8,-Math.cos(un)*160],scale:[1.4+cn%2*0.5,1,1.1],color:an?[0.55,0.58,0.68]:[1.4,1.43,1.45],pickable:!1}))}if(an){ln.push(rn.spawn({mesh:"sphere",parent:nn,position:[-120,120,-230],scale:26,color:[2,1.95,1.8],pickable:!1}));for(let cn=0;cn<70;cn++){let un=sa(0,Math.PI*2);ln.push(rn.spawn({mesh:"sphere",parent:nn,position:[Math.sin(un)*280,sa(50,190),-Math.cos(un)*280],scale:sa(0.6,1.4),color:[2,2,2.2],pickable:!1}))}}sn.set(nn,ln)}function Zb(rn,nn){let an=rn.track.sample(nn.s,Svt);rn.world.set(nn.root,{position:[an.x,an.y-ha,an.z],rotation:id(an.heading,an.pitch)})}function Qb(rn,nn){let{world:an,assets:sn}=rn,ln=(yn)=>{let En=an.spawn({parent:nn.root,pickable:!1,...yn});return nn.props.push(En),En},cn=(yn,En,Sn)=>{let _n=ln({...yn,color:rn.night?Sn:En});nn.lights.push({entity:_n,day:En,night:Sn})},un=Math.round(nn.s/Gi),dn=_vt(nn.s),pn=()=>sa(-Gi/2,Gi/2),mn=Math.abs(un),fn=sn.scenery,hn=(yn,En,Sn,_n,vn,Tn)=>{ln({mesh:fn.podium,position:[yn,ha,En],scale:[Sn,1,vn]}),ln({mesh:fn.roofs[Tn%2],position:[yn,ha+_n,En],scale:[Sn,1,vn]}),ln({mesh:fn.facades[Tn%3],position:[yn,ha+_n/2,En],scale:[Sn,_n,vn]}),cn({mesh:fn.windows,position:[yn,ha+_n/2,En],scale:[Sn,_n,vn]},[1,1,1,0],[1,1,1])};for(let yn of[-1,1]){if(Math.random()<0.55)ln({mesh:"sphere",position:[yn*(Na+sa(2.2,3.4)),ha+0.25,pn()],scale:[sa(1,1.8),sa(0.7,1.1),sa(1,1.8)],color:[0.18+sa(0,0.08),0.4+sa(0,0.12),0.14]});if(dn==="city"){if(ln({mesh:fn.pavement,position:[yn*(Na+3.2),ha+0.05,0]}),(un+(yn>0?1:0))%2===0){let _n=sa(14,42),vn=sa(0.72,1),Tn=yn*(Na+sa(10,15)),Rn=sa(-1,1),An=sa(8,12),Mn=sa(8,11);if(ln({mesh:"cube",texture:sn.facade,position:[Tn,ha+_n/2,Rn],scale:[An,_n,Mn],color:[vn,vn*sa(0.92,1),vn*sa(0.86,1)]}),hn(Tn,Rn,An,_n,Mn,mn+(yn>0?1:0)),Math.random()<0.5){let Cn=sa(20,55);ln({mesh:"cube",texture:sn.facade,position:[yn*(Na+sa(24,32)),ha+Cn/2,sa(-2,2)],scale:[sa(9,14),Cn,sa(9,12)],color:[0.8,0.82,0.88]})}}let En=mn+(yn>0?2:0),Sn=yn*(Na+3.2);if(En%5===1)ln({mesh:fn.planter,position:[Sn,ha+0.1,0]}),ln({mesh:"cylinder",position:[Sn,ha+1.7,0],scale:[0.28,2.7,0.28],color:[0.35,0.26,0.16]}),ln({mesh:"sphere",position:[Sn,ha+3.6,0],scale:[2.1,2.7,2],color:[0.23,0.41,0.19]}),ln({mesh:"sphere",position:[Sn+yn*0.45,ha+3.2,0.35],scale:[1.5,1.8,1.5],color:[0.27,0.44,0.2]});else if(En%5===3)ln({mesh:fn.planter,position:[Sn,ha+0.1,0]}),ln({mesh:fn.flowers,position:[Sn,ha+0.67,0],scale:[1.3,1.2,1.3]});if(En%9===4)ln({mesh:fn.bench,position:[Sn,ha+0.12,0],rotation:[0,Math.sin(yn*Math.PI/4),0,Math.cos(yn*Math.PI/4)]}),ln({mesh:fn.bin,position:[Sn,ha+0.12,1.8]});if(En%19===8)ln({mesh:fn.shelter,position:[Sn,ha+0.12,0]})}else if(dn==="suburb")if((un+(yn>0?1:0))%3===0){let En=yn*(Na+sa(10,14)),Sn=Zu(vvt),_n=En-yn*2.52;ln({mesh:"cube",position:[En,ha+1.6,0],scale:[5,3.2,5.6],color:Sn}),ln({mesh:fn.house,position:[En,ha,0]}),ln({mesh:fn.flowers,position:[_n-yn*0.45,ha,-1],scale:[0.8,1,1.4]}),ln({mesh:"cube",position:[yn*(Na+7.3),ha-0.005,0.9],scale:[4.5,0.035,1.8],color:[0.48,0.49,0.46]}),ln({mesh:"cube",position:[_n,ha+0.95,0.9],scale:[0.06,1.9,0.9],color:[0.35,0.22,0.14]});for(let Tn of[-1.4,2.2])ln({mesh:"cube",position:[_n,ha+2,Tn],scale:[0.06,0.8,0.9],color:[0.55,0.7,0.85]});let vn=an.spawn({mesh:"none",parent:nn.root,pickable:!1,position:[En,ha+3.2,0],scale:[1,0.55,1]});nn.props.push(vn),nn.props.push(an.spawn({mesh:"cube",parent:vn,pickable:!1,rotation:[0,0,Math.sin(Math.PI/8),Math.cos(Math.PI/8)],scale:[4,4,6.2],color:Zu(Tvt)})),ln({mesh:"cube",position:[yn*(Na+6.5),ha+0.35,0],scale:[0.08,0.6,Gi],color:[0.95,0.95,0.95]})}else{let En=yn*(Na+sa(7,16)),Sn=pn(),_n=sa(1.6,2.6);ln({mesh:"cylinder",position:[En,ha+_n/2,Sn],scale:[0.35,_n,0.35],color:[0.42,0.29,0.17]}),ln({mesh:"sphere",position:[En,ha+_n+1.1,Sn],scale:sa(2.6,3.6),color:[0.24+sa(0,0.08),0.5+sa(0,0.12),0.2]})}else{for(let En=0;En<3;En++)ln({mesh:sn.tree,position:[yn*(Na+sa(5,28)),ha,pn()],scale:sa(2.4,4.2),color:[1,1,1]});if(Math.random()<0.35)ln({mesh:"sphere",position:[yn*(Na+sa(4,12)),ha,pn()],scale:[sa(0.8,1.8),sa(0.5,0.9),sa(0.8,1.6)],color:[0.52,0.5,0.48]});for(let En of[0.45,0.85])ln({mesh:"cube",position:[yn*(Na+4.2),ha+En,0],scale:[0.07,0.1,Gi+0.3],color:[0.48,0.34,0.2]});if(ln({mesh:"cube",position:[yn*(Na+4.2),ha+0.5,0],scale:[0.12,1,0.12],color:[0.4,0.28,0.16]}),un%6===(yn>0?0:3))ln({mesh:"cylinder",position:[yn*(Na+7),ha+4.5,0],scale:[0.22,9,0.22],color:[0.38,0.27,0.18]}),ln({mesh:"cube",position:[yn*(Na+7),ha+8.4,0],scale:[2.2,0.14,0.14],color:[0.38,0.27,0.18]})}if(mn%2===0){let En=yn*(Na+(dn==="city"?1.8:3.2));if(ln({mesh:fn.grass,position:[En,ha-0.025,-1.6],scale:dn==="city"?0.8:1.4}),dn!=="city")ln({mesh:fn.grass,position:[En+yn*0.8,ha-0.025,1.6],scale:1.1})}if(dn==="country"&&mn%4===1)ln({mesh:fn.flowers,position:[yn*(Na+3.1),ha-0.02,0],scale:1.1});if(dn==="city"&&mn%3===0)ln({mesh:fn.drain,position:[yn*(Na-0.4),ha+0.008,0]});if(mn%2===1)cn({mesh:"cube",position:[yn*(Na+1.04),ha+0.61,0],scale:[0.1,0.08,0.07]},[0.9,0.88,0.75],[1.45,1.3,0.8])}let bn=un%2?1:-1;if(un%(dn==="city"?2:4)===0)ln({mesh:"cylinder",position:[bn*(Na+1.7),ha+3.2,0],scale:[0.16,6.4,0.16],color:[0.35,0.36,0.4]}),ln({mesh:"cube",position:[bn*(Na+0.8),ha+6.35,0],scale:[1.9,0.1,0.12],color:[0.35,0.36,0.4]}),cn({mesh:"cube",position:[bn*(Na-0.05),ha+6.25,0],scale:[0.7,0.1,0.32]},rN,nN);if(mn%17===7){let yn=bn*(Na+4.6);for(let En of[-1.65,1.65])ln({mesh:"cylinder",position:[yn+En,ha+2,0],scale:[0.1,4,0.1],color:[0.4,0.44,0.42]});ln({mesh:fn.routeSign,position:[yn,ha+4.15,0]}),cn({text:dn==="city"?"CITY":dn==="suburb"?"HILLS":"FOREST",font:sn.font,position:[yn-0.35,ha+3.92,0.09],scale:0.48,letterSpacing:0.04},[0.94,0.95,0.88],[1.4,1.4,1.25])}if(un%11===5){let yn=-bn*(Na+6);for(let En of[-2.2,2.2])ln({mesh:"cylinder",position:[yn+En,ha+2.5,0],scale:[0.25,5,0.25],color:[0.3,0.3,0.34]});cn({mesh:"cube",texture:Zu(sn.ads),position:[yn,ha+6,0],scale:[7.5,3.6,0.25],rotation:[0,Math.sin(bn*0.35/2),0,Math.cos(bn*0.35/2)]},[1,1,1],[1.7,1.7,1.7])}}function w_(rn,nn,an){for(let sn of nn){if(sn.s>=an-Gi*Q5)continue;sn.s+=Z5*Gi,Zb(rn,sn);for(let ln of sn.props)rn.world.despawn(ln);sn.props.length=0,sn.lights.length=0,Qb(rn,sn)}}function L_(rn,nn){let an=[0,1,0];rn.burst({position:nn,mesh:"flame",count:3,size:3.2,speed:0.5,lifetime:0.22,gravity:0,color:xvt,endSize:1.8,endColor:[2,1.4,0.4,0]}),rn.burst({position:nn,mesh:"flame",count:30,size:1.1,speed:4.5,lifetime:0.85,gravity:3,color:Rvt,endSize:2.2,endColor:RN}),rn.burst({position:[nn[0],nn[1]+0.4,nn[2]],mesh:"flame",count:14,size:0.9,speed:5.5,lifetime:0.9,gravity:5,direction:an,spread:0.55,color:hhe,endSize:1.4,endColor:RN}),rn.burst({position:nn,mesh:"flame",count:30,size:0.16,speed:14,lifetime:0.7,gravity:-9.81,color:Ehe,endSize:0.3,endColor:[2,0.3,0.05,0]}),rn.burst({position:nn,count:10,size:0.14,speed:8,lifetime:1.4,gravity:-9.81,direction:an,spread:1.2,color:Mvt}),rn.burst({position:[nn[0],nn[1]+1.4,nn[2]],mesh:"puff",count:6,size:1,speed:2,lifetime:2,gravity:2,direction:an,spread:0.6,color:bhe,endSize:3,endColor:yhe})}function I_(rn,nn,an,sn,ln){let{eye:cn,target:un}=nn,dn=un[0]-cn[0],pn=un[1]-cn[1],mn=un[2]-cn[2],fn=Math.hypot(dn,pn,mn)||1;for(let hn=an.length-1;hn>=0;hn--){let bn=an[hn],yn=rn.worldPosition(bn.root,Cvt);if(!yn||sn>bn.until){an.splice(hn,1);continue}if(((yn[0]-cn[0])*dn+(yn[1]-cn[1])*pn+(yn[2]-cn[2])*mn)/fn<Pvt)continue;let Sn=rn.velocity(bn.root,wvt)??[0,0,0],_n=(vn,Tn,Rn,An,Mn)=>{let Cn=[Sn[0],Sn[1]+vn,Sn[2]],Ln=Math.hypot(Cn[0],Cn[1],Cn[2]);rn.burst({position:[yn[0]+sa(-Rn,Rn),yn[1]+Tn,yn[2]+sa(-An,An)],mesh:Mn.mesh,count:1,size:Mn.size,speed:Ln,lifetime:Mn.lifetime,gravity:vn*1.5,direction:[Cn[0]/Ln,Cn[1]/Ln,Cn[2]/Ln],spread:Mn.spread,color:Mn.color,endSize:Mn.endSize,endColor:Mn.endColor})};bn.flame+=ln*Lvt;while(bn.flame>=1)if(bn.flame-=1,_n(4.2,0.8,0.75,1.5,{mesh:"flame",size:sa(0.8,1.1),lifetime:sa(0.45,0.65),color:hhe,endSize:0.25,endColor:RN,spread:0.2}),Math.random()<0.5)_n(1.5,0.7,0.55,1.2,{mesh:"flame",size:sa(0.7,0.95),lifetime:sa(0.18,0.28),color:Avt,endSize:0.7,endColor:[2,1.4,0.4,0],spread:0.2});bn.smoke+=ln*Ivt;while(bn.smoke>=1)bn.smoke-=1,_n(2.6,2,0.5,1,{mesh:"puff",size:sa(1,1.3),lifetime:sa(1.6,2.1),color:bhe,endSize:3,endColor:yhe,spread:0.35});bn.ember+=ln*Ovt;while(bn.ember>=1)bn.ember-=1,_n(4.5,1,0.6,1.3,{mesh:"flame",size:0.14,lifetime:sa(0.8,1.3),color:Ehe,endSize:0.3,endColor:[2,0.3,0.05,0],spread:0.6})}}function gvt(rn,nn){let an=[];for(let sn of[-1,1])an.push({geometry:Bp(0.55,T_,0.55,6),position:[sn*Xb,T_/2,0],color:rn}),an.push({geometry:Bp(0.9,0.3,0.9,6),position:[sn*Xb,0.15,0],color:rn});return an.push({geometry:Bp(Xb*2+0.9,0.45,0.6),position:[0,T_+0.1,0],color:rn},{geometry:Bp(Xb*2-1.4,1.25,0.12),position:[0,lM,0.08],color:nn},{geometry:Bp(Xb*2-2.2,0.08,0.04),position:[0,lM-0.5,0.15],color:[1,0.9,0.5]},{geometry:Bp(Xb*2-2.2,0.08,0.04),position:[0,lM+0.5,0.15],color:[1,0.9,0.5]}),an}function O_(rn,nn,an,sn,ln){let cn=(un,dn,pn)=>{let mn=nn.sample(dn,Dvt);xc(mn,0,0,iM);let fn=rn.spawn({mesh:un,position:[iM[0],iM[1],iM[2]],rotation:id(mn.heading,mn.pitch),pickable:!1});if(!pn)return fn;return rn.spawn({text:pn,font:ln,parent:fn,position:[0,lM-0.36,0.16],scale:0.78,color:[1,1,1],letterSpacing:0.12,pickable:!1}),fn};return{start:cn(vhe(),an),finish:cn(_he(),sn,"FINISH")}}function*Nvt(){yield _he,yield vhe}var sa=(rn,nn)=>rn+Math.random()*(nn-rn),Zu=(rn)=>rn[Math.floor(Math.random()*rn.length)],sd=(rn,nn,an)=>Math.max(nn,Math.min(an,rn)),fhe=(rn)=>Math.min(1,Math.max(0,(rn-60)/200)),Evt=(rn)=>(0.0052*Math.sin(rn/95)+0.0034*Math.sin(rn/41+1.3))*fhe(rn),xN=(rn)=>(7*Math.sin(rn/150)+2.5*Math.sin(rn/57+0.7))*fhe(rn),lu=()=>({x:0,y:0,z:0,heading:0,pitch:0}),x_=(rn)=>[Math.sin(rn),0,-Math.cos(rn)],R_=(rn)=>[Math.cos(rn),0,Math.sin(rn)],Svt,dhe,_vt=(rn)=>["city","suburb","country"][Math.floor(Math.max(0,rn+300)/600)%3],vvt,Tvt,xvt,Rvt,Avt,hhe,RN,bhe,yhe,Ehe,Mvt,jf=(rn,nn)=>({root:rn,until:nn,flame:0,smoke:0,ember:0}),Cvt,wvt,Lvt=120,Ivt=10,Ovt=14,Pvt=5,Xb,T_=6.4,lM=5.5,phe,She=(rn,nn)=>{let an=phe.get(rn);if(!an)phe.set(rn,an=Bn("car-racing/CarRacingScene:"+rn,nn));return an},_he=()=>She("finish",()=>{let rn=[],nn=0.7,an=Math.ceil((Na*2+0.6)/0.7);for(let ln=0;ln<an;ln++)for(let cn=0;cn<2;cn++)rn.push({geometry:Bp(0.7,0.03,0.7,8),position:[(ln-(an-1)/2)*0.7,0.016,(cn-0.5)*0.7],color:(ln+cn)%2?[0.96,0.96,0.94]:[0.08,0.08,0.1]});let sn=[-4,-2,0,2,4].map((ln,cn)=>({geometry:yvt([[ln,T_-0.15,0.32],[ln+0.06,T_-0.8,0.33]],{radius:(un)=>0.2*(1-un),shape:(un)=>0.2+0.8*Math.abs(Math.cos(un*Math.PI*2)),sides:6}),color:[[0.2,0.5,0.95],[1,0.8,0.15],[0.2,0.75,0.3]][cn%3]}));return wn(mhe([...rn,...gvt([0.95,0.72,0.2],[0.85,0.12,0.14]),...sn]),{center:!1,shine:0.5})}),vhe=()=>She("start",()=>wn(mhe([{geometry:Bp(Na*2+0.4,0.03,0.5,8),position:[0,0.016,0],color:[0.96,0.96,0.92]}]),{center:!1,shine:0.3})),Dvt,iM;var Je=e(()=>{na();f_();A();J6();Svt=lu();dhe=new WeakMap;vvt=[[0.95,0.9,0.78],[0.86,0.9,0.95],[0.95,0.82,0.75],[0.9,0.93,0.82]],Tvt=[[0.62,0.2,0.15],[0.35,0.25,0.2],[0.3,0.32,0.38]];xvt=[2,1.95,1.7,0.9],Rvt=[[2,1.7,0.8,0.6],[2,1.45,0.5,0.6],[2,1.2,0.35,0.6]],Avt=[[2,1.85,1.1,0.5],[2,1.7,0.75,0.5]],hhe=[[2,1.6,0.55,0.42],[2,1.35,0.38,0.42],[2,1.1,0.25,0.42]],RN=[2,0.35,0.08,0],bhe=[[0.1,0.095,0.09,0.5],[0.14,0.13,0.12,0.45],[0.18,0.17,0.16,0.4]],yhe=[0.45,0.44,0.43,0],Ehe=[[2,1.4,0.5],[2,1,0.25]],Mvt=[[0.06,0.06,0.07],[0.18,0.18,0.2]];Cvt=[0,0,0],wvt=[0,0,0];Xb=Na+1.7,phe=new Map;Dvt=lu(),iM=[0,0,0]});function uM(rn,nn,an,sn,ln=9){let cn=Math.max(-rn.length/2,an-nn.length/2),un=Math.min(rn.length/2,an+nn.length/2);if(un<=cn)return-1/0;let dn=-1/0;for(let pn=0;pn<ln;pn++){let mn=cn+(un-cn)*pn/(ln-1);dn=Math.max(dn,rn.halfWidth(-mn)+nn.halfWidth(-(mn-an))-Math.abs(sn))}return dn}function dM(rn,nn,an,sn,ln=0.5){let cn=(rn.length+nn.length)/2-Math.abs(an),un=Math.max(0,Math.abs(an)-Math.abs(sn));return cn<ln+un}var AN=()=>{};function Jb(rn,nn,an,sn,ln,cn){let un=rn.initialized?1-Math.exp(-Math.max(0,cn)*7):1;for(let dn=0;dn<3;dn++)rn.eye[dn]=rn.eye[dn]+(sn[dn]-rn.eye[dn])*un,rn.target[dn]=rn.target[dn]+(ln[dn]-rn.target[dn])*un,nn.eye[dn]=an[dn]+rn.eye[dn],nn.target[dn]=an[dn]+rn.target[dn];rn.initialized=!0}var pM=()=>({eye:[6,3,6],target:[0,0.2,0],initialized:!1});var MN=()=>{};function mM(rn,nn,an,sn=9,ln=10.5,cn=!0){if(an<=0)return;if(!cn){let pn=rn.lateral*Math.exp(-ln*2*an);rn.d+=(rn.lateral-pn)/(ln*2),rn.lateral=pn,rn.steeringGoal=rn.d;return}let un=rn.steeringGoal??rn.d,dn=an;while(dn>0.000000001){let pn=Math.min(dn,0.004166666666666667);un=nn+(un-nn)*Math.exp(-22*pn);let mn=rn.d-un,fn=rn.lateral+ln*mn,hn=Math.exp(-ln*pn),bn=un+(mn+fn*pn)*hn,yn=(rn.lateral-ln*fn*pn)*hn;if(Math.abs(yn)>sn)yn=Math.sign(yn)*sn,bn=rn.d+(rn.lateral+yn)*0.5*pn;rn.d=bn,rn.lateral=yn,dn-=pn}rn.steeringGoal=un}function fM(rn,nn,an){return Math.max(0,(rn-nn)*(Math.sign(an)||1))}function hM(rn,nn,an,sn){let ln=1-Math.exp(-Math.max(0,sn)*18),cn=Math.max(-0.22,Math.min(0.22,Math.atan2(nn,Math.max(8,an))*0.55)),un=Math.max(-0.035,Math.min(0.035,nn*0.004)),dn=(cn-rn.yaw)*ln;rn.yaw+=Math.max(-0.9*sn,Math.min(0.9*sn,dn)),rn.roll+=(un-rn.roll)*ln}var CN=()=>{};var zo={};n(zo,{leanBike:()=>EM,setBikeNight:()=>P_,spawnBike:()=>yM,warmAssets:()=>Uvt});import{merge as Gvt,quat as wN,shapeGeometry as kvt,tube as Bvt}from"@nayan-ui/engine";function Rhe(){return Bn("bike-racing/BikeRacingScene:riderMesh",()=>Fvt())}function Fvt(){if(bM)return bM;let rn=(sn,ln,cn,un,dn)=>({geometry:Bvt([sn,ln],{radius:(pn)=>cn+(un-cn)*pn,sides:12,smoothness:2,caps:!0}),color:dn}),nn=(sn,ln,cn)=>({geometry:kvt("sphere"),position:sn,scale:ln,color:cn}),an=[rn([0,0.86,0.26],[0,1.05,-0.12],0.16,0.14,Wl),nn([0,0.86,0.26],[0.3,0.26,0.28],Wl),nn([0,1.04,-0.11],[0.32,0.24,0.24],Wl),rn([0,1.07,-0.15],[0,1.1,-0.21],0.06,0.06,Wl),rn([0,0.98,0.2],[0,1.17,-0.08],0.035,0.03,__)];for(let sn of[-1,1])an.push(nn([sn*0.18,1.04,-0.12],0.13,Wl)),an.push(rn([sn*0.18,1.04,-0.12],[sn*0.29,0.93,-0.3],0.06,0.055,Wl)),an.push(nn([sn*0.29,0.93,-0.3],0.11,Wl)),an.push(rn([sn*0.29,0.93,-0.3],[sn*0.32,0.79,-0.46],0.055,0.045,Wl)),an.push(nn([sn*0.32,0.785,-0.465],0.1,__)),an.push(rn([sn*0.12,0.84,0.26],[sn*0.25,0.78,-0.06],0.085,0.07,Wl)),an.push(nn([sn*0.25,0.78,-0.06],0.14,Wl)),an.push(rn([sn*0.25,0.78,-0.06],[sn*0.23,0.4,0.1],0.065,0.055,Wl)),an.push(nn([sn*0.23,0.38,0.13],[0.09,0.08,0.2],__));return bM=wn(Gvt(an),{center:!1,shine:0.45}),bM}function yM(rn,nn,an,sn,ln){let cn=nn.bike,un=rn.spawn({mesh:"none",position:sn}),dn=rn.spawn({mesh:"none",parent:un,position:[0,-cn.size[1]/2,0]}),pn=(fn)=>rn.spawn({parent:dn,pickable:!1,...fn});pn({mesh:cn.body,color:an}),pn({mesh:cn.trim}),pn({mesh:cn.glass}),pn({mesh:Rhe()}),pn({mesh:"sphere",position:[0,1.14,-0.29],scale:[0.29,0.28,0.32],color:an}),pn({mesh:"sphere",position:[0,1.13,-0.39],scale:[0.24,0.11,0.15],color:vN});let mn={root:un,lean:dn,lights:[]};return P_(rn,mn,ln),mn}function P_(rn,nn,an){for(let sn of nn.lights)rn.despawn(sn);if(nn.lights.length=0,!an||!rn.has(nn.root))return;nn.lights.push(rn.spawn({mesh:"sphere",parent:nn.lean,pickable:!1,position:[0,0.71,-0.93],scale:[0.24,0.05,0.05],color:[2,1.95,1.7]}),rn.spawn({mesh:"cube",parent:nn.lean,pickable:!1,position:[0,0.895,0.985],scale:[0.09,0.03,0.02],color:[2,0.16,0.1]}))}function EM(rn,nn,an,sn,ln=0){wN.multiply(wN.z(-sn,Hvt),wN.x(ln,Wvt),xhe),LN[1]=an+The*Math.sin(ln),LN[2]=The*(1-Math.cos(ln)),rn.set(nn,{rotation:xhe,position:LN})}function*Uvt(){yield Rhe}var bM,The=0.73,xhe,Hvt,Wvt,LN;var vt=e(()=>{na();G();xhe=[0,0,0,1],Hvt=[0,0,0,1],Wvt=[0,0,0,1],LN=[0,0,0]});import{audio as ON,effects as Mhe,haptics as $f,World as Vvt}from"@nayan-ui/engine";function whe(rn,nn){let an=new Vvt(2600),sn={eye:[5,2.5,5],target:[0,0.6,0],fov:ad},ln=M_(an,rn),cn=C_(an,nn),un=yM(an,rn,SN,[0,rn.bike.size[1]/2,0],nn);an.listener=un.root;let dn={world:an,night:nn,track:new jb,chase:pM(),assets:rn,camera:sn,player:un,horizon:cn,segments:ln,traffic:[],burning:[],phase:"ready",time:0,s:0,d:0,target:0,dragX:0,speed:0,lateral:0,steeringGoal:0,steeringPose:{yaw:0,roll:0},spawnTimer:0.5,invulnerable:0,scrape:0,orbit:0,wheelie:0,wobble:0,get score(){return an.scoreboard.score},get lives(){return an.scoreboard.lives},left:xs,shake:0,engine:null,audible:!0,onPhase:(pn)=>{},onScore:(pn)=>{},onLives:(pn)=>{},onDistance:(pn)=>{},hudFeedback:{}};for(let pn of ln)Zb(dn,pn),Qb(dn,pn);return an.scoreboard.reset(Yb),O_(an,dn.track,0,xs,rn.font),dn}function PN(rn){if(rn.world.isDisposed||rn.phase!=="ready")return;rn.phase="playing",rn.speed=Kb*0.55,rn.wheelie=Che;for(let nn=45;nn<Math.min(nM,xs-nd);nn+=sa(16,24))Ghe(rn,nn);if(rn.engine=rn.audible?ts().play("engine",IN):null,!rn.engine)ts().ready.then(()=>{if(!rn.world.isDisposed&&rn.audible&&rn.phase==="playing"&&!rn.engine)rn.engine=ts().play("engine",IN)});rn.onPhase("playing"),p(ts(),"nitro",{volume:0.6,pitch:1.2}),$f.impact(0.6,0.4)}function Lhe(rn,nn){if(rn.audible=nn,!nn){ON.stop(rn.engine),rn.engine=null;return}if(rn.phase!=="playing"||rn.engine||rn.world.isDisposed)return;let an=()=>{if(!rn.world.isDisposed&&rn.audible&&rn.phase==="playing"&&!rn.engine)rn.engine=ts().play("engine",IN)};if(an(),!rn.engine)ts().ready.then(an)}function Ihe(rn,nn){if(rn.world.isDisposed||rn.night===nn)return;rn.night=nn,$b(rn.world,rn.horizon,nn),P_(rn.world,rn.player,nn);for(let an of rn.traffic)P_(rn.world,an,nn);for(let an of rn.segments)for(let sn of an.lights)rn.world.set(sn.entity,{color:nn?sn.night:sn.day})}function Ohe(rn,nn,an,sn){if(rn.phase!=="playing")return;if(nn==="start")rn.dragX=0;if(nn==="end")return;rn.target=sd(rn.target+(an-rn.dragX)*sn,-ds-0.6,ds+0.6),rn.dragX=an}function Phe(rn){ON.stop(rn.engine),rn.world.dispose()}function Ahe(rn,nn,an,sn,ln,cn=0){let un=rn.track.sample(an,ey);xc(un,sn,ln,Qu),rn.world.set(nn,{position:Qu,velocity:[0,0,0],rotation:id(un.heading,un.pitch,cn,0,Yvt)})}function ghe(rn,nn,an=!0){nn.crashed=!0,nn.passed=!0;let sn=rn.track.sample(nn.s,ey),ln=R_(sn.heading),cn=Math.sign(nn.d-rn.d)||(Math.random()<0.5?-1:1),un=rn.assets.bike.size;rn.world.set(nn.root,{physics:{type:"dynamic",size:[0.6,un[1]+0.4,un[2]*0.95],layer:8,mask:12,bounce:0.3,friction:0.5,density:0.3},spin:[sa(-4,4),sa(-6,6),-cn*sa(4,8)],impact:{sound:ts().get("bump"),minSpeed:2,maxSpeed:14,volume:0.7,haptic:0.3},lifetime:3.4}),rn.speed=an?Math.max(Kb*0.55,rn.speed*bN):rn.speed*0.9;let dn=rn.speed*1.1,pn=rn.track.sample(nn.s,ey),{x:mn,z:fn}=pn,hn=rn.track.sample(nn.s+1,ey),bn=Math.hypot(hn.x-mn,hn.z-fn)||1,yn=[(hn.x-mn)/bn,0,(hn.z-fn)/bn];rn.world.set(nn.root,{velocity:[yn[0]*dn+ln[0]*cn*4,4.5,yn[2]*dn+ln[2]*cn*4]});let En=rn.world.position(nn.root);if(En)L_(rn.world,En);if(rn.burning.push(jf(nn.root,rn.time+3)),rn.shake=0.45,rn.wobble=0.9,an)rn.onLives(rn.world.scoreboard.addLives(-1));if(rn.hudFeedback.flash=!0,p(ts(),"hit",{volume:1}),$f.impact(1,0.8),rn.lives<=0){rn.burning.push(jf(rn.player.root,1/0)),Dhe(rn);return}rn.invulnerable=yN}function Xvt(rn,nn,an){let sn=Math.cos(nn.phase)*nn.weave*nn.weaveSpeed+nn.vshove;if(fM(rn.lateral,sn,nn.d-rn.d)>=2.5){nn.bumped=!0,rn.lateral*=0.55,ghe(rn,nn,!1);return}let ln=Math.sign(nn.d-rn.d)||1;if(nn.shove+=ln*an*0.7,rn.d-=ln*an*0.3,nn.vshove=ln*(3+Math.abs(rn.lateral)*0.7),rn.lateral=-ln*Math.abs(rn.lateral)*0.3,nn.bumped=!0,rn.speed*=0.98,rn.wobble=Math.max(rn.wobble,0.35),rn.shake=Math.max(rn.shake,0.12),nn.bumpCooldown>0)return;nn.bumpCooldown=0.3;let cn=rn.track.sample((nn.s+rn.s)/2,ey);xc(cn,(nn.d+rn.d)/2,0.5,Qu),Mhe.sparks(rn.world,{position:[Qu[0],Qu[1],Qu[2]],count:12,speed:6,size:0.06,lifetime:0.35,gravity:-9.81,colors:[[1,0.9,0.4],[1,0.65,0.2]]}),p(ts(),"bump",{volume:0.85}),$f.impact(0.55,0.7)}function Dhe(rn){if(rn.phase!=="playing")return;if(rn.world.scoreboard.stop(),rn.phase="over",ON.stop(rn.engine),rn.engine=null,rn.lives>0)p(ts(),"win",{volume:0.8}),$f.notify("success");else p(ts(),"die",{volume:0.8}),$f.notify("error");rn.onPhase("over")}function Nhe(rn,nn){if(rn.world.isDisposed)return;nn=Math.max(0,Math.min(nn,0.05)),rn.time+=nn;let an=rn.phase==="playing";if(an){if(rn.speed+=(Kb-rn.speed)*(1-Math.exp(-nn*1.4)),rn.invulnerable=Math.max(0,rn.invulnerable-nn),rn.spawnTimer-=nn,rn.spawnTimer<=0)rn.spawnTimer=Math.max(0.35,0.9-(rn.speed-Kb)*0.018)*sa(0.8,1.2),Ghe(rn);if(au)Zvt(rn)}else if(rn.phase==="over")rn.speed=Math.max(0,rn.speed-25*nn);let sn=sd(rn.target,-ds-0.6,ds+0.6);if(mM(rn,an?sn:rn.d,nn,Bf,Ff,an),rn.scrape-=nn,Math.abs(rn.d)>ds){if(rn.d=Math.sign(rn.d)*ds,Math.sign(rn.lateral)===Math.sign(rn.d))rn.lateral=0;if(an&&Math.abs(sn)>ds+0.2&&rn.scrape<=0){rn.scrape=0.06,rn.speed*=0.985;let dn=rn.track.sample(rn.s+0.8,ey);xc(dn,Math.sign(rn.d)*(Na+0.9),0.5,Qu),Mhe.sparks(rn.world,{position:[Qu[0],Qu[1],Qu[2]],count:6,speed:6,size:0.07,lifetime:0.35,gravity:-9.81,colors:[[1,0.85,0.3],[1,0.55,0.1]],flash:!1}),$f.impact(0.25,1)}}if(rn.s+=rn.speed*nn,rn.phase==="playing"){let dn=Math.max(0,Math.ceil(xs-rn.s));if(dn!==rn.left)rn.left=dn,rn.onDistance(dn);if(rn.s>=xs)Dhe(rn)}let ln=rn.assets.bike.size;hM(rn.steeringPose,rn.lateral,rn.speed,nn),Ahe(rn,rn.player.root,rn.s,rn.d,ln[1]/2,rn.steeringPose.yaw),rn.wheelie=Math.max(0,rn.wheelie-nn),rn.wobble=Math.max(0,rn.wobble-nn);let cn=an&&rn.wheelie>0?zvt*Math.sin(rn.wheelie/Che*Math.PI):0,un=rn.wobble>0?Math.sin(rn.time*30)*0.18*rn.wobble:0;EM(rn.world,rn.player.lean,-ln[1]/2,sd(rn.lateral*aM,-sM,sM)+un,cn);for(let dn=rn.traffic.length-1;dn>=0;dn--){let pn=rn.traffic[dn];if(pn.crashed){if(!rn.world.has(pn.root))rn.traffic.splice(dn,1);continue}pn.phase+=nn*pn.weaveSpeed,pn.bumpCooldown-=nn,pn.shove+=pn.vshove*nn,pn.vshove*=Math.exp(-nn*2.5);let mn=Math.cos(pn.phase)*pn.weave*pn.weaveSpeed+pn.vshove;pn.s+=rM*nn;let fn=pn.lane+Math.sin(pn.phase)*pn.weave+pn.shove;if(Math.abs(fn)>ds)pn.shove-=fn-Math.sign(fn)*ds,pn.vshove=-pn.vshove*0.3,fn=Math.sign(fn)*ds;pn.d=fn,Ahe(rn,pn.root,pn.s,fn,ln[1]/2,Math.atan2(mn,rM)*0.7),EM(rn.world,pn.lean,-ln[1]/2,sd(mn*aM*2,-0.45,0.45));let hn=pn.s-rn.s,bn=qb.length,yn=Math.abs(pn.d-rn.d);if(Math.abs(hn)<bn)pn.closest=Math.min(pn.closest,yn);let En=uM(qb,qb,hn,yn);if(rn.phase==="playing"&&En>0){if(!pn.touching&&dM(qb,qb,pn.wasAhead,hn,0.35))pn.headOn=!0;if(pn.touching=!0,!pn.headOn)Xvt(rn,pn,En);else if(rn.invulnerable<=0){ghe(rn,pn);continue}}else pn.touching=!1,pn.headOn=!1;if(pn.wasAhead=hn,!pn.passed&&rn.phase==="playing"&&hn<-bn){if(pn.passed=!0,rn.onScore(rn.world.scoreboard.add(hN)),p(ts(),"point",{volume:0.5}),$f.impact(0.25,0.9),pn.closest<EN&&!pn.bumped)rn.hudFeedback.message="NEAR MISS!"}if(hn<-30)rn.world.despawn(pn.root),rn.traffic.splice(dn,1)}I_(rn.world,rn.camera,rn.burning,rn.time,nn),rn.world.update(nn),w_(rn,rn.segments,rn.s),jvt(rn,nn)}function jvt(rn,nn){let an=rn.world.worldPosition(rn.player.root,qvt);if(!an)return;let sn=rn.track.sample(rn.s,Kvt),ln=x_(sn.heading);if(rn.phase==="ready"){rn.orbit+=nn*0.35;let cn=rn.orbit+0.9;Jb(rn.chase,rn.camera,an,[Math.sin(cn)*5,1.6,Math.cos(cn)*5],[0,0.35,0],nn)}else Jb(rn.chase,rn.camera,an,[-ln[0]*5.4,1.9+Math.max(0,-sn.pitch)*3,-ln[2]*5.4],[ln[0]*12,0.6+Math.tan(sn.pitch)*12,ln[2]*12],nn);rn.camera.fov=ad,rn.shake*=Math.exp(-nn*6),rn.world.set(rn.horizon,{position:[an[0],0,an[2]]})}function Ghe(rn,nn=nM){let an=rn.s+nn;if(an>xs-nd)return;let sn=12+rn.speed*0.32,ln=new Set;for(let bn of rn.traffic)if(!bn.crashed&&Math.abs(bn.s-an)<sn)ln.add(bn.laneIndex);let cn=[0,1,2].filter((bn)=>!ln.has(bn));if(cn.length<=1)return;let un=Zu(cn),dn=yl[un],pn=rn.track.sample(an,$vt);xc(pn,dn,rn.assets.bike.size[1]/2,SM);let{root:mn,lean:fn,lights:hn}=yM(rn.world,rn.assets,Zu(_N),[SM[0],SM[1],SM[2]],rn.night);rn.world.set(mn,{rotation:id(pn.heading,pn.pitch)}),rn.traffic.push({root:mn,lean:fn,lights:hn,s:an,d:dn,lane:dn,laneIndex:un,weave:sa(0.1,0.35),weaveSpeed:sa(0.6,1.2),phase:sa(0,Math.PI*2),shove:0,vshove:0,passed:!1,crashed:!1,bumped:!1,bumpCooldown:0,closest:1/0,wasAhead:nn,touching:!1,headOn:!1})}function Zvt(rn){let nn=[1/0,1/0,1/0];for(let ln of rn.traffic){if(ln.crashed)continue;let cn=ln.s-rn.s;if(cn>-4)nn[ln.laneIndex]=Math.min(nn[ln.laneIndex],cn)}let an=0;for(let ln=1;ln<3;ln++)if(Math.abs(yl[ln]-rn.d)<Math.abs(yl[an]-rn.d))an=ln;let sn=an;if(nn[an]<40){for(let ln of[an-1,an+1])if(ln>=0&&ln<3&&nn[ln]>nn[sn]+6)sn=ln}rn.target=yl[sn]}var zvt=0.38,Che=1.1,qvt,Yvt,Qu,ey,Kvt,IN,$vt,SM;var khe=e(()=>{l();Je();AN();MN();CN();fN();G();vt();qvt=[0,0,0],Yvt=[0,0,0,1],Qu=[0,0,0],ey=lu(),Kvt=lu();IN={volume:0.3,loop:!0,pitch:1.45};$vt=lu(),SM=[0,0,0]});var qo={};n(qo,{BikeRacing:()=>xt,preloadBikeRacing:()=>Tt});import Qvt,{useCallback as Fp,useEffect as ty,useRef as _M,useState as Hp}from"react";import{haptics as Jvt}from"@nayan-ui/engine";import{jsx as vM}from"react/jsx-runtime";var eTt=1200,Bhe,xt;var j=e(()=>{_();a();_a();o();O();P();xf();G();khe();G();Bhe=Qvt.memo(({assets:rn,night:nn,onRestart:an,settings:sn,onSettingsChange:ln,onEndGame:cn,onReplayGame:un,onShare:dn,onShareScreenshot:pn,onShowLeaderboard:mn,bannerAd:fn})=>{let hn=_M(nn),bn=hc(()=>whe(rn,hn.current),(Xn)=>()=>{if(Xn.phase==="playing")Nn("cancel");Phe(Xn)});ty(()=>{Ihe(bn,nn)},[bn,nn]);let yn=_M(1),[En,Sn]=Hp("ready"),[_n,vn]=Hp(!1),[Tn,Rn]=Hp(0),[An,Mn]=Hp(Yb),[Cn,Ln]=Hp(xs),On=_M(!1),Dn=_M(cn);Dn.current=cn;let Nn=Fp((Xn)=>{if(!Dn.current||On.current)return;On.current=!0,Dn.current({status:Xn,score:bn.score.toString()})},[bn]);ty(()=>{Jvt.enabled=sn.enableHaptics},[sn.enableHaptics]),ty(()=>{bn.onPhase=Sn,bn.onLives=Mn,bn.onDistance=Ln,bn.onScore=Rn},[bn]),ty(()=>{if(En!=="over")return;Nn(bn.lives>0?"win":"lose");let Xn=setTimeout(()=>vn(!0),eTt);return()=>clearTimeout(Xn)},[En,bn,Nn]),ty(()=>{if(!au||En==="playing")return;let Xn=setTimeout(En==="ready"?()=>PN(bn):an,En==="ready"?1500:3000);return()=>clearTimeout(Xn)},[En,bn,an]);let Wn=Fp((Xn)=>Lhe(bn,Xn),[bn]),Fn=Fp((Xn)=>Nhe(bn,Xn),[bn]),qn=Fp(({phase:Xn,dx:La})=>Ohe(bn,Xn,La,2*ds/(Hf*yn.current)),[bn]),Kn=Fp(()=>{On.current=!1,PN(bn)},[bn]),ea=Fp(()=>{Nn("cancel"),an()},[Nn,an]),Yn=Fp(()=>{un?.(),an()},[un,an]),ia=An>0;return vM(Un,{onAudioChange:Wn,gameId:"bike-racing",settings:sn,onSettingsChange:ln,onShare:pn??dn,onShowLeaderboard:mn,bannerAd:fn,source:bn.world,feedback:bn.hudFeedback,camera:bn.camera,light:nn?zf:Vf,background:nn?Uf:Wf,fog:0.0075,onUpdate:Fn,onDrag:qn,onResize:(Xn)=>{yn.current=Xn},columns:[Qn(Tn),ys(An,Yb),ma("TRACK",`${Cn} m`)],playing:En==="playing",subtext:"Dodge traffic to score!",onStart:Kn,onStop:ea,gameOver:_n?{title:ia?"FINISHED!":"CRASHED!",message:ia?"You crossed the finish line! Great riding!":`Out of lives ${xs-Cn} m into the ${xs} m race.`,scoreLabel:"Final Score",score:Tn,buttonText:"Race Again!",onPlayAgain:Yn,onShare:pn}:null})});Bhe.displayName="BikeRacingRun";xt=Vn("bike-racing",(rn)=>{let nn=rn.settings,an=m(nn.theme),[sn,ln]=Hp(0),[cn,un]=Hp(TN),[dn,pn]=Hp(null);ty(()=>{if(cn)return;let hn=!0;return v_().then((bn)=>hn&&un(bn)).catch((bn)=>hn&&pn(bn.message)),()=>{hn=!1}},[cn]);let mn=Fp(()=>ln((hn)=>hn+1),[]),fn=an.isDark;return vM(y,{ready:!!cn,loader:vM(b,{gameId:"bike-racing",theme:nn.theme,offset:nn.offset,error:!!dn,message:dn??void 0}),children:cn&&vM(Bhe,{...rn,settings:nn,assets:cn,night:fn,onRestart:mn},sn)})})});function zhe(rn,nn,an){let sn=an?56:44,ln=an?68:50,cn=an?96:68,un=an?16:12,dn=an?16:12,pn=Math.round(rn*0.18),mn=rn-dn-un-cn*1.5-pn;return{width:rn,height:nn,blockSize:sn,pillarMinWidth:ln,pillarMaxWidth:cn,pillarTopMin:Math.round(nn*0.44),pillarTopMax:Math.round(nn*0.68),pillarDepth:un,gapMin:Math.round(Math.min(rn*0.3,mn*0.9)),gapMax:Math.round(mn),gapGrowthPerScore:an?1:0.8,gapGrowthMax:an?60:36,widthShrinkPerScore:an?0.7:0.5,widthShrinkMax:an?28:18,viewportMargin:dn,anchorX:pn,maxLaunchSpeed:an?26:22,sweetSpotWidth:sn,fallThresholdY:nn+120}}var Wp=120,gN=1000,Fhe=500,Hhe=4,Whe=0.25,DN=0.62,NN=0.16,TM=6,GN=16.666666666666668,Uhe=2,Vhe=34,xM=16,kN=3,g_,RM=2,Ju,BN,D_,AM=0.3,N_=0.42,qhe;var G_=e(()=>{Hn();g_=["#FF6B6B","#4ECDC4","#FFD93D","#6BCB77","#4D96FF","#FF6FB5","#A66CFF","#FF9F45"],Ju={PILLAR:"#537A8D",PILLAR_TOP:"#84AFC0",PILLAR_EDGE:"#CDEBF5",PILLAR_BAND:"#365463",ROCK:"#7C8A93",GRASS:"#5DAE4A",GRASS_DARK:"#3E8A35",MOSS:"#4A7A3A",SWEET_RECESS:"#0C1B22",SWEET_SPOT:"#FFDD22",TRAJECTORY:"#64D2FF",SKIN:"#F5C99A",PUPIL:"#2C2C2C",SMILE:"#C0785A",PERFECT:"#FFD700"},BN={classic:{stops:["#05040F","#0C0A22","#150F35","#1E1548","#140D31","#070413"],stars:!0,tower:"#2A2150"},dark:{stops:["#17122B","#1C1634","#241D40","#3D3659","#2A2442","#17122B"],stars:!0,tower:"#3A3062"},light:{stops:["#C0B9DB","#C8C2E0","#E2DFF0","#EEECF7","#E2DFF0","#C8C2E0"],stars:!1,tower:"#A99FCB"}},D_=[0,0.16,0.36,0.55,0.78,1],qhe=Zn([-0.45,0.7,0.6],0.5)});function Yhe(rn,nn,an){let sn=Math.max(nn*NN,0),ln=Math.min(an*NN,-3),cn=Math.sqrt(sn*sn+ln*ln);if(cn<1)return null;if(cn<TM){let un=TM/cn;sn*=un,ln*=un,cn=TM}if(cn>rn.maxLaunchSpeed){let un=rn.maxLaunchSpeed/cn;sn*=un,ln*=un}return{vx:sn,vy:ln}}function Khe(rn,nn,an,sn,ln){let cn=rn.blockSize/2;for(let un=0;un<nn.length;un++){let dn=nn[un];if(!(sn+cn<=dn.topY&&ln+cn>=dn.topY))continue;if(Math.abs(an-dn.worldX)<=dn.width/2+cn*0.4)return un}return-1}function Xhe(rn,nn,an){let sn=nn.y;if(nn.vy+=DN,nn.x+=nn.vx,nn.y+=nn.vy,nn.vy>0){let ln=Khe(rn,an,nn.x,sn,nn.y);if(ln>=0)return nn.y=an[ln].topY-rn.blockSize/2,{landed:ln,fell:!1}}return{landed:-1,fell:nn.y>rn.fallThresholdY}}function $he(rn,nn,an,sn,ln){let cn=[],un=an,dn=sn,pn=nn.vy;for(let mn=0;mn<xM*kN;mn++){let fn=dn;if(pn+=DN,un+=nn.vx,dn+=pn,pn>0){let hn=Khe(rn,ln,un,fn,dn);if(hn>=0){cn.push(un,ln[hn].topY-rn.blockSize/2);break}}if(mn%kN===0)cn.push(un,dn);if(dn>rn.fallThresholdY)break}return cn}function Zhe(rn,nn,an,sn){let ln=rn.pillarTopMin+Math.random()*(rn.pillarTopMax-rn.pillarTopMin),cn={id:`pillar-${nn.seq}`,worldX:an,topY:Math.round(ln),width:Math.round(sn),colorIndex:nn.seq%8};return nn.seq++,cn}function tTt(rn,nn){let an=nn.pillars[nn.pillars.length-1],sn=Math.min(nn.landed*rn.widthShrinkPerScore,rn.widthShrinkMax),ln=Math.max(rn.pillarMinWidth,rn.pillarMaxWidth-sn),cn=rn.pillarMinWidth+Math.random()*(ln-rn.pillarMinWidth),un=Math.min(nn.landed*rn.gapGrowthPerScore,rn.gapGrowthMax),dn=rn.gapMin+un+Math.random()*(rn.gapMax-rn.gapMin),pn=rn.width-rn.viewportMargin-rn.pillarDepth-cn-(rn.anchorX+an.width/2),mn=Math.max(rn.gapMin,Math.min(dn,pn));nn.pillars.push(Zhe(rn,nn,an.worldX+an.width/2+mn+cn/2,cn))}function Qhe(rn,nn){while(nn.pillars.length-1-nn.current<Hhe)tTt(rn,nn)}function Jhe(rn){let nn={pillars:[],current:0,landed:0,seq:0};return nn.pillars.push(Zhe(rn,nn,rn.anchorX,rn.pillarMaxWidth)),Qhe(rn,nn),nn}function e1e(rn,nn,an){nn.current=an,nn.landed++,Qhe(rn,nn);let sn=Math.max(0,nn.current-1);if(sn>0)nn.pillars.splice(0,sn),nn.current-=sn}function t1e(rn,nn,an,sn){let ln=Math.abs(an-nn.worldX)<=rn.sweetSpotWidth/2;if(!ln)return{perfect:ln,points:gN,combo:0};let cn=sn+1;return{perfect:ln,points:gN+Fhe+(cn-1)*5,combo:cn}}var jhe=(rn)=>Math.max(-0.35,Math.min(0.35,rn*0.025)),FN=(rn)=>rn.pillars.slice(rn.current+1);var o1e=e(()=>{G_()});import{effects as r1e,extrude as a1e,merge as B_,Path as s1e,quat as CM,recolor as oTt,shapeGeometry as Ns,tube as MM}from"@nayan-ui/engine";function UN(rn){if(rn.mode==="classic")return BN.classic;let nn=BN[rn.isDark?"dark":"light"],an=nn.stops[0]===nn.stops[nn.stops.length-1]?nn.stops[0]:null;return{...nn,stops:nn.stops.map((sn)=>sn===an?rn.BACKGROUND:sn)}}function dTt(rn,nn,an){let ln=nn.height+400-an.topY,cn=an.width*0.85,un=rn.spawn({mesh:"none",position:Zf(an.worldX,an.topY),pickable:!1}),dn=(pn)=>rn.spawn({parent:un,pickable:!1,...pn});return dn({mesh:i1e(),position:[0,-3,0],scale:[an.width,ln,cn],color:xn(Ju.ROCK)}),dn({mesh:cTt(),position:[0,-5,0],scale:[an.width,6,cn],color:[1,1,1,1]}),dn({mesh:"roundedBox",position:[0,1.2,0],scale:[nn.sweetSpotWidth+8,1.2,cn*0.62],color:xn(Ju.SWEET_RECESS)}),dn({mesh:"roundedBox",position:[0,1.8,0],scale:[nn.sweetSpotWidth,1,cn*0.42],color:[1.5,1.3,0.25,1]}),{root:un}}function l1e(rn,nn,an,sn,ln,cn){let un=UN(an),dn=rn.spawn({mesh:aTt(un),scale:[nn.width*2.4,nn.height*1.8,1],pickable:!1});if(un.stars){let yn=7,En=()=>{let Sn=Math.sin(yn++*12.9898)*43758.5453;return Sn-Math.floor(Sn)};for(let Sn=0;Sn<48;Sn++){let _n=0.4+En()*0.9;rn.spawn({mesh:"sphere",parent:dn,position:[(En()-0.5)*0.9,(0.4-En()*0.64)/1.8,0.5],scale:[(1.2+En()*2.4)/(nn.width*2.4),(1.2+En()*2.4)/(nn.height*1.8),0.01],color:[1.4*_n,1.3*_n,1.6*_n,1],pickable:!1})}}let pn=[],mn=xn(un.tower);for(let yn=0;yn<10;yn++){let En=yn/10*nn.width*1.8-nn.width*0.2,Sn=nn.height*(0.3+yn*37%11*0.025),_n=22+yn*53%20,vn=nn.height*1.3-Sn,Tn=yn%2===0,Rn=Tn?1:0.85,An=rn.spawn({mesh:i1e(),position:[En,-Sn,-k_*(Tn?1:0.7)],scale:[_n,vn,_n],color:[mn[0]*Rn,mn[1]*Rn,mn[2]*Rn,1],pickable:!1});pn.push({entity:An,x:En,y:-Sn,z:-k_*(Tn?1:0.7)})}let fn=un.stars?[0.55,0.52,0.75,0.35]:[1,1,1,0.85];for(let yn=0;yn<6;yn++){let En=yn/6*nn.width*1.8-nn.width*0.2,Sn=nn.height*(0.1+yn*29%7*0.04),_n=60+yn*41%50,vn=rn.spawn({mesh:uTt(),position:[En,-Sn,-k_*0.4],scale:[_n,_n*0.6,_n*0.5],color:fn,pickable:!1});pn.push({entity:vn,x:En,y:-Sn,z:-k_*0.4})}let hn={sky:dn,towers:pn,pillars:new Map,block:rn.spawn({mesh:"none",position:Zf(ln[0],ln[1]),pickable:!1}),figure:0,body:0,dots:[],ring:rn.spawn({mesh:lTt(),rotation:rTt,scale:0,color:[1.6,1.4,0.3,0],pickable:!1})};hn.figure=rn.spawn({mesh:"none",parent:hn.block,position:[0,-nn.blockSize/2,0],scale:nn.blockSize,pickable:!1}),hn.body=rn.spawn({mesh:sTt(),parent:hn.figure,color:xn(g_[cn]),pickable:!1}),rn.spawn({mesh:iTt(),parent:hn.figure,pickable:!1});let bn=xn(Ju.TRAJECTORY);for(let yn=0;yn<=xM;yn++)hn.dots.push(rn.spawn({mesh:"sphere",scale:0,color:[bn[0]*1.4,bn[1]*1.4,bn[2]*1.4,0.92],pickable:!1}));return VN(rn,nn,hn,sn),hn}function c1e(rn,nn){for(let an of[nn.sky,...nn.towers.map((sn)=>sn.entity),...Array.from(nn.pillars.values(),(sn)=>sn.root),nn.block,...nn.dots,nn.ring])rn.despawn(an)}function VN(rn,nn,an,sn){let ln=new Set(sn.map((cn)=>cn.id));for(let[cn,un]of an.pillars)if(!ln.has(cn))rn.despawn(un.root),an.pillars.delete(cn);for(let cn of sn)if(!an.pillars.has(cn.id))an.pillars.set(cn.id,dTt(rn,nn,cn))}function zN(rn,nn,an,sn,ln){if(an.frameX===ln&&an.frameWidth===nn.width&&an.frameHeight===nn.height)return;an.frameX=ln,an.frameWidth=nn.width,an.frameHeight=nn.height;let cn=rn.transforms,un=ln+nn.width/2,dn=-nn.height/2,pn=Math.cos(AM);sn.target=[un,dn,0],sn.eye=[un+Math.sin(N_)*pn*HN,dn+Math.sin(AM)*HN,Math.cos(N_)*pn*HN],sn.ortho=nn.height/2,cn.position(an.sky,un-Math.sin(N_)*WN,dn+nn.height*0.1-Math.sin(AM)*WN,-WN);for(let mn of an.towers){let fn=nn.width*1.8,hn=mn.x+ln*0.9;hn=ln-nn.width*0.2+((hn-ln+nn.width*0.2)%fn+fn)%fn,cn.position(mn.entity,hn-Math.sin(N_)*k_*0.6,mn.y,mn.z)}cn.flush()}function wM(rn,nn,an,sn,ln){rn.set(nn.block,{position:Zf(an,sn),rotation:CM.z(-ln)})}function qN(rn,nn,an,sn){let ln=nn.blockSize;rn.set(an.figure,{scale:[ln*(1-sn*0.6),ln*(1+sn),ln*(1-sn*0.6)]})}function u1e(rn,nn,an){rn.animate(an.figure,[{scale:oy(nn,0.14),at:0.26},{scale:oy(nn,0)}],{duration:0.35,easing:"easeInOut"})}function d1e(rn,nn,an){rn.animate(an.figure,{scale:oy(nn,0)},{duration:0.16,easing:"easeOut"})}function p1e(rn,nn,an,sn,ln,cn,un){if(rn.animate(an.block,{rotation:[0,0,0,1]},{duration:0.22,easing:"easeOut"}),rn.animate(an.figure,[{scale:oy(nn,-0.2),at:0.2},{scale:oy(nn,0)}],{duration:0.36,easing:"back"}),rn.set(an.body,{color:xn(g_[un])}),r1e.dust(rn,{position:Zf(sn,ln,6),count:10,size:nn.blockSize*0.22,speed:nn.blockSize*1.6,lifetime:0.48,direction:[0,1,0],spread:1.3,color:[0.85,0.9,0.95,0.6],endSize:1.8}),cn)rn.stopAnimation(an.ring),rn.set(an.ring,{position:Zf(sn,ln-1.5),scale:nn.blockSize*0.4,color:[1.6,1.4,0.3,0.9]}),rn.animate(an.ring,{scale:nn.blockSize*2.6,color:[1.6,1.4,0.3,0]},{duration:0.56,easing:"easeOut"}),r1e.sparkle(rn,{position:Zf(sn,ln-4,6),count:20,size:nn.blockSize*0.08,speed:nn.blockSize*3,lifetime:0.6,gravity:-nn.blockSize*4,colors:[[1,0.83,0.17,1],[1,1,1,1]]})}function m1e(rn,nn,an,sn){let ln=xn(g_[sn]);rn.animate(nn.block,{rotation:CM.z(-(an+1.6))},{duration:0.42,easing:"easeIn"}),rn.animate(nn.body,{color:[ln[0],ln[1],ln[2],0]},{duration:0.3}),rn.animate(nn.figure,{scale:0.01},{duration:0.3,delay:0.1,easing:"easeIn"})}function f1e(rn,nn,an,sn){for(let ln of[an.block,an.figure,an.body,an.ring])rn.stopAnimation(ln);rn.set(an.block,{rotation:[0,0,0,1]}),rn.set(an.figure,{scale:oy(nn,0)}),rn.set(an.body,{color:xn(g_[sn])}),rn.set(an.ring,{scale:0})}function YN(rn,nn,an,sn){let ln=sn.length/2;for(let cn=0;cn<an.dots.length;cn++)if(cn<ln){let un=nn.blockSize*(0.16-0.08*cn/Math.max(1,ln));rn.set(an.dots[cn],{position:Zf(sn[cn*2],sn[cn*2+1],4),scale:un})}else rn.set(an.dots[cn],{scale:0})}var n1e,Qf=(rn,nn)=>{let an=n1e.get(rn);if(!an)an=Bn("bluk/BlukScene:"+rn,nn),n1e.set(rn,an);return an},HN=300,WN=220,k_=150,rTt,nTt=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},aTt=(rn)=>Qf(`bluk-sky:${rn.stops.join(",")}`,()=>{let nn=rn.stops.map(nTt),an=oTt(a1e(new s1e().addRect(-0.5,-0.5,1,1),{depth:0}),({position:sn})=>{let ln=Math.min(1,Math.max(0,0.5-sn[1])),cn=0;while(cn<D_.length-2&&ln>D_[cn+1])cn++;let un=D_[cn],dn=D_[cn+1],pn=(ln-un)/(dn-un||1),mn=nn[cn],fn=nn[cn+1];return[mn[0]+(fn[0]-mn[0])*pn,mn[1]+(fn[1]-mn[1])*pn,mn[2]+(fn[2]-mn[2])*pn,1]});return wn(an,{center:!1})}),sTt=()=>Qf("bluk-body-v2",()=>{let rn=(nn)=>({geometry:MM([[nn*0.13,0.68,0],[nn*0.19,0.6,0.01]],{radius:0.055,sides:12,caps:!0})});return wn(B_([{geometry:MM([[0,0.42,0],[0,0.56,0],[0,0.7,0]],{radius:(nn)=>0.1+0.035*Math.sin(Math.PI*Math.min(1,nn*1.3)),sides:18,caps:!0}),scale:[1.25,1,0.85]},rn(-1),rn(1)]),{center:!1,shine:0.3})}),iTt=()=>Qf("bluk-head-v2",()=>{let rn=xn(Ju.SKIN),nn=[0.2,0.26,0.42,1],an=[0.16,0.12,0.1,1],sn=[0.24,0.15,0.09,1],ln=(dn,pn,mn,fn)=>({geometry:MM([dn,pn],{radius:mn,sides:12,caps:!0}),color:fn}),cn=Array.from({length:9},(dn,pn)=>{let mn=Math.PI*1.2+Math.PI*0.6*pn/8;return[Math.cos(mn)*0.05,0.835+Math.sin(mn)*0.035,0.15]}),un=[ln([-0.055,0.44,0],[-0.065,0.07,0.01],0.05,nn),ln([0.055,0.44,0],[0.065,0.07,0.01],0.05,nn),{geometry:Ns("roundedBox"),position:[0,0.43,0],scale:[0.25,0.04,0.2],color:[0.18,0.14,0.12,1]},{geometry:Ns("roundedBox"),position:[-0.068,0.035,0.03],scale:[0.09,0.07,0.16],color:an},{geometry:Ns("roundedBox"),position:[0.068,0.035,0.03],scale:[0.09,0.07,0.16],color:an},ln([-0.19,0.6,0.01],[-0.22,0.47,0.03],0.04,rn),ln([0.19,0.6,0.01],[0.22,0.47,0.03],0.04,rn),{geometry:Ns("sphere"),position:[-0.225,0.45,0.035],scale:0.075,color:rn},{geometry:Ns("sphere"),position:[0.225,0.45,0.035],scale:0.075,color:rn},ln([0,0.7,0],[0,0.76,0],0.04,rn),{geometry:Ns("sphere"),position:[0,0.86,0],scale:[0.27,0.3,0.27],color:rn},{geometry:Ns("sphere"),position:[-0.135,0.86,0],scale:[0.05,0.08,0.05],color:rn},{geometry:Ns("sphere"),position:[0.135,0.86,0],scale:[0.05,0.08,0.05],color:rn},{geometry:Ns("sphere"),position:[0,0.855,0.135],scale:[0.04,0.05,0.04],color:[rn[0]*0.92,rn[1]*0.86,rn[2]*0.82,1]},{geometry:Ns("sphere"),position:[0,0.92,-0.015],scale:[0.29,0.22,0.29],color:sn},{geometry:Ns("roundedBox"),position:[0.02,0.965,0.11],scale:[0.2,0.05,0.06],color:sn},...[-1,1].flatMap((dn)=>[{geometry:Ns("sphere"),position:[dn*0.05,0.885,0.118],scale:[0.055,0.06,0.03],color:[1,1,1,1]},{geometry:Ns("sphere"),position:[dn*0.05,0.882,0.13],scale:[0.034,0.038,0.015],color:[0.27,0.45,0.62,1]},{geometry:Ns("sphere"),position:[dn*0.05,0.882,0.137],scale:[0.018,0.02,0.01],color:xn(Ju.PUPIL)},{geometry:Ns("sphere"),position:[dn*0.05+0.008,0.89,0.142],scale:0.008,color:[1.4,1.4,1.4,1]},{geometry:Ns("roundedBox"),position:[dn*0.05,0.925,0.125],rotation:CM.z(dn*-0.15),scale:[0.05,0.011,0.012],color:sn}]),{geometry:MM(cn,{radius:0.007,sides:6,caps:!0}),color:xn(Ju.SMILE)}];return wn(B_(un),{center:!1,shine:0.25})}),lTt=()=>Qf("bluk-ring",()=>wn(a1e(new s1e().addCircle(0,0,0.5).addCircle(0,0,0.42),{depth:0,fillRule:"evenodd"}),{center:!1})),i1e=()=>Qf("bluk-rock",()=>{let nn=[];for(let an=0;an<26;an++){let sn=-(an+0.5)/26,ln=(Oa(an*3.1,1.7)-0.5)*0.12,cn=(Oa(an*2.3,8.9)-0.5)*0.12,un=0.78+0.3*Oa(an*1.9,4.2);nn.push({geometry:Ns("roundedBox"),position:[ln*0.3,sn,cn*0.3],scale:[1+ln,0.03446153846153846,1+cn],color:[un,un,un,1]}),nn.push({geometry:Ns("cube"),position:[0,sn-0.019230769230769232,0],scale:[0.97,0.004,0.97],color:[0.45,0.45,0.45,1]})}return wn(B_(nn),{center:!1,shine:0.12})}),cTt=()=>Qf("bluk-cap",()=>{let rn=xn(Ju.GRASS),nn=xn(Ju.GRASS_DARK),an=xn(Ju.MOSS),sn=[{geometry:Ns("roundedBox"),position:[0,0.5,0],scale:[1.06,1,1.06],color:rn},{geometry:Ns("roundedBox"),position:[0,-0.1,0],scale:[1.02,0.4,1.02],color:an}];for(let ln=0;ln<9;ln++){let cn=-0.46+ln*0.115,un=0.5+0.9*Oa(ln*2.7,3.3);sn.push({geometry:Ns("roundedBox"),position:[cn,-un/2+0.1,0.5],scale:[0.09,un,0.06],color:ln%2?nn:rn})}for(let ln of[-1,1])for(let cn=0;cn<6;cn++){let un=-0.4+cn*0.16,dn=0.4+0.8*Oa(cn*3.9+ln,7.1);sn.push({geometry:Ns("roundedBox"),position:[ln*0.52,-dn/2+0.1,un],scale:[0.06,dn,0.1],color:cn%2?rn:nn})}return wn(B_(sn),{center:!1,shine:0.08})}),uTt=()=>Qf("bluk-cloud",()=>wn(B_([[0,0,0.5],[-0.28,-0.06,0.38],[0.3,-0.05,0.4],[-0.12,0.12,0.42],[0.14,0.14,0.36],[0.45,-0.1,0.26],[-0.48,-0.1,0.26]].map(([rn,nn,an])=>({geometry:Ns("sphere"),position:[rn,nn,0],scale:[an,an*0.75,an*0.6]}))),{center:!1,shine:0})),Zf=(rn,nn,an=0)=>[rn,-nn,an],oy=(rn,nn)=>[rn.blockSize*(1-nn*0.6),rn.blockSize*(1+nn),rn.blockSize*(1-nn*0.6)],F_=(rn,nn,an)=>YN(rn,nn,an,[]);var KN=e(()=>{d();na();Hn();G_();n1e=new Map,rTt=CM.x(-Math.PI/2)});import{World as pTt}from"@nayan-ui/engine";function h1e(rn){let nn=new pTt(mTt),sn={world:nn,camera:{eye:[0,0,300],target:[0,0,0],fov:1,ortho:1},theme:rn,config:null,scene:null,phase:"ready",course:null,block:"resting",flight:{x:0,y:0,vx:0,vy:0},targets:[],tilt:0,dirty:!1,get score(){return nn.scoreboard.score},combo:0,colorIndex:RM,won:!1,get timeLeft(){return nn.scoreboard.shownSeconds},camX:0,camMove:null,aiming:!1,pending:0,clock:0,onPhase:(ln)=>{},onScore:(ln)=>{},onCombo:(ln)=>{},onTime:(ln)=>{},hudFeedback:{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,Wp),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&sn.block!=="dead"&&T1e(sn,!0)},sn}function b1e(rn,nn){let an=!rn.config||rn.config.width!==nn.width||rn.config.height!==nn.height;if(rn.config=nn,!rn.course||an&&!rn.dirty&&rn.phase==="ready"){jN(rn);return}XN(rn)}function y1e(rn,nn){if(rn.theme=nn,rn.config&&rn.scene)XN(rn)}function XN(rn){let{config:nn,course:an}=rn;if(!nn||!an)return;if(rn.scene)c1e(rn.world,rn.scene);rn.scene=l1e(rn.world,nn,rn.theme,an.pillars,[rn.flight.x,rn.flight.y],rn.colorIndex),wM(rn.world,rn.scene,rn.flight.x,rn.flight.y,rn.tilt),zN(rn.world,nn,rn.scene,rn.camera,rn.camX)}function jN(rn){let nn=rn.config;if(!nn)return;rn.course=Jhe(nn);let an=rn.course.pillars[0];if(rn.flight={x:an.worldX,y:an.topY-nn.blockSize/2,vx:0,vy:0},rn.block="resting",rn.tilt=0,rn.dirty=!1,rn.colorIndex=RM,rn.camX=0,rn.camMove=null,rn.pending=0,rn.world.cancelTimers(),XN(rn),rn.scene)f1e(rn.world,nn,rn.scene,rn.colorIndex)}function E1e(rn){if(rn.phase==="playing"||!rn.config)return;if(rn.dirty||rn.phase==="over")jN(rn);rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(Wp),rn.combo=0,rn.won=!1,rn.colorIndex=RM,rn.phase="playing",rn.onScore(0),rn.onCombo(0),rn.onTime(Wp),rn.hudFeedback.message=void 0,rn.onPhase("playing")}function S1e(rn){rn.world.scoreboard.reset(0,Wp),rn.combo=0,rn.won=!1,rn.phase="ready",jN(rn),rn.onScore(0),rn.onCombo(0),rn.onTime(Wp),rn.hudFeedback.message=void 0,rn.onPhase("ready")}function _1e(rn){rn.world.dispose()}function v1e(rn,nn){if(rn.world.isDisposed)return;if(rn.clock+=Math.min(nn,0.25),rn.phase==="playing"&&rn.block==="flying"){let sn=Math.min(rn.pending+nn*1000,Vhe);while(rn.block==="flying"&&sn>=GN-Uhe)sn-=GN,hTt(rn);if(rn.pending=sn,rn.block==="flying"&&rn.scene)wM(rn.world,rn.scene,rn.flight.x,rn.flight.y,rn.tilt)}let an=rn.camMove;if(an){let sn=Math.min(1,(rn.clock-an.at)/fTt);if(rn.camX=an.from+(an.to-an.from)*(1-(1-sn)**3),sn>=1)rn.camMove=null}if(rn.config&&rn.scene)zN(rn.world,rn.config,rn.scene,rn.camera,rn.camX);rn.world.update(nn)}function T1e(rn,nn){if(rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.config&&rn.scene)F_(rn.world,rn.config,rn.scene);rn.onPhase("over")}function hTt(rn){let{config:nn,course:an}=rn,{landed:sn,fell:ln}=Xhe(nn,rn.flight,rn.targets);if(rn.tilt=jhe(rn.flight.vy),sn>=0)return bTt(rn,an.current+1+sn);if(ln){if(rn.block="dead",rn.world.scoreboard.stop(),rn.scene)m1e(rn.world,rn.scene,rn.tilt,rn.colorIndex);rn.onEvent("fall"),rn.world.after(Whe,()=>{if(rn.phase!=="playing")return;rn.onEvent("gameOver"),T1e(rn,!1)})}}function bTt(rn,nn){let{config:an,course:sn}=rn,ln=sn.pillars[nn],cn=rn.flight.x,{perfect:un,points:dn,combo:pn}=t1e(an,ln,cn,rn.combo),mn=rn.tilt;rn.block="resting",rn.flight.vx=0,rn.flight.vy=0,rn.tilt=0,rn.world.scoreboard.add(dn),rn.combo=pn,rn.colorIndex=ln.colorIndex,e1e(an,sn,nn);let{scene:fn}=rn;if(fn)wM(rn.world,fn,cn,rn.flight.y,mn),p1e(rn.world,an,fn,cn,ln.topY,un,rn.colorIndex),VN(rn.world,an,fn,sn.pillars);if(rn.camMove={from:rn.camX,to:ln.worldX-an.anchorX,at:rn.clock},rn.onScore(rn.score),rn.onCombo(rn.combo),un)rn.hudFeedback.message="PERFECT!",rn.onEvent("perfect");else rn.onEvent("land")}function R1e(rn,{phase:nn,dx:an,dy:sn,cancelled:ln}){let{config:cn,scene:un}=rn;if(!cn||!un)return;if(nn==="start"){rn.aiming=!1;return}if(!rn.aiming&&Math.hypot(an,sn)>=yTt)rn.aiming=!0;if(!rn.aiming)return;if(nn==="end")rn.aiming=!1;if(!x1e(rn)){F_(rn.world,cn,un);return}let dn=Yhe(cn,an,sn);if(nn==="move"){if(!dn){F_(rn.world,cn,un),qN(rn.world,cn,un,0);return}YN(rn.world,cn,un,$he(cn,dn,rn.flight.x,rn.flight.y,FN(rn.course))),qN(rn.world,cn,un,-0.16*Math.hypot(dn.vx,dn.vy)/cn.maxLaunchSpeed);return}if(F_(rn.world,cn,un),!dn||ln){d1e(rn.world,cn,un);return}ETt(rn,dn.vx,dn.vy)}function ETt(rn,nn,an){let sn=rn.config;if(!sn||!x1e(rn))return;if(rn.flight.vx=nn,rn.flight.vy=an,rn.targets=FN(rn.course),rn.block="flying",rn.dirty=!0,rn.pending=0,rn.scene)u1e(rn.world,sn,rn.scene);rn.onEvent("jump")}var mTt=600,fTt=0.3,yTt=10,x1e=(rn)=>rn.phase==="playing"&&rn.block==="resting"&&!!rn.config&&!!rn.course;var A1e=e(()=>{G_();o1e();KN()});var Yo={};n(Yo,{Bluk:()=>Rt});import{useMemo as STt}from"react";import{jsx as _Tt}from"react/jsx-runtime";var Up,M1e,Rt;var Z=e(()=>{Ta();l();a();_a();o();Hn();xa();va();G_();A1e();KN();Up=t.BLUK,M1e={jump:{sound:Up.JUMP,haptic:"light"},land:{sound:Up.LAND,haptic:"medium"},perfect:{sound:Up.PERFECT,haptic:"success"},fall:{sound:Up.FALL,haptic:"error"},gameOver:{sound:Up.GAME_OVER,haptic:"error"}},Rt=Vn("bluk",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(Wp),{theme:cn,status:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"bluk",create:h1e,start:E1e,reset:S1e,dispose:_1e,tick:v1e,setTheme:y1e,resize:(bn,yn,En)=>b1e(bn,zhe(yn,En,c)),drag:R1e,sounds:Up,onStart:(bn)=>bn(Up.START,"success"),onStop:(bn)=>bn(null,"medium"),onOver:(bn,yn)=>{if(yn==="win")bn(Up.WIN,"success")},wire:(bn,yn)=>{bn.onScore=an,bn.onTime=ln,bn.onEvent=(En)=>yn(M1e[En].sound,M1e[En].haptic)}}),fn=UN(cn).stops[0],hn=STt(()=>ws(fn),[fn]);return _Tt(Un,{...dn,light:qhe,background:hn,columns:[Qn(nn),ta(sn,cn)],subtext:"Drag, release and jump!",gameOver:pn({title:un==="win"?"YOU WIN!":"GAME OVER",message:un==="win"?"You survived 2 minutes!":"Nice jumping!",scoreLabel:"Final Score",score:nn,buttonText:"Jump Again!"})})})});var Ko={};n(Ko,{backgroundFor:()=>ZN,lightFor:()=>U_,removeBackdrop:()=>JN,spawnBackdrop:()=>QN,warmAssets:()=>MTt});function zp(rn,nn){let an=Math.floor(rn),sn=Math.floor(nn),ln=cu(0,1,rn-an),cn=cu(0,1,nn-sn),un=LM(an,sn),dn=LM(an+1,sn),pn=LM(an,sn+1),mn=LM(an+1,sn+1);return un+(dn-un)*ln+(pn-un)*cn+(un-dn-pn+mn)*ln*cn}function H_(rn,nn){let an=-nn,sn=Math.sin(an*0.014)*12+Math.sin(an*0.027+1)*7,ln=1-Math.exp(-((Math.abs(rn-sn)/(48+an*0.14))**1.8)),cn=(W_(rn*0.014+9,nn*0.011)-0.5)*19,un=1-Math.abs(zp((rn+cn)*0.018,nn*0.014+13)*2-1),dn=1-Math.abs(zp(rn*0.047+5,nn*0.033)*2-1),pn=28+un**3*88+dn*12,mn=cu(210,405,an)*(20+W_(rn*0.022+30,nn*0.017)*46),fn=(W_(rn*0.11,nn*0.09)-0.5)*ln*5;return-44+ln*pn+mn+fn}function C1e(rn,nn,an,sn,ln){let cn=U_(an),un=$N(cn.direction),dn=cn.ambient*(0.6+0.4*(un[1]*0.5+0.5))+1-cn.ambient,pn=cn.color??[1,1,1],mn=new Float32Array((rn+1)*(nn+1)*11),fn=new Uint32Array(rn*nn*6),hn=0,bn=0;for(let yn=0;yn<=rn;yn++)for(let En=0;En<=nn;En++){let{position:Sn,color:_n}=ln(En/nn,yn/rn);if(mn.set([Sn[0],Sn[1],Sn[2],un[0],un[1],un[2],_n[0]/(dn*pn[0]),_n[1]/(dn*pn[1]),_n[2]/(dn*pn[2]),0,0],hn),hn+=11,yn===rn||En===nn)continue;let vn=yn*(nn+1)+En,Tn=vn+nn+1;fn.set(sn?[vn,vn+1,Tn,vn+1,Tn+1,Tn]:[vn,Tn,vn+1,vn+1,Tn,Tn+1],bn),bn+=6}return{vertices:mn,indices:fn}}function w1e(rn){return Bn("chameleon-run/ChameleonRunBackdrop:skyMesh"+JSON.stringify([rn]),()=>RTt(rn))}function RTt(rn){let nn=`sky-${rn.mode==="dark"?"night":"day"}`,an=IM.get(nn);if(an)return an;let sn=rn.mode==="dark",ln=sn?[0.12,0.17,0.24]:[0.76,0.82,0.85],cn=sn?[0.018,0.035,0.075]:[0.25,0.43,0.65];return an=wn(C1e(48,96,rn,!1,(un,dn)=>{let pn=(un-0.5)*3.2,mn=0.95-dn*1.8,fn=Vp(ln,cn,cu(-0.04,0.82,mn)),hn=cu(0.08,0.23,mn)*(1-cu(0.56,0.76,mn)),bn=cu(0.52,0.82,W_(pn*2+mn*3,mn*33));fn=Vp(fn,sn?[0.22,0.28,0.36]:[0.91,0.92,0.91],bn*hn*0.5);let yn=Math.exp(-((pn+0.6)**2/0.5+(mn-0.18)**2/0.04));if(!sn)fn=Vp(fn,[0.93,0.87,0.73],yn*0.12);let En=430,Sn=En*Math.cos(mn);return{position:[Math.sin(pn)*Sn,Math.sin(mn)*En,-Math.cos(pn)*Sn],color:fn}}),{center:!1,shine:0}),IM.set(nn,an),an}function L1e(rn){return Bn("chameleon-run/ChameleonRunBackdrop:terrainMesh"+JSON.stringify([rn]),()=>ATt(rn))}function ATt(rn){let nn=`terrain-${rn.mode==="dark"?"night":"day"}`,an=IM.get(nn);if(an)return an;let sn=rn.mode==="dark",ln=U_(rn),cn=$N(ln.direction),un=ln.color??[1,1,1],dn=sn?[0.1,0.145,0.21]:[0.65,0.74,0.8];return an=wn(C1e(96,128,rn,!0,(pn,mn)=>{let fn=8+mn**1.3*400,hn=(pn-0.5)*2*(72+fn*0.95),bn=-fn,yn=H_(hn,bn),En=0.4,Sn=$N([-(H_(hn+0.4,bn)-H_(hn-0.4,bn))/0.8,1,-(H_(hn,bn+0.4)-H_(hn,bn-0.4))/0.8]),_n=1-Sn[1],vn=W_(hn*0.15,bn*0.13),Tn=Math.sin(yn*2.4+zp(hn*0.09,bn*0.07)*8)*0.5+0.5,Rn=Vp([0.34,0.36,0.35],[0.56,0.53,0.47],vn*0.7+Tn*0.15),An=(1-cu(0.15,0.55,_n))*(1-cu(10,45,yn));Rn=Vp(Rn,Vp([0.18,0.28,0.22],[0.38,0.43,0.28],zp(hn*0.23,bn*0.19)),An*0.8);let Mn=cu(34,67,yn+(vn-0.5)*12)*(1-cu(0.28,0.68,_n));Rn=Vp(Rn,[0.84,0.86,0.86],Mn);let Cn=Math.max(0,Sn[0]*cn[0]+Sn[1]*cn[1]+Sn[2]*cn[2]),Ln=ln.ambient*(0.6+0.4*(Sn[1]*0.5+0.5))+(1-ln.ambient)*Cn,On=[Rn[0]*Ln*un[0],Rn[1]*Ln*un[1],Rn[2]*Ln*un[2]];if(sn)On=[On[0]*0.31,On[1]*0.39,On[2]*0.55];let Dn=1-Math.exp(-((fn/280)**1.5));return On=Vp(On,dn,Dn*0.88),{position:[hn,yn,bn],color:On}}),{center:!1,shine:0}),IM.set(nn,an),an}function QN(rn,nn){let an=rn.spawn({mesh:"none",pickable:!1});return rn.spawn({mesh:w1e(nn),parent:an,position:[0,3.1,5.4],pickable:!1}),rn.spawn({mesh:L1e(nn),parent:an,pickable:!1}),{root:an,alive:!0}}function JN(rn,nn){if(!nn.alive)return;nn.alive=!1,rn.despawn(nn.root)}function*MTt(rn){yield()=>w1e(rn),yield()=>L1e(rn)}var vTt,TTt,U_=(rn)=>rn.mode==="dark"?TTt:vTt,ZN=(rn)=>rn.mode==="dark"?[0.055,0.085,0.13]:[0.63,0.73,0.81],IM,xTt=(rn,nn=0,an=1)=>Math.max(nn,Math.min(an,rn)),Vp=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an],cu=(rn,nn,an)=>{let sn=xTt((an-rn)/(nn-rn));return sn*sn*(3-2*sn)},$N=(rn)=>{let nn=Math.hypot(...rn)||1;return[rn[0]/nn,rn[1]/nn,rn[2]/nn]},LM=(rn,nn)=>{let an=Math.sin(rn*127.1+nn*311.7)*43758.5453;return an-Math.floor(an)},W_=(rn,nn)=>zp(rn,nn)*0.55+zp(rn*2.13+7,nn*2.13)*0.28+zp(rn*4.57,nn*4.57+11)*0.12+zp(rn*9.1,nn*9.1)*0.05;var et=e(()=>{na();vTt={direction:[-0.6,0.75,0.25],ambient:0.48,color:[1.04,1.02,1],shadows:!0,shadowExtent:28},TTt={direction:[-0.25,0.75,0.45],ambient:0.6,color:[0.78,0.86,1.05],shadows:!0,shadowExtent:28},IM=new Map});function F1e(rn,nn){return{width:rn,height:nn,trackWidth:3.8,lookAhead:85,gravity:19,jump:7.8,doubleJump:7,fallY:-7}}var ui=500,ld=3,I1e=2.2,O1e=1700,P1e=2600,g1e=1,D1e=18,OM=0.016666666666666666,eG=0.05,N1e=0.1,G1e=250,tG=2,k1e=0.12,V_=0.1,B1e=0.12,z_=7,e0,ry;var q_=e(()=>{e0={yellow:"#FFD447",pink:"#F653A6"};ry={STONE:"#496578",STONE_DARK:"#304556",NEUTRAL:"#D6E9EC",STAR:"#FFF09A",BELLY:"#FFF5DC",EYE:"#16243A",RIM:"#F5FCFF"}});function CTt(rn,nn){let an=rn.jump*rn.jump-2*rn.gravity*nn;return an<=0?0:z_*(rn.jump+Math.sqrt(an))/rn.gravity}function W1e(rn,nn){let an=nn.platforms[nn.platforms.length-1];while(an.end<Math.min(ui+18,nn.distance+rn.lookAhead)){let sn=nn.seq++,ln=Math.min(1,an.end/ui),cn=sn<4?0:(oG(sn+4+nn.seed)-0.5)*(0.35+ln*0.5),un=Math.max(-0.45,Math.min(0.9,an.height+cn)),dn=Math.min(1.7+oG(sn+1+nn.seed)*(0.6+ln*0.9),CTt(rn,un-an.height)-1.8),pn=an.end+dn,mn=pn+(sn<4?11:7.5+oG(sn+2+nn.seed)*4.5-ln),fn=H1e[(Math.floor(sn/6)+(sn<4?0:nn.seed))%H1e.length][sn%6]??null;if(mn>=ui-20)pn=Math.min(pn,ui-20),mn=ui+18,fn=null;nn.platforms.push({id:sn,start:pn,end:mn,height:un,color:fn,star:sn>1&&fn!==null,starCollected:!1}),an=nn.platforms[nn.platforms.length-1]}}function rG(rn,nn=Math.floor(Math.random()*1e9)){let an={seed:nn,platforms:[{id:0,start:-10,end:12,height:0,color:null,star:!1,starCollected:!1}],seq:1,distance:0,y:0,vy:0,onGround:!0,jumpsUsed:0,currentPlatformId:0,color:"yellow",coyote:V_,jumpBuffer:0,mismatchTime:0,score:0,stars:0,combo:0,bestCombo:0,lives:ld,invulnerable:0,failure:null,finished:!1};return W1e(rn,an),an}function U1e(rn){if(rn.failure||rn.finished)return;rn.color=rn.color==="yellow"?"pink":"yellow",rn.mismatchTime=0}function aG(rn,nn){if(nn.failure||nn.finished)return null;if(nn.jumpsUsed>=tG)return nn.jumpBuffer=k1e,null;let an=nn.onGround||nn.coyote>0&&nn.jumpsUsed===0;return nn.vy=an?rn.jump:rn.doubleJump,nn.jumpsUsed=an?1:tG,nn.onGround=!1,nn.coyote=0,nn.jumpBuffer=0,nn.mismatchTime=0,an?"jump":"double"}function V1e(rn,nn,an){let sn={landed:null,star:null,jumped:null,failure:null,hurt:null,won:!1};if(an<=0||nn.failure||nn.finished)return sn;let{distance:ln,y:cn}=nn;nn.jumpBuffer=Math.max(0,nn.jumpBuffer-an),nn.coyote=Math.max(0,nn.coyote-an),nn.invulnerable=Math.max(0,nn.invulnerable-an),nn.distance=Math.min(ui,nn.distance+z_*an);let un=ny(nn);if(nn.onGround&&!un)nn.onGround=!1,nn.coyote=V_,nn.vy=0;if(!nn.onGround){if(nn.vy-=rn.gravity*an,nn.y+=nn.vy*an,nn.vy<=0)for(let pn of nn.platforms){if(cn<pn.height||nn.y>pn.height)continue;let mn=(cn-pn.height)/Math.max(0.000001,cn-nn.y),fn=ln+(nn.distance-ln)*mn;if(fn<pn.start||fn>pn.end||nn.distance>pn.end)continue;nn.y=pn.height,nn.vy=0,nn.onGround=!0,nn.coyote=V_,nn.jumpsUsed=0,nn.currentPlatformId=pn.id,sn.landed=pn,un=pn;break}}if(nn.onGround&&un?.color&&un.color!==nn.color&&nn.invulnerable===0)nn.mismatchTime+=an;else nn.mismatchTime=0;if(sn.landed&&nn.jumpBuffer>0&&(!sn.landed.color||sn.landed.color===nn.color))sn.jumped=aG(rn,nn);for(let pn of nn.platforms){let mn=(pn.start+pn.end)/2;if(pn.star&&!pn.starCollected&&Math.abs(nn.distance-mn)<0.7&&Math.abs(nn.y+0.5-(pn.height+1.05))<0.95&&!nn.failure)pn.starCollected=!0,nn.stars++,nn.combo=Math.min(5,nn.combo+1),nn.bestCombo=Math.max(nn.bestCombo,nn.combo),nn.score+=G1e*nn.combo,sn.star=pn;if(pn.star&&!pn.starCollected&&ln<=mn+0.7&&nn.distance>mn+0.7)nn.combo=0}let dn=nn.y<rn.fallY?"fall":nn.mismatchTime>=B1e?"color":null;if(dn){if(nn.invulnerable===0)if(nn.lives=Math.max(0,nn.lives-1),nn.combo=0,nn.mismatchTime=0,nn.lives===0)nn.failure=dn;else nn.invulnerable=I1e,sn.hurt=dn;if(dn==="fall"&&!nn.failure)wTt(nn)}if(nn.failure)sn.failure=nn.failure;else if(nn.distance>=ui)nn.finished=!0,sn.won=!0;nn.score+=(Math.floor(nn.distance)-Math.floor(ln))*g1e,W1e(rn,nn);while(nn.platforms.length>1&&nn.platforms[0].end<nn.distance-18)nn.platforms.shift();return sn}function wTt(rn){let nn=ny(rn)??nG(rn);if(!nn)return;if(rn.distance=Math.min(ui,Math.max(rn.distance,nn.start+0.5)),rn.y=nn.height,rn.vy=0,rn.onGround=!0,rn.jumpsUsed=0,rn.jumpBuffer=0,rn.coyote=V_,rn.currentPlatformId=nn.id,nn.color)rn.color=nn.color}var H1e,oG=(rn)=>{let nn=Math.sin(rn*127.1+19.7)*43758.5453;return nn-Math.floor(nn)},ny=(rn,nn=rn.distance)=>rn.platforms.find((an)=>nn>=an.start&&nn<=an.end)??null,nG=(rn)=>rn.platforms.find((nn)=>nn.end>=rn.distance&&nn.id!==rn.currentPlatformId)??null;var sG=e(()=>{q_();H1e=[[null,"yellow","yellow","pink","pink",null],["yellow","pink","yellow","pink",null,"yellow"],["pink","pink","yellow",null,"pink","yellow"]]});var Xo={};n(Xo,{LIMBS:()=>cG,bodyMesh:()=>gM,detailsMesh:()=>DM,eyeDetailsMesh:()=>GM,eyeMesh:()=>NM,legMesh:()=>BM,starMesh:()=>FM,tailMesh:()=>kM,warmAssets:()=>gTt});import{ellipsoid as K1e,extrude as LTt,loft as X1e,merge as ay,Path as ITt,smoothCurve as OTt,tube as Jf}from"@nayan-ui/engine";function PM(rn,nn=!1){let an=rn.vertices;for(let sn=0;sn<an.length;sn+=11){let ln=an[sn],cn=an[sn+1],un=an[sn+2],dn=lG(Math.floor(ln*95),Math.floor(cn*95),Math.floor(un*95)),pn=lG(Math.floor(ln*24),Math.floor(cn*24),Math.floor(un*24)),mn=nn?Math.exp(-(Math.sin((ln+0.08)*12+cn*2.5)**2)/0.12):0,fn=PTt(0.94+pn*0.06+(dn-0.5)*0.025-mn*0.15,0.75,1);an[sn+6]=fn,an[sn+7]=fn*0.985,an[sn+8]=fn*0.94,an[sn+9]=0,an[sn+10]=0}return rn}function Y_(rn,nn=4,an=0.0065,sn=0.0012){let ln=[],cn=[];for(let un=0;un<rn.vertices.length;un+=11*nn){let dn=rn.vertices,pn=[dn[un],dn[un+1],dn[un+2]],mn=iG([dn[un+3],dn[un+4],dn[un+5]]),fn=iG(q1e(mn,Math.abs(mn[1])>0.9?[1,0,0]:[0,1,0])),hn=q1e(mn,fn),bn=an*(0.7+lG(...pn)*0.6),yn=ln.length/11,En=[dn[un+6]*1.025,dn[un+7]*1.025,dn[un+8]*1.025];ln.push(pn[0]+mn[0]*sn,pn[1]+mn[1]*sn,pn[2]+mn[2]*sn,...mn,...En,dn[un+9],dn[un+10]);for(let Sn=0;Sn<6;Sn++){let _n=Sn*Math.PI/3,vn=[0,1,2].map((Rn)=>(fn[Rn]*Math.cos(_n)+hn[Rn]*Math.sin(_n))*bn),Tn=iG([mn[0]+vn[0]/bn*0.22,mn[1]+vn[1]/bn*0.22,mn[2]+vn[2]/bn*0.22]);ln.push(pn[0]+vn[0],pn[1]+vn[1],pn[2]+vn[2],...Tn,En[0]*0.86,En[1]*0.86,En[2]*0.86,0,0),cn.push(yn,yn+1+Sn,yn+1+(Sn+1)%6)}}return{vertices:Float32Array.from(ln),indices:Uint32Array.from(cn)}}function Y1e(rn){let nn=X1e(rn,{around:36,smoothness:4});for(let an=0;an<nn.vertices.length;an+=11){let sn=nn.vertices[an],ln=nn.vertices[an+3];nn.vertices[an]=nn.vertices[an+2],nn.vertices[an+2]=-sn,nn.vertices[an+3]=nn.vertices[an+5],nn.vertices[an+5]=-ln}return PM(nn,!0)}function j1e(rn,nn,an){let sn=Math.abs(an);return{geometry:X1e([{z:-0.013,bottom:0,top:sn*0.15,width:sn*0.46,square:2},{z:0,bottom:0,top:sn,width:sn*0.36,topWidth:0.001,square:2},{z:0.013,bottom:0,top:sn*0.15,width:sn*0.46,square:2}],{around:10,smoothness:1,color:[0.66,0.68,0.62]}),position:[rn,nn,0],rotation:an<0?[0,0,1,0]:[0,0,0,1]}}function*gTt(){yield gM,yield DM,yield NM,yield GM,yield kM,yield FM;for(let rn of[-1,1])for(let nn of[!1,!0])yield()=>BM(rn,nn)}var z1e,eh=(rn,nn)=>{let an=z1e.get(rn);if(!an)an=Bn("chameleon-run/ChameleonRunMeshes:"+rn,nn),z1e.set(rn,an);return an},PTt=(rn,nn,an)=>Math.max(nn,Math.min(an,rn)),lG=(rn,nn,an)=>{let sn=Math.sin(rn*127.1+nn*311.7+an*74.7)*43758.5453;return sn-Math.floor(sn)},iG=(rn)=>{let nn=Math.hypot(...rn)||1;return[rn[0]/nn,rn[1]/nn,rn[2]/nn]},q1e=(rn,nn)=>[rn[1]*nn[2]-rn[2]*nn[1],rn[2]*nn[0]-rn[0]*nn[2],rn[0]*nn[1]-rn[1]*nn[0]],qp=(rn,nn,an=[1,1,1],sn=20)=>({geometry:K1e(nn,an,sn),position:rn}),gM=()=>eh("body-realistic",()=>{let rn=[{z:-0.54,bottom:-0.07,top:0.08,width:0.035,square:2},{z:-0.43,bottom:-0.17,top:0.2,width:0.105,square:2},{z:-0.22,bottom:-0.25,top:0.3,width:0.165,square:2},{z:0.02,bottom:-0.24,top:0.33,width:0.175,square:2},{z:0.21,bottom:-0.18,top:0.27,width:0.14,square:2},{z:0.36,bottom:-0.1,top:0.19,width:0.105,square:2},{z:0.44,bottom:-0.055,top:0.15,width:0.08,square:2}],nn=Y1e(rn),an=OTt(rn.map((cn)=>[cn.z,cn.top])),sn=Y1e([{z:0.29,bottom:-0.02,top:0.18,width:0.075,square:2.2},{z:0.36,bottom:-0.065,top:0.33,width:0.125,topWidth:0.035,square:2.2},{z:0.44,bottom:-0.075,top:0.59,width:0.14,topWidth:0.016,square:2.4},{z:0.5,bottom:-0.075,top:0.65,width:0.135,topWidth:0.014,square:2.4},{z:0.56,bottom:-0.07,top:0.39,width:0.14,topWidth:0.055,square:2.2},{z:0.66,bottom:-0.06,top:0.2,width:0.125,square:2},{z:0.78,bottom:-0.03,top:0.13,width:0.08,square:2},{z:0.835,bottom:0.005,top:0.08,width:0.015,square:2}]),ln=[{geometry:nn},{geometry:Y_(nn,3)},{geometry:sn},{geometry:Y_(sn,3,0.003,0.0008)}];for(let cn=0;cn<17;cn++){let un=-0.44+cn*0.044,dn=an(un)-0.014;ln.push(j1e(un,dn,0.033+Math.sin(cn/16*Math.PI)*0.022))}return wn(ay(ln),{center:!1,shine:0.14})}),DM=()=>eh("details-realistic",()=>{let rn=[qp([-0.01,-0.225,0],[0.31,0.038,0.12],[0.58,0.59,0.45],28),qp([0.46,-0.06,0],[0.15,0.035,0.075],[0.64,0.63,0.49])];for(let nn of[-1,1])rn.push({geometry:Jf([[0.4,-0.015,nn*0.123],[0.54,-0.016,nn*0.14],[0.69,0.002,nn*0.113],[0.815,0.026,nn*0.045]],{radius:0.0038,sides:5,smoothness:3,color:[0.18,0.2,0.14]})}),rn.push(qp([0.758,0.098,nn*0.074],[0.012,0.008,0.006],[0.13,0.16,0.11],12)),rn.push({geometry:Jf([[-0.41,-0.045,nn*0.108],[-0.22,-0.058,nn*0.163],[0.01,-0.045,nn*0.177],[0.19,-0.03,nn*0.14],[0.31,0.015,nn*0.113]],{radius:(an)=>0.004+Math.sin(an*Math.PI)*0.004,sides:5,smoothness:3,color:[0.77,0.76,0.6]})});for(let nn=0;nn<6;nn++)rn.push(j1e(0.35+nn*0.047,-0.062,-0.018));return wn(ay(rn),{center:!1,shine:0.12})}),NM=()=>eh("eye-lid-realistic",()=>{let rn=PM(K1e([0.086,0.086,0.074],void 0,32)),nn=[];for(let an=0;an<=24;an++){let sn=an/24*Math.PI*2;nn.push([Math.cos(sn)*0.027,Math.sin(sn)*0.027,0.071])}return wn(ay([{geometry:rn},{geometry:Y_(rn,3,0.0024,0.0006)},{geometry:Jf(nn,{radius:0.003,sides:5,smoothness:1,color:[0.62,0.65,0.56]})}]),{center:!1,shine:0.15})}),GM=()=>eh("eye-aperture-realistic",()=>wn(ay([qp([0,0,0.074],[0.025,0.025,0.006],[0.39,0.32,0.15],24),qp([0.002,0,0.08],[0.011,0.011,0.003],[0.025,0.035,0.02],24),qp([0.005,0.005,0.083],[0.003,0.003,0.001],[1.1,1.1,1.05],12)]),{center:!1,shine:0.5})),kM=()=>eh("tail-realistic",()=>{let rn=[[0,0,0],[-0.16,-0.015,0],[-0.29,0.03,0]];for(let an=0;an<=48;an++){let sn=an/48,ln=Math.PI/2+sn*Math.PI*2.5,cn=0.26*(1-sn*0.83);rn.push([-0.42+Math.cos(ln)*cn,-0.2+Math.sin(ln)*cn,0])}let nn=PM(Jf(rn,{radius:(an)=>0.068*(1-an)**1.15+0.008,sides:12,smoothness:2,caps:!0}),!0);return wn(ay([{geometry:nn},{geometry:Y_(nn,10,0.0025,0.0007)}]),{center:!1,shine:0.13})}),cG,BM=(rn,nn=!1)=>eh(`leg-realistic-${rn}-${nn}`,()=>{let an=[nn?0.12:-0.1,-0.16,rn*0.16],sn=[nn?-0.065:0.07,-0.36,rn*0.14],ln=PM(Jf([[0,0,0],an,sn],{radius:(un)=>0.054-un*0.03,sides:12,smoothness:5,caps:!0}),!1),cn=[{geometry:ln},{geometry:Y_(ln,5,0.0025,0.0007)},qp(an,[0.041,0.046,0.043],[0.84,0.85,0.78]),qp([sn[0],-0.374,sn[2]],[0.052,0.023,0.041],[0.87,0.88,0.8])];for(let un of[-1,1]){let dn=un===rn!==nn?2:3;for(let pn=0;pn<dn;pn++){let mn=(pn-(dn-1)/2)*0.019,fn=[sn[0]+0.047+mn,-0.385,sn[2]+un*0.048];cn.push({geometry:Jf([[sn[0],-0.37,sn[2]],[sn[0]+0.025+mn,-0.372,sn[2]+un*0.035],fn],{radius:(hn)=>0.013-hn*0.006,sides:6,smoothness:2,caps:!0,color:[0.85,0.86,0.77]})}),cn.push({geometry:Jf([fn,[fn[0]+0.016,-0.399,fn[2]-un*0.008]],{radius:(hn)=>0.006*(1-hn)+0.001,sides:5,smoothness:1,color:[0.3,0.27,0.19]})})}}return wn(ay(cn),{center:!1,shine:0.12})}),FM=()=>eh("star",()=>wn(LTt(new ITt().addStar(0,0,0.5,0.23),{depth:0.18}),{fit:1,shine:0.85}));var At=e(()=>{na();z1e=new Map;cG=[{x:0.28,y:-0.1,side:1,hind:!1},{x:0.28,y:-0.1,side:-1,hind:!1},{x:-0.3,y:-0.09,side:1,hind:!0},{x:-0.3,y:-0.09,side:-1,hind:!0}]});import{effects as K_,quat as cd}from"@nayan-ui/engine";function WM(rn,nn,an=0){rn.eye=[0,3.1+an,5.4],rn.target=[0,1.1+an,-6],rn.fov=nn.width/Math.max(1,nn.height)<0.7?1:0.85}function $1e(rn,nn){let an=QN(rn,nn),sn=vc(nn),ln=rn.spawn({mesh:"none",pickable:!1}),cn=rn.spawn({mesh:"none",rotation:HM,pickable:!1}),un=xn(e0.yellow),dn=gM(),pn=rn.spawn({mesh:dn,parent:cn,color:un,bob:{amplitude:[0,0.004,0],speed:2.2},pickable:!1});rn.spawn({mesh:DM(),parent:cn,pickable:!1});let mn=kM(),fn=rn.spawn({mesh:mn,parent:cn,position:[-0.5,-0.015,0],color:un,pickable:!1}),hn=[];for(let Sn of[-1,1]){let _n=Sn>0?0.27:Math.PI-0.27,vn=rn.spawn({mesh:"none",parent:cn,position:[0.575,0.205,Sn*0.125],rotation:cd.y(_n),pickable:!1}),Tn=NM(),Rn=rn.spawn({mesh:Tn,parent:vn,color:un,pickable:!1});hn.push(Rn),rn.spawn({mesh:GM(),parent:vn,pickable:!1}),rn.animate(vn,{rotation:cd.y(_n+Sn*0.13)},{duration:Sn>0?2.7:3.4,repeat:"forever",yoyo:!0,easing:"easeInOut"})}let bn=[];for(let Sn of cG){let _n=BM(Sn.side,Sn.hind),vn=rn.spawn({mesh:_n,parent:cn,position:[Sn.x,Sn.y,Sn.side*0.13],color:un,pickable:!1});bn.push(vn)}let yn=rn.spawn({mesh:"sphere",scale:[0.72,0.012,1.8],color:[0.12,0.19,0.25,0.22],pickable:!1});return{backdrop:an,field:ln,chameleon:cn,skin:[pn,fn,...bn,...hn],legs:bn,tail:fn,shadow:yn,platforms:new Map,tint:sn,color:"yellow",stride:!1}}function uG(rn,nn){JN(rn,nn.backdrop);for(let an of[nn.field,nn.chameleon,nn.shadow])rn.despawn(an)}function BTt(rn,nn,an,sn){let ln=sn[0]?.id,cn=sn[sn.length-1]?.id;if(an.syncedFirst===ln&&an.syncedLast===cn&&an.syncedCount===sn.length)return;an.syncedFirst=ln,an.syncedLast=cn,an.syncedCount=sn.length;let un=new Set(sn.map((dn)=>dn.id));for(let dn of sn){if(an.platforms.has(dn.id))continue;let pn=dn.end-dn.start,mn=rn.spawn({mesh:"none",parent:an.field,position:[0,dn.height,-(dn.start+dn.end)/2],pickable:!1}),fn=(yn,En,Sn,_n,vn)=>rn.spawn({mesh:yn,parent:mn,position:En,scale:Sn,color:NTt(_n,an.tint),rotation:vn,pickable:!1});fn("roundedBox",[0,-0.65,0],[nn.trackWidth,1.2,pn],xn(ry.STONE)),fn("roundedBox",[0,-1.4,0],[nn.trackWidth*0.8,0.7,pn*0.94],xn(ry.STONE_DARK)),fn("roundedBox",[0,-0.105,0],[nn.trackWidth+0.08,0.21,pn+0.025],GTt(dn));for(let yn of[-1,1])fn("roundedBox",[yn*(nn.trackWidth/2-0.08),-0.22,0],[0.08,0.08,pn],xn(ry.RIM));let hn=Math.max(2,Math.floor(pn/1.5));for(let yn=0;yn<hn;yn++){let En=-pn/2+0.75+yn*1.5;if(dn.color==="yellow")fn("roundedBox",[-nn.trackWidth*0.32,0.012,En],[0.55,0.018,0.12],[1,0.98,0.8]);if(dn.color==="pink")for(let Sn of[-0.16,0.16])fn("sphere",[-nn.trackWidth*0.32+Sn,0.018,En],[0.16,0.025,0.16],[1,0.85,0.96])}fn("roundedBox",[0,0.015,-pn/2+0.35],[nn.trackWidth*0.8,0.018,0.09],th);for(let yn of[-1,1])fn("roundedBox",[yn*0.18,0.018,pn/2-1.2],[0.1,0.025,0.55],th,cd.y(yn*-0.65));let bn=null;if(dn.star&&!dn.starCollected)bn=rn.spawn({mesh:FM(),parent:mn,position:[0,1.05,0],scale:0.68,color:[1.6,1.35,0.48,1],spin:[0,2.2,0],bob:{amplitude:[0,0.09,0],speed:3.2},pickable:!1});if(dn.end>ui){let yn=(dn.start+dn.end)/2-ui;for(let En of[-1,1])fn("roundedBox",[En*(nn.trackWidth/2+0.1),1.7,yn],[0.22,3.4,0.3],th);fn("roundedBox",[0,3.25,yn],[nn.trackWidth+0.5,0.55,0.3],xn("#20354A"));for(let En=0;En<10;En++)fn("cube",[(En-4.5)*0.36,3.25,yn+0.16],[0.35,0.36,0.02],En%2?th:xn("#20354A"))}an.platforms.set(dn.id,{root:mn,star:bn})}for(let[dn,pn]of an.platforms)if(!un.has(dn))rn.despawn(pn.root),an.platforms.delete(dn)}function Z1e(rn,nn,an,sn){let ln=rn.transforms;ln.position(an.field,0,0,sn.distance),ln.position(an.chameleon,0,sn.y+0.5,0);let cn=ny(sn),un=cn?Math.max(0,sn.y-cn.height):0;ln.position(an.shadow,0,(cn?.height??-10)+0.018,0.15),ln.scale(an.shadow,0.72+un*0.08,0.012,1.8+un*0.12),ln.color(an.shadow,0.12,0.19,0.25,cn?0.2/(1+un):0),ln.flush(),BTt(rn,nn,an,sn.platforms)}function Yp(rn,nn,an){if(nn.stride===an)return;nn.stride=an,rn.set(nn.chameleon,{bob:an?{amplitude:[0,0.009,0],speed:16}:null}),nn.legs.forEach((sn,ln)=>{rn.stopAnimation(sn);let cn=ln===0||ln===3?1:-1;if(an)rn.set(sn,{rotation:cd.z(-0.28*cn)}),rn.animate(sn,{rotation:cd.z(0.28*cn)},{duration:0.2,easing:"easeInOut",repeat:"forever",yoyo:!0});else rn.animate(sn,{rotation:cd.z(cn*0.18)},{duration:0.12})}),rn.stopAnimation(nn.tail),rn.animate(nn.tail,{rotation:cd.x(an?0.1:0.035)},{duration:0.32,repeat:"forever",yoyo:!0,easing:"easeInOut"})}function UM(rn,nn,an,sn=0){if(an===nn.color)return;nn.color=an;for(let ln of nn.skin)rn.set(ln,{color:xn(e0[an])});K_.sparkle(rn,{position:[0,sn+0.65,0],colors:xn(e0[an]),size:0.06,speed:1.3,count:7,lifetime:0.22,flash:!1})}function dG(rn,nn,an){if(rn.animate(nn.chameleon,[{scale:[0.97,1.06,0.97],at:0.3},{scale:1}],{duration:0.25}),an)rn.set(nn.chameleon,{rotation:HM}),rn.animate(nn.chameleon,{turn:[0,0,-Math.PI*2]},{duration:0.4,easing:"easeOut"})}function Q1e(rn,nn,an){rn.stopAnimation(nn.chameleon),rn.set(nn.chameleon,{rotation:HM,scale:1}),rn.animate(nn.chameleon,[{scale:[1.04,0.94,1.03],at:0.25},{scale:1}],{duration:0.2}),K_.dust(rn,{position:[0,an.height+0.05,0],count:7,size:0.13,speed:1.5,lifetime:0.3,color:[0.85,0.93,1,0.45],endSize:1.8,direction:[0,1,0],spread:1.4})}function J1e(rn,nn,an,sn){let ln=nn.platforms.get(an.id);if(ln?.star==null)return;let cn=ln.star;ln.star=null;let un=kTt(an,sn);rn.set(cn,{parent:null,position:un,bob:null,spin:[0,0,0]}),Xs(rn,cn,{scale:0.68,color:[1.6,1.35,0.48,1],duration:0.3},{position:un,size:0.5,color:xn(ry.STAR),count:12}).then(()=>{if(rn.has(cn))rn.despawn(cn)})}function ebe(rn,nn,an){rn.animate(nn.chameleon,{shake:0.12},{duration:0.4}),K_.sparkle(rn,{position:[0,an.y+0.4,0],colors:[xn(e0[an.color]),th],size:0.08,speed:2,count:10,lifetime:0.35})}function tbe(rn,nn,an){if(Yp(rn,nn,!1),rn.animate(nn.chameleon,{moveBy:[0,-2.8,0],turn:[1.2,0,0.7],scale:0.25},{duration:0.65,easing:"easeIn"}),an.failure==="color")K_.sparkle(rn,{position:[0,an.y+0.4,0],colors:[xn(e0[an.color]),th],size:0.1,speed:3.2,count:20,lifetime:0.45})}function obe(rn,nn,an){Yp(rn,nn,!1),K_.confetti(rn,{position:[0,an.y+1,0],colors:[xn(e0.pink),xn(e0.yellow),th],count:55,size:0.1,speed:4,gravity:-3,lifetime:1.6}),rn.animate(nn.chameleon,[{moveBy:[0,0.35,0],at:0.5},{moveBy:[0,0,0]}],{duration:0.65,repeat:3}),rn.animate(nn.chameleon,{rotation:cd.y(-Math.PI/2)},{duration:0.5,delay:0.5,easing:"easeInOut"})}function pG(rn,nn){for(let an of nn.platforms.values())rn.despawn(an.root);nn.platforms.clear(),nn.syncedCount=void 0}function rbe(rn,nn){rn.stopAnimation(nn.chameleon),Yp(rn,nn,!1),rn.set(nn.chameleon,{scale:1,rotation:HM,bob:null}),nn.color="yellow";for(let an of nn.skin)rn.stopAnimation(an),rn.set(an,{color:xn(e0.yellow)})}var HM,th,DTt,NTt=(rn,nn)=>[rn[0]*nn[0],rn[1]*nn[1],rn[2]*nn[2],rn[3]??1],GTt=(rn)=>rn.color?xn(e0[rn.color]):DTt,kTt=(rn,nn)=>[0,rn.height+1.05,nn-(rn.start+rn.end)/2];var nbe=e(()=>{f();d();Hn();et();q_();At();sG();HM=cd.y(Math.PI/2),th=[1,1,1,1],DTt=xn(ry.NEUTRAL)});import{World as FTt}from"@nayan-ui/engine";function sbe(rn){let nn={eye:[0,3.1,5.4],target:[0,1.1,-6],fov:0.85};return{world:new FTt(1100),camera:nn,theme:rn,config:null,scene:null,run:null,phase:"ready",running:!1,won:!1,active:!0,pending:0,clock:0,lastScoreSync:-1,syncedScore:-1,shownDistance:0,shownLives:ld,finishSpeed:0,coast:0,dragFired:!1,hudKey:"",cameraLift:0,onPhase:(an)=>{},onScore:(an)=>{},onStars:(an)=>{},onDistance:(an)=>{},onLives:(an)=>{},onHud:(an)=>{},onEvent:(an)=>{}}}function fG(rn,nn,an){if(nn<=0||an<=0||rn.world.isDisposed)return;if(rn.scene&&rn.config?.width===nn&&rn.config.height===an)return;let sn=F1e(nn,an);if(rn.scene&&rn.config?.trackWidth!==sn.trackWidth)pG(rn.world,rn.scene);if(rn.config=sn,!rn.run)rn.run=rG(rn.config);if(rn.scene??=$1e(rn.world,rn.theme),WM(rn.camera,rn.config,rn.cameraLift),VM(rn),rn.run.color!=="yellow")UM(rn.world,rn.scene,rn.run.color,rn.run.y);Yp(rn.world,rn.scene,rn.running&&rn.run.onGround),sy(rn)}function ibe(rn,nn){if(nn===rn.theme||rn.world.isDisposed)return;if(rn.theme=nn,rn.scene)uG(rn.world,rn.scene);if(rn.scene=null,rn.config)fG(rn,rn.config.width,rn.config.height)}function VM(rn){if(rn.config&&rn.scene&&rn.run)Z1e(rn.world,rn.config,rn.scene,rn.run)}function sy(rn){let nn=rn.run;if(!nn)return;let an=nG(nn)?.color??null,sn=Math.min(100,Math.floor(nn.distance/ui*100)),ln={color:nn.color,next:an,combo:nn.combo,jumps:2-nn.jumpsUsed,progress:sn,failure:nn.failure},cn=`${ln.color}/${an}/${ln.combo}/${ln.jumps}/${sn}/${nn.failure}`;if(cn!==rn.hudKey)rn.hudKey=cn,rn.onHud(ln)}function HTt(rn){if(rn.world.cancelTimers(),rn.running=!1,rn.won=!1,rn.pending=0,rn.syncedScore=0,rn.shownDistance=0,rn.shownLives=ld,rn.finishSpeed=0,rn.coast=0,rn.dragFired=!1,rn.camera.shake=0,rn.cameraLift=0,rn.hudKey="",!rn.config)return;if(rn.run=rG(rn.config),rn.scene)pG(rn.world,rn.scene),rbe(rn.world,rn.scene);WM(rn.camera,rn.config),VM(rn),rn.onScore(0),rn.onStars(0),rn.onDistance(0),rn.onLives(ld),sy(rn)}function lbe(rn){if(rn.phase!=="ready"||!rn.config||!rn.run||rn.world.isDisposed)return;if(rn.pending=0,rn.dragFired=!1,rn.lastScoreSync=rn.clock,rn.running=!0,rn.phase="playing",rn.scene)Yp(rn.world,rn.scene,!0);rn.onPhase("playing")}function cbe(rn){if(rn.world.isDisposed)return;HTt(rn),rn.phase="ready",rn.onPhase("ready")}function ube(rn){if(rn.scene)uG(rn.world,rn.scene);rn.scene=null,rn.world.dispose()}function dbe(rn,nn){rn.active=nn,rn.pending=0}function mG(rn,nn=!1){if(!rn.run||rn.run.score===rn.syncedScore||!nn&&rn.clock-rn.lastScoreSync<N1e)return;rn.lastScoreSync=rn.clock,rn.syncedScore=rn.run.score,rn.onScore(rn.run.score)}function pbe(rn,nn){if(rn.world.isDisposed||!rn.active||!Number.isFinite(nn)||nn<=0)return;let an=Math.min(nn,eG);if(rn.clock+=an,rn.running&&rn.config&&rn.run&&rn.scene){rn.pending=Math.min(rn.pending+an,eG);while(rn.running&&rn.pending+0.000000001>=OM)rn.pending=Math.max(0,rn.pending-OM),WTt(rn);VM(rn),mG(rn),sy(rn);let sn=ny(rn.run)?.height??rn.cameraLift;rn.cameraLift+=(sn-rn.cameraLift)*Math.min(1,an*2),WM(rn.camera,rn.config,Math.max(-0.5,Math.min(1.5,rn.cameraLift)))}if(rn.phase==="over"&&rn.won&&rn.scene&&rn.run&&rn.finishSpeed>0)rn.finishSpeed=Math.max(0,rn.finishSpeed-22*an),rn.coast+=rn.finishSpeed*an,rn.world.set(rn.scene.field,{position:[0,0,rn.run.distance+rn.coast]});rn.world.update(an)}function WTt(rn){let{config:nn,run:an,scene:sn}=rn;if(!nn||!an||!sn)return;let ln=V1e(nn,an,OM),cn=Math.min(ui,Math.floor(an.distance));if(cn!==rn.shownDistance)rn.shownDistance=cn,rn.onDistance(cn);if(an.lives!==rn.shownLives)rn.shownLives=an.lives,rn.onLives(an.lives);if(ln.hurt)UM(rn.world,sn,an.color,an.y),ebe(rn.world,sn,an),rn.camera.shake=0.22,rn.onEvent("hurt");if(rn.world.set(sn.field,{position:[0,0,an.distance]}),ln.landed)Q1e(rn.world,sn,ln.landed),rn.onEvent("land");if(ln.jumped)dG(rn.world,sn,ln.jumped==="double"),rn.onEvent("jump");if(ln.star)J1e(rn.world,sn,ln.star,an.distance),rn.onStars(an.stars),mG(rn,!0),rn.onEvent("star");if(Yp(rn.world,sn,an.onGround),ln.failure||ln.won){if(rn.running=!1,rn.won=ln.won,rn.finishSpeed=ln.won?z_:0,mG(rn,!0),sy(rn),VM(rn),ln.won)obe(rn.world,sn,an),rn.onEvent("win");else tbe(rn.world,sn,an),rn.onEvent("fall");rn.phase="over",rn.onPhase("over")}}function UTt(rn){if(!rn.active||!rn.running||!rn.config||!rn.run||!rn.scene)return;let nn=aG(rn.config,rn.run);if(!nn)return;Yp(rn.world,rn.scene,!1),dG(rn.world,rn.scene,nn==="double"),sy(rn),rn.onEvent("jump")}function VTt(rn){if(!rn.active||!rn.running||!rn.run||!rn.scene)return;U1e(rn.run),UM(rn.world,rn.scene,rn.run.color,rn.run.y),sy(rn),rn.onEvent("swap")}function mbe(rn,nn){if(nn.phase==="start"){rn.dragFired=!1;return}if(nn.cancelled){rn.dragFired=!0;return}if(nn.phase!=="move"||rn.dragFired||nn.dy>-D1e||Math.abs(nn.dy)<=Math.abs(nn.dx))return;rn.dragFired=!0,UTt(rn)}function fbe(rn){if(!rn.dragFired)VTt(rn)}var abe;var hbe=e(()=>{q_();sG();nbe();abe={color:"yellow",next:"yellow",combo:0,jumps:2,progress:0,failure:null}});var jo={};n(jo,{ChameleonRun:()=>Mt});import{useMemo as bbe}from"react";import{jsx as zTt}from"react/jsx-runtime";var ud,ybe,Mt;var Q=e(()=>{Ta();l();a();_a();o();xa();va();et();q_();hbe();ud=t.CHAMELEON_RUN,ybe={jump:{sound:ud.JUMP,haptic:"light"},land:{sound:ud.LAND,haptic:"light"},swap:{sound:ud.SWAP,haptic:"light"},star:{sound:ud.STAR,haptic:"success"},hurt:{sound:ud.HURT,haptic:"heavy"},fall:{sound:ud.GAME_OVER,haptic:"error"},win:{sound:ud.WIN,haptic:"success"}},Mt=Vn("chameleon-run",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(0),[cn,un]=gn(0),[dn,pn]=gn(ld),[mn,fn]=gn(abe,0),{game:hn,theme:bn,status:yn,screen:En,gameOver:Sn}=zn(rn,{gameId:"chameleon-run",create:sbe,start:lbe,reset:cbe,dispose:ube,tick:pbe,setTheme:ibe,setActive:dbe,resize:fG,tap:fbe,drag:mbe,reportScore:(Rn)=>Rn.run?.score??0,sounds:ud,onStart:(Rn)=>Rn(ud.START,"success"),onStop:(Rn)=>Rn(void 0,"medium"),resultsDelay:(Rn)=>Rn==="win"?P1e:O1e,wire:(Rn,An)=>{Rn.onScore=an,Rn.onStars=ln,Rn.onDistance=un,Rn.onLives=pn,Rn.onHud=fn,Rn.onEvent=(Mn)=>An(ybe[Mn].sound,ybe[Mn].haptic)}}),_n=bbe(()=>U_(bn),[bn]),vn=bbe(()=>ZN(bn),[bn]),Tn=mn.failure==="color"?"Match your color to the platform before landing.":"Use the second jump to save a long leap.";return zTt(Un,{...En,light:_n,background:vn,fog:0,columns:[Qn(nn),ys(dn,ld),ma("TRACK",`${ui-cn} m`)],subtext:"Change colors and jump!",gameOver:Sn({title:yn==="win"?"YOU MADE IT!":"OUT OF LIVES!",message:yn==="win"?`Finished ${ui} m with ${sn} stars! Best streak ×${hn.run?.bestCombo??0}.`:`Out of lives after ${cn} of ${ui} m. ${Tn}`,scoreLabel:"Run Score",score:nn,buttonText:yn==="win"?"Run Again!":"Try Again!"})})})});var kn,js,Ebe,Sbe,_be,vbe;var iy=e(()=>{kn={HALF_WIDTH:5.2,TRACK_NEAR_Z:30,TRACK_FAR_Z:-150,CANNON_LIMIT:4.25,CANNON_Z:1.2,SPAWN_Z:-0.9,BASE_Z:-32,TARGET_LINE:-29.5,BREACH_Z:0.15,PLAYER_HP:1200,PLAYER_SLOTS:640,ENEMY_SLOTS:384,CAPACITY:1024,BASE_HP:1000,CORE_HP:1400,ENEMY_WAVE_SIZE:14,ENEMY_WAVE_INTERVAL:1.35,ENEMY_SURGE_INTERVAL:15,ENEMY_MAX_SURGE:8,MAX_STRENGTH:4096,PLAYER_SPEED:4.8,ENEMY_SPEED:2.65,FIRE_INTERVAL:0.105,CHAMPION_CHARGE:100,CHAMPION_PER_SHOT:1.6,CHAMPION_STRENGTH:42,CHAMPION_SPEED:6.2,BOSS_STRENGTH:170,BOSS_SPEED:1.55,BOOST_SPEED:1.65,BOOST_DURATION:1.4,FLIGHT_DURATION:0.38,COLLISION_RADIUS:0.34,GRID_SIZE:0.8,GRID_COLUMNS:14,GRID_ROWS:46,MAX_COLLISION_VISITS:48,MAX_SEPARATION_VISITS:12,STEP:0.03333333333333333,MAX_FRAME:0.05,HUD_INTERVAL:0.12,EFFECT_INTERVAL:0.075,MAX_EFFECTS:6,WORLD_CAPACITY:640,KILL_POINTS:5,BASE_POINTS:350,LEVEL_POINTS:500},js={PLAYER:"#3998FF",ENEMY:"#F25467",PLAYER_DARK:"#1D568F",ENEMY_DARK:"#8D2D42",GATE:"#29BFFF",GATE_HIGH:"#A14CF5",GATE_DANGER:"#F16B68",FRAME:"#1763A8",ROAD:"#CDD0D2",ROAD_EDGE:"#E6BA78",GROUND:"#D7AB72",CHAMPION:"#FFC83E",BOOST:"#7DECF1",HP_PLAYER:"#54CDA2",HP_ENEMY:"#F25467"},Ebe=[0.67,0.81,0.88],Sbe=[0.035,0.07,0.13],_be={direction:[-0.45,0.85,0.4],ambient:0.55,color:[1.04,1.02,0.98],shadows:!0,shadowExtent:27},vbe={direction:[-0.3,0.85,0.4],ambient:0.65,color:[0.76,0.86,1.1],shadows:!0,shadowExtent:27}});import{merge as qTt,tube as Tbe}from"@nayan-ui/engine";function zM(rn){let nn=new Float32Array(xbe.length*11);return xbe.forEach((an,sn)=>{let ln=Math.hypot(...an),cn=an[0]/ln,un=an[1]/ln,dn=an[2]/ln,pn=Math.hypot(cn/rn[0],un/rn[1],dn/rn[2]);nn.set([cn*rn[0],un*rn[1],dn*rn[2],cn/rn[0]/pn,un/rn[1]/pn,dn/rn[2]/pn,1,1,1,0,0],sn*11)}),{vertices:nn,indices:Uint32Array.from(YTt)}}function Rbe(){if(qM)return qM;let rn=(nn)=>{let an=[{geometry:zM([0.15,0.23,0.11]),position:[0,0.4,0]},{geometry:zM([0.145,0.15,0.135]),position:[0,0.73,0]},{geometry:zM([0.025,0.035,0.014]),position:[-0.05,0.75,0.122],color:[0.08,0.13,0.2,1]},{geometry:zM([0.025,0.035,0.014]),position:[0.05,0.75,0.122],color:[0.08,0.13,0.2,1]}];for(let sn of[-1,1])an.push({geometry:Tbe([[sn*0.08,0.25,0],[sn*0.11,0.055,sn*nn*0.13]],{radius:0.055,sides:5,smoothness:1,caps:!0})}),an.push({geometry:Tbe([[sn*0.13,0.53,0],[sn*0.22,0.31,-sn*nn*0.13]],{radius:0.043,sides:5,smoothness:1,caps:!0})});return wn(qTt(an),{center:!1,shine:0.22})};return qM=[rn(-1),rn(1)],qM}var Rc,xbe,YTt,qM=null;var Abe=e(()=>{na();Rc=(1+Math.sqrt(5))/2,xbe=[[-1,Rc,0],[1,Rc,0],[-1,-Rc,0],[1,-Rc,0],[0,-1,Rc],[0,1,Rc],[0,-1,-Rc],[0,1,-Rc],[Rc,0,-1],[Rc,0,1],[-Rc,0,-1],[-Rc,0,1]],YTt=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1]});import{getMeshIdLimit as KTt}from"@nayan-ui/engine";class hG{world;poses;capacity;matrices;colors;regions;ranges;count=0;disposed=!1;sizeStrength=new Float64Array(kn.CAPACITY).fill(NaN);sizeKind=new Int8Array(kn.CAPACITY).fill(-1);sizes=new Float64Array(kn.CAPACITY);constructor(rn,nn){this.world=rn;this.poses=nn;this.capacity=rn.capacity+kn.CAPACITY,this.matrices=new Float32Array(this.capacity*16),this.colors=new Float32Array(this.capacity*4),this.regions=new Float32Array(this.capacity*4),this.ranges=new Uint32Array(rn.ranges.length)}sync(rn,nn,an){if(this.disposed)return;this.ranges.fill(0);let sn=this.ranges.length/4,ln=Math.min(sn,Math.max(KTt(),this.poses[0].id+1,this.poses[1].id+1)),cn=0,un=Math.floor(an*8);for(let dn=0;dn<2;dn++)for(let pn=0;pn<ln;pn++){let mn=dn*sn*2+pn*2,fn=cn,hn=this.world.ranges[mn],bn=this.world.ranges[mn+1];if(bn)this.matrices.set(this.world.matrices.subarray(hn*16,(hn+bn)*16),cn*16),this.colors.set(this.world.colors.subarray(hn*4,(hn+bn)*4),cn*4),this.regions.set(this.world.regions.subarray(hn*4,(hn+bn)*4),cn*4),cn+=bn;let yn=pn===this.poses[0].id?0:pn===this.poses[1].id?1:-1;if(dn===0&&yn>=0)for(let En=0;En<kn.CAPACITY;En++){if(!rn.alive[En]||(un+rn.ticket[En]&1)!==yn)continue;let Sn=En<kn.PLAYER_SLOTS,_n=rn.x[En]-rn.previousX[En],vn=rn.z[En]-rn.previousZ[En],Tn=Math.abs(_n)+Math.abs(vn)>0.00001?Math.atan2(_n,vn):Sn?Math.PI:0,Rn=rn.kind[En],An=Rn!==0;if(this.sizeStrength[En]!==rn.strength[En]||this.sizeKind[En]!==Rn)this.sizeStrength[En]=rn.strength[En],this.sizeKind[En]=Rn,this.sizes[En]=An?0.76*(Rn===1?2.65:3.5):1.2*(1+Math.min(0.42,Math.log2(rn.strength[En])*0.055));let Mn=this.sizes[En],Cn=Math.sin(Tn)*Mn,Ln=Math.cos(Tn)*Mn,On=cn*16,Dn=cn*4;this.matrices[On]=Ln,this.matrices[On+1]=0,this.matrices[On+2]=-Cn,this.matrices[On+3]=0,this.matrices[On+4]=0,this.matrices[On+5]=Mn,this.matrices[On+6]=0,this.matrices[On+7]=0,this.matrices[On+8]=Cn,this.matrices[On+9]=0,this.matrices[On+10]=Ln,this.matrices[On+11]=0,this.matrices[On+12]=rn.previousX[En]+_n*nn;let Nn=rn.flight[En]>0?Math.min(kn.FLIGHT_DURATION,rn.flight[En]+(1-nn)*kn.STEP)/kn.FLIGHT_DURATION:0;this.matrices[On+13]=0.05+Nn*0.8+Math.sin(Nn*Math.PI)*0.55+Math.abs(Math.sin(an*12+rn.ticket[En]*1.7))*0.045,this.matrices[On+14]=rn.previousZ[En]+vn*nn,this.matrices[On+15]=1,this.colors[Dn]=Rn===1?1:Sn?rn.boost[En]>0?0.35:0.1:0.98,this.colors[Dn+1]=Rn===1?0.78:Sn?rn.boost[En]>0?0.95:0.63:Rn===2?0.15:0.22,this.colors[Dn+2]=Rn===1?0.22:Sn?1:0.27,this.colors[Dn+3]=1,this.regions[Dn]=this.regions[Dn+1]=0,this.regions[Dn+2]=this.regions[Dn+3]=1,cn++}if(cn>fn)this.ranges[mn]=fn,this.ranges[mn+1]=cn-fn}this.count=cn}setView(rn,nn,an){if(!this.disposed)this.world.setView(rn,nn,an)}dispose(){this.disposed=!0,this.count=0,this.ranges.fill(0)}}var Mbe=e(()=>{iy()});function Cbe(rn){return rn.seed=Math.imul(rn.seed,1664525)+1013904223>>>0,rn.seed/4294967296}function bG(rn=Math.floor(Math.random()*4294967295),nn=1){let an={alive:new Uint8Array(kn.CAPACITY),x:new Float32Array(kn.CAPACITY),z:new Float32Array(kn.CAPACITY),previousX:new Float32Array(kn.CAPACITY),previousZ:new Float32Array(kn.CAPACITY),strength:new Uint16Array(kn.CAPACITY),gatesPassed:new Uint8Array(kn.CAPACITY),ticket:new Uint32Array(kn.CAPACITY),kind:new Uint8Array(kn.CAPACITY),boost:new Float32Array(kn.CAPACITY),flight:new Float32Array(kn.CAPACITY),next:new Int16Array(kn.CAPACITY),playerGrid:new Int16Array(kn.GRID_COLUMNS*kn.GRID_ROWS),enemyGrid:new Int16Array(kn.GRID_COLUMNS*kn.GRID_ROWS),freePlayer:new Uint16Array(kn.PLAYER_SLOTS),freeEnemy:new Uint16Array(kn.ENEMY_SLOTS),freePlayerCount:0,freeEnemyCount:0,playerCount:0,enemyCount:0,playerStrength:0,enemyStrength:0,championCount:0,bossCount:0,charge:0,serial:0,seed:rn>>>0,level:Math.max(1,Math.floor(Number.isFinite(nn)?nn:1)),elapsed:0,battleClock:0,fireClock:0,cannonX:0,targetX:0,hp:kn.PLAYER_HP,score:0,finished:!1,won:!1,gates:[],bases:[],barriers:[],boostPad:null,collisionVisits:0,events:{shots:0,gates:0,clashes:0,hits:0,breaches:0,captured:0,champion:!1,barrierBroken:0,bossDefeated:!1,won:!1,lost:!1,effectCount:0,effectX:new Float32Array(kn.MAX_EFFECTS),effectZ:new Float32Array(kn.MAX_EFFECTS),effectTeam:new Uint8Array(kn.MAX_EFFECTS)}};return XTt(an),an}function wbe(rn){rn.alive.fill(0),rn.strength.fill(0),rn.kind.fill(0),rn.boost.fill(0),rn.flight.fill(0),rn.freePlayerCount=kn.PLAYER_SLOTS,rn.freeEnemyCount=kn.ENEMY_SLOTS,rn.playerCount=rn.enemyCount=rn.playerStrength=rn.enemyStrength=0,rn.championCount=rn.bossCount=0;for(let nn=0;nn<kn.PLAYER_SLOTS;nn++)rn.freePlayer[nn]=kn.PLAYER_SLOTS-1-nn;for(let nn=0;nn<kn.ENEMY_SLOTS;nn++)rn.freeEnemy[nn]=kn.CAPACITY-1-nn}function XTt(rn){wbe(rn),rn.battleClock=0,rn.fireClock=kn.FIRE_INTERVAL,rn.charge=0;let nn=Cbe(rn)>0.5,an=(rn.level-1)%3+1,sn=an===1?1:an===2?2.5:3,ln=an===1?[1,2,3,4]:an===2?[3,4,-2,5]:[4,3,6,5];if(rn.gates=ln.map((cn,un)=>{let dn=(un%2===0!==nn?-1:1)*2.35,pn=an===1&&un===0?"add":cn<0?"divide":"multiply";return{id:un,x:dn,originX:dn,z:un<2?-8.5:-16,halfWidth:1.95,factor:cn,operation:pn,moving:an>1&&un>=2,hits:0,remainder:0}}),rn.bases=[-3.1,0,3.1].map((cn,un)=>{let dn=(un===1?kn.CORE_HP:kn.BASE_HP)*sn;return{x:cn,z:kn.BASE_Z-(un===1?1.2:0),hp:dn,maxHp:dn,spawnClock:-0.4-un*0.32}}),rn.barriers=an===1?[]:[-2.35,2.35].map((cn)=>({x:cn,z:-22.5,halfWidth:1.5,hp:an*18,maxHp:an*18})),rn.boostPad=an===1?null:{x:nn?2.35:-2.35,z:-19.1,halfWidth:1.55,halfLength:1.15},an===3)X_(rn,!1,0,-26.5,kn.BOSS_STRENGTH,0,2)}function X_(rn,nn,an,sn,ln=1,cn=0,un=0,dn=!1){let pn=kn.MAX_STRENGTH-(nn?rn.playerStrength:rn.enemyStrength),mn=Math.max(0,Math.min(ln,pn));if(mn===0)return-1;let fn=nn?rn.freePlayer:rn.freeEnemy,hn=nn?rn.freePlayerCount:rn.freeEnemyCount,bn;if(hn===0||nn&&un===0&&hn===1&&rn.championCount===0){let yn=-1,En=1/0,Sn=nn?0:kn.PLAYER_SLOTS,_n=nn?kn.PLAYER_SLOTS:kn.CAPACITY;for(let vn=Sn;vn<_n;vn++){if(!rn.alive[vn]||rn.gatesPassed[vn]!==cn||rn.kind[vn]!==un)continue;let Tn=(rn.x[vn]-an)**2+(rn.z[vn]-sn)**2;if(Tn<En)En=Tn,yn=vn}if(yn<0)return-1;if(rn.strength[yn]=rn.strength[yn]+mn,nn)rn.playerStrength+=mn;else rn.enemyStrength+=mn;return yn}if(bn=fn[hn-1],nn)rn.freePlayerCount--,rn.playerCount++,rn.playerStrength+=mn;else rn.freeEnemyCount--,rn.enemyCount++,rn.enemyStrength+=mn;if(rn.alive[bn]=1,rn.strength[bn]=mn,rn.gatesPassed[bn]=cn,rn.kind[bn]=un,rn.boost[bn]=0,rn.flight[bn]=dn?kn.FLIGHT_DURATION:0,un===1)rn.championCount++;if(un===2)rn.bossCount++;return rn.ticket[bn]=++rn.serial,rn.x[bn]=rn.previousX[bn]=ly(an,-kn.HALF_WIDTH+0.3,kn.HALF_WIDTH-0.3),rn.z[bn]=rn.previousZ[bn]=sn,bn}function uy(rn,nn){if(!rn.alive[nn])return;if(rn.alive[nn]=0,rn.kind[nn]===1)rn.championCount--;if(rn.kind[nn]===2){if(rn.bossCount--,rn.strength[nn]===0)rn.events.bossDefeated=!0}if(cy(nn))rn.playerStrength-=rn.strength[nn],rn.freePlayer[rn.freePlayerCount++]=nn,rn.playerCount--;else rn.enemyStrength-=rn.strength[nn],rn.freeEnemy[rn.freeEnemyCount++]=nn,rn.enemyCount--;rn.strength[nn]=0}function YM(rn,nn,an,sn){let ln=rn.events;if(ln.effectCount>=kn.MAX_EFFECTS)return;let cn=ln.effectCount++;ln.effectX[cn]=nn,ln.effectZ[cn]=an,ln.effectTeam[cn]=sn?1:0}function yG(rn){return ly(Math.floor((rn+kn.HALF_WIDTH)/kn.GRID_SIZE),0,kn.GRID_COLUMNS-1)}function EG(rn){return ly(Math.floor(-rn/kn.GRID_SIZE),0,kn.GRID_ROWS-1)}function Lbe(rn){rn.playerGrid.fill(-1),rn.enemyGrid.fill(-1);for(let nn=0;nn<kn.CAPACITY;nn++)if(rn.alive[nn]){let an=cy(nn)?rn.playerGrid:rn.enemyGrid,sn=EG(rn.z[nn])*kn.GRID_COLUMNS+yG(rn.x[nn]);rn.next[nn]=an[sn],an[sn]=nn}}function jTt(rn,nn){Lbe(rn);let an=-1;if(rn.bossCount>0){for(let ln=kn.PLAYER_SLOTS;ln<kn.CAPACITY;ln++)if(rn.alive[ln]&&rn.kind[ln]===2){an=ln;break}}let sn=rn.bases.some((ln)=>ln.hp>0);for(let ln=0;ln<kn.CAPACITY;ln++){if(!rn.alive[ln])continue;let cn=cy(ln),un=rn.x[ln],dn=rn.z[ln];rn.previousX[ln]=un,rn.previousZ[ln]=dn,rn.flight[ln]=Math.max(0,rn.flight[ln]-nn);let pn=un,mn=cn?kn.TARGET_LINE-3:kn.BREACH_Z+1,fn=an<0?1/0:Math.hypot(rn.x[an]-un,rn.z[an]-dn);if(cn&&(dn<-18||fn<8||!sn)){let Cn=1/0;for(let Ln of rn.bases)if(Ln.hp>0){let On=Math.abs(Ln.x-un)+Math.abs(Ln.z-dn)*0.15;if(On<Cn)Cn=On,pn=Ln.x,mn=Ln.z}if(an>=0&&(fn<8||!sn||rn.kind[ln]===1))pn=rn.x[an],mn=rn.z[an]}else if(!cn)pn=rn.cannonX*0.65;let hn=pn-un,bn=mn-dn,yn=Math.hypot(hn,bn)||1,En=rn.boostPad;if(cn&&En&&Math.abs(un-En.x)<=En.halfWidth&&Math.abs(dn-En.z)<=En.halfLength)rn.boost[ln]=kn.BOOST_DURATION;else rn.boost[ln]=Math.max(0,rn.boost[ln]-nn);let Sn=(rn.kind[ln]===1?kn.CHAMPION_SPEED:rn.kind[ln]===2?kn.BOSS_SPEED:cn?kn.PLAYER_SPEED:kn.ENEMY_SPEED)*(rn.boost[ln]>0?kn.BOOST_SPEED:1),_n=0,vn=0,Tn=0,Rn=cn?rn.playerGrid:rn.enemyGrid,An=yG(un),Mn=EG(dn);for(let Cn=-1;Cn<=1&&Tn<kn.MAX_SEPARATION_VISITS;Cn++)for(let Ln=-1;Ln<=1&&Tn<kn.MAX_SEPARATION_VISITS;Ln++){let On=An+Ln,Dn=Mn+Cn;if(On<0||On>=kn.GRID_COLUMNS||Dn<0||Dn>=kn.GRID_ROWS)continue;for(let Nn=Rn[Dn*kn.GRID_COLUMNS+On];Nn>=0&&Tn<kn.MAX_SEPARATION_VISITS;Nn=rn.next[Nn]){if(Nn===ln||!rn.alive[Nn])continue;Tn++;let Wn=un-rn.x[Nn],Fn=dn-rn.z[Nn],qn=Wn*Wn+Fn*Fn;if(qn>0.00001&&qn<0.24){let Kn=(0.49-Math.sqrt(qn))*2.2,ea=1/Math.sqrt(qn);_n+=Wn*ea*Kn,vn+=Fn*ea*Kn}}}rn.x[ln]=ly(un+(hn/yn*Sn+ly(_n,-1.1,1.1))*nn,-kn.HALF_WIDTH+0.3,kn.HALF_WIDTH-0.3),rn.z[ln]=dn+(bn/yn*Sn+ly(vn,-0.5,0.5))*nn}}function $Tt(rn){for(let nn=0;nn<kn.PLAYER_SLOTS;nn++){if(!rn.alive[nn]||rn.kind[nn]===1)continue;for(let an of rn.gates){let sn=1<<an.id;if(rn.gatesPassed[nn]&sn||rn.previousZ[nn]<an.z||rn.z[nn]>an.z||Math.abs(rn.x[nn]-an.x)>an.halfWidth)continue;rn.gatesPassed[nn]=rn.gatesPassed[nn]|sn;let ln=rn.strength[nn];if(an.hits++,rn.events.gates++,an.factor<0){an.remainder+=ln/-an.factor;let cn=Math.floor(an.remainder);if(an.remainder-=cn,rn.playerStrength+=cn-ln,rn.strength[nn]=cn,!cn)uy(rn,nn)}else{let cn=Math.min(an.operation==="add"?an.factor:ln*(an.factor-1),kn.MAX_STRENGTH-rn.playerStrength);for(let un=0;un<cn;un++){if(rn.freePlayerCount<=(rn.championCount===0?1:0)){rn.strength[nn]=rn.strength[nn]+cn-un,rn.playerStrength+=cn-un;break}let dn=(rn.serial+un)*2.39996,pn=0.16+Math.sqrt(un+1)*0.11;X_(rn,!0,rn.x[nn]+Math.cos(dn)*pn,an.z-0.12-Math.abs(Math.sin(dn)*pn),1,rn.gatesPassed[nn])}}}}}function ZTt(rn){Lbe(rn),rn.collisionVisits=0;let nn=kn.COLLISION_RADIUS*kn.COLLISION_RADIUS;for(let an=0;an<kn.PLAYER_SLOTS;an++){if(!rn.alive[an])continue;let sn=yG(rn.x[an]),ln=EG(rn.z[an]),cn=0;for(let un=-1;un<=1&&rn.alive[an]&&cn<kn.MAX_COLLISION_VISITS;un++)for(let dn=-1;dn<=1&&rn.alive[an]&&cn<kn.MAX_COLLISION_VISITS;dn++){let pn=sn+dn,mn=ln+un;if(pn<0||pn>=kn.GRID_COLUMNS||mn<0||mn>=kn.GRID_ROWS)continue;for(let fn=rn.enemyGrid[mn*kn.GRID_COLUMNS+pn];fn>=0&&rn.alive[an]&&cn<kn.MAX_COLLISION_VISITS;fn=rn.next[fn]){if(cn++,rn.collisionVisits++,!rn.alive[fn])continue;let hn=rn.x[an]-rn.x[fn],bn=rn.z[an]-rn.z[fn],yn=rn.kind[an]===1||rn.kind[fn]===2?0.5625:nn;if(hn*hn+bn*bn>yn)continue;let En=Math.min(rn.strength[an],rn.strength[fn]);if(rn.strength[an]=rn.strength[an]-En,rn.strength[fn]=rn.strength[fn]-En,rn.playerStrength-=En,rn.enemyStrength-=En,rn.score+=En*kn.KILL_POINTS,rn.events.clashes+=En,rn.charge=Math.min(kn.CHAMPION_CHARGE,rn.charge+En*0.12),YM(rn,(rn.x[an]+rn.x[fn])/2,(rn.z[an]+rn.z[fn])/2,!1),!rn.strength[fn])uy(rn,fn);if(!rn.strength[an])uy(rn,an)}}}}function QTt(rn){for(let nn=0;nn<kn.CAPACITY;nn++){if(!rn.alive[nn])continue;if(cy(nn)){for(let an of rn.barriers){if(an.hp<=0||rn.previousZ[nn]<an.z||rn.z[nn]>an.z||Math.abs(rn.x[nn]-an.x)>an.halfWidth)continue;let sn=Math.min(an.hp,rn.strength[nn]);if(an.hp-=sn,rn.strength[nn]=rn.strength[nn]-sn,rn.playerStrength-=sn,rn.events.hits+=sn,rn.score+=sn*2,YM(rn,an.x,an.z,!0),an.hp===0)rn.events.barrierBroken++;if(rn.strength[nn]===0)uy(rn,nn)}if(!rn.alive[nn])continue}if(cy(nn)&&rn.z[nn]<=kn.TARGET_LINE){let an=null,sn=1/0;for(let cn of rn.bases)if(cn.hp>0){let un=Math.abs(cn.x-rn.x[nn]);if(un<sn)an=cn,sn=un}if(!an)continue;if(sn>0.9||rn.z[nn]>an.z+1.25)continue;let ln=Math.min(an.hp,rn.strength[nn]);if(an.hp-=ln,rn.score+=ln*2,rn.events.hits+=ln,YM(rn,an.x,an.z,!0),rn.strength[nn]=rn.strength[nn]-ln,rn.playerStrength-=ln,!rn.strength[nn])uy(rn,nn);if(an.hp===0)rn.score+=kn.BASE_POINTS,rn.events.captured++}else if(!cy(nn)&&rn.z[nn]>=kn.BREACH_Z)rn.hp=rn.kind[nn]===2?0:Math.max(0,rn.hp-rn.strength[nn]),rn.events.breaches+=rn.strength[nn],YM(rn,rn.x[nn],0,!1),uy(rn,nn)}}function Ibe(rn,nn){let an=rn.events;if(an.shots=an.gates=an.clashes=an.hits=an.breaches=an.captured=an.effectCount=an.barrierBroken=0,an.won=an.lost=an.champion=an.bossDefeated=!1,rn.finished||nn<=0||!Number.isFinite(nn))return an;let sn=(rn.level-1)%3+1;if(nn=Math.min(nn,kn.STEP),rn.elapsed+=nn,rn.battleClock+=nn,rn.cannonX+=(rn.targetX-rn.cannonX)*(1-Math.exp(-nn*15)),rn.fireClock+=nn,rn.fireClock>=kn.FIRE_INTERVAL)rn.fireClock-=kn.FIRE_INTERVAL,X_(rn,!0,rn.cannonX+(Cbe(rn)-0.5)*0.22,kn.SPAWN_Z,1,0,0,!0),rn.charge=Math.min(kn.CHAMPION_CHARGE,rn.charge+kn.CHAMPION_PER_SHOT),an.shots++;if(rn.charge>=kn.CHAMPION_CHARGE&&rn.championCount===0){if(X_(rn,!0,rn.cannonX,kn.SPAWN_Z,kn.CHAMPION_STRENGTH+sn*12,0,1,!0)>=0)rn.charge=0,an.champion=!0}for(let ln of rn.gates)ln.x=ln.originX+(ln.moving?Math.sin(rn.battleClock*0.65+ln.id)*0.28:0);for(let ln of rn.bases)if(ln.hp>0){ln.spawnClock+=nn;let cn=kn.ENEMY_WAVE_INTERVAL-(sn-1)*0.12;if(ln.spawnClock>=cn){ln.spawnClock-=cn;let un=kn.ENEMY_WAVE_SIZE+sn*3+Math.min(kn.ENEMY_MAX_SURGE,Math.floor(rn.battleClock/kn.ENEMY_SURGE_INTERVAL)*2);for(let dn=0;dn<un;dn++){let pn=rn.serial*2.39996,mn=Math.sqrt(dn+0.5)*0.2;X_(rn,!1,ln.x+Math.cos(pn)*mn,ln.z+1.1+Math.sin(pn)*mn)}}}if(jTt(rn,nn),$Tt(rn),ZTt(rn),QTt(rn),rn.hp===0)rn.finished=!0,an.lost=!0;else if(rn.bossCount===0&&rn.bases.every((ln)=>ln.hp===0))rn.score+=kn.LEVEL_POINTS,wbe(rn),rn.finished=rn.won=an.won=!0;return an}var ly=(rn,nn,an)=>Math.max(nn,Math.min(an,rn)),cy=(rn)=>rn<kn.PLAYER_SLOTS;var Obe=e(()=>{iy()});import{merge as SG,shapeGeometry as kbe,tube as Bbe}from"@nayan-ui/engine";function o0(rn){return Bn("shared/EngineGlyphs:glyphMesh"+JSON.stringify([rn]),()=>JTt(rn))}function JTt(rn){let nn=Nbe.get(rn);if(!nn){let an=Fbe[rn];if(!an)throw Error(`glyphMesh: no glyph for "${rn}"`);let sn=[];for(let{points:ln,closed:cn}of an){let un=ln.map(([dn,pn])=>[dn-oh/2,pn-0.5,0]);if(sn.push({geometry:Bbe(un,{radius:Kp,sides:8,smoothness:5})}),!cn)for(let dn of[un[0],un[un.length-1]])sn.push({geometry:kbe("sphere"),position:dn,scale:Kp*2})}nn=wn(SG(sn),{center:!1,shine:0.2}),Nbe.set(rn,nn)}return nn}function Qi(rn,nn=1){return Bn("shared/EngineGlyphs:flatGlyphMesh"+JSON.stringify([rn,nn]),()=>ext(rn,nn))}function ext(rn,nn=1){let an=nn===1?rn:`${rn}@${nn}`,sn=Gbe.get(an);if(!sn){let ln=Fbe[rn];if(!ln)throw Error(`flatGlyphMesh: no glyph for "${rn}"`);let cn=[];for(let{points:un,closed:dn}of ln){let pn=un.map(([mn,fn])=>[mn-oh/2,fn-0.5,0]);if(cn.push({geometry:Bbe(pn,{radius:Kp*nn,sides:8,smoothness:5})}),!dn)for(let mn of[pn[0],pn[pn.length-1]])cn.push({geometry:kbe("sphere"),position:mn,scale:Kp*2*nn})}sn=wn(SG([{geometry:SG(cn),scale:[1,1,0.05]}]),{center:!1,shine:0}),Gbe.set(an,sn)}return sn}var Kp=0.1,t0=0.72,oh=0.6,pa=(rn,nn,an,sn)=>({points:[[rn,nn],[an,sn]]}),Ac=(...rn)=>({points:rn}),j_=(rn,nn,an,sn,ln=16)=>({closed:!0,points:Array.from({length:ln+3},(cn,un)=>{let dn=Math.PI/2+(un-1)/ln*Math.PI*2;return[rn+Math.cos(dn)*an,nn+Math.sin(dn)*sn]})}),Pbe=(rn,nn,an,sn,ln,cn,un=12)=>({points:Array.from({length:un+1},(dn,pn)=>{let mn=(ln+(cn-ln)*pn/un)*Math.PI/180;return[rn+Math.cos(mn)*an,nn+Math.sin(mn)*sn]})}),gbe,Dbe,Fbe,Nbe,Gbe;var r0=e(()=>{na();gbe=[[0.5,0.9],[0.32,0.98],[0.13,0.86],[0.05,0.52],[0.08,0.2],[0.28,0.02],[0.5,0.11],[0.56,0.32],[0.42,0.54],[0.2,0.55],[0.06,0.38]],Dbe=Ac([0.06,1],[0.38,1],[0.54,0.88],[0.54,0.62],[0.38,0.48],[0.06,0.48]),Fbe={"0":[j_(0.3,0.5,0.26,0.47)],"1":[pa(0.1,0.76,0.34,0.97),pa(0.34,0.97,0.34,0.03)],"2":[Ac([0.05,0.76],[0.16,0.93],[0.33,0.98],[0.5,0.89],[0.55,0.7],[0.44,0.5],[0.05,0.03]),pa(0.05,0.03,0.57,0.03)],"3":[Ac([0.06,0.86],[0.26,0.98],[0.48,0.91],[0.52,0.72],[0.28,0.54]),Ac([0.28,0.54],[0.53,0.4],[0.55,0.18],[0.34,0.02],[0.05,0.12])],"4":[pa(0.42,0.03,0.42,0.97),pa(0.42,0.97,0.03,0.32),pa(0.03,0.32,0.6,0.32)],"5":[pa(0.54,0.97,0.13,0.97),pa(0.13,0.97,0.08,0.55),Ac([0.08,0.55],[0.3,0.62],[0.52,0.5],[0.56,0.26],[0.4,0.04],[0.18,0.03],[0.04,0.14])],"6":[{points:gbe}],"7":[pa(0.03,0.97,0.58,0.97),Ac([0.58,0.97],[0.38,0.55],[0.24,0.03])],"8":[j_(0.3,0.75,0.21,0.22),j_(0.3,0.27,0.26,0.26)],"9":[{points:gbe.map(([rn,nn])=>[0.6-rn,1-nn])}],A:[pa(0.02,0,0.3,1),pa(0.3,1,0.58,0),pa(0.13,0.36,0.47,0.36)],B:[pa(0.06,0,0.06,1),Ac([0.06,1],[0.36,1],[0.5,0.91],[0.5,0.68],[0.36,0.54],[0.06,0.54]),Ac([0.06,0.54],[0.4,0.54],[0.56,0.42],[0.56,0.13],[0.4,0],[0.06,0])],C:[Pbe(0.33,0.5,0.29,0.49,48,312)],D:[pa(0.06,0,0.06,1),Ac([0.06,1],[0.3,1],[0.5,0.86],[0.56,0.5],[0.5,0.14],[0.3,0],[0.06,0])],E:[pa(0.06,0,0.06,1),pa(0.06,1,0.54,1),pa(0.06,0.52,0.44,0.52),pa(0.06,0,0.54,0)],F:[pa(0.06,0,0.06,1),pa(0.06,1,0.54,1),pa(0.06,0.52,0.44,0.52)],G:[Pbe(0.32,0.5,0.28,0.49,48,352),pa(0.6,0.43,0.36,0.43)],H:[pa(0.06,0,0.06,1),pa(0.54,0,0.54,1),pa(0.06,0.52,0.54,0.52)],I:[pa(0.3,0,0.3,1),pa(0.12,1,0.48,1),pa(0.12,0,0.48,0)],J:[pa(0.2,1,0.54,1),Ac([0.44,1],[0.44,0.26],[0.37,0.06],[0.22,0],[0.08,0.07],[0.04,0.22])],K:[pa(0.06,0,0.06,1),pa(0.54,1,0.06,0.38),pa(0.25,0.58,0.56,0)],L:[pa(0.06,1,0.06,0),pa(0.06,0,0.54,0)],M:[pa(0.02,0,0.06,1),pa(0.06,1,0.3,0.36),pa(0.3,0.36,0.54,1),pa(0.54,1,0.58,0)],N:[pa(0.06,0,0.06,1),pa(0.06,1,0.54,0),pa(0.54,0,0.54,1)],O:[j_(0.3,0.5,0.28,0.48)],P:[pa(0.06,0,0.06,1),Dbe],Q:[j_(0.3,0.5,0.28,0.48),pa(0.36,0.24,0.6,-0.02)],R:[pa(0.06,0,0.06,1),Dbe,pa(0.28,0.48,0.56,0)],S:[Ac([0.54,0.86],[0.42,0.98],[0.24,0.99],[0.08,0.88],[0.08,0.68],[0.3,0.53],[0.52,0.38],[0.54,0.14],[0.38,0.01],[0.18,0.01],[0.04,0.14])],T:[pa(0.02,1,0.58,1),pa(0.3,1,0.3,0)],U:[Ac([0.06,1],[0.06,0.3],[0.14,0.07],[0.3,0],[0.46,0.07],[0.54,0.3],[0.54,1])],V:[pa(0.02,1,0.3,0),pa(0.3,0,0.58,1)],W:[pa(0,1,0.14,0),pa(0.14,0,0.3,0.64),pa(0.3,0.64,0.46,0),pa(0.46,0,0.6,1)],X:[pa(0.04,0,0.56,1),pa(0.04,1,0.56,0)],Y:[pa(0.02,1,0.3,0.5),pa(0.58,1,0.3,0.5),pa(0.3,0.5,0.3,0)],Z:[pa(0.04,1,0.56,1),pa(0.56,1,0.04,0),pa(0.04,0,0.56,0)]},Nbe=new Map;Gbe=new Map});import{effects as KM,quat as dy,tube as txt}from"@nayan-ui/engine";function Hbe(rn,nn,an){let sn=Math.max(1,0.5/(rn/Math.max(nn,1)));an.eye=[0,19*sn,15*sn],an.target=[0,0,nn<550?-9:-13],an.fov=0.9;let ln=an.target[1]-an.eye[1],cn=an.target[2]-an.eye[2],un=Math.hypot(ln,cn),dn=(-an.eye[1]*ln-an.eye[2]*cn)/un;return{width:rn,height:nn,k:nn/(2*Math.tan(an.fov/2)*dn)}}function Pa(rn,nn,an,sn,ln,cn,un){return rn.spawn({mesh:an,parent:nn,position:sn,scale:ln,color:cn,rotation:un,pickable:!1})}function rh(rn,nn,an,sn,ln,cn){return[...an].map((un,dn)=>rn.spawn({mesh:o0(un),parent:nn,position:[(dn-(an.length-1)/2)*cn*0.7,sn,ln],scale:cn,color:py,pickable:!1}))}function oxt(rn,nn,an,sn,ln){let cn=rn.spawn({mesh:"none",parent:nn,position:[an.x,0,an.z],pickable:!1}),un=xn(js.ENEMY),dn=xn(js.ENEMY_DARK),pn=Pa(rn,cn,"roundedBox",[0,1.5,0],[2.45,3,2.5],un);Pa(rn,cn,"roundedBox",[0,0.18,0],[2.8,0.36,2.9],dn),Pa(rn,cn,"roundedBox",[0,3.05,0],[2.65,0.3,2.7],ln?[0.6,0.31,0.45,1]:[1,0.62,0.65,1]);for(let bn of[-1,1])Pa(rn,cn,"cylinder",[bn*1.1,2.1,0.65],[0.62,4.2,0.62],un),Pa(rn,cn,"cone",[bn*1.1,4.45,0.65],[0.9,0.8,0.9],dn);Pa(rn,cn,"roundedBox",[0,0.9,1.27],[0.9,1.8,0.08],dn),Pa(rn,cn,"cube",[0,1,1.32],[0.53,1.2,0.04],[0.1,0.16,0.23,1]),Pa(rn,cn,"cylinder",[0,3.9,-0.65],[0.08,1.7,0.08],[0.85,0.87,0.84,1]),Pa(rn,cn,"cube",[0.4,4.45,-0.65],[0.8,0.5,0.055],un);let mn=(sn-1)%3+1;for(let bn=0;bn<mn;bn++)Pa(rn,cn,"roundedBox",[(bn-(mn-1)/2)*0.32,2,1.3],[0.2,0.35,0.07],[1.25,1.08,0.5,1]);Pa(rn,cn,"roundedBox",[0,3.5,1.45],[2.3,0.24,0.14],[0.17,0.23,0.29,1]);let fn=Pa(rn,cn,"roundedBox",[0,3.5,1.54],[2.15,0.14,0.08],xn("#FFC66E")),hn=rh(rn,cn,String(an.hp),2.75,1.5,0.5);return{root:cn,body:pn,bar:fn,digits:hn,shown:String(an.hp),hp:an.hp,captured:!1}}function rxt(){if(!_G)_G=wn(txt([[-1.86,1.65,0],[-1.65,0.3,0],[0,0.16,0],[1.65,0.3,0],[1.86,1.65,0]],{radius:0.045,sides:6,smoothness:5}),{center:!1,shine:0.1});return _G}function nxt(rn,nn,an){let sn=rn.spawn({mesh:"none",parent:nn,position:[an.x,0,an.z],pickable:!1}),ln=xn(js.FRAME),cn=Wbe(an),un=an.halfWidth*2;for(let pn of[-1,1])Pa(rn,sn,"roundedBox",[pn*an.halfWidth,0.94,0],[0.21,1.88,0.32],ln),Pa(rn,sn,"cube",[pn*an.halfWidth,1.92,0],[0.22,0.11,0.33],[1,0.8,0.24,1]);Pa(rn,sn,"roundedBox",[0,0.03,0],[un,0.06,0.38],[cn[0]*1.3,cn[1]*1.3,cn[2]*1.3,1]);let dn=Pa(rn,sn,"cube",[0,0.92,0],[un-0.12,1.7,0.035],[cn[0],cn[1],cn[2],0.48]);if(rn.spawn({mesh:rxt(),parent:sn,position:[0,0,0.06],color:[0.8,1.3,1.5,1],pickable:!1}),Pa(rn,sn,"roundedBox",[0,1.03,0.06],[1.65,1.1,0.04],[cn[0]*0.38,cn[1]*0.38,cn[2]*0.38,1]),an.factor<0||an.operation==="add"){if(Pa(rn,sn,"roundedBox",[-0.43,1.03,0.15],[0.51,0.1,0.05],py),an.factor<0)for(let pn of[-0.23,0.23])Pa(rn,sn,"sphere",[-0.43,1.03+pn,0.15],0.1,py);else Pa(rn,sn,"roundedBox",[-0.43,1.03,0.15],[0.1,0.51,0.05],py);rn.spawn({mesh:o0(String(Math.abs(an.factor))),parent:sn,position:[0.3,1.03,0.18],scale:0.85,color:py,pickable:!1})}else rh(rn,sn,`X${an.factor}`,1.03,0.18,0.85);return{root:sn,panel:dn,hits:an.hits,factor:an.factor}}function axt(rn,nn,an){let sn=rn.spawn({mesh:"none",parent:nn,position:[an.x,0,an.z],pickable:!1}),ln=[0.92,0.62,0.23,1];Pa(rn,sn,"roundedBox",[0,0.75,0],[an.halfWidth*2,1.5,0.7],ln);for(let cn of[-1.2,0,1.2])Pa(rn,sn,"cube",[cn,0.75,0.39],[0.1,1.5,0.1],[1,0.8,0.41,1]);for(let cn of[0.15,1.35])Pa(rn,sn,"cube",[0,cn,0.4],[an.halfWidth*2,0.12,0.12],[0.52,0.31,0.12,1]);return Pa(rn,sn,"roundedBox",[0,0.8,0.47],[1.3,1.05,0.08],[0.2,0.17,0.13,1]),{root:sn,digits:rh(rn,sn,String(an.hp),0.8,0.54,0.65),shown:an.hp,broken:!1}}function sxt(rn,nn,an){let sn=an.boostPad;if(!sn)return;let ln=rn.spawn({mesh:"none",parent:nn,position:[sn.x,0.06,sn.z],pickable:!1});Pa(rn,ln,"roundedBox",[0,0,0],[sn.halfWidth*2,0.07,sn.halfLength*2],[0.13,0.56,0.65,1]);for(let cn=0;cn<3;cn++)for(let un of[-1,1])Pa(rn,ln,"cube",[un*0.3,0.05,-0.65+cn*0.6],[0.12,0.03,0.8],[0.65,1.3,1.4,1],dy.y(un*Math.PI/4))}function ixt(rn,nn){let an=rn.spawn({mesh:"none",parent:nn,pickable:!1});Pa(rn,an,"roundedBox",[0,2.9,0],[2.15,0.3,0.1],[0.18,0.1,0.14,1]);let sn=Pa(rn,an,"roundedBox",[0,2.9,0.07],[2,0.18,0.08],[1.1,0.2,0.25,1]);return{root:an,bar:sn,digits:rh(rn,an,String(kn.BOSS_STRENGTH),3.4,0.1,0.65),shown:kn.BOSS_STRENGTH,visible:!0}}function vG(rn,nn,an){for(let yn of"0123456789X")o0(yn);let sn=rn.spawn({mesh:"none",pickable:!1}),ln=nn?[0.12,0.13,0.18,1]:xn(js.GROUND),cn=kn.TRACK_NEAR_Z-kn.TRACK_FAR_Z,un=(kn.TRACK_NEAR_Z+kn.TRACK_FAR_Z)/2;Pa(rn,sn,"cube",[0,-1.5,-18],[250,0.3,240],ln),Pa(rn,sn,"roundedBox",[0,-0.55,un],[kn.HALF_WIDTH*2+1.2,0.9,cn+0.5],nn?[0.25,0.31,0.37,1]:xn(js.ROAD_EDGE)),Pa(rn,sn,"cube",[0,-0.04,un],[kn.HALF_WIDTH*2,0.13,cn],nn?[0.38,0.43,0.46,1]:xn(js.ROAD));for(let yn of[-1,1])Pa(rn,sn,"roundedBox",[yn*(kn.HALF_WIDTH+0.1),0.04,un],[0.18,0.22,cn],nn?[0.52,0.65,0.73,1]:[0.95,0.94,0.86,1]);for(let yn=0,En=kn.TRACK_NEAR_Z-1.5;En>kn.TRACK_FAR_Z;yn++,En-=2.3)if(Pa(rn,sn,"cube",[0,0.032,En],[0.07,0.012,0.9],nn?[0.51,0.57,0.6,1]:[0.96,0.96,0.92,1]),yn%2===0)for(let Sn of[-1,1])Pa(rn,sn,"cylinder",[Sn*(kn.HALF_WIDTH+0.4),0.23,En],[0.13,0.9,0.13],nn?[0.35,0.31,0.28,1]:[0.55,0.35,0.18,1]);for(let yn of[-1,1])Pa(rn,sn,"cube",[yn*(kn.HALF_WIDTH+0.4),0.4,un],[0.09,0.13,cn],nn?[0.35,0.31,0.28,1]:[0.67,0.43,0.22,1]);Pa(rn,sn,"roundedBox",[0,0.06,0.35],[kn.HALF_WIDTH*2,0.1,0.2],xn(js.PLAYER));let dn=rn.spawn({mesh:"none",parent:sn,position:[0,0,kn.CANNON_Z],pickable:!1}),pn=xn(js.PLAYER),mn=xn(js.PLAYER_DARK);Pa(rn,dn,"roundedBox",[0,0.38,0],[1.6,0.4,1.65],[0.8,0.18,0.21,1]),Pa(rn,dn,"sphere",[0,0.86,0],[1.18,0.9,1.2],pn);for(let yn of[-1,1])for(let En of[-0.48,0.5])Pa(rn,dn,"cylinder",[yn*0.83,0.31,En],[0.6,0.24,0.6],[0.1,0.13,0.18,1],dy.z(Math.PI/2)),Pa(rn,dn,"cylinder",[yn*0.96,0.31,En],[0.25,0.03,0.25],[0.77,0.83,0.87,1],dy.z(Math.PI/2));let fn=rn.spawn({mesh:"none",parent:dn,position:[0,0.92,-0.1],pickable:!1});Pa(rn,fn,"cylinder",[0,0,-0.7],[0.62,1.6,0.62],mn,dy.x(Math.PI/2)),Pa(rn,fn,"cylinder",[0,0,-1.52],[0.76,0.22,0.76],pn,dy.x(Math.PI/2)),Pa(rn,fn,"cylinder",[0,0,-1.65],[0.49,0.025,0.49],[0.06,0.11,0.17,1],dy.x(Math.PI/2)),Pa(rn,dn,"roundedBox",[0,0.4,1.05],[1.65,0.15,0.26],[0.16,0.24,0.31,1]);let hn=Pa(rn,dn,"roundedBox",[-0.76,0.5,1.05],[0.01,0.1,0.2],xn(js.CHAMPION)),bn={root:sn,battleRoot:rn.spawn({mesh:"none",parent:sn,pickable:!1}),cannon:dn,barrel:fn,chargeBar:hn,chargeShown:-1,battle:null,bases:[],gates:[],barriers:[],boss:null,night:nn};return Ube(rn,bn,an),bn}function Ube(rn,nn,an){if(nn.battle===an)return;rn.despawn(nn.battleRoot),nn.battleRoot=rn.spawn({mesh:"none",parent:nn.root,pickable:!1}),nn.battle=an,nn.bases=an.bases.map((sn)=>oxt(rn,nn.battleRoot,sn,an.level,nn.night)),nn.gates=an.gates.map((sn)=>nxt(rn,nn.battleRoot,sn)),nn.barriers=an.barriers.map((sn)=>axt(rn,nn.battleRoot,sn)),sxt(rn,nn.battleRoot,an),nn.boss=an.bossCount>0?ixt(rn,nn.battleRoot):null}function XM(rn,nn,an,sn){Ube(rn,nn,an),rn.set(nn.cannon,{position:[an.cannonX,0,kn.CANNON_Z]});let ln=Math.floor(an.charge/5)*5;if(ln!==nn.chargeShown){nn.chargeShown=ln;let cn=ln/kn.CHAMPION_CHARGE;rn.set(nn.chargeBar,{scale:[Math.max(0.01,cn*1.5),0.1,0.2],position:[-0.75+cn*0.75,0.5,1.05]})}for(let cn=0;cn<an.gates.length;cn++){let un=an.gates[cn],dn=nn.gates[cn];if(un.moving)rn.set(dn.root,{position:[un.x,0,un.z]});if(dn.hits!==un.hits){dn.hits=un.hits;let pn=Wbe(un);rn.set(dn.panel,{color:[pn[0]*1.3,pn[1]*1.3,pn[2]*1.3,0.65]}),rn.animate(dn.panel,{color:[pn[0],pn[1],pn[2],0.48]},{duration:0.18})}}for(let cn=0;cn<an.bases.length;cn++){let un=an.bases[cn],dn=nn.bases[cn];if(un.hp!==dn.hp){dn.hp=un.hp;let mn=un.hp/un.maxHp;rn.set(dn.bar,{scale:[Math.max(0.001,2.15*mn),0.14,0.08],position:[-(1-mn)*1.075,3.5,1.54]})}if(un.hp===0&&!dn.captured)dn.captured=!0,rn.set(dn.body,{color:xn(js.PLAYER)}),rn.animate(dn.root,{scale:[1,0.25,1]},{duration:0.55,easing:"bounce"});let pn=String(un.hp);if(sn&&pn!==dn.shown){for(let mn of dn.digits)rn.despawn(mn);dn.digits=rh(rn,dn.root,pn,2.75,1.5,0.5),dn.shown=pn}}for(let cn=0;cn<an.barriers.length;cn++){let un=an.barriers[cn],dn=nn.barriers[cn];if(un.hp===0&&!dn.broken)dn.broken=!0,KM.shatter(rn,{position:[un.x,0.65,un.z],colors:[0.92,0.62,0.23,1],count:9,size:0.13,speed:2,lifetime:0.4,gravity:-7}),rn.animate(dn.root,{scale:[1,0.001,1]},{duration:0.25});if(sn&&un.hp!==dn.shown){for(let pn of dn.digits)rn.despawn(pn);dn.digits=un.hp>0?rh(rn,dn.root,String(un.hp),0.8,0.54,0.65):[],dn.shown=un.hp}}if(nn.boss){let cn=nn.boss,un=-1;for(let dn=kn.PLAYER_SLOTS;dn<kn.CAPACITY;dn++)if(an.alive[dn]&&an.kind[dn]===2){un=dn;break}if(un>=0){rn.set(cn.root,{position:[an.previousX[un],0,an.previousZ[un]]});let dn=an.strength[un];if(dn!==cn.shown){let pn=dn/kn.BOSS_STRENGTH;if(rn.set(cn.bar,{scale:[Math.max(0.001,2*pn),0.18,0.08],position:[-(1-pn),2.9,0.07]}),sn){for(let mn of cn.digits)rn.despawn(mn);cn.digits=rh(rn,cn.root,String(dn),3.4,0.1,0.65),cn.shown=dn}}}else if(cn.visible)cn.visible=!1,rn.set(cn.root,{scale:0.001})}}function Vbe(rn,nn){rn.animate(nn.barrel,[{position:[0,0.92,0.1],at:0.2},{position:[0,0.92,-0.1]}],{duration:0.09})}function zbe(rn,nn,an,sn){KM.sparkle(rn,{position:[nn,0.4,an],colors:xn(sn?js.PLAYER:js.ENEMY),count:5,size:0.07,speed:1.5,lifetime:0.24,flash:!1})}function qbe(rn,nn,an){KM.shatter(rn,{position:[nn,1.2,an],colors:xn(js.ENEMY),count:12,size:0.14,speed:3,lifetime:0.5,gravity:-7})}function TG(rn){KM.confetti(rn,{position:[0,2,-12],colors:[xn(js.PLAYER),[1,0.82,0.35,1],py],count:35,size:0.1,speed:5,lifetime:1.2,gravity:-4})}function Ybe(rn,nn){rn.despawn(nn.root)}var py,Wbe=(rn)=>xn(rn.factor<0?js.GATE_DANGER:rn.factor>=3?js.GATE_HIGH:js.GATE),_G=null;var Kbe=e(()=>{r0();na();Hn();iy();py=[1,1,1,1]});import{World as lxt}from"@nayan-ui/engine";function jbe(rn){let nn=new lxt(kn.WORLD_CAPACITY);return{world:nn,renderer:new hG(nn,Rbe()),sim:bG(),camera:{eye:[0,19,15],target:[0,0,-13],fov:0.9},night:rn.mode==="dark",view:null,scene:null,phase:"ready",won:!1,active:!0,pending:0,clock:0,lastHud:-1,lastEffect:-1,hudKey:"",feedback:{},get score(){return this.sim.score},onPhase:(an)=>{},onHud:(an)=>{},onEvent:(an)=>{}}}function $be(rn,nn,an){if(rn.world.isDisposed||nn<=0||an<=0)return;if(rn.view=Hbe(nn,an,rn.camera),!rn.scene)rn.scene=vG(rn.world,rn.night,rn.sim);XM(rn.world,rn.scene,rn.sim,!0),rn.world.update(0),rn.renderer.sync(rn.sim,1,rn.clock)}function Zbe(rn,nn){let an=nn.mode==="dark";if(rn.world.isDisposed||an===rn.night)return;if(rn.night=an,rn.scene)Ybe(rn.world,rn.scene),rn.scene=vG(rn.world,rn.night,rn.sim)}function xG(rn,nn=!1){if(!nn&&rn.clock-rn.lastHud<kn.HUD_INTERVAL)return!1;rn.lastHud=rn.clock;let an=rn.sim,sn=`${an.score}/${an.hp}/${an.playerStrength}/${an.level}`;if(sn!==rn.hudKey)rn.hudKey=sn,rn.onHud({score:an.score,hp:an.hp,army:an.playerStrength,level:an.level});return!0}function Qbe(rn){eye(rn,rn.sim.level)}function Jbe(rn){eye(rn,rn.sim.level+(rn.won?1:0))}function eye(rn,nn){if(rn.world.isDisposed)return;if(rn.sim=bG(void 0,nn),rn.won=!1,rn.pending=0,rn.camera.shake=0,rn.hudKey="",rn.feedback={},rn.world.cancelTimers(),rn.scene)rn.world.stopAnimation(rn.scene.barrel),rn.world.set(rn.scene.barrel,{position:[0,0.92,-0.1]}),XM(rn.world,rn.scene,rn.sim,!0);rn.phase="ready",xG(rn,!0),rn.onPhase("ready"),rn.world.update(0),rn.renderer.sync(rn.sim,1,rn.clock)}function tye(rn){if(rn.world.isDisposed||!rn.scene||rn.phase!=="ready")return;rn.pending=0,rn.phase="playing",rn.onPhase("playing")}function oye(rn,nn){if(rn.world.isDisposed||!rn.active||rn.phase!=="playing"||!rn.view)return;rn.sim.targetX=Math.max(-kn.CANNON_LIMIT,Math.min(kn.CANNON_LIMIT,(nn-rn.view.width/2)/rn.view.k))}function rye(rn,nn){rn.active=nn,rn.pending=0}function nye(rn){if(rn.world.isDisposed)return;rn.renderer.dispose(),rn.world.dispose()}function Xp(rn,nn,an=0){if(rn.clock-(rn.feedback[nn]??-100)<an)return;rn.feedback[nn]=rn.clock,rn.onEvent(nn)}function aye(rn,nn){if(rn.world.isDisposed||!rn.active||!Number.isFinite(nn)||nn<0)return;if(nn=Math.min(nn,kn.MAX_FRAME),rn.clock+=nn,rn.phase==="playing"){rn.pending=Math.min(rn.pending+nn,kn.MAX_FRAME+kn.STEP);while(rn.phase==="playing"&&rn.pending+0.000000001>=kn.STEP)rn.pending=Math.max(0,rn.pending-kn.STEP),cxt(rn)}let an=xG(rn);if(rn.scene)XM(rn.world,rn.scene,rn.sim,an);rn.world.update(nn),rn.renderer.sync(rn.sim,rn.phase==="playing"?Math.min(1,rn.pending/kn.STEP):1,rn.clock)}function cxt(rn){let nn=Ibe(rn.sim,kn.STEP),an=rn.scene;if(nn.shots){if(Xp(rn,"shoot"),an)Vbe(rn.world,an)}if(nn.gates)Xp(rn,"gate",0.14);if(nn.champion)Xp(rn,"champion");if(nn.bossDefeated&&!nn.won)Xp(rn,"boss"),TG(rn.world);if(nn.clashes)Xp(rn,"clash",0.15);if(nn.hits)Xp(rn,"hit",0.13);if(nn.breaches)rn.camera.shake=0.18,Xp(rn,"damage",0.35);if(an&&nn.captured){for(let sn=0;sn<rn.sim.bases.length;sn++)if(rn.sim.bases[sn].hp===0&&!an.bases[sn].captured)qbe(rn.world,rn.sim.bases[sn].x,rn.sim.bases[sn].z)}if(nn.won)TG(rn.world);if(nn.effectCount&&rn.clock-rn.lastEffect>=kn.EFFECT_INTERVAL){rn.lastEffect=rn.clock;for(let sn=0;sn<Math.min(2,nn.effectCount);sn++)zbe(rn.world,nn.effectX[sn],nn.effectZ[sn],nn.effectTeam[sn]===1)}if(nn.won||nn.lost)rn.won=nn.won,rn.phase="over",xG(rn,!0),Xp(rn,nn.won?"win":"lose"),rn.onPhase("over")}var Xbe;var sye=e(()=>{iy();Abe();Mbe();Obe();Kbe();Xbe={score:0,hp:kn.PLAYER_HP,army:0,level:1}});var $o={};n($o,{MobControl:()=>Ct});import{useMemo as uxt}from"react";import{jsx as dxt}from"react/jsx-runtime";var n0,iye,Ct;var J=e(()=>{Ta();l();a();_a();o();xa();va();iy();sye();n0=t.MOB_CONTROL,iye={shoot:{sound:n0.SHOOT},gate:{sound:n0.GATE,haptic:"light"},hit:{sound:n0.HIT},clash:{sound:n0.CLASH,haptic:"light"},boss:{sound:n0.LEVEL_UP,haptic:"success"},damage:{sound:n0.DAMAGE,haptic:"warning"},champion:{sound:n0.LEVEL_UP,haptic:"heavy"},win:{sound:t.WELL_DONE,haptic:"success"},lose:{sound:n0.GAME_OVER,haptic:"error"}},Ct=Vn("mob-control",(rn)=>{let[nn,an]=gn(Xbe,0),{game:sn,theme:ln,status:cn,screen:un,gameOver:dn}=zn(rn,{gameId:"mob-control",create:jbe,start:tye,reset:Qbe,replay:Jbe,dispose:nye,tick:aye,setTheme:Zbe,setActive:rye,resize:$be,drag:(hn,bn)=>{if(!bn.cancelled&&bn.phase!=="end")oye(hn,bn.x)},sounds:n0,onStart:(hn)=>hn(n0.START,"success"),resultsDelay:(hn)=>hn==="win"?1300:650,wire:(hn,bn)=>{hn.onHud=an,hn.onEvent=(yn)=>bn(iye[yn].sound,iye[yn].haptic)}}),pn=ln.mode==="dark",mn=Math.ceil(nn.hp/kn.PLAYER_HP*100),fn=uxt(()=>pn?vbe:_be,[pn]);return dxt(Un,{...un,source:sn.renderer,light:fn,background:pn?Sbe:Ebe,fog:0.007,columns:[Qn(nn.score),ma("SHIELD",`${mn}%`,js.HP_PLAYER),ma("ARMY",nn.army)],subtext:"Aim and grow mobs!",gameOver:dn({title:cn==="win"?"LEVEL CLEARED!":"DEFENSE BREACHED",message:cn==="win"?`Level ${nn.level} conquered! ${mn}% shield remaining.`:`Your cannon fell in level ${nn.level}. Chain multiplier gates and use your champion to stop the red mob.`,scoreLabel:"Battle Score",score:nn.score,buttonText:cn==="win"?"Next Level!":"Try Again!"})})})});function mye(rn,nn,an){let sn=Math.round(rn/(an?44:32));return{cols:Math.ceil(rn/sn),rows:Math.ceil(nn/sn),cell:sn}}function fye(rn,nn,an){let sn=rn/an.cols,ln=nn/an.rows/Math.cos(jM),cn=an.rows*ln,un=an.cell*(AG+ZM+jp.SCALE*jp.HEIGHT*jp.CELEBRATION_SCALE),dn=cn*Math.sin(jM)/2+un*Math.cos(jM)+80;return{...an,width:rn,height:nn,tilt:jM,columnWidth:sn,rowDepth:ln,eyeDistance:dn,centerY:nn/2,gridW:rn,gridH:cn}}var $M=92,lye=2,cye=1,nh=120000,uye=10,dye=10,RG=10,$p,my,jM=0.48,di=0.25,pye,AG=0.32,ZM=0.22,jp,a0,$_=(rn,nn,an)=>[(nn+0.5)*rn.columnWidth-rn.gridW/2,rn.gridH/2-(an+0.5)*rn.rowDepth];var fy=e(()=>{Hn();$p=[{territory:"#62B96E",trail:"#6BCB77",head:"#6BCB77",headDark:"#4CA85B"},{territory:"#E86262",trail:"#FF6B6B",head:"#FF6B6B",headDark:"#D64C4C"}],my={CLASSIC_BOARD:"rgba(0, 0, 0, 0.18)",FLASH:"#FFFFFF",EYE:"#FFFFFF",PUPIL:"#2C2C44"},pye=Zn([-0.4,0.5,1],0.5),jp={SCALE:3.2,STRIDE:0.38,HEIGHT:3.06,CELEBRATION_SCALE:1.5},a0={SKIN:["#DFAC87","#A57355"],HAIR:"#352A24",PANTS:"#2F3D50",SHOE:"#38414A",SOLE:"#EEE9DF",POLE:"#CCD4D8",BADGE:"#E8D4A3"}});function Ul(rn,nn,an,sn=0){return[rn.width/2+nn,rn.centerY-(an*Math.cos(rn.tilt)+sn*Math.sin(rn.tilt))]}function Wa(rn,nn,an,sn=0){return[nn-rn.width/2,(rn.centerY-an-sn*Math.sin(rn.tilt))/Math.cos(rn.tilt)]}function ya(rn,nn){let an=nn.centerY-nn.height/2,sn=[0,Math.cos(nn.tilt),Math.sin(nn.tilt)],ln=[0,-Math.sin(nn.tilt),Math.cos(nn.tilt)];rn.target=[0,sn[1]*an,sn[2]*an],rn.eye=[0,rn.target[1]+ln[1]*240,rn.target[2]+ln[2]*240],rn.ortho=nn.height/2}function Ea(rn,nn,an,sn){let ln=an.centerY-an.height/2,cn=Math.cos(an.tilt);rn.set(nn,{position:[-an.width/2,(an.height/2+ln+sn*Math.sin(an.tilt))/cn,-sn],scale:[1,1/cn,1]})}var ba=()=>{};function MG(rn){let{cols:nn,rows:an,cell:sn}=rn,ln=nn*an,cn=Array(ln).fill(0),un=[],dn=cye,pn=dn+1,mn=Math.max(pn,Math.round(250/sn)),fn=Math.floor(nn/2);for(let bn=0;bn<lye;bn++){let yn=bn===0?{col:fn,row:an-1-mn}:{col:fn,row:mn},En=bn+1;for(let Sn=yn.row-dn;Sn<=yn.row+dn;Sn++)for(let _n=yn.col-dn;_n<=yn.col+dn;_n++)if(_n>=0&&_n<nn&&Sn>=0&&Sn<an)cn[Sn*nn+_n]=En;un.push({id:En,index:bn,isBot:bn!==0,alive:!0,col:yn.col,row:yn.row,dir:Gs.RIGHT,pendingDir:Gs.RIGHT,trail:[],homeCol:yn.col,homeRow:yn.row,botState:"expand",botStepsOut:0,botTurned:!1})}let hn={...rn,total:ln,owners:cn,trails:Array(ln).fill(0),players:un,counts:[]};return hn.counts=un.map((bn)=>Eye(hn,bn.id)),hn}function Z_(rn){let nn=rn.counts[0]??0,an=rn.counts[1]??0,sn=1;for(let ln of rn.players)if(ln.id!==1&&(rn.counts[ln.id-1]??0)>nn)sn++;return{score:nn*dye,territoryPct:Math.round(nn/rn.total*1000)/10,aiPct:Math.round(an/rn.total*1000)/10,rank:sn,alivePlayers:rn.players.filter((ln)=>ln.alive).length}}function Sye(rn,nn){let an=rn.players[0];if(!an||!an.alive)return!1;let sn=Gs[nn];if(sn.dx===-an.dir.dx&&sn.dy===-an.dir.dy)return!1;if(sn.dx!==an.pendingDir.dx||sn.dy!==an.pendingDir.dy)return an.pendingDir=sn,!0;return!1}function QM(rn,nn,an){for(let sn of an){if(sn.dx===-nn.dir.dx&&sn.dy===-nn.dir.dy)continue;let ln=nn.col+sn.dx,cn=nn.row+sn.dy;if(ln<0||ln>=rn.cols||cn<0||cn>=rn.rows)continue;if(rn.trails[cn*rn.cols+ln]===nn.id)continue;return sn}return null}function JM(rn,nn,an){let sn=0,{col:ln,row:cn}=nn;while(sn<rn.cols+rn.rows){if(ln+=an.dx,cn+=an.dy,ln<0||ln>=rn.cols||cn<0||cn>=rn.rows)break;sn++}return sn}function pxt(rn,nn){let an=yye([Gs.UP,Gs.DOWN,Gs.LEFT,Gs.RIGHT]);return an.sort((sn,ln)=>JM(rn,nn,ln)-JM(rn,nn,sn)),QM(rn,nn,an)}function mxt(rn,nn){if(nn.trail.length===0)nn.botState="expand",nn.botTurned=!1,nn.botStepsOut=12+Math.floor(Math.random()*10),nn.pendingDir=pxt(rn,nn)??nn.dir;else if(nn.botState==="expand"){if(nn.botStepsOut--,nn.trail.length>90)nn.botState="return";else if(nn.botStepsOut<=0)if(!nn.botTurned){let ln=nn.dir.dx!==0?[Gs.UP,Gs.DOWN]:[Gs.LEFT,Gs.RIGHT];ln.sort((un,dn)=>JM(rn,nn,dn)-JM(rn,nn,un));let cn=QM(rn,nn,ln);if(cn)nn.pendingDir=cn,nn.botTurned=!0,nn.botStepsOut=10+Math.floor(Math.random()*10);else nn.botState="return"}else nn.botState="return"}if(nn.botState==="return"){let ln=nn.homeCol-nn.col,cn=nn.homeRow-nn.row,un=[];if(Math.abs(ln)>=Math.abs(cn)){if(ln!==0)un.push(ln>0?Gs.RIGHT:Gs.LEFT);if(cn!==0)un.push(cn>0?Gs.DOWN:Gs.UP)}else{if(cn!==0)un.push(cn>0?Gs.DOWN:Gs.UP);if(ln!==0)un.push(ln>0?Gs.RIGHT:Gs.LEFT)}un.push(nn.dir);let dn=QM(rn,nn,un);if(dn)nn.pendingDir=dn}let an=nn.col+nn.pendingDir.dx,sn=nn.row+nn.pendingDir.dy;if(an<0||an>=rn.cols||sn<0||sn>=rn.rows||rn.trails[sn*rn.cols+an]===nn.id){let ln=QM(rn,nn,yye([Gs.UP,Gs.DOWN,Gs.LEFT,Gs.RIGHT]));if(ln)nn.pendingDir=ln}}function fxt(rn,nn){let{cols:an,rows:sn,total:ln,owners:cn,trails:un}=rn,dn=nn.id;for(let hn of nn.trail)cn[hn]=dn,un[hn]=0;nn.trail=[];let pn=new Uint8Array(ln),mn=[],fn=(hn,bn)=>{if(hn<0||hn>=an||bn<0||bn>=sn)return;let yn=bn*an+hn;if(pn[yn]||cn[yn]===dn)return;pn[yn]=1,mn.push(yn)};for(let hn=0;hn<an;hn++)fn(hn,0),fn(hn,sn-1);for(let hn=0;hn<sn;hn++)fn(0,hn),fn(an-1,hn);while(mn.length>0){let hn=mn.pop(),bn=hn%an,yn=(hn-bn)/an;fn(bn-1,yn),fn(bn+1,yn),fn(bn,yn-1),fn(bn,yn+1)}for(let hn=0;hn<ln;hn++)if(!pn[hn]&&cn[hn]!==dn)cn[hn]=dn}function hxt(rn,nn){if(nn.pendingDir.dx!==-nn.dir.dx||nn.pendingDir.dy!==-nn.dir.dy)nn.dir=nn.pendingDir;let an=nn.col+nn.dir.dx,sn=nn.row+nn.dir.dy;if(an<0||an>=rn.cols||sn<0||sn>=rn.rows)return bye;let ln=sn*rn.cols+an;nn.col=an,nn.row=sn;let cn=rn.trails[ln]===nn.id;if(rn.owners[ln]===nn.id||cn){if(nn.trail.length>0)return fxt(rn,nn),vye}else if(rn.trails[ln]===0)return rn.trails[ln]=nn.id,nn.trail.push(ln),_ye;return bye}function Tye(rn){let{players:nn}=rn;for(let ln of nn)if(ln.alive&&ln.isBot)mxt(rn,ln);let an=nn.map((ln)=>{if(!ln.alive)return-1;let cn=hye(ln),un=ln.col+cn.dx,dn=ln.row+cn.dy;return un>=0&&un<rn.cols&&dn>=0&&dn<rn.rows?dn*rn.cols+un:-1}),sn={trailCells:[],territory:!1,trails:!1,captured:nn.map(()=>!1),full:!1,won:!1};for(let ln=0;ln<nn.length;ln++){let cn=nn[ln];if(!cn.alive)continue;let un=an[ln];if(un>=0&&an.some((pn,mn)=>mn!==ln&&pn===un)){cn.dir=hye(cn);continue}let dn=hxt(rn,cn);if(dn===_ye)sn.trails=!0,sn.trailCells.push(cn.row*rn.cols+cn.col);else if(dn===vye)sn.territory=!0,sn.trails=!0,sn.captured[ln]=!0}if(sn.territory){rn.counts=nn.map((un)=>Eye(rn,un.id));let ln=rn.counts[0]??0,cn=rn.counts[1]??0;if(ln+cn>=rn.total)sn.full=!0,sn.won=ln>cn}return sn}var Gs,yye=(rn)=>{let nn=rn.slice();for(let an=nn.length-1;an>0;an--){let sn=Math.floor(Math.random()*(an+1)),ln=nn[an];nn[an]=nn[sn],nn[sn]=ln}return nn},Eye=(rn,nn)=>{let an=0;for(let sn=0;sn<rn.total;sn++)if(rn.owners[sn]===nn)an++;return an},hye=(rn)=>rn.pendingDir.dx!==-rn.dir.dx||rn.pendingDir.dy!==-rn.dir.dy?rn.pendingDir:rn.dir,bye=0,_ye=1,vye=2;var xye=e(()=>{fy();Gs={UP:{dx:0,dy:-1},DOWN:{dx:0,dy:1},LEFT:{dx:-1,dy:0},RIGHT:{dx:1,dy:0}}});var Zo={};n(Zo,{personMeshes:()=>Q_,warmAssets:()=>xxt});import{block as Rye,ellipsoid as bxt,loft as yxt,merge as Ext,tube as Sxt}from"@nayan-ui/engine";function vxt(rn){let sn=[],ln=[];for(let cn of[1,-1]){let un=sn.length/11;for(let dn=0;dn<=6;dn++)for(let pn=0;pn<=12;pn++){let mn=pn/12,fn=dn/6,hn=mn*Math.PI*2.1-rn+fn*0.7,bn=Math.sin(hn)*mn*0.085,yn=0.085*(Math.sin(hn)+mn*Math.PI*2.1*Math.cos(hn)),En=0.085*mn*0.7*Math.cos(hn),Sn=yn*0.56+0.045*En,_n=0.4368000000000001,vn=-0.78*En,Tn=Math.hypot(Sn,0.4368000000000001,vn),Rn=pn===12||dn===0||dn===6?0.78:1;sn.push(-mn*0.78,bn,fn*0.56-mn*0.045,cn*Sn/Tn,cn*0.4368000000000001/Tn,cn*vn/Tn,Rn,Rn,Rn,mn,fn)}for(let dn=0;dn<6;dn++)for(let pn=0;pn<12;pn++){let mn=un+dn*13+pn,fn=mn+1,hn=mn+12+1,bn=hn+1;if(cn>0)ln.push(mn,fn,hn,fn,bn,hn);else ln.push(mn,hn,fn,fn,hn,bn)}}return{vertices:Float32Array.from(sn),indices:Uint32Array.from(ln)}}function Q_(){return Bn("paper-io/PaperIoMeshes:personMeshes",()=>Txt())}function Txt(){if(eC)return eC;let rn=xn(a0.PANTS),nn=xn(a0.HAIR),an=xn(a0.POLE),sn=xn(a0.SHOE),ln=xn(a0.SOLE),cn=xn(my.EYE),un=xn(my.PUPIL),dn=hy([{geometry:yxt([{z:0.9,bottom:-0.145,top:0.145,width:0.115,square:2.8},{z:1.04,bottom:-0.155,top:0.155,width:0.105,square:2.8},{z:1.3,bottom:-0.225,top:0.225,width:0.13,square:2.6},{z:1.41,bottom:-0.2,top:0.2,width:0.105,square:2.4},{z:1.47,bottom:-0.07,top:0.07,width:0.065,square:2}],{around:16,smoothness:2})},Mc([[0,-0.205,1.37],[0.025,-0.27,1.25],[0.04,-0.29,1.18]],0.075),Mc(Array.from({length:17},(En,Sn)=>[Math.cos(Sn*Math.PI/8)*0.06,Math.sin(Sn*Math.PI/8)*0.07,1.465]),0.015,[0.74,0.74,0.74,1],6)]),pn=hy([Vl([0.108,0.108,0.133],[0.005,0,1.65],_xt,16),Mc([[0,0,1.45],[0,0,1.55]],0.052),Vl([0.026,0.023,0.03],[0.109,0,1.64]),...[-1,1].map((En)=>Vl([0.022,0.017,0.036],[-0.012,En*0.109,1.65])),Mc([[0.04,-0.29,1.18],[0.13,-0.305,1.16],[0.24,-0.31,1.21]],0.05),Vl([0.046,0.045,0.06],[0.24,-0.31,1.22])]),mn=[Vl([0.11,0.116,0.073],[-0.021,0,1.744],nn,16),Vl([0.06,0.104,0.077],[-0.065,0,1.69],nn),Vl([0.115,0.173,0.12],[0,0,0.855],rn),CG(Rye(0.025,0.055,0.075),[0.128,-0.065,1.3],xn(a0.BADGE)),Mc([[0.24,-0.31,0.05],[0.24,-0.31,1.22],[0.24,-0.31,3]],0.013,an,8),Vl([0.025,0.025,0.025],[0.24,-0.31,3.02],an,8),Mc([[0.107,-0.025,1.603],[0.115,0,1.598],[0.107,0.025,1.603]],0.004,[0.36,0.2,0.17,1],6)];for(let En of[-1,1])mn.push(Vl([0.018,0.024,0.017],[0.101,En*0.047,1.678],cn,8)),mn.push(Vl([0.009,0.01,0.012],[0.117,En*0.047,1.678],un,8)),mn.push(Mc([[0.105,En*0.027,1.706],[0.098,En*0.066,1.707]],0.006,nn,6));let fn=hy([Mc([[0,0,0],[0.01,0.04,-0.12],[0.025,0.055,-0.23]],0.073)]),hn=hy([Mc([[0.025,0.055,-0.22],[0.045,0.06,-0.35],[0.075,0.055,-0.46]],0.045),Vl([0.038,0.039,0.06],[0.08,0.055,-0.475])]),bn=hy([Mc([[0,0,0],[0.035,0,-0.34],[-0.01,0,-0.72]],0.072,rn),Vl([0.071,0.071,0.085],[0.035,0,-0.34],rn),Vl([0.142,0.066,0.06],[0.065,0,-0.778],sn),CG(Rye(0.275,0.133,0.025),[0.065,0,-0.832],ln),Mc([[0.11,-0.04,-0.73],[0.11,0.04,-0.73]],0.009,ln,6),Mc([[0.065,-0.04,-0.725],[0.065,0.04,-0.725]],0.009,ln,6)]),yn=[0,Math.PI*2/3,Math.PI*4/3].map((En)=>wn(vxt(En),{center:!1,shine:0.02}));return eC={shirt:dn,skin:pn,details:hy(mn),sleeve:fn,hand:hn,leg:bn,flags:yn},eC}function*xxt(){yield Q_}var _xt,CG=(rn,nn,an)=>({geometry:rn,position:nn,color:an}),Vl=(rn,nn,an,sn=12)=>CG(bxt(rn,void 0,sn),nn,an),Mc=(rn,nn,an,sn=10)=>({geometry:Sxt(rn,{radius:nn,sides:sn,smoothness:3,caps:!0}),color:an}),hy=(rn,nn=0.12)=>wn(Ext(rn),{center:!1,shine:nn}),eC=null;var wt=e(()=>{na();Hn();fy();_xt=[1,1,1,1]});var Qo={};n(Qo,{buildScene:()=>oC,finish:()=>LG,placeHeads:()=>aC,removeScene:()=>rC,setSceneTheme:()=>wG,syncBoard:()=>nC,warmAssets:()=>Ixt});import{effects as Cye,extrude as wye,Path as Lye,quat as J_}from"@nayan-ui/engine";function Axt(rn,nn,an,sn){let ln=(mn,fn)=>mn<0||mn>=rn.cols||fn<0||fn>=rn.rows||rn.owners[fn*rn.cols+mn]===sn,cn=ln(nn,an-1),un=ln(nn+1,an),dn=ln(nn,an+1),pn=ln(nn-1,an);return(!cn&&!pn?1:0)|(!cn&&!un?2:0)|(!dn&&!un?4:0)|(!dn&&!pn?8:0)}function gye(rn){if(!rn)return"cube";return Iye(`pio-land:${rn}`,()=>{let nn=(rn&rn-1)===0?0.95:0.48,[an,sn,ln,cn]=[1,2,4,8].map((dn)=>rn&dn?nn:0),un=new Lye().moveTo(-0.5+an,-0.5).lineTo(0.5-sn,-0.5);if(sn)un.arcTo(sn,sn,0,!1,!0,0.5,-0.5+sn);if(un.lineTo(0.5,0.5-ln),ln)un.arcTo(ln,ln,0,!1,!0,0.5-ln,0.5);if(un.lineTo(-0.5+cn,0.5),cn)un.arcTo(cn,cn,0,!1,!0,-0.5,0.5-cn);if(un.lineTo(-0.5,-0.5+an),an)un.arcTo(an,an,0,!1,!0,-0.5+an,-0.5);return wn(wye(un.close(),{depth:1}),{center:!1})})}function Lxt(rn,nn,an,sn){let ln=$p[an],cn=Q_(),un=rn.spawn({mesh:"none",parent:sn,pickable:!1}),dn=rn.spawn({mesh:"none",parent:un,scale:nn.cell*jp.SCALE,pickable:!1}),pn=xn(a0.SKIN[an%a0.SKIN.length]);rn.spawn({mesh:cn.shirt,parent:dn,color:xn(ln.head),pickable:!1}),rn.spawn({mesh:cn.skin,parent:dn,color:pn,pickable:!1}),rn.spawn({mesh:cn.details,parent:dn,pickable:!1});let mn=[-1,1].map((yn)=>{let En=rn.spawn({mesh:"none",parent:dn,position:[0,yn*0.11,0.86],pickable:!1});return rn.spawn({mesh:cn.leg,parent:En,pickable:!1}),En}),fn=rn.spawn({mesh:"none",parent:dn,position:[0,0.205,1.37],pickable:!1});rn.spawn({mesh:cn.sleeve,parent:fn,color:xn(ln.head),pickable:!1}),rn.spawn({mesh:cn.hand,parent:fn,color:pn,pickable:!1});let hn=rn.spawn({mesh:"none",parent:dn,position:[0.24,-0.31,2.4],pickable:!1}),bn=rn.spawn({mesh:cn.flags[an%cn.flags.length],parent:hn,rotation:J_.z(-0.055),color:xn(ln.head),pickable:!1});return rn.animate(bn,{rotation:J_.z(0.055)},{duration:0.5+an*0.08,repeat:"forever",yoyo:!0,easing:"easeInOut"}),{root:un,visual:dn,legs:mn,arm:fn,flag:bn,stride:an,col:-1,row:-1,walking:!1}}function Gye(rn,nn){for(let an of[...nn.legs,nn.arm])rn.stopAnimation(an),rn.animate(an,{rotation:[0,0,0,1]},{duration:0.15});rn.stopAnimation(nn.visual),rn.set(nn.visual,{position:[0,0,0]}),nn.walking=!1}function oC(rn,nn,an,sn){let ln=rn.spawn({mesh:"none",scale:di,pickable:!1}),cn=oa(rn,nn.width,nn.height,-Mye,an);rn.set(cn,{parent:ln}),Ea(rn,cn,nn,Mye);let un=rn.spawn({mesh:Pye(nn.gridW,nn.gridH,an.mode==="classic"?0:8),parent:ln,position:[0,0,-Oye/2],color:Dye(an),pickable:!1}),dn={root:ln,backdrop:cn,board:un,land:Array(sn.total).fill(null),landOwner:new Int8Array(sn.total),landCorners:new Uint8Array(sn.total),trail:Array(sn.total).fill(null),trailOwner:new Int8Array(sn.total),heads:sn.players.map((pn,mn)=>Lxt(rn,nn,mn,ln))};return nC(rn,nn,dn,sn,!1),aC(rn,nn,dn,sn,!1),dn}function rC(rn,nn){rn.despawn(nn.root)}function wG(rn,nn,an,sn){aa(rn,an.backdrop,sn),rn.set(an.board,{mesh:Pye(nn.gridW,nn.gridH,sn.mode==="classic"?0:8),color:Dye(sn)})}function nC(rn,nn,an,sn,ln,cn){let un=Nye(nn),dn=nn.cell*ZM;for(let pn=0,mn=cn?.length??sn.total;pn<mn;pn++){let fn=cn?cn[pn]:pn,hn=sn.owners[fn],bn=fn%sn.cols,yn=(fn-bn)/sn.cols,En=hn?Axt(sn,bn,yn,hn):0;if(hn!==an.landOwner[fn]||En!==an.landCorners[fn]){let[_n,vn]=$_(nn,bn,yn),Tn=an.land[fn];if(hn===0){if(Tn!=null)rn.despawn(Tn);an.land[fn]=null}else{let Rn=Mxt(hn),An=gye(En);if(Tn==null)Tn=rn.spawn({mesh:An,parent:an.root,position:[_n,vn,un/2],scale:[nn.columnWidth,nn.rowDepth,un],color:Rn,pickable:!1}),an.land[fn]=Tn;else rn.set(Tn,{mesh:An});if(ln&&hn!==an.landOwner[fn])rn.stopAnimation(Tn),rn.set(Tn,{color:xn(my.FLASH),position:[_n,vn,un*0.75],scale:[nn.columnWidth,nn.rowDepth,un*1.5]}),rn.animate(Tn,{color:Rn,position:[_n,vn,un/2],scale:[nn.columnWidth,nn.rowDepth,un]},{duration:Rxt,easing:"easeOut"});else rn.set(Tn,{color:Rn})}an.landOwner[fn]=hn,an.landCorners[fn]=En}let Sn=sn.trails[fn];if(Sn!==an.trailOwner[fn]){let _n=an.trail[fn];if(_n!=null)rn.despawn(_n);if(an.trail[fn]=null,Sn!==0){let vn=fn%sn.cols,Tn=(fn-vn)/sn.cols,[Rn,An]=$_(nn,vn,Tn),Mn=rn.spawn({mesh:"cube",parent:an.root,position:[Rn,An,un+dn/2],scale:[nn.columnWidth*0.86,nn.rowDepth*0.86,dn],color:Cxt(Sn),pickable:!1});rn.set(Mn,{scale:[nn.columnWidth*0.4,nn.rowDepth*0.4,dn]}),rn.animate(Mn,{scale:[nn.columnWidth*0.86,nn.rowDepth*0.86,dn]},{duration:0.12,easing:"back"}),an.trail[fn]=Mn}an.trailOwner[fn]=Sn}}}function aC(rn,nn,an,sn,ln,cn=[]){sn.players.forEach((un,dn)=>{let pn=an.heads[dn];if(!pn)return;let[mn,fn]=$_(nn,un.col,un.row),hn=Nye(nn)+(sn.trails[un.row*sn.cols+un.col]?nn.cell*ZM:0)+nn.cell*0.02,bn=wxt(un.dir),yn=pn.col!==un.col||pn.row!==un.row;if(ln){if(rn.animate(pn.root,{position:[mn,fn,hn]},{duration:tC,easing:"linear"}),rn.animate(pn.root,{rotation:bn},{duration:0.14}),yn&&un.alive){let En=++pn.stride%2===0?1:-1;pn.legs.forEach((_n,vn)=>rn.animate(_n,{rotation:J_.y(jp.STRIDE*En*(vn===0?1:-1))},{duration:tC,easing:"easeInOut"})),rn.animate(pn.arm,{rotation:J_.y(-jp.STRIDE*En*0.7)},{duration:tC,easing:"easeInOut"}),rn.animate(pn.visual,[{position:[0,0,nn.cell*0.055],at:0.5},{position:[0,0,0]}],{duration:tC,easing:"easeInOut"});let Sn=Q_().flags;rn.set(pn.flag,{mesh:Sn[pn.stride%Sn.length]}),pn.walking=!0}else if(pn.walking)Gye(rn,pn)}else rn.stopAnimation(pn.root),rn.set(pn.root,{position:[mn,fn,hn],rotation:bn,scale:un.alive?1:0});if(pn.col=un.col,pn.row=un.row,cn[dn]){rn.animate(pn.root,[{scale:1.22,at:0.3},{scale:1}],{duration:0.35,easing:"easeOut"});let[En,Sn]=$_(nn,un.col,un.row);Cye.shatter(rn,{position:[En*di,Sn*di,(hn+nn.cell)*di],count:14,size:nn.cell*0.3*di,speed:nn.cell*8*di,lifetime:0.5,gravity:-nn.cell*20*di,colors:[xn($p[dn].head),xn("#FFFFFF")]})}})}function LG(rn,nn,an,sn){if(an.heads.forEach((ln,cn)=>{Gye(rn,ln);let un=cn===0===sn;if(rn.stopAnimation(ln.root),un)rn.animate(ln.root,[{scale:jp.CELEBRATION_SCALE,at:0.4},{scale:1.3}],{duration:0.5,easing:"easeOut"});else rn.animate(ln.root,{scale:0.75},{duration:0.4})}),sn)Cye.confetti(rn,{position:[0,0,nn.cell*3*di],count:70,size:nn.cell*0.5*di,speed:nn.gridW*1.2*di,lifetime:1.4,gravity:-nn.gridW*2*di,colors:["#6BCB77","#FFD93D","#FFFFFF","#4CA85B"].map((ln)=>xn(ln))})}function*Ixt(){for(let rn=1;rn<16;rn++)yield()=>gye(rn)}var Aye,Iye=(rn,nn)=>{let an=Aye.get(rn);if(!an)an=Bn("paper-io/PaperIoScene:"+rn,nn),Aye.set(rn,an);return an},Oye=8,Mye=30,tC,Rxt=0.48,Pye=(rn,nn,an)=>Iye(`pio-panel:${rn}x${nn}:${an}`,()=>wn(wye(new Lye().addRoundedRect(-rn/2,-nn/2,rn,nn,an),{depth:Oye}),{shine:0.15})),Dye=(rn)=>xn(rn.mode==="classic"?my.CLASSIC_BOARD:rn.BOARD.SURFACE),Mxt=(rn)=>xn($p[rn-1]?.territory??"#888888"),Cxt=(rn)=>xn($p[rn-1]?.trail??"#AAAAAA",0.6),Nye=(rn)=>rn.cell*AG,wxt=(rn)=>J_.z(Math.atan2(-rn.dy,rn.dx));var Lt=e(()=>{u();na();ba();Hn();fy();wt();Aye=new Map,tC=Math.ceil($M/16.666666666666668)*16.666666666666668/1000});import{World as Oxt}from"@nayan-ui/engine";function kye(rn){return{world:null,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,grid:null,layout:null,scene:null,phase:"ready",board:null,stats:null,won:!1,sinceStep:0,fresh:!0,swipe:null,onPhase:(nn)=>{},onStats:(nn)=>{},onTime:(nn)=>{},onEvent:(nn)=>{}}}function Bye(rn,nn){if(!rn.world)rn.world=new Oxt(nn.cols*nn.rows*2+200),rn.world.scoreboard.reset(0,nh/1000),rn.world.scoreboard.handlers={onSecond:(sn)=>rn.onTime(sn),onTimeUp:()=>rn.phase==="playing"&&rn.board&&qye(rn,(rn.board.counts[0]??0)>(rn.board.counts[1]??0))},rn.grid={cols:nn.cols,rows:nn.rows,cell:nn.cell},rn.board=MG(rn.grid),rn.stats=Z_(rn.board),rn.onStats(rn.stats);let an=rn.world;if(rn.scene)rC(an,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.camera.eye=[0,(rn.camera.target[1]-Math.sin(nn.tilt)*nn.eyeDistance)*di,(rn.camera.target[2]+Math.cos(nn.tilt)*nn.eyeDistance)*di],rn.camera.target=[rn.camera.target[0]*di,rn.camera.target[1]*di,rn.camera.target[2]*di],rn.camera.ortho=nn.height*di/2,rn.scene=oC(an,nn,rn.theme,rn.board)}function Fye(rn,nn){if(rn.theme=nn,rn.world&&rn.layout&&rn.scene)wG(rn.world,rn.layout,rn.scene,nn)}function Hye(rn){let{world:nn,grid:an,layout:sn}=rn;if(!nn||!an||!sn)return;if(rn.board=MG(an),rn.stats=Z_(rn.board),rn.scene)rC(nn,rn.scene);rn.scene=oC(nn,sn,rn.theme,rn.board),nn.scoreboard.reset(0,nh/1000),rn.sinceStep=0,rn.won=!1,rn.swipe=null,rn.onStats(rn.stats),rn.onTime(Math.round(nh/1000))}function Wye(rn){if(rn.phase!=="ready"||!rn.world)return;Hye(rn),rn.world.scoreboard.startCountdown(nh/1000),rn.fresh=!0,rn.phase="playing",rn.onPhase("playing")}function Uye(rn){Hye(rn),rn.phase="ready",rn.onPhase("ready")}function Vye(rn){rn.world?.dispose()}function zye(rn,nn){let{world:an,board:sn}=rn;if(!an||an.isDisposed)return;if(rn.phase==="playing"&&sn){let ln=rn.fresh?0:Math.min(nn,0.25)*1000;rn.fresh=!1,Pxt(rn,sn,ln)}an.update(nn)}function Pxt(rn,nn,an){if(rn.sinceStep+=an,rn.sinceStep<$M)return;rn.sinceStep=0;let sn=Tye(nn),{world:ln,layout:cn,scene:un}=rn;if(ln&&cn&&un){if(sn.territory||sn.trails)nC(ln,cn,un,nn,sn.territory&&!sn.full,sn.territory?void 0:sn.trailCells);aC(ln,cn,un,nn,!0,sn.captured)}if(sn.territory)rn.stats=Z_(nn),rn.onStats(rn.stats);if(sn.captured[0])rn.onEvent("capture");if(sn.full)qye(rn,sn.won)}function qye(rn,nn){if(rn.world?.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.swipe=null,rn.board)rn.stats=Z_(rn.board),rn.onStats(rn.stats);if(rn.world&&rn.layout&&rn.scene)LG(rn.world,rn.layout,rn.scene,nn);rn.onPhase("over"),rn.onEvent("over")}function Yye(rn,{phase:nn,x:an,y:sn}){if(nn==="start"){rn.swipe={x:an,y:sn,last:null};return}let ln=rn.swipe;if(!ln||nn==="end"){rn.swipe=null;return}if(rn.phase!=="playing"||!rn.board)return;let cn=an-ln.x,un=sn-ln.y,dn=Math.abs(cn),pn=Math.abs(un);if(dn<RG&&pn<RG)return;let mn=dn>=pn?cn>0?"RIGHT":"LEFT":un>0?"DOWN":"UP";if(mn===ln.last)return;if(ln.last=mn,Sye(rn.board,mn))rn.onEvent("turn")}var Kye=e(()=>{ba();fy();xye();Lt()});var Jo={};n(Jo,{PaperIo:()=>It});import{useMemo as gxt}from"react";import{jsx as Gxt}from"react/jsx-runtime";var by,Dxt,Nxt,It;var ee=e(()=>{Ta();l();a();_a();o();Hn();xa();va();fy();Kye();by=t.PAPER_IO,Dxt=Math.round(nh/1000),Nxt={score:0,territoryPct:0,aiPct:0,rank:1,alivePlayers:1},It=Vn("paper-io",(rn)=>{let[nn,an]=gn(!1),[sn,ln]=gn(Nxt),[cn,un]=gn(Dxt),{game:dn,theme:pn,status:mn,screen:fn,gameOver:hn}=zn(rn,{gameId:"paper-io",create:kye,start:Wye,reset:Uye,dispose:Vye,tick:zye,setTheme:Fye,resize:(yn,En,Sn)=>{let _n=yn.grid??mye(En,Sn,c);Bye(yn,fye(En,Sn,_n)),an(!0)},drag:Yye,reportScore:(yn)=>yn.stats?.score??0,sounds:by,onStart:(yn)=>yn(by.START,"success"),onStop:(yn)=>yn(null,"medium"),wire:(yn,En)=>{yn.onStats=ln,yn.onTime=un,yn.onEvent=(Sn)=>{if(Sn==="turn")En(by.TURN,"selection");else if(Sn==="capture")En(by.CAPTURE,"medium");else En(yn.won?by.WIN:by.GAME_OVER,yn.won?"success":"error")}}}),bn=gxt(()=>ws(pn.BACKGROUND),[pn.BACKGROUND]);return Gxt(Un,{...fn,source:nn&&dn.world?dn.world:null,light:pye,background:bn,columns:[ma("YOU",`${sn.territoryPct}%`,$p[0].head),ta(cn,pn,uye),ma("AI",`${sn.aiPct}%`,$p[1].head)],subtext:"Claim the most land!",gameOver:hn({title:mn==="win"?"YOU WIN!":"GAME OVER",message:mn==="win"?`You beat the AI ${sn.territoryPct}% to ${sn.aiPct}%!`:`You ${sn.territoryPct}% vs AI ${sn.aiPct}% — try again!`,scoreLabel:"Cells Captured",score:sn.score,buttonText:"Play Again!"})})})});function nEe(rn,nn,an){let sn=$n(rn),ln=Math.floor(sn/Zp),cn=Zp*ln,un=la(an)+Bxt,dn=Math.max(un+200,nn-Fxt);return{width:rn,height:nn,tile:ln,laneH:ln*1.25,gridW:cn,gridLeft:Math.round((rn-cn)/2),top:un,bottom:dn}}var Zp=9,sC=9,kxt=3,Qp,Jp,IG,uu=120,OG=2000,Xye=10,jye,$ye,iC=16.666666666666668,PG=50,Zye=(rn)=>Math.min(1+rn*0.065,1.9),ah=0.2,Qye=18,Jye=0.25,$s,dd,pd,lC=0.1,cC=0.92,gG=0.7,eEe,tEe,oEe,rEe,Bxt=82,Fxt=110,md=(rn,nn)=>rn.gridLeft+nn*rn.tile+rn.tile/2;var sh=e(()=>{a();o();Hn();Qp=(()=>{let rn=["grass"],nn=0,an=0;while(nn<sC)if(rn.push("road"),nn++,an++,an===kxt&&nn<sC)rn.push("grass"),an=0;return rn.push("grass"),rn})(),Jp=Qp.length,IG=Jp-1,jye=c?2:1.55,$ye=c?4.15:3.25,$s={GRASS_LIGHT:"#95CF69",GRASS_DARK:"#83BF5C",GRASS_TUFT:"#4E9A2E",ROAD:"#4B5667",ROAD_EDGE:"#3C3C46",ROAD_LINE:"#C9C9CF",CAR_COLORS:["#FF5C5C","#FFD93D","#6BCB77","#A66CFF","#FF9F45","#4D96FF","#37C7C2","#F2EEE2","#EF7CAB"],WHEEL:"#15151A",WINDOW:"#2A3442",PLAYER:"#3B82C4",TRUNK:"#7A4E2D",LEAVES:"#3FA34D",FLOWERS:["#FFFFFF","#FFD1EC","#C7B3FF","#FFF2B0"],CURB:"#C9C6BE",LINE:"#F2F2EE",BUSH:"#3E8E3A",ROCK:"#8E8C88"},dd={SCALE:0.82,HEIGHT:1.817,STRIDE:0.5},pd={SKIN:"#DCA67D",JACKET:$s.PLAYER,PANTS:"#3B4558",HAIR:"#352B27",SHOE:"#39434C",SOLE:"#F0ECE1",BACKPACK:"#CE8248",STRAP:"#72513A"},eEe=[0.62,0.78,0.95],tEe=[0.227,0.192,0.376],oEe={direction:[-0.45,-0.55,1],ambient:0.5,shadowExtent:40},rEe={direction:[-0.3,-0.5,1],ambient:0.66,shadowExtent:40,color:[0.84,0.88,1]}});function aEe(rn,nn){let an=lC,sn=Jp*nn.laneH*an/2,ln=sn-nn.laneH*an/2,cn=dd.HEIGHT*dd.SCALE*nn.tile*an,un=Math.cos(cC),dn=Math.sin(cC),pn=Math.tan(gG/2),mn=nn.width/nn.height,fn=(Sn)=>(un+Sn*pn*dn)/(dn-Sn*pn*un),hn=(Sn)=>1-2*Sn/nn.height,bn=(nn.top+nn.bottom)/2,yn=nn.bottom-nn.top,En=[0,0,0];for(let Sn=0;Sn<80;Sn++){let _n=hn(bn+yn/2),vn=hn(bn-yn/2),Tn=(ln+sn+cn*fn(vn))/(fn(vn)-fn(_n)),Rn=-sn-Tn*fn(_n);if(En=[0,Rn,Tn],((-sn-Rn)*un+Tn*dn)*pn*mn>=(nn.gridW/2+nn.tile*0.3)*an)break;yn*=0.97}rn.eye=En,rn.target=[0,En[1]+En[2]/Math.tan(cC),0],rn.fov=gG,delete rn.ortho}var sEe=e(()=>{sh()});var er={};n(er,{crossyMeshes:()=>fC,warmAssets:()=>qxt});import{merge as Hxt}from"@nayan-ui/engine";function mC(rn,nn){let an=[],sn=[],ln=[0,1,2].map((cn)=>rn.reduce((un,dn)=>un+dn[cn],0)/rn.length);for(let cn of nn){let[un,dn,pn]=cn.map((_n)=>rn[_n]),mn=dn.map((_n,vn)=>_n-un[vn]),fn=pn.map((_n,vn)=>_n-un[vn]),hn=[mn[1]*fn[2]-mn[2]*fn[1],mn[2]*fn[0]-mn[0]*fn[2],mn[0]*fn[1]-mn[1]*fn[0]],bn=[0,1,2].map((_n)=>cn.reduce((vn,Tn)=>vn+rn[Tn][_n],0)/cn.length),yn=hn.reduce((_n,vn,Tn)=>_n+vn*(bn[Tn]-ln[Tn]),0)<0;if(yn)hn=hn.map((_n)=>-_n);let En=Math.hypot(...hn)||1,Sn=an.length/11;for(let _n of cn)an.push(...rn[_n],...hn.map((vn)=>vn/En),1,1,1,0,0);for(let _n=1;_n<cn.length-1;_n++)sn.push(Sn,Sn+(yn?_n+1:_n),Sn+(yn?_n:_n+1))}return{vertices:Float32Array.from(an),indices:Uint32Array.from(sn)}}function cEe(rn,nn,an,sn){return mC([[rn,-0.44,an],[nn,-0.44,an],[nn,0.44,an],[rn,0.44,an],[rn+0.07,-0.36,sn],[nn-0.1,-0.36,sn],[nn-0.1,0.36,sn],[rn+0.07,0.36,sn]],lEe)}function dC(rn){let nn=rn==="bus",an=rn==="pickup",sn=rn==="taxi",ln=nn?2.4:an?1.7:sn?1.5:1.4,cn=[is([0,0,0.3],[0.96,0.94,0.26])],un=[is([0,0,0.17],[0.88,0.82,0.07],yy)];if(nn){un.push(is([0,0,0.65],[0.94,0.91,0.48],iEe)),cn.push(is([0,0,0.91],[0.96,0.94,0.06]));for(let pn of[-1,1]){for(let mn=0;mn<6;mn++)un.push(is([-0.375+mn*0.147,pn*0.462,0.69],[0.118,0.015,0.24],uC));un.push(is([0.2,pn*0.475,0.36],[0.52,0.018,0.055],iEe))}un.push(is([0.478,0,0.69],[0.02,0.78,0.29],uC),is([-0.478,0,0.69],[0.02,0.71,0.22],uC)),un.push(is([0.483,0,0.87],[0.025,0.48,0.075],yy),is([0.49,0,0.87],[0.025,0.3,0.024],[1,0.78,0.3,1])),un.push(is([-0.08,0,0.97],[0.25,0.5,0.07],ev))}else{let pn=an?-0.04:-0.3;un.push({geometry:cEe(pn,0.28,0.43,0.73),color:uC}),cn.push(is([(pn+0.28-0.03)/2,0,0.745],[0.28-pn-0.13,0.76,0.055]));for(let fn of[-1,1])cn.push(is([0.035,fn*0.44,0.57],[0.034,0.04,0.29])),un.push(is([0.14,fn*0.48,0.42],[0.065,0.015,0.022],ev));if(an){un.push(is([-0.28,0,0.438],[0.35,0.7,0.018],yy));for(let fn of[-1,1])cn.push(is([-0.28,fn*0.42,0.49],[0.38,0.07,0.15]));un.push(is([-0.31,0,0.51],[0.15,0.28,0.14],[0.66,0.44,0.25,1]))}if(sn){un.push(is([-0.04,0,0.82],[0.16,0.38,0.1],[1,0.83,0.23,1]));for(let fn of[-1,1])for(let hn=0;hn<5;hn++)un.push(is([-0.28+hn*0.11,fn*0.477,0.32],[0.055,0.015,0.055],yy))}}for(let pn of[-0.31,0.3])for(let mn of[-1,1])un.push({geometry:Vxt,position:[pn,mn*0.46,0.13],scale:[1/ln,1,1],color:yy}),un.push(is([pn,mn*0.529,0.13],[0.11/ln,0.012,0.11],ev));un.push(is([0.485,0,0.22],[0.035,0.8,0.07],ev),is([-0.485,0,0.22],[0.035,0.8,0.07],ev)),un.push(is([0.485,0,0.33],[0.028,0.35,0.08],yy));let dn=[];for(let pn of[-1,1])dn.push(is([0.49,pn*0.34,0.35],[0.03,0.18,0.09],[1,0.94,0.68,1])),dn.push(is([-0.49,pn*0.34,0.35],[0.03,0.14,0.09],[1,0.12,0.08,1]));return{body:Ey(cn),details:Ey(un),lights:Ey(dn)}}function DG(rn,nn,an){let sn=rn/2;return mC([[-sn,-sn,nn],[sn,-sn,nn],[sn,sn,nn],[-sn,sn,nn],[0,0,an]],[[0,1,2,3],[0,1,4],[1,2,4],[2,3,4],[3,0,4]])}function fC(){return Bn("crossy-road/CrossyRoadMeshes:crossyMeshes",()=>zxt())}function zxt(){if(pC)return pC;return pC={vehicles:{compact:dC("compact"),taxi:dC("taxi"),pickup:dC("pickup"),bus:dC("bus")},tree:Ey([is([0,0,0.3],[0.14,0.14,0.6],[0.45,0.28,0.16,1]),{geometry:DG(0.9,0.35,1.1),color:[0.2,0.48,0.3,1]},{geometry:DG(0.7,0.75,1.4),color:[0.26,0.59,0.34,1]},{geometry:DG(0.5,1.1,1.65),color:[0.34,0.67,0.4,1]}]),bush:Ey([is([-0.23,0,0.22],[0.44,0.6,0.44]),is([0.12,0.03,0.3],[0.6,0.65,0.6]),is([0.4,-0.03,0.18],[0.3,0.45,0.36])]),rock:Ey([{geometry:cEe(-0.4,0.4,0,0.4)}])},pC}function*qxt(){yield fC}var Wxt,uC,yy,ev,iEe,lEe,Uxt,is=(rn,nn,an=Wxt)=>({geometry:Uxt,position:rn,scale:nn,color:an}),Ey=(rn)=>wn(Hxt(rn),{center:!1}),Vxt,pC=null;var Ot=e(()=>{na();Wxt=[1,1,1,1],uC=[0.18,0.34,0.42,1],yy=[0.11,0.13,0.17,1],ev=[0.75,0.81,0.82,1],iEe=[0.94,0.94,0.86,1];lEe=[[0,1,2,3],[4,5,6,7],[0,1,5,4],[1,2,6,5],[2,3,7,6],[3,0,4,7]],Uxt=mC([[-0.5,-0.5,-0.5],[0.5,-0.5,-0.5],[0.5,0.5,-0.5],[-0.5,0.5,-0.5],[-0.5,-0.5,0.5],[0.5,-0.5,0.5],[0.5,0.5,0.5],[-0.5,0.5,0.5]],lEe);Vxt=(()=>{let rn=[];for(let nn of[-1,1])for(let an=0;an<8;an++){let sn=an*Math.PI/4;rn.push([Math.cos(sn)*0.13,nn*0.065,Math.sin(sn)*0.13])}return mC(rn,[Array.from({length:8},(nn,an)=>an),Array.from({length:8},(nn,an)=>an+8),...Array.from({length:8},(nn,an)=>[an,(an+1)%8,(an+1)%8+8,an+8])])})()});function NG(rn,nn=0){let an=[],sn=nn,ln=[],cn=-1,un=()=>{if(!ln.length){ln=$s.CAR_COLORS.map((dn,pn)=>pn);for(let dn=ln.length-1;dn>0;dn--){let pn=Math.floor(Math.random()*(dn+1));[ln[dn],ln[pn]]=[ln[pn],ln[dn]]}if(ln[ln.length-1]===cn)[ln[0],ln[ln.length-1]]=[ln[ln.length-1],ln[0]]}return cn=ln.pop(),cn};return Qp.forEach((dn,pn)=>{if(dn!=="road")return;let mn=Math.random()<0.5?1:-1,fn=Math.random()<0.35,hn=fn?"bus":["compact","taxi","pickup"][Math.floor(Math.random()*3)],bn=uEe(jye,$ye)*(fn?0.8:1)*mn,yn=(fn?1:2)+(Math.random()<0.3?1:0),En=rn.tile*{compact:1.4,taxi:1.5,pickup:1.7,bus:2.4}[hn],Sn=rn.width/yn+En,_n=uEe(0,Sn);for(let vn=0;vn<yn;vn++)an.push({id:sn++,row:pn,x:-En+_n+vn*Sn,width:En,speed:bn,colorIndex:un(),style:hn})}),an}function dEe(rn,nn,an){let sn=rn.tile*2;for(let ln of nn){let cn=ln.x+ln.speed*an,un=ln.width+sn;if(ln.speed>0&&cn-ln.width/2>rn.width+un)cn=-un-ln.width/2;else if(ln.speed<0&&cn+ln.width/2<-un)cn=rn.width+un+ln.width/2;ln.x=cn}}function pEe(rn,nn,an,sn){let ln=rn.tile*0.4*0.65;return nn.some((cn)=>Math.abs(cn.row-an)*rn.laneH<rn.tile*0.53&&Math.abs(cn.x-sn)<cn.width/2+ln)}function mEe(rn){let nn=rn.row,an=Math.min(nn+1,IG);if(an===nn)return kG;rn.row=an;let sn=!1;if(an>rn.maxRow){if(rn.maxRow=an,Qp[nn]==="road")rn.crossings++,sn=!0}return{moved:!0,crossed:sn,goal:an===IG}}function fEe(rn){if(rn.row<=0)return kG;return rn.row-=1,{moved:!0,crossed:!1,goal:!1}}function hEe(rn,nn){let an=rn.col+nn;if(an<0||an>=Zp)return kG;return rn.col=an,{moved:!0,crossed:!1,goal:!1}}var uEe=(rn,nn)=>rn+Math.random()*(nn-rn),GG=()=>({row:0,col:Math.floor(Zp/2),maxRow:0,crossings:0}),kG,bEe=(rn,nn)=>md(rn,nn.col),yEe=(rn)=>Zye(rn.crossings);var EEe=e(()=>{sh();kG={moved:!1,crossed:!1,goal:!1}});var tr={};n(tr,{pedestrianMeshes:()=>yC,warmAssets:()=>$xt});import{block as SEe,ellipsoid as Yxt,loft as _Ee,merge as Kxt,tube as Xxt}from"@nayan-ui/engine";function yC(){return Bn("crossy-road/CrossyRoadPerson:pedestrianMeshes",()=>jxt())}function jxt(){if(bC)return bC;let rn=xn(pd.SKIN),nn=xn(pd.JACKET),an=xn(pd.PANTS),sn=xn(pd.HAIR),ln=xn(pd.SHOE),cn=xn(pd.SOLE),un=xn(pd.BACKPACK),dn=xn(pd.STRAP),pn=[{geometry:_Ee([{z:0.9,bottom:-0.12,top:0.13,width:0.15,square:3},{z:1.05,bottom:-0.135,top:0.14,width:0.165,square:3},{z:1.32,bottom:-0.14,top:0.15,width:0.225,square:2.8},{z:1.43,bottom:-0.105,top:0.11,width:0.2,square:2.6},{z:1.48,bottom:-0.065,top:0.07,width:0.075,square:2.4}],{around:16,smoothness:2}),color:nn},du([0.16,0.135,0.12],[0,0,0.86],an),pu([[0,0,1.46],[0,0,1.57]],0.052,rn),du([0.106,0.105,0.135],[0,0.005,1.65],rn,16),du([0.027,0.033,0.031],[0,0.11,1.642],rn),du([0.111,0.108,0.067],[0,-0.012,1.75],sn,16),du([0.103,0.052,0.09],[0,-0.075,1.685],sn),{geometry:_Ee([{z:1.02,bottom:-0.23,top:-0.115,width:0.13,square:4},{z:1.08,bottom:-0.27,top:-0.12,width:0.15,square:4},{z:1.35,bottom:-0.265,top:-0.115,width:0.145,square:4},{z:1.41,bottom:-0.2,top:-0.11,width:0.1,square:3}],{around:12,smoothness:2}),color:un},BG(SEe(0.21,0.028,0.11),[0,-0.269,1.14],dn),pu([[-0.09,-0.278,1.28],[0.09,-0.278,1.28]],0.008,cn,6),pu([[0,0.145,1.02],[0,0.155,1.33],[0,0.08,1.45]],0.007,dn,6),pu([[-0.02,0.107,1.605],[0,0.113,1.6],[0.02,0.107,1.605]],0.004,xn("#8D5044"),6)];for(let bn of[-1,1])pn.push(du([0.019,0.02,0.035],[bn*0.108,-0.002,1.65],rn)),pn.push(du([0.023,0.013,0.015],[bn*0.047,0.099,1.682],cn,8)),pn.push(du([0.01,0.009,0.01],[bn*0.047,0.111,1.681],xn("#293341"),8)),pn.push(pu([[bn*0.026,0.099,1.709],[bn*0.065,0.094,1.71]],0.006,sn,6)),pn.push(pu([[bn*0.13,-0.16,1.38],[bn*0.16,0.02,1.44],[bn*0.13,0.152,1.25],[bn*0.13,0.14,1.03]],0.019,dn));let mn=hC([pu([[0,0,0],[0,0.01,-0.15],[0,0.04,-0.28]],0.071,nn),pu([[0,0.04,-0.27],[0,0.07,-0.38],[0,0.085,-0.49]],0.042,rn),du([0.038,0.044,0.062],[0,0.085,-0.49],rn)]),fn=hC([pu([[0,0,0],[0,0.025,-0.33],[0,-0.01,-0.72]],0.072,an),du([0.073,0.075,0.08],[0,0.025,-0.33],an)]),hn=hC([du([0.068,0.14,0.063],[0,0.075,-0.06],ln),BG(SEe(0.14,0.275,0.025),[0,0.075,-0.115],cn),pu([[-0.04,0.09,-0.005],[0.04,0.09,-0.005]],0.008,cn,6),pu([[-0.04,0.13,-0.01],[0.04,0.13,-0.01]],0.008,cn,6)]);return bC={torso:hC(pn),arm:mn,leg:fn,shoe:hn},bC}function*$xt(){yield yC}var BG=(rn,nn,an)=>({geometry:rn,position:nn,color:an}),du=(rn,nn,an,sn=12)=>BG(Yxt(rn,void 0,sn),nn,an),pu=(rn,nn,an,sn=8)=>({geometry:Xxt(rn,{radius:nn,sides:sn,smoothness:3}),color:an}),hC=(rn)=>wn(Kxt(rn),{center:!1,shine:0.08}),bC=null;var Pt=e(()=>{na();Hn();sh()});import{effects as vEe,quat as Sl}from"@nayan-ui/engine";function Jxt(rn,nn,an,sn,ln){let cn=[],un=(hn)=>cn.push(rn.spawn({pickable:!1,parent:ln,...hn})),dn=Math.ceil((nn.width+nn.tile*12)/nn.tile/2)*2,pn=dn*nn.tile,mn=Jp*nn.laneH;un({mesh:"cube",position:[0,0,-ih-0.6-Sy/2],scale:[pn*3,mn*4,Sy],color:ki($s.GRASS_DARK,sn,0.9)});let fn=(hn)=>-pn/2+hn*nn.tile+nn.tile/2;for(let hn=0;hn<Jp;hn++){let bn=lh(nn,hn);if(Qp[hn]==="road"){for(let En=0;En<dn;En+=2)un({mesh:"cube",position:[fn(En)+nn.tile/2,bn,-ih-Sy/2],scale:[nn.tile*2+0.2,nn.laneH,Sy],color:ki($s.ROAD,sn,0.96+Si(hn*3.1+En)*0.06)});for(let En of[-1,1])un({mesh:"cube",position:[0,bn+En*(nn.laneH/2-3),-ih+0.05],scale:[pn,1.6,0.1],color:ki($s.LINE,sn,0.9)});for(let En=0;En<dn;En++)un({mesh:"cube",position:[fn(En),bn,-ih+0.06],scale:[nn.tile*0.45,1.8,0.12],color:ki($s.LINE,sn,0.85)});for(let En of[-1,1]){if(Qp[hn+En]!=="grass")continue;un({mesh:"cube",position:[0,bn+En*(nn.laneH/2-0.4),(0.9-ih)/2],scale:[pn,3.6,ih+0.9],color:ki($s.CURB,sn)})}continue}let yn=hn%2===0?$s.GRASS_LIGHT:$s.GRASS_DARK;for(let En=0;En<dn;En+=2)un({mesh:"cube",position:[fn(En)+nn.tile/2,bn,-Sy/2],scale:[nn.tile*2+0.2,nn.laneH,Sy],color:ki(yn,sn,0.95+Si(hn*7.7+En*1.3)*0.12)});for(let En=0;En<Zp;En++)un({mesh:"cube",position:[ch(nn,md(nn,En)),bn,0.08],scale:[nn.tile*0.42,nn.laneH*0.34,0.16],color:ki("#C8DF99",sn,0.94)});if(hn===Jp-1)for(let En=0;En<Zp*2;En++)for(let Sn=0;Sn<2;Sn++)un({mesh:"cube",position:[-nn.gridW/2+(En+0.5)*nn.tile/2,bn-nn.laneH*0.36+Sn*nn.laneH*0.12,0.15],scale:[nn.tile/2,nn.laneH*0.12,0.2],color:ki((En+Sn)%2?"#F8F6E9":"#34434A",sn)});for(let En of[-1,1]){let Sn=En*(nn.gridW/2+nn.tile*0.85),_n=nn.tile*0.075;un({mesh:"cube",position:[Sn,bn,nn.tile*0.65],scale:[_n,_n,nn.tile*1.3],color:ki("#56676A",sn)}),un({mesh:"cube",position:[Sn,bn,nn.tile*1.33],scale:[nn.tile*0.26,nn.tile*0.26,nn.tile*0.13],color:sn?[2,1.65,0.9,1]:[0.98,0.92,0.71,1]}),un({mesh:"cube",position:[Sn,bn,nn.tile*1.44],scale:[nn.tile*0.34,nn.tile*0.34,nn.tile*0.08],color:ki("#45565A",sn)})}for(let En=0;En<dn;En++){let Sn=fn(En);if(Math.abs(Sn)>nn.gridW/2+nn.tile*0.2&&Si(hn*5.3+En*1.7)>0.4){let vn=Si(hn*2.9+En*4.1),Tn=(Si(En*3+hn)-0.5)*nn.tile*0.3,Rn=(Si(hn*5+En)-0.5)*nn.laneH*0.3;if(vn<0.7)un({mesh:an.tree,position:[Sn+Tn,bn+Rn,0],rotation:Sl.z(Si(En+hn*9)*Math.PI/2),scale:nn.tile*(0.95+Si(hn+En*2.1)*0.45),color:ki("#FFFFFF",sn,0.9+Si(En+hn)*0.15)});else if(vn<0.88)un({mesh:an.bush,position:[Sn+Tn,bn+Rn,0],scale:nn.tile*0.85,color:ki($s.BUSH,sn)});else un({mesh:an.rock,position:[Sn+Tn,bn+Rn,0],rotation:Sl.z(Si(hn+En*7)*3),scale:[nn.tile*0.7,nn.tile*0.5,nn.tile*0.75],color:ki($s.ROCK,sn,0.85+Si(En*5+hn)*0.2)});continue}if(Si(hn*13.1+En*3.7)>0.62){let vn=nn.tile*0.14;un({mesh:"cone",position:[Sn+(Si(En*2+hn)-0.5)*nn.tile*0.3,bn+(Si(hn+En)-0.5)*nn.laneH*0.5,vn/2],rotation:Qxt,scale:[vn,vn,vn],color:ki($s.GRASS_TUFT,sn)})}if(Si(hn*7.3+En*9.1+5)>0.9){let vn=$s.FLOWERS[Math.floor(Si(hn+En*2)*$s.FLOWERS.length)],Tn=Sn+(Si(hn+En*3)-0.5)*nn.tile*0.2,Rn=bn+(Si(hn*2+En)-0.5)*nn.laneH*0.5;un({mesh:"sphere",position:[Tn,Rn,1.5],scale:4.6,color:ki(vn,sn)}),un({mesh:"sphere",position:[Tn,Rn,2.6],scale:2.4,color:ki("#FFD93D",sn)})}}}return cn}function eRt(rn,nn,an,sn,ln,cn){let un=rn.spawn({mesh:"none",parent:cn,rotation:sn.speed>=0?s0:Zxt,scale:[sn.width,nn.tile*0.66,nn.tile],pickable:!1}),dn=an.vehicles[sn.style],pn=xn($s.CAR_COLORS[sn.colorIndex]??$s.CAR_COLORS[0]);return rn.spawn({mesh:dn.body,parent:un,color:pn,pickable:!1}),rn.spawn({mesh:dn.details,parent:un,pickable:!1}),rn.spawn({mesh:dn.lights,parent:un,color:ln?[1.8,1.8,1.8,1]:[1,1,1,1],pickable:!1}),un}function FG(rn,nn,an,sn){let ln=rn.transforms;for(let cn of sn){let un=an.vehicles.get(cn.id);if(un!=null)ln.position(un,ch(nn,cn.x),lh(nn,cn.row),_y(cn.row))}ln.flush()}function tRt(rn,nn,an){let sn=rn.spawn({mesh:"none",parent:an,pickable:!1}),ln=rn.spawn({mesh:"none",parent:sn,pickable:!1}),cn=rn.spawn({mesh:"none",parent:ln,scale:nn.tile*dd.SCALE,pickable:!1}),un=yC();rn.spawn({mesh:un.torso,parent:cn,pickable:!1});let dn=[-1,1].map((fn)=>rn.spawn({mesh:un.arm,parent:cn,position:[fn*0.235,0,1.4],pickable:!1})),pn=[-1,1].map((fn)=>rn.spawn({mesh:un.leg,parent:cn,position:[fn*0.105,0,0.87],pickable:!1})),mn=pn.map((fn)=>rn.spawn({mesh:un.shoe,parent:fn,position:[0,-0.01,-0.72],pickable:!1}));return{root:sn,body:ln,arms:dn,legs:pn,feet:mn}}function HG(rn,nn){for(let an of[...nn.arms,...nn.legs,...nn.feet])rn.stopAnimation(an),rn.set(an,{rotation:s0});nn.legs.forEach((an,sn)=>rn.set(an,{position:[(sn===0?-1:1)*0.105,0,0.87]}))}function EC(rn,nn,an,sn,ln){rn.stopAnimation(an.player.root),rn.stopAnimation(an.player.body),HG(rn,an.player),rn.set(an.player.root,{position:[ch(nn,md(nn,ln)),lh(nn,sn),_y(sn)],rotation:s0}),rn.set(an.player.body,{scale:1,rotation:[0,0,0,1],position:[0,0,0]})}function WG(rn,nn,an,sn,ln,cn){let un=[ch(nn,md(nn,sn[1])),lh(nn,sn[0]),_y(sn[0])],dn=[ch(nn,md(nn,ln[1])),lh(nn,ln[0]),_y(ln[0])],pn={up:0,down:Math.PI,left:Math.PI/2,right:-Math.PI/2}[cn];rn.stopAnimation(an.player.root),rn.set(an.player.root,{position:un,rotation:Sl.z(pn)}),rn.animate(an.player.root,{position:dn},{duration:ah,easing:"linear"});let mn={duration:ah,easing:"linear"};an.player.legs.forEach((hn,bn)=>{let yn=dd.STRIDE*(bn===0?1:-1),En=(bn===0?-1:1)*0.105,Sn=[En,0,0.87];rn.animate(hn,[{rotation:Sl.x(yn),position:[En,0,0.87+(yn>0?0.12:0)],at:0.25},{rotation:s0,position:Sn,at:0.5},{rotation:Sl.x(-yn),position:[En,0,0.87+(yn<0?0.12:0)],at:0.75},{rotation:s0,position:Sn}],mn),rn.animate(an.player.feet[bn],[{rotation:Sl.x(-yn),at:0.25},{rotation:s0,at:0.5},{rotation:Sl.x(yn),at:0.75},{rotation:s0}],mn)}),an.player.arms.forEach((hn,bn)=>{let yn=-dd.STRIDE*(bn===0?1:-1)*0.8;rn.animate(hn,[{rotation:Sl.x(yn),at:0.25},{rotation:s0,at:0.5},{rotation:Sl.x(-yn),at:0.75},{rotation:s0}],mn)});let fn=0.72*(1-Math.cos(dd.STRIDE))*nn.tile*dd.SCALE;rn.animate(an.player.body,[{position:[0,0,-fn],at:0.25},{position:[0,0,0],at:0.5},{position:[0,0,-fn],at:0.75},{position:[0,0,0]}],mn)}function xEe(rn,nn,an,sn,ln){HG(rn,an.player),rn.animate(an.player.body,{rotation:Sl.x(1.25),position:[0,0,nn.tile*0.05]},{duration:0.24,easing:"easeOut"}),vEe.shatter(rn,{position:TEe([ch(nn,md(nn,ln)),lh(nn,sn),_y(sn)+nn.tile*0.3]),count:10,size:nn.tile*0.08*i0,speed:nn.tile*3*i0,lifetime:0.6,gravity:-nn.tile*6*i0,colors:[xn($s.ROAD_LINE),xn($s.CURB)]})}function REe(rn,nn,an,sn,ln){let cn=[ch(nn,md(nn,ln)),lh(nn,sn),_y(sn)];HG(rn,an.player),rn.animate(an.player.arms[0],[{rotation:Sl.x(-2.5),at:0.3},{rotation:Sl.x(-2),at:0.65},{rotation:s0}],{duration:0.96}),rn.set(an.player.root,{position:cn}),rn.set(an.player.body,{position:[0,0,0]}),vEe.confetti(rn,{position:TEe([cn[0],cn[1],nn.tile]),count:50,size:nn.tile*0.12*i0,speed:nn.tile*6*i0,lifetime:1.2,gravity:-nn.tile*10*i0,colors:$s.CAR_COLORS.slice(0,4).map((un)=>xn(un))})}function AEe(rn,nn,an,sn,ln){let cn=rn.spawn({mesh:"none",scale:i0,pickable:!1}),un={root:cn,ground:Jxt(rn,nn,an,sn,cn),vehicles:new Map,player:tRt(rn,nn,cn),night:sn};return UG(rn,nn,an,un,ln),un}function UG(rn,nn,an,sn,ln){for(let cn of sn.vehicles.values())rn.despawn(cn);sn.vehicles.clear();for(let cn of ln)sn.vehicles.set(cn.id,eRt(rn,nn,an,cn,sn.night,sn.root));FG(rn,nn,sn,ln)}function MEe(rn,nn){rn.despawn(nn.root)}var Sy=8,ih=1.6,s0,Zxt,Qxt,i0,TEe=(rn)=>[rn[0]*i0,rn[1]*i0,rn[2]*i0],Si=(rn)=>{let nn=Math.sin(rn*127.1+311.7)*43758.5453;return nn-Math.floor(nn)},ki=(rn,nn,an=1)=>{let[sn,ln,cn,un]=xn(rn);return[sn*an,ln*an,cn*an,un??1]},lh=(rn,nn)=>(nn-(Jp-1)/2)*rn.laneH,_y=(rn)=>Qp[Math.round(rn)]==="road"?-ih:0,ch=(rn,nn)=>nn-rn.width/2;var CEe=e(()=>{Hn();sh();Pt();s0=[0,0,0,1],Zxt=Sl.z(Math.PI),Qxt=Sl.x(Math.PI/2),i0=lC});import{World as oRt}from"@nayan-ui/engine";function wEe(rn){let nn=new oRt(rRt),sn={world:nn,camera:{eye:[0,-60,60],target:[0,0,0],fov:0.7},assets:fC(),night:rn,layout:null,scene:null,phase:"ready",traffic:[],nextId:0,player:GG(),hopping:null,queuedHop:null,alive:!0,won:!1,get score(){return nn.scoreboard.score},timeLeft:uu,pending:0,clock:0,press:null,onPhase:(ln)=>{},onScore:(ln,cn)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,uu),nn.scoreboard.handlers={onSecond:(ln)=>{sn.timeLeft=ln,sn.onTime(ln)},onTimeUp:()=>sn.phase==="playing"&&sn.alive&&aRt(sn)},sn}function zG(rn,nn){let an=rn.layout,sn=!rn.layout||rn.layout.width!==nn.width||rn.layout.tile!==nn.tile;if(rn.scene)MEe(rn.world,rn.scene);if(rn.layout=nn,aEe(rn.camera,nn),sn&&rn.phase!=="playing")rn.traffic=NG(nn,rn.nextId),rn.nextId+=rn.traffic.length;else if(sn&&an){let ln=nn.tile/an.tile;for(let cn of rn.traffic)cn.x=nn.gridLeft+(cn.x-an.gridLeft)*ln,cn.width*=ln,cn.speed*=ln}if(rn.scene=AEe(rn.world,nn,rn.assets,rn.night,rn.traffic),EC(rn.world,nn,rn.scene,rn.player.row,rn.player.col),rn.hopping){let ln=rn.hopping;ln.elapsed=0,WG(rn.world,nn,rn.scene,[ln.from.row,ln.from.col],[ln.to.row,ln.to.col],ln.direction)}}function LEe(rn,nn){if(nn===rn.night)return;if(rn.night=nn,rn.layout)zG(rn,rn.layout)}function IEe(rn){let nn=rn.layout;if(rn.player=GG(),rn.hopping=null,rn.queuedHop=null,rn.alive=!0,rn.won=!1,rn.world.scoreboard.reset(0,uu),rn.timeLeft=uu,rn.pending=0,rn.press=null,nn){if(rn.traffic=NG(nn,rn.nextId),rn.nextId+=rn.traffic.length,rn.scene)UG(rn.world,nn,rn.assets,rn.scene,rn.traffic),EC(rn.world,nn,rn.scene,0,rn.player.col)}rn.onScore(0,0),rn.onTime(uu)}function OEe(rn){if(rn.phase==="playing")return;IEe(rn),rn.world.scoreboard.startCountdown(uu),rn.phase="playing",rn.onPhase("playing")}function PEe(rn){IEe(rn),rn.phase="ready",rn.onPhase("ready")}function gEe(rn){rn.world.dispose()}function DEe(rn,nn){if(rn.world.isDisposed)return;let an=Math.max(0,Math.min(nn,PG/1000));rn.clock+=an;let sn=rn.layout,ln=!1;if(sn&&rn.phase==="playing"&&rn.alive){let cn=Math.min(rn.pending+an*1000,PG);while(rn.alive&&cn>=iC){cn-=iC,dEe(sn,rn.traffic,yEe(rn.player)),ln=!0;let un=rn.hopping;if(un)un.elapsed=Math.min(ah,un.elapsed+iC/1000);let dn=un?un.elapsed/ah:0,pn=un?un.from.row+(un.to.row-un.from.row)*dn:rn.player.row,mn=un?un.from.col+(un.to.col-un.from.col)*dn:rn.player.col,fn=bEe(sn,rn.player)+(mn-rn.player.col)*sn.tile;if(pEe(sn,rn.traffic,pn,fn))nRt(rn,pn,mn);else if(un&&un.elapsed+0.000001>=ah)sRt(rn,un)}rn.pending=cn}if(ln&&sn&&rn.scene)FG(rn.world,sn,rn.scene,rn.traffic);rn.world.update(an)}function qG(rn,nn){rn.world.scoreboard.stop(),rn.alive=!1,rn.won=nn,rn.press=null,rn.hopping=null,rn.queuedHop=null,rn.phase="over",rn.onPhase("over")}function nRt(rn,nn,an){let{layout:sn,scene:ln}=rn;if(sn&&ln)EC(rn.world,sn,ln,nn,an),xEe(rn.world,sn,ln,nn,an);rn.onEvent("crash"),qG(rn,!1)}function aRt(rn){rn.timeLeft=0,rn.onTime(0),rn.onEvent("timeUp"),qG(rn,!1)}function VG(rn,nn){let{layout:an,scene:sn}=rn;if(rn.phase!=="playing"||!rn.alive||!an)return;if(rn.hopping){rn.queuedHop=nn;return}let ln={...rn.player},cn=[ln.row,ln.col],un=nn==="up"?mEe(ln):nn==="down"?fEe(ln):hEe(ln,nn==="left"?-1:1);if(!un.moved)return;if(rn.hopping={from:{...rn.player},to:ln,result:un,elapsed:0,direction:nn},sn)WG(rn.world,an,sn,cn,[ln.row,ln.col],nn);rn.onEvent("hop")}function sRt(rn,nn){rn.player=nn.to,rn.hopping=null;let an=rn.player,sn=nn.result,{layout:ln,scene:cn}=rn;if(sn.crossed)rn.world.scoreboard.set(an.crossings*OG),rn.onScore(rn.score,an.crossings),rn.onEvent("cross");if(sn.goal){let dn=Math.floor(Math.max(0,rn.world.scoreboard.seconds));if(rn.timeLeft=dn,rn.world.scoreboard.set(Ya(uu-dn,uu,an.crossings*OG)),rn.onTime(dn),rn.onScore(rn.score,an.crossings),cn&&ln)REe(rn.world,ln,cn,an.row,an.col);qG(rn,!0);return}let un=rn.queuedHop;if(rn.queuedHop=null,un)VG(rn,un)}function NEe(rn,{phase:nn,x:an,y:sn,cancelled:ln}){if(ln){rn.press=null;return}if(nn==="start"){rn.press={x:an,y:sn,at:rn.clock,swiped:!1};return}let cn=rn.press;if(!cn)return;let un=an-cn.x,dn=sn-cn.y;if(!cn.swiped&&Math.hypot(un,dn)>=Qye)cn.swiped=!0,VG(rn,Math.abs(un)>=Math.abs(dn)?un>0?"right":"left":dn>0?"down":"up");if(nn!=="end")return;if(rn.press=null,!cn.swiped&&rn.clock-cn.at<=Jye)VG(rn,"up")}var rRt=1600;var GEe=e(()=>{ci();sEe();sh();Ot();EEe();CEe()});var or={};n(or,{CrossyRoad:()=>gt});import{jsx as iRt}from"react/jsx-runtime";var uh,gt;var te=e(()=>{Ta();l();a();_a();o();xa();va();sh();GEe();uh=t.CROSSY_ROAD,gt=Vn("crossy-road",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(0),[cn,un]=gn(uu),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"crossy-road",create:(bn)=>wEe(bn.isDark),start:OEe,reset:PEe,dispose:gEe,tick:DEe,setTheme:(bn,yn)=>LEe(bn,yn.isDark),resize:(bn,yn,En,Sn)=>{let _n=nEe(yn,En,Sn);return zG(bn,_n),_n.gridW},drag:NEe,sounds:uh,resultsDelay:(bn)=>bn==="win"?1050:450,onStart:(bn)=>bn(uh.START,"success"),onStop:(bn)=>bn(null,"medium"),onOver:(bn,yn)=>{if(yn==="win")bn(uh.WIN,"success")},wire:(bn,yn)=>{bn.onScore=(En,Sn)=>{an(En),ln(Sn)},bn.onTime=un,bn.onEvent=(En)=>{if(En==="hop")yn(uh.HOP,"light");else if(En==="cross")yn(uh.CROSS,"success");else if(En==="crash")yn(uh.CRASH,"error");else yn(uh.TIME_UP,"error")}}}),hn=dn.isDark;return iRt(Un,{...mn,light:hn?rEe:oEe,background:hn?tEe:eEe,fog:0.0015,columns:[Qn(nn),ma("CROSSINGS",`${sn}/${sC}`),ta(cn,dn,Xye)],subtext:"Cross roads, dodge traffic!",gameOver:fn({title:pn==="win"?"YOU WIN!":"GAME OVER",message:pn==="win"?`You crossed all ${sn} roads with time to spare!`:`You crossed ${sn} ${sn===1?"road":"roads"}!`,scoreLabel:"Score",score:nn,buttonText:"Play Again!"})})})});function XEe(rn,nn,an){let sn=bc(an).top,ln=nn-sn-cRt,cn=Math.min(lRt,Math.max(48,ln*0.2)),un=Math.max(96,Math.min($n(rn),ln-cn-YG-20)),dn=(un-fd*(Ba+1))/Ba,pn=dn+fd,mn=Ba*pn+fd,fn=un>400?20:0,hn=mn+fn+YG+cn,bn=Math.max(sn+(ln-hn)/2,sn+10),yn=bn+mn+fn+YG,En=(rn-un)/2+kEe,Sn=(un-kEe*2-KG*(vy-1))/vy,_n=Array.from({length:vy},(vn,Tn)=>[En+Tn*(Sn+KG)+Sn/2,yn+cn/2]);return{width:rn,height:nn,cell:dn,step:pn,boardLeft:(rn-mn)/2,boardTop:bn+uRt,boardSize:mn,slots:_n,slotWidth:Sn+KG,trayTop:yn,trayHeight:cn,depth:dn*0.5}}function ph([rn,nn,an,sn=1]){let ln=Math.max(rn,nn,an);if(ln<=0)return[0,0,0,sn];let cn=2/ln;return[rn*cn,nn*cn,an*cn,sn]}function $Ee([rn,nn,an],sn){return[rn+(1-rn)*sn,nn+(1-nn)*sn,an+(1-an)*sn,1]}var Ba=9,vy=3,BEe=50,FEe=500,dh=300,XG,jG,tv=0.7,$G=50,HEe=0.14,WEe=0.18,UEe=0.24,VEe=0.26,zEe=0.55,qEe=0.5,YEe=0.025,KEe,fd=2,lRt=120,cRt=110,YG=30,uRt=20,kEe=20,KG=30,jEe;var SC=e(()=>{o();Hn();Hn();XG=["#FF3B3B","#32CD32","#FFD700","#4DA6FF","#BF5AF2","#FF9500"],jG=[[[1]],[[1,1]],[[1],[1]],[[1,1,1]],[[1],[1],[1]],[[1,1],[1,0]],[[1,1],[0,1]],[[1,0],[1,1]],[[0,1],[1,1]],[[1,1,1,1]],[[1],[1],[1],[1]],[[1,1],[1,1]],[[1,1,1],[0,1,0]],[[0,1,0],[1,1,1]],[[0,1,1],[1,1,0]],[[1,1,0],[0,1,1]],[[1,1,1],[1,0,0]],[[0,0,1],[1,1,1]],[[1,0,0],[1,1,1]],[[1,1,1],[0,0,1]]],KEe={stiffness:320,damping:18,mass:0.6};jEe=Zn([0,0,1],0.45)});import{extrude as dRt,loft as pRt,Path as mRt}from"@nayan-ui/engine";function fRt(rn,nn){return Bn("shared/EngineBlocks:blockMesh"+JSON.stringify([rn,nn]),()=>hRt(rn,nn))}function hRt(rn,nn){let an=`${rn}:${nn}`,sn=ZEe.get(an);if(!sn){let ln=rn/2;sn=wn(pRt([{z:-0.5,bottom:-0.5,top:0.5,width:ln,square:7},{z:0.2,bottom:-0.5,top:0.5,width:ln,square:7},{z:0.4,bottom:-0.465,top:0.465,width:ln-0.035,square:6.5},{z:0.5,bottom:-0.39,top:0.39,width:ln-0.11,square:5.5}],{around:40,smoothness:2}),{center:!1,shine:nn?0.6:0}),ZEe.set(an,sn)}return sn}function ai(rn,{position:nn,size:an,color:sn,parent:ln,grow:cn=1,gloss:un=!0,shadow:dn=!0}){let pn=JEe(an),mn=ov(an),fn=rn.spawn({mesh:fRt(pn,un),parent:ln,position:nn,scale:[mn[0]*cn,mn[1]*cn,mn[2]*cn],color:sn,pickable:!1});if(dn)rn.spawn({mesh:yRt(),parent:fn,position:ERt,scale:[pn*QEe,QEe,1],color:SRt,pickable:!1});return fn}var ZG=0.25,ZEe,bRt=null,yRt=()=>bRt??=wn(dRt(new mRt().addRoundedRect(-0.5,-0.5,1,1,0.16),{depth:0})),ERt,QEe=1.04,SRt,JEe=(rn)=>Math.max(ZG,Math.round(rn[0]/rn[1]/ZG)*ZG),ov=(rn)=>[rn[0]/JEe(rn),rn[1],rn[2]];var l0=e(()=>{na();ZEe=new Map;ERt=[0.08,-0.11,-0.52],SRt=[0,0,0,0.3]});import{extrude as _Rt,Path as vRt}from"@nayan-ui/engine";function QG(rn,nn,an=0){let sn=`${rn}:${nn}:${an}`,ln=o2e.get(sn);if(!ln){let cn=new vRt().addRoundedRect(0,0,rn,rn,nn);if(an>0)cn.addRoundedRect(an,an,rn-an*2,rn-an*2,nn-an);ln=wn(_Rt(cn,{depth:0,fillRule:"evenodd"})),o2e.set(sn,ln)}return ln}function s2e(rn,nn,an,sn){let ln=mu(nn,nn.boardLeft+nn.boardSize/2,nn.boardTop+nn.boardSize/2),cn=QG(nn.cell,CRt),un=(En,Sn)=>rn.spawn({mesh:cn,position:En,scale:Sn,color:[1,1,1,0],pickable:!1}),dn=rn.spawn({mesh:QG(nn.boardSize,t2e),position:[ln[0],ln[1],e2e],pickable:!1}),pn=rn.spawn({mesh:QG(nn.boardSize,t2e,wRt),position:[ln[0],ln[1],e2e+0.5],pickable:!1}),mn=[],fn=[],hn=[];for(let En=0;En<Ba;En++)for(let Sn=0;Sn<Ba;Sn++){let[_n,vn]=e8(nn,En,Sn);mn.push(un(mu(nn,_n,vn,rv),a2e)),fn.push(un(mu(nn,_n,vn,ARt(nn)),JG)),hn.push(un(mu(nn,_n,vn,MRt(nn)),JG))}let yn={backdrop:oa(rn,nn.width,nn.height,TRt,sn),rim:pn,panel:dn,empties:mn,highlights:fn,ghosts:hn};return t8(rn,yn,an),yn}function t8(rn,nn,an){rn.set(nn.rim,{color:ph(xn(an.BORDER))}),rn.set(nn.panel,{color:ph(xn(an.SURFACE))});let sn=ph(xn(an.CELL_EMPTY));for(let ln of nn.empties)rn.set(ln,{color:sn})}function o8(rn,nn,an){rn.set(nn,an?{scale:a2e,color:an}:{scale:JG})}function r8(rn,nn,an,sn,ln){let[cn,un]=e8(nn,an,sn);return l2e(rn,nn,mu(nn,cn,un,r2e(nn)),ln)}function c2e(rn,nn,an,sn,ln,cn){let un=an.length,dn=an[0]?.length??0,pn=rn.spawn({mesh:"none",position:mu(nn,ln[0],ln[1],_C(nn)),scale:cn,pickable:!1});for(let mn=0;mn<un;mn++)for(let fn=0;fn<dn;fn++){if(an[mn]?.[fn]!==1)continue;l2e(rn,nn,[(fn-(dn-1)/2)*nn.step,-(mn-(un-1)/2)*nn.step,0],sn,pn)}return pn}function d2e(rn,nn,an,sn){let[ln,cn]=e8(rn,nn,an),un=mu(rn,ln,cn,r2e(rn));return{position:[un[0],un[1],un[2]+rn.depth*2],size:rn.cell,color:sn,glowZ:rv+0.3}}var TRt=-20,e2e=0,rv=1.2,xRt=2,RRt=80,mu=(rn,nn,an,sn=0)=>[nn-rn.width/2,rn.height/2-an,sn],e8=(rn,nn,an)=>[rn.boardLeft+fd+an*rn.step+rn.cell/2,rn.boardTop+fd+nn*rn.step+rn.cell/2],r2e=(rn)=>rv+rn.depth/2+0.4,ARt=(rn)=>rv+rn.depth+2,MRt=(rn)=>rv+rn.depth+3,_C=(rn)=>xRt+rn.depth/2,n2e,JG=0,a2e=1,t2e=8,CRt=4,wRt=1,o2e,i2e=(rn)=>[rn.cell,rn.cell,rn.depth],l2e=(rn,nn,an,sn,ln)=>ai(rn,{position:an,size:i2e(nn),color:sn,parent:ln,shadow:!1}),u2e=(rn)=>ov(i2e(rn));var p2e=e(()=>{u();l0();na();SC();n2e=RRt,o2e=new Map});import{World as LRt}from"@nayan-ui/engine";function m2e(rn){let nn=new LRt(IRt),sn={world:nn,camera:{eye:[0,0,200],target:[0,0,0],fov:1,ortho:1},colors:rn.BOARD,theme:rn,layout:null,board:null,phase:"ready",time:0,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,grid:Array(c0).fill(null),gridColors:Array(c0).fill(null),blocks:Array(c0).fill(null),pieces:Array.from({length:vy},a8),drag:null,ghostShown:Array(c0).fill(null),previewColors:new Map,highlightShown:Array(c0).fill(!1),onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onPick:()=>{},onInvalid:()=>{},onPlace:()=>{},onClear:(ln)=>{},onGameOver:()=>{}};return nn.scoreboard.reset(0,dh),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&S2e(sn,!0)},sn}function f2e(rn,nn){let an=rn.world;if(i8(rn),rn.board){let sn=rn.board;for(let ln of[sn.backdrop,sn.rim,sn.panel,...sn.empties,...sn.highlights,...sn.ghosts])an.despawn(ln)}for(let sn=0;sn<c0;sn++){if(rn.blocks[sn]!=null)an.despawn(rn.blocks[sn]);let ln=rn.gridColors[sn];rn.blocks[sn]=ln?r8(an,nn,Math.floor(sn/Ba),sn%Ba,ln):null}rn.layout=nn,rn.camera.ortho=nn.height/2,rn.board=s2e(an,nn,rn.colors,rn.theme),rn.ghostShown.fill(null),rn.highlightShown.fill(!1),rn.pieces.forEach((sn,ln)=>s8(rn,sn,ln,!1))}function h2e(rn,nn){if(rn.colors=nn.BOARD,rn.theme=nn,rn.board)t8(rn.world,rn.board,rn.colors),aa(rn.world,rn.board.backdrop,nn)}function s8(rn,nn,an,sn){let ln=rn.layout;if(!ln)return;if(nn.root!=null)rn.world.despawn(nn.root);if(nn.root=c2e(rn.world,ln,nn.shape,nn.color,ln.slots[an],sn?0:tv),sn)rn.world.animate(nn.root,{scale:tv},{duration:UEe,easing:"back"})}function b2e(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(dh),rn.onPhase("playing")}function y2e(rn){i8(rn);for(let nn=0;nn<c0;nn++){if(rn.blocks[nn]!=null)rn.world.despawn(rn.blocks[nn]);rn.blocks[nn]=null,rn.grid[nn]=null,rn.gridColors[nn]=null}for(let nn of rn.pieces)if(nn.root!=null)rn.world.despawn(nn.root);rn.pieces=Array.from({length:vy},a8),rn.pieces.forEach((nn,an)=>s8(rn,nn,an,!0)),rn.world.scoreboard.reset(0,dh),rn.won=!1,rn.phase="ready",rn.onScore(0),rn.onTime(dh),rn.onPhase("ready")}function E2e(rn){rn.world.dispose()}function S2e(rn,nn){if(rn.world.scoreboard.stop(),i8(rn),rn.won=nn,rn.phase="over",!nn)rn.onGameOver();rn.onPhase("over")}function _2e(rn,nn){if(rn.world.isDisposed)return;rn.time+=nn;let{drag:an,layout:sn}=rn,ln=an?rn.pieces[an.slot]?.root:null;if(an&&sn&&ln!=null&&!an.returning){let cn=$G*ORt(Math.min(1,(rn.time-an.liftedAt)/HEe)),un=an.x-an.offsetX,dn=an.y-an.offsetY-cn;if(un!==an.drawnX||dn!==an.drawnY)an.drawnX=un,an.drawnY=dn,rn.world.set(ln,{position:mu(sn,un,dn,n2e)})}rn.world.update(nn)}function v2e(rn,nn,an,sn){for(let ln=0;ln<nn.length;ln++){let cn=nn[ln];for(let un=0;un<cn.length;un++){if(cn[un]!==1)continue;let dn=an+ln,pn=sn+un;if(dn<0||dn>=Ba||pn<0||pn>=Ba||rn.grid[dn*Ba+pn]!==null)return!1}}return!0}function PRt(rn){for(let nn of rn.pieces)for(let an=0;an<Ba;an++)for(let sn=0;sn<Ba;sn++)if(v2e(rn,nn.shape,an,sn))return!0;return!1}function T2e(rn,nn){let an=(cn)=>rn.grid[cn]!==null||!!nn?.has(cn),sn=[],ln=[];for(let cn=0;cn<Ba;cn++){let un=!0,dn=!0;for(let pn=0;pn<Ba&&(un||dn);pn++){if(un&&!an(cn*Ba+pn))un=!1;if(dn&&!an(pn*Ba+cn))dn=!1}if(un)sn.push(cn);if(dn)ln.push(cn)}return{rows:sn,cols:ln}}function gRt(rn,nn,an){let sn=[];return rn.forEach((ln,cn)=>ln.forEach((un,dn)=>un===1&&sn.push((nn+cn)*Ba+an+dn))),sn}function DRt(rn,nn,an,sn){let{layout:ln,world:cn}=rn,un=rn.pieces[nn],dn=gRt(un.shape,an,sn),pn=[];for(let bn of dn){rn.grid[bn]=un.css,rn.gridColors[bn]=un.color;let yn=r8(cn,ln,Math.floor(bn/Ba),bn%Ba,$Ee(un.color,zEe));rn.blocks[bn]=yn,pn.push(yn)}if(cn.animate(pn,{color:un.color},{duration:VEe}),rn.world.scoreboard.add(dn.length*BEe),un.root!=null)cn.despawn(un.root);rn.pieces[nn]=a8(),s8(rn,rn.pieces[nn],nn,!0),rn.onPlace();let{rows:mn,cols:fn}=T2e(rn),hn=mn.length+fn.length;if(hn>0){let bn=new Set;for(let Sn of mn)for(let _n=0;_n<Ba;_n++)bn.add(Sn*Ba+_n);for(let Sn of fn)for(let _n=0;_n<Ba;_n++)bn.add(_n*Ba+Sn);let yn=dn.reduce((Sn,_n)=>Sn+Math.floor(_n/Ba),0)/dn.length,En=dn.reduce((Sn,_n)=>Sn+_n%Ba,0)/dn.length;for(let Sn of bn){let _n=Math.floor(Sn/Ba),vn=Sn%Ba,Tn=Math.hypot(_n-yn,vn-En)*YEe,Rn=rn.gridColors[Sn],An=rn.blocks[Sn];if(An!=null&&Rn)Xs(cn,An,{scale:u2e(ln),color:Rn,delay:Tn,duration:qEe},d2e(ln,_n,vn,Rn)).then(()=>cn.despawn(An));rn.blocks[Sn]=null,rn.grid[Sn]=null,rn.gridColors[Sn]=null}rn.world.scoreboard.add(hn*FEe),rn.onClear(hn)}if(rn.onScore(rn.score),!PRt(rn))S2e(rn,!1)}function x2e(rn,nn,an){let sn=rn.layout;if(!sn||rn.phase!=="playing"||rn.drag)return;if(an<sn.trayTop-20||an>sn.trayTop+sn.trayHeight+20)return;let ln=sn.slots.findIndex(([pn])=>Math.abs(nn-pn)<=sn.slotWidth/2),cn=ln>=0?rn.pieces[ln]?.root:null;if(cn==null)return;let[un,dn]=sn.slots[ln];rn.onPick(),rn.drag={slot:ln,offsetX:nn-un,offsetY:an-dn,x:nn,y:an,liftedAt:rn.time,row:null,col:null,valid:!1,returning:!1},rn.world.stopAnimation(cn),rn.world.animate(cn,{scale:1},{spring:KEe})}function R2e(rn,nn,an){let{drag:sn,layout:ln}=rn;if(!sn||!ln||sn.returning)return;sn.x=nn,sn.y=an;let cn=rn.pieces[sn.slot].shape,un=cn.length,dn=cn[0]?.length??0,pn=nn-sn.offsetX,mn=an-sn.offsetY-$G,fn=ln.step/2,hn=pn>ln.boardLeft-fn&&pn<ln.boardLeft+ln.boardSize+fn&&mn>ln.boardTop-fn&&mn<ln.boardTop+ln.boardSize+fn,bn=hn?Math.round((pn-dn*ln.step/2-fd/2-ln.boardLeft)/ln.step):null,yn=hn?Math.round((mn-un*ln.step/2-fd/2-ln.boardTop)/ln.step):null;if(yn===sn.row&&bn===sn.col)return;sn.row=yn,sn.col=bn,sn.valid=yn!==null&&bn!==null&&v2e(rn,cn,yn,bn),NRt(rn)}function A2e(rn){let{drag:nn,layout:an}=rn;if(!nn||!an||nn.returning)return;if(nn.valid&&nn.row!==null&&nn.col!==null&&rn.phase==="playing"){rn.drag=null,n8(rn),DRt(rn,nn.slot,nn.row,nn.col);return}if(rn.phase==="playing"&&nn.row!==null&&nn.col!==null)rn.onInvalid();nn.returning=!0,n8(rn);let sn=rn.pieces[nn.slot]?.root;if(sn==null){rn.drag=null;return}let[ln,cn]=an.slots[nn.slot];rn.world.animate(sn,{position:mu(an,ln,cn,_C(an)),scale:tv},{duration:WEe}).then(()=>{if(rn.drag===nn)rn.drag=null})}function i8(rn){let nn=rn.drag;if(!nn)return;rn.drag=null,n8(rn);let an=rn.layout,sn=rn.pieces[nn.slot]?.root;if(!an||sn==null)return;let[ln,cn]=an.slots[nn.slot];rn.world.stopAnimation(sn),rn.world.set(sn,{position:mu(an,ln,cn,_C(an)),scale:tv})}function NRt(rn){let nn=rn.drag;if(Ty.fill(null),mh.fill(!1),nn&&nn.row!==null&&nn.col!==null){let an=rn.pieces[nn.slot],sn=nn.valid?an.css:rn.colors.CELL_INVALID,ln=`${sn}:${nn.valid}`,cn=rn.previewColors.get(ln);if(!cn)cn=ph(xn(sn,nn.valid?0.5:0.3)),rn.previewColors.set(ln,cn);let un=new Set;if(an.shape.forEach((dn,pn)=>dn.forEach((mn,fn)=>{let hn=nn.row+pn,bn=nn.col+fn;if(mn!==1||hn<0||hn>=Ba||bn<0||bn>=Ba)return;Ty[hn*Ba+bn]=cn,un.add(hn*Ba+bn)})),nn.valid){let{rows:dn,cols:pn}=T2e(rn,un);for(let mn of dn)for(let fn=0;fn<Ba;fn++)mh[mn*Ba+fn]=!0;for(let mn of pn)for(let fn=0;fn<Ba;fn++)mh[fn*Ba+mn]=!0}}M2e(rn)}function n8(rn){Ty.fill(null),mh.fill(!1),M2e(rn)}function M2e(rn){let nn=rn.board;if(!nn)return;let an=ph(xn(rn.colors.CELL_HIGHLIGHT));for(let sn=0;sn<c0;sn++){if(Ty[sn]!==rn.ghostShown[sn])rn.ghostShown[sn]=Ty[sn],o8(rn.world,nn.ghosts[sn],Ty[sn]);if(mh[sn]!==rn.highlightShown[sn])rn.highlightShown[sn]=mh[sn],o8(rn.world,nn.highlights[sn],mh[sn]?an:null)}}var c0,IRt=1600,a8=()=>{let rn=jG[Math.floor(Math.random()*jG.length)],nn=XG[Math.floor(Math.random()*XG.length)];return{shape:rn,css:nn,color:xn(nn),root:null}},ORt=(rn)=>1-Math.pow(1-rn,3),Ty,mh;var C2e=e(()=>{u();f();SC();p2e();c0=Ba*Ba;Ty=Array(c0),mh=Array(c0)});var rr={};n(rr,{BlockBlast:()=>Dt});import{jsx as GRt}from"react/jsx-runtime";var fh,Dt;var oe=e(()=>{Ta();l();a();_a();o();xa();va();SC();C2e();fh=t.BLOCK_BLAST,Dt=Vn("block-blast",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(dh),{theme:cn,status:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"block-blast",create:m2e,start:b2e,reset:y2e,dispose:E2e,tick:_2e,setTheme:h2e,resize:(mn,fn,hn,bn)=>{let yn=XEe(fn,hn,bn);return f2e(mn,yn),yn.boardSize},drag:(mn,{phase:fn,x:hn,y:bn})=>{if(fn==="start")x2e(mn,hn,bn);else if(fn==="move")R2e(mn,hn,bn);else A2e(mn)},onStart:(mn)=>mn(fh.START,"success"),onOver:(mn,fn)=>{if(fn==="win")mn(fh.WIN,"success")},wire:(mn,fn)=>{mn.onScore=an,mn.onTime=ln,mn.onPick=()=>fn(fh.PICK,"light"),mn.onInvalid=()=>fn(fh.INVALID,"warning"),mn.onPlace=()=>fn(fh.PLACE,"light"),mn.onClear=()=>fn(fh.CLEAR,"success"),mn.onGameOver=()=>fn(fh.GAME_OVER,"error")}});return GRt(Un,{...dn,light:jEe,columns:[Qn(nn),ta(sn,cn)],subtext:"Place blocks, clear lines!",gameOver:pn({title:un==="win"?"YOU WON!":"GAME OVER",message:un==="win"?"Time completed! Great job!":"No more moves available!",scoreLabel:"Final Score",score:nn,buttonText:"Play Again!"})})})});function sSe(rn,nn,an){let sn=$n(rn),ln=bc(an),cn=ln.top+4,un=Math.max(1,nn-cn-ln.bottom-10),dn=Math.min(c?650:500,un),pn=Math.floor((sn-vC*(em+1))/em),mn=c?22:18,fn=c?14:12,hn=dn-(c?30:20);return{width:rn,height:nn,boardLeft:(rn-sn)/2,boardTop:cn+(un-dn)/2,boardWidth:sn,boardHeight:dn,brickWidth:pn,brickHeight:mn,bricksLeft:(sn-(em*pn+(em-1)*vC))/2,bricksTop:kRt,brickStepX:pn+vC,brickStepY:mn+vC,paddleWidth:c?100:80,paddleHeight:fn,paddleTop:hn-fn/2,minX:Rs,maxX:sn-Rs,lostY:dn-Rs}}var em=8,w2e=5,tm=3,hh=300,L2e=200,I2e=150,O2e=3,l8,P2e=0.15,g2e=5,D2e=1.3,N2e=1.5,G2e=10,k2e=0.016666666666666666,B2e=2,c8,Rs,F2e,H2e,W2e=2,bh,u8=0.5,U2e=0.22,V2e=0.06,z2e,d8,q2e=18,Y2e,K2e=0.07,X2e=0.018,j2e=0.52,nv,$2e,Z2e,Q2e,J2e="#ffffff",eSe="#e0e0e0",tSe="#ffffff",oSe="rgba(255, 255, 255, 0.25)",rSe="rgba(255, 255, 255, 0.5)",nSe=16,aSe=8,vC=3,kRt=5;var TC=e(()=>{a();o();Hn();l8=["wide_paddle","multi_ball","extra_life"],c8=c?5:4,Rs=c?8:7,F2e=Math.PI/3,H2e=Math.PI/3,bh=c?18:14,z2e={damping:8,stiffness:320},d8={damping:10,stiffness:300},Y2e={damping:11,stiffness:190},nv=[{k:1.6,r:0.8,o:0.32},{k:3.2,r:0.62,o:0.18},{k:4.8,r:0.45,o:0.08}],$2e=Zn([-0.3,0.7,1],0.5),Z2e=["#FF3B3B","#FFD700","#32CD32","#4DA6FF","#BF5AF2","#FF9500"],Q2e={["wide_paddle"]:"#00FF88",["multi_ball"]:"#FF6B9D",["extra_life"]:"#FFD700"}});import{extrude as uSe,Path as dSe}from"@nayan-ui/engine";function b8(rn){if(rn.mode==="light"){let nn=xn(rn.TEXT);return{ball:nn,trail:nn,paddle:nn}}return{ball:xn(eSe),trail:xn(tSe),paddle:xn(J2e)}}function vSe(rn,nn,an){let sn=an.mode==="classic",ln=sn?nSe:aSe;return[rn.spawn({mesh:lSe(nn.boardWidth,nn.boardHeight,ln),position:zl(nn,0,0,FRt),color:xn(sn?oSe:an.BOARD.SURFACE),pickable:!1}),rn.spawn({mesh:lSe(nn.boardWidth,nn.boardHeight,ln,1.5),position:zl(nn,0,0,xC),color:xn(sn?rSe:an.BOARD.BORDER),pickable:!1})]}function TSe(rn,nn,an){return{backdrop:oa(rn,nn.width,nn.height,BRt,an),parts:vSe(rn,nn,an)}}function xSe(rn,nn){rn.despawn(nn.backdrop);for(let an of nn.parts)rn.despawn(an)}function RSe(rn,nn,an,sn){aa(rn,an.backdrop,sn);for(let ln of an.parts)rn.despawn(ln);an.parts=vSe(rn,nn,sn)}function ASe(rn,nn,an,sn,ln,cn){let un=an+nn.brickWidth/2,dn=sn+nn.brickHeight/2,pn=hSe(nn),mn=ai(rn,{position:zl(nn,un,cn===null?dn:dn-q2e,p8(nn)),size:fSe(nn),color:m8(ln),grow:cn===null?1:0});if(cn!==null)rn.animate(mn,{position:zl(nn,un,dn,p8(nn))},{spring:Y2e,delay:cn}),rn.animate(mn,{scale:pn},{duration:0.15,delay:cn});return mn}function MSe(rn,nn,an,sn,ln,cn){let un=zl(nn,sn+nn.brickWidth/2,ln+nn.brickHeight/2,p8(nn));Xs(rn,an,{scale:hSe(nn),color:m8(cn),duration:0.45},{position:[un[0],un[1],un[2]+f8(nn)],size:nn.brickHeight*1.6,color:m8(cn),glowZ:xC+0.3}).then(()=>{rn.despawn(an)})}function CSe(rn,nn){rn.animate(nn,{shake:2},{duration:0.15})}function wSe(rn,nn,an,sn,ln){let cn=rn.spawn({mesh:"none",position:zl(nn,an,nn.paddleTop+nn.paddleHeight/2,bSe(nn)),pickable:!1}),un=rn.spawn({mesh:"roundedBox",parent:cn,scale:[sn,nn.paddleHeight,h8(nn)],color:ln,pickable:!1});return{root:cn,body:un}}function RC(rn,nn,an,sn){rn.set(an.root,{position:zl(nn,sn,nn.paddleTop+nn.paddleHeight/2,bSe(nn))})}function av(rn,nn,an,sn,ln){let cn=[sn,nn.paddleHeight,h8(nn)];if(ln)rn.animate(an.body,{scale:cn},{duration:U2e});else rn.stopAnimation(an.body),rn.set(an.body,{scale:cn})}function y8(rn,nn,an){rn.animate(nn.root,{scale:[1+an*0.06,1-an*0.22,1]},{duration:V2e,easing:"linear"}).then(()=>{rn.animate(nn.root,{scale:1},{spring:z2e})})}function E8(rn,nn,an,sn,ln){let cn=rn.spawn({mesh:"sphere",position:zl(nn,an,sn,ESe()),scale:mSe,color:ln.ball,pickable:!1});rn.animate(cn,{scale:Rs*2},{spring:d8});let un=nv.map((dn)=>rn.spawn({mesh:_Se(),position:zl(nn,an,sn,pSe),scale:Rs*2*dn.r,color:LSe(ln.trail,dn.o),pickable:!1}));return{ball:cn,trail:un}}function ISe(rn,nn,an,sn,ln,cn,un){rn.set(an.ball,{position:zl(nn,sn,ln,ESe())}),an.trail.forEach((dn,pn)=>rn.set(dn,{position:zl(nn,sn-cn*nv[pn].k,ln-un*nv[pn].k,pSe)}))}function OSe(rn,nn,an){rn.set(nn.ball,{color:an.ball}),nn.trail.forEach((sn,ln)=>rn.set(sn,{color:LSe(an.trail,nv[ln].o)}))}function S8(rn,nn){rn.despawn(nn.ball);for(let an of nn.trail)rn.despawn(an)}function PSe(rn,nn,an,sn,ln){let cn=xn(Q2e[an]),un=rn.spawn({mesh:"none",position:zl(nn,sn,ln,ySe()),scale:mSe,pickable:!1});rn.animate(un,{scale:1},{spring:d8}),rn.spawn({mesh:"sphere",parent:un,scale:bh*1.4,color:cn,pickable:!1});let dn=rn.spawn({mesh:_Se(),parent:un,position:[0,0,-bh],scale:bh*1.8,color:[cn[0],cn[1],cn[2],0.25],pickable:!1});return rn.animate(dn,{scale:bh*2.3},{duration:j2e,easing:"easeInOut",repeat:"forever",yoyo:!0}),un}function gSe(rn,nn,an,sn,ln){rn.set(an,{position:zl(nn,sn,ln,ySe())})}var BRt=-20,FRt=0,xC=0.2,pSe=1,mSe=0,zl=(rn,nn,an,sn=0)=>[rn.boardLeft+nn-rn.width/2,rn.height/2-(rn.boardTop+an),sn],f8=(rn)=>rn.brickHeight*0.7,p8=(rn)=>xC+f8(rn)/2+1,fSe=(rn)=>[rn.brickWidth,rn.brickHeight,f8(rn)],hSe=(rn)=>ov(fSe(rn)),h8=(rn)=>rn.paddleHeight*0.9,bSe=(rn)=>xC+h8(rn)/2+1,ySe=()=>bh+2,ESe=()=>Rs+bh+4,iSe,SSe=(rn,nn)=>{let an=iSe.get(rn);if(!an)an=Bn("block-breaker/BlockBreakerScene:"+rn,nn),iSe.set(rn,an);return an},_Se=()=>SSe("disc",()=>wn(uSe(new dSe().addCircle(0,0,0.5),{depth:0}))),lSe=(rn,nn,an,sn=0)=>SSe(`panel:${rn}:${nn}:${an}:${sn}`,()=>{let ln=new dSe().addRoundedRect(0,0,rn,nn,an);if(sn>0)ln.addRoundedRect(sn,sn,rn-sn*2,nn-sn*2,an-sn);return wn(uSe(ln,{depth:0,fillRule:"evenodd"}),{center:!1})}),cSe,m8=(rn)=>cSe[rn%cSe.length],LSe=(rn,nn)=>[rn[0],rn[1],rn[2],nn];var DSe=e(()=>{u();f();l0();na();Hn();TC();iSe=new Map,cSe=Z2e.map((rn)=>xn(rn))});import{World as HRt}from"@nayan-ui/engine";function GSe(rn){let nn=new HRt(WRt),sn={world:nn,camera:{eye:[0,0,400],target:[0,0,0],fov:1,ortho:1},theme:rn,colors:b8(rn),layout:null,scenery:null,phase:"ready",get score(){return nn.scoreboard.score},get lives(){return nn.scoreboard.lives},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,time:0,bricks:NSe(),balls:[],powerUps:[],combo:0,paddle:null,paddleX:0,paddleWidth:0,dragFrom:0,intro:!0,introAge:-1,onPhase:(ln)=>{},onScore:(ln)=>{},onLives:(ln)=>{},onTime:(ln)=>{},onWall:()=>{},onPaddle:()=>{},onBrickHit:()=>{},onBrickBreak:()=>{},onCombo:()=>{},onPowerUp:()=>{},onLaunch:()=>{},onLoseLife:()=>{},onWin:()=>{},onLose:()=>{}};return nn.scoreboard.reset(tm,hh),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&_8(sn,!1)},sn}function FSe(rn,nn){let{world:an,layout:sn}=rn;if(rn.scenery)xSe(an,rn.scenery);if(rn.paddle)an.despawn(rn.paddle.root);USe(rn);for(let ln of rn.bricks)if(ln.entity!=null)an.despawn(ln.entity);if(rn.layout=nn,rn.camera.ortho=nn.height/2,rn.scenery=TSe(an,nn,rn.theme),rn.paddleX=sn?rn.paddleX/sn.boardWidth*nn.boardWidth:nn.boardWidth/2,!sn||rn.paddleWidth===0)rn.paddleWidth=nn.paddleWidth;if(rn.paddle=wSe(an,nn,rn.paddleX,rn.paddleWidth,rn.colors.paddle),WSe(rn),sn&&rn.phase==="playing")v8(rn,u8,()=>zSe(rn))}function HSe(rn,nn){if(rn.theme=nn,rn.colors=b8(nn),!rn.layout||!rn.scenery||rn.world.isDisposed)return;if(RSe(rn.world,rn.layout,rn.scenery,nn),rn.paddle)rn.world.set(rn.paddle.body,{color:rn.colors.paddle});for(let an of rn.balls)if(an.view)OSe(rn.world,an.view,rn.colors)}function WSe(rn){let nn=rn.layout;if(!nn)return;let an=rn.intro;if(an)rn.introAge=0;for(let sn of rn.bricks){if(sn.hits<=0)continue;sn.entity=ASe(rn.world,nn,kSe(nn,sn),BSe(nn,sn),sn.row,an?sn.row*K2e+sn.col*X2e:null)}}function USe(rn){for(let nn of rn.balls)if(nn.view)S8(rn.world,nn.view);for(let nn of rn.powerUps)if(nn.entity!=null)rn.world.despawn(nn.entity);rn.balls=[],rn.powerUps=[]}function VSe(rn,nn){let an=rn.layout;if(!an)return;let sn=(Math.random()-0.5)*F2e,ln=an.paddleTop-Rs-2;rn.balls.push({x:nn,y:ln,vx:Math.sin(sn)*c8,vy:-Math.abs(Math.cos(sn)*c8),view:E8(rn.world,an,nn,ln,rn.colors)}),rn.combo=0,rn.onLaunch()}function zSe(rn){if(rn.phase==="playing"&&!rn.balls.length)VSe(rn,rn.paddleX)}function qSe(rn){let nn=rn.layout;if(rn.phase!=="ready"||!nn)return;if(!rn.bricks.some((an)=>an.hits>0))YSe(rn);if(rn.paddleX=nn.boardWidth/2,rn.paddleWidth=nn.paddleWidth,rn.paddle)RC(rn.world,nn,rn.paddle,rn.paddleX),av(rn.world,nn,rn.paddle,rn.paddleWidth,!1);rn.phase="playing",rn.world.scoreboard.startCountdown(hh),rn.onPhase("playing"),VSe(rn,rn.paddleX)}function YSe(rn){for(let nn of rn.bricks)if(nn.entity!=null)rn.world.despawn(nn.entity);rn.bricks=NSe(),rn.intro=!0,WSe(rn)}function KSe(rn){rn.world.cancelTimers(),USe(rn),YSe(rn);let nn=rn.layout;if(nn&&rn.paddle)rn.paddleX=nn.boardWidth/2,rn.paddleWidth=nn.paddleWidth,RC(rn.world,nn,rn.paddle,rn.paddleX),av(rn.world,nn,rn.paddle,rn.paddleWidth,!1);rn.combo=0,rn.world.scoreboard.reset(tm,hh),rn.won=!1,rn.phase="ready",rn.onScore(0),rn.onLives(tm),rn.onTime(hh),rn.onPhase("ready")}function XSe(rn){rn.world.cancelTimers(),rn.world.dispose()}function _8(rn,nn){if(rn.world.scoreboard.stop(),rn.world.cancelTimers(),rn.won=nn,rn.phase="over",nn)rn.onWin();else rn.onLose();rn.onPhase("over")}function jSe(rn,nn){if(rn.world.isDisposed)return;if(fc(rn,nn),rn.time+=nn,rn.phase==="playing"&&rn.balls.length)URt(rn,Math.min(nn/k2e,B2e));rn.world.update(nn)}function $Se(rn){rn.dragFrom=rn.paddleX}function ZSe(rn,nn){let an=rn.layout;if(!an||!rn.paddle||rn.phase!=="playing")return;let sn=rn.paddleWidth/2;rn.paddleX=Math.max(sn,Math.min(an.boardWidth-sn,rn.dragFrom+nn)),RC(rn.world,an,rn.paddle,rn.paddleX)}function URt(rn,nn){let{layout:an,world:sn}=rn,ln=rn.paddleWidth/2,cn=rn.paddleX,un=0,dn=0,pn=0,mn=!1,fn=!1,hn=0,bn=!1,yn=rn.balls,En=0;for(let _n of rn.balls){let vn=_n.x+_n.vx*nn,Tn=_n.y+_n.vy*nn,{vx:Rn,vy:An}=_n,Mn=!1;if(vn<=an.minX)vn=an.minX,Rn=Math.abs(Rn),Mn=!0;else if(vn>=an.maxX)vn=an.maxX,Rn=-Math.abs(Rn),Mn=!0;if(Tn-Rs<=0)Tn=Rs,An=Math.abs(An),Mn=!0;if(Mn)un++;if(Tn+Rs>an.lostY){if(bn=!0,_n.view)S8(sn,_n.view);continue}if(An>0&&Tn+Rs>=an.paddleTop&&Tn+Rs<=an.paddleTop+an.paddleHeight+5&&vn>=cn-ln-Rs&&vn<=cn+ln+Rs){let Cn=(vn-cn)/ln*H2e,Ln=Math.hypot(Rn,An);if(Rn=Math.sin(Cn)*Ln,An=-Math.abs(Math.cos(Cn)*Ln),Tn=an.paddleTop-Rs-1,dn++,rn.paddle)y8(sn,rn.paddle,1);rn.combo=0}for(let Cn of rn.bricks){if(Cn.hits<=0)continue;let Ln=kSe(an,Cn),On=BSe(an,Cn);if(vn+Rs<=Ln||vn-Rs>=Ln+an.brickWidth||Tn+Rs<=On||Tn-Rs>=On+an.brickHeight)continue;let Dn=Math.min(vn+Rs-Ln,Ln+an.brickWidth-(vn-Rs)),Nn=Math.min(Tn+Rs-On,On+an.brickHeight-(Tn-Rs));if(Dn<Nn)Rn=-Rn;else An=-An;if(Cn.hits-=1,Cn.hits<=0){if(Cn.entity!=null)MSe(sn,an,Cn.entity,Ln,On,Cn.row);if(Cn.entity=null,mn=!0,rn.combo++,rn.combo>=O2e)pn++;if(Math.random()<P2e){let Wn=l8[Math.floor(Math.random()*l8.length)],Fn=Ln+an.brickWidth/2,qn=On+an.brickHeight/2;rn.powerUps.push({type:Wn,x:Fn,y:qn,entity:PSe(sn,an,Wn,Fn,qn)})}}else{if(Cn.entity!=null)CSe(sn,Cn.entity);fn=!0}hn+=L2e+rn.combo*I2e;break}if(_n.x=vn,_n.y=Tn,_n.vx=Rn,_n.vy=An,_n.view)ISe(sn,an,_n.view,vn,Tn,Rn,An);yn[En++]=_n}yn.length=En;let Sn=[];rn.powerUps=rn.powerUps.filter((_n)=>{_n.y+=W2e*nn;let vn=_n.y>=an.paddleTop&&_n.y<=an.paddleTop+an.paddleHeight+10&&_n.x>=cn-ln-10&&_n.x<=cn+ln+10;if(vn)Sn.push(_n.type);if(vn||_n.y>an.boardHeight){if(_n.entity!=null)sn.despawn(_n.entity);return!1}if(_n.entity!=null)gSe(sn,an,_n.entity,_n.x,_n.y);return!0});for(let _n of Sn)VRt(rn,_n);for(let _n=0;_n<un;_n++)rn.onWall();for(let _n=0;_n<dn;_n++)rn.onPaddle();for(let _n=0;_n<pn;_n++)rn.onCombo();if(hn>0)rn.onScore(rn.world.scoreboard.add(hn));if(mn)rn.onBrickBreak();else if(fn)rn.onBrickHit();for(let _n=0;_n<Sn.length;_n++)rn.onPowerUp();if(bn&&!rn.balls.length){if(rn.onLives(rn.world.scoreboard.addLives(-1)),rn.onLoseLife(),rn.lives<=0){_8(rn,!1);return}v8(rn,u8,()=>zSe(rn))}if(!rn.bricks.some((_n)=>_n.hits>0))_8(rn,!0)}function VRt(rn,nn){let an=rn.layout;if(nn==="wide_paddle"){if(rn.paddleWidth=Math.min(an.paddleWidth*N2e,rn.paddleWidth*D2e),rn.paddle)av(rn.world,an,rn.paddle,rn.paddleWidth,!0);v8(rn,G2e,()=>{if(rn.paddleWidth=an.paddleWidth,rn.paddle&&rn.layout===an)av(rn.world,an,rn.paddle,rn.paddleWidth,!0)})}else if(nn==="multi_ball"){let sn=rn.balls[0];if(sn&&rn.balls.length<g2e){let ln=Math.hypot(sn.vx,sn.vy)*0.7;for(let cn of[-ln,ln])rn.balls.push({x:sn.x,y:sn.y,vx:cn,vy:-ln,view:E8(rn.world,an,sn.x,sn.y,rn.colors)})}}else rn.world.scoreboard.setLives(Math.min(rn.lives+1,tm)),rn.onLives(rn.lives);if(rn.paddle)y8(rn.world,rn.paddle,1.4)}var WRt=500,NSe=()=>Array.from({length:w2e*em},(rn,nn)=>({row:Math.floor(nn/em),col:nn%em,hits:1,entity:null})),v8=(rn,nn,an)=>rn.world.after(nn,an),kSe=(rn,nn)=>rn.bricksLeft+nn.col*rn.brickStepX,BSe=(rn,nn)=>rn.bricksTop+nn.row*rn.brickStepY;var QSe=e(()=>{Hn();TC();DSe()});var nr={};n(nr,{BlockBreaker:()=>Nt});import{jsx as zRt}from"react/jsx-runtime";var Cc,Nt;var re=e(()=>{Ta();l();a();_a();o();xa();va();TC();QSe();Cc=t.BLOCK_BREAKER,Nt=Vn("block-breaker",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(tm),[cn,un]=gn(hh),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"block-breaker",create:GSe,start:qSe,reset:KSe,dispose:XSe,tick:jSe,setTheme:HSe,resize:(hn,bn,yn,En)=>{let Sn=sSe(bn,yn,En);return FSe(hn,Sn),Sn.boardWidth},drag:(hn,{phase:bn,dx:yn})=>{if(bn==="start")$Se(hn);else if(bn==="move")ZSe(hn,yn)},sounds:Cc,onStart:(hn)=>hn(Cc.START,"success"),onStop:(hn)=>hn(null,"medium"),wire:(hn,bn)=>{hn.onScore=an,hn.onLives=ln,hn.onTime=un,hn.onWall=()=>bn(Cc.WALL,"light"),hn.onPaddle=()=>bn(Cc.PADDLE,"light"),hn.onBrickHit=()=>bn(Cc.HIT,"light"),hn.onBrickBreak=()=>bn(Cc.DESTROY,"medium"),hn.onCombo=()=>bn(Cc.COMBO,"medium"),hn.onPowerUp=()=>bn(Cc.POWER_UP,"success"),hn.onLaunch=()=>bn(Cc.LAUNCH,"light"),hn.onLoseLife=()=>bn(Cc.LOSE_LIFE,"error"),hn.onWin=()=>bn(Cc.WIN,"success"),hn.onLose=()=>bn(Cc.GAME_OVER,"error")}});return zRt(Un,{...mn,light:$2e,columns:[Qn(nn),ys(sn,tm),ta(cn,dn)],subtext:"Break all bricks!",gameOver:fn({title:pn==="win"?"YOU WON!":"GAME OVER",message:pn==="win"?"All bricks destroyed!":"Great breaking!",scoreLabel:"Final Score",score:nn,buttonText:"Break Again!"})})})});function v_e(rn,nn,an){let sn=$n(rn),ln=bc(an),cn=ln.top+4,un=Math.max(1,nn-cn-ln.bottom-10),dn=(rn-sn)/2,pn=Math.floor(sn/AC/2-JSe),mn=Math.min(qRt,un);return{width:rn,height:nn,boardLeft:dn,boardTop:cn+(un-mn)/2,boardWidth:sn,boardHeight:mn,radius:pn,diameter:(pn+JSe)*2,shooterX:sn/2,shooterY:mn-40,minX:pn,maxX:sn-pn}}var e_e=5,AC=9,t_e=4,o_e=3,r_e=200,yh=300,n_e,T8=20,x8=0.016666666666666666,R8,Eh=10,JSe=2,a_e=0.55,MC,s_e,i_e=0.055,l_e=0.0006,c_e=0.4,u_e=0.08,d_e=0.45,sv=40,A8=18,M8=3,p_e=1.5,C8=0.6,m_e=0.3,f_e,h_e=0.4,b_e="rgba(255, 255, 255, 0.30)",y_e="rgba(255, 255, 255, 0.35)",E_e="#ffffff",S_e=16,__e=8,qRt;var CC=e(()=>{a();o();Hn();n_e=["#FF3B3B","#32CD32","#FFD700","#4DA6FF","#BF5AF2"],R8=Math.PI*0.4,MC={damping:9,stiffness:280},s_e={damping:12,stiffness:200},f_e=Zn([-0.45,0.6,1],0.45),qRt=c?650:500});import{extrude as A_e,Path as M_e,shapeGeometry as YRt}from"@nayan-ui/engine";function I_e(rn,nn,an){let sn=an.mode==="classic",ln=sn?S_e:__e,cn=(un)=>w8(nn,0,0,un);return[rn.spawn({mesh:x_e(nn.boardWidth,nn.boardHeight,ln),position:cn(XRt),color:xn(sn?b_e:an.BOARD.SURFACE),pickable:!1}),rn.spawn({mesh:x_e(nn.boardWidth,nn.boardHeight,ln,1.5),position:cn(C_e),color:xn(sn?y_e:an.BOARD.BORDER),pickable:!1})]}function O_e(rn,nn,an){return{backdrop:oa(rn,nn.width,nn.height,KRt,an),parts:I_e(rn,nn,an)}}function P_e(rn,nn){rn.despawn(nn.backdrop);for(let an of nn.parts)rn.despawn(an)}function g_e(rn,nn,an,sn){aa(rn,an.backdrop,sn);for(let ln of an.parts)rn.despawn(ln);an.parts=I_e(rn,nn,sn)}function lv(rn,nn,an,sn,ln,cn=1){return rn.spawn({mesh:ZRt(),position:iv(nn,sn,ln),scale:om(nn)*cn,color:xy(an),pickable:!1})}function D_e(rn,nn,an,sn,ln,cn){let un=iv(nn,ln,cn);Xs(rn,an,{scale:om(nn),color:xy(sn),duration:d_e},{position:[un[0],un[1],un[2]+nn.radius],size:om(nn),color:xy(sn),glowZ:C_e+0.3}).then(()=>rn.despawn(an))}function N_e(rn){return Array.from({length:sv},()=>rn.spawn({mesh:QRt(),scale:w_e,pickable:!1}))}function G_e(rn,nn,an,sn,ln){let cn=Math.max(1,nn.shooterY-Eh);an.forEach((un,dn)=>{if(dn*3>=sn.length){rn.set(un,{scale:w_e});return}let pn=sn[dn*3],mn=sn[dn*3+1],fn=Math.max(0,Math.min(1,(nn.shooterY-mn)/cn));rn.set(un,{position:w8(nn,pn,mn,jRt),scale:sn[dn*3+2]*2,color:[ln[0],ln[1],ln[2],C8+(m_e-C8)*fn]})})}var KRt=-20,XRt=0,C_e=0.2,jRt=0.5,w_e=0,w8=(rn,nn,an,sn=0)=>[rn.boardLeft+nn-rn.width/2,rn.height/2-(rn.boardTop+an),sn],$Rt=(rn)=>rn.radius+1,iv=(rn,nn,an)=>w8(rn,nn,an,$Rt(rn)),om=(rn)=>rn.radius*2,T_e,L8=(rn,nn)=>{let an=T_e.get(rn);if(!an)an=Bn("bubble-shooter/BubbleShooterScene:"+rn,nn),T_e.set(rn,an);return an},ZRt=()=>L8("dot",()=>wn(YRt("sphere"),{shine:h_e})),QRt=()=>L8("disc",()=>wn(A_e(new M_e().addCircle(0,0,0.5),{depth:0}))),x_e=(rn,nn,an,sn=0)=>L8(`panel:${rn}:${nn}:${an}:${sn}`,()=>{let ln=new M_e().addRoundedRect(0,0,rn,nn,an);if(sn>0)ln.addRoundedRect(sn,sn,rn-sn*2,nn-sn*2,an-sn);return wn(A_e(ln,{depth:0,fillRule:"evenodd"}),{center:!1})}),R_e,xy=(rn)=>R_e[rn%R_e.length],L_e=(rn)=>xn(rn.mode==="classic"?E_e:rn.TEXT);var k_e=e(()=>{u();f();na();Hn();CC();T_e=new Map,R_e=n_e.map((rn)=>xn(rn))});import{World as JRt}from"@nayan-ui/engine";function oAt(rn){let nn=rn.diameter,an=(rn.boardWidth-AC*nn)/2+rn.radius,sn=[];for(let ln=0;ln<e_e;ln++)for(let cn=0;cn<AC-ln;cn++)sn.push({x:an+ln*(nn/2)+cn*nn,y:ln*nn*0.866+rn.radius+5,color:tAt(),row:ln,entity:null});return sn}function F_e(rn){let nn=new JRt(eAt),sn={world:nn,camera:{eye:[0,0,400],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scenery:null,phase:"ready",get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,bubbles:null,current:0,next:0,currentEntity:null,nextEntity:null,aimDots:[],angle:0,shot:null,intro:!0,introAge:-1,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onBubbles:(ln)=>{},onShoot:()=>{},onPop:()=>{},onWin:()=>{},onLose:()=>{}};return nn.scoreboard.reset(0,yh),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&Y_e(sn,!1)},sn}function H_e(rn,nn){let{world:an,layout:sn}=rn;if(rn.scenery)P_e(an,rn.scenery);for(let ln of[...rn.aimDots,rn.currentEntity,rn.nextEntity])if(ln!=null)an.despawn(ln);if(D8(rn),rn.layout=nn,rn.camera.ortho=nn.height/2,rn.scenery=O_e(an,nn,rn.theme),rn.aimDots=N_e(an),!rn.bubbles)I8(rn);else{let ln=sn?nn.diameter/sn.diameter:1;for(let cn of rn.bubbles){if(cn.entity!=null)an.despawn(cn.entity);cn.x*=ln,cn.y*=ln}U_e(rn)}rAt(rn),Sh(rn)}function W_e(rn,nn){if(rn.theme=nn,!rn.layout||!rn.scenery||rn.world.isDisposed)return;g_e(rn.world,rn.layout,rn.scenery,nn),Sh(rn)}function U_e(rn){let nn=rn.layout;if(!nn||!rn.bubbles)return;let an=rn.intro;if(an)rn.introAge=0;for(let sn of rn.bubbles)if(sn.entity=lv(rn.world,nn,sn.color,sn.x,sn.y,an?0:1),an){let ln=sn.row*i_e+Math.abs(sn.x-nn.shooterX)*l_e;rn.world.animate(sn.entity,{scale:om(nn)},{spring:s_e,delay:ln})}}function rAt(rn){let{layout:nn,world:an}=rn;rn.currentEntity=lv(an,nn,rn.current,nn.shooterX,nn.shooterY+20),rn.nextEntity=lv(an,nn,rn.next,nn.shooterX+50,nn.shooterY+20,B_e)}function wC(rn,nn){let{layout:an,world:sn}=rn;if(!an||rn.currentEntity==null||rn.nextEntity==null)return;let ln=om(an);if(sn.set(rn.currentEntity,{color:xy(rn.current)}),sn.set(rn.nextEntity,{color:xy(rn.next)}),!nn)return;sn.set(rn.currentEntity,{scale:ln*c_e}),sn.animate(rn.currentEntity,{scale:ln},{spring:MC}),sn.set(rn.nextEntity,{scale:0}),sn.animate(rn.nextEntity,{scale:ln*B_e},{spring:MC,delay:u_e})}function I8(rn){let nn=rn.layout;if(!nn){rn.bubbles=null;return}if(rn.bubbles){for(let sn of rn.bubbles)if(sn.entity!=null)rn.world.despawn(sn.entity)}rn.bubbles=oAt(nn);let an=O8(rn);rn.current=Ry(an),rn.next=Ry(an),rn.intro=!0,U_e(rn),rn.onBubbles(rn.bubbles.length)}function V_e(rn){if(rn.phase!=="ready")return;if(rn.layout&&!rn.bubbles?.length)I8(rn),wC(rn,!1);rn.phase="playing",rn.world.scoreboard.startCountdown(yh),rn.onPhase("playing")}function z_e(rn){D8(rn),I8(rn),wC(rn,!1),rn.angle=0,Sh(rn),rn.world.scoreboard.reset(0,yh),rn.won=!1,rn.phase="ready",rn.onScore(0),rn.onTime(yh),rn.onPhase("ready")}function q_e(rn){rn.shot=null,rn.world.dispose()}function Y_e(rn,nn){if(rn.world.scoreboard.stop(),D8(rn),rn.won=nn,rn.phase="over",rn.angle=0,Sh(rn),nn)rn.onWin();else rn.onLose();rn.onPhase("over")}function K_e(rn,nn){if(rn.world.isDisposed)return;if(fc(rn,nn),rn.shot)nAt(rn,Math.min(nn,x8*3)/x8);rn.world.update(nn)}function P8(rn,nn,an){let sn=rn.layout;if(!sn||rn.phase!=="playing")return;let ln=nn-sn.boardLeft-sn.shooterX,cn=an-sn.boardTop-sn.shooterY;rn.angle=Math.max(-R8,Math.min(R8,Math.atan2(ln,-cn))),Sh(rn)}function Sh(rn){let nn=rn.layout;if(!nn)return;let an=[];if(!rn.shot){let sn=(nn.radius*2)**2,{shooterX:ln,shooterY:cn}=nn,un=rn.angle;for(let dn=1;dn<=sv;dn++){let pn=ln+Math.sin(un)*A8,mn=cn-Math.cos(un)*A8;if(pn<nn.minX)pn=nn.minX+(nn.minX-pn),un=-un;else if(pn>nn.maxX)pn=nn.maxX-(pn-nn.maxX),un=-un;if(mn<Eh)break;if(an.push(pn,mn,M8-dn/sv*(M8-p_e)),rn.bubbles?.some((fn)=>(pn-fn.x)**2+(mn-fn.y)**2<sn))break;ln=pn,cn=mn}}G_e(rn.world,nn,rn.aimDots,an,L_e(rn.theme))}function g8(rn){let nn=rn.layout;if(!nn||rn.phase!=="playing"||rn.shot)return;rn.shot={x:nn.shooterX,y:nn.shooterY,vx:Math.sin(rn.angle)*T8,vy:-Math.cos(rn.angle)*T8,color:rn.current,entity:lv(rn.world,nn,rn.current,nn.shooterX,nn.shooterY)};let an=O8(rn);if(rn.current=rn.next,an.length){if(!an.includes(rn.current))rn.current=Ry(an);rn.next=Ry(an)}wC(rn,!0),Sh(rn),rn.onShoot()}function D8(rn){if(rn.shot)rn.world.despawn(rn.shot.entity);rn.shot=null}function nAt(rn,nn){let{layout:an,shot:sn}=rn,ln=(an.radius*2)**2,cn=sn.vx*nn,un=sn.vy*nn,dn=Math.max(1,Math.ceil(Math.hypot(cn,un)/(an.radius*0.5))),pn=1;for(let mn=0;mn<dn;mn++){if(sn.x+=cn/dn*pn,sn.y+=un/dn,sn.x<an.minX)sn.x=an.minX+(an.minX-sn.x),pn=-pn;else if(sn.x>an.maxX)sn.x=an.maxX-(sn.x-an.maxX),pn=-pn;let fn=sn.y-an.radius<=Eh;if(fn)sn.y=Eh+an.radius;else fn=rn.bubbles.some((hn)=>(sn.x-hn.x)**2+(sn.y-hn.y)**2<=ln);if(fn){iAt(rn,sn.x,sn.y);return}}if(pn<0)sn.vx=-sn.vx;rn.world.set(sn.entity,{position:iv(an,sn.x,sn.y)})}function aAt(rn,nn,an){let sn=rn.layout,ln=sn.diameter,cn=Eh+sn.radius,un=Math.max(sn.minX,Math.min(sn.maxX,nn)),dn=Math.max(cn,an),pn=null,mn=1/0;for(let Sn of rn.bubbles){let _n=(un-Sn.x)**2+(dn-Sn.y)**2;if(_n<mn)mn=_n,pn=Sn}if(!pn||mn>(ln*2)**2)return[un,dn];let fn=un-pn.x,hn=dn-pn.y,bn=Math.hypot(fn,hn),yn=bn<0.1?pn.x:pn.x+fn/bn*ln,En=bn<0.1?pn.y+ln:pn.y+hn/bn*ln;return yn=Math.max(sn.minX,Math.min(sn.maxX,yn)),En=Math.max(cn,Math.min(pn.y+ln*2,En)),[yn,En]}function sAt(rn,nn){let an=(rn.layout.radius*2.5)**2,sn=new Set([nn]),ln=[nn];for(let cn=0;cn<ln.length;cn++){let un=ln[cn];for(let dn of rn.bubbles){if(dn.color!==nn.color||sn.has(dn))continue;if((un.x-dn.x)**2+(un.y-dn.y)**2<an)sn.add(dn),ln.push(dn)}}return[...sn]}function iAt(rn,nn,an){let{layout:sn,world:ln,shot:cn}=rn;rn.shot=null;let[un,dn]=aAt(rn,nn,an),pn={x:un,y:dn,color:cn.color,row:0,entity:cn.entity};ln.set(cn.entity,{position:iv(sn,un,dn),scale:om(sn)*a_e}),ln.animate(cn.entity,{scale:om(sn)},{spring:MC}),rn.bubbles.push(pn);let mn=sAt(rn,pn);if(mn.length>=o_e){let fn=new Set(mn);rn.bubbles=rn.bubbles.filter((bn)=>!fn.has(bn));for(let bn of mn){if(bn.entity!=null)D_e(ln,sn,bn.entity,bn.color,bn.x,bn.y);bn.entity=null}rn.onScore(rn.world.scoreboard.add(mn.length*r_e)),rn.onPop();let hn=O8(rn);if(hn.length&&(!hn.includes(rn.current)||!hn.includes(rn.next))){if(!hn.includes(rn.current))rn.current=Ry(hn);if(!hn.includes(rn.next))rn.next=Ry(hn);wC(rn,!0)}}if(rn.onBubbles(rn.bubbles.length),rn.bubbles.length===0&&rn.phase==="playing"){Y_e(rn,!0);return}Sh(rn)}var eAt=600,B_e=0.6,Ry=(rn)=>rn[Math.floor(Math.random()*rn.length)],tAt=()=>Math.floor(Math.random()*t_e),O8=(rn)=>[...new Set((rn.bubbles??[]).map((nn)=>nn.color))];var X_e=e(()=>{Hn();CC();k_e()});var ar={};n(ar,{BubbleShooter:()=>Gt});import{jsx as lAt}from"react/jsx-runtime";var Ay,Gt;var ne=e(()=>{Ta();l();a();_a();o();xa();va();CC();X_e();Ay=t.BUBBLE_SHOOTER,Gt=Vn("bubble-shooter",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(0),[cn,un]=gn(yh),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"bubble-shooter",create:F_e,start:V_e,reset:z_e,dispose:q_e,tick:K_e,setTheme:W_e,resize:(hn,bn,yn,En)=>{let Sn=v_e(bn,yn,En);return H_e(hn,Sn),Sn.boardWidth},drag:(hn,{phase:bn,x:yn,y:En,cancelled:Sn})=>{if(bn!=="end")P8(hn,yn,En);else if(!Sn)g8(hn)},tap:(hn,bn,yn)=>{P8(hn,bn,yn),g8(hn)},sounds:Ay,onStart:(hn)=>hn(Ay.START,"success"),wire:(hn,bn)=>{hn.onScore=an,hn.onTime=un,hn.onBubbles=ln,hn.onShoot=()=>bn(Ay.SHOOT,"light"),hn.onPop=()=>bn(Ay.POP,"success"),hn.onWin=()=>bn(Ay.WIN,"success"),hn.onLose=()=>bn(Ay.GAME_OVER,"error")}});return lAt(Un,{...mn,light:f_e,columns:[Qn(nn),Qn(sn,"BUBBLES"),ta(cn,dn)],subtext:"Match three colored bubbles!",gameOver:fn({title:pn==="win"?"YOU WON!":"GAME OVER",message:pn==="win"?"All bubbles cleared!":"Great shooting!",scoreLabel:"Final Score",score:nn,buttonText:"Shoot Again!"})})})});function mve(rn,nn,an){let sn=$n(rn),ln=Math.floor((sn-fu*(_s+1))/_s),cn=_s*ln+(_s+1)*fu;return{width:rn,height:nn,boardLeft:(rn-cn)/2,boardTop:an+(nn-an-cn)/2,boardSize:cn,cell:ln,step:ln+fu,swipeThreshold:ln*0.3}}var _s=7,j_e=4,LC=3,$_e=5,Ji=-1,Z_e=2,IC=0.25,N8=50,Q_e=1.25,_h=300,J_e,eve,OC=0.2,PC=0.42,G8=0.025,cv=0.4,gC,tve,DC,ove=1.1,rve=0.09,nve,k8=0.28,ave=0.028,sve=0.022,ive,lve="rgba(255, 255, 255, 0.13)",cve="rgba(255, 255, 255, 0.25)",uve="rgba(255, 255, 255, 0.10)",dve=16,pve=8,fu=3,fve=(rn,nn,an)=>[rn.boardLeft+fu+an*rn.step+rn.cell/2,rn.boardTop+fu+nn*rn.step+rn.cell/2];var NC=e(()=>{Hn();J_e=[30,10],eve=["#EF2D36","#2DC84E","#3B9FFF","#FFD020","#B44CFF","#FF8820"],gC={damping:13,stiffness:170,mass:0.9},tve={damping:14,stiffness:300},DC={damping:16,stiffness:260},nve={damping:9,stiffness:320},ive=Zn([-0.35,0.6,1],0.5)});import{extrude as yve,loft as cAt,Path as Eve,quat as uAt}from"@nayan-ui/engine";function Tve(rn,nn,an){let sn=an.mode==="classic",ln=sn?dve:pve,cn=(dn)=>Sve(nn,nn.boardLeft,nn.boardTop,dn),un=(dn,pn,mn)=>rn.spawn({mesh:dn,position:cn(pn),color:xn(mn),pickable:!1});return[un(bve(nn.boardSize,ln),pAt,sn?lve:an.BOARD.SURFACE),un(fAt(nn),mAt,sn?uve:an.BOARD.CELL_EMPTY),un(bve(nn.boardSize,ln,1.5),B8,sn?cve:an.BOARD.BORDER)]}function xve(rn,nn,an){return{backdrop:oa(rn,nn.width,nn.height,dAt,an),parts:Tve(rn,nn,an)}}function Rve(rn,nn){rn.despawn(nn.backdrop);for(let an of nn.parts)rn.despawn(an)}function Ave(rn,nn,an,sn){aa(rn,an.backdrop,sn);for(let ln of an.parts)rn.despawn(ln);an.parts=Tve(rn,nn,sn)}function bAt(){if(GC)return GC;let rn=(dn)=>kC[dn%kC.length],[nn,an,sn,ln]=[rn(0),rn(1),rn(2),rn(3)],cn=(dn,pn,mn)=>[dn[0]+(pn[0]-dn[0])*mn,dn[1]+(pn[1]-dn[1])*mn,dn[2]+(pn[2]-dn[2])*mn,1];return GC=wn(cAt([{z:-0.5,bottom:-0.5,top:0.5,width:0.5,square:7},{z:0.2,bottom:-0.5,top:0.5,width:0.5,square:7},{z:0.4,bottom:-0.465,top:0.465,width:0.465,square:6.5},{z:0.5,bottom:-0.39,top:0.39,width:0.39,square:5.5}],{around:64,smoothness:3,color:([dn,pn])=>{let mn=Math.max(0,Math.min(1,dn+0.5)),fn=Math.max(0,Math.min(1,pn+0.5));return cn(cn(ln,sn,mn),cn(nn,an,mn),fn)}}),{center:!1}),GC}function dv(rn,nn,an,sn,ln){let cn=nn.cell-4,un=uv(nn),dn=rn.spawn({mesh:"none",position:sn,scale:ln,pickable:!1});if(an!==Ji)return BC.set(dn,ai(rn,{parent:dn,position:[0,0,0],size:[cn,cn,un],color:H8(an),gloss:!1,shadow:!1})),dn;let pn=rn.spawn({mesh:bAt(),parent:dn,scale:[cn,cn,un],color:Mve,pickable:!1});return BC.set(dn,pn),rn.animate(pn,{scale:[cn*1.07,cn*1.07,un]},{duration:0.5,repeat:"forever",yoyo:!0,easing:"easeInOut"}),dn}function wve(rn,nn){rn.animate(nn,[{scale:0.3},{scale:1.25,at:0.6},{scale:1}],{duration:0.35,easing:"easeOut"})}function Lve(rn,nn,an,sn,ln,cn){let un=sn[0]-an[0],dn=sn[1]-an[1],pn=Math.atan2(dn,un),mn=Math.hypot(un,dn),[fn,hn,bn]=ln===Ji?[1,1,1]:H8(ln),yn=an[2]+uv(nn);rn.after(cn,()=>{let En=rn.spawn({mesh:"cube",position:[(an[0]+sn[0])/2,(an[1]+sn[1])/2,yn],rotation:uAt.z(pn),scale:[mn,nn.cell*0.08,1],color:[fn,hn,bn,0.9],pickable:!1});rn.animate(En,{scale:[mn,0.01,1],color:[fn,hn,bn,0]},{duration:0.3}).then(()=>{if(rn.has(En))rn.despawn(En)})})}function Ive(rn,nn,an,sn,ln,cn,un=0){let dn=sn===Ji?Cve:H8(sn),pn=BC.get(an);if(BC.delete(an),pn!=null)rn.animate(pn,[{color:hAt,at:0.33},{color:sn===Ji?Mve:dn}],{duration:cn*0.3,delay:un});return Xs(rn,an,{scale:1,delay:un,duration:cn},{position:[ln[0],ln[1],ln[2]+uv(nn)],size:nn.cell,color:dn,glowZ:B8+0.2})}var dAt=-20,pAt=0,mAt=0.2,B8=0.4,Sve=(rn,nn,an,sn=0)=>[nn-rn.width/2,rn.height/2-an,sn],uv=(rn)=>rn.cell*0.4,_ve=(rn)=>B8+uv(rn)/2+1,F8=(rn)=>_ve(rn)+uv(rn)*2,Ci=(rn,nn,an,sn=_ve(rn))=>{let[ln,cn]=fve(rn,nn,an);return Sve(rn,ln,cn,sn)},hve,vve=(rn,nn)=>{let an=hve.get(rn);if(!an)an=Bn("candy-crush/CandyCrushScene:"+rn,nn),hve.set(rn,an);return an},bve=(rn,nn,an=0)=>vve(`panel:${rn}:${nn}:${an}`,()=>{let sn=new Eve().addRoundedRect(0,0,rn,rn,nn);if(an>0)sn.addRoundedRect(an,an,rn-an*2,rn-an*2,nn-an);return wn(yve(sn,{depth:0,fillRule:"evenodd"}),{center:!1})}),fAt=(rn)=>vve(`candy-cells:${rn.cell}`,()=>{let nn=new Eve;for(let an=0;an<_s;an++)for(let sn=0;sn<_s;sn++)nn.addRoundedRect(fu+sn*rn.step,fu+an*rn.step,rn.cell,rn.cell,rn.cell*0.2);return wn(yve(nn,{depth:0}),{center:!1})}),kC,Mve,Cve,hAt,BC,H8=(rn)=>rn===Ji?Cve:kC[rn%kC.length],GC=null;var Ove=e(()=>{u();f();l0();na();Hn();NC();hve=new Map;kC=eve.map((rn)=>xn(rn)),Mve=[1,1,1,1],Cve=[1,0.85,0.4,1],hAt=[2,2,2,1],BC=new Map});import{World as yAt}from"@nayan-ui/engine";function SAt(rn,nn,an,sn){let ln=(cn,un)=>{let dn=0;for(let pn=nn+cn,mn=an+un;pn>=0&&pn<_s&&mn>=0&&mn<_s;pn+=cn,mn+=un){if(rn[ql(pn,mn)]?.type!==sn)break;dn++}return dn};return 1+ln(0,-1)+ln(0,1)>=LC||1+ln(-1,0)+ln(1,0)>=LC}function Pve(){let rn=Array(_s*_s).fill(null);for(let nn=0;nn<_s;nn++)for(let an=0;an<_s;an++){let sn=W8();for(let ln=1;ln<10&&SAt(rn,nn,an,sn);ln++)sn=W8();rn[ql(nn,an)]={type:sn,row:nn,col:an,root:null}}return rn}function gve(rn){let nn=new Set,an=[],sn=(ln)=>{for(let cn=0;cn<_s;cn++){let un=0;while(un<_s){let dn=ln(cn,un),pn=un+1;while(dn&&dn.type!==Ji&&pn<_s&&ln(cn,pn)?.type===dn.type)pn++;if(dn&&dn.type!==Ji&&pn-un>=LC){for(let mn=un;mn<pn;mn++)nn.add(ln(cn,mn));if(pn-un>=$_e)an.push(Array.from({length:pn-un},(mn,fn)=>ln(cn,un+fn)))}un=pn}}};return sn((ln,cn)=>rn[ql(ln,cn)]??null),sn((ln,cn)=>rn[ql(cn,ln)]??null),{matched:[...nn],fives:an}}function Dve(rn){let nn=new yAt(EAt),sn={world:nn,camera:{eye:[0,0,400],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scenery:null,phase:"ready",get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},time:0,grid:Pve(),busy:!1,combo:0,dragging:null,intro:!0,introAge:-1,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onSelect:()=>{},onSwap:()=>{},onInvalid:()=>{},onMatch:(ln)=>{},onBomb:()=>{},onBlast:()=>{},onWarning:(ln)=>{},onTimeUp:()=>{}};return nn.scoreboard.reset(0,_h),nn.scoreboard.handlers={onSecond:(ln)=>{if(sn.onTime(ln),ln>0&&J_e.includes(ln))sn.onWarning(ln)},onTimeUp:()=>sn.phase==="playing"&&_At(sn)},sn}function Nve(rn,nn){if(rn.scenery)Rve(rn.world,rn.scenery);rn.layout=nn,rn.camera.ortho=nn.height/2,rn.scenery=xve(rn.world,nn,rn.theme),rn.dragging=null,Bve(rn)}function Gve(rn,nn){if(rn.theme=nn,rn.layout&&rn.scenery&&!rn.world.isDisposed)Ave(rn.world,rn.layout,rn.scenery,nn)}function kve(rn,nn){if(nn.root!=null)rn.world.despawn(nn.root);nn.root=null}function Bve(rn){let nn=rn.layout;if(!nn)return;let an=rn.intro;if(an)rn.introAge=0;for(let sn of rn.grid){if(!sn)continue;if(kve(rn,sn),!an){sn.root=dv(rn.world,nn,sn.type,Ci(nn,sn.row,sn.col),1);continue}sn.root=dv(rn.world,nn,sn.type,Ci(nn,sn.row-2,sn.col),0);let ln=sn.col*ave+(_s-1-sn.row)*sve;rn.world.animate(sn.root,{position:Ci(nn,sn.row,sn.col)},{spring:gC,delay:ln}),rn.world.animate(sn.root,{scale:1},{duration:cv*0.6,delay:ln,easing:"back"})}}function Fve(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(_h),rn.onPhase("playing")}function Hve(rn){rn.world.cancelTimers();for(let nn of rn.grid)if(nn)kve(rn,nn);rn.grid=Pve(),rn.busy=!1,rn.combo=0,rn.dragging=null,rn.intro=!0,Bve(rn),rn.world.scoreboard.reset(0,_h),rn.phase="ready",rn.onScore(0),rn.onTime(_h),rn.onPhase("ready")}function Wve(rn){rn.world.cancelTimers(),rn.world.dispose()}function _At(rn){if(rn.world.scoreboard.stop(),rn.dragging)TAt(rn);rn.phase="over",rn.onTimeUp(),rn.onPhase("over")}function Uve(rn,nn){if(rn.world.isDisposed)return;fc(rn,nn),rn.time+=nn,rn.world.update(nn)}function vAt(rn,nn,an){let sn=Math.floor((nn-rn.boardLeft-fu)/rn.step),ln=Math.floor((an-rn.boardTop-fu)/rn.step);return ln<0||ln>=_s||sn<0||sn>=_s?null:[ln,sn]}function Vve(rn,nn,an){let sn=rn.layout;if(!sn||rn.phase!=="playing"||rn.busy)return;let ln=vAt(sn,nn,an),cn=ln?rn.grid[ql(ln[0],ln[1])]:null;if(!cn||cn.root==null)return;rn.dragging=cn,rn.onSelect(),rn.world.stopAnimation(cn.root),rn.world.set(cn.root,{position:Ci(sn,cn.row,cn.col,F8(sn))}),rn.world.animate(cn.root,{scale:ove},{spring:tve})}function zve(rn,nn,an){let{layout:sn,dragging:ln}=rn;if(!sn||!ln||ln.root==null)return;let cn=Ci(sn,ln.row,ln.col,F8(sn));rn.world.set(ln.root,{position:[cn[0]+nn,cn[1]-an,cn[2]]})}function qve(rn,nn,an,sn=!1){let{dragging:ln,layout:cn}=rn;if(!ln||!cn)return;rn.dragging=null;let un=Math.abs(nn),dn=Math.abs(an);if(!sn&&rn.phase==="playing"&&Math.max(un,dn)>cn.swipeThreshold)RAt(rn,ln,un>dn?nn>0?"right":"left":an>0?"down":"up");else FC(rn,ln)}function TAt(rn){let nn=rn.dragging;if(rn.dragging=null,nn)FC(rn,nn)}function FC(rn,nn){let an=rn.layout;if(!an||nn.root==null)return;rn.world.animate(nn.root,{position:Ci(an,nn.row,nn.col)},{spring:DC}),rn.world.animate(nn.root,{scale:1},{spring:DC})}function pv(rn,nn,an,sn){nn.row=an,nn.col=sn,rn.grid[ql(an,sn)]=nn}function RAt(rn,nn,an){let{layout:sn,world:ln}=rn,[cn,un]=xAt[an],dn=nn.row+cn,pn=nn.col+un,mn=dn>=0&&dn<_s&&pn>=0&&pn<_s?rn.grid[ql(dn,pn)]:null;if(!mn||rn.busy){if(!mn&&!rn.busy)rn.onInvalid();FC(rn,nn);return}let[fn,hn]=[nn.row,nn.col];pv(rn,nn,dn,pn),pv(rn,mn,fn,hn);let bn=nn.type===Ji?nn:mn.type===Ji?mn:null;if(bn||gve(rn.grid).matched.length){if(rn.busy=!0,rn.combo=0,nn.root!=null)ln.animate(nn.root,{position:Ci(sn,nn.row,nn.col)},{duration:OC,easing:"easeOut"}),ln.animate(nn.root,{scale:1},{spring:DC});if(mn.root!=null)ln.animate(mn.root,{position:Ci(sn,mn.row,mn.col)},{duration:OC,easing:"easeOut"});rn.onSwap(),mv(rn,OC,()=>bn?AAt(rn,bn,bn===nn?mn:nn):V8(rn,[nn,mn]));return}pv(rn,mn,dn,pn),pv(rn,nn,fn,hn),FC(rn,nn);let yn=mn.root;if(yn!=null){let En=Ci(sn,mn.row,mn.col),Sn=[En[0]-un*k8*sn.step,En[1]+cn*k8*sn.step,En[2]];ln.animate(yn,{position:Sn},{duration:rve,easing:"easeOut"}).then(()=>{if(mn.root===yn&&rn.dragging!==mn)ln.animate(yn,{position:En},{spring:nve})})}rn.onInvalid()}function V8(rn,nn=[]){let an=rn.layout,{matched:sn,fives:ln}=gve(rn.grid);if(!an||!sn.length){rn.busy=!1,rn.combo=0;return}if(rn.combo++,rn.phase==="playing")rn.onScore(rn.world.scoreboard.add(Math.floor(sn.length*N8*Math.pow(Q_e,rn.combo-1))));rn.onMatch(rn.combo);let cn=new Set(ln.map((mn)=>mn.find((fn)=>nn.includes(fn))??mn[Math.floor(mn.length/2)])),un=rn.world,dn=nn.find((mn)=>sn.includes(mn))??sn[0];for(let mn of sn){if(cn.has(mn))continue;rn.grid[ql(mn.row,mn.col)]=null,U8(rn,an,mn,Math.hypot(mn.row-dn.row,mn.col-dn.col)*G8)}for(let mn of cn){if(mn.root!=null)un.despawn(mn.root);mn.type=Ji,mn.root=dv(un,an,Ji,Ci(an,mn.row,mn.col),1),wve(un,mn.root)}if(cn.size)rn.onBomb();let pn=Math.max(...sn.map((mn)=>Math.hypot(mn.row-dn.row,mn.col-dn.col)))*G8;mv(rn,PC+pn,()=>{Yve(rn),mv(rn,cv,()=>V8(rn))})}function U8(rn,nn,an,sn){let ln=an.root;if(an.root=null,ln==null)return;Ive(rn.world,nn,ln,an.type,Ci(nn,an.row,an.col),PC*0.95,sn).then(()=>{rn.world.despawn(ln)})}function AAt(rn,nn,an){let sn=rn.layout;if(!sn)return;let ln=an.type===Ji,cn=rn.grid.filter((pn)=>!!pn&&pn!==nn&&(ln||pn.type===an.type));if(rn.combo=1,rn.phase==="playing")rn.onScore(rn.world.scoreboard.add((cn.length+1)*N8*Z_e));rn.onBlast();let un=Ci(sn,nn.row,nn.col),dn=Math.min(0.012,0.3/Math.max(1,cn.length));cn.forEach((pn,mn)=>{Lve(rn.world,sn,un,Ci(sn,pn.row,pn.col),ln?Ji:pn.type,mn*dn),rn.grid[ql(pn.row,pn.col)]=null,U8(rn,sn,pn,IC+mn*dn)}),rn.grid[ql(nn.row,nn.col)]=null,U8(rn,sn,nn,IC),mv(rn,IC+cn.length*dn+PC,()=>{Yve(rn),mv(rn,cv,()=>V8(rn))})}function Yve(rn){let nn=rn.layout;if(!nn)return;let an=rn.world;for(let sn=0;sn<_s;sn++){let ln=_s-1;for(let cn=_s-1;cn>=0;cn--){let un=rn.grid[ql(cn,sn)];if(!un)continue;if(rn.grid[ql(cn,sn)]=null,pv(rn,un,ln,sn),cn!==ln&&un.root!=null)an.animate(un.root,{position:Ci(nn,ln,sn)},{spring:gC});ln--}for(;ln>=0;ln--){let cn={type:W8(),row:ln,col:sn,root:null};rn.grid[ql(ln,sn)]=cn,cn.root=dv(an,nn,cn.type,Ci(nn,ln-1,sn),0),an.animate(cn.root,{position:Ci(nn,ln,sn)},{spring:gC}),an.animate(cn.root,{scale:1},{duration:cv*0.6,easing:"back"})}}}var EAt=1000,ql=(rn,nn)=>rn*_s+nn,W8=()=>Math.floor(Math.random()*j_e),mv=(rn,nn,an)=>rn.world.after(nn,an),xAt;var Kve=e(()=>{Hn();NC();Ove();xAt={up:[-1,0],down:[1,0],left:[0,-1],right:[0,1]}});var sr={};n(sr,{CandyCrush:()=>kt});import{jsx as CAt}from"react/jsx-runtime";var hu,MAt=(rn)=>`${rn}`,kt;var ae=e(()=>{Ta();l();a();_a();o();xa();va();NC();Kve();hu=t.CANDY_CRUSH,kt=Vn("candy-crush",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(_h),{theme:cn,screen:un,gameOver:dn}=zn(rn,{gameId:"candy-crush",create:Dve,start:Fve,reset:Hve,dispose:Wve,tick:Uve,setTheme:Gve,resize:(pn,mn,fn,hn)=>{let bn=mve(mn,fn,hn);return Nve(pn,bn),bn.boardSize},drag:(pn,{phase:mn,x:fn,y:hn,dx:bn,dy:yn,cancelled:En})=>{if(mn==="start")Vve(pn,fn,hn);else if(mn==="move")zve(pn,bn,yn);else qve(pn,bn,yn,En)},outcome:()=>"win",sounds:hu,onStart:(pn)=>pn(hu.START,"medium"),wire:(pn,mn)=>{pn.onScore=an,pn.onTime=ln,pn.onSelect=()=>mn(hu.SELECT,"light"),pn.onSwap=()=>mn(hu.SWAP,"medium"),pn.onInvalid=()=>mn(hu.INVALID_SWAP,"warning"),pn.onMatch=(fn)=>mn(fn>1?hu.COMBO:hu.MATCH,fn>1?"heavy":"medium"),pn.onBomb=()=>mn(hu.BOMB,"heavy"),pn.onBlast=()=>mn(hu.BLAST,"heavy"),pn.onWarning=(fn)=>mn(hu.WARNING,fn<=10?"heavy":"medium"),pn.onTimeUp=()=>mn(hu.TIME_UP,"heavy")}});return CAt(Un,{...un,light:ive,columns:[Qn(nn),ta(sn,cn,0)],subtext:"Match 3 or more",gameOver:dn({title:"TIME UP!",message:"Great crushing!",scoreLabel:"Final Score",score:nn,formatter:MAt,buttonText:"Crush Again!"})})})});import{audio as z8,effects as jve,haptics as vh,World as wAt}from"@nayan-ui/engine";function $ve(rn,nn){let an=new wAt(2600),sn={eye:[6,3,6],target:[0,0.6,0],fov:ad},ln=M_(an,rn),cn=C_(an,nn),un=cM(an,rn,iN,[0,rn.car.size[1]/2,0],nn);an.listener=un.root;let dn={world:an,night:nn,track:new jb,chase:pM(),assets:rn,camera:sn,player:un,horizon:cn,segments:ln,traffic:[],burning:[],phase:"ready",time:0,s:0,d:0,target:0,dragX:0,speed:0,lateral:0,steeringPose:{yaw:0,roll:0},steeringGoal:0,spawnTimer:0.5,invulnerable:0,scrape:0,orbit:0,get score(){return an.scoreboard.score},get lives(){return an.scoreboard.lives},left:xs,shake:0,engine:null,audible:!0,onPhase:(pn)=>{},onScore:(pn)=>{},onLives:(pn)=>{},onDistance:(pn)=>{},hudFeedback:{}};for(let pn of ln)Zb(dn,pn),Qb(dn,pn);return an.scoreboard.reset(Ub),O_(an,dn.track,0,xs,rn.font),dn}function q8(rn){if(rn.world.isDisposed||rn.phase!=="ready")return;rn.phase="playing",rn.speed=Vb;for(let nn=50;nn<Math.min($5,xs-nd);nn+=sa(18,26))nTe(rn,nn);if(rn.engine=rn.audible?ts().play("engine",{volume:0.32,loop:!0}):null,!rn.engine)ts().ready.then(()=>{if(!rn.world.isDisposed&&rn.audible&&rn.phase==="playing"&&!rn.engine)rn.engine=ts().play("engine",{volume:0.32,loop:!0})});rn.onPhase("playing"),p(ts(),"nitro",{volume:0.6}),vh.impact(0.6,0.4)}function Zve(rn,nn){if(rn.audible=nn,!nn){z8.stop(rn.engine),rn.engine=null;return}if(rn.phase!=="playing"||rn.engine||rn.world.isDisposed)return;let an=()=>{if(!rn.world.isDisposed&&rn.audible&&rn.phase==="playing"&&!rn.engine)rn.engine=ts().play("engine",{volume:0.32,loop:!0})};if(an(),!rn.engine)ts().ready.then(an)}function Qve(rn,nn){if(rn.world.isDisposed||rn.night===nn)return;rn.night=nn,$b(rn.world,rn.horizon,nn),A_(rn.world,rn.player,nn,rn.assets.car.size[1]);for(let an of rn.traffic)A_(rn.world,an,nn,rn.assets.car.size[1]);for(let an of rn.segments)for(let sn of an.lights)rn.world.set(sn.entity,{color:nn?sn.night:sn.day})}function Jve(rn,nn,an,sn){if(rn.world.isDisposed||rn.phase!=="playing")return;if(nn==="start")rn.dragX=0;if(nn==="end")return;rn.target=sd(rn.target+(an-rn.dragX)*sn,-ds-0.6,ds+0.6),rn.dragX=an}function eTe(rn){z8.stop(rn.engine),rn.world.dispose()}function Xve(rn,nn,an,sn,ln,cn=0,un=0){let dn=rn.track.sample(an,My);xc(dn,sn,ln,u0),rn.world.set(nn,{position:u0,velocity:[0,0,0],rotation:id(dn.heading,dn.pitch,cn,un,IAt)})}function tTe(rn,nn,an=!0){nn.crashed=!0,nn.passed=!0;let sn=rn.track.sample(nn.s,My),ln=R_(sn.heading),cn=Math.sign(nn.d-rn.d)||(Math.random()<0.5?-1:1),un=rn.assets.car.size;rn.world.set(nn.root,{physics:{type:"dynamic",size:[un[0]*0.95,un[1],un[2]*0.95],layer:8,mask:12,bounce:0.25,friction:0.6,density:0.4},spin:[sa(-2,2),sa(-5,5),-cn*sa(2,5)],impact:{sound:ts().get("bump"),minSpeed:2,maxSpeed:14,volume:0.8,haptic:0.3},lifetime:3.6}),rn.speed=an?Math.max(Vb*0.6,rn.speed*tN):rn.speed*0.9;let dn=rn.speed*1.1,pn=rn.track.sample(nn.s,My),{x:mn,z:fn}=pn,hn=rn.track.sample(nn.s+1,My),bn=Math.hypot(hn.x-mn,hn.z-fn)||1,yn=[(hn.x-mn)/bn,0,(hn.z-fn)/bn],En=an?3:6;rn.world.set(nn.root,{velocity:[yn[0]*dn+ln[0]*cn*En,an?4:3,yn[2]*dn+ln[2]*cn*En]});let Sn=rn.world.position(nn.root);if(Sn)L_(rn.world,Sn);if(rn.burning.push(jf(nn.root,rn.time+3.2)),rn.shake=0.5,an)rn.onLives(rn.world.scoreboard.addLives(-1));if(rn.hudFeedback.flash=!0,p(ts(),"hit",{volume:1}),vh.impact(1,0.8),rn.lives<=0){rn.burning.push(jf(rn.player.root,1/0)),oTe(rn);return}rn.invulnerable=oN}function PAt(rn,nn,an){if(fM(rn.lateral,nn.vd,nn.d-rn.d)>=2.5){nn.bumped=!0,rn.lateral*=0.55,tTe(rn,nn,!1);return}let ln=Math.sign(nn.d-rn.d)||1;if(nn.d+=ln*an*0.65,rn.d-=ln*an*0.35,nn.vd=ln*(4+Math.abs(rn.lateral)*0.8),rn.lateral=-ln*Math.abs(rn.lateral)*0.3,nn.bumped=!0,rn.speed*=0.97,rn.shake=Math.max(rn.shake,0.15),nn.bumpCooldown>0)return;nn.bumpCooldown=0.3;let cn=rn.track.sample((nn.s+rn.s)/2,My);xc(cn,(nn.d+rn.d)/2,0.6,u0),jve.sparks(rn.world,{position:[u0[0],u0[1],u0[2]],count:14,speed:7,size:0.07,lifetime:0.4,gravity:-9.81,colors:[[1,0.9,0.4],[1,0.65,0.2]]}),p(ts(),"bump",{volume:0.9}),vh.impact(0.6,0.7)}function oTe(rn){if(rn.phase!=="playing")return;if(rn.world.scoreboard.stop(),rn.phase="over",z8.stop(rn.engine),rn.engine=null,rn.lives>0)p(ts(),"win",{volume:0.8}),vh.notify("success");else p(ts(),"die",{volume:0.8}),vh.notify("error");rn.onPhase("over")}function rTe(rn,nn){if(rn.world.isDisposed)return;nn=Math.max(0,Math.min(nn,0.05)),rn.time+=nn;let an=rn.phase==="playing";if(an){if(rn.speed+=(Vb-rn.speed)*(1-Math.exp(-nn*1.2)),rn.invulnerable=Math.max(0,rn.invulnerable-nn),rn.spawnTimer-=nn,rn.spawnTimer<=0)rn.spawnTimer=Math.max(0.4,1-(rn.speed-Vb)*0.02)*sa(0.8,1.2),nTe(rn);if(au)NAt(rn)}else if(rn.phase==="over")rn.speed=Math.max(0,rn.speed-25*nn);let sn=sd(rn.target,-ds-0.6,ds+0.6);if(mM(rn,an?sn:rn.d,nn,Bf,Ff,an),rn.scrape-=nn,Math.abs(rn.d)>ds){if(rn.d=Math.sign(rn.d)*ds,Math.sign(rn.lateral)===Math.sign(rn.d))rn.lateral=0;if(an&&Math.abs(sn)>ds+0.2&&rn.scrape<=0){rn.scrape=0.06,rn.speed*=0.985;let cn=rn.track.sample(rn.s+1.5,My);xc(cn,Math.sign(rn.d)*(Na+0.9),0.6,u0),jve.sparks(rn.world,{position:[u0[0],u0[1],u0[2]],count:6,speed:6,size:0.08,lifetime:0.35,gravity:-9.81,colors:[[1,0.85,0.3],[1,0.55,0.1]],flash:!1}),vh.impact(0.25,1)}}if(rn.s+=rn.speed*nn,rn.phase==="playing"){let cn=Math.max(0,Math.ceil(xs-rn.s));if(cn!==rn.left)rn.left=cn,rn.onDistance(cn);if(rn.s>=xs)oTe(rn)}let ln=rn.assets.car.size;hM(rn.steeringPose,rn.lateral,rn.speed,nn),Xve(rn,rn.player.root,rn.s,rn.d,ln[1]/2,rn.steeringPose.yaw,rn.steeringPose.roll);for(let cn=rn.traffic.length-1;cn>=0;cn--){let un=rn.traffic[cn];if(un.crashed){if(!rn.world.has(un.root))rn.traffic.splice(cn,1);continue}let dn=rn.assets.car.size;if(un.s+=j5*nn,un.bumpCooldown-=nn,un.d+=un.vd*nn,un.vd*=Math.exp(-nn*2.5),Math.abs(un.d)>ds)un.d=Math.sign(un.d)*ds,un.vd=-un.vd*0.3;Xve(rn,un.root,un.s,un.d,dn[1]/2,Math.atan2(un.vd,j5)*0.9);let pn=un.s-rn.s,mn=Fb.length,fn=Math.abs(un.d-rn.d);if(Math.abs(pn)<mn)un.closest=Math.min(un.closest,fn);let hn=uM(Fb,Fb,pn,fn);if(rn.phase==="playing"&&hn>0){if(!un.touching&&dM(Fb,Fb,un.wasAhead,pn))un.headOn=!0;if(un.touching=!0,!un.headOn)PAt(rn,un,hn);else if(rn.invulnerable<=0){tTe(rn,un);continue}}else un.touching=!1,un.headOn=!1;if(un.wasAhead=pn,!un.passed&&rn.phase==="playing"&&pn<-mn){if(un.passed=!0,rn.onScore(rn.world.scoreboard.add(eN)),p(ts(),"point",{volume:0.5}),vh.impact(0.25,0.9),un.closest<2.9&&!un.bumped)rn.hudFeedback.message="NEAR MISS!"}if(pn<-30)rn.world.despawn(un.root),rn.traffic.splice(cn,1)}I_(rn.world,rn.camera,rn.burning,rn.time,nn),rn.world.update(nn),w_(rn,rn.segments,rn.s),gAt(rn,nn)}function gAt(rn,nn){let an=rn.world.worldPosition(rn.player.root,LAt);if(!an)return;let sn=rn.track.sample(rn.s,OAt),ln=x_(sn.heading);if(rn.phase==="ready"){rn.orbit+=nn*0.35;let cn=rn.orbit+0.9;Jb(rn.chase,rn.camera,an,[Math.sin(cn)*9,3,Math.cos(cn)*9],[0,0.2,0],nn)}else Jb(rn.chase,rn.camera,an,[-ln[0]*9,3.2+Math.max(0,-sn.pitch)*2,-ln[2]*9],[ln[0]*12,0.5+Math.tan(sn.pitch)*12,ln[2]*12],nn);rn.camera.fov=ad,rn.shake*=Math.exp(-nn*6),rn.world.set(rn.horizon,{position:[an[0],0,an[2]]})}function nTe(rn,nn=$5){let an=rn.s+nn;if(an>xs-nd)return;let sn=14+rn.speed*0.35,ln=new Set;for(let fn of rn.traffic)if(!fn.crashed&&Math.abs(fn.s-an)<sn)ln.add(fn.lane);let cn=[0,1,2].filter((fn)=>!ln.has(fn));if(cn.length<=1)return;let un=yl[Zu(cn)],dn=rn.track.sample(an,DAt);xc(dn,un,rn.assets.car.size[1]/2,HC);let{root:pn,lights:mn}=cM(rn.world,rn.assets,Zu(sN),[HC[0],HC[1],HC[2]],rn.night);rn.world.set(pn,{rotation:id(dn.heading,dn.pitch)}),rn.traffic.push({root:pn,lights:mn,s:an,d:un,lane:yl.indexOf(un),vd:0,passed:!1,crashed:!1,bumped:!1,bumpCooldown:0,closest:1/0,wasAhead:nn,touching:!1,headOn:!1})}function NAt(rn){let nn=[1/0,1/0,1/0];for(let ln of rn.traffic){if(ln.crashed)continue;let cn=ln.s-rn.s,un=ln.lane;if(cn>-4&&un>=0)nn[un]=Math.min(nn[un],cn)}let an=0;for(let ln=1;ln<3;ln++)if(Math.abs(yl[ln]-rn.d)<Math.abs(yl[an]-rn.d))an=ln;let sn=an;if(nn[an]<40){for(let ln of[an-1,an+1])if(ln>=0&&ln<3&&nn[ln]>nn[sn]+6)sn=ln}rn.target=yl[sn]}var LAt,IAt,u0,My,OAt,DAt,HC;var aTe=e(()=>{l();AN();MN();CN();f_();A();Je();LAt=[0,0,0],IAt=[0,0,0,1],u0=[0,0,0],My=lu(),OAt=lu();DAt=lu(),HC=[0,0,0]});var ir={};n(ir,{CarRacing:()=>Bt,preloadCarRacing:()=>St});import GAt,{useCallback as rm,useEffect as Cy,useRef as WC,useState as nm}from"react";import{haptics as kAt}from"@nayan-ui/engine";import{jsx as UC}from"react/jsx-runtime";var BAt=1200,sTe,Bt;var se=e(()=>{_();a();_a();o();O();P();xf();A();aTe();A();sTe=GAt.memo(({assets:rn,night:nn,onRestart:an,settings:sn,onSettingsChange:ln,onEndGame:cn,onReplayGame:un,onShare:dn,onShareScreenshot:pn,onShowLeaderboard:mn,bannerAd:fn})=>{let hn=WC(nn),bn=hc(()=>$ve(rn,hn.current),(Xn)=>()=>{if(Xn.phase==="playing")Nn("cancel");eTe(Xn)});Cy(()=>{Qve(bn,nn)},[bn,nn]);let yn=WC(1),[En,Sn]=nm("ready"),[_n,vn]=nm(!1),[Tn,Rn]=nm(0),[An,Mn]=nm(Ub),[Cn,Ln]=nm(xs),On=WC(!1),Dn=WC(cn);Dn.current=cn;let Nn=rm((Xn)=>{if(!Dn.current||On.current)return;On.current=!0,Dn.current({status:Xn,score:bn.score.toString()})},[bn]);Cy(()=>{kAt.enabled=sn.enableHaptics},[sn.enableHaptics]),Cy(()=>{bn.onPhase=Sn,bn.onLives=Mn,bn.onDistance=Ln,bn.onScore=Rn},[bn]),Cy(()=>{if(En!=="over")return;Nn(bn.lives>0?"win":"lose");let Xn=setTimeout(()=>vn(!0),BAt);return()=>clearTimeout(Xn)},[En,bn,Nn]),Cy(()=>{if(!au||En==="playing")return;let Xn=setTimeout(En==="ready"?()=>q8(bn):an,En==="ready"?1500:3000);return()=>clearTimeout(Xn)},[En,bn,an]);let Wn=rm((Xn)=>Zve(bn,Xn),[bn]),Fn=rm((Xn)=>rTe(bn,Xn),[bn]),qn=rm(({phase:Xn,dx:La})=>Jve(bn,Xn,La,2*ds/(Hf*yn.current)),[bn]),Kn=rm(()=>{On.current=!1,q8(bn)},[bn]),ea=rm(()=>{Nn("cancel"),an()},[Nn,an]),Yn=rm(()=>{un?.(),an()},[un,an]),ia=An>0;return UC(Un,{onAudioChange:Wn,gameId:"car-racing",settings:sn,onSettingsChange:ln,onShare:pn??dn,onShowLeaderboard:mn,bannerAd:fn,source:bn.world,feedback:bn.hudFeedback,camera:bn.camera,light:nn?zf:Vf,background:nn?Uf:Wf,fog:0.0075,onUpdate:Fn,onDrag:qn,onResize:(Xn)=>{yn.current=Xn},columns:[Qn(Tn),ys(An,Ub),ma("TRACK",`${Cn} m`)],playing:En==="playing",subtext:"Dodge traffic to score!",onStart:Kn,onStop:ea,gameOver:_n?{title:ia?"FINISHED!":"CRASHED!",message:ia?"You crossed the finish line! Great driving!":`Out of lives ${xs-Cn} m into the ${xs} m race.`,scoreLabel:"Final Score",score:Tn,buttonText:"Race Again!",onPlayAgain:Yn,onShare:pn}:null})});sTe.displayName="CarRacingRun";Bt=Vn("car-racing",(rn)=>{let nn=rn.settings,an=m(nn.theme),[sn,ln]=nm(0),[cn,un]=nm(lN),[dn,pn]=nm(null);Cy(()=>{if(cn)return;let hn=!0;return qf().then((bn)=>hn&&un(bn)).catch((bn)=>hn&&pn(bn.message)),()=>{hn=!1}},[cn]);let mn=rm(()=>ln((hn)=>hn+1),[]),fn=an.isDark;return UC(y,{ready:!!cn,loader:UC(b,{gameId:"car-racing",theme:nn.theme,offset:nn.offset,error:!!dn,message:dn??void 0}),children:cn&&UC(sTe,{...rn,settings:nn,assets:cn,night:fn,onRestart:mn},sn)})})});function mTe(rn,nn,an){let sn=rn>FAt;return{width:rn,height:nn,top:an/2,fieldHeight:nn,ballRadius:sn?14:11,ringRadius:sn?150:120,ringThickness:sn?16:13,gap:sn?550:450,starRadius:sn?10:8,ballStartY:nn*0.9}}var wy,am=120,iTe=1000,Y8=16.666666666666668,lTe=2,cTe=50,uTe=0.2,K8=-4.5,X8=12,dTe=0.017,j8,$8=100,pTe,FAt=640;var VC=e(()=>{Hn();wy=["#FF6B6B","#FFE66D","#4ECDC4","#A855F7"],j8=Math.PI/15,pTe=Zn([-0.45,0.55,1],0.45)});import{extrude as HAt,merge as WAt,Path as UAt,quat as VAt,tube as hTe}from"@nayan-ui/engine";function ETe(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-bTe,an),ln=rn.spawn({mesh:"sphere",scale:nn.ballRadius*2,color:hv(0),pickable:!1}),cn=rn.spawn({mesh:YAt(),scale:0,color:[1,1,1,0],pickable:!1});return{backdrop:sn,ball:ln,halo:cn,rings:new Map,stars:new Map}}function STe(rn,nn){for(let an of[nn.backdrop,nn.ball,nn.halo,...Array.from(nn.rings.values()),...Array.from(nn.stars.values())])rn.despawn(an)}function _Te(rn,nn,an){aa(rn,nn.backdrop,an)}function vTe(rn,nn,an,sn,ln){let cn=-(ln+nn.height/2-nn.top);sn.eye=[0,cn,zAt],sn.target=[0,cn,0],sn.ortho=nn.height/2,rn.set(an.backdrop,{position:[-nn.width/2,cn+nn.height/2,-bTe]})}function TTe(rn,nn,an,sn,ln){if(an.syncedRings===sn&&an.syncedStars===ln&&an.ringCount===sn.length&&an.starCount===ln.length)return;an.syncedRings=sn,an.syncedStars=ln,an.ringCount=sn.length,an.starCount=ln.length;let cn=new Set;for(let un of sn)if(cn.add(un.id),!an.rings.has(un.id))an.rings.set(un.id,rn.spawn({mesh:qAt(nn.ringThickness/nn.ringRadius),position:fv(nn,nn.width/2,un.y),scale:nn.ringRadius,pickable:!1}));for(let[un,dn]of an.rings)if(!cn.has(un))rn.despawn(dn),an.rings.delete(un);cn.clear();for(let un of ln)if(cn.add(un.id),!an.stars.has(un.id))an.stars.set(un.id,rn.spawn({mesh:KAt(),position:fv(nn,nn.width/2,un.y,4),scale:nn.starRadius*2.4,color:hv(un.colorIndex),spin:[0,2.2,0],pickable:!1}));for(let[un,dn]of an.stars)if(!cn.has(un))rn.despawn(dn),an.stars.delete(un)}function xTe(rn,nn,an,sn){let ln=nn.rings.get(an);if(ln!=null)rn.set(ln,{rotation:VAt.z(-sn,XAt)})}function RTe(rn,nn,an,sn){rn.set(an.ball,{position:fv(nn,nn.width/2,sn,6)})}function ATe(rn,nn,an){let sn=nn.ballRadius*2;rn.animate(an.ball,[{scale:sn*1.14,at:0.3},{scale:sn}],{duration:0.22})}function MTe(rn,nn,an,sn,ln,cn){let un=hv(sn),dn=nn.ballRadius*2;if(rn.set(an.ball,{color:un}),rn.animate(an.ball,[{scale:dn*1.3,at:0.25},{scale:dn}],{duration:0.3}),rn.stopAnimation(an.halo),rn.set(an.halo,{position:fv(nn,nn.width/2,ln,5),scale:nn.ballRadius,color:[un[0],un[1],un[2],0.9]}),rn.animate(an.halo,{scale:nn.ballRadius*2.6,color:[un[0],un[1],un[2],0]},{duration:0.42,easing:"easeOut"}),cn){let pn=an.stars.get(cn);if(pn!=null)rn.set(pn,{scale:0})}}function CTe(rn,nn,an,sn,ln){let cn=hv(ln),un=nn.ballRadius*2;rn.stopAnimation(an.ball),Xs(rn,an.ball,{scale:un,color:cn,duration:0.45},{position:fv(nn,nn.width/2,sn,10),size:un*1.6,color:cn,count:14})}function zC(rn,nn,an,sn){rn.stopAnimation(an.ball),rn.stopAnimation(an.halo),rn.set(an.ball,{scale:nn.ballRadius*2,color:hv(sn)}),rn.set(an.halo,{scale:0})}var fTe,Z8=(rn,nn)=>{let an=fTe.get(rn);if(!an)an=Bn("color-switch/ColorSwitchScene:"+rn,nn),fTe.set(rn,an);return an},bTe=60,zAt=240,yTe=(rn,nn,an=14)=>Array.from({length:an+1},(sn,ln)=>{let cn=rn+(nn-rn)*ln/an;return[Math.cos(cn),Math.sin(cn),0]}),qAt=(rn)=>Z8(`cs-ring:${rn.toFixed(3)}`,()=>wn(WAt(wy.map((nn,an)=>({geometry:hTe(yTe(-an*Math.PI/2,-(an+1)*Math.PI/2),{radius:rn/2,sides:16,smoothness:3,caps:!1}),color:xn(nn)}))),{center:!1,shine:0.65})),YAt=()=>Z8("cs-halo",()=>wn(hTe(yTe(0,Math.PI*2,32),{radius:0.06,sides:10,smoothness:2,caps:!1}),{center:!1})),KAt=()=>Z8("cs-star",()=>wn(HAt(new UAt().addStar(0,0,0.5,0.22),{depth:0.3}),{shine:0.6})),fv=(rn,nn,an,sn=0)=>[nn-rn.width/2,-an,sn],hv=(rn)=>xn(wy[rn]??wy[0]),XAt;var wTe=e(()=>{u();f();na();Hn();VC();fTe=new Map;XAt=[0,0,0,1]});import{World as jAt}from"@nayan-ui/engine";function gTe(rn){let nn=new jAt($At),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",rings:[],stars:[],ballY:0,velocity:0,crashed:!1,color:0,cameraY:0,tick:0,highestY:1/0,passed:0,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,pending:0,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,am),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&UTe(sn,!0)},sn}function DTe(rn,nn){let an=!rn.layout;if(rn.scene)STe(rn.world,rn.scene);if(rn.layout=nn,rn.scene=ETe(rn.world,nn,rn.theme),an)kTe(rn);else zC(rn.world,nn,rn.scene,rn.color);qC(rn)}function NTe(rn,nn){if(rn.theme=nn,rn.scene)_Te(rn.world,rn.scene,nn)}function qC(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;TTe(rn.world,nn,an,rn.rings,rn.stars);for(let sn of rn.rings)xTe(rn.world,an,sn.id,PTe(sn,rn.tick));RTe(rn.world,nn,an,rn.ballY),vTe(rn.world,nn,an,rn.camera,rn.cameraY)}function GTe(rn,nn){rn.ballY=nn.ballStartY,rn.cameraY=nn.ballStartY-nn.fieldHeight*0.65,rn.pending=0,rn.crashed=!1,rn.passed=0}function kTe(rn){let nn=rn.layout;if(!nn)return;GTe(rn,nn),rn.velocity=0,rn.color=0,rn.rings=[],rn.stars=[],rn.highestY=1/0;let an=nn.ballStartY-nn.gap*0.8;for(let sn=0;sn<3;sn++){let ln=an-sn*nn.gap;if(rn.rings.push(ek(ln)),rn.highestY=Math.min(rn.highestY,ln),sn>0)rn.stars.push(tk(ln+nn.gap/2,0))}if(rn.scene)zC(rn.world,nn,rn.scene,0)}function BTe(rn){let nn=rn.layout;if(rn.phase!=="ready"||!nn)return;GTe(rn,nn),rn.color=Math.floor(Math.random()*ITe),rn.rings=rn.rings.map((sn)=>({...sn,passed:!1})),rn.highestY=rn.rings.reduce((sn,ln)=>Math.min(sn,ln.y),1/0);let an=nn.ballStartY-nn.gap*0.8;for(let sn=rn.rings.length;sn<5;sn++){let ln=an-sn*nn.gap;if(rn.rings.push(ek(ln)),rn.highestY=Math.min(rn.highestY,ln),sn>0&&rn.stars.length<sn)rn.stars.push(tk(ln+nn.gap/2,rn.color))}if(rn.velocity=K8,rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(am),rn.won=!1,rn.phase="playing",rn.scene)zC(rn.world,nn,rn.scene,rn.color);qC(rn),rn.onScore(0),rn.onTime(am),rn.onPhase("playing")}function FTe(rn){rn.world.scoreboard.reset(0,am),rn.won=!1,rn.phase="ready",kTe(rn),qC(rn),rn.onScore(0),rn.onTime(am),rn.onPhase("ready")}function HTe(rn){rn.world.dispose()}function WTe(rn,nn){if(rn.world.isDisposed)return;if(rn.phase==="playing"){let an=Math.min(rn.pending+nn*1000,cTe);while(rn.phase==="playing"&&!rn.crashed&&an>=Y8-lTe)an-=Y8,JAt(rn);rn.pending=an,qC(rn)}rn.world.update(nn)}function UTe(rn,nn){rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.onPhase("over")}function JAt(rn){let nn=rn.layout;rn.velocity+=uTe;let an=rn.ballY+rn.velocity;rn.velocity=Math.max(-X8,Math.min(X8,rn.velocity));let sn=an-nn.fieldHeight*0.65-rn.cameraY,ln=sn<0?rn.cameraY+sn*0.12:rn.cameraY;rn.tick+=1;let cn=ln+nn.fieldHeight-nn.top;if(an+nn.ballRadius>=cn)return rn.ballY=cn-nn.ballRadius,LTe(rn);let un=nn.ringRadius+nn.ringThickness/2,dn=nn.ringRadius-nn.ringThickness/2;for(let mn of rn.rings){let fn=an-mn.y,hn=Math.abs(fn);if(hn+nn.ballRadius>=dn&&Math.max(0,hn-nn.ballRadius)<=un){if(!QAt(Math.atan2(fn,0),PTe(mn,rn.tick),rn.color))return LTe(rn)}if(!mn.passed&&an<mn.y-un-nn.ballRadius*2)mn.passed=!0,rn.passed+=1,rn.onScore(rn.world.scoreboard.add(iTe)),rn.onEvent("pass")}rn.ballY=an,rn.cameraY=ln;let pn=ln+nn.fieldHeight+$8;if(rn.stars=rn.stars.filter((mn)=>{if(Math.abs(rn.ballY-mn.y)<nn.ballRadius+nn.starRadius){if(rn.color=mn.colorIndex,rn.scene)MTe(rn.world,nn,rn.scene,mn.colorIndex,rn.ballY,mn.id);return rn.onEvent("color"),!1}return mn.y<pn}),rn.highestY>ln-$8){let mn=rn.highestY-nn.gap;rn.rings.push(ek(mn)),rn.stars.push(tk(mn+nn.gap/2,rn.color)),rn.highestY=mn}if(rn.rings.some((mn)=>mn.y>=pn))rn.rings=rn.rings.filter((mn)=>mn.y<pn)}function LTe(rn){let{layout:nn,scene:an}=rn;if(rn.crashed)return;if(rn.crashed=!0,rn.world.scoreboard.stop(),nn&&an)CTe(rn.world,nn,an,rn.ballY,rn.color);rn.onEvent("crash"),rn.world.after(e5t,()=>rn.phase==="playing"&&rn.crashed&&UTe(rn,!1))}function VTe(rn){if(rn.phase!=="playing"||rn.crashed)return;if(rn.velocity=K8,rn.layout&&rn.scene)ATe(rn.world,rn.layout,rn.scene);rn.onEvent("jump")}var $At=300,ITe,J8,ZAt,OTe=0,ek=(rn)=>({id:`r${OTe++}`,y:rn,rotationSpeed:dTe*(Math.random()<0.5?1:-1),rotationBase:Math.random()*J8,passed:!1}),tk=(rn,nn)=>{let an=nn;while(an===nn)an=Math.floor(Math.random()*ITe);return{id:`s${OTe++}`,y:rn,colorIndex:an}},PTe=(rn,nn)=>rn.rotationBase+rn.rotationSpeed*nn,Q8=(rn,nn)=>{let an=(rn-nn)%J8;if(an<0)an+=J8;return Math.floor(an/ZAt)%4},QAt=(rn,nn,an)=>Q8(rn,nn)===an||Q8(rn+j8,nn)===an||Q8(rn-j8,nn)===an,e5t=0.7;var zTe=e(()=>{VC();wTe();ITe=wy.length,J8=Math.PI*2,ZAt=Math.PI/2});var lr={};n(lr,{ColorSwitch:()=>Ft});import{jsx as t5t}from"react/jsx-runtime";var Ly,qTe,Ft;var ie=e(()=>{Ta();l();a();_a();o();xa();va();VC();zTe();Ly=t.COLOR_SWITCH,qTe={jump:{sound:Ly.JUMP,haptic:"light"},pass:{sound:Ly.PASS,haptic:"medium"},color:{sound:Ly.COLOR_CHANGE,haptic:"success"},crash:{sound:Ly.GAME_OVER,haptic:"error"}},Ft=Vn("color-switch",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(am),{theme:cn,status:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"color-switch",create:gTe,start:BTe,reset:FTe,dispose:HTe,tick:WTe,setTheme:NTe,resize:(mn,fn,hn,bn)=>DTe(mn,mTe(fn,hn,bn)),drag:(mn,fn)=>{if(fn.phase==="start")VTe(mn)},sounds:Ly,onStart:(mn)=>mn(Ly.START,"success"),onStop:(mn)=>mn(null,"medium"),onOver:(mn,fn)=>{if(fn==="win")mn(t.WELL_DONE,"success")},wire:(mn,fn)=>{mn.onScore=an,mn.onTime=ln,mn.onEvent=(hn)=>fn(qTe[hn].sound,qTe[hn].haptic)}});return t5t(Un,{...dn,light:pTe,columns:[Qn(nn),ta(sn,cn,0)],subtext:"Tap to jump through!",gameOver:pn({title:un==="win"?"YOU WON!":"GAME OVER",message:un==="win"?"You survived 2 minutes!":"Wrong color!",scoreLabel:"Final Score",score:nn,buttonText:"Switch Again!"})})})});function QTe(rn,nn,an){let sn=rn>n5t?r5t:o5t,ln=a5t,cn=Math.cos(ln),un=la(an)+s5t+16,dn=Math.max(240,nn-un-i5t),pn=ok*sn.tubeWidth+(ok-1)*sn.columnGap,mn=sn.tubeHeight+sn.lift+sn.pieceHeight*0.6+YC,fn=(2*mn+sn.rowGap)*cn+sn.tubeWidth*1.6*Math.abs(Math.sin(ln)),hn=Math.min(1,$n(rn)/(pn+sn.columnGap*2),dn/fn),bn=un+dn/2,yn={width:rn,height:nn,centerY:bn,tilt:ln},En=(2*mn+sn.rowGap)*hn,Sn=[En/2-mn*hn+YC*hn,En/2-mn*hn*2-sn.rowGap*hn+YC*hn],_n=(sn.tubeWidth+sn.columnGap)*hn,vn=[];for(let Tn of Sn)for(let Rn=0;Rn<ok;Rn++)vn.push([(Rn-1)*_n,Tn]);return{...yn,tubeRadius:sn.tubeWidth/2*hn,tubeHeight:sn.tubeHeight*hn,pieceRadius:sn.pieceWidth/2*hn,pieceHeight:sn.pieceHeight*hn,pieceGap:sn.pieceGap*hn,padBottom:(sn.border+sn.padBottom)*hn,lift:sn.lift*hn,shelfHeight:YC*hn,tubes:vn,shelves:Sn.map((Tn)=>({y:Tn,width:pn*hn+sn.columnGap*hn*2}))}}var Iy,bv=4,YTe=6,rk,bu=120,KTe=100,o5t,r5t,n5t=640,ok=3,XTe=0.18,jTe=0.36,$Te=0.3,a5t=-0.3,ZTe,s5t=82,i5t=110,YC=12,KC=(rn,nn,an)=>rn.tubes[nn][1]+rn.padBottom+an*(rn.pieceHeight+rn.pieceGap),Oy=(rn,nn)=>rn.tubes[nn][1]+rn.tubeHeight+rn.lift;var XC=e(()=>{o();Hn();Iy=["#FF4444","#32CD32","#4169E1","#FFD700","#00CED1"],rk=bv+1,o5t={tubeWidth:80,tubeHeight:240,border:4,pieceWidth:64,pieceHeight:35,pieceGap:5,padBottom:4,columnGap:15,rowGap:15,lift:15},r5t={tubeWidth:112,tubeHeight:336,border:5,pieceWidth:82,pieceHeight:50,pieceGap:7,padBottom:6,columnGap:20,rowGap:20,lift:20},ZTe=Zn([-0.4,0.55,1],0.5)});import{effects as txe,extrude as l5t,lathe as yv,Path as c5t}from"@nayan-ui/engine";function ixe(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-exe,an);Ea(rn,sn,nn,exe);let ln=nn.tubeRadius*2,cn=nn.tubes.map(([un,dn])=>({glass:rn.spawn({mesh:d5t(),position:[un,dn,0],scale:[ln,nn.tubeHeight,ln],color:nxe(an),pickable:!1}),rim:rn.spawn({mesh:f5t(),position:[un,dn+nn.tubeHeight-nn.tubeRadius*0.12,0],scale:[ln,nn.tubeRadius*0.16,ln],color:axe(an),pickable:!1}),streak:rn.spawn({mesh:"cube",position:[un-nn.tubeRadius*0.55,dn+nn.tubeHeight*0.55,nn.tubeRadius*0.86],scale:[nn.tubeRadius*0.08,nn.tubeHeight*0.72,0.5],color:[1,1,1,0.2],pickable:!1}),edges:[rn.spawn({mesh:p5t(nn.tubeHeight/ln),position:[un,dn,0],scale:[ln,ln,1],color:nk(an),pickable:!1}),rn.spawn({mesh:m5t(),position:[un,dn+nn.tubeHeight-nn.tubeRadius*0.06,0],scale:[ln,nn.tubeRadius*0.12,ln],color:nk(an),pickable:!1})],cork:rn.spawn({mesh:b5t(),position:[un,dn+nn.tubeHeight,0],scale:0,pickable:!1})}));return{backdrop:sn,tubes:cn}}function lxe(rn,nn){for(let an of[nn.backdrop,...nn.tubes.flatMap((sn)=>[sn.glass,sn.rim,sn.streak,...sn.edges,sn.cork])])rn.despawn(an)}function cxe(rn,nn,an){aa(rn,nn.backdrop,an);for(let sn of nn.tubes){rn.set(sn.glass,{color:nxe(an)}),rn.set(sn.rim,{color:axe(an)});for(let ln of sn.edges)rn.set(ln,{color:nk(an)})}}function uxe(rn,nn,an,sn,ln){return rn.spawn({mesh:h5t(),position:Py(nn,sn,KC(nn,sn,ln)),scale:y5t(nn),color:sxe(an),pickable:!1})}function ak(rn,nn,an,sn){rn.stopAnimation(an),rn.animate(an,{position:Py(nn,sn,Oy(nn,sn))},{spring:{stiffness:260,damping:18}}),rn.set(an,{bob:{amplitude:[0,nn.pieceHeight*0.08,0],speed:5}})}function jC(rn,nn,an,sn,ln){rn.set(an,{bob:null}),rn.stopAnimation(an),rn.animate(an,{position:Py(nn,sn,KC(nn,sn,ln))},{duration:XTe,easing:"easeIn"})}function dxe(rn,nn,an,sn,ln,cn){rn.set(an,{bob:null}),rn.stopAnimation(an);let un=Math.max(Oy(nn,sn),Oy(nn,ln));rn.animate(an,[{position:Py(nn,sn,un),at:0.2},{position:Py(nn,ln,un),at:0.55},{position:Py(nn,ln,KC(nn,ln,cn)),at:1}],{duration:jTe,path:"smooth",easing:"easeInOut"})}function sk(rn,nn,an,sn){rn.animate([an.glass,an.rim,an.streak,...an.edges,...sn],{shake:nn.tubeRadius*0.14},{duration:$Te})}function pxe(rn,nn,an,sn,ln){let[cn,un]=nn.tubes[sn],dn=nn.tubeRadius*2;rn.animate(an.glass,[{scale:[dn*1.06,nn.tubeHeight*1.03,dn*1.06],at:0.4},{scale:[dn,nn.tubeHeight,dn]}],{duration:0.3}),txe.sparkle(rn,{position:[cn,un+nn.tubeHeight,nn.tubeRadius],count:16,size:nn.tubeRadius*0.16,speed:nn.tubeRadius*4,direction:[0,1,0],spread:1,lifetime:0.6,gravity:-nn.tubeRadius*6,colors:[sxe(ln),[1,1,1,1],[1,0.85,0.3,1]]}),$C(rn,nn,an,sn,!0,!0)}function $C(rn,nn,an,sn,ln,cn=!1){let[un,dn]=nn.tubes[sn],pn=[nn.tubeRadius*1.9,nn.tubeRadius*0.95,nn.tubeRadius*1.9],mn=[un,dn+nn.tubeHeight-pn[1]*0.5,0];if(rn.stopAnimation(an.cork),!ln){rn.set(an.cork,{scale:0});return}if(!cn){rn.set(an.cork,{position:mn,scale:pn});return}rn.set(an.cork,{position:[un,mn[1]+nn.tubeRadius*2.5,0],scale:pn}),rn.animate(an.cork,{position:mn},{duration:0.35,delay:0.15,easing:"bounce"})}function mxe(rn,nn){txe.confetti(rn,{position:[0,nn.tubeHeight*0.4,nn.tubeRadius*2],count:60,size:nn.tubeRadius*0.2,speed:nn.tubeHeight*2.2,lifetime:1.3,gravity:-nn.tubeHeight*3.5,colors:Iy.slice(0,4).map((an)=>xn(an))})}var JTe,gy=(rn,nn)=>{let an=JTe.get(rn);if(!an)an=Bn("colors-sort/ColorsSortScene:"+rn,nn),JTe.set(rn,an);return an},oxe=(rn,nn)=>[rn[0]*nn,rn[1]*nn,rn[2]*nn],u5t=(rn,nn,an)=>{let sn=Math.min(1,Math.max(0,(an-rn)/(nn-rn)));return sn*sn*(3-2*sn)},d5t=()=>gy("cs-glass",()=>wn(yv(rxe,{segments:96}),{center:!1,shine:0.9})),rxe,p5t=(rn)=>gy(`cs-outline:${rn.toFixed(2)}`,()=>{let an=rxe.map(([un,dn])=>[un,dn*rn]),sn=[...an.slice().reverse().map(([un,dn])=>[-un,dn]),...an.slice(1)],cn=[...sn.map(([un,dn],pn)=>{let[mn,fn]=sn[Math.max(0,pn-1)],[hn,bn]=sn[Math.min(sn.length-1,pn+1)],yn=hn-mn,En=bn-fn,Sn=Math.hypot(yn,En)||1;return[un+En/Sn*0.035,dn-yn/Sn*0.035]}),...sn.slice().reverse()].map(([un,dn])=>[un,-dn]);return wn(l5t(new c5t().addPolygon(cn),{depth:0}),{center:!1})}),m5t=()=>gy("cs-mouth-ring",()=>wn(yv(Array.from({length:17},(rn,nn)=>{let an=nn/16*Math.PI*2;return[0.59+0.03*Math.cos(an),0.5+0.5*Math.sin(an)]}),{segments:120}),{center:!1,shine:0.3})),f5t=()=>gy("cs-rim",()=>wn(yv([[0.5,0],[0.56,0.1],[0.56,0.9],[0.5,1],[0.5,0]],{segments:96}),{center:!1,shine:0.8})),h5t=()=>gy("cs-puck",()=>wn(yv([[0.001,0],[0.42,0],[0.5,0.14],[0.5,0.86],[0.42,1],[0.001,1]],{segments:32,color:({position:rn,normal:nn})=>oxe([1,1,1],0.82+0.18*u5t(0.2,0.95,rn[1])+0.12*Math.max(0,nn[1]))}),{center:!1,shine:0.6})),b5t=()=>gy("cs-cork",()=>wn(yv([[0.001,0],[0.42,0],[0.46,0.55],[0.56,0.58],[0.58,0.68],[0.56,1],[0.001,1]],{segments:28,color:({position:rn})=>oxe([0.78,0.56,0.34],0.82+0.3*Oa(rn[0]*30+rn[1]*9,rn[2]*30+rn[1]*40))}),{center:!1,shine:0.1})),nxe=(rn)=>rn.mode==="dark"?[1,1,1,0.05]:[1,1,1,0.08],nk=(rn)=>rn.mode==="dark"?[1,1,1,0.55]:[0.1,0.14,0.22,0.45],axe=(rn)=>{if(rn.mode==="classic")return[1,1,1,0.6];let nn=xn(rn.BOARD.BORDER),[an,sn,ln,cn]=nn[3]>0?nn:xn(rn.BOARD.CELL_EMPTY);return[an,sn,ln,Math.max(0.45,cn??0)]},sxe=(rn)=>xn(Iy[rn]),exe=60,y5t=(rn)=>[rn.pieceRadius*2,rn.pieceHeight,rn.pieceRadius*2],Py=(rn,nn,an)=>[rn.tubes[nn][0],an,0];var fxe=e(()=>{u();d();na();ba();Hn();XC();JTe=new Map,rxe=[...Array.from({length:25},(rn,nn)=>{let an=nn/24*(Math.PI/2);return[Math.max(0.001,0.5*Math.sin(an)),0.09*(1-Math.cos(an))]}),[0.5,1]]});import{World as E5t}from"@nayan-ui/engine";function hxe(){let rn=Iy.flatMap((nn,an)=>Array(bv).fill(an));for(let nn=rn.length-1;nn>0;nn--){let an=Math.floor(Math.random()*(nn+1));[rn[nn],rn[an]]=[rn[an],rn[nn]]}return Array.from({length:YTe},(nn,an)=>an<Iy.length?rn.splice(0,bv):[])}function bxe(rn){let nn=new E5t(S5t),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",tubes:hxe(),pieces:[],selected:null,get time(){return bu-nn.scoreboard.shownSeconds},get timeLeft(){return nn.scoreboard.shownSeconds},timedOut:!1,onPhase:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,bu),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>{if(sn.phase!=="playing")return;sn.timedOut=!0,Rxe(sn)}},sn}function _5t(rn){let nn=new Map;for(let an of rn){if(!an.length)continue;if(!an.every((sn)=>sn===an[0]))return!1;nn.set(an[0],(nn.get(an[0])??0)+an.length)}return rn.every((an)=>!an.length||an.length===rk||an.length===nn.get(an[0]))}function yxe(rn,nn){if(rn.scene)lxe(rn.world,rn.scene);for(let an of rn.pieces.flat())rn.world.despawn(an);rn.layout=nn,ya(rn.camera,nn),rn.scene=ixe(rn.world,nn,rn.theme),Sxe(rn)}function Exe(rn,nn){if(rn.theme=nn,rn.scene)cxe(rn.world,rn.scene,nn)}function Sxe(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;if(rn.pieces=rn.tubes.map((sn,ln)=>sn.map((cn,un)=>uxe(rn.world,nn,cn,ln,un))),rn.selected!=null){let sn=rn.pieces[rn.selected][rn.pieces[rn.selected].length-1];if(sn!=null)ak(rn.world,nn,sn,rn.selected)}rn.tubes.forEach((sn,ln)=>$C(rn.world,nn,an.tubes[ln],ln,ik(sn)))}function _xe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(bu),rn.onTime(bu),rn.onPhase("playing")}function vxe(rn){for(let nn of rn.pieces.flat())rn.world.despawn(nn);rn.tubes=hxe(),rn.selected=null,rn.world.scoreboard.reset(0,bu),rn.timedOut=!1,rn.phase="ready",Sxe(rn),rn.onTime(bu),rn.onPhase("ready")}function Txe(rn){rn.world.dispose()}function xxe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function Rxe(rn){rn.world.scoreboard.stop();let{layout:nn}=rn;if(nn&&rn.selected!=null){let an=rn.selected,sn=rn.pieces[an][rn.pieces[an].length-1];if(sn!=null)jC(rn.world,nn,sn,an,rn.tubes[an].length-1)}rn.selected=null,rn.phase="over",rn.onPhase("over")}function v5t(rn,nn,an){let sn=rn.layout;if(!sn)return null;let[ln,cn]=Wa(sn,nn,an,0),un=sn.tubes.length>1?Math.abs(sn.tubes[1][0]-sn.tubes[0][0]):sn.tubeRadius*3,dn=null,pn=1/0;return sn.tubes.forEach(([mn,fn],hn)=>{if(Math.abs(ln-mn)>un/2)return;if(cn<fn-sn.shelfHeight*2||cn>Oy(sn,hn)+sn.pieceHeight*1.2)return;let bn=Math.abs(ln-mn);if(bn<pn)dn=hn,pn=bn}),dn}function Axe(rn,nn,an){if(rn.phase!=="playing")return;let sn=v5t(rn,nn,an);if(sn!=null)T5t(rn,sn)}function T5t(rn,nn){let{layout:an,scene:sn}=rn;if(!an||!sn||rn.phase!=="playing")return;let ln=rn.tubes[nn],cn=rn.pieces[nn];if(rn.selected==null){if(!ln.length){sk(rn.world,an,sn.tubes[nn],cn),rn.onEvent("refuse");return}rn.selected=nn,ak(rn.world,an,cn[cn.length-1],nn),rn.onEvent("pick");return}let un=rn.selected;if(rn.selected=null,un===nn){jC(rn.world,an,cn[cn.length-1],nn,ln.length-1),rn.onEvent("drop");return}if(ln.length>=rk){let mn=rn.pieces[un];jC(rn.world,an,mn[mn.length-1],un,rn.tubes[un].length-1),sk(rn.world,an,sn.tubes[nn],cn),rn.onEvent("refuse");return}let dn=rn.tubes[un].pop(),pn=rn.pieces[un].pop();if(ln.push(dn),cn.push(pn),dxe(rn.world,an,pn,un,nn,ln.length-1),ik(ln))pxe(rn.world,an,sn.tubes[nn],nn,dn);if(!ik(rn.tubes[un]))$C(rn.world,an,sn.tubes[un],un,!1);if(_5t(rn.tubes)){rn.onEvent("complete"),mxe(rn.world,an),Rxe(rn);return}rn.onEvent("move")}var S5t=300,ik=(rn)=>rn.length===bv&&rn.every((nn)=>nn===rn[0]);var Mxe=e(()=>{ba();XC();fxe()});var cr={};n(cr,{ColorsSort:()=>Ht});import{jsx as R5t}from"react/jsx-runtime";var sm,Cxe,x5t=()=>E(bu),Ht;var le=e(()=>{Ta();ci();l();a();_a();o();xa();va();XC();Mxe();sm=t.COLORS_SORT,Cxe={pick:{sound:sm.PICK,haptic:"light"},drop:{sound:sm.DESELECT,haptic:"light"},refuse:{sound:sm.MISS,haptic:"light"},move:{sound:sm.MATCH,haptic:"medium"},complete:{sound:sm.COMPLETE,haptic:"success"}},Ht=Vn("colors-sort",(rn)=>{let[nn,an]=gn(bu),{game:sn,theme:ln,screen:cn,gameOver:un}=zn(rn,{gameId:"colors-sort",create:bxe,start:_xe,reset:vxe,dispose:Txe,tick:xxe,setTheme:Exe,resize:(pn,mn,fn,hn)=>{let bn=QTe(mn,fn,hn);return yxe(pn,bn),bn.shelves[0]?.width},tap:Axe,outcome:(pn)=>pn.timedOut?"lose":"win",reportScore:(pn,mn)=>mn==="win"?Ya(pn.time,bu,KTe):0,sounds:sm,onStart:(pn)=>pn(sm.START,"medium"),onOver:(pn,mn)=>{if(mn!=="win")pn(sm.GAME_OVER,"error")},wire:(pn,mn)=>{pn.onTime=an,pn.onEvent=(fn)=>mn(Cxe[fn].sound,Cxe[fn].haptic)}}),dn=sn.timedOut;return R5t(Un,{...cn,light:ZTe,columns:[ta(nn,ln)],subtext:"Sort colors!",gameOver:un({title:dn?"TIME UP!":"SORTED!",message:dn?"You ran out of time!":"All colors sorted!",scoreLabel:dn?"Time's Up!":"Completion Time",score:sn.time,formatter:dn?x5t:E,buttonText:"Sort Again!"})})})});function Yxe(rn,nn,an){let sn=$n(rn),ln=sn/Us/2+5,cn=(sn-ln*2)/(Us-1),un=cn*0.44;return{width:rn,height:nn,boardLeft:(rn-sn)/2,boardTop:an+(nn-an-sn)/2,boardSize:sn,padding:ln,spacing:cn,radius:un,hitRadius:un*1.5}}var Us=7,wxe=3,Th=300,Lxe=250,Ev,Ixe=(rn)=>rn<2?0:rn*50+(rn>=4?(rn-3)*75:0),ZC=0.35,Oxe=0.035,Pxe=0.03,gxe,Dxe=1.24,Nxe=1.08,Gxe=0.2,kxe=0.14,Bxe=0.45,Fxe=0.75,Hxe=1.6,Wxe=0.38,Uxe=0.2,Vxe=0.12,lk=8,zxe,qxe=0.4;var QC=e(()=>{Hn();Ev=["#FF3B3B","#32CD32","#FFD700","#4DA6FF","#BF5AF2"],gxe={damping:12,stiffness:190,mass:0.9},zxe=Zn([0,0.35,1],0.6)});import{extrude as Zxe,loadTexture as A5t,Path as Qxe,quat as M5t,shapeGeometry as C5t}from"@nayan-ui/engine";function mk(rn,nn,an){D5t();let sn=ew(nn,nn.boardLeft+nn.boardSize/2,nn.boardTop+nn.boardSize/2),ln=rn.spawn({mesh:jxe(nn.boardSize,lk),position:[sn[0],sn[1],Kxe],color:xn(an.BOARD.SURFACE),pickable:!1}),cn=rn.spawn({mesh:jxe(nn.boardSize,lk,1),position:[sn[0],sn[1],Kxe+0.2],color:xn(an.BOARD.BORDER),pickable:!1});return{backdrop:oa(rn,nn.width,nn.height,w5t,an),panel:ln,rim:cn}}function fk(rn,nn){rn.despawn(nn.panel),rn.despawn(nn.rim),rn.despawn(nn.backdrop)}function D5t(){$xe??=A5t(new URL("./assets/0719fb0bb38e-soft_glow.png",import.meta.url).href).then((rn)=>{JC=rn}).catch(()=>{$xe=null})}function bk(rn,nn,an,sn,ln){let cn=tw(ln),un=rn.spawn({mesh:O5t(),position:Sv(nn,an,sn),scale:nn.radius*2,color:cn,pickable:!1}),dn=rn.spawn({mesh:pk(),texture:JC,parent:un,position:[0,0,-0.55],scale:hd,color:[cn[0],cn[1],cn[2],Wxe],pickable:!1});return{entity:un,glow:dn}}function Jxe(rn,nn,an){if(an&&JC)rn.set(nn,{mesh:pk(),texture:JC});rn.stopAnimation(nn),rn.animate(nn,{scale:an?Hxe:hd},an?{duration:Uxe,easing:"back"}:{duration:Vxe,easing:"easeIn"})}function eRe(rn,nn,an,sn){let ln=Sv(rn,nn,an);return{position:[ln[0],ln[1],ln[2]+rn.radius],size:rn.radius*2,color:tw(sn),glowZ:rn.radius*0.8}}function oRe(rn){let nn=()=>rn.spawn({mesh:"cube",scale:hd,pickable:!1});return{shadow:nn(),line:nn()}}function uk(rn,nn,an,sn,ln,cn,un,dn){let pn=ln[0]-sn[0],mn=sn[1]-ln[1],fn=ew(nn,(sn[0]+ln[0])/2,(sn[1]+ln[1])/2,un),hn=M5t.z(Math.atan2(mn,pn),G5t);rn.transform(an,fn[0],fn[1],fn[2],hn[0],hn[1],hn[2],hn[3]),rn.scale(an,Math.hypot(pn,mn),cn,0.5),rn.color(an,dn[0],dn[1],dn[2],dn[3]??1)}function nRe(rn,nn,an,sn,ln,cn){let un=rn.transforms,dn=rRe(nn);uk(un,nn,an.shadow,[sn[0]+1,sn[1]+2],[ln[0]+1,ln[1]+2],dn+2,I5t(nn),N5t),uk(un,nn,an.line,sn,ln,dn,ck(nn),cn),un.flush()}function aRe(rn,nn){rn.set(nn.shadow,{scale:hd}),rn.set(nn.line,{scale:hd})}function sRe(rn){return{line:rn.spawn({mesh:"cube",scale:hd,pickable:!1}),cap:rn.spawn({mesh:pk(),scale:hd,pickable:!1})}}function iRe(rn,nn,an,sn,ln,cn){let un=rn.transforms,dn=rRe(nn);uk(un,nn,an.line,sn,ln,dn,ck(nn),cn);let pn=ew(nn,ln[0],ln[1],ck(nn));un.position(an.cap,pn[0],pn[1],pn[2]),un.scale(an.cap,dn),un.color(an.cap,cn[0],cn[1],cn[2],cn[3]??1),un.flush()}function ow(rn,nn){rn.set(nn.line,{scale:hd}),rn.set(nn.cap,{scale:hd})}var Kxe=0,w5t=-20,hd=0,ew=(rn,nn,an,sn=0)=>[nn-rn.width/2,rn.height/2-an,sn],Dy=(rn,nn,an)=>[rn.boardLeft+rn.padding+an*rn.spacing,rn.boardTop+rn.padding+nn*rn.spacing],L5t=(rn)=>rn.radius*2,ck=(rn)=>rn.radius*0.5,I5t=(rn)=>rn.radius*0.4,Sv=(rn,nn,an)=>{let[sn,ln]=Dy(rn,nn,an);return ew(rn,sn,ln,L5t(rn))},Xxe,dk=(rn,nn)=>{let an=Xxe.get(rn);if(!an)an=Bn("connect-em-all/ConnectEmAllScene:"+rn,nn),Xxe.set(rn,an);return an},O5t=()=>dk("dot",()=>wn(C5t("sphere"),{shine:qxe})),pk=()=>dk("disc",()=>wn(Zxe(new Qxe().addCircle(0,0,0.5),{depth:0}))),jxe=(rn,nn,an=0)=>dk(`panel:${rn}:${nn}:${an}`,()=>{let sn=new Qxe().addRoundedRect(0,0,rn,rn,nn);if(an>0)sn.addRoundedRect(an,an,rn-an*2,rn-an*2,nn-an);return wn(Zxe(sn,{depth:0,fillRule:"evenodd"}))}),P5t,g5t,tw=(rn)=>P5t[rn],hk=(rn)=>g5t[rn],JC=null,$xe=null,tRe=(rn)=>rn.radius*2,N5t,G5t,rRe=(rn)=>rn.radius*0.45,lRe;var cRe=e(()=>{Uu();u();na();Hn();QC();Xxe=new Map;P5t=Ev.map((rn)=>xn(rn)),g5t=Ev.map((rn)=>xn(xp(rn,0.15)));N5t=[0,0,0,0.3],G5t=[0,0,0,1];lRe=Us*Us});import{World as k5t}from"@nayan-ui/engine";function dRe(rn){let nn=new k5t(B5t),sn={world:nn,camera:{eye:[0,0,400],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,board:null,phase:"ready",get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,dots:Array.from({length:lRe},()=>({colorIndex:yk(),entity:null,glow:null})),chain:[],touching:!1,lastIndex:Ny,finger:[0,0],segments:[],trail:null,intro:!0,introAge:-1,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onConnect:()=>{},onClear:()=>{}};return nn.scoreboard.reset(0,Th),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&F5t(sn)},sn}function pRe(rn,nn){let an=rn.world;if(_v(rn),rn.board)fk(an,rn.board);for(let sn of rn.dots)if(sn.entity!=null)an.despawn(sn.entity);if(rn.layout=nn,rn.camera.ortho=nn.height/2,rn.board=mk(an,nn,rn.theme),fRe(rn),!rn.trail)rn.trail=sRe(an)}function mRe(rn,nn){rn.theme=nn;let an=rn.layout;if(!an)return;if(rn.board)fk(rn.world,rn.board);rn.board=mk(rn.world,an,nn)}function fRe(rn){let nn=rn.layout;if(!nn)return;let an=rn.intro;if(an)rn.introAge=0;rn.dots.forEach((sn,ln)=>{if(!an)return hRe(rn,sn,ln);let{entity:cn,glow:un}=bk(rn.world,nn,wc(ln)-2,yu(ln),sn.colorIndex);sn.entity=cn,sn.glow=un;let dn=yu(ln)*Oxe+(Us-1-wc(ln))*Pxe;rn.world.set(cn,{scale:0}),rn.world.animate(cn,{position:Sv(nn,wc(ln),yu(ln))},{spring:gxe,delay:dn}),rn.world.animate(cn,{scale:nn.radius*2},{duration:ZC,delay:dn,easing:"back"})})}function hRe(rn,nn,an,sn=!1){let ln=rn.layout;if(!ln)return;let{entity:cn,glow:un}=bk(rn.world,ln,sn?wc(an)-1:wc(an),yu(an),nn.colorIndex);if(nn.entity=cn,nn.glow=un,!sn)return;rn.world.set(cn,{scale:0}),rn.world.animate(cn,{scale:ln.radius*2},{duration:ZC,easing:"back"}),bRe(rn,nn,an)}function bRe(rn,nn,an){if(nn.entity==null||!rn.layout)return;rn.world.animate(nn.entity,{position:Sv(rn.layout,wc(an),yu(an))},{duration:ZC,easing:"back"})}function yRe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(Th),rn.onPhase("playing")}function ERe(rn){_v(rn);for(let nn of rn.dots)if(nn.entity!=null)rn.world.despawn(nn.entity);rn.dots=rn.dots.map(()=>({colorIndex:yk(),entity:null,glow:null})),rn.intro=!0,fRe(rn),rn.world.scoreboard.reset(0,Th),rn.won=!1,rn.phase="ready",rn.onScore(0),rn.onTime(Th),rn.onPhase("ready")}function SRe(rn){rn.world.dispose()}function _Re(rn,nn){if(rn.world.isDisposed)return;fc(rn,nn),rn.world.update(nn)}function F5t(rn){rn.world.scoreboard.stop(),_v(rn),rn.won=rn.score>0,rn.phase="over",rn.onPhase("over")}function vRe(rn,nn,an){let sn=Math.round((nn-rn.boardLeft-rn.padding)/rn.spacing),ln=Math.round((an-rn.boardTop-rn.padding)/rn.spacing);if(ln<0||ln>=Us||sn<0||sn>=Us)return Ny;let[cn,un]=Dy(rn,ln,sn);return(nn-cn)**2+(an-un)**2<=rn.hitRadius**2?ln*Us+sn:Ny}function TRe(rn,nn,an){let sn=rn.layout;if(!sn)return;if(rn.touching=!0,rn.finger=[nn,an],rn.lastIndex=vRe(sn,nn,an),rn.phase!=="playing"||rn.lastIndex===Ny)return;_v(rn),rn.chain=[rn.lastIndex],rw(rn,rn.lastIndex,!0),nw(rn)}function xRe(rn,nn,an){let sn=rn.layout;if(!sn||!rn.touching)return;rn.finger=[nn,an];let ln=vRe(sn,nn,an);if(ln!==Ny&&ln!==rn.lastIndex){if(rn.lastIndex=ln,rn.phase==="playing"&&H5t(rn,ln))rn.onConnect(),nw(rn)}ARe(rn)}function RRe(rn){if(rn.touching=!1,rn.lastIndex=Ny,rn.trail)ow(rn.world,rn.trail);if(rn.phase==="playing"&&rn.chain.length>=wxe)W5t(rn);else _v(rn)}function H5t(rn,nn){let an=rn.chain,sn=an[an.length-1];if(sn===void 0||nn===sn)return!1;if(an.length>=2&&nn===an[an.length-2])return rw(rn,an.pop(),!1),!0;if(an.includes(nn)||rn.dots[nn].colorIndex!==rn.dots[sn].colorIndex||!uRe(nn,sn))return!1;return an.push(nn),rw(rn,nn,!0),!0}function rw(rn,nn,an){let sn=rn.layout,ln=rn.dots[nn];if(!sn||ln.entity==null||ln.glow==null)return;let cn=sn.radius*2;if(an)rn.world.animate(ln.entity,[{scale:cn*Dxe,at:0.45},{scale:cn*Nxe}],{duration:Gxe});else rn.world.animate(ln.entity,{scale:cn},{duration:kxe});Jxe(rn.world,ln.glow,an)}function _v(rn){for(let nn of rn.chain)rw(rn,nn,!1);if(rn.chain=[],nw(rn),rn.trail)ow(rn.world,rn.trail)}function W5t(rn){let{layout:nn,world:an,chain:sn}=rn,ln=rn.dots[sn[0]].colorIndex,cn=sn.length>=4&&uRe(sn[0],sn[sn.length-1]),un=cn?rn.dots.flatMap((pn,mn)=>pn.colorIndex===ln?[mn]:[]):sn.slice();rn.chain=[],nw(rn);for(let pn of un){let mn=rn.dots[pn],fn=mn.entity;if(fn!=null)Xs(an,fn,{scale:tRe(nn),color:tw(mn.colorIndex),duration:Bxe},eRe(nn,wc(pn),yu(pn),mn.colorIndex)).then(()=>an.despawn(fn));mn.entity=null,mn.glow=null}let dn=new Set(un);for(let pn=0;pn<Us;pn++){let mn=[];for(let hn=Us-1;hn>=0;hn--)if(!dn.has(hn*Us+pn))mn.push({dot:rn.dots[hn*Us+pn],from:hn});mn.forEach(({dot:hn,from:bn},yn)=>{let En=Us-1-yn;if(rn.dots[En*Us+pn]=hn,bn!==En)bRe(rn,hn,En*Us+pn)});let fn=Us-mn.length;for(let hn=0;hn<fn;hn++){let bn={colorIndex:yk(),entity:null,glow:null};rn.dots[hn*Us+pn]=bn,hRe(rn,bn,hn*Us+pn,!0)}}rn.onScore(rn.world.scoreboard.add(Ixe(un.length)+(cn?Lxe:0))),rn.onClear()}function nw(rn){let nn=rn.layout;if(!nn)return;let{world:an,chain:sn}=rn,ln=sn.length?hk(rn.dots[sn[0]].colorIndex):null;for(let cn=0;cn<Math.max(sn.length-1,rn.segments.length);cn++)if(cn<sn.length-1&&ln){let un=rn.segments[cn]??(rn.segments[cn]=oRe(an)),dn=sn[cn],pn=sn[cn+1];nRe(an,nn,un,Dy(nn,wc(dn),yu(dn)),Dy(nn,wc(pn),yu(pn)),ln)}else if(rn.segments[cn])aRe(an,rn.segments[cn]);ARe(rn)}function ARe(rn){let{layout:nn,trail:an}=rn;if(!nn||!an)return;let sn=rn.chain[rn.chain.length-1];if(!rn.touching||sn===void 0){ow(rn.world,an);return}let[ln,cn,un]=hk(rn.dots[sn].colorIndex),dn=Dy(nn,wc(sn),yu(sn));iRe(rn.world,nn,an,dn,U5t(nn,dn,rn.finger),[ln,cn,un,Fxe])}function U5t(rn,nn,an){let sn=1,ln=[[0,rn.boardLeft,rn.boardLeft+rn.boardSize],[1,rn.boardTop,rn.boardTop+rn.boardSize]];for(let[cn,un,dn]of ln){let pn=an[cn]-nn[cn];if(an[cn]<un)sn=Math.min(sn,(un-nn[cn])/pn);if(an[cn]>dn)sn=Math.min(sn,(dn-nn[cn])/pn)}return[nn[0]+(an[0]-nn[0])*sn,nn[1]+(an[1]-nn[1])*sn]}var Ny=-1,B5t=1200,yk=()=>Math.floor(Math.random()*Ev.length),wc=(rn)=>Math.floor(rn/Us),yu=(rn)=>rn%Us,uRe=(rn,nn)=>{let an=Math.abs(wc(rn)-wc(nn)),sn=Math.abs(yu(rn)-yu(nn));return an<=1&&sn<=1&&an+sn>0};var MRe=e(()=>{f();Hn();QC();cRe()});var ur={};n(ur,{ConnectEmAll:()=>Wt});import{jsx as z5t}from"react/jsx-runtime";var Gy,V5t=(rn)=>rn.toLocaleString(),Wt;var ce=e(()=>{Ta();l();a();_a();o();xa();va();QC();MRe();Gy=t.CONNECT_EM_ALL,Wt=Vn("connect-em-all",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(Th),{theme:cn,status:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"connect-em-all",create:dRe,start:yRe,reset:ERe,dispose:SRe,tick:_Re,setTheme:mRe,resize:(mn,fn,hn,bn)=>{let yn=Yxe(fn,hn,bn);return pRe(mn,yn),yn.boardSize},drag:(mn,{phase:fn,x:hn,y:bn})=>{if(fn==="start")TRe(mn,hn,bn);else if(fn==="move")xRe(mn,hn,bn);else RRe(mn)},sounds:Gy,onStart:(mn)=>mn(Gy.START,"medium"),onOver:(mn,fn)=>mn(fn==="win"?Gy.WIN:Gy.GAME_OVER,fn==="win"?"success":"heavy"),wire:(mn,fn)=>{mn.onScore=an,mn.onTime=ln,mn.onConnect=()=>fn(Gy.CONNECT,"light"),mn.onClear=()=>fn(Gy.CLEAR,"medium")}});return z5t(Un,{...dn,light:zxe,columns:[Qn(nn,"SCORE",V5t),ta(sn,cn)],subtext:"Connect matching dots!",gameOver:pn({title:un==="win"?"WELL DONE!":"TIME UP!",message:un==="win"?"All connections made!":"You ran out of time!",scoreLabel:un==="win"?"Great Job!":"Game Over",score:nn,buttonText:un==="win"?"Play Again!":"Try Again!"})})})});function zRe(rn,nn){let an=Math.tan(0.45),sn=Math.atan(0.19999999999999996*an),ln=18*an/rn;return{eyeHeight:-9*Math.sin(sn)-(rn/2-VRe(rn,nn))*ln*Math.cos(sn),horizon:0.6,playDepth:9}}var xh=120,im=3,CRe=200,wRe=1000,ky,Ek=0.05,LRe=0.5,Sk=0.016666666666666666,IRe=0.002,ORe=0.05,PRe=1.4,gRe=-28,_k=6,Rh=50,DRe=70,vk=75,NRe=50,Tk=60,GRe=5,kRe=300,BRe=-100,FRe=1.5,HRe=2.5,WRe=2,aw=0.16,URe=0.24,VRe=(rn,nn)=>rn-(nn>0?150:250),qRe,d0=80,YRe=(rn,nn,an)=>({width:rn,height:nn,offset:an,groundY:VRe(nn,an)});var sw=e(()=>{ky={cactus_small:{width:35,height:65},cactus_large:{width:45,height:85},mushroom:{width:45,height:65}};qRe={biome:"desert",near:!1,sun:[0.8,0.22],clouds:[0.1,0.42]}});import{effects as $Re,lathe as Ah,merge as Mh,quat as Yl,recolor as q5t,shapeGeometry as Y5t,tube as _l}from"@nayan-ui/engine";function ZRe(rn,nn,an,sn,ln,cn){let un=Ha(nn),{width:dn,height:pn}=ky[sn];return rn.spawn({mesh:$5t[sn](),position:Fa(nn,ln+dn/2,an.groundY),scale:[dn*un,pn*un,dn*un*(sn==="cactus_large"?0.6:1)],rotation:Yl.y(sn==="mushroom"?0.5:0),color:cn,pickable:!1})}function QRe(rn,nn,an,sn,ln,cn,un){let dn=Fa(nn,cn+ky[ln].width/2,an.groundY);if(un)un.position(sn,dn[0],dn[1],dn[2]);else rn.set(sn,{position:dn})}function JRe(rn,nn,an,sn,ln){let cn=vk*Ha(nn),un=rn.spawn({mesh:"none",position:Fa(nn,an,sn),pickable:!1}),dn=rn.spawn({mesh:aMt(),parent:un,scale:cn,color:ln,pickable:!1}),pn=(mn)=>rn.spawn({mesh:sMt(),parent:un,position:[XRe[0]*cn,XRe[1]*cn,mn*cn],scale:cn,color:ln,pickable:!1});return{root:un,body:dn,near:pn(0.1),far:pn(-0.1)}}function eAe(rn,nn,an,sn,ln){rn.set(an.root,{position:Fa(nn,sn,ln)})}function Ch(rn,nn,an,sn){for(let cn of[an.near,an.far])rn.stopAnimation(cn);let ln=vk*Ha(nn);if(sn==="run"){rn.set(an.near,{rotation:Yl.z(iw)}),rn.set(an.far,{rotation:Yl.z(-iw)}),rn.animate(an.near,{rotation:Yl.z(-iw)},{duration:aw,easing:"easeInOut",repeat:"forever",yoyo:!0}),rn.animate(an.far,{rotation:Yl.z(iw)},{duration:aw,easing:"easeInOut",repeat:"forever",yoyo:!0}),rn.set(an.root,{bob:{amplitude:[0,ln*0.025,0],speed:Math.PI/aw}});return}rn.set(an.root,{bob:null}),rn.set(an.near,{rotation:Yl.z(sn==="air"?0.5:0)}),rn.set(an.far,{rotation:Yl.z(sn==="air"?-0.25:0)})}function tAe(rn,nn,an){rn.animate(nn.body,[{color:[1.8,0.35,0.35,1],at:0.25},{color:an}],{duration:0.4}),rn.animate(nn.root,{shake:0.05},{duration:0.3})}function oAe(rn,nn,an){rn.animate(nn.body,[{color:[1.7,1.5,0.7,1],at:0.3},{color:an}],{duration:0.45})}function Rk(rn,nn,an,sn,ln){let cn=Ha(nn);$Re.dust(rn,{position:Fa(nn,an,sn),count:ln?5:1,size:(ln?22:14)*cn,speed:(ln?60:30)*cn,direction:[-1,0.5,0],spread:ln?1.4:0.6,lifetime:ln?0.5:0.4,color:iMt,endSize:2.2})}function rAe(rn,nn,an,sn,ln){let cn=Ha(nn);$Re.shatter(rn,{position:Fa(nn,an,sn,nn.playDepth-0.3),count:12,mesh:ln?"sphere":"cube",size:8*cn,speed:220*cn,lifetime:0.55,gravity:-2200*cn,colors:ln?cMt:lMt})}function nAe(rn,nn,an){let sn=vc(nn),ln=(un)=>[un[0]*sn[0],un[1]*sn[1],un[2]*sn[2],un[3]??1];return{roots:[0,1,2].map((un)=>{let dn=rn.spawn({mesh:mMt(an),color:ln([1,1,1,1]),pickable:!1}),pn=Ds(100+un*17),mn=(bn,yn,En,Sn,_n=[1,1,1,1],vn=Yl.y(pn()*6.3))=>rn.spawn({mesh:bn,parent:dn,position:[yn,0,En],scale:Sn,rotation:vn,color:ln(_n),pickable:!1}),fn=()=>(pn()-0.5)*d0,hn=(bn,yn)=>{let En=-(bn+pn()*(yn-bn));if(Math.abs(-En-an)<4)En-=5;return En};for(let bn=0;bn<6;bn++)mn(fMt(),fn(),hn(18,70),3+pn()*3.5,[1,1,1,1],Yl.y(pn()*0.6-0.3));for(let bn=0;bn<6;bn++)mn(hMt(),fn(),hn(13,40),0.5+pn()*0.6);for(let bn=0;bn<8;bn++){let yn=0.3+pn()*1.4;mn(Np(),fn(),hn(12,60),[yn*1.3,yn,yn],[0.95,0.78,0.6,1])}for(let bn=0;bn<8;bn++){let yn=0.5+pn()*0.7;mn(n_(),fn(),hn(12,50),[yn*1.2,yn*0.8,yn*1.2],[0.72,0.62,0.36,1])}for(let bn=0;bn<16;bn++)mn(rd(),fn(),-(2.6+pn()*2.9),0.5+pn()*0.3,[0.82,0.72,0.42,1]);for(let bn=0;bn<14;bn++){let yn=0.05+pn()*0.07;mn(Np(),fn(),-(2.6+pn()*5.5),[yn*1.4,yn,yn],[0.85,0.72,0.58,1])}return dn})}}function Ak(rn,nn,an){nn.roots.forEach((sn,ln)=>{let cn=d0*3,un=((ln*d0-an+d0*1.5)%cn+cn)%cn-d0*1.5;rn.set(sn,{position:[un,0,0]})})}function Mk(rn,nn){for(let an of nn.roots)rn.despawn(an)}var KRe,lm=(rn,nn)=>{let an=KRe.get(rn);if(!an)an=Bn("dino-jump/DinoJumpScene:"+rn,nn),KRe.set(rn,an);return an},Is=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},m0=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an],p0=()=>Y5t("sphere"),cw=(rn,nn)=>({displace:(an)=>nn*Math.cos(an*Math.PI*2*rn),color:({u:an})=>m0(Is("#2f6b2c"),Is("#5aa646"),0.5+0.5*Math.cos(an*Math.PI*2*rn))}),K5t=()=>lm("dj-cactus-small",()=>wn(Mh([{geometry:Ah([[0.34,0],[0.36,0.55],[0.33,0.82],[0.22,0.96],[0.001,1]],{segments:24,...cw(10,0.025)})},{geometry:_l([[0.25,0.4,0],[0.42,0.42,0],[0.45,0.62,0]],{radius:0.1,color:Is("#3f8a38")})}]),{center:!1,shine:0.25})),X5t=()=>lm("dj-cactus-large",()=>wn(Mh([{geometry:Ah([[0.22,0],[0.24,0.6],[0.22,0.86],[0.15,0.97],[0.001,1]],{segments:24,...cw(12,0.018)})},{geometry:_l([[-0.18,0.36,0],[-0.4,0.38,0],[-0.42,0.66,0]],{radius:0.085,color:Is("#3f8a38")})},{geometry:_l([[0.18,0.46,0],[0.38,0.48,0],[0.4,0.76,0]],{radius:0.08,color:Is("#3f8a38")})}]),{center:!1,shine:0.25})),j5t=()=>lm("dj-mushroom",()=>{let rn=[],nn=Ds(5);for(let an=0;an<9;an++){let sn=nn()*Math.PI*2,ln=0.25+nn()*0.6,cn=0.5*Math.cos(ln*1.2);rn.push({geometry:p0(),position:[Math.cos(sn)*cn,0.5+ln*0.48,Math.sin(sn)*cn],scale:0.09+nn()*0.05,color:[1,1,1]})}return wn(Mh([{geometry:Ah([[0.15,0],[0.17,0.25],[0.14,0.52]],{segments:16,color:Is("#f3e3c3")})},{geometry:Ah([[0.001,0.46],[0.5,0.48],[0.47,0.66],[0.34,0.86],[0.16,0.97],[0.001,1]],{segments:24,color:Is("#e23b33")})},...rn]),{center:!1,shine:0.5})}),$5t,Z5t,Q5t,J5t,eMt,tMt,oMt,rMt,vv=(rn,nn,an)=>{let sn=Math.min(1,Math.max(0,(an-rn)/(nn-rn)));return sn*sn*(3-2*sn)},lw=(rn=!1)=>({position:nn,normal:an})=>{let sn=0.5+0.5*an[1],ln=m0(J5t,Q5t,vv(0.22,0.5,sn));if(ln=m0(ln,Z5t,vv(0.6,0.95,sn)),rn&&sn>0.55&&nn[0]<0.14)ln=m0(ln,eMt,vv(0.45,0.8,Math.sin(nn[0]*46))*vv(0.55,0.8,sn)*0.75);let cn=0.86+0.28*Oa(nn[0]*22+3,nn[1]*22+nn[2]*11);return[ln[0]*cn,ln[1]*cn,ln[2]*cn]},bd=(rn)=>q5t(rn,lw()),nMt=(rn)=>(nn)=>{for(let an=0;an+1<rn.length;an++){let[sn,ln]=rn[an],[cn,un]=rn[an+1];if(nn<=cn)return ln+(un-ln)*vv(sn,cn,nn)}return rn[rn.length-1][1]},xk=(rn,nn,an=tMt)=>Ah([[nn,0],[nn*0.6,rn*0.5],[0.001,rn]],{segments:8,color:an}),aMt=()=>lm("dj-dino-rex",()=>{let rn=_l([[-0.54,0.41,0],[-0.42,0.44,0],[-0.28,0.5,0],[-0.12,0.55,0],[0.03,0.57,0],[0.14,0.63,0],[0.21,0.73,0],[0.26,0.83,0]],{radius:nMt([[0,0.01],[0.16,0.042],[0.33,0.095],[0.5,0.155],[0.62,0.165],[0.76,0.12],[0.88,0.078],[1,0.072]]),sides:24,smoothness:10,color:lw(!0)}),nn=(pn)=>0.072-0.026*pn,an=_l([[0.29,0.885,0],[0.38,0.877,0],[0.475,0.862,0]],{radius:nn,sides:18,color:lw()}),sn=_l([[0.27,0.84,0],[0.36,0.818,0],[0.455,0.8,0]],{radius:(pn)=>0.046-0.016*pn,sides:16,color:lw()}),ln=[];for(let pn=0;pn<7;pn++){let mn=0.335+pn*0.021,fn=(mn-0.29)/0.185,hn=nn(fn),bn=0.885-0.023*fn-hn*0.72;for(let yn of[1,-1])ln.push({geometry:xk(0.026,0.008,oMt),position:[mn,bn,yn*hn*0.62],rotation:Yl.z(Math.PI),scale:1-Math.abs(pn-2)*0.08})}let cn=(pn)=>[pn,{...pn,position:[pn.position[0],pn.position[1],-pn.position[2]]}],un=(pn)=>({geometry:bd(_l([[0.15,0.57,pn],[0.19,0.51,pn*1.15],[0.235,0.515,pn*1.15]],{radius:(mn)=>0.026-0.01*mn,sides:10}))}),dn=(pn)=>[0.012,-0.012].map((mn)=>({geometry:xk(0.022,0.006),position:[0.235,0.512,pn*1.15+mn],rotation:Yl.z(-2)}));return wn(Mh([{geometry:rn,scale:[1,1,0.8]},{geometry:bd(p0()),position:[0.01,0.5,0],scale:[0.36,0.3,0.25]},{geometry:bd(p0()),position:[0.3,0.875,0],scale:[0.2,0.17,0.16]},{geometry:an,scale:[1,1,0.82]},{geometry:sn,scale:[1,1,0.78]},...ln,...cn({geometry:_l([[0.28,0.842,0.046],[0.37,0.828,0.042],[0.455,0.818,0.032]],{radius:0.006,sides:6,caps:!1}),position:[0,0,0],scale:1,color:rMt}),...cn({geometry:bd(p0()),position:[0.335,0.94,0.05],scale:[0.1,0.032,0.045]}),...cn({geometry:p0(),position:[0.34,0.91,0.064],scale:0.034,color:Is("#d79a1c")}),...cn({geometry:p0(),position:[0.345,0.91,0.079],scale:[0.009,0.026,0.008],color:Is("#0b0b0b")}),...cn({geometry:p0(),position:[0.35,0.918,0.08],scale:0.007,color:[1,1,1]}),...cn({geometry:p0(),position:[0.462,0.88,0.026],scale:[0.02,0.012,0.012],color:Is("#1d1f12")}),un(0.085),un(-0.085),...dn(0.085),...dn(-0.085)]),{center:!1,shine:0.18})}),sMt=()=>lm("dj-leg-rex",()=>{let rn=[-0.032,0,0.032].flatMap((nn)=>{let an=nn===0?0.1:0.08,sn=[0.03+an,-0.443,nn*1.6];return[{geometry:bd(_l([[0.03,-0.438,nn*0.6],[0.03+an*0.55,-0.44,nn*1.2],sn],{radius:(ln)=>0.021-0.009*ln,sides:8}))},{geometry:xk(0.03,0.011),position:sn,rotation:Yl.z(-1.75)}]});return wn(Mh([{geometry:bd(p0()),position:[0.01,-0.07,0],scale:[0.25,0.3,0.17],rotation:Yl.z(-0.25)},{geometry:bd(_l([[0,-0.1,0],[0.065,-0.2,0]],{radius:(nn)=>0.075-0.03*nn,sides:12}))},{geometry:bd(_l([[0.065,-0.2,0],[0.02,-0.27,0],[-0.03,-0.33,0]],{radius:(nn)=>0.045-0.016*nn,sides:12}))},{geometry:bd(_l([[-0.03,-0.33,0],[-0.005,-0.39,0],[0.03,-0.437,0]],{radius:(nn)=>0.028-0.004*nn,sides:10}))},...rn]),{center:!1,shine:0.15})}),XRe,iw=0.5,uw=(rn)=>rn+DRe/2,iMt,lMt,cMt,uMt,dMt,pMt,jRe=(rn,nn,an,sn)=>{let ln=(rn%an+an)%an/an;return sn(ln*an,nn)*(1-ln)+sn((ln-1)*an,nn)*ln},mMt=(rn)=>lm(`dj-floor:${rn.toFixed(2)}`,()=>{let nn=[],an=[],sn=44,ln=48;for(let un=0;un<44;un++){let dn=-(1.2+Math.pow(1.12,un)-1);for(let pn=0;pn<48;pn++){let mn=-d0/2+pn/47*d0,fn=jRe(mn,dn,d0,(Sn,_n)=>gb(Sn*0.07,_n*0.07)),hn=jRe(mn,dn,d0,(Sn,_n)=>Oa(Sn*0.9,_n*0.35)),bn=m0(dMt,uMt,fn);bn=m0(bn,pMt,Math.max(0,0.45-fn)*0.6),bn=m0(bn,m0(bn,[1,1,1],0.12),hn*0.6);let yn=Math.max(0,1-Math.abs(-dn-rn)/1.3);bn=m0(bn,Is("#f2deb0"),yn*0.45);let En=1-Math.exp(-((-dn/140)**2));bn=m0(bn,r_,En*0.7),nn.push(mn,0,dn,0,1,0,bn[0],bn[1],bn[2],0,0)}}let cn=(un,dn)=>un*48+dn;for(let un=0;un+1<44;un++)for(let dn=0;dn+1<48;dn++)an.push(cn(un,dn),cn(un,dn+1),cn(un+1,dn+1),cn(un,dn),cn(un+1,dn+1),cn(un+1,dn));return wn({vertices:new Float32Array(nn),indices:new Uint32Array(an)},{center:!1})}),fMt=()=>lm("dj-saguaro",()=>wn(Mh([{geometry:Ah([[0.07,0],[0.075,0.7],[0.065,0.92],[0.035,0.99],[0.001,1]],{segments:18,...cw(12,0.006)})},{geometry:_l([[-0.06,0.42,0],[-0.2,0.44,0],[-0.22,0.72,0]],{radius:0.045,color:Is("#3f8a38")})},{geometry:_l([[0.06,0.52,0],[0.17,0.54,0],[0.18,0.8,0]],{radius:0.04,color:Is("#3f8a38")})}]),{center:!1,shine:0.2})),hMt=()=>lm("dj-barrel",()=>wn(Mh([{geometry:Ah([[0.001,0],[0.3,0.04],[0.4,0.22],[0.36,0.42],[0.2,0.54],[0.001,0.56]],{segments:22,...cw(14,0.02)})},...[0,1,2,3,4].map((rn)=>({geometry:p0(),position:[Math.cos(rn*1.26)*0.12,0.56,Math.sin(rn*1.26)*0.12],scale:0.09,color:Is("#ff6fa8")}))]),{center:!1,shine:0.25}));var aAe=e(()=>{d();na();Hn();sw();KRe=new Map,$5t={cactus_small:K5t,cactus_large:X5t,mushroom:j5t};Z5t=Is("#3a4527"),Q5t=Is("#6d7a43"),J5t=Is("#cdbf8f"),eMt=Is("#262b17"),tMt=Is("#2a2418"),oMt=Is("#efe5c8"),rMt=Is("#3a1a14"),XRe=[-0.06,0.46,0];iMt=[0.86,0.74,0.55,0.85],lMt=["#2f6b2c","#5aa646","#c9a063"].map((rn)=>xn(rn)),cMt=["#e23b33","#ffffff","#ffd54f"].map((rn)=>xn(rn));uMt=Is("#ecd29a"),dMt=Is("#cfa86a"),pMt=Is("#d89a62")});import{World as bMt}from"@nayan-ui/engine";function sAe(rn){let nn=new bMt(yMt),sn={world:nn,camera:{eye:[0,1,0],target:[0,1,-1],fov:0.9},theme:rn,tint:vc(rn),layout:null,view:null,scenery:[],desert:null,dino:null,phase:"ready",get score(){return nn.scoreboard.score},get lives(){return nn.scoreboard.lives},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,time:0,pending:0,jumpY:0,velocity:0,jumping:!1,scroll:0,dustTimer:0,obstacles:[],onPhase:(ln)=>{},onScore:(ln)=>{},onLives:(ln)=>{},onTime:(ln)=>{},onJump:()=>{},onHit:(ln)=>{},onCollect:()=>{}};return nn.scoreboard.reset(im,xh),nn.scoreboard.handlers={onSecond:(ln)=>{if(sn.phase!=="playing")return;sn.onTime(ln),sn.onScore(nn.scoreboard.add(CRe))},onTimeUp:()=>sn.phase==="playing"&&bAe(sn,!0)},sn}function lAe(rn,nn){let an=rn.world;for(let cn of rn.scenery)an.despawn(cn);if(rn.desert)Mk(an,rn.desert);if(rn.dino)an.despawn(rn.dino.root);dAe(rn),rn.layout=nn;let sn=Fl(nn.width,nn.height,zRe(nn.height,nn.offset));rn.view=sn;let ln=fl(sn);rn.camera.eye=ln.eye,rn.camera.target=ln.target,rn.camera.fov=ln.fov,cAe(rn),rn.dino=JRe(an,sn,uw(Rh),nn.groundY+rn.jumpY,rn.tint),Ch(an,sn,rn.dino,rn.phase==="playing"?rn.jumping?"air":"run":"stand")}function cAe(rn){let{view:nn,layout:an}=rn;rn.scenery=$i(rn.world,nn,rn.theme,qRe),rn.desert=nAe(rn.world,rn.theme,-Fa(nn,0,an.groundY)[2]),Ak(rn.world,rn.desert,rn.scroll*Ha(nn))}function uAe(rn,nn){if(nn===rn.theme&&rn.scenery.length)return;if(rn.theme=nn,rn.tint=vc(nn),!rn.view||!rn.layout||rn.world.isDisposed)return;for(let an of rn.scenery)rn.world.despawn(an);if(rn.desert)Mk(rn.world,rn.desert);if(cAe(rn),rn.dino)for(let an of[rn.dino.body,rn.dino.near,rn.dino.far])rn.world.set(an,{color:rn.tint});for(let an of rn.obstacles)rn.world.set(an.root,{color:rn.tint})}function dAe(rn){for(let nn of rn.obstacles)rn.world.despawn(nn.root);rn.obstacles=[]}function pAe(rn){if(rn.phase!=="ready"||!rn.view)return;if(rn.jumpY=0,rn.velocity=0,rn.jumping=!1,rn.pending=0,rn.phase="playing",rn.world.scoreboard.startCountdown(xh),rn.dino)Ch(rn.world,rn.view,rn.dino,"run");Ck(rn),rn.onPhase("playing"),iAe(rn,FRe,()=>mAe(rn))}function mAe(rn){if(rn.phase!=="playing")return;EMt(rn),iAe(rn,HRe+Math.random()*WRe,()=>mAe(rn))}function EMt(rn){let{layout:nn,view:an}=rn;if(!nn||!an||rn.obstacles.length>=GRe)return;if(rn.obstacles.some((cn)=>cn.x>nn.width-kRe))return;let sn=Math.random(),ln=sn<Ek?"mushroom":sn<Ek+LRe?"cactus_small":"cactus_large";rn.obstacles.push({kind:ln,x:nn.width,root:ZRe(rn.world,an,nn,ln,nn.width,rn.tint)})}function fAe(rn){if(rn.world.cancelTimers(),dAe(rn),rn.jumpY=0,rn.velocity=0,rn.jumping=!1,rn.pending=0,rn.world.scoreboard.reset(im,xh),rn.won=!1,rn.phase="ready",rn.dino&&rn.view)Ch(rn.world,rn.view,rn.dino,"stand");Ck(rn),rn.onScore(0),rn.onLives(im),rn.onTime(xh),rn.onPhase("ready")}function hAe(rn){rn.world.cancelTimers(),rn.world.dispose()}function bAe(rn,nn){if(rn.world.scoreboard.stop(),rn.world.cancelTimers(),rn.won=nn,rn.phase="over",rn.dino&&rn.view)Ch(rn.world,rn.view,rn.dino,rn.jumping?"air":"stand");rn.onPhase("over")}function yAe(rn,nn){if(rn.world.isDisposed)return;if(rn.time+=nn,rn.phase==="playing"){rn.pending=Math.min(rn.pending+nn,ORe);let an=!1;while(rn.pending>=Sk-IRe&&rn.phase==="playing")rn.pending-=Sk,SMt(rn),an=!0;if(an)SAe(rn);if(rn.dustTimer+=nn,rn.phase==="playing"&&!rn.jumping&&rn.dustTimer>=URe&&rn.view&&rn.layout)rn.dustTimer=0,Rk(rn.world,rn.view,Rh+12,rn.layout.groundY,!1)}rn.world.update(nn)}function EAe(rn){if(rn.phase!=="playing"||rn.jumping)return;if(rn.jumping=!0,rn.velocity=gRe,rn.dino&&rn.view)Ch(rn.world,rn.view,rn.dino,"air");rn.onJump()}function SMt(rn){let nn=rn.layout;if(rn.jumping){if(rn.velocity+=PRe,rn.jumpY+=rn.velocity,rn.jumpY>=0){if(rn.jumpY=0,rn.velocity=0,rn.jumping=!1,rn.dino&&rn.view)Ch(rn.world,rn.view,rn.dino,"run"),Rk(rn.world,rn.view,uw(Rh),nn.groundY,!0)}}rn.scroll+=_k,rn.obstacles=rn.obstacles.filter((un)=>{if(un.x-=_k,un.x<BRe)return rn.world.despawn(un.root),!1;return!0});let an=nn.groundY-Tk+rn.jumpY,sn=rn.obstacles.find((un)=>{let{width:dn,height:pn}=ky[un.kind],mn=nn.groundY-pn;return Rh<un.x+dn&&Rh+NRe>un.x&&an<mn+pn&&an+Tk>mn});if(!sn)return;rn.obstacles=rn.obstacles.filter((un)=>un!==sn),rn.world.despawn(sn.root);let{width:ln,height:cn}=ky[sn.kind];if(rn.view)rAe(rn.world,rn.view,sn.x+ln/2,nn.groundY-cn/2,sn.kind==="mushroom");if(sn.kind==="mushroom"){if(rn.lives<im)rn.world.scoreboard.addLives(1);if(rn.onLives(rn.lives),rn.onScore(rn.world.scoreboard.add(wRe)),rn.dino)oAe(rn.world,rn.dino,rn.tint);rn.onCollect();return}if(rn.onLives(rn.world.scoreboard.addLives(-1)),rn.dino)tAe(rn.world,rn.dino,rn.tint);if(rn.onHit(rn.lives<=0),rn.lives<=0)SAe(rn),bAe(rn,!1)}function Ck(rn){let{layout:nn,view:an}=rn;if(!nn||!an||!rn.dino)return;eAe(rn.world,an,rn.dino,uw(Rh),nn.groundY+rn.jumpY)}function SAe(rn){let{layout:nn,view:an}=rn;if(!nn||!an)return;let sn=rn.world.transforms;for(let ln of rn.obstacles)QRe(rn.world,an,nn,ln.root,ln.kind,ln.x,sn);if(sn.flush(),rn.desert)Ak(rn.world,rn.desert,rn.scroll*Ha(an));Ck(rn)}var yMt=900,iAe=(rn,nn,an)=>rn.world.after(nn,an);var _Ae=e(()=>{d();sw();aAe()});var dr={};n(dr,{DinoJump:()=>Ut});import{useMemo as vAe}from"react";import{jsx as vMt}from"react/jsx-runtime";var wh,_Mt=(rn)=>rn.toLocaleString(),Ut;var ue=e(()=>{Ta();l();a();_a();o();d();xa();va();sw();_Ae();wh=t.DINO_JUMP,Ut=Vn("dino-jump",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(im),[cn,un]=gn(xh),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"dino-jump",create:sAe,start:pAe,reset:fAe,dispose:hAe,tick:yAe,setTheme:uAe,resize:(yn,En,Sn,_n)=>lAe(yn,YRe(En,Sn,_n)),drag:(yn,{phase:En})=>{if(En==="start")EAe(yn)},sounds:wh,onStart:(yn)=>yn(wh.START,"medium"),onPlayAgain:(yn)=>yn(null,"light"),onOver:(yn,En)=>yn(En==="win"?wh.WIN:wh.GAME_OVER,En==="win"?"success":"error"),wire:(yn,En)=>{yn.onScore=an,yn.onLives=ln,yn.onTime=un,yn.onJump=()=>En(wh.JUMP,"light"),yn.onCollect=()=>En(wh.COLLECT,"success"),yn.onHit=()=>En(wh.HIT,"heavy")}}),hn=vAe(()=>ji(dn),[dn]),bn=vAe(()=>hl(dn),[dn]);return vMt(Un,{...mn,light:hn,background:bn,columns:[Qn(nn,"SCORE",_Mt),ys(sn,im),ta(cn,dn)],subtext:"Jump over the cacti!",gameOver:fn({title:pn==="win"?"YOU SURVIVED!":"GAME OVER",message:pn==="win"?"Great running!":"You hit an obstacle!",scoreLabel:"Final Score",score:nn,buttonText:"Run Again!"})})})});function IAe(rn,nn,an){let sn=la(an)+TMt,ln=Math.max(200,nn-sn-xMt),cn=Math.min($n(rn),ln/Math.cos(TAe)),un=(cn-xAe*2)/By;return{width:rn,height:nn,tilt:TAe,centerY:sn+ln/2,boardSize:cn,padding:xAe,cell:un,dotRadius:Math.max(6,un*0.12),lineWidth:Math.max(6,un*0.12),boardTop:0}}function cm(rn,nn,an){let sn=rn.boardSize/2;return[-sn+rn.padding+an*rn.cell,sn-rn.padding-nn*rn.cell]}var By=6,wk=2000,Tv="#34D399",xv="#F87171",RAe="#D5DCE6",Lk="rgba(255, 255, 255, 0.25)",Ik="rgba(255, 255, 255, 0.3)",AAe="rgba(255, 255, 255, 0.3)",MAe=1,CAe=0.8,dw=0.22,wAe=0.32,TAe=0.3,LAe,TMt=82,xMt=110,xAe=22;var pw=e(()=>{o();Hn();LAe=Zn([-0.4,0.35,1],0.5)});import{effects as NAe,extrude as Ok,lathe as RMt,merge as AMt,Path as Pk,quat as gk,shapeGeometry as OAe,tube as MMt}from"@nayan-ui/engine";function VAe(rn,nn,an,sn){let[ln,cn]=cm(rn,an,sn),[un,dn]=nn==="h"?cm(rn,an,sn+1):cm(rn,an+1,sn);return{x:(ln+un)/2,y:(cn+dn)/2}}function PMt(rn,nn,an){let[sn,ln]=cm(rn,nn,an);return[sn+rn.cell/2,ln-rn.cell/2]}function qAe(rn,nn,an,sn){let ln=an.mode==="classic",cn=ln?16:8,un=oa(rn,nn.width,nn.height,-gAe,an);Ea(rn,un,nn,gAe);let dn=rn.spawn({mesh:WAe(nn.boardSize,cn),position:[0,0,-BAe/2],color:xn(ln?Lk:an.BOARD.SURFACE),pickable:!1}),pn=xn(ln?Ik:an.BOARD.BORDER),mn=pn[3]>0?rn.spawn({mesh:UAe(nn.boardSize,cn),position:[0,0,0.2],color:pn,pickable:!1}):null,fn=[],hn=xn(RAe);for(let Sn=0;Sn<=By;Sn++)for(let _n=0;_n<=By;_n++){let[vn,Tn]=cm(nn,Sn,_n);fn.push(rn.spawn({mesh:LMt(),position:[vn,Tn,0],rotation:CMt,scale:nn.dotRadius*2,color:hn,pickable:!1}))}let bn=wMt(nn.cell-nn.dotRadius*2.4,nn.lineWidth*0.75),yn=zAe(an),En=sn.map(({kind:Sn,row:_n,col:vn})=>{let{x:Tn,y:Rn}=VAe(nn,Sn,_n,vn);return rn.spawn({mesh:bn,position:[Tn,Rn,0.3],rotation:Sn==="h"?GAe:kAe,color:yn,pickable:!1})});return{backdrop:un,panel:dn,rim:mn,studs:fn,slots:En}}function YAe(rn,nn){for(let an of[nn.backdrop,nn.panel,...nn.rim!=null?[nn.rim]:[],...nn.studs,...nn.slots])rn.despawn(an)}function KAe(rn,nn,an,sn){let ln=sn.mode==="classic",cn=ln?16:8;if(aa(rn,an.backdrop,sn),rn.set(an.panel,{mesh:WAe(nn.boardSize,cn),color:xn(ln?Lk:sn.BOARD.SURFACE)}),an.rim!=null)rn.despawn(an.rim);let un=xn(ln?Ik:sn.BOARD.BORDER);an.rim=un[3]>0?rn.spawn({mesh:UAe(nn.boardSize,cn),position:[0,0,0.2],color:un,pickable:!1}):null;let dn=zAe(sn);for(let pn of an.slots)rn.set(pn,{color:dn})}function XAe(rn,nn,an,sn,ln,cn,un){let{x:dn,y:pn}=VAe(nn,an,sn,ln),mn=nn.lineWidth,fn=FAe(cn),hn=[dn,pn,mn/2],bn=rn.spawn({mesh:IMt(),position:un?[dn,pn,mn*2.5]:hn,rotation:an==="h"?GAe:kAe,scale:[un?mn:nn.cell,mn,mn],color:un?HAe(fn,1.6):fn,pickable:!1});if(un)rn.animate(bn,{scale:[nn.cell,mn,mn]},{duration:dw,easing:"back"}),rn.animate(bn,{position:hn},{duration:dw,easing:"bounce"}),rn.animate(bn,{color:fn},{duration:dw*2});return bn}function jAe(rn,nn,an,sn,ln,cn){let[un,dn]=PMt(nn,an,sn),pn=FAe(ln),mn=rn.spawn({mesh:OMt(),position:[un,dn,0],scale:cn?[0.01,0.01,0.01]:DAe(nn),color:pn,pickable:!1});if(cn)rn.animate(mn,{scale:DAe(nn)},{duration:wAe,easing:"back"}),NAe.sparkle(rn,{position:[un,dn,nn.cell*0.2],count:12,size:nn.cell*0.08,speed:nn.cell*3,lifetime:0.5,gravity:-nn.cell*6,colors:[pn,HAe(pn,1.3),[1,1,1,1]]});return mn}function $Ae(rn,nn){NAe.confetti(rn,{position:[0,0,nn.cell],count:60,size:nn.cell*0.12,speed:nn.boardSize*1.4,lifetime:1.4,gravity:-nn.boardSize*2.4,colors:["#34D399","#FFD740","#448AFF","#FF5252"].map((an)=>xn(an))})}function Dk(rn,nn,an,sn){rn.set(nn.slots[an],{scale:sn?1:0})}var PAe,Fy=(rn,nn)=>{let an=PAe.get(rn);if(!an)an=Bn("dots-and-boxes/DotsAndBoxesScene:"+rn,nn),PAe.set(rn,an);return an},CMt,GAe,kAe,BAe=10,gAe=25,FAe=(rn)=>xn(rn===1?Tv:xv),HAe=(rn,nn)=>[rn[0]*nn,rn[1]*nn,rn[2]*nn,1],WAe=(rn,nn)=>Fy(`dab-panel:${rn.toFixed(1)}:${nn}`,()=>wn(Ok(new Pk().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:BAe}),{shine:0.25})),UAe=(rn,nn)=>Fy(`dab-rim:${rn.toFixed(1)}:${nn}`,()=>wn(Ok(new Pk().addRoundedRect(-rn/2,-rn/2,rn,rn,nn).addRoundedRect(-rn/2+1.5,-rn/2+1.5,rn-3,rn-3,nn-1.5),{depth:0,fillRule:"evenodd"}))),wMt=(rn,nn)=>Fy(`dab-slot:${rn.toFixed(1)}:${nn.toFixed(1)}`,()=>wn(Ok(new Pk().addRoundedRect(-rn/2,-nn/2,rn,nn,nn/2),{depth:0}))),LMt=()=>Fy("dab-stud",()=>wn(RMt([[0.001,0],[0.5,0],[0.5,0.22],[0.46,0.38],[0.34,0.52],[0.16,0.6],[0.001,0.62]],{segments:24}),{center:!1,shine:0.85})),IMt=()=>Fy("dab-rod",()=>wn(MMt([[-0.5,0,0],[0.5,0,0]],{radius:0.5,sides:16,smoothness:1}),{shine:0.7})),OMt=()=>Fy("dab-tile",()=>wn(AMt([{geometry:OAe("roundedBox",{color:[0.78,0.78,0.78]}),position:[0,0,0.5]},{geometry:OAe("roundedBox"),position:[0,0,0.62],scale:[0.72,0.72,0.9]}]),{center:!1,shine:0.55})),DAe=(rn)=>[rn.cell*0.76,rn.cell*0.76,rn.cell*0.14],zAe=(rn)=>xn(rn.mode==="classic"?AAe:rn.BOARD.CELL_HIGHLIGHT);var ZAe=e(()=>{u();na();ba();Hn();pw();PAe=new Map,CMt=gk.x(Math.PI/2),GAe=gk.z(0),kAe=gk.z(Math.PI/2)});import{World as gMt}from"@nayan-ui/engine";function QAe(rn){return{world:new gMt(DMt),camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,board:null,phase:"ready",turn:"player",lines:new Uint8Array(Av),boxes:new Uint8Array(Os*Os),sideCounts:new Uint8Array(Os*Os),drawn:0,rods:[],tiles:[],playerScore:0,opponentScore:0,won:!1,onPhase:(sn)=>{},onScores:(sn,ln)=>{},onTurn:(sn)=>{},onEvent:(sn,ln)=>{}}}function e5e(rn,nn){if(o5e(rn),rn.board)YAe(rn.world,rn.board);rn.layout=nn,ya(rn.camera,nn),rn.board=qAe(rn.world,nn,rn.theme,Bk),rn.lines.forEach((an,sn)=>an&&r5e(rn,sn,an,!1)),rn.boxes.forEach((an,sn)=>an&&n5e(rn,sn,an,!1))}function t5e(rn,nn){if(rn.theme=nn,rn.layout&&rn.board)KAe(rn.world,rn.layout,rn.board,nn)}function o5e(rn){for(let nn of[...rn.rods,...rn.tiles])rn.world.despawn(nn);rn.rods=[],rn.tiles=[]}function r5e(rn,nn,an,sn){let{layout:ln,board:cn}=rn;if(!ln||!cn)return;let{kind:un,row:dn,col:pn}=Bk[nn];Dk(rn.world,cn,nn,!1),rn.rods.push(XAe(rn.world,ln,un,dn,pn,an,sn))}function n5e(rn,nn,an,sn){if(!rn.layout)return;rn.tiles.push(jAe(rn.world,rn.layout,Math.floor(nn/Os),nn%Os,an,sn))}function a5e(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.onPhase("playing")}function s5e(rn){if(rn.world.cancelTimers(),o5e(rn),rn.board)for(let nn=0;nn<Av;nn++)Dk(rn.world,rn.board,nn,!0);rn.lines.fill(0),rn.sideCounts.fill(0),rn.boxes.fill(0),rn.drawn=0,rn.turn="player",rn.playerScore=0,rn.opponentScore=0,rn.won=!1,rn.phase="ready",rn.onScores(0,0),rn.onTurn("player"),rn.onPhase("ready")}function i5e(rn){rn.world.dispose()}function l5e(rn,nn){if(rn.world.isDisposed)return;rn.world.update(Math.min(nn,NMt))}function FMt(rn,nn,an){let sn=rn.layout;if(!sn)return null;let[ln,cn]=Wa(sn,nn,an,0),[un,dn]=cm(sn,0,0),pn=(ln-un)/sn.cell,mn=(dn-cn)/sn.cell,fn=null,hn=GMt,bn=(vn,Tn)=>{if(!rn.lines[vn]&&Tn<hn)fn=vn,hn=Tn},yn=Math.round(mn),En=Math.floor(pn);if(yn>=0&&yn<=Os&&En>=0&&En<Os)bn(kMt(yn,En),Math.abs(mn-yn));let Sn=Math.floor(mn),_n=Math.round(pn);if(Sn>=0&&Sn<Os&&_n>=0&&_n<=Os)bn(BMt(Sn,_n),Math.abs(pn-_n));return fn}function c5e(rn,nn,an){if(rn.phase!=="playing"||rn.turn!=="player")return;let sn=FMt(rn,nn,an);if(sn==null)return;let ln=u5e(rn,sn,"player");if(rn.phase!=="playing"||ln>0)return;kk(rn,"opponent"),JAe(rn,MAe,()=>d5e(rn))}function u5e(rn,nn,an){let sn=an==="player"?1:2;rn.lines[nn]=sn,rn.drawn++,r5e(rn,nn,sn,!0);let ln=0;for(let cn of Nk[nn])if(rn.sideCounts[cn]++,!rn.boxes[cn]&&Gk(rn,cn)===4)rn.boxes[cn]=sn,n5e(rn,cn,sn,!0),ln++;if(an==="player")rn.playerScore+=ln*wk;else rn.opponentScore+=ln*wk;if(ln)rn.onScores(rn.playerScore,rn.opponentScore);if(rn.onEvent(ln?"box":"line",an),rn.drawn===Av)WMt(rn);return ln}function d5e(rn){if(rn.phase!=="playing"||rn.turn!=="opponent")return;let nn=HMt(rn);if(nn==null){kk(rn,"player");return}let an=u5e(rn,nn,"opponent");if(rn.phase!=="playing")return;if(an>0)JAe(rn,CAe,()=>d5e(rn));else kk(rn,"player")}function HMt(rn){let nn=[];for(let cn=0;cn<Av;cn++)if(!rn.lines[cn])nn.push(cn);if(!nn.length)return null;let an=nn.find((cn)=>Nk[cn].some((un)=>Gk(rn,un)===3));if(an!==void 0)return an;let sn=nn.filter((cn)=>Nk[cn].every((un)=>Gk(rn,un)!==2)),ln=sn.length?sn:nn;return ln[Math.floor(Math.random()*ln.length)]}function kk(rn,nn){rn.turn=nn,rn.onTurn(nn)}function WMt(rn){rn.world.cancelTimers();let nn=0,an=0;for(let sn of rn.boxes)if(sn===1)nn++;else if(sn===2)an++;if(rn.won=nn>an,rn.phase="over",rn.won&&rn.layout)$Ae(rn.world,rn.layout);rn.onPhase("over")}var Os,Rv,Av,DMt=800,NMt=0.1,GMt=0.4,Bk,kMt=(rn,nn)=>rn*Os+nn,BMt=(rn,nn)=>Rv+rn*(Os+1)+nn,Nk,JAe=(rn,nn,an)=>rn.world.after(nn,an),Gk=(rn,nn)=>rn.sideCounts[nn];var p5e=e(()=>{ba();pw();ZAe();Os=By,Rv=(Os+1)*Os,Av=Rv*2,Bk=Array.from({length:Av},(rn,nn)=>nn<Rv?{kind:"h",row:Math.floor(nn/Os),col:nn%Os}:{kind:"v",row:Math.floor((nn-Rv)/(Os+1)),col:(nn-Rv)%(Os+1)}),Nk=Bk.map(({kind:rn,row:nn,col:an})=>{let sn=[];if(rn==="h"){if(nn>0)sn.push((nn-1)*Os+an);if(nn<Os)sn.push(nn*Os+an)}else{if(an>0)sn.push(nn*Os+an-1);if(an<Os)sn.push(nn*Os+an)}return sn})});var pr={};n(pr,{DotsAndBoxes:()=>Vt});import{jsx as UMt}from"react/jsx-runtime";var um,m5e=(rn,nn,an,sn)=>({label:rn,value:an.toLocaleString(),color:sn?nn:void 0,valueColor:nn}),Vt;var de=e(()=>{Ta();l();a();_a();o();xa();va();pw();p5e();um=t.DOTS_AND_BOXES,Vt=Vn("dots-and-boxes",(rn)=>{let[nn,an]=gn([0,0]),[sn,ln]=gn("player"),{status:cn,screen:un,gameOver:dn}=zn(rn,{gameId:"dots-and-boxes",create:QAe,start:a5e,reset:s5e,dispose:i5e,tick:l5e,setTheme:t5e,resize:(mn,fn,hn,bn)=>{let yn=IAe(fn,hn,bn);return e5e(mn,yn),yn.boardSize},tap:c5e,reportScore:(mn)=>mn.playerScore,sounds:um,onStart:(mn)=>mn(um.START,"medium"),onOver:(mn,fn)=>mn(fn==="draw"?t.DRAW:fn==="win"?um.WIN:um.LOSE,fn==="win"?"success":"heavy"),wire:(mn,fn)=>{mn.onScores=(hn,bn)=>an([hn,bn]),mn.onTurn=ln,mn.onEvent=(hn,bn)=>{let yn=bn==="player";if(hn==="box")fn(yn?um.BOX_CLAIMED:um.OPPONENT_BOX,yn?"medium":"warning");else fn(yn?um.PLAYER_LINE:um.OPPONENT_LINE,"light")}}}),pn=sn==="player";return UMt(Un,{...un,light:LAe,columns:[m5e("YOU",Tv,nn[0],pn),ma("TURN",pn?"Your Turn":"AI Thinking...",pn?Tv:xv),m5e("AI",xv,nn[1],!pn)],subtext:"Complete boxes to win!",gameOver:dn({title:cn==="win"?"YOU WON!":"YOU LOST!",message:`Final score: ${nn[0]} - ${nn[1]}`,scoreLabel:cn==="win"?"You Won!":"You Lost",score:nn[0],buttonText:cn==="win"?"Play Again!":"Try Again!"})})})});function R5e(rn,nn,an){return{width:rn,height:nn,offset:an,birdX:rn*0.2,birdStartY:nn*0.4,topWall:150+an,bottomWallTop:nn-(an>0?150:250)}}function A5e(rn){let nn=rn.bottomWallTop-rn.topWall;if(c){let ln=rn.topWall+nn/2-mw/2,cn=nn*0.15;return ln-cn+Math.random()*cn*2}let an=rn.topWall+VMt,sn=rn.topWall+nn*0.6;return an+Math.random()*(sn-an)}var Lh=120,f5e=500,Fk=0.016666666666666666,h5e=0.002,b5e=0.05,wi,y5e,E5e,Hk,S5e=0.98,Kl,mw,Wk,VMt,_5e=0.5,Uk=2.5,Ih,Vk,v5e=(rn)=>(-30+Math.max(0,Math.min(1,(rn+15)/30))*120)*Math.PI/180,T5e=(rn)=>{let nn=Math.max(-6,Math.min(7,rn));return nn<0?nn/-6*-0.65:nn/7*0.25},x5e,zk=(rn)=>({sun:[0.8,rn],clouds:[0.24,0.55],framingTrees:!0,foreground:!1,hotAirBalloons:2});var fw=e(()=>{a();wi=c?56:40,y5e=c?0.4:0.3,E5e=c?-6.5:-4.5,Hk=c?8:6,Kl=c?80:60,mw=c?260:200,Wk=c?5:4,VMt=c?130:100,Ih=c?56:40,Vk=c?28:20,x5e={eyeHeight:1.6,horizon:0.68,playDepth:4}});import{effects as M5e,extrude as zMt,lathe as Sw,merge as Wy,Path as qMt,quat as Eu,recolor as G5e,shapeGeometry as Ew,tube as k5e}from"@nayan-ui/engine";function F5e(rn,nn){let an=(nn%Hy+Hy)%Hy,sn=Math.sin(rn*127.1+an*311.7)*43758.5453,ln=sn-Math.floor(sn),cn=ps("#9E5428");return ln<0.5?Oh(ps("#6E3412"),cn,ln*2):Oh(cn,ps("#B8693A"),(ln-0.5)*2)}function ZMt(rn,nn,an,sn){let ln=Ih*an,cn=Vk*an,un=rn*an,dn=nn*an,pn=W5e*an,mn=cn*0.35,fn=0.12*cn,hn=[],bn=(En,Sn,_n,vn,Tn,Rn,An)=>hn.push({geometry:Ew("cube"),position:[(En+Sn)/2,(_n+vn)/2,(Tn+Rn)/2],scale:[Sn-En,vn-_n,Rn-Tn],color:An});bn(-un/2,un/2,pn,dn,0,sn,ps("#3a1d0c")),bn(-un/2,un/2,0,pn,-0.01,sn+mn+0.025,ps("#c8b896")),bn(-un/2,un/2,pn*0.78,pn,sn+mn+0.005,sn+mn+0.03,ps("#a9987a"));let yn=Math.ceil((dn-pn)/cn);for(let En=0;En<yn;En++){let Sn=pn+En*cn,_n=Math.min(dn,Sn+cn),vn=En%2?ln/2:0;for(let Tn=0,Rn=-un/2-vn;Rn<un/2;Tn++,Rn+=ln){let An=Math.max(Rn,-un/2),Mn=Math.min(Rn+ln,un/2);if(Mn-An<=fn||_n-Sn<=fn)continue;bn(An+fn/2,Mn-fn/2,Sn+fn/2,_n-fn/2,sn-0.01,sn+mn,F5e(En,Tn))}}return Wy(hn)}function N5e(rn,nn,an,sn){let ln=[],cn=[],un=rn.reduce((fn,hn)=>fn+hn[0],0)/rn.length,dn=rn.reduce((fn,hn)=>fn+hn[1],0)/rn.length,pn=[(nn+an)/2,dn,un],mn=(fn)=>{let[hn,bn,yn]=fn,En=[bn[0]-hn[0],bn[1]-hn[1],bn[2]-hn[2]],Sn=[yn[0]-hn[0],yn[1]-hn[1],yn[2]-hn[2]],_n=[En[1]*Sn[2]-En[2]*Sn[1],En[2]*Sn[0]-En[0]*Sn[2],En[0]*Sn[1]-En[1]*Sn[0]],vn=fn.reduce((An,Mn)=>[An[0]+Mn[0]/fn.length,An[1]+Mn[1]/fn.length,An[2]+Mn[2]/fn.length],[0,0,0]);if(_n[0]*(vn[0]-pn[0])+_n[1]*(vn[1]-pn[1])+_n[2]*(vn[2]-pn[2])<0)fn=[...fn].reverse(),_n=[-_n[0],-_n[1],-_n[2]];let Tn=Math.hypot(_n[0],_n[1],_n[2])||1,Rn=ln.length/11;for(let An of fn)ln.push(An[0],An[1],An[2],_n[0]/Tn,_n[1]/Tn,_n[2]/Tn,sn[0],sn[1],sn[2],0,0);for(let An=1;An+1<fn.length;An++)cn.push(Rn,Rn+An,Rn+An+1)};return mn(rn.map(([fn,hn])=>[nn,hn,fn])),mn(rn.map(([fn,hn])=>[an,hn,fn])),rn.forEach(([fn,hn],bn)=>{let[yn,En]=rn[(bn+1)%rn.length];mn([[nn,hn,fn],[an,hn,fn],[an,En,yn],[nn,En,yn]])}),{vertices:new Float32Array(ln),indices:new Uint32Array(cn)}}function eCt(rn,nn,an,sn){let ln=Ih*an,cn=Vk*an,un=rn*an,dn=nn*an,pn=W5e*an,mn=cn*0.35,fn=mn+0.025,hn=0.25,bn=0.12*cn,yn=sn*1.05,En=-un/2,Sn=un/2,_n=[{geometry:N5e([[-fn,yn*fn],[-fn,dn],[-0.25,dn],[-0.25,yn*0.25]],En,Sn,ps("#3a1d0c"))},{geometry:N5e([[0,0],[0,pn],[-fn,pn],[-fn,yn*fn]],En,Sn,ps("#c8b896"))},{geometry:Ew("cube"),position:[0,pn*0.11,0.004],scale:[un,pn*0.22,0.008],color:ps("#a9987a")}],vn=Math.ceil((dn-pn)/cn);for(let Tn=0;Tn<vn;Tn++){let Rn=pn+Tn*cn,An=Math.min(dn,Rn+cn),Mn=Tn%2?ln/2:0;for(let Cn=0,Ln=En-Mn;Ln<Sn;Cn++,Ln+=ln){let On=Math.max(Ln,En),Dn=Math.min(Ln+ln,Sn);if(Dn-On<=bn||An-Rn<=bn)continue;_n.push({geometry:Ew("cube"),position:[(On+Dn)/2,(Rn+An)/2,-fn+mn/2],scale:[Dn-On-bn,An-Rn-bn,mn+0.01],color:F5e(Tn+7,Cn)})}}return Wy(_n)}function V5e(rn,nn,an){let{back:sn,front:ln,thickness:cn}=U5e(nn),un=Ha(nn,sn),dn=Ha(nn,ln),pn=(an.height/2-an.topWall)/(an.height/2)*nn.tanHalf,mn=an.width+Hy*Ih+Ih*4,fn=Ph(`fb-top-wall:${Math.round(an.width)}x${Math.round(an.topWall)}:${dn.toFixed(6)}:${pn.toFixed(5)}`,()=>wn(eCt(mn,an.topWall+g5e,dn,pn),{center:!1,shine:0.05})),hn=an.height-an.bottomWallTop,bn=Ph(`fb-wall:${Math.round(an.width)}x${Math.round(hn)}:${un.toFixed(6)}:${cn.toFixed(4)}`,()=>wn(ZMt(mn,hn+g5e,un,cn),{center:!1,shine:0.05})),yn={top:rn.spawn({mesh:fn,color:[1,1,1,1],pickable:!1}),bottom:rn.spawn({mesh:bn,color:[1,1,1,1],pickable:!1})};return _w(rn,nn,an,yn,0),yn}function _w(rn,nn,an,sn,ln){let{back:cn,front:un}=U5e(nn),dn=ln*Ha(nn),pn=(mn,fn,hn,bn)=>{let yn=Hy*Ih*Ha(nn,hn),En=Fa(nn,an.width/2+Hy*Ih/2,fn,hn);rn.set(mn,{position:[En[0]-dn%yn,En[1],En[2]],rotation:Mi(nn,bn)})};pn(sn.top,an.topWall,un,0),pn(sn.bottom,an.bottomWallTop,cn,Math.PI)}function z5e(rn,nn,an,sn,ln,cn){let un=Ha(nn),dn=Kl/60,pn=JMt*dn,mn=Kl+H5e*2*dn,fn=sn+Kl/2,hn=rn.spawn({mesh:"none",position:Fa(nn,fn,0),rotation:Mi(nn),pickable:!1}),bn=(vn,Tn,Rn,An,Mn=!1)=>rn.spawn({mesh:vn,parent:hn,position:QMt(un,0,Tn),scale:[An*un,Rn*un,An*un],...Mn?{rotation:Eu.z(Math.PI)}:{},color:[1,1,1,1],pickable:!1}),yn=Math.max(an.topWall,Math.min(ln,an.bottomWallTop)),En=Math.max(an.topWall,Math.min(cn,an.bottomWallTop)),Sn=an.topWall-D5e,_n=an.bottomWallTop+D5e;if(yn-an.topWall>0.5)bn(O5e(),(Sn+yn)/2,yn-Sn,Kl),bn(P5e(),yn-pn/2,pn,mn,!0);if(an.bottomWallTop-En>0.5)bn(O5e(),(En+_n)/2,_n-En,Kl),bn(P5e(),En+pn/2,pn,mn);return hn}function q5e(rn,nn,an,sn,ln){let cn=Fa(nn,sn+Kl/2,0);if(ln)ln.position(an,cn[0],cn[1],cn[2]);else rn.set(an,{position:cn})}function K5e(rn,nn,an,sn){let ln=wi*Ha(nn),cn=rn.spawn({mesh:"none",position:Fa(nn,an,sn),rotation:Mi(nn),pickable:!1}),un=rn.spawn({mesh:I5e(!0),parent:cn,position:[-ln*0.04,ln*0.04,-ln*0.3],scale:ln,color:[1,1,1,1],pickable:!1}),dn=rn.spawn({mesh:jMt(),parent:cn,scale:ln,color:[1,1,1,1],pickable:!1}),pn=rn.spawn({mesh:$Mt(),parent:cn,position:[yd[0]*ln,yd[1]*ln,yd[2]*ln],scale:0,color:[1,1,1,1],pickable:!1}),mn=rn.spawn({mesh:I5e(!1),parent:cn,position:[-ln*0.02,-ln*0.04,ln*0.38],scale:ln,color:[1,1,1,1],pickable:!1});return{root:cn,body:dn,wing:mn,farWing:un,lid:pn,size:ln}}function X5e(rn,nn,an,sn,ln,cn,un,dn=un){rn.set(an.root,{position:Fa(nn,sn,ln),rotation:Mi(nn,-cn)}),rn.set(an.wing,{rotation:Eu.multiply(tCt,Eu.z(-un,yw),yw)}),rn.set(an.farWing,{rotation:Eu.multiply(oCt,Eu.z(-dn,yw),yw)})}function j5e(rn,nn){let an=nn.size;rn.stopAnimation(nn.body),rn.animate(nn.body,[{scale:[an*0.86,an*1.16,an],at:0.3},{scale:[an*1.05,an*0.96,an],at:0.65},{scale:an}],{duration:0.26,easing:"easeOut"})}function $5e(rn,nn){let an=nn.size*Y5e;rn.animate(nn.lid,[{scale:[an,an,an],at:0.4},{scale:[an,an,an],at:0.6},{scale:0}],{duration:0.16,easing:"linear"})}function Z5e(rn,nn){let an=nn.size*Y5e;rn.stopAnimation(nn.lid),rn.set(nn.lid,{scale:[an,an*0.55,an],position:[yd[0]*nn.size,(yd[1]+0.06)*nn.size,yd[2]*nn.size]}),rn.animate(nn.root,{shake:nn.size*0.12},{duration:0.35})}function Q5e(rn,nn){rn.stopAnimation(nn.lid),rn.set(nn.lid,{scale:0,position:[yd[0]*nn.size,yd[1]*nn.size,yd[2]*nn.size]})}function vw(rn,nn,an,sn){let ln=wi*Ha(sn)*0.12;rn.set(nn.root,{bob:an?{amplitude:[0,ln,0],speed:3.2}:null})}function J5e(rn,nn,an,sn){let ln=Ha(nn),cn=wi*ln,un=Fa(nn,an,sn,nn.playDepth-cn*0.6);M5e.shatter(rn,{position:un,count:16,mesh:"sphere",size:cn*0.12,speed:cn*7,lifetime:0.7,gravity:-cn*18,colors:rCt,dust:!1}),M5e.dust(rn,{position:un,count:5,size:cn*0.9,speed:cn*2,lifetime:0.5,color:[1,1,1,0.75]})}var C5e,Ph=(rn,nn)=>{let an=C5e.get(rn);if(!an)an=Bn("flappy-bird/FlappyBirdScene:"+rn,nn),C5e.set(rn,an);return an},ps=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},Oh=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an],Mv=()=>Ew("sphere"),w5e=(rn,nn,an,sn,ln)=>({geometry:Sw([[nn,0],[nn*0.6,rn*0.5],[0.001,rn]],{segments:12,color:an}),position:sn,rotation:Eu.multiply(Eu.z(ln),Eu.z(-Math.PI/2))}),qk=(rn)=>Math.max(0,Math.min(1,rn)),hw=(rn)=>{let nn=qk(rn);return nn*nn*(3-2*nn)},B5e,YMt,KMt,XMt,L5e,bw=(rn,nn,an)=>k5e(rn,{radius:(sn)=>nn*Math.max(0.08,1-sn*0.85),shape:(sn)=>0.35+0.65*Math.abs(Math.cos(sn*Math.PI*2)),sides:8,smoothness:5,color:[...an,1]}),jMt=()=>Ph("fb-bird",()=>{let rn=Array.from({length:17},(sn,ln)=>{let cn=ln/16;return[Math.max(0.001,0.47*Math.sin(Math.PI*cn)**0.75*(1-0.16*cn)),0.5-cn]}),nn=Wy([{geometry:Sw(rn,{segments:28}),rotation:Eu.z(-Math.PI/2),scale:[1,0.92,0.86]}]),an=G5e(nn,({position:[sn,ln,cn]})=>{let un=Oh(YMt,B5e,qk(0.5+ln*1.3+sn*0.25));return un=Oh(un,KMt,hw((0.06-ln)*4)*hw(cn*3+0.3)*hw((sn+0.32)*3)*0.95),un=Oh(un,XMt,hw(1-Math.hypot(sn-0.2,ln+0.06,cn-0.33)/0.11)*0.8),[...un,1]});return wn(Wy([{geometry:an},{geometry:Mv(),position:[0.22,0.15,0.26],scale:0.32,color:[1,1,1]},{geometry:Mv(),position:[0.3,0.16,0.38],scale:0.15,color:ps("#151515")},{geometry:Mv(),position:[0.33,0.2,0.445],scale:0.05,color:[1,1,1]},w5e(0.3,0.1,ps("#FF7B3A"),[0.4,0,0.06],0.12),w5e(0.24,0.08,ps("#D9531A"),[0.39,-0.07,0.06],-0.2),{geometry:bw([[0.02,0.36,0],[0,0.52,0],[-0.1,0.6,0]],0.07,ps("#FF9500"))},{geometry:bw([[0.1,0.36,0.02],[0.12,0.5,0.02],[0.06,0.6,0.02]],0.06,ps("#FFB300"))},{geometry:bw([[-0.06,0.34,-0.02],[-0.14,0.46,-0.02],[-0.24,0.5,-0.02]],0.055,L5e)},...[0.2,0.02,-0.16].map((sn,ln)=>({geometry:k5e([[-0.34,0.02,0],[-0.52,0.04+sn*0.6,0],[-0.68,0.06+sn,0]],{radius:(cn)=>0.13*(0.55+0.45*Math.sin(Math.PI*(0.25+cn*0.6))),shape:(cn)=>0.45+0.55*Math.abs(Math.cos(cn*Math.PI*2)),sides:10,smoothness:5,color:[...Oh(L5e,ps("#C2600A"),ln*0.35),1]})})),...[0.12,-0.12].map((sn)=>({geometry:bw([[0.02,-0.36,sn],[-0.08,-0.46,sn],[-0.2,-0.48,sn]],0.035,ps("#FF7B3A"))}))]),{center:!1,shine:0.35})}),I5e=(rn)=>Ph(`fb-wing:${rn}`,()=>{let nn=[[0.06,0.06],[-0.12,0.14],[-0.34,0.12],[-0.56,0.02],[-0.5,-0.04],[-0.55,-0.09],[-0.44,-0.11],[-0.47,-0.17],[-0.34,-0.17],[-0.12,-0.12],[0.06,-0.05]],an=new qMt().moveTo(nn[0][0],-nn[0][1]);for(let[cn,un]of nn.slice(1))an.lineTo(cn,-un);an.close();let[sn,ln]=rn?[ps("#B86A08"),ps("#D9901F")]:[ps("#F59E0B"),ps("#FFD35C")];return wn(G5e(zMt(an,{depth:0.07}),({position:[cn]})=>[...Oh(sn,ln,qk(-cn/0.55)),1]),{center:!1,shine:0.25})}),$Mt=()=>Ph("fb-lid",()=>wn(Wy([{geometry:Mv(),color:B5e}]),{shine:0.35})),O5e=()=>Ph("fb-pipe",()=>wn(Sw([[0.5,-0.5],[0.5,0.5]],{segments:24,color:ps("#4CA840")}),{center:!1,shine:0.55})),P5e=()=>Ph("fb-cap",()=>wn(Wy([{geometry:Sw([[0.001,0.5],[0.5,0.5],[0.52,0.42],[0.52,-0.42],[0.5,-0.5]],{segments:24,color:ps("#3A8A2A")})},{geometry:Mv(),position:[0,0.5,0],scale:[0.78,0.02,0.78],color:ps("#123d10")}]),{center:!1,shine:0.6})),Hy=12,QMt=(rn,nn,an,sn=0)=>[nn*rn,-an*rn,sn],JMt=26,H5e=5,W5e=12,g5e=160,D5e=220,U5e=(rn)=>{let nn=(Kl+H5e*2*(Kl/60))/2*Ha(rn);return{back:rn.playDepth+nn+0.04,thickness:nn*2+0.08,front:rn.playDepth-nn-0.04}},yd,Y5e=0.34,tCt,oCt,yw,rCt;var eMe=e(()=>{d();na();Hn();fw();C5e=new Map,B5e=ps("#FFE14D"),YMt=ps("#FFAA1F"),KMt=ps("#FFF4CC"),XMt=ps("#FF8C9A"),L5e=ps("#F08A12");yd=[0.22,0.15,0.27];tCt=Eu.x(-0.25),oCt=Eu.x(0.25),yw=[0,0,0,1];rCt=["#FFD700","#FF8C00","#FFE850","#FFFFFF","#A0522D"].map((rn)=>xn(rn))});import{World as nCt}from"@nayan-ui/engine";function oMe(rn){let nn=new nCt(aCt),sn={world:nn,camera:{eye:[0,1.6,0],target:[0,1.6,-1],fov:0.9},theme:rn,layout:null,view:null,scenery:[],walls:null,scroll:0,bird:null,phase:"ready",get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,time:0,pending:0,birdY:0,velocity:0,tiltShown:0,wingPhase:0,wingLift:0,farLift:0,flapT:1,blinkIn:2,pipes:[],onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onFlap:()=>{},onPass:()=>{},onCrash:()=>{},onWin:()=>{}};return nn.scoreboard.reset(0,Lh),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&pMe(sn,!0)},sn}function rMe(rn,nn){let an=rn.world;for(let un of rn.scenery)an.despawn(un);if(rn.walls)an.despawn(rn.walls.top),an.despawn(rn.walls.bottom);if(sMe(rn),rn.bird)an.despawn(rn.bird.root);let sn=!rn.layout;rn.layout=nn;let ln=Fl(nn.width,nn.height,x5e);rn.view=ln;let cn=fl(ln);if(rn.camera.eye=cn.eye,rn.camera.target=cn.target,rn.camera.fov=cn.fov,rn.scenery=$i(an,ln,rn.theme,zk(nMe(nn))),rn.walls=V5e(an,ln,nn),_w(an,ln,nn,rn.walls,rn.scroll),sn||rn.phase!=="playing")rn.birdY=nn.birdStartY;rn.bird=K5e(an,ln,nn.birdX+wi/2,rn.birdY+wi/2),vw(an,rn.bird,rn.phase==="ready",ln),Cv(rn)}function aMe(rn,nn){if(nn===rn.theme&&rn.scenery.length)return;rn.theme=nn;let{view:an,layout:sn}=rn;if(!an||!sn||rn.world.isDisposed)return;for(let ln of rn.scenery)rn.world.despawn(ln);rn.scenery=$i(rn.world,an,nn,zk(nMe(sn)))}function sMe(rn){for(let nn of rn.pipes)rn.world.despawn(nn.root);rn.pipes=[]}function Cv(rn){let{layout:nn,view:an}=rn;if(!nn||!an||!rn.bird)return;X5e(rn.world,an,rn.bird,nn.birdX+wi/2,rn.birdY+wi/2,rn.tiltShown,rn.wingLift,rn.farLift)}function iCt(rn,nn){let an=rn.bird;if(!an)return;let sn=(ln)=>1-Math.exp(-nn*ln);if(rn.phase==="over")rn.wingLift+=(-0.55-rn.wingLift)*sn(8),rn.farLift+=(-0.55-rn.farLift)*sn(8);else{let ln=rn.phase==="ready";rn.flapT+=nn;let cn=!ln&&rn.flapT<tMe,un=rn.velocity<0,[dn,pn,mn]=cn?[13,0.95-rn.flapT/tMe*0.35,-0.1]:ln?[6.5,0.75,0.1]:un?[7,0.45,-0.15]:[2.5,0.12,0.15+T5e(rn.velocity)*1.6];if(rn.wingPhase+=nn*dn*Math.PI*2,rn.wingLift=mn+Math.sin(rn.wingPhase)*pn,rn.farLift=mn+Math.sin(rn.wingPhase-0.6)*pn,rn.tiltShown+=((ln?0:v5e(rn.velocity))-rn.tiltShown)*sn(sCt),rn.blinkIn-=nn,rn.blinkIn<=0)$5e(rn.world,an),rn.blinkIn=2+Math.random()*3}Cv(rn)}function iMe(rn){let nn=rn.layout;if(rn.phase!=="ready"||!nn)return;if(rn.birdY=nn.birdStartY,rn.velocity=0,rn.pending=0,rn.phase="playing",rn.world.scoreboard.startCountdown(Lh),rn.bird&&rn.view)vw(rn.world,rn.bird,!1,rn.view);Cv(rn),rn.onPhase("playing"),Yk(rn,_5e,()=>cMe(rn)),Yk(rn,Uk,()=>lMe(rn))}function lMe(rn){if(rn.phase!=="playing")return;cMe(rn),Yk(rn,Uk,()=>lMe(rn))}function cMe(rn){let{layout:nn,view:an}=rn;if(!nn||!an||rn.phase!=="playing")return;let sn=A5e(nn),ln=nn.width;rn.pipes.push({x:ln,gapTop:sn,gapBottom:sn+mw,passed:!1,root:z5e(rn.world,an,nn,ln,sn,sn+mw)})}function uMe(rn){rn.world.cancelTimers(),sMe(rn);let nn=rn.layout;if(nn)rn.birdY=nn.birdStartY;if(rn.velocity=0,rn.pending=0,rn.world.scoreboard.reset(0,Lh),rn.won=!1,rn.phase="ready",rn.tiltShown=0,rn.bird)Q5e(rn.world,rn.bird);if(rn.bird&&rn.view)vw(rn.world,rn.bird,!0,rn.view);Cv(rn),rn.onScore(0),rn.onTime(Lh),rn.onPhase("ready")}function dMe(rn){rn.world.cancelTimers(),rn.world.dispose()}function pMe(rn,nn){if(rn.world.scoreboard.stop(),rn.world.cancelTimers(),rn.won=nn,rn.phase="over",!nn&&rn.bird)Z5e(rn.world,rn.bird);if(nn)rn.onWin();else rn.onCrash();rn.onPhase("over")}function mMe(rn,nn){if(rn.world.isDisposed)return;if(rn.time+=nn,rn.phase==="playing"){rn.pending=Math.min(rn.pending+nn,b5e);let an=!1;while(rn.pending>=Fk-h5e&&rn.phase==="playing")rn.pending-=Fk,lCt(rn),an=!0;if(an)hMe(rn)}iCt(rn,nn),rn.world.update(nn)}function fMe(rn){if(rn.phase!=="playing")return;if(rn.velocity=E5e,rn.flapT=0,rn.bird)j5e(rn.world,rn.bird);rn.onFlap()}function lCt(rn){let nn=rn.layout,an=(rn.velocity+y5e)*S5e;if(an>Hk)an=Hk;let sn=rn.birdY+an,ln=!1,cn=!1;if(sn<nn.topWall)sn=nn.topWall,an=0,ln=!0;if(sn+wi>nn.bottomWallTop)sn=nn.bottomWallTop-wi,cn=!0;rn.birdY=sn,rn.velocity=an,rn.scroll+=Wk;let un=0;if(rn.pipes=rn.pipes.filter((mn)=>{if(mn.x-=Wk,!mn.passed&&mn.x+Kl<nn.birdX)mn.passed=!0,un++;if(mn.x+Kl<0)return rn.world.despawn(mn.root),!1;return!0}),un)rn.onScore(rn.world.scoreboard.add(un*f5e)),rn.onPass();let dn=nn.birdX+wi/2,pn=null;if(ln)pn=nn.topWall+wi/2;else if(cn)pn=nn.bottomWallTop-wi/2;else if(rn.pipes.some((mn)=>nn.birdX+wi>mn.x&&nn.birdX<mn.x+Kl&&(sn<mn.gapTop||sn+wi>mn.gapBottom)))pn=sn+wi/2;if(pn!==null){if(hMe(rn),rn.view)J5e(rn.world,rn.view,dn,pn);pMe(rn,!1)}}function hMe(rn){let{view:nn,layout:an}=rn;if(!nn||!an)return;let sn=rn.world.transforms;for(let ln of rn.pipes)q5e(rn.world,nn,ln.root,ln.x,sn);if(sn.flush(),rn.walls)_w(rn.world,nn,an,rn.walls,rn.scroll);Cv(rn)}var aCt=900,Yk=(rn,nn,an)=>rn.world.after(nn,an),nMe=(rn)=>0.25+rn.offset*0.9/rn.height,tMe=0.32,sCt=12;var bMe=e(()=>{d();fw();eMe()});var mr={};n(mr,{FlappyBird:()=>zt});import{useMemo as yMe}from"react";import{jsx as cCt}from"react/jsx-runtime";var Uy,zt;var pe=e(()=>{Ta();l();a();_a();o();d();xa();va();fw();bMe();Uy=t.FLAPPY_BIRD,zt=Vn("flappy-bird",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(Lh),{theme:cn,status:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"flappy-bird",create:oMe,start:iMe,reset:uMe,dispose:dMe,tick:mMe,setTheme:aMe,resize:(hn,bn,yn,En)=>rMe(hn,R5e(bn,yn,En)),drag:(hn,{phase:bn})=>{if(bn==="start")fMe(hn)},sounds:Uy,onStart:(hn)=>hn(Uy.START,"medium"),wire:(hn,bn)=>{hn.onScore=an,hn.onTime=ln,hn.onFlap=()=>bn(Uy.FLAP,"light"),hn.onPass=()=>bn(Uy.PASS,"light"),hn.onCrash=()=>bn(Uy.GAME_OVER,"heavy"),hn.onWin=()=>bn(Uy.WIN,"success")}}),mn=yMe(()=>ji(cn),[cn]),fn=yMe(()=>hl(cn),[cn]);return cCt(Un,{...dn,light:mn,background:fn,columns:[Qn(nn),ta(sn,cn,10)],subtext:"Tap to flap!",gameOver:pn({title:un==="win"?"YOU WON!":"GAME OVER",message:un==="win"?"You survived the flight!":"You hit a pipe!",scoreLabel:"Final Score",score:nn,buttonText:"Fly Again!"})})})});function LMe(rn,nn,an){let sn=la(an)+dCt,ln=nn-sn-pCt,cn=Math.min(1,rn/uCt);if(ln>=Kk*cn)return{width:rn,height:nn,k:cn,centerX:rn/2,centerY:an+(nn-an)/2,tilt:EMe};let un=Math.max(0.4,ln/Kk);return{width:rn,height:nn,k:un,centerX:rn/2,centerY:sn+ln/2,tilt:EMe}}var Xk,vl,el,jk,dm=900,SMe=120,_Me=100,vMe=4,uCt,Kk,ks,_i,TMe,Vy=0.3,Tw=0.99,xMe,xw=0.96,$k=24,wv,RMe=60,Zk,AMe=1000,MMe=300,Rw=16.666666666666668,Qk=2,CMe=50,EMe=0,wMe,zy,Aw=4,Vs,Jk,dCt=82,pCt=110,Ed=(rn,nn,an=0)=>[rn-ks/2,_i/2-nn,an];var Lv=e(()=>{a();o();Hn();({width:Xk}=C()),vl=Xk/360,el=[{id:0,name:"strawberry",size:Math.round(40*vl),color:"#FFCDD2",score:10},{id:1,name:"kiwi",size:Math.round(52*vl),color:"#DCEDC8",score:20},{id:2,name:"lemon",size:Math.round(64*vl),color:"#FFF9C4",score:40},{id:3,name:"peach",size:Math.round(76*vl),color:"#FFE4E1",score:80},{id:4,name:"orange",size:Math.round(88*vl),color:"#FFE0B2",score:160},{id:5,name:"apple",size:Math.round(100*vl),color:"#FFCDD2",score:320},{id:6,name:"pomegranate",size:Math.round(112*vl),color:"#F8BBD0",score:640},{id:7,name:"papaya",size:Math.round(124*vl),color:"#FFE0B2",score:1280},{id:8,name:"watermelon",size:Math.round(136*vl),color:"#C8E6C9",score:2560},{id:9,name:"pumpkin",size:Math.round(148*vl),color:"#FFCC80",score:5120}],jk=el.length-1,uCt=Xk,Kk=Math.round(480*vl),ks=Xk-8,_i=Kk-4,TMe=0.5*vl,xMe=Math.round(10*vl),wv=_i*0.05,Zk=_i*0.28,wMe=Zn([-0.4,0.55,1],0.5),zy=el[9].size+12,Vs=Math.round(44*vl),Jk={DANGER_SAFE:"rgba(255, 255, 255, 0.28)",DANGER_HOT:"rgba(255, 77, 77, 0.95)"}});function IMe(rn,nn,an,sn){let ln=rn.cr,cn=0.5;if(nn<0&&rn.x-ln<=0.5)nn=0;if(nn>0&&rn.x+ln>=ks-0.5)nn=0;if(an>0&&rn.y+ln>=_i-0.5)an=0;if(ln<Vs&&rn.y>=_i-Vs){let un=rn.x<Vs?Vs:rn.x>ks-Vs?ks-Vs:-1;if(un>=0){let dn=rn.x-un,pn=rn.y-(_i-Vs),mn=Math.hypot(dn,pn)||1,fn=(nn*dn+an*pn)/mn;if(mn>=Vs-ln-0.5&&fn>0)nn-=dn/mn*fn,an-=pn/mn*fn}}return sn[0]=nn,sn[1]=an,sn}function OMe(rn){let nn=rn.cr;if(rn.x=Math.max(nn,Math.min(ks-nn,rn.x)),rn.y+nn>_i)rn.y=_i-nn;if(nn>=Vs||rn.y<_i-Vs)return;let an=rn.x<Vs?Vs:rn.x>ks-Vs?ks-Vs:-1;if(an<0)return;let sn=_i-Vs,ln=rn.x-an,cn=rn.y-sn,un=Math.hypot(ln,cn),dn=Vs-nn;if(un<=dn||un===0)return;let pn=ln/un,mn=cn/un;rn.x=an+pn*dn,rn.y=sn+mn*dn;let fn=rn.vx*pn+rn.vy*mn;if(fn>0)rn.vx-=pn*fn*(1+Vy),rn.vy-=mn*fn*(1+Vy)}function tB(rn,nn,an,sn,ln,cn){let un=Mw(nn);return{id:rn,typeId:nn,r:un,cr:un*xw,x:an,y:sn,vx:0,vy:ln,angle:0,px:an,born:cn}}function mCt(rn){let nn=rn.length,an=0,sn=1/0;for(let cn=0;cn<nn;cn++){let un=rn[cn];an=Math.max(an,Math.abs(un.vx),Math.abs(un.vy)),sn=Math.min(sn,un.cr)}let ln=Math.max(1,Math.min(6,Math.ceil(an/(sn*0.4))));for(let cn=0;cn<ln;cn++){for(let un=0;un<nn;un++){let dn=rn[un];dn.x+=dn.vx/ln,dn.y+=dn.vy/ln}PMe(rn,Math.ceil($k/ln)+2)}}function PMe(rn,nn){let an=rn.length;for(let sn=0;sn<nn;sn++){for(let ln=0;ln<an;ln++){let cn=rn[ln];for(let un=ln+1;un<an;un++){let dn=rn[un],pn=dn.x-cn.x,mn=dn.y-cn.y,fn=pn*pn+mn*mn,hn=cn.cr+dn.cr;if(fn>=hn*hn||fn===0)continue;let bn=Math.sqrt(fn),yn=pn/bn,En=mn/bn,Sn=cn.cr*cn.cr,_n=dn.cr*dn.cr,vn=_n/(Sn+_n),Tn=Sn/(Sn+_n),Rn=hn-bn,[An,Mn]=IMe(cn,-yn*Rn*vn,-En*Rn*vn,fCt),[Cn,Ln]=IMe(dn,yn*Rn*Tn,En*Rn*Tn,hCt),On=-yn*Rn*vn-An,Dn=-En*Rn*vn-Mn,Nn=yn*Rn*Tn-Cn,Wn=En*Rn*Tn-Ln;cn.x+=An-Nn,cn.y+=Mn-Wn,dn.x+=Cn-On,dn.y+=Ln-Dn}}for(let ln=0;ln<an;ln++)OMe(rn[ln])}}function gMe(rn,nn,an,sn){let ln=rn.length;for(let fn=0;fn<ln;fn++){let hn=rn[fn];hn.px=hn.x,hn.vy+=TMe,hn.vx*=Tw,hn.vy*=Tw;let bn=Math.hypot(hn.vx,hn.vy);if(bn>eB)hn.vx*=eB/bn,hn.vy*=eB/bn;if(hn.x-hn.cr<0)hn.x=hn.cr,hn.vx*=-Vy;if(hn.x+hn.cr>ks)hn.x=ks-hn.cr,hn.vx*=-Vy;if(hn.y+hn.cr>=_i){if(hn.y=_i-hn.cr,hn.vy*=-Vy,hn.vx*=Tw,Math.abs(hn.vy)<0.5)hn.vy=0}if(hn.y-hn.r<0)hn.y=hn.r,hn.vy=Math.abs(hn.vy)*0.5;OMe(hn)}let cn=rn.map((fn)=>fn.x),un=rn.map((fn)=>fn.y);mCt(rn);for(let fn=0;fn<ln;fn++){let hn=rn[fn];hn.vx=hn.x-cn[fn],hn.vy=hn.y-un[fn]}let dn=1/0;for(let fn=0;fn<ln;fn++){let hn=rn[fn];if(hn.angle+=(hn.x-hn.px)/hn.r,Math.abs(hn.vy)<1.5&&nn-hn.born>AMe&&hn.y-hn.r<dn)dn=hn.y-hn.r}let pn=dn===1/0?0:Math.max(0,Math.min(1,(Zk-dn)/(Zk-wv)));if(Math.abs(pn-an.danger)>0.02||pn===0!==(an.danger===0))an.danger=pn;for(let fn=0;fn<ln;fn++){let hn=rn[fn];if(hn.y<0)continue;for(let bn=fn+1;bn<ln;bn++){let yn=rn[bn];if(yn.y<0||hn.typeId!==yn.typeId)continue;let En=yn.x-hn.x,Sn=yn.y-hn.y;if(Math.sqrt(En*En+Sn*Sn)>hn.cr+yn.cr+xMe)continue;let _n=Math.sqrt(hn.vx*hn.vx+hn.vy*hn.vy),vn=Math.sqrt(yn.vx*yn.vx+yn.vy*yn.vy);if(_n>=5&&vn>=5)continue;let Tn=hn.typeId+1;if(Tn>jk)return null;an.merges+=1;let Rn=tB(`fruit-m${an.generation}-${an.merges}`,Tn,(hn.x+yn.x)/2,(hn.y+yn.y)/2,-2,nn);return rn.splice(bn,1),rn.splice(fn,1),rn.push(Rn),PMe(rn,$k),{a:hn,b:yn,made:Rn}}}for(let fn=0;fn<ln;fn++)if(rn[fn].typeId===jk)return sn.outcome="win",null;let mn=!1;for(let fn=0;fn<ln;fn++){let hn=rn[fn];if(hn.y-hn.r<wv&&Math.abs(hn.vy)<1.5){mn=!0;break}}if(mn){if(an.overflowSteps+=1,an.overflowSteps>=RMe)sn.outcome="lose"}else an.overflowSteps=0;return null}var Mw=(rn)=>(el[rn]?.size??40)/2,eB=18,fCt,hCt;var DMe=e(()=>{Lv();fCt=[0,0],hCt=[0,0]});var qt={};n(qt,{getFruit:()=>Lc,getFruits:()=>gh,isFruitBuilt:()=>_d,warmAssets:()=>HCt});import{extrude as sB,lathe as $a,merge as ga,Path as Yy,recolor as bCt,tube as Xl}from"@nayan-ui/engine";function tl(rn){let nn=[1/0,1/0,1/0],an=[-1/0,-1/0,-1/0];for(let sn=0;sn<rn.vertices.length;sn+=11)for(let ln=0;ln<3;ln++)nn[ln]=Math.min(nn[ln],rn.vertices[sn+ln]),an[ln]=Math.max(an[ln],rn.vertices[sn+ln]);return[(nn[0]+an[0])/2,(nn[1]+an[1])/2,(nn[2]+an[2])/2]}function ja(rn,nn,an,sn){let ln=rn*an,cn=nn*sn,un=Math.floor(ln),dn=Math.floor(cn),pn=nB(ln-un),mn=nB(cn-dn),fn=(yn,En)=>vi((yn%an+an)%an,En),hn=fn(un,dn)+(fn(un+1,dn)-fn(un,dn))*pn,bn=fn(un,dn+1)+(fn(un+1,dn+1)-fn(un,dn+1))*pn;return hn+(bn-hn)*mn}function fm(rn,nn){let[an,sn,ln,cn]=rn,[un,dn,pn,mn]=nn;return[cn*un+an*mn+sn*pn-ln*dn,cn*dn-an*pn+sn*mn+ln*un,cn*pn+an*dn-sn*un+ln*mn,cn*mn-an*un-sn*dn-ln*pn]}function ECt(rn){let nn=[rn[2],0,-rn[0]],an=Math.hypot(nn[0],nn[2]);if(an<0.000001)return rn[1]>0?[0,0,0,1]:[1,0,0,0];return Ja([nn[0]/an,0,nn[2]/an],Math.acos(Math.max(-1,Math.min(1,rn[1]))))}function Cw(rn,nn){let an=rn.vertices,sn=0.0001,ln=(un,dn)=>[(un[0]-dn[0])/0.0001,(un[1]-dn[1])/0.0001,(un[2]-dn[2])/0.0001],cn=(un,dn)=>[un[1]*dn[2]-un[2]*dn[1],un[2]*dn[0]-un[0]*dn[2],un[0]*dn[1]-un[1]*dn[0]];for(let un=0;un<an.length;un+=11){let[dn,pn,mn]=[an[un],an[un+1],an[un+2]],fn=nn([dn,pn,mn]),[hn,bn,yn]=[ln(nn([dn+0.0001,pn,mn]),fn),ln(nn([dn,pn+0.0001,mn]),fn),ln(nn([dn,pn,mn+0.0001]),fn)],[En,Sn,_n]=[cn(bn,yn),cn(yn,hn),cn(hn,bn)],[vn,Tn,Rn]=[an[un+3],an[un+4],an[un+5]],An=[0,1,2].map((Cn)=>vn*En[Cn]+Tn*Sn[Cn]+Rn*_n[Cn]),Mn=Math.hypot(An[0],An[1],An[2]);if(an.set(fn,un),Mn>0.000000000001)an.set([An[0]/Mn,An[1]/Mn,An[2]/Mn],un+3)}return rn}function Ky(rn,nn,an=48){an=Da(an);let sn=[];for(let ln=0;ln<=an;ln++){let cn=ln/an;sn.push([Math.max(0,nn(cn)),rn/2-cn*rn])}return sn}function ww(rn,nn){nn=Da(nn);let an=[0];for(let un=1;un<rn.length;un++)an.push(an[un-1]+Math.hypot(rn[un][0]-rn[un-1][0],rn[un][1]-rn[un-1][1]));let sn=an[an.length-1],ln=[],cn=0;for(let un=0;un<=nn;un++){let dn=un/nn*sn;while(cn<rn.length-2&&an[cn+1]<dn)cn++;let pn=(dn-an[cn])/(an[cn+1]-an[cn]||1);ln.push([rn[cn][0]+(rn[cn+1][0]-rn[cn][0])*pn,rn[cn][1]+(rn[cn+1][1]-rn[cn][1])*pn])}return ln}function SCt(rn,nn){let an=0;for(let sn=0;sn<rn.length-1;sn++){let[ln,cn]=rn[sn],[un,dn]=rn[sn+1];if((nn-cn)*(nn-dn)<=0&&cn!==dn)an=Math.max(an,ln+(nn-cn)/(dn-cn)*(un-ln))}return an}function iB(rn){let[nn,an]=[0,0];return rn.forEach((sn,ln)=>{if(sn[1]>rn[nn][1])nn=ln;if(sn[1]<rn[an][1])an=ln}),rn.slice(nn,an+1)}function xl(rn){let nn=Math.max(...rn.map((un)=>un[1])),an=Math.min(...rn.map((un)=>un[1])),sn=2*Math.max(...rn.map((un)=>un[0])),ln=1/Math.max(sn,nn-an),cn=(nn+an)/2;return rn.map(([un,dn])=>[un*ln,(dn-cn)*ln])}function _Ct(rn,nn,an){let sn=nn*(rn.length-1),ln=Math.min(rn.length-2,Math.floor(sn)),cn=sn-ln,[un,dn]=rn[ln],[pn,mn]=rn[ln+1],fn=un+(pn-un)*cn,hn=dn+(mn-dn)*cn,bn=Math.hypot(pn-un,mn-dn)||1,[yn,En]=[(dn-mn)/bn,(pn-un)/bn],[Sn,_n]=[Math.cos(an),-Math.sin(an)];return[[fn*Sn,hn,fn*_n],[yn*Sn,En,yn*_n]]}function Lw(rn,nn,{fold:an=0.38,teeth:sn=14,stalk:ln=0.16}={}){let cn=(un)=>{let dn=[[0,0]],pn=sn*2;for(let mn=1;mn<pn;mn++){let fn=mn/pn,hn=mn%2?0.07:0,bn=nn*Math.pow(Math.sin(Math.PI*fn),0.75)*(1-0.25*fn)*(1+hn);dn.push([rn*fn,un*bn])}return dn.push([rn,0]),sB(new Yy().addPolygon(dn.map(([mn,fn])=>[mn,-fn])),{depth:0.006})};return ga([{geometry:cn(1),rotation:Ja([1,0,0],an),color:vCt},{geometry:cn(-1),rotation:Ja([1,0,0],-an),color:TCt},{geometry:Xl([[0,0,0],[rn*0.5,0.004,0],[rn*0.96,0,0]],{radius:(un)=>0.007*(1-un)+0.002,sides:Da(6)}),color:xCt},{geometry:Xl([[-rn*ln,-0.01,0],[0,0,0]],{radius:0.008,sides:Da(6)}),color:[0.36,0.42,0.18]}])}function Xy(rn,nn=0.024,an=0.06){return Xl([[0,-0.03,0],[0.005,rn*0.4,0],[an*0.5,rn*0.8,0],[an,rn,0]],{radius:(sn)=>nn*(1.25-0.45*sn+(sn>0.9?0.5*(sn-0.9)*10:0)),sides:Da(8),color:(sn)=>jn([0.33,0.21,0.1],[0.5,0.42,0.28],Jn(0.75,1,sn.v)+0.15*ja(sn.u,sn.v,6,10)),capColor:[0.62,0.55,0.4]})}function ACt(){let rn=Yy.fromSVG("M0 0.1 C 0.12 -0.03 0.42 -0.06 0.5 0.3 C 0.55 0.62 0.36 0.9 0.14 0.93 Q 0.05 0.94 0 0.88"),nn=xl(ww(rn.toContours()[0].map(([bn,yn])=>[bn,-yn]),64)),an=[0.68,0.04,0.06],sn=[0.45,0.02,0.05],ln=[0.86,0.66,0.18],cn=({u:bn,v:yn})=>{let En=ja(bn,yn,90,4),Sn=jn(an,sn,Jn(0.35,0.9,En)*0.7);if(Sn=jn(Sn,ln,Jn(0.55,0.8,ja(bn,yn,7,3))*0.35),Sn=jn(Sn,[0.72,0.68,0.22],Jn(0.16,0.02,yn)*0.75+Jn(0.86,0.99,yn)*0.6),vi(Math.floor(bn*140),Math.floor(yn*70))>0.975)Sn=jn(Sn,[0.95,0.85,0.55],0.55);return Sn},un=nn[0][1],dn=nn[nn.length-1][1],pn=$a(nn,{segments:Da(Tl),color:cn}),mn=ga([{geometry:pn},{geometry:Xy(0.17,0.022,0.05),position:[0,un,0]},{geometry:Lw(0.32,0.075),position:[0.03,un+0.11,0],rotation:fm(Ja([0,1,0],-0.5),Ja([0,0,1],0.55))},{geometry:lB(0.05,0.015,5),position:[0,dn-0.004,0],rotation:Ja([1,0,0],Math.PI/2),color:[0.3,0.2,0.1]}]),fn=(bn,yn)=>{let En=Math.hypot(bn/0.2,yn/0.24),Sn=[0.97,0.93,0.74];return Sn=jn(Sn,[0.92,0.88,0.62],Jn(1.05,0.85,En)),Sn=jn(Sn,[0.82,0.76,0.5],Jn(0.12,0,Math.abs(En-1))*0.6),jn(Sn,[1,0.97,0.88],Jn(0.88,1,bn)*0.6)},hn=()=>{let bn=ga([{geometry:$a(iB(nn),{segments:Da(Tl),sweep:Math.PI,color:bm(cn),cutColor:fn,cutSteps:24,capColor:[0.7,0.62,0.25]})},...[-1,1].map((En)=>({geometry:Iw(),position:[En*0.06,-0.02,0.004],scale:[0.045,0.075,0.02],rotation:Ja([0,0,1],En*0.35),color:[0.3,0.17,0.08]}))]),yn=wn(bn,{center:!1,shine:0.3});return[yn,yn]};return ol({center:tl(mn),whole:wn(mn,{center:!1,shine:0.65}),juice:[0.98,0.94,0.75]},hn)}function GMe(rn,nn,an,sn,ln){return(cn,un)=>{if(cn>1-ln*0.45)return rn;if(cn>1-ln)return nn;if(cn<0.12)return jn(nn,an,Jn(0.08,0.12,cn));let dn=Qa/sn,pn=Math.abs(mm(un/dn)-0.5)*dn*cn,mn=Jn(0.5*dn*cn-0.02,0.5*dn*cn-0.006,pn),fn=ja(un/Qa,cn,sn*6,9);return jn(Sd(an,0.92+0.16*fn),nn,mn*0.85)}}function MCt(){let rn=xl(hm(0.94,0.5,2,64)),nn=[1,0.47,0.03],an=({u:dn,v:pn})=>{let mn=Sd(nn,0.9+0.14*ja(dn,pn,40,22));return mn=jn(mn,[0.82,0.55,0.12],Jn(0.05,0,pn)*0.6),jn(mn,[0.75,0.35,0.05],Jn(0.95,1,pn)*0.7)},sn=kMe(0.006,64),ln=rn[0][1],cn=ga([{geometry:$a(rn,{segments:Da(120),color:an,displace:sn})},{geometry:lB(0.06,0.025,5,0.01),position:[0,ln-0.002,0],rotation:RCt,color:[0.3,0.42,0.14]},{geometry:Xl([[0,ln-0.01,0],[0,ln+0.035,0]],{radius:0.014,sides:Da(6)}),color:[0.42,0.4,0.2]}]),un=()=>{let dn=rn.slice(0,Math.floor(rn.length/2)+1),pn=GMe(Sd(nn,0.95),[0.99,0.95,0.84],[1,0.58,0.08],10,0.12),mn=wn(ga([{geometry:$a(dn,{segments:Da(120),color:Iv(an),displace:Ow(sn),capColor:pn,capRings:24}),rotation:jy}]),{center:!1,shine:0.25});return[mn,mn]};return ol({center:tl(cn),whole:wn(cn,{center:!1,shine:0.35}),juice:[1,0.6,0.1]},un)}function CCt(){let rn=xl(Ky(1,(dn)=>0.34*Math.pow(Math.sin(Math.PI*dn),0.75),64)),nn=[1,0.86,0.12],an=({u:dn,v:pn})=>{let mn=Sd(nn,0.9+0.14*ja(dn,pn,36,20));return jn(mn,[0.62,0.72,0.15],(Jn(0.06,0,pn)+Jn(0.94,1,pn))*0.6)},sn=kMe(0.005,56),ln=Ja([0,0,1],Math.PI/2),cn=ga([{geometry:$a(rn,{segments:Da(96),color:an,displace:sn}),rotation:ln}]),un=()=>{let dn=rn.slice(0,Math.floor(rn.length/2)+1),pn=GMe(nn,[0.99,0.97,0.86],[1,0.93,0.5],9,0.1),mn=wn(ga([{geometry:$a(dn,{segments:Da(96),color:Iv(an),displace:Ow(sn),capColor:pn,capRings:20}),rotation:jy}]),{center:!1,shine:0.3});return[mn,mn]};return ol({center:tl(cn),whole:wn(cn,{center:!1,shine:0.4}),juice:[1,0.95,0.55]},un)}function wCt(){let rn=xl(Ky(1,(dn)=>Math.pow(Math.sin(Math.PI*dn),0.55)*(0.18+0.37*Math.pow(dn,1.35))*(1-0.15*Math.exp(-dn*30)),64)),nn=({u:dn,v:pn})=>{let mn=jn([0.62,0.74,0.2],[0.84,0.8,0.28],ja(dn,pn,6,4)),fn=Math.pow(Math.max(0,Math.cos((dn-0.2)*Qa)),2)*Jn(0.3,0.8,pn);if(mn=jn(mn,[0.78,0.28,0.12],fn*0.55),mn=jn(mn,[0.55,0.42,0.18],Jn(0.12,0,pn)*0.6),vi(Math.floor(dn*120),Math.floor(pn*64))>0.95)mn=jn(mn,[0.5,0.38,0.18],0.65);return mn},an=rn[0][1],sn=rn[rn.length-1][1],ln=ga([{geometry:$a(rn,{segments:Da(Tl),color:nn})},{geometry:Xy(0.2,0.02,0.07),position:[0,an,0]},{geometry:lB(0.035,0.012,5),position:[0,sn-0.003,0],rotation:Ja([1,0,0],Math.PI/2),color:[0.32,0.22,0.12]}]),cn=(dn,pn)=>{let mn=Math.hypot(dn/0.17,(pn+0.15)/0.17),fn=[0.98,0.96,0.82];return fn=jn(fn,[0.92,0.9,0.7],Jn(1.1,0.8,mn)),jn(fn,[0.86,0.82,0.58],Jn(0.1,0,Math.abs(mn-1))*0.6)},un=()=>{let dn=ga([{geometry:$a(rn,{segments:Da(Tl),sweep:Math.PI,color:bm(nn),cutColor:cn})},...[-1,1].map((mn)=>({geometry:Iw(),position:[mn*0.05,-0.16,0.004],scale:[0.035,0.06,0.018],rotation:Ja([0,0,1],mn*0.3),color:[0.25,0.14,0.07]}))]),pn=wn(dn,{center:!1,shine:0.25});return[pn,pn]};return ol({center:tl(ln),whole:wn(ln,{center:!1,shine:0.45}),juice:[0.98,0.96,0.8]},un)}function LCt(){let rn=xl(Ky(1,(mn)=>0.5*Math.pow(Math.sin(Math.PI*Math.min(1,mn*1.02)),0.45)*(1-0.62*Math.pow(mn,1.2)),64)),nn=({v:mn})=>{let fn=[0.82,0.05,0.1];return fn=jn(fn,[0.95,0.8,0.62],Jn(0.1,0.02,mn)*0.7),jn(fn,[0.95,0.25,0.12],Jn(0.8,1,mn)*0.5)},an=(mn)=>{let fn=[],hn=80;for(let bn=0;bn<80;bn++){let yn=0.14+0.8*bn/80,En=mm(bn*0.381966)*Qa;if(En>mn)continue;let[Sn,_n]=_Ct(rn,yn,En);fn.push({geometry:Iw(6),position:[Sn[0]-_n[0]*0.003,Sn[1]-_n[1]*0.003,Sn[2]-_n[2]*0.003],rotation:ECt(_n),scale:[0.022,0.018,0.03],color:[0.95,0.8,0.3]})}return fn},sn=rn[0][1],ln=[];for(let mn=0;mn<8;mn++){let fn=mn/8*Qa+0.2;ln.push({geometry:Lw(0.26+0.05*Math.sin(mn*2.3),0.05,{fold:0.2,teeth:4,stalk:0}),position:[0,sn+0.012,0],rotation:fm(Ja([0,1,0],fn),Ja([0,0,1],0.08-0.1*Math.cos(mn*1.7)))})}let cn=[...ln,{geometry:Xy(0.12,0.018,0.02),position:[0,sn-0.02,0],color:[0.55,1.2,0.5]}],un=ga([{geometry:$a(rn,{segments:Da(Tl),color:nn})},...an(Qa),...cn]),dn=(mn,fn)=>{let hn=jn([1,0.85,0.82],[0.88,0.12,0.16],Jn(0.35,0.85,mn));return jn(hn,[0.98,0.75,0.72],Jn(0.12,0,Math.abs(mn-0.32))*0.4*Jn(-0.4,0.2,fn))},pn=()=>{let mn=wn(ga([{geometry:$a(rn,{segments:Da(Tl),sweep:Math.PI,color:bm(nn),cutColor:dn})},...an(Math.PI)]),{center:!1,shine:0.4});return[mn,mn]};return ol({center:tl(un),whole:wn(un,{center:!1,shine:0.55}),juice:[0.95,0.15,0.2]},pn)}function ICt(){let rn=xl(hm(1,0.36,2.2,64)),nn=[0.07,0.27,0.08],an=[0.42,0.62,0.26],sn=({u:pn,v:mn})=>{let fn=(ja(pn,mn,16,10)-0.5)*0.9,hn=Math.sin((pn*16+fn)*Qa),bn=jn(an,nn,Jn(-0.35,0.1,hn));bn=Sd(bn,0.9+0.15*ja(pn,mn,50,30));let yn=Jn(0.16,0.05,Math.hypot((mm(pn-0.75+0.5)-0.5)*2.2,mn-0.5));return jn(bn,[0.82,0.76,0.38],yn*0.85)},ln=Ja([0,0,1],Math.PI/2),cn=ga([{geometry:$a(rn,{segments:Da(96),color:sn}),rotation:ln}]),un=(pn)=>{if(pn>0.965)return nn;if(pn>0.92)return jn([0.62,0.8,0.45],[0.85,0.93,0.7],(0.965-pn)/0.045);if(pn>0.86)return jn([0.97,0.97,0.85],[0.98,0.55,0.5],Jn(0.92,0.86,pn));return jn([0.98,0.3,0.32],[0.88,0.1,0.16],Jn(0.85,0.2,pn))},dn=()=>{let pn=rn.slice(0,Math.floor(rn.length/2)+1),mn=pn[pn.length-1][0],fn=[];for(let yn=0;yn<14;yn++){let En=yn/14*Qa+yn%2*0.12,Sn=mn*(0.5+0.1*(yn%3));fn.push({geometry:Iw(),position:[Math.cos(En)*Sn,-0.004,-Math.sin(En)*Sn],rotation:fm(Ja([0,1,0],En+Math.PI/2),Ja([1,0,0],Math.PI/2)),scale:[0.03,0.05,0.012],color:[0.08,0.05,0.04]})}let hn=ga([{geometry:ga([{geometry:$a(pn,{segments:Da(96),color:Iv(sn),capColor:un,capRings:24})},...fn]),rotation:jy}]),bn=wn(hn,{center:!1,shine:0.25});return[bn,bn]};return ol({center:tl(cn),whole:wn(cn,{center:!1,shine:0.35}),juice:[0.95,0.2,0.25]},dn)}function OCt(){let rn=[];for(let An=0;An<=12;An++){let Mn=Math.PI*(0.12+0.76*An/12);rn.push([-Math.cos(Mn)*0.5,-Math.sin(Mn)*0.3,0])}let nn=rn.map((An)=>An[0]),an=rn.map((An)=>An[1]),[sn,ln]=[(Math.min(...nn)+Math.max(...nn))/2,(Math.min(...an)+Math.max(...an))/2],cn=0.92/(Math.max(...nn)-Math.min(...nn)),un=rn.map(([An,Mn])=>[(An-sn)*cn,(Mn-ln)*cn+0.06,0]),dn=(An)=>0.014+0.09*Math.pow(Math.sin(Math.PI*Math.min(1,0.03+An*0.97)),0.55),pn=(An)=>1+0.06*Math.cos(An*Qa*5),mn=({u:An,v:Mn})=>{let Cn=[1,0.84,0.16];Cn=jn(Cn,[0.82,0.76,0.18],0.4*(0.5+0.5*Math.cos(An*Qa*5))),Cn=jn(Cn,[0.62,0.72,0.2],Jn(0.82,1,Mn)*0.6),Cn=jn(Cn,[0.18,0.12,0.06],Jn(0.05,0,Mn));let Ln=ja(An,Mn,18,26);if(Ln>0.78)Cn=jn(Cn,[0.45,0.28,0.08],Jn(0.78,0.88,Ln)*0.9);return Cn},fn=(An)=>An>0.9?[1,0.84,0.16]:An<0.22?[0.86,0.8,0.58]:[0.99,0.95,0.78],hn=un[un.length-1],bn=un[un.length-2],yn=[hn[0]-bn[0],hn[1]-bn[1]],En=Math.hypot(yn[0],yn[1]),Sn=[hn[0]+yn[0]/En*0.1,hn[1]+yn[1]/En*0.1+0.015,0],_n=Xl([hn,Sn],{radius:(An)=>0.026-0.006*An,shape:(An)=>1+0.12*Math.cos(An*Qa*4),sides:Da(12),color:[0.45,0.48,0.2],capColor:[0.3,0.25,0.12]}),vn=(An,Mn,Cn)=>Xl(An,{radius:(Ln)=>dn(Mn+(Cn-Mn)*Ln),shape:pn,sides:Da(30),smoothness:6,color:(Ln)=>mn({u:Ln.u,v:Mn+(Cn-Mn)*Ln.v}),capColor:(Ln)=>fn(Ln)}),Tn=ga([{geometry:vn(un,0,1)},{geometry:_n}]),Rn=()=>{let An=Math.floor(un.length/2),Mn=vn(un.slice(0,An+1),0,An/(un.length-1)),Cn=ga([{geometry:vn(un.slice(An),An/(un.length-1),1)},{geometry:_n}]);return[wn(ga([{geometry:Mn,rotation:Ja([0,1,0],-Math.PI/2)}]),{center:!1,shine:0.3}),wn(ga([{geometry:Cn,rotation:Ja([0,1,0],Math.PI/2)}]),{center:!1,shine:0.3})]};return ol({center:tl(Tn),whole:wn(Tn,{center:!1,shine:0.3}),juice:[1,0.95,0.72]},Rn)}function PCt(){let rn=Yy.fromSVG("M0 0.12 C 0.1 0.01 0.46 -0.04 0.5 0.42 C 0.53 0.76 0.3 0.98 0 0.96"),nn=xl(ww(rn.toContours()[0].map(([yn,En])=>[yn,-En]),40)),an=({u:yn,v:En})=>{let Sn=jn([0.55,0.02,0.07],[0.26,0,0.04],Jn(0.3,0.75,ja(yn,En,5,3))*0.6+Jn(0.5,1,En)*0.35);return Sn=jn(Sn,[0.78,0.12,0.12],Jn(0.2,0.05,En)*0.4),jn(Sn,[0.2,0.02,0.03],Jn(0.92,1,En)*0.7)},sn=nn[0][1],ln=0.42,cn=[[-0.2,-0.2,0.02],[0.19,-0.28,-0.04]],un=[0.06,0.55,0],dn=(yn,En)=>Xl([[yn[0],yn[1]+sn*0.42-0.02,yn[2]],[yn[0]+En*0.4,yn[1]+0.38,yn[2]*0.5],[un[0]+En*0.15,un[1]-0.12,0],un],{radius:(Sn)=>0.012+0.003*Sn,sides:Da(7),color:(Sn)=>jn([0.4,0.55,0.16],[0.42,0.32,0.14],Jn(0.75,1,Sn.v)),capColor:[0.35,0.25,0.12]}),pn=[{geometry:dn(cn[0],-0.1)},{geometry:dn(cn[1],0.08)},{geometry:Lw(0.3,0.07),position:un,rotation:fm(Ja([0,1,0],0.6),Ja([0,0,1],0.4))}],mn=$a(nn,{segments:Da(40),color:an}),fn=ga([...cn.map((yn)=>({geometry:mn,position:yn,scale:0.42})),...pn]),hn=(yn,En)=>{let Sn=Math.hypot(yn/0.42,(En+0.02)/0.32);if(Sn<1)return jn([0.93,0.84,0.66],[0.8,0.66,0.5],Sn*Sn);return jn([0.62,0.04,0.1],[0.42,0.01,0.06],Jn(1,2.2,Sn))},bn=()=>{let yn=$a(iB(nn),{segments:Da(40),sweep:Math.PI,color:bm(an),cutColor:hn,cutSteps:20,capColor:[0.5,0.04,0.08]});return[wn(ga([{geometry:yn,position:[0,cn[0][1],0],scale:0.42}]),{center:!1,shine:0.7}),wn(ga([{geometry:yn,position:[0,cn[1][1],0],scale:0.42},{geometry:ga(pn),position:[-cn[1][0],0,0],rotation:pm(Math.PI/2)}]),{center:!1,shine:0.7})]};return ol({center:tl(fn),whole:wn(fn,{center:!1,shine:0.85}),juice:[0.6,0.03,0.1]},bn)}function gCt(){let rn=xl(hm(1.12,0.5,2,16)),nn=({u:Rn,v:An})=>{let Mn=jn([0.3,0.07,0.27],[0.17,0.03,0.17],Jn(0.2,0.9,ja(Rn,An,4,3)));return Mn=jn(Mn,[0.52,0.46,0.62],0.3*Jn(0.35,0.8,ja(Rn,An,9,6))),jn(Mn,[0.36,0.14,0.25],Jn(0.6,0.1,An)*0.3)},an=$a(rn,{segments:Da(24),color:nn}),sn=$a(rn,{segments:Da(24),sweep:Math.PI,color:bm(nn),cutColor:(Rn)=>Rn>0.93?[0.3,0.08,0.25]:jn([0.86,0.9,0.62],[0.58,0.68,0.32],Rn*Rn),cutSteps:6}),ln=0.085,cn=[],un=8;for(let Rn=0;Rn<8;Rn++){let An=Rn/7,Mn=0.32-An*0.78,Cn=0.26*Math.pow(1-An,0.85)*(1-0.35*Math.pow(1-An,6));for(let[Ln,On]of[[Cn,0],[Cn*0.45,0.5]]){let Dn=Ln<0.03?On?0:1:Math.max(1,Math.floor(Qa*Ln/0.15725000000000003));for(let Nn=0;Nn<Dn;Nn++){let Wn=(Nn+On+Rn*0.37)/Dn*Qa,Fn=vi(Rn,Nn+On*10);cn.push({at:[Math.cos(Wn)*Ln,Mn+(Fn-0.5)*0.04,Math.sin(Wn)*Ln],tint:Sd([1,0.95+0.1*Fn,1],0.85+0.3*vi(Nn,Rn+3)),turn:Fn*2})}}}let dn=[0.17,0.17,0.17],pn=(Rn)=>({geometry:an,position:Rn.at,scale:dn,color:Rn.tint,rotation:fm(Ja([0,0,1],(Rn.turn-1)*0.5),pm(Rn.turn*3))}),mn=(Rn)=>jn([0.42,0.35,0.16],[0.32,0.22,0.1],ja(Rn.u,Rn.v,4,6)),fn=Xl([[0.02,0.62,0],[0,0.48,0],[0.01,0.3,0],[0,0.1,0]],{radius:(Rn)=>0.022-0.008*Rn,sides:Da(8),color:mn,capColor:[0.55,0.48,0.3]}),hn=[0,1,2,3].map((Rn)=>{let An=Rn/4*Qa+0.4;return{geometry:Xl([[0,0.42-Rn*0.04,0],[Math.cos(An)*0.12,0.36-Rn*0.05,Math.sin(An)*0.12],[Math.cos(An)*0.2,0.3-Rn*0.06,Math.sin(An)*0.2]],{radius:0.009,sides:Da(6),color:mn})}}),bn=[];for(let Rn=0;Rn<160;Rn++){let An=Rn/160*Qa,Mn=0.6+0.4*Math.pow(Math.abs(Math.cos(2.5*(An-Math.PI/2))),0.7),Cn=1-0.55*Math.exp(-Math.pow((An-Math.PI/2)/0.22,2)),Ln=0.22*Mn*Cn*(1+(Rn%4===0?0.06:0));bn.push([Math.cos(An)*Ln,Math.sin(An)*Ln-0.05])}let yn=bCt(sB(new Yy().addPolygon(bn),{depth:0.008}),({position:Rn})=>{let An=Math.atan2(Rn[1]+0.05,Rn[0]),Mn=Math.min(...[0,1,2,3,4].map((Cn)=>Math.abs(Math.sin(An-(Math.PI/2+Cn*Qa/5)))));return jn([0.22,0.48,0.14],[0.55,0.72,0.3],Jn(0.08,0,Mn*Math.hypot(Rn[0],Rn[1]+0.05)*6)*0.8)}),En=[];for(let Rn=0;Rn<=24;Rn++)En.push([-0.04-Rn*0.008,0.56+0.05*Math.sin(Rn*0.8),0.05*Math.cos(Rn*0.8)]);let Sn=[{geometry:fn},...hn,{geometry:yn,position:[0.17,0.56,-0.06],rotation:fm(Ja([0,1,0],-0.4),Ja([1,0,0],-0.9))},{geometry:Xl(En,{radius:0.005,sides:Da(5),color:[0.45,0.6,0.2]})}],_n=ga([...cn.map(pn),...Sn]),vn=(Rn)=>{let An=[];for(let Mn of cn)if(Math.abs(Mn.at[0])<0.0595)An.push({geometry:sn,position:[0,Mn.at[1],Mn.at[2]],scale:dn,color:Mn.tint,rotation:pm(Rn*Math.PI/2)});else if(Math.sign(Mn.at[0])===-Rn)An.push(pn(Mn));return Rn===1?[...An,...Sn]:An},Tn=()=>[wn(ga([{geometry:ga(vn(1)),rotation:pm(-Math.PI/2)}]),{center:!1,shine:0.4}),wn(ga([{geometry:ga(vn(-1)),rotation:pm(Math.PI/2)}]),{center:!1,shine:0.4})];return ol({center:tl(_n),whole:wn(_n,{center:!1,shine:0.4}),juice:[0.75,0.85,0.45]},Tn)}function DCt(){let rn=xl(hm(1,0.4,2.4,72)),nn=({u:dn,v:pn})=>{let mn=jn([0.5,0.35,0.18],[0.36,0.24,0.11],ja(dn,pn,12,8));return mn=Sd(mn,0.85+0.3*vi(Math.floor(dn*200),Math.floor(pn*90))),jn(mn,[0.3,0.2,0.1],(Jn(0.05,0,pn)+Jn(0.95,1,pn))*0.6)},an=(dn,pn)=>-0.004*ja(dn,pn,60,30),sn=Ja([0,0,1],Math.PI/2),ln=(dn,pn)=>{if(dn>0.975)return[0.42,0.3,0.14];if(dn>0.94)return jn([0.55,0.72,0.2],[0.4,0.58,0.12],(dn-0.94)/0.035);let mn=ja(pn/Qa,dn,70,3);if(dn<0.26)return jn([0.97,0.96,0.78],[0.86,0.9,0.55],Jn(0.18,0.26,dn)*0.6+mn*0.1);let fn=56,hn=Math.floor(pn/Qa*fn),bn=vi(hn,7),yn=Math.abs(mm(pn/Qa*fn)-0.5)/fn*Qa*dn,En=0.34+0.06*bn;if(Math.hypot(yn/0.016,(dn-En)/0.045)<1)return[0.06,0.05,0.03];let Sn=jn([0.62,0.86,0.22],[0.44,0.7,0.08],Jn(0.3,0.9,dn));return jn(Sn,[0.85,0.95,0.5],mn*0.25*Jn(0.95,0.4,dn))},cn=ga([{geometry:$a(rn,{segments:Da(96),color:nn,displace:an}),rotation:sn}]),un=()=>{let dn=rn.slice(0,Math.floor(rn.length/2)+1),pn=wn(ga([{geometry:$a(dn,{segments:Da(168),color:Iv(nn),displace:Ow(an),capColor:ln,capRings:48}),rotation:jy}]),{center:!1,shine:0.45});return[pn,pn]};return ol({center:tl(cn),whole:wn(cn,{center:!1,shine:0.05}),juice:[0.6,0.85,0.25]},un)}function NCt(){let rn=xl(Ky(1,(pn)=>0.36*Math.sqrt(Math.max(0,1-Math.pow(2*pn-1,2)))*(1.08-0.2*pn),64)),nn=({u:pn,v:mn})=>{let fn=Math.max(0,Math.cos(pn*Qa))*Jn(0.85,0.15,mn)+0.4*ja(pn,mn,5,3)-0.15,hn=jn([0.42,0.6,0.16],[0.96,0.72,0.15],Jn(0.95,0.3,mn)*0.8+0.25*ja(pn,mn,4,3));if(hn=jn(hn,[0.98,0.5,0.12],Jn(0.1,0.5,fn)*0.8),hn=jn(hn,[0.78,0.12,0.12],Jn(0.35,0.85,fn)*0.85),vi(Math.floor(pn*110),Math.floor(mn*60))>0.965)hn=jn(hn,[0.98,0.9,0.55],0.5);return hn},an=rn[0][1],sn=oB([0,an,0]),ln={geometry:Xy(0.05,0.018,0.01),position:[sn[0],sn[1]-0.01,0]},cn=ga([{geometry:Cw($a(rn,{segments:Da(Tl),color:nn}),oB)},ln]),un=(pn,mn)=>{let fn=Math.hypot(pn/0.24,mn/0.34);if(fn<1)return jn([0.98,0.86,0.5],[0.9,0.72,0.32],ja(pn,mn+1,3,40)*0.5+fn*0.4);let hn=jn([1,0.62,0.08],[1,0.76,0.22],Jn(1,2.6,fn));return jn(hn,[0.62,0.7,0.2],Jn(0.93,1,pn)*0.6)},dn=()=>{let pn=ga([{geometry:Cw($a(rn,{segments:Da(Tl),sweep:Math.PI,color:bm(nn),cutColor:un,cutSteps:32}),oB)},ln]),mn=wn(pn,{center:!1,shine:0.4});return[mn,mn]};return ol({center:tl(cn),whole:wn(cn,{center:!1,shine:0.5}),juice:[1,0.7,0.15]},dn)}function GCt(){let rn=Yy.fromSVG("M0 0.08 C 0.14 -0.02 0.48 -0.02 0.5 0.42 C 0.52 0.78 0.3 0.96 0.04 0.98 L 0 1.0"),nn=xl(ww(rn.toContours()[0].map(([pn,mn])=>[pn,-mn]),64)),an=({u:pn,v:mn})=>{let fn=Jn(0.3,0.8,ja(pn,mn,5,4)*0.6+Math.max(0,Math.cos((pn-0.75)*Qa))*0.6),hn=jn([1,0.74,0.3],[1,0.62,0.22],ja(pn,mn,10,6));return hn=jn(hn,[0.92,0.3,0.2],fn*0.85),hn=jn(hn,[0.7,0.1,0.12],fn*Jn(0.6,0.9,ja(pn,mn,48,28))*0.45),jn(Sd(hn,0.97+0.05*vi(Math.floor(pn*220),Math.floor(mn*110))),[1,0.85,0.7],0.06)},sn=nn[0][1],ln=[{geometry:Xy(0.05,0.02,0.01),position:[0,sn-0.015,0]},{geometry:Lw(0.4,0.07,{teeth:18,fold:0.3}),position:[0.01,sn+0.02,0],rotation:fm(Ja([0,1,0],2.4),Ja([0,0,1],0.35))}],cn=ga([{geometry:Cw($a(nn,{segments:Da(Tl),color:an}),NMe)},...ln]),un=(pn,mn)=>{let fn=Math.hypot(pn/0.4,(mn+0.02)/0.34);if(fn<1)return jn([0.55,0.28,0.14],[0.36,0.17,0.08],Jn(0.3,0.7,ja(pn*3,mn+1,7,9)));let hn=jn([1,0.74,0.3],[1,0.82,0.42],Jn(1.2,2.6,fn));return hn=jn(hn,[0.88,0.3,0.16],Jn(1.35,1,fn)*0.85),jn(hn,[0.85,0.3,0.18],Jn(0.94,1,pn)*0.7)},dn=()=>{let pn=ga([{geometry:Cw($a(iB(nn),{segments:Da(Tl),sweep:Math.PI,color:bm(an),cutColor:un,cutSteps:32,capColor:[0.95,0.5,0.2]}),NMe)},...ln]),mn=wn(pn,{center:!1,shine:0.25});return[mn,mn]};return ol({center:tl(cn),whole:wn(cn,{center:!1,shine:0.12}),juice:[1,0.75,0.35]},dn)}function kCt(){let rn=xl(ww(hm(1,0.34,2.6,96),110)),nn=13,an=7,sn=(En,Sn)=>{let _n=En*13+Sn*7,vn=En*13-Sn*7;return{fa:mm(_n),fb:mm(vn),cell:Math.floor(_n)*31+Math.floor(vn)}},ln=({u:En,v:Sn})=>{let{fa:_n,fb:vn,cell:Tn}=sn(En,Sn),Rn=Math.max(Math.abs(_n-0.5),Math.abs(vn-0.5))*2,An=Jn(0.95,0.3,Sn)*0.8+0.3*vi(Tn,3),Mn=jn([0.42,0.42,0.12],[0.86,0.58,0.14],An);if(Mn=jn(Mn,[0.64,0.42,0.14],Jn(0.45,0.15,Rn)*0.8),Math.hypot(_n-0.62,vn-0.62)<0.1)Mn=[0.3,0.2,0.08];return jn(Mn,[0.2,0.18,0.06],Jn(0.75,1,Rn)*0.85)},cn=(En,Sn)=>{let{fa:_n,fb:vn}=sn(En,Sn),Tn=Math.max(Math.abs(_n-0.5),Math.abs(vn-0.5))*2;return 0.018*(Math.sqrt(Math.max(0,1-Tn*Tn))-1)*Jn(0,0.06,Sn)*Jn(1,0.94,Sn)},un=rn[0][1],dn=(En)=>1/Math.sqrt(Math.cos(En*Qa)**2+(Math.sin(En*Qa)/0.16)**2),pn=[];[{n:7,tilt:0.45,length:0.62},{n:9,tilt:0.8,length:0.55},{n:11,tilt:1.15,length:0.42},{n:9,tilt:1.45,length:0.3}].forEach(({n:En,tilt:Sn,length:_n},vn)=>{for(let Tn=0;Tn<En;Tn++){let Rn=(Tn+vn*0.5)/En*Qa,An=_n*(0.85+0.3*vi(Tn,vn)),Mn=[];for(let Cn=0;Cn<=5;Cn++){let Ln=Cn/5,On=Sn+Ln*0.5;Mn.push([Math.sin(On)*An*Ln,Math.cos(On)*An*Ln,0])}pn.push({geometry:Xl(Mn,{radius:(Cn)=>0.045*Math.pow(1-Cn,0.9)+0.002,shape:dn,sides:Da(10),smoothness:4,color:(Cn)=>jn(jn([0.24,0.42,0.22],[0.36,0.55,0.3],Cn.v),[0.6,0.55,0.3],Jn(0.8,1,Cn.v)*0.7)}),position:[0,un+0.01,0],rotation:pm(Rn)})}});let fn={geometry:ga(pn)},hn=ga([{geometry:$a(rn,{segments:Da(130),color:ln,displace:cn})},fn]),bn=(En,Sn)=>{if(En>0.95)return[0.55,0.42,0.14];let _n=ja(Sn/Qa,En,90,4);if(En>0.86)return Math.abs(mm(Sn/Qa*13*2)-0.5)<0.12&&En>0.89?[0.55,0.35,0.12]:[0.96,0.84,0.45];if(En<0.2)return jn([1,0.92,0.62],[0.98,0.86,0.5],_n*0.4);return Sd(jn([1,0.78,0.18],[1,0.84,0.3],Jn(0.8,0.3,En)),0.9+0.15*_n)},yn=()=>{let En=Math.floor(rn.length/2),Sn=rn.slice(0,En+1),_n=rn.slice(En),vn=(An)=>ln({u:An.u,v:An.v*0.5}),Tn=(An)=>ln({u:An.u,v:0.5+An.v*0.5}),Rn={segments:Da(130),capColor:bn,capRings:30};return[wn(ga([{geometry:ga([{geometry:$a(Sn,{...Rn,color:vn,displace:(An,Mn)=>cn(An,Mn*0.5)})},fn]),rotation:jy}]),{center:!1,shine:0.3}),wn(ga([{geometry:$a(_n,{...Rn,color:Tn,displace:(An,Mn)=>cn(An,0.5+Mn*0.5)}),rotation:Ja([1,0,0],Math.PI/2)}]),{center:!1,shine:0.3})]};return ol({center:tl(hn),whole:wn(hn,{center:!1,shine:0.3}),juice:[1,0.85,0.3]},yn)}function BCt(){let rn=xl(hm(0.9,0.5,2,64)),nn=({u:mn,v:fn})=>{let hn=jn([0.72,0.1,0.1],[0.5,0.04,0.07],Jn(0.3,0.8,ja(mn,fn,6,4)));return hn=jn(hn,[0.88,0.5,0.32],Jn(0.6,0.85,ja(mn+0.3,fn,5,3))*0.55),hn=jn(hn,[0.45,0.06,0.06],Jn(0.7,0.95,ja(mn,fn,60,30))*0.4),jn(hn,[0.62,0.3,0.2],Jn(0.08,0,fn)*0.6)},an=(mn,fn)=>-0.008*Math.abs(Math.sin(mn*Qa*3))*Math.sin(Math.PI*fn),sn=rn[0][1],ln=(mn)=>jn([0.6,0.14,0.12],[0.42,0.22,0.12],Jn(0.6,1,mn.v)),cn=[{geometry:Xl([[0,sn-0.04,0],[0,sn+0.06,0]],{radius:(mn)=>0.07+0.015*mn,sides:Da(18),color:ln,capColor:[0.35,0.12,0.08]})}];for(let mn=0;mn<6;mn++){let fn=mn/6*Qa;cn.push({geometry:Xl([[0.07,0,0],[0.09,0.05,0],[0.12,0.1,0]],{radius:(hn)=>0.025*(1-hn)+0.002,sides:Da(6),color:ln}),position:[0,sn+0.04,0],rotation:pm(fn)})}let un=ga([{geometry:$a(rn,{segments:Da(Tl),color:nn,displace:an})},...cn]),dn=(mn)=>mn>0.95?[0.62,0.08,0.09]:mn>0.88?[0.98,0.82,0.68]:[0.96,0.9,0.72],pn=()=>{let mn=rn.slice(0,Math.floor(rn.length/2)+1),fn=mn[mn.length-1][0],hn=$a(hm(1.2,0.5,2,8),{segments:Da(8),color:[1,1,1]}),bn=[],yn=0.052;for(let _n=-1;_n<=1;_n+=0.052/fn)for(let vn=-1;vn<=1;vn+=0.052/fn){let Tn=vn+(vi(vn*13,_n*7)-0.5)*0.04,Rn=_n+(vi(_n*11,vn*5)-0.5)*0.04+Math.round(vn/(0.052/fn))%2*0.052/fn/2,An=Math.hypot(Tn,Rn),Mn=Math.atan2(Rn,Tn),Cn=Math.abs(Math.sin(Mn*3+0.3))*An;if(An>0.84||An<0.1||Cn<0.05)continue;let Ln=vi(Tn*31,Rn*17);bn.push({geometry:hn,position:[Tn*fn,-0.006,Rn*fn],rotation:fm(pm(Ln*Qa),Ja([1,0,0],Math.PI/2+(Ln-0.5)*0.6)),scale:[0.044,0.05,0.03],color:jn([0.85,0.06,0.14],[0.62,0.02,0.1],Ln)})}let En=ga([{geometry:ga([{geometry:$a(mn,{segments:Da(Tl),color:Iv(nn),displace:Ow(an),capColor:dn,capRings:12})},...cn,...bn]),rotation:jy}]),Sn=wn(En,{center:!1,shine:0.55});return[Sn,Sn]};return ol({center:tl(un),whole:wn(un,{center:!1,shine:0.45}),juice:[0.8,0.05,0.15]},pn)}function FCt(){let rn=xl(Ky(1,(mn)=>0.25*Math.pow(Math.max(0,1-Math.pow(Math.abs(2*mn-1),2.2)),0.45454545454545453)*(0.7+0.42*mn),72)),nn=(mn,fn)=>-0.006*Math.pow(Math.abs(Math.cos(mn*Qa*2.5)),3)*Math.sin(Math.PI*fn),an=({u:mn,v:fn})=>{let hn=Jn(0.35,0.8,fn*0.7+ja(mn,fn,5,6)*0.55),bn=jn([0.3,0.5,0.14],[0.98,0.7,0.16],hn);if(bn=jn(bn,[0.95,0.5,0.12],hn*Jn(0.55,0.85,ja(mn,fn,8,10))*0.5),vi(Math.floor(mn*140),Math.floor(fn*90))>0.97)bn=jn(bn,[0.25,0.35,0.1],0.5);return jn(bn,[0.4,0.5,0.18],Jn(0.06,0,fn)*0.6)},sn=Ja([0,0,1],-Math.PI/2),ln=rn[0][1],cn=ga([{geometry:ga([{geometry:$a(rn,{segments:Da(Tl),color:an,displace:nn})},{geometry:Xy(0.04,0.02,0),position:[0,ln-0.01,0],color:[1.3,1.6,0.9]}]),rotation:sn}]),un=(mn)=>Math.max(0,0.5*Math.sin(Math.PI*Jn(0.25,-0.42,mn))),dn=(mn,fn)=>{let hn=un(fn);if(mn>0.96)return[0.5,0.6,0.15];if(mn<hn)return jn([0.5,0.12,0.07],[0.95,0.42,0.22],Jn(0.75,1,mn/hn));return jn([1,0.5,0.26],[1,0.62,0.34],Jn(hn,0.9,mn))},pn=()=>{let mn=[];for(let bn=0;bn<90;bn++){let yn=0.2-0.58*vi(bn,1),En=un(yn)*SCt(rn,yn)*0.85;if(En<0.025)continue;let Sn=(vi(bn,2)*2-1)*En;mn.push({geometry:$a(hm(1,0.5,2,8),{segments:Da(10)}),position:[Sn,yn,0.004+0.01*vi(bn,3)],scale:0.042,color:[0.06,0.05,0.04]})}let fn=ga([{geometry:ga([{geometry:$a(rn,{segments:Da(Tl),sweep:Math.PI,color:bm(an),displace:(bn,yn)=>nn(bn*0.5,yn),cutColor:dn,cutSteps:24})},...mn]),rotation:sn}]),hn=wn(fn,{center:!1,shine:0.45});return[hn,hn]};return ol({center:tl(cn),whole:wn(cn,{center:!1,shine:0.4}),juice:[1,0.55,0.3]},pn)}function ol(rn,nn){let an,sn=qy,ln=()=>{qy=sn;try{return nn()}finally{qy=1}};return Object.defineProperty(rn,"pieces",{get:()=>{if(!an)an=ln(),nn=void 0,cB.add(rn);return an},enumerable:!0})}function Lc(rn,nn=1){let an=`${rn}@${nn}`,sn=aB.get(an);if(!sn){let ln,cn=()=>{qy=nn;try{return BMe[rn]()}finally{qy=1}},un=Bn(`fruit:${an}:whole`,()=>(ln=cn(),{whole:ln.whole,center:ln.center,juice:ln.juice})),dn;sn=Object.defineProperty({...un},"pieces",{enumerable:!0,get:()=>{if(!dn)dn=Bn(`fruit:${an}:pieces`,()=>(ln??=cn()).pieces),ln=void 0,cB.add(sn);return dn}}),aB.set(an,sn)}return sn}function gh(){if(!rB){let rn={};for(let nn of Object.keys(BMe))Object.defineProperty(rn,nn,{get:()=>Lc(nn),enumerable:!0});rB=rn}return rB}function*HCt(rn,nn,an=!1){for(let sn of rn)if(yield()=>Lc(sn,nn).whole,an)yield()=>Lc(sn,nn).pieces}var Qa,mm=(rn)=>rn-Math.floor(rn),vi=(rn,nn)=>mm(Math.sin(rn*127.1+nn*311.7)*43758.5453),nB=(rn)=>rn*rn*(3-2*rn),yCt=(rn)=>Math.max(0,Math.min(1,rn)),Jn=(rn,nn,an)=>nB(yCt((an-rn)/(nn-rn))),jn=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an],Sd=(rn,nn)=>[rn[0]*nn,rn[1]*nn,rn[2]*nn],Ja=(rn,nn)=>[rn[0]*Math.sin(nn/2),rn[1]*Math.sin(nn/2),rn[2]*Math.sin(nn/2),Math.cos(nn/2)],pm=(rn)=>Ja([0,1,0],rn),qy=1,Da=(rn)=>rn<=8?rn:Math.max(8,Math.round(rn*qy)),hm=(rn,nn,an=2,sn=64)=>Ky(rn,(ln)=>nn*Math.pow(Math.max(0,1-Math.pow(Math.abs(2*ln-1),an)),1/an),sn),vCt,TCt,xCt,Iw=(rn=8)=>$a([[0,0.5],[0.22,0.32],[0.4,0.02],[0.36,-0.28],[0.2,-0.45],[0,-0.5]],{segments:rn}),lB=(rn,nn,an,sn=0.012)=>sB(new Yy().addStar(0,0,rn,nn,an),{depth:sn}),RCt,jy,Tl=72,bm=(rn)=>(nn)=>rn({u:nn.u*0.5,v:nn.v}),Iv=(rn)=>(nn)=>rn({u:nn.u,v:nn.v*0.5}),Ow=(rn)=>(nn,an)=>rn(nn,an*0.5),kMe=(rn,nn)=>(an,sn)=>-rn*Math.pow(ja(an,sn,nn,nn*0.55),2)-rn*0.5*ja(an,sn,nn*2.5,nn*1.4),oB=([rn,nn,an])=>[rn-0.22*nn*nn+0.05*nn,nn,an*0.8],NMe=([rn,nn,an])=>{let sn=1-0.09*Math.exp(-Math.pow(rn/0.08,2))*Jn(0,0.3,an)*Jn(0.48,0.15,Math.abs(nn+0.03));return[rn,nn,an*sn]},cB,BMe,aB,_d=(rn,nn=1,an=!1)=>{let sn=aB.get(`${rn}@${nn}`);return sn!==void 0&&(!an||cB.has(sn))},rB;var M=e(()=>{na();Qa=Math.PI*2;vCt=[0.24,0.56,0.17],TCt=[0.19,0.46,0.14],xCt=[0.55,0.74,0.36];RCt=Ja([1,0,0],-Math.PI/2),jy=Ja([1,0,0],-Math.PI/2);cB=new WeakSet;BMe={apple:ACt,orange:MCt,lemon:CCt,pear:wCt,strawberry:LCt,watermelon:ICt,banana:OCt,cherries:PCt,grapes:gCt,kiwi:DCt,mango:NCt,peach:GCt,pineapple:kCt,pomegranate:BCt,papaya:FCt},aB=new Map});var fr={};n(fr,{aim:()=>yB,buildScene:()=>EB,celebrate:()=>AB,clearFruits:()=>Gw,drawFruits:()=>TB,drawPreview:()=>RB,jolt:()=>MB,mergeFx:()=>xB,removeScene:()=>SB,setDanger:()=>Pv,setSceneTheme:()=>_B,warmAssets:()=>QCt});import{effects as WMe,extrude as UMe,lathe as dB,merge as VMe,Path as zMe,quat as hB,tube as qMe}from"@nayan-ui/engine";function UCt(){return Bn("fruit-merger/FruitMergerScene:pumpkinModel",()=>VCt())}function VCt(){if(Pw)return Pw;let rn=Array.from({length:41},(cn,un)=>{let dn=Math.PI*un/40,pn=0.5*Math.sin(dn),mn=0.4*Math.cos(dn)-0.06*Math.exp(-Math.pow(dn/0.45,2))+0.04*Math.exp(-Math.pow((Math.PI-dn)/0.45,2));return[Math.max(0.0005,pn),mn]}),nn=(cn)=>1-Math.pow(Math.abs(Math.sin(cn*Math.PI*8)),0.4),an=dB(rn,{segments:64,displace:(cn,un)=>-0.045*nn(cn)*Math.sin(Math.PI*un),color:({u:cn,v:un})=>{let dn=nn(cn),pn=1-0.35*dn-0.12*Math.pow(Math.abs(un-0.5)*2,3);return[0.98*pn,(0.52-0.08*dn)*pn,0.08*pn,1]}}),sn=qMe([[0,0.3,0],[0.01,0.4,0],[0.05,0.48,0],[0.09,0.5,0]],{radius:(cn)=>0.05*(1-0.45*cn),sides:10,color:[0.36,0.42,0.16,1]}),ln=VMe([{geometry:an},{geometry:sn}]);return Pw={model:wn(ln,{center:!1,shine:0.55}),center:[0,0.04,0]},Pw}function zCt(){return Bn("fruit-merger/FruitMergerScene:lemonModel",()=>qCt())}function qCt(){if(gw)return gw;let rn=Array.from({length:49},(cn,un)=>{let dn=Math.PI*un/48,pn=0.07*(Math.exp(-Math.pow(dn/0.22,2))+Math.exp(-Math.pow((Math.PI-dn)/0.22,2)));return[Math.max(0.0005,0.47*Math.sin(dn)),(0.45+pn)*Math.cos(dn)]}),nn=dB(rn,{segments:56,displace:(cn,un)=>0.006*Oa(cn*40,un*30)*Math.sin(Math.PI*un),color:({v:cn,position:un})=>{let dn=Math.pow(Math.abs(cn-0.5)*2,3),pn=1-0.18*dn+0.05*Oa(un[0]*30,un[1]*30);return[0.99*pn,(0.84-0.1*dn)*pn,0.18*pn,1]}}),an=qMe([[0,0.5,0],[0.02,0.56,0]],{radius:0.025,sides:8,color:[0.38,0.45,0.16,1]}),sn=dB([[0.0005,0],[0.05,0.03],[0.06,0.1],[0.03,0.17],[0.0005,0.2]],{segments:10,color:[0.25,0.55,0.2,1]}),ln=VMe([{geometry:nn},{geometry:an},{geometry:sn,position:[0.03,0.53,0],rotation:hB.z(-1.1),scale:[1,1,0.35]}]);return gw={model:wn(ln,{center:!1,shine:0.6}),center:[0,0.02,0]},gw}function KMe(rn){let nn=el[rn].name;if(nn==="pumpkin")return UCt();if(nn==="lemon")return zCt();let an=gh()[nn];return{model:an.whole,center:an.center}}function Dw(rn,nn,an,sn=1){let ln=el[nn].size,{model:cn,center:un}=KMe(nn),[dn,pn]=cn.size,mn=(dn+pn)/2,fn=ln*xw*0.97/mn,bn=YCt.has(el[nn].name)?[fn*(dn+mn)/2/dn,fn*(pn+mn)/2/pn,fn]:[fn,fn,fn],yn=rn.spawn({mesh:"none",position:an,scale:sn,pickable:!1});return rn.spawn({mesh:cn,parent:yn,position:[-un[0]*bn[0],-un[1]*bn[1],-un[2]*bn[2]],scale:bn,color:WCt,pickable:!1}),yn}function yB(rn,nn){let an=Math.cos(nn.tilt),sn=Math.sin(nn.tilt),ln=(nn.centerY-2*nn.k-nn.height/2)/(nn.k*an);rn.target=[-(nn.centerX-nn.width/2)/nn.k,ln,0],rn.eye=[rn.target[0],ln+sn*FMe,an*FMe],rn.ortho=nn.height/(2*nn.k)}function fB(rn){let nn=ks,an=_i,sn=Vs+rn,ln=[[-rn,0]],cn=(un,dn,pn)=>{for(let mn=0;mn<=12;mn++){let fn=dn+(pn-dn)*mn/12;ln.push([un+Math.cos(fn)*sn,an-Vs+Math.sin(fn)*sn])}};return cn(Vs,Math.PI,Math.PI/2),cn(nn-Vs,Math.PI/2,0),ln.push([nn+rn,0]),ln.map(([un,dn])=>[un-nn/2,dn-an/2])}function $Me(rn,nn){let an=zy/2,sn=jCt(nn),ln=$Ct(nn);return[rn.spawn({mesh:jMe(),position:[0,0,-an-1],color:sn,pickable:!1}),rn.spawn({mesh:Nw(0,Aw,zy,0),position:[0,0,0],color:sn,pickable:!1}),rn.spawn({mesh:Nw(0,1.6,0.6,0),position:[0,0,an+0.3],color:ln,pickable:!1})]}function EB(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-pB,an);ZCt(rn,sn,nn);let ln=(ks-8)/(mB*1.75),cn=Array.from({length:mB},(pn,mn)=>rn.spawn({mesh:"cube",position:Ed(4+ln/2+mn*ln*1.75,wv,-zy/2+1.2),scale:[ln,1.5,0.6],color:vB(an,0),pickable:!1})),un=bB(an),dn=Array.from({length:YMe},(pn,mn)=>rn.spawn({mesh:"sphere",scale:0,color:[un[0],un[1],un[2],Math.max(0.6-mn*0.04,0.15)],pickable:!1}));return{backdrop:sn,jar:$Me(rn,an),dashes:cn,dots:dn,preview:null,previewId:null,previewX:NaN,previewY:NaN,next:null,nextType:-1,fruits:new Map,danger:0,hot:!1}}function ZCt(rn,nn,an){let sn=Math.cos(an.tilt),ln=(an.centerY-2*an.k-an.height/2)/(an.k*sn);rn.set(nn,{position:[-(an.centerX-an.width/2)/an.k-an.width/(2*an.k),ln+(an.height/(2*an.k)-pB*Math.sin(an.tilt))/sn,-pB],scale:[1/an.k,1/(an.k*sn),1]})}function SB(rn,nn){for(let an of[nn.backdrop,...nn.jar,...nn.dashes,...nn.dots,nn.preview,nn.next,...nn.fruits.values()])if(an!=null)rn.despawn(an)}function _B(rn,nn,an){aa(rn,nn.backdrop,an);for(let ln of nn.jar)rn.despawn(ln);nn.jar=$Me(rn,an);for(let ln of nn.dashes)rn.set(ln,{color:vB(an,nn.danger)});let sn=bB(an);nn.dots.forEach((ln,cn)=>rn.set(ln,{color:[sn[0],sn[1],sn[2],Math.max(0.6-cn*0.04,0.15)]}))}function vB(rn,nn){let an=bB(rn),sn=rn.mode==="light"?[an[0],an[1],an[2],0.28]:xn(Jk.DANGER_SAFE),ln=xn(Jk.DANGER_HOT),cn=(un)=>(sn[un]??1)+((ln[un]??1)-(sn[un]??1))*nn;return[cn(0),cn(1),cn(2),cn(3)]}function Pv(rn,nn,an,sn){if(sn===nn.danger)return;nn.danger=sn;let ln=vB(an,sn),cn=sn>0.35;for(let un of nn.dashes)if(rn.stopAnimation(un),rn.set(un,{color:ln,scale:[(ks-8)/(mB*1.75),1.5+sn*1.5,0.6]}),cn)rn.animate(un,{color:[ln[0],ln[1],ln[2],(ln[3]??1)*0.35]},{duration:0.38,easing:"easeInOut",repeat:"forever",yoyo:!0});nn.hot=cn}function TB(rn,nn,an){let sn=rn.transforms;for(let ln of an){let cn=nn.fruits.get(ln.id);if(cn==null)cn=Dw(rn,ln.typeId,Ed(ln.x,ln.y)),nn.fruits.set(ln.id,cn);hB.z(-ln.angle,Ov),sn.transform(cn,ln.x-ks/2,_i/2-ln.y,0,Ov[0],Ov[1],Ov[2],Ov[3])}sn.flush()}function xB(rn,nn,an,sn,ln){let cn=Ed(ln.x,ln.y);for(let fn of[an,sn]){let hn=nn.fruits.get(fn.id);if(hn==null)continue;nn.fruits.delete(fn.id),rn.animate(hn,{position:cn,scale:0.2},{duration:0.12,easing:"easeIn"}).then(()=>{if(rn.has(hn))rn.despawn(hn)})}let un=Dw(rn,ln.typeId,cn,0.5);rn.animate(un,{scale:1},{spring:"bouncy"}),nn.fruits.set(ln.id,un);let dn=el[ln.typeId],pn=xn(dn.color),mn=rn.spawn({mesh:"torus",position:[cn[0],cn[1],zy/2-2],rotation:hB.x(Math.PI/2),scale:dn.size*0.6,color:[pn[0],pn[1],pn[2],0.9],pickable:!1});rn.animate(mn,{scale:dn.size*1.5,color:[pn[0],pn[1],pn[2],0]},{duration:0.42,easing:"easeOut"}).then(()=>{if(rn.has(mn))rn.despawn(mn)}),WMe.sparkle(rn,{position:[cn[0],cn[1],10],count:18,size:dn.size*0.08,speed:dn.size*2.2,lifetime:0.5,gravity:-dn.size*3,colors:[pn,[1,1,1,1]],flash:!1})}function Gw(rn,nn){for(let an of nn.fruits.values())rn.despawn(an);nn.fruits.clear()}function RB(rn,nn,an,sn=-1){if(!an&&nn.previewId===null&&nn.nextType===-1)return;if(an&&nn.previewId===an.id&&nn.previewX===an.x&&nn.previewY===an.y&&nn.nextType===sn)return;if(an)nn.previewX=an.x,nn.previewY=an.y;if(!an){if(nn.preview!=null)rn.despawn(nn.preview);if(nn.preview=null,nn.previewId=null,nn.next!=null)rn.despawn(nn.next);nn.next=null,nn.nextType=-1;for(let un of nn.dots)rn.set(un,{scale:0});return}if(nn.previewId!==an.id){if(nn.preview!=null)rn.despawn(nn.preview);nn.preview=Dw(rn,an.typeId,Ed(an.x,an.y,4),0.3),rn.animate(nn.preview,{scale:1},{spring:{stiffness:240,damping:11}}),nn.previewId=an.id}if(rn.set(nn.preview,{position:Ed(an.x,an.y,4)}),sn!==nn.nextType){if(nn.next!=null)rn.despawn(nn.next);if(nn.next=sn>=0?Dw(rn,sn,[0,0,4],uB*0.4):null,nn.next!=null)rn.animate(nn.next,{scale:uB},{spring:{stiffness:240,damping:12}});nn.nextType=sn}if(nn.next!=null){let un=an.y-el[an.typeId].size/2-el[sn].size*uB/2-4;rn.set(nn.next,{position:Ed(ks/2,un,4)})}let ln=an.y+el[an.typeId].size/2+15,cn=(_i-10-ln)/YMe;nn.dots.forEach((un,dn)=>rn.set(un,{position:Ed(an.x,ln+dn*cn,2),scale:Math.max(4-dn*0.2,1.5)*2}))}function AB(rn){WMe.confetti(rn,{position:Ed(ks/2,_i*0.35,20),count:70,size:7,speed:ks*1.3,lifetime:1.4,gravity:-ks*2,colors:["#FFD700","#FF9800","#4CAF50","#E91E63"].map((nn)=>xn(nn))})}function MB(rn){rn.shake=6}function*QCt(){yield jMe;for(let rn=0;rn<el.length;rn++)yield()=>KMe(rn);yield()=>Nw(0,Aw,zy,0),yield()=>Nw(0,1.6,0.6,0)}var FMe=260,pB=220,mB=24,YMe=12,WCt,Pw,gw,YCt,bB=(rn)=>rn.mode==="light"?xn(rn.TEXT):[1,1,1,1],HMe,XMe=(rn,nn)=>{let an=HMe.get(rn);if(!an)an=Bn("fruit-merger/FruitMergerScene:"+rn,nn),HMe.set(rn,an);return an},Nw=(rn,nn,an,sn)=>XMe(`fm-band:${rn}:${nn}:${an.toFixed(1)}:${sn}`,()=>{let ln=[...fB(nn),...fB(rn).reverse()];return wn(UMe(new zMe().addPolygon(ln),{depth:an}),{center:!1,shine:sn})}),jMe=()=>XMe("fm-back",()=>wn(UMe(new zMe().addPolygon(fB(Aw)),{depth:1.5}),{center:!1,shine:0.1})),KCt,XCt,jCt=(rn)=>rn.mode==="classic"?KCt:xn(rn.BOARD.SURFACE),$Ct=(rn)=>rn.mode==="classic"?XCt:xn(rn.BOARD.BORDER),Ov,uB=0.4;var Yt=e(()=>{u();M();d();na();Hn();Lv();WCt=[1,1,1,1];YCt=new Set(["papaya"]);HMe=new Map;KCt=[1,1,1,0.3],XCt=[1,1,1,0.35];Ov=[0,0,0,1]});import{World as JCt}from"@nayan-ui/engine";function QMe(rn){let nn=new JCt(ewt),sn={world:nn,camera:{eye:[0,0,260],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",bodies:[],current:null,nextType:0,bestType:-1,get time(){return nn.scoreboard.shownSeconds},get score(){return nn.scoreboard.score},outcome:null,st:{overflowSteps:0,danger:0,merges:0,generation:0},pending:0,spawnAt:0,dragFrom:ks/2,clock:0,onPhase:(ln)=>{},onTime:(ln)=>{},onScore:(ln)=>{},onNext:(ln)=>{},onBest:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&wB(sn,"time")},tCe(sn),sn}function JMe(rn,nn){if(rn.scene)SB(rn.world,rn.scene);rn.layout=nn,yB(rn.camera,nn),rn.scene=EB(rn.world,nn,rn.theme),Pv(rn.world,rn.scene,rn.theme,rn.st.danger),gv(rn)}function eCe(rn,nn){if(rn.theme=nn,rn.scene)_B(rn.world,rn.scene,nn)}function gv(rn){let nn=rn.scene;if(!nn)return;TB(rn.world,nn,rn.bodies),RB(rn.world,nn,rn.phase==="over"?null:rn.current,rn.nextType)}function tCe(rn){rn.st.generation+=1,rn.bodies=[],rn.pending=0,rn.spawnAt=0,rn.st.overflowSteps=0,rn.bestType=-1;let nn=CB();if(rn.current=ZMe(nn,kw(rn)),rn.nextType=CB(),rn.world.scoreboard.reset(0,dm),rn.outcome=null,rn.phase="ready",rn.scene)Gw(rn.world,rn.scene);gv(rn),rn.onTime(dm),rn.onScore(0),rn.onNext(rn.nextType),rn.onBest(-1)}function oCe(rn){if(rn.phase!=="ready")return;if(rn.st.generation+=1,rn.bodies=[],rn.pending=0,rn.spawnAt=0,rn.st.overflowSteps=0,rn.st.danger=0,rn.bestType=-1,rn.phase="playing",rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(dm),rn.onScore(0),rn.scene)Gw(rn.world,rn.scene),Pv(rn.world,rn.scene,rn.theme,0);if(!rn.current)aCe(rn);gv(rn),rn.onTime(dm),rn.onBest(-1),rn.onPhase("playing")}function rCe(rn){tCe(rn),rn.onPhase("ready")}function nCe(rn){rn.world.dispose()}function aCe(rn){rn.current=ZMe(rn.nextType,kw(rn)),rn.nextType=CB(),rn.onNext(rn.nextType)}function wB(rn,nn){if(rn.world.scoreboard.stop(),rn.outcome=nn,rn.phase="over",nn==="win")AB(rn.world);else MB(rn.camera);gv(rn),rn.onPhase("over")}function sCe(rn,nn){if(rn.world.isDisposed)return;if(rn.clock+=Math.min(nn,0.25),rn.phase==="playing")owt(rn,nn*1000);gv(rn),rn.world.update(nn)}function owt(rn,nn){let an=Math.min(rn.pending+nn,CMe);if(an<Rw-Qk){rn.pending=an;return}let sn=kw(rn),ln={outcome:null},cn=!1;while(an>=Rw-Qk){if(an-=Rw,rn.bodies.length===0)continue;let un=gMe(rn.bodies,sn,rn.st,ln);if(un){if(rn.scene)xB(rn.world,rn.scene,un.a,un.b,un.made);if(rn.onScore(rn.world.scoreboard.add(el[un.made.typeId].score)),un.made.typeId>rn.bestType)rn.bestType=un.made.typeId,rn.onBest(rn.bestType);rn.onEvent("merge")}if(ln.outcome)break;if(rn.spawnAt>0&&sn>=rn.spawnAt)rn.spawnAt=0,cn=!0}if(rn.pending=an,rn.scene)Pv(rn.world,rn.scene,rn.theme,rn.st.danger);if(ln.outcome==="win"){rn.onEvent("win"),wB(rn,"win");return}if(ln.outcome==="lose"){wB(rn,"overflow");return}if(cn&&!rn.current)aCe(rn)}function iCe(rn,{phase:nn,dx:an,cancelled:sn}){let{layout:ln,current:cn}=rn;if(!ln||!cn)return;if(nn==="start"){rn.dragFrom=cn.x;return}let un=Mw(cn.typeId);if(cn.x=Math.max(un,Math.min(ks-un,rn.dragFrom+an/ln.k)),nn==="end"&&!sn)rwt(rn)}function rwt(rn){let nn=rn.current;if(rn.phase!=="playing"||!nn)return;let an=kw(rn);if(rn.bodies.push(tB(nn.id,nn.typeId,nn.x,nn.y,0,an)),nn.typeId>rn.bestType)rn.bestType=nn.typeId,rn.onBest(rn.bestType);rn.current=null,rn.spawnAt=an+MMe,rn.onEvent("drop")}var ewt=500,CB=()=>Math.floor(Math.random()*vMe),twt=(rn)=>`fruit-${Math.round(rn)}-${Math.random()}`,ZMe=(rn,nn)=>({id:twt(nn),typeId:rn,x:ks/2,y:Mw(rn)+10}),kw=(rn)=>rn.clock*1000,LB=(rn)=>rn.score+(rn.outcome==="win"?Ya(dm-rn.time,SMe,_Me):0);var lCe=e(()=>{ci();Lv();DMe();Yt()});var hr={};n(hr,{FruitMerger:()=>Kt});import{jsx as awt}from"react/jsx-runtime";var $y,cCe,nwt,Kt;var me=e(()=>{Ta();l();a();_a();o();xa();va();Lv();lCe();$y=t.FRUIT_MERGER,cCe={drop:{sound:$y.DROP,haptic:"light"},merge:{sound:$y.MERGE,haptic:"medium"},win:{sound:$y.COMPLETE,haptic:"success"}},nwt={win:"You reached the Pumpkin!",time:"You ran out of time!",overflow:"Fruits overflowed!"},Kt=Vn("fruit-merger",(rn)=>{let[nn,an]=gn(dm),[sn,ln]=gn(0),{game:cn,theme:un,status:dn,screen:pn,gameOver:mn}=zn(rn,{gameId:"fruit-merger",create:QMe,start:oCe,reset:rCe,dispose:nCe,tick:sCe,setTheme:eCe,resize:(fn,hn,bn,yn)=>JMe(fn,LMe(hn,bn,yn)),drag:iCe,outcome:(fn)=>fn.outcome==="win"?"win":"lose",reportScore:(fn)=>LB(fn),sounds:$y,onStart:(fn)=>fn($y.START,"medium"),onOver:(fn,hn)=>{if(hn!=="win")fn($y.GAME_OVER,"heavy")},wire:(fn,hn)=>{fn.onTime=an,fn.onScore=ln,fn.onEvent=(bn)=>hn(cCe[bn].sound,cCe[bn].haptic)}});return awt(Un,{...pn,light:wMe,columns:[Qn(sn),ta(nn,un,0)],subtext:"Merge fruits!",gameOver:mn({title:dn==="win"?"YOU WON!":"GAME OVER",message:nwt[cn.outcome??"overflow"],scoreLabel:"Score",score:LB(cn),buttonText:"Merge Again!"})})})});var br={};n(br,{BLADE_POINTS:()=>Td,BLADE_WINDOW:()=>VB,BOMB_CHANCE:()=>Bw,BOMB_COLORS:()=>XB,FIRST_FRUITS:()=>HB,FIRST_WAVE:()=>gB,FRAME_TIME:()=>Dv,FRUIT_BUILD_GAP:()=>WB,FRUIT_DETAIL:()=>Em,FRUIT_KINDS:()=>Fw,MAX_FRAMES:()=>FB,MAX_LIVES:()=>vd,PIECE_LIFETIME:()=>KB,PIECE_SPREAD:()=>Ww,POINTS_PER_FRUIT:()=>IB,POINTS_PER_STAR:()=>OB,SPAWN_FROM:()=>zB,SPAWN_SPRING:()=>qB,SPIN_RANGE:()=>UB,STAR_CHANCE:()=>PB,STAR_COLORS:()=>Zy,TIME_LIMIT:()=>ym,TRAIL_FADE:()=>YB,WALL_BOUNCE:()=>Hw,WAVE_INTERVAL:()=>GB,WAVE_JITTER:()=>kB,WAVE_MIN:()=>BB,WAVE_SIZE:()=>DB,WAVE_STAGGER:()=>NB,getLayout:()=>jB});function jB(rn,nn,an){let sn=$n(rn),ln=nn*(1-lwt)-dCe;return{width:rn,height:nn,offset:an,fieldLeft:(rn-sn)/2,fieldWidth:sn,size:swt,gravity:uCe,launchVy:-Math.sqrt(2*uCe*ln),launchVxRange:iwt,spawnY:nn-dCe}}var ym=120,vd=3,IB=100,OB=500,Bw=0.18,PB=0.07,Fw,gB=1,DB=2,NB=0.7,GB=1.8,kB=0.4,BB=0.5,Dv=0.016666666666666666,FB=2,swt,Em,HB=3,WB=300,uCe,iwt,dCe=50,lwt=0.15,Hw=0.8,UB=0.2,VB=0.07,Td=10,zB=0.55,qB,YB=0.22,KB=1.1,Ww=2.5,XB,Zy;var fe=e(()=>{a();Hn();Fw=["apple","orange","banana","grapes","kiwi","strawberry","mango","peach","cherries","pineapple","watermelon","pomegranate","papaya"],swt=c?90:60,Em=c?0.7:0.5,uCe=c?0.15:0.12,iwt=c?1.5:1,qB={damping:11,stiffness:220},XB=["#1f2937","#374151","#f97316","#fde047"],Zy=["#fbbf24","#f59e0b","#fef3c7","#ffffff"]});var Nv=3.6,pCe=(rn,nn)=>Fl(rn,nn,{eyeHeight:1.6,horizon:0.62,playDepth:Nv}),$B=(rn,nn,an)=>$i(rn,nn,an);var Uw=e(()=>{d();d()});var yr={};n(yr,{buildModels:()=>qw,drawTrail:()=>Kw,fadeTrail:()=>r7,hideTrail:()=>Xw,placeItem:()=>t7,removeTrail:()=>n7,sliceItem:()=>o7,spawnItem:()=>e7,spawnTrail:()=>Yw,warmAssets:()=>ywt});import{effects as ZB,extrude as mCe,merge as cwt,Path as fCe,quat as hCe,shapeGeometry as QB,tube as uwt}from"@nayan-ui/engine";function qw(rn){return yCe??=Bn("fruit-ninja/extras",()=>({bomb:wn(cwt([{geometry:QB("sphere"),color:[0.13,0.14,0.17]},{geometry:QB("cylinder"),position:[0,0.5,0],scale:[0.26,0.14,0.26],color:[0.35,0.37,0.42]},{geometry:uwt([[0,0.55,0],[0.04,0.7,0],[0.14,0.78,0],[0.22,0.76,0]],{radius:0.035}),color:[0.76,0.6,0.38]}]),{fit:1,shine:0.7}),spark:wn(QB("sphere")),star:wn(mCe(new fCe().addStar(0,0,0.5,0.22,5),{depth:0.22,color:xn(Zy[0])}),{fit:1,shine:0.6}),disc:wn(mCe(new fCe().addCircle(0,0,0.5),{depth:0}))})),{fruits:rn,...yCe}}function Vw(rn,nn,an=[0,0,0]){let sn=nn/Math.max(rn.size[0],rn.size[1]);return{scale:sn,position:[-an[0]*sn,-an[1]*sn,-an[2]*sn]}}function e7(rn,nn,an,sn,ln,cn,un,dn){let pn=(Math.random()-0.5)*3,mn=an.size*Ha(nn),fn=rn.spawn({mesh:"none",position:Fa(nn,cn,un),scale:zB,spin:[pn*0.4,pn,-dn*Gv],pickable:!1});rn.animate(fn,{scale:1},{spring:qB});let hn=(bn,yn,En=ECe)=>rn.spawn({mesh:bn,parent:fn,position:yn.position,scale:yn.scale,color:En,pickable:!1});if(ln.kind==="fruit"){let bn=sn.fruits[ln.fruit];hn(bn.whole,Vw(bn.whole,mn,bn.center))}else if(ln.kind==="bomb"){hn(sn.bomb,Vw(sn.bomb,mn*0.92));let bn=rn.spawn({mesh:sn.spark,parent:fn,position:[mn*0.2,mn*0.36,0],scale:mn*0.1,color:dwt,pickable:!1});rn.animate(bn,{scale:mn*0.16},{duration:0.12,repeat:"forever",yoyo:!0})}else hn(sn.star,Vw(sn.star,mn*0.95),xn(Zy[0]));return fn}function t7(rn,nn,an,sn,ln,cn){let un=Ha(nn),dn=(nn.height/2-ln)*un;if(Dh[0]=nn.eye[0]+nn.forward[0]*nn.playDepth+(sn-nn.width/2)*un,Dh[1]=nn.eye[1]+nn.forward[1]*nn.playDepth+dn*nn.up[1],Dh[2]=nn.eye[2]+nn.forward[2]*nn.playDepth+dn*nn.up[2],cn)cn.position(an,Dh[0],Dh[1],Dh[2]);else rn.set(an,{position:Dh})}function o7(rn,nn,an,sn,ln,cn,un,dn,pn,mn,fn,hn){rn.despawn(ln);let bn=Ha(nn),yn=an.size*bn,En=Fa(nn,un,dn),Sn=Fa(nn,un,dn,Nv-yn*0.5),_n=an.gravity*Gv*Gv,vn=t_(nn,0,_n);if(cn.kind==="fruit"){let An=sn.fruits[cn.fruit],Mn=Math.hypot(fn,hn)||1,Cn=hn/Mn,Ln=-fn/Mn,On=Mi(nn,Math.atan2(-Ln,Cn)),Dn=Vw(An.whole,yn,An.center);[-1,1].forEach((Nn,Wn)=>{let Fn=rn.spawn({mesh:"none",position:En,rotation:hCe.multiply(On,hCe.y(Nn<0?Math.PI/2:-Math.PI/2)),velocity:t_(nn,(pn+Nn*Cn*Ww)*Gv,(mn+Nn*Ln*Ww)*Gv),acceleration:vn,spin:[0,0,Nn*2.5],lifetime:KB,pickable:!1});rn.spawn({mesh:An.pieces[Wn],parent:Fn,position:Dn.position,scale:Dn.scale,color:ECe,pickable:!1})}),ZB.splash(rn,{position:Sn,count:14,size:yn*0.09,speed:yn*5,lifetime:0.55,gravity:-_n*bn*0.6,colors:pwt(An.juice)});return}let Tn=cn.kind==="bomb";if(Tn)ZB.explosion(rn,{position:Sn,count:16,size:yn*0.7,speed:yn*2.6,lifetime:0.6,gravity:-_n*bn*0.5,debris:mwt,flash:!1});else ZB.sparkle(rn,{position:Sn,count:16,size:yn*0.1,speed:yn*6,lifetime:0.6,gravity:-_n*bn*0.3,colors:fwt,flash:!1});let Rn=rn.spawn({mesh:sn.disc,position:Fa(nn,un,dn,Nv-yn),rotation:Mi(nn),scale:yn,color:Tn?[2,1.1,0.3,0.85]:[JB[0]*2,JB[1]*2,JB[2]*2,0.8],pickable:!1});rn.animate(Rn,{scale:yn*(Tn?3.2:2.2),color:[2,Tn?0.8:1.8,0.2,0]},{duration:Tn?0.4:0.3}).then(()=>{if(rn.has(Rn))rn.despawn(Rn)})}function Yw(rn){return{beads:Array.from({length:Td},()=>rn.spawn({mesh:"sphere",scale:zw,color:kv,pickable:!1})),shown:0,fading:!1}}function Kw(rn,nn,an,sn,ln,cn){let un=rn.transforms,dn=Math.min(cn,an.beads.length);if(an.fading){for(let hn=0;hn<an.shown;hn++)rn.stopAnimation(an.beads[hn]);an.fading=!1}let pn=Ha(nn,bCe),mn=Fa(nn,nn.width/2,nn.height/2,bCe),fn=hwt*pn;for(let hn=0;hn<dn;hn++){let bn=cn-1-hn,yn=(sn[bn]-nn.width/2)*pn,En=(nn.height/2-ln[bn])*pn,Sn=an.beads[hn];un.position(Sn,mn[0]+yn,mn[1]+En*nn.up[1],mn[2]+En*nn.up[2]),un.scale(Sn,fn*(1-hn/Td)),un.color(Sn,kv[0],kv[1],kv[2],kv[3]??1)}for(let hn=dn;hn<an.shown;hn++)un.scale(an.beads[hn],zw);an.shown=dn,un.flush()}function r7(rn,nn){if(!nn.shown)return;rn.animate(nn.beads.slice(0,nn.shown),{color:bwt,scale:zw},{duration:YB}),nn.fading=!0}function Xw(rn,nn){let an=rn.transforms;for(let sn=0;sn<nn.shown;sn++){if(nn.fading)rn.stopAnimation(nn.beads[sn]);an.scale(nn.beads[sn],zw)}an.flush(),nn.shown=0,nn.fading=!1}function n7(rn,nn){for(let an of nn.beads)rn.despawn(an)}function*ywt(){yield()=>qw({})}var zw=0,Gv,bCe,yCe,dwt,ECe,Dh,pwt=(rn)=>[rn,[Math.min(1,rn[0]+0.25),Math.min(1,rn[1]+0.25),Math.min(1,rn[2]+0.25)]],mwt,fwt,JB,hwt=7,kv,bwt;var Xt=e(()=>{Uu();na();Hn();fe();Uw();Gv=1/Dv,bCe=Nv-0.35;dwt=[3,2.1,0.6],ECe=[1,1,1,1];Dh=[0,0,0];mwt=XB.map((rn)=>xn(rn)),fwt=Zy.map((rn)=>xn(rn)),JB=xn(xp(Zy[0],0.5));kv=[1.6,1.6,1.6,0.75],bwt=[1.6,1.6,1.6,0]});import{World as Ewt}from"@nayan-ui/engine";function SCe(rn){let nn=new Ewt(Swt),sn={world:nn,camera:{eye:[0,1.6,0],target:[0,1.6,-1],fov:0.9},theme:rn,layout:null,view:null,scenery:[],models:null,trail:null,phase:"ready",get score(){return nn.scoreboard.score},get lives(){return nn.scoreboard.lives},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,time:0,items:[],kinds:[],bladeX:new Float64Array(Td),bladeY:new Float64Array(Td),bladeT:new Float64Array(Td),bladeLen:0,touching:!1,trailDirty:!1,onPhase:(ln)=>{},onScore:(ln)=>{},onLives:(ln)=>{},onTime:(ln)=>{},onTouch:()=>{},onSlice:()=>{},onBomb:()=>{},onWin:()=>{},onLose:()=>{}};return nn.scoreboard.reset(vd,ym),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&MCe(sn,!0)},sn}function s7(rn,nn){if(rn.models=qw(nn),rn.layout&&!rn.trail)rn.trail=Yw(rn.world)}function i7(rn,nn){if(!rn.kinds.includes(nn))rn.kinds.push(nn)}function _Ce(rn,nn){let an=rn.world;l7(rn);for(let cn of rn.scenery)an.despawn(cn);if(rn.trail)n7(an,rn.trail);rn.layout=nn;let sn=pCe(nn.width,nn.height);rn.view=sn;let ln=fl(sn);rn.camera.eye=ln.eye,rn.camera.target=ln.target,rn.camera.fov=ln.fov,rn.scenery=$B(an,sn,rn.theme),rn.trail=rn.models?Yw(an):null}function vCe(rn,nn){if(nn===rn.theme&&rn.scenery.length)return;rn.theme=nn;let an=rn.view;if(!an||rn.world.isDisposed)return;for(let sn of rn.scenery)rn.world.despawn(sn);rn.scenery=$B(rn.world,an,nn)}function l7(rn){for(let nn of rn.items)rn.world.despawn(nn.root);rn.items=[]}function TCe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(ym),rn.onPhase("playing"),a7(rn,gB,()=>xCe(rn))}function xCe(rn){if(rn.phase!=="playing")return;for(let nn=0;nn<DB;nn++)a7(rn,nn*NB,()=>_wt(rn));a7(rn,Math.max(BB,GB+(Math.random()-0.5)*kB),()=>xCe(rn))}function _wt(rn){let{layout:nn,view:an,models:sn}=rn;if(!nn||!an||!sn||rn.phase!=="playing")return;let ln=Math.random(),cn=ln<Bw?{kind:"bomb"}:ln<Bw+PB?{kind:"star"}:rn.kinds.length?{kind:"fruit",fruit:rn.kinds[Math.floor(Math.random()*rn.kinds.length)]}:{kind:"star"},un=Math.random()*(nn.fieldWidth-nn.size),dn=nn.spawnY,pn=nn.size/2;rn.items.push({what:cn,x:un,y:dn,vx:(Math.random()-0.5)*nn.launchVxRange,vy:nn.launchVy+(Math.random()-0.5),root:e7(rn.world,an,nn,sn,cn,nn.fieldLeft+un+pn,dn+pn,(Math.random()-0.5)*UB)})}function RCe(rn){rn.world.cancelTimers(),l7(rn),ICe(rn),rn.bladeLen=0,rn.world.scoreboard.reset(vd,ym),rn.won=!1,rn.phase="ready",rn.onScore(0),rn.onLives(vd),rn.onTime(ym),rn.onPhase("ready")}function ACe(rn){rn.world.cancelTimers(),rn.world.dispose()}function MCe(rn,nn){if(rn.world.scoreboard.stop(),rn.world.cancelTimers(),l7(rn),rn.bladeLen=0,rn.touching=!1,rn.trailDirty=!1,rn.trail)Xw(rn.world,rn.trail);if(rn.won=nn,rn.phase="over",nn)rn.onWin();else rn.onLose();rn.onPhase("over")}function CCe(rn,nn){if(rn.world.isDisposed)return;if(rn.time+=nn,rn.phase==="playing"&&rn.items.length)xwt(rn,Math.min(nn/Dv,FB));if(rn.trailDirty){if(rn.trailDirty=!1,rn.view&&rn.trail)Kw(rn.world,rn.view,rn.trail,rn.bladeX,rn.bladeY,rn.bladeLen)}rn.world.update(nn)}function c7(rn,nn,an){if(rn.phase!=="playing")return;rn.bladeLen=0,rn.touching=!0,LCe(rn,nn,an),rn.onTouch()}function wCe(rn,nn,an){if(rn.phase!=="playing"||!rn.touching)return;let sn=rn.bladeLen-1;if(sn>=0&&rn.bladeX[sn]===nn&&rn.bladeY[sn]===an)return;LCe(rn,nn,an)}function LCe(rn,nn,an){if(rn.bladeLen===Td)rn.bladeX.copyWithin(0,1),rn.bladeY.copyWithin(0,1),rn.bladeT.copyWithin(0,1),rn.bladeLen--;rn.bladeX[rn.bladeLen]=nn,rn.bladeY[rn.bladeLen]=an,rn.bladeT[rn.bladeLen]=rn.time,rn.bladeLen++,rn.trailDirty=!0}function u7(rn){ICe(rn)}function ICe(rn){if(rn.touching=!1,!rn.trail)return;if(rn.trailDirty&&rn.view)Kw(rn.world,rn.view,rn.trail,rn.bladeX,rn.bladeY,rn.bladeLen);if(rn.trailDirty=!1,rn.bladeLen>1)r7(rn.world,rn.trail);else Xw(rn.world,rn.trail)}function Twt(rn,nn,an,sn){let{bladeX:ln,bladeY:cn,bladeT:un,bladeLen:dn}=rn,pn=rn.time-VB,mn=sn*sn;if(dn===1)return un[0]>=pn&&(ln[0]-nn)**2+(cn[0]-an)**2<=mn?[1,0]:null;for(let fn=dn-2;fn>=0;fn--){if(un[fn+1]<pn)break;if(vwt(nn,an,ln[fn],cn[fn],ln[fn+1],cn[fn+1])<=mn)return[ln[fn+1]-ln[fn],cn[fn+1]-cn[fn]]}return null}function xwt(rn,nn){let an=rn.layout,sn=an.size/2,ln=an.fieldWidth-an.size,cn=rn.items,un=rn.world.transforms,dn=0;for(let pn of cn){let mn=an.fieldLeft+pn.x+sn,fn=pn.y+sn,hn=Twt(rn,mn,fn,sn);if(hn){if(Rwt(rn,pn,mn,fn,hn),rn.phase!=="playing"){un.clear();return}continue}pn.vy+=an.gravity*nn;let bn=pn.x+pn.vx*nn,yn=pn.y+pn.vy*nn;if(yn>an.height+100){rn.world.despawn(pn.root);continue}if(yn<-50)pn.vy=Math.max(pn.vy,0.5),yn=-50;else if(bn<=0)bn=0,pn.vx=Math.abs(pn.vx)*Hw;else if(bn>=ln)bn=ln,pn.vx=-Math.abs(pn.vx)*Hw;pn.x=bn,pn.y=yn,t7(rn.world,rn.view,pn.root,an.fieldLeft+bn+sn,yn+sn,un),cn[dn++]=pn}cn.length=dn,un.flush()}function Rwt(rn,nn,an,sn,[ln,cn]){if(o7(rn.world,rn.view,rn.layout,rn.models,nn.root,nn.what,an,sn,nn.vx,nn.vy,ln,cn),nn.what.kind==="bomb"){if(rn.onBomb(),rn.onLives(rn.world.scoreboard.addLives(-1)),rn.lives<=0)MCe(rn,!1);return}if(rn.onSlice(),nn.what.kind==="star")rn.world.scoreboard.setLives(Math.min(rn.lives+1,vd)),rn.onLives(rn.lives),rn.world.scoreboard.add(OB);else rn.world.scoreboard.add(IB);rn.onScore(rn.score)}var Swt=1400,a7=(rn,nn,an)=>rn.world.after(nn,an),vwt=(rn,nn,an,sn,ln,cn)=>{let un=ln-an,dn=cn-sn,pn=un*un+dn*dn,mn=pn>0?Math.max(0,Math.min(1,((rn-an)*un+(nn-sn)*dn)/pn)):0;return(an+un*mn-rn)**2+(sn+dn*mn-nn)**2};var OCe=e(()=>{fe();Xt();Uw()});var Er={};n(Er,{FruitNinja:()=>jt});import{useMemo as PCe}from"react";import{jsx as Awt}from"react/jsx-runtime";var Bv,jt;var he=e(()=>{Ta();l();a();M();_a();o();xa();va();fe();OCe();Uw();Bv=t.FRUIT_NINJA,jt=Vn("fruit-ninja",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(vd),[cn,un]=gn(ym),{theme:dn,screen:pn,gameOver:mn}=zn(rn,{gameId:"fruit-ninja",create:SCe,start:TCe,reset:RCe,dispose:ACe,tick:CCe,setTheme:vCe,resize:(bn,yn,En,Sn)=>{let _n=jB(yn,En,Sn);return _Ce(bn,_n),_n.fieldWidth},drag:(bn,{phase:yn,x:En,y:Sn})=>{if(yn==="start")c7(bn,En,Sn);else if(yn==="move")wCe(bn,En,Sn);else u7(bn)},tap:(bn,yn,En)=>{c7(bn,yn,En),u7(bn)},sounds:Bv,onStart:(bn)=>bn(Bv.START),wire:(bn,yn)=>{bn.onScore=an,bn.onLives=ln,bn.onTime=un,bn.onTouch=()=>yn(null,"light"),bn.onSlice=()=>yn(Bv.SLICE,"light"),bn.onBomb=()=>yn(Bv.BOMB,"heavy"),bn.onWin=()=>yn(t.WELL_DONE),bn.onLose=()=>yn(Bv.GAME_OVER);let En={};for(let Mn of Fw){if(!_d(Mn,Em,!0))continue;En[Mn]=Lc(Mn,Em),i7(bn,Mn)}if(bn.kinds.length)s7(bn,En);let Sn=Fw.filter((Mn)=>!_d(Mn,Em,!0)),_n=0,vn=Sn.length>0&&_d(Sn[0],Em),Tn=0,Rn,An=()=>{if(bn.world.isDisposed)return;let Mn=Sn[_n],Cn=Lc(Mn,Em);if(!vn)Cn.whole;else{if(Cn.pieces,En[Mn]=Cn,!bn.models)s7(bn,En);i7(bn,Mn),_n++}if(vn=!vn,_n>=Sn.length)return;if(!vn)vn=_d(Sn[_n],Em);if(vn||_n<HB)Tn=requestAnimationFrame(An);else Rn=setTimeout(()=>Tn=requestAnimationFrame(An),WB)};if(Sn.length)Tn=requestAnimationFrame(An);return()=>{cancelAnimationFrame(Tn),clearTimeout(Rn)}}}),fn=PCe(()=>ji(dn),[dn]),hn=PCe(()=>hl(dn),[dn]);return Awt(Un,{...pn,light:fn,background:hn,columns:[Qn(nn),ys(sn,vd),ta(cn,dn)],subtext:"Slice fruits to score!",gameOver:mn({title:"GAME OVER",message:"You ran out of lives!",scoreLabel:"Final Score",score:nn,buttonText:"Slice Again!"})})})});function kCe(rn,nn,an,sn){let cn=sn?10:8,un=la(an)+Mwt,dn=Math.max(180,nn-un-Cwt),pn=Math.max(180,Math.min($n(rn),dn/Math.cos(DCe)-30)),mn=Math.floor((pn-cn*2-18)/5),fn=mn*5+18;return{width:rn,height:nn,tilt:DCe,centerY:un+dn/2,tile:mn,gap:3,pitch:mn+3,pad:cn,size:fn}}var xd=900,d7=50,Sm=0.11,NCe=1.18,gCe,Fv=(rn)=>gCe[rn]??gCe[4096],p7,DCe=0,GCe,m7=0.4,Mwt=82,Cwt=120,f7=(rn,nn,an)=>[(an-2)*rn.pitch,(2-nn)*rn.pitch];var jw=e(()=>{o();Hn();gCe={2:["#eee4da","#776e65"],4:["#ede0c8","#776e65"],8:["#f2b179","#f9f6f2"],16:["#f59563","#f9f6f2"],32:["#f67c5f","#f9f6f2"],64:["#f65e3b","#f9f6f2"],128:["#edcf72","#f9f6f2"],256:["#edcc61","#f9f6f2"],512:["#edc850","#f9f6f2"],1024:["#edc53f","#f9f6f2"],2048:["#edc22e","#f9f6f2"],4096:["#3c3a32","#f9f6f2"]},p7={FRAME:"#5c4033",SLOT:"#3d2a1f"},GCe=Zn([0,0,1],1)});function $w(rn,nn){let an=0;for(let dn of rn)for(let pn of dn)if(!pn)an++;if(!an)return null;let sn=Math.floor(Math.random()*an),ln=0,cn=0;e:for(let dn=0;dn<5;dn++)for(let pn=0;pn<5;pn++)if(!rn[dn][pn]&&sn--===0){ln=dn,cn=pn;break e}let un={id:nn,value:Math.random()<0.1?4:2,row:ln,col:cn};return rn[ln][cn]=un,un}function BCe(rn,nn){let an=!1,sn=0,ln=[],cn=nn==="left"||nn==="right",un=nn==="right"||nn==="down",dn=b7();for(let pn=0;pn<5;pn++){let mn=[];for(let bn=0;bn<5;bn++){let yn=un?4-bn:bn,En=cn?rn[pn][yn]:rn[yn][pn];if(En)mn.push(En)}let fn=[],hn=[];for(let bn=0;bn<mn.length;){let yn=mn[bn],En=mn[bn+1];if(En&&yn.value===En.value){let Sn={...yn,value:yn.value*2};fn.push(Sn),hn.push(En),sn+=Sn.value,bn+=2}else fn.push(yn),hn.push(null),bn++}while(fn.length<5)fn.push(null);for(let bn=0;bn<5;bn++){let yn=fn[bn],En=un?4-bn:bn,Sn=cn?pn:En,_n=cn?En:pn,vn=cn?rn[pn][En]:rn[En][pn];if(yn!==vn||yn&&(yn.row!==Sn||yn.col!==_n))an=!0;let Tn=hn[bn];if(Tn)ln.push({id:Tn.id,value:Tn.value,fromRow:Tn.row,fromCol:Tn.col,toRow:Sn,toCol:_n});dn[Sn][_n]=yn?{...yn,row:Sn,col:_n}:null}}for(let pn=0;pn<5;pn++)for(let mn=0;mn<5;mn++)rn[pn][mn]=dn[pn][mn]??null;return{moved:an,score:sn,ghosts:ln}}function FCe(rn){for(let nn=0;nn<5;nn++)for(let an=0;an<5;an++){let sn=rn[nn][an];if(!sn)return!1;if(an<4&&rn[nn][an+1]?.value===sn.value)return!1;if(nn<4&&rn[nn+1][an]?.value===sn.value)return!1}return!0}var h7=5,b7=()=>Array.from({length:5},()=>Array(5).fill(null)),HCe=(rn,nn=1024)=>rn.some((an)=>an.some((sn)=>sn!==null&&sn.value>=nn)),Zw=(rn)=>rn.flatMap((nn)=>nn.filter((an)=>an!==null));var y7=()=>{};import{effects as wwt,extrude as Lwt,Path as Iwt}from"@nayan-ui/engine";function qCe(rn,nn,an){let sn=[],ln=(un)=>sn.push(rn.spawn({pickable:!1,...un})),cn=an.mode==="classic";ln({mesh:zCe(nn.size+nn.pad*2,cn?14:8,UCe),position:[0,0,-UCe/2],color:xn(cn?p7.FRAME:an.BOARD.SURFACE)});for(let un=0;un<h7;un++)for(let dn=0;dn<h7;dn++){let[pn,mn]=f7(nn,un,dn);ln({mesh:zCe(nn.tile,Math.min(8,nn.tile*0.12),1),position:[pn,mn,0.5],color:xn(cn?p7.SLOT:an.BOARD.CELL_EMPTY)})}return sn}function YCe(rn,nn,an,sn){let ln=String(sn),cn=ln.length,un=nn.tile*(cn<=2?0.29:cn===3?0.24:cn===4?0.19:0.155),dn=un*t0,pn=xn(Fv(sn)[1]),mn=nn.tile*m7+0.6;return[...ln].map((fn,hn)=>rn.spawn({mesh:Qi(fn),parent:an,position:[(hn-(cn-1)/2)*dn,0,mn],scale:un,color:pn,pickable:!1}))}function E7(rn,nn,an){let sn=nn.tile*m7,ln=rn.spawn({mesh:"none",position:Qw(nn,an.row,an.col),pickable:!1}),cn=ai(rn,{parent:ln,position:[0,0,sn/2],size:[nn.tile,nn.tile,sn],color:xn(Fv(an.value)[0]),gloss:!1,shadow:!1});return{root:ln,block:cn,digits:YCe(rn,nn,ln,an.value),value:an.value,row:an.row,col:an.col}}function KCe(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-VCe,an);Ea(rn,ln,nn,VCe);let cn={backdrop:ln,board:qCe(rn,nn,an),tiles:new Map};for(let un of sn)cn.tiles.set(un.id,E7(rn,nn,un));return cn}function XCe(rn,nn){for(let an of[nn.backdrop,...nn.board,...Array.from(nn.tiles.values(),(sn)=>sn.root)])rn.despawn(an)}function jCe(rn,nn,an,sn){aa(rn,an.backdrop,sn);for(let ln of an.board)rn.despawn(ln);an.board=qCe(rn,nn,sn)}function $Ce(rn,nn,an,sn){for(let ln of an.tiles.values())rn.despawn(ln.root);an.tiles.clear();for(let ln of sn)ZCe(rn,an,ln,E7(rn,nn,ln),0)}function ZCe(rn,nn,an,sn,ln){nn.tiles.set(an.id,sn),rn.set(sn.root,{scale:gwt}),rn.animate(sn.root,{scale:1},{duration:0.18,delay:ln,easing:"back"})}function QCe(rn,nn,an,sn,ln){for(let cn of ln){let un=an.tiles.get(cn.id);if(!un)continue;an.tiles.delete(cn.id),rn.animate(un.root,{position:Qw(nn,cn.toRow,cn.toCol)},{duration:Sm,easing:"easeOut"}).then(()=>{if(rn.has(un.root))rn.despawn(un.root)}).catch(()=>{})}for(let cn of sn){let un=an.tiles.get(cn.id);if(!un){ZCe(rn,an,cn,E7(rn,nn,cn),Sm);continue}if(un.row!==cn.row||un.col!==cn.col)rn.animate(un.root,{position:Qw(nn,cn.row,cn.col)},{duration:Sm,easing:"easeOut"}),un.row=cn.row,un.col=cn.col;if(un.value!==cn.value){for(let dn of un.digits)rn.despawn(dn);un.digits=YCe(rn,nn,un.root,cn.value),un.value=cn.value,rn.animate(un.block,{color:xn(Fv(cn.value)[0])},{duration:0.08,delay:Sm*0.6}),rn.animate(un.root,[{scale:NCe,at:0.35},{scale:1}],{duration:0.22,delay:Sm,easing:"easeOut"})}}}function JCe(rn,nn,an){rn.animate(Array.from(an.tiles.values(),(sn)=>sn.root),{shake:nn.tile*0.04},{duration:0.2})}function ewe(rn,nn,an){for(let sn of an.tiles.values()){let[ln,cn,un]=Qw(nn,sn.row,sn.col);rn.animate(sn.root,[{position:[ln,cn,un+nn.tile*0.3],scale:1.05,at:0.4},{position:[ln,cn,un],scale:1}],{duration:0.45,delay:Sm+0.15+(sn.row+sn.col)*0.05,easing:"easeOut"})}wwt.confetti(rn,{position:[0,0,nn.tile],count:70,size:nn.tile*0.1,speed:nn.size*1.4,lifetime:1.3,gravity:-nn.size*2.4,colors:["#edc22e","#f67c5f","#f2b179","#FFFFFF"].map((sn)=>xn(sn))})}function S7(rn,nn){for(let an of nn.tiles.values()){let sn=xn(Fv(an.value)[0]);rn.animate(an.block,{color:[sn[0]*0.55,sn[1]*0.55,sn[2]*0.6,1]},{duration:0.4,delay:Sm})}}var WCe,Owt=(rn,nn)=>{let an=WCe.get(rn);if(!an)an=Bn("game-2048/Game2048Scene:"+rn,nn),WCe.set(rn,an);return an},UCe=12,VCe=30,Pwt=1,gwt=0.2,zCe=(rn,nn,an)=>Owt(`g2048-panel:${rn}:${nn}:${an}`,()=>wn(Lwt(new Iwt().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:an}),{shine:0})),Qw=(rn,nn,an)=>{let[sn,ln]=f7(rn,nn,an);return[sn,ln,Pwt]};var twe=e(()=>{u();l0();r0();na();ba();Hn();jw();y7();WCe=new Map});import{World as Dwt}from"@nayan-ui/engine";function owe(){let rn=b7();return $w(rn,1),$w(rn,2),{grid:rn,nextId:3}}function rwe(rn){let nn=new Dwt(Nwt),an={eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},{grid:sn,nextId:ln}=owe(),cn={world:nn,camera:an,theme:rn,layout:null,scene:null,phase:"ready",grid:sn,nextId:ln,result:null,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},press:null,onPhase:(un)=>{},onTime:(un)=>{},onEvent:(un)=>{}};return nn.scoreboard.reset(0,xd),nn.scoreboard.handlers={onSecond:(un)=>cn.onTime(un),onTimeUp:()=>cn.phase==="playing"&&_7(cn,"timeout")},cn}function nwe(rn,nn){if(rn.scene)XCe(rn.world,rn.scene);if(rn.layout=nn,ya(rn.camera,nn),rn.scene=KCe(rn.world,nn,rn.theme,Zw(rn.grid)),rn.phase==="over"&&rn.result!=="win")S7(rn.world,rn.scene)}function awe(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)jCe(rn.world,rn.layout,rn.scene,nn)}function swe(rn){if(rn.phase!=="ready")return;rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(xd),rn.result=null,rn.phase="playing",rn.onTime(xd),rn.onPhase("playing")}function iwe(rn){let{grid:nn,nextId:an}=owe();if(rn.grid=nn,rn.nextId=an,rn.result=null,rn.world.scoreboard.reset(0,xd),rn.press=null,rn.phase="ready",rn.layout&&rn.scene)$Ce(rn.world,rn.layout,rn.scene,Zw(nn));rn.onTime(xd),rn.onPhase("ready")}function lwe(rn){rn.world.dispose()}function cwe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function _7(rn,nn){if(rn.world.scoreboard.stop(),rn.result=nn,rn.phase="over",rn.press=null,rn.layout&&rn.scene)if(nn==="win")ewe(rn.world,rn.layout,rn.scene);else S7(rn.world,rn.scene);rn.onPhase("over")}function Gwt(rn,nn){if(rn.phase!=="playing")return;let{moved:an,score:sn,ghosts:ln}=BCe(rn.grid,nn),{layout:cn,scene:un}=rn;if(!an){if(cn&&un)JCe(rn.world,cn,un);rn.onEvent("invalid");return}$w(rn.grid,rn.nextId++);let dn=HCe(rn.grid),pn=FCe(rn.grid);if(cn&&un)QCe(rn.world,cn,un,Zw(rn.grid),ln);if(rn.onEvent("move"),sn>0)rn.onEvent("merge");if(dn)rn.world.scoreboard.set(Ya(rn.timeLeft,xd,0)),rn.onEvent("win"),_7(rn,"win");else if(pn)rn.onEvent("stuck"),_7(rn,"stuck")}function uwe(rn,{phase:nn,dx:an,dy:sn}){if(nn==="start"){rn.press={swiped:!1};return}let ln=rn.press;if(!ln||ln.swiped)return;let cn=Math.abs(an),un=Math.abs(sn),dn=null;if(cn>un&&cn>d7)dn=an>0?"right":"left";else if(un>d7)dn=sn>0?"down":"up";if(nn==="end")rn.press=null;if(!dn)return;ln.swiped=!0,Gwt(rn,dn)}var Nwt=400;var dwe=e(()=>{ci();ba();jw();y7();twe()});var Sr={};n(Sr,{Game2048:()=>$t});import{jsx as Bwt}from"react/jsx-runtime";var _m,pwe,kwt,$t;var be=e(()=>{Ta();l();a();_a();o();xa();va();jw();dwe();_m=t.GAME_2048,pwe={move:{sound:_m.TILE_MOVE,haptic:"light"},merge:{sound:_m.TILE_MERGE,haptic:"medium"},invalid:{sound:_m.INVALID_MOVE,haptic:"warning"},win:{sound:_m.WIN,haptic:"success"},stuck:{sound:_m.GAME_OVER,haptic:"error"}},kwt={win:{title:"YOU WON!",message:"You reached 1024!",label:"Score",button:"Continue Playing!"},timeout:{title:"TIME UP!",message:"You ran out of time!",label:"Time's Up!",button:"Play Again!"},stuck:{title:"NO MOVES LEFT!",message:"The board is full!",label:"Board Full!",button:"Play Again!"}},$t=Vn("game-2048",(rn)=>{let[nn,an]=gn(xd),{game:sn,theme:ln,status:cn,screen:un,gameOver:dn}=zn(rn,{gameId:"game-2048",create:rwe,start:swe,reset:iwe,dispose:lwe,tick:cwe,setTheme:awe,resize:(mn,fn,hn,bn)=>{let yn=kCe(fn,hn,bn,c);return nwe(mn,yn),yn.size+yn.pad*2},drag:uwe,outcome:(mn)=>mn.result==="win"?"win":"lose",sounds:_m,onStart:(mn)=>mn(_m.START,"selection"),onStop:(mn)=>mn(null,"selection"),onOver:(mn,fn,hn)=>{if(hn.result==="timeout")mn(_m.TIME_UP,"error")},wire:(mn,fn)=>{mn.onTime=an,mn.onEvent=(hn)=>fn(pwe[hn].sound,pwe[hn].haptic)}}),pn=kwt[sn.result??"timeout"];return Bwt(Un,{...un,light:GCe,columns:[ta(nn,ln,0)],subtext:"Swipe to play",gameOver:dn({title:pn.title,message:pn.message,scoreLabel:pn.label,score:cn==="win"?sn.score:0,buttonText:pn.button})})})});function Rwe(rn,nn,an){let sn=rn>Hwt,ln=sn?650:500,cn=an+Math.max(0,(nn-an-ln)/2);return{width:rn,height:nn,tilt:Fwt,centerY:nn/2,top:cn,gameWidth:$n(rn),areaHeight:ln,logRadius:sn?90:70,logX:rn/2,logY:ln*(sn?0.26:0.24),knifeStartY:ln-70,knifeLength:sn?60:50,knifeWidth:sn?10:8,tipLength:16,appleRadius:sn?14:11}}function Hv(rn){while(rn>Math.PI)rn-=2*Math.PI;while(rn<-Math.PI)rn+=2*Math.PI;return rn}var vm=120,f0=8,v7=3,mwe=1500,fwe=1000,hwe=0.4,Jw=0.18,bwe,T7=16.666666666666668,ywe=2,Ewe=50,x7=0.025,Swe=0.008,_we=18,vwe=0.4,eL,tL=0.52,Twe=4,Fwt=-0.22,xwe,Hwt=640;var oL=e(()=>{Hn();bwe=Jw*1.5,eL=[100,160],xwe=Zn([-0.45,0.55,1],0.45)});import{effects as Qy,extrude as Awe,lathe as Wwt,merge as Uwt,Path as Mwe,quat as Uv,shapeGeometry as Wv}from"@nayan-ui/engine";function Ic(rn,nn,an,sn=0){let[ln,cn]=Wa(rn,nn,rn.top+an,sn);return[ln,cn,sn]}function Owe(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-wwe,an);Ea(rn,sn,nn,wwe);let ln=rn.spawn({mesh:"none",position:Ic(nn,nn.logX,nn.logY),pickable:!1}),cn=rn.spawn({mesh:qwt(),parent:ln,rotation:Vwt,scale:nn.logRadius*2,pickable:!1}),un=rn.spawn({mesh:A7(),position:Ic(nn,nn.logX,nn.knifeStartY),scale:nn.knifeLength*M7,pickable:!1}),dn=(nn.width-nn.gameWidth)/2+22,pn=Array.from({length:f0},(mn,fn)=>rn.spawn({mesh:A7(),position:Ic(nn,dn,nn.areaHeight-26-fn*20),scale:18,color:[1,1,1,1],pickable:!1}));return{backdrop:sn,pivot:ln,log:cn,stuck:[],apple:null,knife:un,counters:pn}}function Pwe(rn,nn){for(let an of[nn.backdrop,nn.pivot,nn.knife,...nn.counters])rn.despawn(an)}function gwe(rn,nn,an){aa(rn,nn.backdrop,an)}function rL(rn,nn,an,sn,ln){for(let cn of an.stuck)rn.despawn(cn);if(an.apple!=null)rn.despawn(an.apple);if(rn.stopAnimation(an.pivot),rn.set(an.pivot,{position:Ic(nn,nn.logX,nn.logY),rotation:Uv.z(0)}),an.stuck=sn.map((cn)=>Dwe(rn,nn,an,cn)),an.apple=null,ln!==null){let cn=gh().apple,un=nn.appleRadius*2,dn=Iwe(ln,nn.logRadius+nn.appleRadius+4);an.apple=rn.spawn({mesh:cn.whole,parent:an.pivot,position:[dn[0]-cn.center[0]*un,dn[1]-cn.center[1]*un,dn[2]-cn.center[2]*un],scale:un,pickable:!1})}}function Dwe(rn,nn,an,sn){return rn.spawn({mesh:A7(),parent:an.pivot,position:Iwe(sn,nn.logRadius-nn.tipLength*0.5),rotation:zwt(sn),scale:nn.knifeLength*M7,pickable:!1})}function C7(rn,nn,an){rn.set(nn.pivot,{rotation:Uv.z(-an,Ywt)})}function Nwe(rn,nn,an,sn,ln){rn.stopAnimation(an.knife),rn.set(an.knife,{position:Ic(nn,nn.logX,sn),rotation:Uv.z(0),scale:ln?nn.knifeLength*M7:0,color:[1,1,1,1]})}function Gwe(rn,nn,an){if(nn.countShown===an)return;nn.countShown=an,nn.counters.forEach((sn,ln)=>rn.set(sn,{color:ln<an?[1,1,1,1]:[0.35,0.35,0.38,0.45]}))}function kwe(rn,nn,an,sn){let ln=Dwe(rn,nn,an,sn);an.stuck.push(ln),rn.animate(ln,[{turn:[0,0,0.12],at:0.15},{turn:[0,0,-0.2],at:0.4},{turn:[0,0,0.11],at:0.65},{turn:[0,0,-0.03],at:1}],{duration:0.32,easing:"linear"}),rn.animate(an.log,[{color:[1.25,1.18,1.1,1],at:0.15},{color:[1,1,1,1]}],{duration:0.22});let cn=Ic(nn,nn.logX,nn.logY);rn.animate(an.pivot,[{position:[cn[0],cn[1]+Twe,cn[2]],at:0.3},{position:cn}],{duration:0.18}),Qy.shatter(rn,{position:Ic(nn,nn.logX,nn.logY+nn.logRadius,4),count:7,size:3.5,speed:120,direction:[0,-1,0.6],spread:1.1,lifetime:0.4,gravity:-900,colors:[xn("#C68A5B"),xn("#8D6E63"),xn("#5D4037")],flash:!1}),Qy.dust(rn,{position:Ic(nn,nn.logX,nn.logY+nn.logRadius,6),count:5,size:9,speed:60,direction:[0,-1,0.5],spread:1.4,lifetime:0.45,color:[0.93,0.8,0.62,0.6],endSize:2.2})}function Bwe(rn,nn,an,sn){let ln=Ic(nn,nn.logX,sn,4);Qy.sparks(rn,{position:ln,count:16,size:3,speed:220,direction:[0,-1,0.4],spread:1.3,lifetime:0.35,gravity:-600,colors:[[1,0.92,0.6],[1,0.7,0.25]]}),rn.animate(an.pivot,{shake:6},{duration:0.25}),Qy.flash(rn,{position:ln,mesh:"sphere",size:22,lifetime:0.14,color:[2.2,2,1.5,0.9],endSize:1.8,endColor:[2,1.6,0.8,0]});let cn=Math.random()<0.5?-1:1;rn.animate(an.knife,{position:Ic(nn,nn.logX+cn*70,sn+220,30)},{duration:tL,easing:"easeOut"}),rn.animate(an.knife,{turn:[0,0,cn*Math.PI*3]},{duration:tL,easing:"easeOut"}),rn.animate(an.knife,{color:[1,1,1,0]},{duration:tL,easing:"easeIn"})}function Fwe(rn,nn,an){let sn=an.apple;if(sn==null)return;an.apple=null;let ln=nn.appleRadius*2;rn.animate(sn,{scale:ln*1.7},{duration:0.32,easing:"easeOut"}),rn.animate(sn,{color:[1,1,1,0]},{duration:0.32}),Qy.splash(rn,{position:Ic(nn,nn.logX,nn.logY+nn.logRadius+nn.appleRadius,6),count:16,size:3.5,speed:160,lifetime:0.5,gravity:-500,colors:[xn("#D32F2F"),xn("#EF5350"),xn("#FFF3E0")]})}function Hwe(rn,nn){Qy.confetti(rn,{position:Ic(nn,nn.logX,nn.logY,20),count:50,size:5,speed:320,lifetime:1.2,gravity:-600,colors:["#FFD600","#D32F2F","#4CAF50","#90A4AE"].map((an)=>xn(an))})}var Cwe,Lwe=(rn,nn)=>{let an=Cwe.get(rn);if(!an)an=Bn("knife-hit/KnifeHitScene:"+rn,nn),Cwe.set(rn,an);return an},Su=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},R7=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an],Vwt,wwe=80,M7=1.15,Iwe=(rn,nn,an=0)=>[Math.cos(rn)*nn,-Math.sin(rn)*nn,an],zwt=(rn)=>Uv.z(Math.PI/2-rn),qwt=()=>Lwe("kh-log",()=>{let rn=Su("#795548"),nn=Su("#6D4C41"),an=Su("#8D6E63"),sn=Su("#4E342E"),ln=Su("#3E2723");return wn(Wwt([[0.001,0.3],[0.25,0.3],[0.44,0.3],[0.47,0.29],[0.5,0.25],[0.5,-0.25],[0.47,-0.29],[0.44,-0.3],[0.001,-0.3]],{segments:48,color:({position:cn,normal:un})=>{let dn=Math.hypot(cn[0],cn[2]);if(Math.abs(un[1])<0.6){let mn=0.5+0.5*Math.sin(Math.atan2(cn[2],cn[0])*26+Oa(cn[0]*9,cn[2]*9)*4);return R7(ln,sn,mn*0.8)}if(dn>0.45)return sn;let pn=0.5+0.5*Math.sin(dn*70+Oa(cn[0]*6,cn[2]*6)*2);return R7(R7(an,rn,Math.min(1,dn*3)),nn,pn*0.55)}}),{shine:0.1})}),A7=()=>Lwe("kh-knife-v2",()=>{let rn=Awe(new Mwe().moveTo(0,0).quadraticTo(0.1,0.12,0.1,0.3).lineTo(0.1,0.6).lineTo(-0.08,0.6).lineTo(-0.08,0.24).quadraticTo(-0.07,0.09,0,0).close(),{depth:0.05}),nn=Awe(new Mwe().moveTo(0.008,0.03).quadraticTo(0.1,0.13,0.1,0.3).lineTo(0.1,0.58).lineTo(0.068,0.58).lineTo(0.068,0.3).quadraticTo(0.066,0.16,0.008,0.03).close(),{depth:0.056}),an=Su("#FFC400"),sn=Su("#8D5A32"),ln=Su("#3E2A1C");return wn(Uwt([{geometry:rn,color:[...Su("#9EADB8"),1]},{geometry:nn,color:[...Su("#F3F7FA"),1]},{geometry:Wv("cube"),position:[-0.025,-0.4,0.027],scale:[0.025,0.34,0.005],color:[...Su("#6F7F8A"),1]},{geometry:Wv("roundedBox"),position:[0,-0.625,0],scale:[0.3,0.055,0.11],color:[...an,1]},{geometry:Wv("roundedBox"),position:[0,-0.8,0],scale:[0.15,0.3,0.12],color:[...sn,1]},...[-0.7,-0.78,-0.86,-0.94].map((cn)=>({geometry:Wv("roundedBox"),position:[0,cn,0],scale:[0.162,0.025,0.13],color:[...ln,1]})),{geometry:Wv("sphere"),position:[0,-0.97,0],scale:[0.17,0.08,0.13],color:[...an,1]}]),{center:!1,shine:0.75})}),Ywt;var Wwe=e(()=>{u();M();d();na();ba();Hn();oL();Cwe=new Map,Vwt=Uv.x(Math.PI/2);Ywt=[0,0,0,1]});import{World as Kwt}from"@nayan-ui/engine";function Uwe(rn){let nn=new Kwt(Xwt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",stuck:L7(),apple:null,appleTaken:!1,rotation:0,speed:x7,direction:1,turnTimer:0,turnInterval:120,flying:null,knivesLeft:f0,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,pending:0,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onKnives:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,vm),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&w7(sn,!1)},sn}function Vwe(rn,nn){if(rn.scene)Pwe(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=Owe(rn.world,nn,rn.theme),rL(rn.world,nn,rn.scene,rn.stuck,rn.appleTaken?null:rn.apple),C7(rn.world,rn.scene,rn.rotation),Jy(rn)}function zwe(rn,nn){if(rn.theme=nn,rn.scene)gwe(rn.world,rn.scene,nn)}function Jy(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;Nwe(rn.world,nn,an,rn.flying??nn.knifeStartY,rn.phase!=="over"&&(rn.flying!==null||rn.knivesLeft>0)),Gwe(rn.world,an,rn.knivesLeft)}function qwe(rn){if(rn.phase!=="ready")return;if(rn.stuck=L7(),rn.apple=null,Math.random()<hwe){let nn=Math.random()*Math.PI*2;for(let an=0;an<20;an++){if(rn.stuck.every((sn)=>Math.abs(Hv(nn-sn))>=Jw*2))break;nn=Math.random()*Math.PI*2}rn.apple=nn}if(rn.appleTaken=!1,rn.rotation=0,rn.speed=x7+(Math.random()-0.5)*Swe,rn.direction=1,rn.turnTimer=0,rn.turnInterval=eL[0]+Math.floor(Math.random()*(eL[1]-eL[0])),rn.flying=null,rn.knivesLeft=f0,rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(vm),rn.pending=0,rn.phase="playing",rn.layout&&rn.scene)rL(rn.world,rn.layout,rn.scene,rn.stuck,rn.apple);Jy(rn),rn.onScore(0),rn.onTime(vm),rn.onKnives(f0),rn.onPhase("playing")}function Ywe(rn){if(rn.stuck=L7(),rn.apple=null,rn.appleTaken=!1,rn.rotation=0,rn.flying=null,rn.knivesLeft=f0,rn.world.scoreboard.reset(0,vm),rn.won=!1,rn.phase="ready",rn.layout&&rn.scene)rL(rn.world,rn.layout,rn.scene,rn.stuck,null);Jy(rn),rn.onScore(0),rn.onTime(vm),rn.onKnives(f0),rn.onPhase("ready")}function Kwe(rn){rn.world.dispose()}function Xwe(rn,nn){if(rn.world.isDisposed)return;if(rn.phase==="playing"){let an=Math.min(rn.pending+nn*1000,Ewe);while(rn.phase==="playing"&&an>=T7-ywe)an-=T7,jwt(rn);if(rn.pending=an,rn.scene)C7(rn.world,rn.scene,rn.rotation);if(rn.phase==="playing")Jy(rn)}rn.world.update(nn)}function w7(rn,nn){rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.onPhase("over")}function jwt(rn){let nn=rn.layout;if(!nn)return;if(rn.rotation+=rn.speed*rn.direction,++rn.turnTimer>=rn.turnInterval){if(rn.turnTimer=0,Math.random()<vwe)rn.direction*=-1}if(rn.flying===null)return;let an=rn.flying-_we;if(an>nn.logY+nn.logRadius){rn.flying=an;return}let sn=rn.flying;rn.flying=null;let ln=Hv(Math.PI/2-rn.rotation),{scene:cn}=rn;if(rn.stuck.some((un)=>Math.abs(Hv(ln-un))<Jw)){if(cn)Bwe(rn.world,nn,cn,sn);rn.onEvent("clash"),w7(rn,!1);return}if(rn.apple!==null&&!rn.appleTaken&&Math.abs(Hv(ln-rn.apple))<bwe){if(rn.appleTaken=!0,rn.world.scoreboard.add(fwe),cn)Fwe(rn.world,nn,cn);rn.onEvent("apple")}if(rn.stuck.push(ln),rn.world.scoreboard.add(mwe),cn)kwe(rn.world,nn,cn,ln);if(Jy(rn),rn.onScore(rn.score),rn.onEvent("stick"),rn.knivesLeft<=0){if(cn)Hwe(rn.world,nn);w7(rn,!0)}}function jwe(rn){let nn=rn.layout;if(!nn||rn.phase!=="playing"||rn.flying!==null||rn.knivesLeft<=0)return;rn.flying=nn.knifeStartY,rn.knivesLeft-=1,rn.onKnives(rn.knivesLeft),rn.onEvent("throw"),Jy(rn)}var Xwt=300,L7=()=>Array.from({length:v7},(rn,nn)=>nn/v7*Math.PI*2);var $we=e(()=>{ba();oL();Wwe()});var _r={};n(_r,{KnifeHit:()=>Zt});import{jsx as $wt}from"react/jsx-runtime";var Nh,Zwe,Zt;var ye=e(()=>{Ta();l();a();_a();o();xa();va();oL();$we();Nh=t.KNIFE_HIT,Zwe={throw:{sound:Nh.THROW,haptic:"light"},stick:{sound:Nh.STICK,haptic:"medium"},apple:{sound:Nh.APPLE,haptic:"success"},clash:{sound:Nh.HIT,haptic:"error"}},Zt=Vn("knife-hit",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(vm),[cn,un]=gn(f0),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"knife-hit",create:Uwe,start:qwe,reset:Ywe,dispose:Kwe,tick:Xwe,setTheme:zwe,resize:(hn,bn,yn,En)=>{let Sn=Rwe(bn,yn,En);return Vwe(hn,Sn),Sn.gameWidth},drag:(hn,bn)=>{if(bn.phase==="start")jwe(hn)},sounds:Nh,onStart:(hn)=>hn(Nh.START,"success"),onStop:(hn)=>hn(null,"medium"),onOver:(hn,bn)=>hn(bn==="win"?t.WELL_DONE:Nh.GAME_OVER,bn==="win"?"success":"error"),wire:(hn,bn)=>{hn.onScore=an,hn.onTime=ln,hn.onKnives=un,hn.onEvent=(yn)=>bn(Zwe[yn].sound,Zwe[yn].haptic)}});return $wt(Un,{...mn,light:xwe,columns:[Qn(nn),ma("KNIVES",cn),ta(sn,dn)],subtext:"Tap to throw knives!",gameOver:fn({title:pn==="win"?"PERFECT!":"GAME OVER",message:pn==="win"?"All knives stuck!":"Hit another knife!",scoreLabel:"Final Score",score:nn,buttonText:"Throw Again!"})})})});function rl(rn,nn){return[-0.5+(nn+0.5)/nL,0.5-(rn+0.5)/nL]}function pLe(rn,nn,an){let sn=Math.cos(Vv),ln=la(an)+Zwt,cn=Math.max(200,nn-ln-Qwt),un=$n(rn),dn=Math.min(un/(1+Gh*2),cn/((Qwe+Jwe)*sn)),pn=ln+cn/2;return{width:rn,height:nn,size:dn,centerY:pn-(Jwe-Qwe)/2*dn*sn}}var nL=15,aL=4,sL=56,eLe=3,Rl,tLe="#FBF7EC",oLe="#2A2550",rLe="#8A8AA0",iL,lL,I7=0.9,nLe=0.35,aLe=0.14,sLe=0.45,iLe=0.9,lLe=0.6,cLe=0.7,Vv=0.35,uLe,Gh=0.014,zv=0.012,_u=0.15,eE,dLe=0.07,tE,oE,rE,qv,nE,Rd,Zwt=82,Qwt=110,Qwe,Jwe;var Yv=e(()=>{o();ba();Hn();Rl={red:"#E53935",green:"#43A047",yellow:"#D4A017",blue:"#1E88E5"},iL=Rl.green,lL=Rl.red,uLe=Zn([-0.35,0.3,1],0.5),eE=-0.5-Gh-0.06-_u/2,tE={blue:1,red:14,yellow:27,green:40},oE=[1,9,14,22,27,35,40,48],rE=[{row:6,col:0},{row:6,col:1},{row:6,col:2},{row:6,col:3},{row:6,col:4},{row:6,col:5},{row:5,col:6},{row:4,col:6},{row:3,col:6},{row:2,col:6},{row:1,col:6},{row:0,col:6},{row:0,col:7},{row:0,col:8},{row:1,col:8},{row:2,col:8},{row:3,col:8},{row:4,col:8},{row:5,col:8},{row:6,col:9},{row:6,col:10},{row:6,col:11},{row:6,col:12},{row:6,col:13},{row:6,col:14},{row:7,col:14},{row:8,col:14},{row:8,col:13},{row:8,col:12},{row:8,col:11},{row:8,col:10},{row:8,col:9},{row:9,col:8},{row:10,col:8},{row:11,col:8},{row:12,col:8},{row:13,col:8},{row:14,col:8},{row:14,col:7},{row:14,col:6},{row:13,col:6},{row:12,col:6},{row:11,col:6},{row:10,col:6},{row:9,col:6},{row:8,col:5},{row:8,col:4},{row:8,col:3},{row:8,col:2},{row:8,col:1},{row:8,col:0},{row:7,col:0}],qv={blue:[{row:7,col:1},{row:7,col:2},{row:7,col:3},{row:7,col:4},{row:7,col:5},{row:7,col:6}],red:[{row:1,col:7},{row:2,col:7},{row:3,col:7},{row:4,col:7},{row:5,col:7},{row:6,col:7}],yellow:[{row:7,col:13},{row:7,col:12},{row:7,col:11},{row:7,col:10},{row:7,col:9},{row:7,col:8}],green:[{row:13,col:7},{row:12,col:7},{row:11,col:7},{row:10,col:7},{row:9,col:7},{row:8,col:7}]},nE={blue:[{row:1.5,col:1.5},{row:1.5,col:4.5},{row:4.5,col:1.5},{row:4.5,col:4.5}],red:[{row:1.5,col:10.5},{row:1.5,col:13.5},{row:4.5,col:10.5},{row:4.5,col:13.5}],green:[{row:10.5,col:1.5},{row:10.5,col:4.5},{row:13.5,col:1.5},{row:13.5,col:4.5}],yellow:[{row:10.5,col:10.5},{row:10.5,col:13.5},{row:13.5,col:10.5},{row:13.5,col:13.5}]},Rd={row:7,col:7};Qwe=0.5+Gh,Jwe=-eE+_u*0.75});function O7(rn,nn){let an=(sn,ln)=>({color:sn,isAI:ln,finishedTokens:0,tokens:Array.from({length:aL},(cn,un)=>({id:`${sn}-${un}`,player:sn,progress:-1}))});return[an(rn,!1),...nn.map((sn)=>an(sn,!0))]}function P7(rn,nn){if(jl(rn))return!1;if(Ad(rn))return nn===6;return rn.progress+nn<=sL}function Kv(rn){if(jl(rn))return Rd;if(Ad(rn)){let nn=Number(rn.id.split("-")[1]);return nE[rn.player][nn]??Rd}if(rn.progress<=50)return rE[Tm(rn.player,rn.progress)];return qv[rn.player][rn.progress-51]}function fLe(rn,nn){let an=[Kv(rn)];if(Ad(rn))return an.push(rE[tE[rn.player]]),an;for(let sn=1;sn<=nn;sn++){let ln=rn.progress+sn;an.push(ln>=sL?Rd:ln<=50?rE[Tm(rn.player,ln)]:qv[rn.player][ln-51])}return an}function g7(rn,nn,an){let sn={...rn};if(Ad(rn))sn.progress=0;else sn.progress=rn.progress+nn;let ln=null;if(sn.progress>=0&&sn.progress<=50){let cn=Tm(sn.player,sn.progress);if(!oE.includes(cn))for(let un of an){if(un.color===rn.player)continue;for(let dn of un.tokens)if(!Ad(dn)&&!jl(dn)&&dn.progress<=50&&Tm(dn.player,dn.progress)===cn){ln=dn;break}if(ln)break}}return{moved:sn,captured:ln}}function yLe(rn,nn,an){let sn=cL(rn,nn);if(!sn.length)return null;let ln=sn.map((cn)=>{let un=0,{moved:dn,captured:pn}=g7(cn,nn,an);if(pn)un+=100;if(Ad(cn)&&nn===6)un+=50;if(jl(dn))un+=200;if(!Ad(cn)&&!jl(cn))un+=dn.progress;if(!jl(dn)&&dn.progress<=50&&oE.includes(Tm(dn.player,dn.progress)))un+=30;if(!jl(dn)&&dn.progress<=50&&!oE.includes(Tm(dn.player,dn.progress))){let mn=Tm(dn.player,dn.progress);for(let fn of an){if(fn.color===rn.color)continue;for(let hn of fn.tokens){if(Ad(hn)||jl(hn)||hn.progress>50)continue;if((mn-Tm(hn.player,hn.progress)+52)%52<=6)un-=20}}}return{token:cn,score:un}});if(ln.sort((cn,un)=>un.score-cn.score),Math.random()<0.3&&ln.length>1)return ln[Math.floor(Math.random()*ln.length)].token;return ln[0].token}function ELe(rn){let nn=rn.finishedTokens*3000;for(let an of rn.tokens)if(!Ad(an)&&!jl(an))nn+=Math.round(an.progress*30);return nn}var Ad=(rn)=>rn.progress<0,jl=(rn)=>rn.progress>=sL,mLe=()=>Math.floor(Math.random()*6)+1,Tm=(rn,nn)=>(tE[rn]+nn)%52,cL=(rn,nn)=>rn.tokens.filter((an)=>P7(an,nn)),hLe=(rn)=>rn.some((nn)=>nn.finishedTokens===aL),bLe=(rn)=>rn.find((nn)=>nn.finishedTokens===aL)??null;var SLe=e(()=>{Yv()});import{effects as Jwt,loft as eLt,merge as tLt,quat as _Le,shapeGeometry as oLt}from"@nayan-ui/engine";function dL(){return Bn("shared/EngineDice:dieMesh",()=>iLt())}function iLt(){if(uL)return uL;let rn=[0,0.25,0.5,0.7,0.85,0.95,1].map((un)=>0.5-sE+un*sE),nn=(un)=>{let dn=Math.abs(un)-(0.5-sE);return dn<=0?0.5:0.5-sE+Math.sqrt(Math.max(0,sE*sE-dn*dn))},an=[...rn.map((un)=>-un).reverse(),...rn].map((un)=>{let dn=Math.max(0.02,nn(un));return{z:un,bottom:-dn,top:dn,width:dn,square:9}}),ln=[{geometry:eLt(an,{around:48,smoothness:1,color:(un,dn)=>{let pn=Math.max(Math.abs(dn[0]),Math.abs(dn[1]),Math.abs(dn[2]))**6;return[aE[0]+(D7[0]-aE[0])*pn,aE[1]+(D7[1]-aE[1])*pn,aE[2]+(D7[2]-aE[2])*pn,1]}})}],cn=oLt("sphere");return aLt.forEach(({n:un,a:dn,b:pn},mn)=>{let fn=mn===0,hn=fn?0.28:0.17;for(let[bn,yn]of sLt[mn])ln.push({geometry:cn,position:[0,1,2].map((En)=>un[En]*0.488+dn[En]*bn+pn[En]*yn),scale:[0,1,2].map((En)=>un[En]?0.035:hn),color:fn?nLt:rLt})}),uL=wn(tLt(ln),{shine:0.45}),uL}function pL(rn,nn){let{die:an,shadow:sn,rest:ln,size:cn,duration:un}=nn;rn.stopAnimation(an),rn.stopAnimation(sn);let dn=Math.random()*Math.PI*2,pn=(An)=>[Math.cos(dn)*cn*An,Math.sin(dn)*cn*An*0.6],mn=[0.35,-0.2,0.06],fn=[],hn=[],bn=(An,Mn)=>[nn.shadowAt[0]+An,nn.shadowAt[1]+Mn,nn.shadowAt[2]],yn=(An,Mn,Cn)=>{let[Ln,On]=pn(An),Dn=1-Math.min(0.55,Mn*0.3);hn.push({position:bn(Ln,On),scale:[nn.shadowScale[0]*Dn,nn.shadowScale[1]*Dn,nn.shadowScale[2]],color:[0,0,0,0.22*Dn],at:Cn})},En=0;N7.forEach((An,Mn)=>{let Cn=mn[Mn],Ln=(En+Cn)/2,[On,Dn]=pn(Ln);fn.push({position:[ln[0]+On,ln[1]+Dn,ln[2]+An.height*cn],at:An.up}),yn(Ln,An.height,An.up);let[Nn,Wn]=pn(Cn);fn.push({position:[ln[0]+Nn,ln[1]+Wn,ln[2]],at:An.down}),yn(Cn,0,An.down),En=Cn}),fn.push({position:ln,at:1}),hn.push({position:nn.shadowAt,scale:nn.shadowScale,color:[0,0,0,0.22],at:1}),rn.animate(an,fn,{duration:un,path:"smooth",easing:"linear"}),rn.animate(sn,hn,{duration:un,easing:"linear"});let Sn=(Math.round(Math.random()*4)-2)*(Math.PI/2)+(Math.random()-0.5)*0.3,_n=Xv(nn.tilt,nn.value,Sn),vn=[2.4,2.1,1.6,0.9],Tn=[],Rn=_n;for(let An=vn.length-1;An>=0;An--){let Mn=[Math.random()-0.5,Math.random()-0.5,Math.random()-0.5];Rn=G7(Md(Mn[0],Mn[1],Mn[2],-vn[An]),Rn),Tn.unshift({rotation:Rn,at:[0.12,0.3,0.5,0.64][An]})}Tn.push({rotation:_n,at:N7[1].down}),Tn.push({rotation:_n,at:1}),rn.animate(an,Tn,{duration:un,easing:"linear"}),N7.slice(0,2).forEach((An,Mn)=>rn.after(An.down*un,()=>{if(nn.disposed?.())return;let[Cn,Ln]=pn(mn[Mn]);Jwt.dust(rn,{position:[ln[0]+Cn,ln[1]+Ln,ln[2]-cn*0.45],count:Mn?3:6,size:cn*(Mn?0.35:0.5),speed:cn*2.5,lifetime:0.4,color:[1,1,1,0.45],endSize:1.8})}))}var D7,aE,rLt,nLt,aLt,Ka=0.24,sLt,sE=0.12,uL=null,Md=(rn,nn,an,sn)=>{let ln=Math.hypot(rn,nn,an)||1;return _Le.axisAngle(rn/ln,nn/ln,an/ln,sn)},G7,lLt,Xv=(rn,nn,an=0)=>G7(Md(1,0,0,rn),G7(Md(0,0,1,an),lLt[nn-1])),N7;var k7=e(()=>{na();D7=[0.98,0.965,0.925],aE=[0.86,0.83,0.77],rLt=[0.11,0.11,0.16,1],nLt=[0.84,0.16,0.16,1],aLt=[{n:[0,0,1],a:[1,0,0],b:[0,1,0]},{n:[0,1,0],a:[1,0,0],b:[0,0,1]},{n:[1,0,0],a:[0,1,0],b:[0,0,1]},{n:[-1,0,0],a:[0,1,0],b:[0,0,1]},{n:[0,-1,0],a:[1,0,0],b:[0,0,1]},{n:[0,0,-1],a:[1,0,0],b:[0,1,0]}],sLt=[[[0,0]],[[-Ka,Ka],[Ka,-Ka]],[[-Ka,Ka],[0,0],[Ka,-Ka]],[[-Ka,Ka],[Ka,Ka],[-Ka,-Ka],[Ka,-Ka]],[[-Ka,Ka],[Ka,Ka],[0,0],[-Ka,-Ka],[Ka,-Ka]],[[-Ka,Ka],[Ka,Ka],[-Ka,0],[Ka,0],[-Ka,-Ka],[Ka,-Ka]]];G7=_Le.multiply,lLt=[Md(1,0,0,0),Md(1,0,0,Math.PI/2),Md(0,1,0,-Math.PI/2),Md(0,1,0,Math.PI/2),Md(1,0,0,-Math.PI/2),Md(0,1,0,Math.PI)],N7=[{up:0.2,down:0.44,height:1.7},{up:0.555,down:0.67,height:0.55},{up:0.735,down:0.8,height:0.16}]});import{effects as B7,extrude as jv,lathe as cLt,merge as LLe,Path as $v,quat as uLt,shapeGeometry as ILe}from"@nayan-ui/engine";function xLe(rn,nn,an,sn,ln=0.92){let[cn,un]=rl(nn,an);rn.push({geometry:iE(),position:[cn,un,Oc(2)],scale:[Pc,Pc,Cd],color:[...fLt,1]}),rn.push({geometry:iE(),position:[cn,un,Oc(3)],scale:[Pc*ln,Pc*ln,Cd],color:[...sn,1]})}function hLt(){return mL("ludo-board",()=>{let rn=1+Gh*2,nn=kh(oLe),an=kh(tLe),sn=[{geometry:iE(),position:[0,0,Oc(0)],scale:[rn,rn,Cd],color:[...nn,1]},{geometry:iE(),position:[0,0,Oc(1)],scale:[1,1,Cd],color:[...an,1]}];for(let{color:un,row:dn,col:pn}of mLt){let mn=kh(Rl[un]),[fn,hn]=rl(dn+2.5,pn+2.5),bn=6*Pc;sn.push({geometry:iE(),position:[fn,hn,Oc(2)],scale:[bn,bn,Cd],color:[...mn,1]}),sn.push({geometry:iE(),position:[fn,hn,Oc(3)],scale:[bn*0.68,bn*0.68,Cd],color:[...an,1]});for(let yn of nE[un]){let[En,Sn]=rl(yn.row,yn.col);sn.push({geometry:RLe(0.5),position:[En,Sn,Oc(4)],scale:[Pc*1.5,Pc*1.5,1],color:[...mn,1]}),sn.push({geometry:RLe(0.5),position:[En,Sn,Oc(5)],scale:[Pc*0.9,Pc*0.9,1],color:[...an,1]})}}rE.forEach((un,dn)=>{let pn=Object.keys(tE).find((fn)=>tE[fn]===dn),mn=pn?kh(Rl[pn]):an;if(xLe(sn,un.row,un.col,mn),oE.includes(dn)&&!pn){let[fn,hn]=rl(un.row,un.col);sn.push({geometry:jv(new $v().addStar(0,0,0.5,0.22),{depth:Cd}),position:[fn,hn,Oc(4)],scale:[Pc*0.7,Pc*0.7,1],color:[...kh(rLe),1]})}});for(let un of["blue","red","green","yellow"]){let dn=kh(Rl[un]);for(let pn of qv[un])xLe(sn,pn.row,pn.col,dn)}let ln={tl:rl(5.5,5.5),tr:rl(5.5,8.5),bl:rl(8.5,5.5),br:rl(8.5,8.5)},cn=(un,dn,pn)=>sn.push({geometry:jv(new $v().addPolygon([[0,0],[un[0],-un[1]],[dn[0],-dn[1]]]),{depth:Cd}),position:[0,0,Oc(3)],color:[...kh(pn),1]});return cn(ln.tl,ln.tr,Rl.red),cn(ln.tr,ln.br,Rl.yellow),cn(ln.br,ln.bl,Rl.green),cn(ln.bl,ln.tl,Rl.blue),wn(LLe(sn),{center:!1,shine:0})})}function NLe(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-wLe,an);Ea(rn,ln,PLe(nn),wLe);let cn=rn.spawn({mesh:hLt(),scale:nn.size,color:[1,1,1,1],pickable:!1}),un=new Map,dn=new Map,pn=new Map;for(let{id:yn,color:En}of sn){let Sn=rn.spawn({mesh:bLt(),rotation:pLt,scale:dLe*nn.size,color:xn(Rl[En])});un.set(yn,Sn),dn.set(Sn,yn),pn.set(yn,rn.spawn({mesh:ALe(),scale:0.05*nn.size,color:CLe,pickable:!1}))}let mn=rn.spawn({mesh:ALe(),position:gc(nn,0.012,eE-0.01,0.001),scale:[_u*1.25*nn.size,_u*1.1*nn.size,1],color:CLe,pickable:!1}),fn=rn.spawn({mesh:MLe(),position:gc(nn,0,eE,0.002),scale:0,color:[1,0.78,0.15,0.85],pickable:!1}),hn=rn.spawn({mesh:dL(),position:DLe(nn),rotation:yLt(1),scale:_u*nn.size}),bn=Array.from({length:4},()=>rn.spawn({mesh:MLe(),scale:0,color:[1,0.85,0.2,0.9],pickable:!1}));return{backdrop:ln,board:cn,tokens:un,tokenAt:dn,bobbing:new Set,shadows:pn,die:hn,dieShadow:mn,ring:fn,hints:bn}}function GLe(rn,nn){rn.despawn(nn.backdrop),rn.despawn(nn.board);for(let an of nn.tokens.values())rn.despawn(an);for(let an of nn.shadows.values())rn.despawn(an);rn.despawn(nn.die),rn.despawn(nn.dieShadow),rn.despawn(nn.ring);for(let an of nn.hints)rn.despawn(an)}function kLe(rn,nn,an){aa(rn,nn.backdrop,an)}function H7(rn,nn,an,sn,ln,cn=0){let[un,dn]=rl(ln.row,ln.col),pn=an.tokens.get(sn),mn=an.shadows.get(sn);rn.stopAnimation(pn),rn.stopAnimation(mn),rn.set(pn,{position:gc(nn,un+cn,dn,F7)}),rn.set(mn,{position:gc(nn,un+cn+0.006,dn-0.006,OLe)})}function BLe(rn,nn,an,sn,ln,cn){let un=an.tokens.get(sn),dn=an.shadows.get(sn),pn=ln.map((hn)=>rl(hn.row,hn.col)),mn=pn.slice(1).map((hn,bn)=>({position:gc(nn,hn[0],hn[1],F7+0.03),at:(bn+1)/(pn.length-1)})),fn=pn[pn.length-1];rn.stopAnimation(un),rn.stopAnimation(dn),rn.animate(un,mn,{duration:cn,path:"smooth",easing:"easeInOut"}),rn.animate(dn,{position:gc(nn,fn[0]+0.006,fn[1]-0.006,OLe)},{duration:cn})}function fL(rn,nn,an,sn){let ln=new Set(sn);for(let[cn,un]of an.tokens)if(ln.has(cn)!==an.bobbing.has(cn))rn.set(un,{bob:ln.has(cn)?{amplitude:[0,0,0.01*nn.size],speed:6}:null});an.bobbing=ln}function hL(rn,nn,an,sn){let ln=Pc*1.5*nn.size;an.hints.forEach((cn,un)=>{let dn=sn[un];if(!dn){rn.stopAnimation(cn),rn.set(cn,{scale:0});return}let[pn,mn]=rl(dn.row,dn.col);rn.set(cn,{position:gc(nn,pn,mn,F7),scale:ln}),rn.stopAnimation(cn),rn.animate(cn,{scale:ln*1.2},{duration:0.6,easing:"easeInOut",repeat:"forever",yoyo:!0})})}function FLe(rn,nn,an,sn,ln,cn){pL(rn,{die:an.die,shadow:an.dieShadow,rest:DLe(nn),shadowAt:gc(nn,0.012,eE-0.01,0.001),shadowScale:[_u*1.25*nn.size,_u*1.1*nn.size,1],size:_u*nn.size,tilt:Vv,value:sn,duration:ln,disposed:cn})}function HLe(rn,nn,an,sn){if(rn.stopAnimation(an.ring),!sn){rn.set(an.ring,{scale:0});return}let ln=_u*1.55*nn.size;rn.set(an.ring,{scale:ln}),rn.animate(an.ring,{scale:ln*1.15},{duration:0.6,easing:"easeInOut",repeat:"forever",yoyo:!0})}function WLe(rn,nn,an){let[sn,ln]=rl(an.row,an.col);B7.sparkle(rn,{position:gc(nn,sn,ln,zv+0.03),count:18,size:0.01*nn.size,speed:0.4*nn.size,lifetime:0.5,gravity:-0.6*nn.size,colors:[xn("#FFF59D"),xn("#FF7043"),[1,1,1,1]]})}function ULe(rn,nn){let[an,sn]=rl(Rd.row,Rd.col);B7.sparkle(rn,{position:gc(nn,an,sn,zv+0.04),count:20,size:0.011*nn.size,speed:0.4*nn.size,lifetime:0.6,colors:[xn("#FFD54F"),xn("#FFF59D"),[1,1,1,1]]})}function VLe(rn,nn,an){let[sn,ln]=rl(Rd.row,Rd.col);B7.confetti(rn,{position:gc(nn,sn,ln,zv+0.08),count:48,size:0.012*nn.size,speed:0.7*nn.size,lifetime:1.3,gravity:-1.2*nn.size,colors:[an==="green"?iL:lL,Rl.yellow,Rl.green,Rl.blue,"#FFFFFF"].map((cn)=>xn(cn))})}var vLe,mL=(rn,nn)=>{let an=vLe.get(rn);if(!an)an=Bn("ludo-king/LudoKingScene:"+rn,nn),vLe.set(rn,an);return an},kh=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},iE=()=>ILe("cube"),dLt=()=>ILe("sphere"),pLt,Pc,mLt,Cd=0.0004,TLe=0.002,Oc=(rn)=>zv-TLe*4+TLe*rn,OLe,F7,fLt,RLe=(rn)=>jv(new $v().addCircle(0,0,rn),{depth:Cd}),bLt=()=>mL("ludo-pawn",()=>wn(LLe([{geometry:cLt([[0.001,0],[0.42,0],[0.44,0.04],[0.42,0.1],[0.3,0.14],[0.24,0.2],[0.18,0.44],[0.15,0.58],[0.27,0.61],[0.27,0.66],[0.14,0.69]],{segments:28})},{geometry:dLt(),position:[0,0.84,0],scale:0.42}]),{center:!1,shine:0.6})),yLt=(rn,nn=0)=>Xv(Vv,rn,nn),ALe=()=>mL("ludo-disc",()=>wn(jv(new $v().addCircle(0,0,0.5),{depth:0}))),MLe=()=>mL("ludo-ring",()=>wn(jv(new $v().addCircle(0,0,0.5).addCircle(0,0,0.4),{depth:0,fillRule:"evenodd"}))),CLe,wLe=25,gc=(rn,nn,an,sn)=>[nn*rn.size,an*rn.size,sn*rn.size],PLe=(rn)=>({width:rn.width,height:rn.height,centerY:rn.centerY,tilt:Vv}),gLe=(rn,nn)=>ya(rn,PLe(nn)),DLe=(rn)=>gc(rn,0,eE,_u/2);var zLe=e(()=>{u();k7();na();ba();Hn();Yv();vLe=new Map,pLt=uLt.x(Math.PI/2),Pc=1/nL,mLt=[{color:"blue",row:0,col:0},{color:"red",row:0,col:9},{color:"green",row:9,col:0},{color:"yellow",row:9,col:9}],OLe=Oc(6),F7=Oc(7),fLt=[0.55,0.53,0.62];CLe=[0,0,0,0.22]});import{World as ELt}from"@nayan-ui/engine";function qLe(rn){let nn=new ELt(SLt),an={eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},sn=O7("green",["red"]),ln={world:nn,camera:an,theme:rn,layout:null,scene:null,phase:"ready",players:sn,turn:0,dice:0,stage:"rolling",sixes:0,get score(){return nn.scoreboard.score},won:!1,onPhase:(cn)=>{},onFinished:(cn,un)=>{},onScore:(cn)=>{},onTurn:(cn)=>{},onEvent:(cn,un)=>{}};return nn.scoreboard.reset(),ln}function YLe(rn,nn){if(rn.scene)GLe(rn.world,rn.scene);rn.layout=nn,gLe(rn.camera,nn),rn.scene=NLe(rn.world,nn,rn.theme,vLt(rn.players)),W7(rn),Fh(rn)}function KLe(rn,nn){if(rn.theme=nn,rn.scene)kLe(rn.world,rn.scene,nn)}function W7(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;let sn=new Map;for(let ln of rn.players)for(let cn of ln.tokens){let un=Kv(cn),dn=`${un.row},${un.col}`;(sn.get(dn)??sn.set(dn,[]).get(dn)).push({id:cn.id})}for(let[ln,cn]of sn){let[un,dn]=ln.split(",").map(Number);cn.forEach((pn,mn)=>H7(rn.world,nn,an,pn.id,{row:un,col:dn},cn.length>1?(mn-(cn.length-1)/2)*0.022:0))}}function Fh(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;let sn=rn.phase==="playing";if(HLe(rn.world,nn,an,sn&&rn.stage==="rolling"&&rn.turn===0),sn&&(rn.stage==="rolling"||rn.stage==="thinking"||rn.stage==="await"))fL(rn.world,nn,an,xm(rn).tokens.map((ln)=>ln.id));else fL(rn.world,nn,an,[]);if(sn&&rn.stage==="await"&&rn.turn===0){let ln=cL(xm(rn),rn.dice).map((cn)=>Kv(cn));hL(rn.world,nn,an,ln)}else hL(rn.world,nn,an,[])}function XLe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.onPhase("playing"),U7(rn)}function jLe(rn){rn.world.cancelTimers(),rn.players=O7("green",["red"]),rn.turn=0,rn.dice=0,rn.stage="rolling",rn.sixes=0,rn.world.scoreboard.reset(),rn.won=!1,rn.phase="ready",W7(rn),Fh(rn),rn.onFinished(0,0),rn.onScore(0),rn.onTurn(0),rn.onPhase("ready")}function $Le(rn){rn.world.dispose()}function ZLe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(Math.min(nn,_Lt))}function QLe(rn,nn,an){if(rn.phase!=="playing"||!rn.scene)return;let sn=rn.world.pick(nn,an);if(!sn)return;if(sn.entity===rn.scene.die){if(rn.stage==="rolling"&&rn.turn===0)rn.onEvent("tap",0),JLe(rn);return}let ln=rn.scene.tokenAt.get(sn.entity);if(!ln||rn.stage!=="await"||rn.turn!==0)return;let cn=xm(rn).tokens.find((un)=>un.id===ln);if(cn&&P7(cn,rn.dice))eIe(rn,cn)}function U7(rn){if(rn.dice=0,xm(rn).isAI)rn.stage="thinking",Fh(rn),Bh(rn,cLe,()=>JLe(rn));else rn.stage="rolling",Fh(rn)}function JLe(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;rn.stage="busy",Fh(rn);let sn=mLe();rn.onEvent("roll",rn.turn),FLe(rn.world,nn,an,sn,I7,()=>rn.world.isDisposed),Bh(rn,I7,()=>TLt(rn,sn))}function TLt(rn,nn){if(rn.dice=nn,rn.sixes=nn===6?rn.sixes+1:0,rn.sixes>=eLe){rn.onEvent("penalty",rn.turn),rn.sixes=0,Bh(rn,iLe,()=>bL(rn));return}if(nn===6)rn.onEvent("six",rn.turn);if(!cL(xm(rn),nn).length){if(rn.turn===0)rn.onEvent("cantMove",0);Bh(rn,lLe,()=>bL(rn));return}if(xm(rn).isAI)Bh(rn,nLe,()=>{let sn=yLe(xm(rn),nn,rn.players);if(sn)eIe(rn,sn);else bL(rn)});else rn.stage="await",Fh(rn)}function eIe(rn,nn){let{layout:an,scene:sn}=rn;if(!an||!sn)return;rn.stage="busy";let{turn:ln,dice:cn}=rn,{moved:un,captured:dn}=g7(nn,cn,rn.players),pn=jl(un)&&!jl(nn),mn=dn?Kv(dn):null,fn=xm(rn);if(fn.tokens=fn.tokens.map((yn)=>yn.id===nn.id?un:yn),fn.finishedTokens=fn.tokens.filter(jl).length,dn){let yn=rn.players.find((En)=>En.color===dn.player);yn.tokens=yn.tokens.map((En)=>En.id===dn.id?{...En,progress:-1}:En)}rn.world.scoreboard.set(ELe(rn.players[0])),rn.onScore(rn.score),rn.onFinished(rn.players[0].finishedTokens,rn.players[1].finishedTokens);let hn=fLe(nn,cn),bn=Math.max(1,hn.length-1)*aLe;hL(rn.world,an,sn,[]),fL(rn.world,an,sn,[]),BLe(rn.world,an,sn,nn.id,hn,bn),rn.onEvent(dn?"capture":pn?"finish":"move",ln),Bh(rn,bn,()=>{let{scene:yn,layout:En}=rn;if(!yn||!En)return;if(dn&&mn){WLe(rn.world,En,mn);let _n=Number(dn.id.split("-")[1]),vn=nE[dn.player][_n];H7(rn.world,En,yn,dn.id,vn,0)}if(pn)ULe(rn.world,En);if(W7(rn),hLe(rn.players)){let _n=bLe(rn.players);if(rn.won=_n?.color==="green",xLt(rn),_n)VLe(rn.world,En,_n.color);return}let Sn=cn===6||pn||!!dn;Bh(rn,sLe,()=>Sn?U7(rn):bL(rn))})}function bL(rn){if(rn.phase!=="playing")return;rn.turn=rn.turn===0?1:0,rn.sixes=0,rn.onTurn(rn.turn),U7(rn)}function xLt(rn){rn.phase="over",rn.stage="busy",Fh(rn),rn.onPhase("over")}var SLt=700,_Lt=0.1,Bh=(rn,nn,an)=>rn.world.after(nn,an),xm=(rn)=>rn.players[rn.turn],vLt=(rn)=>rn.flatMap((nn)=>nn.tokens.map((an)=>({id:an.id,color:nn.color})));var tIe=e(()=>{Yv();SLe();zLe()});var Tr={};n(Tr,{LudoKing:()=>Qt});import{jsx as ALt}from"react/jsx-runtime";var Zv,RLt,Qt;var Ee=e(()=>{Ta();l();a();_a();o();xa();va();Yv();tIe();Zv=t.LUDO_KING,RLt={tap:{sound:"TAP",haptic:"medium"},roll:{sound:"ROLL"},six:{sound:"SIX",haptic:"success"},penalty:{sound:"PENALTY",haptic:"error"},cantMove:{sound:"CANT_MOVE",haptic:"warning",youOnly:!0},move:{sound:"MOVE",haptic:"light"},capture:{sound:"CAPTURE",haptic:"success"},finish:{sound:"FINISH",haptic:"success"}},Qt=Vn("ludo-king",(rn)=>{let[nn,an]=gn([0,0]),[sn,ln]=gn(0),[cn,un]=gn(0),{status:dn,screen:pn,gameOver:mn}=zn(rn,{gameId:"ludo-king",create:qLe,start:XLe,reset:jLe,dispose:$Le,tick:ZLe,setTheme:KLe,resize:(fn,hn,bn,yn)=>{let En=pLe(hn,bn,yn);return YLe(fn,En),En.size*(1+Gh*2)},tap:QLe,sounds:Zv,onStart:(fn)=>fn(Zv.START,"medium"),onOver:(fn,hn)=>fn(hn==="win"?Zv.WIN:Zv.GAME_OVER,hn==="win"?"success":"heavy"),wire:(fn,hn)=>{fn.onFinished=(bn,yn)=>an([bn,yn]),fn.onScore=un,fn.onTurn=ln,fn.onEvent=(bn,yn)=>{let En=RLt[bn];if(En.youOnly&&yn!==0)return;hn(En.sound?Zv[En.sound]:null,En.haptic)}}});return ALt(Un,{...pn,light:uLe,columns:[ma("YOU",String(nn[0]),iL),ma(sn===0?"YOUR TURN":"AI TURN",cn.toLocaleString()),ma("AI",String(nn[1]),lL)],subtext:"Roll dice, move tokens!",gameOver:mn({title:dn==="win"?"YOU WON!":"YOU LOST!",message:dn==="win"?"All your tokens made it home!":"The AI got all four home first!",scoreLabel:dn==="win"?"You Won!":"You Lost",score:cn,buttonText:dn==="win"?"Play Again!":"Try Again!"})})})});function sIe(rn,nn,an){let sn=la(an)+MLt,ln=Math.max(oIe,nn-sn-CLt),cn=ln/(Math.cos(V7)+z7/Dc*Math.sin(V7)),un=Math.floor(Math.max(oIe,Math.min(wLt,($n(rn)-lE*2)/(1+Qv/Dc),cn))/Dc)*Dc;return{width:rn,height:nn,tilt:V7,centerY:sn+ln/2,n:Dc,cell:un/Dc,size:un}}function Rm(rn,nn,an){return[nn*rn.cell-rn.size/2,rn.size/2-an*rn.cell]}var Dc=14,h0=120,rIe=100,nIe=0.5,vu,V7=0,aIe,Qv=0.14,z7=0.42,Jv=0.56,MLt=82,CLt=120,lE=6,oIe=240,wLt=600;var yL=e(()=>{o();Hn();vu={WALLS:["#7A4A24","#8B4513","#A0522D","#9A5B2E"],WALL_TOP:"#D2A06A",BALL:"#4ECDC4",BALL_BAND:"#FFFFFF",BALL_DOT:"#2C8C86",START:"#4CAF50",START_INNER:"#81C784",GOAL:"#FF5722",GOAL_INNER:"#FF8A65"},aIe=Zn([0,0,1],0.45)});function ILt(rn,nn){let an=Array(nn*nn).fill(-1);an[0]=0;let sn=[0];for(let ln=0;ln<sn.length;ln++){let cn=sn[ln],un=cn%nn;for(let dn=0;dn<4;dn++){let pn=1<<dn,mn=dn===0?cn-nn:dn===1?cn+1:dn===2?cn+nn:cn-1;if(rn[cn]&pn&&an[mn]===-1&&!(pn===2&&un===nn-1)&&!(pn===8&&un===0))an[mn]=an[cn]+1,sn.push(mn)}}return an[nn*nn-1]}function K7(rn){let nn=[],an=-1;for(let sn=0;sn<24;sn++){let ln=PLt(rn),cn=ILt(ln,rn)+OLt(ln)*0.5;if(cn>an)nn=ln,an=cn}return nn}function PLt(rn){let nn=Array(rn*rn).fill(0),an=new Uint8Array(rn*rn),sn=[0],ln=new Int32Array(4);an[0]=1;while(sn.length){let cn=sn[sn.length-1],un=cn%rn,dn=Math.floor(cn/rn),pn=0;if(dn>0&&!an[cn-rn])ln[pn++]=cn-rn;if(un<rn-1&&!an[cn+1])ln[pn++]=cn+1;if(dn<rn-1&&!an[cn+rn])ln[pn++]=cn+rn;if(un>0&&!an[cn-1])ln[pn++]=cn-1;if(!pn){sn.pop();continue}let mn=ln[Math.floor(Math.random()*pn)];if(mn===cn-1)nn[cn]|=8,nn[mn]|=2;else if(mn===cn+1)nn[cn]|=2,nn[mn]|=8;else if(mn===cn-rn)nn[cn]|=1,nn[mn]|=4;else nn[cn]|=4,nn[mn]|=1;an[mn]=1,sn.push(mn)}return nn}function cIe(rn,nn,an){let sn=nn-rn.anchorX,ln=an-rn.anchorY,cn=Math.abs(sn),un=Math.abs(ln);if(cn<16&&un<16)return!1;let dn=cn>un?sn>0?2:4:ln>0?3:1;if(rn.anchorX=nn,rn.anchorY=an,dn===rn.queued||dn===rn.dir&&rn.queued===0)return!1;return rn.queued=dn,!0}function uIe(rn,nn,an,sn){let ln=!1,cn=null;if(rn.dir!==0&&rn.queued!==0&&rn.p>0&&rn.queued===LLt(rn.dir))rn.cx+=q7(rn.dir),rn.cy+=Y7(rn.dir),rn.p=1-rn.p,rn.dir=rn.queued,rn.queued=0;if(rn.p===0){if(rn.queued!==0&&eT(nn,an,rn.cx,rn.cy,rn.queued))rn.dir=rn.queued,rn.queued=0;if(rn.dir!==0&&!eT(nn,an,rn.cx,rn.cy,rn.dir))rn.dir=0,ln=!0}if(rn.dir!==0){if(rn.p+=5*Math.min(sn,50.010000000000005)/1000,rn.p>=1)rn.cx+=q7(rn.dir),rn.cy+=Y7(rn.dir),rn.p=0,cn=[rn.cx,rn.cy]}return{bumped:ln,reached:cn}}var iIe=2,lIe=3,q7=(rn)=>rn===2?1:rn===4?-1:0,Y7=(rn)=>rn===1?-1:rn===3?1:0,LLt=(rn)=>rn===0?0:(rn+1)%4+1,OLt=(rn)=>rn.reduce((nn,an)=>nn+((an&1)+(an>>1&1)+(an>>2&1)+(an>>3&1)>=3?1:0),0),eT=(rn,nn,an,sn,ln)=>((rn[sn*nn+an]??0)&1<<ln-1)!==0,X7=()=>({cx:0,cy:0,p:0,dir:0,queued:0,anchorX:0,anchorY:0}),j7=(rn)=>[rn.cx+q7(rn.dir)*rn.p+0.5,rn.cy+Y7(rn.dir)*rn.p+0.5];var $7=()=>{};import{effects as dIe,extrude as gLt,Path as DLt,quat as Z7,recolor as NLt,shapeGeometry as GLt}from"@nayan-ui/engine";function yIe(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-mIe,an);Ea(rn,ln,nn,mIe);let cn=an.mode==="classic",un=rn.spawn({mesh:eF(nn.size+lE*2,cn?12:8),position:[0,0,-Q7/2],color:bIe(an),pickable:!1}),dn=cn?rn.spawn({mesh:eF(nn.size,8),position:[0,0,-Q7/2+0.3],color:xn(`${W4}25`),pickable:!1}):null,pn=nn.n-1,mn=[EL(rn,nn,0,0,0.72,vu.START),EL(rn,nn,0,0,0.32,vu.START_INNER,nn.cell*J7),EL(rn,nn,pn,pn,0.72,vu.GOAL),EL(rn,nn,pn,pn,0.32,vu.GOAL_INNER,nn.cell*J7)],[fn,hn]=Rm(nn,pn+0.5,pn+0.5),bn=rn.spawn({mesh:"torus",position:[fn,hn,nn.cell*0.22],rotation:hIe,scale:nn.cell*0.62,color:xn(vu.GOAL),pickable:!1});rn.animate(bn,{scale:nn.cell*0.62*1.12},{duration:0.9,easing:"easeInOut",repeat:"forever",yoyo:!0});let yn=nn.cell*Jv,En=rn.spawn({mesh:FLt(),scale:yn,pickable:!1}),Sn={backdrop:ln,floor:un,inner:dn,walls:[],pads:mn,ring:bn,ball:En,spin:[0,0,0,1]};return tF(rn,nn,Sn,sn,!1),Sn}function EIe(rn,nn){for(let an of[nn.backdrop,nn.floor,nn.inner,...nn.walls,...nn.pads,nn.ring,nn.ball])if(an!=null)rn.despawn(an)}function SIe(rn,nn,an,sn){aa(rn,an.backdrop,sn);let ln=sn.mode==="classic";if(rn.set(an.floor,{mesh:eF(nn.size+lE*2,ln?12:8),color:bIe(sn)}),an.inner!=null)rn.set(an.inner,{scale:ln?1:0})}function HLt(rn,nn){let an=[],sn=(ln,cn,un)=>{if(cn===0||cn===nn)return!0;return ln?!eT(rn,nn,un,cn-1,lIe):!eT(rn,nn,cn-1,un,iIe)};for(let ln of[!0,!1])for(let cn=0;cn<=nn;cn++){let un=-1;for(let dn=0;dn<=nn;dn++){let pn=dn<nn&&sn(ln,cn,dn);if(pn&&un<0)un=dn;if(!pn&&un>=0)an.push({across:ln,line:cn,from:un,to:dn}),un=-1}}return an}function tF(rn,nn,an,sn,ln){for(let dn of an.walls)rn.despawn(dn);an.walls=[];let cn=nn.cell*Qv,un=nn.cell*z7;HLt(sn,nn.n).forEach((dn,pn)=>{let mn=(dn.from+dn.to)/2,[fn,hn]=dn.across?Rm(nn,mn,dn.line):Rm(nn,dn.line,mn),bn=(dn.to-dn.from)*nn.cell+cn,yn=dn.across?[bn,cn,un]:[cn,bn,un],En=xn(vu.WALLS[pn%vu.WALLS.length]),Sn=rn.spawn({mesh:"roundedBox",position:[fn,hn,ln?0:un/2],scale:ln?[yn[0],yn[1],0.01]:yn,color:En,pickable:!1});if(ln){let _n=Math.hypot(dn.across?mn:dn.line,dn.across?dn.line:mn)*BLt*nn.n;rn.animate(Sn,{position:[fn,hn,un/2],scale:yn},{duration:0.28,delay:_n*0.25,easing:"back"})}an.walls.push(Sn)})}function oF(rn,nn,an,sn,ln,cn,un){let dn=nn.cell*Jv/2,[pn,mn]=Rm(nn,sn,ln),[fn,hn]=Rm(nn,cn,un),bn=pn-fn,yn=mn-hn,En=Math.hypot(bn,yn);if(En>0.000001)an.spin=Z7.multiply(Z7.axisAngle(-yn/En,bn/En,0,En/dn),an.spin);rn.set(an.ball,{position:[pn,mn,dn],rotation:an.spin})}function _Ie(rn,nn,an){rn.stopAnimation(an.ball),rn.set(an.ball,{scale:nn.cell*Jv,color:[1,1,1,1]})}function vIe(rn,nn,an){rn.animate(an.ball,{shake:nn.cell*0.06},{duration:0.18})}function TIe(rn,nn,an){let sn=nn.cell*Jv;rn.set(an.ball,{color:kLt}),rn.animate(an.ball,[{scale:sn*1.5,at:0.4},{scale:sn*1.15}],{duration:0.5,easing:"easeOut"});let[ln,cn]=Rm(nn,nn.n-0.5,nn.n-0.5);dIe.sparkle(rn,{position:[ln,cn,nn.cell],count:30,size:nn.cell*0.12,speed:nn.cell*5,lifetime:1,gravity:-nn.cell*6,colors:["#FFD700","#4CAF50","#2196F3","#FF5722"].map((un)=>xn(un))}),dIe.confetti(rn,{position:[0,0,nn.cell],count:50,size:nn.cell*0.14,speed:nn.size*1.3,lifetime:1.3,gravity:-nn.size*2.2,colors:["#FFD700","#E91E63","#4ECDC4","#FFEB3B"].map((un)=>xn(un))})}function xIe(rn,nn){rn.animate(nn.ball,{color:[0.55,0.55,0.6,1]},{duration:0.4})}var pIe,fIe=(rn,nn)=>{let an=pIe.get(rn);if(!an)an=Bn("maze-runner/MazeRunnerScene:"+rn,nn),pIe.set(rn,an);return an},hIe,Q7=8,mIe=25,J7=0.05,kLt,BLt=0.012,FLt=()=>fIe("mr-ball",()=>{let rn=xn(vu.BALL),nn=xn(vu.BALL_BAND),an=xn(vu.BALL_DOT);return wn(NLt(GLt("sphere"),({position:[sn,ln,cn]})=>{let un=Math.hypot(sn,ln,cn)||1;if(Math.abs(cn/un)<0.2)return nn;if(Math.abs(sn/un)>0.86)return an;return rn}),{shine:0.9})}),eF=(rn,nn)=>fIe(`mr-panel:${rn}:${nn}`,()=>wn(gLt(new DLt().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:Q7}),{shine:0.2})),bIe=(rn)=>xn(rn.mode==="classic"?`${W4}30`:rn.BOARD.SURFACE),EL=(rn,nn,an,sn,ln,cn,un=0)=>{let[dn,pn]=Rm(nn,an+0.5,sn+0.5),mn=nn.cell*J7;return rn.spawn({mesh:"cylinder",position:[dn,pn,mn/2+un],rotation:hIe,scale:[nn.cell*ln,mn,nn.cell*ln],color:xn(cn),pickable:!1})};var RIe=e(()=>{Uu();u();na();ba();Hn();yL();$7();pIe=new Map,hIe=Z7.x(Math.PI/2),kLt=[1.3,1.15,0.55,1]});import{World as WLt}from"@nayan-ui/engine";function AIe(rn){let nn=new WLt(ULt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",open:K7(Dc),ball:X7(),drawn:[0.5,0.5],running:!1,get elapsed(){return h0-nn.scoreboard.shownSeconds},get score(){return nn.scoreboard.score},won:!1,onPhase:(ln)=>{},onCard:()=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,h0),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.running&&DIe(sn,!1)},sn}function MIe(rn,nn){if(rn.scene)EIe(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=yIe(rn.world,nn,rn.theme,rn.open);let[an,sn]=j7(rn.ball);oF(rn.world,nn,rn.scene,an,sn,an,sn),rn.drawn=[an,sn]}function CIe(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)SIe(rn.world,rn.layout,rn.scene,nn)}function wIe(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;let[sn,ln]=j7(rn.ball);oF(rn.world,nn,an,sn,ln,rn.drawn[0],rn.drawn[1]),rn.drawn=[sn,ln]}function LIe(rn){if(rn.ball=X7(),rn.world.cancelTimers(),rn.layout&&rn.scene)_Ie(rn.world,rn.layout,rn.scene);wIe(rn)}function IIe(rn){if(rn.phase!=="ready")return;LIe(rn),rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(h0),rn.won=!1,rn.running=!0,rn.phase="playing",rn.onTime(h0),rn.onPhase("playing")}function rF(rn){rn.running=!1,rn.world.scoreboard.reset(0,h0),rn.won=!1,rn.phase="ready",LIe(rn),rn.onTime(h0),rn.onPhase("ready")}function OIe(rn){if(rn.open=K7(Dc),rn.layout&&rn.scene)tF(rn.world,rn.layout,rn.scene,rn.open,!0);rF(rn)}function PIe(rn){rn.world.dispose()}function gIe(rn,nn){if(rn.world.isDisposed)return;if(rn.running&&rn.layout){let{bumped:an,reached:sn}=uIe(rn.ball,rn.open,Dc,nn*1000);if(an){if(rn.scene)vIe(rn.world,rn.layout,rn.scene);rn.onEvent("bump")}if(wIe(rn),sn&&sn[0]===Dc-1&&sn[1]===Dc-1)rn.world.scoreboard.set(Ya(rn.elapsed,h0,rIe)),DIe(rn,!0)}rn.world.update(nn)}function DIe(rn,nn){rn.world.scoreboard.stop(),rn.running=!1,rn.won=nn;let{layout:an,scene:sn}=rn;if(an&&sn)if(nn)TIe(rn.world,an,sn);else xIe(rn.world,sn);rn.phase="over",rn.onPhase("over"),rn.onEvent(nn?"win":"lose"),rn.world.after(nIe,()=>rn.onCard())}function NIe(rn,nn){if(nn.phase==="start"){rn.ball.anchorX=nn.x,rn.ball.anchorY=nn.y;return}if(!rn.running)return;if(cIe(rn.ball,nn.x,nn.y))rn.onEvent("turn")}var ULt=300;var GIe=e(()=>{ci();ba();yL();$7();RIe()});var vr={};n(vr,{MazeRunner:()=>Jt});import{jsx as zLt}from"react/jsx-runtime";var cE,kIe,VLt=()=>"You ran out of time!",Jt;var Se=e(()=>{Ta();l();a();_a();o();xa();va();yL();GIe();cE=t.MAZE_RUNNER,kIe={turn:{sound:cE.TURN,haptic:"light"},bump:{sound:cE.BUMP,haptic:"medium"},win:{sound:cE.COMPLETE,haptic:"success"},lose:{sound:cE.GAME_OVER,haptic:"error"}},Jt=Vn("maze-runner",(rn)=>{let[nn,an]=gn(h0),[sn,ln]=gn(!1),{game:cn,theme:un,status:dn,screen:pn,gameOver:mn}=zn(rn,{gameId:"maze-runner",create:AIe,start:IIe,reset:rF,replay:OIe,dispose:PIe,tick:gIe,setTheme:CIe,resize:(fn,hn,bn,yn)=>{let En=sIe(hn,bn,yn);return MIe(fn,En),En.size+En.cell*Qv+lE*2},drag:NIe,sounds:cE,onStart:(fn)=>{ln(!1),fn(cE.START,"medium")},onStop:(fn)=>fn(null),onPlayAgain:()=>ln(!1),wire:(fn,hn)=>{fn.onCard=()=>ln(!0),fn.onTime=an,fn.onEvent=(bn)=>hn(kIe[bn].sound,kIe[bn].haptic)}});return zLt(Un,{...pn,light:aIe,columns:[ta(nn,un)],subtext:"Swipe to roll!",gameOver:sn?mn({title:dn==="win"?"MAZE COMPLETE!":"TIME UP!",message:dn==="win"?"You found the exit!":"You ran out of time!",scoreLabel:dn==="win"?"Score":"Time's Up!",score:cn.score,formatter:dn==="win"?void 0:VLt,buttonText:dn==="win"?"Navigate Again!":"Try Again!"}):null})})});function $Ie(rn,nn,an,sn){let ln=$n(rn),cn=la(an)+qLt,un=Math.max(200,nn-cn-YLt),dn=(ln-SL*2-Tu*(sn.cols+1))/sn.cols,pn=(un/Math.cos(BIe)-SL*2-Tu*(sn.rows+1))/sn.rows,mn=Math.max(10,Math.floor(Math.min(dn,pn))),fn=sn.cols*(mn+Tu)+Tu,hn=sn.rows*(mn+Tu)+Tu;return{...sn,width:rn,height:nn,tilt:BIe,centerY:cn+un/2,cell:mn,pitch:mn+Tu,gridWidth:fn,gridHeight:hn,boardWidth:fn+SL*2,boardHeight:hn+SL*2}}function _L(rn,nn,an){return[-rn.gridWidth/2+Tu+an*rn.pitch+rn.cell/2,rn.gridHeight/2-Tu-nn*rn.pitch-rn.cell/2]}function ZIe(rn,nn,an){let sn=nn+rn.gridWidth/2-Tu,ln=rn.gridHeight/2-Tu-an,cn=Math.floor(sn/rn.pitch),un=Math.floor(ln/rn.pitch);if(un<0||un>=rn.rows||cn<0||cn>=rn.cols)return null;return sn-cn*rn.pitch<=rn.cell&&ln-un*rn.pitch<=rn.cell?[un,cn]:null}var FIe=(rn)=>rn?{rows:14,cols:12,mines:5}:{rows:10,cols:9,mines:5},b0=180,HIe=100,WIe=50,UIe=5000,VIe=0.3,zIe=10,qIe=0.5,YIe=0.4,KIe=0.025,XIe,Am,BIe=0.34,jIe,qLt=82,YLt=110,Tu=3,SL=6;var vL=e(()=>{o();Hn();XIe=["","#2196F3","#4CAF50","#F44336","#9C27B0","#FF9800","#00BCD4","#795548","#607D8B"],Am={HIDDEN:"#3D7A4E",HIDDEN_ALT:"#5DA86E",REVEALED:"#F0E6D0",REVEALED_ALT:"#E5DABE",MINE:"#E74C3C",CLASSIC_BOARD:"rgba(255, 255, 255, 0.30)",CLASSIC_GRID:"rgba(255, 255, 255, 0.10)"},jIe=Zn([-0.4,0.5,1],0.45)});function nF(rn){return Array.from({length:rn.rows},(nn,an)=>Array.from({length:rn.cols},(sn,ln)=>({row:an,col:ln,isMine:!1,state:"hidden",adjacentMines:0})))}function QIe(rn,nn,an,sn){let ln=0;while(ln<nn.mines){let cn=Math.floor(Math.random()*nn.rows),un=Math.floor(Math.random()*nn.cols);if((Math.abs(cn-an)>1||Math.abs(un-sn)>1)&&!rn[cn][un].isMine)rn[cn][un].isMine=!0,ln++}for(let cn=0;cn<nn.rows;cn++)for(let un=0;un<nn.cols;un++){if(rn[cn][un].isMine)continue;let dn=0;for(let pn=-1;pn<=1;pn++)for(let mn=-1;mn<=1;mn++){if(!pn&&!mn)continue;if(rn[cn+pn]?.[un+mn]?.isMine)dn++}rn[cn][un].adjacentMines=dn}}function JIe(rn,nn,an,sn){let ln=[[an,sn]],cn=new Uint8Array(nn.rows*nn.cols);cn[an*nn.cols+sn]=1;let un=[];for(let dn=0;dn<ln.length;dn++){let[pn,mn]=ln[dn],fn=rn[pn]?.[mn];if(!fn||fn.state!=="hidden"||fn.isMine)continue;if(un.push(fn),fn.adjacentMines!==0)continue;for(let hn=-1;hn<=1;hn++)for(let bn=-1;bn<=1;bn++){if(!hn&&!bn)continue;let yn=pn+hn,En=mn+bn;if(yn<0||yn>=nn.rows||En<0||En>=nn.cols||cn[yn*nn.cols+En])continue;cn[yn*nn.cols+En]=1,ln.push([yn,En])}}return un}var aF=()=>{};import{effects as r3e,extrude as n3e,lathe as a3e,merge as s3e,Path as i3e,quat as tT,shapeGeometry as e3e,tube as XLt}from"@nayan-ui/engine";function p3e(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-o3e,an);Ea(rn,ln,nn,o3e);let cn=an.mode==="classic",un=rn.spawn({mesh:lF(nn.boardWidth,nn.boardHeight,cn?12:8),position:[0,0,-iF/2],color:d3e(an),pickable:!1}),dn=cn?rn.spawn({mesh:lF(nn.gridWidth,nn.gridHeight,8),position:[0,0,-iF/2+0.3],color:xn(Am.CLASSIC_GRID),pickable:!1}):null,pn=[],mn=[];for(let hn of sn)for(let bn of hn){let[yn,En]=_L(nn,bn.row,bn.col),Sn=bn.state==="revealed",_n=nn.cell*(Sn?xL:l3e);pn.push(rn.spawn({mesh:"roundedBox",position:[yn,En,_n/2],scale:[nn.cell,nn.cell,_n],color:Sn?u3e(bn):ZLt(bn.row,bn.col),pickable:!1})),mn.push(null)}let fn={backdrop:ln,panel:un,grid:dn,tiles:pn,marks:mn};for(let hn of sn)for(let bn of hn)uF(rn,nn,fn,bn,!1);return fn}function m3e(rn,nn){for(let an of[nn.backdrop,nn.panel,nn.grid,...nn.tiles,...nn.marks])if(an!=null)rn.despawn(an)}function f3e(rn,nn,an,sn){if(aa(rn,an.backdrop,sn),rn.set(an.panel,{mesh:lF(nn.boardWidth,nn.boardHeight,sn.mode==="classic"?12:8),color:d3e(sn)}),an.grid!=null)rn.set(an.grid,{scale:sn.mode==="classic"?1:0})}function uF(rn,nn,an,sn,ln,cn=0){let un=sn.row*nn.cols+sn.col,dn=an.marks[un];if(dn!=null)rn.despawn(dn);an.marks[un]=null;let pn=null;if(sn.state==="flagged")pn=rn.spawn({mesh:$Lt(),position:TL(nn,sn,nn.cell*l3e),scale:nn.cell*0.8,pickable:!1});else if(sn.state==="revealed"&&sn.isMine)pn=rn.spawn({mesh:jLt(),position:TL(nn,sn,nn.cell*xL),scale:nn.cell*0.85,pickable:!1});else if(sn.state==="revealed"&&sn.adjacentMines>0){let mn=nn.cell*0.56;pn=rn.spawn({mesh:o0(String(sn.adjacentMines)),position:TL(nn,sn,nn.cell*xL+Kp*mn),scale:mn,color:xn(XIe[sn.adjacentMines]),pickable:!1})}if(an.marks[un]=pn,pn!=null&&ln){let mn=sn.state==="flagged"?nn.cell*0.8:sn.state==="revealed"&&sn.isMine?nn.cell*0.85:nn.cell*0.56;rn.set(pn,{scale:0.01}),rn.animate(pn,{scale:mn},{duration:0.22,delay:cn,easing:"back"})}}function dF(rn,nn,an,sn,ln){for(let cn of sn){let un=Math.hypot(cn.row-ln.row,cn.col-ln.col)*KIe,dn=an.tiles[cn.row*nn.cols+cn.col],pn=nn.cell*xL;rn.animate(dn,{position:TL(nn,cn,pn/2),scale:[nn.cell,nn.cell,pn],color:u3e(cn)},{duration:0.16,delay:un,easing:"easeIn"}),uF(rn,nn,an,cn,!0,un+0.1)}}function h3e(rn,nn,an,sn){uF(rn,nn,an,sn,!0)}function b3e(rn,nn,an,sn,ln,cn){dF(rn,nn,an,cn,ln);let[un,dn]=_L(nn,ln.row,ln.col);r3e.explosion(rn,{position:[un,dn,nn.cell*0.4],count:28,size:nn.cell*0.9,speed:nn.cell*4,lifetime:0.6,direction:[0,0,1],spread:1.4,debris:[xn("#3E4A58"),xn("#8D6E63"),xn("#5A5A5A")]}),sn.shake=nn.cell*0.25}function y3e(rn,nn){r3e.confetti(rn,{position:[0,0,nn.cell],count:60,size:nn.cell*0.2,speed:nn.boardWidth*1.4,lifetime:1.3,gravity:-nn.boardWidth*2.4,colors:["#FFD700","#4CAF50","#2196F3","#E74C3C"].map((an)=>xn(an))})}var t3e,cF=(rn,nn)=>{let an=t3e.get(rn);if(!an)an=Bn("mine-sweeper/MineSweeperScene:"+rn,nn),t3e.set(rn,an);return an},sF,iF=10,o3e=25,l3e=0.32,xL=0.08,jLt=()=>cF("ms-mine",()=>{let rn=a3e([[0.07,0],[0.04,0.14],[0.001,0.2]],{segments:10}),nn=[{geometry:e3e("sphere"),position:[0,0,0.32],scale:0.48,color:[0.12,0.12,0.14,1]}];for(let an=0;an<8;an++){let sn=an/8*Math.PI*2,ln=an%2?0.45:-0.45,cn=tT.multiply(tT.z(sn),tT.multiply(tT.y(Math.PI/2+ln),sF));nn.push({geometry:rn,position:[Math.cos(sn)*0.2,Math.sin(sn)*0.2,0.32+ln*0.3],rotation:cn,color:[0.2,0.2,0.22,1]})}return nn.push({geometry:e3e("sphere"),position:[-0.08,0.08,0.5],scale:0.09,color:[0.9,0.9,0.95,1]}),wn(s3e(nn),{center:!1,shine:0.8})}),$Lt=()=>cF("ms-flag",()=>{let rn=n3e(new i3e().moveTo(0,0).lineTo(0.36,0.12).lineTo(0,0.26).close(),{depth:0.03});return wn(s3e([{geometry:a3e([[0.001,0.05],[0.18,0.05],[0.2,0],[0.001,0]],{segments:18}),rotation:sF,color:[0.33,0.33,0.33,1]},{geometry:XLt([[-0.06,0,0.04],[-0.06,0,0.72]],{radius:0.03,sides:8}),color:xn("#8B4513")},{geometry:rn,position:[-0.06,0,0.72],rotation:sF,color:xn("#E74C3C")}]),{center:!1,shine:0.4})}),lF=(rn,nn,an)=>cF(`ms-panel:${rn}x${nn}:${an}`,()=>wn(n3e(new i3e().addRoundedRect(-rn/2,-nn/2,rn,nn,an),{depth:iF}),{shine:0.2})),c3e=(rn,nn)=>(rn+nn)%2===1,ZLt=(rn,nn)=>xn(c3e(rn,nn)?Am.HIDDEN_ALT:Am.HIDDEN),u3e=(rn)=>xn(rn.isMine?Am.MINE:c3e(rn.row,rn.col)?Am.REVEALED_ALT:Am.REVEALED),d3e=(rn)=>xn(rn.mode==="classic"?Am.CLASSIC_BOARD:rn.BOARD.SURFACE),TL=(rn,nn,an)=>{let[sn,ln]=_L(rn,nn.row,nn.col);return[sn,ln,an]};var E3e=e(()=>{u();r0();na();ba();Hn();vL();aF();t3e=new Map,sF=tT.x(Math.PI/2)});import{World as QLt}from"@nayan-ui/engine";function S3e(rn,nn){let an=new QLt(JLt),ln={world:an,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,board:nn,layout:null,scene:null,phase:"ready",grid:nF(nn),firstReveal:!0,mineHit:!1,get score(){return an.scoreboard.score},get timeRemaining(){return an.scoreboard.shownSeconds},minesRemaining:nn.mines,revealed:0,won:!1,press:null,clock:0,onPhase:(cn)=>{},onScore:(cn)=>{},onTime:(cn)=>{},onMines:(cn)=>{},onEvent:(cn)=>{}};return an.scoreboard.reset(0,b0),an.scoreboard.handlers={onSecond:(cn)=>ln.onTime(cn),onTimeUp:()=>ln.phase==="playing"&&pF(ln,!1)},ln}function mF(rn,nn){if(rn.scene)m3e(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=p3e(rn.world,nn,rn.theme,rn.grid)}function _3e(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)f3e(rn.world,rn.layout,rn.scene,nn)}function v3e(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(b0),rn.revealed=0,rn.firstReveal=!0,rn.mineHit=!1,rn.onScore(0),rn.onTime(b0),rn.onPhase("playing")}function T3e(rn){if(rn.world.cancelTimers(),rn.grid=nF(rn.board),rn.firstReveal=!0,rn.mineHit=!1,rn.world.scoreboard.reset(0,b0),rn.minesRemaining=rn.board.mines,rn.revealed=0,rn.won=!1,rn.press=null,rn.phase="ready",rn.layout)mF(rn,rn.layout);rn.onScore(0),rn.onTime(b0),rn.onMines(rn.minesRemaining),rn.onPhase("ready")}function x3e(rn){rn.world.dispose()}function R3e(rn,nn){if(rn.world.isDisposed)return;rn.clock+=Math.min(nn,0.25);let an=rn.press;if(an&&!an.flagged&&an.cell&&rn.clock-an.at>=VIe)an.flagged=!0,rIt(rn,an.cell[0],an.cell[1]);rn.world.update(nn)}function pF(rn,nn){rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.press=null,rn.onPhase("over")}function tIt(rn,nn,an){let sn=rn.layout;if(!sn)return null;let[ln,cn]=Wa(sn,nn,an,sn.cell*0.32);return ZIe(sn,ln,cn)}function A3e(rn,{phase:nn,x:an,y:sn}){if(nn==="start"){rn.press={x:an,y:sn,at:rn.clock,cell:tIt(rn,an,sn),flagged:!1};return}let ln=rn.press;if(!ln)return;if(Math.hypot(an-ln.x,sn-ln.y)>zIe){rn.press=null;return}if(nn!=="end")return;if(rn.press=null,!ln.flagged&&ln.cell&&rn.clock-ln.at<qIe)oIt(rn,ln.cell[0],ln.cell[1])}function oIt(rn,nn,an){if(rn.phase!=="playing"||rn.mineHit)return;let sn=rn.grid[nn]?.[an];if(!sn||sn.state!=="hidden")return;if(rn.firstReveal)rn.firstReveal=!1,QIe(rn.grid,rn.board,nn,an);let{layout:ln,scene:cn}=rn;if(sn.isMine){rn.mineHit=!0;let dn=rn.grid.flat().filter((pn)=>pn.isMine&&pn.state!=="revealed");for(let pn of dn)pn.state="revealed";if(ln&&cn)b3e(rn.world,ln,cn,rn.camera,sn,dn);rn.onEvent("mine"),rn.world.scoreboard.stop(),rn.world.after(YIe,()=>pF(rn,!1));return}let un=JIe(rn.grid,rn.board,nn,an);if(!un.length)return;for(let dn of un)dn.state="revealed";if(rn.revealed+=un.length,rn.world.scoreboard.add(un.length*HIe),ln&&cn)dF(rn.world,ln,cn,un,sn);if(rn.onEvent("reveal"),rn.revealed>=eIt(rn.board)){if(rn.world.scoreboard.set(Ya(b0-rn.timeRemaining,b0,rn.score+UIe)),rn.onScore(rn.score),ln)y3e(rn.world,ln);pF(rn,!0);return}rn.onScore(rn.score)}function rIt(rn,nn,an){if(rn.phase!=="playing"||rn.mineHit)return;let sn=rn.grid[nn]?.[an];if(!sn||sn.state==="revealed")return;let ln=sn.state==="hidden";if(sn.state=ln?"flagged":"hidden",rn.minesRemaining+=ln?-1:1,ln)rn.world.scoreboard.add(WIe);if(rn.layout&&rn.scene)h3e(rn.world,rn.layout,rn.scene,sn);if(rn.onMines(rn.minesRemaining),ln)rn.onScore(rn.score),rn.onEvent("flag")}var JLt=600,eIt=(rn)=>rn.rows*rn.cols-rn.mines;var M3e=e(()=>{ci();ba();vL();aF();E3e()});var xr={};n(xr,{MineSweeper:()=>eo});import{jsx as nIt}from"react/jsx-runtime";var Hh,fF,C3e,eo;var _e=e(()=>{Ta();l();a();_a();o();xa();va();vL();M3e();Hh=t.MINE_SWEEPER,fF=FIe(c),C3e={reveal:{sound:Hh.REVEAL,haptic:"light"},flag:{sound:Hh.FLAG,haptic:"medium"},mine:{sound:Hh.MINE_HIT,haptic:"error"}},eo=Vn("mine-sweeper",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(b0),[cn,un]=gn(fF.mines),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"mine-sweeper",create:(hn)=>S3e(hn,fF),start:v3e,reset:T3e,dispose:x3e,tick:R3e,setTheme:_3e,resize:(hn,bn,yn,En)=>{let Sn=$Ie(bn,yn,En,fF);return mF(hn,Sn),Sn.boardWidth},drag:A3e,sounds:Hh,onStart:(hn)=>hn(Hh.START,"success"),onStop:(hn)=>hn(null,"medium"),onOver:(hn,bn)=>hn(bn==="win"?Hh.WIN:Hh.GAME_OVER,bn==="win"?"success":"error"),wire:(hn,bn)=>{hn.onScore=an,hn.onTime=ln,hn.onMines=un,hn.onEvent=(yn)=>bn(C3e[yn].sound,C3e[yn].haptic)}});return nIt(Un,{...mn,light:jIe,columns:[Qn(nn),ma("MINES",cn),ta(sn,dn)],subtext:"Reveal cells, flag mines!",gameOver:fn({title:pn==="win"?"YOU WON!":"BOOM!",message:pn==="win"?"All mines cleared!":"You hit a mine!",scoreLabel:"Final Score",score:nn,buttonText:"Sweep Again!"})})})});function yF(rn,nn){let an=Array.from({length:Li},()=>Array(Li).fill("")),sn=[],ln=[];for(let un=0;un<Li;un++)for(let dn=0;dn<Li;dn++)ln.push({row:un,col:dn});let cn=(un,dn,pn,mn,fn)=>{for(let hn=0;hn<un.length;hn++){let bn=dn+hn*fn,yn=pn+hn*mn;if(bn<0||bn>=Li||yn<0||yn>=Li)return!1;let En=an[bn][yn];if(En&&En!==un[hn])return!1}return!0};for(let un of hF([...new Set(rn.filter((dn)=>dn.length<=Li))])){if(sn.length>=aIt)break;e:for(let[dn,pn]of hF(sIt))for(let{row:mn,col:fn}of hF(ln)){if(!cn(un,mn,fn,dn,pn))continue;let hn=Array.from(un,(bn,yn)=>{let En={row:mn+yn*pn,col:fn+yn*dn};return an[En.row][En.col]=bn,En});sn.push({text:un,cells:hn});break e}}for(let un of an)for(let dn=0;dn<Li;dn++)if(!un[dn])un[dn]=nn[Math.floor(Math.random()*nn.length)];return{grid:an,placed:sn}}function EF(rn,nn){let an=nn.row-rn.row,sn=nn.col-rn.col;if(an!==0&&sn!==0&&Math.abs(an)!==Math.abs(sn))return[];let ln=Math.max(Math.abs(an),Math.abs(sn)),cn=Math.sign(an),un=Math.sign(sn);return Array.from({length:ln+1},(dn,pn)=>({row:rn.row+pn*cn,col:rn.col+pn*un}))}function I3e(rn,nn,an,sn){let ln=rn.map((un)=>nn[un.row]?.[un.col]??"").join(""),cn=[...ln].reverse().join("");return an.find((un)=>!sn.has(un.text)&&(un.text===ln||un.text===cn))??null}function G3e(rn,nn,an){let sn=$n(rn),ln=la(an)+iIt,cn=Math.max(240,nn-ln-lIt),un=Math.min(sn,(cn-bF)/Math.cos(RL)),dn=bF+un*Math.cos(RL),pn=ln+(cn-dn)/2,mn=(un-w3e*2)/Li;return{width:rn,height:nn,tilt:RL,centerY:pn+bF+un*Math.cos(RL)/2,boardSize:un,cell:mn,padding:w3e,tileTop:Math.max(4,mn*0.16),listTop:pn,listWidth:sn}}function Mm(rn,nn,an){let sn=rn.boardSize/2;return[-sn+rn.padding+(an+0.5)*rn.cell,sn-rn.padding-(nn+0.5)*rn.cell]}function k3e(rn,nn,an){let sn=rn.boardSize/2,ln=Math.floor((nn+sn-rn.padding)/rn.cell),cn=Math.floor((sn-rn.padding-an)/rn.cell);return cn>=0&&cn<Li&&ln>=0&&ln<Li?{row:cn,col:ln}:null}var Li=10,aIt=8,wd=300,L3e=1000,sIt,hF=(rn)=>{let nn=[...rn];for(let an=nn.length-1;an>0;an--){let sn=Math.floor(Math.random()*(an+1));[nn[an],nn[sn]]=[nn[sn],nn[an]]}return nn},uE,O3e="rgba(77, 166, 255, 0.85)",P3e="#FFFFFF",SF="#333333",g3e="rgba(255, 255, 255, 0.3)",RL=0.3,D3e,N3e=0.12,_F=0.32,iIt=82,lIt=110,w3e=8,bF=52;var AL=e(()=>{o();Hn();sIt=[[1,0],[0,1],[1,1],[-1,1],[-1,0],[0,-1],[-1,-1],[1,-1]];uE=["rgba(255, 59, 59, 1)","rgba(50, 205, 50, 1)","rgba(255, 215, 0, 1)","rgba(77, 166, 255, 1)","rgba(191, 90, 242, 1)","rgba(255, 149, 0, 1)"],D3e=Zn([-0.4,0.5,1],0.5)});import{effects as U3e,extrude as cIt,Path as uIt,quat as dIt,tube as pIt}from"@nayan-ui/engine";function K3e(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-F3e,an);Ea(rn,ln,nn,F3e);let cn=rn.spawn({mesh:q3e(nn.boardSize,an.mode==="classic"?12:8),position:[0,0,-z3e/2],color:Y3e(an),pickable:!1}),un=[],dn=[],pn=xn(SF),mn=xn(P3e);for(let fn=0;fn<Li;fn++)for(let hn=0;hn<Li;hn++){let[bn,yn]=Mm(nn,fn,hn);un.push(rn.spawn({mesh:"roundedBox",position:[bn,yn,nn.tileTop/2],scale:[nn.cell*0.88,nn.cell*0.88,nn.tileTop],color:mn,pickable:!1})),dn.push(X3e(rn,nn,sn[fn][hn],bn,yn,pn))}return{backdrop:ln,panel:cn,tiles:un,glyphs:dn,selection:Q3e(rn,xn(O3e)),ends:{ax:0,ay:0,bx:0,by:0,tax:0,tay:0,tbx:0,tby:0,on:!1},found:[]}}function X3e(rn,nn,an,sn,ln,cn){let un=nn.cell*vF;return rn.spawn({mesh:o0(an),position:[sn,ln,nn.tileTop+Kp*un],scale:un,color:cn,pickable:!1})}function j3e(rn,nn,an,sn){let ln=xn(SF);an.glyphs.forEach((cn,un)=>{rn.despawn(cn);let dn=Math.floor(un/Li),pn=un%Li,[mn,fn]=Mm(nn,dn,pn);an.glyphs[un]=X3e(rn,nn,sn[dn][pn],mn,fn,ln)});for(let cn of an.found)for(let un of cn)rn.despawn(un);an.found=[]}function $3e(rn,nn){for(let an of[nn.backdrop,nn.panel,...nn.tiles,...nn.glyphs,...nn.selection,...nn.found.flat()])rn.despawn(an)}function Z3e(rn,nn,an,sn){aa(rn,an.backdrop,sn),rn.set(an.panel,{mesh:q3e(nn.boardSize,sn.mode==="classic"?12:8),color:Y3e(sn)})}function Q3e(rn,nn){return[rn.spawn({mesh:mIt(),scale:0,color:nn,pickable:!1}),rn.spawn({mesh:"sphere",scale:0,color:nn,pickable:!1}),rn.spawn({mesh:"sphere",scale:0,color:nn,pickable:!1})]}function TF(rn,nn,an,sn,ln,cn,un){let dn=nn.cell*0.8,pn=Math.max(0.4,nn.tileTop*0.12),mn=nn.tileTop+pn*0.15,fn=Math.hypot(cn-sn,un-ln),[hn,bn,yn]=an;rn.set(hn,{position:[(sn+cn)/2,(ln+un)/2,mn],rotation:dIt.z(Math.atan2(un-ln,cn-sn)),scale:[Math.max(fn,0.001),dn,pn]}),rn.set(bn,{position:[sn,ln,mn],scale:[dn,dn,pn]}),rn.set(yn,{position:[cn,un,mn],scale:[dn,dn,pn]})}function fIt(rn,nn,an,sn,ln){let[cn,un]=Mm(nn,sn.row,sn.col),[dn,pn]=Mm(nn,ln.row,ln.col);TF(rn,nn,an,cn,un,dn,pn)}function ML(rn,nn,an,sn,ln,cn){let un=an.ends;if([un.tax,un.tay]=Mm(nn,sn.row,sn.col),[un.tbx,un.tby]=Mm(nn,ln.row,ln.col),un.on=!0,!cn)return;un.ax=un.tax,un.ay=un.tay,un.bx=un.tbx,un.by=un.tby,TF(rn,nn,an.selection,un.ax,un.ay,un.bx,un.by)}function J3e(rn,nn,an,sn){let ln=an.ends;if(!ln.on)return;if(Math.abs(ln.tax-ln.ax)+Math.abs(ln.tay-ln.ay)+Math.abs(ln.tbx-ln.bx)+Math.abs(ln.tby-ln.by)<0.05)return;let un=1-Math.exp(-sn/(N3e/3));ln.ax+=(ln.tax-ln.ax)*un,ln.ay+=(ln.tay-ln.ay)*un,ln.bx+=(ln.tbx-ln.bx)*un,ln.by+=(ln.tby-ln.by)*un,TF(rn,nn,an.selection,ln.ax,ln.ay,ln.bx,ln.by)}function eOe(rn,nn){nn.ends.on=!1;for(let an of nn.selection)rn.set(an,{scale:0})}function xF(rn,nn,an,sn,ln,cn){let[un,dn,pn,mn]=xn(uE[ln%uE.length]),fn=Q3e(rn,[un,dn,pn,mn??1]);if(fIt(rn,nn,fn,sn[0],sn[sn.length-1]),an.found.push(fn),!cn)return;let hn=[nn.cell*0.88,nn.cell*0.88,nn.tileTop];rn.animate(sn.map((Sn)=>an.tiles[H3e(Sn)]),[{scale:[hn[0]*1.15,hn[1]*1.15,hn[2]*1.6],at:0.4},{scale:hn}],{duration:_F,stagger:0.04}),rn.animate(sn.map((Sn)=>an.glyphs[H3e(Sn)]),[{scale:nn.cell*vF*1.2,at:0.4},{scale:nn.cell*vF}],{duration:_F,stagger:0.04});let bn=sn[Math.floor(sn.length/2)],[yn,En]=Mm(nn,bn.row,bn.col);U3e.sparkle(rn,{position:[yn,En,nn.tileTop+nn.cell*0.3],count:14,size:nn.cell*0.12,speed:nn.cell*4,lifetime:0.55,gravity:-nn.cell*4,colors:[[un,dn,pn,1],[1,1,1,1]]})}function tOe(rn,nn){U3e.confetti(rn,{position:[0,0,nn.cell*2],count:60,size:nn.cell*0.22,speed:nn.boardSize*1.4,lifetime:1.3,gravity:-nn.boardSize*2.4,colors:uE.slice(0,4).map((an)=>{let[sn,ln,cn]=xn(an);return[sn,ln,cn,1]})})}function oOe(rn,nn,an,sn){if(!rn.ready)return;let ln=nn.map((dn,pn)=>({text:dn,color:uE[pn%uE.length]})).sort((dn,pn)=>dn.text.localeCompare(pn.text)),cn=`${ln.map((dn)=>dn.text).join("|")}:${sn.width}:${sn.listTop}:${sn.listWidth}`,un=W3e.get(rn);if(un?.key!==cn){rn.clearLayer("entries");let dn=rn.layer("entries"),pn=Math.min(4,ln.length),mn=5,fn=(sn.listWidth-mn*(pn-1))/pn,hn=(sn.width-sn.listWidth)/2;un={key:cn,chips:ln.map((bn,yn)=>{let En=rn.world.spawn({mesh:"none",parent:dn,position:[hn+yn%pn*(fn+mn)+fn/2,-(sn.listTop+Math.floor(yn/pn)*24+11),0],pickable:!1}),Sn=rn.rectangle(En,0,0,fn,21,xn(bn.color));rn.text(En,bn.text,0,0,Math.min(12,(fn-8)/bn.text.length/0.65),[1,1,1,1]);let _n=rn.rectangle(En,0,0,fn-12,1,[1,1,1,0],3);return{root:En,face:Sn,strike:_n,color:bn.color,text:bn.text,found:!1}})},W3e.set(rn,un)}for(let dn of un.chips){let pn=an.has(dn.text);if(pn===dn.found)continue;if(dn.found=pn,rn.world.set(dn.face,{color:xn(pn?"rgba(90,90,90,0.45)":dn.color)}),rn.world.set(dn.strike,{color:[1,1,1,pn?0.85:0]}),pn)rn.world.animate(dn.root,[{scale:1.18},{scale:1}],{duration:0.3})}}var B3e,V3e=(rn,nn)=>{let an=B3e.get(rn);if(!an)an=Bn("search-grid/SearchGridScene:"+rn,nn),B3e.set(rn,an);return an},z3e=10,F3e=25,vF=0.4,q3e=(rn,nn)=>V3e(`sg-panel:${rn.toFixed(1)}:${nn}`,()=>wn(cIt(new uIt().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:z3e}),{shine:0.2})),mIt=()=>V3e("sg-bar",()=>wn(pIt([[-0.5,0,0],[0.5,0,0]],{radius:0.5,sides:18,smoothness:1,caps:!1}),{shine:0.5})),Y3e=(rn)=>xn(rn.mode==="classic"?g3e:rn.BOARD.SURFACE),H3e=(rn)=>rn.row*Li+rn.col,W3e;var RF=e(()=>{u();r0();na();ba();Hn();AL();B3e=new Map;W3e=new WeakMap});import{World as hIt}from"@nayan-ui/engine";function nOe(rn,nn){let an=new hIt(bIt),sn={eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},{grid:ln,placed:cn}=yF(nn.list,nn.alphabet),un={world:an,camera:sn,theme:rn,content:nn,layout:null,scene:null,phase:"ready",grid:ln,placed:cn,found:new Set,start:null,end:null,get score(){return an.scoreboard.score},get timeLeft(){return an.scoreboard.shownSeconds},won:!1,onPhase:(dn)=>{},onScore:(dn)=>{},onTime:(dn)=>{},onEntries:(dn)=>{},onFound:(dn)=>{},onFind:()=>{},onWin:()=>{}};return an.scoreboard.reset(0,wd),an.scoreboard.handlers={onSecond:(dn)=>un.onTime(dn),onTimeUp:()=>un.phase==="playing"&&dOe(un,!1)},un}function aOe(rn,nn){if(rn.scene)$3e(rn.world,rn.scene);if(rn.layout=nn,ya(rn.camera,nn),rn.scene=K3e(rn.world,nn,rn.theme,rn.grid),rn.placed.forEach((an,sn)=>rn.found.has(an.text)&&xF(rn.world,nn,rn.scene,an.cells,sn,!1)),rn.start&&rn.end)ML(rn.world,nn,rn.scene,rn.start,rn.end,!0)}function sOe(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)Z3e(rn.world,rn.layout,rn.scene,nn)}function iOe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(wd),rn.onPhase("playing")}function lOe(rn){let{grid:nn,placed:an}=yF(rn.content.list,rn.content.alphabet);if(rn.grid=nn,rn.placed=an,rn.found=new Set,MF(rn),rn.world.scoreboard.reset(0,wd),rn.won=!1,rn.phase="ready",rn.layout&&rn.scene)j3e(rn.world,rn.layout,rn.scene,nn);rn.onEntries(AF(rn)),rn.onFound(rn.found),rn.onScore(0),rn.onTime(wd),rn.onPhase("ready")}function cOe(rn){rn.world.dispose()}function uOe(rn,nn){if(rn.world.isDisposed)return;if(rn.layout&&rn.scene)J3e(rn.world,rn.layout,rn.scene,nn);rn.world.update(nn)}function dOe(rn,nn){rn.world.scoreboard.stop(),MF(rn),rn.won=nn,rn.phase="over",rn.onPhase("over")}function MF(rn){if(rn.start=null,rn.end=null,rn.scene)eOe(rn.world,rn.scene)}function rOe(rn,nn,an){let sn=rn.layout;if(!sn)return null;let[ln,cn]=Wa(sn,nn,an,sn.tileTop);return k3e(sn,ln,cn)}function pOe(rn,{phase:nn,x:an,y:sn}){let{layout:ln,scene:cn}=rn;if(!ln||!cn)return;if(nn==="start"){if(rn.phase!=="playing")return;let un=rOe(rn,an,sn);if(!un)return;rn.start=un,rn.end=un,ML(rn.world,ln,cn,un,un,!0);return}if(nn==="move"){if(!rn.start||rn.phase!=="playing")return;let un=rOe(rn,an,sn);if(!un||un.row===rn.end?.row&&un.col===rn.end?.col||!EF(rn.start,un).length)return;rn.end=un,ML(rn.world,ln,cn,rn.start,un,!1);return}yIt(rn)}function yIt(rn){let{start:nn,end:an}=rn;if(MF(rn),!nn||!an||rn.phase!=="playing")return;let sn=EF(nn,an),ln=I3e(sn,rn.grid,rn.placed,rn.found);if(!ln)return;ln.cells=sn,EIt(rn,ln)}function EIt(rn,nn){let{layout:an,scene:sn}=rn;if(rn.found=new Set(rn.found).add(nn.text),rn.world.scoreboard.add(L3e),an&&sn)xF(rn.world,an,sn,nn.cells,rn.placed.indexOf(nn),!0);if(rn.onFound(rn.found),rn.onFind(),rn.found.size===rn.placed.length){if(rn.world.scoreboard.set(Ya(wd-rn.timeLeft,wd,rn.score)),rn.onScore(rn.score),an)tOe(rn.world,an);rn.onWin(),dOe(rn,!0);return}rn.onScore(rn.score)}var bIt=400,AF=(rn)=>rn.placed.map((nn)=>nn.text);var mOe=e(()=>{ci();ba();AL();RF()});import{useMemo as SIt}from"react";import{jsx as _It}from"react/jsx-runtime";function CL(rn){let{sounds:nn}=rn;return Vn(rn.gameId,(an)=>{let[sn,ln]=gn(0),[cn,un]=gn(wd),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(an,{gameId:rn.gameId,create:(bn)=>nOe(bn,rn),start:iOe,reset:lOe,dispose:cOe,tick:uOe,hud:(bn,yn)=>{if(bn.layout)oOe(yn,AF(bn),bn.found,bn.layout)},setTheme:sOe,resize:(bn,yn,En,Sn)=>{let _n=G3e(yn,En,Sn);return aOe(bn,_n),_n.boardSize},drag:pOe,sounds:nn,onStart:(bn)=>bn(nn.START,"medium"),onOver:(bn,yn)=>{if(yn!=="win")bn(nn.GAME_OVER,"heavy")},wire:(bn,yn)=>{bn.onScore=ln,bn.onTime=un,bn.onFind=()=>yn(nn.FOUND,"medium"),bn.onWin=()=>yn(nn.WIN,"success")}}),hn=SIt(()=>ws(dn.BACKGROUND),[dn.BACKGROUND]);return _It(Un,{...mn,light:D3e,background:hn,columns:[Qn(sn),ta(cn,dn,0)],subtext:rn.startSubtext,gameOver:fn({title:pn==="win"?rn.winTitle:"TIME UP!",message:pn==="win"?rn.winMessage:"You ran out of time!",scoreLabel:pn==="win"?"You Won!":"Game Over",score:sn,buttonText:pn==="win"?"Play Again!":"Try Again!"})})})}var CF=e(()=>{Ta();_a();o();Hn();xa();va();AL();mOe();RF()});var fOe;var hOe=e(()=>{fOe=["1234","2345","3456","4567","5678","6789","7890","1111","2222","3333","4444","5555","6666","7777","8888","9999","1010","2020","3030","4040","5050","6060","7070","8080","9090","1212","1313","1414","1515","1616","1717","1818","1919","2121","2323","2424","2525","2626","2727","2828","2929","3131","3232","3434","3535","3636","3737","3838","3939","4141","4242","4343","4545","4646","4747","4848","4949","5151","5252","5353","5454","5656","5757","5858","5959","6161","6262","6363","6464","6565","6767","6868","6969","7171","7272","7373","7474","7575","7676","7878","7979","8181","8282","8383","8484","8585","8686","8787","8989","9191","9292","9393","9494","9595","9696","9797","9898","1000","2000","3000","4000","5000","6000","7000","8000","9000","1001","2002","3003","4004","5005","6006","7007","8008","9009","1122","2233","3344","4455","5566","6677","7788","8899","1100","2200","3300","4400","5500","6600","7700","8800","9900","1221","2332","3443","4554","5665","6776","7887","8998","1331","2442","3553","4664","5775","6886","7997","1248","2468","1357","3579","1369","2481","3692","4826","5937","1470","2580","3690","1590","2460","3570","4680","5790","6810","7920","8130","9240","1024","2048","4096","8192","1536","3072","6144","1025","2050","3075","4100","5125","12345","23456","34567","45678","56789","67890","11111","22222","33333","44444","55555","66666","77777","88888","99999","10101","20202","30303","40404","50505","60606","70707","80808","90909","12121","13131","14141","15151","16161","17171","18181","19191","21212","23232","24242","25252","26262","27272","28282","29292","31313","32323","34343","35353","36363","37373","38383","39393","41414","42424","43434","45454","46464","47474","48484","49494","51515","52525","53535","54545","56565","57575","58585","59595","10001","20002","30003","40004","50005","60006","70007","80008","90009","10010","20020","30030","40040","50050","60060","70070","11011","22022","33033","44044","55055","66066","77077","88088","99099","11211","12321","13431","14541","15651","16761","17871","11221","22332","33443","44554","55665","66776","77887","88998","10203","20304","30405","40506","50607","60708","70809","80910","13579","24680","97531","86420","12468","13692","24816","36924","10000","20000","30000","40000","50000","60000","70000","80000","90000","10100","20200","30300","40400","50500","60600","70700","10240","20480","40960","81920","15360","30720","61440","12800","25600","51200","10250","20500","30750","41000","51250","61500","123456","234567","345678","456789","567890","111111","222222","333333","444444","555555","666666","777777","888888","999999","101010","202020","303030","404040","505050","606060","707070","808080","909090","121212","131313","141414","151515","161616","171717","181818","191919","212121","232323","242424","252525","262626","272727","282828","292929","313131","323232","343434","353535","363636","373737","383838","393939","414141","424242","434343","454545","464646","474747","484848","494949","515151","525252","535353","545454","565656","575757","585858","595959","616161","626262","636363","646464","656565","676767","686868","696969","717171","727272","737373","747474","757575","767676","787878","797979","818181","828282","838383","848484","858585","868686","878787","898989","919191","929292","939393","949494","959595","969696","979797","989898","100001","200002","300003","400004","500005","600006","700007","800008","900009","100100","200200","300300","400400","500500","600600","700700","800800","900900","110011","220022","330033","440044","550055","660066","770077","880088","990099","112211","123321","134431","145541","156651","167761","178871","189981","112233","223344","334455","445566","556677","667788","778899","102030","203040","304050","405060","506070","607080","708090","135790","246800","975310","864200","124680","136920","248160","369240","100000","200000","300000","400000","500000","600000","700000","800000","900000","101000","202000","303000","404000","505000","606000","707000","102400","204800","409600","819200","153600","307200","614400","128000","256000","512000","102500","205000","307500","410000","512500","615000","111222","222333","333444","444555","555666","666777","777888","888999","100200","200300","300400","400500","500600","600700","700800","800900","110110","220220","330330","440440","550550","660660","770770","880880","990990","123123","234234","345345","456456","567567","678678","789789","321321","432432","543543","654654","765765","876876","987987","111000","222000","333000","444000","555000","666000","777000","888000","999000","100010","200020","300030","400040","500050","600060","700070","800080","900090","112112","113113","114114","115115","116116","117117","118118","119119","121121","131131","141141","151151","161161","171171","181181","191191","101101","102102","103103","104104","105105","106106","107107","108108","109109","246810","135791","112358","132134","314159","271828","161803","141421","173205","223606","100101","200201","300301","400401","500501","600601","700701","800801","900901"]});var Rr={};n(Rr,{NumberSearch:()=>to});var to;var Te=e(()=>{l();a();CF();hOe();to=CL({gameId:"number-search",list:fOe,alphabet:"0123456789",sounds:t.NUMBER_SEARCH,winTitle:"ALL NUMBERS FOUND!",winMessage:"Great number hunting!",startSubtext:"Find hidden numbers!",variant:"number",displayName:"NumberSearch"})});function vOe(rn,nn,an){let sn=$n(rn),ln=la(an)+vIt,cn=Math.max(240,nn-ln-TIt),un=Math.min((sn-oT*2)/Bi,(cn/Math.cos(bOe)-oT*2)/(nl+yOe));return{width:rn,height:nn,tilt:bOe,centerY:ln+cn/2,cell:un,padding:oT,boardWidth:un*Bi+oT*2,boardHeight:un*(nl+yOe)+oT*2}}function y0(rn,nn,an){let sn=rn.boardHeight/2-rn.padding-rn.cell/2;return[(an-(Bi-1)/2)*rn.cell,sn-nn*rn.cell]}function aT(rn,nn){let an=rn.cell*1.2;return[(nn-(wL-1)/2)*an,-rn.boardHeight/2+rn.padding+rn.cell*0.38]}var Bi=5,nl=5,wL=3,Ld=120,Id=0.26,rT=0.6,nT=0.6,bOe=0.38,EOe,SOe="rgba(255, 255, 255, 0.30)",_Oe="rgba(255, 255, 255, 0.1)",vIt=82,TIt=110,oT=18,yOe=0.95,TOe=(rn)=>-rn.boardHeight/2+rn.padding+rn.cell*0.86;var sT=e(()=>{o();Hn();EOe=Zn([-0.4,0.5,1],0.45)});var Cm,dE=(rn)=>{let nn=[];for(let an=0;an<rn.length;an++)if(rn.orientation==="horizontal")nn.push({row:rn.startRow,col:rn.startCol+an});else nn.push({row:rn.startRow+an,col:rn.startCol});return nn},AOe=(rn,nn,an)=>{let sn=rn.orientation==="horizontal"?an-rn.startCol:nn-rn.startRow;return(rn.orientation==="horizontal"?nn===rn.startRow:an===rn.startCol)&&Number.isInteger(sn)&&sn>=0&&sn<rn.length},Zs=(rn,nn)=>Math.floor(Math.random()*(nn-rn+1))+rn,xOe=(rn)=>{let nn=[...rn];for(let an=nn.length-1;an>0;an--){let sn=Math.floor(Math.random()*(an+1));[nn[an],nn[sn]]=[nn[sn],nn[an]]}return nn},MOe=()=>{let rn=[],nn=[],an=[],sn=4,ln=4,cn=0,un=0,dn=!1,pn=0;while(!dn&&pn<500){pn++,an=[],cn=0;let fn=Zs(0,3);if(fn===0){let Sn=xOe([...Array(nl).keys()]).slice(0,sn),_n=xOe([...Array(Bi).keys()]).slice(0,ln);for(let vn of Sn){let Tn=Zs(0,1),Rn=Bi-Tn-Zs(0,1);an.push({id:`plank-${cn++}`,orientation:"horizontal",startRow:vn,startCol:Tn,length:Math.max(2,Rn),color:Cm.horizontal,zIndex:cn})}for(let vn of _n){let Tn=Zs(0,1),Rn=nl-Tn-Zs(0,1);an.push({id:`plank-${cn++}`,orientation:"vertical",startRow:Tn,startCol:vn,length:Math.max(2,Rn),color:Cm.vertical,zIndex:cn})}}else if(fn===1){let Sn=Math.floor(nl/2),_n=Math.floor(Bi/2);for(let vn=0;vn<sn;vn++){let Tn=(Sn-1+vn)%nl;an.push({id:`plank-${cn++}`,orientation:"horizontal",startRow:Tn,startCol:Zs(0,1),length:Bi-Zs(0,1),color:Cm.horizontal,zIndex:cn})}for(let vn=0;vn<ln;vn++){let Tn=(_n-1+vn)%Bi;an.push({id:`plank-${cn++}`,orientation:"vertical",startRow:Zs(0,1),startCol:Tn,length:nl-Zs(0,1),color:Cm.vertical,zIndex:cn})}}else if(fn===2){for(let Sn=0;Sn<sn;Sn++){let _n=Zs(0,nl-1),vn=Sn%2===0?0:Zs(0,1),Tn=Sn%2===0?Bi-Zs(0,1):Bi;an.push({id:`plank-${cn++}`,orientation:"horizontal",startRow:_n,startCol:vn,length:Math.max(2,Tn-vn),color:Cm.horizontal,zIndex:cn})}for(let Sn=0;Sn<ln;Sn++){let _n=Zs(0,Bi-1),vn=Sn%2===0?0:Zs(0,1),Tn=Sn%2===0?nl-Zs(0,1):nl;an.push({id:`plank-${cn++}`,orientation:"vertical",startRow:vn,startCol:_n,length:Math.max(2,Tn-vn),color:Cm.vertical,zIndex:cn})}}else{for(let Sn=0;Sn<sn;Sn++){let _n=Zs(0,nl-1),vn=Zs(2,Bi),Tn=Zs(0,Math.max(0,Bi-vn));an.push({id:`plank-${cn++}`,orientation:"horizontal",startRow:_n,startCol:Tn,length:vn,color:Cm.horizontal,zIndex:cn})}for(let Sn=0;Sn<ln;Sn++){let _n=Zs(0,Bi-1),vn=Zs(2,nl),Tn=Zs(0,Math.max(0,nl-vn));an.push({id:`plank-${cn++}`,orientation:"vertical",startRow:Tn,startCol:_n,length:vn,color:Cm.vertical,zIndex:cn})}}let hn=3;for(let Sn=0;Sn<an.length;Sn++){let _n=an[Sn],vn=dE(_n),Tn=[];for(let Rn=0;Rn<vn.length;Rn++){let An=vn[Rn];for(let Mn=0;Mn<an.length;Mn++){if(Mn===Sn)continue;if(AOe(an[Mn],An.row,An.col)){Tn.push(Rn);break}}}if(Tn.length>hn){let Rn=Tn[hn-1];_n.length=Rn+1}}let bn=ROe(an),yn=8;if(bn.length<yn)continue;let En=!0;for(let Sn of an)if(!dE(Sn).some((Tn)=>bn.some((Rn)=>Rn.row===Tn.row&&Rn.col===Tn.col))){En=!1;break}if(En&&bn.length>=yn&&an.length>=3)dn=!0}let mn=ROe(an);for(let fn of mn)nn.push({id:`bolt-${un++}`,row:fn.row,col:fn.col,originalRow:fn.row,originalCol:fn.col,holeId:null});for(let fn=0;fn<wL;fn++)rn.push({id:`hole-${fn}`,row:nl,col:fn+Math.floor((Bi-wL)/2),boltId:null});return{holes:rn,bolts:nn,planks:an}},E0=(rn,nn)=>nn.find((an)=>an.id===rn)||null,wF=(rn,nn,an)=>an.find((sn)=>sn.row===rn&&sn.col===nn&&sn.holeId===null)||null,LF=(rn,nn)=>nn.find((an)=>an.id===rn)||null,IF=(rn,nn,an)=>an.filter((sn)=>AOe(sn,rn,nn)),ROe=(rn)=>{let nn=new Map;for(let sn of rn){let ln=dE(sn);for(let cn of ln){let un=`${cn.row}-${cn.col}`;nn.set(un,(nn.get(un)||0)+1)}}let an=[];for(let[sn,ln]of nn)if(ln>=2){let[cn,un]=sn.split("-").map(Number);an.push({row:cn,col:un})}return an},OF=(rn,nn)=>{if(rn.holeId!==null)return!1;let an=IF(rn.row,rn.col,nn);if(an.length===0)return!0;let sn=Math.max(...an.map((cn)=>cn.zIndex));return an.find((cn)=>cn.zIndex===sn)!==void 0},COe=(rn)=>rn.boltId===null,wOe=(rn,nn,an,sn)=>{let ln=an.map((pn)=>({...pn})),cn=sn.map((pn)=>({...pn})),un=ln.find((pn)=>pn.id===rn),dn=cn.find((pn)=>pn.id===nn);if(!un||!dn)return{bolts:an,holes:sn};if(un.holeId){let pn=cn.find((mn)=>mn.id===un.holeId);if(pn)pn.boltId=null}return dn.boltId=rn,un.holeId=nn,{bolts:ln,holes:cn}},LOe=(rn,nn,an,sn,ln)=>{let cn=sn.map((pn)=>({...pn})),un=ln.map((pn)=>({...pn})),dn=cn.find((pn)=>pn.id===rn);if(!dn)return{bolts:sn,holes:ln};if(dn.holeId){let pn=un.find((mn)=>mn.id===dn.holeId);if(pn)pn.boltId=null}return dn.row=nn,dn.col=an,dn.holeId=null,{bolts:cn,holes:un}},IOe=(rn,nn)=>{let an=[],sn=[],ln=new Set(nn.filter((cn)=>cn.holeId===null).map((cn)=>`${cn.row}-${cn.col}`));for(let cn of rn)if(!dE(cn).some((pn)=>ln.has(`${pn.row}-${pn.col}`)))an.push(cn);else sn.push(cn);return{removedPlanks:an,remainingPlanks:sn}},OOe=(rn)=>rn.length===0;var PF=e(()=>{sT();Cm={horizontal:"#8B4513",vertical:"#C0C0C0"}});import{effects as xIt,extrude as lT,lathe as pE,merge as DF,Path as OL,quat as PL,recolor as RIt,shapeGeometry as AIt}from"@nayan-ui/engine";function VOe(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-gOe,an);Ea(rn,ln,nn,gOe);let cn=an.mode==="classic",un=cn?16:8,dn=rn.spawn({mesh:HOe(nn.boardWidth,nn.boardHeight,un),position:[0,0,-NOe/2],color:WOe(an),pickable:!1}),pn=xn(an.BOARD.BORDER),mn=!cn&&pn[3]>0?rn.spawn({mesh:fE(`nb-rim:${nn.boardWidth.toFixed(1)}x${nn.boardHeight.toFixed(1)}`,()=>wn(lT(new OL().addRoundedRect(-nn.boardWidth/2,-nn.boardHeight/2,nn.boardWidth,nn.boardHeight,8).addRoundedRect(-nn.boardWidth/2+1,-nn.boardHeight/2+1,nn.boardWidth-2,nn.boardHeight-2,7),{depth:0,fillRule:"evenodd"}))),position:[0,0,0.3],color:pn,pickable:!1}):null,fn=rn.spawn({mesh:"cube",position:[0,TOe(nn),0.2],scale:[nn.boardWidth-nn.padding*2,1.5,0.3],color:UOe(an),pickable:!1}),hn=GF(nn),bn=sn.map(({row:En,col:Sn})=>{let[_n,vn]=y0(nn,En,Sn);return rn.spawn({mesh:gF(!1),position:[_n,vn,0],rotation:IL,scale:hn*2,pickable:!1})}),yn=[0,1,2].map((En)=>{let[Sn,_n]=aT(nn,En);return rn.spawn({mesh:gF(!0),position:[Sn,_n,0],rotation:IL,scale:hn*2,pickable:!1})});return{backdrop:ln,panel:dn,rim:mn,separator:fn,sockets:bn,swaps:yn,planks:new Map,bolts:new Map}}function zOe(rn,nn){let an=[nn.backdrop,nn.panel,nn.separator,...nn.sockets,...nn.swaps,...Array.from(nn.planks.values()),...Array.from(nn.bolts.values(),(sn)=>sn.pivot)];for(let sn of nn.rim!=null?[...an,nn.rim]:an)rn.despawn(sn)}function qOe(rn,nn,an,sn){aa(rn,an.backdrop,sn),rn.set(an.panel,{mesh:HOe(nn.boardWidth,nn.boardHeight,sn.mode==="classic"?16:8),color:WOe(sn)}),rn.set(an.separator,{color:UOe(sn)})}function YOe(rn,nn,an,sn){for(let cn of an.sockets)rn.despawn(cn);let ln=GF(nn);an.sockets=sn.map(({row:cn,col:un})=>{let[dn,pn]=y0(nn,cn,un);return rn.spawn({mesh:gF(!1),position:[dn,pn,0],rotation:IL,scale:ln*2,pickable:!1})})}function XOe(rn,nn,an,sn){an.planks.set(sn.id,rn.spawn({mesh:DIt(sn.length,nn.cell,GF(nn),sn.orientation!=="horizontal"),position:KOe(nn,sn),rotation:sn.orientation==="horizontal"?MIt:CIt,color:sn.orientation==="horizontal"?GOe:kOe,pickable:!1}))}function jOe(rn,nn,an,sn){let ln=an.planks.get(sn.id);if(ln==null)return 0;an.planks.delete(sn.id);let[cn,un,dn]=KOe(nn,sn),pn=(sn.zIndex%2?1:-1)*0.5,[mn,fn,hn]=sn.orientation==="horizontal"?GOe:kOe;return rn.animate(ln,{position:[cn+pn*nn.cell*0.4,un-nn.cell*2.5,dn-30]},{duration:nT,easing:"easeIn"}),rn.animate(ln,{turn:[0.4*pn,0,pn]},{duration:nT,easing:"easeIn"}),rn.animate(ln,{color:[mn,fn,hn,0]},{duration:nT,easing:"easeIn"}),nT}function $Oe(rn,nn,an,sn,ln){let cn=rn.spawn({mesh:"none",position:ln,pickable:!1}),un=rn.spawn({mesh:GIt(),parent:cn,rotation:IL,scale:mE(nn)*2,color:NF,pickable:!1});an.bolts.set(sn,{pivot:cn,body:un})}function ZOe(rn,nn){for(let an of nn.bolts.values())rn.despawn(an.pivot);nn.bolts.clear()}function kIt(rn,nn,an,sn,ln){let cn=kF(nn,sn);rn.animate(an.pivot,{position:[cn[0],cn[1],cn[2]+mE(nn)*0.25]},{duration:0.7,delay:ln,repeat:"forever",yoyo:!0,easing:"easeInOut"}),rn.animate(an.pivot,{turn:[0,0,Math.PI*0.3]},{duration:1.1,delay:ln,repeat:"forever",yoyo:!0,easing:"easeInOut"})}function FF(rn,nn,an,sn,ln){let cn=an.bolts.get(sn);if(!cn)return;rn.stopAnimation(cn.pivot),rn.animate(cn.pivot,{position:kF(nn,ln)},{duration:Id,easing:"easeOut"}),rn.animate(cn.pivot,{turn:[0,0,Math.PI*2*BF]},{duration:Id,easing:"easeOut"}),rn.animate(cn.body,{color:PIt},{duration:Id}),kIt(rn,nn,cn,ln,Id)}function QOe(rn,nn,an,sn,ln){let cn=mE(nn)*0.12;rn.animate(an.pivot,[{position:[sn[0],sn[1],sn[2]-cn],at:0.4},{position:sn,at:1}],{duration:0.14,delay:ln,easing:"easeOut"})}function gL(rn,nn,an,sn,ln){let cn=an.bolts.get(sn);if(!cn)return;rn.stopAnimation(cn.pivot),rn.animate(cn.pivot,{position:ln},{duration:Id,easing:"easeIn"}),rn.animate(cn.pivot,{turn:[0,0,-Math.PI*2*BF]},{duration:Id,easing:"easeIn"}),rn.animate(cn.body,{color:NF},{duration:Id}),QOe(rn,nn,cn,ln,Id)}function JOe(rn,nn,an,sn){let ln=nn.bolts.get(an);if(ln)rn.animate(ln.pivot,{position:sn},{duration:0.25,delay:0.1,easing:"bounce"})}function ePe(rn,nn,an,sn,ln,cn){let un=an.bolts.get(sn);if(!un)return;let dn=Math.max(ln[2],cn[2])+mE(nn)*2.4,pn=kF(nn,cn),mn=rT*0.55,fn=rT-mn;rn.stopAnimation(un.pivot),rn.animate(un.pivot,[{position:[ln[0],ln[1],dn],at:0.3},{position:[(ln[0]+cn[0])/2,(ln[1]+cn[1])/2,dn+mE(nn)*0.6],at:0.6},{position:[pn[0],pn[1],pn[2]],at:1}],{duration:mn,path:"smooth",easing:"easeInOut"}),rn.animate(un.pivot,{position:cn},{duration:fn,delay:mn,easing:"easeIn"}),rn.animate(un.pivot,{turn:[0,0,-Math.PI*2*BF]},{duration:fn,delay:mn,easing:"easeIn"}),rn.animate(un.body,{color:NF},{duration:rT}),QOe(rn,nn,un,cn,rT)}function tPe(rn,nn){xIt.confetti(rn,{position:[0,nn.cell,nn.cell],count:60,size:nn.cell*0.12,speed:nn.boardWidth*1.4,lifetime:1.3,gravity:-nn.boardWidth*2.4,colors:["#FFD700","#3CB371","#C4733B","#4DA6FF"].map((an)=>xn(an))})}var POe,fE=(rn,nn)=>{let an=POe.get(rn);if(!an)an=Bn("nuts-and-bolts/NutsAndBoltsScene:"+rn,nn),POe.set(rn,an);return an},IL,MIt,CIt,NOe=10,gOe=25,wIt=10,LIt=26,iT=10,LL=1.6,IIt,OIt=4,GOe,kOe,NF,PIt,GF=(rn)=>Math.min(18,rn.cell*0.3),mE=(rn)=>Math.min(16,rn.cell*0.27),BOe=(rn)=>(rn.zIndex-1)*OIt,FOe=(rn,nn,an)=>rn.reduce((sn,ln)=>dE(ln).some((cn)=>cn.row===nn&&cn.col===an)?Math.max(sn,BOe(ln)+IIt):sn,0),HOe=(rn,nn,an)=>fE(`nb-panel:${rn.toFixed(1)}x${nn.toFixed(1)}:${an}`,()=>wn(lT(new OL().addRoundedRect(-rn/2,-nn/2,rn,nn,an),{depth:NOe}),{shine:0.2})),gIt=()=>AIt("cube"),DOe=(rn,nn)=>(an)=>RIt(an,({normal:sn})=>{let ln=sn[2]>0.6?rn:sn[2]<-0.6?nn*0.6:nn;return[ln,ln,ln,1]}),DIt=(rn,nn,an,sn)=>fE(`nb-plank-v2:${sn?"m":"w"}:${rn}:${nn.toFixed(2)}:${an.toFixed(1)}`,()=>{let ln=(rn-1)*nn,cn=LIt,un=ln+wIt*2+cn,dn=an*0.62,pn=(yn)=>{let En=new OL().addRoundedRect(-un/2+yn,-cn/2+yn,un-yn*2,cn-yn*2,cn/2-yn);for(let Sn=0;Sn<rn;Sn++)En.addCircle(-ln/2+Sn*nn,0,dn+yn);return En},mn=Array.from({length:rn},(yn,En)=>-ln/2+En*nn),fn=[{geometry:DOe(0.82,0.62)(lT(pn(0),{depth:iT,fillRule:"evenodd"}))},{geometry:DOe(1,0.8)(lT(pn(1.6),{depth:LL,fillRule:"evenodd"})),position:[0,0,iT/2+LL/2]}],hn=iT/2+LL+0.05;return(sn?[-7.5,-3,4,8.5]:[-8.5,-5.5,-2.5,3,6,9]).forEach((yn,En)=>{let Sn=un/2-cn/2+Math.sqrt(Math.max(0,(cn/2-2)**2-yn*yn)),_n=[];for(let Tn of mn)if(Math.abs(yn)<dn+3){let Rn=Math.sqrt((dn+3)**2-yn*yn);_n.push([Tn-Rn,Tn+Rn])}let vn=-Sn;for(let[Tn,Rn]of[..._n,[Sn,Sn]]){if(Tn-vn>2){let An=sn?1.18:0.62+En%3*0.06;fn.push({geometry:gIt(),position:[(vn+Tn)/2,yn,hn],scale:[Tn-vn,sn?0.35:0.6+En%2*0.4,0.1],color:[An,An,An,1]})}vn=Rn}}),wn(DF(fn),{center:!1,shine:sn?0.8:0.2})}),NIt=()=>fE("nb-socket-nut",()=>{let rn=new OL;for(let ln=0;ln<6;ln++){let cn=ln/6*Math.PI*2+Math.PI/6;if(ln===0)rn.moveTo(0.48*Math.cos(cn),0.48*Math.sin(cn));else rn.lineTo(0.48*Math.cos(cn),0.48*Math.sin(cn))}rn.close().addCircle(0,0,0.24);let nn=xn("#2E9E5B"),an=xn("#6FD39A"),sn=xn("#16301F");return wn(DF([{geometry:lT(rn,{depth:0.18,fillRule:"evenodd"}),rotation:PL.x(-Math.PI/2),position:[0,0.09,0],color:[nn[0],nn[1],nn[2],1]},{geometry:pE([[0.24,0.17],[0.3,0.181]],{segments:48}),color:[an[0],an[1],an[2],1]},{geometry:pE([[0.001,-0.06],[0.24,-0.06],[0.24,0.17]],{segments:40,displace:(ln,cn)=>cn>0.5?0.02*Math.sin((ln+cn*5)*Math.PI*2):0}),color:[sn[0],sn[1],sn[2],1]}]),{center:!1,shine:0.6})}),gF=(rn)=>rn?NIt():fE(`nb-socket-${rn?"swap":"grid"}`,()=>{let[nn,an,sn]=rn?["#3CB371","#228B22","#90EE90"]:["#D2B48C","#B8956A","#F5DEB3"],ln=xn(nn),cn=xn(an),un=xn(sn);return wn(pE([[0.001,0.04],[0.26,0.05],[0.38,0.1],[0.46,0.2],[0.5,0.24],[0.56,0.18],[0.6,0]],{segments:28,color:({position:dn})=>{let pn=Math.hypot(dn[0],dn[2]),mn=pn<0.3?un:pn<0.45?cn:ln;return[mn[0],mn[1],mn[2]]}}),{center:!1,shine:0.3})}),GIt=()=>fE("nb-bolt-v2",()=>{let rn=pE([[0.001,0.4],[0.3,0.4],[0.38,0.35],[0.38,0.12],[0.36,0.1]],{segments:6}),nn=pE([[0.36,0.12],[0.48,0.1],[0.5,0.06],[0.5,0.02],[0.47,0],[0.14,0]],{segments:48}),an=pE([[0.15,0],[0.15,-0.62],[0.1,-0.7],[0.001,-0.7]],{segments:32,displace:(sn,ln)=>ln<0.85?0.03*Math.sin((sn+ln*7)*Math.PI*2):0});return wn(DF([{geometry:an,color:[0.62,0.64,0.68,1]},{geometry:nn,color:[0.92,0.93,0.95,1]},{geometry:rn}]),{center:!1,shine:0.9})}),WOe=(rn)=>xn(rn.mode==="classic"?SOe:rn.BOARD.SURFACE),UOe=(rn)=>xn(rn.mode==="classic"?_Oe:rn.BOARD.BORDER),KOe=(rn,nn)=>{let[an,sn]=y0(rn,nn.startRow,nn.startCol),[ln,cn]=nn.orientation==="horizontal"?y0(rn,nn.startRow,nn.startCol+nn.length-1):y0(rn,nn.startRow+nn.length-1,nn.startCol);return[(an+ln)/2,(sn+cn)/2,BOe(nn)+iT/2]},kF=(rn,nn)=>[nn[0],nn[1],nn[2]+mE(rn)*1.6],BF=2.5;var oPe=e(()=>{u();na();ba();Hn();sT();PF();POe=new Map,IL=PL.x(Math.PI/2),MIt=PL.z(0),CIt=PL.z(Math.PI/2),IIt=iT+LL,GOe=xn("#8B4513"),kOe=xn("#B8BEC6"),NF=[0.78,0.8,0.84,1],PIt=xn("#FFD700")});import{World as BIt}from"@nayan-ui/engine";function aPe(rn){let nn=new BIt(FIt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",...nPe(),selected:null,get score(){return nn.scoreboard.score},get time(){return nn.scoreboard.shownSeconds},won:!1,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onPlanks:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,Ld),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&fPe(sn,!1)},sn}function Od(rn,nn){let an=rn.layout;if(nn.holeId){let[cn,un]=aT(an,sPe(nn.holeId));return[cn,un,0]}let[sn,ln]=y0(an,nn.row,nn.col);return[sn,ln,FOe(rn.planks,nn.row,nn.col)]}function iPe(rn,nn){if(rn.scene)zOe(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=VOe(rn.world,nn,rn.theme,rn.homes),cPe(rn)}function lPe(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)qOe(rn.world,rn.layout,rn.scene,nn)}function cPe(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;for(let sn of rn.planks)XOe(rn.world,nn,an,sn);for(let sn of rn.bolts)$Oe(rn.world,nn,an,sn.id,Od(rn,sn));if(rn.selected){let sn=E0(rn.selected,rn.bolts);if(sn)FF(rn.world,nn,an,sn.id,Od(rn,sn))}}function uPe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(Ld),rn.onPhase("playing")}function dPe(rn){rn.world.cancelTimers();let{layout:nn,scene:an}=rn;if(nn&&an){for(let sn of an.planks.values())rn.world.despawn(sn);an.planks.clear(),ZOe(rn.world,an)}if(Object.assign(rn,nPe()),rn.selected=null,rn.world.scoreboard.reset(0,Ld),rn.won=!1,rn.phase="ready",nn&&an)YOe(rn.world,nn,an,rn.homes),cPe(rn);rn.onScore(0),rn.onTime(Ld),rn.onPlanks(rn.planks.length),rn.onPhase("ready")}function pPe(rn){rn.world.dispose()}function mPe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function fPe(rn,nn){rn.world.scoreboard.stop();let{layout:an,scene:sn}=rn;if(rn.selected&&an&&sn){let ln=E0(rn.selected,rn.bolts);if(ln)gL(rn.world,rn.layout,sn,ln.id,Od(rn,ln))}rn.selected=null,rn.won=nn,rn.phase="over",rn.onPhase("over")}function HIt(rn,nn,an){let sn=rn.layout;if(!sn)return null;let[ln,cn]=Wa(sn,nn,an,10),un=(sn.cell*0.5)**2,dn=([mn,fn])=>(ln-mn)**2+(cn-fn)**2<=un;for(let mn of rn.holes)if(dn(aT(sn,sPe(mn.id))))return{row:mn.row,col:mn.col,holeId:mn.id};let pn=new Set(rn.bolts.filter((mn)=>mn.holeId===null).map((mn)=>`${mn.row}-${mn.col}`));for(let mn of rn.homes)if(!pn.has(`${mn.row}-${mn.col}`)&&dn(y0(sn,mn.row,mn.col)))return{row:mn.row,col:mn.col,holeId:null};for(let mn of rn.bolts)if(mn.holeId===null&&dn(y0(sn,mn.row,mn.col)))return{row:mn.row,col:mn.col,holeId:null};return null}function hPe(rn,nn,an){if(rn.phase!=="playing")return;let sn=HIt(rn,nn,an);if(sn)WIt(rn,sn)}function WIt(rn,nn){let{layout:an,scene:sn}=rn;if(!an||!sn||rn.phase!=="playing")return;let ln=(pn)=>{let mn=rn.selected?E0(rn.selected,rn.bolts):null;if(mn)gL(rn.world,rn.layout,sn,mn.id,Od(rn,mn));rn.selected=pn;let fn=E0(pn,rn.bolts);FF(rn.world,an,sn,pn,Od(rn,fn)),rn.onEvent("select")},cn=()=>{let pn=rn.selected?E0(rn.selected,rn.bolts):null;if(pn)gL(rn.world,rn.layout,sn,pn.id,Od(rn,pn));rn.selected=null};if(!rn.selected){if(nn.holeId){let pn=LF(nn.holeId,rn.holes);if(pn?.boltId&&E0(pn.boltId,rn.bolts))ln(pn.boltId)}else{let pn=wF(nn.row,nn.col,rn.bolts);if(pn&&OF(pn,rn.planks))ln(pn.id)}return}if(!E0(rn.selected,rn.bolts)){rn.selected=null;return}if(nn.holeId){let pn=LF(nn.holeId,rn.holes);if(!pn)return;if(pn.boltId===rn.selected)return cn();if(COe(pn))return rPe(rn,wOe(rn.selected,nn.holeId,rn.bolts,rn.holes));if(pn.boltId)ln(pn.boltId);return}let dn=wF(nn.row,nn.col,rn.bolts);if(dn&&dn.id===rn.selected)return cn();if(dn&&OF(dn,rn.planks))return ln(dn.id);if(!dn){if(rn.homes.some((mn)=>mn.row===nn.row&&mn.col===nn.col)||IF(nn.row,nn.col,rn.planks).length>0)rPe(rn,LOe(rn.selected,nn.row,nn.col,rn.bolts,rn.holes))}}function rPe(rn,nn){let{layout:an,scene:sn}=rn,ln=rn.selected,cn=Od(rn,E0(ln,rn.bolts));rn.bolts=nn.bolts,rn.holes=nn.holes,rn.selected=null;let{removedPlanks:un,remainingPlanks:dn}=IOe(rn.planks,rn.bolts);if(rn.planks=dn,an&&sn){ePe(rn.world,an,sn,ln,cn,Od(rn,E0(ln,rn.bolts)));for(let pn of un){let mn=sn.planks.get(pn.id),fn=jOe(rn.world,an,sn,pn);if(mn!=null)rn.world.after(fn,()=>rn.world.despawn(mn))}if(un.length){for(let pn of rn.bolts)if(pn.id!==ln&&pn.holeId===null)JOe(rn.world,sn,pn.id,Od(rn,pn))}}if(un.length)rn.onPlanks(rn.planks.length);if(OOe(rn.planks)){if(rn.world.scoreboard.set(Ya(Ld-rn.time,Ld,rn.score)),rn.onScore(rn.score),rn.onEvent("complete"),an)tPe(rn.world,an);fPe(rn,!0);return}rn.onEvent("place")}var FIt=300,nPe=()=>{let rn=MOe();return{...rn,homes:rn.bolts.map((nn)=>({row:nn.originalRow,col:nn.originalCol}))}},sPe=(rn)=>Number(rn.slice(5));var bPe=e(()=>{ci();ba();sT();PF();oPe()});var Ar={};n(Ar,{NutsAndBolts:()=>oo});import{jsx as VIt}from"react/jsx-runtime";var hE,UIt="#FFFFFF",yPe,oo;var ve=e(()=>{Ta();l();a();_a();o();xa();va();sT();bPe();hE=t.NUTS_AND_BOLTS,yPe={select:{sound:hE.SELECT,haptic:"light"},place:{sound:hE.PLACE,haptic:"medium"},complete:{sound:hE.COMPLETE,haptic:"success"}},oo=Vn("nuts-and-bolts",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(Ld),[cn,un]=gn(null),{game:dn,theme:pn,status:mn,screen:fn,gameOver:hn}=zn(rn,{gameId:"nuts-and-bolts",create:aPe,start:uPe,reset:dPe,dispose:pPe,tick:mPe,setTheme:lPe,resize:(yn,En,Sn,_n)=>{let vn=vOe(En,Sn,_n);return iPe(yn,vn),vn.boardWidth},tap:hPe,sounds:hE,onStart:(yn)=>yn(hE.START,"medium"),onOver:(yn,En)=>{if(En!=="win")yn(hE.GAME_OVER,"heavy")},wire:(yn,En)=>{yn.onScore=an,yn.onTime=ln,yn.onPlanks=un,yn.onEvent=(Sn)=>En(yPe[Sn].sound,yPe[Sn].haptic)}}),bn=pn.mode==="classic"?UIt:void 0;return VIt(Un,{...fn,light:EOe,columns:[ma("PLANKS",cn??dn.planks.length,bn),ma("SCORE",nn.toLocaleString(),bn),ma("TIMER",E(sn),bn)],subtext:"Unscrew the planks!",gameOver:hn({title:mn==="win"?"PUZZLE SOLVED!":"TIME UP!",message:mn==="win"?"All bolts matched!":"You ran out of time!",scoreLabel:mn==="win"?"Puzzle Solved!":"Game Over",score:nn,buttonText:mn==="win"?"Play Again!":"Try Again!"})})})});function wPe(rn,nn,an){let sn=la(an)+zIt,ln=Math.max(200,nn-sn-qIt),cn=$n(rn)/(Ii+EPe*2),un=ln/(Math.cos(HF)*(Nc+EPe*2)+Math.sin(HF)*YIt),dn=Math.max(6,Math.floor(Math.min(cn,un)));return{width:rn,height:nn,tilt:HF,centerY:sn+ln/2,cell:dn,sizeX:dn*Ii,sizeY:dn*Nc}}var Ii=19,Nc=21,SPe=500,_Pe=300,wm=3,Lm=300,DL=0.16,NL=0.25,vPe=7,TPe=2,GL=7,xPe=20,RPe=10,APe,WF=0.16,Pd,UF,cT,VF,Al,MPe,HF=0.34,uT,zF,qF,YF,CPe,zIt=82,qIt=120,EPe=0,YIt=1.4,LPe=(rn,nn,an)=>[nn*rn.cell-rn.sizeX/2,rn.sizeY/2-an*rn.cell];var dT=e(()=>{o();Hn();APe=[70,170],Pd={UP:{x:0,y:-1},DOWN:{x:0,y:1},LEFT:{x:-1,y:0},RIGHT:{x:1,y:0},NONE:{x:0,y:0}},UF={UP:"DOWN",DOWN:"UP",LEFT:"RIGHT",RIGHT:"LEFT",NONE:"NONE"},cT=["blinky","pinky","inky","clyde"],VF={["blinky"]:"#FF2E2E",["pinky"]:"#FFB8FF",["inky"]:"#36E2FF",["clyde"]:"#FFB852"},Al={BOARD:"#0A0A2E",WALL:"#2742F0",WALL_EDGE:"#5A72FF",DOT:"#FFE2B0",PELLET:"#FFF4D6",PACMAN:"#FFE000",FRUIT:"#FF4040",FRUIT_STEM:"#4CAF50",FRIGHTENED:"#2334E8",FRIGHTENED_FLASH:"#F4F4FF",EYE:"#FFFFFF",PUPIL:"#1A1A6E"},MPe=Zn([-0.35,0.5,1],0.5),uT=[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1],[1,3,1,1,2,1,1,1,2,1,2,1,1,1,2,1,1,3,1],[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],[1,2,1,1,2,1,2,1,1,1,1,1,2,1,2,1,1,2,1],[1,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,1],[1,1,1,1,2,1,1,1,0,1,0,1,1,1,2,1,1,1,1],[0,0,0,1,2,1,0,0,0,0,0,0,0,1,2,1,0,0,0],[1,1,1,1,2,1,0,1,1,5,1,1,0,1,2,1,1,1,1],[6,0,0,0,2,0,0,1,4,4,4,1,0,0,2,0,0,0,6],[1,1,1,1,2,1,0,1,1,1,1,1,0,1,2,1,1,1,1],[0,0,0,1,2,1,0,0,0,0,0,0,0,1,2,1,0,0,0],[1,1,1,1,2,1,0,1,1,1,1,1,0,1,2,1,1,1,1],[1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1],[1,2,1,1,2,1,1,1,2,1,2,1,1,1,2,1,1,2,1],[1,3,2,1,2,2,2,2,2,0,2,2,2,2,2,1,2,3,1],[1,1,2,1,2,1,2,1,1,1,1,1,2,1,2,1,2,1,1],[1,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,1],[1,2,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,2,1],[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],zF={x:9,y:15},qF={["blinky"]:{x:9,y:7},["pinky"]:{x:9,y:9},["inky"]:{x:8,y:9},["clyde"]:{x:10,y:9}},YF={["blinky"]:{x:17,y:0},["pinky"]:{x:1,y:0},["inky"]:{x:17,y:20},["clyde"]:{x:1,y:20}},CPe={["blinky"]:0,["pinky"]:2,["inky"]:5,["clyde"]:8}});function XF(){let rn=uT.map((an)=>[...an]),nn=0;for(let an of rn)for(let sn of an)if(sn===2||sn===3)nn++;return{cells:rn,dotsRemaining:nn,totalDots:nn}}function IPe(rn,nn,an){if(an<0||an>=Nc)return!1;if(nn<0||nn>=Ii)return!0;let sn=rn[an]?.[nn];return sn!==1&&sn!==5}function OPe(rn,nn,an,sn){if(an<0||an>=Nc)return!1;if(nn<0||nn>=Ii)return!0;let ln=rn[an]?.[nn];if(ln===5)return sn.mode==="leaving_house"||sn.mode==="eaten";return ln!==1}function gPe(rn,nn){if(rn.nextDirection!==rn.direction){let un=Pd[rn.nextDirection];if(IPe(nn,rn.x+un.x,rn.y+un.y))rn.direction=rn.nextDirection}let an=Pd[rn.direction],sn=rn.x+an.x,ln=rn.y+an.y,cn=!1;if(sn<0)sn=Ii-1,cn=!0;else if(sn>=Ii)sn=0,cn=!0;if(IPe(nn,sn,ln))return rn.x=sn,rn.y=ln,{moved:!0,wrapped:cn};return{moved:!1,wrapped:!1}}function DPe(rn,nn,an){let sn=rn.cells[an];if(!sn)return null;if(sn[nn]===2)return sn[nn]=0,rn.dotsRemaining--,{points:100,pellet:!1};if(sn[nn]===3)return sn[nn]=0,rn.dotsRemaining--,{points:500,pellet:!0};return null}function $It(rn,nn,an){let sn=Pd[nn.direction];switch(rn.name){case"blinky":return{x:nn.x,y:nn.y};case"pinky":return{x:Math.max(0,Math.min(Ii-1,nn.x+sn.x*4)),y:Math.max(0,Math.min(Nc-1,nn.y+sn.y*4))};case"inky":if(an){let ln=nn.x+sn.x*2,cn=nn.y+sn.y*2;return{x:Math.max(0,Math.min(Ii-1,ln+(ln-an.x))),y:Math.max(0,Math.min(Nc-1,cn+(cn-an.y)))}}return{x:nn.x,y:nn.y};case"clyde":return Math.abs(nn.x-rn.x)+Math.abs(nn.y-rn.y)>8?{x:nn.x,y:nn.y}:YF["clyde"];default:return{x:nn.x,y:nn.y}}}function GPe(rn,nn,an){an.length=0;let sn=UF[nn.direction];for(let ln of jIt){let cn=Pd[ln];if(ln!==sn&&OPe(rn,nn.x+cn.x,nn.y+cn.y,nn))an.push(ln)}if(!an.length){let ln=Pd[sn];if(OPe(rn,nn.x+ln.x,nn.y+ln.y,nn))an.push(sn)}return an.length}function KF(rn,nn,an,sn){let ln={...nn};if(!GPe(rn,nn,bE))return ln;let cn=bE[0],un=1/0;for(let pn of bE){let mn=Pd[pn],fn=nn.x+mn.x-an,hn=nn.y+mn.y-sn,bn=fn*fn+hn*hn;if(bn<un)un=bn,cn=pn}let dn=Pd[cn];return ln.x=NPe(nn.x+dn.x),ln.y=nn.y+dn.y,ln.direction=cn,ln}function ZIt(rn,nn){let an={...nn};if(!GPe(rn,nn,bE))return an;let sn=bE[Math.floor(Math.random()*bE.length)],ln=Pd[sn];return an.x=NPe(nn.x+ln.x),an.y=nn.y+ln.y,an.direction=sn,an}function kPe(rn,nn,an,sn){switch(nn.mode){case"in_house":return{...nn};case"leaving_house":{let ln={...nn};if(nn.y>7)ln.y--,ln.direction="UP";else ln.mode="scatter",ln.direction="LEFT";return ln}case"eaten":return KF(rn,nn,9,9);case"frightened":return ZIt(rn,nn);case"scatter":{let ln=YF[nn.name];return KF(rn,nn,ln.x,ln.y)}case"chase":{let ln=$It(nn,an,sn);return KF(rn,nn,ln.x,ln.y)}default:return{...nn}}}function BPe(rn,nn){return rn.map((an)=>an.mode==="eaten"||an.mode==="in_house"?an:{...an,previousMode:an.mode,mode:"frightened",frightenedTimer:nn,isFlashing:!1,direction:UF[an.direction]})}var jIt,BL=()=>({x:zF.x,y:zF.y,direction:"LEFT",nextDirection:"LEFT"}),kL=(rn,nn)=>({name:rn,x:qF[rn].x,y:qF[rn].y,direction:"UP",mode:nn,previousMode:"scatter",frightenedTimer:0,isFlashing:!1}),FL=()=>[kL("blinky","scatter"),kL("pinky","in_house"),kL("inky","in_house"),kL("clyde","in_house")],NPe=(rn)=>rn<0?Ii-1:rn>=Ii?0:rn,bE,FPe=(rn)=>rn.mode==="in_house"?{...rn,mode:"leaving_house"}:rn,HPe=(rn)=>rn.mode==="eaten"&&rn.x===9&&rn.y===9?{...rn,mode:"leaving_house"}:rn,WPe=(rn,nn)=>rn.x===nn.x&&rn.y===nn.y;var UPe=e(()=>{dT();jIt=["UP","DOWN","LEFT","RIGHT"];bE=[]});import{effects as QF,extrude as zL,merge as QIt,Path as qL,quat as JIt,shapeGeometry as e3t}from"@nayan-ui/engine";function t3t(){if(HL)return HL;let rn=Ii/2,nn=Nc/2,an=xn(Al.WALL),sn=xn(Al.WALL_EDGE),ln=xn(Al.BOARD),cn=[{geometry:$F(),position:[0,0,-VPe/2],scale:[Ii,Nc,VPe],color:ln}];for(let un=0;un<Nc;un++)for(let dn=0;dn<Ii;dn++){if(uT[un][dn]!==1)continue;let pn=dn+0.5-rn,mn=nn-(un+0.5);cn.push({geometry:$F(),position:[pn,mn,jF/2],scale:[1,1,jF],color:an}),cn.push({geometry:$F(),position:[pn,mn,jF+0.01],scale:[0.78,0.78,0.04],color:sn})}return HL=wn(QIt(cn),{center:!1,shine:0.25}),HL}function r3t(rn,nn,an){let sn=nn.cell*0.22;for(let ln=0;ln<Nc;ln++)for(let cn=0;cn<Ii;cn++){let un=uT[ln][cn];if(un===2)an.dots.set(VL(cn,ln),rn.spawn({mesh:"sphere",position:xu(nn,cn+0.5,ln+0.5,sn),scale:nn.cell*0.17,color:xn(Al.DOT),pickable:!1}));else if(un===3)an.dots.set(VL(cn,ln),rn.spawn({mesh:"sphere",position:xu(nn,cn+0.5,ln+0.5,nn.cell*0.3),scale:nn.cell*0.46,color:xn(Al.PELLET),bob:{amplitude:[0,0,nn.cell*0.08],speed:5},pickable:!1}))}}function c3t(rn,nn){let an=nn.cell*0.86,sn=rn.spawn({mesh:"none",position:xu(nn,9.5,15.5,an/2),pickable:!1});rn.spawn({mesh:s3t(),parent:sn,position:[0,0,e9*an],scale:an,color:yE(Al.PACMAN),pickable:!1});let ln=rn.spawn({mesh:i3t(),parent:sn,position:[0,0,ZF*an],rotation:JF("LEFT"),scale:an,color:xn(Al.BOARD),pickable:!1});return{pacman:sn,mouth:ln}}function u3t(rn,nn,an){let sn=nn.cell*0.86,ln=rn.spawn({mesh:"none",position:xu(nn,9.5,7.5,sn*0.5),pickable:!1}),cn=rn.spawn({mesh:l3t(),parent:ln,position:[0,0,e9*sn],scale:sn,color:yE(VF[an]),pickable:!1}),un=(pn)=>rn.spawn({mesh:qPe(),parent:ln,position:[pn*sn*0.19,sn*0.1,ZF*sn],scale:[sn*0.26,sn*0.32,1],color:yE(Al.EYE),pickable:!1}),dn=(pn)=>rn.spawn({mesh:qPe(),parent:ln,position:[pn*sn*0.19,sn*0.06,(ZF+0.01)*sn],scale:sn*0.13,color:yE(Al.PUPIL),pickable:!1});return{root:ln,body:cn,eyes:[un(-1),un(1)],pupils:[dn(-1),dn(1)]}}function t9(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-zPe,an);Ea(rn,sn,nn,zPe);let ln=rn.spawn({mesh:t3t(),scale:nn.cell,color:[1,1,1,1],pickable:!1}),{pacman:cn,mouth:un}=c3t(rn,nn),dn={};for(let mn of cT)dn[mn]=u3t(rn,nn,mn);let pn={backdrop:sn,board:ln,dots:new Map,pacman:cn,mouth:un,mouthSize:nn.cell*0.86,ghosts:dn,fruit:null};return r3t(rn,nn,pn),pn}function o9(rn,nn){rn.despawn(nn.backdrop),rn.despawn(nn.board);for(let an of nn.dots.values())rn.despawn(an);rn.despawn(nn.pacman);for(let an of cT)rn.despawn(nn.ghosts[an].root);if(nn.fruit!=null)rn.despawn(nn.fruit)}function YPe(rn,nn,an){aa(rn,nn.backdrop,an)}function KPe(rn,nn,an,sn){let ln=nn.dots.get(VL(an,sn));if(ln!=null)rn.despawn(ln),nn.dots.delete(VL(an,sn))}function XPe(rn,nn){for(let an of nn.dots.values())rn.despawn(an);nn.dots.clear()}function pT(rn,nn,an,sn){if(an.fruit!=null)rn.despawn(an.fruit),an.fruit=null;if(!sn)return;let ln=nn.cell*0.7,cn=rn.spawn({mesh:"none",position:xu(nn,sn.x+0.5,sn.y+0.5,ln/2),bob:{amplitude:[0,0,nn.cell*0.1],speed:4},pickable:!1});rn.spawn({mesh:"sphere",parent:cn,scale:ln,color:xn(Al.FRUIT),pickable:!1}),rn.spawn({mesh:"cylinder",parent:cn,position:[0,ln*0.1,ln*0.5],scale:[ln*0.08,ln*0.4,ln*0.08],color:xn(Al.FRUIT_STEM),pickable:!1}),rn.set(cn,{scale:0.01}),rn.animate(cn,{scale:1},{duration:0.25,easing:"back"}),an.fruit=cn}function jPe(rn,nn,an,sn,ln){QF.sparkle(rn,{position:xu(nn,sn+0.5,ln+0.5,nn.cell*0.5),count:18,size:nn.cell*0.12,speed:nn.cell*5,lifetime:0.5,gravity:-nn.cell*8,colors:[xn("#FF5252"),xn("#FFCDD2"),[1,1,1,1]]}),pT(rn,nn,an,null)}function $Pe(rn,nn,an,sn,ln,cn,un,dn){let pn=nn.cell*0.86,mn=xu(nn,sn+0.5,ln+0.5,pn/2);if(rn.set(an.mouth,{rotation:JF(cn)}),dn)rn.set(an.pacman,{position:mn});else rn.animate(an.pacman,{position:mn},{duration:un,easing:"linear"})}function ZPe(rn,nn,an,sn,ln,cn){let un=nn.cell*0.86;rn.stopAnimation(an.pacman),rn.set(an.pacman,{position:xu(nn,sn+0.5,ln+0.5,un/2)}),rn.set(an.mouth,{rotation:JF(cn)})}function r9(rn,nn,an){rn.stopAnimation(nn.mouth),rn.set(nn.mouth,{scale:nn.mouthSize*0.05}),rn.animate(nn.mouth,{scale:nn.mouthSize},{duration:an,easing:"easeInOut",repeat:"forever",yoyo:!0})}function KL(rn,nn){rn.stopAnimation(nn.mouth),rn.set(nn.mouth,{scale:nn.mouthSize*0.6})}function QPe(rn,nn,an,sn){QF.explosion(rn,{position:xu(nn,an+0.5,sn+0.5,nn.cell*0.5),count:26,size:nn.cell*0.5,speed:nn.cell*4,lifetime:0.6,colors:[xn("#FFE000"),xn("#FFB000")]})}function n9(rn,nn,an,sn,ln,cn,un,dn){let pn=nn.cell*0.86,mn=xu(nn,ln+0.5,cn+0.5,pn*0.5),fn=an.ghosts[sn];if(dn)rn.set(fn.root,{position:mn});else rn.animate(fn.root,{position:mn},{duration:un,easing:"linear"})}function XL(rn,nn,an,sn,ln,cn){let un=nn.cell*0.86,dn=an.ghosts[sn],pn=ln==="eaten";rn.set(dn.body,{scale:pn?0:un,color:d3t(ln,sn,cn)})}function JPe(rn,nn,an,sn){QF.sparkle(rn,{position:xu(nn,an+0.5,sn+0.5,nn.cell*0.5),count:16,size:nn.cell*0.12,speed:nn.cell*4,lifetime:0.4,gravity:-nn.cell*6,colors:[xn("#80DEFF"),[1,1,1,1]]})}var VPe=0.18,jF=0.62,zPe=24,$F=()=>e3t("cube"),HL=null,VL=(rn,nn)=>nn*Ii+rn,xu=(rn,nn,an,sn)=>{let[ln,cn]=LPe(rn,nn,an);return[ln,cn,sn]},o3t,JF=(rn)=>JIt.z(o3t[rn]),yE=(rn)=>{let[nn,an,sn]=xn(rn),ln=2/Math.max(nn,an,sn,0.01);return[nn*ln,an*ln,sn*ln,1]},YL=0.3,e9,ZF,n3t=null,WL=null,UL=null,a3t=null,s3t=()=>n3t??=wn(zL(new qL().addCircle(0,0,0.5),{depth:YL})),i3t=()=>{if(WL)return WL;let rn=new qL().moveTo(0,0),nn=0.62;for(let an=0;an<=8;an++){let sn=-nn+an/8*nn*2;rn.lineTo(Math.sin(sn)*0.56,Math.cos(sn)*0.56)}return rn.close(),WL=wn(zL(rn,{depth:0}),{center:!1}),WL},l3t=()=>{if(UL)return UL;let rn=[];for(let sn=0;sn<=16;sn++){let ln=sn/16*Math.PI;rn.push([Math.cos(ln)*0.5,0.05+Math.sin(ln)*0.5])}rn.push([-0.5,-0.38]);let nn=3;for(let sn=0;sn<=nn*2;sn++)rn.push([-0.5+sn/(nn*2)*1,sn%2?-0.5:-0.36]);rn.push([0.5,-0.38]);let an=new qL().moveTo(rn[0][0],-rn[0][1]);for(let[sn,ln]of rn.slice(1))an.lineTo(sn,-ln);return an.close(),UL=wn(zL(an,{depth:YL})),UL},qPe=()=>a3t??=wn(zL(new qL().addCircle(0,0,0.5),{depth:0})),d3t=(rn,nn,an)=>{if(rn==="frightened")return yE(an?Al.FRIGHTENED_FLASH:Al.FRIGHTENED);return yE(VF[nn])};var ege=e(()=>{u();na();ba();Hn();dT();o3t={RIGHT:Math.PI/2,LEFT:-Math.PI/2,UP:Math.PI,DOWN:0,NONE:Math.PI/2};e9=-0.5+YL/2,ZF=e9+YL/2+0.01});import{World as p3t}from"@nayan-ui/engine";function oge(rn){let nn=new p3t(m3t),an={eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},sn=XF(),ln={world:nn,camera:an,theme:rn,layout:null,scene:null,phase:"ready",maze:sn,pacman:BL(),ghosts:FL(),fruit:null,fruitExpireAt:0,get score(){return nn.scoreboard.score},get lives(){return nn.scoreboard.lives},won:!1,combo:0,mode:"scatter",modeTimer:GL,elapsed:0,get timeLeft(){return nn.scoreboard.shownSeconds},clock:0,pacPending:0,ghostPending:0,anchor:null,onPhase:(cn)=>{},onScore:(cn)=>{},onLives:(cn)=>{},onTime:(cn)=>{},onEvent:(cn)=>{}};return nn.scoreboard.reset(wm,Lm),nn.scoreboard.handlers={onScore:(cn)=>ln.onScore(cn),onSecond:(cn)=>ln.onTime(cn),onTimeUp:()=>ln.phase==="playing"&&pge(ln)},ln}function rge(rn,nn){if(rn.scene)o9(rn.world,rn.scene);if(rn.layout=nn,ya(rn.camera,nn),rn.scene=t9(rn.world,nn,rn.theme),a9(rn),rn.phase==="playing")r9(rn.world,rn.scene,WF);else KL(rn.world,rn.scene)}function nge(rn,nn){if(rn.theme=nn,rn.scene)YPe(rn.world,rn.scene,nn)}function a9(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;ZPe(rn.world,nn,an,rn.pacman.x,rn.pacman.y,rn.pacman.direction);for(let sn of cT){let ln=rn.ghosts.find((cn)=>cn.name===sn);n9(rn.world,nn,an,sn,ln.x,ln.y,0,!0),XL(rn.world,nn,an,sn,ln.mode,ln.isFlashing)}pT(rn.world,nn,an,rn.fruit)}function age(rn){if(rn.maze=XF(),rn.pacman=BL(),rn.ghosts=FL(),rn.fruit=null,rn.won=!1,rn.combo=0,rn.mode="scatter",rn.modeTimer=GL,rn.elapsed=0,rn.pacPending=0,rn.ghostPending=0,rn.world.scoreboard.reset(wm,Lm),rn.scene)XPe(rn.world,rn.scene),o9(rn.world,rn.scene),rn.scene=rn.layout?t9(rn.world,rn.layout,rn.theme):null;a9(rn)}function sge(rn){if(rn.phase!=="ready")return;if(age(rn),rn.world.scoreboard.startCountdown(Lm),rn.phase="playing",rn.scene)r9(rn.world,rn.scene,WF);rn.onScore(0),rn.onLives(wm),rn.onTime(Lm),rn.onPhase("playing")}function ige(rn){if(age(rn),rn.phase="ready",rn.anchor=null,rn.scene)KL(rn.world,rn.scene);rn.onScore(0),rn.onLives(wm),rn.onTime(Lm),rn.onPhase("ready")}function lge(rn){rn.world.dispose()}function cge(rn,{phase:nn,x:an,y:sn}){if(nn==="start"){rn.anchor=[an,sn];return}let ln=rn.anchor;if(!ln||rn.phase!=="playing")return;let cn=an-ln[0],un=sn-ln[1];if(Math.abs(cn)<=tge&&Math.abs(un)<=tge)return;let dn=Math.abs(cn)>Math.abs(un)?cn>0?"RIGHT":"LEFT":un>0?"DOWN":"UP";rn.pacman.nextDirection=dn,rn.anchor=nn==="end"?null:[an,sn]}function uge(rn,nn){if(rn.world.isDisposed)return;let an=Math.min(nn,f3t);if(rn.clock+=an,rn.phase==="playing"){rn.elapsed+=an;{h3t(rn,an),b3t(rn,an),rn.pacPending+=an;while(rn.phase==="playing"&&rn.pacPending>=DL)rn.pacPending-=DL,y3t(rn);rn.ghostPending+=an;while(rn.phase==="playing"&&rn.ghostPending>=NL)rn.ghostPending-=NL,E3t(rn);if(rn.fruit&&rn.clock>=rn.fruitExpireAt){if(rn.fruit=null,rn.layout&&rn.scene)pT(rn.world,rn.layout,rn.scene,null)}}}rn.world.update(nn)}function h3t(rn,nn){if(rn.modeTimer-=nn,rn.modeTimer>0)return;let an=rn.mode==="scatter"?"chase":"scatter";rn.mode=an,rn.modeTimer=an==="scatter"?GL:xPe;for(let sn of rn.ghosts)if(sn.mode==="scatter"||sn.mode==="chase")sn.mode=an;jL(rn)}function b3t(rn,nn){let an=!1;for(let sn of rn.ghosts){if(sn.mode!=="frightened")continue;sn.frightenedTimer-=nn;let ln=sn.frightenedTimer<TPe;if(ln!==sn.isFlashing)sn.isFlashing=ln,an=!0;if(sn.frightenedTimer<=0)sn.mode=rn.mode,sn.isFlashing=!1,an=!0}if(an)jL(rn)}function y3t(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;let{moved:sn,wrapped:ln}=gPe(rn.pacman,rn.maze.cells);if(sn)$Pe(rn.world,nn,an,rn.pacman.x,rn.pacman.y,rn.pacman.direction,DL,ln);let cn=DPe(rn.maze,rn.pacman.x,rn.pacman.y);if(cn){if(rn.world.scoreboard.add(cn.points),KPe(rn.world,an,rn.pacman.x,rn.pacman.y),cn.pellet)rn.ghosts=BPe(rn.ghosts,vPe),rn.combo=0,jL(rn),rn.onEvent("pellet");else rn.onEvent("chomp");let un=rn.maze.totalDots-rn.maze.dotsRemaining;if(!rn.fruit&&APe.includes(un))rn.fruit={x:9,y:11},rn.fruitExpireAt=rn.clock+RPe,pT(rn.world,nn,an,rn.fruit)}if(rn.fruit&&rn.pacman.x===rn.fruit.x&&rn.pacman.y===rn.fruit.y)rn.world.scoreboard.add(_Pe),jPe(rn.world,nn,an,rn.fruit.x,rn.fruit.y),rn.fruit=null,rn.onEvent("fruit");if(dge(rn))return;if(rn.maze.dotsRemaining===0)_3t(rn)}function E3t(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;for(let cn=0;cn<rn.ghosts.length;cn++){let un=rn.ghosts[cn];if(un.mode==="in_house"&&rn.elapsed>=CPe[un.name])rn.ghosts[cn]=FPe(un)}let sn=rn.ghosts.find((cn)=>cn.name==="blinky")??null,ln=sn?{x:sn.x,y:sn.y}:null;for(let cn=0;cn<rn.ghosts.length;cn++){let un=HPe(rn.ghosts[cn]),dn=un.x;un=kPe(rn.maze.cells,un,rn.pacman,ln),rn.ghosts[cn]=un;let pn=Math.abs(un.x-dn)>1;n9(rn.world,nn,an,un.name,un.x,un.y,NL,pn)}jL(rn),dge(rn)}function dge(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return!1;for(let sn=0;sn<rn.ghosts.length;sn++){let ln=rn.ghosts[sn];if(!WPe(rn.pacman,ln))continue;if(ln.mode==="frightened")rn.combo++,rn.world.scoreboard.add(SPe*Math.pow(2,rn.combo-1)),ln.mode="eaten",ln.isFlashing=!1,XL(rn.world,nn,an,ln.name,ln.mode,!1),JPe(rn.world,nn,ln.x,ln.y),rn.onEvent(rn.combo>1?"eatGhostCombo":"eatGhost");else if(ln.mode!=="eaten"&&ln.mode!=="in_house"&&ln.mode!=="leaving_house")return S3t(rn),!0}return!1}function S3t(rn){let{layout:nn,scene:an}=rn;if(rn.onLives(Math.max(0,rn.world.scoreboard.addLives(-1))),nn&&an)QPe(rn.world,nn,rn.pacman.x,rn.pacman.y);if(rn.lives<=0){pge(rn);return}rn.onEvent("lifeLost"),rn.pacman={...BL(),direction:"NONE",nextDirection:"NONE"},rn.ghosts=FL(),rn.combo=0,rn.elapsed=0,rn.pacPending=0,rn.ghostPending=0,a9(rn)}function _3t(rn){rn.won=!0,mge(rn)}function pge(rn){rn.won=!1,mge(rn)}function mge(rn){if(rn.world.scoreboard.stop(),rn.phase="over",rn.anchor=null,rn.scene)KL(rn.world,rn.scene);rn.onPhase("over")}function jL(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;for(let sn of rn.ghosts)XL(rn.world,nn,an,sn.name,sn.mode,sn.isFlashing)}var m3t=500,f3t=0.1,tge=15;var fge=e(()=>{ba();dT();UPe();ege()});var Mr={};n(Mr,{PacMan:()=>ro});import{jsx as T3t}from"react/jsx-runtime";var Gc,hge,v3t=(rn)=>`${rn}`,ro;var xe=e(()=>{Ta();l();a();_a();o();xa();va();dT();fge();Gc=t.PAC_MAN,hge={chomp:{sound:Gc.CHOMP},pellet:{sound:Gc.POWER_PELLET,haptic:"medium"},fruit:{sound:Gc.FRUIT,haptic:"medium"},eatGhost:{sound:Gc.EAT_GHOST,haptic:"heavy"},eatGhostCombo:{sound:Gc.EAT_GHOST_COMBO,haptic:"heavy"},lifeLost:{sound:Gc.LIFE_LOST,haptic:"error"}},ro=Vn("pac-man",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(wm),[cn,un]=gn(Lm),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"pac-man",create:oge,start:sge,reset:ige,dispose:lge,tick:uge,setTheme:nge,resize:(hn,bn,yn,En)=>{let Sn=wPe(bn,yn,En);return rge(hn,Sn),Sn.sizeX},drag:cge,sounds:Gc,onStart:(hn)=>hn(Gc.START),onStop:(hn)=>hn(null,"light"),onOver:(hn,bn)=>hn(bn==="win"?Gc.LEVEL_COMPLETE:Gc.DEATH,bn==="win"?"success":"heavy"),wire:(hn,bn)=>{let yn=!1;hn.onScore=an,hn.onLives=ln,hn.onTime=un,hn.onEvent=(En)=>{if(En==="chomp")yn=!yn,bn(yn?Gc.CHOMP:Gc.CHOMP_ALT);else bn(hge[En].sound,hge[En].haptic)}}});return T3t(Un,{...mn,light:MPe,columns:[Qn(nn),ys(sn,wm),ta(cn,dn,0)],subtext:"Eat dots, dodge ghosts!",gameOver:fn({title:pn==="win"?"MAZE CLEARED!":"GAME OVER",message:pn==="win"?"You cleared the maze!":"The ghosts got you!",scoreLabel:"Final Score",score:nn,formatter:v3t,buttonText:"Play Again!"})})})});function Ege(rn,nn,an){let sn=$n(rn)/2,ln=la(an)+R3t+8,cn=nn-A3t;if(cn-ln<sn*2)sn=Math.max(60,(cn-ln)/2);let un=Math.min(Math.max(nn/2+55,ln+sn),cn-sn);return{width:rn,height:nn,centerY:nn/2,tilt:x3t,cx:rn/2,cy:un,radius:sn}}var s9=4,mT=2.5,bge=0.65,i9=0.38,Ru,x3t=0,yge,R3t=82,A3t=120;var $L=e(()=>{o();Hn();Ru={STROKE:"#00d4ff",SUCCESS:"#4ecca3",FAIL:"#ff6b6b",GUIDE:"#ffffff",UI:"#00d4ff"},yge=Zn([-0.4,0.55,1],0.45)});function c9(rn){let nn=rn.length,an=0,sn=0,ln=0,cn=0,un=0,dn=0,pn=0,mn=0,fn=0;for(let An of rn){let{x:Mn,y:Cn}=An,Ln=Mn*Mn,On=Cn*Cn;an+=Mn,sn+=Cn,ln+=Ln,cn+=On,un+=Mn*Cn,dn+=Ln*Mn,pn+=On*Cn,mn+=Ln*Cn,fn+=Mn*On}let hn=nn*ln-an*an,bn=nn*un-an*sn,yn=nn*cn-sn*sn,En=0.5*(nn*dn+nn*fn-an*ln-an*cn),Sn=0.5*(nn*mn+nn*pn-sn*ln-sn*cn),_n=hn*yn-bn*bn,vn,Tn;if(Math.abs(_n)<0.0000000001)vn=an/nn,Tn=sn/nn;else vn=(En*yn-bn*Sn)/_n,Tn=(hn*Sn-bn*En)/_n;let Rn=0;for(let An of rn)Rn+=Math.sqrt((An.x-vn)**2+(An.y-Tn)**2);return{centerX:vn,centerY:Tn,radius:Rn/nn}}function M3t(rn,nn,an){if(rn.length<2)return 0;let sn=Math.atan2(rn[0].y-an,rn[0].x-nn),ln=0;for(let cn=1;cn<rn.length;cn++){let un=Math.atan2(rn[cn].y-an,rn[cn].x-nn),dn=un-sn;sn=un;while(dn>Math.PI)dn-=2*Math.PI;while(dn<-Math.PI)dn+=2*Math.PI;ln+=Math.abs(dn)}return Math.min(ln/(2*Math.PI),1)}function vge(rn,nn){if(rn.length<20)return 0;let{centerX:an,centerY:sn,radius:ln}=c9(rn);if(ln<30)return 0;let cn=rn[0],un=rn[rn.length-1],dn=Math.sqrt((un.x-cn.x)**2+(un.y-cn.y)**2),pn=nn.radius*0.15;if(dn>pn)return 0;if(M3t(rn,an,sn)<0.85)return 0;let mn=Math.max(0,100*(1-Math.abs(ln-nn.radius)/nn.radius)),fn=Math.sqrt((an-nn.centerX)**2+(sn-nn.centerY)**2),hn=Math.max(0,100*(1-fn/nn.radius)),bn=0;for(let _n of rn){let vn=Math.sqrt((_n.x-an)**2+(_n.y-sn)**2);bn+=Math.abs(vn-ln)/ln}let yn=Math.max(0,100*(1-bn/rn.length*2)),En=100*(1-dn/pn),Sn=yn*0.6+mn*0.15+hn*0.15+En*0.1;return Math.round(Math.min(100,Math.max(0,Sn)))}var Sge=20,_ge=80,l9,Tge=(rn)=>l9.find((nn)=>rn>=nn.min)??l9[l9.length-1];var u9=e(()=>{l9=[{min:95,label:"PERFECT!"},{min:90,label:"EXCELLENT!"},{min:85,label:"GREAT!"},{min:80,label:"GOOD!"},{min:70,label:"NICE TRY!"},{min:0,label:"KEEP TRYING!"}]});import{effects as C3t,quat as Mge,tube as w3t}from"@nayan-ui/engine";function Lge(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-Rge,an);Ea(rn,sn,nn,Rge);let ln=Wh(nn,{x:nn.cx,y:nn.cy},0),cn=nn.radius*2+10,un=rn.spawn({mesh:"cylinder",position:[ln[0],ln[1],-Age/2],rotation:I3t,scale:[cn,Age,cn],color:Cge(an),pickable:!1}),dn=rn.spawn({mesh:O3t(3/nn.radius),position:[ln[0],ln[1],1.5],scale:nn.radius,color:wge(an),pickable:!1}),pn=rn.spawn({mesh:"sphere",scale:0,color:fT(Ru.STROKE),pickable:!1});return{backdrop:sn,plate:un,ring:dn,tip:pn,stroke:[],fit:[]}}function Ige(rn,nn){for(let an of[nn.backdrop,nn.plate,nn.ring,nn.tip,...nn.stroke,...nn.fit])rn.despawn(an)}function Oge(rn,nn,an){aa(rn,nn.backdrop,an),rn.set(nn.plate,{color:Cge(an)}),rn.set(nn.ring,{color:wge(an)})}function Pge(rn,nn,an,sn,ln,cn=1){let un=an[0]-nn[0],dn=an[1]-nn[1],pn=Math.hypot(un,dn);return rn.spawn({mesh:"cylinder",position:[(nn[0]+an[0])/2,(nn[1]+an[1])/2,nn[2]],rotation:Mge.z(Math.atan2(dn,un)-Math.PI/2),scale:[sn*2*cn,pn*cn,sn*2*cn],color:ln,pickable:!1})}function gge(rn,nn,an,sn){p9(rn,an);let ln=Wh(nn,sn);an.stroke.push(rn.spawn({mesh:"sphere",position:ln,scale:mT*2,color:fT(Ru.STROKE),pickable:!1})),rn.stopAnimation(an.tip),rn.set(an.tip,{position:[ln[0],ln[1],ln[2]+1],color:fT(Ru.STROKE)}),rn.animate(an.tip,{scale:mT*3.2},{duration:0.12,easing:"back"})}function Dge(rn,nn,an,sn,ln){let cn=Wh(nn,sn),un=Wh(nn,ln),dn=fT(Ru.STROKE);an.stroke.push(Pge(rn,cn,un,mT,dn)),an.stroke.push(rn.spawn({mesh:"sphere",position:un,scale:mT*2,color:dn,pickable:!1})),rn.set(an.tip,{position:[un[0],un[1],un[2]+1]})}function Nge(rn,nn){rn.animate(nn.tip,{scale:0},{duration:0.15})}function Gge(rn,nn,an,sn,ln,cn){let un=fT(sn?Ru.SUCCESS:Ru.FAIL);for(let pn of an.stroke)rn.animate(pn,{color:un},{duration:i9,easing:"easeOut"});if(C3t.sparkle(rn,{position:Wh(nn,{x:nn.cx,y:nn.cy},10),count:sn?50:14,size:3,speed:nn.radius*(sn?2.2:1),lifetime:0.9,colors:[un,[1,1,1,1]],flash:sn}),!ln)return;let dn=cn.mode==="classic"?[1,1,1,0.6]:xn(cn.TEXT,0.6);for(let pn=0;pn<ZL;pn++){let mn=-Math.PI/2+pn/ZL*Math.PI*2,fn=-Math.PI/2+(pn+1)/ZL*Math.PI*2,hn=Wh(nn,{x:ln.cx+Math.cos(mn)*ln.r,y:ln.cy+Math.sin(mn)*ln.r},d9+3),bn=Wh(nn,{x:ln.cx+Math.cos(fn)*ln.r,y:ln.cy+Math.sin(fn)*ln.r},d9+3),yn=Pge(rn,hn,bn,0.9,dn,0.001),En=Math.hypot(bn[0]-hn[0],bn[1]-hn[1]);rn.animate(yn,{scale:[1.8,En*1.05,1.8]},{duration:0.06,delay:i9/2+pn/ZL*bge}),an.fit.push(yn)}}function p9(rn,nn){for(let an of[...nn.stroke,...nn.fit])rn.despawn(an);nn.stroke=[],nn.fit=[],rn.stopAnimation(nn.tip),rn.set(nn.tip,{scale:0})}var xge,L3t=(rn,nn)=>{let an=xge.get(rn);if(!an)an=Bn("perfect-circle/PerfectCircleScene:"+rn,nn),xge.set(rn,an);return an},I3t,Rge=30,Age=6,d9=4,ZL=72,O3t=(rn)=>L3t(`pc-ring:${rn.toFixed(4)}`,()=>{let nn=Array.from({length:97},(an,sn)=>{let ln=sn/96*Math.PI*2;return[Math.cos(ln),Math.sin(ln),0]});return wn(w3t(nn,{radius:rn/2,sides:12,smoothness:2,caps:!1}),{center:!1,shine:0.5})}),fT=(rn)=>{let[nn,an,sn]=xn(rn);return[nn*1.25,an*1.25,sn*1.25,1]},Wh=(rn,nn,an=d9)=>[nn.x-rn.width/2,rn.height/2-nn.y,an],Cge=(rn)=>rn.mode==="classic"?xn(Ru.GUIDE,0.2):xn(rn.BOARD.SURFACE),wge=(rn)=>rn.mode==="classic"?xn(Ru.GUIDE,0.45):xn(rn.BOARD.BORDER);var kge=e(()=>{u();na();ba();Hn();$L();xge=new Map,I3t=Mge.x(Math.PI/2)});import{World as P3t}from"@nayan-ui/engine";function Fge(rn){return{world:new P3t(g3t),camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",points:[],drawing:!1,accuracy:0,won:!1,fit:null,onPhase:(sn)=>{},onAccuracy:(sn)=>{},onEvent:(sn)=>{}}}function Hge(rn,nn){if(rn.scene)Ige(rn.world,rn.scene);if(rn.layout=nn,ya(rn.camera,nn),rn.scene=Lge(rn.world,nn,rn.theme),rn.drawing=!1,rn.phase!=="over")rn.points=[]}function Wge(rn,nn){if(rn.theme=nn,rn.scene)Oge(rn.world,rn.scene,nn)}function Uge(rn){if(rn.phase!=="ready")return;m9(rn),rn.phase="playing",rn.onPhase("playing")}function m9(rn){if(rn.points=[],rn.drawing=!1,rn.accuracy=0,rn.won=!1,rn.fit=null,rn.scene)p9(rn.world,rn.scene);if(rn.onAccuracy(0),rn.phase!=="ready")rn.phase="ready",rn.onPhase("ready")}function Vge(rn){rn.world.dispose()}function zge(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function Bge(rn,nn,an){let sn=nn-rn.cx,ln=an-rn.cy,cn=sn*sn+ln*ln;if(cn<=rn.radius*rn.radius)return{x:nn,y:an};let un=rn.radius/Math.sqrt(cn);return{x:rn.cx+sn*un,y:rn.cy+ln*un}}function qge(rn,{phase:nn,x:an,y:sn}){let{layout:ln,scene:cn}=rn;if(!ln)return;if(nn==="start"){if(rn.phase!=="playing"||rn.drawing)return;let un=Bge(ln,an,sn);if(rn.points=[un],rn.drawing=!0,cn)gge(rn.world,ln,cn,un);rn.onEvent("begin");return}if(!rn.drawing)return;if(nn==="move"){let un=rn.points[rn.points.length-1];if((an-un.x)**2+(sn-un.y)**2<s9*s9||rn.points.length>=D3t)return;let dn=Bge(ln,an,sn);if(rn.points.push(dn),cn)Dge(rn.world,ln,cn,un,dn);return}if(rn.drawing=!1,cn)Nge(rn.world,cn);rn.onEvent("end"),N3t(rn)}function N3t(rn){let nn=rn.layout;if(rn.points.length<Sge)rn.accuracy=0,rn.won=!1;else{rn.accuracy=vge(rn.points,{centerX:nn.cx,centerY:nn.cy,radius:nn.radius});let an=c9(rn.points);rn.fit=Number.isFinite(an.radius)&&an.radius>0?{cx:an.centerX,cy:an.centerY,r:an.radius}:null,rn.won=rn.accuracy>=_ge,rn.onAccuracy(rn.accuracy),rn.onEvent("scored")}if(rn.scene)Gge(rn.world,nn,rn.scene,rn.won,rn.fit,rn.theme);rn.phase="over",rn.onPhase("over")}var g3t=3000,D3t=1400;var Yge=e(()=>{ba();$L();u9();kge()});var Cr={};n(Cr,{PerfectCircle:()=>no});import{useMemo as G3t}from"react";import{jsx as k3t}from"react/jsx-runtime";var hT,no;var Re=e(()=>{Ta();l();a();_a();Hn();xa();va();$L();Yge();u9();hT=t.PERFECT_CIRCLE,no=Vn("perfect-circle",(rn)=>{let[nn,an]=gn(0),{theme:sn,status:ln,screen:cn,gameOver:un}=zn(rn,{gameId:"perfect-circle",create:Fge,start:Uge,reset:m9,dispose:Vge,tick:zge,setTheme:Wge,resize:(mn,fn,hn,bn)=>{let yn=Ege(fn,hn,bn);return Hge(mn,yn),yn.radius*2},drag:qge,reportScore:(mn)=>Math.round(mn.accuracy*100),sounds:hT,onStart:(mn)=>mn(hT.START,"success"),onOver:(mn,fn)=>mn(fn==="win"?hT.SUCCESS:hT.FAIL,fn==="win"?"success":"error"),wire:(mn,fn)=>{mn.onAccuracy=an,mn.onEvent=(hn)=>{if(hn==="begin")fn(null,"light");else if(hn==="end")fn(hT.DRAW_END,"medium")}}}),dn=G3t(()=>ws(sn.BACKGROUND),[sn.BACKGROUND]),pn=Tge(nn);return k3t(Un,{...cn,light:yge,background:dn,columns:[{label:"ACCURACY",value:String(nn),valueColor:nn>0&&sn.mode!=="light"?Ru.UI:void 0}],subtext:"Draw perfect circle!",gameOver:un({title:ln==="win"?pn.label.toUpperCase():"NOT QUITE!",message:ln==="win"?`${nn}% accuracy - Amazing circle!`:`${nn}% accuracy - Need >70% to win`,scoreLabel:"Final Score",score:nn,buttonText:"Try Again"})})})});function e4e(rn,nn,an,sn){let cn=rn>H3t?6:4,un=$n(rn),dn=la(an)+B3t,pn=Math.max(200,nn-dn-F3t),mn=Math.max(10,Math.floor(Math.min((un-cn*2)/sn,(pn/Math.cos(Kge)-cn*2)/sn)));return{width:rn,height:nn,tilt:Kge,centerY:dn+pn/2,size:sn,cell:mn,padding:cn,board:mn*sn+cn*2}}function h9(rn,nn,an){let sn=rn.board/2;return[-sn+rn.padding+(an+0.5)*rn.cell,sn-rn.padding-(nn+0.5)*rn.cell]}var gd=120,Xge=5000,jge=(rn)=>rn?8:7,Ca,kc,f9,$ge=0.2,Zge=0.045,Qge=0.03,Kge=0.32,Jge,Uh,B3t=82,F3t=110,H3t=640;var bT=e(()=>{o();Hn();Ca={TOP:1,RIGHT:2,BOTTOM:4,LEFT:8},kc=Ca.TOP|Ca.RIGHT|Ca.BOTTOM|Ca.LEFT,f9={["empty"]:[0,0,0,0],["straight"]:[Ca.TOP|Ca.BOTTOM,Ca.LEFT|Ca.RIGHT,Ca.TOP|Ca.BOTTOM,Ca.LEFT|Ca.RIGHT],["corner"]:[Ca.TOP|Ca.RIGHT,Ca.RIGHT|Ca.BOTTOM,Ca.BOTTOM|Ca.LEFT,Ca.LEFT|Ca.TOP],["cross"]:[kc,kc,kc,kc],["t-shape"]:[Ca.TOP|Ca.RIGHT|Ca.BOTTOM,Ca.RIGHT|Ca.BOTTOM|Ca.LEFT,Ca.BOTTOM|Ca.LEFT|Ca.TOP,Ca.LEFT|Ca.TOP|Ca.RIGHT],["source"]:[kc,kc,kc,kc],["sink"]:[kc,kc,kc,kc]},Jge=Zn([-0.4,0.5,1],0.45),Uh={PIPE:"#8B9DC3",WATER:"#4FC3F7",SOURCE:"#4CAF50",SINK:"#FF7043",CLASSIC_BOARD:"rgba(255, 255, 255, 0.30)",CLASSIC_CELL:"rgba(255, 255, 255, 0.10)"}});var t4e=(rn)=>{let nn=f9[rn.type];if(!nn)return 0;return nn[rn.rotation%4]??0},W3t=(rn,nn)=>{let an=t4e(rn),sn=t4e(nn),ln=nn.row-rn.row,cn=nn.col-rn.col;if(ln===-1&&cn===0)return(an&Ca.TOP)!==0&&(sn&Ca.BOTTOM)!==0;if(ln===1&&cn===0)return(an&Ca.BOTTOM)!==0&&(sn&Ca.TOP)!==0;if(ln===0&&cn===-1)return(an&Ca.LEFT)!==0&&(sn&Ca.RIGHT)!==0;if(ln===0&&cn===1)return(an&Ca.RIGHT)!==0&&(sn&Ca.LEFT)!==0;return!1},b9=(rn)=>{let nn=new Set,an=[];for(let sn of rn)for(let ln of sn)if(ln.type==="source")an.push(ln),nn.add(ln.id);for(let sn=0;sn<an.length;sn++){let ln=an[sn],cn=U3t(rn,ln.row,ln.col);for(let un of cn){if(nn.has(un.id))continue;if(un.type==="empty")continue;if(W3t(ln,un))nn.add(un.id),an.push(un)}}return nn},r4e=(rn,nn)=>{for(let an of rn)for(let sn of an)if(sn.type==="sink"&&nn.has(sn.id))return!0;return!1},U3t=(rn,nn,an)=>{let sn=[];if(nn>0)sn.push(rn[nn-1][an]);if(nn<rn.length-1)sn.push(rn[nn+1][an]);if(an>0)sn.push(rn[nn][an-1]);if(an<(rn[0]?.length??0)-1)sn.push(rn[nn][an+1]);return sn},V3t=(rn)=>Math.max(2,Math.floor(rn/2)),y9=(rn)=>{let nn=rn,an=rn,sn=[];for(let pn=0;pn<nn;pn++){let mn=[];for(let fn=0;fn<an;fn++)mn.push({id:`${pn}-${fn}`,row:pn,col:fn,type:"empty",rotation:0,filled:!1,fixed:!1});sn.push(mn)}let ln=Math.floor(Math.random()*nn),cn=Math.floor(Math.random()*nn),un=V3t(nn);if(Math.abs(cn-ln)<un)cn=ln<nn/2?Math.min(nn-1,ln+un):Math.max(0,ln-un);sn[ln][0]={...sn[ln][0],type:"source",fixed:!0},sn[cn][an-1]={...sn[cn][an-1],type:"sink",fixed:!0};let dn=z3t(ln,0,cn,an-1,nn,an);return q3t(sn,dn),K3t(sn,nn,an),X3t(sn),sn},z3t=(rn,nn,an,sn,ln,cn)=>{let un=new Set,dn=[],pn=(mn,fn)=>{if(mn===an&&fn===sn)return dn.push({row:mn,col:fn}),!0;un.add(`${mn}-${fn}`),dn.push({row:mn,col:fn});let hn=j3t([{dr:-1,dc:0},{dr:1,dc:0},{dr:0,dc:-1},{dr:0,dc:1}]);for(let bn of hn){let yn=mn+bn.dr,En=fn+bn.dc;if(yn>=0&&yn<ln&&En>=0&&En<cn&&!un.has(`${yn}-${En}`)){if(pn(yn,En))return!0}}return dn.pop(),!1};return pn(rn,nn),dn},q3t=(rn,nn)=>{for(let an=0;an<nn.length;an++){let sn=nn[an],ln=rn[sn.row][sn.col];if(ln.type==="source"||ln.type==="sink")continue;let cn=0;if(an>0){let dn=nn[an-1],pn=dn.row-sn.row,mn=dn.col-sn.col;if(pn===-1)cn|=Ca.TOP;if(pn===1)cn|=Ca.BOTTOM;if(mn===-1)cn|=Ca.LEFT;if(mn===1)cn|=Ca.RIGHT}if(an<nn.length-1){let dn=nn[an+1],pn=dn.row-sn.row,mn=dn.col-sn.col;if(pn===-1)cn|=Ca.TOP;if(pn===1)cn|=Ca.BOTTOM;if(mn===-1)cn|=Ca.LEFT;if(mn===1)cn|=Ca.RIGHT}let un=Y3t(cn);ln.type=un.type,ln.rotation=un.rotation}},Y3t=(rn)=>{let nn=["straight","corner","t-shape","cross"];for(let an of nn){let sn=f9[an];for(let ln=0;ln<4;ln++)if(sn[ln]===rn)return{type:an,rotation:ln}}return{type:"straight",rotation:0}},K3t=(rn,nn,an)=>{let sn=["straight","corner","t-shape"],ln=[0.45,0.45,0.1];for(let cn=0;cn<nn;cn++)for(let un=0;un<an;un++){let dn=rn[cn][un];if(dn.type!=="empty")continue;let pn=Math.random(),mn=0,fn="straight";for(let hn=0;hn<sn.length;hn++)if(mn+=ln[hn],pn<mn){fn=sn[hn];break}dn.type=fn,dn.rotation=Math.floor(Math.random()*4)}},X3t=(rn)=>{for(let nn of rn)for(let an of nn){if(an.fixed||an.type==="empty")continue;if(an.type==="cross")continue;let sn=an.rotation,ln=sn;while(ln===sn)ln=Math.floor(Math.random()*4);an.rotation=ln}},n4e=(rn)=>{if(rn.fixed||rn.type==="empty")return rn;return{...rn,rotation:(rn.rotation+1)%4}},j3t=(rn)=>{let nn=[...rn];for(let an=nn.length-1;an>0;an--){let sn=Math.floor(Math.random()*(an+1));[nn[an],nn[sn]]=[nn[sn],nn[an]]}return nn};var a4e=e(()=>{bT()});import{effects as $3t,extrude as Z3t,lathe as s4e,merge as d4e,Path as Q3t,quat as p4e,shapeGeometry as S9,tube as yT}from"@nayan-ui/engine";function oOt(rn){let nn=[Vh,EE,SE,_9].flatMap((ln)=>[{...Im(ln),color:[0.82,0.85,0.9,1]},Bc(ln)]),an=rn?{geometry:s4e([[0.001,0.5],[0.24,0.49],[0.3,0.44],[0.32,0.06],[0.3,0]],{segments:28}),rotation:l4e}:{geometry:s4e([[0.001,0.14],[0.12,0.15],[0.18,0.36],[0.36,0.42],[0.34,0.3],[0.26,0]],{segments:28}),rotation:l4e},sn=rn?[{geometry:yT(Array.from({length:17},(ln,cn)=>[Math.cos(cn/16*Math.PI*2)*0.17,Math.sin(cn/16*Math.PI*2)*0.17,0.56]),{radius:0.03,sides:8,smoothness:2}),color:[0.85,0.15,0.12,1]},{geometry:S9("cube"),position:[0,0,0.53],scale:[0.04,0.04,0.07],color:[0.6,0.6,0.6,1]}]:[{geometry:S9("sphere"),position:[0,0,0.15],scale:[0.2,0.2,0.02],color:[0.1,0.06,0.05,1]}];return wn(d4e([...nn,an,...sn]),{center:!1,shine:0.6})}function S4e(rn,nn,an,sn,ln){let cn=oa(rn,nn.width,nn.height,-c4e,an);Ea(rn,cn,nn,c4e);let un=rn.spawn({mesh:b4e(nn.board,an.mode==="classic"?16:8),position:[0,0,-f4e/2],color:y4e(an),pickable:!1}),dn=[],pn=[],mn=E4e(an);for(let fn of sn)for(let hn of fn){let[bn,yn]=h9(nn,hn.row,hn.col);dn.push(rn.spawn({mesh:"roundedBox",position:[bn,yn,E9/2],scale:[nn.cell-2,nn.cell-2,E9],color:mn,pickable:!1})),pn.push(hn.type==="empty"?null:rn.spawn({mesh:tOt(hn.type),position:[bn,yn,E9],rotation:h4e(hn.rotation),scale:nn.cell,color:v9(hn,ln.has(hn.id)),pickable:!1}))}return{backdrop:cn,panel:un,tiles:dn,pieces:pn}}function _4e(rn,nn){for(let an of[nn.backdrop,nn.panel,...nn.tiles,...nn.pieces])if(an!=null)rn.despawn(an)}function v4e(rn,nn,an,sn){aa(rn,an.backdrop,sn),rn.set(an.panel,{mesh:b4e(nn.board,sn.mode==="classic"?16:8),color:y4e(sn)});let ln=E4e(sn);for(let cn of an.tiles)rn.set(cn,{color:ln})}function T4e(rn,nn,an){rn.animate(nn,{rotation:h4e(an)},{duration:$ge,easing:"back"})}function x4e(rn,nn,an,sn,ln,cn,un){if(!ln){rn.animate(an,{color:v9(sn,!1)},{duration:0.15});return}let dn=Math.max(0,cn-un)*Zge;rn.animate(an,{color:v9(sn,!0)},{duration:0.12,delay:dn}),rn.animate(an,[{scale:nn.cell*1.07,at:0.4},{scale:nn.cell}],{duration:0.22,delay:dn})}function R4e(rn,nn,an,sn){rn.animate(an,[{scale:nn.cell*1.12,at:0.4},{scale:nn.cell}],{duration:0.25,delay:sn*Qge})}function A4e(rn,nn,an,sn){let[ln,cn]=h9(nn,an,sn);$3t.splash(rn,{position:[ln,cn,nn.cell*0.4],count:24,size:nn.cell*0.09,speed:nn.cell*4,direction:[0,0,1],spread:1.1,lifetime:0.7,gravity:-nn.cell*9,colors:[xn("#4FC3F7"),xn("#81D4FA"),[1,1,1,1]]})}var i4e,m4e=(rn,nn)=>{let an=i4e.get(rn);if(!an)an=Bn("pipe-connect/PipeConnectScene:"+rn,nn),i4e.set(rn,an);return an},l4e,f4e=10,c4e=25,E9=3,$l=0.15,J3t,h4e=(rn)=>p4e.z(-rn*Math.PI/2),Vh,EE,SE,_9,Bc=([rn,nn])=>({geometry:yT([[rn*0.4,nn*0.4,$l],[rn*0.5,nn*0.5,$l]],{radius:$l*1.3,sides:16,smoothness:1}),color:J3t}),Im=([rn,nn])=>({geometry:yT([[0,0,$l],[rn*0.5,nn*0.5,$l]],{radius:$l,sides:16,smoothness:2})}),u4e=()=>({geometry:S9("sphere"),position:[0,0,$l],scale:$l*2.3}),eOt,tOt=(rn)=>m4e(`pc-${rn}`,()=>{if(rn==="source"||rn==="sink")return oOt(rn==="source");return wn(d4e(eOt[rn]()),{center:!1,shine:0.75})}),b4e=(rn,nn)=>m4e(`pc-panel:${rn}:${nn}`,()=>wn(Z3t(new Q3t().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:f4e}),{shine:0.2})),y4e=(rn)=>xn(rn.mode==="classic"?Uh.CLASSIC_BOARD:rn.BOARD.SURFACE),E4e=(rn)=>xn(rn.mode==="classic"?Uh.CLASSIC_CELL:rn.BOARD.CELL_EMPTY),rOt,nOt,v9=(rn,nn)=>rn.type==="source"?xn(Uh.SOURCE):rn.type==="sink"?xn(Uh.SINK):nn?nOt:rOt;var M4e=e(()=>{u();na();ba();Hn();bT();i4e=new Map,l4e=p4e.x(Math.PI/2),J3t=[0.52,0.56,0.62,1],Vh=[0,1],EE=[1,0],SE=[0,-1],_9=[-1,0],eOt={straight:()=>[{geometry:yT([[0,0.5,$l],[0,-0.5,$l]],{radius:$l,sides:16,smoothness:2})},Bc(Vh),Bc(SE)],corner:()=>[{geometry:yT(Array.from({length:9},(rn,nn)=>{let an=Math.PI+nn/8*(Math.PI/2);return[0.5+0.5*Math.cos(an),0.5+0.5*Math.sin(an),$l]}),{radius:$l,sides:16,smoothness:3})},Bc(Vh),Bc(EE)],"t-shape":()=>[Im(Vh),Im(SE),Im(EE),u4e(),Bc(Vh),Bc(SE),Bc(EE)],cross:()=>[Im(Vh),Im(SE),Im(_9),Im(EE),u4e(),Bc(Vh),Bc(SE),Bc(_9),Bc(EE)]};rOt=xn(Uh.PIPE),nOt=xn(Uh.WATER)});import{World as aOt}from"@nayan-ui/engine";function C4e(rn,nn){let an=new aOt(sOt),sn={eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},ln=y9(nn),cn={world:an,camera:sn,theme:rn,size:nn,layout:null,scene:null,phase:"ready",grid:ln,wet:x9(ln),get score(){return an.scoreboard.score},get time(){return an.scoreboard.shownSeconds},won:!1,onPhase:(un)=>{},onTime:(un)=>{},onTurn:(un)=>{}};return an.scoreboard.reset(0,gd),an.scoreboard.handlers={onSecond:(un)=>cn.onTime(un),onTimeUp:()=>{if(cn.phase!=="playing")return;cn.won=!1,cn.phase="over",cn.onPhase("over")}},cn}function R9(rn,nn){if(rn.scene)_4e(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=S4e(rn.world,nn,rn.theme,rn.grid,new Set(rn.wet.keys()))}function w4e(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)v4e(rn.world,rn.layout,rn.scene,nn)}function L4e(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(gd),rn.onPhase("playing")}function I4e(rn){if(rn.grid=y9(rn.size),rn.wet=x9(rn.grid),rn.world.scoreboard.reset(0,gd),rn.won=!1,rn.phase="ready",rn.layout)R9(rn,rn.layout);rn.onTime(gd),rn.onPhase("ready")}function O4e(rn){rn.world.dispose()}function P4e(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function iOt(rn,nn,an){let sn=rn.layout;if(!sn)return null;let[ln,cn]=Wa(sn,nn,an,sn.cell*0.15),un=sn.board/2,dn=Math.floor((ln+un-sn.padding)/sn.cell),pn=Math.floor((un-sn.padding-cn)/sn.cell);return pn>=0&&pn<rn.size&&dn>=0&&dn<rn.size?[pn,dn]:null}function g4e(rn,nn,an){let sn=iOt(rn,nn,an);if(sn)lOt(rn,sn[0],sn[1])}function lOt(rn,nn,an){if(rn.phase!=="playing")return;let sn=rn.grid[nn]?.[an];if(!sn||sn.fixed||sn.type==="empty")return;let ln=n4e(sn);rn.grid[nn][an]=ln;let cn=rn.wet,un=b9(rn.grid),dn=r4e(rn.grid,un);rn.wet=x9(rn.grid,un);let{layout:pn,scene:mn}=rn;if(pn&&mn){let fn=mn.pieces[T9(rn,nn,an)];if(fn!=null)T4e(rn.world,fn,ln.rotation);let hn=0;for(let[bn,yn]of rn.wet)if(!cn.has(bn)&&(!hn||yn<hn))hn=yn;for(let bn of rn.grid)for(let yn of bn){let En=mn.pieces[T9(rn,yn.row,yn.col)];if(En==null)continue;let Sn=rn.wet.get(yn.id);if(!!Sn!==cn.has(yn.id))x4e(rn.world,pn,En,yn,!!Sn,Sn??0,hn)}if(dn){for(let[yn,En]of rn.wet){let[Sn,_n]=yn.split("-").map(Number),vn=mn.pieces[T9(rn,Sn,_n)];if(vn!=null)R4e(rn.world,pn,vn,En)}let bn=rn.grid.flat().find((yn)=>yn.type==="sink");if(bn)A4e(rn.world,pn,bn.row,bn.col)}}if(dn){rn.world.scoreboard.set(Ya(gd-rn.time,gd,rn.score+Xge)),rn.world.scoreboard.stop(),rn.won=!0,rn.phase="over",rn.onTurn(!0),rn.onPhase("over");return}rn.onTurn(!1)}var sOt=300,x9=(rn,nn=b9(rn))=>{let an=new Map;for(let sn of nn)an.set(sn,an.size+1);return an},T9=(rn,nn,an)=>nn*rn.size+an;var D4e=e(()=>{ci();ba();bT();a4e();M4e()});var wr={};n(wr,{PipeConnect:()=>ao});import{jsx as cOt}from"react/jsx-runtime";var ET,N4e,ao;var Ae=e(()=>{Ta();l();a();_a();o();xa();va();bT();D4e();ET=t.PIPE_CONNECT,N4e=jge(c),ao=Vn("pipe-connect",(rn)=>{let[nn,an]=gn(gd),{game:sn,theme:ln,status:cn,screen:un,gameOver:dn}=zn(rn,{gameId:"pipe-connect",create:(pn)=>C4e(pn,N4e),start:L4e,reset:I4e,dispose:O4e,tick:P4e,setTheme:w4e,resize:(pn,mn,fn,hn)=>{let bn=e4e(mn,fn,hn,N4e);return R9(pn,bn),bn.board},tap:g4e,sounds:ET,onStart:(pn)=>pn(ET.START,"medium"),onStop:(pn)=>pn(null,"medium"),onOver:(pn,mn)=>{if(mn!=="win")pn(ET.GAME_OVER,"heavy")},wire:(pn,mn)=>{pn.onTime=an,pn.onTurn=(fn)=>mn(fn?ET.COMPLETE:ET.ROTATE,fn?"success":"light")}});return cOt(Un,{...un,light:Jge,columns:[ta(nn,ln,0)],subtext:"Connect the pipes!",gameOver:dn({title:cn==="win"?"CONNECTED!":"TIME UP!",message:cn==="win"?"All pipes connected!":"You ran out of time!",scoreLabel:"Final Score",score:sn.score,buttonText:"Play Again!"})})})});function H4e(rn,nn,an){let sn=$n(rn),ln=la(an)+uOt,cn=Math.max(200,nn-ln-dOt),un=(pi-1)*M9+1,dn=(sn-C9*2)/un,pn=(cn/Math.cos(A9)-C9*2)/(un+0.5*Math.tan(A9)),mn=Math.min(dn,pn);return{width:rn,height:nn,centerY:ln+cn/2,tilt:A9,bubble:mn,spacing:mn*M9,sheet:(pi-1)*mn*M9+mn+C9*2}}function _E(rn,nn,an){let sn=-((pi-1)*rn.spacing)/2;return[sn+an*rn.spacing,-sn-nn*rn.spacing]}var pi=6,Dd=120,G4e=250,k4e=10,ST,w9=0.07,B4e=0.16,A9=0.4,F4e,uOt=82,dOt=110,M9=1.12,C9=8;var QL=e(()=>{o();Hn();ST=["#FF3B3B","#32CD32","#FFD700","#4DA6FF","#BF5AF2","#FF9500"],F4e=Zn([0,0.12,1],0.72)});import{effects as pOt,extrude as z4e,lathe as q4e,merge as mOt,Path as Y4e,quat as fOt}from"@nayan-ui/engine";function Z4e(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-V4e,an);Ea(rn,ln,nn,V4e);let cn=rn.spawn({mesh:EOt(nn),position:[0,0,-K4e/2],color:[1,1,1,1],pickable:!1}),un=rn.spawn({mesh:SOt(nn),position:[0,0,1.25],color:[1,1,1,0.45],pickable:!1}),dn=[],pn=[];for(let mn=0;mn<pi;mn++)for(let fn=0;fn<pi;fn++){let[hn,bn]=_E(nn,mn,fn),yn=!sn[mn*pi+fn];dn.push(rn.spawn({mesh:_Ot(),position:[hn,bn,0],rotation:U4e,scale:yn?nn.bubble:0,color:j4e(mn),pickable:!1})),pn.push(rn.spawn({mesh:vOt(),position:[hn,bn,0],rotation:U4e,scale:yn?0:nn.bubble,color:yOt(mn),pickable:!1}))}return{backdrop:ln,sheet:cn,lip:un,domes:dn,dimples:pn}}function Q4e(rn,nn){for(let an of[nn.backdrop,nn.sheet,nn.lip,...nn.domes,...nn.dimples])rn.despawn(an)}function J4e(rn,nn,an){aa(rn,nn.backdrop,an)}function eDe(rn,nn,an,sn){let ln=nn.bubble,cn=Math.floor(sn/pi),un=an.domes[sn],dn=an.dimples[sn];rn.stopAnimation(un),rn.stopAnimation(dn),rn.animate(un,[{scale:[ln*1.1,ln*0.18,ln*1.1],at:0.75},{scale:0}],{duration:w9+0.02,easing:"easeIn"}),rn.set(dn,{scale:0}),rn.animate(dn,[{scale:[ln*1.08,ln*1.4,ln*1.08],at:0.55},{scale:ln}],{duration:B4e,delay:w9,easing:"easeOut"});let[pn,mn]=_E(nn,cn,sn%pi);Lf(rn,{position:[pn,mn,ln*0.5],size:ln,color:j4e(cn),glowZ:ln*0.05,count:7})}function tDe(rn,nn,an){an.domes.forEach((ln,cn)=>{rn.stopAnimation(ln),rn.stopAnimation(an.dimples[cn])});let sn=rn.transforms;an.domes.forEach((ln,cn)=>{sn.scale(ln,nn.bubble),sn.scale(an.dimples[cn],0)}),sn.flush()}function oDe(rn,nn){pOt.confetti(rn,{position:[0,0,nn.bubble],count:60,size:nn.bubble*0.16,speed:nn.sheet*1.4,lifetime:1.3,gravity:-nn.sheet*2.4,colors:ST.slice(0,4).map((an)=>xn(an))})}var W4e,eI=(rn,nn)=>{let an=W4e.get(rn);if(!an)an=Bn("popit-fidget/PopitFidgetScene:"+rn,nn),W4e.set(rn,an);return an},U4e,K4e=10,X4e=22,V4e=25,hOt=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},bOt=(rn)=>hOt(xp(ST[rn],0.22)),j4e=(rn)=>xn(ST[rn]),yOt=(rn)=>xn(HA(ST[rn],0.12)),EOt=(rn)=>eI(`pf-sheet:${rn.sheet.toFixed(1)}:${rn.spacing.toFixed(2)}`,()=>{let nn=rn.sheet/2,an=Math.min(X4e,rn.spacing/2),sn=Array.from({length:pi},(ln,cn)=>{let[,un]=_E(rn,cn,0),dn=cn===0?-nn:-(un+rn.spacing/2),pn=cn===pi-1?nn:-(un-rn.spacing/2),mn=new Y4e;if(cn===0)mn.moveTo(-nn,pn).lineTo(-nn,dn+an).quadraticTo(-nn,dn,-nn+an,dn).lineTo(nn-an,dn).quadraticTo(nn,dn,nn,dn+an).lineTo(nn,pn).close();else if(cn===pi-1)mn.moveTo(-nn,dn).lineTo(nn,dn).lineTo(nn,pn-an).quadraticTo(nn,pn,nn-an,pn).lineTo(-nn+an,pn).quadraticTo(-nn,pn,-nn,pn-an).close();else mn.addRect(-nn,dn,rn.sheet,pn-dn);return{geometry:z4e(mn,{depth:K4e}),color:bOt(cn)}});return wn(mOt(sn),{shine:0.25})}),SOt=(rn)=>eI(`pf-lip:${rn.sheet.toFixed(1)}`,()=>{let nn=rn.sheet,an=Math.min(X4e,rn.spacing/2);return wn(z4e(new Y4e().addRoundedRect(-nn/2,-nn/2,nn,nn,an).addRoundedRect(-nn/2+3,-nn/2+3,nn-6,nn-6,an-3),{depth:2.5,fillRule:"evenodd"}),{shine:0.6})}),JL=(rn,nn,an)=>{let sn=Math.min(1,Math.max(0,(an-rn)/(nn-rn)));return sn*sn*(3-2*sn)},$4e=(rn)=>[rn,rn,rn],_Ot=()=>eI("pf-dome-v4",()=>{let rn=[];for(let an=0;an<=8;an++){let sn=an/8*(Math.PI/2);rn.push([0.52-0.06*Math.sin(sn),0.06*(1-Math.cos(sn))])}rn.reverse();let nn=[];for(let an=0;an<=20;an++){let sn=an/20*(Math.PI/2);nn.push([Math.max(0.001,0.46*Math.cos(sn)),0.12+0.3*Math.sin(sn)])}return wn(q4e([...nn.reverse(),...rn],{segments:64,color:({position:an})=>$4e(0.88+0.12*JL(0,0.2,an[1])+0.04*JL(0.3,0.43,an[1]))}),{center:!1,shine:0.38})}),vOt=()=>eI("pf-dimple-v4",()=>{let rn=[];for(let nn=0;nn<=14;nn++){let an=nn/14;rn.push([Math.max(0.001,0.44*an),0.012+0.14*an*an])}for(let nn=1;nn<=10;nn++){let an=nn/10*Math.PI;rn.push([0.475-0.035*Math.cos(an)+0.025*(nn/10),0.152+0.04*Math.sin(an)-0.19*JL(0.5,1,nn/10)])}return wn(q4e(rn,{segments:64,color:({position:nn})=>$4e(0.8+0.2*JL(0.02,0.17,nn[1]))}),{center:!1,shine:0.3})});var rDe=e(()=>{Uu();u();f();na();ba();Hn();QL();W4e=new Map,U4e=fOt.x(Math.PI/2)});import{World as TOt}from"@nayan-ui/engine";function aDe(rn){let nn=new TOt(xOt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",popped:Array(nDe).fill(!1),count:0,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onPop:()=>{}};return nn.scoreboard.reset(0,Dd),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>{if(sn.phase!=="playing")return;sn.won=!1,sn.phase="over",sn.onPhase("over")}},sn}function sDe(rn,nn){if(rn.scene)Q4e(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=Z4e(rn.world,nn,rn.theme,rn.popped)}function iDe(rn,nn){if(rn.theme=nn,rn.scene)J4e(rn.world,rn.scene,nn)}function lDe(rn){if(rn.phase!=="ready")return;uDe(rn),rn.phase="playing",rn.world.scoreboard.startCountdown(Dd),rn.onPhase("playing")}function cDe(rn){uDe(rn),rn.won=!1,rn.phase="ready",rn.onPhase("ready")}function uDe(rn){if(rn.popped.fill(!1),rn.count=0,rn.world.scoreboard.reset(0,Dd),rn.layout&&rn.scene)tDe(rn.world,rn.layout,rn.scene);rn.onScore(0),rn.onTime(Dd)}function dDe(rn){rn.world.dispose()}function pDe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function AOt(rn,nn,an){let sn=rn.layout;if(!sn)return null;let[ln,cn]=Wa(sn,nn,an,sn.bubble*0.17),un=-((pi-1)*sn.spacing)/2,dn=Math.round((ln-un)/sn.spacing),pn=Math.round((-un-cn)/sn.spacing);if(pn<0||pn>=pi||dn<0||dn>=pi)return null;let[mn,fn]=_E(sn,pn,dn),hn=pn*pi+dn;if(rn.popped[hn]||Math.hypot(ln-mn,cn-fn)>sn.bubble*ROt)return null;return hn}function mDe(rn,nn,an){if(rn.phase!=="playing")return;let sn=AOt(rn,nn,an);if(sn==null)return;if(rn.popped[sn]=!0,rn.count+=1,rn.world.scoreboard.add(G4e),rn.layout&&rn.scene)eDe(rn.world,rn.layout,rn.scene,sn);if(rn.onPop(),rn.count>=nDe){if(rn.world.scoreboard.set(Ya(Dd-rn.timeLeft,Dd,rn.score)),rn.world.scoreboard.stop(),rn.won=!0,rn.phase="over",rn.layout)oDe(rn.world,rn.layout);rn.onScore(rn.score),rn.onPhase("over");return}rn.onScore(rn.score)}var nDe,xOt=300,ROt=0.45;var fDe=e(()=>{ci();ba();QL();rDe();nDe=pi*pi});var Lr={};n(Lr,{PopitFidget:()=>so});import{useMemo as MOt}from"react";import{jsx as COt}from"react/jsx-runtime";var tI,so;var Me=e(()=>{Ta();l();a();_a();o();Hn();xa();va();QL();fDe();tI=t.POPIT_FIDGET,so=Vn("popit-fidget",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(Dd),{theme:cn,status:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"popit-fidget",create:aDe,start:lDe,reset:cDe,dispose:dDe,tick:pDe,setTheme:iDe,resize:(fn,hn,bn,yn)=>{let En=H4e(hn,bn,yn);return sDe(fn,En),En.sheet},drag:(fn,hn)=>{if(hn.phase==="start")mDe(fn,hn.x,hn.y)},sounds:tI,onStart:(fn)=>fn(tI.START,"medium"),onOver:(fn,hn)=>fn(hn==="win"?t.WELL_DONE:tI.GAME_OVER),wire:(fn,hn)=>{fn.onScore=an,fn.onTime=ln,fn.onPop=()=>hn(tI.POP,"light")}}),mn=MOt(()=>ws(cn.BACKGROUND),[cn.BACKGROUND]);return COt(Un,{...dn,light:F4e,background:mn,columns:[Qn(nn),ta(sn,cn,k4e)],subtext:"Pop bubbles to relax!",gameOver:pn({title:un==="win"?"YOU WON!":"TIME UP!",message:un==="win"?"All bubbles popped!":"You ran out of time!",scoreLabel:"Final Score",score:nn,buttonText:"Pop Again!"})})})});function _De(rn,nn,an,sn){let ln=sn?6:4,cn=sn?18:14,un=la(an)+wOt,dn=Math.max(180,nn-un-LOt),pn=Math.max(150,Math.min($n(rn),dn/Math.cos(hDe)-30)),mn=Math.floor((pn-cn*2-ln*2)/3),fn=mn*3+ln*2;return{width:rn,height:nn,tilt:hDe,centerY:un+dn/2,tile:mn,gap:ln,pitch:mn+ln,pad:cn,size:fn}}function vDe(rn,nn,an){let sn=Math.floor((nn+rn.size/2)/rn.pitch),ln=Math.floor((rn.size/2-an)/rn.pitch);return ln<0||ln>2||sn<0||sn>2?null:[ln,sn]}var S0=300,L9=0.2,bDe=0.92,yDe=10,I9=18,vE,EDe,_T,hDe=0,SDe,vT=0.4,wOt=82,LOt=120,O9=(rn,nn,an)=>[(an-1)*rn.pitch,(1-nn)*rn.pitch];var oI=e(()=>{o();Hn();vE=["#FF6B6B","#51CF66","#339AF0","#FCC419","#CC5DE8","#FF922B","#22B8CF","#F06595"],EDe=["","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT"],_T={FRAME:"#5c4033",WELL:"#3a2518",SLOT:"#2e1d12",NUMBER:"#FFFFFF"},SDe=Zn([0,0,1],0.6)});function P9(){let rn=Array.from({length:9},(cn,un)=>({id:un,value:un===8?0:un+1,row:Math.floor(un/3),col:un%3})),nn=2,an=2,sn=rn.slice(),ln=rn[8];for(let cn=0;cn<200;cn++){let un=nn*3+an,dn=OOt[un],pn=dn[Math.floor(Math.random()*dn.length)],mn=Math.floor(pn/3),fn=pn%3,hn=sn[pn];sn[un]=hn,sn[pn]=ln,ln.row=mn,ln.col=fn,hn.row=nn,hn.col=an,nn=mn,an=fn}return{tiles:rn,emptyRow:nn,emptyCol:an}}function xDe(rn,nn){if(nn.value===0)return!1;return Math.abs(nn.row-rn.emptyRow)+Math.abs(nn.col-rn.emptyCol)===1}function RDe(rn,nn){let an=rn.tiles.find((cn)=>cn.value===0),[sn,ln]=[nn.row,nn.col];nn.row=rn.emptyRow,nn.col=rn.emptyCol,an.row=sn,an.col=ln,rn.emptyRow=sn,rn.emptyCol=ln}var IOt,OOt,TDe=(rn,nn,an)=>rn.tiles.find((sn)=>sn.row===nn&&sn.col===an)??null,ADe=(rn)=>rn.tiles.every((nn)=>nn.value===0?nn.row===2&&nn.col===2:nn.row===Math.floor((nn.value-1)/3)&&nn.col===(nn.value-1)%3);var MDe=e(()=>{IOt=[[-1,0],[1,0],[0,-1],[0,1]],OOt=Array.from({length:9},(rn,nn)=>{let an=Math.floor(nn/3),sn=nn%3;return IOt.filter(([ln,cn])=>an+ln>=0&&an+ln<3&&sn+cn>=0&&sn+cn<3).map(([ln,cn])=>(an+ln)*3+sn+cn)})});import{effects as POt,extrude as gOt,Path as DOt}from"@nayan-ui/engine";function IDe(rn,nn,an){let sn=[],ln=(dn)=>sn.push(rn.spawn({pickable:!1,...dn})),cn=nn.size+nn.pad*2,un=an.mode==="classic";if(ln({mesh:g9(cn,un?16:8,wDe),position:[0,0,-wDe/2],color:xn(un?_T.FRAME:an.BOARD.SURFACE)}),un)ln({mesh:g9(nn.size+8,10,1),position:[0,0,0.2],color:xn(_T.WELL)});for(let dn=0;dn<3;dn++)for(let pn=0;pn<3;pn++){let[mn,fn]=O9(nn,dn,pn);ln({mesh:g9(nn.tile,Math.min(10,nn.tile*0.12),1),position:[mn,fn,0.5],color:xn(un?_T.SLOT:an.BOARD.CELL_EMPTY)})}return sn}function kOt(rn,nn,an,sn){let ln=xn(_T.NUMBER),[cn,un,dn]=xn(vE[sn-1]),pn=[cn*0.45,un*0.45,dn*0.45,1],mn=GOt(nn)-D9,fn=(En,Sn,_n,vn)=>{let Tn=Math.max(1,vn*0.05);rn.spawn({mesh:Qi(En),parent:an,position:[Sn+Tn,_n-Tn,mn+0.3],scale:vn,color:pn,pickable:!1}),rn.spawn({mesh:Qi(En),parent:an,position:[Sn,_n,mn+0.6],scale:vn,color:ln,pickable:!1})};fn(String(sn),0,nn.tile*0.07,nn.tile*0.32);let hn=EDe[sn],bn=nn.tile*0.11,yn=bn*t0;[...hn].forEach((En,Sn)=>fn(En,(Sn-(hn.length-1)/2)*yn,-nn.tile*0.24,bn))}function ODe(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-LDe,an);Ea(rn,ln,nn,LDe);let cn={backdrop:ln,board:IDe(rn,nn,an),tiles:new Map},un=nn.tile*vT;for(let dn of sn){if(dn.value===0)continue;let pn=rn.spawn({mesh:"none",position:rI(nn,dn.row,dn.col),pickable:!1}),mn=ai(rn,{parent:pn,position:[0,0,un/2],size:[nn.tile,nn.tile,un],color:xn(vE[dn.value-1]),gloss:!1,shadow:!1});kOt(rn,nn,pn,dn.value),cn.tiles.set(dn.id,{root:pn,block:mn})}return cn}function PDe(rn,nn){for(let an of[nn.backdrop,...nn.board,...Array.from(nn.tiles.values(),(sn)=>sn.root)])rn.despawn(an)}function gDe(rn,nn,an,sn){aa(rn,an.backdrop,sn);for(let ln of an.board)rn.despawn(ln);an.board=IDe(rn,nn,sn)}function N9(rn,nn,an,sn,ln=!0){let cn=an.tiles.get(sn.id);if(!cn)return;if(ln)rn.animate(cn.root,{position:rI(nn,sn.row,sn.col)},{duration:L9,easing:"easeOut"});else rn.stopAnimation(cn.root),rn.set(cn.root,{position:rI(nn,sn.row,sn.col)})}function nI(rn,nn,an,sn){let ln=nn.tiles.get(an);if(!ln)return;let cn=sn?bDe:1;rn.animate(ln.root,{scale:cn},{duration:sn?0.08:0.14,easing:sn?"easeOut":"back"})}function G9(rn,nn,an,sn){let ln=an.tiles.get(sn);if(ln)rn.animate(ln.root,{shake:nn.tile*0.05},{duration:0.25})}function DDe(rn,nn,an,sn){for(let ln of sn){let cn=an.tiles.get(ln.id);if(!cn)continue;let[un,dn,pn]=rI(nn,ln.row,ln.col);rn.animate(cn.root,[{position:[un,dn,pn+nn.tile*0.35],scale:1.04,at:0.4},{position:[un,dn,pn],scale:1}],{duration:0.45,delay:L9+(ln.row+ln.col)*0.07,easing:"easeOut"})}POt.confetti(rn,{position:[0,0,nn.tile],count:60,size:nn.tile*0.08,speed:nn.size*1.4,lifetime:1.3,gravity:-nn.size*2.4,colors:vE.slice(0,4).map((ln)=>xn(ln))})}function NDe(rn,nn,an){for(let sn of an){let ln=nn.tiles.get(sn.id);if(!ln)continue;let cn=xn(vE[sn.value-1]);rn.animate(ln.block,{color:[cn[0]*0.5,cn[1]*0.5,cn[2]*0.55,1]},{duration:0.4})}}function k9(rn,nn,an){for(let sn of an){let ln=nn.tiles.get(sn.id);if(ln)rn.set(ln.block,{color:xn(vE[sn.value-1])})}}var CDe,NOt=(rn,nn)=>{let an=CDe.get(rn);if(!an)an=Bn("sliding-numbers/SlidingNumbersScene:"+rn,nn),CDe.set(rn,an);return an},wDe=12,LDe=30,D9=1,g9=(rn,nn,an)=>NOt(`sn-panel:${rn}:${nn}:${an}`,()=>wn(gOt(new DOt().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:an}),{shine:0.25})),GOt=(rn)=>D9+rn.tile*vT,rI=(rn,nn,an)=>{let[sn,ln]=O9(rn,nn,an);return[sn,ln,D9]};var GDe=e(()=>{u();l0();r0();na();ba();Hn();oI();CDe=new Map});import{World as BOt}from"@nayan-ui/engine";function BDe(rn){let nn=new BOt(FOt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",board:P9(),won:!1,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},press:null,onPhase:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,S0),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&qDe(sn,!1)},sn}function FDe(rn,nn){if(rn.scene)PDe(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=ODe(rn.world,nn,rn.theme,rn.board.tiles)}function HDe(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)gDe(rn.world,rn.layout,rn.scene,nn)}function WDe(rn){if(rn.phase!=="ready")return;rn.won=!1,rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(S0),rn.phase="playing",rn.onTime(S0),rn.onPhase("playing")}function B9(rn){if(rn.press=null,rn.won=!1,rn.world.scoreboard.reset(0,S0),rn.phase="ready",rn.scene)k9(rn.world,rn.scene,rn.board.tiles);rn.onTime(S0),rn.onPhase("ready")}function UDe(rn){rn.board=P9();let{layout:nn,scene:an}=rn;if(nn&&an){k9(rn.world,an,rn.board.tiles);for(let sn of rn.board.tiles)N9(rn.world,nn,an,sn)}B9(rn)}function VDe(rn){rn.world.dispose()}function zDe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function qDe(rn,nn){if(rn.world.scoreboard.stop(),rn.won=nn,!nn)rn.world.scoreboard.set(0);if(rn.phase="over",rn.press&&rn.layout&&rn.scene)nI(rn.world,rn.scene,rn.press.id,!1);if(rn.press=null,rn.layout&&rn.scene)if(nn)DDe(rn.world,rn.layout,rn.scene,rn.board.tiles);else NDe(rn.world,rn.scene,rn.board.tiles);rn.onPhase("over"),rn.onEvent(nn?"win":"lose")}function kDe(rn,nn){if(rn.phase!=="playing"||nn.value===0)return;let{layout:an,scene:sn}=rn;if(!xDe(rn.board,nn)){if(an&&sn)G9(rn.world,an,sn,nn.id);rn.onEvent("blocked");return}if(RDe(rn.board,nn),an&&sn)N9(rn.world,an,sn,nn);if(rn.onEvent("move"),ADe(rn.board))rn.world.scoreboard.set(Ya(S0-rn.timeLeft,S0,0)),qDe(rn,!0)}function HOt(rn,nn,an){let sn=rn.layout;if(!sn)return null;let[ln,cn]=Wa(sn,nn,an,1+sn.tile*vT),un=vDe(sn,ln,cn),dn=un?TDe(rn.board,un[0],un[1]):null;return dn&&dn.value!==0?dn:null}function YDe(rn,{phase:nn,x:an,y:sn}){let{layout:ln,scene:cn}=rn;if(nn==="start"){let hn=rn.phase==="playing"?HOt(rn,an,sn):null;if(rn.press=hn?{x:an,y:sn,id:hn.id}:null,hn&&ln&&cn)nI(rn.world,cn,hn.id,!0);return}let un=rn.press;if(!un)return;let dn=rn.board.tiles.find((hn)=>hn.id===un.id),pn=an-un.x,mn=sn-un.y,fn=Math.hypot(pn,mn);if(fn>=I9||nn==="end"){if(rn.press=null,ln&&cn)nI(rn.world,cn,un.id,!1);if(fn<yDe)return kDe(rn,dn);if(fn<I9)return;let hn=Math.abs(pn)>Math.abs(mn),bn=dn.row+(hn?0:mn>0?1:-1),yn=dn.col+(hn?pn>0?1:-1:0);if(bn===rn.board.emptyRow&&yn===rn.board.emptyCol)kDe(rn,dn);else{if(ln&&cn)G9(rn.world,ln,cn,dn.id);rn.onEvent("blocked")}}}var FOt=400;var KDe=e(()=>{ci();ba();oI();MDe();GDe()});var Ir={};n(Ir,{SlidingNumbers:()=>io});import{jsx as WOt}from"react/jsx-runtime";var TE,io;var Ce=e(()=>{Ta();l();a();_a();o();xa();va();oI();KDe();TE=t.SLIDING_NUMBERS,io=Vn("sliding-numbers",(rn)=>{let[nn,an]=gn(S0),{game:sn,theme:ln,status:cn,screen:un,gameOver:dn}=zn(rn,{gameId:"sliding-numbers",create:BDe,start:WDe,reset:B9,replay:UDe,dispose:VDe,tick:zDe,setTheme:HDe,resize:(pn,mn,fn,hn)=>{let bn=_De(mn,fn,hn,c);return FDe(pn,bn),bn.size+bn.pad*2},drag:YDe,sounds:TE,onStart:(pn)=>pn(TE.START),wire:(pn,mn)=>{pn.onTime=an,pn.onEvent=(fn)=>{if(fn==="blocked")mn(TE.BLOCKED,"warning");else if(fn==="move")mn(TE.MOVE,"light");else if(fn==="win")mn(TE.WIN);else if(fn==="lose")mn(TE.GAME_OVER)}}});return WOt(Un,{...un,light:SDe,columns:[ta(nn,ln)],subtext:"Slide tiles to solve!",gameOver:dn({title:cn==="win"?"SOLVED!":"TIME UP!",message:cn==="win"?"Puzzle completed!":"You ran out of time!",scoreLabel:"Score",score:sn.score,buttonText:cn==="win"?"Play Again!":"Try Again!"})})})});function zOt(){let rn=Math.floor(10),nn=[];for(let an=0;an<3;an++)nn.push(rn-an,rn);return nn}function aI(rn,nn,an,sn){let ln=0,cn=0,un=0;do ln=Math.floor(Math.random()*20),cn=Math.floor(Math.random()*20),un++;while(un<100&&qOt(ln,cn,rn));let dn={id:an,x:ln,y:cn,isSpecial:nn};if(nn)dn.expiresAt=sn+10;return dn}function $De(rn,nn){let an=rn.turns[rn.turns.length-1]??rn.direction;if(rn.turns.length>=2||nn===an||VOt[an]===nn)return;rn.turns.push(nn),rn.nextDirection=rn.turns[0]}function ZDe(rn,nn){let an=rn.nextDirection;rn.turns.shift(),rn.nextDirection=rn.turns[0]??an;let sn=rn.snake,[ln,cn]=UOt[an],un=sn[0]+ln,dn=sn[1]+cn,pn=Array(sn.length);pn[0]=un,pn[1]=dn;for(let Sn=2;Sn<sn.length;Sn++)pn[Sn]=sn[Sn-2];rn.direction=an;let mn=un<0||un>=20||dn<0||dn>=20,fn=!1;if(!mn){for(let Sn=2;Sn<pn.length;Sn+=2)if(pn[Sn]===un&&pn[Sn+1]===dn){fn=!0;break}}if(mn||fn)return{crash:!0,ate:null,newFood:null,grew:!1};let hn=rn.food,bn=pn,yn=null,En=null;if(hn&&un===hn.x&&dn===hn.y){bn=pn.slice(),bn.push(pn[pn.length-2],pn[pn.length-1]),En=hn;let Sn=Math.random()<0.15;yn=aI(bn,Sn,rn.nextFoodId++,nn)}else if(hn&&hn.isSpecial&&hn.expiresAt!==void 0&&nn>hn.expiresAt)yn=aI(pn,!1,rn.nextFoodId++,nn);if(rn.snake=bn,yn)rn.food=yn;return{crash:!1,ate:En,newFood:yn,grew:En!==null}}var Nd=20,XDe=1000,jDe=2000,UOt,VOt,qOt=(rn,nn,an)=>{for(let sn=0;sn<an.length;sn+=2)if(an[sn]===rn&&an[sn+1]===nn)return!0;return!1},F9=()=>({snake:zOt(),direction:"RIGHT",nextDirection:"RIGHT",turns:[],food:null,nextFoodId:1});var sI=e(()=>{UOt={UP:[0,-1],DOWN:[0,1],LEFT:[-1,0],RIGHT:[1,0]},VOt={UP:"DOWN",DOWN:"UP",LEFT:"RIGHT",RIGHT:"LEFT"}});function t6e(rn,nn,an){let sn=la(an)+YOt,ln=Math.max(200,nn-sn-KOt),cn=$n(rn)/(Nd+QDe*2),un=ln/(Math.cos(H9)*(Nd+QDe*2)+Math.sin(H9)*1.5),dn=Math.max(8,Math.min(cn,un));return{width:rn,height:nn,tilt:H9,centerY:sn+ln/2,cell:dn,size:dn*Nd}}var Om=300,iI=300,JDe=100,W9=15,Fi,H9=0,e6e,YOt=82,KOt=120,QDe=0.5,lI=(rn,nn,an)=>[nn*rn.cell-rn.size/2,rn.size/2-an*rn.cell];var cI=e(()=>{o();Hn();sI();Fi={HEAD:"#00c853",BODY:"#00a344",TAIL:"#008035",BELLY:"#7CF2A8",EYE:"#FFFFFF",PUPIL:"#111111",TONGUE:"#E53935",SPECIAL:"#ffa502",CRASH:"#ff4757",CLASSIC_BOARD:"rgba(255, 255, 255, 0.30)",CLASSIC_DARK:"rgba(255, 255, 255, 0.10)",CLASSIC_RIM:"rgba(255, 255, 255, 0.55)"},e6e=Zn([-0.4,0.5,1],0.45)});function o6e(rn,nn,an,sn){let ln=an*2,cn=nn[ln],un=nn[ln+1],dn=rn[ln]??cn,pn=rn[ln+1]??un,mn=cn-dn,fn=un-pn;if(mn===0&&fn===0)return[cn,un,0,0];let hn=rn[ln+2]===void 0?mn:dn-rn[ln+2],bn=rn[ln+3]===void 0?fn:pn-rn[ln+3],yn=Math.max(0,Math.min(1,sn)),En=yn*(1-yn)*(1-yn),Sn=1-4*yn+3*yn*yn;return[dn+mn*yn+(hn-mn)*En,pn+fn*yn+(bn-fn)*En,mn+(hn-mn)*Sn,fn+(bn-fn)*Sn]}var r6e=()=>{};import{effects as n6e,extrude as U9,merge as XOt,Path as V9,quat as xT,shapeGeometry as jOt}from"@nayan-ui/engine";function d6e(rn,nn,an){let sn=[],ln=(mn)=>sn.push(rn.spawn({pickable:!1,...mn})),cn=an.mode==="classic",un=nn.cell*0.5;ln({mesh:QOt(nn.size+un*2,cn?12:8),position:[0,0,-u6e/2],color:xn(cn?Fi.CLASSIC_BOARD:an.BOARD.SURFACE)}),ln({mesh:JOt(),position:[0,0,0.05],scale:nn.cell,color:xn(cn?Fi.CLASSIC_DARK:an.BOARD.CELL_EMPTY)});let dn=nn.cell*0.55,pn=xn(cn?Fi.CLASSIC_RIM:an.BOARD.BORDER);return ln({mesh:ePt(nn.size,un,cn?12:8,dn),position:[0,0,dn/2],color:pn}),sn}function p6e(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-s6e,an);Ea(rn,sn,nn,s6e);let ln=nn.cell*0.9,cn=rn.spawn({mesh:"sphere",scale:dI(ln),color:xn(Fi.HEAD),pickable:!1});for(let pn of[-1,1])rn.spawn({mesh:"sphere",parent:cn,position:[0.12,pn*0.3,0.26],scale:[0.24,0.2,0.22],color:xn(Fi.EYE),pickable:!1}),rn.spawn({mesh:"sphere",parent:cn,position:[0.2,pn*0.33,0.33],scale:[0.05,0.13,0.1],color:xn(Fi.PUPIL),pickable:!1}),rn.spawn({mesh:"sphere",parent:cn,position:[0.47,pn*0.09,0.22],scale:[0.05,0.04,0.03],color:[0.05,0.05,0.05,1],pickable:!1});let un=rn.spawn({mesh:"none",parent:cn,position:[0.5,0,-0.05],scale:[0,1,1],pickable:!1}),dn=xn(Fi.TONGUE);rn.spawn({mesh:"cube",parent:un,position:[0.18,0,0],scale:[0.36,0.05,0.03],color:dn,pickable:!1});for(let pn of[-1,1])rn.spawn({mesh:"cube",parent:un,position:[0.42,pn*0.05,0],rotation:xT.z(pn*0.5),scale:[0.16,0.04,0.03],color:dn,pickable:!1});return{backdrop:sn,board:d6e(rn,nn,an),head:cn,tongue:un,beads:[],joints:[],food:null,foodId:-1}}function m6e(rn,nn){for(let an of[nn.backdrop,...nn.board,nn.head,...nn.beads,...nn.joints,nn.food])if(an!=null)rn.despawn(an)}function f6e(rn,nn,an,sn){aa(rn,an.backdrop,sn);for(let ln of an.board)rn.despawn(ln);an.board=d6e(rn,nn,sn)}function h6e(rn,nn,an,sn,ln,cn){let un=rn.transforms,dn=ln.length/2;while(an.beads.length<dn-1)an.beads.push(rn.spawn({mesh:"sphere",pickable:!1}));while(an.joints.length<dn-1)an.joints.push(rn.spawn({mesh:"sphere",pickable:!1}));for(let hn=dn-1;hn<an.beads.length;hn++)un.scale(an.beads[hn],0);for(let hn=dn-1;hn<an.joints.length;hn++)un.scale(an.joints[hn],0);let pn=0,mn=0,fn=0;for(let hn=0;hn<dn;hn++){let[bn,yn,En,Sn]=o6e(sn,ln,hn,cn),[_n,vn]=lI(nn,bn+0.5,yn+0.5),Tn=dn>1?hn/(dn-1):0,Rn=(hn===0?0.45:oPt(Tn)/2)*nn.cell;if(hn===0){if(un.position(an.head,_n,vn,Rn*0.75),En||Sn){let An=xT.z(Math.atan2(-Sn,En),$Ot);un.rotation(an.head,An[0],An[1],An[2],An[3])}}else{let An=an.beads[hn-1],Mn=c6e(Tn,hn);un.position(An,_n,vn,Rn*uI),un.scale(An,Rn*2,Rn*2,Rn*2*uI),un.color(An,Mn[0],Mn[1],Mn[2],Mn[3]??1);let Cn=(Rn+fn)/2,Ln=an.joints[hn-1],On=c6e(Tn,hn+1);un.position(Ln,(_n+pn)/2,(vn+mn)/2,Cn*uI*0.95),un.scale(Ln,Cn*2,Cn*2,Cn*2*uI*0.95),un.color(Ln,On[0],On[1],On[2],On[3]??1)}pn=_n,mn=vn,fn=Rn}un.flush()}function mI(rn,nn,an){rn.set(nn.head,{rotation:xT.z(ZOt[an])})}function b6e(rn,nn){rn.animate(nn.tongue,[{scale:[1,1,1],at:0.35},{scale:[0.85,1,1],at:0.6},{scale:[0,1,1]}],{duration:0.32})}function y6e(rn,nn,an){let sn=nn.cell*0.9;rn.stopAnimation(an.head),rn.set(an.head,{scale:dI(sn),color:xn(Fi.HEAD),rotation:xT.z(0)})}function E6e(rn,nn,an,sn){let ln=nn.cell*0.9,[cn,un,dn]=dI(ln);rn.animate(an.head,[{scale:[cn*1.2,un*1.25,dn*1.2],at:0.3},{scale:dI(ln)}],{duration:0.3});let[pn,mn]=lI(nn,sn.x+0.5,sn.y+0.5),fn=[pn,mn,nn.cell*0.5];if(sn.isSpecial)n6e.sparkle(rn,{position:fn,count:26,size:nn.cell*0.14,speed:nn.cell*5,lifetime:0.6,gravity:-nn.cell*6,colors:[xn("#FFD54F"),xn(Fi.SPECIAL),[1,1,1,1]]});else n6e.splash(rn,{position:fn,count:14,size:nn.cell*0.14,speed:nn.cell*5,lifetime:0.5,gravity:-nn.cell*10,colors:[xn("#E53935"),xn("#FFCDD2")]})}function S6e(rn,nn,an,sn){let ln=xn(Fi.CRASH);rn.animate(an.head,{color:ln},{duration:0.2});for(let cn of[...an.beads,...an.joints])rn.animate(cn,{color:ln},{duration:0.35});rn.animate(an.head,{shake:nn.cell*0.25},{duration:0.4}),sn.shake=nn.cell*0.35}function _6e(rn,nn,an,sn){if(sn&&sn.id===an.foodId)return;if(an.food!=null)rn.despawn(an.food);if(an.food=null,an.foodId=sn?sn.id:-1,!sn)return;let[ln,cn]=lI(nn,sn.x+0.5,sn.y+0.5),un=nn.cell*0.8,dn=rn.spawn({mesh:"none",position:[ln,cn,un/2],bob:{amplitude:[0,0,nn.cell*0.12],speed:4},spin:sn.isSpecial?[0,0,2.5]:[0,0,0],pickable:!1});if(sn.isSpecial)rn.spawn({mesh:tPt(),parent:dn,rotation:i6e,scale:un*1.15,color:xn(Fi.SPECIAL),pickable:!1}),rn.spawn({mesh:"sphere",parent:dn,scale:un*0.55,color:[2,1.6,0.5,0.35],pickable:!1});else{let pn=gh().apple,mn=pn.center;rn.spawn({mesh:pn.whole,parent:dn,rotation:i6e,position:[-mn[0]*un,mn[2]*un,-mn[1]*un],scale:un,pickable:!1})}rn.set(dn,{scale:0.01}),rn.animate(dn,{scale:1},{duration:0.25,easing:"back"}),an.food=dn}var a6e,pI=(rn,nn)=>{let an=a6e.get(rn);if(!an)an=Bn("snake-3d/Snake3DScene:"+rn,nn),a6e.set(rn,an);return an},u6e=10,s6e=30,i6e,$Ot,ZOt,QOt=(rn,nn)=>pI(`s3-panel:${rn}:${nn}`,()=>wn(U9(new V9().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:u6e}),{shine:0.2})),JOt=()=>pI("s3-checker",()=>{let rn=[];for(let nn=0;nn<Nd;nn++)for(let an=0;an<Nd;an++)if((an+nn)%2)rn.push({geometry:jOt("cube"),position:[an+0.5-Nd/2,Nd/2-nn-0.5,0],scale:[1,1,0.02]});return wn(XOt(rn),{center:!1})}),ePt=(rn,nn,an,sn)=>pI(`s3-rim:${rn.toFixed(1)}:${nn.toFixed(1)}:${an}:${sn.toFixed(1)}`,()=>{let ln=rn+nn*2;return wn(U9(new V9().addRoundedRect(-ln/2,-ln/2,ln,ln,an).addRect(-rn/2,-rn/2,rn,rn),{depth:sn,fillRule:"evenodd"}),{shine:0.2})}),tPt=()=>pI("s3-star",()=>wn(U9(new V9().addStar(0,0,0.5,0.22),{depth:0.28}),{shine:0.7})),TT=(rn,nn,an)=>rn+(nn-rn)*an,l6e=(rn,nn,an)=>[TT(rn[0],nn[0],an),TT(rn[1],nn[1],an),TT(rn[2],nn[2],an),1],oPt=(rn)=>rn<0.6?TT(0.8,0.72,rn/0.6):TT(0.72,0.3,((rn-0.6)/0.4)**1.3),c6e=(rn,nn)=>{let an=rn<0.5?l6e(xn(Fi.HEAD),xn(Fi.BODY),rn*2):l6e(xn(Fi.BODY),xn(Fi.TAIL),rn*2-1),sn=nn%3===0?0.68:1;return[an[0]*sn,an[1]*sn,an[2]*sn,1]},uI=0.72,dI=(rn)=>[rn*1.25,rn*0.95,rn*0.62];var v6e=e(()=>{u();M();na();ba();Hn();cI();r6e();sI();a6e=new Map,i6e=xT.x(Math.PI/2),$Ot=[0,0,0,1],ZOt={RIGHT:0,UP:Math.PI/2,LEFT:Math.PI,DOWN:-Math.PI/2}});import{World as rPt}from"@nayan-ui/engine";function T6e(rn){let nn=new rPt(nPt),an={eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},sn=F9(),ln={world:nn,camera:an,theme:rn,layout:null,scene:null,phase:"ready",st:sn,prev:sn.snake.slice(),pending:0,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},clock:0,moves:0,anchor:null,onPhase:(cn)=>{},onScore:(cn)=>{},onTime:(cn)=>{},onEvent:(cn)=>{}};return nn.scoreboard.reset(0,Om),nn.scoreboard.handlers={onScore:(cn)=>ln.onScore(cn),onSecond:(cn)=>ln.onTime(cn),onTimeUp:()=>ln.phase==="playing"&&I6e(ln)},ln}function x6e(rn,nn){if(rn.scene)m6e(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=p6e(rn.world,nn,rn.theme),mI(rn.world,rn.scene,rn.st.direction),fI(rn)}function R6e(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)f6e(rn.world,rn.layout,rn.scene,nn)}function fI(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;h6e(rn.world,nn,an,rn.prev,rn.st.snake,rn.phase==="playing"?rn.pending/iI:1),_6e(rn.world,nn,an,rn.st.food)}function A6e(rn){if(rn.st=F9(),rn.prev=rn.st.snake.slice(),rn.pending=0,rn.world.scoreboard.reset(0,Om),rn.layout&&rn.scene)y6e(rn.world,rn.layout,rn.scene),mI(rn.world,rn.scene,"RIGHT")}function M6e(rn){if(rn.phase!=="ready")return;A6e(rn),rn.st.food=aI(rn.st.snake,!1,1,rn.clock),rn.st.nextFoodId=2,rn.world.scoreboard.startCountdown(Om),rn.phase="playing",fI(rn),rn.onScore(0),rn.onTime(Om),rn.onPhase("playing")}function C6e(rn){A6e(rn),rn.phase="ready",rn.anchor=null,fI(rn),rn.onScore(0),rn.onTime(Om),rn.onPhase("ready")}function w6e(rn){rn.world.dispose()}function L6e(rn,nn){if(rn.world.isDisposed)return;if(rn.clock+=Math.min(nn,0.25),rn.phase==="playing"){if(rn.pending+=Math.min(nn*1000,JDe),rn.pending>=iI)rn.pending-=iI,aPt(rn);fI(rn)}rn.world.update(nn)}function aPt(rn){let{layout:nn,scene:an}=rn,sn=rn.st.snake.slice(),ln=ZDe(rn.st,rn.clock);if(ln.crash){if(rn.prev=rn.st.snake.slice(),rn.pending=0,nn&&an)mI(rn.world,an,rn.st.direction),S6e(rn.world,nn,an,rn.camera);rn.onEvent("crash"),I6e(rn);return}if(rn.prev=sn,++rn.moves%9===0&&an)b6e(rn.world,an);if(ln.ate){if(rn.world.scoreboard.add(ln.ate.isSpecial?jDe:XDe),nn&&an)E6e(rn.world,nn,an,ln.ate);rn.onEvent(ln.ate.isSpecial?"special":"eat")}}function I6e(rn){rn.world.scoreboard.stop(),rn.phase="over",rn.anchor=null,rn.onPhase("over")}function O6e(rn,{phase:nn,x:an,y:sn,cancelled:ln}){if(nn==="start"){rn.anchor=[an,sn];return}let cn=rn.anchor;if(nn==="end")rn.anchor=null;if(nn==="end"&&ln)return;if(!cn||rn.phase!=="playing")return;let un=an-cn[0],dn=sn-cn[1];if(Math.abs(un)<=W9&&Math.abs(dn)<=W9)return;$De(rn.st,Math.abs(un)>Math.abs(dn)?un>0?"RIGHT":"LEFT":dn>0?"DOWN":"UP"),rn.anchor=nn==="end"?null:[an,sn]}var nPt=1000;var P6e=e(()=>{ba();cI();sI();v6e()});var Or={};n(Or,{Snake3D:()=>lo});import{jsx as iPt}from"react/jsx-runtime";var zh,g6e,sPt=(rn)=>`${rn}`,lo;var we=e(()=>{Ta();l();a();_a();o();xa();va();cI();P6e();zh=t.SNAKE_3D,g6e={eat:{sound:zh.EAT,haptic:"medium"},special:{sound:zh.SPECIAL,haptic:"heavy"},crash:{sound:zh.COLLISION,haptic:"heavy"}},lo=Vn("snake-3d",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(Om),{theme:cn,screen:un,gameOver:dn}=zn(rn,{gameId:"snake-3d",create:T6e,start:M6e,reset:C6e,dispose:w6e,tick:L6e,setTheme:R6e,resize:(pn,mn,fn,hn)=>{let bn=t6e(mn,fn,hn);return x6e(pn,bn),bn.size+bn.cell},drag:O6e,outcome:()=>"lose",sounds:zh,onStart:(pn)=>pn(zh.START),onStop:(pn)=>pn(null,"light"),onOver:(pn,mn,fn)=>pn(fn.timeLeft<=0?zh.TIME_UP:zh.GAME_OVER,"error"),wire:(pn,mn)=>{pn.onScore=an,pn.onTime=ln,pn.onEvent=(fn)=>mn(g6e[fn].sound,g6e[fn].haptic)}});return iPt(Un,{...un,light:e6e,columns:[Qn(nn),ta(sn,cn,0)],subtext:"Swipe to steer!",gameOver:dn({title:"GAME OVER",message:"You hit the wall or yourself!",scoreLabel:"Final Score",score:nn,formatter:sPt,buttonText:"Play Again!"})})})});function U6e(rn,nn,an){let sn=rn>uPt,ln=rn/lPt,cn=nn/cPt;return{width:rn,height:nn,offset:an,k:2*hI*Math.tan(AT/2)/nn,shipSize:Math.round((sn?D6e.tablet:D6e.phone)*ln),shipY:nn*(an>0?0.77:0.68),beltHeight:Math.round((sn?N6e.tablet:N6e.phone)*cn),gap:Math.round(dPt*ln),spawnInterval:(sn?G6e.tablet:G6e.phone)/cn,fallSpeed:pPt*cn/bPt,spawnY:-Math.round(nn*hPt),scoreboardBottom:la(an)+82}}function V6e(rn,nn=Math.random){let an=rn.width/2+(nn()-0.5)*2*rn.width*mPt,sn=Math.round(rn.width*fPt);return Math.max(sn,Math.min(an-rn.gap/2,rn.width-rn.gap-sn))}var qh=120,Yh=3,k6e=500,RT=2,lPt=390,cPt=844,uPt=640,D6e,N6e,dPt=120,G6e,pPt=3.5,mPt=0.15,fPt=0.08,hPt=0.3,bPt=0.016,B6e=0.064,hI=12,AT=0.9,F6e="#050311",H6e="#A8DCF7",W6e;var bI=e(()=>{o();D6e={phone:28,tablet:22},N6e={phone:80,tablet:60},G6e={phone:1.5,tablet:1.8},W6e={direction:[-0.45,0.6,0.65],ambient:0.38,shadows:!1,color:[1.05,1.02,1.1]}});import{effects as yPt,ellipsoid as z6e,extrude as EPt,lathe as K9,loft as q6e,merge as q9,Path as SPt,quat as Ml,tube as z9}from"@nayan-ui/engine";function $6e(rn,nn,an){let sn=nn.shipSize*nn.k,ln=rn.spawn({mesh:"none",position:wT(nn,an,nn.shipY),rotation:j6e(0),pickable:!1}),cn=rn.spawn({mesh:_Pt(),parent:ln,scale:sn,color:[1,1,1,1],bob:{amplitude:[sn*0.02,sn*0.04,0],speed:2.2},pickable:!1}),un=[[0.3,0.28],[-0.3,0.28],[0,0.16]].map(([dn,pn])=>rn.spawn({mesh:"puff",parent:cn,position:[dn,-0.66,0.02],scale:pn,color:X6e,pickable:!1}));return[1,-1].forEach((dn,pn)=>{let mn=pn===0?TPt:vPt,fn=rn.spawn({mesh:"sphere",parent:cn,position:[dn*0.95,0.24,0],scale:0.07,color:mn,pickable:!1});rn.animate(fn,[{color:mn,at:0.15},{color:[mn[0]*0.25,mn[1]*0.25,mn[2]*0.25,1],at:0.3},{color:[mn[0]*0.25,mn[1]*0.25,mn[2]*0.25,1]}],{duration:1.2,delay:pn*0.6,repeat:"forever",easing:"linear"})}),RE(rn,nn,{root:ln,body:cn,flames:un},!1),{root:ln,body:cn,flames:un}}function RE(rn,nn,an,sn){an.flames.forEach((ln,cn)=>{let un=(cn===2?0.16:0.28)*(sn?1.55:1);rn.stopAnimation(ln),rn.set(ln,{scale:un,color:sn?xPt:X6e}),rn.animate(ln,{scale:un*1.35},{duration:0.06+cn*0.015,repeat:"forever",yoyo:!0,easing:"easeInOut"})})}function Z6e(rn,nn,an){let sn=nn.shipSize*nn.k;rn.set(an.body,{position:[0,-sn*4,0]}),rn.animate(an.body,{position:[0,0,0]},{spring:{stiffness:140,damping:14}})}function Q6e(rn,nn,an,sn,ln){rn.set(an.root,{position:wT(nn,sn,nn.shipY),rotation:j6e(ln,APt)})}function J6e(rn,nn){let an=Math.round(RT/0.1),sn=Array.from({length:an},(ln,cn)=>({color:cn%2?[1,1,1,1]:[1,1,1,0.3],at:(cn+1)/an}));rn.stopAnimation(nn.body),rn.set(nn.body,{position:[0,0,0]}),rn.animate(nn.body,sn,{duration:RT,easing:"linear"}),rn.animate(nn.body,{turn:[0,Math.PI*2,0]},{duration:0.55,easing:"easeOut"})}function j9(rn,nn){rn.stopAnimation(nn.body),rn.set(nn.body,{color:[1,1,1,1],position:[0,0,0],rotation:[0,0,0,1]})}function $9(rn,nn,an,sn,ln){let cn=rn.spawn({mesh:"none",position:wT(nn,nn.width/2,an),pickable:!1}),un=Ds(ln),{beltHeight:dn,k:pn}=nn,mn=(bn,yn,En)=>rn.spawn({mesh:CPt(Math.floor(un()*MPt)),parent:cn,position:[(bn-nn.width/2)*pn,-(yn-an)*pn,(un()-0.5)*dn*0.35*pn],scale:[En*pn*(0.9+un()*0.25),En*pn*(0.85+un()*0.2),En*pn*(0.9+un()*0.2)],rotation:Ml.multiply(Ml.z(un()*6.3),Ml.x(un()*6.3)),spin:[(un()-0.5)*1.6,(un()-0.5)*1.6,(un()-0.5)*1.2],pickable:!1}),fn=dn*1.08,hn=(bn,yn,En)=>{if(yn-bn<2)return;let Sn=En===1?yn:bn,_n=yn-bn+fn;for(let vn=fn/2;vn<_n;){let Tn=fn*(0.7+un()*0.5);mn(Sn-En*vn,an+dn/2+(un()-0.5)*dn*0.12,Tn),vn+=Tn*0.66}mn(Sn-En*fn*0.22,an+dn*0.18,fn*0.42),mn(Sn-En*fn*0.22,an+dn*0.82,fn*0.42)};return hn(-fn/2,sn,1),hn(sn+nn.gap,nn.width+fn/2,-1),{root:cn}}function eNe(rn,nn,an,sn){rn.set(an.root,{position:wT(nn,nn.width/2,sn)})}function tNe(rn,nn,an,sn){let ln=wT(nn,an,sn),cn=nn.shipSize*nn.k;yPt.explosion(rn,{position:ln,count:24,size:cn*0.9,speed:cn*3,lifetime:0.6,colors:[[2.4,1.6,0.5,0.95],[2.2,0.8,0.3,0.9],[1.4,0.4,0.2,0.8]],smoke:[0.3,0.25,0.3,0.5],debris:[xn("#C9D3DE"),xn("#00C8FF")]})}function rNe(rn,nn,an){let sn=[],[ln,cn]=MT(nn,170),un=[-ln*0.55,cn*0.38,-170];if(an){let mn=cn*0.26;return sn.push(rn.spawn({mesh:"puff",position:[un[0],un[1],un[2]-2],scale:mn*4.2,color:[1.8,1.25,0.6,0.16],pickable:!1})),sn.push(rn.spawn({mesh:"puff",position:[un[0],un[1],un[2]-1],scale:mn*2.2,color:[2,1.6,0.8,0.35],pickable:!1})),sn.push(rn.spawn({mesh:"sphere",position:un,scale:mn,color:[2.4,2.05,1.1,1],pickable:!1})),sn}let[dn,pn]=MT(nn,400);return sn.push(rn.spawn({mesh:"puff",position:[-dn*0.9,pn*0.75,-400],scale:pn*0.7,color:[1.6,1.2,0.9,0.18],pickable:!1})),sn.push(rn.spawn({mesh:wPt(),position:un,scale:cn*0.32,spin:[0,0.05,0],pickable:!1})),sn}function nNe(rn,nn,an,sn){for(let ln of an.sky)rn.despawn(ln);an.all=an.all.filter((ln)=>!an.sky.includes(ln)),an.sky=rNe(rn,nn,sn),an.all.push(...an.sky)}function aNe(rn,nn,an,sn){let ln=[],cn=Ds(3),un=[[0.55,0.25,0.95,0.1],[0.25,0.4,1,0.08],[0.85,0.3,0.75,0.07]];for(let fn=0;fn<16;fn++){let hn=430+cn()*50,[bn,yn]=MT(nn,hn);ln.push(rn.spawn({mesh:"puff",position:[(cn()*2-1)*bn*1.1,(cn()*2-1)*yn,-hn],scale:yn*(0.5+cn()*0.6),color:un[fn%3],pickable:!1}))}for(let fn=0;fn<36;fn++){let[bn,yn]=MT(nn,470),En=fn/35;ln.push(rn.spawn({mesh:"puff",position:[(-1.1+En*2.2)*bn,(0.75-En*1.3+(cn()-0.5)*0.15)*yn,-470],scale:yn*(0.12+cn()*0.14),color:[0.85,0.8,1.2,0.06],pickable:!1}))}let dn=rNe(rn,nn,sn);ln.push(...dn);let pn=[],mn=[[2.2,2.2,2.4,1],[2.3,2.1,1.8,1],[1.9,2.1,2.6,1]];for(let fn=0;fn<260;fn++){let hn=30+Math.pow(cn(),0.7)*300,[bn,yn]=MT(nn,hn),En=(cn()*2-1)*bn*1.05,Sn=(cn()*2-1)*(yn+1),_n=rn.spawn({mesh:"sphere",position:[En,Sn,-hn],scale:hn*0.0028*(0.6+cn()*1.1),color:mn[fn%3],velocity:[0,-oNe,0],pickable:!1});ln.push(_n),pn.push({e:_n,x:En,y:Sn,z:hn,since:an})}return{all:ln,sky:dn,stars:pn}}function sNe(rn,nn,an){for(let sn of nn.stars){let ln=sn.z*Y9+1;if(sn.y-oNe*(an-sn.since)<-ln)sn.y=ln,sn.since=an,rn.set(sn.e,{position:[sn.x,ln,-sn.z]})}}function iNe(rn,nn){for(let an of nn)rn.despawn(an)}var Y6e,X9=(rn,nn)=>{let an=Y6e.get(rn);if(!an)an=Bn("space-fighter/SpaceFighterScene:"+rn,nn),Y6e.set(rn,an);return an},Gd=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},xE=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an],CT=(rn,nn)=>[rn[0]*nn,rn[1]*nn,rn[2]*nn],kd=(rn,nn,an)=>{let sn=Math.min(1,Math.max(0,(an-rn)/(nn-rn)));return sn*sn*(3-2*sn)},Y9,wT=(rn,nn,an,sn=hI)=>{let ln=rn.k*sn/hI;return[(nn-rn.width/2)*ln,(rn.height/2-an)*ln,-sn]},_Pt=()=>X9("sf-ship",()=>{let rn=Gd("#E3EAF3"),nn=Gd("#8A97A8"),an=Gd("#00C8FF"),sn=Gd("#55606F"),ln=Gd("#0B3A5A"),un=q6e([{z:-0.62,bottom:-0.1,top:0.12,width:0.15,square:3},{z:-0.42,bottom:-0.14,top:0.2,width:0.22,square:3.2},{z:-0.05,bottom:-0.15,top:0.24,width:0.24,square:3},{z:0.22,bottom:-0.12,top:0.25,width:0.19,square:2.6},{z:0.46,bottom:-0.08,top:0.15,width:0.11,square:2.4},{z:0.64,bottom:-0.03,top:0.05,width:0.04,square:2.2},{z:0.73,bottom:-0.004,top:0.004,width:0.004,square:2}],{around:36,smoothness:4,color:([,vn,Tn],Rn)=>{let An=xE(nn,rn,kd(-0.5,0.4,Rn[1]));if(An=xE(An,an,kd(0.03,0,Math.abs(Tn-0.02)-0.035)*kd(0.3,0.7,Rn[1])),Tn>0.6)An=xE(An,an,0.5);return[...CT(An,0.9+0.1*kd(-0.1,0.15,vn)),1]}}),dn=z6e([0.1,0.09,0.2],[0.07,0.16,0.32,1],24),pn=z6e([0.025,0.012,0.06],[0.8,0.92,1,1],12),mn=(vn)=>[{z:vn*0.15,bottom:-0.06,top:0.06,width:0.32,square:2.4},{z:vn*0.55,bottom:-0.04,top:0.04,width:0.21,square:2.4},{z:vn*0.95,bottom:-0.025,top:0.025,width:0.11,square:2.2}].sort((An,Mn)=>An.z-Mn.z),fn=(vn)=>({geometry:q6e(mn(vn),{around:20,smoothness:3,color:[...rn,1]}),rotation:Ml.y(Math.PI/2),position:[0,0,-0.08]}),hn=(vn)=>z9([[vn*0.17,0.015,0.2],[vn*0.95,0.01,-0.02]],{radius:0.022,sides:8,color:[...ln,1]}),bn=(vn)=>z9([[vn*0.95,0,-0.18],[vn*0.95,0,0.24]],{radius:(Tn)=>0.035-Tn*0.012,sides:10,color:[...sn,1]}),yn=(vn)=>z9([[vn*0.3,-0.02,0.08],[vn*0.3,-0.02,-0.56]],{radius:(Tn)=>0.09+0.025*Tn,sides:18,color:[...sn,1]}),En=(vn)=>({geometry:K9([[0.08,0.02],[0.125,-0.02],[0.13,-0.07],[0.095,-0.07]],{segments:18,color:[...CT(sn,0.7),1]}),position:[vn*0.3,-0.02,-0.56],rotation:Ml.x(Math.PI/2)}),Sn=(vn)=>({geometry:EPt(new SPt().moveTo(0,0).lineTo(0.2,0).lineTo(0.05,-0.18).lineTo(-0.04,-0.18).close(),{depth:0.025}),position:[vn*0.12,0.17,-0.5],rotation:Ml.multiply(Ml.z(vn*0.35),Ml.y(Math.PI/2)),color:[...ln,1]}),_n=q9([{geometry:un},{geometry:dn,position:[0,0.21,0.2]},{geometry:pn,position:[-0.035,0.29,0.26]},fn(1),fn(-1),{geometry:hn(1)},{geometry:hn(-1)},{geometry:bn(1)},{geometry:bn(-1)},{geometry:yn(1)},{geometry:yn(-1)},En(1),En(-1),Sn(1),Sn(-1)]);return wn(q9([{geometry:_n,rotation:Ml.multiply(Ml.y(Math.PI),Ml.x(-Math.PI/2))}]),{center:!1,shine:0.65})}),vPt,TPt,X6e,xPt,RPt,APt,j6e=(rn,nn)=>Ml.multiply(RPt,Ml.y(rn,nn),nn),MPt=4,K6e,CPt=(rn)=>X9(`sf-rock-${rn}`,()=>{let nn=rn*7.3+1,[an,sn]=K6e[rn%K6e.length],ln=Gd(an),cn=Gd(sn),un=Ds(40+rn),dn=Array.from({length:6},()=>({u:un(),v:0.2+un()*0.6,r:0.06+un()*0.08})),pn=(bn)=>[Math.cos(bn*Math.PI*2),Math.sin(bn*Math.PI*2)],mn=(bn,yn)=>{let En=0;for(let Sn of dn){let _n=Math.min(Math.abs(bn-Sn.u),1-Math.abs(bn-Sn.u))*Math.sin(yn*Math.PI)*2,vn=Math.hypot(_n,yn-Sn.v)/Sn.r;if(vn<1)En-=0.07*(1-vn*vn);else if(vn<1.35)En+=0.025*(1-(vn-1)/0.35)}return En},fn=(bn,yn)=>{let[En,Sn]=pn(bn);return(Oa(En*1.4+nn,Sn*1.4+yn*2.6+nn)*0.22+Oa(En*3.5+nn,Sn*3.5+yn*6)*0.08+Oa(En*9,Sn*9+yn*14+nn)*0.025-0.14+mn(bn,yn))*Math.sin(yn*Math.PI)},hn=Array.from({length:19},(bn,yn)=>{let En=-Math.PI/2+yn/18*Math.PI;return[Math.max(0.001,Math.cos(En)*0.5),Math.sin(En)*0.5]});return wn(K9(hn,{segments:32,displace:fn,color:({u:bn,v:yn,position:En})=>{let Sn=kd(0,-0.06,mn(bn,yn)),_n=kd(0.005,0.02,mn(bn,yn)),vn=kd(0.55,0.75,Oa(En[0]*6+nn,En[1]*6+En[2]*4)),Tn=0.8+0.32*Oa(En[0]*24+En[2]*9,En[1]*24+nn),Rn=xE(xE(ln,cn,Math.max(Sn*0.85,vn*0.45)),CT(ln,1.25),_n*0.6);return[...CT(Rn,Tn),1]}}),{shine:0.1})}),MT=(rn,nn)=>[nn*Y9*(rn.width/rn.height),nn*Y9],wPt=()=>X9("sf-moon",()=>wn(q9([{geometry:K9(Array.from({length:17},(rn,nn)=>{let an=-Math.PI/2+nn/16*Math.PI;return[Math.max(0.001,Math.cos(an)*0.5),Math.sin(an)*0.5]}),{segments:40,color:({position:rn})=>{let nn=kd(0.55,0.7,Oa(rn[0]*3+4,rn[1]*3+rn[2]*2)),an=kd(0.7,0.8,Oa(rn[0]*9+1,rn[1]*9-rn[2]*4));return CT(xE(Gd("#E8E4D8"),Gd("#8A8070"),nn*0.7+an*0.5),0.9+0.15*Oa(rn[0]*30,rn[1]*30))}})}]),{shine:0.05})),oNe=5;var lNe=e(()=>{d();na();Hn();bI();Y6e=new Map,Y9=Math.tan(AT/2),vPt=[2.2,0.35,0.3,1],TPt=[0.35,2.2,0.6,1],X6e=[2.2,1.25,0.45,0.9],xPt=[1.9,2.2,2.6,0.95],RPt=Ml.x(-0.32),APt=[0,0,0,1];K6e=[["#7A5230","#2A1508"],["#6E6A66","#25221F"],["#3E3B40","#121014"],["#9FB3C4","#3A4A5A"]]});import{World as LPt}from"@nayan-ui/engine";function uNe(rn){let nn=new LPt(IPt),sn={world:nn,camera:{eye:[0,0,0],target:[0,0,-1],fov:AT},layout:null,space:null,day:rn.mode!=="dark",ship:null,phase:"ready",get score(){return nn.scoreboard.score},get lives(){return nn.scoreboard.lives},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,shipX:0,bank:0,lastShipX:0,dragging:!1,dragFrom:0,dragStart:0,pairs:[],nextSpawn:0,lastHit:-1/0,clock:0,seed:1,onPhase:(ln)=>{},onScore:(ln)=>{},onLives:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(Yh,qh),nn.scoreboard.handlers={onScore:(ln)=>sn.onScore(ln),onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&bNe(sn,!0)},sn}function dNe(rn,nn){let an=nn.mode!=="dark";if(an===rn.day)return;if(rn.day=an,rn.layout&&rn.space)nNe(rn.world,rn.layout,rn.space,an)}function pNe(rn,nn){let an=rn.world;if(rn.space)iNe(an,rn.space.all);if(rn.ship)an.despawn(rn.ship.root);for(let ln of rn.pairs)if(ln.belts)an.despawn(ln.belts.root);let sn=rn.layout;if(rn.layout=nn,rn.shipX=sn?rn.shipX/sn.width*nn.width:nn.width/2,rn.lastShipX=rn.shipX,rn.space=aNe(an,nn,rn.clock,rn.day),rn.ship=$6e(an,nn,rn.shipX),rn.dragging)RE(an,nn,rn.ship,!0);for(let ln of rn.pairs)ln.belts=$9(an,nn,ln.top,ln.gapLeft,ln.seed)}function mNe(rn){let nn=rn.layout;if(rn.phase!=="ready"||!nn)return;if(rn.phase="playing",rn.world.scoreboard.startCountdown(qh),rn.nextSpawn=rn.clock,rn.ship)Z6e(rn.world,nn,rn.ship);rn.onPhase("playing")}function fNe(rn){if(gPt(rn),rn.world.scoreboard.reset(Yh,qh),rn.won=!1,rn.lastHit=-1/0,rn.phase="ready",Z9(rn),rn.ship)j9(rn.world,rn.ship);rn.onScore(0),rn.onLives(Yh),rn.onTime(qh),rn.onPhase("ready")}function hNe(rn){rn.world.dispose()}function gPt(rn){for(let nn of rn.pairs)if(nn.belts)rn.world.despawn(nn.belts.root);rn.pairs=[]}function Z9(rn){if(!rn.layout)return;rn.shipX=rn.layout.width/2,rn.lastShipX=rn.shipX}function bNe(rn,nn){if(rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.dragging&&rn.layout&&rn.ship)RE(rn.world,rn.layout,rn.ship,!1);rn.dragging=!1,Z9(rn),rn.onPhase("over")}function yNe(rn,nn){if(rn.world.isDisposed)return;let an=Math.min(nn,PPt);rn.clock+=an;let sn=rn.layout;if(sn&&rn.phase==="playing")DPt(rn,sn,Math.min(an,B6e));if(sn&&rn.space)sNe(rn.world,rn.space,rn.clock);if(sn&&rn.ship){let ln=an>0?(rn.shipX-rn.lastShipX)/an:0;rn.lastShipX=rn.shipX;let cn=Math.max(-cNe,Math.min(cNe,ln*OPt));rn.bank+=(cn-rn.bank)*Math.min(1,an*10),Q6e(rn.world,sn,rn.ship,rn.shipX,rn.bank)}rn.world.update(an)}function DPt(rn,nn,an){if(rn.clock>=rn.nextSpawn)NPt(rn,nn),rn.nextSpawn+=nn.spawnInterval;let sn=nn.fallSpeed*an,ln=0;for(let hn of rn.pairs)if(hn.top+=sn,hn.top<=nn.height){if(hn.belts)eNe(rn.world,nn,hn.belts,hn.top);rn.pairs[ln++]=hn}else if(hn.belts)rn.world.despawn(hn.belts.root);rn.pairs.length=ln;let cn=nn.shipSize/2,un=rn.shipX-cn,dn=rn.shipX+cn,pn=nn.shipY-cn,mn=nn.shipY+cn;if(rn.pairs.some((hn)=>{if(mn<=hn.top||pn>=hn.top+nn.beltHeight)return!1;return un<hn.gapLeft||dn>hn.gapLeft+nn.gap})&&rn.clock-rn.lastHit>RT){GPt(rn,nn);return}for(let hn of rn.pairs)if(!hn.passed&&hn.top>mn)hn.passed=!0,rn.world.scoreboard.add(k6e),rn.onEvent("dodge")}function NPt(rn,nn){let an=rn.seed++,sn={top:nn.spawnY,gapLeft:V6e(nn),passed:!1,seed:an,belts:null};sn.belts=$9(rn.world,nn,sn.top,sn.gapLeft,an),rn.pairs.push(sn)}function GPt(rn,nn){if(rn.lastHit=rn.clock,tNe(rn.world,nn,rn.shipX,nn.shipY),rn.camera.shake=nn.shipSize*nn.k*0.5,rn.onLives(rn.world.scoreboard.addLives(-1)),rn.onEvent("hit"),Z9(rn),rn.dragging)rn.dragFrom=rn.shipX,rn.dragStart=NaN;if(rn.lives<=0){if(rn.ship)j9(rn.world,rn.ship);bNe(rn,!1)}else if(rn.ship)J6e(rn.world,rn.ship)}function ENe(rn,{phase:nn,x:an}){let sn=rn.layout;if(!sn)return;if(nn==="start"){if(rn.phase!=="playing")return;if(rn.dragging=!0,rn.dragFrom=rn.shipX,rn.dragStart=an,rn.ship)RE(rn.world,sn,rn.ship,!0);rn.onEvent("grab");return}if(nn==="move"){if(!rn.dragging||rn.phase!=="playing")return;if(Number.isNaN(rn.dragStart))rn.dragStart=an;let ln=sn.shipSize/2;rn.shipX=Math.max(ln,Math.min(sn.width-ln,rn.dragFrom+an-rn.dragStart));return}kPt(rn)}function kPt(rn){if(!rn.dragging)return;if(rn.dragging=!1,rn.layout&&rn.ship)RE(rn.world,rn.layout,rn.ship,!1);rn.onEvent("release")}var IPt=1000,OPt=0.0016,cNe=0.65,PPt=0.25;var SNe=e(()=>{bI();lNe()});var Pr={};n(Pr,{SpaceFighter:()=>co});import{jsx as HPt}from"react/jsx-runtime";var Pm,BPt,FPt,_Ne,co;var Le=e(()=>{Ta();l();a();_a();o();Hn();xa();va();bI();SNe();Pm=t.SPACE_FIGHTER,BPt=ws(F6e),FPt=ws(H6e),_Ne={grab:{sound:Pm.GRAB,haptic:"medium"},release:{sound:Pm.RELEASE,haptic:"light"},dodge:{sound:Pm.DODGE,haptic:"light"},hit:{sound:Pm.COLLISION,haptic:"heavy"}},co=Vn("space-fighter",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(Yh),[cn,un]=gn(qh),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"space-fighter",create:uNe,setTheme:dNe,start:mNe,reset:fNe,dispose:hNe,tick:yNe,resize:(hn,bn,yn,En)=>pNe(hn,U6e(bn,yn,En)),drag:ENe,sounds:Pm,onStart:(hn)=>hn(Pm.START,"success"),onOver:(hn,bn)=>hn(bn==="win"?Pm.WIN:Pm.GAME_OVER,bn==="win"?"success":"error"),wire:(hn,bn)=>{hn.onScore=an,hn.onLives=ln,hn.onTime=un,hn.onEvent=(yn)=>bn(_Ne[yn].sound,_Ne[yn].haptic)}});return HPt(Un,{...mn,light:W6e,background:dn.mode==="dark"?BPt:FPt,columns:[Qn(nn),ys(sn,Yh),ta(cn,dn,0)],subtext:"Navigate through space!",gameOver:fn({title:"GAME OVER",message:pn==="win"?"You survived the asteroid field!":"Your ship was destroyed!",scoreLabel:"Final Score",score:nn,buttonText:"Fly Again!"})})})});function wNe(rn,nn,an){let sn=la(an)+WPt,ln=Math.max(260,nn-sn-UPt),un=($n(rn)-Q9*2-LT*6-IT*4)/9,dn=(ln/Math.cos(vNe)-Q9*2-LT*6-IT*4-xNe)/10.25,pn=Math.max(18,Math.floor(Math.min(un,dn))),mn=VPt(pn),fn=mn+Q9*2,hn=Math.floor((fn-TNe*8)/9),bn=Math.round(Math.min(pn*1.25,hn*1.3)),yn=fn+xNe+bn;return{width:rn,height:nn,tilt:vNe,centerY:sn+ln/2,cell:pn,grid:mn,board:fn,boardY:yn/2-fn/2,key:hn,keyH:bn,keyPitch:hn+TNe,keysY:-yn/2+bn/2}}function _I(rn,nn,an){return[-rn.grid/2+yI(rn,an)+rn.cell/2,rn.boardY+rn.grid/2-yI(rn,nn)-rn.cell/2]}function LNe(rn,nn,an){let sn=nn+rn.grid/2,ln=rn.boardY+rn.grid/2-an;if(sn<0||ln<0||sn>rn.grid||ln>rn.grid)return null;let cn=(un)=>{let dn=0;for(let pn=1;pn<9;pn++)if(Math.abs(yI(rn,pn)+rn.cell/2-un)<Math.abs(yI(rn,dn)+rn.cell/2-un))dn=pn;return dn};return[cn(ln),cn(sn)]}function INe(rn,nn,an){if(Math.abs(an-rn.keysY)>rn.keyH/2+4)return 0;let sn=Math.round(nn/rn.keyPitch)+5;return sn>=1&&sn<=9&&Math.abs(nn-(sn-5)*rn.keyPitch)<=rn.keyPitch/2?sn:0}var _0=900,RNe=60,ANe=0.028,MNe=12,Qs,vNe=0,CNe,EI=0.12,SI=0.3,WPt=82,UPt=120,LT=1.5,IT=3.5,Q9=8,TNe=4,xNe=16,VPt=(rn)=>rn*9+LT*6+IT*4,yI=(rn,nn)=>IT+nn*(rn.cell+LT)+Math.floor(nn/3)*(IT-LT),J9=(rn,nn)=>[(nn-5)*rn.keyPitch,rn.keysY];var vI=e(()=>{o();Hn();Qs={CELL:"#ffffff",GIVEN:"#E8EAF6",SELECTED:"#BBDEFB",SAME_NUMBER:"#E3F2FD",PEER:"#F3E5F5",ERROR:"#FFCDD2",TEXT_GIVEN:"#1a237e",TEXT_PLACED:"#1565C0",TEXT_ERROR:"#D32F2F",LINES:"#1a237e",FRAME:"#5c4033",WELL:"#3a2518",KEY:"#e8ddd0",KEY_TEXT:"#3e2723",KEY_REMAINING:"#8d6e63",KEY_DISABLED:"#bdb5ad",KEY_DISABLED_TEXT:"#9e9e9e"},CNe=Zn([0,0,1],1)});function tH(rn){let nn=[...rn];for(let an=nn.length-1;an>0;an--){let sn=Math.floor(Math.random()*(an+1));[nn[an],nn[sn]]=[nn[sn],nn[an]]}return nn}function zPt(rn,nn,an,sn,ln){for(let cn=ln;cn<81;cn++)if(rn[cn]===0&&(nn[cn/9|0]|an[cn%9]|sn[eH[cn]])===1022)return!0;return!1}function DNe(rn,nn,an,sn,ln){let cn=ln;while(cn<81&&rn[cn]!==0)cn++;if(cn===81)return!0;let un=cn/9|0,dn=cn%9,pn=eH[cn];for(let mn of tH(gNe)){let fn=1<<mn;if((nn[un]|an[dn]|sn[pn])&fn)continue;if(rn[cn]=mn,nn[un]|=fn,an[dn]|=fn,sn[pn]|=fn,!zPt(rn,nn,an,sn,cn+1)&&DNe(rn,nn,an,sn,cn+1))return!0;rn[cn]=0,nn[un]&=~fn,an[dn]&=~fn,sn[pn]&=~fn}return!1}function qPt(){let rn=new Uint8Array(81),nn=new Uint16Array(9),an=new Uint16Array(9),sn=new Uint16Array(9);for(let ln=0;ln<9;ln+=3){let cn=tH(gNe),un=0;for(let dn=ln;dn<ln+3;dn++)for(let pn=ln;pn<ln+3;pn++){let mn=cn[un++],fn=1<<mn;rn[dn*9+pn]=mn,nn[dn]|=fn,an[pn]|=fn,sn[eH[dn*9+pn]]|=fn}}return DNe(rn,nn,an,sn,0),Array.from({length:9},(ln,cn)=>Array.from(rn.subarray(cn*9,cn*9+9)))}function oH(){let rn=qPt(),nn=rn.map((sn)=>sn.map((ln)=>({value:ln,given:!0,error:!1}))),an=tH(Array.from({length:81},(sn,ln)=>({row:Math.floor(ln/9),col:ln%9})));for(let sn of an.slice(0,45))nn[sn.row][sn.col].value=0,nn[sn.row][sn.col].given=!1;return{grid:nn,solution:rn,toFill:45}}function NNe(rn,nn,an){let sn=(hn,bn)=>rn.grid[hn][bn].value===rn.solution[hn][bn],ln=new Set,cn=0,un=!0,dn=!0;for(let hn=0;hn<9;hn++){if(!sn(nn,hn))un=!1;if(!sn(hn,an))dn=!1}if(un){cn+=500;for(let hn=0;hn<9;hn++)ln.add(nn*9+hn)}if(dn){cn+=500;for(let hn=0;hn<9;hn++)ln.add(hn*9+an)}let pn=Math.floor(nn/3)*3,mn=Math.floor(an/3)*3,fn=!0;for(let hn=pn;hn<pn+3;hn++)for(let bn=mn;bn<mn+3;bn++)if(!sn(hn,bn))fn=!1;if(fn){cn+=500;for(let hn=pn;hn<pn+3;hn++)for(let bn=mn;bn<mn+3;bn++)ln.add(hn*9+bn)}return{cells:[...ln],points:cn}}function GNe(rn){let nn=[0,9,9,9,9,9,9,9,9,9];for(let an of rn.grid)for(let sn of an)if(sn.value>0&&!sn.error)nn[sn.value]=Math.max(0,nn[sn.value]-1);return nn}var ONe=200,PNe=5000,gNe,eH;var kNe=e(()=>{gNe=[1,2,3,4,5,6,7,8,9],eH=Array.from({length:81},(rn,nn)=>Math.floor(nn/27)*3+Math.floor(nn%9/3))});import{effects as YPt,extrude as KPt,Path as XPt}from"@nayan-ui/engine";function YNe(rn,nn,an){let sn=an.mode==="classic",ln=[rn.spawn({mesh:rH(nn.board,nn.board,sn?14:8,FNe),position:[0,nn.boardY,-FNe/2],color:xn(sn?Qs.FRAME:an.BOARD.SURFACE),pickable:!1}),rn.spawn({mesh:rH(nn.grid,nn.grid,4,1),position:[0,nn.boardY,0.5],color:xn(sn?Qs.LINES:an.BOARD.GRID_LINE),pickable:!1})];if(sn)ln.push(rn.spawn({mesh:rH(nn.grid+6,nn.grid+6,8,1),position:[0,nn.boardY,0.2],color:xn(Qs.WELL),pickable:!1}));return ln}function KNe(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-HNe,an);Ea(rn,sn,nn,HNe);let ln=nn.cell*EI,cn=[];for(let mn=0;mn<9;mn++)for(let fn=0;fn<9;fn++){let[hn,bn]=_I(nn,mn,fn);cn.push(ai(rn,{position:[hn,bn,v0+ln/2],size:[nn.cell,nn.cell,ln],color:xn(Qs.CELL),gloss:!1,shadow:!1}))}let un=[],dn=nn.key*SI;for(let mn=1;mn<=9;mn++){let[fn,hn]=J9(nn,mn),bn=rn.spawn({mesh:"none",position:[fn,hn,v0],pickable:!1}),yn=ai(rn,{parent:bn,position:[0,0,dn/2],size:[nn.key,nn.keyH,dn],color:xn(Qs.KEY),gloss:!1,shadow:!1}),En=WNe(nn),Sn=rn.spawn({mesh:Qi(String(mn)),parent:bn,position:[0,nn.keyH*0.1,dn+0.6],scale:En,color:xn(Qs.KEY_TEXT),pickable:!1}),_n=En*0.42,vn=rn.spawn({mesh:Qi("9"),parent:bn,position:[0,-nn.keyH*0.32,dn+0.6],scale:_n,color:xn(Qs.KEY_REMAINING),pickable:!1});un.push({root:bn,block:yn,digit:Sn,count:vn})}return{backdrop:sn,board:YNe(rn,nn,an),cells:cn,digits:Array(81).fill(null),shown:Array(81).fill(""),selected:-1,keys:un,keyCounts:Array(9).fill(-1)}}function XNe(rn,nn){for(let an of[nn.backdrop,...nn.board,...nn.cells,...nn.digits,...nn.keys.map((sn)=>sn.root)])if(an!=null)rn.despawn(an)}function jNe(rn,nn,an,sn){aa(rn,an.backdrop,sn);for(let ln of an.board)rn.despawn(ln);an.board=YNe(rn,nn,sn)}function $Ne(rn,nn,an,sn,ln,cn=-1){let un=nn.cell*UNe;an.selected=-1;for(let dn=0;dn<9;dn++)for(let pn=0;pn<9;pn++){let mn=dn*9+pn,fn=sn[dn][pn],hn=ln(dn,pn),[bn,yn]=_I(nn,dn,pn),En=VNe(nn,hn==="selected"),Sn=v0+En+0.6;if(hn==="selected")an.selected=mn;rn.stopAnimation(an.cells[mn]),rn.set(an.cells[mn],{color:$Pt(fn,hn),position:[bn,yn,v0+En/2],scale:[nn.cell,nn.cell,En]});let _n=fn.value?`${fn.value}:${fn.given}:${fn.error}`:"";if(_n!==an.shown[mn]){let vn=an.digits[mn];if(vn!=null)rn.despawn(vn);if(an.digits[mn]=null,fn.value){let Tn=rn.spawn({mesh:Qi(String(fn.value)),position:[bn,yn,Sn],scale:un,color:ZPt(fn),pickable:!1});if(mn===cn)rn.set(Tn,{scale:un*0.2,position:[bn,yn,Sn+nn.cell*0.5]}),rn.animate(Tn,{scale:un,position:[bn,yn,Sn]},{duration:0.22,easing:"back"});an.digits[mn]=Tn}an.shown[mn]=_n}else if(an.digits[mn]!=null)rn.stopAnimation(an.digits[mn]),rn.set(an.digits[mn],{position:[bn,yn,Sn],scale:un})}}function ZNe(rn,nn,an,sn){let ln=WNe(nn)*0.42;an.keys.forEach((cn,un)=>{let dn=sn[un+1];if(an.keyCounts[un]===dn)return;an.keyCounts[un]=dn,rn.set(cn.block,{color:xn(dn>0?Qs.KEY:Qs.KEY_DISABLED)}),rn.set(cn.digit,{color:xn(dn>0?Qs.KEY_TEXT:Qs.KEY_DISABLED_TEXT)}),rn.set(cn.count,{mesh:Qi(String(dn)),scale:dn>0?ln:0.001})})}function TI(rn,nn,an,sn,ln){let cn=an.keys[sn-1];if(!cn)return;let[un,dn]=J9(nn,sn);rn.animate(cn.root,{position:[un,dn,v0-(ln?nn.key*SI*0.55:0)]},{duration:ln?0.06:0.12,easing:ln?"easeOut":"back"})}function QNe(rn,nn,an,sn){rn.animate(an.cells[sn],{shake:nn.cell*0.12},{duration:0.28});let ln=an.digits[sn];if(ln!=null)rn.animate(ln,{shake:nn.cell*0.12},{duration:0.28})}function nH(rn,nn,an,sn,ln){let cn=Math.floor(ln/9),un=ln%9;for(let dn of sn){let pn=VNe(nn,dn===an.selected),mn=Math.floor(dn/9),fn=dn%9,[hn,bn]=_I(nn,mn,fn),yn=Math.max(Math.abs(mn-cn),Math.abs(fn-un))*ANe;rn.animate(an.cells[dn],[{position:[hn,bn,v0+pn/2+nn.cell*0.3],at:0.35},{position:[hn,bn,v0+pn/2]}],{duration:0.4,delay:yn,easing:"easeOut"});let En=an.digits[dn];if(En!=null){let Sn=nn.cell*UNe,_n=v0+pn+0.6;rn.animate(En,[{position:[hn,bn,_n+nn.cell*0.3],scale:Sn*1.2,at:0.35},{position:[hn,bn,_n],scale:Sn}],{duration:0.4,delay:yn,easing:"easeOut"})}}}function JNe(rn,nn){YPt.confetti(rn,{position:[0,nn.boardY,nn.cell*2],count:70,size:nn.cell*0.2,speed:nn.board*1.3,lifetime:1.4,gravity:-nn.board*2.2,colors:["#FFD700","#4CAF50","#2196F3","#E74C3C"].map((an)=>xn(an))})}var BNe,jPt=(rn,nn)=>{let an=BNe.get(rn);if(!an)an=Bn("sudoku/SudokuScene:"+rn,nn),BNe.set(rn,an);return an},FNe=10,HNe=30,v0=1,rH=(rn,nn,an,sn)=>jPt(`sd-panel:${rn}:${nn}:${an}:${sn}`,()=>wn(KPt(new XPt().addRoundedRect(-rn/2,-nn/2,rn,nn,an),{depth:sn}),{shine:0})),$Pt=(rn,nn)=>xn(nn==="selected"?Qs.SELECTED:rn.error?Qs.ERROR:nn==="same"?Qs.SAME_NUMBER:nn==="peer"?Qs.PEER:rn.given?Qs.GIVEN:Qs.CELL),ZPt=(rn)=>xn(rn.error?Qs.TEXT_ERROR:rn.given?Qs.TEXT_GIVEN:Qs.TEXT_PLACED),WNe=(rn)=>Math.min(rn.key*0.5,rn.keyH*0.4),UNe=0.5,VNe=(rn,nn)=>rn.cell*EI*(nn?1.8:1),zNe=(rn)=>v0+rn.cell*EI,qNe=(rn)=>v0+rn.key*SI;var eGe=e(()=>{u();l0();r0();na();ba();Hn();vI();BNe=new Map});import{World as QPt}from"@nayan-ui/engine";function oGe(rn){let nn=new QPt(JPt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",puzzle:oH(),filled:0,selRow:-1,selCol:-1,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,press:null,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,_0),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&lGe(sn,!1)},sn}function egt(rn){let{selRow:nn,selCol:an}=rn,sn=nn>=0&&an>=0?rn.puzzle.grid[nn][an].value:0;return(ln,cn)=>{if(ln===nn&&cn===an)return"selected";if(sn>0&&rn.puzzle.grid[ln][cn].value===sn)return"same";if(nn>=0&&(ln===nn||cn===an||Math.floor(ln/3)===Math.floor(nn/3)&&Math.floor(cn/3)===Math.floor(an/3)))return"peer";return"none"}}function OT(rn,nn=-1){let{layout:an,scene:sn}=rn;if(!an||!sn)return;$Ne(rn.world,an,sn,rn.puzzle.grid,egt(rn),nn),ZNe(rn.world,an,sn,GNe(rn.puzzle))}function aH(rn,nn){if(rn.scene)XNe(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=KNe(rn.world,nn,rn.theme),OT(rn)}function rGe(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)jNe(rn.world,rn.layout,rn.scene,nn)}function nGe(rn){if(rn.phase!=="ready")return;rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(_0),rn.filled=0,rn.won=!1,rn.selRow=rn.selCol=-1,rn.phase="playing",OT(rn),rn.onScore(0),rn.onTime(_0),rn.onPhase("playing")}function aGe(rn){if(rn.puzzle=oH(),rn.filled=0,rn.selRow=rn.selCol=-1,rn.world.scoreboard.reset(0,_0),rn.won=!1,rn.press=null,rn.phase="ready",rn.layout)aH(rn,rn.layout);rn.onScore(0),rn.onTime(_0),rn.onPhase("ready")}function sGe(rn){rn.world.dispose()}function iGe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function lGe(rn,nn){if(rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.press?.key&&rn.layout&&rn.scene)TI(rn.world,rn.layout,rn.scene,rn.press.key,!1);rn.press=null,rn.onPhase("over"),rn.onEvent(nn?"win":"lose")}function tgt(rn,nn,an){if(rn.phase!=="playing")return;rn.selRow=nn,rn.selCol=an,OT(rn)}function ogt(rn,nn){if(rn.phase!=="playing"||rn.selRow<0||rn.selCol<0)return;let{selRow:an,selCol:sn}=rn,ln=rn.puzzle.grid[an][sn],cn=rn.puzzle.solution[an][sn];if(ln.given||ln.value===cn&&!ln.error)return;let un=nn===cn;ln.value=nn,ln.error=!un;let{layout:dn,scene:pn}=rn,mn=an*9+sn;if(!un){if(OT(rn,mn),dn&&pn)QNe(rn.world,dn,pn,mn);rn.onEvent("wrong");return}rn.filled+=1,rn.world.scoreboard.add(ONe);let fn=NNe(rn.puzzle,an,sn);if(rn.world.scoreboard.add(fn.points),OT(rn,mn),fn.cells.length&&dn&&pn)nH(rn.world,dn,pn,fn.cells,mn);if(rn.onEvent("place"),rn.filled>=rn.puzzle.toFill){if(dn&&pn)nH(rn.world,dn,pn,Array.from({length:81},(hn,bn)=>bn),mn),JNe(rn.world,dn);rn.world.scoreboard.add(PNe),rn.world.scoreboard.set(Ya(_0-rn.timeLeft,_0,rn.score)),rn.onScore(rn.score),lGe(rn,!0);return}rn.onScore(rn.score)}function tGe(rn,nn,an){let sn=rn.layout;if(!sn)return null;let[ln,cn]=Wa(sn,nn,an,qNe(sn)),un=INe(sn,ln,cn);if(un)return{key:un};let[dn,pn]=Wa(sn,nn,an,zNe(sn)),mn=LNe(sn,dn,pn);return mn?{cell:mn}:null}function cGe(rn,{phase:nn,x:an,y:sn}){let{layout:ln,scene:cn}=rn;if(nn==="start"){let mn=rn.phase==="playing"?tGe(rn,an,sn):null,fn=mn&&"key"in mn?mn.key:0;if(rn.press=mn?{x:an,y:sn,key:fn}:null,fn&&ln&&cn)TI(rn.world,ln,cn,fn,!0);return}let un=rn.press;if(!un)return;let dn=Math.hypot(an-un.x,sn-un.y)>MNe;if(nn!=="end"&&!dn)return;if(rn.press=null,un.key&&ln&&cn)TI(rn.world,ln,cn,un.key,!1);if(nn!=="end"||dn)return;if(un.key)return ogt(rn,un.key);let pn=tGe(rn,an,sn);if(pn&&"cell"in pn)tgt(rn,pn.cell[0],pn.cell[1])}var JPt=400;var uGe=e(()=>{ci();ba();vI();kNe();eGe()});var gr={};n(gr,{Sudoku:()=>uo});import{jsx as rgt}from"react/jsx-runtime";var AE,dGe,uo;var Ie=e(()=>{Ta();l();a();_a();o();xa();va();vI();uGe();AE=t.SUDOKU,dGe={place:{sound:AE.PLACE,haptic:"light"},wrong:{sound:AE.ERROR,haptic:"error"},win:{sound:AE.WIN,haptic:"success"},lose:{sound:AE.GAME_OVER,haptic:"error"}},uo=Vn("sudoku",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(_0),{theme:cn,status:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"sudoku",create:oGe,start:nGe,reset:aGe,dispose:sGe,tick:iGe,setTheme:rGe,resize:(mn,fn,hn,bn)=>{let yn=wNe(fn,hn,bn);return aH(mn,yn),yn.board},drag:cGe,sounds:AE,onStart:(mn)=>mn(AE.START,"success"),onStop:(mn)=>mn(null,"medium"),wire:(mn,fn)=>{mn.onScore=an,mn.onTime=ln,mn.onEvent=(hn)=>fn(dGe[hn].sound,dGe[hn].haptic)}});return rgt(Un,{...dn,light:CNe,columns:[Qn(nn),ta(sn,cn,RNe)],subtext:"Complete the number grid!",gameOver:pn({title:un==="win"?"SOLVED!":"GAME OVER",message:un==="win"?"Puzzle completed!":"Time ran out!",scoreLabel:"Final Score",score:nn,buttonText:"Solve Again!"})})})});function xGe(rn,nn){let an=rn>agt,sn=$n(rn),ln=an?200:160;return{width:rn,height:nn,centerY:nn/2,tilt:ngt,left:(rn-sn)/2,gameWidth:sn,blockWidth:ln,blockHeight:an?28:22,blockDepth:ln*0.36,speed:an?4.5:3.5,baseY:nn-(an?180:160)}}var gm=120,pGe=500,mGe=250,fGe=3,hGe=0.4,sH,bGe=16.67,yGe=2,EGe=0.2,xI=0.45,SGe=0.3,_Ge=0.2,vGe=0.35,ngt=-0.24,TGe,agt=640;var RI=e(()=>{Hn();sH=["#FF4757","#FFA502","#2ED573","#1E90FF","#FF6BD6","#A55EEA","#00D2D3","#FF6348"],TGe=Zn([-0.45,0.6,1],0.5)});import{effects as RGe,extrude as sgt,merge as igt,Path as lgt,recolor as cgt,shapeGeometry as ugt}from"@nayan-ui/engine";function PT(rn,nn,an){return[nn+rn.blockWidth/2-rn.width/2,(rn.height/2-(an+rn.blockHeight/2))/Math.cos(rn.tilt),0]}function CGe(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-MGe,an),[ln,cn]=PT(nn,nn.left+(nn.gameWidth-nn.blockWidth)/2,nn.baseY),un=nn.height,dn=rn.spawn({mesh:"roundedBox",position:[ln,cn-nn.blockHeight/2-un/2,0],scale:[nn.blockWidth*1.35,un,nn.blockDepth*1.3],color:fgt,pickable:!1});return{backdrop:sn,plinth:dn,blocks:[],moving:null}}function wGe(rn,nn){for(let an of[nn.backdrop,nn.plinth,...nn.blocks,...nn.moving!=null?[nn.moving]:[]])rn.despawn(an)}function LGe(rn,nn,an){aa(rn,nn.backdrop,an)}function cH(rn,nn,an,sn,ln){if(an.frameOffset===ln)return;an.frameOffset=ln;let cn=hgt(nn,ln);ya(sn,cn);let[un,dn,pn]=sn.eye,[mn,fn,hn]=sn.target,bn=Math.hypot(un-mn,dn-fn,pn-hn),yn=[(un-mn)/bn,(dn-fn)/bn,(pn-hn)/bn],En=-hn/yn[2],Sn=[mn+yn[0]*En,fn+yn[1]*En,0];sn.target=[Sn[0],Sn[1],Sn[2]],sn.eye=[Sn[0]+yn[0]*iH,Sn[1]+yn[1]*iH,Sn[2]+yn[2]*iH],Ea(rn,an.backdrop,cn,MGe)}function gT(rn,nn,an,sn,ln,cn=!1){let un=lH(ln),dn=rn.spawn({mesh:mgt(nn.blockWidth,Math.round(nn.blockHeight/Math.cos(nn.tilt)*10)/10,nn.blockDepth),position:PT(nn,an,sn),color:cn?[un[0],un[1],un[2],0]:un,pickable:!1});if(cn)rn.animate(dn,{color:un},{duration:_Ge,easing:"easeOut"});return dn}function IGe(rn,nn,an,sn,ln){rn.set(an,{position:PT(nn,sn,ln)})}function OGe(rn,nn,an,sn,ln,cn,un){let dn=lH(cn),pn=un?1.7:1.35;rn.animate(an,[{color:[dn[0]*pn,dn[1]*pn,dn[2]*pn,1],at:0.2},{color:dn}],{duration:0.35}),rn.animate(an,[{scale:[1.04,0.92,1.04],at:0.3},{scale:1}],{duration:0.2});let[mn,fn]=PT(nn,sn,ln),hn=fn-nn.blockHeight/2;for(let bn of[-1,1])RGe.dust(rn,{position:[mn+bn*nn.blockWidth/2,hn,nn.blockDepth*0.3],count:4,size:nn.blockHeight*0.7,speed:nn.blockHeight*2,direction:[bn,0.3,0],spread:0.8,lifetime:0.4,color:[1,1,1,0.55]});if(un)RGe.sparkle(rn,{position:[mn,fn,nn.blockDepth*0.55],count:20,size:nn.blockHeight*0.3,speed:nn.blockWidth*1.4,lifetime:0.5,colors:[xn("#FFD700"),xn("#FFF59D"),[1,1,1,1]]})}function PGe(rn,nn,an,sn,ln,cn,un){let[dn,pn]=PT(nn,sn,ln),[mn,fn,hn]=lH(un),bn=cn>=0?1:-1;rn.animate(an,{position:[dn+bn*nn.blockWidth*0.5,pn-nn.blockHeight*8,nn.blockDepth*0.3]},{duration:xI,easing:"easeIn"}),rn.animate(an,{turn:[0.6,0,-bn*1.4]},{duration:xI,easing:"easeIn"}),rn.animate(an,{color:[mn,fn,hn,0]},{duration:xI,easing:"easeIn"})}var AGe,dgt=(rn,nn)=>{let an=AGe.get(rn);if(!an)an=Bn("stack-tower/StackTowerScene:"+rn,nn),AGe.set(rn,an);return an},pgt=(rn)=>cgt(rn,({normal:[nn,an,sn]})=>{let ln=an>0.6?1:an<-0.6?0.45:Math.abs(nn)>0.6?0.68:sn>0.6?0.88:0.7;return[ln,ln,ln,1]}),mgt=(rn,nn,an)=>dgt(`st-block-v2:${rn}:${nn}:${an.toFixed(1)}`,()=>{let sn=Math.min(4,nn/4),ln=Math.min(2.5,nn*0.12);return wn(igt([{geometry:pgt(sgt(new lgt().addRoundedRect(-rn/2,-nn/2,rn,nn-ln,sn),{depth:an}))},{geometry:ugt("cube"),position:[0,nn/2-ln/2,0],scale:[rn-ln*2,ln,an-ln*2],color:[1,1,1,1]}]),{shine:0.45})}),MGe=60,iH=250,fgt,hgt=(rn,nn)=>({width:rn.width,height:rn.height,centerY:rn.height/2+nn,tilt:rn.tilt}),lH=(rn)=>xn(sH[rn%sH.length]);var gGe=e(()=>{u();na();ba();Hn();RI();AGe=new Map,fgt=xn("#4A4F66")});import{World as bgt}from"@nayan-ui/engine";function DGe(rn){let nn=new bgt(ygt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",tower:[],moving:null,falling:null,level:0,perfectCount:0,get score(){return nn.scoreboard.score},get timeRemaining(){return nn.scoreboard.shownSeconds},won:!1,offset:0,offsetTarget:0,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},hudFeedback:{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,gm),nn.scoreboard.handlers={onScore:(ln)=>sn.onScore(ln),onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&UGe(sn,!0)},sn}function NGe(rn,nn){if(rn.scene)wGe(rn.world,rn.scene);if(rn.layout=nn,rn.scene=CGe(rn.world,nn,rn.theme),!rn.tower.length)rn.tower=[kGe(nn)];for(let an of rn.tower)an.entity=gT(rn.world,nn,an.x,an.y,an.level);if(rn.moving)rn.moving.entity=gT(rn.world,nn,rn.moving.x,rn.moving.y,rn.moving.level);cH(rn.world,nn,rn.scene,rn.camera,rn.offset)}function GGe(rn,nn){if(rn.theme=nn,rn.scene)LGe(rn.world,rn.scene,nn)}function BGe(rn){if(rn.phase!=="ready"||!rn.layout)return;rn.phase="playing",rn.level=0,rn.perfectCount=0,rn.world.scoreboard.reset(),rn.world.scoreboard.startCountdown(gm),rn.onScore(0),rn.onTime(gm),rn.onPhase("playing"),VGe(rn,rn.tower[rn.tower.length-1])}function FGe(rn){rn.world.cancelTimers();for(let an of rn.tower)if(an.entity!=null)rn.world.despawn(an.entity);if(rn.moving?.entity!=null)rn.world.despawn(rn.moving.entity);if(rn.falling!=null)rn.world.despawn(rn.falling);rn.falling=null,rn.moving=null,rn.level=0,rn.perfectCount=0,rn.world.scoreboard.reset(0,gm),rn.won=!1,rn.offset=0,rn.offsetTarget=0,rn.phase="ready";let nn=rn.layout;if(rn.tower=nn?[kGe(nn)]:[],nn)for(let an of rn.tower)an.entity=gT(rn.world,nn,an.x,an.y,an.level);rn.hudFeedback.message=void 0,rn.onScore(0),rn.onTime(gm),rn.onPhase("ready")}function HGe(rn){rn.world.dispose()}function WGe(rn,nn){if(rn.world.isDisposed)return;let{layout:an,moving:sn}=rn;if(an&&sn&&rn.phase==="playing"){let ln=Math.min(nn*1000/bGe,yGe),cn=an.left+an.gameWidth-an.blockWidth,un=sn.x+sn.direction*an.speed*ln;if(un<=an.left)un=an.left,sn.direction=1;else if(un>=cn)un=cn,sn.direction=-1;if(sn.x=un,sn.entity!=null)IGe(rn.world,an,sn.entity,sn.x,sn.y)}if(an&&rn.scene)rn.offset+=(rn.offsetTarget-rn.offset)*Math.min(1,nn/(vGe/3)),cH(rn.world,an,rn.scene,rn.camera,rn.offset);rn.world.update(nn)}function UGe(rn,nn){rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.onPhase("over")}function VGe(rn,nn){let an=rn.layout;if(!an)return;rn.level+=1;let sn=nn.y-an.blockHeight,ln=rn.level%2===0?1:-1,cn=ln===1?an.left:an.left+an.gameWidth-an.blockWidth;rn.moving={x:cn,y:sn,direction:ln,level:rn.level,entity:gT(rn.world,an,cn,sn,rn.level,!0)};let un=an.height*0.4;if(sn<un)rn.offsetTarget=un-sn}function zGe(rn){let{layout:nn,moving:an}=rn;if(!nn||!an||rn.phase!=="playing")return;let sn=rn.tower[rn.tower.length-1];rn.moving=null;let ln=Math.min(an.x+nn.blockWidth,sn.x+nn.blockWidth)-Math.max(an.x,sn.x);if(ln<nn.blockWidth*hGe){if(an.entity!=null){PGe(rn.world,nn,an.entity,an.x,an.y,an.direction,an.level);let dn=an.entity;rn.falling=dn,uH(rn,0.5,()=>{rn.world.despawn(dn),rn.falling=null})}rn.onEvent("miss"),rn.world.scoreboard.stop(),uH(rn,SGe,()=>UGe(rn,!1));return}let cn=Math.abs(ln-nn.blockWidth)<=fGe;if(cn)rn.perfectCount+=1,rn.hudFeedback.message="PERFECT!",rn.onEvent("perfect");else rn.perfectCount=0,rn.onEvent("place");let un={x:an.x,y:an.y,level:an.level,entity:an.entity};if(rn.tower.push(un),un.entity!=null)OGe(rn.world,nn,un.entity,un.x,un.y,un.level,cn);rn.world.scoreboard.add(pGe+(cn?mGe*rn.perfectCount:0)),uH(rn,EGe,()=>{if(rn.phase==="playing")VGe(rn,un)})}var ygt=600,uH=(rn,nn,an)=>rn.world.after(nn,an),kGe=(rn)=>({x:rn.left+(rn.gameWidth-rn.blockWidth)/2,y:rn.baseY,level:0,entity:null});var qGe=e(()=>{RI();gGe()});var Dr={};n(Dr,{StackTower:()=>po});import{jsx as Egt}from"react/jsx-runtime";var Kh,YGe,po;var Oe=e(()=>{Ta();l();a();_a();o();xa();va();RI();qGe();Kh=t.STACK_TOWER,YGe={place:{sound:Kh.PLACE,haptic:"medium"},perfect:{sound:Kh.PERFECT,haptic:"success"},miss:{sound:Kh.MISS,haptic:"error"}},po=Vn("stack-tower",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(gm),{theme:cn,status:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"stack-tower",create:DGe,start:BGe,reset:FGe,dispose:HGe,tick:WGe,setTheme:GGe,resize:(mn,fn,hn)=>{let bn=xGe(fn,hn);return NGe(mn,bn),bn.gameWidth},drag:(mn,fn)=>{if(fn.phase==="start")zGe(mn)},sounds:Kh,onStart:(mn)=>mn(Kh.START,"success"),onStop:(mn)=>mn(null,"medium"),onOver:(mn,fn)=>mn(fn==="win"?Kh.WIN:Kh.GAME_OVER,fn==="win"?"success":"error"),wire:(mn,fn)=>{mn.onScore=an,mn.onTime=ln,mn.onEvent=(hn)=>fn(YGe[hn].sound,YGe[hn].haptic)}});return Egt(Un,{...dn,light:TGe,columns:[Qn(nn),ta(sn,cn)],subtext:"Stack blocks with care!",gameOver:pn({title:un==="win"?"AMAZING!":"GAME OVER",message:un==="win"?"Perfect tower!":"Great stacking!",scoreLabel:"Final Score",score:nn,buttonText:"Stack Again!"})})})});function o8e(rn,nn,an,sn){let ln=$n(rn),cn=Math.max(3,Math.min(8,Math.round(rn*0.012))),un=Math.max(20,Math.min(sn?96:64,Math.floor((ln-cn*9)/10))),dn=un*AI,pn=un+cn,mn={width:rn,height:nn,centerY:nn/2,tilt:Sgt},fn=la(an)+_gt,hn=nn-vgt,bn=dn*Hc,yn=hn-bn/2-4,En=-((pn*10-cn)/2);return{...mn,card:un,cardH:dn,columns:Array.from({length:10},(Sn,_n)=>En+un/2+_n*pn),pitch:pn,pileTop:dH(mn,fn+6),pileBottom:dH(mn,yn-bn/2-10),rowY:dH(mn,yn),stockRight:-En,foundationX:En+un*Hc/2,dz:un*NT+0.35}}var KGe=600,XGe=100,jGe=10,DT=0.24,pH=0.05,$Ge=0.045,ZGe=1.1,Fc,QGe,Sgt=0.2,JGe,AI=1.4,NT=0.024,e8e=0.15,t8e=0.25,Hc=0.74,_gt=82,vgt=110,dH=(rn,nn)=>(rn.centerY-nn)/Math.cos(rn.tilt);var MI=e(()=>{o();ba();Hn();Fc={FACE:"#FFFFFF",BACK:"#1565C0",BACK_LIGHT:"#3B82D6",BACK_FRAME:"#E3F2FD",RED:"#DC2626",BLACK:"#1F2937",SELECTED:"#FFE082",CLASSIC_SLOT:"rgba(255, 255, 255, 0.35)"},QGe={hearts:Fc.RED,diamonds:Fc.RED,clubs:Fc.BLACK,spades:Fc.BLACK},JGe=Zn([-0.35,0.5,1],0.5)});function Agt(rn){let nn=[],an=Tgt.slice(0,rn),sn=0;for(let ln=0;ln<Math.ceil(8/rn);ln++)for(let cn of an)for(let un of xgt)nn.push({id:`${cn}-${un}-${sn++}`,suit:cn,value:un,faceUp:!1});return nn.slice(0,104)}function Mgt(rn){let nn=[...rn];for(let an=nn.length-1;an>0;an--){let sn=Math.floor(Math.random()*(an+1));[nn[an],nn[sn]]=[nn[sn],nn[an]]}return nn}function mH(){let rn=Mgt(Agt(2)),nn=[],an=0;for(let sn=0;sn<10;sn++){let ln=sn<4?6:5,cn=[];for(let un=0;un<ln;un++)cn.push({...rn[an++],faceUp:un===ln-1});nn.push(cn)}return{tableau:nn,stock:rn.slice(an).map((sn)=>({...sn,faceUp:!1})),completed:[]}}function Cgt(rn){if(!rn.length)return!1;for(let nn=0;nn<rn.length-1;nn++)if(CI(rn[nn].value)!==CI(rn[nn+1].value)+1)return!1;return!0}function r8e(rn,nn,an){let sn=rn.tableau[an],ln=nn[0];if(!sn||!ln)return!1;let cn=sn[sn.length-1];if(!cn)return!0;return cn.faceUp&&CI(ln.value)===CI(cn.value)-1}function fH(rn,nn,an){let sn=rn.tableau[nn],ln=sn?.[an];if(!sn||!ln||!ln.faceUp)return null;let cn=sn.slice(an);return cn.length===1||Cgt(cn)?cn:null}function a8e(rn,nn,an,sn){let ln=rn.tableau[nn],cn=ln.splice(an);n8e(ln),rn.tableau[sn].push(...cn.map((un)=>({...un,faceUp:!0})))}function i8e(rn){for(let nn=0;nn<10&&rn.stock.length>0;nn++){let an=rn.stock.pop();an.faceUp=!0,rn.tableau[nn].push(an)}}function l8e(rn,nn){let an=rn.tableau[nn];if(!an||an.length<13)return null;let sn=an.slice(-13),ln=sn[0].suit;if(!sn.every((cn,un)=>cn.suit===ln&&cn.value===wgt[un]))return null;return an.splice(-13),n8e(an),rn.completed.push(sn),sn}var Tgt,xgt,T0=10,wI=8,Rgt,CI=(rn)=>Rgt[rn],n8e=(rn)=>{let nn=rn[rn.length-1];if(nn&&!nn.faceUp)nn.faceUp=!0},s8e=(rn)=>rn.tableau.some((nn)=>nn.length===0)?"empty-pile":rn.stock.length===0?"no-stock":null,wgt,GT=(rn)=>Math.ceil(rn.stock.length/10);var LI=e(()=>{Tgt=["hearts","diamonds","clubs","spades"],xgt=["A","2","3","4","5","6","7","8","9","10","J","Q","K"],Rgt={A:1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"10":10,J:11,Q:12,K:13};wgt=["K","Q","J","10","9","8","7","6","5","4","3","2","A"]});import{effects as m8e,extrude as kT,merge as Lgt,Path as yH,quat as f8e}from"@nayan-ui/engine";function hH(rn,nn,an,sn,ln,cn,un){let dn=nn.card*(ln?Hc:1),pn=rn.spawn({mesh:kgt(),position:[an,sn,0.1],scale:dn,color:h8e(un),pickable:!1}),mn=cn?rn.spawn({mesh:Bgt(),position:[an,sn,0.05],scale:dn,color:b8e(un),pickable:!1}):null;return{ring:pn,fill:mn}}function Fgt(rn,nn,an){let sn=xn(QGe[an.suit]),ln=NT/2,cn=an.value.split(""),un=cn.length>1?0.27:0.32,dn=un*oh*1.05;cn.forEach((mn,fn)=>{let hn=-0.33+(fn-(cn.length-1)/2)*dn+(cn.length>1?0.04:0);rn.spawn({mesh:o0(mn),parent:nn,position:[hn,bH-0.24,ln],scale:un,color:sn,pickable:!1})});let pn=Ggt(an.suit);rn.spawn({mesh:pn,parent:nn,position:[0.29,bH-0.24,ln+0.02],scale:0.26,color:sn,pickable:!1}),rn.spawn({mesh:pn,parent:nn,position:[0,-0.16,ln+0.02],scale:0.56,color:sn,pickable:!1})}function y8e(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-u8e,an);Ea(rn,ln,nn,u8e);let cn=nn.pileTop-nn.cardH/2,un=nn.card*Hc,dn={backdrop:ln,piles:nn.columns.map((pn)=>hH(rn,nn,pn,cn,!1,!1,an)),stock:hH(rn,nn,nn.stockRight-un/2,nn.rowY,!0,!0,an),foundation:hH(rn,nn,nn.foundationX,nn.rowY,!0,!0,an),cards:new Map};for(let pn of sn){let mn=rn.spawn({mesh:Dgt(),scale:nn.card*Hc,rotation:EH,position:[nn.stockRight-un/2,nn.rowY,1],pickable:!1});Fgt(rn,mn,pn),dn.cards.set(pn.id,{body:mn,spot:{x:nn.stockRight-un/2,y:nn.rowY,z:1,faceUp:!1,small:!0,selected:!1}})}return dn}function E8e(rn,nn){let an=[...nn.piles,nn.stock,nn.foundation];for(let sn of[nn.backdrop,...an.flatMap((ln)=>[ln.ring,ln.fill]),...Array.from(nn.cards.values(),(ln)=>ln.body)])if(sn!=null)rn.despawn(sn)}function S8e(rn,nn,an){aa(rn,nn.backdrop,an);for(let sn of[...nn.piles,nn.stock,nn.foundation])if(rn.set(sn.ring,{color:h8e(an)}),sn.fill!=null)rn.set(sn.fill,{color:b8e(an)})}function ME(rn,nn){let an=nn.map((pn)=>(pn.faceUp?t8e:e8e)*rn.cardH),sn=0;for(let pn=0;pn<nn.length-1;pn++)sn+=an[pn];let ln=rn.pileTop-rn.pileBottom-rn.cardH,cn=sn>ln&&sn>0?Math.max(0,ln)/sn:1,un=[],dn=0;for(let pn=0;pn<nn.length;pn++)un.push(dn),dn+=an[pn]*cn;return un}function BT(rn,nn,an,sn){return[rn.columns[nn],rn.pileTop-an-rn.cardH/2,rn.dz*(sn+1)]}function _8e(rn,nn,an,sn=!1){let ln=new Map;if(sn&&an?.drag){let pn=nn.tableau[an.pile],mn=ME(rn,pn);for(let fn=an.index;fn<pn.length;fn++){let hn=pn[fn];ln.set(hn.id,{x:an.drag.x,y:an.drag.y-(mn[fn]-mn[an.index]),z:d8e+rn.dz*(fn-an.index),faceUp:hn.faceUp,small:!1,selected:!0})}return ln}nn.tableau.forEach((pn,mn)=>{let fn=ME(rn,pn);pn.forEach((hn,bn)=>{let yn=an!==null&&an.pile===mn&&bn>=an.index,[En,Sn,_n]=BT(rn,mn,fn[bn],bn);if(yn&&an.drag){let vn=fn[bn]-fn[an.index];En=an.drag.x,Sn=an.drag.y-vn,_n=d8e+rn.dz*(bn-an.index)}else if(yn)Sn+=2,_n+=ggt;ln.set(hn.id,{x:En,y:Sn,z:_n,faceUp:hn.faceUp,small:!1,selected:yn})})});let cn=rn.card*Hc,un=Math.ceil(nn.stock.length/T0),dn=cn*NT+0.15;return nn.stock.forEach((pn,mn)=>{let fn=Math.floor(mn/T0);ln.set(pn.id,{x:rn.stockRight-cn/2-(un-1-fn)*cn*0.22,y:rn.rowY,z:1+(fn*T0+mn%T0)*dn*0.3,faceUp:!1,small:!0,selected:!1})}),nn.completed.forEach((pn,mn)=>{pn.forEach((fn,hn)=>{ln.set(fn.id,{x:rn.foundationX+mn*cn*0.5,y:rn.rowY,z:1+mn*3+(12-hn)*0.2,faceUp:!0,small:!0,selected:!1})})}),ln}function v8e(rn,nn,an,sn,ln=()=>0,cn=!1){for(let[un,dn]of sn){let pn=an.cards.get(un);if(!pn)continue;let mn=pn.spot;if(mn&&Hgt(mn,dn))continue;pn.spot=dn;let fn=[dn.x,dn.y,dn.z],hn=dn.faceUp?Ogt:EH,bn=p8e(nn,dn),yn=xn(dn.selected?Fc.SELECTED:Fc.FACE);if(cn||!mn){rn.stopAnimation(pn.body),rn.set(pn.body,{position:fn,rotation:hn,scale:bn,color:yn});continue}if(mn.selected!==dn.selected)rn.set(pn.body,{color:yn});let En=Math.hypot(mn.x-dn.x,mn.y-dn.y),Sn=mn.faceUp!==dn.faceUp;if(En<1&&!Sn){rn.animate(pn.body,{position:fn,scale:bn},{duration:0.14,delay:ln(un)});continue}let _n=Math.max(mn.z,dn.z)+(En>1?18+En*0.05:10),vn=[(mn.x+dn.x)/2,(mn.y+dn.y)/2,_n];rn.animate(pn.body,[{position:vn,...Sn?{rotation:Pgt}:{},scale:(bn+p8e(nn,mn))/2,at:0.5},{position:fn,rotation:hn,scale:bn}],{duration:DT+Math.min(0.16,En*0.0006),delay:ln(un),path:"smooth",easing:"easeInOut"})}}function OI(rn,nn,an){for(let sn of an){let ln=nn.cards.get(sn);if(ln)rn.animate(ln.body,{shake:3},{duration:0.25})}}function T8e(rn,nn,an,sn){m8e.sparkle(rn,{position:[an,sn,30],count:26,size:nn.card*0.1,speed:nn.card*3,lifetime:0.7,gravity:-nn.card*3,colors:["#FFD700","#FFF59D","#FF8A80","#FFFFFF"].map((ln)=>xn(ln))})}function x8e(rn,nn){m8e.confetti(rn,{position:[0,(nn.pileTop+nn.pileBottom)/2,60],count:80,size:nn.card*0.14,speed:nn.width*1.2,lifetime:1.4,gravity:-nn.width*2,colors:["#FFD700","#4CAF50","#2196F3","#E74C3C"].map((an)=>xn(an))})}var c8e,II=(rn,nn)=>{let an=c8e.get(rn);if(!an)an=Bn("spider-solitaire/SpiderSolitaireScene:"+rn,nn),c8e.set(rn,an);return an},u8e=30,bH,Igt=0.07,Ogt,EH,Pgt,ggt=7,d8e=40,Xh=(rn,nn=new yH)=>nn.addRoundedRect(-0.5+rn,-bH+rn,1-rn*2,AI-rn*2,Math.max(0.01,Igt-rn)),Dgt=()=>II("ss-card",()=>{let rn=NT,nn=(sn,ln,cn)=>({geometry:kT(sn,{depth:0,fillRule:"evenodd"}),rotation:EH,position:[0,0,-rn/2-0.002*cn],color:xn(ln)}),an=new yH;for(let sn=0;sn<7;sn++)for(let ln=0;ln<4;ln++){let cn=-0.27+ln*0.18+(sn%2?0.09:0),un=-0.5+sn*0.166;if(cn>0.3)continue;an.addPolygon([[cn,un-0.07],[cn+0.06,un],[cn,un+0.07],[cn-0.06,un]])}return wn(Lgt([{geometry:kT(Xh(0),{depth:rn}),color:xn(Fc.FACE)},nn(Xh(0.035),Fc.BACK,1),nn(Xh(0.075,Xh(0.095)),Fc.BACK_FRAME,2),nn(an,Fc.BACK_LIGHT,2)]),{center:!1,shine:0.35})}),Ngt,Ggt=(rn)=>II(`ss-suit:${rn}`,()=>wn(kT(yH.fromSVG(Ngt[rn]),{depth:0.08}),{fit:1,shine:0.5})),kgt=()=>II("ss-slot-ring",()=>wn(kT(Xh(0,Xh(0.035)),{depth:0,fillRule:"evenodd"}),{center:!1})),Bgt=()=>II("ss-slot-fill",()=>wn(kT(Xh(0.035),{depth:0}),{center:!1})),h8e=(rn)=>xn(rn.mode==="classic"?Fc.CLASSIC_SLOT:rn.BOARD.BORDER),b8e=(rn)=>xn(rn.mode==="classic"?Y0.BG_35:rn.BOARD.CELL_EMPTY),p8e=(rn,nn)=>rn.card*(nn.small?Hc:1),Hgt=(rn,nn)=>rn.x===nn.x&&rn.y===nn.y&&rn.z===nn.z&&rn.faceUp===nn.faceUp&&rn.small===nn.small&&rn.selected===nn.selected;var R8e=e(()=>{Uu();u();r0();na();ba();Hn();MI();LI();c8e=new Map,bH=AI/2,Ogt=[0,0,0,1],EH=f8e.y(Math.PI),Pgt=f8e.y(Math.PI/2),Ngt={hearts:"M0.5,0.95 C0.2,0.72 0,0.52 0,0.3 C0,0.12 0.13,0 0.28,0 C0.38,0 0.46,0.06 0.5,0.15 C0.54,0.06 0.62,0 0.72,0 C0.87,0 1,0.12 1,0.3 C1,0.52 0.8,0.72 0.5,0.95 Z",diamonds:"M0.5,0 L0.86,0.5 L0.5,1 L0.14,0.5 Z",clubs:"M0.5,0 C0.64,0 0.75,0.11 0.75,0.25 C0.75,0.33 0.71,0.4 0.66,0.44 C0.7,0.42 0.74,0.41 0.78,0.41 C0.92,0.41 1,0.52 1,0.65 C1,0.79 0.9,0.89 0.77,0.89 C0.67,0.89 0.58,0.83 0.54,0.75 C0.56,0.86 0.6,0.94 0.68,1 L0.32,1 C0.4,0.94 0.44,0.86 0.46,0.75 C0.42,0.83 0.33,0.89 0.23,0.89 C0.1,0.89 0,0.79 0,0.65 C0,0.52 0.08,0.41 0.22,0.41 C0.26,0.41 0.3,0.42 0.34,0.44 C0.29,0.4 0.25,0.33 0.25,0.25 C0.25,0.11 0.36,0 0.5,0 Z",spades:"M0.5,0 C0.8,0.25 1,0.42 1,0.6 C1,0.75 0.88,0.84 0.75,0.84 C0.65,0.84 0.57,0.79 0.53,0.72 C0.55,0.84 0.6,0.93 0.68,1 L0.32,1 C0.4,0.93 0.45,0.84 0.47,0.72 C0.43,0.79 0.35,0.84 0.25,0.84 C0.12,0.84 0,0.75 0,0.6 C0,0.42 0.2,0.25 0.5,0 Z"}});import{World as Wgt}from"@nayan-ui/engine";function M8e(rn){let nn=new Wgt(Ugt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",board:mH(),held:null,press:null,get time(){return nn.scoreboard.shownSeconds},get score(){return nn.scoreboard.score},won:!1,onPhase:(ln)=>{},onDeals:(ln)=>{},onCompleted:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(),sn}function C8e(rn,nn){let an=!rn.scene;if(rn.scene)E8e(rn.world,rn.scene);if(rn.layout=nn,ya(rn.camera,nn),rn.scene=y8e(rn.world,nn,rn.theme,Vgt(rn.board)),an)Cl(rn,L8e(rn.board));else Cl(rn,()=>0,!0)}function w8e(rn,nn){if(rn.theme=nn,rn.scene)S8e(rn.world,rn.scene,nn)}function Cl(rn,nn,an=!1,sn=!1){let{layout:ln,scene:cn}=rn;if(ln&&cn)v8e(rn.world,ln,cn,_8e(ln,rn.board,rn.held,sn),nn,an)}function L8e(rn){let nn=new Map;return rn.tableau.forEach((an,sn)=>an.forEach((ln,cn)=>nn.set(ln.id,(cn*T0+sn)*0.018))),(an)=>nn.get(an)??0}function SH(rn){rn.onDeals(GT(rn.board)),rn.onCompleted(rn.board.completed.length)}function I8e(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.reset(),rn.world.scoreboard.startClock(),rn.won=!1,rn.onPhase("playing")}function O8e(rn){rn.world.cancelTimers(),rn.board=mH(),rn.held=null,rn.press=null,rn.world.scoreboard.reset(),rn.won=!1,rn.phase="ready",Cl(rn,L8e(rn.board)),SH(rn),rn.onPhase("ready")}function P8e(rn){rn.world.dispose()}function g8e(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function zgt(rn,nn,an){let sn=rn.layout;if(!sn)return null;let ln=rn.board,cn=sn.card*Hc,un=Math.max(0,GT(ln)-1)*cn*0.22,[,dn]=Ul(sn,0,sn.rowY+sn.cardH*Hc/2,2),[,pn]=Ul(sn,0,sn.rowY-sn.cardH*Hc/2,2),[mn]=Ul(sn,sn.stockRight-cn-un,0),[fn]=Ul(sn,sn.stockRight,0);if(nn>=mn-4&&nn<=fn+4&&an>=dn-4&&an<=pn+4)return{kind:"stock"};let[hn]=Wa(sn,nn,an),bn=sn.columns.findIndex((vn)=>Math.abs(hn-vn)<=sn.pitch/2);if(bn<0)return null;let yn=ln.tableau[bn],En=ME(sn,yn);for(let vn=yn.length-1;vn>=0;vn--){let[,Tn,Rn]=BT(sn,bn,En[vn],vn),[,An]=Ul(sn,0,Tn+sn.cardH/2,Rn),[,Mn]=Ul(sn,0,Tn-sn.cardH/2,Rn);if(an>=An&&an<=Mn)return{kind:"card",pile:bn,index:vn}}let[,Sn]=Ul(sn,0,sn.pileTop,0),[,_n]=Ul(sn,0,sn.pileBottom,0);return an>=Sn&&an<=_n?{kind:"pile",pile:bn}:null}function D8e(rn,nn){let an=rn.layout;if(!an)return;if(nn.phase==="start"){rn.press={x:nn.x,y:nn.y,hit:CE(rn)?zgt(rn,nn.x,nn.y):null,grab:null,dragging:!1};return}let sn=rn.press;if(!sn)return;if(!sn.dragging&&Math.hypot(nn.x-sn.x,nn.y-sn.y)>jGe){if(!qgt(rn,sn)){rn.press=null;return}}if(sn.dragging){let ln=rn.held;if(!ln||!CE(rn)){rn.press=null;return}let[cn,un]=Wa(an,nn.x,nn.y,40);if(ln.drag={x:cn+sn.grab[0],y:un+sn.grab[1]},nn.phase!=="end"){Cl(rn,void 0,!0,!0);return}if(rn.press=null,ln.drag=null,nn.cancelled)return A8e(rn);let dn=cn+sn.grab[0],pn=0;for(let mn=1;mn<an.columns.length;mn++)if(Math.abs(an.columns[mn]-dn)<Math.abs(an.columns[pn]-dn))pn=mn;if(pn===ln.pile||Math.abs(an.columns[pn]-dn)>an.pitch)return A8e(rn);_H(rn,pn);return}if(nn.phase!=="end")return;rn.press=null,Ygt(rn,sn.hit)}function qgt(rn,nn){let an=rn.layout,sn=nn.hit;if(!CE(rn)||!sn||sn.kind!=="card")return!1;if(!fH(rn.board,sn.pile,sn.index)){if(rn.board.tableau[sn.pile][sn.index].faceUp){if(rn.scene)OI(rn.world,rn.scene,rn.board.tableau[sn.pile].slice(sn.index).map((hn)=>hn.id));rn.onEvent("invalid")}return!1}let cn=ME(an,rn.board.tableau[sn.pile]),[un,dn]=BT(an,sn.pile,cn[sn.index],sn.index),[pn,mn]=Wa(an,nn.x,nn.y,40);nn.grab=[un-pn,dn-mn],nn.dragging=!0;let fn=rn.held;if(rn.held={pile:sn.pile,index:sn.index,drag:{x:un,y:dn}},!fn||fn.pile!==sn.pile||fn.index!==sn.index)rn.onEvent("select");return Cl(rn,void 0,!0),!0}function A8e(rn){rn.held=null,Cl(rn)}function Ygt(rn,nn){if(!CE(rn)||!nn)return;if(nn.kind==="stock")return Xgt(rn);if(nn.kind==="card")return Kgt(rn,nn.pile,nn.index);let an=rn.held;if(an&&an.pile!==nn.pile)_H(rn,nn.pile)}function Kgt(rn,nn,an){if(!CE(rn))return;let sn=rn.held;if(sn&&sn.pile===nn&&sn.index===an){rn.held=null,Cl(rn),rn.onEvent("deselect");return}if(sn&&sn.pile!==nn)return _H(rn,nn);if(sn)rn.held=null;let ln=rn.board.tableau[nn]?.[an];if(!ln||!ln.faceUp)return Cl(rn);if(!fH(rn.board,nn,an)){if(Cl(rn),rn.scene)OI(rn.world,rn.scene,rn.board.tableau[nn].slice(an).map((cn)=>cn.id));rn.onEvent("invalid");return}rn.held={pile:nn,index:an,drag:null},Cl(rn),rn.onEvent("select")}function _H(rn,nn){let an=rn.held;if(!an)return;if(rn.held=null,an.pile===nn)return Cl(rn);let sn=rn.board.tableau[an.pile].slice(an.index);if(!r8e(rn.board,sn,nn)){if(Cl(rn),rn.scene)OI(rn.world,rn.scene,sn.map((cn)=>cn.id));rn.onEvent("invalid");return}a8e(rn.board,an.pile,an.index,nn);let ln=N8e(rn,nn,DT);Cl(rn,ln),SH(rn),rn.onEvent("place")}function Xgt(rn){if(!CE(rn))return;if(s8e(rn.board)){rn.onEvent("invalid");return}let nn=rn.board.stock.slice(-T0).reverse();i8e(rn.board),rn.held=null;let an=new Map(nn.map((ln,cn)=>[ln.id,cn*pH])),sn=[];for(let ln=0;ln<T0;ln++)sn.push(N8e(rn,ln,DT+T0*pH));Cl(rn,(ln)=>an.get(ln)??Math.max(0,...sn.map((cn)=>cn(ln)))),SH(rn),rn.onEvent("deal")}function N8e(rn,nn,an){let sn=rn.layout?ME(rn.layout,rn.board.tableau[nn]):[],ln=l8e(rn.board,nn);if(!ln)return()=>0;let cn=rn.layout;if(cn){let dn=rn.board.tableau[nn].length,[pn,mn]=BT(cn,nn,sn[Math.min(dn,sn.length-1)]??0,dn);rn.world.after(an,()=>T8e(rn.world,cn,pn,mn-cn.cardH*0.5))}if(rn.onEvent("complete"),rn.board.completed.length>=wI)jgt(rn);let un=new Map(ln.map((dn,pn)=>[dn.id,an+(12-pn)*$Ge]));return(dn)=>un.get(dn)??0}function jgt(rn){rn.won=!0,rn.world.scoreboard.stop(),rn.world.scoreboard.set(Ya(rn.time,KGe,XGe)),rn.onEvent("win"),rn.world.after(ZGe,()=>{if(rn.layout)x8e(rn.world,rn.layout);rn.phase="over",rn.onPhase("over")})}var Ugt=900,Vgt=(rn)=>[...rn.tableau.flat(),...rn.stock,...rn.completed.flat()],CE=(rn)=>rn.phase==="playing"&&!rn.won;var G8e=e(()=>{ci();ba();MI();LI();R8e()});var Nr={};n(Nr,{SpiderSolitaire:()=>mo});import{jsx as Zgt}from"react/jsx-runtime";var Bd,k8e,$gt=()=>"Try again!",mo;var Pe=e(()=>{Ta();l();a();_a();o();xa();va();MI();G8e();LI();Bd=t.SPIDER_SOLITAIRE,k8e={select:{sound:Bd.SELECT,haptic:"light"},deselect:{sound:Bd.DESELECT,haptic:"light"},invalid:{sound:Bd.INVALID,haptic:"light"},place:{sound:Bd.PLACE,haptic:"medium"},deal:{sound:Bd.DRAW,haptic:"medium"},complete:{sound:Bd.COMPLETE,haptic:"success"},win:{sound:Bd.WIN,haptic:"success"}},mo=Vn("spider-solitaire",(rn)=>{let[nn,an]=gn(null),[sn,ln]=gn(0),{game:cn,status:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"spider-solitaire",create:M8e,start:I8e,reset:O8e,dispose:P8e,tick:g8e,setTheme:w8e,resize:(mn,fn,hn,bn)=>{let yn=o8e(fn,hn,bn,c);return C8e(mn,yn),yn.pitch*9+yn.card},drag:D8e,reportScore:(mn,fn)=>fn==="win"?mn.score:0,sounds:Bd,onStart:(mn)=>mn(Bd.START,"medium"),wire:(mn,fn)=>{mn.onDeals=an,mn.onCompleted=ln,mn.onEvent=(hn)=>fn(k8e[hn].sound,k8e[hn].haptic)}});return Zgt(Un,{...dn,light:JGe,columns:[ma("DEALS",nn??GT(cn.board)),ma("COMPLETED",`${sn}/${wI}`)],subtext:"Deal the cards!",gameOver:pn({title:un==="win"?"YOU WON!":"NO MOVES LEFT",message:un==="win"?"All suits completed!":"No more valid moves!",scoreLabel:un==="win"?"Completion Time":"No Moves Left!",score:cn.time,formatter:un==="win"?E:$gt,buttonText:"Play Again!"})})})});function eke(rn,nn,an){let sn=$n(rn),ln=la(an)+Qgt,cn=Math.max(240,nn-ln-Jgt),un=(cn-wE*2*Math.cos(PI))/(Fd*Math.cos(PI)+0.8*Math.sin(PI)),dn=Math.max(8,Math.floor(Math.min((sn-wE*2)/x0,un)));return{width:rn,height:nn,tilt:PI,centerY:ln+cn/2,cell:dn,boardWidth:dn*x0,boardHeight:dn*Fd}}var x0=13,Fd=17,jh=3,B8e=1000,F8e=2000,LE=15,H8e=4,gI=16.666666666666668,W8e=2,U8e=50,vH=24,V8e=2,FT=1,HT=0.8,TH=20,xH=6,RH=4,z8e=300,q8e=1500,AH=2000,Y8e=800,K8e,X8e=1000,MH=5000,CH=5,j8e=0.08,$8e=0.5,PI=0.42,Z8e,Q8e="rgba(255, 255, 255, 0.30)",J8e="rgba(0, 0, 0, 0.10)",Qgt=82,Jgt=110,wE=10;var WT=e(()=>{o();Hn();K8e=vH*3,Z8e=Zn([-0.45,0.5,1],0.45)});function IH(){let rn=x0,nn=Fd,an=tke[Math.floor(Math.random()*tke.length)],sn=Math.random()<0.5,ln=Array.from({length:nn},(un,dn)=>Array.from({length:rn},(pn,mn)=>{let fn=an[dn]?.[sn?rn-1-mn:mn];return fn==="B"?{type:"brick",health:2}:fn==="S"?{type:"steel",health:0}:{type:"empty",health:0}})),cn=(un,dn)=>{if(ln[dn]?.[un])ln[dn][un]={type:"empty",health:0}};for(let un of[0,Hd,rn-1])for(let dn=-1;dn<=1;dn++)for(let pn=0;pn<=1;pn++)cn(un+dn,pn);for(let un=nn-2;un<nn;un++)for(let dn=0;dn<rn;dn++)cn(dn,un);for(let un=$h-2;un<nn;un++)for(let dn=Hd-2;dn<=Hd+2;dn++)cn(dn,un);ln[$h][Hd]={type:"base",health:1};for(let[un,dn]of[[Hd-1,$h-1],[Hd,$h-1],[Hd+1,$h-1],[Hd-1,$h],[Hd+1,$h]])ln[dn][un]={type:"steel",health:0};return ln}function UT(rn,nn){return{id:0,x:2*rn+rn/2,y:(Fd-1)*rn+rn/2,direction:"up",isPlayer:!0,isAlive:!0,lastFireTime:-1/0,spawnProtectionEndTime:nn+AH,lastDirectionChangeTime:0}}function nke(rn,nn,an){let sn=(rn*2)**2;for(let ln of[0,Math.floor(x0/2),x0-1]){let cn=ln*rn+rn/2,un=rn/2;if(nn.some((dn)=>(dn.x-cn)**2+(dn.y-un)**2<sn))continue;return{id:rke(),x:cn,y:un,direction:"down",isPlayer:!1,isAlive:!0,lastFireTime:-1/0,spawnProtectionEndTime:an+AH,lastDirectionChangeTime:an}}return null}function ake(rn,nn,an,sn,ln){let cn=an*(sn.cell/vH),[un,dn]=LH[nn],pn=rn.x+un*cn,mn=rn.y+dn*cn,fn=sn.cell*HT,hn=fn/2;if(pn-hn<0||pn+hn>sn.width||mn-hn<0||mn+hn>sn.height)return null;for(let[yn,En]of[[pn-hn,mn-hn],[pn+hn,mn-hn],[pn-hn,mn+hn],[pn+hn,mn+hn]])if(t4t(sn.tiles[Math.floor(En/sn.cell)]?.[Math.floor(yn/sn.cell)]))return null;let bn=fn*fn;for(let yn of ln){if(yn.id===rn.id||!yn.isAlive)continue;if((pn-yn.x)**2+(mn-yn.y)**2<bn)return null}return[pn,mn]}function DI(rn,nn,an,sn,ln){let cn=ake(rn,nn,an,sn,ln);return cn?{...rn,direction:nn,x:cn[0],y:cn[1]}:{...rn,direction:nn}}function OH(rn,nn){if(nn-rn.lastFireTime<(rn.isPlayer?z8e:q8e))return null;let[an,sn]=LH[rn.direction],ln=TH/2+2;return{id:rke(),x:rn.x+an*ln,y:rn.y+sn*ln,direction:rn.direction,isPlayerBullet:rn.isPlayer}}function ske(rn){let[nn,an]=LH[rn.direction];rn.x+=nn*xH,rn.y+=an*xH}function ike(rn,nn,an,sn){if(rn.x<0||rn.x>nn.width||rn.y<0||rn.y>nn.height)return{hit:!0};let ln=Math.floor(rn.x/nn.cell),cn=Math.floor(rn.y/nn.cell),un=nn.tiles[cn]?.[ln];if(un?.type==="brick")return{hit:!0,tile:[ln,cn]};if(un?.type==="steel")return{hit:!0};if(un?.type==="base")return rn.isPlayerBullet?{hit:!0}:{hit:!0,tile:[ln,cn],base:!0};let dn=((RH+TH)/2)**2;for(let pn of an){if(!pn.isAlive||rn.isPlayerBullet===pn.isPlayer||sn<pn.spawnProtectionEndTime)continue;if((rn.x-pn.x)**2+(rn.y-pn.y)**2<dn)return{hit:!0,tank:pn}}return{hit:!1}}function lke(rn,nn,an){let sn=rn[an]?.[nn];if(!sn||sn.type!=="brick"&&sn.type!=="base")return null;let ln=sn.type==="brick"?{type:sn.health-1<=0?"empty":"brick",health:sn.health-1}:{type:"empty",health:sn.health};return rn[an][nn]=ln,ln}function cke(rn){let nn=new Set,an=[],sn=(RH*2)**2;for(let ln=0;ln<rn.length;ln++)for(let cn=ln+1;cn<rn.length;cn++){let un=rn[ln],dn=rn[cn];if(un.isPlayerBullet===dn.isPlayerBullet)continue;if((un.x-dn.x)**2+(un.y-dn.y)**2<sn)nn.add(ln),nn.add(cn),an.push([(un.x+dn.x)/2,(un.y+dn.y)/2])}return{remaining:nn.size?rn.filter((ln,cn)=>!nn.has(cn)):rn,points:an}}function uke(rn,nn,an,sn,ln,cn){if(ln){let pn=wH.filter((mn)=>mn!==rn.direction&&ake(rn,mn,FT,an,sn));if(pn.length){let mn=oke(rn,nn);return{direction:pn.includes(mn)?mn:pn[Math.floor(Math.random()*pn.length)],turned:!0}}return{direction:e4t[rn.direction],turned:!0}}if(cn-rn.lastDirectionChangeTime<Y8e)return{direction:rn.direction,turned:!1};let un=Math.random();return{direction:un<0.4?oke(rn,nn):un<0.75?rn.direction:wH[Math.floor(Math.random()*wH.length)],turned:!0}}function dke(rn,nn){let an=K8e;return(rn.direction==="up"?Math.abs(rn.x-nn.x)<an&&rn.y>nn.y:rn.direction==="down"?Math.abs(rn.x-nn.x)<an&&rn.y<nn.y:rn.direction==="left"?Math.abs(rn.y-nn.y)<an&&rn.x>nn.x:Math.abs(rn.y-nn.y)<an&&rn.x<nn.x)||Math.random()<0.3}var wH,e4t,LH,t4t=(rn)=>!!rn&&(rn.type==="brick"||rn.type==="steel"||rn.type==="base"),o4t=0,rke=()=>++o4t,Hd,$h,tke,oke=(rn,nn)=>{let an=nn.x-rn.x,sn=nn.y-rn.y;return Math.abs(an)>Math.abs(sn)?an>0?"right":"left":sn>0?"down":"up"};var pke=e(()=>{WT();wH=["up","down","left","right"],e4t={up:"down",down:"up",left:"right",right:"left"},LH={up:[0,-1],down:[0,1],left:[-1,0],right:[1,0]},Hd=Math.floor(x0/2),$h=Fd-3,tke=[[".............",".B.B.B.B.B.B.",".B.B.B.B.B.B.",".B.B.BSB.B.B.",".B.B.B.B.B.B.",".B.B.....B.B.",".....B.B.....","S.BB.....BB.S",".....B.B.....",".B.B.BBB.B.B.",".B.B.B.B.B.B.",".B.B.....B.B.",".B.B.BBB.B.B.",".............",".............",".............","............."],[".............","..SS.....SS..","..S..BBB..S..","BB...B.B...BB","..SS.....SS..",".....SSS.....",".BBB.....BBB.",".B.B.BBB.B.B.",".BBB.B.B.BBB.",".....BBB.....","SS.........SS","..BBB.S.BBB..","..B.......B..",".............","BB.........BB",".............","............."],[".............","..B.......B..",".BB.SS.SS.BB.","BB.........BB","B..BB...BB..B","..BB..S..BB..",".BB..BBB..BB.","BB..BB.BB..BB","...BB...BB...",".SBB..S..BBS.","..B..BBB..B..",".BB.B...B.BB.","....B.S.B....",".............","SS.........SS",".............","............."],[".............",".BBB.....BBB.",".B.B.SSS.B.B.",".BBB.....BBB.",".............","SS.BBB.BBB.SS","...B.B.B.B...","...BBB.BBB...",".B.........B.",".BBB.SSS.BBB.",".B.B.....B.B.",".BBB.BBB.BBB.",".....B.B.....",".............",".BB.......BB.",".............","............."],[".............","..B..B.B..B..","..B..B.B..B..","SSB..B.B..BSS","..B.......B..","..BBBB.BBBB..","......S......","BBBB.SSS.BBBB","......S......","..BBBB.BBBB..","..B.......B..","SSB.BBBBB.BSS","..B.......B..",".............",".B.........B.",".............","............."],[".............",".BBBBB.BBBBB.",".B.........B.",".B.BBB.BBB.B.",".B.B.S.S.B.B.","...B.....B...","S..BBB.BBB..S",".............","BB.SS.B.SS.BB",".............","S..BBB.BBB..S","...B.....B...",".B.B.BBB.B.B.",".B.........B.",".BB.......BB.",".............","............."]]});import{effects as PH,extrude as gH,lathe as r4t,merge as OE,Path as DH,quat as yke,shapeGeometry as VT,tube as mke}from"@nayan-ui/engine";function xke(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-bke,an);Ea(rn,ln,nn,bke);let cn=rn.spawn({mesh:_ke(nn,an.mode==="classic"?10:6),position:[0,0,-Ske/2],color:vke(an),pickable:!1}),un=rn.spawn({mesh:f4t(nn),position:[0,0,0],pickable:!1}),dn=rn.spawn({mesh:p4t(nn),position:[0,0,0.15],color:xn(J8e),pickable:!1}),pn=sn.map((mn,fn)=>mn.map((hn,bn)=>Rke(rn,nn,hn,bn,fn)));return{backdrop:ln,field:cn,frame:un,grid:dn,walls:pn,tanks:new Map,bullets:new Map}}function Rke(rn,nn,an,sn,ln){let cn=Tke(an);return cn?rn.spawn({mesh:cn,position:IE(nn,(sn+0.5)*nn.cell,(ln+0.5)*nn.cell),scale:nn.cell,pickable:!1}):null}function Ake(rn,nn){let an=[...Array.from(nn.tanks.values(),(sn)=>sn.body),...Array.from(nn.bullets.values())];for(let sn of[nn.backdrop,nn.field,nn.frame,nn.grid,...an,...nn.walls.flat()])if(sn!=null)rn.despawn(sn)}function Mke(rn,nn,an,sn){aa(rn,an.backdrop,sn),rn.set(an.field,{mesh:_ke(nn,sn.mode==="classic"?10:6),color:vke(sn)})}function Cke(rn,nn,an,sn,ln,cn,un){let dn=an.walls[ln][sn],pn=Tke(cn);if(dn!=null&&pn)rn.set(dn,{mesh:pn});else if(dn!=null)rn.despawn(dn),an.walls[ln][sn]=null;PH.shatter(rn,{position:IE(nn,(sn+0.5)*nn.cell,(ln+0.5)*nn.cell,nn.cell*0.5),count:pn?6:12,size:nn.cell*0.14,speed:nn.cell*3,direction:[0,0,1],spread:1.2,lifetime:0.5,gravity:-nn.cell*9,colors:un==="base"?[al("#FFC107"),al("#FF8F00"),al("#5A5A5A")]:[al("#A0522D"),al("#6B3410"),al("#C0764A")],flash:!1})}function wke(rn,nn,an,sn){for(let ln of an.walls.flat())if(ln!=null)rn.despawn(ln);an.walls=sn.map((ln,cn)=>ln.map((un,dn)=>Rke(rn,nn,un,dn,cn)))}function Lke(rn,nn,an,sn,ln,cn){let un=nn.cell*HT,dn=new Set;for(let fn of sn){if(!fn.isAlive)continue;dn.add(fn.id);let hn=an.tanks.get(fn.id),bn=IE(nn,fn.x,fn.y);if(!hn){let En=rn.spawn({mesh:d4t(fn.isPlayer),position:bn,rotation:hke(fn.direction),scale:un,pickable:!1}),Sn=rn.spawn({mesh:"sphere",parent:En,position:[0,0,0.3],scale:0,color:h4t,pickable:!1});hn={body:En,shield:Sn,direction:fn.direction,shielded:!1,x:fn.x,y:fn.y},an.tanks.set(fn.id,hn),rn.set(En,{scale:un*0.3}),rn.animate(En,{scale:un},{duration:0.25,easing:"back"})}if(hn.x!==fn.x||hn.y!==fn.y)rn.set(hn.body,{position:bn}),hn.x=fn.x,hn.y=fn.y;if(hn.direction!==fn.direction)hn.direction=fn.direction,rn.animate(hn.body,{rotation:hke(fn.direction)},{duration:j8e,easing:"easeOut"});let yn=cn<fn.spawnProtectionEndTime;if(yn!==hn.shielded){if(hn.shielded=yn,rn.stopAnimation(hn.shield),rn.set(hn.shield,{scale:yn?1.45:0}),yn)rn.animate(hn.shield,{scale:1.6},{duration:0.35,repeat:"forever",yoyo:!0,easing:"easeInOut"})}}for(let[fn,hn]of an.tanks)if(!dn.has(fn))rn.despawn(hn.body),an.tanks.delete(fn);let pn=new Set,mn=rn.transforms;for(let fn of ln){pn.add(fn.id);let hn=IE(nn,fn.x,fn.y,nn.cell*0.34),bn=an.bullets.get(fn.id);if(bn==null){let yn=rn.spawn({mesh:"sphere",position:hn,scale:nn.cell*0.24,color:b4t,pickable:!1});rn.spawn({mesh:"puff",parent:yn,scale:2.4,color:y4t,pickable:!1}),an.bullets.set(fn.id,yn)}else mn.position(bn,hn[0],hn[1],hn[2])}mn.flush();for(let[fn,hn]of an.bullets)if(!pn.has(fn))rn.despawn(hn),an.bullets.delete(fn)}function NH(rn,nn,an){let sn=nn.cell*HT,ln=sn/2+sn*0.5,[cn,un]=an.direction==="up"?[0,-1]:an.direction==="down"?[0,1]:an.direction==="left"?[-1,0]:[1,0];PH.dust(rn,{position:IE(nn,an.x+cn*ln,an.y+un*ln,sn*0.43),count:3,size:sn*0.35,speed:sn*1.5,direction:[cn,-un,0.3],spread:0.5,lifetime:0.1,color:[[2.6,2.6,2.2,0.95],[2.4,2,0.8,0.8]],endSize:1.8})}function zT(rn,nn,an,sn,ln){let cn=nn.cell*(ln?0.9:0.5);PH.explosion(rn,{position:IE(nn,an,sn,nn.cell*0.4),count:ln?22:10,size:cn,speed:cn*(ln?3:2),lifetime:$8e,direction:[0,0,1],spread:1.3,gravity:-nn.cell*10,debris:ln?[al("#3E4A58"),al("#FFB74D"),al("#5A5A5A")]:void 0})}var fke,Zh=(rn,nn)=>{let an=fke.get(rn);if(!an)an=Bn("tank-1990/Tank1990Scene:"+rn,nn),fke.set(rn,an);return an},Zl=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},al=(rn)=>xn(rn),Wc=()=>VT("cube"),Eke=()=>VT("sphere"),n4t,a4t,hke=(rn)=>yke.z(a4t[rn]),Ske=8,bke=25,IE=(rn,nn,an,sn=0)=>[nn-rn.boardWidth/2,rn.boardHeight/2-an,sn],s4t=(rn)=>Zh(`t90-brick-${rn?1:2}`,()=>{let nn=rn?0.34:0.56,an=Zl(rn?"#7A3F1E":"#A0522D"),sn=Zl(rn?"#9A6040":"#C0764A"),ln=[{geometry:Wc(),position:[0,0,nn/2],scale:[0.96,0.96,nn],color:[...Zl("#2E1A0C"),1]},{geometry:Wc(),position:[0,0,(nn-0.04)/2],scale:[0.98,0.98,nn-0.04],color:[...an,1]}],cn=4;for(let un=0;un<4;un++){let dn=-0.5+(un+0.5)/4,pn=un%2?-0.25:0;for(let mn=0;mn<3;mn++){let fn=Math.max(-0.48,-0.5+pn+mn*0.5+0.02),hn=Math.min(0.48,-0.5+pn+(mn+1)*0.5-0.02);if(hn-fn<0.06)continue;if(rn&&(un+mn)%3===0)continue;let bn=0.9+(un*7+mn*3)%5*0.04;ln.push({geometry:Wc(),position:[(fn+hn)/2,dn,nn+0.025],scale:[hn-fn,0.2,0.05],color:[sn[0]*bn,sn[1]*bn,sn[2]*bn,1]})}}return wn(OE(ln),{center:!1,shine:0.1})}),Dm,i4t=()=>Zh("t90-steel-v2",()=>{let nn=[{geometry:Wc(),position:[0,0,0.29],scale:[0.98,0.98,0.58],color:[...Zl(Dm.edge),1]},{geometry:Wc(),position:[0,0,0.3],scale:[0.9,0.9,0.6],color:[...Zl(Dm.body),1]},{geometry:Wc(),position:[0,0,0.62],scale:[0.62,0.62,0.04],color:[...Zl(Dm.plate),1]},{geometry:Wc(),position:[0,0,0.645],scale:[0.5,0.5,0.01],color:[...Zl(Dm.body),1]}];for(let[an,sn]of[[-0.36,-0.36],[0.36,-0.36],[-0.36,0.36],[0.36,0.36]])nn.push({geometry:Eke(),position:[an,sn,0.6],scale:[0.12,0.12,0.08],color:[...Zl(Dm.rivet),1]});return wn(OE(nn),{center:!1,shine:0.85})}),l4t=()=>Zh("t90-base",()=>wn(OE([{geometry:VT("roundedBox"),position:[0,0,0.14],scale:[0.92,0.92,0.28],color:[...Zl("#FFC107"),1]},{geometry:Wc(),position:[0,0,0.29],scale:[0.7,0.7,0.03],color:[...Zl("#FF8F00"),1]},{geometry:gH(new DH().addStar(0,0,0.32,0.14),{depth:0.12}),position:[0,0,0.36],color:[...Zl("#FFE082"),1]}]),{center:!1,shine:0.7})),c4t,u4t,d4t=(rn)=>Zh(`t90-tank-${rn?"player":"enemy"}`,()=>{let nn=rn?c4t:u4t,an=[];for(let sn of[1,-1]){an.push({geometry:VT("roundedBox"),position:[sn*0.37,0,0.13],scale:[0.24,1,0.26],color:al(nn.track)});for(let ln=0;ln<6;ln++)an.push({geometry:Wc(),position:[sn*0.37,-0.42+ln*0.168,0.265],scale:[0.25,0.06,0.02],color:[0.12,0.12,0.12,1]})}return an.push({geometry:VT("roundedBox"),position:[0,0,0.22],scale:[0.56,0.84,0.24],color:al(nn.hull)},{geometry:Wc(),position:[0,-0.08,0.345],scale:[0.46,0.5,0.02],color:al(nn.top)},{geometry:r4t([[0.001,0.2],[0.12,0.19],[0.2,0.14],[0.23,0.06],[0.23,0]],{segments:24}),position:[0,-0.04,0.34],rotation:n4t,color:al(nn.turret)},{geometry:mke([[0,0.12,0.43],[0,0.66,0.43]],{radius:0.055,sides:12}),color:al(nn.barrel)},{geometry:mke([[0,0.6,0.43],[0,0.68,0.43]],{radius:0.075,sides:12}),color:al(nn.barrel)}),wn(OE(an),{center:!1,shine:rn?0.55:0.4})}),_ke=(rn,nn)=>Zh(`t90-field:${rn.boardWidth}x${rn.boardHeight}:${nn}`,()=>wn(gH(new DH().addRoundedRect(-rn.boardWidth/2,-rn.boardHeight/2,rn.boardWidth,rn.boardHeight,nn),{depth:Ske}),{shine:0.1})),p4t=(rn)=>Zh(`t90-grid:${rn.cell}`,()=>{let nn=[];for(let an=1;an<x0;an++)nn.push({geometry:Wc(),position:[an*rn.cell-rn.boardWidth/2,0,0],scale:[1,rn.boardHeight,0.2]});for(let an=1;an<Fd;an++)nn.push({geometry:Wc(),position:[0,rn.boardHeight/2-an*rn.cell,0],scale:[rn.boardWidth,1,0.2]});return wn(OE(nn),{center:!1})}),m4t=(rn)=>Math.min(wE,rn.cell*0.5),f4t=(rn)=>Zh(`t90-frame:${rn.boardWidth}x${rn.boardHeight}`,()=>{let nn=m4t(rn),an=rn.cell*0.6,{boardWidth:sn,boardHeight:ln}=rn,cn=(mn,fn,hn,bn)=>({geometry:gH(new DH().addRoundedRect(-sn/2-nn+mn,-ln/2-nn+mn,sn+(nn-mn)*2,ln+(nn-mn)*2,Math.max(1,nn*0.5-mn)).addRect(-sn/2-mn*0.2,-ln/2-mn*0.2,sn+mn*0.4,ln+mn*0.4),{depth:fn,fillRule:"evenodd"}),position:[0,0,bn],color:[...Zl(hn),1]}),un=[cn(0,an,Dm.body,an/2),cn(nn*0.22,an*0.06,Dm.plate,an+an*0.03)],dn=(mn,fn)=>un.push({geometry:Eke(),position:[mn,fn,an+an*0.06],scale:[nn*0.3,nn*0.3,nn*0.2],color:[...Zl(Dm.rivet),1]}),pn=nn/2;for(let mn=0;mn<=x0;mn++){let fn=-sn/2+mn*rn.cell;dn(fn,ln/2+pn),dn(fn,-ln/2-pn)}for(let mn=1;mn<Fd;mn++){let fn=-ln/2+mn*rn.cell;dn(-sn/2-pn,fn),dn(sn/2+pn,fn)}return wn(OE(un),{center:!1,shine:0.85})}),vke=(rn)=>xn(rn.mode==="classic"?Q8e:rn.BOARD.SURFACE),Tke=(rn)=>rn.type==="brick"?s4t(rn.health<2):rn.type==="steel"?i4t():rn.type==="base"?l4t():null,h4t,b4t,y4t;var Ike=e(()=>{u();na();ba();Hn();WT();fke=new Map,n4t=yke.x(Math.PI/2),a4t={up:0,left:Math.PI/2,down:Math.PI,right:-Math.PI/2},Dm={edge:"#252B33",body:"#5F6B7A",plate:"#9AA6B4",rivet:"#E6EBF1"},c4t={hull:"#FFD700",top:"#FFE44D",track:"#8B7209",turret:"#FFF176",barrel:"#B8860B"},u4t={hull:"#6B7D94",top:"#8A9AAE",track:"#2E3C4E",turret:"#7A8EA4",barrel:"#4A5E74"};h4t=[0.12,0.55,1,0.28],b4t=[2.4,1.5,0.45,1],y4t=[2.2,1.1,0.3,0.45]});import{World as E4t}from"@nayan-ui/engine";function gke(rn){let nn=new E4t(S4t),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",tiles:IH(),player:null,enemies:[],bullets:[],get lives(){return nn.scoreboard.lives},get score(){return nn.scoreboard.score},enemiesRemaining:LE,won:!1,direction:null,now:0,pending:0,firstSpawn:null,nextSpawn:0,onPhase:(ln)=>{},onScore:(ln)=>{},onLives:(ln)=>{},onEnemies:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(jh),sn}function Dke(rn,nn){let an=rn.layout;if(rn.scene)Ake(rn.world,rn.scene);if(rn.layout=nn,ya(rn.camera,nn),an&&an.cell!==nn.cell){let sn=nn.cell/an.cell;for(let ln of[...rn.player?[rn.player]:[],...rn.enemies])ln.x*=sn,ln.y*=sn;for(let ln of rn.bullets)ln.x*=sn,ln.y*=sn}if(!rn.player)rn.player=UT(nn.cell,rn.now);rn.scene=xke(rn.world,nn,rn.theme,rn.tiles),GH(rn)}function Nke(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)Mke(rn.world,rn.layout,rn.scene,nn)}function GH(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;Lke(rn.world,nn,an,[...rn.player?[rn.player]:[],...rn.enemies],rn.bullets,rn.now)}function Gke(rn){if(rn.phase!=="ready"||!rn.layout)return;rn.phase="playing",rn.pending=0,rn.firstSpawn=rn.now+X8e,rn.nextSpawn=rn.now+MH,rn.player=UT(rn.layout.cell,rn.now),rn.onPhase("playing")}function kke(rn){if(rn.tiles=IH(),rn.enemies=[],rn.bullets=[],rn.world.scoreboard.reset(jh),rn.enemiesRemaining=LE,rn.won=!1,rn.direction=null,rn.firstSpawn=null,rn.phase="ready",rn.player=rn.layout?UT(rn.layout.cell,rn.now):null,rn.layout&&rn.scene)wke(rn.world,rn.layout,rn.scene,rn.tiles);GH(rn),rn.onScore(0),rn.onLives(jh),rn.onEnemies(LE),rn.onPhase("ready")}function Bke(rn){rn.world.dispose()}function Fke(rn,nn){if(rn.world.isDisposed)return;if(rn.phase==="playing"){let an=Math.min(rn.pending+nn*1000,U8e);while(rn.phase==="playing"&&an>=gI-W8e){if(an-=gI,rn.now+=gI,rn.firstSpawn!==null&&rn.now>=rn.firstSpawn)rn.firstSpawn=null,Oke(rn);if(rn.now>=rn.nextSpawn)rn.nextSpawn+=MH,Oke(rn);v4t(rn)}rn.pending=an}else rn.now+=Math.min(nn,0.25)*1000;GH(rn),rn.world.update(nn)}function Oke(rn){let nn=rn.layout;if(!nn||rn.enemies.length>=H8e||rn.enemiesRemaining<=0)return;let an=nke(nn.cell,rn.enemies,rn.now);if(!an)return;rn.enemies.push(an),rn.enemiesRemaining-=1,rn.onEnemies(rn.enemiesRemaining)}function v4t(rn){let nn=_4t(rn),{layout:an,player:sn}=rn;if(!nn||!an||!sn)return;let ln=rn.now,cn=[sn,...rn.enemies];if(rn.direction&&sn.isAlive)sn=DI(sn,rn.direction,V8e,nn,cn),cn[0]=sn;let un=rn.bullets.slice();if(sn.isAlive){let En=OH(sn,ln);if(En)un.push(En),NH(rn.world,an,sn),sn={...sn,lastFireTime:ln},cn[0]=sn,rn.onEvent("fire")}let dn=sn,pn=rn.enemies.map((En)=>{if(!En.isAlive)return En;let Sn=DI(En,En.direction,FT,nn,cn),_n=Sn.x===En.x&&Sn.y===En.y,{direction:vn,turned:Tn}=uke(En,dn,nn,cn,_n,ln),Rn=DI(En,vn,FT,nn,cn);if(Tn)Rn.lastDirectionChangeTime=ln;if(dke(Rn,dn)){let An=OH(Rn,ln);if(An)un.push(An),NH(rn.world,an,Rn),Rn.lastFireTime=ln}return Rn});for(let En of un)ske(En);let mn=cke(un);for(let[En,Sn]of mn.points)zT(rn.world,an,En,Sn,!1);let fn=rn.lives,hn=!1,bn=[sn,...pn],yn=mn.remaining.filter((En)=>{let Sn=ike(En,nn,bn,ln);if(!Sn.hit)return!0;if(Sn.tile){let[vn,Tn]=Sn.tile,Rn=rn.tiles[Tn][vn].type,An=lke(rn.tiles,vn,Tn);if(An&&rn.scene)Cke(rn.world,an,rn.scene,vn,Tn,An,Rn);zT(rn.world,an,(vn+0.5)*an.cell,(Tn+0.5)*an.cell,!1)}if(Sn.base)hn=!0,zT(rn.world,an,En.x,En.y,!0);let _n=Sn.tank;if(_n)if(zT(rn.world,an,_n.x,_n.y,!0),_n.isPlayer)fn-=1,rn.onEvent("hit"),sn=fn>0?UT(an.cell,ln):{...sn,isAlive:!1},bn[0]=sn;else{pn=pn.map((vn)=>vn.id===_n.id?{...vn,isAlive:!1}:vn);for(let vn=0;vn<pn.length;vn++)bn[vn+1]=pn[vn];rn.onScore(rn.world.scoreboard.add(B8e)),rn.onEvent("kill")}return!1});if(rn.player=sn,rn.enemies=pn.filter((En)=>En.isAlive),rn.bullets=yn,fn!==rn.lives)rn.world.scoreboard.setLives(fn),rn.onLives(fn);if(hn||fn<=0)Pke(rn,!1);else if(rn.enemiesRemaining<=0&&rn.enemies.length===0)Pke(rn,!0)}function Pke(rn,nn){if(rn.won=nn,nn)rn.onScore(rn.world.scoreboard.add(F8e));rn.direction=null,rn.phase="over",rn.onPhase("over")}function Hke(rn,{phase:nn,dx:an,dy:sn}){if(nn==="end"){rn.direction=null;return}if(nn!=="move"||rn.phase!=="playing")return;if(Math.abs(an)<CH&&Math.abs(sn)<CH)return;rn.direction=Math.abs(an)>Math.abs(sn)?an>0?"right":"left":sn>0?"down":"up"}var S4t=1200,_4t=(rn)=>{let nn=rn.layout;return nn?{tiles:rn.tiles,cell:nn.cell,width:nn.boardWidth,height:nn.boardHeight}:null};var Wke=e(()=>{ba();WT();pke();Ike()});var Gr={};n(Gr,{Tank1990:()=>fo});import{jsx as R4t}from"react/jsx-runtime";var Qh,T4t="#FFFFFF",x4t=(rn)=>rn.toLocaleString(),fo;var ge=e(()=>{Ta();l();a();_a();o();xa();va();WT();Wke();Qh=t.TANK_1990,fo=Vn("tank-1990",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(jh),[cn,un]=gn(LE),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"tank-1990",create:gke,start:Gke,reset:kke,dispose:Bke,tick:Fke,setTheme:Nke,resize:(hn,bn,yn,En)=>{let Sn=eke(bn,yn,En);return Dke(hn,Sn),Sn.boardWidth+Math.min(wE,Sn.cell*0.5)*2},drag:Hke,sounds:Qh,onStart:(hn)=>hn(Qh.START,"medium"),onOver:(hn,bn)=>hn(bn==="win"?Qh.WIN:Qh.GAME_OVER,bn==="win"?"success":"heavy"),wire:(hn,bn)=>{hn.onScore=an,hn.onLives=ln,hn.onEnemies=un,hn.onEvent=(yn)=>{if(yn==="fire")bn(Qh.FIRE);else if(yn==="kill")bn(Qh.DESTROY,"success");else bn(Qh.DAMAGE,"error")}}});return R4t(Un,{...mn,light:Z8e,columns:[Qn(nn,"SCORE"),ys(sn,jh),ma("ENEMIES",cn,dn.mode==="classic"?T4t:void 0)],subtext:"Defend your base!",gameOver:fn({title:pn==="win"?"LEVEL COMPLETE!":"GAME OVER",message:pn==="win"?"All enemies destroyed!":"Your base was destroyed!",scoreLabel:pn==="win"?"Level Complete!":"Final Score",score:nn,formatter:x4t,buttonText:pn==="win"?"Next Level!":"Try Again!"})})})});function Kke(rn,nn,an,sn){let ln=sn?10:8,cn=la(an)+A4t,un=Math.max(180,nn-cn-M4t),dn=un/Math.cos(Uke)-ln*2-30,pn=Math.floor(Math.max(150,Math.min($n(rn)-ln*2,dn))/3)*3;return{width:rn,height:nn,tilt:Uke,centerY:cn+un/2,cell:pn/3,size:pn,pad:ln}}function Nm(rn,nn){return[(nn%3-1)*rn.cell,(1-Math.floor(nn/3))*rn.cell]}function Xke(rn,nn,an){let sn=Math.floor((nn+rn.size/2)/rn.cell),ln=Math.floor((rn.size/2-an)/rn.cell);return sn<0||sn>2||ln<0||ln>2?-1:ln*3+sn}var Jh=120,Vke=1e4,zke=5000,kH=0,BH=50,qke=0.5,Ql,Uke=0.42,Yke,A4t=92,M4t=120;var NI=e(()=>{o();Hn();Ql={X:"#E53935",O:"#2E7D32",WIN:"#FFC107",FRAME:"#5c4033",WELL:"#3a2518",SURFACE:"#6b4c3b",SURFACE_ALT:"#735342",GRID:"#8d6e5a",X_BADGE:"#F44336",O_BADGE:"#4CAF50"},Yke=Zn([-0.4,0.5,1],0.45)});function HH(rn){for(let nn of C4t){let[an,sn,ln]=nn;if(rn[an]&&rn[an]===rn[sn]&&rn[an]===rn[ln])return nn}return null}function $ke(rn,nn,an,sn){let ln=0;for(let hn of rn)ln=ln*3+(hn==="X"?1:hn==="O"?2:0);let cn=ln*32+an*2+(nn==="X"?1:0),un=sn.get(cn);if(un!==void 0)return un;let dn=jke(rn);if(dn==="X")return 10-an;if(dn==="O")return an-10;let pn=nn==="X"?-1/0:1/0,mn=!1;for(let hn=0;hn<rn.length;hn++){if(rn[hn]!==null)continue;mn=!0,rn[hn]=nn;let bn=$ke(rn,nn==="X"?"O":"X",an+1,sn);rn[hn]=null,pn=nn==="X"?Math.max(pn,bn):Math.min(pn,bn)}let fn=mn?pn:0;return sn.set(cn,fn),fn}function Zke(rn){let nn=w4t(rn);if(!nn.length)return-1;let an=(mn)=>nn.filter((fn)=>{let hn=[...rn];return hn[fn]=mn,jke(hn)===mn}),sn=an("X")[0];if(sn!==void 0)return sn;let ln=an("O");if(ln.length){let mn=nn.filter((fn)=>!ln.includes(fn));if(mn.length&&Math.random()<L4t)return GI(mn);return GI(ln)}if(Math.random()<I4t)return GI(nn);let cn=[...rn],un=new Map,dn=-1/0,pn=[];for(let mn of nn){cn[mn]="X";let fn=$ke(cn,"O",1,un);if(cn[mn]=null,fn>dn)dn=fn,pn=[mn];else if(fn===dn)pn.push(mn)}return GI(pn)}var C4t,FH=()=>Array(9).fill(null),jke=(rn)=>{let nn=HH(rn);return nn?rn[nn[0]]:null},w4t=(rn)=>rn.flatMap((nn,an)=>nn===null?[an]:[]),L4t=0.4,I4t=0.7,GI=(rn)=>rn[Math.floor(Math.random()*rn.length)];var Qke=e(()=>{C4t=[[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]]});import{effects as O4t,extrude as P4t,merge as g4t,Path as D4t,quat as WH,tube as oBe}from"@nayan-ui/engine";function nBe(rn,nn,an){let sn=[],ln=(yn)=>sn.push(rn.spawn({pickable:!1,...yn})),cn=nn.size+nn.pad*2,un=an.mode==="classic",dn=Math.max(6,nn.cell*0.075),pn=nn.cell*N4t;if(un){ln({mesh:qT(cn,14,kI),position:[0,0,-kI/2],color:xn(Ql.FRAME)}),ln({mesh:qT(nn.size+4,10,1),position:[0,0,0.4],color:xn(Ql.WELL)}),ln({mesh:qT(nn.size,6,1),position:[0,0,0.8],color:xn(Ql.SURFACE)});for(let yn=0;yn<9;yn++)if((Math.floor(yn/3)+yn)%2===1){let[En,Sn]=Nm(nn,yn);ln({mesh:"cube",position:[En,Sn,1.3],scale:[nn.cell,nn.cell,0.02],color:xn(Ql.SURFACE_ALT)})}}else{ln({mesh:qT(cn,8,kI),position:[0,0,-kI/2],color:xn(an.BOARD.SURFACE)});for(let yn=0;yn<9;yn++){let[En,Sn]=Nm(nn,yn);ln({mesh:qT(Math.round(nn.cell-dn*2),10,3),position:[En,Sn,1.5],scale:1,color:xn(an.BOARD.CELL_EMPTY)})}}let mn=xn(un?Ql.GRID:an.BOARD.GRID_LINE),fn=[0,0,0,0.18],hn=nn.size-nn.cell*0.16,bn=WH.z(Math.PI/2);for(let yn of[-0.5,0.5])ln({mesh:"capsule",position:[yn*nn.cell+dn*0.25,-dn*0.25,1.05],scale:[dn*1.5,hn,0.6],color:fn}),ln({mesh:"capsule",position:[dn*0.25,yn*nn.cell-dn*0.25,1.05],rotation:bn,scale:[dn*1.5,hn,0.6],color:fn}),ln({mesh:"capsule",position:[yn*nn.cell,0,1+pn/2],scale:[dn,hn,pn],color:mn}),ln({mesh:"capsule",position:[0,yn*nn.cell,1+pn/2],rotation:bn,scale:[dn,hn,pn],color:mn});return sn}function aBe(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-eBe,an);Ea(rn,ln,nn,eBe);let cn=rn.spawn({mesh:rBe(),scale:0,color:xn(Ql.O,0.35),pickable:!1}),un={backdrop:ln,board:nBe(rn,nn,an),pieces:Array(9).fill(null),ghost:cn,line:null};return sn.forEach((dn,pn)=>{if(dn)VH(rn,nn,un,pn,dn,!1)}),un}function sBe(rn,nn){for(let an of[nn.backdrop,...nn.board,...nn.pieces,nn.ghost,nn.line])if(an!=null)rn.despawn(an)}function iBe(rn,nn,an,sn){aa(rn,an.backdrop,sn);for(let ln of an.board)rn.despawn(ln);an.board=nBe(rn,nn,sn)}function VH(rn,nn,an,sn,ln,cn=!0){let[un,dn]=Nm(nn,sn),pn=rn.spawn({mesh:ln==="X"?k4t():rBe(),position:[un,dn,PE],rotation:WH.z(cn?ln==="X"?-0.6:0.6:0),scale:cn?0:nn.cell,color:tBe(ln),pickable:!1});if(rn.spawn({mesh:"sphere",parent:pn,position:[0.04,-0.04,0.01],scale:[Uc*2.5,Uc*2.5,0.01],color:[0,0,0,0.2],pickable:!1}),cn)rn.animate(pn,[{scale:nn.cell*1.18,at:0.6},{scale:nn.cell*0.94,at:0.82},{scale:nn.cell}],{duration:0.36,easing:"easeOut"}),rn.animate(pn,{rotation:[0,0,0,1]},{duration:0.3,easing:"easeOut"}),rn.after(0.2,()=>Lf(rn,{position:[un,dn,PE+nn.cell*0.15],size:nn.cell*0.7,color:tBe(ln),count:7}));an.pieces[sn]=pn,gE(rn,an)}function lBe(rn,nn,an,sn){let[ln,cn]=Nm(nn,sn);rn.set(an.ghost,{position:[ln,cn,PE+0.5],scale:nn.cell*0.92}),rn.animate(an.ghost,{scale:nn.cell*0.98},{duration:0.5,repeat:"forever",yoyo:!0,easing:"easeInOut"})}function gE(rn,nn){rn.stopAnimation(nn.ghost),rn.set(nn.ghost,{scale:0})}function zH(rn,nn,an,sn){sn.forEach((yn,En)=>{let Sn=an.pieces[yn];if(Sn==null)return;let[_n,vn]=Nm(nn,yn);rn.animate(Sn,{color:G4t},{duration:0.25,delay:En*0.08}),rn.animate(Sn,[{position:[_n,vn,PE+nn.cell*0.35],at:0.4},{position:[_n,vn,PE]}],{duration:0.45,delay:En*0.08,easing:"easeOut"})});let[ln,cn]=Nm(nn,sn[0]),[un,dn]=Nm(nn,sn[2]),pn=Math.hypot(un-ln,dn-cn)+nn.cell*0.5,mn=Math.atan2(dn-cn,un-ln),fn=nn.cell*0.07,hn=PE+Gm*nn.cell*2+fn,bn=WH.z(mn-Math.PI/2);an.line=rn.spawn({mesh:"capsule",position:[(ln+un)/2,(cn+dn)/2,hn],rotation:bn,scale:[fn*2,0.01,fn*2],color:[1.6,1.25,0.3,1],pickable:!1}),rn.animate(an.line,{scale:[fn*2,pn,fn*2]},{duration:0.32,delay:0.15,easing:"easeOut"}),rn.animate(an.line,{color:[1.2,0.95,0.25,1]},{duration:0.6,delay:0.5,easing:"easeInOut",repeat:"forever",yoyo:!0}),O4t.sparkle(rn,{position:[(ln+un)/2,(cn+dn)/2,hn+4],count:30,size:nn.cell*0.06,speed:nn.cell*2.5,lifetime:0.7,gravity:-nn.cell*2,colors:["#FFD54F","#FFC107","#FFFFFF"].map((yn)=>xn(yn))})}function cBe(rn,nn,an){for(let sn of an.pieces)if(sn!=null)rn.animate(sn,{shake:nn.cell*0.04},{duration:0.4})}function uBe(rn,nn){for(let an of nn.pieces)if(an!=null)rn.stopAnimation(an),rn.set(an,{lifetime:0.25});if(nn.pieces=Array(9).fill(null),nn.line!=null)rn.despawn(nn.line);nn.line=null,gE(rn,nn)}var Jke,UH=(rn,nn)=>{let an=Jke.get(rn);if(!an)an=Bn("tic-tac-toe/TicTacToeScene:"+rn,nn),Jke.set(rn,an);return an},kI=12,eBe=30,Gm=0.075,Uc=0.23,N4t=0.1,G4t,k4t=()=>UH("ttt-x-v2",()=>{let rn=(nn,an)=>({geometry:oBe([nn,an],{radius:Gm,sides:16,smoothness:2,caps:!0})});return wn(g4t([rn([-Uc,-Uc,Gm],[Uc,Uc,Gm]),rn([Uc,-Uc,Gm*1.02],[-Uc,Uc,Gm*1.02])]),{center:!1,shine:0.75})}),rBe=()=>UH("ttt-o-v2",()=>{let rn=Array.from({length:41},(nn,an)=>{let sn=an/40*Math.PI*2;return[Math.cos(sn)*Uc,Math.sin(sn)*Uc,Gm]});return wn(oBe(rn,{radius:Gm,sides:16,smoothness:2,caps:!1}),{center:!1,shine:0.75})}),qT=(rn,nn,an,sn=0)=>UH(`ttt-panel:${rn}:${nn}:${an}:${sn}`,()=>wn(P4t(new D4t().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:an}),{shine:sn})),tBe=(rn)=>xn(rn==="X"?Ql.X:Ql.O),PE=1;var dBe=e(()=>{u();f();na();ba();Hn();NI();Jke=new Map,G4t=xn(Ql.WIN)});import{World as B4t}from"@nayan-ui/engine";function mBe(rn){let nn=new B4t(F4t),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",board:FH(),turn:"O",result:null,finalScore:0,line:null,get timeLeft(){return nn.scoreboard.shownSeconds},press:-1,onPhase:(ln)=>{},onTurn:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,Jh),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&qH(sn,"timeout")},sn}function hBe(rn,nn){if(rn.scene)sBe(rn.world,rn.scene);if(rn.layout=nn,ya(rn.camera,nn),rn.scene=aBe(rn.world,nn,rn.theme,rn.board),rn.line)zH(rn.world,nn,rn.scene,rn.line)}function bBe(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)iBe(rn.world,rn.layout,rn.scene,nn)}function yBe(rn){if(rn.world.cancelTimers(),rn.board=FH(),rn.turn="O",rn.result=null,rn.line=null,rn.world.scoreboard.reset(0,Jh),rn.press=-1,rn.scene)uBe(rn.world,rn.scene);rn.onTurn("O"),rn.onTime(Jh)}function EBe(rn){if(rn.phase!=="ready")return;yBe(rn),rn.world.scoreboard.startCountdown(Jh),rn.phase="playing",rn.onPhase("playing")}function SBe(rn){yBe(rn),rn.phase="ready",rn.onPhase("ready")}function _Be(rn){rn.world.dispose()}function vBe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function qH(rn,nn){if(rn.result=nn,rn.world.cancelTimers(),rn.world.scoreboard.stop(),rn.finalScore=H4t(nn,rn.timeLeft),rn.press=-1,rn.scene)gE(rn.world,rn.scene);rn.phase="over",rn.onPhase("over")}function pBe(rn,nn,an){rn.board[nn]=an;let{layout:sn,scene:ln}=rn;if(sn&&ln)VH(rn.world,sn,ln,nn,an);rn.onEvent(an==="O"?"place":"robot");let cn=HH(rn.board);if(cn){if(rn.line=cn,sn&&ln)zH(rn.world,sn,ln,cn);rn.onEvent(an==="O"?"win":"lose"),qH(rn,an==="O"?"win":"lose");return}if(rn.board.every((un)=>un!==null)){if(sn&&ln)cBe(rn.world,sn,ln);rn.onEvent("draw"),qH(rn,"draw");return}rn.turn=an==="O"?"X":"O",rn.onTurn(rn.turn)}function W4t(rn,nn){if(rn.phase!=="playing"||rn.turn!=="O"||rn.board[nn]!==null||nn<0||nn>8)return;if(pBe(rn,nn,"O"),rn.phase!=="playing")return;rn.world.after(qke,()=>{if(rn.phase!=="playing"||rn.turn!=="X")return;let an=Zke(rn.board);if(an>=0)pBe(rn,an,"X")})}function U4t(rn,nn,an){let sn=rn.layout;if(!sn)return-1;let[ln,cn]=Wa(sn,nn,an,1);return Xke(sn,ln,cn)}function TBe(rn,{phase:nn,x:an,y:sn}){let{layout:ln,scene:cn}=rn,un=U4t(rn,an,sn),dn=rn.phase==="playing"&&rn.turn==="O"&&un>=0&&rn.board[un]===null;if(nn==="start")rn.press=dn?un:-1;else if(un!==rn.press)rn.press=-1;if(nn==="end"){let pn=rn.press;if(rn.press=-1,cn)gE(rn.world,cn);if(pn>=0)W4t(rn,pn);return}if(ln&&cn)if(rn.press>=0)lBe(rn.world,ln,cn,rn.press);else gE(rn.world,cn)}var F4t=240,H4t=(rn,nn)=>rn==="win"?Vke+Math.max(0,nn)*BH:rn==="draw"?zke+Math.max(0,nn)*(BH/2):kH,fBe=(rn)=>rn.result?rn.finalScore:kH;var xBe=e(()=>{ba();NI();Qke();dBe()});var kr={};n(kr,{TicTacToe:()=>ho});import{useMemo as V4t}from"react";import{jsx as Y4t}from"react/jsx-runtime";var km,z4t=30,RBe,q4t,ho;var De=e(()=>{Ta();l();a();_a();o();Hn();xa();va();NI();xBe();km=t.TIC_TAC_TOE,RBe={place:{sound:km.PLACE,haptic:"light"},robot:{sound:km.ROBOT,haptic:"light"},win:{sound:km.WIN,haptic:"success"},lose:{sound:km.LOSE,haptic:"error"},draw:{sound:km.DRAW,haptic:"medium"}},q4t={win:["YOU WON!","You beat the robot!"],lose:["YOU LOST!","The robot wins!"],draw:["DRAW!","Nobody wins this round!"],timeout:["TIME UP!","You ran out of time!"]},ho=Vn("tic-tac-toe",(rn)=>{let[nn,an]=gn("O"),[sn,ln]=gn(Jh),{game:cn,theme:un,screen:dn,gameOver:pn}=zn(rn,{gameId:"tic-tac-toe",create:mBe,start:EBe,reset:SBe,dispose:_Be,tick:vBe,setTheme:bBe,resize:(bn,yn,En,Sn)=>{let _n=Kke(yn,En,Sn,c);return hBe(bn,_n),_n.size+_n.pad*2},drag:TBe,outcome:(bn)=>bn.result==="win"?"win":bn.result==="draw"?"draw":"lose",reportScore:(bn,yn)=>yn==="win"?bn.finalScore:0,sounds:km,onStart:(bn)=>bn(km.START,"medium"),onOver:(bn,yn,En)=>{if(En.result==="timeout")bn(km.TIME_UP,"error")},wire:(bn,yn)=>{bn.onTurn=an,bn.onTime=ln,bn.onEvent=(En)=>yn(RBe[En].sound,RBe[En].haptic)}}),mn=V4t(()=>ws(un.BACKGROUND),[un.BACKGROUND]),[fn,hn]=q4t[cn.result??"timeout"];return Y4t(Un,{...dn,light:Yke,background:mn,columns:[ma("YOU","O",Ql.O_BADGE),ta(sn,un,z4t,nn==="O"?"YOUR TURN":"AI THINKING..."),ma("AI","X",Ql.X_BADGE)],subtext:"Play vs Robot!",gameOver:pn({title:fn,message:hn,scoreLabel:"Final Score",score:fBe(cn),buttonText:"Play Again!"})})})});var Br={};n(Br,{BOARD_COLS:()=>YT,BOARD_ROWS:()=>KT,CLASSIC_BOARD:()=>lW,CLASSIC_SLOT:()=>dW,CLASSIC_SLOT_BORDER:()=>pW,CLASSIC_TRAY:()=>cW,CLASSIC_TRAY_BORDER:()=>uW,FLY_TIME:()=>$T,INTRO_SPRING:()=>oW,LAND_SPRING:()=>eW,LAND_SQUASH:()=>tW,LAYER_COUNT:()=>YH,LAYER_STAGGER:()=>nW,LIFT_AT:()=>XH,LIFT_SCALE:()=>jH,LIGHT:()=>aW,MATCH_BURST_TIME:()=>WI,MATCH_CHECK_DELAY:()=>$H,MATCH_COUNT:()=>XT,MATCH_REMOVE_DELAY:()=>ZH,POINTS_PER_SET:()=>jT,RIPPLE_TIME:()=>rW,SHADE_TIME:()=>QH,SHIFT_SPRING:()=>JH,SLOT_CAPACITY:()=>e1,TILES_PER_TYPE:()=>HI,TILE_FACE:()=>sW,TILE_THICKNESS:()=>iW,TILE_TYPES:()=>Au,TIME_LIMIT:()=>t1,TOTAL_SETS:()=>KH,getLayout:()=>mW,shadeFor:()=>UI,slotOrigin:()=>DE,tileOrigin:()=>ZT});function mW(rn,nn,an){let sn=$n(rn),ln=(sn-BI*2)/YT,cn=ln-2,un=KT*ln+BI*2,dn=Math.floor((sn-FI*2-(e1-1)*CBe)/e1),pn=dn+FI*2,mn=pn+MBe+un,fn=an+(nn-an-mn)/2,hn=(rn-sn)/2;return{width:rn,height:nn,boardLeft:hn,boardTop:fn+pn+MBe,boardWidth:sn,boardHeight:un,cell:ln,tile:cn,fruit:cn-12,trayLeft:hn,trayTop:fn,trayWidth:sn,trayHeight:pn,slot:dn}}var YT=6,KT=7,YH=3,HI=6,e1=7,XT=3,t1=300,jT=500,Au,KH,$T=0.25,XH=0.28,jH=1.08,$H=0.3,ZH=0.4,WI=0.55,QH=0.22,JH,eW,tW=1.12,oW,rW=0.3,nW=0.07,UI=(rn)=>rn>0?Math.min(0.2+rn*0.15,0.6):0,aW,sW="#fffdf7",iW=0.4,lW="rgba(255, 255, 255, 0.35)",cW="rgba(255, 255, 255, 0.45)",uW="rgba(255, 255, 255, 0.6)",dW="rgba(255, 255, 255, 0.25)",pW="rgba(255, 255, 255, 0.5)",BI=8,FI=8,ABe=1,CBe=4,MBe=10,ZT=(rn,nn,an,sn)=>[rn.boardLeft+BI+nn*rn.cell+sn*(rn.cell/2),rn.boardTop+BI+an*rn.cell+sn*(rn.cell/2)],DE=(rn,nn)=>[rn.trayLeft+ABe+FI+nn*(rn.slot+CBe),rn.trayTop+ABe+FI];var Ne=e(()=>{Hn();Au=[{fruit:"apple",color:"#dc2626"},{fruit:"orange",color:"#f97316"},{fruit:"banana",color:"#fbbf24"},{fruit:"grapes",color:"#7c3aed"},{fruit:"kiwi",color:"#84cc16"},{fruit:"strawberry",color:"#ef4444"},{fruit:"mango",color:"#f59e0b"},{fruit:"cherries",color:"#be123c"},{fruit:"pineapple",color:"#eab308"},{fruit:"watermelon",color:"#22c55e"},{fruit:"peach",color:"#fda4af"},{fruit:"pomegranate",color:"#9f1239"}],KH=Au.length*HI/XT,JH={stiffness:200,damping:15},eW={stiffness:260,damping:9},oW={stiffness:400,damping:18,mass:1},aW=Zn([-0.35,0.6,1],0.5)});import{extrude as K4t,Path as LBe}from"@nayan-ui/engine";function PBe(rn,nn,an){let sn=K4t(rn,{depth:0,fillRule:"evenodd"}),ln=sn.vertices;for(let cn=0;cn<ln.length;cn+=11){let[un,dn,pn]=an(ln[cn],-ln[cn+1]);ln[cn+2]=nn,ln[cn+6]=un,ln[cn+7]=dn,ln[cn+8]=pn}return sn}function yW(rn,nn,an){let sn=an.mode==="classic",ln=[oa(rn,nn.width,nn.height,X4t,an)],cn=(pn,mn,fn,hn,bn,yn,En=0,Sn=QT)=>ln.push(rn.spawn({mesh:J4t(fn,hn,bn,En),position:JT(nn,pn,mn,Sn),color:xn(yn),pickable:!1})),un=sn?16:8;if(cn(nn.boardLeft,nn.boardTop,nn.boardWidth,nn.boardHeight,un,sn?lW:an.BOARD.SURFACE),!sn)cn(nn.boardLeft,nn.boardTop,nn.boardWidth,nn.boardHeight,un,an.BOARD.BORDER,1,QT+0.2);let dn=sn?12:8;cn(nn.trayLeft,nn.trayTop,nn.trayWidth,nn.trayHeight,dn,sn?cW:an.BOARD.SURFACE),cn(nn.trayLeft,nn.trayTop,nn.trayWidth,nn.trayHeight,dn,sn?uW:an.BOARD.BORDER,1,QT+0.2);for(let pn=0;pn<e1;pn++){let[mn,fn]=DE(nn,pn);cn(mn,fn,nn.slot,nn.slot,8,sn?dW:an.BOARD.CELL_EMPTY,0,QT+0.4),cn(mn,fn,nn.slot,nn.slot,8,sn?pW:an.BOARD.BORDER,1.5,QT+0.6)}return ln}function EW(rn,nn,an,sn,ln,cn,un){let dn=nn.tile,pn=[-dn/2,dn/2,0],mn=dn*iW,fn=rn.spawn({mesh:"none",position:JT(nn,sn,ln,cn),scale:un,pickable:!1}),hn=ai(rn,{parent:fn,position:[0,0,-mn/2],size:[dn,dn,mn],color:xn(sW),gloss:!1,shadow:!1}),bn=rn.spawn({mesh:Q4t(dn),parent:fn,position:[pn[0],pn[1],Z4t],color:[0,0,0,0],pickable:!1}),yn=an?SW(rn,nn,fn,an,!1):null;return{root:fn,shade:bn,fruit:yn,parts:yn==null?[hn]:[hn,yn]}}function SW(rn,nn,an,sn,ln){let cn=nn.fruit/Math.max(sn.whole.size[0],sn.whole.size[1]),un=rn.spawn({mesh:sn.whole,parent:an,position:[-sn.center[0]*cn,1-sn.center[1]*cn,$4t-sn.center[2]*cn],scale:ln?0:cn,color:[1,1,1,1],pickable:!1});if(ln)rn.animate(un,{scale:cn},{duration:0.22,easing:"back"});return un}var X4t=1,QT=4,j4t=120,IBe=20,fW=420,$4t=32,Z4t=70,hW=(rn)=>IBe+rn*j4t,bW,JT=(rn,nn,an,sn=0)=>[nn-rn.width/2,rn.height/2-an,sn],wBe,OBe=(rn,nn)=>{let an=wBe.get(rn);if(!an)an=Bn("tile-home/TileHomeScene:"+rn,nn),wBe.set(rn,an);return an},Q4t=(rn)=>OBe(`shade:${rn}`,()=>wn(PBe(new LBe().addRoundedRect(0,0,rn,rn,8),0,()=>[1,1,1]),{center:!1})),J4t=(rn,nn,an,sn=0)=>OBe(`panel:${rn}:${nn}:${an}:${sn}`,()=>{let ln=new LBe().addRoundedRect(0,0,rn,nn,an);if(sn>0)ln.addRoundedRect(sn,sn,rn-sn*2,nn-sn*2,an-sn);return wn(PBe(ln,0,()=>[1,1,1]),{center:!1})});var gBe=e(()=>{u();l0();na();Hn();Ne();bW=IBe,wBe=new Map});import{World as eDt}from"@nayan-ui/engine";function NBe(){let rn=DBe(Au.flatMap((an,sn)=>Array.from({length:HI},()=>sn))),nn=[];for(let an=0;an<YH;an++)for(let sn=0;sn<KT-an;sn++)for(let ln=0;ln<YT-an;ln++)nn.push({col:ln,row:sn,layer:an});return DBe(nn),rn.slice(0,nn.length).map((an,sn)=>({typeId:an,...nn[sn],blocking:0,covers:[],root:null,shade:null,fruit:null,parts:[]}))}function GBe(rn){for(let nn of rn)nn.blocking=0,nn.covers.length=0;for(let nn of rn){let an=nn.col+nn.layer*0.5,sn=nn.row+nn.layer*0.5;for(let ln of rn){if(ln.layer<=nn.layer)continue;if(Math.abs(ln.col+ln.layer*0.5-an)<1&&Math.abs(ln.row+ln.layer*0.5-sn)<1)nn.blocking++,ln.covers.push(nn)}}}function kBe(rn){let nn=new eDt(tDt),an={eye:[0,0,500],target:[0,0,0],fov:1,ortho:1},sn=NBe();GBe(sn);let ln={world:nn,camera:an,theme:rn,layout:null,fruits:{},scenery:[],phase:"ready",get score(){return nn.scoreboard.score},won:!1,board:sn,slot:[],flying:null,matching:[],intro:!0,introAge:-1,onPhase:(cn)=>{},onScore:(cn)=>{},onTime:(cn)=>{},onPick:()=>{},onMatch:()=>{},onWin:()=>{},onLose:()=>{}};return BBe(ln),nn.scoreboard.handlers={onScore:(cn)=>ln.onScore(cn),onSecond:(cn)=>ln.onTime(cn),onTimeUp:()=>ln.phase==="playing"&&xW(ln,!1)},ln}function BBe(rn){let nn=rn.world.scoreboard;nn.reset(),nn.startCountdown(t1),nn.stop()}function TW(rn,nn,an){if(rn.world.isDisposed||rn.fruits[nn])return;rn.fruits[nn]=an;let sn=rn.layout;if(!sn)return;let ln=[...rn.board,...rn.slot,...rn.flying?[rn.flying.tile]:[]];for(let cn of ln){if(cn.root==null||cn.fruit!=null||Au[cn.typeId].fruit!==nn)continue;cn.fruit=SW(rn.world,sn,cn.root,an,!0),cn.parts.push(cn.fruit)}}function FBe(rn,nn){let an=rn.layout;rn.layout=nn,rn.camera.ortho=nn.height/2;for(let sn of rn.scenery)rn.world.despawn(sn);if(rn.scenery=yW(rn.world,nn,rn.theme),an&&an.tile===nn.tile&&an.slot===nn.slot){let sn=rn.world.transforms;for(let ln of rn.board){if(ln.root==null)continue;let[cn,un,dn]=WBe(nn,ln);sn.position(ln.root,cn,un,dn)}rn.slot.forEach((ln,cn)=>{if(ln.root==null)return;let[un,dn,pn]=ex(nn,cn);sn.position(ln.root,un,dn,pn)}),sn.flush()}else UBe(rn)}function HBe(rn,nn){rn.theme=nn;let an=rn.layout;if(!an||rn.world.isDisposed)return;for(let sn of rn.scenery)rn.world.despawn(sn);rn.scenery=yW(rn.world,an,nn)}function _W(rn,nn){if(nn.root!=null)rn.world.despawn(nn.root);nn.root=null,nn.shade=null,nn.fruit=null,nn.parts=[]}function UBe(rn){let{layout:nn,fruits:an}=rn;if(!nn)return;if(rn.flying)XBe(rn);for(let ln of[...rn.board,...rn.slot])_W(rn,ln);let sn=rn.intro;if(sn)rn.introAge=0;for(let ln of rn.board){let[cn,un]=ZT(nn,ln.col,ln.row,ln.layer),dn=EW(rn.world,nn,an[Au[ln.typeId].fruit],cn+nn.tile/2,un+nn.tile/2,hW(ln.layer),sn?0:1);if(ln.root=dn.root,ln.shade=dn.shade,ln.fruit=dn.fruit,ln.parts=dn.parts,rn.world.set(dn.shade,{color:[0,0,0,UI(ln.blocking)]}),sn)rn.world.animate(dn.root,{scale:1},{spring:oW,delay:oDt(ln)})}rn.slot.forEach((ln,cn)=>{if(rn.matching.includes(ln))return;let[un,dn]=DE(nn,cn),pn=EW(rn.world,nn,an[Au[ln.typeId].fruit],un+nn.slot/2,dn+nn.slot/2,bW,VI(nn));ln.root=pn.root,ln.shade=pn.shade,ln.fruit=pn.fruit,ln.parts=pn.parts})}function VBe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(t1),rn.onPhase("playing")}function zBe(rn){if(rn.world.cancelTimers(),rn.flying)_W(rn,rn.flying.tile);rn.flying=null;for(let nn of[...rn.board,...rn.slot,...rn.matching])_W(rn,nn);rn.board=NBe(),GBe(rn.board),rn.slot=[],rn.matching=[],rn.intro=!0,UBe(rn),BBe(rn),rn.won=!1,rn.phase="ready",rn.onScore(0),rn.onTime(t1),rn.onPhase("ready")}function qBe(rn){rn.world.cancelTimers(),rn.world.dispose()}function xW(rn,nn){if(rn.world.cancelTimers(),rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",nn)rn.onWin();else rn.onLose();rn.onPhase("over")}function YBe(rn,nn){if(rn.world.isDisposed)return;fc(rn,nn),rn.world.update(nn)}function KBe(rn,nn,an){let sn=rn.layout;if(!sn||rn.phase!=="playing"||rn.flying)return;let ln=rn.board.findIndex((pn)=>{if(pn.blocking>0)return!1;let[mn,fn]=ZT(sn,pn.col,pn.row,pn.layer);return nn>=mn&&nn<=mn+sn.tile&&an>=fn&&an<=fn+sn.tile});if(ln<0)return;let cn=rn.board.splice(ln,1)[0];for(let pn of cn.covers)if(pn.blocking--,pn.shade!=null)rn.world.animate(pn.shade,{color:[0,0,0,UI(pn.blocking)]},{duration:QH});let un=rn.slot.findIndex((pn)=>pn.typeId===cn.typeId),dn=un>=0?un+1:rn.slot.length;if(rn.flying={tile:cn,index:dn},RW(rn),cn.root!=null){let pn=WBe(sn,cn);rn.world.set(cn.root,{position:[pn[0],pn[1],fW]}),rn.world.animate(cn.root,{position:ex(sn,dn,fW)},{duration:$T}),rn.world.animate(cn.root,[{scale:jH,at:XH},{scale:VI(sn)}],{duration:$T})}vW(rn,$T,()=>XBe(rn)),rn.onPick()}function XBe(rn){let{flying:nn,layout:an}=rn;if(!nn||!an)return;rn.flying=null;let sn=nn.tile,ln=rn.slot.findIndex((un)=>un.typeId===sn.typeId),cn=ln>=0?ln+1:rn.slot.length;if(rn.slot.splice(cn,0,sn),sn.root!=null){let un=VI(an);rn.world.stopAnimation(sn.root),rn.world.set(sn.root,{position:ex(an,cn),scale:un*tW}),rn.world.animate(sn.root,{scale:un},{spring:eW})}RW(rn,sn),vW(rn,$H,()=>rDt(rn))}function RW(rn,nn){let an=rn.layout;if(!an)return;let sn=rn.flying?.index??-1;rn.slot.forEach((ln,cn)=>{if(ln===nn||ln.root==null)return;rn.world.animate(ln.root,{position:ex(an,sn>=0&&cn>=sn?cn+1:cn)},{spring:JH})})}function rDt(rn){if(rn.phase!=="playing"||rn.matching.length)return;for(let nn=0;nn<Au.length;nn++){let an=rn.slot.filter((sn)=>sn.typeId===nn);if(an.length<XT)continue;rn.matching=an.slice(0,XT),nDt(rn),rn.onMatch(),vW(rn,ZH,()=>aDt(rn));return}if(rn.slot.length>=e1)xW(rn,!1)}function nDt(rn){let nn=rn.layout;rn.matching.forEach((an,sn)=>{let ln=an.root;if(ln==null)return;let cn=ex(nn,rn.slot.indexOf(an)),un=xn(Au[an.typeId].color);Xs(rn.world,ln,{scale:VI(nn),flash:an.parts,delay:sn/rn.matching.length*0.1*WI,duration:WI},{position:[cn[0],cn[1],cn[2]+40],size:nn.slot,color:un,glowZ:cn[2]-2}).then(()=>{rn.world.despawn(ln)}),an.root=null,an.parts=[]})}function aDt(rn){if(rn.phase!=="playing")return;let nn=new Set(rn.matching);if(rn.slot=rn.slot.filter((an)=>!nn.has(an)),rn.matching=[],rn.world.scoreboard.add(jT),RW(rn),rn.board.length===0&&rn.slot.length===0&&!rn.flying)rn.world.scoreboard.awardTimeBonus(mme),xW(rn,!0)}var tDt=900,DBe=(rn)=>{for(let nn=rn.length-1;nn>0;nn--){let an=Math.floor(Math.random()*(nn+1));[rn[nn],rn[an]]=[rn[an],rn[nn]]}return rn},oDt=(rn)=>{let nn=(YT-1)/2,an=(KT-1)/2,sn=Math.hypot(nn+1,an+1),ln=Math.hypot(rn.col+rn.layer*0.5-nn,rn.row+rn.layer*0.5-an);return Math.min(ln,sn)/sn*rW+rn.layer*nW},vW=(rn,nn,an)=>rn.world.after(nn,an),WBe=(rn,nn)=>{let[an,sn]=ZT(rn,nn.col,nn.row,nn.layer);return JT(rn,an+rn.tile/2,sn+rn.tile/2,hW(nn.layer))},ex=(rn,nn,an=bW)=>{let[sn,ln]=DE(rn,nn);return JT(rn,sn+rn.slot/2,ln+rn.slot/2,an)},VI=(rn)=>rn.slot/rn.tile;var jBe=e(()=>{ci();f();Hn();Ne();gBe()});var Fr={};n(Fr,{TileHome:()=>bo});import{jsx as sDt}from"react/jsx-runtime";var tx,$Be=(rn)=>rn.toLocaleString(),zI=0.25,bo;var Ge=e(()=>{Ta();l();a();M();_a();xa();va();Ne();jBe();tx=t.TILE_HOME,bo=Vn("tile-home",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(t1),{status:cn,screen:un,gameOver:dn}=zn(rn,{gameId:"tile-home",create:kBe,start:VBe,reset:zBe,dispose:qBe,tick:YBe,setTheme:HBe,resize:(mn,fn,hn,bn)=>{let yn=mW(fn,hn,bn);return FBe(mn,yn),yn.boardWidth},tap:KBe,onStart:(mn)=>mn(tx.START,"medium"),wire:(mn,fn)=>{mn.onScore=an,mn.onTime=ln,mn.onPick=()=>fn(tx.PICK,"light"),mn.onMatch=()=>fn(tx.MATCH,"medium"),mn.onWin=()=>fn(tx.WIN,"success"),mn.onLose=()=>fn(tx.GAME_OVER,"heavy");let hn=[...new Set(Au.map((Sn)=>Sn.fruit))];for(let Sn of hn)if(_d(Sn,zI))TW(mn,Sn,Lc(Sn,zI));let bn=hn.filter((Sn)=>!_d(Sn,zI)),yn=0,En=()=>{let Sn=bn.shift();if(!Sn||mn.world.isDisposed)return;if(TW(mn,Sn,Lc(Sn,zI)),bn.length)yn=requestAnimationFrame(En)};if(bn.length)yn=requestAnimationFrame(En);return()=>{if(yn)cancelAnimationFrame(yn)}}}),pn=Math.max(0,KH-Math.floor(nn/jT));return sDt(Un,{...un,light:aW,columns:[{label:"SCORE",value:$Be(nn)},{label:"SETS",value:String(pn)},{label:"TIME",value:E(Math.max(0,Math.ceil(sn)))}],subtext:"Match tiles!",gameOver:dn({title:cn==="win"?"YOU WON!":"TIME UP!",message:cn==="win"?"All tiles sorted home!":"You ran out of time!",scoreLabel:cn==="win"?"You Won!":"Game Over",score:nn,formatter:$Be,buttonText:cn==="win"?"Play Again!":"Try Again!"})})})});function a7e(rn,nn,an){let sn=la(an)+iDt+cDt,ln=Fl(rn,nn,{eyeHeight:ZBe,horizon:sn/nn,playDepth:3}),cn=gf(ln,rn/2,nn-lDt),un=-(ZBe/-cn[1])*cn[2],dn=Math.min(rn-uDt,rn/2+$n(rn)/2),pn=0.05,mn=3;for(let yn=0;yn<40;yn++){let En=(pn+mn)/2,[Sn]=GE(ln,[En*(1+o1),0,-(un+En*o1)]);if(Sn>dn)mn=En;else pn=En}let fn=Math.min(pn,(dDt-un)/(o1*2+(NE-1)*QBe)),hn=un+fn*o1,bn=[];for(let yn=0;yn<NE;yn++)for(let En=0;En<NE;En++)bn.push([(En-1)*fn,0,-(hn+(NE-1-yn)*fn*QBe)]);return{width:rn,height:nn,view:ln,spacing:fn,nearZ:hn,holes:bn}}function GE(rn,nn){let an=[nn[0]-rn.eye[0],nn[1]-rn.eye[1],nn[2]-rn.eye[2]],sn=an[0]*rn.forward[0]+an[1]*rn.forward[1]+an[2]*rn.forward[2],ln=an[0]*rn.up[0]+an[1]*rn.up[1]+an[2]*rn.up[2],cn=rn.height/2/(rn.tanHalf*Math.max(sn,0.001));return[rn.width/2+an[0]*cn,rn.height/2-ln*cn]}function s7e(rn){let nn=rn.view.horizon;return{sun:[0.82,nn*0.55],clouds:[0.02,nn*0.8],hotAirBalloons:1}}var NE=3,ox,r1=120,JBe=500,e7e=10,t7e=1,o7e=1.5,AW=1.05,r7e=2,ZBe=1.6,QBe=1.6,o1=0.36,n7e=0.62,iDt=82,lDt=175,cDt=45,uDt=14,dDt=5.3;var qI=e(()=>{o();d();Hn();ox=NE*NE});import{effects as KI,lathe as l7e,merge as pDt,quat as Hm,shapeGeometry as c7e,tube as mDt}from"@nayan-ui/engine";function d7e(rn,nn,an){let sn=vc(an),ln=$i(rn,nn.view,an,{...s7e(nn),foreground:!1}),cn=Ds(11),un=nn.spacing,dn=-nn.holes[nn.holes.length-1][2],pn=-nn.holes[0][2],mn=(En,Sn)=>nn.holes.every(([_n,,vn])=>Math.hypot(En-_n,Sn-vn)>un*o1*2),fn=(En,Sn,_n,vn,Tn,Rn)=>{for(let An=0,Mn=0;An<vn&&Mn<vn*8;Mn++){let Cn=-(Tn+cn()*(Rn-Tn)),Ln=(cn()*2-1)*(-Cn*0.62+0.4);if(!mn(Ln,Cn))continue;ln.push(rn.spawn({mesh:En,position:[Ln,0,Cn],scale:Sn,rotation:Hm.y(cn()*6.3),color:MW(_n,sn),pickable:!1})),An++}};fn(rd(),0.9,[1,1,1,1],70,dn-un,pn+un*1.4);let hn=["#FF6B9D","#FFFFFF","#FFD54F","#B784FF","#6FA8FF"].map((En)=>xn(En));for(let En=0;En<5;En++)fn(Nf(),0.8,hn[En],5,dn-un*0.5,pn+un*1.4);fn(Np(),[0.07,0.05,0.06],[0.85,0.8,0.75,1],14,dn-un*0.5,pn+un);let bn=nn.holes.map(([En,,Sn])=>rn.spawn({mesh:fDt(),position:[En,0,Sn],scale:un,rotation:Hm.y(cn()*6.3),color:MW([1,1,1,1],sn),pickable:!1})),yn=nn.holes.map((En,Sn)=>rn.spawn({mesh:hDt(),position:BE(nn,Sn,!1),scale:FE(nn),color:MW([1,1,1,1],sn),pickable:!1}));return{scenery:ln,mounds:bn,moles:yn}}function p7e(rn,nn){for(let an of[...nn.scenery,...nn.mounds,...nn.moles])rn.despawn(an)}function m7e(rn,nn,an,sn){let ln=an.moles[sn];rn.stopAnimation(ln),rn.set(ln,{position:BE(nn,sn,!1),scale:FE(nn),rotation:Hm.y(0)}),rn.animate(ln,{position:BE(nn,sn,!0)},{spring:{stiffness:200,damping:15}}),rn.animate(ln,[{rotation:Hm.y(0.35),at:0.3},{rotation:Hm.y(-0.35),at:0.8},{rotation:Hm.y(0)}],{duration:1.6,delay:0.25,easing:"easeInOut"})}function f7e(rn,nn,an,sn){let ln=an.moles[sn];rn.stopAnimation(ln),rn.animate(ln,{position:BE(nn,sn,!1)},{duration:0.22,easing:"easeIn"})}function h7e(rn,nn,an,sn){let ln=an.moles[sn],cn=FE(nn);rn.stopAnimation(ln),rn.animate(ln,[{scale:[cn*1.25,cn*0.55,cn*1.25],at:0.25},{scale:[cn*1.1,cn*0.7,cn*1.1]}],{duration:0.18}),rn.animate(ln,{position:BE(nn,sn,!1)},{duration:0.28,delay:0.14,easing:"easeIn"}),rn.animate(ln,{scale:cn},{duration:0.01,delay:0.45});let[un,,dn]=nn.holes[sn];KI.sparkle(rn,{position:[un,XI(nn)*0.75,dn],count:14,size:nn.spacing*0.06,speed:nn.spacing*2.2,direction:[0,1,0],spread:1.1,lifetime:0.55,gravity:-nn.spacing*4,colors:[xn("#FFD700"),xn("#FFF59D"),xn("#FFA500")]})}function b7e(rn,nn,an){let[sn,,ln]=nn.holes[an];KI.shatter(rn,{position:[sn,nn.spacing*0.05,ln],count:8,mesh:"sphere",size:nn.spacing*0.05,speed:nn.spacing*1.6,direction:[0,1,0],spread:1.2,lifetime:0.45,gravity:-nn.spacing*6,colors:[xn("#7A4E2D"),xn("#A27449")],flash:!1})}function y7e(rn,nn,an,sn){let[ln,,cn]=nn.holes[an],un=nn.spacing;KI.dust(rn,{position:[ln,un*0.05,cn],count:Math.round(10*sn),size:un*0.22*sn,speed:un*2.2*sn,direction:[0,1,0],spread:1.45,lifetime:0.5,color:yDt,endSize:2.2})}function E7e(rn,nn,an){let[sn,,ln]=nn.holes[an],cn=nn.spacing,un=[sn,XI(nn)*0.8,ln+cn*0.2];KI.flash(rn,{position:un,color:bDt,size:cn*0.5,lifetime:0.16,endSize:2.4});let dn=8,pn=Math.random()*Math.PI;for(let mn=0;mn<dn;mn++){let fn=pn+mn/dn*Math.PI*2,[hn,bn]=[Math.cos(fn),Math.sin(fn)],yn=cn*0.32,En=cn*(0.75+mn%2*0.2),Sn=rn.spawn({mesh:"cube",position:[un[0]+hn*yn,un[1]+bn*yn,un[2]],rotation:Hm.z(fn),scale:[cn*0.2,cn*0.05,cn*0.02],color:YI,pickable:!1});rn.animate(Sn,{position:[un[0]+hn*En,un[1]+bn*En,un[2]],scale:[cn*0.04,cn*0.012,cn*0.02],color:[YI[0],YI[1],YI[2],0]},{duration:0.26,easing:"easeOut"}).then(()=>{if(rn.has(Sn))rn.despawn(Sn)})}y7e(rn,nn,an,1)}function S7e(rn,nn,an){y7e(rn,nn,an,0.6)}function _7e(rn,nn,an){an.moles.forEach((sn,ln)=>{rn.stopAnimation(sn),rn.set(sn,{position:BE(nn,ln,!1),scale:FE(nn),rotation:Hm.y(0)})})}var i7e,u7e=(rn,nn)=>{let an=i7e.get(rn);if(!an)an=Bn("whack-a-mole/WhackAMoleScene:"+rn,nn),i7e.set(rn,an);return an},Fm=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},rx=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an],CW=(rn,nn)=>[rn[0]*nn,rn[1]*nn,rn[2]*nn],kE=(rn,nn,an)=>{let sn=Math.min(1,Math.max(0,(an-rn)/(nn-rn)));return sn*sn*(3-2*sn)},Bm=()=>c7e("sphere"),MW=(rn,nn)=>[rn[0]*nn[0],rn[1]*nn[1],rn[2]*nn[2],rn[3]??1],fDt=()=>u7e("wam-mound",()=>{let rn=Fm("#7A4E2D"),nn=Fm("#A27449"),an=Fm("#140B05"),sn=o1;return wn(l7e([[sn*1.75,0],[sn*1.45,sn*0.12],[sn*1.12,sn*0.3],[sn*0.95,sn*0.32],[sn*0.8,sn*0.16],[sn*0.66,sn*0.03],[0.001,sn*0.015]],{segments:40,displace:(ln,cn)=>cn<0.6?0.012*Math.sin(ln*Math.PI*2*9)*Math.sin(cn*Math.PI):0,color:({position:ln})=>{let cn=Math.hypot(ln[0],ln[2])/sn,un=0.82+0.36*Oa(ln[0]*40+5,ln[2]*40),dn=rx(CW(rn,0.65),nn,kE(0.9,1.15,cn)*(1-kE(1.3,1.75,cn)*0.6));return CW(rx(an,dn,kE(0.62,0.92,cn)),un)}}),{center:!1,shine:0.05})}),hDt=()=>u7e("wam-mole",()=>{let rn=Fm("#7B5134"),nn=Fm("#4E3220"),an=Fm("#E8B48A"),sn=Fm("#FF6F91"),ln=Fm("#F2A99B"),cn=l7e([[0.33,-0.45],[0.36,0.05],[0.35,0.4],[0.3,0.66],[0.2,0.84],[0.001,0.93]],{segments:32,color:({position:pn,normal:mn})=>{let fn=kE(0.35,0.85,mn[2])*(1-kE(0.35,0.6,pn[1])),hn=rx(rx(nn,rn,kE(-0.3,0.6,pn[1])),an,fn*0.65);return CW(hn,0.85+0.3*Oa(pn[0]*30+pn[1]*8,pn[2]*30+pn[1]*70))}}),un=(pn)=>[pn,{...pn,position:[-pn.position[0],pn.position[1],pn.position[2]]}],dn=[];for(let pn of[1,-1])for(let[mn,fn]of[[0.02,0.04],[-0.02,0],[-0.06,-0.03]])dn.push({geometry:mDt([[pn*0.1,0.62+mn,0.36],[pn*0.24,0.63+mn*1.6,0.34+fn],[pn*0.36,0.62+mn*2.4,0.3+fn]],{radius:0.006,sides:4,smoothness:4,color:[0.15,0.1,0.08]})});return wn(pDt([{geometry:cn},{geometry:Bm(),position:[0,0.6,0.27],scale:[0.25,0.19,0.22],color:[...an,1]},{geometry:Bm(),position:[0,0.65,0.38],scale:[0.11,0.085,0.09],color:[...sn,1]},{geometry:Bm(),position:[0.02,0.675,0.42],scale:0.025,color:[1,1,1,1]},...un({geometry:c7e("roundedBox"),position:[0.025,0.52,0.355],scale:[0.04,0.06,0.02],color:[1,1,0.96,1]}),...un({geometry:Bm(),position:[0.11,0.77,0.25],scale:0.075,color:[0.04,0.03,0.03,1]}),...un({geometry:Bm(),position:[0.095,0.79,0.285],scale:0.022,color:[1,1,1,1]}),...un({geometry:Bm(),position:[0.23,0.84,0],scale:[0.11,0.09,0.05],color:[...nn,1]}),...un({geometry:Bm(),position:[0.2,0.6,0.2],scale:[0.11,0.08,0.06],color:[...rx(an,sn,0.35),1]}),...un({geometry:Bm(),position:[0.2,0.2,0.3],scale:[0.17,0.09,0.15],color:[...ln,1]}),...dn]),{center:!1,shine:0.22})}),FE=(rn)=>n7e*rn.spacing/0.93,BE=(rn,nn,an)=>{let[sn,,ln]=rn.holes[nn];return[sn,an?0:-FE(rn)*1.05,ln]},XI=(rn)=>FE(rn)*0.9,YI,bDt,yDt;var v7e=e(()=>{d();na();Hn();qI();i7e=new Map;YI=[2.2,1.85,0.7,0.95],bDt=[2.4,2.1,1.2,0.8],yDt=[0.86,0.74,0.56,0.6]});import{World as EDt}from"@nayan-ui/engine";function T7e(rn){let nn=new EDt(SDt),sn={world:nn,camera:{eye:[0,1.6,0],target:[0,1,-3],fov:0.9},theme:rn,layout:null,hitLayout:null,hitZones:[],scene:null,phase:"ready",get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},up:Array(ox).fill(!1),hideAt:Array(ox).fill(0),nextSpawn:0,clock:0,onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,r1),nn.scoreboard.handlers={onScore:(ln)=>sn.onScore(ln),onSecond:(ln)=>{if(sn.onTime(ln),ln===e7e&&sn.phase==="playing")sn.onEvent("warning")},onTimeUp:()=>sn.phase==="playing"&&TDt(sn)},sn}function wW(rn,nn){if(rn.scene)p7e(rn.world,rn.scene);rn.layout=nn;let an=fl(nn.view);rn.camera.eye=an.eye,rn.camera.target=an.target,rn.camera.fov=an.fov,rn.scene=d7e(rn.world,nn,rn.theme),rn.up.forEach((sn,ln)=>sn&&rn.scene&&rn.world.set(rn.scene.moles[ln],{position:[nn.holes[ln][0],0,nn.holes[ln][2]]}))}function x7e(rn,nn){if(nn===rn.theme)return;if(rn.theme=nn,rn.layout&&!rn.world.isDisposed)wW(rn,rn.layout)}function R7e(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.nextSpawn=rn.clock+t7e,rn.world.scoreboard.startCountdown(r1),rn.onPhase("playing")}function A7e(rn){rn.world.cancelTimers(),C7e(rn),rn.world.scoreboard.reset(0,r1),rn.phase="ready",rn.onScore(0),rn.onTime(r1),rn.onPhase("ready")}function M7e(rn){rn.world.dispose()}function C7e(rn){if(rn.up.fill(!1),rn.layout&&rn.scene)_7e(rn.world,rn.layout,rn.scene)}function w7e(rn,nn){if(rn.world.isDisposed)return;if(rn.clock+=Math.min(nn,_Dt),rn.phase==="playing"){for(let an=0;rn.phase==="playing"&&an<ox;an++)if(rn.up[an]&&rn.clock>=rn.hideAt[an]){if(rn.up[an]=!1,rn.layout&&rn.scene)f7e(rn.world,rn.layout,rn.scene,an);rn.onEvent("miss")}if(rn.phase==="playing"&&rn.clock>=rn.nextSpawn)vDt(rn),rn.nextSpawn=rn.clock+AW+Math.random()*(o7e-AW)}rn.world.update(nn)}function vDt(rn){let nn=[];for(let sn=0;sn<ox;sn++)if(!rn.up[sn])nn.push(sn);if(!nn.length)return;let an=nn[Math.floor(Math.random()*nn.length)];if(rn.up[an]=!0,rn.hideAt[an]=rn.clock+r7e,rn.layout&&rn.scene)m7e(rn.world,rn.layout,rn.scene,an);rn.onEvent("spawn")}function TDt(rn){rn.world.cancelTimers(),rn.world.scoreboard.stop(),C7e(rn),rn.phase="over",rn.onPhase("over")}function xDt(rn,nn,an){let sn=an[0]-nn[0],ln=an[1]-nn[1],cn=sn||ln?Math.max(0,Math.min(1,((rn[0]-nn[0])*sn+(rn[1]-nn[1])*ln)/(sn*sn+ln*ln))):0;return Math.hypot(rn[0]-(nn[0]+sn*cn),rn[1]-(nn[1]+ln*cn))}function RDt(rn,nn,an){let sn=rn.layout;if(!sn)return null;if(rn.hitLayout!==sn){let dn=XI(sn);rn.hitZones=sn.holes.map((pn)=>{let mn=GE(sn.view,pn);return{rim:mn,reach:Math.abs(GE(sn.view,[pn[0]+sn.spacing,0,pn[2]])[0]-mn[0])*0.5,up:GE(sn.view,[pn[0],dn,pn[2]]),down:GE(sn.view,[pn[0],sn.spacing*0.15,pn[2]])}}),rn.hitLayout=sn}let ln=null,cn=1,un=[nn,an];return rn.hitZones.forEach(({rim:dn,up:pn,down:mn,reach:fn},hn)=>{let bn=rn.up[hn]?pn:mn,yn=xDt(un,dn,bn)/fn;if(yn<cn)ln=hn,cn=yn}),ln}function L7e(rn,nn,an){if(rn.phase!=="playing")return;let sn=RDt(rn,nn,an);if(sn==null)return;let{layout:ln,scene:cn}=rn;if(!rn.up[sn]){if(rn.onEvent("empty"),ln)b7e(rn.world,ln,sn),S7e(rn.world,ln,sn);return}if(rn.up[sn]=!1,rn.world.scoreboard.add(JBe),rn.onEvent("hit"),ln&&cn)h7e(rn.world,ln,cn,sn),E7e(rn.world,ln,sn)}var SDt=1000,_Dt=0.1;var I7e=e(()=>{d();qI();v7e()});var Hr={};n(Hr,{WhackAMole:()=>yo});import{useMemo as O7e}from"react";import{jsx as ADt}from"react/jsx-runtime";var Wm,P7e,yo;var ke=e(()=>{Ta();l();a();_a();o();d();xa();va();qI();I7e();Wm=t.WHACK_A_MOLE,P7e={spawn:{sound:Wm.SPAWN,haptic:"light"},hit:{sound:Wm.HIT,haptic:"heavy"},miss:{sound:Wm.MISS,haptic:"light"},empty:{sound:Wm.EMPTY_TAP,haptic:"medium"},warning:{sound:Wm.TIME_WARNING,haptic:"warning"}},yo=Vn("whack-a-mole",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(r1),{theme:cn,screen:un,gameOver:dn}=zn(rn,{gameId:"whack-a-mole",create:T7e,start:R7e,reset:A7e,dispose:M7e,tick:w7e,setTheme:x7e,resize:(fn,hn,bn,yn)=>wW(fn,a7e(hn,bn,yn)),tap:L7e,outcome:()=>"win",sounds:Wm,onStart:(fn)=>fn(Wm.START,"success"),onStop:(fn)=>fn(null,"medium"),onOver:(fn)=>fn(Wm.GAME_OVER,"error"),wire:(fn,hn)=>{fn.onScore=an,fn.onTime=ln,fn.onEvent=(bn)=>hn(P7e[bn].sound,P7e[bn].haptic)}}),pn=O7e(()=>ji(cn),[cn]),mn=O7e(()=>hl(cn),[cn]);return ADt(Un,{...un,light:pn,background:mn,columns:[Qn(nn),ta(sn,cn,0)],subtext:"Whack moles to score!",gameOver:dn({title:"TIME UP!",message:"Great whacking!",scoreLabel:"Final Score",score:nn,buttonText:"Whack Again!"})})})});var g7e;var D7e=e(()=>{g7e=["BABY","BACK","BAKE","BALL","BAND","BANK","BARN","BATH","BEAR","BELL","BELT","BIKE","BIRD","BLUE","BOAT","BODY","BOLT","BOMB","BONE","BOOK","BOOT","BOWL","BURN","BUSH","CAGE","CAKE","CALM","CAMP","CAPE","CARD","CART","CAVE","CHEF","CHIP","CITY","CLAP","CLAY","CLIP","CLUB","CLUE","COAL","COAT","COIN","COLD","COMB","COOK","COOL","COPY","CORN","COZY","CRAB","CREW","CROP","CROW","CUBE","CURE","CURL","CUTE","DARK","DART","DAWN","DEAL","DEAR","DECK","DEEP","DEER","DESK","DICE","DIRT","DISH","DOCK","DOME","DOOR","DOVE","DRAW","DRUM","DUCK","DUMP","DUNE","DUST","EARN","EAST","EASY","ECHO","EDGE","FACE","FAIR","FALL","FAME","FARM","FAST","FEAR","FEED","FEEL","FILM","FIND","FINE","FIRE","FISH","FLAG","FLAT","FLIP","FLOW","FOAM","FOLD","FOLK","FOOD","FOOL","FOOT","FORK","FORM","FORT","FOUR","FREE","FROG","FUEL","FULL","GAME","GATE","GEAR","GIFT","GIRL","GLAD","GLOW","GLUE","GOAT","GOLD","GOLF","GOOD","GRAY","GROW","GUST","HAIL","HAIR","HALF","HALL","HAND","HARE","HARP","HAWK","HEAD","HEAL","HEAR","HEAT","HELP","HERB","HERO","HIDE","HIGH","HIKE","HILL","HINT","HOLD","HOLE","HOME","HOOD","HOOK","HOPE","HORN","HOST","HOUR","HUGE","HUNT","HURT","ICON","IDEA","IRON","ISLE","ITEM","JACK","JADE","JAIL","JAZZ","JEAN","JOKE","JUMP","JURY","JUST","KEEN","KEEP","KICK","KIDS","KIND","KING","KISS","KITE","KNEE","KNIT","KNOB","KNOT","LACE","LAKE","LAMB","LAMP","LAND","LANE","LAST","LATE","LAWN","LEAD","LEAF","LEAN","LEAP","LEFT","LENS","LIFE","LIFT","LIKE","LIME","LINE","LINK","LION","LIST","LIVE","LOAD","LOAF","LOCK","LOGO","LONG","LOOK","LOOP","LORD","LOUD","LOVE","LUCK","LUNG","MAIL","MAKE","MALL","MANE","MANY","MASK","MAZE","MEAL","MEAT","MENU","MILD","MILK","MILL","MIND","MINE","MINT","MISS","MIST","MOON","MOSS","MOTH","MUCH","MULE","NAIL","NAME","NAVY","NEAR","NECK","NEST","NEWS","NICE","NINE","NOSE","NOTE","OAKS","OVEN","PACK","PAGE","PAID","PAIL","PAIR","PALM","PARK","PATH","PEAK","PEAR","PEEL","PETS","PICK","PINE","PINK","PIPE","PLAN","PLAY","PLUM","POEM","POND","POOL","PONY","PORT","POST","POUR","PULL","PUMP","PURE","QUIZ","RACE","RACK","RAFT","RAIN","RANK","RARE","READ","REAL","REED","REEF","RICE","RICH","RIDE","RING","RISE","ROAD","ROAM","ROCK","ROLE","ROLL","ROOF","ROOM","ROOT","ROPE","ROSE","RUBY","RUIN","RULE","RUSH","SAFE","SAGE","SAIL","SALT","SAND","SAVE","SEAL","SEAT","SEED","SHIP","SHOE","SHOP","SHOW","SIDE","SIGN","SILK","SING","SINK","SIZE","SKIN","SKIP","SLED","SLIM","SLIP","SLOW","SLUG","SNAP","SNOW","SOAP","SOCK","SOFA","SOFT","SOIL","SOLE","SONG","SOON","SORT","SOUL","SOUP","SOUR","SPIN","SPOT","STAR","STAY","STEM","STEP","STEW","STOP","SUCH","SUIT","SURE","SURF","SWAN","SWIM","TAIL","TAKE","TALE","TALK","TALL","TANK","TAPE","TAXI","TEAM","TEAR","TENT","TEST","THIN","TIDE","TILE","TIME","TINY","TOAD","TOLD","TOLL","TONE","TOOL","TOPS","TORN","TOUR","TOWN","TOYS","TRAP","TRAY","TREE","TRIM","TRIP","TRUE","TUBE","TUNA","TUNE","TURN","TWIN","TYPE","UNIT","UPON","USED","VASE","VEST","VIEW","VINE","VOTE","WADE","WAGE","WAIT","WAKE","WALK","WALL","WAND","WARM","WARN","WASH","WAVE","WEAK","WEAR","WEEK","WELL","WEST","WHAT","WHEN","WIDE","WIFE","WILD","WILL","WIND","WINE","WING","WIRE","WISE","WISH","WOLF","WOOD","WOOL","WORD","WORK","WORM","WRAP","YARD","YEAR","YOGA","YOLK","ZERO","ZONE","ZOOM","APPLE","ANGEL","BEACH","BERRY","BLOCK","BOARD","BONUS","BRAIN","BRAVE","BREAD","BRICK","BRIDE","BRUSH","BUILD","CABIN","CAMEL","CANDY","CHAIR","CHARM","CHEAP","CHECK","CHESS","CHIEF","CHILD","CHINA","CLEAN","CLEAR","CLIMB","CLOCK","CLOSE","CLOTH","CLOUD","COACH","COAST","COLOR","CORAL","COUCH","COUNT","COURT","COVER","CRAFT","CRANE","CRASH","CRAZY","CREAM","CROSS","CROWD","CROWN","CRUSH","CURVE","CYCLE","DAILY","DAIRY","DANCE","DEPTH","DIVER","DIZZY","DONOR","DOUBT","DOUGH","DRAFT","DRAIN","DRAMA","DREAM","DRESS","DRINK","DRIVE","DUSTY","EAGLE","EARLY","EARTH","ELBOW","EMPTY","ENEMY","ENJOY","ENTER","EQUAL","EVENT","EVERY","EXTRA","FAIRY","FAITH","FEAST","FENCE","FIELD","FIFTY","FINAL","FLAME","FLASH","FLEET","FLOAT","FLOOD","FLOOR","FLOUR","FLUTE","FOCUS","FORCE","FRAME","FRESH","FRONT","FROST","FRUIT","FUNNY","GHOST","GIANT","GLASS","GLOBE","GLOVE","GOOSE","GRACE","GRAIN","GRAND","GRAPE","GRASS","GRAVE","GREAT","GREEN","GREET","GROUP","GUARD","GUESS","GUIDE","HAPPY","HEART","HEAVY","HELLO","HONEY","HORSE","HOTEL","HOUSE","HUMAN","HUMOR","HURRY","IGLOO","IMAGE","INNER","INPUT","IVORY","JELLY","JEWEL","JOINT","JOKER","JUDGE","JUICE","KAYAK","KNIFE","KNOCK","KOALA","LABEL","LARGE","LASER","LATER","LAUGH","LAYER","LEARN","LEMON","LEVEL","LIGHT","LIMIT","LINEN","LIVER","LOCAL","LODGE","LOGIC","LOOSE","LOVER","LUCKY","LUNAR","LUNCH","MAGIC","MAJOR","MANGO","MANOR","MAPLE","MARCH","MATCH","MAYOR","MEDAL","MELON","METAL","MINOR","MODEL","MONEY","MONTH","MOOSE","MOTOR","MOUNT","MOUSE","MOUTH","MOVIE","MUDDY","MUSIC","NIGHT","NOBLE","NOISE","NORTH","NOVEL","NURSE","OCEAN","OLIVE","ONION","OPERA","ORDER","ORGAN","OTHER","OTTER","OUTER","OWNER","PAINT","PANDA","PANEL","PAPER","PARTY","PASTA","PATCH","PAUSE","PEACE","PEACH","PEARL","PENNY","PHONE","PHOTO","PIANO","PILOT","PIZZA","PLACE","PLAIN","PLANE","PLANT","PLATE","PLAZA","PLUMB","POINT","POLAR","POUND","POWER","PRESS","PRICE","PRIDE","PRIME","PRINT","PRIZE","PROOF","PROUD","PUPPY","QUEEN","QUEST","QUICK","QUIET","QUILT","QUOTE","RADAR","RADIO","RAISE","RANCH","RANGE","RAPID","RAVEN","REACH","READY","RIDER","RIGHT","RIVER","ROBIN","ROBOT","ROCKY","ROUND","ROUTE","ROYAL","RUGBY","RULER","SALAD","SAUCE","SCALE","SCENE","SCENT","SCORE","SCOUT","SHADE","SHAKE","SHAPE","SHARE","SHARK","SHARP","SHEEP","SHEET","SHELF","SHELL","SHIFT","SHINE","SHIRT","SHOCK","SHORE","SHORT","SHOUT","SIGHT","SILLY","SINCE","SKATE","SKILL","SKULL","SLEEP","SLICE","SLIDE","SMART","SMELL","SMILE","SMOKE","SNACK","SNAKE","SOLAR","SOLID","SOLVE","SOUTH","SPACE","SPARE","SPARK","SPEAK","SPEED","SPEND","SPICE","SPINE","SPLIT","SPOON","SPORT","SPRAY","SQUAD","STACK","STAFF","STAGE","STAIR","STAKE","STAMP","STAND","START","STATE","STEAK","STEAM","STEEL","STEEP","STEER","STICK","STILL","STOCK","STONE","STORE","STORM","STORY","STOVE","STRAW","STRIP","STUDY","STUFF","STYLE","SUGAR","SUITE","SUNNY","SUPER","SWEET","SWIFT","SWING","SWORD","TABLE","TASTE","TEACH","TEETH","THANK","THEME","THICK","THING","THINK","THORN","THREE","THROW","THUMB","TIGER","TIGHT","TIMER","TITLE","TOAST","TODAY","TOKEN","TOOTH","TORCH","TOTAL","TOUCH","TOUGH","TOWEL","TOWER","TRACK","TRADE","TRAIL","TRAIN","TRASH","TREAT","TREND","TRIAL","TRIBE","TRICK","TRUCK","TRULY","TRUST","TRUTH","TULIP","TWICE","TWIST","UNCLE","UNDER","UNION","UNITY","UNTIL","UPPER","URBAN","USUAL","VALID","VALUE","VIDEO","VIGOR","VIRAL","VISIT","VIVID","VOCAL","VOICE","VOTER","WAGON","WASTE","WATCH","WATER","WEAVE","WHALE","WHEAT","WHEEL","WHERE","WHILE","WHITE","WHOLE","WOMAN","WORLD","WORRY","WORTH","WOUND","WRITE","WRONG","YACHT","YOUNG","YOUTH","ZEBRA","ABSORB","ACCENT","ACCEPT","ACCESS","ACROSS","ACTION","ADMIRE","ADVICE","AFFORD","AGENDA","ALIENS","ALMOND","ALMOST","ALWAYS","AMOUNT","ANCHOR","ANIMAL","ANKLET","ANNUAL","ANSWER","APPEAL","ARCHER","ARTIST","ASLEEP","ASSIST","ASSUME","ATTACH","ATTACK","ATTEND","AUGUST","AUTUMN","AWAKEN","BACKER","BADGER","BAKERY","BALLET","BALLOT","BAMBOO","BANANA","BANGLE","BANKER","BANNER","BARBER","BARELY","BARREL","BASKET","BATTLE","BAZAAR","BEACON","BEAUTY","BEHIND","BELONG","BESIDE","BETTER","BEYOND","BISHOP","BITTER","BLANCH","BLAZER","BLOUSE","BOBCAT","BONSAI","BORDER","BORROW","BOTANY","BOTTLE","BOUNCE","BRANCH","BREEZE","BRIDGE","BRIGHT","BROKEN","BRONZE","BROWSE","BUBBLE","BUCKET","BUDGET","BUFFET","BUMBLE","BUNDLE","BURDEN","BUREAU","BURGER","BURNER","BUTTER","BUTTON","BUYERS","CACTUS","CAMERA","CAMPUS","CANARY","CANCEL","CANDLE","CANVAS","CANYON","CARBON","CARPET","CARROT","CASTLE","CASUAL","CATTLE","CELLAR","CENTER","CEREAL","CHANGE","CHAPEL","CHARGE","CHEESE","CHERRY","CHOICE","CHOOSE","CHURCH","CIRCLE","CIRCUS","CLOSET","COBALT","COBWEB","COFFEE","COLLAR","COLONY","COMEDY","COMMIT","COMMON","COOKIE","COPPER","CORNER","COSMOS","COTTON","COUPLE","COURSE","COUSIN","CRADLE","CREATE","CREDIT","CRISIS","CRUISE","CUPOLA","CUSTOM","CYMBAL","DAGGER","DAMSEL","DANCER","DANGER","DARING","DEBATE","DECENT","DECODE","DEFEAT","DEFEND","DEFINE","DEGREE","DEMAND","DEPEND","DESERT","DESIGN","DESIRE","DETAIL","DETECT","DEVICE","DEVOTE","DIALOG","DIAPER","DINNER","DIRECT","DIVIDE","DOCTOR","DOLLAR","DONKEY","DOUBLE","DRAGON","DRAWER","DRIVER","DUSTER","EARNED","EASILY","EATING","EDITOR","EFFORT","EIGHTH","ELDERS","ELEVEN","EMBARK","EMERGE","EMPIRE","ENABLE","ENERGY","ENGINE","ENOUGH","ENSURE","ENTIRE","ERASER","ESCAPE","ESTATE","EVOLVE","EXCEED","EXCEPT","EXCITE","EXCUSE","EXEMPT","EXHALE","EXPAND","EXPECT","EXPERT","EXPORT","EXPOSE","EXTEND","FABRIC","FACIAL","FACTOR","FAIRLY","FALCON","FALLEN","FAMILY","FAMINE","FAMOUS","FARMER","FATHER","FAUCET","FEALTY","FEEBLE","FELLOW","FERRET","FIESTA","FIGURE","FILTER","FINDER","FINGER","FINISH","FISHER","FLIGHT","FLOWER","FLUFFY","FLYING","FOLLOW","FONDUE","FOREST","FORGET","FORMAT","FORMER","FOSSIL","FOSTER","FREEZE","FRIEND","FRIGHT","FROZEN","FUMBLE","FUTURE","GADGET","GALAXY","GALLON","GALLOP","GAMBLE","GARAGE","GARDEN","GARLIC","GATHER","GAZING","GENTLE","GENTLY","GEYSER","GINGER","GLOBAL","GLOSSY","GOBLET","GOLDEN","GOLFER","GOSPEL","GOSSIP","GOVERN","GRAVEL","GREASE","GROUND","GROWTH","GUITAR","GUTTER","GYPSUM","HAIRDO","HAMLET","HAMMER","HAMPER","HANDLE","HANGAR","HAPPEN","HARBOR","HARDLY","HEAVEN","HELMET","HELPER","HERBAL","HEROES","HIDDEN","HIKING","HOBBIT","HOCKEY","HOLLOW","HONEST","HOODIE","HOPING","HORROR","HOSTEL","HUDDLE","HUMBLE","HUNGER","HUNTER","HURDLE","HUSTLE","HYBRID","HYPHEN","ICICLE","IGNITE","IMMUNE","IMPACT","IMPORT","IMPOSE","INCOME","INDEED","INDOOR","INFECT","INFORM","INJURE","INSECT","INSERT","INSIDE","INSIST","INSULT","INTACT","INTEND","INVENT","INVEST","INVITE","INWARD","ISLAND","ITSELF","JACKET","JAGUAR","JARGON","JERSEY","JIGSAW","JINGLE","JOCKEY","JOVIAL","JUMBLE","JUMPER","JUNGLE","JUNIOR","KARATE","KENNEL","KERNEL","KETTLE","KILLER","KINDLY","KITTEN","KNIGHT","LADDER","LAGOON","LAPTOP","LAUNCH","LAVISH","LAWYER","LEADER","LEAGUE","LENDER","LESSON","LETTER","LIGHTS","LIKELY","LINING","LIQUID","LISTEN","LITTER","LITTLE","LIVELY","LIZARD","LOCKER","LONELY","LOVELY","LUXURY","MAGNET","MAIDEN","MANAGE","MANGLE","MANNER","MARBLE","MARKET","MASCOT","MASTER","MATTER","MEADOW","MEDIUM","MELLOW","MELODY","MEMORY","MENTAL","MENTOR","MIDDLE","MIGHTY","MILLER","MINUTE","MIRROR","MOBILE","MODERN","MODIFY","MOMENT","MONKEY","MOSAIC","MOTHER","MOTION","MUFFIN","MUMBLE","MURDER","MUSCLE","MUSEUM","MUZZLE","MYRTLE","MYRIAD","NAPKIN","NARROW","NATION","NATURE","NEARBY","NEARLY","NEEDLE","NICKEL","NIMBLE","NOODLE","NORMAL","NOTICE","NOTIFY","NUMBER","NURSED","NUTMEG","OBJECT","OBTAIN","OCCUPY","OFFEND","OFFICE","OLDEST","ONLINE","OPENER","OPPOSE","OPTION","ORANGE","ORCHID","ORIGIN","OSPREY","OUTFIT","OUTLET","OUTPUT","OUTRUN","OYSTER","PADDLE","PALACE","PARCEL","PARENT","PARROT","PASTOR","PASTRY","PATROL","PATRON","PATTER","PEBBLE","PENCIL","PEOPLE","PEPPER","PERMIT","PERSON","PHRASE","PICKLE","PICNIC","PIGEON","PILLAR","PILLOW","PIRATE","PISTOL","PLANET","PLAYER","PLEDGE","PLENTY","PLIERS","PLUNGE","POCKET","POETRY","POISON","POLICY","POLISH","POLITE","POLLEN","PONDER","POPLAR","PORTAL","POSTER","POTATO","POTTER","POWDER","PRAYER","PREFIX","PRINCE","PRISON","PROFIT","PROMPT","PROPEL","PROVEN","PUBLIC","PUDDLE","PUPPET","PURPLE","PURSUE","PUZZLE","PYTHON","QUARRY","QUARTZ","RABBIT","RACKET","RADISH","RANDOM","RANGER","RANSOM","RAPTOR","RATTLE","RAVINE","REASON","REBOOT","RECALL","RECIPE","RECORD","REDUCE","REFORM","REFUGE","REGARD","REGION","REGRET","REJECT","RELATE","RELIEF","REMAIN","REMEDY","REMIND","REMOTE","REMOVE","RENDER","RENTAL","REPAIR","REPEAT","REPORT","RESCUE","RESIGN","RESIST","RESORT","RESULT","RETAIL","RETAIN","RETIRE","RETURN","REVEAL","REVIEW","REVOLT","REWARD","RIBBON","RIDING","RIPPLE","RITUAL","ROBUST","ROCKET","ROLLER","ROOKIE","RUBBER","RUBBLE","RUMBLE","RUNNER","RUSTIC","SADDLE","SAFARI","SAFELY","SAFETY","SAILOR","SALMON","SALOON","SAMPLE","SANDAL","SAVORY","SCENIC","SCHOOL","SCREEN","SCROLL","SEARCH","SEASON","SECURE","SELECT","SEQUEL","SERENE","SETTLE","SHADOW","SHIELD","SIGNAL","SILVER","SIMPLE","SINGLE","SISTER","SKETCH","SLEEVE","SLIDER","SMOOTH","SNATCH","SOCCER","SOCIAL","SOCKET","SOFTLY","SORROW","SOURCE","SPIRAL","SPIRIT","SPLASH","SPONGE","SPORTS","SPREAD","SPRING","SQUARE","STABLE","STREAM","STREET","STRICT","STRING","STRIPE","STRONG","STUDIO","SUBMIT","SUBTLE","SUDDEN","SUFFIX","SUMMER","SUMMIT","SUNKEN","SUNSET","SUPERB","SUPPLY","SURELY","SURVEY","SWITCH","SYMBOL","SYNTAX","SYSTEM","TABLET","TACKLE","TAILOR","TALENT","TARGET","TEAPOT","TEMPLE","TENANT","TENDER","TENNIS","TERROR","THIRST","THORNY","THREAD","THRILL","THRONE","THRONG","TICKET","TIMBER","TIMELY","TIPTOE","TISSUE","TOGGLE","TONGUE","TROPHY","TUMBLE","TUNDRA","TUNNEL","TURKEY","TURTLE","TUXEDO","UNFAIR","UNFOLD","UNIQUE","UNLESS","UNLIKE","UNLOCK","UNREST","UNSAFE","UNSEEN","UNWIND","UPDATE","UPHOLD","UPKEEP","UPBEAT","VALLEY","VANISH","VELVET","VENDOR","VERIFY","VESSEL","VICTIM","VIOLIN","VIRTUE","VISION","VISUAL","VOLUME","VOYAGE","WAFFLE","WALKER","WALLET","WALNUT","WALRUS","WANDER","WARMTH","WEAPON","WEEKLY","WICKED","WIDGET","WIGGLY","WINDOW","WINNER","WINTER","WISDOM","WIZARD","WONDER","WORKER","WORTHY","WREATH","WRITER","ZENITH","ZIGZAG","ZIPPER","ZODIAC"]});var Wr={};n(Wr,{WordSearch:()=>Eo});var Eo;var Be=e(()=>{l();a();CF();D7e();Eo=CL({gameId:"word-search",list:g7e,alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ",sounds:t.WORD_SEARCH,winTitle:"ALL WORDS FOUND!",winMessage:"Great word hunting!",startSubtext:"Find hidden words!",variant:"word",displayName:"WordSearch"})});function LW(){let rn=10+Math.floor(Math.random()*90),nn=Math.floor(rn/10),an=rn%10,sn=[];for(let dn of N7e[nn]){let pn=dn*10+an;if(pn>=10&&pn<=99&&pn!==rn)sn.push(pn)}for(let dn of N7e[an]){let pn=nn*10+dn;if(pn>=10&&pn<=99&&pn!==rn)sn.push(pn)}let ln=sn[Math.floor(Math.random()*sn.length)],cn=new Set;while(cn.size<10)cn.add(Math.floor(Math.random()*100));return{numbers:Array.from({length:100},(dn,pn)=>cn.has(pn)?ln:rn),different:cn}}var Ti=10,G7e=100,nx=10,N7e;var ax=e(()=>{N7e=[[8,9,6,3],[7,4,2],[7,1,3],[8,9,5,0,2],[1,9,7,6],[6,9,3,8],[9,5,0,8,4],[1,2,4],[0,3,6,9,5],[6,0,4,3,8,5]]});function U7e(rn,nn,an,sn){let ln=sn?6:4,cn=sn?10:6,un=la(an)+MDt,dn=Math.max(200,nn-un-CDt),pn=($n(rn)-cn*2-ln*(Ti-1))/Ti,mn=(dn/Math.cos(k7e)-cn*2-ln*(Ti-1))/Ti,fn=Math.max(18,Math.floor(Math.min(pn,mn)));return{width:rn,height:nn,tilt:k7e,centerY:un+dn/2,tile:fn,gap:ln,pitch:fn+ln,pad:cn,size:fn*Ti+ln*(Ti-1)}}function V7e(rn,nn,an){let sn=nn+rn.size/2,ln=rn.size/2-an,cn=Math.floor(sn/rn.pitch),un=Math.floor(ln/rn.pitch);if(un<0||un>=Ti||cn<0||cn>=Ti)return-1;return sn-cn*rn.pitch<=rn.tile&&ln-un*rn.pitch<=rn.tile?un*Ti+cn:-1}var Wd=120,B7e=500,F7e=3,R0,k7e=0,H7e,jI=0.2,W7e=1.18,MDt=82,CDt=120,IW=(rn,nn)=>{let an=(Ti-1)/2;return[(nn%Ti-an)*rn.pitch,(an-Math.floor(nn/Ti))*rn.pitch]};var $I=e(()=>{o();Hn();ax();R0={CLASSIC_BOARD:"rgba(255, 255, 255, 0.10)",CLASSIC_RIM:"rgba(255, 255, 255, 0.35)",LIGHT_BOARD:"#D3DBE8",LIGHT_RIM:"#AEBBD0",TILE:"#FFFFFF",TEXT:"#0D1757",FOUND:"#4FC562",FOUND_TEXT:"#FFFFFF",WRONG:"#FF5252"},H7e=Zn([0,0,1],1)});import{effects as wDt,extrude as LDt,Path as IDt}from"@nayan-ui/engine";function PW(rn){return{tile:xn(R0.TILE),text:xn(R0.TEXT)}}function j7e(rn,nn,an){let sn=nn.size+nn.pad*2,ln=an.mode==="classic",cn=[rn.spawn({mesh:Y7e(sn,ln?14:8,ZI),position:[0,0,-ZI/2],color:xn(ln?R0.CLASSIC_BOARD:an.mode==="light"?R0.LIGHT_BOARD:an.BOARD.SURFACE),pickable:!1})];return cn.push(rn.spawn({mesh:Y7e(sn+3,ln?15:9,ZI-2),position:[0,0,-ZI/2-1.2],color:xn(ln?R0.CLASSIC_RIM:an.mode==="light"?R0.LIGHT_RIM:an.BOARD.BORDER),pickable:!1})),cn}function Z7e(rn,nn,an,sn,ln){let cn=oa(rn,nn.width,nn.height,-q7e,an);Ea(rn,cn,nn,q7e);let un=nn.tile*jI,dn=gDt(nn),pn=dn*t0/2,mn=[];for(let hn=0;hn<G7e;hn++){let[bn,yn]=IW(nn,hn),En=rn.spawn({mesh:"none",position:[bn,yn,OW],pickable:!1}),Sn=ai(rn,{parent:En,position:[0,0,un/2],size:[nn.tile,nn.tile,un],color:[1,1,1,1],gloss:!1,shadow:!1}),_n=(vn)=>rn.spawn({mesh:Qi("0",$7e),parent:En,position:[vn,0,un+0.6],scale:dn,pickable:!1});mn.push({root:En,block:Sn,digits:[_n(-pn),_n(pn)]})}let fn={backdrop:cn,board:j7e(rn,nn,an),tiles:mn};return gW(rn,fn,sn),QI(rn,fn,an,ln),fn}function Q7e(rn,nn){for(let an of[nn.backdrop,...nn.board,...nn.tiles.map((sn)=>sn.root)])rn.despawn(an)}function QI(rn,nn,an,sn){let ln=PW(an),cn=rn.transforms;nn.tiles.forEach((un,dn)=>{let pn=sn.has(dn),mn=pn?K7e:ln.tile,fn=pn?X7e:ln.text;cn.color(un.block,mn[0],mn[1],mn[2],mn[3]??1);for(let hn of un.digits)cn.color(hn,fn[0],fn[1],fn[2],fn[3]??1)}),cn.flush()}function J7e(rn,nn,an,sn,ln){aa(rn,an.backdrop,sn);for(let cn of an.board)rn.despawn(cn);an.board=j7e(rn,nn,sn),QI(rn,an,sn,ln)}function gW(rn,nn,an){nn.tiles.forEach((sn,ln)=>{let cn=an[ln],un=cn===void 0?"":String(cn).padStart(2,"0");sn.digits.forEach((dn,pn)=>rn.set(dn,{mesh:un?Qi(un[pn],$7e):"none"}))})}function DW(rn,nn){nn.tiles.forEach((an,sn)=>{rn.stopAnimation(an.root),rn.set(an.root,{scale:0.01}),rn.animate(an.root,{scale:1},{duration:0.22,delay:(Math.floor(sn/Ti)+sn%Ti)*0.018,easing:"back"})})}function eFe(rn,nn,an){let sn=nn.tiles[an];if(!sn)return;rn.set(sn.block,{color:K7e});for(let ln of sn.digits)rn.set(ln,{color:X7e});rn.animate(sn.root,[{scale:W7e,at:0.4},{scale:1}],{duration:0.3,easing:"easeOut"})}function tFe(rn,nn,an,sn,ln,cn){let un=an.tiles[ln];if(!un)return;let dn=PW(cn).tile;rn.stopAnimation(un.block),rn.animate(un.block,[{color:DDt(dn,PDt,0.65),at:0.18},{color:dn}],{duration:0.4,easing:"easeOut"}),rn.animate(un.root,{shake:nn.tile*0.12},{duration:0.25}),sn.shake=nn.tile*0.08}function oFe(rn,nn,an){an.tiles.forEach((sn,ln)=>{let[cn,un]=IW(nn,ln);rn.animate(sn.root,[{position:[cn,un,OW+nn.tile*0.4],at:0.4},{position:[cn,un,OW]}],{duration:0.4,delay:0.25+(Math.floor(ln/Ti)+ln%Ti)*0.025,easing:"easeOut"})}),wDt.confetti(rn,{position:[0,0,nn.tile*2],count:70,size:nn.tile*0.22,speed:nn.size*1.4,lifetime:1.3,gravity:-nn.size*2.4,colors:["#FFD700","#4CAF50","#2196F3","#E74C3C"].map((sn)=>xn(sn))})}function rFe(rn,nn,an,sn){let ln=PW(an).tile,cn=nn.tiles.filter((un,dn)=>!sn.has(dn)).map((un)=>un.block);if(cn.length)rn.animate(cn,{color:[ln[0]*0.55,ln[1]*0.55,ln[2]*0.6,ln[3]??1]},{duration:0.4})}var z7e,ODt=(rn,nn)=>{let an=z7e.get(rn);if(!an)an=Bn("find-different-number/FindDifferentNumberScene:"+rn,nn),z7e.set(rn,an);return an},ZI=10,q7e=30,OW=1,Y7e=(rn,nn,an)=>ODt(`fdn-panel:${rn}:${nn}:${an}`,()=>wn(LDt(new IDt().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:an}),{shine:0})),K7e,X7e,PDt,gDt=(rn)=>rn.tile*0.34,$7e=1.2,DDt=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an,1];var nFe=e(()=>{u();l0();r0();na();ba();Hn();$I();ax();z7e=new Map;K7e=xn(R0.FOUND),X7e=xn(R0.FOUND_TEXT),PDt=xn(R0.WRONG)});import{World as NDt}from"@nayan-ui/engine";function sFe(rn){let nn=new NDt(GDt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",puzzle:LW(),found:new Set,won:!1,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},onPhase:(ln)=>{},onScore:(ln)=>{},onTime:(ln)=>{},onLeft:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,Wd),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&NW(sn,!1)},sn}function iFe(rn,nn){let an=!rn.scene;if(rn.scene)Q7e(rn.world,rn.scene);if(rn.layout=nn,ya(rn.camera,nn),rn.scene=Z7e(rn.world,nn,rn.theme,rn.puzzle.numbers,rn.found),an)DW(rn.world,rn.scene)}function lFe(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)J7e(rn.world,rn.layout,rn.scene,nn,rn.found)}function cFe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(Wd),rn.onPhase("playing")}function uFe(rn){if(rn.puzzle=LW(),rn.found=new Set,rn.won=!1,rn.world.scoreboard.reset(0,Wd),rn.phase="ready",rn.scene)gW(rn.world,rn.scene,rn.puzzle.numbers),QI(rn.world,rn.scene,rn.theme,rn.found),DW(rn.world,rn.scene);rn.onScore(0),rn.onTime(Wd),rn.onLeft(nx),rn.onPhase("ready")}function dFe(rn){rn.world.dispose()}function pFe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function NW(rn,nn){rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over";let{layout:an,scene:sn}=rn;if(an&&sn)if(nn)oFe(rn.world,an,sn);else rFe(rn.world,sn,rn.theme,rn.found);rn.onPhase("over"),rn.onEvent(nn?"win":"lose")}function kDt(rn,nn){if(rn.phase!=="playing"||nn<0||nn>=rn.puzzle.numbers.length||rn.found.has(nn))return;let{layout:an,scene:sn}=rn;if(rn.puzzle.different.has(nn)){rn.found.add(nn),rn.world.scoreboard.add(B7e);let ln=aFe(rn)<=0;if(ln)rn.world.scoreboard.set(Ya(Wd-rn.timeLeft,Wd,rn.score));if(sn)eFe(rn.world,sn,nn);if(rn.onScore(rn.score),rn.onLeft(aFe(rn)),rn.onEvent("correct"),ln)NW(rn,!0);return}if(rn.world.scoreboard.addTime(-Math.min(F7e,rn.world.scoreboard.seconds)),an&&sn)tFe(rn.world,an,sn,rn.camera,nn,rn.theme);if(rn.onTime(rn.timeLeft),rn.onEvent("wrong"),rn.timeLeft<=0)NW(rn,!1)}function BDt(rn,nn,an){let sn=rn.layout;if(!sn)return-1;let[ln,cn]=Wa(sn,nn,an,1+sn.tile*jI);return V7e(sn,ln,cn)}function mFe(rn,{phase:nn,x:an,y:sn}){if(nn==="start")kDt(rn,BDt(rn,an,sn))}var GDt=500,aFe=(rn)=>nx-rn.found.size;var fFe=e(()=>{ci();ba();$I();ax();nFe()});var Ur={};n(Ur,{FindDifferentNumber:()=>So});import{jsx as FDt}from"react/jsx-runtime";var HE,hFe,So;var Fe=e(()=>{Ta();l();a();_a();o();xa();va();$I();fFe();ax();HE=t.FIND_DIFFERENT_NUMBER,hFe={correct:{sound:HE.CORRECT,haptic:"success"},wrong:{sound:HE.WRONG,haptic:"warning"},win:{sound:HE.WIN,haptic:"success"},lose:{sound:HE.GAME_OVER,haptic:"error"}},So=Vn("find-different-number",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(Wd),[cn,un]=gn(nx),{game:dn,theme:pn,status:mn,screen:fn,gameOver:hn}=zn(rn,{gameId:"find-different-number",create:sFe,start:cFe,reset:uFe,dispose:dFe,tick:pFe,setTheme:lFe,resize:(bn,yn,En,Sn)=>{let _n=U7e(yn,En,Sn,c);return iFe(bn,_n),_n.size+_n.pad*2},drag:mFe,sounds:HE,onStart:(bn)=>bn(HE.START),wire:(bn,yn)=>{bn.onScore=an,bn.onTime=ln,bn.onLeft=un,bn.onEvent=(En)=>yn(hFe[En].sound,hFe[En].haptic)}});return FDt(Un,{...fn,light:H7e,columns:[Qn(nn),ma("LEFT",cn),ta(sn,pn)],subtext:"Find the different numbers!",gameOver:hn({title:mn==="win"?"GREAT JOB!":"TIME UP!",message:mn==="win"?"You found all the different numbers!":"You ran out of time!",scoreLabel:"Score",score:dn.score,buttonText:mn==="win"?"Play Again!":"Try Again!"})})})});function FW(rn,nn){let an=rn+nn;if(an>Vc)return{step:rn,end:rn};return{step:an,end:sx.get(an)?.tail??BW.get(an)?.top??an}}function yFe(rn,nn){return rn===Vc?1e4+Math.round((Vc-nn)*50):rn*100}function LFe(rn,nn,an){let sn=Math.cos(WE),ln=la(an)+HDt,cn=Math.max(200,nn-ln-WDt),un=Math.min($n(rn)/(1+n1*2),cn/(2*Math.max(UDt,VDt)*sn)),dn=ln+cn/2;return{width:rn,height:nn,size:un,centerY:dn}}function IFe(rn,nn,an,sn=0){return Ul({width:rn.width,height:rn.height,centerY:rn.centerY,tilt:WE},nn*rn.size,an*rn.size,sn*rn.size)}function sl(rn){let nn=rn-1,an=Math.floor(nn/Ud),sn=nn%Ud;return[-0.5+((an%2===0?sn:Ud-1-sn)+0.5)/Ud,-0.5+(an+0.5)/Ud]}var Ud=10,Vc=100,bFe=3,GW,kW,sx,BW,HW,EFe="#E8F5E9",SFe="#FFF3E0",_Fe="#5B4E42",vFe="#F57F17",JI="#43A047",e3="#E53935",WW=0.9,TFe=0.4,t3=0.17,xFe=0.15,RFe=0.4,AFe=1,UW=0.5,MFe=0.8,WE=0.35,CFe,n1=0.014,Jl=0.013,wl=0.15,A0,o3=-0.33,r3=0.01,wFe=0.062,HDt=82,WDt=110,UDt,VDt;var n3=e(()=>{o();ba();Hn();GW=[{head:16,tail:6,color:"#43A047",accent:"#1B5E20",belly:"#C5E1A5"},{head:47,tail:26,color:"#E53935",accent:"#8E1B1B",belly:"#FFCDD2"},{head:49,tail:11,color:"#8E24AA",accent:"#4A148C",belly:"#E1BEE7"},{head:62,tail:19,color:"#F9A825",accent:"#5D4037",belly:"#FFF59D"},{head:72,tail:54,color:"#F4511E",accent:"#3E2723",belly:"#FFCCBC"},{head:87,tail:24,color:"#5E35B1",accent:"#FBC02D",belly:"#D1C4E9"},{head:93,tail:73,color:"#7CB342",accent:"#33691E",belly:"#F0F4C3"},{head:98,tail:78,color:"#1E88E5",accent:"#0D47A1",belly:"#BBDEFB"}],kW=[{bottom:1,top:38,color:"#8D5A2B",highlight:"#C08A52"},{bottom:4,top:14,color:"#7A4A22",highlight:"#B07A45"},{bottom:9,top:31,color:"#8D5A2B",highlight:"#C08A52"},{bottom:21,top:42,color:"#7A4A22",highlight:"#B07A45"},{bottom:28,top:84,color:"#8D5A2B",highlight:"#C08A52"},{bottom:36,top:44,color:"#7A4A22",highlight:"#B07A45"},{bottom:51,top:67,color:"#8D5A2B",highlight:"#C08A52"},{bottom:71,top:91,color:"#7A4A22",highlight:"#B07A45"},{bottom:80,top:99,color:"#8D5A2B",highlight:"#C08A52"}],sx=new Map(GW.map((rn)=>[rn.head,rn])),BW=new Map(kW.map((rn)=>[rn.bottom,rn]));HW=["#FFF9C4","#C8E6C9","#BBDEFB","#F8BBD0","#FFE0B2","#D1C4E9","#B2EBF2","#FFCCBC","#DCEDC8","#F0F4C3"],CFe=Zn([-0.35,0.3,1],0.5),A0=-0.5-n1-0.06-wl/2,UDt=0.5+n1,VDt=-A0+wl*0.75});import{effects as GFe,extrude as i3,lathe as zDt,merge as qW,Path as l3,quat as kFe,shapeGeometry as BFe,tube as lx}from"@nayan-ui/engine";function UFe(rn,nn=!1){let an=sl(rn.head),sn=sl(rn.tail),ln=sn[0]-an[0],cn=sn[1]-an[1],un=Math.hypot(ln,cn),dn=[-cn/un,ln/un],pn=Math.max(2,Math.round(un/0.15)),mn=Math.min(0.042,un*0.14);return Array.from({length:ux},(fn,hn)=>{let bn=hn/(ux-1),[yn,En]=HFe(an,sn,bn),Sn=mn*Math.sin(Math.PI*pn*bn)*(1-0.6*bn);return[yn+dn[0]*Sn,En+dn[1]*Sn,nn?WFe(bn)*0.8:Jl]})}function YDt(rn){let nn=UFe(rn,!0),an=zc(rn.color),sn=zc(rn.accent),ln=zc(rn.belly),cn=Math.hypot(nn[0][0]-nn[ux-1][0],nn[0][1]-nn[ux-1][1]),un=Math.max(6,Math.round(cn*55)),dn=lx(nn,{radius:WFe,sides:12,smoothness:4,color:({v:An,normal:Mn,position:Cn})=>{let Ln=0.5+0.5*Math.cos(Math.PI*2*un*An),On=cx(an,sn,YW(0.62,0.86,Ln));if(Mn[2]>0.55&&Ln<0.22)On=cx(On,ln,0.55);if(Mn[2]<-0.2)On=ln;return FFe(On,0.9+0.2*Oa(Cn[0]*160,Cn[1]*160))}}),[pn,mn]=sl(rn.head),fn=nn[2],hn=[pn-fn[0],mn-fn[1]],bn=Math.hypot(hn[0],hn[1])||1;hn[0]/=bn,hn[1]/=bn;let yn=[-hn[1],hn[0]],En=Math.atan2(hn[1],hn[0]),Sn=kFe.z(En),_n=(An,Mn,Cn)=>[pn+hn[0]*An+yn[0]*Mn,mn+hn[1]*An+yn[1]*Mn,Cn],vn=cx(an,sn,0.25),Tn=[{geometry:dn},{geometry:a1(),position:_n(0.006,0,0.011),scale:[0.05,0.038,0.022],rotation:Sn,color:[...vn,1]},{geometry:a1(),position:_n(0.022,0,0.009),scale:[0.03,0.027,0.017],rotation:Sn,color:[...vn,1]}];for(let An of[1,-1])Tn.push({geometry:a1(),position:_n(0.008,0.012*An,0.019),scale:0.012,color:[1,1,0.92,1]},{geometry:a1(),position:_n(0.01,0.0125*An,0.0245),scale:[0.004,0.008,0.004],rotation:Sn,color:[0.05,0.05,0.05,1]},{geometry:a1(),position:_n(0.012,0.011*An,0.026),scale:0.0022,color:[1,1,1,1]},{geometry:a1(),position:_n(0.033,0.0055*An,0.016),scale:0.0032,color:[0.08,0.06,0.05,1]});let Rn=[0.85,0.08,0.12];Tn.push({geometry:lx([_n(0.034,0,0.007),_n(0.05,0,0.007)],{radius:0.0017,sides:6,color:Rn})});for(let An of[1,-1])Tn.push({geometry:lx([_n(0.049,0,0.007),_n(0.058,0.0055*An,0.007)],{radius:0.0014,sides:6,color:Rn})});return Tn}function KDt(rn){let nn=sl(rn.bottom),an=sl(rn.top),sn=Math.hypot(an[0]-nn[0],an[1]-nn[1]),ln=[(an[0]-nn[0])/sn,(an[1]-nn[1])/sn],cn=[-ln[1],ln[0]],un=zc(rn.color),dn=zc(rn.highlight),pn=({v:bn,normal:yn})=>{let En=0.5+0.5*Math.sin(bn*sn*260+Oa(bn*sn*40,3)*5);return FFe(cx(un,dn,En*0.45+Math.max(0,yn[2])*0.3),1)},mn=0.014,fn=[1,-1].map((bn)=>({geometry:lx([[nn[0]-ln[0]*0.014+cn[0]*Um*bn,nn[1]-ln[1]*0.014+cn[1]*Um*bn,a3],[an[0]+ln[0]*0.014+cn[0]*Um*bn,an[1]+ln[1]*0.014+cn[1]*Um*bn,a3]],{radius:0.0045,sides:8,smoothness:Math.max(8,Math.round(sn*90)),color:pn})})),hn=Math.max(3,Math.floor(sn/0.045));for(let bn=1;bn<=hn;bn++){let[yn,En]=HFe(nn,an,bn/(hn+1));fn.push({geometry:lx([[yn-cn[0]*Um,En-cn[1]*Um,a3+0.0008],[yn+cn[0]*Um,En+cn[1]*Um,a3+0.0008]],{radius:0.0032,sides:8,color:cx(un,dn,0.6)})})}return fn}function XDt(rn){let[nn,an]=sl(rn.bottom),[sn,ln]=sl(rn.top);return[[nn,an,Jl],[sn,ln,Jl]]}function jDt(rn){let nn=rn-1,an=zc(HW[(Math.floor(nn/Ud)+nn%Ud)%HW.length]);if(rn===1)an=zc(EFe);else if(rn===Vc)an=zc(SFe);return an}function e6t(rn,nn){let an=xn(_Fe),sn=xn(vFe);for(let ln=1;ln<=Vc;ln++){let[cn,un]=sl(ln),dn=String(ln),pn=dn.length*t0-(t0-oh);for(let mn=0;mn<dn.length;mn++)rn.spawn({mesh:Qi(dn[mn]),parent:nn,position:[cn+(-pn/2+oh/2+mn*t0)*PFe,un+KW*0.24,VFe],scale:PFe,color:ln===1||ln===Vc?sn:an,pickable:!1})}}function YFe(rn,nn,an){let sn=oa(rn,nn.width,nn.height,-NFe,an);Ea(rn,sn,zFe(nn),NFe);let ln=rn.spawn({mesh:JDt(),scale:nn.size,color:[1,1,1,1],pickable:!1});e6t(rn,ln);let cn=(fn)=>rn.spawn({mesh:t6t(),rotation:qDt,scale:wFe*nn.size,color:xn(fn),pickable:!1}),un=()=>rn.spawn({mesh:gFe(),scale:0.052*nn.size,color:DFe,pickable:!1}),dn=rn.spawn({mesh:gFe(),position:Vd(nn,0.012,A0-0.01,0.001),scale:[wl*1.25*nn.size,wl*1.1*nn.size,1],color:DFe,pickable:!1}),pn=rn.spawn({mesh:r6t(),position:Vd(nn,0,A0,0.002),scale:0,color:[1,0.78,0.15,0.85],pickable:!1}),mn=rn.spawn({mesh:dL(),position:jFe(nn),rotation:o6t(1),scale:wl*nn.size,pickable:!1});return{backdrop:sn,board:ln,tokens:[cn(JI),cn(e3)],shadows:[un(),un()],die:mn,dieShadow:dn,ring:pn}}function KFe(rn,nn){for(let an of[nn.backdrop,nn.board,...nn.tokens,...nn.shadows,nn.die,nn.dieShadow,nn.ring])rn.despawn(an)}function XFe(rn,nn,an){aa(rn,nn.backdrop,an)}function $Fe(rn,nn,an,sn,ln,cn){pL(rn,{die:an.die,shadow:an.dieShadow,rest:jFe(nn),shadowAt:Vd(nn,0.012,A0-0.01,0.001),shadowScale:[wl*1.25*nn.size,wl*1.1*nn.size,1],size:wl*nn.size,tilt:WE,value:sn,duration:ln,disposed:cn})}function ZFe(rn,nn,an,sn){if(rn.stopAnimation(an.ring),!sn){rn.set(an.ring,{scale:0});return}let ln=wl*1.55*nn.size;rn.set(an.ring,{scale:ln}),rn.animate(an.ring,{scale:ln*1.15},{duration:0.6,easing:"easeInOut",repeat:"forever",yoyo:!0})}function QFe(rn,nn,an,sn,ln){rn.stopAnimation(an.tokens[sn]),rn.stopAnimation(an.shadows[sn]),rn.set(an.tokens[sn],{position:s3(nn,ln)}),rn.set(an.shadows[sn],{position:Vd(nn,ln[0]+0.006,ln[1]-0.006,XW)})}function u3(rn,nn,an,sn,ln,cn,un=0){let dn=an.tokens[sn],pn=an.shadows[sn],mn=ln[ln.length-1],fn=un?[{position:s3(nn,[(ln[0][0]+mn[0])/2,(ln[0][1]+mn[1])/2,Math.max(ln[0][2],mn[2])+un]),at:0.5},{position:s3(nn,mn),at:1}]:ln.slice(1).map((hn,bn)=>({position:s3(nn,hn),at:(bn+1)/(ln.length-1)}));rn.stopAnimation(dn),rn.stopAnimation(pn),rn.animate(dn,fn,{duration:cn,path:"smooth",easing:un?"linear":"easeInOut"}),rn.animate(pn,{position:Vd(nn,mn[0]+0.006,mn[1]-0.006,XW)},{duration:cn,easing:un?"linear":"easeInOut"})}function JFe(rn,nn,an,sn){an.tokens.forEach((ln,cn)=>rn.set(ln,{bob:cn===sn?{amplitude:[0,0,0.008*nn.size],speed:6}:null}))}function e9e(rn,nn,an,sn,ln){rn.animate(an.tokens[ln],{shake:0.01*nn.size},{duration:0.3}),sn.shake=0.008*nn.size}function t9e(rn,nn,an){GFe.sparkle(rn,{position:Vd(nn,an[0],an[1],an[2]+0.03),count:16,size:0.009*nn.size,speed:0.25*nn.size,lifetime:0.6,colors:[xn("#FFD54F"),xn("#FFF59D"),xn("#FFFFFF")]})}function o9e(rn,nn,an){GFe.confetti(rn,{position:Vd(nn,an[0],an[1],an[2]+0.06),count:48,size:0.012*nn.size,speed:0.7*nn.size,lifetime:1.3,gravity:-1.2*nn.size,colors:["#FF5252","#FFD740","#69F0AE","#448AFF"].map((sn)=>xn(sn))})}function r9e(rn){if(zW.has(rn))return zW.get(rn);let nn=sx.get(rn),an=BW.get(rn),sn=nn?UFe(nn).filter((ln,cn)=>cn%3===0||cn===ux-1):an?XDt(an):null;if(nn||an)zW.set(rn,sn);return sn}var OFe,c3=(rn,nn)=>{let an=OFe.get(rn);if(!an)an=Bn("snakes-and-ladders/SnakesAndLaddersScene:"+rn,nn),OFe.set(rn,an);return an},zc=(rn)=>{let[nn,an,sn]=xn(rn);return[nn,an,sn]},cx=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an,rn[2]+(nn[2]-rn[2])*an],FFe=(rn,nn)=>[rn[0]*nn,rn[1]*nn,rn[2]*nn],YW=(rn,nn,an)=>{let sn=Math.min(1,Math.max(0,(an-rn)/(nn-rn)));return sn*sn*(3-2*sn)},a1=()=>BFe("sphere"),VW=()=>BFe("cube"),qDt,HFe=(rn,nn,an)=>[rn[0]+(nn[0]-rn[0])*an,rn[1]+(nn[1]-rn[1])*an],ux=30,WFe=(rn)=>0.0135*(0.8+0.2*YW(0,0.15,rn))*(1-0.85*YW(0.5,1,rn)),Um=0.019,a3=0.005,KW,$Dt=0.05,ix=0.0004,VFe,ZDt,XW,QDt,s3=(rn,nn)=>Vd(rn,nn[0],nn[1],nn[2]+QDt),JDt=()=>c3("snl-board",()=>{let rn=1+n1*2,nn=zc("#5C4033"),an=(dn,pn)=>({position:[0,0,dn],scale:pn}),sn=[{geometry:VW(),...an(Jl-0.006,[rn,rn,ix]),color:[...nn,1]},{geometry:VW(),...an(Jl-0.003,[1,1,ix]),color:[...zc("#CBB894"),1]}];for(let dn=1;dn<=Vc;dn++){let[pn,mn]=sl(dn);sn.push({geometry:VW(),position:[pn,mn,Jl-ix/2],scale:[KW-0.005,KW-0.005,ix],color:[...jDt(dn),1]})}let[ln,cn]=sl(Vc);sn.push({geometry:i3(new l3().addStar(0,0,0.5,0.22),{depth:0.12}),position:[ln,cn-0.012,VFe],scale:[0.042,0.042,0.004],color:[...zc("#FFC107"),1]}),sn.push({geometry:i3(new l3().addCircle(0,0,0.08),{depth:ix,color:zc("#A1887F")}),position:[o3,A0,r3]});let un=qW([...kW.flatMap(KDt),...GW.flatMap(YDt)]);return sn.push({geometry:un,position:[0,0,ZDt],scale:[1,1,$Dt]}),wn(qW(sn),{center:!1,shine:0})}),PFe=0.027,t6t=()=>c3("snl-pawn",()=>wn(qW([{geometry:zDt([[0.001,0],[0.42,0],[0.44,0.04],[0.42,0.1],[0.31,0.14],[0.25,0.2],[0.19,0.42],[0.15,0.58],[0.27,0.61],[0.27,0.66],[0.14,0.69]],{segments:32})},{geometry:a1(),position:[0,0.84,0],scale:0.4}]),{center:!1,shine:0.65})),o6t=(rn,nn=0)=>Xv(WE,rn,nn),gFe=()=>c3("snl-disc",()=>wn(i3(new l3().addCircle(0,0,0.5),{depth:0}))),r6t=()=>c3("snl-ring",()=>wn(i3(new l3().addCircle(0,0,0.5).addCircle(0,0,0.42),{depth:0,fillRule:"evenodd"}))),DFe,NFe=25,Vd=(rn,nn,an,sn)=>[nn*rn.size,an*rn.size,sn*rn.size],zFe=(rn)=>({width:rn.width,height:rn.height,centerY:rn.centerY,tilt:WE}),qFe=(rn,nn)=>ya(rn,zFe(nn)),jFe=(rn)=>Vd(rn,0,A0,wl/2),zW;var n9e=e(()=>{u();k7();r0();d();na();ba();Hn();n3();OFe=new Map,qDt=kFe.x(Math.PI/2);KW=1/Ud;VFe=Jl+0.002,ZDt=Jl+0.004,XW=Jl+0.008,QDt=XW+0.001-Jl;DFe=[0,0,0,0.22];zW=new Map});import{World as n6t}from"@nayan-ui/engine";function a9e(rn){let nn=new n6t(a6t),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",positions:[0,0],turn:0,sixes:0,busy:!1,rolling:!1,get score(){return nn.scoreboard.score},won:!1,onPhase:(ln)=>{},onPositions:(ln,cn)=>{},onScore:(ln)=>{},onTurn:(ln)=>{},onEvent:(ln,cn)=>{}};return nn.scoreboard.reset(),sn}function Mu(rn,nn,an){rn.world.after(nn,an)}function s9e(rn,nn){if(rn.scene)KFe(rn.world,rn.scene);rn.layout=nn,qFe(rn.camera,nn),rn.scene=YFe(rn.world,nn,rn.theme),jW(rn,!1),VE(rn)}function i9e(rn,nn){if(rn.theme=nn,rn.scene)XFe(rn.world,rn.scene,nn)}function UE(rn,nn,an){let sn=nn===0?-1:1;if(an===0)return[o3+sn*0.03,A0,r3];let[ln,cn]=sl(an),un=rn.positions[1-nn]===an;return[ln+(un?sn*0.022:0),cn,Jl]}function jW(rn,nn){let{layout:an,scene:sn}=rn;if(!an||!sn)return;for(let ln of[0,1]){let cn=UE(rn,ln,rn.positions[ln]);if(nn)u3(rn.world,an,sn,ln,[cn,cn],0.15);else QFe(rn.world,an,sn,ln,cn)}}function VE(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;let sn=rn.phase==="playing";ZFe(rn.world,nn,an,sn&&!rn.busy&&rn.turn===0),JFe(rn.world,nn,an,sn&&!rn.rolling?rn.turn:null)}function l9e(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.onPhase("playing"),VE(rn)}function c9e(rn){rn.world.cancelTimers(),rn.positions=[0,0],rn.turn=0,rn.sixes=0,rn.busy=!1,rn.rolling=!1,rn.world.scoreboard.reset(),rn.won=!1,rn.phase="ready",jW(rn,!1),VE(rn),rn.onPositions(0,0),rn.onScore(0),rn.onTurn(0),rn.onPhase("ready")}function u9e(rn){rn.world.dispose()}function d9e(rn,nn){if(rn.world.isDisposed)return;rn.world.update(Math.min(nn,s6t))}function p9e(rn,nn,an){let sn=rn.layout;if(!sn||rn.phase!=="playing"||rn.busy||rn.turn!==0)return;let[ln,cn]=IFe(sn,0,A0,wl/2),un=wl*sn.size;if((nn-ln)**2+(an-cn)**2>un*un)return;rn.onEvent("tap",0),m9e(rn)}function m9e(rn){let{layout:nn,scene:an}=rn;if(!nn||!an)return;rn.busy=!0,rn.rolling=!0,VE(rn);let sn=1+Math.floor(Math.random()*6);rn.onEvent("roll",rn.turn),$Fe(rn.world,nn,an,sn,WW,()=>rn.world.isDisposed),Mu(rn,WW,()=>c6t(rn,sn))}function c6t(rn,nn){let an=rn.turn;if(rn.sixes=nn===6?rn.sixes+1:0,rn.sixes>=bFe){rn.onEvent("penalty",an),Mu(rn,AFe,()=>d3(rn,!1));return}if(FW(rn.positions[an],nn).step===rn.positions[an]){rn.onEvent("cantMove",an),Mu(rn,UW,()=>d3(rn,!1));return}if(nn===6)rn.onEvent("six",an);Mu(rn,TFe,()=>u6t(rn,nn))}function u6t(rn,nn){let an=rn.turn,sn=rn.positions[an],{step:ln,end:cn}=FW(sn,nn);if(ln===sn){rn.onEvent("cantMove",an),Mu(rn,UW,()=>d3(rn,!1));return}rn.onEvent("move",an);for(let un=1;un<=ln-sn;un++)Mu(rn,(un-1)*t3,()=>{let{layout:dn,scene:pn}=rn;if(dn&&pn)u3(rn.world,dn,pn,an,[UE(rn,an,sn+un-1),UE(rn,an,sn+un)],t3*0.95,l6t)});Mu(rn,(ln-sn)*t3,()=>{if(f9e(rn,an,ln),cn===ln)h9e(rn,nn);else Mu(rn,xFe,()=>d6t(rn,ln,cn,nn))})}function d6t(rn,nn,an,sn){let{layout:ln,scene:cn}=rn,un=rn.turn,dn=sx.has(nn);rn.onEvent(dn?"snake":"ladder",un);let pn=(r9e(nn)??[]).map(([Sn,_n,vn])=>[Sn,_n,vn+i6t]),mn=UE(rn,un,an),[fn,hn]=sl(nn),[bn,yn]=sl(an),En=(dn?0.55:0.35)+Math.hypot(bn-fn,yn-hn)*(dn?1.4:1);if(ln&&cn){if(dn)e9e(rn.world,ln,cn,rn.camera,un);u3(rn.world,ln,cn,un,[UE(rn,un,nn),...pn,mn],En)}Mu(rn,En,()=>{if(f9e(rn,un,an),!dn&&rn.layout)t9e(rn.world,rn.layout,mn);h9e(rn,sn)})}function f9e(rn,nn,an){rn.positions[nn]=an,jW(rn,!0),rn.onPositions(rn.positions[0],rn.positions[1])}function h9e(rn,nn){rn.world.scoreboard.set(yFe(rn.positions[0],rn.positions[1])),rn.onScore(rn.score);let an=rn.turn;if(rn.positions[an]===Vc){if(rn.won=an===0,rn.phase="over",rn.busy=!1,rn.rolling=!1,rn.layout)o9e(rn.world,rn.layout,UE(rn,an,Vc));VE(rn),rn.onPhase("over");return}Mu(rn,RFe,()=>d3(rn,nn===6))}function d3(rn,nn){if(rn.phase!=="playing")return;if(!nn)rn.turn=rn.turn===0?1:0,rn.sixes=0,rn.onTurn(rn.turn);if(rn.busy=rn.turn===1,rn.rolling=!1,VE(rn),rn.turn===1)Mu(rn,MFe,()=>m9e(rn))}var a6t=600,s6t=0.1,i6t=0.012,l6t=0.035;var b9e=e(()=>{n3();n9e()});var Vr={};n(Vr,{SnakesAndLadders:()=>_o});import{jsx as m6t}from"react/jsx-runtime";var dx,p6t,_o;var He=e(()=>{Ta();l();a();_a();o();xa();va();n3();b9e();dx=t.SNAKES_AND_LADDERS,p6t={tap:{sound:"TAP",haptic:"medium"},roll:{sound:"ROLL"},six:{sound:"SIX",haptic:"success"},penalty:{sound:"PENALTY",haptic:"error"},cantMove:{sound:"CANT_MOVE",haptic:"warning",youOnly:!0},move:{sound:"MOVE",haptic:"light"},snake:{sound:"SNAKE",haptic:"error"},ladder:{sound:"LADDER",haptic:"success"}},_o=Vn("snakes-and-ladders",(rn)=>{let[nn,an]=gn([0,0]),[sn,ln]=gn(0),[cn,un]=gn(0),{status:dn,screen:pn,gameOver:mn}=zn(rn,{gameId:"snakes-and-ladders",create:a9e,start:l9e,reset:c9e,dispose:u9e,tick:d9e,setTheme:i9e,resize:(fn,hn,bn,yn)=>{let En=LFe(hn,bn,yn);return s9e(fn,En),En.size*(1+n1*2)},tap:p9e,sounds:dx,onStart:(fn)=>fn(dx.START,"medium"),onOver:(fn,hn)=>fn(hn==="win"?dx.WIN:dx.GAME_OVER,hn==="win"?"success":"heavy"),wire:(fn,hn)=>{fn.onPositions=(bn,yn)=>an([bn,yn]),fn.onScore=un,fn.onTurn=ln,fn.onEvent=(bn,yn)=>{let En=p6t[bn];if(En.youOnly&&yn!==0)return;hn(En.sound?dx[En.sound]:null,En.haptic)}}});return m6t(Un,{...pn,light:CFe,columns:[ma("YOU",String(nn[0]),JI),ma(sn===0?"YOUR TURN":"AI TURN",cn.toLocaleString()),ma("AI",String(nn[1]),e3)],subtext:"Race to 100!",gameOver:mn({title:dn==="win"?"YOU WON!":"YOU LOST!",message:dn==="win"?"You reached 100 first!":"AI reached 100 first!",scoreLabel:dn==="win"?"You Won!":"You Lost",score:cn,buttonText:dn==="win"?"Play Again!":"Try Again!"})})})});function fx(rn){let nn=_9e.get(rn);if(nn)return nn;let an=(cn)=>rn?4-cn:cn,sn={};for(let cn of $W){if(sn[cn.type])continue;let un=cn.pts.map(([pn,mn])=>({x:an(pn),y:mn})),dn=ZW(un);sn[cn.type]=un.map((pn)=>({x:pn.x-dn.x,y:pn.y-dn.y}))}let ln=sn;return _9e.set(rn,ln),ln}function JW(rn,nn,an,sn){let ln=nn,cn=ln*0.1,un=b6t(rn*2654435761+40503),dn=y9e[Math.floor(un()*y9e.length)],pn=un()<0.5,mn=(Yn)=>pn?4-Yn:Yn,fn=$W.map((Yn)=>Yn.pts.map(([ia,Xn])=>{let La=px(mn(ia),Xn,dn,E9e.x,E9e.y);return{x:La.x*ln,y:La.y*ln}})),hn=1/0,bn=1/0,yn=-1/0,En=-1/0;for(let Yn of fn)for(let ia of Yn){if(ia.x<hn)hn=ia.x;if(ia.y<bn)bn=ia.y;if(ia.x>yn)yn=ia.x;if(ia.y>En)En=ia.y}let Sn=(an-(yn-hn))/2-hn,_n=cn-bn,vn=fx(pn),Tn=Object.fromEntries(Object.entries(vn).map(([Yn,ia])=>[Yn,ia.map((Xn)=>({x:Xn.x*ln,y:Xn.y*ln}))])),Rn=(Yn,ia)=>{let Xn=Tn[Yn],La=ln*0.08;for(let Ia of h6t)if(y6t(Xn.map((Va)=>px(Va.x,Va.y,Ia,0,0)),ia,La))return Ia;return dn},An={x:2*Math.SQRT2*ln,y:Math.SQRT2*ln},Mn=1.1,Cn=S9e.flatMap((Yn)=>{let ia=Yn.reduce((La,[Ia])=>La+Ia,0)/Yn.length,Xn=Yn.reduce((La,[,Ia])=>La+Ia,0)/Yn.length;return Yn.map(([La,Ia])=>({x:((ia-2)*Mn+La-ia)*Math.SQRT2*ln*0.4,y:((Xn-1)*Mn+Ia-Xn)*Math.SQRT2*ln*0.4}))}),Ln=Math.min(...Cn.map((Yn)=>Yn.y)),On=Math.max(...Cn.map((Yn)=>Yn.y)),Dn=(Math.min(...Cn.map((Yn)=>Yn.x))+Math.max(...Cn.map((Yn)=>Yn.x)))/2,Wn=cn+(En-bn)+Math.max(12,ln*0.12)-Ln,Fn=cn-ln*0.024,qn=Wn+On+ln*0.4*0.024,Kn=(sn-Fn-qn)/2;return{pieces:$W.map((Yn,ia)=>{let Xn=ZW(fn[ia]),La=fn[ia].map((rs)=>({x:rs.x-Xn.x,y:rs.y-Xn.y})),Ia=Rn(Yn.type,La),Va=f6t[Yn.type],ls=S9e[ia].map(([rs,Ps])=>({x:(pn?4-rs:rs)*Math.SQRT2*ln,y:Ps*Math.SQRT2*ln})),Bs=ZW(ls),ei=Rn(Yn.type,ls.map((rs)=>({x:rs.x-Bs.x,y:rs.y-Bs.y}))),Ms={x:an/2+(Bs.x-An.x)*0.4*Mn-(pn?-Dn:Dn),y:Wn+(Bs.y-An.y)*0.4*Mn+Kn};return{id:ia,type:Yn.type,color:Yn.color,localPoints:Tn[Yn.type],targetCx:Xn.x+Sn,targetCy:Xn.y+_n+Kn,targetRot:Ia,symmetry:Va,silPoints:fn[ia].map((rs)=>({x:rs.x+Sn,y:rs.y+_n+Kn})),initialRot:ei,scatterCx:Ms.x,scatterCy:Ms.y}}),mirror:pn,silhouetteRect:{x:hn+Sn,y:bn+_n+Kn,w:yn-hn,h:En-bn}}}function v9e(rn,nn,an,sn,ln,cn,un){let dn=-1,pn=1/0,mn=!1;if(rn.pieces.forEach((hn,bn)=>{if(nn[bn]||hn.type!==sn)return;let yn=Math.hypot(ln-hn.targetCx,cn-hn.targetCy);if(yn>an*1.8)return;if(!E6t(un,hn.targetRot,hn.symmetry)){mn=!0;return}if(yn<pn)pn=yn,dn=bn}),dn<0)return mn?"nudge":null;nn[dn]=!0;let fn=rn.pieces[dn];return{slot:dn,cx:fn.targetCx,cy:fn.targetCy,rot:S6t(un,fn.targetRot,fn.symmetry)}}function T9e(rn,nn,an,sn,ln,cn,un,dn=0){let pn=px(cn-nn,un-an,-sn,0,0),mn=pn.x/ln,fn=pn.y/ln,hn=!1;for(let yn=0,En=rn.length-1;yn<rn.length;En=yn++){let Sn=rn[yn],_n=rn[En];if(Sn.y>fn!==_n.y>fn&&mn<(_n.x-Sn.x)*(fn-Sn.y)/(_n.y-Sn.y)+Sn.x)hn=!hn}if(hn||dn<=0)return hn;let bn=dn/ln;for(let yn=0,En=rn.length-1;yn<rn.length;En=yn++){let Sn=rn[yn],_n=rn[En],vn=_n.x-Sn.x,Tn=_n.y-Sn.y,Rn=Math.max(0,Math.min(1,((mn-Sn.x)*vn+(fn-Sn.y)*Tn)/(vn*vn+Tn*Tn||1)));if(Math.hypot(mn-(Sn.x+vn*Rn),fn-(Sn.y+Tn*Rn))<=bn)return!0}return!1}var QW=6,p3=0.4,i1=0.024,mx=7,s1,$W,f6t,y9e,E9e,h6t,px=(rn,nn,an,sn,ln)=>{let cn=an*Math.PI/180,un=Math.cos(cn),dn=Math.sin(cn),pn=rn-sn,mn=nn-ln;return{x:sn+pn*un-mn*dn,y:ln+pn*dn+mn*un}},ZW=(rn)=>{let nn=0,an=0;for(let sn of rn)nn+=sn.x,an+=sn.y;return{x:nn/rn.length,y:an/rn.length}},b6t=(rn)=>{let nn=rn>>>0;return()=>{nn|=0,nn=nn+1831565813|0;let an=Math.imul(nn^nn>>>15,1|nn);return an=an+Math.imul(an^an>>>7,61|an)^an,((an^an>>>14)>>>0)/4294967296}},y6t=(rn,nn,an)=>{if(rn.length!==nn.length)return!1;let sn=Array(nn.length).fill(!1);for(let ln of rn){let cn=!1;for(let un=0;un<nn.length;un++)if(!sn[un]&&Math.hypot(ln.x-nn[un].x,ln.y-nn[un].y)<=an){sn[un]=!0,cn=!0;break}if(!cn)return!1}return!0},S9e,_9e,E6t=(rn,nn,an)=>{let sn=((rn-nn)%an+an)%an;return sn=Math.min(sn,an-sn),sn<=30},S6t=(rn,nn,an)=>nn+Math.round((rn-nn)/an)*an;var zE=e(()=>{s1={blue:"#4A90E2",red:"#E24A4A",green:"#5BB749",orange:"#F5A623",purple:"#9B59B6",yellow:"#F4C724",teal:"#26C6DA"},$W=[{type:"large",color:s1.blue,pts:[[0,0],[0,4],[2,2]]},{type:"large",color:s1.red,pts:[[0,0],[4,0],[2,2]]},{type:"medium",color:s1.green,pts:[[4,4],[2,4],[4,2]]},{type:"small",color:s1.orange,pts:[[0,4],[2,4],[1,3]]},{type:"small",color:s1.purple,pts:[[2,2],[3,3],[3,1]]},{type:"square",color:s1.yellow,pts:[[1,3],[2,4],[3,3],[2,2]]},{type:"para",color:s1.teal,pts:[[3,3],[4,2],[4,0],[3,1]]}],f6t={large:360,medium:360,small:360,square:90,para:180},y9e=[0,90,180,270],E9e={x:2,y:2},h6t=[0,45,90,135,180,225,270,315],S9e=[[[2,0],[0,2],[2,2]],[[2,0],[0,2],[0,0]],[[3,1],[2,0],[4,0]],[[4,0],[3,1],[4,1]],[[2,2],[3,2],[2,1]],[[3,1],[3,2],[4,2],[4,1]],[[2,0],[2,1],[3,2],[3,1]]],_9e=new Map});function D9e(rn,nn,an){let sn=la(an)+_6t,ln=Math.max(240,nn-sn-v6t),cn=$n(rn),un=cn/(4+i1*2),dn=ln/Math.cos(x9e)/QW,pn=Math.min(un,dn);return{width:rn,height:nn,tilt:x9e,centerY:sn+ln/2,unit:pn,boardW:cn,boardH:pn*QW}}var zd=120,R9e=1000,A9e=0.25,M9e=10,C9e=45,w9e=0.18,eU=0.16,L9e=0.045,I9e=0.22,O9e=0.09,tU,x9e=0,P9e,qE=0.2,oU=0.14,g9e=1.2,_6t=82,v6t=88,m3=(rn,nn,an)=>[nn-rn.boardW/2,rn.boardH/2-an],N9e=(rn,nn,an)=>[nn+rn.boardW/2,rn.boardH/2-an];var f3=e(()=>{o();Hn();zE();zE();tU={CLASSIC_SLOT:"rgba(255, 255, 255, 0.12)",CLASSIC_SLOT_EDGE:"rgba(255, 255, 255, 0.30)"},P9e=Zn([0,0,1],0.45)});import{effects as T6t,extrude as B9e,Path as x6t,quat as R6t,tube as A6t}from"@nayan-ui/engine";function L6t(rn,nn,an,sn){let ln=[];for(let cn of an.pieces){let[un,dn]=m3(nn,cn.targetCx,cn.targetCy),pn=qd(cn.targetRot);ln.push(rn.spawn({mesh:w6t(cn.type,an.mirror),position:[un,dn,rU],rotation:pn,scale:nn.unit,color:W9e(sn),pickable:!1})),ln.push(rn.spawn({mesh:H9e(cn.type,an.mirror),position:[un,dn,rU],rotation:pn,scale:[nn.unit,nn.unit,0.2*nn.unit],color:U9e(sn),pickable:!1}))}return ln}function V9e(rn,nn,an,sn,ln){let cn=oa(rn,nn.width,nn.height,-k9e,an);Ea(rn,cn,nn,k9e);let un={backdrop:cn,slots:L6t(rn,nn,sn,an),tans:[]};return sn.pieces.forEach((dn,pn)=>{let mn=ln[pn],fn=rn.spawn({mesh:"none",position:h3(nn,mn),rotation:qd(mn.rot),scale:nn.unit*mn.scale,pickable:!1}),hn=rn.spawn({mesh:C6t(dn.type,sn.mirror),parent:fn,position:[0,0,qE/2],color:xn(dn.color),pickable:!1}),bn=rn.spawn({mesh:H9e(dn.type,sn.mirror),parent:fn,position:[0,0,qE],color:xn(HA(dn.color,0.28)),pickable:!1});un.tans.push({root:fn,slab:hn,rim:bn})}),un}function z9e(rn,nn){for(let an of[nn.backdrop,...nn.slots,...nn.tans.map((sn)=>sn.root)])rn.despawn(an)}function q9e(rn,nn,an){aa(rn,nn.backdrop,an),nn.slots.forEach((sn,ln)=>rn.set(sn,{color:ln%2?U9e(an):W9e(an)}))}function Y9e(rn,nn,an,sn,ln){let cn=an.tans[sn];if(!cn)return;rn.stopAnimation(cn.root),rn.set(cn.root,{position:h3(nn,ln),rotation:qd(ln.rot),scale:nn.unit*ln.scale})}function l1(rn,nn,an,sn,ln,cn,un="easeOut"){let dn=an.tans[sn];if(dn)rn.animate(dn.root,{position:h3(nn,ln),rotation:qd(ln.rot),scale:nn.unit*ln.scale},{duration:cn,easing:un})}function K9e(rn,nn,an,sn,ln){sn.forEach((cn,un)=>{let dn=an.tans[un];if(!dn)return;rn.stopAnimation(dn.root),rn.set(dn.root,{position:h3(nn,cn),rotation:qd(cn.rot),scale:nn.unit*cn.scale*0.4}),rn.animate(dn.root,{scale:nn.unit*cn.scale},{duration:0.26,delay:un*ln,easing:"back"})})}function X9e(rn,nn,an,sn,ln){let cn=an.tans[sn];if(cn)rn.animate(cn.root,[{scale:nn.unit*1.08,at:0.3},{scale:nn.unit}],{duration:0.29,delay:ln,easing:"easeOut"})}function j9e(rn,nn,an,sn){let ln=nn.tans[an];if(!ln)return;rn.animate(ln.root,[{rotation:qd(sn+7)},{rotation:qd(sn-7)},{rotation:qd(sn+4)},{rotation:qd(sn)}],{duration:0.26})}function $9e(rn,nn,an,sn,ln,cn){an.tans.forEach((mn,fn)=>{rn.animate(mn.root,[{scale:nn.unit*1.1,at:0.5},{scale:nn.unit}],{duration:0.27,delay:ln+fn*cn,easing:"easeInOut"})});let un=sn.silhouetteRect,[dn,pn]=m3(nn,un.x+un.w/2,un.y+un.h/2);T6t.confetti(rn,{position:[dn,pn,nn.unit],count:60,size:nn.unit*0.1,speed:un.w*1.4,lifetime:1.3,gravity:-un.w*2.4,colors:sn.pieces.slice(0,4).map((mn)=>xn(mn.color))})}function Z9e(rn,nn,an,sn){for(let ln of an){let cn=nn.tans[ln];if(!cn)continue;let un=xn(sn[ln]);rn.animate(cn.slab,{color:[un[0]*0.45,un[1]*0.45,un[2]*0.5,1]},{duration:0.4})}}var G9e,nU=(rn,nn)=>{let an=G9e.get(rn);if(!an)an=Bn("tangram/TangramScene:"+rn,nn),G9e.set(rn,an);return an},k9e=30,rU=0.3,F9e=(rn)=>new x6t().addPolygon(rn.map((nn)=>[nn.x,nn.y])),M6t=(rn,nn)=>[...rn,rn[0]].map((an)=>[an.x,-an.y,nn]),C6t=(rn,nn)=>nU(`tg-slab:${rn}:${nn}`,()=>wn(B9e(F9e(fx(nn)[rn]),{depth:qE}),{center:!1,shine:0.45})),H9e=(rn,nn)=>nU(`tg-rim:${rn}:${nn}`,()=>wn(A6t(M6t(fx(nn)[rn],0),{radius:i1,sides:8,smoothness:1,caps:!1}),{center:!1,shine:0.3})),w6t=(rn,nn)=>nU(`tg-slot:${rn}:${nn}`,()=>wn(B9e(F9e(fx(nn)[rn]),{depth:0}),{center:!1})),qd=(rn)=>R6t.z(-rn*Math.PI/180),W9e=(rn)=>xn(rn.mode==="classic"?tU.CLASSIC_SLOT:rn.BOARD.CELL_EMPTY),U9e=(rn)=>xn(rn.mode==="classic"?tU.CLASSIC_SLOT_EDGE:rn.BOARD.BORDER),h3=(rn,nn)=>{let[an,sn]=m3(rn,nn.x,nn.y);return[an,sn,rU+nn.lift*rn.unit]};var Q9e=e(()=>{Uu();u();na();ba();Hn();f3();zE();G9e=new Map});import{World as I6t}from"@nayan-ui/engine";function tHe(rn){let nn=new I6t(O6t),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",level:0,data:null,tans:[],occupied:[],active:-1,held:null,placed:0,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,clock:0,onPhase:(ln)=>{},onScore:(ln)=>{},onPlaced:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,zd),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&uHe(sn,!1)},sn}function Yd(rn,nn){let an=rn.tans[nn],sn=rn.held?.id===nn&&rn.held.moved;if(an.placed)return{x:an.x,y:an.y,rot:an.rot,scale:1,lift:0};if(sn)return{x:an.x,y:an.y,rot:an.rot,scale:1.05,lift:g9e};if(rn.active===nn)return{x:an.x,y:an.y,rot:an.rot,scale:1,lift:oU*(mx+2)};return{x:an.x,y:an.y,rot:an.rot,scale:p3,lift:oU*(nn+1)}}function oHe(rn,nn){let an=!rn.layout;if(rn.held)rn.held=null,rn.active=-1;if(rn.layout=nn,ya(rn.camera,nn),an)aU(rn,rn.level);else nHe(rn,!1)}function rHe(rn,nn){if(rn.theme=nn,rn.scene)q9e(rn.world,rn.scene,nn)}function nHe(rn,nn){let an=rn.layout;if(!an)return;let sn=rn.data;if(rn.data=JW(rn.level,an.unit,an.boardW,an.boardH),sn&&sn.pieces.length===rn.data.pieces.length&&!nn)rn.tans=rn.tans.map((ln,cn)=>{let un=rn.data.pieces[cn];if(!ln.placed)return{...ln,x:un.scatterCx,y:un.scatterCy};let dn=rn.occupied.findIndex((mn,fn)=>mn&&Math.hypot(sn.pieces[fn].targetCx-ln.x,sn.pieces[fn].targetCy-ln.y)<1),pn=rn.data.pieces[dn]??un;return{...ln,x:pn.targetCx,y:pn.targetCy}});if(rn.scene)z9e(rn.world,rn.scene);if(rn.scene=V9e(rn.world,an,rn.theme,rn.data,J9e(rn)),nn)K9e(rn.world,an,rn.scene,J9e(rn),L9e)}function aU(rn,nn){let an=rn.layout;if(rn.world.cancelTimers(),rn.level=nn,rn.held=null,rn.active=-1,rn.placed=0,rn.world.scoreboard.reset(0,zd),rn.won=!1,an)rn.data=JW(nn,an.unit,an.boardW,an.boardH),rn.tans=rn.data.pieces.map((sn)=>({x:sn.scatterCx,y:sn.scatterCy,rot:sn.initialRot,placed:!1})),rn.occupied=rn.data.pieces.map(()=>!1),nHe(rn,!0);rn.onScore(0),rn.onPlaced(0),rn.onTime(zd)}function aHe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(zd),rn.onPhase("playing")}function sHe(rn){rn.phase="ready",aU(rn,0),rn.onPhase("ready")}function iHe(rn){let nn=rn.won?rn.level+1:rn.level;rn.phase="ready",aU(rn,nn),rn.onPhase("ready")}function lHe(rn){rn.world.dispose()}function cHe(rn,nn){if(rn.world.isDisposed)return;rn.clock+=Math.min(nn,0.25),rn.world.update(nn)}function uHe(rn,nn){rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over";let{layout:an,scene:sn,data:ln}=rn,cn=rn.held?.id;if(rn.held=null,cn!==void 0)b3(rn,cn);if(an&&sn&&ln)if(nn)$9e(rn.world,an,sn,ln,eU+I9e,O9e);else Z9e(rn.world,sn,rn.tans.flatMap((un,dn)=>un.placed?[]:[dn]),ln.pieces.map((un)=>un.color));rn.onPhase("over"),rn.onEvent(nn?"win":"lose")}function eHe(rn,nn,an){let sn=rn.layout,[ln,cn]=Wa(sn,nn,an,0.3+sn.unit*qE*2);return N9e(sn,ln,cn)}function P6t(rn,nn,an){let{data:sn,layout:ln}=rn;if(!sn||!ln)return-1;let cn=[rn.active,...[6,5,4,3,2,1,0].filter((un)=>un!==rn.active)].filter((un)=>un>=0);for(let un of[0,ln.unit*0.15])for(let dn of cn){let pn=rn.tans[dn];if(pn.placed)continue;let mn=rn.held?.id===dn&&rn.held.moved?1.05:rn.active===dn?1:p3;if(T9e(sn.pieces[dn].localPoints,pn.x,pn.y,pn.rot,mn,nn,an,un))return dn}return-1}function dHe(rn,nn){let{layout:an,scene:sn}=rn;if(!an||!sn)return;if(nn.phase==="start"){if(rn.phase!=="playing")return;let[un,dn]=eHe(rn,nn.x,nn.y),pn=P6t(rn,un,dn);if(pn<0)return;let mn=rn.tans[pn],fn=rn.active;if(rn.held={id:pn,sx:nn.x,sy:nn.y,bx:un,by:dn,ox:mn.x,oy:mn.y,at:rn.clock,moved:!1},rn.active=pn,fn>=0&&fn!==pn&&!rn.tans[fn].placed)l1(rn.world,an,sn,fn,Yd(rn,fn),0.14);l1(rn.world,an,sn,pn,Yd(rn,pn),0.14);return}let ln=rn.held;if(!ln)return;let cn=rn.tans[ln.id];if(nn.phase==="end"&&nn.cancelled)return cn.x=ln.ox,cn.y=ln.oy,rn.held=null,b3(rn,ln.id);if(!ln.moved&&Math.hypot(nn.x-ln.sx,nn.y-ln.sy)>M9e)ln.moved=!0,l1(rn.world,an,sn,ln.id,Yd(rn,ln.id),0.1);if(ln.moved){let[un,dn]=eHe(rn,nn.x,nn.y);if(cn.x=ln.ox+(un-ln.bx),cn.y=ln.oy+(dn-ln.by),nn.phase!=="end"){Y9e(rn.world,an,sn,ln.id,Yd(rn,ln.id));return}return rn.held=null,D6t(rn,ln.id)}if(nn.phase!=="end")return;if(rn.held=null,rn.clock-ln.at<A9e)g6t(rn,ln.id)}function g6t(rn,nn){let{layout:an,scene:sn}=rn,ln=rn.tans[nn];if(ln.rot+=C9e,pHe(rn,nn),an&&sn)l1(rn.world,an,sn,nn,Yd(rn,nn),w9e,"back");rn.onEvent("rotate")}function b3(rn,nn){if(pHe(rn,nn),rn.layout&&rn.scene)l1(rn.world,rn.layout,rn.scene,nn,Yd(rn,nn),0.12)}function pHe(rn,nn){let{layout:an,data:sn}=rn;if(!an||!sn)return;let ln=rn.tans[nn],cn=Yd(rn,nn).scale,un=sn.pieces[nn].localPoints.map((fn)=>px(fn.x*cn,fn.y*cn,ln.rot,0,0)),dn=un.map((fn)=>fn.x),pn=un.map((fn)=>fn.y),mn=an.unit*cn*i1;ln.x=Math.max(mn-Math.min(...dn),Math.min(an.boardW-mn-Math.max(...dn),ln.x)),ln.y=Math.max(mn-Math.min(...pn),Math.min(an.boardH-mn-Math.max(...pn),ln.y))}function D6t(rn,nn){let{layout:an,scene:sn,data:ln}=rn;if(!an||!sn||!ln||rn.phase!=="playing")return b3(rn,nn);let cn=rn.tans[nn],un=v9e(ln,rn.occupied,an.unit,ln.pieces[nn].type,cn.x,cn.y,cn.rot);if(un&&un!=="nudge"){if(cn.placed=!0,cn.x=un.cx,cn.y=un.cy,cn.rot=un.rot,rn.active===nn)rn.active=-1;l1(rn.world,an,sn,nn,Yd(rn,nn),eU),X9e(rn.world,an,sn,nn,0.14),rn.onEvent("place"),N6t(rn);return}if(b3(rn,nn),un==="nudge")j9e(rn.world,sn,nn,cn.rot),rn.onEvent("wrong")}function N6t(rn){rn.placed+=1,rn.world.scoreboard.add(R9e);let nn=rn.placed>=mx;if(nn)rn.world.scoreboard.set(Ya(zd-rn.timeLeft,zd,rn.score));if(rn.onPlaced(rn.placed),rn.onScore(rn.score),nn)uHe(rn,!0)}var O6t=200,J9e=(rn)=>rn.tans.map((nn,an)=>Yd(rn,an));var mHe=e(()=>{ci();ba();f3();zE();Q9e()});var zr={};n(zr,{Tangram:()=>To});import{jsx as G6t}from"react/jsx-runtime";var c1,fHe,To;var We=e(()=>{Ta();l();a();_a();o();xa();va();f3();mHe();zE();c1=t.TANGRAM,fHe={rotate:{sound:c1.ROTATE,haptic:"light"},place:{sound:c1.PLACE,haptic:"success"},wrong:{sound:c1.WRONG,haptic:"warning"},win:{sound:c1.WIN,haptic:"success"},lose:{sound:c1.GAME_OVER,haptic:"error"}},To=Vn("tangram",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(0),[cn,un]=gn(zd),{game:dn,theme:pn,status:mn,screen:fn,gameOver:hn}=zn(rn,{gameId:"tangram",create:tHe,start:aHe,reset:sHe,replay:iHe,dispose:lHe,tick:cHe,setTheme:rHe,resize:(bn,yn,En,Sn)=>{let _n=D9e(yn,En,Sn);return oHe(bn,_n),_n.boardW},drag:dHe,sounds:c1,onStart:(bn)=>bn(c1.START),wire:(bn,yn)=>{bn.onScore=an,bn.onPlaced=ln,bn.onTime=un,bn.onEvent=(En)=>yn(fHe[En].sound,fHe[En].haptic)}});return G6t(Un,{...fn,light:P9e,columns:[Qn(nn),ma("PIECES",`${sn}/${mx}`),ta(cn,pn)],subtext:"Fit all seven pieces!",gameOver:hn({title:mn==="win"?"PUZZLE SOLVED!":"TIME UP!",message:mn==="win"?"You reassembled the shape!":"You ran out of time!",scoreLabel:"Score",score:dn.score,buttonText:mn==="win"?"Next Puzzle!":"Try Again!"})})})});function THe(rn,nn,an){let sn=la(an)+k6t,ln=Math.max(200,nn-sn-B6t),cn=Math.min($n(rn),ln/Math.cos(hHe)-20),un=Math.max(16,Math.floor((cn-hx*2)/8));return{width:rn,height:nn,tilt:hHe,centerY:sn+ln/2,cell:un,size:un*8}}function xHe(rn,nn,an){let sn=Math.floor(nn/rn.cell+4),ln=Math.floor(4-an/rn.cell);return sn<0||sn>7||ln<0||ln>7?-1:ln*8+sn}var u1=300,bHe=500,yHe=500,EHe=5000,SHe=0.55,sU=0.22,_He=0.3,Cu,hHe=0,hx=3,vHe,Vm=0.16,k6t=82,B6t=120,Kd=(rn,nn)=>[(nn%8-3.5)*rn.cell,(3.5-Math.floor(nn/8))*rn.cell];var y3=e(()=>{o();Hn();Cu={LIGHT_SQ:"#EED9B6",DARK_SQ:"#A9744F",BOARD_BORDER:"#61412E",RED:"#E53935",BLACK:"#37474F",GOLD:"#FFC107",SELECT:"#FFD54F",MOVE:"#4CAF50",CAPTURE:"#F44336"},vHe=Zn([-0.4,0.5,1],0.45)});var RHe,AHe,E3,mU,iU=(rn)=>rn===1?2:0,lU=(rn)=>rn===-1?2:4,fU=(rn,nn)=>rn===1&&nn>=56||rn===-1&&nn<8,MHe=100,CHe=175,bx,hU=12,yx,Es,wHe,d1,YE=0,LHe,IHe,cU=(rn,nn,an,sn)=>{let ln=YE*yx;d1[ln++]=rn,d1[ln++]=nn,d1[ln++]=an?1:0,d1[ln++]=sn;for(let cn=0;cn<sn;cn++)d1[ln++]=LHe[cn],d1[ln++]=IHe[cn];YE++},OHe=(rn,nn,an,sn,ln,cn,un)=>{let dn=!1;for(let pn=cn;pn<un;pn++){let mn=mU[nn*4+pn];if(mn<0||Es[mn]!==0)continue;let fn=E3[nn*4+pn],hn=Es[fn];if(hn*sn>=0)continue;if(dn=!0,Es[nn]=0,Es[fn]=0,Es[mn]=an,LHe[ln]=fn,IHe[ln]=hn,fU(an,mn))cU(rn,mn,!0,ln+1);else OHe(rn,mn,an,sn,ln+1,cn,un);Es[mn]=0,Es[fn]=hn,Es[nn]=an}if(!dn&&ln>0)cU(rn,nn,!1,ln)},F6t=(rn,nn)=>{d1=nn,YE=0;for(let an=0;an<64;an++){let sn=Es[an];if(sn*rn>0)OHe(an,an,sn,rn,0,iU(sn),lU(sn))}if(YE>0)return YE;for(let an=0;an<64;an++){let sn=Es[an];if(sn*rn<=0)continue;let ln=lU(sn);for(let cn=iU(sn);cn<ln;cn++){let un=E3[an*4+cn];if(un>=0&&Es[un]===0)cU(an,un,fU(sn,un),0)}}return YE},H6t=(rn)=>{for(let nn=0;nn<64;nn++){let an=Es[nn];if(an*rn<=0)continue;let sn=lU(an);for(let ln=iU(an);ln<sn;ln++){let cn=E3[nn*4+ln];if(cn<0)continue;let un=Es[cn];if(un===0)return!0;if(un*rn<0){let dn=mU[nn*4+ln];if(dn>=0&&Es[dn]===0)return!0}}}return!1},W6t=()=>{let rn=0;for(let nn=0;nn<64;nn++){let an=Es[nn];if(an!==0)rn+=bx[(an+2)*64+nn]}return rn},uU=(rn,nn)=>{let an=rn[nn],sn=Es[an];Es[an]=0;let ln=rn[nn+3];for(let cn=0;cn<ln;cn++)Es[rn[nn+4+cn*2]]=0;Es[rn[nn+1]]=rn[nn+2]?sn*2:sn},dU=(rn,nn)=>{let an=rn[nn+1],sn=rn[nn+2]?Es[an]/2:Es[an];Es[an]=0;let ln=rn[nn+3];for(let cn=0;cn<ln;cn++)Es[rn[nn+4+cn*2]]=rn[nn+5+cn*2];Es[rn[nn]]=sn},pU=(rn,nn,an,sn,ln)=>{let cn=nn?1:-1;if(rn===0){if(!H6t(cn))return nn?-1e5:1e5;return W6t()}let un=wHe[ln]??(wHe[ln]=[]),dn=F6t(cn,un);if(dn===0)return nn?-1e5+rn:1e5-rn;if(nn){let mn=-1/0;for(let fn=0;fn<dn;fn++){uU(un,fn*yx);let hn=pU(rn-1,!1,an,sn,ln+1);if(dU(un,fn*yx),hn>mn)mn=hn;if(mn>an)an=mn;if(sn<=an)break}return mn}let pn=1/0;for(let mn=0;mn<dn;mn++){uU(un,mn*yx);let fn=pU(rn-1,!0,an,sn,ln+1);if(dU(un,mn*yx),fn<pn)pn=fn;if(pn<sn)sn=pn;if(sn<=an)break}return pn},zm,PHe=(rn,nn,an)=>{for(let cn=0;cn<64;cn++){let un=rn[cn];Es[cn]=un?(un.player==="black"?1:-1)*(un.king?2:1):0}let sn=-1/0,ln=[];for(let cn of nn){let un=cn.steps[cn.steps.length-1],dn=0;for(let mn of cn.steps){if(mn.captured===null)continue;zm[4+dn*2]=mn.captured,zm[5+dn*2]=Es[mn.captured],dn++}zm[0]=cn.from,zm[1]=un.to,zm[2]=fU(Es[cn.from],un.to)?1:0,zm[3]=dn,uU(zm,0);let pn=pU(an-1,!1,sn-1,1/0,0);if(dU(zm,0),pn>sn)sn=pn,ln=[cn];else if(pn===sn)ln.push(cn)}return ln};var gHe=e(()=>{RHe=[-1,-1,1,1],AHe=[-1,1,-1,1],E3=new Int8Array(256),mU=new Int8Array(256);for(let rn=0;rn<64;rn++){let nn=Math.floor(rn/8),an=rn%8;for(let sn=0;sn<4;sn++){let ln=nn+RHe[sn],cn=an+AHe[sn],un=nn+RHe[sn]*2,dn=an+AHe[sn]*2;E3[rn*4+sn]=ln>=0&&ln<8&&cn>=0&&cn<8?ln*8+cn:-1,mU[rn*4+sn]=un>=0&&un<8&&dn>=0&&dn<8?un*8+dn:-1}}bx=new Int16Array(320);for(let rn=0;rn<64;rn++){let nn=Math.floor(rn/8);bx[192+rn]=MHe+nn*2,bx[256+rn]=CHe,bx[64+rn]=-(MHe+(7-nn)*2),bx[0+rn]=-CHe}yx=4+hU*2,Es=new Int8Array(64),wHe=[],d1=[],LHe=new Int8Array(hU),IHe=new Int8Array(hU),zm=[]});function yU(){let rn=Array(wu*wu).fill(null);for(let nn=0;nn<wu;nn++)for(let an=0;an<wu;an++){if(!V6t(nn,an))continue;if(nn<3)rn[Ex(nn,an)]={player:M0,king:!1};else if(nn>wu-4)rn[Ex(nn,an)]={player:si,king:!1}}return rn}function qm(rn,nn,an,sn){let{row:ln,col:cn}=bU(nn),un=[];for(let[dn,pn]of GHe(an,sn)){let mn=ln+dn*2,fn=cn+pn*2;if(!NHe(mn,fn))continue;let hn=Ex(mn,fn);if(rn[hn]!==null)continue;let bn=Ex(ln+dn,cn+pn),yn=rn[bn];if(yn&&yn.player!==an)un.push({to:hn,captured:bn})}return un}function S3(rn,nn,an,sn){let{row:ln,col:cn}=bU(nn),un=[];for(let[dn,pn]of GHe(an,sn)){let mn=ln+dn,fn=cn+pn;if(!NHe(mn,fn))continue;let hn=Ex(mn,fn);if(rn[hn]===null)un.push({to:hn,captured:null})}return un}function _3(rn,nn,an,sn){let ln=rn.slice(),cn=ln[nn];if(ln[nn]=null,an.captured!==null)ln[an.captured]=null;let{row:un}=bU(an.to),dn=!cn.king&&(sn===si&&un===0||sn===M0&&un===wu-1);return ln[an.to]=dn?{player:sn,king:!0}:cn,{board:ln,promoted:dn}}function kHe(rn,nn){for(let an=0;an<rn.length;an++){let sn=rn[an];if(sn&&sn.player===nn&&qm(rn,an,sn.player,sn.king).length>0)return!0}return!1}function BHe(rn,nn,an,sn,ln,cn){let un=qm(rn,an,sn,ln);if(un.length===0)return cn.length?[{from:nn,steps:cn}]:[];let dn=[];for(let pn of un){let mn=_3(rn,an,pn,sn),fn=[...cn,pn];if(mn.promoted)dn.push({from:nn,steps:fn});else dn.push(...BHe(mn.board,nn,pn.to,sn,ln,fn))}return dn}function v3(rn,nn){let an=[];for(let ln=0;ln<rn.length;ln++){let cn=rn[ln];if(!cn||cn.player!==nn)continue;let un=BHe(rn,ln,ln,nn,cn.king,[]);if(un.length)an.push(...un)}if(an.length)return an;let sn=[];for(let ln=0;ln<rn.length;ln++){let cn=rn[ln];if(!cn||cn.player!==nn)continue;for(let un of S3(rn,ln,nn,cn.king))sn.push({from:ln,steps:[un]})}return sn}function FHe(rn,nn){let an=rn[nn.from].player,sn=rn,ln=nn.from;for(let cn of nn.steps)sn=_3(sn,ln,cn,an).board,ln=cn.to;return sn}function EU(rn,nn){let an=0;for(let sn of rn)if(sn&&sn.player===nn)an++;return an}function WHe(rn){let nn=v3(rn,M0);if(nn.length===0)return null;if(nn.length===1)return nn[0];let an=PHe(rn,nn,U6t);return an[Math.floor(Math.random()*an.length)]}var wu=8,DHe=12,U6t=5,si="red",M0="black",bU=(rn)=>({row:Math.floor(rn/wu),col:rn%wu}),Ex=(rn,nn)=>rn*wu+nn,NHe=(rn,nn)=>rn>=0&&rn<wu&&nn>=0&&nn<wu,V6t=(rn,nn)=>(rn+nn)%2===1,z6t,q6t,Y6t,GHe=(rn,nn)=>nn?z6t:rn===si?q6t:Y6t,HHe=(rn,nn,an,sn)=>[...qm(rn,nn,an,sn),...S3(rn,nn,an,sn)];var SU=e(()=>{gHe();z6t=[[-1,-1],[-1,1],[1,-1],[1,1]],q6t=[[-1,-1],[-1,1]],Y6t=[[1,-1],[1,1]]});import{effects as zHe,extrude as R3,lathe as K6t,merge as X6t,Path as A3,quat as j6t}from"@nayan-ui/engine";function XHe(rn,nn){let an=[],sn=(un)=>an.push(rn.spawn({pickable:!1,...un}));for(let un=0;un<64;un++){let dn=(Math.floor(un/8)+un)%2===1,[pn,mn]=Kd(nn,un);sn({mesh:T3(1,0),position:[pn,mn,qc],scale:[nn.cell,nn.cell,1],color:xn(dn?Cu.DARK_SQ:Cu.LIGHT_SQ)})}let ln=hx,cn=xn(Cu.BOARD_BORDER);for(let un of[-1,1])sn({mesh:T3(1,0),position:[0,un*(nn.size+ln)/2,qc],scale:[nn.size+ln*2,ln,1],color:cn}),sn({mesh:T3(1,0),position:[un*(nn.size+ln)/2,0,qc],scale:[ln,nn.size,1],color:cn});return an}function jHe(rn,nn,an,sn,ln){let un={root:rn.spawn({mesh:qHe(),position:KHe(nn,sn),scale:nn.cell,color:YHe(ln),pickable:!1}),crown:null};if(an.pieces.set(sn,un),ln.king)$He(rn,un,ln,!1)}function $He(rn,nn,an,sn){if(nn.crown!=null)return;let ln=rn.spawn({mesh:qHe(),parent:nn.root,position:[0,0,Vm*0.95],color:YHe(an),pickable:!1});if(rn.spawn({mesh:Z6t(),parent:ln,position:[0,0.02,Vm+0.025],color:xn(Cu.GOLD),pickable:!1}),nn.crown=ln,sn)rn.set(ln,{position:[0,0,Vm*4]}),rn.animate(ln,{position:[0,0,Vm*0.95]},{duration:0.35,delay:sU,easing:"bounce"})}function ZHe(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-VHe,an);Ea(rn,ln,nn,VHe);let cn=(dn,pn,mn)=>rn.spawn({mesh:dn,scale:0,color:xn(pn,mn),pickable:!1}),un={backdrop:ln,board:XHe(rn,nn),pieces:new Map,select:rn.spawn({mesh:T3(1,0),scale:0,color:xn(Cu.SELECT,0.55),pickable:!1}),dots:Array.from({length:x3},()=>cn(J6t(),Cu.MOVE,0.9)),rings:Array.from({length:x3},()=>cn(Q6t(),Cu.CAPTURE,0.95)),queue:[],time:0};return sn.forEach((dn,pn)=>dn&&jHe(rn,nn,un,pn,dn)),un}function QHe(rn,nn){for(let an of[nn.backdrop,...nn.board,...Array.from(nn.pieces.values(),(sn)=>sn.root),nn.select,...nn.dots,...nn.rings])rn.despawn(an)}function JHe(rn,nn,an,sn){aa(rn,an.backdrop,sn);for(let ln of an.board)rn.despawn(ln);an.board=XHe(rn,nn)}function eWe(rn,nn,an,sn){for(let ln of an.pieces.values())rn.despawn(ln.root);an.pieces.clear(),an.queue=[],sn.forEach((ln,cn)=>ln&&jHe(rn,nn,an,cn,ln))}function tWe(rn,nn,an,sn,ln,cn){let un=rn.transforms;if(sn>=0){let[mn,fn]=Kd(nn,sn);un.position(an.select,mn,fn,qc+0.05),un.scale(an.select,nn.cell,nn.cell,1)}else un.scale(an.select,0);let dn=0,pn=0;for(let mn of ln){let fn=cn.includes(mn),hn=fn?an.rings[pn++]:an.dots[dn++];if(hn==null)continue;let[bn,yn]=Kd(nn,mn);un.position(hn,bn,yn,qc+0.12),un.scale(hn,fn?nn.cell:nn.cell*0.32)}for(;dn<x3;dn++)un.scale(an.dots[dn],0);for(;pn<x3;pn++)un.scale(an.rings[pn],0);un.flush()}function _U(rn,nn,an,sn,ln){let cn=an.pieces.get(sn);if(cn)rn.animate(cn.root,{position:KHe(nn,sn,qc+(ln?nn.cell*0.12:0))},{duration:0.12})}function vU(rn,nn,an,sn,ln,cn,un,dn=0){let pn=an.pieces.get(sn);if(!pn)return;an.pieces.delete(sn);let mn=cn.length>0,fn=mn?_He:sU,hn=[],bn=sn;ln.forEach((En,Sn)=>{let[_n,vn]=Kd(nn,bn),[Tn,Rn]=Kd(nn,En);if(mn)hn.push({position:[(_n+Tn)/2,(vn+Rn)/2,qc+nn.cell*0.55],at:(Sn+0.5)/ln.length});hn.push({position:[Tn,Rn,qc],at:(Sn+1)/ln.length}),bn=En}),rn.stopAnimation(pn.root),rn.animate(pn.root,hn,{duration:fn*ln.length,delay:dn,path:mn?"smooth":"linear",easing:"easeInOut"}),cn.forEach((En,Sn)=>{let _n=an.pieces.get(En);if(!_n)return;an.pieces.delete(En);let vn=dn+fn*(Sn+0.55);rn.animate(_n.root,[{scale:nn.cell*1.15,at:0.3},{scale:0.01}],{duration:0.22,delay:vn,easing:"easeIn"}),rn.set(_n.root,{lifetime:vn+0.3});let[Tn,Rn]=Kd(nn,En);eNt(rn,nn,an,[Tn,Rn,qc+nn.cell*0.15],vn)});let yn=ln[ln.length-1];if(an.pieces.set(yn,pn),un)$He(rn,pn,un,!0)}function eNt(rn,nn,an,sn,ln){an.queue.push({at:an.time+ln,run:()=>zHe.sparkle(rn,{position:sn,count:16,size:nn.cell*0.07,speed:nn.cell*2.5,lifetime:0.55,gravity:-nn.cell*4,colors:[xn("#FFFFFF"),xn(Cu.GOLD)]})})}function oWe(rn,nn){rn.time+=nn;for(let an=rn.queue.length-1;an>=0;an--)if(rn.queue[an].at<=rn.time){let[sn]=rn.queue.splice(an,1);sn.run()}}function rWe(rn,nn,an,sn){for(let[ln,cn]of an.pieces){if(sn[ln]?.player!=="red")continue;let[un,dn]=Kd(nn,ln);rn.animate(cn.root,[{position:[un,dn,qc+nn.cell*0.5],at:0.4},{position:[un,dn,qc]}],{duration:0.45,delay:0.3+(Math.floor(ln/8)+ln%8)*0.04,easing:"easeOut"})}zHe.confetti(rn,{position:[0,0,nn.cell],count:70,size:nn.cell*0.12,speed:nn.size*1.3,lifetime:1.3,gravity:-nn.size*2.4,colors:["#FFD700","#E53935","#4CAF50","#2196F3"].map((ln)=>xn(ln))})}var UHe,Sx=(rn,nn)=>{let an=UHe.get(rn);if(!an)an=Bn("checkers/CheckersScene:"+rn,nn),UHe.set(rn,an);return an},$6t,VHe=30,qc=0.2,x3=4,qHe=()=>Sx("ck-piece",()=>{let rn=Vm,nn=[[0.001,rn],[0.14,rn],[0.155,rn-0.012],[0.17,rn],[0.27,rn],[0.285,rn-0.014],[0.3,rn],[0.36,rn],[0.395,rn-0.02],[0.41,rn*0.55],[0.4,rn*0.18],[0.37,0],[0.001,0]],an=K6t(nn,{segments:36,color:({position:[sn,ln,cn]})=>{let un=Math.hypot(sn,cn),dn=ln<rn-0.004?un>0.38?0.78:0.88:1;return[dn,dn,dn,1]}});return wn(X6t([{geometry:an,rotation:$6t}]),{center:!1,shine:0.55})}),Z6t=()=>Sx("ck-crown",()=>{let rn=new A3().addPolygon([[-0.2,0.1],[-0.2,-0.06],[-0.12,0.02],[-0.06,-0.12],[0,0],[0.06,-0.12],[0.12,0.02],[0.2,-0.06],[0.2,0.1]]);return wn(R3(rn,{depth:0.04}),{center:!1,shine:0.8})}),Q6t=()=>Sx("ck-ring",()=>wn(R3(new A3().addCircle(0,0,0.4).addCircle(0,0,0.33),{depth:0,fillRule:"evenodd"}),{center:!1})),J6t=()=>Sx("ck-disc",()=>wn(R3(new A3().addCircle(0,0,0.5),{depth:0}),{center:!1})),T3=(rn,nn)=>Sx(`ck-flat-panel:${rn}:${nn}`,()=>wn(R3(new A3().addRoundedRect(-rn/2,-rn/2,rn,rn,nn),{depth:0}))),YHe=(rn)=>xn(rn.player==="red"?Cu.RED:Cu.BLACK),KHe=(rn,nn,an=qc)=>{let[sn,ln]=Kd(rn,nn);return[sn,ln,an]};var nWe=e(()=>{u();na();ba();Hn();y3();UHe=new Map,$6t=j6t.x(Math.PI/2)});import{World as tNt}from"@nayan-ui/engine";function sWe(rn){let nn=new tNt(oNt),sn={world:nn,camera:{eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},theme:rn,layout:null,scene:null,phase:"ready",board:yU(),turn:si,selected:-1,targets:[],captures:[],mustContinueFrom:-1,winner:null,timedOut:!1,redCaptured:0,blackCaptured:0,get score(){return nn.scoreboard.score},moves:0,get timeLeft(){return nn.scoreboard.shownSeconds},press:null,onPhase:(ln)=>{},onScore:(ln)=>{},onCaptured:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(0,u1),nn.scoreboard.handlers={onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>{if(sn.phase!=="playing")return;sn.timedOut=!0,sn.winner=M0,fWe(sn)}},sn}function iWe(rn,nn){if(rn.scene)QHe(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=ZHe(rn.world,nn,rn.theme,rn.board),M3(rn)}function lWe(rn,nn){if(rn.theme=nn,rn.layout&&rn.scene)JHe(rn.world,rn.layout,rn.scene,nn)}function M3(rn){if(rn.layout&&rn.scene)tWe(rn.world,rn.layout,rn.scene,rn.selected,rn.targets,rn.captures)}function KE(rn,nn,an,sn){let{layout:ln,scene:cn}=rn;if(ln&&cn&&rn.selected!==nn){if(rn.selected>=0&&rn.board[rn.selected])_U(rn.world,ln,cn,rn.selected,!1);if(nn>=0)_U(rn.world,ln,cn,nn,!0)}rn.selected=nn,rn.targets=an,rn.captures=sn,M3(rn)}function cWe(rn){if(rn.world.cancelTimers(),rn.board=yU(),rn.turn=si,rn.selected=-1,rn.targets=[],rn.captures=[],rn.mustContinueFrom=-1,rn.winner=null,rn.timedOut=!1,rn.redCaptured=0,rn.blackCaptured=0,rn.world.scoreboard.reset(0,u1),rn.moves=0,rn.press=null,rn.layout&&rn.scene)eWe(rn.world,rn.layout,rn.scene,rn.board);M3(rn),rn.onScore(0),rn.onCaptured(0),rn.onTime(u1)}function uWe(rn){if(rn.phase!=="ready")return;cWe(rn),rn.world.scoreboard.startCountdown(u1),rn.phase="playing",rn.onPhase("playing")}function dWe(rn){cWe(rn),rn.phase="ready",rn.onPhase("ready")}function pWe(rn){rn.world.dispose()}function mWe(rn,nn){if(rn.world.isDisposed)return;if(rn.scene)oWe(rn.scene,nn);rn.world.update(nn)}function fWe(rn){rn.world.cancelTimers(),rn.world.scoreboard.stop(),KE(rn,-1,[],[]),rn.mustContinueFrom=-1,rn.phase="over",rn.onPhase("over")}function TU(rn,nn){if(rn.winner=nn,nn===si){if(rn.onScore(rn.world.scoreboard.add(EHe)),rn.layout&&rn.scene)rWe(rn.world,rn.layout,rn.scene,rn.board)}rn.onEvent(nn===si?"win":"lose"),fWe(rn)}function nNt(rn,nn){if(rn.phase!=="playing"||rn.turn!==si)return;let an=rn.board;if(rn.mustContinueFrom>=0){if(nn!==rn.mustContinueFrom&&rn.targets.includes(nn))aWe(rn,rn.mustContinueFrom,nn);return}if(rn.selected>=0&&rn.targets.includes(nn))return aWe(rn,rn.selected,nn);let sn=an[nn];if(sn&&sn.player===si){let ln=kHe(an,si)?qm(an,nn,si,sn.king):HHe(an,nn,si,sn.king);if(ln.length===0)return KE(rn,-1,[],[]);KE(rn,nn,ln.map((cn)=>cn.to),ln.filter((cn)=>cn.captured!==null).map((cn)=>cn.to)),rn.onEvent("select");return}if(rn.selected>=0)KE(rn,-1,[],[])}function aWe(rn,nn,an){let sn=rn.board,ln=sn[nn];if(!ln)return;let cn=qm(sn,nn,ln.player,ln.king).find((hn)=>hn.to===an)??S3(sn,nn,ln.player,ln.king).find((hn)=>hn.to===an);if(!cn)return;let un=_3(sn,nn,cn,ln.player),dn=cn.captured!==null,pn=dn&&sn[cn.captured]?.king===!0,mn=un.board[an],fn=dn&&!un.promoted&&qm(un.board,an,ln.player,mn.king).length>0;if(rn.layout&&rn.scene)vU(rn.world,rn.layout,rn.scene,nn,[an],dn?[cn.captured]:[],un.promoted?mn:null);if(rn.board=un.board,rn.selected=-1,dn)rn.redCaptured+=1,rn.onScore(rn.world.scoreboard.add(bHe+(pn?yHe:0))),rn.onCaptured(rn.redCaptured);if(fn){let hn=qm(un.board,an,ln.player,mn.king).map((bn)=>bn.to);rn.mustContinueFrom=an,rn.selected=an,rn.targets=hn,rn.captures=hn.slice(),M3(rn)}else rn.moves+=1,rn.mustContinueFrom=-1,KE(rn,-1,[],[]),rn.turn=M0;if(rn.onEvent(dn?"capture":"move"),un.promoted)rn.onEvent("king");if(fn)return;if(EU(un.board,M0)===0||v3(un.board,M0).length===0)return TU(rn,si);rn.world.after(SHe,()=>aNt(rn))}function aNt(rn){if(rn.phase!=="playing"||rn.turn!==M0)return;let nn=WHe(rn.board);if(!nn)return TU(rn,si);let an=rn.board,sn=FHe(an,nn),ln=nn.steps.filter((dn)=>dn.captured!==null).map((dn)=>dn.captured),cn=nn.steps[nn.steps.length-1].to,un=!an[nn.from].king&&sn[cn].king;if(rn.layout&&rn.scene)vU(rn.world,rn.layout,rn.scene,nn.from,nn.steps.map((dn)=>dn.to),ln,un?sn[cn]:null);if(rn.board=sn,rn.blackCaptured+=ln.length,rn.moves+=1,rn.turn=si,rn.mustContinueFrom=-1,KE(rn,-1,[],[]),rn.onEvent(ln.length?"capture":"move"),EU(sn,si)===0||v3(sn,si).length===0)TU(rn,M0)}function sNt(rn,nn,an){let sn=rn.layout;if(!sn)return-1;let[ln,cn]=Wa(sn,nn,an,1.2+sn.cell*Vm*0.6);return xHe(sn,ln,cn)}function hWe(rn,{phase:nn,x:an,y:sn}){if(nn==="start"){rn.press={x:an,y:sn};return}let ln=rn.press;if(!ln)return;if(Math.hypot(an-ln.x,sn-ln.y)>rNt){rn.press=null;return}if(nn!=="end")return;rn.press=null;let cn=sNt(rn,an,sn);if(cn>=0)nNt(rn,cn)}var oNt=300,rNt=12;var bWe=e(()=>{ba();y3();SU();nWe()});var qr={};n(qr,{Checkers:()=>vo});import{jsx as iNt}from"react/jsx-runtime";var Xd,yWe,vo;var Ue=e(()=>{Ta();l();a();_a();o();xa();va();y3();bWe();SU();Xd=t.CHECKERS,yWe={select:{sound:Xd.SELECT,haptic:"light"},move:{sound:Xd.MOVE,haptic:"light"},capture:{sound:Xd.CAPTURE,haptic:"medium"},king:{sound:Xd.KING},win:{sound:Xd.WIN,haptic:"success"},lose:{sound:Xd.LOSE,haptic:"error"}},vo=Vn("checkers",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(0),[cn,un]=gn(u1),{game:dn,theme:pn,status:mn,screen:fn,gameOver:hn}=zn(rn,{gameId:"checkers",create:sWe,start:uWe,reset:dWe,dispose:pWe,tick:mWe,setTheme:lWe,resize:(yn,En,Sn,_n)=>{let vn=THe(En,Sn,_n);return iWe(yn,vn),vn.size+hx*2},drag:hWe,outcome:(yn)=>yn.winner===si?"win":"lose",sounds:Xd,onStart:(yn)=>yn(Xd.START,"medium"),onOver:(yn,En,Sn)=>{if(Sn.timedOut)yn(Xd.TIME_UP,"error")},wire:(yn,En)=>{yn.onScore=an,yn.onCaptured=ln,yn.onTime=un,yn.onEvent=(Sn)=>En(yWe[Sn].sound,yWe[Sn].haptic)}}),bn=dn.timedOut;return iNt(Un,{...fn,light:vHe,columns:[Qn(nn),ma("CAPTURED",`${sn}/${DHe}`),ta(cn,pn)],subtext:"Capture the robot's pieces!",gameOver:hn({title:mn==="win"?"YOU WON!":bn?"TIME UP!":"YOU LOST!",message:mn==="win"?"You beat the robot!":bn?"You ran out of time!":"The robot wins this round!",scoreLabel:"Score",score:nn,buttonText:"Play Again!"})})})});function RU(){let rn=Math.min(10,xU.length),nn=[];for(let an=0;an<rn;an++)nn.push(an,an);for(let an=nn.length-1;an>0;an--){let sn=Math.floor(Math.random()*(an+1));[nn[an],nn[sn]]=[nn[sn],nn[an]]}return{cards:nn.map((an)=>({symbol:an,state:"down"})),totalPairs:rn}}var XE=5,jE=4,xU;var C3=e(()=>{xU=["apple","orange","banana","grapes","kiwi","strawberry","mango","peach","cherries","pineapple","watermelon","pomegranate"]});function AWe(rn,nn,an,sn){let ln=sn?12:10,cn=la(an)+lNt,un=Math.max(1,nn-cn-cNt),dn=$n(rn),pn=Math.cos(AU),mn=Math.sin(AU),fn=(dn-ln*(jE-1))/(jE-1+w3),hn=(un-ln*(XE-1)*pn)/((XE-1+w3)*pn+Ll*mn),bn=Math.max(1,Math.min(fn,hn)),yn=bn+ln;return{width:rn,height:nn,tilt:AU,centerY:cn+un/2+bn*Ll*mn/2,rows:XE,cols:jE,card:bn,gap:ln,pitch:yn,boardW:bn*(jE-1+w3)+ln*(jE-1),boardH:bn*(XE-1+w3)+ln*(XE-1)}}function MU(rn,nn){let an=Math.floor(nn/rn.cols);return[(nn%rn.cols-(rn.cols-1)/2)*rn.pitch,((rn.rows-1)/2-an)*rn.pitch]}function MWe(rn,nn,an){let sn=nn+rn.cols*rn.pitch/2,ln=rn.rows*rn.pitch/2-an,cn=Math.floor(sn/rn.pitch),un=Math.floor(ln/rn.pitch);if(un<0||un>=rn.rows||cn<0||cn>=rn.cols)return-1;let dn=rn.gap/2,pn=sn-cn*rn.pitch,mn=ln-un*rn.pitch;return pn>=dn&&pn<=rn.pitch-dn&&mn>=dn&&mn<=rn.pitch-dn?un*rn.cols+cn:-1}var jd=300,EWe=0.8,SWe=1000,_We=5000,Ym=0.22,vWe=12,il,AU=0.2,TWe,Ll=0.28,$d=0.78,xWe=0.62,RWe,lNt=82,cNt=120,w3=1.01;var L3=e(()=>{a();o();Hn();C3();il={CARD_FRONT:"#FFFDF7",CARD_MATCHED:"#E5F7EC",FRONT_BORDER:"#DFE3F1",MATCHED_BORDER:"#8BD3AD",MATCHED_BADGE:"#32A875",BACK_TOP:"#6378E0",BACK_BOTTOM:"#3E4EAE",BACK_BORDER:"#97A7EF",BACK_HALO:"#6072CE",BACK_MOTIF:"#EAF0FF",BACK_PAIR:"#B9CCFF"},TWe=Zn([-0.4,0.5,1],0.45),RWe=c?0.7:0.5});import{effects as uNt,extrude as I3,merge as CU,Path as p1,quat as O3,recolor as dNt}from"@nayan-ui/engine";function ENt(rn,nn){let an=Lc(xU[rn],RWe),sn=Math.tan(nn),ln=xWe/Math.max(an.whole.size[0],an.whole.size[1]+an.whole.size[2]*sn),un=an.whole.size[2]*ln/2+0.01;return{model:an.whole,scale:ln,position:[-an.center[0]*ln,-an.center[1]*ln-un*sn,Ll/2+un-an.center[2]*ln]}}function DWe(rn,nn,an,sn){let[ln,cn]=MU(nn,an),un=sn.state!=="down",dn=rn.spawn({mesh:"none",position:[ln,cn,OWe(nn)],rotation:un?LWe:P3,scale:nn.card,pickable:!1}),pn=ai(rn,{parent:dn,position:[0,0,Ll/4],size:[1,1,Ll/2],color:PWe(sn.state),gloss:!1,shadow:!1}),mn=ai(rn,{parent:dn,position:[0,0,-Ll/4],size:[1,1,Ll/2],color:xn(il.BACK_BOTTOM),gloss:!1,shadow:!1});rn.set(mn,{rotation:P3});let fn=rn.spawn({mesh:fNt(),parent:dn,scale:[$d,$d,1],pickable:!1}),hn=rn.spawn({mesh:hNt(),parent:dn,position:[0,0,Ll/2+0.002],scale:[$d,$d,1],color:gWe(sn.state),pickable:!1}),bn=rn.spawn({mesh:bNt(),parent:dn,position:[0.34*$d,0.34*$d,Ll/2+0.006],scale:sn.state==="matched"?$d:0,pickable:!1}),yn=ENt(sn.symbol,nn.tilt),En=rn.spawn({mesh:yn.model,parent:dn,position:yn.position,scale:un?yn.scale:0,pickable:!1});return{root:dn,body:pn,backBody:mn,back:fn,front:hn,seal:bn,fruit:En,fruitScale:yn.scale}}function NWe(rn,nn,an,sn){let ln=oa(rn,nn.width,nn.height,-wWe,an);return Ea(rn,ln,nn,wWe),{backdrop:ln,cards:sn.map((cn,un)=>DWe(rn,nn,un,cn))}}function GWe(rn,nn){for(let an of[nn.backdrop,...nn.cards.map((sn)=>sn.root)])rn.despawn(an)}function kWe(rn,nn,an){aa(rn,nn.backdrop,an)}function BWe(rn,nn,an,sn){sn.forEach((ln,cn)=>{let un=an.cards[cn];if(un)rn.despawn(un.root);let dn=DWe(rn,nn,cn,ln);an.cards[cn]=dn,rn.set(dn.root,{scale:0.01}),rn.animate(dn.root,{scale:nn.card},{duration:0.26,delay:cn*0.022,easing:"back"})})}function _x(rn,nn,an,sn,ln){let cn=an.cards[sn];if(!cn)return;let[un,dn]=MU(nn,sn),pn=OWe(nn);if(rn.stopAnimation(cn.root),rn.animate(cn.root,[{rotation:mNt,position:[un,dn,pn+nn.card*0.28],at:0.5},{rotation:ln?LWe:P3,position:[un,dn,pn]}],{duration:Ym,easing:"easeInOut"}),rn.stopAnimation(cn.fruit),ln)rn.set(cn.fruit,{scale:0}),rn.animate(cn.fruit,{scale:cn.fruitScale},{duration:Ym/2,delay:Ym/2,easing:"easeOut"});else rn.animate(cn.fruit,{scale:0},{duration:Ym/2,easing:"easeIn"})}function IU(rn,nn,an,sn){let ln=an.cards[sn];if(!ln)return;rn.set(ln.body,{color:PWe("matched")}),rn.set(ln.front,{color:gWe("matched")}),rn.animate(ln.seal,{scale:$d},{duration:0.18,delay:Ym,easing:"back"}),rn.animate(ln.root,[{scale:nn.card*1.04,at:0.4},{scale:nn.card}],{duration:0.32,delay:Ym,easing:"easeOut"})}function OU(rn,nn,an,sn){let ln=an.cards[sn];if(ln)rn.animate(ln.root,{shake:nn.card*0.06},{duration:0.26,delay:Ym})}function FWe(rn,nn,an){rn.animate(an.cards.map((sn)=>sn.root),[{scale:nn.card*1.05,at:0.4},{scale:nn.card}],{duration:0.32,delay:0.25,stagger:0.035,easing:"easeOut"}),uNt.confetti(rn,{position:[0,0,nn.card],count:70,size:nn.card*0.08,speed:nn.boardW*1.4,lifetime:1.3,gravity:-nn.boardW*2.4,colors:["#FFD700","#4CAF50","#5b7cfa","#FF6B6B"].map((sn)=>xn(sn))})}function HWe(rn,nn,an){let sn=[0.55,0.55,0.6,1],ln=[];an.forEach((cn,un)=>{let dn=nn.cards[un];if(!dn||cn.state==="matched")return;ln.push(dn.body,dn.backBody,dn.back)}),rn.animate(ln,{color:sn},{duration:0.4})}var CWe,LU=(rn,nn)=>{let an=CWe.get(rn);if(!an)an=Bn("memory-match/MemoryMatchScene:"+rn,nn),CWe.set(rn,an);return an},wWe=30,pNt=0.16,LWe,P3,mNt,wU=(rn,nn=new p1)=>nn.addRoundedRect(-0.5+rn,-0.5+rn,1-rn*2,1-rn*2,Math.max(0.01,pNt-rn)),$E=(rn,nn,an)=>({geometry:I3(rn,{depth:0,fillRule:"evenodd"}),position:[0,0,nn],color:an}),IWe=(rn,nn)=>wU(rn+nn,wU(rn)),fNt=()=>LU("mm-back",()=>{let rn=xn(il.BACK_TOP),nn=xn(il.BACK_BOTTOM),an=dNt(I3(wU(0.012),{depth:0}),({position:[un,dn]})=>{let pn=Math.max(0,Math.min(1,(un+0.5+(0.5-dn))/2));return[rn[0]+(nn[0]-rn[0])*pn,rn[1]+(nn[1]-rn[1])*pn,rn[2]+(nn[2]-rn[2])*pn,1]}),sn=I3(new p1().addRoundedRect(-0.12,-0.165,0.24,0.33,0.04),{depth:0.008}),ln=new p1;for(let un of[-0.35,0.35])for(let dn of[-0.35,0.35])ln.addCircle(un,dn,0.012);let cn=CU([{geometry:an},$E(IWe(0.065,0.009),0.002,xn(il.BACK_BORDER)),$E(new p1().addCircle(0,0,0.275),0.003,xn(il.BACK_HALO)),$E(ln,0.003,xn(il.BACK_BORDER)),{geometry:sn,position:[-0.065,0.025,0.009],rotation:O3.z(0.2),color:xn(il.BACK_PAIR)},{geometry:sn,position:[0.065,-0.025,0.022],rotation:O3.z(-0.18),color:xn(il.BACK_MOTIF)},$E(new p1().addCircle(0.065,0.025,0.035),0.028,xn(il.BACK_TOP))]);return wn(CU([{geometry:cn,rotation:P3,position:[0,0,-Ll/2-0.002]}]),{center:!1,shine:0})}),hNt=()=>LU("mm-front",()=>wn(I3(IWe(0.065,0.01),{depth:0,fillRule:"evenodd"}),{center:!1,shine:0})),bNt=()=>LU("mm-seal",()=>wn(CU([$E(new p1().addCircle(0,0,0.075),0,xn(il.MATCHED_BADGE)),$E(new p1().addPolygon([[-0.037,0],[-0.012,0.025],[0.04,-0.027],[0.029,-0.038],[-0.012,0.003],[-0.026,-0.011]]),0.002,[1,1,1,1])]),{center:!1,shine:0})),yNt=0,OWe=(rn)=>yNt+rn.card*Ll/2,PWe=(rn)=>xn(rn==="matched"?il.CARD_MATCHED:il.CARD_FRONT),gWe=(rn)=>xn(rn==="matched"?il.MATCHED_BORDER:il.FRONT_BORDER);var WWe=e(()=>{u();l0();M();na();ba();Hn();L3();C3();CWe=new Map,LWe=[0,0,0,1],P3=O3.y(Math.PI),mNt=O3.y(Math.PI/2)});import{World as SNt}from"@nayan-ui/engine";function VWe(rn){let nn=new SNt(_Nt),an={eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},{cards:sn,totalPairs:ln}=RU(),cn={world:nn,camera:an,theme:rn,layout:null,scene:null,phase:"ready",cards:sn,totalPairs:ln,firstIndex:-1,lock:!1,matchedPairs:0,moves:0,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,press:null,onPhase:(un)=>{},onScore:(un)=>{},onPairs:(un,dn)=>{},onTime:(un)=>{},onEvent:(un)=>{}};return nn.scoreboard.reset(0,jd),nn.scoreboard.handlers={onScore:(un)=>cn.onScore(un),onSecond:(un)=>cn.onTime(un),onTimeUp:()=>cn.phase==="playing"&&$We(cn,!1)},cn}function zWe(rn,nn){if(rn.scene)GWe(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=NWe(rn.world,nn,rn.theme,rn.cards)}function qWe(rn,nn){if(rn.theme=nn,rn.scene)kWe(rn.world,rn.scene,nn)}function YWe(rn){if(rn.phase!=="ready")return;rn.phase="playing",rn.world.scoreboard.startCountdown(jd),rn.onPhase("playing")}function KWe(rn){rn.world.cancelTimers();let{cards:nn,totalPairs:an}=RU();if(rn.cards=nn,rn.totalPairs=an,rn.firstIndex=-1,rn.lock=!1,rn.matchedPairs=0,rn.moves=0,rn.world.scoreboard.reset(0,jd),rn.won=!1,rn.press=null,rn.phase="ready",rn.layout&&rn.scene)BWe(rn.world,rn.layout,rn.scene,rn.cards);rn.onScore(0),rn.onPairs(0,an),rn.onTime(jd),rn.onPhase("ready")}function XWe(rn){rn.world.dispose()}function jWe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function $We(rn,nn){rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.press=null;let{layout:an,scene:sn}=rn;if(an&&sn)if(nn)FWe(rn.world,an,sn);else HWe(rn.world,sn,rn.cards);rn.onPhase("over"),rn.onEvent(nn?"win":"lose")}function vNt(rn,nn){if(rn.phase!=="playing"||rn.won||rn.lock)return;let an=rn.cards[nn];if(!an||an.state!=="down")return;let{layout:sn,scene:ln}=rn;if(rn.firstIndex===-1){if(vx(rn,nn,"up"),rn.firstIndex=nn,sn&&ln)_x(rn.world,sn,ln,nn,!0);rn.onEvent("flip");return}let cn=rn.firstIndex;if(cn===nn)return;if(rn.moves+=1,rn.firstIndex=-1,rn.cards[cn].symbol===an.symbol){if(vx(rn,cn,"matched"),vx(rn,nn,"matched"),rn.matchedPairs+=1,rn.world.scoreboard.add(SWe),sn&&ln)_x(rn.world,sn,ln,nn,!0),IU(rn.world,sn,ln,cn),IU(rn.world,sn,ln,nn);let un=rn.matchedPairs>=rn.totalPairs;if(un)rn.world.scoreboard.set(Ya(jd-rn.timeLeft,jd,rn.score+_We));if(rn.onPairs(rn.matchedPairs,rn.totalPairs),rn.onEvent("match"),un)$We(rn,!0);return}if(vx(rn,nn,"up"),rn.lock=!0,sn&&ln)_x(rn.world,sn,ln,nn,!0),OU(rn.world,sn,ln,cn),OU(rn.world,sn,ln,nn);rn.onEvent("wrong"),rn.world.after(EWe,()=>{if(rn.phase!=="playing")return;for(let un of[cn,nn]){if(rn.cards[un].state!=="up")continue;if(vx(rn,un,"down"),rn.layout&&rn.scene)_x(rn.world,rn.layout,rn.scene,un,!1)}rn.lock=!1})}function UWe(rn,nn,an){let sn=rn.layout;if(!sn)return-1;let[ln,cn]=Wa(sn,nn,an,sn.card*Ll);return MWe(sn,ln,cn)}function ZWe(rn,{phase:nn,x:an,y:sn}){if(nn==="start"){rn.press={x:an,y:sn,index:UWe(rn,an,sn)};return}let ln=rn.press;if(!ln)return;if(Math.hypot(an-ln.x,sn-ln.y)>vWe){rn.press=null;return}if(nn!=="end")return;rn.press=null;let cn=UWe(rn,an,sn);if(cn>=0)vNt(rn,cn)}var _Nt=240,vx=(rn,nn,an)=>{rn.cards[nn]={...rn.cards[nn],state:an}};var QWe=e(()=>{ci();ba();L3();C3();WWe()});var Yr={};n(Yr,{MemoryMatch:()=>xo});import{jsx as TNt}from"react/jsx-runtime";var m1,JWe,xo;var Ve=e(()=>{Ta();l();a();_a();o();xa();va();L3();QWe();m1=t.MEMORY_MATCH,JWe={flip:{sound:m1.FLIP,haptic:"light"},match:{sound:m1.MATCH,haptic:"success"},wrong:{sound:m1.WRONG,haptic:"warning"},win:{sound:m1.WIN,haptic:"success"},lose:{sound:m1.GAME_OVER,haptic:"error"}},xo=Vn("memory-match",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(null),[cn,un]=gn(jd),{game:dn,theme:pn,status:mn,screen:fn,gameOver:hn}=zn(rn,{gameId:"memory-match",create:VWe,start:YWe,reset:KWe,dispose:XWe,tick:jWe,setTheme:qWe,resize:(En,Sn,_n,vn)=>{let Tn=AWe(Sn,_n,vn,c);return zWe(En,Tn),Tn.boardW},drag:ZWe,sounds:m1,onStart:(En)=>En(m1.START,"medium"),wire:(En,Sn)=>{En.onScore=an,En.onPairs=(_n,vn)=>ln({matched:_n,total:vn}),En.onTime=un,En.onEvent=(_n)=>Sn(JWe[_n].sound,JWe[_n].haptic)}}),{matched:bn,total:yn}=sn??{matched:0,total:dn.totalPairs};return TNt(Un,{...fn,light:TWe,columns:[Qn(nn),ma("PAIRS",`${bn}/${yn}`),ta(cn,pn)],subtext:"Find every matching pair!",gameOver:hn({title:mn==="win"?"ALL MATCHED!":"TIME UP!",message:mn==="win"?"You found every pair!":"You ran out of time!",scoreLabel:"Score",score:nn,buttonText:"Play Again!"})})})});function lUe(rn,nn,an=0){let sn=$n(rn),ln=Math.min(108,Math.round(sn*0.24)),cn=Math.max(12,Math.round(ln*0.15)),un=la(an)+82;return{width:rn,height:nn,left:(rn-sn)/2,right:(rn+sn)/2,spawnY:un+ln*0.55,stickLen:ln,stickW:cn,hitRadius:Math.max(18,cn*1.5),spawnMargin:ln*0.6,floorY:nn-145}}var f1=120,h1=3,g3=500,D3=18,eUe=2.4,tUe=0.00006,oUe=3.8,PU=1450,rUe=0.012,nUe=1000,aUe=2.2,sUe=6,iUe,Tx=16.666666666666668,gU=50,ZE;var xx=e(()=>{o();Hn();iUe=PU-150,ZE=["#E53935","#1E88E5","#43A047","#FB8C00","#8E24AA","#00ACC1","#F4511E","#FDD835"]});function RNt(rn,nn){let an=rn.sticks.findIndex((ln)=>ln.state===QE);if(an<0)return-1;let sn=rn.sticks[an];return sn.state=JE,sn.color=rn.nextColor,rn.nextColor=(rn.nextColor+1+Math.floor(Math.random()*3))%ZE.length,sn.x=nn.left+nn.spawnMargin+Math.random()*Math.max(0,nn.right-nn.left-nn.spawnMargin*2),sn.y=nn.spawnY,sn.speed=Math.min((eUe+rn.score*tUe)*(0.85+Math.random()*0.3),oUe),sn.rot=Math.random()*360,sn.rotSpeed=(Math.random()*2-1)*aUe,an}function ANt(rn,nn){rn.state=xNt,rn.restRot=Math.round(rn.rot/180)*180+(Math.random()*2-1)*sUe,rn.restY=nn.floorY-nn.stickW*0.55-Math.abs(Math.sin(rn.restRot*Math.PI/180))*nn.stickLen*0.5}function cUe(rn,nn,an){let sn=[];rn.sticks.forEach((un,dn)=>{if(un.state!==JE)return;un.y+=un.speed,un.rot+=un.rotSpeed;let pn=Math.abs(Math.sin(un.rot*Math.PI/180))*nn.stickLen*0.5+nn.stickW*0.5;if(un.y+pn>=nn.floorY)ANt(un,nn),sn.push(dn)}),an=Math.max(0,an-sn.length);let ln=-1;if(an<=0)return{landed:sn,spawned:ln,lives:an};let cn=Math.max(PU-rn.score*rUe,nUe);if(rn.spawnTimer+=Tx,rn.spawnTimer>=cn)rn.spawnTimer-=cn,ln=RNt(rn,nn);return{landed:sn,spawned:ln,lives:an}}function MNt(rn,nn,an,sn,ln,cn,un,dn){let pn=(En,Sn,_n,vn)=>En*vn-Sn*_n,mn=pn(an-rn,sn-nn,ln-rn,cn-nn),fn=pn(an-rn,sn-nn,un-rn,dn-nn),hn=pn(un-ln,dn-cn,rn-ln,nn-cn),bn=pn(un-ln,dn-cn,an-ln,sn-cn);if(Math.max(rn,an)>=Math.min(ln,un)&&Math.max(ln,un)>=Math.min(rn,an)&&Math.max(nn,sn)>=Math.min(cn,dn)&&Math.max(cn,dn)>=Math.min(nn,sn)&&mn*fn<=0&&hn*bn<=0)return 0;return Math.min(N3(rn,nn,ln,cn,un,dn),N3(an,sn,ln,cn,un,dn),N3(ln,cn,rn,nn,an,sn),N3(un,dn,rn,nn,an,sn))}function uUe(rn,nn,an,sn,ln,cn){let un=[],dn=nn.hitRadius*nn.hitRadius;return rn.sticks.forEach((pn,mn)=>{if(pn.state!==JE)return;let fn=pn.rot*Math.PI/180,hn=Math.cos(fn)*nn.stickLen*0.5,bn=Math.sin(fn)*nn.stickLen*0.5;if(MNt(an,sn,ln,cn,pn.x-hn,pn.y-bn,pn.x+hn,pn.y+bn)>dn)return;pn.state=QE,rn.score+=g3,un.push(mn)}),un}var QE=0,JE=1,xNt=2,DU=()=>({sticks:Array.from({length:D3},()=>({state:QE,color:0,x:0,y:0,speed:0,rot:0,rotSpeed:0,restY:0,restRot:0})),spawnTimer:iUe,score:0,nextColor:0}),N3=(rn,nn,an,sn,ln,cn)=>{let un=ln-an,dn=cn-sn,pn=un*un+dn*dn,mn=pn>0?Math.max(0,Math.min(1,((rn-an)*un+(nn-sn)*dn)/pn)):0;return(rn-an-mn*un)**2+(nn-sn-mn*dn)**2};var dUe=e(()=>{xx()});import{effects as pUe,lathe as mUe,merge as fUe,quat as G3}from"@nayan-ui/engine";function ONt(rn){let nn=Math.min(0.64,rn.floorY/rn.height-0.18),an=Fl(rn.width,rn.height,{horizon:nn,eyeHeight:1,playDepth:3.6});return an.eye=[an.eye[0],an.eye[1]+0.025-Fa(an,rn.width/2,rn.floorY)[1],an.eye[2]],an}function EUe(rn,nn,an){let sn=ONt(nn),ln=$i(rn,sn,an,{sun:[0.8,0.28],clouds:[0.25,0.48],groundDetails:!1}),cn=Ds(73),un=vc(an);for(let mn=0;mn<13;mn++){let fn=-(55+cn()*40),hn=-fn*sn.tanHalf*(nn.width/nn.height),bn=(mn/12*2-1)*hn*1.15,yn=3.5+cn()*2.5;ln.push(rn.spawn({mesh:Db(),position:[bn,0,fn],scale:yn,color:un,pickable:!1}))}for(let mn=0;mn<28;mn++){let fn=Fa(sn,(mn+cn())/28*nn.width,nn.floorY+6+cn()*5);ln.push(rn.spawn({mesh:mn%5===0?Nf():rd(),position:[fn[0],0,fn[2]],rotation:G3.y(cn()*Math.PI*2),scale:Ha(sn)*(32+cn()*20),color:un,pickable:!1}))}let dn=Array.from({length:D3},()=>{let mn=rn.spawn({mesh:LNt(),scale:0,pickable:!1});return rn.spawn({mesh:INt(),parent:mn,pickable:!1}),mn}),pn=Array.from({length:NU},()=>rn.spawn({mesh:"roundedBox",scale:0,pickable:!1}));return{view:sn,scenery:ln,sticks:dn,trail:pn,tumble:dn.map(()=>0)}}function SUe(rn,nn){for(let an of[...nn.scenery,...nn.sticks,...nn.trail])rn.despawn(an)}function F3(rn,nn,an,sn,ln,cn=!0,un){let dn=cn?an.tumble[sn]+ln.rot*k3*0.6:an.tumble[sn];(un??rn).set(an.sticks[sn],{position:Fa(an.view,ln.x,ln.y,B3(an,sn)),rotation:_Ue(an.view,ln.rot,dn)})}function GU(rn,nn,an,sn,ln){let cn=an.sticks[sn];rn.stopAnimation(cn),an.tumble[sn]=ln.color*0.73,rn.set(cn,{scale:yUe(nn,an,sn),color:bUe(ln)}),F3(rn,nn,an,sn,ln)}function vUe(rn,nn,an){rn.stopAnimation(nn.sticks[an]),rn.set(nn.sticks[an],{scale:0})}function TUe(rn,nn,an,sn,ln){let cn=an.sticks[sn],un=Math.min(ln.speed*6,24),dn=B3(an,sn),pn=Math.round((an.tumble[sn]+ln.rot*k3*0.6)/Math.PI)*Math.PI;an.tumble[sn]=pn,rn.animate(cn,[{position:Fa(an.view,ln.x,ln.restY-un,dn),at:0.3},{position:Fa(an.view,ln.x,ln.restY,dn),rotation:_Ue(an.view,ln.restRot,pn)}],{duration:0.45,easing:"easeOut",path:"smooth"});let mn=Ha(an.view);pUe.shatter(rn,{position:Fa(an.view,ln.x,nn.floorY,dn),count:7,mesh:"sphere",size:nn.stickW*mn*0.3,speed:75*mn,lifetime:0.45,gravity:-260*mn,direction:[0,1,0],spread:0.9,colors:[xn("#8DA35D"),xn("#5F9141")],flash:!1,dust:!1})}function xUe(rn,nn,an,sn,ln){t6(rn,an.sticks[sn],{scale:yUe(nn,an,sn),position:Fa(an.view,ln.x,ln.y,B3(an,sn)),rotation:Mi(an.view,-ln.rot*k3),color:bUe(ln)})}function kU(rn,nn,an,sn){let ln=rn.transforms,cn=sn.length/2,un=an.view.playDepth-0.2,dn=Ha(an.view,un);an.trail.forEach((pn,mn)=>{rn.stopAnimation(pn);let fn=cn-1-mn;if(fn<0){ln.scale(pn,0);return}let hn=sn[fn*2],bn=sn[fn*2+1],yn=sn[Math.max(0,fn-1)*2],En=sn[Math.max(0,fn-1)*2+1],Sn=4*(1-mn/NU),_n=Fa(an.view,(hn+yn)/2,(bn+En)/2,un),vn=Mi(an.view,Math.atan2(En-bn,hn-yn));ln.transform(pn,_n[0],_n[1],_n[2],vn[0],vn[1],vn[2],vn[3]),ln.scale(pn,(Math.hypot(hn-yn,bn-En)+Sn)*dn,Sn*dn,Sn*dn),ln.color(pn,1.7,1.6,1.35,0.7*(1-mn/NU))}),ln.flush()}function H3(rn,nn){rn.animate(nn.trail,{color:[1.7,1.6,1.35,0],scale:0},{duration:0.18})}function RUe(rn,nn,an){let sn=Ha(an.view);pUe.confetti(rn,{position:Fa(an.view,nn.width/2,nn.height*0.45),count:64,size:5*sn,speed:nn.right*sn,lifetime:1.2,gravity:-260*sn,colors:ZE.map((ln)=>xn(ln))})}var k3,NU=10,hUe,CNt=null,wNt=null,LNt=()=>CNt??=wn(fUe([{geometry:mUe([[0.08,-0.5],[0.31,-0.49],[0.44,-0.465],[0.47,-0.43],[0.47,0.43],[0.44,0.465],[0.31,0.49],[0.08,0.5]],{segments:20}),rotation:hUe}]),{center:!1,shine:0.35}),INt=()=>wNt??=wn(fUe([-1,1].map((rn)=>({geometry:mUe([[0.475,-0.038],[0.51,-0.026],[0.51,0.026],[0.475,0.038]],{segments:20}),rotation:hUe,position:[rn*0.34,0,0],color:xn("#FFF3D9")}))),{center:!1,shine:0.25}),bUe=(rn)=>xn(ZE[rn.color%ZE.length]),B3=(rn,nn)=>rn.view.playDepth-nn*0.003,yUe=(rn,nn,an)=>{let sn=Ha(nn.view,B3(nn,an));return[rn.stickLen*sn,rn.stickW*sn,rn.stickW*sn]},_Ue=(rn,nn,an)=>G3.multiply(Mi(rn,-nn*k3),G3.x(an));var AUe=e(()=>{f();d();na();Hn();xx();k3=Math.PI/180,hUe=G3.z(-Math.PI/2)});import{World as PNt}from"@nayan-ui/engine";function MUe(rn){let nn=new PNt(gNt),sn={world:nn,camera:{eye:[0,1,0],target:[0,1,-1],fov:0.9},theme:rn,layout:null,scene:null,phase:"ready",field:DU(),get lives(){return nn.scoreboard.lives},get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},won:!1,trail:[],pending:0,onPhase:(ln)=>{},onScore:(ln)=>{},onLives:(ln)=>{},onTime:(ln)=>{},onEvent:(ln)=>{}};return nn.scoreboard.reset(h1,f1),nn.scoreboard.handlers={onScore:(ln)=>sn.onScore(ln),onSecond:(ln)=>sn.onTime(ln),onTimeUp:()=>sn.phase==="playing"&&gUe(sn,!0)},sn}function BU(rn,nn){let an=rn.layout;if(an)for(let ln of rn.field.sticks){if(ln.state===QE)continue;ln.x=nn.left+(ln.x-an.left)/(an.right-an.left)*(nn.right-nn.left),ln.y=nn.spawnY+(ln.y-an.spawnY)/Math.max(1,an.floorY-an.spawnY)*(nn.floorY-nn.spawnY),ln.restY=nn.floorY-(an.floorY-ln.restY)*(nn.stickLen/an.stickLen)}if(rn.scene)SUe(rn.world,rn.scene);rn.layout=nn,rn.scene=EUe(rn.world,nn,rn.theme),Object.assign(rn.camera,fl(rn.scene.view)),rn.trail=[];let sn=rn.scene;rn.field.sticks.forEach((ln,cn)=>{if(ln.state===QE)return;if(GU(rn.world,nn,sn,cn,ln),ln.state!==JE)F3(rn.world,nn,sn,cn,{...ln,y:ln.restY,rot:ln.restRot},!1)})}function CUe(rn,nn){if(rn.theme===nn||rn.world.isDisposed)return;if(rn.theme=nn,rn.layout)BU(rn,rn.layout)}function wUe(rn){if(rn.world.cancelTimers(),rn.field=DU(),rn.world.scoreboard.reset(h1,f1),rn.won=!1,rn.pending=0,rn.trail=[],rn.scene){for(let nn=0;nn<rn.scene.sticks.length;nn++)vUe(rn.world,rn.scene,nn);kU(rn.world,rn.layout,rn.scene,[])}rn.onScore(0),rn.onLives(h1),rn.onTime(f1)}function LUe(rn){if(rn.phase!=="ready")return;wUe(rn),rn.world.scoreboard.startCountdown(f1),rn.phase="playing",rn.onPhase("playing")}function IUe(rn){wUe(rn),rn.phase="ready",rn.onPhase("ready")}function OUe(rn){rn.world.dispose()}function PUe(rn,nn){if(rn.world.isDisposed)return;let an=Math.max(0,Math.min(nn,gU/1000)),{layout:sn,scene:ln}=rn;if(rn.phase==="playing"&&sn&&ln){let cn=Math.min(rn.pending+an*1000,gU);while(rn.phase==="playing"&&cn+0.000001>=Tx)cn-=Tx,NNt(rn,sn,ln);if(rn.pending=Math.max(0,cn),rn.phase==="playing"){let un=rn.world.transforms;rn.field.sticks.forEach((dn,pn)=>dn.state===JE&&F3(rn.world,sn,ln,pn,dn,!0,un)),un.flush()}}rn.world.update(an)}function NNt(rn,nn,an){let{landed:sn,spawned:ln}=cUe(rn.field,nn,rn.lives);for(let cn of sn)TUe(rn.world,nn,an,cn,rn.field.sticks[cn]);if(ln>=0)GU(rn.world,nn,an,ln,rn.field.sticks[ln]);if(!sn.length)return;for(let cn=0;cn<sn.length&&rn.phase==="playing";cn++)if(rn.onEvent("miss"),rn.onLives(rn.world.scoreboard.addLives(-1)),rn.lives<=0)gUe(rn,!1)}function gUe(rn,nn){if(rn.world.scoreboard.stop(),rn.won=nn,rn.phase="over",rn.layout&&rn.scene){if(rn.trail=[],H3(rn.world,rn.scene),nn)RUe(rn.world,rn.layout,rn.scene)}rn.onEvent(nn?"win":"lose"),rn.onPhase("over")}function DUe(rn,{phase:nn,x:an,y:sn,cancelled:ln}){let{layout:cn,scene:un}=rn;if(!cn||!un)return;if(ln){rn.trail=[],H3(rn.world,un);return}if(rn.phase!=="playing")return;if(nn!=="start"&&rn.trail.length<2)return;let dn=nn==="start"?an:rn.trail[rn.trail.length-2],pn=nn==="start"?sn:rn.trail[rn.trail.length-1];rn.trail=nn==="start"?[an,sn]:[...rn.trail.slice(-(DNt-1)*2),an,sn],kU(rn.world,cn,un,rn.trail);let mn=uUe(rn.field,cn,dn,pn,an,sn);for(let fn of mn)xUe(rn.world,cn,un,fn,rn.field.sticks[fn]),rn.world.scoreboard.add(g3),rn.onEvent("catch");if(nn==="end")rn.trail=[],H3(rn.world,un)}var gNt=500,DNt=10;var NUe=e(()=>{d();xx();dUe();AUe()});var Kr={};n(Kr,{FallingSticks:()=>Ro});import{jsx as GNt}from"react/jsx-runtime";var e2,GUe,Ro;var ze=e(()=>{Ta();l();a();_a();o();d();xa();va();xx();NUe();e2=t.FALLING_STICKS,GUe={catch:{sound:e2.CATCH,haptic:"light"},miss:{sound:e2.MISS,haptic:"warning"},win:{sound:e2.WIN,haptic:"success"},lose:{sound:e2.GAME_OVER,haptic:"error"}},Ro=Vn("falling-sticks",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(h1),[cn,un]=gn(f1),{theme:dn,status:pn,screen:mn,gameOver:fn}=zn(rn,{gameId:"falling-sticks",create:MUe,start:LUe,reset:IUe,dispose:OUe,tick:PUe,setTheme:CUe,resize:(hn,bn,yn,En)=>BU(hn,lUe(bn,yn,En)),resultsDelay:(hn)=>hn==="win"?650:350,drag:DUe,sounds:e2,onStart:(hn)=>hn(e2.START,"medium"),wire:(hn,bn)=>{hn.onScore=an,hn.onLives=ln,hn.onTime=un,hn.onEvent=(yn)=>bn(GUe[yn].sound,GUe[yn].haptic)}});return GNt(Un,{...mn,light:ji(dn),background:hl(dn),columns:[Qn(nn),ys(sn,h1),ta(cn,dn,15)],subtext:"Catch the falling sticks!",gameOver:fn({title:pn==="win"?"YOU WIN!":"GAME OVER",message:pn==="win"?"You survived the 2 minutes!":"The sticks got away!",scoreLabel:"Final Score",score:nn,buttonText:"Play Again!"})})})});function YUe(rn,nn,an){let sn=la(an)+kNt,ln=Math.max(200,nn-sn-BNt),cn=Math.min($n(rn),ln/Math.cos(kUe)-20),un=Math.max(16,Math.floor((cn-Rx*2)/8));return{width:rn,height:nn,tilt:kUe,centerY:sn+ln/2,cell:un,size:un*8}}function XUe(rn,nn,an){let sn=Math.floor((nn+rn.size/2)/rn.cell),ln=Math.floor((rn.size/2-an)/rn.cell);return sn<0||sn>7||ln<0||ln>7?-1:ln*8+sn}var b1=300,BUe=200,FUe=5000,HUe=0.5,WUe=12,UUe=0.24,VUe=0.07,zUe=0.09,Zd,kUe=0,Rx=3,W3=0.2,qUe,kNt=82,BNt=120,KUe=(rn,nn)=>[(nn%8-3.5)*rn.cell,(3.5-Math.floor(nn/8))*rn.cell];var U3=e(()=>{o();Hn();Zd={FELT:"#1F7A46",BOARD_BORDER:"#0F3D24",GRID:"#155a33",STAR:"#0d3b21",HINT:"rgba(255,255,255,0.75)",LAST_MOVE:"rgba(255,213,79,0.9)",BLACK:"#2A2A2A",WHITE:"#F2F2F2"},qUe=Zn([-0.4,0.5,1],0.45)});function FU(){let rn=Array(64).fill(null);return rn[27]="white",rn[28]="black",rn[35]="black",rn[36]="white",rn}function HU(rn,nn,an){if(rn[nn]!==null)return[];let sn=Math.floor(nn/8),ln=nn%8,cn=Qd(an),un=[];for(let[dn,pn]of QUe){let mn=sn+dn,fn=ln+pn,hn=un.length;while(z3(mn,fn)&&rn[mn*8+fn]===cn)un.push(mn*8+fn),mn+=dn,fn+=pn;if(!z3(mn,fn)||rn[mn*8+fn]!==an)un.length=hn}return un}function Km(rn,nn){let an=[];for(let sn=0;sn<rn.length;sn++){if(rn[sn]!==null)continue;let ln=HU(rn,sn,nn);if(ln.length>0)an.push({index:sn,flips:ln})}return an}function Ax(rn,nn,an){let sn=rn.slice();sn[nn.index]=an;for(let ln of nn.flips)sn[ln]=an;return sn}function WU(rn){let nn=0,an=0;for(let sn of rn)if(sn==="black")nn++;else if(sn==="white")an++;return{black:nn,white:an}}function $Ue(rn){let nn=0;for(let an=0;an<rn.length;an++){let sn=rn[an];if(!sn)continue;nn+=sn==="white"?jUe[an]:-jUe[an]}return nn+(ZUe(rn,"white")-ZUe(rn,"black"))*5}function ZUe(rn,nn){let an=Qd(nn),sn=0;for(let ln=0;ln<rn.length;ln++){if(rn[ln]!==null)continue;let cn=Math.floor(ln/8),un=ln%8;for(let[dn,pn]of QUe){let mn=cn+dn,fn=un+pn,hn=!1;while(z3(mn,fn)&&rn[mn*8+fn]===an)hn=!0,mn+=dn,fn+=pn;if(hn&&z3(mn,fn)&&rn[mn*8+fn]===nn){sn++;break}}}return sn}function V3(rn,nn,an,sn,ln){if(an===0)return $Ue(rn);let cn=Km(rn,nn);if(cn.length===0){if(Km(rn,Qd(nn)).length===0)return $Ue(rn);return V3(rn,Qd(nn),an-1,sn,ln)}if(nn==="white"){let dn=-1/0;for(let pn of cn){let mn=V3(Ax(rn,pn,nn),Qd(nn),an-1,sn,ln);if(mn>dn)dn=mn;if(dn>sn)sn=dn;if(ln<=sn)break}return dn}let un=1/0;for(let dn of cn){let pn=V3(Ax(rn,dn,nn),Qd(nn),an-1,sn,ln);if(pn<un)un=pn;if(un<ln)ln=un;if(ln<=sn)break}return un}function JUe(rn){let nn=Km(rn,"white");if(nn.length===0)return null;if(nn.length===1)return nn[0];if(Math.random()<0.2)return nn[Math.floor(Math.random()*nn.length)];let an=-1/0,sn=[];for(let cn of nn){let un=V3(Ax(rn,cn,"white"),"black",1,-1/0,1/0);if(sn.push({move:cn,score:un}),un>an)an=un}let ln=sn.filter((cn)=>cn.score>=an-12);return ln[Math.floor(Math.random()*ln.length)].move}var mi="black",Mx="white",Qd=(rn)=>rn==="black"?"white":"black",QUe,jUe,z3=(rn,nn)=>rn>=0&&rn<8&&nn>=0&&nn<8;var eVe=e(()=>{QUe=[[-1,-1],[-1,0],[-1,1],[0,-1],[0,1],[1,-1],[1,0],[1,1]],jUe=[120,-20,20,5,5,20,-20,120,-20,-40,-5,-5,-5,-5,-40,-20,20,-5,15,3,3,15,-5,20,5,-5,3,3,3,3,-5,5,5,-5,3,3,3,3,-5,5,20,-5,15,3,3,15,-5,20,-20,-40,-5,-5,-5,-5,-40,-20,120,-20,20,5,5,20,-20,120]});import{effects as FNt,extrude as Cx,lathe as HNt,merge as rVe,Path as wx,quat as q3}from"@nayan-ui/engine";function $Nt(rn,nn){let an=[rn.spawn({mesh:UU(),position:[0,0,y1],scale:[nn.size,nn.size,1],color:xn(Zd.FELT),pickable:!1}),rn.spawn({mesh:jNt(),position:[0,0,y1+0.02],scale:[nn.cell,nn.cell,1],pickable:!1})],sn=Rx,ln=xn(Zd.BOARD_BORDER);for(let cn of[-1,1])an.push(rn.spawn({mesh:UU(),position:[0,cn*(nn.size+sn)/2,y1],scale:[nn.size+sn*2,sn,1],color:ln,pickable:!1})),an.push(rn.spawn({mesh:UU(),position:[cn*(nn.size+sn)/2,0,y1],scale:[sn,nn.size,1],color:ln,pickable:!1}));return an}function sVe(rn,nn,an,sn,ln,cn){let un=oa(rn,nn.width,nn.height,-oVe,an);Ea(rn,un,nn,oVe);let dn={backdrop:un,felt:$Nt(rn,nn),discs:Array(64).fill(null),hints:[],last:rn.spawn({mesh:XNt(),scale:0,color:xn(Zd.LAST_MOVE),pickable:!1})};return sn.forEach((pn,mn)=>{if(pn)zU(rn,nn,dn,mn,pn,!1)}),qU(rn,nn,dn,ln),YU(rn,nn,dn,cn),dn}function iVe(rn,nn){for(let an of[nn.backdrop,...nn.felt,...nn.discs,...nn.hints,nn.last])if(an!=null)rn.despawn(an)}function lVe(rn,nn,an){aa(rn,nn.backdrop,an)}function zU(rn,nn,an,sn,ln,cn=!0){let un=an.discs[sn];if(un!=null)rn.despawn(un);let dn=nn.cell*qNt,pn=VU(nn),mn=rn.spawn({mesh:YNt(),position:Xm(nn,sn,cn?pn+nn.cell*0.7:pn),rotation:aVe(ln),scale:[dn,dn,nn.cell*nVe],pickable:!1});if(cn)rn.animate(mn,{position:Xm(nn,sn,pn)},{duration:0.2,easing:"bounce"});an.discs[sn]=mn}function cVe(rn,nn,an,sn,ln,cn){let un=Math.floor(sn/8),dn=sn%8,pn=VU(nn);for(let mn of ln){let fn=an.discs[mn];if(fn==null)continue;let hn=Math.max(Math.abs(Math.floor(mn/8)-un),Math.abs(mn%8-dn));rn.animate(fn,[{position:Xm(nn,mn,pn+nn.cell*0.45),rotation:zNt,at:0.5},{position:Xm(nn,mn,pn),rotation:aVe(cn)}],{duration:UUe,delay:zUe+(hn-1)*VUe,easing:"easeInOut"})}}function qU(rn,nn,an,sn){for(let cn of an.hints)rn.despawn(cn);let ln=xn(Zd.HINT);an.hints=sn.map((cn)=>rn.spawn({mesh:KNt(),position:Xm(nn,cn,y1+0.08),scale:nn.cell*0.32,color:ln,pickable:!1}))}function YU(rn,nn,an,sn){if(sn<0)rn.set(an.last,{scale:0});else rn.set(an.last,{position:Xm(nn,sn,y1+0.06),scale:nn.cell-2})}function uVe(rn,nn,an,sn){let ln=an.discs[sn];if(ln!=null)rn.animate(ln,{shake:nn.cell*0.05},{duration:0.2})}function dVe(rn,nn,an,sn){let ln=VU(nn);sn.forEach((cn,un)=>{let dn=an.discs[un];if(cn!=="black"||dn==null)return;let pn=0.3+(Math.floor(un/8)+un%8)*0.04;rn.animate(dn,[{position:Xm(nn,un,ln+nn.cell*0.4),at:0.4},{position:Xm(nn,un,ln)}],{duration:0.4,delay:pn,easing:"easeOut"})}),FNt.confetti(rn,{position:[0,0,nn.cell*2],count:60,size:nn.cell*0.15,speed:nn.size*1.4,lifetime:1.3,gravity:-nn.size*2.4,colors:["#FFD700","#4CAF50","#FFFFFF","#1F7A46"].map((cn)=>xn(cn))})}var tVe,Lx=(rn,nn)=>{let an=tVe.get(rn);if(!an)an=Bn("reversi/ReversiScene:"+rn,nn),tVe.set(rn,an);return an},WNt,UNt,VNt,zNt,oVe=30,y1,qNt=0.8,nVe=0.16,YNt=()=>Lx("rv-disc",()=>{let rn=HNt([[0.001,0.5],[0.36,0.5],[0.385,0.46],[0.41,0.5],[0.43,0.5],[0.465,0.43],[0.495,0.28],[0.5,0.1],[0.5,0],[0.001,0]],{segments:36,color:({position:[nn,an,sn]})=>{let cn=Math.hypot(nn,sn)>0.43?0.88:an<0.49?0.92:1;return[cn,cn,cn,1]}});return wn(rVe([{geometry:rn,rotation:WNt,color:xn(Zd.WHITE)},{geometry:rn,rotation:q3.x(-Math.PI/2),color:xn(Zd.BLACK)}]),{center:!1,shine:0.45})}),KNt=()=>Lx("rv-ring",()=>wn(Cx(new wx().addCircle(0,0,0.5).addCircle(0,0,0.38),{depth:0,fillRule:"evenodd"}),{center:!1})),XNt=()=>Lx("rv-frame",()=>wn(Cx(new wx().addRect(-0.5,-0.5,1,1).addRect(-0.44,-0.44,0.88,0.88),{depth:0,fillRule:"evenodd"}),{center:!1})),UU=()=>Lx("rv-felt",()=>wn(Cx(new wx().addRect(-0.5,-0.5,1,1),{depth:0}),{center:!1})),jNt=()=>Lx("rv-grid",()=>{let rn=new wx,nn=0.025;for(let sn=0;sn<=8;sn++){let ln=Math.max(-3.9875,Math.min(3.9875,sn-4));rn.addRect(ln-0.0125,-4,0.025,8).addRect(-4,ln-0.0125,8,0.025)}let an=new wx;for(let sn of[-2,2])for(let ln of[-2,2])an.addCircle(sn,ln,0.06);return wn(rVe([{geometry:Cx(rn,{depth:0}),color:xn(Zd.GRID)},{geometry:Cx(an,{depth:0}),position:[0,0,0.01],color:xn(Zd.STAR)}]),{center:!1})}),VU=(rn)=>y1+rn.cell*nVe/2,Xm=(rn,nn,an)=>{let[sn,ln]=KUe(rn,nn);return[sn,ln,an]},aVe=(rn)=>rn==="white"?UNt:VNt;var pVe=e(()=>{u();na();ba();Hn();U3();tVe=new Map,WNt=q3.x(Math.PI/2),UNt=[0,0,0,1],VNt=q3.x(Math.PI),zNt=q3.x(Math.PI/2),y1=W3});import{World as ZNt}from"@nayan-ui/engine";function mVe(rn){let nn=new ZNt(QNt),an={eye:[0,0,240],target:[0,0,0],fov:1,ortho:1},sn=FU(),ln={world:nn,camera:an,theme:rn,layout:null,scene:null,phase:"ready",board:sn,turn:mi,hints:Km(sn,mi).map((cn)=>cn.index),last:-1,winner:null,timedOut:!1,black:2,white:2,get score(){return nn.scoreboard.score},get timeLeft(){return nn.scoreboard.shownSeconds},press:null,onPhase:(cn)=>{},onScore:(cn)=>{},onCounts:(cn,un)=>{},onTurn:(cn)=>{},onTime:(cn)=>{},onEvent:(cn)=>{}};return nn.scoreboard.reset(0,b1),nn.scoreboard.handlers={onSecond:(cn)=>ln.onTime(cn),onTimeUp:()=>{if(ln.phase!=="playing")return;ln.timedOut=!0,ln.winner=Mx,_Ve(ln)}},ln}function KU(rn,nn){if(rn.scene)iVe(rn.world,rn.scene);rn.layout=nn,ya(rn.camera,nn),rn.scene=sVe(rn.world,nn,rn.theme,rn.board,rn.hints,rn.last)}function fVe(rn,nn){if(rn.theme=nn,rn.scene)lVe(rn.world,rn.scene,nn)}function hVe(rn){if(rn.world.cancelTimers(),rn.board=FU(),rn.turn=mi,rn.last=-1,rn.winner=null,rn.timedOut=!1,rn.black=2,rn.white=2,rn.world.scoreboard.reset(0,b1),rn.press=null,rn.layout)KU(rn,rn.layout);t2(rn,Km(rn.board,mi).map((nn)=>nn.index)),rn.onScore(0),rn.onCounts(2,2),rn.onTurn(mi),rn.onTime(b1)}function bVe(rn){if(rn.phase!=="ready")return;hVe(rn),rn.world.scoreboard.startCountdown(b1),rn.phase="playing",rn.onPhase("playing")}function yVe(rn){hVe(rn),rn.phase="ready",rn.onPhase("ready")}function EVe(rn){rn.world.dispose()}function SVe(rn,nn){if(rn.world.isDisposed)return;rn.world.update(nn)}function _Ve(rn){if(rn.world.cancelTimers(),rn.world.scoreboard.stop(),rn.press=null,t2(rn,[]),rn.phase="over",rn.winner===mi&&rn.layout&&rn.scene)dVe(rn.world,rn.layout,rn.scene,rn.board);rn.onPhase("over")}function vVe(rn,nn,an){rn.board=Ax(rn.board,nn,an);let sn=WU(rn.board);if(rn.black=sn.black,rn.white=sn.white,an===mi)rn.world.scoreboard.add(nn.flips.length*BUe);rn.last=nn.index,rn.turn=Qd(an);let{layout:ln,scene:cn}=rn;if(ln&&cn)zU(rn.world,ln,cn,nn.index,an),cVe(rn.world,ln,cn,nn.index,nn.flips,an),YU(rn.world,ln,cn,nn.index);if(t2(rn,[]),rn.onCounts(sn.black,sn.white),an===mi)rn.onScore(rn.score);rn.onEvent(an===mi?"place":"robot"),XU(rn)}function JNt(rn,nn){if(rn.phase!=="playing"||rn.turn!==mi)return;let an=HU(rn.board,nn,mi);if(an.length===0){if(rn.layout&&rn.scene)uVe(rn.world,rn.layout,rn.scene,nn);rn.onEvent("invalid");return}vVe(rn,{index:nn,flips:an},mi)}function eGt(rn){if(rn.phase!=="playing"||rn.turn!==Mx)return;let nn=JUe(rn.board);if(!nn){rn.turn=mi,rn.onTurn(mi),XU(rn);return}vVe(rn,nn,Mx)}function XU(rn){if(rn.phase!=="playing")return;let nn=rn.turn,an=Km(rn.board,nn);if(an.length>0){if(rn.onTurn(nn),nn===mi)t2(rn,an.map((ln)=>ln.index));else t2(rn,[]),rn.world.cancelTimers(),rn.world.after(HUe,()=>eGt(rn));return}let sn=Qd(nn);if(Km(rn.board,sn).length===0)return tGt(rn);rn.turn=sn,t2(rn,[]),rn.onEvent("pass"),XU(rn)}function tGt(rn){let nn=WU(rn.board);if(rn.black=nn.black,rn.white=nn.white,rn.winner=nn.black>nn.white?mi:nn.white>nn.black?Mx:null,rn.winner===mi)rn.onScore(rn.world.scoreboard.add(FUe));rn.onCounts(nn.black,nn.white),rn.onEvent(rn.winner===mi?"win":"lose"),_Ve(rn)}function oGt(rn,nn,an){let sn=rn.layout;if(!sn)return-1;let[ln,cn]=Wa(sn,nn,an,W3);return XUe(sn,ln,cn)}function TVe(rn,{phase:nn,x:an,y:sn}){if(nn==="start"){rn.press={x:an,y:sn};return}let ln=rn.press;if(!ln)return;if(Math.hypot(an-ln.x,sn-ln.y)>WUe){rn.press=null;return}if(nn!=="end")return;rn.press=null;let cn=oGt(rn,an,sn);if(cn>=0)JNt(rn,cn)}var QNt=300,t2=(rn,nn)=>{if(rn.hints=nn,rn.layout&&rn.scene)qU(rn.world,rn.layout,rn.scene,nn)};var xVe=e(()=>{ba();U3();eVe();pVe()});var Xr={};n(Xr,{Reversi:()=>Ao});import{jsx as rGt}from"react/jsx-runtime";var Jd,RVe,Ao;var qe=e(()=>{Ta();l();a();_a();o();xa();va();U3();xVe();Jd=t.REVERSI,RVe={place:{sound:Jd.PLACE,haptic:"medium"},robot:{sound:Jd.PLACE,haptic:"light"},invalid:{sound:Jd.INVALID,haptic:"light"},pass:{sound:Jd.PASS},win:{sound:Jd.WIN,haptic:"success"},lose:{sound:Jd.LOSE,haptic:"error"}},Ao=Vn("reversi",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn({black:2,white:2}),[cn,un]=gn(b1),{game:dn,theme:pn,status:mn,screen:fn,gameOver:hn}=zn(rn,{gameId:"reversi",create:mVe,start:bVe,reset:yVe,dispose:EVe,tick:SVe,setTheme:fVe,resize:(Tn,Rn,An,Mn)=>{let Cn=YUe(Rn,An,Mn);return KU(Tn,Cn),Cn.size+Rx*2},drag:TVe,outcome:(Tn)=>Tn.winner==="black"?"win":"lose",sounds:Jd,onStart:(Tn)=>Tn(Jd.START,"medium"),onOver:(Tn,Rn,An)=>{if(An.timedOut)Tn(Jd.TIME_UP,"error")},wire:(Tn,Rn)=>{Tn.onScore=an,Tn.onCounts=(An,Mn)=>ln({black:An,white:Mn}),Tn.onTime=un,Tn.onEvent=(An)=>{if(An==="lose"&&Tn.winner===null&&!Tn.timedOut)Rn(t.DRAW,"medium");else Rn(RVe[An].sound,RVe[An].haptic)}}}),{black:bn,white:yn,timedOut:En}=dn,Sn=dn.winner===null&&!En,_n=mn==="win"?"YOU WON!":Sn?"IT'S A TIE!":En?"TIME UP!":"YOU LOST!",vn=mn==="win"?`You finished ${bn}-${yn}!`:Sn?`Even at ${bn}-${yn}!`:En?"You ran out of time!":`The robot wins ${yn}-${bn}!`;return rGt(Un,{...fn,light:qUe,columns:[Qn(nn),ma("YOU-AI",`${sn.black}-${sn.white}`),ta(cn,pn)],subtext:"Outflank the robot!",gameOver:hn({title:_n,message:vn,scoreLabel:"Score",score:nn,buttonText:"Play Again!"})})})});var AVe=1.2,C0,MVe=14,CVe=0.045,wVe=0.035,Ix=0.32,LVe=6,Ox=7,ec=1000,IVe=14,OVe=6,ep=2,PVe=1700,gVe=2600,Js=12,DVe=9,NVe=2,Y3=3,GVe=3,kVe=5.5,BVe=7,FVe,HVe,K3,X3,WVe=0.45,E1=3,UVe=2.2,VVe=0.3,jU=0.7,zVe=1.1,qVe=2,YVe=20,KVe=200;var j3=e(()=>{C0=[-1.7,0,1.7],FVe=[0.7,1.15],HVe=[0.8,1.25],K3=[0.15,0.9],X3=[0.08,0.94]});var jr={};n(jr,{bodyMesh:()=>Dx,flipperMesh:()=>Zm,footMesh:()=>a2,warmAssets:()=>hGt});import{lathe as XVe,merge as ZVe,shapeGeometry as QVe,tube as $m}from"@nayan-ui/engine";function iGt({position:[rn,nn,an]}){let sn=jm(S1,JVe,(nn+0.3)*0.6*Math.max(0,-an/0.3+0.3)),ln=Math.sqrt((rn/0.235)**2+((nn+0.04)/0.255)**2),cn=J3(ln,1,0.06)*J3(-an,-0.04,0.04);return Hi(jm(sn,jm(tze,eze,(nn+0.25)*2),cn))}function lGt({position:[rn,nn,an]}){let sn=jm(S1,JVe,Math.max(0,(nn-r2)/n2)*0.5),ln=Math.min(Math.hypot(rn-0.072,nn-0.53)/0.1,Math.hypot(rn+0.072,nn-0.53)/0.1),cn=Math.hypot(rn/1.15,nn-0.44)/0.115,un=J3(Math.min(ln,cn),1,0.08)*J3(-an,-0.06,0.04);return Hi(jm(sn,eze,un))}function jVe(rn){let nn=rn*0.074,an=0.525;return[o2(nn,0.525,[0.1,0.122,0.05],-0.012,Hi([1,1,1])),o2(nn+rn*0.004,0.519,[0.07,0.08,0.03],0.004,Hi(aGt)),o2(nn+rn*0.004,0.513,[0.058,0.06,0.03],0.008,Hi(nGt)),o2(nn+rn*0.004,0.519,[0.036,0.042,0.03],0.013,Hi([0.02,0.02,0.04])),o2(nn-0.014,0.539,0.024,0.024,[1.8,1.8,1.8,1]),o2(nn+0.016,0.503,0.011,0.022,[1.6,1.6,1.6,1]),{geometry:$m([[nn+rn*0.05,0.593,gx(nn+rn*0.05,0.593)+0.004],[nn,0.61,gx(nn,0.61)+0.006],[nn-rn*0.045,0.6,gx(nn-rn*0.045,0.6)+0.004]],{radius:(sn)=>0.009+Math.sin(sn*Math.PI)*0.005,sides:6,color:Hi(S1)})}]}function cGt(){let rn=gx(0,0.46),nn=(an)=>1+0.45*Math.abs(Math.cos(an*Math.PI*2));return[{geometry:$m([[0,0.468,rn-0.03],[0,0.464,rn+0.03],[0,0.452,rn+0.075],[0,0.44,rn+0.09]],{radius:(an)=>0.048*(1-an*0.85),shape:nn,sides:16,color:({v:an})=>Hi(jm(Px,Q3,an*0.6))})},{geometry:$m([[0,0.436,rn-0.03],[0,0.434,rn+0.02],[0,0.432,rn+0.05]],{radius:(an)=>0.03*(1-an*0.8),shape:nn,sides:14,color:Hi(Q3)})}]}function Dx(){return Bn("penguin-run/PenguinMeshes:bodyMesh",()=>pGt())}function pGt(){if($3)return $3;let rn=XVe([[0.001,0.42],[0.14,0.4],[0.18,0.34],[0.2,0.29],[0.225,0.24],[0.258,0.17],[0.284,0.09],[0.302,0],[0.306,-0.08],[0.296,-0.16],[0.268,-0.24],[0.215,-0.3],[0.13,-0.33],[0.001,-0.338]],{segments:64,color:iGt}),nn=XVe(sGt($U,n2,r2,32),{segments:64,color:lGt});return $3=wn(ZVe([{geometry:rn},{geometry:nn},...jVe(-1),...jVe(1),...cGt(),...uGt(),dGt()]),{center:!1,shine:0.55}),$3}function Zm(rn){return Bn("penguin-run/PenguinMeshes:flipperMesh"+JSON.stringify([rn]),()=>mGt(rn))}function mGt(rn){let nn=$Ve[rn];if(nn)return nn;let an=$m([[-rn*0.07,0.05,0],[-rn*0.01,0.02,0],[rn*0.02,-0.08,0.01],[rn*0.022,-0.17,0.005],[rn*0.01,-0.24,-0.01],[-rn*0.006,-0.27,-0.015]],{radius:(ln)=>0.06*Math.sin(0.6+ln*2.2)+0.012,shape:(ln)=>0.32+0.68*Math.abs(Math.cos(ln*Math.PI*2)),sides:18,smoothness:10,color:({normal:ln})=>Hi(ln[0]*rn<-0.25?tze:S1)}),sn=wn(an,{center:!1,shine:0.5});return $Ve[rn]=sn,sn}function a2(){return Bn("penguin-run/PenguinMeshes:footMesh",()=>fGt())}function fGt(){if(Z3)return Z3;let rn=QVe("sphere"),nn=[-0.42,0,0.42].map((ln)=>({geometry:$m([[0,0.03,0.04],[Math.sin(ln)*0.05,0.026,0.09],[Math.sin(ln)*0.08,0.022,0.135]],{radius:(cn)=>0.032-cn*0.008,sides:10,color:Hi(Px)})})),an=[-0.42,0,0.42].map((ln)=>({geometry:rn,position:[Math.sin(ln)*0.08,0.022,0.135],scale:0.048,color:Hi(Px)})),sn={geometry:$m([[0,0.04,0.02],[0,0.12,0],[0,0.22,-0.01]],{radius:(ln)=>0.045+ln*0.04,sides:12,color:({v:ln})=>Hi(ln<0.35?jm(Q3,Px,ln*2):S1)})};return Z3=wn(ZVe([sn,{geometry:rn,position:[0,0.03,0.05],scale:[0.15,0.06,0.16],color:Hi(jm(Px,Q3,0.3))},...nn,...an]),{center:!1,shine:0.35}),Z3}function*hGt(){yield Dx,yield a2,yield()=>Zm(-1),yield()=>Zm(1)}var S1,JVe,eze,tze,Px,Q3,nGt,aGt,Hi=(rn,nn=1)=>[rn[0],rn[1],rn[2],nn],jm=(rn,nn,an)=>{let sn=Math.min(1,Math.max(0,an));return[rn[0]+(nn[0]-rn[0])*sn,rn[1]+(nn[1]-rn[1])*sn,rn[2]+(nn[2]-rn[2])*sn]},J3=(rn,nn,an)=>Math.min(1,Math.max(0,(nn-rn)/an+0.5)),sGt=(rn,nn,an,sn=28)=>Array.from({length:sn+1},(ln,cn)=>{let un=Math.PI/2-cn/sn*Math.PI;return[Math.max(0.001,Math.cos(un)*rn),an+Math.sin(un)*nn]}),r2=0.49,$U=0.25,n2=0.225,gx=(rn,nn)=>$U*Math.sqrt(Math.max(0,1-(rn/$U)**2-((nn-r2)/n2)**2)),o2=(rn,nn,an,sn,ln)=>({geometry:QVe("sphere"),position:[rn,nn,gx(rn,nn)+sn],scale:an,color:ln}),uGt=()=>[-1,0,1].map((rn)=>({geometry:$m([[rn*0.035,r2+n2-0.03,-0.02],[rn*0.05,r2+n2+0.04,0-Math.abs(rn)*0.01],[rn*0.065,r2+n2+0.07,0.05]],{radius:(nn)=>0.022*(1-nn*0.85)*(rn===0?1.15:0.9),sides:8,color:Hi(S1)})})),dGt=()=>({geometry:$m([[0,-0.2,-0.26],[0,-0.27,-0.33],[0,-0.3,-0.38]],{radius:(rn)=>0.07*(1-rn*0.8),shape:(rn)=>0.4+0.6*Math.abs(Math.cos(rn*Math.PI*2)),sides:12,color:Hi(S1)})}),$3=null,$Ve,Z3=null;var Mo=e(()=>{na();S1=[0.06,0.08,0.14],JVe=[0.16,0.2,0.32],eze=[1,0.98,0.93],tze=[0.88,0.9,0.95],Px=[1,0.62,0.12],Q3=[0.92,0.42,0.08],nGt=[0.18,0.5,0.95],aGt=[0.06,0.2,0.55];$Ve={}});import{quat as Qm}from"@nayan-ui/engine";function sze(){Dx(),Zm(-1),Zm(1),a2()}function ize(rn,nn,an=1,sn=[1,1,1,1]){let ln=rn.spawn({mesh:"none",position:nn,scale:an,pickable:!1}),cn=rn.spawn({mesh:"none",parent:ln,position:rze(),pickable:!1}),un=rn.spawn({mesh:Dx(),parent:cn,position:[0,0,0],scale:yGt,color:sn,pickable:!1}),dn=rn.spawn({mesh:Zm(-1),parent:cn,position:[-Yc[0],Yc[1],Yc[2]],rotation:Wi,color:sn,pickable:!1}),pn=rn.spawn({mesh:Zm(1),parent:cn,position:[Yc[0],Yc[1],Yc[2]],rotation:Ui,color:sn,pickable:!1}),mn=rn.spawn({mesh:a2(),parent:ln,position:zs(),rotation:nze,color:sn,pickable:!1}),fn=rn.spawn({mesh:a2(),parent:ln,position:Ss(),rotation:aze,color:sn,pickable:!1});return{root:ln,pelvis:cn,body:un,flipperL:dn,flipperR:pn,footL:mn,footR:fn,x:nn[0],yaw:0,anim:null}}function lze(rn,nn,an){for(let ln of EGt(nn))rn.stopAnimation(ln);let sn=[[nn.pelvis,rze(),tc],[nn.flipperL,[-Yc[0],Yc[1],Yc[2]],Wi],[nn.flipperR,[Yc[0],Yc[1],Yc[2]],Ui],[nn.footL,zs(),nze],[nn.footR,Ss(),aze]];for(let[ln,cn,un]of sn)if(an<=0)rn.set(ln,{position:cn,rotation:un,...ln===nn.pelvis&&{scale:1}});else rn.animate(ln,{position:cn,rotation:un,...ln===nn.pelvis&&{scale:1}},{duration:an,easing:"easeOut"})}function SGt(rn,nn,an,sn=0.12){if(nn.yaw=an,sn<=0)rn.set(nn.root,{rotation:Qm.y(an)});else rn.animate(nn.root,{rotation:Qm.y(an)},{duration:sn})}function cze(rn,nn,an,sn=0){rn.stopAnimation(nn.root),nn.x=an,rn.set(nn.root,{position:[an,0,0]}),SGt(rn,nn,sn,0),lze(rn,nn,0),nn.anim=null}function tp(rn,nn,an,sn=1){if(nn.anim===an&&bGt.has(an))return Promise.resolve();nn.anim=an,lze(rn,nn,ZU);let ln=eO[an]/sn,cn={duration:ln,repeat:"forever",delay:ZU,easing:"linear",path:"smooth"},un={duration:ln,delay:ZU,easing:"linear",path:"smooth"},dn=(yn,En,Sn)=>rn.animate(yn,En,Sn),{pelvis:pn,flipperL:mn,flipperR:fn,footL:hn,footR:bn}=nn;switch(an){case"idle":return dn(pn,[Pn(0,{position:da(0,0,0),rotation:tc,scale:1}),Pn(0.12,{position:da(0,0.012,0),rotation:Sa(-0.02,0,0),scale:[1.01,1.03,1.01]}),Pn(0.26,{position:da(0,0,0),rotation:tc,scale:1}),Pn(0.36,{position:da(0.006,0,0),rotation:Sa(0.04,0.42,-0.04),scale:1}),Pn(0.5,{position:da(0.006,0.01,0),rotation:Sa(0.02,0.38,-0.04),scale:[1.01,1.025,1.01]}),Pn(0.58,{position:da(-0.006,0,0),rotation:Sa(0.04,-0.36,0.04),scale:1}),Pn(0.72,{position:da(-0.006,0.01,0),rotation:Sa(0.02,-0.33,0.04),scale:[1.01,1.025,1.01]}),Pn(0.8,{position:da(-0.012,0,0),rotation:Sa(0,0,0.05),scale:1}),Pn(0.9,{position:da(0,0.012,0),rotation:Sa(-0.02,0,0),scale:[1.01,1.03,1.01]}),Pn(1,{position:da(0,0,0),rotation:tc,scale:1})],cn),dn(mn,[Pn(0,{rotation:Wi}),Pn(0.12,{rotation:os(0.02,0.2)}),Pn(0.26,{rotation:Wi}),Pn(0.4,{rotation:Wi}),Pn(0.44,{rotation:os(-0.1,0.55)}),Pn(0.48,{rotation:os(0,0.25)}),Pn(0.51,{rotation:os(-0.05,0.45)}),Pn(0.58,{rotation:Wi}),Pn(0.9,{rotation:os(0.02,0.2)}),Pn(1,{rotation:Wi})],cn),dn(fn,[Pn(0,{rotation:Ui}),Pn(0.12,{rotation:ms(0.02,0.2)}),Pn(0.26,{rotation:Ui}),Pn(0.64,{rotation:Ui}),Pn(0.68,{rotation:ms(0.15,0.5)}),Pn(0.74,{rotation:Ui}),Pn(0.9,{rotation:ms(0.02,0.2)}),Pn(1,{rotation:Ui})],cn),dn(bn,[Pn(0,{position:Ss()}),Pn(0.78,{position:Ss()}),Pn(0.82,{position:Ss(0.025,0.02)}),Pn(0.86,{position:Ss()}),Pn(1,{position:Ss()})],cn),Promise.resolve();case"walk":case"run":{let yn=an==="run",En=yn?0.025:0.04,Sn=yn?0.09:0.15,_n=yn?0.04:0.08,vn=yn?0.4:0.05,Tn=yn?-0.025:-0.005,Rn=yn?0.06:0.025;dn(pn,[Pn(0,{position:da(-En,Tn,0),rotation:Sa(vn,_n,Sn)}),Pn(0.25,{position:da(0,Rn,0),rotation:Sa(vn+0.02,0,0)}),Pn(0.5,{position:da(En,Tn,0),rotation:Sa(vn,-_n,-Sn)}),Pn(0.75,{position:da(0,Rn,0),rotation:Sa(vn+0.02,0,0)}),Pn(1,{position:da(-En,Tn,0),rotation:Sa(vn,_n,Sn)})],cn);let An=yn?0.09:0.045,Mn=yn?0.11:0.06,Cn=(Nn,Wn,Fn)=>{let Kn=[[0,Wn(0,-Mn),Ua(Nn,0)],[0.12,Wn(An*0.6,-Mn*0.4),Ua(Nn,0.35)],[0.25,Wn(An,Mn*0.4),Ua(Nn,-0.1)],[0.4,Wn(0,Mn),Ua(Nn,-0.15)],[0.46,Wn(0,Mn*0.9),Ua(Nn,0)],[1,Wn(0,-Mn),Ua(Nn,0)]].map(([ia,Xn,La])=>[(ia+Fn)%1,Xn,La]).sort((ia,Xn)=>ia[0]-Xn[0]),ea=Kn[0],Yn=Kn.map(([ia,Xn,La])=>Pn(ia,{position:Xn,rotation:La}));if(ea[0]>0){let ia=Kn[Kn.length-1];Yn.unshift(Pn(0,{position:ia[1],rotation:ia[2]}))}if(Yn[Yn.length-1].at<1)Yn.push(Pn(1,{position:Yn[0].position,rotation:Yn[0].rotation}));return Yn};dn(bn,Cn(1,Ss,0),cn),dn(hn,Cn(-1,zs,0.5),cn);let[Ln,On,Dn]=yn?[0.95,0.55,0.85]:[0.15,0.3,0.55];return dn(mn,[Pn(0,{rotation:os(Ln,On)}),Pn(0.25,{rotation:os(Ln-0.08,(On+Dn)/2)}),Pn(0.5,{rotation:os(Ln,Dn)}),Pn(0.75,{rotation:os(Ln-0.08,(On+Dn)/2)}),Pn(1,{rotation:os(Ln,On)})],cn),dn(fn,[Pn(0,{rotation:ms(Ln,Dn)}),Pn(0.25,{rotation:ms(Ln-0.08,(On+Dn)/2)}),Pn(0.5,{rotation:ms(Ln,On)}),Pn(0.75,{rotation:ms(Ln-0.08,(On+Dn)/2)}),Pn(1,{rotation:ms(Ln,Dn)})],cn),Promise.resolve()}case"punch":case"jab":{let yn=an==="punch",En=yn?1:-1,Sn=yn?1:0.7,_n=yn?fn:mn,vn=yn?mn:fn,Tn=yn?ms:os,Rn=yn?os:ms,An=yn?hn:bn,Mn=yn?bn:hn,Cn=yn?zs:Ss,Ln=yn?1:-1;return dn(pn,[Pn(0,{position:da(0,0,0),rotation:tc}),Pn(0.3,{position:da(0,-0.035*Sn,-0.03),rotation:Sa(-0.12,0.45*En*Sn,0)}),Pn(0.4,{position:da(0,-0.04*Sn,0.1*Sn),rotation:Sa(0.32*Sn,-0.38*En*Sn,0)}),Pn(0.48,{position:da(0,-0.04*Sn,0.12*Sn),rotation:Sa(0.38*Sn,-0.46*En*Sn,0)}),Pn(0.64,{position:da(0,-0.03*Sn,0.09*Sn),rotation:Sa(0.26*Sn,-0.32*En*Sn,0)}),Pn(1,{position:da(0,0,0),rotation:tc})],un),dn(_n,[Pn(0,{rotation:yn?Ui:Wi}),Pn(0.3,{rotation:Tn(0.95,0.55)}),Pn(0.4,{rotation:Tn(-1.6,0.2,0.15)}),Pn(0.48,{rotation:Tn(-1.85,0.12,0.2)}),Pn(0.64,{rotation:Tn(-1.55,0.2,0.1)}),Pn(1,{rotation:yn?Ui:Wi})],un),dn(vn,[Pn(0,{rotation:yn?Wi:Ui}),Pn(0.3,{rotation:Rn(-0.5,0.35)}),Pn(0.42,{rotation:Rn(0.7,0.55)}),Pn(0.64,{rotation:Rn(0.5,0.45)}),Pn(1,{rotation:yn?Wi:Ui})],un),dn(An,[Pn(0,{position:Cn()}),Pn(0.3,{position:Cn()}),Pn(0.36,{position:Cn(0.035,0.07)}),Pn(0.42,{position:Cn(0,0.13*Sn)}),Pn(0.7,{position:Cn(0,0.12*Sn)}),Pn(0.85,{position:Cn(0.02,0.05)}),Pn(1,{position:Cn()})],un),dn(Mn,[Pn(0,{rotation:Ua(Ln,0)}),Pn(0.4,{rotation:Ua(Ln,-0.15,-0.45*En)}),Pn(0.7,{rotation:Ua(Ln,-0.1,-0.35*En)}),Pn(1,{rotation:Ua(Ln,0)})],un)}case"jump":{let yn=(_n)=>_n.map((vn)=>vn.position?{...vn,position:[vn.position[0],vn.position[1]+_Gt(vn.at??0),vn.position[2]]}:vn),En=dn(pn,yn([Pn(0,{position:da(0,0,0),rotation:tc,scale:1}),Pn(0.22,{position:da(0,-0.09,0.02),rotation:Sa(0.22,0,0),scale:[1.14,0.84,1.14]}),Pn(0.3,{position:da(0,0.02,0),rotation:Sa(-0.06,0,0),scale:[0.9,1.16,0.9]}),Pn(0.4,{position:da(0,0.02,0),rotation:Sa(0.02,0,0),scale:1}),Pn(0.52,{position:da(0,0.02,0),rotation:Sa(0.05,0,0),scale:1}),Pn(0.64,{position:da(0,0.01,0),rotation:Sa(0,0,0),scale:1}),Pn(0.72,{position:da(0,0.01,0),rotation:Sa(-0.04,0,0),scale:[0.95,1.07,0.95]}),Pn(0.8,{position:da(0,-0.09,0.01),rotation:Sa(0.18,0,0),scale:[1.16,0.82,1.16]}),Pn(0.9,{position:da(0,0.015,0),rotation:Sa(-0.03,0,0),scale:[0.96,1.05,0.96]}),Pn(1,{position:da(0,0,0),rotation:tc,scale:1})]),un),Sn=(_n,vn)=>[Pn(0,{rotation:vn}),Pn(0.22,{rotation:_n(1.1,0.5)}),Pn(0.32,{rotation:_n(-0.2,2.3)}),Pn(0.42,{rotation:_n(0.1,1)}),Pn(0.52,{rotation:_n(-0.1,2.1)}),Pn(0.66,{rotation:_n(0.1,1.1)}),Pn(0.8,{rotation:_n(-0.2,1.7)}),Pn(0.9,{rotation:_n(0,0.5)}),Pn(1,{rotation:vn})];dn(mn,Sn(os,Wi),un),dn(fn,Sn(ms,Ui),un);for(let[_n,vn,Tn]of[[hn,zs,-1],[bn,Ss,1]])dn(_n,yn([Pn(0,{position:vn(),rotation:Ua(Tn,0)}),Pn(0.28,{position:vn(),rotation:Ua(Tn,-0.3)}),Pn(0.42,{position:vn(0.07,-0.05),rotation:Ua(Tn,0.6)}),Pn(0.52,{position:vn(0.07,-0.04),rotation:Ua(Tn,0.5)}),Pn(0.62,{position:vn(0.06,-0.03),rotation:Ua(Tn,0.4)}),Pn(0.76,{position:vn(0.01,0.02),rotation:Ua(Tn,-0.25)}),Pn(0.8,{position:vn(),rotation:Ua(Tn,0)}),Pn(1,{position:vn(),rotation:Ua(Tn,0)})]),un);return En}case"slide":{dn(pn,[Pn(0,{position:da(0,0,0),rotation:tc,scale:1}),Pn(0.12,{position:da(0,-0.06,-0.03),rotation:Sa(-0.35,0,0),scale:[1.04,0.92,1.04]}),Pn(0.24,{position:da(0,-0.13,-0.08),rotation:Sa(-1.05,0,0),scale:[1.06,0.88,1.06]}),Pn(0.45,{position:da(0,-0.13,-0.08),rotation:Sa(-1.02,0.04,0.04),scale:[1.06,0.88,1.06]}),Pn(0.6,{position:da(0,-0.13,-0.08),rotation:Sa(-1.05,-0.04,-0.04),scale:[1.06,0.88,1.06]}),Pn(0.74,{position:da(0,-0.13,-0.08),rotation:Sa(-1.02,0.03,0.02),scale:[1.06,0.88,1.06]}),Pn(0.86,{position:da(0,-0.05,-0.03),rotation:Sa(-0.3,0,0),scale:[1.03,0.95,1.03]}),Pn(0.93,{position:da(0,0.01,0),rotation:Sa(0.06,0,0),scale:[0.98,1.02,0.98]}),Pn(1,{position:da(0,0,0),rotation:tc,scale:1})],un);let yn=(En,Sn,_n)=>[Pn(0,{rotation:Sn}),Pn(0.12,{rotation:En(-0.3,0.6)}),Pn(0.24,{rotation:En(-0.5,0.9)}),Pn(0.4+_n,{rotation:En(-0.45,1)}),Pn(0.55+_n,{rotation:En(-0.55,0.9)}),Pn(0.74,{rotation:En(-0.5,0.95)}),Pn(0.86,{rotation:En(-0.15,0.5)}),Pn(1,{rotation:Sn})];dn(mn,yn(os,Wi,0),un),dn(fn,yn(ms,Ui,0.04),un);for(let[En,Sn,_n,vn]of[[hn,zs,-1,0],[bn,Ss,1,0.05]])dn(En,[Pn(0,{position:Sn(),rotation:Ua(_n,0)}),Pn(0.12,{position:Sn(0.01,0.08),rotation:Ua(_n,-0.3)}),Pn(0.24,{position:Sn(0.03,0.18),rotation:Ua(_n,-0.55)}),Pn(0.5+vn,{position:Sn(0.03,0.18),rotation:Ua(_n,-0.5)}),Pn(0.76,{position:Sn(0.03,0.18),rotation:Ua(_n,-0.55)}),Pn(0.88,{position:Sn(0.01,0.05),rotation:Ua(_n,-0.1)}),Pn(1,{position:Sn(),rotation:Ua(_n,0)})],un);return dn(nn.body,[Pn(0,{scale:1}),Pn(1,{scale:1})],un)}case"hit":return rn.animate(nn.root,{shake:0.045},{duration:ln*0.4}),dn(pn,[Pn(0,{position:da(0,0,0),rotation:tc,scale:1}),Pn(0.1,{position:da(0,-0.02,-0.08),rotation:Sa(-0.55,0,0.15),scale:[1.06,0.93,1.06]}),Pn(0.26,{position:da(0,0,-0.05),rotation:Sa(0.22,0,-0.08),scale:1}),Pn(0.42,{position:da(0,0,-0.03),rotation:Sa(-0.12,0,0.05),scale:1}),Pn(0.58,{position:da(0,0,-0.01),rotation:Sa(0.06,0,-0.02),scale:1}),Pn(0.75,{position:da(0,0,0),rotation:Sa(-0.02,0,0),scale:1}),Pn(1,{position:da(0,0,0),rotation:tc,scale:1})],un),dn(mn,[Pn(0,{rotation:Wi}),Pn(0.1,{rotation:os(-0.4,1.9)}),Pn(0.28,{rotation:os(0.2,0.6)}),Pn(0.44,{rotation:os(-0.1,1)}),Pn(0.62,{rotation:os(0,0.4)}),Pn(1,{rotation:Wi})],un),dn(fn,[Pn(0,{rotation:Ui}),Pn(0.12,{rotation:ms(-0.4,1.8)}),Pn(0.3,{rotation:ms(0.2,0.55)}),Pn(0.46,{rotation:ms(-0.1,0.95)}),Pn(0.64,{rotation:ms(0,0.4)}),Pn(1,{rotation:Ui})],un),dn(hn,[Pn(0,{position:zs()}),Pn(0.14,{position:zs(0.04,-0.06)}),Pn(0.24,{position:zs(0,-0.1)}),Pn(0.7,{position:zs(0,-0.06)}),Pn(1,{position:zs()})],un),dn(bn,[Pn(0,{position:Ss()}),Pn(0.3,{position:Ss()}),Pn(0.4,{position:Ss(0.03,-0.04)}),Pn(0.5,{position:Ss(0,-0.07)}),Pn(1,{position:Ss()})],un);case"dance":return dn(pn,[Pn(0,{position:da(-0.03,0,0),rotation:Sa(0,0.35,0.18),scale:[1.04,0.95,1.04]}),Pn(0.12,{position:da(-0.01,0.07,0),rotation:Sa(0,0.2,0.08),scale:[0.97,1.05,0.97]}),Pn(0.25,{position:da(0,0.09,0),rotation:Sa(-0.05,0,0),scale:1}),Pn(0.38,{position:da(0.01,0.07,0),rotation:Sa(0,-0.2,-0.08),scale:[0.97,1.05,0.97]}),Pn(0.5,{position:da(0.03,0,0),rotation:Sa(0,-0.35,-0.18),scale:[1.04,0.95,1.04]}),Pn(0.62,{position:da(0.01,0.07,0),rotation:Sa(0,-0.2,-0.08),scale:[0.97,1.05,0.97]}),Pn(0.75,{position:da(0,0.09,0),rotation:Sa(-0.05,0,0),scale:1}),Pn(0.88,{position:da(-0.01,0.07,0),rotation:Sa(0,0.2,0.08),scale:[0.97,1.05,0.97]}),Pn(1,{position:da(-0.03,0,0),rotation:Sa(0,0.35,0.18),scale:[1.04,0.95,1.04]})],cn),dn(mn,[Pn(0,{rotation:os(0,2.6)}),Pn(0.25,{rotation:os(-0.35,1.9)}),Pn(0.5,{rotation:os(0,2.6)}),Pn(0.75,{rotation:os(-0.35,1.9)}),Pn(1,{rotation:os(0,2.6)})],cn),dn(fn,[Pn(0,{rotation:ms(-0.35,1.9)}),Pn(0.25,{rotation:ms(0,2.6)}),Pn(0.5,{rotation:ms(-0.35,1.9)}),Pn(0.75,{rotation:ms(0,2.6)}),Pn(1,{rotation:ms(-0.35,1.9)})],cn),dn(hn,[Pn(0,{position:zs()}),Pn(0.6,{position:zs()}),Pn(0.75,{position:zs(0.07,0.03)}),Pn(0.9,{position:zs()}),Pn(1,{position:zs()})],cn),dn(bn,[Pn(0,{position:Ss()}),Pn(0.1,{position:Ss()}),Pn(0.25,{position:Ss(0.07,0.03)}),Pn(0.4,{position:Ss()}),Pn(1,{position:Ss()})],cn),Promise.resolve();case"dead":return dn(pn,[Pn(0,{position:da(0,0,0),rotation:tc}),Pn(0.08,{position:da(0,-0.02,-0.05),rotation:Sa(-0.35,0,0.08)}),Pn(0.2,{position:da(0.02,0,0),rotation:Sa(0.18,0.15,0.14)}),Pn(0.34,{position:da(-0.02,0,0),rotation:Sa(-0.05,-0.2,-0.16)}),Pn(0.48,{position:da(0.015,0,0),rotation:Sa(0.08,0.15,0.12)}),Pn(0.6,{position:da(0,-0.02,-0.03),rotation:Sa(-0.3,0,0.05)}),Pn(0.76,{position:[0,0.3,-0.26],rotation:Sa(-1.55,0,0.1)}),Pn(0.84,{position:[0,0.36,-0.24],rotation:Sa(-1.38,0,0.12)}),Pn(0.92,{position:[0,0.3,-0.26],rotation:Sa(-1.55,0,0.1)}),Pn(1,{position:[0,0.3,-0.26],rotation:Sa(-1.55,0,0.1)})],un),dn(mn,[Pn(0,{rotation:Wi}),Pn(0.08,{rotation:os(-0.3,1.2)}),Pn(0.3,{rotation:os(0.2,0.8)}),Pn(0.6,{rotation:os(-0.4,1.6)}),Pn(0.8,{rotation:os(-0.2,1.45)}),Pn(0.88,{rotation:os(-0.3,1.7)}),Pn(1,{rotation:os(-0.2,1.4)})],un),dn(fn,[Pn(0,{rotation:Ui}),Pn(0.1,{rotation:ms(-0.3,1.1)}),Pn(0.36,{rotation:ms(0.2,0.9)}),Pn(0.62,{rotation:ms(-0.4,1.5)}),Pn(0.8,{rotation:ms(-0.2,1.4)}),Pn(0.88,{rotation:ms(-0.3,1.65)}),Pn(1,{rotation:ms(-0.2,1.35)})],un),dn(hn,[Pn(0,{position:zs(),rotation:Ua(-1,0)}),Pn(0.2,{position:zs(0.03,0.03),rotation:Ua(-1,0)}),Pn(0.26,{position:zs(0,0.04),rotation:Ua(-1,0)}),Pn(0.6,{position:zs(),rotation:Ua(-1,0)}),Pn(0.78,{position:zs(0.2,0.05),rotation:Ua(-1,-1.2)}),Pn(1,{position:zs(0.18,0.04),rotation:Ua(-1,-1.3)})],un),dn(bn,[Pn(0,{position:Ss(),rotation:Ua(1,0)}),Pn(0.34,{position:Ss(0.03,-0.03),rotation:Ua(1,0)}),Pn(0.4,{position:Ss(0,-0.04),rotation:Ua(1,0)}),Pn(0.6,{position:Ss(),rotation:Ua(1,0)}),Pn(0.8,{position:Ss(0.22,0.03),rotation:Ua(1,-1.1)}),Pn(1,{position:Ss(0.2,0.02),rotation:Ua(1,-1.25)})],un)}}var bGt,eO,oze=0.39,yGt,Yc,s2,tc,os=(rn,nn,an=0)=>Qm.fromEuler(rn,an,-nn),ms=(rn,nn,an=0)=>Qm.fromEuler(rn,-an,nn),Wi,Ui,rze=(rn=0,nn=0)=>[0,oze+rn,nn],zs=(rn=0,nn=0)=>[-s2[0],s2[1]+rn,s2[2]+nn],Ss=(rn=0,nn=0)=>[s2[0],s2[1]+rn,s2[2]+nn],nze,aze,EGt=(rn)=>[rn.pelvis,rn.flipperL,rn.flipperR,rn.footL,rn.footR],ZU=0.12,da=(rn,nn,an)=>[rn,oze+nn,an],Sa=(rn,nn,an)=>Qm.fromEuler(rn,nn,an),Ua=(rn,nn,an=0)=>Qm.fromEuler(nn,rn*0.18+an,0),Pn=(rn,nn)=>({...nn,at:rn}),QU,_Gt=(rn)=>{for(let nn=1;nn<QU.length;nn++){let[an,sn]=QU[nn],[ln,cn]=QU[nn-1];if(rn<=an)return cn+(sn-cn)*(rn-ln)/Math.max(0.000001,an-ln)}return 0};var uze=e(()=>{Mo();bGt=new Set(["idle","walk","run","dance"]),eO={idle:5,walk:0.9,run:0.44,punch:0.52,jab:0.4,jump:0.95,slide:1.35,hit:0.75,dance:1.1,dead:1.7},yGt=[0.94,1.15,0.94],Yc=[0.246,0.18,0],s2=[0.12,0,0.06],tc=[0,0,0,1],Wi=os(0,0.14),Ui=ms(0,0.14),nze=Qm.y(-0.18),aze=Qm.y(0.18);QU=[[0,0],[0.26,0],[0.4,0.72],[0.52,0.95],[0.64,0.72],[0.78,0],[1,0]]});var $r={};n($r,{FOG:()=>cV,LAST_TILE:()=>rO,backgroundFor:()=>lV,coinSparkle:()=>hV,crashDust:()=>Bx,despawnTile:()=>kx,generateTrack:()=>nO,lightFor:()=>iV,prepareRunMeshes:()=>fV,spawnTile:()=>aO,warmAssets:()=>Cze});import{effects as vGt,lathe as Nx,merge as Vi,quat as Jm,recolor as vs,shapeGeometry as ii,tube as Lu}from"@nayan-ui/engine";function fV(){for(let rn of Cze())rn()}function*Cze(){yield()=>eV(0),yield()=>eV(1),yield()=>oV(!1),yield()=>oV(!0),yield()=>_ze(),yield()=>vze(),yield()=>oO(0),yield()=>oO(1),yield()=>oO(2),yield()=>rV(0),yield()=>rV(1),yield()=>nV(0),yield()=>nV(1),yield()=>aV(0),yield()=>aV(1),yield()=>xze(),yield()=>tO(0),yield()=>tO(1),yield()=>tO(2),yield()=>yze(),yield()=>Eze(),yield()=>Sze(),yield()=>tV(),yield()=>Rze(),yield()=>Aze(),yield()=>Mze()}function nO(rn){let nn=Ds(rn),an=[],sn=Math.floor((ec-OVe)/ep);for(let pn=Math.ceil(IVe/ep);pn<=sn;){let mn=wze(pn),fn=pn*ep/ec;if(nn()<0.4+fn*0.15){let hn=nn()<0.5?"gap":"beam";for(let bn=0;bn<3;bn++)an.push({kind:hn,lane:bn,z:mn,wide:!0})}else{let hn=[0,1,2].sort(()=>nn()-0.5),bn=nn()<0.15+fn*0.5?2:1;for(let yn=0;yn<bn;yn++)an.push({kind:"gap",lane:hn[yn],z:mn})}pn+=Math.max(4,5-Math.floor(fn*2))+Math.floor(nn()*(4-Math.floor(fn*2)))}let ln=(pn,mn,fn)=>an.some((hn)=>hn.lane===pn&&Math.abs(hn.z-mn)<(hn.kind==="gap"?ep/2:0.5)+fn),cn=[],un=Math.floor(nn()*3),dn=8+nn()*6;for(let pn=6;pn<ec-2;pn+=1.6){let mn=-pn;if(pn>=dn)un=(un+1+Math.floor(nn()*2))%3,dn=pn+6+nn()*8;if(ln(un,mn,0.9)){let fn=[0,1,2].filter((hn)=>!ln(hn,mn,1.6));if(!fn.length)continue;un=fn[Math.floor(nn()*fn.length)]}cn.push({lane:un,z:mn,gem:nn()<0.04})}return{seed:rn,obstacles:an,pickups:cn}}function aO(rn,nn,an,sn){let ln=sV(an),cn=-nn*Js,un=cn-Js,dn=(Sn)=>Sn<=cn&&Sn>un,pn=Ds(sn.seed*31+nn*17),mn=ln?[0.8,0.85,1,1]:[1,1,1,1],fn=[],hn=(Sn,_n,vn=1,Tn=0,Rn=mn,An={})=>{let Mn=rn.spawn({mesh:Sn,position:_n,scale:vn,rotation:Jm.y(Tn),color:Rn,pickable:!1,...An});return fn.push(Mn),Mn};hn(eV(Math.abs(nn)%2),[0,0,cn]);let bn=Math.round(Js/ep);for(let Sn=0;Sn<bn;Sn++){let _n=wze(nn*bn+Sn);for(let vn=0;vn<3;vn++){if(sn.obstacles.some((An)=>An.kind==="gap"&&An.lane===vn&&Math.abs(An.z-_n)<0.01)){hn(yze(),[C0[vn],0,_n],1,0);continue}let Rn=0.88+pn()*0.2;hn(tO(Math.floor(pn()*3)),[C0[vn],(pn()-0.5)*0.02,_n],1,(pn()-0.5)*0.015,[mn[0]*Rn,mn[1]*Rn,mn[2]*Rn,1])}}for(let Sn of[-1,1]){let _n=pn(),vn=cn-2-pn()*8;if(_n<0.45)hn(oV(pn()<0.35),[Sn*Il,-0.02,vn],0.85+pn()*0.15,pn()*6.3);else if(_n<0.65)hn(_ze(),[Sn*Il,-0.02,vn],0.72,Sn<0?0.9:-0.9);for(let Rn=0;Rn<2;Rn++){let An=cn-1-pn()*10;if(pn()<0.6&&Math.abs(An-vn)>1.6)hn(nV(Math.floor(pn()*2)),[Sn*(Il+(pn()-0.3)*0.35),-0.02,An],0.75+pn()*0.35,pn()*6.3)}let Tn=cn-1-pn()*10;if(pn()<0.75)hn(vze(),[Sn*2.85,0.35,Tn]),hn("flame",[Sn*2.85,2.05,Tn],0.55,0,[2.6,1.3,0.45,1],{bob:{amplitude:[0.02,0.06,0.02],speed:9+pn()*4,phase:pn()*6}}),hn("puff",[Sn*2.85,2.3,Tn],0.6,0,[1.4,0.8,0.4,0.35],{bob:{amplitude:[0.03,0.12,0.03],speed:3,phase:pn()*6}});for(let Rn=0;Rn<2;Rn++){let An=[Sn*(_1+RGt+pn()*7),dze-1,cn-pn()*Js];if(pn()<0.35)hn(rV(Math.floor(pn()*2)),An,0.9+pn()*0.3,pn()*6.3);else hn(oO(Math.floor(pn()*3)),An,0.85+pn()*0.35,pn()*6.3)}hn(aV(Math.floor(pn()*2)),[Sn*(10+pn()*6),dze,cn-6],1+pn()*0.4,pn()*6.3,mn)}if(nn>0&&nn%5===0)hn(xze(),[0,0,cn-6]);if(pn()<0.5)hn("puff",[(pn()-0.5)*16,-3,cn-pn()*12],6+pn()*4,0,ln?[0.4,0.45,0.6,0.25]:[1.1,1.15,1.1,0.35]);if(dn(-ec))hn(Eze(),[0,0,-ec]);if(dn(0))hn(Sze(),[0,0,-0.3]);if(nn===-Y3)hn(tV(),[0,0,cn+4]);if(nn===rO)hn(tV(),[0,0,un-4]);let yn=sn.obstacles.filter((Sn)=>dn(Sn.z)).map((Sn)=>{if(Sn.kind==="gap"||Sn.lane!==1)return{...Sn,e:null};return{...Sn,e:hn(Rze(),[0,0,Sn.z],1,0)}}),En=sn.pickups.filter((Sn)=>dn(Sn.z)).map((Sn)=>MGt(rn,fn,Sn.lane,Sn.gem?1:0.9,Sn.z,Sn.gem));return{index:nn,z:cn,entities:fn,obstacles:yn,pickups:En}}function MGt(rn,nn,an,sn,ln,cn){let un=rn.spawn({mesh:cn?Mze():Aze(),position:[C0[an],sn,ln],scale:cn?0.9:0.85,color:cn?[0.35,0.8,1.6,1]:[1.25,1.1,0.75,1],spin:[0,cn?1.8:3.2,0],bob:{amplitude:[0,0.1,0],speed:3,phase:ln},pickable:!1});return nn.push(un),{gem:cn,lane:an,y:sn,z:ln,e:un,taken:!1}}function kx(rn,nn){for(let an of nn.entities)rn.despawn(an)}function hV(rn,nn,an){rn.burst({position:nn,count:an?16:7,mesh:"flame",size:an?0.22:0.14,speed:an?3:2,lifetime:0.35,gravity:0,color:an?[0.5,1.2,2.4,1]:[2.4,1.9,0.7,1],endSize:0})}function Bx(rn,nn){rn.burst({position:nn,count:14,mesh:"sphere",size:0.1,speed:4,lifetime:0.6,gravity:-9,color:[Za(mze),Za(uV)],endSize:0.05}),vGt.dust(rn,{position:nn,count:6,size:0.6,speed:1.2,lifetime:0.9,color:[0.8,0.75,0.65,0.7],endSize:2.2})}var rO,sV=(rn)=>rn.mode==="dark",TGt,xGt,iV=(rn)=>sV(rn)?xGt:TGt,lV=(rn)=>sV(rn)?[0.16,0.2,0.32]:[0.78,0.88,0.92],cV=0.02,dze=-8,RGt=7.5,Za=(rn,nn=1)=>[rn[0],rn[1],rn[2],nn],oc=(rn,nn,an)=>{let sn=Math.min(1,Math.max(0,an));return[rn[0]+(nn[0]-rn[0])*sn,rn[1]+(nn[1]-rn[1])*sn,rn[2]+(nn[2]-rn[2])*sn]},mze,uV,dV,fze,Gx,pV,v1,hze,AGt,Il=3.78,bze=1.44,_1,pze,Oi=(rn,nn)=>{let an=pze.get(rn);if(!an)an=Bn("penguin-run/PenguinRunScene:"+rn,nn),pze.set(rn,an);return an},As=(rn,nn=0.5)=>({position:[an,sn,ln]})=>{let cn=Oa(an*3.1+rn,ln*3.1+sn*2.3),un=oc(uV,mze,0.35+cn*0.8);return un=oc(un,dV,Math.max(0,Oa(an*1.3+rn*2,ln*1.3+sn)-(1-nn))*2.2),Za(un)},eV=(rn)=>Oi(`pr-path:${rn}`,()=>{let nn=Ds(40+rn),an=ii("roundedBox"),sn=[{geometry:ii("cube"),position:[0,-0.31,-Js/2],scale:[5.3,0.04,Js],color:[0.03,0.025,0.02,1]}];for(let ln of[-1,1]){for(let cn=0;cn<4;cn++)sn.push({geometry:vs(an,As(cn+ln*5,0.6)),position:[ln*2.85,0.1,-1.5-cn*3],scale:[0.42,0.5,2.94],color:[1,1,1,1]});for(let cn=0;cn<6;cn++)sn.push({geometry:vs(an,As(20+cn+ln*7+rn*13,0.55)),position:[ln*Il,-0.12+(nn()-0.5)*0.04,-1-cn*2],scale:[bze-0.04,0.26,1.94],color:[1,1,1,1]});for(let cn=0;cn<4;cn++){if(nn()<0.25)continue;let un=0.35+nn()*0.2;sn.push({geometry:vs(an,As(30+cn+ln*3,0.7)),position:[ln*(_1-0.18),un/2,-1.5-cn*3],scale:[0.34,un,2.4+nn()*0.4],color:[1,1,1,1]})}for(let cn=0;cn<3;cn++){let un=-1-nn()*(Js-2),dn=2.5+nn()*3.5,pn=ln*(_1+0.05);sn.push({geometry:Lu([[pn-ln*0.3,0.05,un],[pn+ln*0.08,-0.3,un+0.1],[pn+ln*0.12,-dn*0.5,un-0.1],[pn+ln*0.05,-dn,un+0.15]],{radius:(mn)=>0.06-mn*0.035,sides:4,smoothness:3,color:({v:mn})=>Za(oc(Gx,pV,mn*0.6))})})}}return sn.push({geometry:vs(an,As(3,0.3)),position:[0,-0.48,-Js/2],scale:[_1*2+0.3,0.36,Js+0.02],color:[0.85,0.82,0.78,1]}),sn.push({geometry:vs(ii("cube"),({position:[ln,cn,un]})=>Za(oc(oc(uV,[0.3,0.3,0.27],-cn*0.08),dV,Math.max(0,Oa(ln*0.8,un*0.8+cn)-0.55)*1.6))),position:[0,-4.6,-Js/2],scale:[_1*2-0.4,8,Js],color:[1,1,1,1]}),wn(Vi(sn),{center:!1,shine:0.15})}),tO=(rn)=>Oi(`pr-slab:${rn}`,()=>wn(Vi([{geometry:vs(ii("roundedBox"),As(90+rn*3,0.35)),position:[0,-0.15,0],scale:[1.66,0.3,ep-0.08],color:[1,1,1,1]}]),{center:!1,shine:0.15})),yze=()=>Oi("pr-broken",()=>{let rn=Ds(97),nn=[];for(let an of[-1,1])for(let sn=0;sn<5;sn++)nn.push({geometry:vs(ii("roundedBox"),As(100+sn,0.3)),position:[-0.66+sn*0.33+(rn()-0.5)*0.1,-0.12-rn()*0.1,an*(ep/2-0.08-rn()*0.12)],rotation:Jm.y(rn()*6.3),scale:[0.22+rn()*0.12,0.2,0.18+rn()*0.12],color:[1,1,1,1]});return wn(Vi(nn),{center:!1,shine:0.1})}),Eze=()=>Oi("pr-finish",()=>{let rn=ii("roundedBox"),nn=vs(ii("cube"),({position:[sn,,ln]})=>Za((Math.floor((sn+0.5)*12)+Math.floor((ln+0.5)*3))%2?[0.96,0.96,0.94]:[0.08,0.08,0.1])),an=(sn,ln)=>({geometry:Lu([[sn,6,0.4],[sn+0.06,5.45,0.41]],{radius:(cn)=>0.14*(1-cn),shape:(cn)=>0.2+0.8*Math.abs(Math.cos(cn*Math.PI*2)),sides:6,color:Za(ln)})});return wn(Vi([{geometry:nn,position:[0,0.015,0],scale:[5.3,0.03,1.2],color:[1,1,1,1]},{geometry:rn,position:[-Il,0.2,0],scale:[1.1,0.4,1.1],color:Za([0.8,0.6,0.16])},{geometry:rn,position:[Il,0.2,0],scale:[1.1,0.4,1.1],color:Za([0.8,0.6,0.16])},{geometry:rn,position:[-Il,3.1,0],scale:[0.6,6.2,0.6],color:Za(v1)},{geometry:rn,position:[Il,3.1,0],scale:[0.6,6.2,0.6],color:Za(v1)},{geometry:rn,position:[0,6.25,0],scale:[Il*2+0.8,0.5,0.7],color:Za(v1)},{geometry:rn,position:[0,5.35,0.1],scale:[5.6,1.1,0.12],color:Za([0.85,0.12,0.14])},{geometry:rn,position:[0,5.35,0.17],scale:[4.6,0.12,0.04],color:Za([1,0.9,0.5])},...[-2.6,-1.3,0,1.3,2.6].map((sn,ln)=>an(sn,[[0.2,0.5,0.95],[1,0.8,0.15],[0.2,0.75,0.3]][ln%3]))]),{center:!1,shine:0.5})}),Sze=()=>Oi("pr-start",()=>wn(Vi([{geometry:ii("cube"),position:[0,0.015,0],scale:[5.3,0.03,0.5],color:Za([0.96,0.96,0.92])}]),{center:!1,shine:0.3})),tV=()=>Oi("pr-temple",()=>{let rn=ii("roundedBox"),nn=(sn,ln=0.5)=>vs(rn,As(sn,ln)),an=[0,1,2,3].map((sn)=>({geometry:nn(150+sn,0.6-sn*0.1),position:[0,-2+sn*2.6,0],scale:[22-sn*4.5,2.6,10-sn*1.8],color:[1,1,1,1]}));return wn(Vi([{geometry:nn(160,0.3),position:[0,-8,0],scale:[24,12,12],color:[0.85,0.82,0.78,1]},...an,{geometry:nn(161,0.3),position:[0,10.2,0],scale:[6,3.2,4.4],color:[1,1,1,1]},{geometry:rn,position:[0,9.6,2.22],scale:[2,2.4,0.1],color:[0.05,0.04,0.03,1]},{geometry:rn,position:[0,12.1,0],scale:[6.6,0.5,5],color:Za(v1)}]),{center:!1,shine:0.15})}),oV=(rn)=>Oi(`pr-column:${rn}`,()=>{let nn=rn?2.2:4.4,an=ii("roundedBox"),sn=Nx([[0.001,nn],[0.36,nn-(rn?0.25:0)],[0.38,nn-0.3],[0.4,0.8],[0.44,0.55]],{segments:24,displace:(cn,un)=>Math.cos(cn*Math.PI*2*12)*0.018+(rn&&un<0.15?(Oa(cn*9,1)-0.5)*0.4:0),color:As(rn?7:2,0.45)}),ln=[{geometry:vs(an,As(1,0.7)),position:[0,0.28,0],scale:[1.2,0.56,1.2],color:[1,1,1,1]},{geometry:sn}];if(!rn)ln.push({geometry:vs(an,As(4,0.3)),position:[0,nn+0.12,0],scale:[1.1,0.24,1.1],color:[1,1,1,1]}),ln.push({geometry:vs(ii("cylinder"),As(5,0.3)),position:[0,nn-0.1,0],scale:[0.95,0.22,0.95],color:[1,1,1,1]});else ln.push({geometry:vs(ii("cylinder"),As(8,0.6)),position:[0.55,0.32,0.5],rotation:Jm.z(Math.PI/2),scale:[0.72,0.8,0.72],color:[1,1,1,1]});return wn(Vi(ln),{center:!1,shine:0.1})}),_ze=()=>Oi("pr-idol",()=>{let rn=ii("roundedBox"),nn=(sn)=>vs(rn,As(sn,0.55)),an=[0.12,0.11,0.1,1];return wn(Vi([{geometry:nn(1),position:[0,0.35,0],scale:[1.5,0.7,1.3],color:[1,1,1,1]},{geometry:nn(2),position:[0,1.5,0],scale:[1.2,1.6,1.05],color:[1,1,1,1]},{geometry:nn(3),position:[0,2.05,0.5],scale:[1.15,0.22,0.2],color:[1,1,1,1]},{geometry:rn,position:[-0.28,1.82,0.52],scale:[0.3,0.18,0.08],color:an},{geometry:rn,position:[0.28,1.82,0.52],scale:[0.3,0.18,0.08],color:an},{geometry:nn(4),position:[0,1.5,0.58],scale:[0.26,0.5,0.2],color:[1,1,1,1]},{geometry:rn,position:[0,1.05,0.53],scale:[0.62,0.12,0.08],color:an},{geometry:nn(5),position:[-0.64,1.55,0],scale:[0.14,0.6,0.35],color:[1,1,1,1]},{geometry:nn(6),position:[0.64,1.55,0],scale:[0.14,0.6,0.35],color:[1,1,1,1]}]),{center:!1,shine:0.1})}),vze=()=>Oi("pr-torch",()=>wn(Vi([{geometry:Lu([[0,0,0],[0.03,0.6,0.02],[-0.02,1.2,0],[0,1.55,0]],{radius:(rn)=>0.07-rn*0.025,sides:8,color:Za([0.35,0.24,0.12])})},{geometry:Nx([[0.001,1.5],[0.18,1.55],[0.26,1.75],[0.22,1.76],[0.001,1.65]],{segments:14,color:Za([0.55,0.38,0.16])})},{geometry:ii("cylinder"),position:[0,0.05,0],scale:[0.35,0.1,0.35],color:Za([0.3,0.22,0.12])}]),{center:!1,shine:0.6})),mV=(rn,nn=hze,an=pV)=>{let sn=Array.from({length:7},(ln,cn)=>{let un=Math.PI/2-cn/6*Math.PI;return[Math.max(0.001,Math.cos(un)*0.5),Math.sin(un)*0.5]});return Nx(sn,{segments:10,displace:(ln,cn)=>0.08*Math.sin(ln*Math.PI*2*3+rn)*Math.sin(cn*Math.PI*3+rn*0.7)+0.04*Math.sin(ln*Math.PI*2*7+rn*1.9)*Math.sin(cn*Math.PI*6),color:({position:[ln,cn,un]})=>Za(oc(nn,an,0.35+cn*1.1+(Oa(ln*5+rn,un*5-rn)-0.5)*0.5))})},Tze=()=>Nx([[0.001,0.5],[0.35,0.35],[0.5,0],[0.35,-0.35],[0.001,-0.5]],{segments:6}),JU=(rn)=>({u:nn,v:an})=>Za(oc(oc([0.3,0.21,0.13],fze,0.4+Oa(nn*14+rn,an*3)*0.8),dV,Math.max(0,0.35-an)*1.6*Oa(nn*6,an*9+rn))),oO=(rn)=>Oi(`pr-tree:${rn}`,()=>{let nn=Ds(70+rn),an=(nn()-0.5)*0.8,sn=13+nn()*2,ln=(pn)=>[an*pn*pn,pn*sn,Math.sin(pn*3+rn)*0.3],cn=[{geometry:Lu(Array.from({length:6},(pn,mn)=>ln(mn/5)),{radius:(pn)=>0.62*(1-pn*0.6)+Math.max(0,0.12-pn)*4,sides:10,smoothness:4,color:JU(rn)})}];for(let pn=0;pn<5;pn++){let mn=pn/5*Math.PI*2+nn()*0.5,fn=1.8+nn()*0.8;cn.push({geometry:Lu([[0,2.4,0],[Math.cos(mn)*0.8,0.9,Math.sin(mn)*0.8],[Math.cos(mn)*fn,0,Math.sin(mn)*fn]],{radius:(hn)=>0.4-hn*0.3,sides:6,smoothness:3,color:JU(rn+pn)})})}let un=[ln(1)],dn=3+Math.floor(nn()*2);for(let pn=0;pn<dn;pn++){let mn=0.55+pn/dn*0.35+nn()*0.05,fn=ln(mn),hn=pn/dn*Math.PI*2+nn(),bn=1.6+nn()*1,yn=[fn[0]+Math.cos(hn)*bn,fn[1]+1.4+nn()*1.6,fn[2]+Math.sin(hn)*bn];cn.push({geometry:Lu([fn,[(fn[0]+yn[0])/2,fn[1]+0.9,(fn[2]+yn[2])/2],yn],{radius:(En)=>0.28*(1-mn*0.5)*(1-En*0.6),sides:6,smoothness:3,color:JU(rn+10+pn)})}),un.push(yn)}return un.forEach((pn,mn)=>{let fn=mn===0?4:3;for(let hn=0;hn<fn;hn++){let bn=nn()*Math.PI*2,yn=hn===0?0:0.6+nn()*0.5,En=(mn===0?3.6:2.8)+nn()*1.2;cn.push({geometry:mV(rn*10+mn*3+hn),position:[pn[0]+Math.cos(bn)*yn,pn[1]+0.4+nn()*0.6,pn[2]+Math.sin(bn)*yn],rotation:Jm.y(nn()*6.3),scale:[En,En*(0.5+nn()*0.15),En],color:[1,1,1,1]})}if(mn>0&&nn()<0.8){let hn=4+nn()*4;cn.push({geometry:Lu([[pn[0],pn[1],pn[2]],[pn[0]+0.15,pn[1]-hn*0.5,pn[2]-0.1],[pn[0]-0.1,pn[1]-hn,pn[2]+0.12]],{radius:0.045,sides:4,smoothness:3,color:Za(oc(fze,Gx,0.55))})})}}),wn(Vi(cn),{center:!1,shine:0.05})}),rV=(rn)=>Oi(`pr-palm:${rn}`,()=>{let nn=Ds(170+rn),an=(nn()<0.5?-1:1)*(0.6+nn()*0.6),sn=10+nn()*2,ln=(pn)=>[an*pn*pn,pn*sn,0],cn=ln(1),un=[{geometry:Lu(Array.from({length:6},(pn,mn)=>ln(mn/5)),{radius:(pn)=>0.32-pn*0.1+Math.max(0,0.08-pn)*2,sides:8,smoothness:5,color:({v:pn})=>Za(oc([0.42,0.33,0.22],[0.6,0.5,0.34],0.5+Math.sin(pn*90)*0.5))})}],dn=9;for(let pn=0;pn<9;pn++){let mn=pn/9*Math.PI*2+nn()*0.3,fn=3.6+nn()*1.2,hn=[Math.cos(mn),0,Math.sin(mn)],bn=(yn,En)=>[cn[0]+hn[0]*fn*yn,cn[1]+En,cn[2]+hn[2]*fn*yn];un.push({geometry:Lu([bn(0,0),bn(0.35,0.7),bn(0.7,0.2),bn(1,-1.3-nn()*0.6)],{radius:(yn)=>0.42*Math.max(0.05,Math.sin(Math.PI*Math.min(1,yn*1.15)))**0.6,shape:(yn)=>0.08+0.92*Math.abs(Math.cos(yn*Math.PI*2))**3,sides:6,smoothness:5,color:({v:yn})=>Za(oc(AGt,[0.62,0.74,0.3],yn*0.8))})})}for(let pn=0;pn<3;pn++){let mn=pn/3*Math.PI*2;un.push({geometry:Tze(),position:[cn[0]+Math.cos(mn)*0.28,cn[1]-0.25,cn[2]+Math.sin(mn)*0.28],scale:0.32,color:Za([0.4,0.27,0.12])})}return wn(Vi(un),{center:!1,shine:0.1})}),nV=(rn)=>Oi(`pr-bush:${rn}`,()=>{let nn=Ds(210+rn),an=[];for(let ln=0;ln<5;ln++){let cn=ln/5*Math.PI*2+nn(),un=ln===0?0:0.35+nn()*0.2,dn=0.7+nn()*0.35;an.push({geometry:mV(300+rn*7+ln),position:[Math.cos(cn)*un,dn*0.32,Math.sin(cn)*un],scale:[dn,dn*0.75,dn],color:[1,1,1,1]})}let sn=rn?[1,0.45,0.6]:[1,0.82,0.25];for(let ln=0;ln<7;ln++){let cn=nn()*Math.PI*2,un=0.2+nn()*0.45;an.push({geometry:Tze(),position:[Math.cos(cn)*un,0.45+nn()*0.35,Math.sin(cn)*un],scale:0.11,color:Za(sn)})}return wn(Vi(an),{center:!1,shine:0.1})}),aV=(rn)=>Oi(`pr-canopy:${rn}`,()=>{let nn=Ds(250+rn),an=[];for(let sn=0;sn<9;sn++){let ln=4+nn()*3.5,cn=nn();an.push({geometry:mV(400+rn*11+sn,oc(hze,[0.08,0.2,0.08],cn),oc(Gx,pV,cn)),position:[(nn()-0.5)*12,nn()*1.5,(nn()-0.5)*12],scale:[ln,ln*0.55,ln],color:[1,1,1,1]})}return wn(Vi(an),{center:!1,shine:0.03})}),xze=()=>Oi("pr-arch",()=>{let rn=ii("roundedBox"),nn=(an,sn)=>({geometry:Lu([[an,5.3,0.45],[an+0.05,5.3-sn*0.5,0.5],[an-0.04,5.3-sn,0.48]],{radius:0.04,sides:5,color:Za(Gx)})});return wn(Vi([{geometry:vs(rn,As(15,0.8)),position:[-Il,0.25,0],scale:[1.35,0.5,1.35],color:[1,1,1,1]},{geometry:vs(rn,As(16,0.8)),position:[Il,0.25,0],scale:[1.35,0.5,1.35],color:[1,1,1,1]},{geometry:vs(rn,As(11,0.6)),position:[-Il,2.8,0],scale:[1.05,5,1.05],color:[1,1,1,1]},{geometry:vs(rn,As(12,0.6)),position:[Il,2.8,0],scale:[1.05,5,1.05],color:[1,1,1,1]},{geometry:vs(rn,As(13,0.4)),position:[0,5.6,0],scale:[_1*2-0.2,0.9,1.3],color:[1,1,1,1]},{geometry:vs(rn,As(14,0.2)),position:[0,6.25,0],scale:[_1*2+0.2,0.4,1.5],color:[1,1,1,1]},{geometry:rn,position:[0,5.6,0.66],scale:[1.2,0.5,0.06],color:Za(v1)},nn(-2.2,1.6),nn(-1.1,0.9),nn(0.9,1.3),nn(2.4,2)]),{center:!1,shine:0.15})}),Rze=()=>Oi("pr-wide-gate",()=>{let rn=ii("roundedBox"),nn=ii("cone"),an=Array.from({length:17},(cn,un)=>({geometry:vs(nn,As(120+un,0.2)),position:[-2.4+un*0.3,0.95,0.04],rotation:Jm.x(Math.PI),scale:[0.13,0.2+un%2*0.06,0.13],color:[1,1,1,1]})),sn=[-2.1,-1.2,-0.4,0.7,1.5,2.3].map((cn,un)=>({geometry:Lu([[cn,1.08,0.32],[cn+0.03,0.95-un%3*0.04,0.35],[cn-0.02,0.84-un%2*0.1,0.33]],{radius:0.022,sides:5,color:Za(Gx)})})),ln=[-1.8,-0.9,0,0.9,1.8].map((cn)=>({geometry:ii("cylinder"),position:[cn,1.32,0.31],rotation:Jm.x(Math.PI/2),scale:[0.22,0.04,0.22],color:Za(v1)}));return wn(Vi([...[-2.85,2.85].flatMap((cn,un)=>[{geometry:vs(rn,As(130+un,0.75)),position:[cn,0.25,0],scale:[0.7,0.5,0.8],color:[1,1,1,1]},{geometry:vs(rn,As(132+un,0.5)),position:[cn,1.25,0],scale:[0.5,2.5,0.6],color:[1,1,1,1]}]),{geometry:vs(rn,As(134,0.35)),position:[0,1.38,0],scale:[6.3,0.6,0.62],color:[1,1,1,1]},{geometry:vs(rn,As(135,0.25)),position:[0,1.06,0],scale:[5.4,0.14,0.5],color:[0.9,0.86,0.8,1]},{geometry:vs(rn,As(136,0.2)),position:[0,1.76,0],scale:[6.6,0.18,0.72],color:[1,1,1,1]},...ln,...an,...sn]),{center:!1,shine:0.15})}),Aze=()=>Oi("pr-coin",()=>wn(Vi([{geometry:ii("cylinder"),rotation:Jm.x(Math.PI/2),scale:[0.5,0.08,0.5],color:Za(v1)},{geometry:ii("cylinder"),rotation:Jm.x(Math.PI/2),scale:[0.34,0.1,0.34],color:Za([1,0.86,0.36])}]),{shine:1})),Mze=()=>Oi("pr-gem",()=>wn(Nx([[0.001,0.3],[0.3,0.14],[0.34,0.06],[0.001,-0.38]],{segments:8,color:[1,1,1,1]}),{shine:1})),wze=(rn)=>-(rn+0.5)*ep;var tt=e(()=>{d();na();j3();rO=Math.ceil(ec/Js)+GVe-1,TGt={direction:[0.4,0.9,0.5],ambient:0.72,color:[1.3,1.24,1.12],shadows:!0,shadowExtent:16},xGt={direction:[-0.3,0.85,0.5],ambient:0.66,color:[0.95,1,1.25],shadows:!0,shadowExtent:16},mze=[0.82,0.77,0.66],uV=[0.56,0.52,0.45],dV=[0.42,0.56,0.26],fze=[0.48,0.34,0.2],Gx=[0.26,0.52,0.18],pV=[0.5,0.72,0.28],v1=[1,0.76,0.2],hze=[0.12,0.3,0.1],AGt=[0.34,0.6,0.2],_1=Il+bze/2,pze=new Map});import{quat as sO,World as CGt}from"@nayan-ui/engine";function Oze(rn){sze(),fV();let nn=new CGt(1800),an={world:nn,theme:rn,penguin:ize(nn,[0,0,0],AVe),camera:{eye:[0,3.1,5.4],target:[0,1.1,-6],fov:0.9},phase:"ready",won:!1,plan:nO(Ize()),tiles:[],nextTile:0,lane:1,x:0,vx:0,camX:0,z:0,speed:Ox,distance:0,lastDistance:0,coins:0,gems:0,score:0,lives:E1,invulnerable:0,action:null,queued:null,queuedT:0,actionT:0,actionDur:0,orbit:0,onPhase:Kc,onScore:Kc,onCoins:Kc,onLives:Kc,onHurt:Kc,onDistance:Kc,onCoin:Kc,onJump:Kc,onSlide:Kc,onLane:Kc,onCrash:Kc,onWin:Kc};return lO(an),an}function Pze(rn){while(rn.nextTile<=rO&&rn.nextTile*Js<-rn.z+DVe*Js)rn.tiles.push(aO(rn.world,rn.nextTile,rn.theme,rn.plan)),rn.nextTile++;while(rn.tiles.length&&rn.tiles[0].z-Js>rn.z+NVe*Js)kx(rn.world,rn.tiles.shift())}function gze(rn){let nn=Math.max(-Ix,Math.min(Ix,rn.vx*CVe)),an=Math.max(-Ix,Math.min(Ix,rn.vx*wVe));rn.world.set(rn.penguin.root,{position:[rn.x,0,rn.z],rotation:sO.multiply(sO.z(-nn,LGt),sO.y(Math.PI-an,IGt),OGt)}),rn.penguin.x=rn.x,rn.penguin.yaw=Math.PI-an,yV(rn)}function yV(rn){rn.camera.eye=[rn.camX,3.1,rn.z+5.4],rn.camera.target=[rn.camX,1.1,rn.z-6]}function PGt(rn,nn){rn.orbit+=nn*0.35;let an=rn.orbit+0.9;rn.camera.eye=[rn.x+Math.sin(an)*4.2,1.9,rn.z+Math.cos(an)*4.2],rn.camera.target=[rn.x,0.8,rn.z]}function lO(rn){rn.world.cancelTimers();for(let nn of rn.tiles)kx(rn.world,nn);rn.tiles=[],rn.nextTile=-Y3,rn.plan=nO(Ize()),rn.won=!1,rn.lane=1,rn.x=C0[1],rn.vx=0,rn.camX=0,rn.z=0,rn.speed=Ox,rn.distance=rn.coins=rn.gems=rn.score=0,rn.lives=E1,rn.invulnerable=0,rn.action=null,rn.queued=null,rn.orbit=0,rn.world.stopAnimation(rn.penguin.root),cze(rn.world,rn.penguin,0,Math.PI),Pze(rn),gze(rn),tp(rn.world,rn.penguin,"idle"),Fx(rn,"ready"),rn.onScore(0),rn.onCoins(0),rn.onLives(E1),rn.lastDistance=0,rn.onDistance(0)}function Fx(rn,nn){rn.phase=nn,rn.onPhase(nn)}function Dze(rn){if(rn.phase==="over")lO(rn);tp(rn.world,rn.penguin,"run"),yV(rn),Fx(rn,"playing")}function bV(rn,nn){if(rn.phase!=="playing")return;if(nn==="left"||nn==="right"){let dn=Math.max(0,Math.min(2,rn.lane+(nn==="left"?-1:1)));if(dn===rn.lane)return;rn.lane=dn,rn.onLane();return}let an=nn==="up"?"jump":"slide";if(rn.action===an){rn.queued=an,rn.queuedT=DGt;return}rn.queued=null,rn.action=an,rn.actionT=0;let[sn,ln,[cn,un]]=an==="jump"?[kVe,K3,FVe]:[BVe,X3,HVe];if(rn.actionDur=Math.min(un,Math.max(cn,sn/((ln[1]-ln[0])*rn.speed))),tp(rn.world,rn.penguin,an,eO[an]/rn.actionDur),an==="jump")rn.onJump();else rn.onSlide()}function Nze(rn,nn,an,sn){if(nn==="start"){T1.x=an,T1.y=sn,T1.fired=!1;return}if(nn==="end"||T1.fired)return;let ln=an-T1.x,cn=sn-T1.y;if(Math.max(Math.abs(ln),Math.abs(cn))<gGt)return;if(T1.fired=!0,Math.abs(ln)>Math.abs(cn))bV(rn,ln<0?"left":"right");else bV(rn,cn<0?"up":"down")}function kGt(rn){rn.lives--,rn.onLives(rn.lives),rn.invulnerable=UVe,rn.action="hit",rn.actionT=0,rn.actionDur=eO.hit/1.3,tp(rn.world,rn.penguin,"hit",1.3),Bx(rn.world,[rn.x,0.5,rn.z-0.4]),rn.camera.shake=0.22,rn.onHurt()}function BGt(rn){rn.lives=0,rn.onLives(0),rn.action=null,tp(rn.world,rn.penguin,"dead"),Bx(rn.world,[rn.x,0.6,rn.z-0.4]),rn.camera.shake=0.35,rn.onCrash(),Fx(rn,"over")}function FGt(rn){rn.lives=0,rn.onLives(0),rn.action=null,tp(rn.world,rn.penguin,"dead",1.4),rn.world.animate(rn.penguin.root,{position:[rn.x,-7,rn.z-1.2]},{duration:1.3,easing:"easeIn"}),Bx(rn.world,[rn.x,0,rn.z-0.6]),rn.camera.shake=0.15,rn.onCrash(),Fx(rn,"over")}function HGt(rn){rn.won=!0,rn.action=null,rn.world.animate(rn.penguin.root,{rotation:sO.y(0)},{duration:0.5,delay:0.5,easing:"easeInOut"}),tp(rn.world,rn.penguin,"dance"),rn.onWin(),Fx(rn,"over")}function Gze(rn,nn){if(rn.world.isDisposed)return;if(rn.phase==="playing"){rn.speed=Ox;let an=rn.speed*nn;rn.z-=an,rn.distance+=an;let sn=MVe,ln=Math.max(1,Math.ceil(nn/0.008)),cn=nn/ln;for(let pn=0;pn<ln;pn++)rn.vx+=(sn*sn*(C0[rn.lane]-rn.x)-2*sn*rn.vx)*cn,rn.x+=rn.vx*cn;if(rn.camX+=(rn.x*0.4-rn.camX)*(1-Math.exp(-nn*LVe)),rn.invulnerable=Math.max(0,rn.invulnerable-nn),rn.queuedT=Math.max(0,rn.queuedT-nn),rn.action){if(rn.actionT+=nn,rn.actionT>=rn.actionDur+0.06){rn.action=null;let pn=rn.queuedT>0?rn.queued:null;if(rn.queued=null,pn)bV(rn,pn==="jump"?"up":"down");else tp(rn.world,rn.penguin,"run",wGt(rn))}}Pze(rn),gze(rn);for(let pn of rn.tiles){if(pn.z<rn.z-Js||pn.z-Js>rn.z+Js)continue;for(let mn of pn.obstacles){if(rn.invulnerable>0||Math.abs(C0[mn.lane]-rn.x)>jU)continue;if(!(mn.kind==="gap"?Math.abs(mn.z-rn.z)<WVe&&!NGt(rn):Math.abs(mn.z-rn.z)<VVe&&!(mn.kind==="beam"&&GGt(rn))))continue;if(rn.lives>1){kGt(rn);break}return Lze(rn,nn,mn.kind==="gap"?FGt:BGt)}for(let mn of pn.pickups){if(mn.taken||Math.abs(mn.z-rn.z)>zVe||Math.abs(C0[mn.lane]-rn.x)>jU)continue;if(mn.taken=!0,rn.world.despawn(mn.e),hV(rn.world,[C0[mn.lane],mn.y,mn.z],mn.gem),mn.gem)rn.gems++;else rn.coins++;rn.onCoins(rn.coins+rn.gems*10),rn.onCoin(mn.gem)}}let un=Math.min(ec,Math.floor(rn.distance)),dn=un*qVe+rn.coins*YVe+rn.gems*KVe;if(dn!==rn.score)rn.score=dn,rn.onScore(dn);if(un!==rn.lastDistance)rn.lastDistance=un,rn.onDistance(un);if(rn.distance>=ec)return Lze(rn,nn,HGt)}else if(rn.phase==="over"&&rn.won&&rn.speed>0)rn.speed=Math.max(0,rn.speed-22*nn),rn.z-=rn.speed*nn,rn.world.set(rn.penguin.root,{position:[rn.x,0,rn.z]}),yV(rn);else if(rn.phase==="ready")PGt(rn,nn);rn.world.update(nn)}function Lze(rn,nn,an){an(rn),rn.world.update(nn)}function kze(rn,nn,an){rn.camera.fov=nn/Math.max(1,an)<0.7?1:0.85}function Bze(rn,nn){if(nn===rn.theme||rn.world.isDisposed)return;rn.theme=nn;let an=rn.tiles.map((sn)=>sn.index);for(let sn of rn.tiles)kx(rn.world,sn);rn.tiles=an.map((sn)=>aO(rn.world,sn,nn,rn.plan))}function Fze(rn){rn.world.dispose()}var Kc=()=>{},Ize=()=>Math.floor(Math.random()*1e9),wGt=(rn)=>Math.min(1.7,Math.max(1,rn.speed/Ox)),LGt,IGt,OGt,gGt=18,DGt=0.35,T1,iO=(rn)=>Math.max(0,rn.actionT-0.06)/rn.actionDur,NGt=(rn)=>rn.action==="jump"&&iO(rn)>=K3[0]&&iO(rn)<=K3[1],GGt=(rn)=>rn.action==="slide"&&iO(rn)>=X3[0]&&iO(rn)<=X3[1];var Hze=e(()=>{uze();j3();tt();LGt=[0,0,0,1],IGt=[0,0,0,1],OGt=[0,0,0,1];T1={x:0,y:0,fired:!1}});var Zr={};n(Zr,{PenguinRun:()=>Co});import{useMemo as Wze}from"react";import{jsx as WGt}from"react/jsx-runtime";var w0,Co;var Ye=e(()=>{Ta();l();a();_a();o();xa();va();j3();Hze();tt();w0=t.PENGUIN_RUN,Co=Vn("penguin-run",(rn)=>{let[nn,an]=gn(0),[sn,ln]=gn(0),[cn,un]=gn(E1),[dn,pn]=gn(0),{theme:mn,status:fn,screen:hn,gameOver:bn}=zn(rn,{gameId:"penguin-run",create:Oze,start:Dze,reset:lO,dispose:Fze,tick:Gze,setTheme:Bze,resize:(Sn,_n,vn)=>kze(Sn,_n,vn),drag:(Sn,{phase:_n,x:vn,y:Tn})=>Nze(Sn,_n,vn,Tn),sounds:w0,resultsDelay:(Sn)=>Sn==="win"?gVe:PVe,onStart:(Sn)=>Sn(w0.START),wire:(Sn,_n)=>{Sn.onScore=an,Sn.onCoins=ln,Sn.onLives=un,Sn.onDistance=pn,Sn.onCoin=(vn)=>_n(vn?w0.GEM:w0.COIN,vn?"light":null),Sn.onJump=()=>_n(w0.JUMP),Sn.onSlide=()=>_n(w0.SLIDE),Sn.onLane=()=>_n(w0.LANE_SWITCH,"light"),Sn.onHurt=()=>_n(w0.CRASH,"heavy"),Sn.onCrash=()=>{_n(w0.CRASH,"heavy"),Sn.world.after(0.5,()=>_n(w0.GAME_OVER))},Sn.onWin=()=>_n(t.WELL_DONE,"success")}}),yn=Wze(()=>iV(mn),[mn]),En=Wze(()=>lV(mn),[mn]);return WGt(Un,{...hn,light:yn,background:En,fog:cV,columns:[Qn(nn),ys(cn,E1),ma("TRACK",`${ec-dn} m`)],subtext:"Swipe, jump and slide!",gameOver:bn({title:fn==="win"?"YOU MADE IT!":"OUCH!",message:fn==="win"?`Made it to the finish with ${sn} coins!`:`Out of lives after ${dn} of ${ec} m. Try a new track!`,scoreLabel:"Score",score:nn,buttonText:fn==="win"?"Run Again!":"Try Again!"})})})});
15
+ export{T,r,n,e,ot,L,Ke,wo,I,k,p,h,t,rt,l,S,g,c,C,D,i,E,a,nt,tn,Lo,on,m,Qr,Io,_,B,F,at,Xe,st,Oo,u,s,Jr,v,Po,it,lt,o,je,ct,b,O,y,P,go,H,ut,Do,W,dt,w,No,pt,$e,x,Ze,mt,U,V,z,Qe,en,Go,N,ft,R,ko,f,ht,q,bt,Bo,Y,yt,Fo,K,Ho,d,Et,Wo,X,St,_t,A,Tt,Uo,G,Vo,Je,zo,vt,xt,qo,j,Rt,Yo,Z,Ko,et,Xo,At,Mt,jo,Q,Ct,$o,J,Zo,wt,Qo,Lt,It,Jo,ee,er,Ot,tr,Pt,gt,or,te,Dt,rr,oe,Nt,nr,re,Gt,ar,ne,kt,sr,ae,Bt,ir,se,Ft,lr,ie,Ht,cr,le,Wt,ur,ce,Ut,dr,ue,Vt,pr,de,zt,mr,pe,qt,M,fr,Yt,Kt,hr,me,br,fe,yr,Xt,jt,Er,he,$t,Sr,be,Zt,_r,ye,Qt,Tr,Ee,Jt,vr,Se,eo,xr,_e,to,Rr,Te,oo,Ar,ve,ro,Mr,xe,no,Cr,Re,ao,wr,Ae,so,Lr,Me,io,Ir,Ce,lo,Or,we,co,Pr,Le,uo,gr,Ie,po,Dr,Oe,mo,Nr,Pe,fo,Gr,ge,ho,kr,De,Br,Ne,bo,Fr,Ge,yo,Hr,ke,Eo,Wr,Be,So,Ur,Fe,_o,Vr,He,To,zr,We,vo,qr,Ue,xo,Yr,Ve,Ro,Kr,ze,Ao,Xr,qe,jr,Mo,$r,tt,Co,Zr,Ye};