@sbugallo/pokecode 0.0.0-stage → 0.2.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 (463) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +331 -2
  3. package/dist/adapters/opencode/rpc/contract.d.ts +813 -0
  4. package/dist/adapters/opencode/rpc/contract.d.ts.map +1 -0
  5. package/dist/adapters/opencode/rpc/contract.js +254 -0
  6. package/dist/adapters/opencode/rpc/contract.js.map +1 -0
  7. package/dist/adapters/opencode/server/handlers.d.ts +20 -0
  8. package/dist/adapters/opencode/server/handlers.d.ts.map +1 -0
  9. package/dist/adapters/opencode/server/handlers.js +41 -0
  10. package/dist/adapters/opencode/server/handlers.js.map +1 -0
  11. package/dist/adapters/opencode/server/plugin.d.ts +19 -0
  12. package/dist/adapters/opencode/server/plugin.d.ts.map +1 -0
  13. package/dist/adapters/opencode/server/plugin.js +101 -0
  14. package/dist/adapters/opencode/server/plugin.js.map +1 -0
  15. package/dist/adapters/opencode/server/usage-reconciliation.d.ts +24 -0
  16. package/dist/adapters/opencode/server/usage-reconciliation.d.ts.map +1 -0
  17. package/dist/adapters/opencode/server/usage-reconciliation.js +60 -0
  18. package/dist/adapters/opencode/server/usage-reconciliation.js.map +1 -0
  19. package/dist/adapters/opencode/tui/choices/cards.d.ts +32 -0
  20. package/dist/adapters/opencode/tui/choices/cards.d.ts.map +1 -0
  21. package/dist/adapters/opencode/tui/choices/cards.jsx +114 -0
  22. package/dist/adapters/opencode/tui/choices/cards.jsx.map +1 -0
  23. package/dist/adapters/opencode/tui/choices/encounter.d.ts +13 -0
  24. package/dist/adapters/opencode/tui/choices/encounter.d.ts.map +1 -0
  25. package/dist/adapters/opencode/tui/choices/encounter.jsx +30 -0
  26. package/dist/adapters/opencode/tui/choices/encounter.jsx.map +1 -0
  27. package/dist/adapters/opencode/tui/client.d.ts +164 -0
  28. package/dist/adapters/opencode/tui/client.d.ts.map +1 -0
  29. package/dist/adapters/opencode/tui/client.js +30 -0
  30. package/dist/adapters/opencode/tui/client.js.map +1 -0
  31. package/dist/adapters/opencode/tui/commands/commands.d.ts +21 -0
  32. package/dist/adapters/opencode/tui/commands/commands.d.ts.map +1 -0
  33. package/dist/adapters/opencode/tui/commands/commands.jsx +78 -0
  34. package/dist/adapters/opencode/tui/commands/commands.jsx.map +1 -0
  35. package/dist/adapters/opencode/tui/components/action-button.d.ts +12 -0
  36. package/dist/adapters/opencode/tui/components/action-button.d.ts.map +1 -0
  37. package/dist/adapters/opencode/tui/components/action-button.jsx +13 -0
  38. package/dist/adapters/opencode/tui/components/action-button.jsx.map +1 -0
  39. package/dist/adapters/opencode/tui/components/move-list.d.ts +13 -0
  40. package/dist/adapters/opencode/tui/components/move-list.d.ts.map +1 -0
  41. package/dist/adapters/opencode/tui/components/move-list.jsx +91 -0
  42. package/dist/adapters/opencode/tui/components/move-list.jsx.map +1 -0
  43. package/dist/adapters/opencode/tui/components/owner.d.ts +3 -0
  44. package/dist/adapters/opencode/tui/components/owner.d.ts.map +1 -0
  45. package/dist/adapters/opencode/tui/components/owner.js +16 -0
  46. package/dist/adapters/opencode/tui/components/owner.js.map +1 -0
  47. package/dist/adapters/opencode/tui/components/sprite.d.ts +13 -0
  48. package/dist/adapters/opencode/tui/components/sprite.d.ts.map +1 -0
  49. package/dist/adapters/opencode/tui/components/sprite.jsx +30 -0
  50. package/dist/adapters/opencode/tui/components/sprite.jsx.map +1 -0
  51. package/dist/adapters/opencode/tui/controls/native.d.ts +2 -0
  52. package/dist/adapters/opencode/tui/controls/native.d.ts.map +1 -0
  53. package/dist/adapters/opencode/tui/controls/native.js +22 -0
  54. package/dist/adapters/opencode/tui/controls/native.js.map +1 -0
  55. package/dist/adapters/opencode/tui/dex/actions.d.ts +12 -0
  56. package/dist/adapters/opencode/tui/dex/actions.d.ts.map +1 -0
  57. package/dist/adapters/opencode/tui/dex/actions.jsx +15 -0
  58. package/dist/adapters/opencode/tui/dex/actions.jsx.map +1 -0
  59. package/dist/adapters/opencode/tui/dex/dialog.d.ts +12 -0
  60. package/dist/adapters/opencode/tui/dex/dialog.d.ts.map +1 -0
  61. package/dist/adapters/opencode/tui/dex/dialog.jsx +79 -0
  62. package/dist/adapters/opencode/tui/dex/dialog.jsx.map +1 -0
  63. package/dist/adapters/opencode/tui/export/actions.d.ts +14 -0
  64. package/dist/adapters/opencode/tui/export/actions.d.ts.map +1 -0
  65. package/dist/adapters/opencode/tui/export/actions.js +25 -0
  66. package/dist/adapters/opencode/tui/export/actions.js.map +1 -0
  67. package/dist/adapters/opencode/tui/export/presentation.d.ts +16 -0
  68. package/dist/adapters/opencode/tui/export/presentation.d.ts.map +1 -0
  69. package/dist/adapters/opencode/tui/export/presentation.js +15 -0
  70. package/dist/adapters/opencode/tui/export/presentation.js.map +1 -0
  71. package/dist/adapters/opencode/tui/pc/actions.d.ts +22 -0
  72. package/dist/adapters/opencode/tui/pc/actions.d.ts.map +1 -0
  73. package/dist/adapters/opencode/tui/pc/actions.jsx +47 -0
  74. package/dist/adapters/opencode/tui/pc/actions.jsx.map +1 -0
  75. package/dist/adapters/opencode/tui/pc/details.d.ts +10 -0
  76. package/dist/adapters/opencode/tui/pc/details.d.ts.map +1 -0
  77. package/dist/adapters/opencode/tui/pc/details.jsx +51 -0
  78. package/dist/adapters/opencode/tui/pc/details.jsx.map +1 -0
  79. package/dist/adapters/opencode/tui/pc/dialog.d.ts +19 -0
  80. package/dist/adapters/opencode/tui/pc/dialog.d.ts.map +1 -0
  81. package/dist/adapters/opencode/tui/pc/dialog.jsx +263 -0
  82. package/dist/adapters/opencode/tui/pc/dialog.jsx.map +1 -0
  83. package/dist/adapters/opencode/tui/plugin.d.ts +14 -0
  84. package/dist/adapters/opencode/tui/plugin.d.ts.map +1 -0
  85. package/dist/adapters/opencode/tui/plugin.jsx +103 -0
  86. package/dist/adapters/opencode/tui/plugin.jsx.map +1 -0
  87. package/dist/adapters/opencode/tui/sidebar/actions.d.ts +21 -0
  88. package/dist/adapters/opencode/tui/sidebar/actions.d.ts.map +1 -0
  89. package/dist/adapters/opencode/tui/sidebar/actions.js +54 -0
  90. package/dist/adapters/opencode/tui/sidebar/actions.js.map +1 -0
  91. package/dist/adapters/opencode/tui/sidebar/register.d.ts +30 -0
  92. package/dist/adapters/opencode/tui/sidebar/register.d.ts.map +1 -0
  93. package/dist/adapters/opencode/tui/sidebar/register.jsx +21 -0
  94. package/dist/adapters/opencode/tui/sidebar/register.jsx.map +1 -0
  95. package/dist/adapters/opencode/tui/sidebar/view.d.ts +43 -0
  96. package/dist/adapters/opencode/tui/sidebar/view.d.ts.map +1 -0
  97. package/dist/adapters/opencode/tui/sidebar/view.jsx +166 -0
  98. package/dist/adapters/opencode/tui/sidebar/view.jsx.map +1 -0
  99. package/dist/adapters/opencode/tui/state/cleanup.d.ts +8 -0
  100. package/dist/adapters/opencode/tui/state/cleanup.d.ts.map +1 -0
  101. package/dist/adapters/opencode/tui/state/cleanup.js +68 -0
  102. package/dist/adapters/opencode/tui/state/cleanup.js.map +1 -0
  103. package/dist/adapters/opencode/tui/state/coordinator.d.ts +122 -0
  104. package/dist/adapters/opencode/tui/state/coordinator.d.ts.map +1 -0
  105. package/dist/adapters/opencode/tui/state/coordinator.js +40 -0
  106. package/dist/adapters/opencode/tui/state/coordinator.js.map +1 -0
  107. package/dist/adapters/opencode/tui/state/setup-failure.d.ts +2 -0
  108. package/dist/adapters/opencode/tui/state/setup-failure.d.ts.map +1 -0
  109. package/dist/adapters/opencode/tui/state/setup-failure.js +10 -0
  110. package/dist/adapters/opencode/tui/state/setup-failure.js.map +1 -0
  111. package/dist/adapters/opencode/tui/travel/actions.d.ts +16 -0
  112. package/dist/adapters/opencode/tui/travel/actions.d.ts.map +1 -0
  113. package/dist/adapters/opencode/tui/travel/actions.jsx +31 -0
  114. package/dist/adapters/opencode/tui/travel/actions.jsx.map +1 -0
  115. package/dist/adapters/opencode/tui/travel/dialog.d.ts +29 -0
  116. package/dist/adapters/opencode/tui/travel/dialog.d.ts.map +1 -0
  117. package/dist/adapters/opencode/tui/travel/dialog.jsx +128 -0
  118. package/dist/adapters/opencode/tui/travel/dialog.jsx.map +1 -0
  119. package/dist/adapters/opencode/tui/travel/projection.d.ts +29 -0
  120. package/dist/adapters/opencode/tui/travel/projection.d.ts.map +1 -0
  121. package/dist/adapters/opencode/tui/travel/projection.js +44 -0
  122. package/dist/adapters/opencode/tui/travel/projection.js.map +1 -0
  123. package/dist/adapters/presentation/game-notifications.d.ts +13 -0
  124. package/dist/adapters/presentation/game-notifications.d.ts.map +1 -0
  125. package/dist/adapters/presentation/game-notifications.js +111 -0
  126. package/dist/adapters/presentation/game-notifications.js.map +1 -0
  127. package/dist/adapters/presentation/localization.d.ts +12 -0
  128. package/dist/adapters/presentation/localization.d.ts.map +1 -0
  129. package/dist/adapters/presentation/localization.js +65 -0
  130. package/dist/adapters/presentation/localization.js.map +1 -0
  131. package/dist/adapters/presentation/move-details.d.ts +11 -0
  132. package/dist/adapters/presentation/move-details.d.ts.map +1 -0
  133. package/dist/adapters/presentation/move-details.js +47 -0
  134. package/dist/adapters/presentation/move-details.js.map +1 -0
  135. package/dist/adapters/presentation/pc-copy.d.ts +31 -0
  136. package/dist/adapters/presentation/pc-copy.d.ts.map +1 -0
  137. package/dist/adapters/presentation/pc-copy.js +56 -0
  138. package/dist/adapters/presentation/pc-copy.js.map +1 -0
  139. package/dist/adapters/presentation/ui-copy.d.ts +49 -0
  140. package/dist/adapters/presentation/ui-copy.d.ts.map +1 -0
  141. package/dist/adapters/presentation/ui-copy.js +81 -0
  142. package/dist/adapters/presentation/ui-copy.js.map +1 -0
  143. package/dist/adapters/showdown/format-team.d.ts +3 -0
  144. package/dist/adapters/showdown/format-team.d.ts.map +1 -0
  145. package/dist/adapters/showdown/format-team.js +23 -0
  146. package/dist/adapters/showdown/format-team.js.map +1 -0
  147. package/dist/adapters/sprites/cache.d.ts +12 -0
  148. package/dist/adapters/sprites/cache.d.ts.map +1 -0
  149. package/dist/adapters/sprites/cache.js +43 -0
  150. package/dist/adapters/sprites/cache.js.map +1 -0
  151. package/dist/adapters/sprites/contracts.d.ts +20 -0
  152. package/dist/adapters/sprites/contracts.d.ts.map +1 -0
  153. package/dist/adapters/sprites/contracts.js +12 -0
  154. package/dist/adapters/sprites/contracts.js.map +1 -0
  155. package/dist/adapters/sqlite/game-repository.d.ts +14 -0
  156. package/dist/adapters/sqlite/game-repository.d.ts.map +1 -0
  157. package/dist/adapters/sqlite/game-repository.js +48 -0
  158. package/dist/adapters/sqlite/game-repository.js.map +1 -0
  159. package/dist/adapters/sqlite/game-transaction.d.ts +5 -0
  160. package/dist/adapters/sqlite/game-transaction.d.ts.map +1 -0
  161. package/dist/adapters/sqlite/game-transaction.js +35 -0
  162. package/dist/adapters/sqlite/game-transaction.js.map +1 -0
  163. package/dist/adapters/sqlite/initialize-database.d.ts +6 -0
  164. package/dist/adapters/sqlite/initialize-database.d.ts.map +1 -0
  165. package/dist/adapters/sqlite/initialize-database.js +15 -0
  166. package/dist/adapters/sqlite/initialize-database.js.map +1 -0
  167. package/dist/adapters/sqlite/pokemon-mapper.d.ts +23 -0
  168. package/dist/adapters/sqlite/pokemon-mapper.d.ts.map +1 -0
  169. package/dist/adapters/sqlite/pokemon-mapper.js +41 -0
  170. package/dist/adapters/sqlite/pokemon-mapper.js.map +1 -0
  171. package/dist/adapters/sqlite/queries/collection.d.ts +8 -0
  172. package/dist/adapters/sqlite/queries/collection.d.ts.map +1 -0
  173. package/dist/adapters/sqlite/queries/collection.js +58 -0
  174. package/dist/adapters/sqlite/queries/collection.js.map +1 -0
  175. package/dist/adapters/sqlite/queries/game-state.d.ts +4 -0
  176. package/dist/adapters/sqlite/queries/game-state.d.ts.map +1 -0
  177. package/dist/adapters/sqlite/queries/game-state.js +165 -0
  178. package/dist/adapters/sqlite/queries/game-state.js.map +1 -0
  179. package/dist/adapters/sqlite/schema.d.ts +4 -0
  180. package/dist/adapters/sqlite/schema.d.ts.map +1 -0
  181. package/dist/adapters/sqlite/schema.js +284 -0
  182. package/dist/adapters/sqlite/schema.js.map +1 -0
  183. package/dist/adapters/sqlite/starter-selection-store.d.ts +4 -0
  184. package/dist/adapters/sqlite/starter-selection-store.d.ts.map +1 -0
  185. package/dist/adapters/sqlite/starter-selection-store.js +55 -0
  186. package/dist/adapters/sqlite/starter-selection-store.js.map +1 -0
  187. package/dist/adapters/sqlite/transaction-stores/choices.d.ts +7 -0
  188. package/dist/adapters/sqlite/transaction-stores/choices.d.ts.map +1 -0
  189. package/dist/adapters/sqlite/transaction-stores/choices.js +54 -0
  190. package/dist/adapters/sqlite/transaction-stores/choices.js.map +1 -0
  191. package/dist/adapters/sqlite/transaction-stores/encounters.d.ts +7 -0
  192. package/dist/adapters/sqlite/transaction-stores/encounters.d.ts.map +1 -0
  193. package/dist/adapters/sqlite/transaction-stores/encounters.js +59 -0
  194. package/dist/adapters/sqlite/transaction-stores/encounters.js.map +1 -0
  195. package/dist/adapters/sqlite/transaction-stores/exploration.d.ts +7 -0
  196. package/dist/adapters/sqlite/transaction-stores/exploration.d.ts.map +1 -0
  197. package/dist/adapters/sqlite/transaction-stores/exploration.js +65 -0
  198. package/dist/adapters/sqlite/transaction-stores/exploration.js.map +1 -0
  199. package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts +7 -0
  200. package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts.map +1 -0
  201. package/dist/adapters/sqlite/transaction-stores/pokemon.js +160 -0
  202. package/dist/adapters/sqlite/transaction-stores/pokemon.js.map +1 -0
  203. package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts +5 -0
  204. package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts.map +1 -0
  205. package/dist/adapters/sqlite/transaction-stores/queue-order.js +15 -0
  206. package/dist/adapters/sqlite/transaction-stores/queue-order.js.map +1 -0
  207. package/dist/adapters/sqlite/transaction-stores/receipts.d.ts +4 -0
  208. package/dist/adapters/sqlite/transaction-stores/receipts.d.ts.map +1 -0
  209. package/dist/adapters/sqlite/transaction-stores/receipts.js +11 -0
  210. package/dist/adapters/sqlite/transaction-stores/receipts.js.map +1 -0
  211. package/dist/adapters/sqlite/transaction-stores/trainers.d.ts +4 -0
  212. package/dist/adapters/sqlite/transaction-stores/trainers.d.ts.map +1 -0
  213. package/dist/adapters/sqlite/transaction-stores/trainers.js +11 -0
  214. package/dist/adapters/sqlite/transaction-stores/trainers.js.map +1 -0
  215. package/dist/application/contracts/game.d.ts +1412 -0
  216. package/dist/application/contracts/game.d.ts.map +1 -0
  217. package/dist/application/contracts/game.js +126 -0
  218. package/dist/application/contracts/game.js.map +1 -0
  219. package/dist/application/contracts/starter-choice.d.ts +6 -0
  220. package/dist/application/contracts/starter-choice.d.ts.map +1 -0
  221. package/dist/application/contracts/starter-choice.js +2 -0
  222. package/dist/application/contracts/starter-choice.js.map +1 -0
  223. package/dist/application/game.d.ts +34 -0
  224. package/dist/application/game.d.ts.map +1 -0
  225. package/dist/application/game.js +67 -0
  226. package/dist/application/game.js.map +1 -0
  227. package/dist/application/ports/game-transaction.d.ts +172 -0
  228. package/dist/application/ports/game-transaction.d.ts.map +1 -0
  229. package/dist/application/ports/game-transaction.js +2 -0
  230. package/dist/application/ports/game-transaction.js.map +1 -0
  231. package/dist/application/ports/game.d.ts +11 -0
  232. package/dist/application/ports/game.d.ts.map +1 -0
  233. package/dist/application/ports/game.js +2 -0
  234. package/dist/application/ports/game.js.map +1 -0
  235. package/dist/application/ports/starter-selection-store.d.ts +23 -0
  236. package/dist/application/ports/starter-selection-store.d.ts.map +1 -0
  237. package/dist/application/ports/starter-selection-store.js +2 -0
  238. package/dist/application/ports/starter-selection-store.js.map +1 -0
  239. package/dist/application/use-cases/choices.d.ts +9 -0
  240. package/dist/application/use-cases/choices.d.ts.map +1 -0
  241. package/dist/application/use-cases/choices.js +111 -0
  242. package/dist/application/use-cases/choices.js.map +1 -0
  243. package/dist/application/use-cases/choose-regional-starter.d.ts +4 -0
  244. package/dist/application/use-cases/choose-regional-starter.d.ts.map +1 -0
  245. package/dist/application/use-cases/choose-regional-starter.js +37 -0
  246. package/dist/application/use-cases/choose-regional-starter.js.map +1 -0
  247. package/dist/application/use-cases/choose-starter.d.ts +15 -0
  248. package/dist/application/use-cases/choose-starter.d.ts.map +1 -0
  249. package/dist/application/use-cases/choose-starter.js +26 -0
  250. package/dist/application/use-cases/choose-starter.js.map +1 -0
  251. package/dist/application/use-cases/encounters.d.ts +234 -0
  252. package/dist/application/use-cases/encounters.d.ts.map +1 -0
  253. package/dist/application/use-cases/encounters.js +39 -0
  254. package/dist/application/use-cases/encounters.js.map +1 -0
  255. package/dist/application/use-cases/game-command-support.d.ts +16 -0
  256. package/dist/application/use-cases/game-command-support.d.ts.map +1 -0
  257. package/dist/application/use-cases/game-command-support.js +16 -0
  258. package/dist/application/use-cases/game-command-support.js.map +1 -0
  259. package/dist/application/use-cases/game-commands.d.ts +244 -0
  260. package/dist/application/use-cases/game-commands.d.ts.map +1 -0
  261. package/dist/application/use-cases/game-commands.js +14 -0
  262. package/dist/application/use-cases/game-commands.js.map +1 -0
  263. package/dist/application/use-cases/learn-move.d.ts +22 -0
  264. package/dist/application/use-cases/learn-move.d.ts.map +1 -0
  265. package/dist/application/use-cases/learn-move.js +24 -0
  266. package/dist/application/use-cases/learn-move.js.map +1 -0
  267. package/dist/application/use-cases/party.d.ts +8 -0
  268. package/dist/application/use-cases/party.d.ts.map +1 -0
  269. package/dist/application/use-cases/party.js +44 -0
  270. package/dist/application/use-cases/party.js.map +1 -0
  271. package/dist/application/use-cases/record-usage.d.ts +10 -0
  272. package/dist/application/use-cases/record-usage.d.ts.map +1 -0
  273. package/dist/application/use-cases/record-usage.js +145 -0
  274. package/dist/application/use-cases/record-usage.js.map +1 -0
  275. package/dist/application/use-cases/resolve-progression.d.ts +9 -0
  276. package/dist/application/use-cases/resolve-progression.d.ts.map +1 -0
  277. package/dist/application/use-cases/resolve-progression.js +80 -0
  278. package/dist/application/use-cases/resolve-progression.js.map +1 -0
  279. package/dist/application/use-cases/travel.d.ts +7 -0
  280. package/dist/application/use-cases/travel.d.ts.map +1 -0
  281. package/dist/application/use-cases/travel.js +58 -0
  282. package/dist/application/use-cases/travel.js.map +1 -0
  283. package/dist/cli/command.d.ts +16 -0
  284. package/dist/cli/command.d.ts.map +1 -0
  285. package/dist/cli/command.js +73 -0
  286. package/dist/cli/command.js.map +1 -0
  287. package/dist/cli/install.d.ts +9 -0
  288. package/dist/cli/install.d.ts.map +1 -0
  289. package/dist/cli/install.js +23 -0
  290. package/dist/cli/install.js.map +1 -0
  291. package/dist/cli.d.ts +3 -0
  292. package/dist/cli.d.ts.map +1 -0
  293. package/dist/cli.js +124 -0
  294. package/dist/cli.js.map +1 -0
  295. package/dist/domain/choices/choices.d.ts +79 -0
  296. package/dist/domain/choices/choices.d.ts.map +1 -0
  297. package/dist/domain/choices/choices.js +54 -0
  298. package/dist/domain/choices/choices.js.map +1 -0
  299. package/dist/domain/content/catalog.d.ts +241 -0
  300. package/dist/domain/content/catalog.d.ts.map +1 -0
  301. package/dist/domain/content/catalog.js +286 -0
  302. package/dist/domain/content/catalog.js.map +1 -0
  303. package/dist/domain/content/catalogs/abilities-catalog.d.ts +8 -0
  304. package/dist/domain/content/catalogs/abilities-catalog.d.ts.map +1 -0
  305. package/dist/domain/content/catalogs/abilities-catalog.js +2054 -0
  306. package/dist/domain/content/catalogs/abilities-catalog.js.map +1 -0
  307. package/dist/domain/content/catalogs/alola-locations-catalog.d.ts +4949 -0
  308. package/dist/domain/content/catalogs/alola-locations-catalog.d.ts.map +1 -0
  309. package/dist/domain/content/catalogs/alola-locations-catalog.js +5994 -0
  310. package/dist/domain/content/catalogs/alola-locations-catalog.js.map +1 -0
  311. package/dist/domain/content/catalogs/encouter-methods.d.ts +2 -0
  312. package/dist/domain/content/catalogs/encouter-methods.d.ts.map +1 -0
  313. package/dist/domain/content/catalogs/encouter-methods.js +69 -0
  314. package/dist/domain/content/catalogs/encouter-methods.js.map +1 -0
  315. package/dist/domain/content/catalogs/galar-locations-catalog.d.ts +6707 -0
  316. package/dist/domain/content/catalogs/galar-locations-catalog.d.ts.map +1 -0
  317. package/dist/domain/content/catalogs/galar-locations-catalog.js +8089 -0
  318. package/dist/domain/content/catalogs/galar-locations-catalog.js.map +1 -0
  319. package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts +2922 -0
  320. package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts.map +1 -0
  321. package/dist/domain/content/catalogs/hoenn-locations-catalog.js +3541 -0
  322. package/dist/domain/content/catalogs/hoenn-locations-catalog.js.map +1 -0
  323. package/dist/domain/content/catalogs/johto-locations-catalog.d.ts +29 -0
  324. package/dist/domain/content/catalogs/johto-locations-catalog.d.ts.map +1 -0
  325. package/dist/domain/content/catalogs/johto-locations-catalog.js +4151 -0
  326. package/dist/domain/content/catalogs/johto-locations-catalog.js.map +1 -0
  327. package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts +29 -0
  328. package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts.map +1 -0
  329. package/dist/domain/content/catalogs/kalos-locations-catalog.js +4346 -0
  330. package/dist/domain/content/catalogs/kalos-locations-catalog.js.map +1 -0
  331. package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts +2304 -0
  332. package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts.map +1 -0
  333. package/dist/domain/content/catalogs/kanto-locations-catalog.js +2796 -0
  334. package/dist/domain/content/catalogs/kanto-locations-catalog.js.map +1 -0
  335. package/dist/domain/content/catalogs/moves-catalog.d.ts +62 -0
  336. package/dist/domain/content/catalogs/moves-catalog.d.ts.map +1 -0
  337. package/dist/domain/content/catalogs/moves-catalog.js +12883 -0
  338. package/dist/domain/content/catalogs/moves-catalog.js.map +1 -0
  339. package/dist/domain/content/catalogs/natures-catalog.d.ts +202 -0
  340. package/dist/domain/content/catalogs/natures-catalog.d.ts.map +1 -0
  341. package/dist/domain/content/catalogs/natures-catalog.js +228 -0
  342. package/dist/domain/content/catalogs/natures-catalog.js.map +1 -0
  343. package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts +14756 -0
  344. package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts.map +1 -0
  345. package/dist/domain/content/catalogs/paldea-locations-catalog.js +17762 -0
  346. package/dist/domain/content/catalogs/paldea-locations-catalog.js.map +1 -0
  347. package/dist/domain/content/catalogs/pokemon-catalog.d.ts +75 -0
  348. package/dist/domain/content/catalogs/pokemon-catalog.d.ts.map +1 -0
  349. package/dist/domain/content/catalogs/pokemon-catalog.js +100649 -0
  350. package/dist/domain/content/catalogs/pokemon-catalog.js.map +1 -0
  351. package/dist/domain/content/catalogs/regional-forms-catalog.d.ts +3033 -0
  352. package/dist/domain/content/catalogs/regional-forms-catalog.d.ts.map +1 -0
  353. package/dist/domain/content/catalogs/regional-forms-catalog.js +4358 -0
  354. package/dist/domain/content/catalogs/regional-forms-catalog.js.map +1 -0
  355. package/dist/domain/content/catalogs/regions-catalog.d.ts +8 -0
  356. package/dist/domain/content/catalogs/regions-catalog.d.ts.map +1 -0
  357. package/dist/domain/content/catalogs/regions-catalog.js +66 -0
  358. package/dist/domain/content/catalogs/regions-catalog.js.map +1 -0
  359. package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts +5955 -0
  360. package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts.map +1 -0
  361. package/dist/domain/content/catalogs/sinnoh-locations-catalog.js +7184 -0
  362. package/dist/domain/content/catalogs/sinnoh-locations-catalog.js.map +1 -0
  363. package/dist/domain/content/catalogs/stats-catalog.d.ts +38 -0
  364. package/dist/domain/content/catalogs/stats-catalog.d.ts.map +1 -0
  365. package/dist/domain/content/catalogs/stats-catalog.js +45 -0
  366. package/dist/domain/content/catalogs/stats-catalog.js.map +1 -0
  367. package/dist/domain/content/catalogs/types-catalog.d.ts +8 -0
  368. package/dist/domain/content/catalogs/types-catalog.d.ts.map +1 -0
  369. package/dist/domain/content/catalogs/types-catalog.js +129 -0
  370. package/dist/domain/content/catalogs/types-catalog.js.map +1 -0
  371. package/dist/domain/content/catalogs/unova-locations-catalog.d.ts +29 -0
  372. package/dist/domain/content/catalogs/unova-locations-catalog.d.ts.map +1 -0
  373. package/dist/domain/content/catalogs/unova-locations-catalog.js +6552 -0
  374. package/dist/domain/content/catalogs/unova-locations-catalog.js.map +1 -0
  375. package/dist/domain/content/encounter-catalog.d.ts +27 -0
  376. package/dist/domain/content/encounter-catalog.d.ts.map +1 -0
  377. package/dist/domain/content/encounter-catalog.js +75 -0
  378. package/dist/domain/content/encounter-catalog.js.map +1 -0
  379. package/dist/domain/content/names.d.ts +6 -0
  380. package/dist/domain/content/names.d.ts.map +1 -0
  381. package/dist/domain/content/names.js +7 -0
  382. package/dist/domain/content/names.js.map +1 -0
  383. package/dist/domain/content/schema.d.ts +153 -0
  384. package/dist/domain/content/schema.d.ts.map +1 -0
  385. package/dist/domain/content/schema.js +81 -0
  386. package/dist/domain/content/schema.js.map +1 -0
  387. package/dist/domain/content/sprites.d.ts +5 -0
  388. package/dist/domain/content/sprites.d.ts.map +1 -0
  389. package/dist/domain/content/sprites.js +22 -0
  390. package/dist/domain/content/sprites.js.map +1 -0
  391. package/dist/domain/encounters/encounter.d.ts +56 -0
  392. package/dist/domain/encounters/encounter.d.ts.map +1 -0
  393. package/dist/domain/encounters/encounter.js +74 -0
  394. package/dist/domain/encounters/encounter.js.map +1 -0
  395. package/dist/domain/exploration/exploration.d.ts +63 -0
  396. package/dist/domain/exploration/exploration.d.ts.map +1 -0
  397. package/dist/domain/exploration/exploration.js +48 -0
  398. package/dist/domain/exploration/exploration.js.map +1 -0
  399. package/dist/domain/party/party.d.ts +59 -0
  400. package/dist/domain/party/party.d.ts.map +1 -0
  401. package/dist/domain/party/party.js +19 -0
  402. package/dist/domain/party/party.js.map +1 -0
  403. package/dist/domain/pokemon/model.d.ts +43 -0
  404. package/dist/domain/pokemon/model.d.ts.map +1 -0
  405. package/dist/domain/pokemon/model.js +18 -0
  406. package/dist/domain/pokemon/model.js.map +1 -0
  407. package/dist/domain/pokemon/nature.d.ts +10 -0
  408. package/dist/domain/pokemon/nature.d.ts.map +1 -0
  409. package/dist/domain/pokemon/nature.js +23 -0
  410. package/dist/domain/pokemon/nature.js.map +1 -0
  411. package/dist/domain/pokemon/starter.d.ts +23 -0
  412. package/dist/domain/pokemon/starter.d.ts.map +1 -0
  413. package/dist/domain/pokemon/starter.js +59 -0
  414. package/dist/domain/pokemon/starter.js.map +1 -0
  415. package/dist/domain/pokemon/stats.d.ts +6 -0
  416. package/dist/domain/pokemon/stats.d.ts.map +1 -0
  417. package/dist/domain/pokemon/stats.js +35 -0
  418. package/dist/domain/pokemon/stats.js.map +1 -0
  419. package/dist/domain/pokemon/types.d.ts +37 -0
  420. package/dist/domain/pokemon/types.d.ts.map +1 -0
  421. package/dist/domain/pokemon/types.js +30 -0
  422. package/dist/domain/pokemon/types.js.map +1 -0
  423. package/dist/domain/progression/catalog.d.ts +34 -0
  424. package/dist/domain/progression/catalog.d.ts.map +1 -0
  425. package/dist/domain/progression/catalog.js +258 -0
  426. package/dist/domain/progression/catalog.js.map +1 -0
  427. package/dist/domain/progression/level-evolution.d.ts +13 -0
  428. package/dist/domain/progression/level-evolution.d.ts.map +1 -0
  429. package/dist/domain/progression/level-evolution.js +245 -0
  430. package/dist/domain/progression/level-evolution.js.map +1 -0
  431. package/dist/domain/progression/policies.d.ts +38 -0
  432. package/dist/domain/progression/policies.d.ts.map +1 -0
  433. package/dist/domain/progression/policies.js +78 -0
  434. package/dist/domain/progression/policies.js.map +1 -0
  435. package/dist/domain/shared/identifiers.d.ts +12 -0
  436. package/dist/domain/shared/identifiers.d.ts.map +1 -0
  437. package/dist/domain/shared/identifiers.js +7 -0
  438. package/dist/domain/shared/identifiers.js.map +1 -0
  439. package/dist/domain/shared/language.d.ts +7 -0
  440. package/dist/domain/shared/language.d.ts.map +1 -0
  441. package/dist/domain/shared/language.js +3 -0
  442. package/dist/domain/shared/language.js.map +1 -0
  443. package/dist/domain/trainer/trainer.d.ts +7 -0
  444. package/dist/domain/trainer/trainer.d.ts.map +1 -0
  445. package/dist/domain/trainer/trainer.js +2 -0
  446. package/dist/domain/trainer/trainer.js.map +1 -0
  447. package/dist/domain/usage/usage.d.ts +21 -0
  448. package/dist/domain/usage/usage.d.ts.map +1 -0
  449. package/dist/domain/usage/usage.js +23 -0
  450. package/dist/domain/usage/usage.js.map +1 -0
  451. package/dist/index.d.ts +2 -0
  452. package/dist/index.d.ts.map +1 -0
  453. package/dist/index.js +183817 -0
  454. package/dist/index.js.map +1 -0
  455. package/dist/package.json +10 -0
  456. package/dist/rpc.d.ts +2 -0
  457. package/dist/rpc.d.ts.map +1 -0
  458. package/dist/rpc.js +568 -0
  459. package/dist/rpc.js.map +1 -0
  460. package/dist/tui.d.ts +2 -0
  461. package/dist/tui.d.ts.map +1 -0
  462. package/dist/tui.js +184828 -0
  463. package/package.json +83 -4
@@ -0,0 +1,114 @@
1
+ import { MouseButton } from "@opentui/core";
2
+ import { useTerminalDimensions } from "@opentui/solid";
3
+ import { createSignal, Match, Show, Switch } from "solid-js";
4
+ import { decodeEvolutionChoiceProjection, decodeMoveChoiceProjection, decodeRegionChoiceProjection, } from "../../../../domain/choices/choices.js";
5
+ import { regions } from "../../../../domain/content/catalog.js";
6
+ import { uiCopy } from "../../../presentation/ui-copy.js";
7
+ import { MoveList } from "../components/move-list.js";
8
+ import { Sprite } from "../components/sprite.js";
9
+ export function PendingChoiceCard(properties) {
10
+ const choice = () => properties.state().pendingChoices[0];
11
+ return (<Show when={choice()} keyed>
12
+ {(activeChoice) => (<Switch>
13
+ <Match when={activeChoice.kind === "move"}>
14
+ <MoveChoiceCard choice={() => activeChoice} party={() => properties.state().party} choicePokemon={() => properties.state().choicePokemon} onResolve={properties.onResolveMove} resolveSprite={properties.resolveSprite} language={properties.language}/>
15
+ </Match>
16
+ <Match when={activeChoice.kind === "evolution"}>
17
+ <EvolutionChoiceCard choice={() => activeChoice} party={() => properties.state().party} choicePokemon={() => properties.state().choicePokemon} resolveSprite={properties.resolveSprite} language={properties.language} onResolve={properties.onResolveEvolution}/>
18
+ </Match>
19
+ </Switch>)}
20
+ </Show>);
21
+ }
22
+ export function MoveChoiceCard(properties) {
23
+ const choice = properties.choice();
24
+ if (choice === undefined)
25
+ return null;
26
+ const payload = decodeMoveChoiceProjection(choice.payload);
27
+ if (payload === null)
28
+ return null;
29
+ const pokemon = properties.party().find((slot) => slot.pokemon?.id === payload.pokemonId)?.pokemon ??
30
+ properties.choicePokemon().find((instance) => instance.id === payload.pokemonId);
31
+ if (pokemon === undefined || pokemon === null)
32
+ return null;
33
+ const dimensions = useTerminalDimensions();
34
+ const language = () => properties.language?.() ?? "en";
35
+ const moves = [...pokemon.moves, payload.move];
36
+ const copy = () => uiCopy(language());
37
+ return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" gap={1} padding={1} width="100%" minWidth={0}>
38
+ <text width="100%" wrapMode="word" textAlign="center">
39
+ {copy().movePrompt(pokemon.name)}
40
+ </text>
41
+ <Sprite language={properties.language} resolve={properties.resolveSprite} shiny={pokemon.shiny} gender={pokemon.gender} speciesId={pokemon.speciesId}/>
42
+ <text width="100%" wrapMode="word" textAlign="center">
43
+ {copy().moveDescription}
44
+ </text>
45
+ <MoveList centered leftAlignMoves moves={moves} language={language()} offeredMoveId={payload.move.id} height={Math.min(28, Math.max(6, dimensions().height - 19))} onActivate={(moveId) => properties.onResolve(choice.id, moveId)}/>
46
+ </box>);
47
+ }
48
+ export function EvolutionChoiceCard(properties) {
49
+ const choice = properties.choice();
50
+ if (choice === undefined)
51
+ return null;
52
+ const payload = decodeEvolutionChoiceProjection(choice.payload);
53
+ if (payload === null)
54
+ return null;
55
+ const pokemon = properties.party().find((slot) => slot.pokemon?.id === payload.pokemonId)?.pokemon ??
56
+ properties.choicePokemon().find((instance) => instance.id === payload.pokemonId);
57
+ if (pokemon === undefined || pokemon === null)
58
+ return null;
59
+ const [hoveredOption, setHoveredOption] = createSignal(null);
60
+ return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" gap={1} padding={1}>
61
+ <text>{uiCopy(properties.language()).evolutionPrompt(pokemon.name)}</text>
62
+ <Sprite language={properties.language} resolve={properties.resolveSprite} shiny={pokemon.shiny} gender={pokemon.gender} speciesId={pokemon.speciesId}/>
63
+ <text>{uiCopy(properties.language()).chooseEvolution}</text>
64
+ <box flexDirection="row" flexWrap="wrap" gap={1} justifyContent="center" width="100%">
65
+ {payload.options.map((option) => (<EvolutionOptionCard option={option} pokemon={pokemon} hovered={() => hoveredOption() === option.speciesId} onHover={() => setHoveredOption(option.speciesId)} onLeave={() => setHoveredOption(null)} onResolve={() => properties.onResolve(choice.id, option.speciesId)} resolveSprite={properties.resolveSprite} language={properties.language}/>))}
66
+ </box>
67
+ </box>);
68
+ }
69
+ function EvolutionOptionCard(properties) {
70
+ return (<button alignItems="center" backgroundColor={properties.hovered() ? "#404040" : undefined} border={false} flexDirection="column" flexShrink={0} focusable width={14} padding={1} type="button" onMouseOver={properties.onHover} onMouseOut={properties.onLeave} onFocus={properties.onHover} onBlur={properties.onLeave} onMouseUp={(event) => {
71
+ if (event.button === MouseButton.LEFT)
72
+ void properties.onResolve();
73
+ }} onKeyDown={(event) => {
74
+ if (event.name === "return" || event.name === "space")
75
+ void properties.onResolve();
76
+ }}>
77
+ <box flexDirection="row" height={4} justifyContent="center" width="100%">
78
+ <Sprite compactFallback language={properties.language} resolve={properties.resolveSprite} shiny={properties.pokemon.shiny} gender={properties.pokemon.gender} speciesId={properties.option.speciesId}/>
79
+ </box>
80
+ <box flexDirection="row" justifyContent="center" width="100%">
81
+ <text>{properties.option.name}</text>
82
+ </box>
83
+ </button>);
84
+ }
85
+ export function RegionChoiceCard(properties) {
86
+ const choice = properties.choice();
87
+ if (choice === undefined)
88
+ return null;
89
+ const payload = decodeRegionChoiceProjection(choice.payload);
90
+ if (payload === null)
91
+ return null;
92
+ const [hoveredRegion, setHoveredRegion] = createSignal(null);
93
+ const availableRegions = () => regions(properties.language?.() ?? "en");
94
+ const completedRegionName = () => availableRegions().find((region) => region.id === payload.region)?.name ?? payload.region;
95
+ return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" gap={1} padding={1}>
96
+ <text>{uiCopy(properties.language?.() ?? "en").regionComplete(completedRegionName())}</text>
97
+ <text>{uiCopy(properties.language?.() ?? "en").chooseNextRegion}</text>
98
+ <box flexDirection="row" flexWrap="wrap" gap={1} justifyContent="center" width="100%">
99
+ {availableRegions()
100
+ .filter((region) => region.id !== payload.region && !properties.visitedRegionIds().includes(region.id))
101
+ .map((region) => (<button alignItems="center" backgroundColor={hoveredRegion() === region.id ? "#404040" : undefined} border={false} flexShrink={0} focusable justifyContent="center" padding={1} type="button" width={14} onMouseOver={() => setHoveredRegion(region.id)} onMouseOut={() => setHoveredRegion(null)} onFocus={() => setHoveredRegion(region.id)} onBlur={() => setHoveredRegion(null)} onMouseUp={(event) => {
102
+ if (event.button === MouseButton.LEFT)
103
+ void properties.onTravel(region.id);
104
+ }} onKeyDown={(event) => {
105
+ if (event.name === "return" || event.name === "space") {
106
+ void properties.onTravel(region.id);
107
+ }
108
+ }}>
109
+ <text>{region.name}</text>
110
+ </button>))}
111
+ </box>
112
+ </box>);
113
+ }
114
+ //# sourceMappingURL=cards.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/cards.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAmB,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,MAAM,UAAU,iBAAiB,CAAC,UAMjC;IACC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;IACzD,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CACzB;MAAA,CAAC,CAAC,YAAiD,EAAE,EAAE,CAAC,CACtD,CAAC,MAAM,CACL;UAAA,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,MAAM,CAAC,CACxC;YAAA,CAAC,cAAc,CACb,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAC3B,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CACtC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CACtD,SAAS,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CACpC,aAAa,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CACxC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAElC;UAAA,EAAE,KAAK,CACP;UAAA,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,WAAW,CAAC,CAC7C;YAAA,CAAC,mBAAmB,CAClB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAC3B,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CACtC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CACtD,aAAa,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CACxC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC9B,SAAS,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAE7C;UAAA,EAAE,KAAK,CACT;QAAA,EAAE,MAAM,CAAC,CACV,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAO9B;IACC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAA;IAClC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACrC,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1D,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACjC,MAAM,OAAO,GACX,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO;QAClF,UAAU,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAClF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1D,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAA;IACtD,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrC,OAAO,CACL,CAAC,GAAG,CACF,UAAU,CAAC,QAAQ,CACnB,MAAM,CACN,WAAW,CAAC,SAAS,CACrB,aAAa,CAAC,QAAQ,CACtB,GAAG,CAAC,CAAC,CAAC,CAAC,CACP,OAAO,CAAC,CAAC,CAAC,CAAC,CACX,KAAK,CAAC,MAAM,CACZ,QAAQ,CAAC,CAAC,CAAC,CAAC,CAEZ;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CACnD;QAAA,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAClC;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,MAAM,CACL,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC9B,OAAO,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAClC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CACrB,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CACvB,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAE/B;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CACnD;QAAA,CAAC,IAAI,EAAE,CAAC,eAAe,CACzB;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,QAAQ,CACP,QAAQ,CACR,cAAc,CACd,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CACrB,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAC/B,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAC5D,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAEpE;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAOnC;IACC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAA;IAClC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACrC,MAAM,OAAO,GAAG,+BAA+B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/D,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACjC,MAAM,OAAO,GACX,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO;QAClF,UAAU,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAClF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,YAAY,CAAgB,IAAI,CAAC,CAAA;IAC3E,OAAO,CACL,CAAC,GAAG,CACF,UAAU,CAAC,QAAQ,CACnB,MAAM,CACN,WAAW,CAAC,SAAS,CACrB,aAAa,CAAC,QAAQ,CACtB,GAAG,CAAC,CAAC,CAAC,CAAC,CACP,OAAO,CAAC,CAAC,CAAC,CAAC,CAEX;MAAA,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CACzE;MAAA,CAAC,MAAM,CACL,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC9B,OAAO,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAClC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CACrB,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CACvB,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAE/B;MAAA,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAC3D;MAAA,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CACnF;QAAA,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/B,CAAC,mBAAmB,CAClB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,KAAK,MAAM,CAAC,SAAS,CAAC,CACpD,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAClD,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACtC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CACnE,aAAa,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CACxC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC9B,CACH,CAAC,CACJ;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,UAS5B;IACC,OAAO,CACL,CAAC,MAAM,CACL,UAAU,CAAC,QAAQ,CACnB,eAAe,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,CACd,aAAa,CAAC,QAAQ,CACtB,UAAU,CAAC,CAAC,CAAC,CAAC,CACd,SAAS,CACT,KAAK,CAAC,CAAC,EAAE,CAAC,CACV,OAAO,CAAC,CAAC,CAAC,CAAC,CACX,IAAI,CAAC,QAAQ,CACb,WAAW,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAChC,UAAU,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAC/B,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAC5B,MAAM,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAC3B,SAAS,CAAC,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI;gBAAE,KAAK,UAAU,CAAC,SAAS,EAAE,CAAA;QACpE,CAAC,CAAC,CACF,SAAS,CAAC,CAAC,CAAC,KAAe,EAAE,EAAE;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,KAAK,UAAU,CAAC,SAAS,EAAE,CAAA;QACpF,CAAC,CAAC,CAEF;MAAA,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CACtE;QAAA,CAAC,MAAM,CACL,eAAe,CACf,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC9B,OAAO,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAClC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAChC,MAAM,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAClC,SAAS,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAE3C;MAAA,EAAE,GAAG,CACL;MAAA,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAC3D;QAAA,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CACtC;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,MAAM,CAAC,CACV,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAKhC;IACC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAA;IAClC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACrC,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC5D,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACjC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,YAAY,CAAgB,IAAI,CAAC,CAAA;IAC3E,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,CAAA;IACvE,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAC/B,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAA;IAC3F,OAAO,CACL,CAAC,GAAG,CACF,UAAU,CAAC,QAAQ,CACnB,MAAM,CACN,WAAW,CAAC,SAAS,CACrB,aAAa,CAAC,QAAQ,CACtB,GAAG,CAAC,CAAC,CAAC,CAAC,CACP,OAAO,CAAC,CAAC,CAAC,CAAC,CAEX;MAAA,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,CAC3F;MAAA,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,CACtE;MAAA,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CACnF;QAAA,CAAC,gBAAgB,EAAE;aAChB,MAAM,CACL,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CACrF;aACA,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACf,CAAC,MAAM,CACL,UAAU,CAAC,QAAQ,CACnB,eAAe,CAAC,CAAC,aAAa,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CACvE,MAAM,CAAC,CAAC,KAAK,CAAC,CACd,UAAU,CAAC,CAAC,CAAC,CAAC,CACd,SAAS,CACT,cAAc,CAAC,QAAQ,CACvB,OAAO,CAAC,CAAC,CAAC,CAAC,CACX,IAAI,CAAC,QAAQ,CACb,KAAK,CAAC,CAAC,EAAE,CAAC,CACV,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAC/C,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACzC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAC3C,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACrC,SAAS,CAAC,CAAC,CAAC,KAAiB,EAAE,EAAE;gBAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI;oBAAE,KAAK,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC5E,CAAC,CAAC,CACF,SAAS,CAAC,CAAC,CAAC,KAAe,EAAE,EAAE;gBAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACtD,KAAK,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC,CAAC,CAEF;cAAA,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAC3B;YAAA,EAAE,MAAM,CAAC,CACV,CAAC,CACN;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { GameState } from "../../../../application/contracts/game.js";
2
+ import type { PendingEncounter } from "../../../../domain/encounters/encounter.js";
3
+ import type { SpriteResolver } from "../../../sprites/contracts.js";
4
+ export declare function EncounterCard(properties: {
5
+ readonly encounter: () => GameState["pendingEncounter"];
6
+ readonly mutedColor: () => string;
7
+ readonly hoveredAction: () => "catch" | "run" | null;
8
+ readonly onHover: (action: "catch" | "run" | null) => void;
9
+ readonly onResolve: (encounterId: string, encounter: PendingEncounter, capture: boolean) => Promise<void>;
10
+ readonly resolveSprite: SpriteResolver;
11
+ readonly language?: (() => GameState["locale"]) | undefined;
12
+ }): any;
13
+ //# sourceMappingURL=encounter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encounter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/encounter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAA;AAElF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAInE,wBAAgB,aAAa,CAAC,UAAU,EAAE;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAA;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,GAAG,KAAK,GAAG,IAAI,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,SAAS,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;CAC5D,OAqDA"}
@@ -0,0 +1,30 @@
1
+ import { uiCopy } from "../../../presentation/ui-copy.js";
2
+ import { PokecodeActionButton } from "../components/action-button.js";
3
+ import { Sprite } from "../components/sprite.js";
4
+ export function EncounterCard(properties) {
5
+ const encounter = properties.encounter();
6
+ if (encounter === null)
7
+ return null;
8
+ const genderSymbol = encounter.gender === "male" ? "♂" : encounter.gender === "female" ? "♀" : "—";
9
+ const copy = uiCopy(properties.language?.() ?? "en");
10
+ return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" gap={1} padding={1}>
11
+ <box flexDirection="row">
12
+ <text fg={properties.encounter()?.caught ? "#22c55e" : properties.mutedColor()}>● </text>
13
+ <text>
14
+ {copy.encounter({
15
+ genderSymbol,
16
+ kind: encounter.kind,
17
+ level: encounter.level,
18
+ name: encounter.name,
19
+ shiny: encounter.shiny,
20
+ })}
21
+ </text>
22
+ </box>
23
+ <Sprite language={properties.language} resolve={properties.resolveSprite} shiny={encounter.shiny} gender={encounter.gender} speciesId={encounter.speciesId}/>
24
+ <box flexDirection="row" gap={1} justifyContent="center">
25
+ <PokecodeActionButton hovered={() => properties.hoveredAction() === "catch"} label={copy.catch} onActivate={() => properties.onResolve(encounter.id, encounter, true)} onHover={() => properties.onHover("catch")} onLeave={() => properties.onHover(null)} tone="primary"/>
26
+ <PokecodeActionButton hovered={() => properties.hoveredAction() === "run"} label={copy.run} onActivate={() => properties.onResolve(encounter.id, encounter, false)} onHover={() => properties.onHover("run")} onLeave={() => properties.onHover(null)} tone="secondary"/>
27
+ </box>
28
+ </box>);
29
+ }
30
+ //# sourceMappingURL=encounter.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encounter.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/encounter.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ import type { ChoiceResolutionResult, EncounterResolutionResult, EvolutionChoiceInput, LocationTravelInput, LocationTravelResult, MoveChoiceInput, PartyReplacementInput, PartyReplacementResult, PokemonCollection, PokemonDex, PokemonManagementResult, PokemonReleaseInput, PokemonRenameInput, RegionTravelInput, RegionTravelResult, StarterChoiceInput, StarterChoiceResult, TeamExport } from "../../../application/contracts/game.js";
2
+ import { type GameState } from "../../../application/contracts/game.js";
3
+ import type { SpriteInput, SpriteResolution } from "../../sprites/contracts.js";
4
+ export type EncounterResolutionInput = {
5
+ readonly encounterId: string;
6
+ };
7
+ /** Explicit transport surface for the PokéCode RPC methods consumed by the TUI. */
8
+ export interface PokemonTuiRpcTransport {
9
+ status(input: Record<string, never>): Promise<unknown>;
10
+ chooseStarter(input: StarterChoiceInput): Promise<unknown>;
11
+ travelTo(input: LocationTravelInput): Promise<unknown>;
12
+ travelToRegion(input: RegionTravelInput): Promise<unknown>;
13
+ catchEncounter(input: EncounterResolutionInput): Promise<unknown>;
14
+ runEncounter(input: EncounterResolutionInput): Promise<unknown>;
15
+ collection(input: Record<string, never>): Promise<unknown>;
16
+ dex(input: Record<string, never>): Promise<unknown>;
17
+ exportTeam(input: Record<string, never>): Promise<unknown>;
18
+ sprite(input: SpriteInput): Promise<unknown>;
19
+ replaceParty(input: PartyReplacementInput): Promise<unknown>;
20
+ renamePokemon(input: PokemonRenameInput): Promise<unknown>;
21
+ releasePokemon(input: PokemonReleaseInput): Promise<unknown>;
22
+ resolveMoveChoice(input: MoveChoiceInput): Promise<unknown>;
23
+ resolveEvolutionChoice(input: EvolutionChoiceInput): Promise<unknown>;
24
+ dismissNextRegionChoice(input: Record<string, never>): Promise<unknown>;
25
+ reopenNextRegionChoice(input: Record<string, never>): Promise<unknown>;
26
+ readonly events: {
27
+ on(event: "statusChanged", listener: (event: {
28
+ readonly data: unknown;
29
+ }) => void): () => void;
30
+ };
31
+ }
32
+ /** Parsed RPC facade: every response and event is decoded exactly once at this boundary. */
33
+ export declare function createPokemonTuiClient(transport: PokemonTuiRpcTransport): {
34
+ status: (input?: Record<string, never>) => Promise<{
35
+ phase: "onboarding" | "active";
36
+ locale: "en" | "es";
37
+ message: string;
38
+ region: string | null;
39
+ location: string | null;
40
+ party: {
41
+ position: number;
42
+ pokemon: {
43
+ id: string & import("zod").$brand<"PokemonId">;
44
+ speciesId: string & import("zod").$brand<"SpeciesId">;
45
+ name: string;
46
+ gender: "male" | "female" | "genderless";
47
+ level: number;
48
+ experience: number;
49
+ ability: string;
50
+ nature: string;
51
+ shiny: boolean;
52
+ ivs: {
53
+ hp: number;
54
+ attack: number;
55
+ defense: number;
56
+ specialAttack: number;
57
+ specialDefense: number;
58
+ speed: number;
59
+ };
60
+ evs: {
61
+ hp: 0;
62
+ attack: 0;
63
+ defense: 0;
64
+ specialAttack: 0;
65
+ specialDefense: 0;
66
+ speed: 0;
67
+ };
68
+ moves: {
69
+ id: string;
70
+ name: string;
71
+ }[];
72
+ } | null;
73
+ }[];
74
+ pendingChoices: {
75
+ id: string;
76
+ kind: string;
77
+ payload: string;
78
+ }[];
79
+ pendingEncounterCount: number;
80
+ choicePokemon: {
81
+ id: string & import("zod").$brand<"PokemonId">;
82
+ speciesId: string & import("zod").$brand<"SpeciesId">;
83
+ name: string;
84
+ gender: "male" | "female" | "genderless";
85
+ level: number;
86
+ experience: number;
87
+ ability: string;
88
+ nature: string;
89
+ shiny: boolean;
90
+ ivs: {
91
+ hp: number;
92
+ attack: number;
93
+ defense: number;
94
+ specialAttack: number;
95
+ specialDefense: number;
96
+ speed: number;
97
+ };
98
+ evs: {
99
+ hp: 0;
100
+ attack: 0;
101
+ defense: 0;
102
+ specialAttack: 0;
103
+ specialDefense: 0;
104
+ speed: 0;
105
+ };
106
+ moves: {
107
+ id: string;
108
+ name: string;
109
+ }[];
110
+ }[];
111
+ pendingEncounter: {
112
+ id: string;
113
+ kind: "special" | "ordinary";
114
+ speciesId: string & import("zod").$brand<"SpeciesId">;
115
+ name: string;
116
+ level: number;
117
+ gender: "male" | "female" | "genderless";
118
+ shiny: boolean;
119
+ spriteUrl: string;
120
+ caught: boolean;
121
+ } | null;
122
+ exploration: {
123
+ regions: {
124
+ id: string;
125
+ name: string;
126
+ visited: boolean;
127
+ completed: boolean;
128
+ locations: {
129
+ id: string & import("zod").$brand<"LocationId">;
130
+ name: string;
131
+ unlocked: boolean;
132
+ encounterless: boolean;
133
+ }[];
134
+ }[];
135
+ locations: {
136
+ id: string & import("zod").$brand<"LocationId">;
137
+ name: string;
138
+ unlocked: boolean;
139
+ encounterless: boolean;
140
+ }[];
141
+ locationUnlockProgress: number;
142
+ locationUnlockThreshold: number;
143
+ regionComplete: boolean;
144
+ } | null;
145
+ }>;
146
+ chooseStarter: (input: StarterChoiceInput) => Promise<StarterChoiceResult>;
147
+ travelTo: (input: LocationTravelInput) => Promise<LocationTravelResult>;
148
+ travelToRegion: (input: RegionTravelInput) => Promise<RegionTravelResult>;
149
+ catchEncounter: (input: EncounterResolutionInput) => Promise<EncounterResolutionResult>;
150
+ runEncounter: (input: EncounterResolutionInput) => Promise<EncounterResolutionResult>;
151
+ collection: (input?: Record<string, never>) => Promise<PokemonCollection>;
152
+ dex: (input?: Record<string, never>) => Promise<PokemonDex>;
153
+ exportTeam: (input?: Record<string, never>) => Promise<TeamExport>;
154
+ sprite: (input: SpriteInput) => Promise<SpriteResolution>;
155
+ replaceParty: (input: PartyReplacementInput) => Promise<PartyReplacementResult>;
156
+ renamePokemon: (input: PokemonRenameInput) => Promise<PokemonManagementResult>;
157
+ releasePokemon: (input: PokemonReleaseInput) => Promise<PokemonManagementResult>;
158
+ resolveMoveChoice: (input: MoveChoiceInput) => Promise<ChoiceResolutionResult>;
159
+ resolveEvolutionChoice: (input: EvolutionChoiceInput) => Promise<ChoiceResolutionResult>;
160
+ dismissNextRegionChoice: (input?: Record<string, never>) => Promise<GameState>;
161
+ reopenNextRegionChoice: (input?: Record<string, never>) => Promise<GameState>;
162
+ onStatusChanged(listener: (state: GameState) => void): () => void;
163
+ };
164
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/adapters/opencode/tui/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { choiceResolutionResultSchema, encounterResolutionResultSchema, gameStateSchema, locationTravelResultSchema, partyReplacementResultSchema, pokemonCollectionSchema, pokemonDexSchema, pokemonManagementResultSchema, regionTravelResultSchema, starterChoiceResultSchema, teamExportSchema, } from "../../../application/contracts/game.js";
2
+ import { spriteResolutionSchema } from "../../sprites/contracts.js";
3
+ /** Parsed RPC facade: every response and event is decoded exactly once at this boundary. */
4
+ export function createPokemonTuiClient(transport) {
5
+ return {
6
+ status: async (input = {}) => gameStateSchema.parse(await transport.status(input)),
7
+ chooseStarter: async (input) => starterChoiceResultSchema.parse(await transport.chooseStarter(input)),
8
+ travelTo: async (input) => locationTravelResultSchema.parse(await transport.travelTo(input)),
9
+ travelToRegion: async (input) => regionTravelResultSchema.parse(await transport.travelToRegion(input)),
10
+ catchEncounter: async (input) => encounterResolutionResultSchema.parse(await transport.catchEncounter(input)),
11
+ runEncounter: async (input) => encounterResolutionResultSchema.parse(await transport.runEncounter(input)),
12
+ collection: async (input = {}) => pokemonCollectionSchema.parse(await transport.collection(input)),
13
+ dex: async (input = {}) => pokemonDexSchema.parse(await transport.dex(input)),
14
+ exportTeam: async (input = {}) => teamExportSchema.parse(await transport.exportTeam(input)),
15
+ sprite: async (input) => spriteResolutionSchema.parse(await transport.sprite(input)),
16
+ replaceParty: async (input) => partyReplacementResultSchema.parse(await transport.replaceParty(input)),
17
+ renamePokemon: async (input) => pokemonManagementResultSchema.parse(await transport.renamePokemon(input)),
18
+ releasePokemon: async (input) => pokemonManagementResultSchema.parse(await transport.releasePokemon(input)),
19
+ resolveMoveChoice: async (input) => choiceResolutionResultSchema.parse(await transport.resolveMoveChoice(input)),
20
+ resolveEvolutionChoice: async (input) => choiceResolutionResultSchema.parse(await transport.resolveEvolutionChoice(input)),
21
+ dismissNextRegionChoice: async (input = {}) => gameStateSchema.parse(await transport.dismissNextRegionChoice(input)),
22
+ reopenNextRegionChoice: async (input = {}) => gameStateSchema.parse(await transport.reopenNextRegionChoice(input)),
23
+ onStatusChanged(listener) {
24
+ return transport.events.on("statusChanged", (event) => {
25
+ listener(gameStateSchema.parse(event.data));
26
+ });
27
+ },
28
+ };
29
+ }
30
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/adapters/opencode/tui/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { GameState } from "../../../../application/contracts/game.js";
2
+ export declare function LocationsCommand(properties: {
3
+ readonly enabled: () => boolean;
4
+ readonly language: () => GameState["locale"];
5
+ readonly onChoose: () => Promise<void>;
6
+ }): null;
7
+ export declare function DexCommand(properties: {
8
+ readonly language: () => GameState["locale"];
9
+ readonly onChoose: () => Promise<void>;
10
+ }): null;
11
+ export declare function PcCommand(properties: {
12
+ readonly enabled: () => boolean;
13
+ readonly language: () => GameState["locale"];
14
+ readonly onChoose: () => Promise<void>;
15
+ }): null;
16
+ export declare function ExportCommand(properties: {
17
+ readonly enabled: () => boolean;
18
+ readonly language: () => GameState["locale"];
19
+ readonly onExport: () => Promise<void>;
20
+ }): null;
21
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/commands/commands.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAG1E,wBAAgB,gBAAgB,CAAC,UAAU,EAAE;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC,QAkBA;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC,QAiBA;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC,QAkBA;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC,QAkBA"}
@@ -0,0 +1,78 @@
1
+ import { usePlugin } from "@opencode/plugin/tui";
2
+ import { uiCopy } from "../../../presentation/ui-copy.js";
3
+ export function LocationsCommand(properties) {
4
+ const context = usePlugin();
5
+ context.keymap.layer(() => ({
6
+ mode: "global",
7
+ priority: 10,
8
+ commands: [
9
+ {
10
+ id: "pokecode.locations",
11
+ title: uiCopy(properties.language()).locationsCommand,
12
+ group: uiCopy(properties.language()).commandGroup,
13
+ palette: true,
14
+ slash: { name: "pokecode-locations" },
15
+ enabled: properties.enabled,
16
+ run: properties.onChoose,
17
+ },
18
+ ],
19
+ }));
20
+ return null;
21
+ }
22
+ export function DexCommand(properties) {
23
+ const context = usePlugin();
24
+ context.keymap.layer(() => ({
25
+ mode: "global",
26
+ priority: 10,
27
+ commands: [
28
+ {
29
+ id: "pokecode.dex",
30
+ title: uiCopy(properties.language()).dexCommand,
31
+ group: uiCopy(properties.language()).commandGroup,
32
+ palette: true,
33
+ slash: { name: "pokecode-dex" },
34
+ run: properties.onChoose,
35
+ },
36
+ ],
37
+ }));
38
+ return null;
39
+ }
40
+ export function PcCommand(properties) {
41
+ const context = usePlugin();
42
+ context.keymap.layer(() => ({
43
+ mode: "global",
44
+ priority: 10,
45
+ commands: [
46
+ {
47
+ id: "pokecode.pc",
48
+ title: uiCopy(properties.language()).pcCommand,
49
+ group: uiCopy(properties.language()).commandGroup,
50
+ palette: true,
51
+ slash: { name: "pokecode-pc" },
52
+ enabled: properties.enabled,
53
+ run: properties.onChoose,
54
+ },
55
+ ],
56
+ }));
57
+ return null;
58
+ }
59
+ export function ExportCommand(properties) {
60
+ const context = usePlugin();
61
+ context.keymap.layer(() => ({
62
+ mode: "global",
63
+ priority: 10,
64
+ commands: [
65
+ {
66
+ id: "pokecode.export",
67
+ title: uiCopy(properties.language()).exportCommand,
68
+ group: uiCopy(properties.language()).commandGroup,
69
+ palette: true,
70
+ slash: { name: "pokecode-export" },
71
+ enabled: properties.enabled,
72
+ run: properties.onExport,
73
+ },
74
+ ],
75
+ }));
76
+ return null;
77
+ }
78
+ //# sourceMappingURL=commands.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/commands/commands.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAEzD,MAAM,UAAU,gBAAgB,CAAC,UAIhC;IACC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,oBAAoB;gBACxB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,gBAAgB;gBACrD,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY;gBACjD,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBACrC,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,GAAG,EAAE,UAAU,CAAC,QAAQ;aACzB;SACF;KACF,CAAC,CAAC,CAAA;IACH,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAG1B;IACC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,cAAc;gBAClB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU;gBAC/C,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY;gBACjD,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAC/B,GAAG,EAAE,UAAU,CAAC,QAAQ;aACzB;SACF;KACF,CAAC,CAAC,CAAA;IACH,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAIzB;IACC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS;gBAC9C,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY;gBACjD,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;gBAC9B,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,GAAG,EAAE,UAAU,CAAC,QAAQ;aACzB;SACF;KACF,CAAC,CAAC,CAAA;IACH,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAI7B;IACC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,iBAAiB;gBACrB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,aAAa;gBAClD,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY;gBACjD,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBAClC,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,GAAG,EAAE,UAAU,CAAC,QAAQ;aACzB;SACF;KACF,CAAC,CAAC,CAAA;IACH,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const bold: number;
2
+ type ActionTone = "primary" | "secondary" | "success";
3
+ export declare function PokecodeActionButton(properties: {
4
+ readonly hovered: () => boolean;
5
+ readonly label: string;
6
+ readonly onActivate: () => Promise<void>;
7
+ readonly onHover: () => void;
8
+ readonly onLeave: () => void;
9
+ readonly tone: ActionTone;
10
+ }): any;
11
+ export {};
12
+ //# sourceMappingURL=action-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-button.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/action-button.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,QAAuC,CAAA;AAExD,KAAK,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;AAErD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAC1B,OAwBA"}
@@ -0,0 +1,13 @@
1
+ import { createTextAttributes } from "@opentui/core";
2
+ export const bold = createTextAttributes({ bold: true });
3
+ export function PokecodeActionButton(properties) {
4
+ const colors = {
5
+ primary: { base: "#2563eb", hovered: "#1d4ed8" },
6
+ secondary: { base: "#6b7280", hovered: "#4b5563" },
7
+ success: { base: "#16a34a", hovered: "#15803d" },
8
+ }[properties.tone];
9
+ return (<button alignItems="center" backgroundColor={properties.hovered() ? colors.hovered : colors.base} focusable justifyContent="center" paddingLeft={2} paddingRight={2} type="button" onBlur={properties.onLeave} onFocus={properties.onHover} onMouseOut={properties.onLeave} onMouseOver={properties.onHover} onMouseUp={() => void properties.onActivate()}>
10
+ <text fg="#ffffff">{properties.label}</text>
11
+ </button>);
12
+ }
13
+ //# sourceMappingURL=action-button.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-button.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/action-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEpD,MAAM,CAAC,MAAM,IAAI,GAAG,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAIxD,MAAM,UAAU,oBAAoB,CAAC,UAOpC;IACC,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;QAChD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;QAClD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;KACjD,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,OAAO,CACL,CAAC,MAAM,CACL,UAAU,CAAC,QAAQ,CACnB,eAAe,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACrE,SAAS,CACT,cAAc,CAAC,QAAQ,CACvB,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,YAAY,CAAC,CAAC,CAAC,CAAC,CAChB,IAAI,CAAC,QAAQ,CACb,MAAM,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAC3B,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAC5B,UAAU,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAC/B,WAAW,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAChC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC,CAE9C;MAAA,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAC7C;IAAA,EAAE,MAAM,CAAC,CACV,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Move } from "../../../../domain/pokemon/types.js";
2
+ import type { Language } from "../../../../domain/shared/language.js";
3
+ import "../controls/native.js";
4
+ export declare function MoveList(properties: {
5
+ readonly moves: readonly Move[];
6
+ readonly language: Language;
7
+ readonly offeredMoveId?: string;
8
+ readonly height?: number;
9
+ readonly centered?: boolean;
10
+ readonly leftAlignMoves?: boolean;
11
+ readonly onActivate?: (moveId: string) => Promise<void>;
12
+ }): any;
13
+ //# sourceMappingURL=move-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-list.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/move-list.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,uBAAuB,CAAA;AAE9B,wBAAgB,QAAQ,CAAC,UAAU,EAAE;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACxD,OA4JA"}