@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.
- package/LICENSE +201 -0
- package/README.md +331 -2
- package/dist/adapters/opencode/rpc/contract.d.ts +813 -0
- package/dist/adapters/opencode/rpc/contract.d.ts.map +1 -0
- package/dist/adapters/opencode/rpc/contract.js +254 -0
- package/dist/adapters/opencode/rpc/contract.js.map +1 -0
- package/dist/adapters/opencode/server/handlers.d.ts +20 -0
- package/dist/adapters/opencode/server/handlers.d.ts.map +1 -0
- package/dist/adapters/opencode/server/handlers.js +41 -0
- package/dist/adapters/opencode/server/handlers.js.map +1 -0
- package/dist/adapters/opencode/server/plugin.d.ts +19 -0
- package/dist/adapters/opencode/server/plugin.d.ts.map +1 -0
- package/dist/adapters/opencode/server/plugin.js +101 -0
- package/dist/adapters/opencode/server/plugin.js.map +1 -0
- package/dist/adapters/opencode/server/usage-reconciliation.d.ts +24 -0
- package/dist/adapters/opencode/server/usage-reconciliation.d.ts.map +1 -0
- package/dist/adapters/opencode/server/usage-reconciliation.js +60 -0
- package/dist/adapters/opencode/server/usage-reconciliation.js.map +1 -0
- package/dist/adapters/opencode/tui/choices/cards.d.ts +32 -0
- package/dist/adapters/opencode/tui/choices/cards.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/choices/cards.jsx +114 -0
- package/dist/adapters/opencode/tui/choices/cards.jsx.map +1 -0
- package/dist/adapters/opencode/tui/choices/encounter.d.ts +13 -0
- package/dist/adapters/opencode/tui/choices/encounter.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/choices/encounter.jsx +30 -0
- package/dist/adapters/opencode/tui/choices/encounter.jsx.map +1 -0
- package/dist/adapters/opencode/tui/client.d.ts +164 -0
- package/dist/adapters/opencode/tui/client.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/client.js +30 -0
- package/dist/adapters/opencode/tui/client.js.map +1 -0
- package/dist/adapters/opencode/tui/commands/commands.d.ts +21 -0
- package/dist/adapters/opencode/tui/commands/commands.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/commands/commands.jsx +78 -0
- package/dist/adapters/opencode/tui/commands/commands.jsx.map +1 -0
- package/dist/adapters/opencode/tui/components/action-button.d.ts +12 -0
- package/dist/adapters/opencode/tui/components/action-button.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/action-button.jsx +13 -0
- package/dist/adapters/opencode/tui/components/action-button.jsx.map +1 -0
- package/dist/adapters/opencode/tui/components/move-list.d.ts +13 -0
- package/dist/adapters/opencode/tui/components/move-list.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/move-list.jsx +91 -0
- package/dist/adapters/opencode/tui/components/move-list.jsx.map +1 -0
- package/dist/adapters/opencode/tui/components/owner.d.ts +3 -0
- package/dist/adapters/opencode/tui/components/owner.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/owner.js +16 -0
- package/dist/adapters/opencode/tui/components/owner.js.map +1 -0
- package/dist/adapters/opencode/tui/components/sprite.d.ts +13 -0
- package/dist/adapters/opencode/tui/components/sprite.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/sprite.jsx +30 -0
- package/dist/adapters/opencode/tui/components/sprite.jsx.map +1 -0
- package/dist/adapters/opencode/tui/controls/native.d.ts +2 -0
- package/dist/adapters/opencode/tui/controls/native.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/controls/native.js +22 -0
- package/dist/adapters/opencode/tui/controls/native.js.map +1 -0
- package/dist/adapters/opencode/tui/dex/actions.d.ts +12 -0
- package/dist/adapters/opencode/tui/dex/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/dex/actions.jsx +15 -0
- package/dist/adapters/opencode/tui/dex/actions.jsx.map +1 -0
- package/dist/adapters/opencode/tui/dex/dialog.d.ts +12 -0
- package/dist/adapters/opencode/tui/dex/dialog.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/dex/dialog.jsx +79 -0
- package/dist/adapters/opencode/tui/dex/dialog.jsx.map +1 -0
- package/dist/adapters/opencode/tui/export/actions.d.ts +14 -0
- package/dist/adapters/opencode/tui/export/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/export/actions.js +25 -0
- package/dist/adapters/opencode/tui/export/actions.js.map +1 -0
- package/dist/adapters/opencode/tui/export/presentation.d.ts +16 -0
- package/dist/adapters/opencode/tui/export/presentation.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/export/presentation.js +15 -0
- package/dist/adapters/opencode/tui/export/presentation.js.map +1 -0
- package/dist/adapters/opencode/tui/pc/actions.d.ts +22 -0
- package/dist/adapters/opencode/tui/pc/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/pc/actions.jsx +47 -0
- package/dist/adapters/opencode/tui/pc/actions.jsx.map +1 -0
- package/dist/adapters/opencode/tui/pc/details.d.ts +10 -0
- package/dist/adapters/opencode/tui/pc/details.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/pc/details.jsx +51 -0
- package/dist/adapters/opencode/tui/pc/details.jsx.map +1 -0
- package/dist/adapters/opencode/tui/pc/dialog.d.ts +19 -0
- package/dist/adapters/opencode/tui/pc/dialog.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/pc/dialog.jsx +263 -0
- package/dist/adapters/opencode/tui/pc/dialog.jsx.map +1 -0
- package/dist/adapters/opencode/tui/plugin.d.ts +14 -0
- package/dist/adapters/opencode/tui/plugin.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/plugin.jsx +103 -0
- package/dist/adapters/opencode/tui/plugin.jsx.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/actions.d.ts +21 -0
- package/dist/adapters/opencode/tui/sidebar/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/actions.js +54 -0
- package/dist/adapters/opencode/tui/sidebar/actions.js.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/register.d.ts +30 -0
- package/dist/adapters/opencode/tui/sidebar/register.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/register.jsx +21 -0
- package/dist/adapters/opencode/tui/sidebar/register.jsx.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/view.d.ts +43 -0
- package/dist/adapters/opencode/tui/sidebar/view.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/view.jsx +166 -0
- package/dist/adapters/opencode/tui/sidebar/view.jsx.map +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.d.ts +8 -0
- package/dist/adapters/opencode/tui/state/cleanup.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.js +68 -0
- package/dist/adapters/opencode/tui/state/cleanup.js.map +1 -0
- package/dist/adapters/opencode/tui/state/coordinator.d.ts +122 -0
- package/dist/adapters/opencode/tui/state/coordinator.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/state/coordinator.js +40 -0
- package/dist/adapters/opencode/tui/state/coordinator.js.map +1 -0
- package/dist/adapters/opencode/tui/state/setup-failure.d.ts +2 -0
- package/dist/adapters/opencode/tui/state/setup-failure.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/state/setup-failure.js +10 -0
- package/dist/adapters/opencode/tui/state/setup-failure.js.map +1 -0
- package/dist/adapters/opencode/tui/travel/actions.d.ts +16 -0
- package/dist/adapters/opencode/tui/travel/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/travel/actions.jsx +31 -0
- package/dist/adapters/opencode/tui/travel/actions.jsx.map +1 -0
- package/dist/adapters/opencode/tui/travel/dialog.d.ts +29 -0
- package/dist/adapters/opencode/tui/travel/dialog.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/travel/dialog.jsx +128 -0
- package/dist/adapters/opencode/tui/travel/dialog.jsx.map +1 -0
- package/dist/adapters/opencode/tui/travel/projection.d.ts +29 -0
- package/dist/adapters/opencode/tui/travel/projection.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/travel/projection.js +44 -0
- package/dist/adapters/opencode/tui/travel/projection.js.map +1 -0
- package/dist/adapters/presentation/game-notifications.d.ts +13 -0
- package/dist/adapters/presentation/game-notifications.d.ts.map +1 -0
- package/dist/adapters/presentation/game-notifications.js +111 -0
- package/dist/adapters/presentation/game-notifications.js.map +1 -0
- package/dist/adapters/presentation/localization.d.ts +12 -0
- package/dist/adapters/presentation/localization.d.ts.map +1 -0
- package/dist/adapters/presentation/localization.js +65 -0
- package/dist/adapters/presentation/localization.js.map +1 -0
- package/dist/adapters/presentation/move-details.d.ts +11 -0
- package/dist/adapters/presentation/move-details.d.ts.map +1 -0
- package/dist/adapters/presentation/move-details.js +47 -0
- package/dist/adapters/presentation/move-details.js.map +1 -0
- package/dist/adapters/presentation/pc-copy.d.ts +31 -0
- package/dist/adapters/presentation/pc-copy.d.ts.map +1 -0
- package/dist/adapters/presentation/pc-copy.js +56 -0
- package/dist/adapters/presentation/pc-copy.js.map +1 -0
- package/dist/adapters/presentation/ui-copy.d.ts +49 -0
- package/dist/adapters/presentation/ui-copy.d.ts.map +1 -0
- package/dist/adapters/presentation/ui-copy.js +81 -0
- package/dist/adapters/presentation/ui-copy.js.map +1 -0
- package/dist/adapters/showdown/format-team.d.ts +3 -0
- package/dist/adapters/showdown/format-team.d.ts.map +1 -0
- package/dist/adapters/showdown/format-team.js +23 -0
- package/dist/adapters/showdown/format-team.js.map +1 -0
- package/dist/adapters/sprites/cache.d.ts +12 -0
- package/dist/adapters/sprites/cache.d.ts.map +1 -0
- package/dist/adapters/sprites/cache.js +43 -0
- package/dist/adapters/sprites/cache.js.map +1 -0
- package/dist/adapters/sprites/contracts.d.ts +20 -0
- package/dist/adapters/sprites/contracts.d.ts.map +1 -0
- package/dist/adapters/sprites/contracts.js +12 -0
- package/dist/adapters/sprites/contracts.js.map +1 -0
- package/dist/adapters/sqlite/game-repository.d.ts +14 -0
- package/dist/adapters/sqlite/game-repository.d.ts.map +1 -0
- package/dist/adapters/sqlite/game-repository.js +48 -0
- package/dist/adapters/sqlite/game-repository.js.map +1 -0
- package/dist/adapters/sqlite/game-transaction.d.ts +5 -0
- package/dist/adapters/sqlite/game-transaction.d.ts.map +1 -0
- package/dist/adapters/sqlite/game-transaction.js +35 -0
- package/dist/adapters/sqlite/game-transaction.js.map +1 -0
- package/dist/adapters/sqlite/initialize-database.d.ts +6 -0
- package/dist/adapters/sqlite/initialize-database.d.ts.map +1 -0
- package/dist/adapters/sqlite/initialize-database.js +15 -0
- package/dist/adapters/sqlite/initialize-database.js.map +1 -0
- package/dist/adapters/sqlite/pokemon-mapper.d.ts +23 -0
- package/dist/adapters/sqlite/pokemon-mapper.d.ts.map +1 -0
- package/dist/adapters/sqlite/pokemon-mapper.js +41 -0
- package/dist/adapters/sqlite/pokemon-mapper.js.map +1 -0
- package/dist/adapters/sqlite/queries/collection.d.ts +8 -0
- package/dist/adapters/sqlite/queries/collection.d.ts.map +1 -0
- package/dist/adapters/sqlite/queries/collection.js +58 -0
- package/dist/adapters/sqlite/queries/collection.js.map +1 -0
- package/dist/adapters/sqlite/queries/game-state.d.ts +4 -0
- package/dist/adapters/sqlite/queries/game-state.d.ts.map +1 -0
- package/dist/adapters/sqlite/queries/game-state.js +165 -0
- package/dist/adapters/sqlite/queries/game-state.js.map +1 -0
- package/dist/adapters/sqlite/schema.d.ts +4 -0
- package/dist/adapters/sqlite/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/schema.js +284 -0
- package/dist/adapters/sqlite/schema.js.map +1 -0
- package/dist/adapters/sqlite/starter-selection-store.d.ts +4 -0
- package/dist/adapters/sqlite/starter-selection-store.d.ts.map +1 -0
- package/dist/adapters/sqlite/starter-selection-store.js +55 -0
- package/dist/adapters/sqlite/starter-selection-store.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/choices.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/choices.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/choices.js +54 -0
- package/dist/adapters/sqlite/transaction-stores/choices.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.js +59 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.js +65 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.js +160 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts +5 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.js +15 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.d.ts +4 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.js +11 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.d.ts +4 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.js +11 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.js.map +1 -0
- package/dist/application/contracts/game.d.ts +1412 -0
- package/dist/application/contracts/game.d.ts.map +1 -0
- package/dist/application/contracts/game.js +126 -0
- package/dist/application/contracts/game.js.map +1 -0
- package/dist/application/contracts/starter-choice.d.ts +6 -0
- package/dist/application/contracts/starter-choice.d.ts.map +1 -0
- package/dist/application/contracts/starter-choice.js +2 -0
- package/dist/application/contracts/starter-choice.js.map +1 -0
- package/dist/application/game.d.ts +34 -0
- package/dist/application/game.d.ts.map +1 -0
- package/dist/application/game.js +67 -0
- package/dist/application/game.js.map +1 -0
- package/dist/application/ports/game-transaction.d.ts +172 -0
- package/dist/application/ports/game-transaction.d.ts.map +1 -0
- package/dist/application/ports/game-transaction.js +2 -0
- package/dist/application/ports/game-transaction.js.map +1 -0
- package/dist/application/ports/game.d.ts +11 -0
- package/dist/application/ports/game.d.ts.map +1 -0
- package/dist/application/ports/game.js +2 -0
- package/dist/application/ports/game.js.map +1 -0
- package/dist/application/ports/starter-selection-store.d.ts +23 -0
- package/dist/application/ports/starter-selection-store.d.ts.map +1 -0
- package/dist/application/ports/starter-selection-store.js +2 -0
- package/dist/application/ports/starter-selection-store.js.map +1 -0
- package/dist/application/use-cases/choices.d.ts +9 -0
- package/dist/application/use-cases/choices.d.ts.map +1 -0
- package/dist/application/use-cases/choices.js +111 -0
- package/dist/application/use-cases/choices.js.map +1 -0
- package/dist/application/use-cases/choose-regional-starter.d.ts +4 -0
- package/dist/application/use-cases/choose-regional-starter.d.ts.map +1 -0
- package/dist/application/use-cases/choose-regional-starter.js +37 -0
- package/dist/application/use-cases/choose-regional-starter.js.map +1 -0
- package/dist/application/use-cases/choose-starter.d.ts +15 -0
- package/dist/application/use-cases/choose-starter.d.ts.map +1 -0
- package/dist/application/use-cases/choose-starter.js +26 -0
- package/dist/application/use-cases/choose-starter.js.map +1 -0
- package/dist/application/use-cases/encounters.d.ts +234 -0
- package/dist/application/use-cases/encounters.d.ts.map +1 -0
- package/dist/application/use-cases/encounters.js +39 -0
- package/dist/application/use-cases/encounters.js.map +1 -0
- package/dist/application/use-cases/game-command-support.d.ts +16 -0
- package/dist/application/use-cases/game-command-support.d.ts.map +1 -0
- package/dist/application/use-cases/game-command-support.js +16 -0
- package/dist/application/use-cases/game-command-support.js.map +1 -0
- package/dist/application/use-cases/game-commands.d.ts +244 -0
- package/dist/application/use-cases/game-commands.d.ts.map +1 -0
- package/dist/application/use-cases/game-commands.js +14 -0
- package/dist/application/use-cases/game-commands.js.map +1 -0
- package/dist/application/use-cases/learn-move.d.ts +22 -0
- package/dist/application/use-cases/learn-move.d.ts.map +1 -0
- package/dist/application/use-cases/learn-move.js +24 -0
- package/dist/application/use-cases/learn-move.js.map +1 -0
- package/dist/application/use-cases/party.d.ts +8 -0
- package/dist/application/use-cases/party.d.ts.map +1 -0
- package/dist/application/use-cases/party.js +44 -0
- package/dist/application/use-cases/party.js.map +1 -0
- package/dist/application/use-cases/record-usage.d.ts +10 -0
- package/dist/application/use-cases/record-usage.d.ts.map +1 -0
- package/dist/application/use-cases/record-usage.js +145 -0
- package/dist/application/use-cases/record-usage.js.map +1 -0
- package/dist/application/use-cases/resolve-progression.d.ts +9 -0
- package/dist/application/use-cases/resolve-progression.d.ts.map +1 -0
- package/dist/application/use-cases/resolve-progression.js +80 -0
- package/dist/application/use-cases/resolve-progression.js.map +1 -0
- package/dist/application/use-cases/travel.d.ts +7 -0
- package/dist/application/use-cases/travel.d.ts.map +1 -0
- package/dist/application/use-cases/travel.js +58 -0
- package/dist/application/use-cases/travel.js.map +1 -0
- package/dist/cli/command.d.ts +16 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +73 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/install.d.ts +9 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +23 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +124 -0
- package/dist/cli.js.map +1 -0
- package/dist/domain/choices/choices.d.ts +79 -0
- package/dist/domain/choices/choices.d.ts.map +1 -0
- package/dist/domain/choices/choices.js +54 -0
- package/dist/domain/choices/choices.js.map +1 -0
- package/dist/domain/content/catalog.d.ts +241 -0
- package/dist/domain/content/catalog.d.ts.map +1 -0
- package/dist/domain/content/catalog.js +286 -0
- package/dist/domain/content/catalog.js.map +1 -0
- package/dist/domain/content/catalogs/abilities-catalog.d.ts +8 -0
- package/dist/domain/content/catalogs/abilities-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/abilities-catalog.js +2054 -0
- package/dist/domain/content/catalogs/abilities-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts +4949 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.js +5994 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/encouter-methods.d.ts +2 -0
- package/dist/domain/content/catalogs/encouter-methods.d.ts.map +1 -0
- package/dist/domain/content/catalogs/encouter-methods.js +69 -0
- package/dist/domain/content/catalogs/encouter-methods.js.map +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts +6707 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.js +8089 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts +2922 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js +3541 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts +29 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.js +4151 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts +29 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.js +4346 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts +2304 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.js +2796 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/moves-catalog.d.ts +62 -0
- package/dist/domain/content/catalogs/moves-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/moves-catalog.js +12883 -0
- package/dist/domain/content/catalogs/moves-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/natures-catalog.d.ts +202 -0
- package/dist/domain/content/catalogs/natures-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/natures-catalog.js +228 -0
- package/dist/domain/content/catalogs/natures-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts +14756 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.js +17762 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/pokemon-catalog.d.ts +75 -0
- package/dist/domain/content/catalogs/pokemon-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/pokemon-catalog.js +100649 -0
- package/dist/domain/content/catalogs/pokemon-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.d.ts +3033 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.js +4358 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/regions-catalog.d.ts +8 -0
- package/dist/domain/content/catalogs/regions-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/regions-catalog.js +66 -0
- package/dist/domain/content/catalogs/regions-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts +5955 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js +7184 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/stats-catalog.d.ts +38 -0
- package/dist/domain/content/catalogs/stats-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/stats-catalog.js +45 -0
- package/dist/domain/content/catalogs/stats-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/types-catalog.d.ts +8 -0
- package/dist/domain/content/catalogs/types-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/types-catalog.js +129 -0
- package/dist/domain/content/catalogs/types-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts +29 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.js +6552 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.js.map +1 -0
- package/dist/domain/content/encounter-catalog.d.ts +27 -0
- package/dist/domain/content/encounter-catalog.d.ts.map +1 -0
- package/dist/domain/content/encounter-catalog.js +75 -0
- package/dist/domain/content/encounter-catalog.js.map +1 -0
- package/dist/domain/content/names.d.ts +6 -0
- package/dist/domain/content/names.d.ts.map +1 -0
- package/dist/domain/content/names.js +7 -0
- package/dist/domain/content/names.js.map +1 -0
- package/dist/domain/content/schema.d.ts +153 -0
- package/dist/domain/content/schema.d.ts.map +1 -0
- package/dist/domain/content/schema.js +81 -0
- package/dist/domain/content/schema.js.map +1 -0
- package/dist/domain/content/sprites.d.ts +5 -0
- package/dist/domain/content/sprites.d.ts.map +1 -0
- package/dist/domain/content/sprites.js +22 -0
- package/dist/domain/content/sprites.js.map +1 -0
- package/dist/domain/encounters/encounter.d.ts +56 -0
- package/dist/domain/encounters/encounter.d.ts.map +1 -0
- package/dist/domain/encounters/encounter.js +74 -0
- package/dist/domain/encounters/encounter.js.map +1 -0
- package/dist/domain/exploration/exploration.d.ts +63 -0
- package/dist/domain/exploration/exploration.d.ts.map +1 -0
- package/dist/domain/exploration/exploration.js +48 -0
- package/dist/domain/exploration/exploration.js.map +1 -0
- package/dist/domain/party/party.d.ts +59 -0
- package/dist/domain/party/party.d.ts.map +1 -0
- package/dist/domain/party/party.js +19 -0
- package/dist/domain/party/party.js.map +1 -0
- package/dist/domain/pokemon/model.d.ts +43 -0
- package/dist/domain/pokemon/model.d.ts.map +1 -0
- package/dist/domain/pokemon/model.js +18 -0
- package/dist/domain/pokemon/model.js.map +1 -0
- package/dist/domain/pokemon/nature.d.ts +10 -0
- package/dist/domain/pokemon/nature.d.ts.map +1 -0
- package/dist/domain/pokemon/nature.js +23 -0
- package/dist/domain/pokemon/nature.js.map +1 -0
- package/dist/domain/pokemon/starter.d.ts +23 -0
- package/dist/domain/pokemon/starter.d.ts.map +1 -0
- package/dist/domain/pokemon/starter.js +59 -0
- package/dist/domain/pokemon/starter.js.map +1 -0
- package/dist/domain/pokemon/stats.d.ts +6 -0
- package/dist/domain/pokemon/stats.d.ts.map +1 -0
- package/dist/domain/pokemon/stats.js +35 -0
- package/dist/domain/pokemon/stats.js.map +1 -0
- package/dist/domain/pokemon/types.d.ts +37 -0
- package/dist/domain/pokemon/types.d.ts.map +1 -0
- package/dist/domain/pokemon/types.js +30 -0
- package/dist/domain/pokemon/types.js.map +1 -0
- package/dist/domain/progression/catalog.d.ts +34 -0
- package/dist/domain/progression/catalog.d.ts.map +1 -0
- package/dist/domain/progression/catalog.js +258 -0
- package/dist/domain/progression/catalog.js.map +1 -0
- package/dist/domain/progression/level-evolution.d.ts +13 -0
- package/dist/domain/progression/level-evolution.d.ts.map +1 -0
- package/dist/domain/progression/level-evolution.js +245 -0
- package/dist/domain/progression/level-evolution.js.map +1 -0
- package/dist/domain/progression/policies.d.ts +38 -0
- package/dist/domain/progression/policies.d.ts.map +1 -0
- package/dist/domain/progression/policies.js +78 -0
- package/dist/domain/progression/policies.js.map +1 -0
- package/dist/domain/shared/identifiers.d.ts +12 -0
- package/dist/domain/shared/identifiers.d.ts.map +1 -0
- package/dist/domain/shared/identifiers.js +7 -0
- package/dist/domain/shared/identifiers.js.map +1 -0
- package/dist/domain/shared/language.d.ts +7 -0
- package/dist/domain/shared/language.d.ts.map +1 -0
- package/dist/domain/shared/language.js +3 -0
- package/dist/domain/shared/language.js.map +1 -0
- package/dist/domain/trainer/trainer.d.ts +7 -0
- package/dist/domain/trainer/trainer.d.ts.map +1 -0
- package/dist/domain/trainer/trainer.js +2 -0
- package/dist/domain/trainer/trainer.js.map +1 -0
- package/dist/domain/usage/usage.d.ts +21 -0
- package/dist/domain/usage/usage.d.ts.map +1 -0
- package/dist/domain/usage/usage.js +23 -0
- package/dist/domain/usage/usage.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +183817 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +10 -0
- package/dist/rpc.d.ts +2 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +568 -0
- package/dist/rpc.js.map +1 -0
- package/dist/tui.d.ts +2 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +184828 -0
- package/package.json +83 -4
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { uiCopy } from "../../../presentation/ui-copy.js";
|
|
2
|
+
import { DexCommand, ExportCommand, LocationsCommand, PcCommand } from "../commands/commands.js";
|
|
3
|
+
import { SidebarView } from "./view.js";
|
|
4
|
+
export function registerPokemonSidebar(dependencies) {
|
|
5
|
+
const copy = () => uiCopy(dependencies.state().locale);
|
|
6
|
+
return dependencies.slot({
|
|
7
|
+
append: "sidebar.content",
|
|
8
|
+
render: () => (<box flexDirection="column" paddingTop={1} gap={1}>
|
|
9
|
+
<SidebarTitle color={dependencies.theme.base} title={copy().title}/>
|
|
10
|
+
<LocationsCommand enabled={() => dependencies.state().phase === "active"} language={() => dependencies.state().locale} onChoose={dependencies.chooseLocation}/>
|
|
11
|
+
<DexCommand language={() => dependencies.state().locale} onChoose={dependencies.showDex}/>
|
|
12
|
+
<PcCommand enabled={() => dependencies.state().phase === "active"} language={() => dependencies.state().locale} onChoose={dependencies.chooseParty}/>
|
|
13
|
+
<ExportCommand enabled={() => dependencies.state().phase === "active"} language={() => dependencies.state().locale} onExport={dependencies.exportTeam}/>
|
|
14
|
+
<SidebarView hoveredEncounterAction={dependencies.hoveredEncounterAction} hoveredStarter={dependencies.hoveredStarter} hoverStarter={dependencies.setHoveredStarter} mutedColor={dependencies.theme.muted} onChooseStarter={dependencies.actions.chooseStarter} onTravelRegion={dependencies.actions.travelToRegion} onTravelLocation={dependencies.actions.travelToLocation} onResolveEncounter={dependencies.actions.resolveEncounter} onResolveEvolution={dependencies.actions.resolveEvolutionChoice} onResolveMove={dependencies.actions.resolveMoveChoice} resolveSprite={dependencies.resolveSprite} setHoveredEncounterAction={dependencies.setHoveredEncounterAction} starterHoverBackground={dependencies.theme.muted} state={dependencies.state}/>
|
|
15
|
+
</box>),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export function SidebarTitle(properties) {
|
|
19
|
+
return <text fg={properties.color()}>{properties.title}</text>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=register.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/sidebar/register.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Accessor } from "solid-js";
|
|
2
|
+
import type { GameState } from "../../../../application/contracts/game.js";
|
|
3
|
+
import type { PendingEncounter } from "../../../../domain/encounters/encounter.js";
|
|
4
|
+
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
5
|
+
type SidebarViewKind = "starter" | "move" | "evolution" | "region" | "encounter" | "team";
|
|
6
|
+
export declare function sidebarViewFor(state: GameState): SidebarViewKind;
|
|
7
|
+
export declare function SidebarView(properties: {
|
|
8
|
+
readonly hoveredEncounterAction: () => "catch" | "run" | null;
|
|
9
|
+
readonly hoveredStarter: () => string | null;
|
|
10
|
+
readonly hoverStarter: (speciesId: string | null) => void;
|
|
11
|
+
readonly mutedColor: () => string;
|
|
12
|
+
readonly onChooseStarter: (regionId: string, speciesId: string) => Promise<void>;
|
|
13
|
+
readonly onTravelRegion: (regionId: string) => Promise<void>;
|
|
14
|
+
readonly onTravelLocation: (locationId: string) => Promise<void>;
|
|
15
|
+
readonly onResolveEncounter: (encounterId: string, encounter: PendingEncounter, capture: boolean) => Promise<void>;
|
|
16
|
+
readonly onResolveEvolution: (choiceId: string, selectedSpeciesId: string) => Promise<void>;
|
|
17
|
+
readonly onResolveMove: (choiceId: string, selectedMoveId: string) => Promise<void>;
|
|
18
|
+
readonly resolveSprite: SpriteResolver;
|
|
19
|
+
readonly setHoveredEncounterAction: (action: "catch" | "run" | null) => void;
|
|
20
|
+
readonly starterHoverBackground: string | Accessor<string>;
|
|
21
|
+
readonly state: () => GameState;
|
|
22
|
+
}): any;
|
|
23
|
+
type StarterButtonsProperties = {
|
|
24
|
+
readonly resolveSprite: SpriteResolver;
|
|
25
|
+
readonly regionId?: () => string | undefined;
|
|
26
|
+
readonly hovered: () => string | null;
|
|
27
|
+
readonly hoverBackground: string | Accessor<string>;
|
|
28
|
+
readonly language?: (() => GameState["locale"]) | undefined;
|
|
29
|
+
readonly onChoose: (regionId: string, speciesId: string) => Promise<void>;
|
|
30
|
+
readonly onHover: (speciesId: string | null) => void;
|
|
31
|
+
};
|
|
32
|
+
export declare function StarterButtons(properties: StarterButtonsProperties): any;
|
|
33
|
+
export declare function LocationProgress(properties: {
|
|
34
|
+
readonly state: () => GameState;
|
|
35
|
+
readonly onTravel: (locationId: string) => Promise<void>;
|
|
36
|
+
}): any;
|
|
37
|
+
export declare function PartyGrid(properties: {
|
|
38
|
+
readonly language?: (() => GameState["locale"]) | undefined;
|
|
39
|
+
readonly party: () => GameState["party"];
|
|
40
|
+
readonly resolveSprite: SpriteResolver;
|
|
41
|
+
}): any;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/sidebar/view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { MouseButton } from "@opentui/core";
|
|
2
|
+
import { createSignal, Match, Show, Switch } from "solid-js";
|
|
3
|
+
import { decodeStarterChoiceProjection } from "../../../../domain/choices/choices.js";
|
|
4
|
+
import { regions, startersForRegion } from "../../../../domain/content/catalog.js";
|
|
5
|
+
import { uiCopy } from "../../../presentation/ui-copy.js";
|
|
6
|
+
import { PendingChoiceCard, RegionChoiceCard } from "../choices/cards.js";
|
|
7
|
+
import { EncounterCard } from "../choices/encounter.js";
|
|
8
|
+
import { PokecodeActionButton } from "../components/action-button.js";
|
|
9
|
+
import { Sprite } from "../components/sprite.js";
|
|
10
|
+
export function sidebarViewFor(state) {
|
|
11
|
+
if (state.phase === "onboarding")
|
|
12
|
+
return "starter";
|
|
13
|
+
const pendingChoice = state.pendingChoices[0];
|
|
14
|
+
if (pendingChoice?.kind === "starter")
|
|
15
|
+
return "starter";
|
|
16
|
+
if (pendingChoice?.kind === "move")
|
|
17
|
+
return "move";
|
|
18
|
+
if (pendingChoice?.kind === "evolution")
|
|
19
|
+
return "evolution";
|
|
20
|
+
if (pendingChoice?.kind === "region")
|
|
21
|
+
return "region";
|
|
22
|
+
if (state.pendingEncounter !== null)
|
|
23
|
+
return "encounter";
|
|
24
|
+
return "team";
|
|
25
|
+
}
|
|
26
|
+
export function SidebarView(properties) {
|
|
27
|
+
const view = () => sidebarViewFor(properties.state());
|
|
28
|
+
const decisionCount = () => properties.state().pendingChoices.filter((choice) => choice.kind !== "catch").length;
|
|
29
|
+
const encounterCount = () => properties.state().pendingEncounterCount;
|
|
30
|
+
return (<box flexDirection="column" gap={1}>
|
|
31
|
+
<Show when={decisionCount() + encounterCount() > 0}>
|
|
32
|
+
<text>
|
|
33
|
+
{uiCopy(properties.state().locale).queueCounts(decisionCount(), encounterCount())}
|
|
34
|
+
</text>
|
|
35
|
+
</Show>
|
|
36
|
+
<Switch>
|
|
37
|
+
<Match when={view() === "starter"}>
|
|
38
|
+
<StarterButtons hovered={properties.hoveredStarter} hoverBackground={properties.starterHoverBackground} language={() => properties.state().locale} regionId={() => {
|
|
39
|
+
const choice = properties.state().pendingChoices[0];
|
|
40
|
+
return choice?.kind === "starter"
|
|
41
|
+
? decodeStarterChoiceProjection(choice.payload)?.region
|
|
42
|
+
: undefined;
|
|
43
|
+
}} onChoose={properties.onChooseStarter} onHover={properties.hoverStarter} resolveSprite={properties.resolveSprite}/>
|
|
44
|
+
</Match>
|
|
45
|
+
<Match when={view() === "move" || view() === "evolution"}>
|
|
46
|
+
<PendingChoiceCard state={properties.state} onResolveEvolution={properties.onResolveEvolution} onResolveMove={properties.onResolveMove} resolveSprite={properties.resolveSprite} language={() => properties.state().locale}/>
|
|
47
|
+
</Match>
|
|
48
|
+
<Match when={view() === "region"}>
|
|
49
|
+
<RegionChoiceCard choice={() => properties.state().pendingChoices[0]} language={() => properties.state().locale} visitedRegionIds={() => properties
|
|
50
|
+
.state()
|
|
51
|
+
.exploration?.regions.filter((region) => region.visited)
|
|
52
|
+
.map((region) => region.id) ?? []} onTravel={properties.onTravelRegion}/>
|
|
53
|
+
</Match>
|
|
54
|
+
<Match when={view() === "encounter"}>
|
|
55
|
+
<Show when={properties.state().pendingEncounter} keyed>
|
|
56
|
+
{(encounter) => (<EncounterCard encounter={() => encounter} mutedColor={properties.mutedColor} hoveredAction={properties.hoveredEncounterAction} onHover={properties.setHoveredEncounterAction} onResolve={properties.onResolveEncounter} resolveSprite={properties.resolveSprite} language={() => properties.state().locale}/>)}
|
|
57
|
+
</Show>
|
|
58
|
+
</Match>
|
|
59
|
+
<Match when={view() === "team"}>
|
|
60
|
+
<LocationProgress state={properties.state} onTravel={properties.onTravelLocation}/>
|
|
61
|
+
<PartyGrid language={() => properties.state().locale} party={() => properties.state().party} resolveSprite={properties.resolveSprite}/>
|
|
62
|
+
</Match>
|
|
63
|
+
</Switch>
|
|
64
|
+
</box>);
|
|
65
|
+
}
|
|
66
|
+
export function StarterButtons(properties) {
|
|
67
|
+
return (<box flexDirection="column" gap={1}>
|
|
68
|
+
<text>{uiCopy(properties.language?.() ?? "en").chooseStarter}</text>
|
|
69
|
+
{regions(properties.language?.() ?? "en")
|
|
70
|
+
.filter((region) => properties.regionId?.() === undefined || region.id === properties.regionId())
|
|
71
|
+
.map((region) => (<StarterRegionCard {...properties} region={region}/>))}
|
|
72
|
+
</box>);
|
|
73
|
+
}
|
|
74
|
+
function StarterRegionCard(properties) {
|
|
75
|
+
const [rowWidth, setRowWidth] = createSignal(0);
|
|
76
|
+
// Odd-width cells and sprites share a single center column. Use spare space for
|
|
77
|
+
// gaps and outer margins instead of changing the middle cell's width or position.
|
|
78
|
+
const cellWidth = () => {
|
|
79
|
+
const width = Math.max(1, Math.floor((rowWidth() - 2) / 3));
|
|
80
|
+
return width % 2 === 0 ? width - 1 : width;
|
|
81
|
+
};
|
|
82
|
+
const columnGap = () => Math.min(3, Math.max(1, Math.floor((rowWidth() - cellWidth() * 3) / 2)));
|
|
83
|
+
// Text floors half-column offsets; flex centering rounds them up for boxes.
|
|
84
|
+
const gridInset = () => Math.max(0, Math.floor((rowWidth() - (cellWidth() * 3 + columnGap() * 2)) / 2));
|
|
85
|
+
const hoverBackground = () => typeof properties.hoverBackground === "function"
|
|
86
|
+
? properties.hoverBackground()
|
|
87
|
+
: properties.hoverBackground;
|
|
88
|
+
const starters = () => startersForRegion(properties.region.id, properties.language?.() ?? "en");
|
|
89
|
+
return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" flexShrink={0} gap={1} padding={1}>
|
|
90
|
+
<text>{properties.region.name}</text>
|
|
91
|
+
<box flexDirection="row" width="100%" onSizeChange={function () {
|
|
92
|
+
setRowWidth(this.width);
|
|
93
|
+
}}>
|
|
94
|
+
<box flexDirection="row" flexShrink={0} gap={columnGap()} marginLeft={gridInset()}>
|
|
95
|
+
{starters().map((starter) => (<button alignItems="center" backgroundColor={properties.hovered() === starter.speciesId ? hoverBackground() : undefined} border={false} flexDirection="column" flexShrink={0} width={cellWidth()} focusable paddingTop={1} paddingBottom={1} type="button" onMouseUp={(event) => {
|
|
96
|
+
if (event.button !== MouseButton.LEFT)
|
|
97
|
+
return;
|
|
98
|
+
void properties.onChoose(properties.region.id, starter.speciesId);
|
|
99
|
+
}} onMouseOver={() => properties.onHover(starter.speciesId)} onMouseOut={() => properties.onHover(null)} onKeyDown={(event) => {
|
|
100
|
+
if (event.name !== "return" && event.name !== "space")
|
|
101
|
+
return;
|
|
102
|
+
void properties.onChoose(properties.region.id, starter.speciesId);
|
|
103
|
+
}} onFocus={() => properties.onHover(starter.speciesId)} onBlur={() => properties.onHover(null)}>
|
|
104
|
+
<box position="absolute" left={-1} top={0} bottom={0} width={cellWidth() + 2} backgroundColor={properties.hovered() === starter.speciesId ? hoverBackground() : "transparent"} zIndex={0}/>
|
|
105
|
+
<box height={4} zIndex={1}>
|
|
106
|
+
<Sprite compactFallback width={9} language={properties.language} resolve={properties.resolveSprite} shiny={false} gender="male" speciesId={starter.speciesId}/>
|
|
107
|
+
</box>
|
|
108
|
+
</button>))}
|
|
109
|
+
</box>
|
|
110
|
+
</box>
|
|
111
|
+
</box>);
|
|
112
|
+
}
|
|
113
|
+
export function LocationProgress(properties) {
|
|
114
|
+
const state = properties.state;
|
|
115
|
+
const [hoveredTravel, setHoveredTravel] = createSignal(false);
|
|
116
|
+
const currentLocation = () => state().exploration?.locations.find((location) => location.id === state().location)?.name ??
|
|
117
|
+
uiCopy(state().locale).unknown;
|
|
118
|
+
const currentRegion = () => regions(state().locale).find((region) => region.id === state().region)?.name ??
|
|
119
|
+
uiCopy(state().locale).unknown;
|
|
120
|
+
const latestUnlockedLocation = () => {
|
|
121
|
+
const locations = state().exploration?.locations ?? [];
|
|
122
|
+
return locations.findLast((location) => location.unlocked);
|
|
123
|
+
};
|
|
124
|
+
const travelTarget = () => {
|
|
125
|
+
const latestUnlocked = latestUnlockedLocation();
|
|
126
|
+
return latestUnlocked?.id === state().location ? null : (latestUnlocked ?? null);
|
|
127
|
+
};
|
|
128
|
+
const travelToUnlockedLocation = () => {
|
|
129
|
+
const target = travelTarget();
|
|
130
|
+
return target === null ? Promise.resolve() : properties.onTravel(target.id);
|
|
131
|
+
};
|
|
132
|
+
const percentage = () => {
|
|
133
|
+
const progress = state().exploration?.locationUnlockProgress ?? 0;
|
|
134
|
+
const threshold = state().exploration?.locationUnlockThreshold ?? 0;
|
|
135
|
+
return threshold === 0 ? 0 : Math.min((progress / threshold) * 100, 100);
|
|
136
|
+
};
|
|
137
|
+
return (<box flexDirection="column">
|
|
138
|
+
<text>{`${uiCopy(state().locale).location}: ${currentLocation()} (${currentRegion()})`}</text>
|
|
139
|
+
<box flexDirection="row" width="100%">
|
|
140
|
+
<text>{`${uiCopy(state().locale).nextLocation}: `}</text>
|
|
141
|
+
{travelTarget() === null ? (<text>{`${percentage().toFixed(2)}%`}</text>) : (<PokecodeActionButton hovered={hoveredTravel} label={uiCopy(state().locale).travel} onActivate={travelToUnlockedLocation} onHover={() => setHoveredTravel(true)} onLeave={() => setHoveredTravel(false)} tone="success"/>)}
|
|
142
|
+
</box>
|
|
143
|
+
</box>);
|
|
144
|
+
}
|
|
145
|
+
export function PartyGrid(properties) {
|
|
146
|
+
const occupiedSlots = () => properties.party().filter((slot) => slot.pokemon !== null);
|
|
147
|
+
return (<box flexDirection="column" gap={1}>
|
|
148
|
+
<PartyRow language={properties.language} resolveSprite={properties.resolveSprite} slots={() => occupiedSlots().slice(0, 2)}/>
|
|
149
|
+
<PartyRow language={properties.language} resolveSprite={properties.resolveSprite} slots={() => occupiedSlots().slice(2, 4)}/>
|
|
150
|
+
<PartyRow language={properties.language} resolveSprite={properties.resolveSprite} slots={() => occupiedSlots().slice(4, 6)}/>
|
|
151
|
+
</box>);
|
|
152
|
+
}
|
|
153
|
+
function PartyRow(properties) {
|
|
154
|
+
return (<box flexDirection="row" gap={1}>
|
|
155
|
+
{properties.slots().map((slot) => (<box alignItems="center" flexDirection="column" height={6} width={18}>
|
|
156
|
+
{slot.pokemon === null ? null : (<>
|
|
157
|
+
<Sprite language={properties.language} resolve={properties.resolveSprite} shiny={slot.pokemon.shiny} gender={slot.pokemon.gender} speciesId={slot.pokemon.speciesId}/>
|
|
158
|
+
<text>
|
|
159
|
+
{`${slot.pokemon.name} ${slot.pokemon.gender === "male" ? "♂" : slot.pokemon.gender === "female" ? "♀" : "—"}`}
|
|
160
|
+
</text>
|
|
161
|
+
<text>{`Lv.${slot.pokemon.level}`}</text>
|
|
162
|
+
</>)}
|
|
163
|
+
</box>))}
|
|
164
|
+
</box>);
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=view.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/sidebar/view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { createTuiStateCoordinator } from "./coordinator.js";
|
|
2
|
+
export declare function createTuiCleanup(dependencies: {
|
|
3
|
+
readonly state: ReturnType<typeof createTuiStateCoordinator>;
|
|
4
|
+
readonly unsubscribe?: () => void;
|
|
5
|
+
readonly unregisterSlot?: () => void;
|
|
6
|
+
readonly disposeClipboard?: () => void | Promise<void>;
|
|
7
|
+
}): () => Promise<void>;
|
|
8
|
+
//# sourceMappingURL=cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/state/cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAEjE,wBAAgB,gBAAgB,CAAC,YAAY,EAAE;IAC7C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvD,SAGY,OAAO,CAAC,IAAI,CAAC,CAiEzB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export function createTuiCleanup(dependencies) {
|
|
2
|
+
let cleanupPromise;
|
|
3
|
+
return () => {
|
|
4
|
+
if (cleanupPromise !== undefined)
|
|
5
|
+
return cleanupPromise;
|
|
6
|
+
let resolveCleanup;
|
|
7
|
+
let rejectCleanup;
|
|
8
|
+
cleanupPromise = new Promise((resolve, reject) => {
|
|
9
|
+
resolveCleanup = resolve;
|
|
10
|
+
rejectCleanup = reject;
|
|
11
|
+
});
|
|
12
|
+
// Invalidate callback state synchronously, before any external disposer runs.
|
|
13
|
+
dependencies.state.dispose();
|
|
14
|
+
const failures = [];
|
|
15
|
+
const runSynchronousDisposer = (dispose) => {
|
|
16
|
+
if (dispose === undefined)
|
|
17
|
+
return;
|
|
18
|
+
try {
|
|
19
|
+
dispose();
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
failures.push(error);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
runSynchronousDisposer(dependencies.unsubscribe);
|
|
26
|
+
runSynchronousDisposer(dependencies.unregisterSlot);
|
|
27
|
+
const finish = () => {
|
|
28
|
+
if (failures.length === 1)
|
|
29
|
+
throw failures[0];
|
|
30
|
+
if (failures.length > 1) {
|
|
31
|
+
throw new AggregateError(failures, "Multiple TUI resources failed to clean up");
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
try {
|
|
35
|
+
const disposal = dependencies.disposeClipboard?.();
|
|
36
|
+
Promise.resolve(disposal).then(() => {
|
|
37
|
+
try {
|
|
38
|
+
finish();
|
|
39
|
+
resolveCleanup();
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
rejectCleanup(error);
|
|
43
|
+
}
|
|
44
|
+
}, (error) => {
|
|
45
|
+
failures.push(error);
|
|
46
|
+
try {
|
|
47
|
+
finish();
|
|
48
|
+
resolveCleanup();
|
|
49
|
+
}
|
|
50
|
+
catch (combinedError) {
|
|
51
|
+
rejectCleanup(combinedError);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
failures.push(error);
|
|
57
|
+
try {
|
|
58
|
+
finish();
|
|
59
|
+
resolveCleanup();
|
|
60
|
+
}
|
|
61
|
+
catch (combinedError) {
|
|
62
|
+
rejectCleanup(combinedError);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return cleanupPromise;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/state/cleanup.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,YAKhC;IACC,IAAI,cAAyC,CAAA;IAE7C,OAAO,GAAkB,EAAE;QACzB,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO,cAAc,CAAA;QAEvD,IAAI,cAA2B,CAAA;QAC/B,IAAI,aAAwC,CAAA;QAC5C,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrD,cAAc,GAAG,OAAO,CAAA;YACxB,aAAa,GAAG,MAAM,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,8EAA8E;QAC9E,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;QAE5B,MAAM,QAAQ,GAAc,EAAE,CAAA;QAC9B,MAAM,sBAAsB,GAAG,CAAC,OAAiC,EAAQ,EAAE;YACzE,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAM;YACjC,IAAI,CAAC;gBACH,OAAO,EAAE,CAAA;YACX,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;QACH,CAAC,CAAA;QACD,sBAAsB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QAChD,sBAAsB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;QAEnD,MAAM,MAAM,GAAG,GAAS,EAAE;YACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC5C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,2CAA2C,CAAC,CAAA;YACjF,CAAC;QACH,CAAC,CAAA;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAA;YAClD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5B,GAAG,EAAE;gBACH,IAAI,CAAC;oBACH,MAAM,EAAE,CAAA;oBACR,cAAc,EAAE,CAAA;gBAClB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,aAAa,CAAC,KAAK,CAAC,CAAA;gBACtB,CAAC;YACH,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;gBACjB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACpB,IAAI,CAAC;oBACH,MAAM,EAAE,CAAA;oBACR,cAAc,EAAE,CAAA;gBAClB,CAAC;gBAAC,OAAO,aAAa,EAAE,CAAC;oBACvB,aAAa,CAAC,aAAa,CAAC,CAAA;gBAC9B,CAAC;YACH,CAAC,CACF,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAA;gBACR,cAAc,EAAE,CAAA;YAClB,CAAC;YAAC,OAAO,aAAa,EAAE,CAAC;gBACvB,aAAa,CAAC,aAAa,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAA;IACvB,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { type GameState } from "../../../../application/contracts/game.js";
|
|
2
|
+
import { type GameNotification } from "../../../presentation/game-notifications.js";
|
|
3
|
+
export declare function initialTuiState(): GameState;
|
|
4
|
+
export declare function createTuiStateCoordinator(initial: GameState, notify: (notification: GameNotification) => void): {
|
|
5
|
+
state: import("solid-js").Accessor<{
|
|
6
|
+
phase: "onboarding" | "active";
|
|
7
|
+
locale: "en" | "es";
|
|
8
|
+
message: string;
|
|
9
|
+
region: string | null;
|
|
10
|
+
location: string | null;
|
|
11
|
+
party: {
|
|
12
|
+
position: number;
|
|
13
|
+
pokemon: {
|
|
14
|
+
id: string & import("zod").$brand<"PokemonId">;
|
|
15
|
+
speciesId: string & import("zod").$brand<"SpeciesId">;
|
|
16
|
+
name: string;
|
|
17
|
+
gender: "male" | "female" | "genderless";
|
|
18
|
+
level: number;
|
|
19
|
+
experience: number;
|
|
20
|
+
ability: string;
|
|
21
|
+
nature: string;
|
|
22
|
+
shiny: boolean;
|
|
23
|
+
ivs: {
|
|
24
|
+
hp: number;
|
|
25
|
+
attack: number;
|
|
26
|
+
defense: number;
|
|
27
|
+
specialAttack: number;
|
|
28
|
+
specialDefense: number;
|
|
29
|
+
speed: number;
|
|
30
|
+
};
|
|
31
|
+
evs: {
|
|
32
|
+
hp: 0;
|
|
33
|
+
attack: 0;
|
|
34
|
+
defense: 0;
|
|
35
|
+
specialAttack: 0;
|
|
36
|
+
specialDefense: 0;
|
|
37
|
+
speed: 0;
|
|
38
|
+
};
|
|
39
|
+
moves: {
|
|
40
|
+
id: string;
|
|
41
|
+
name: string;
|
|
42
|
+
}[];
|
|
43
|
+
} | null;
|
|
44
|
+
}[];
|
|
45
|
+
pendingChoices: {
|
|
46
|
+
id: string;
|
|
47
|
+
kind: string;
|
|
48
|
+
payload: string;
|
|
49
|
+
}[];
|
|
50
|
+
pendingEncounterCount: number;
|
|
51
|
+
choicePokemon: {
|
|
52
|
+
id: string & import("zod").$brand<"PokemonId">;
|
|
53
|
+
speciesId: string & import("zod").$brand<"SpeciesId">;
|
|
54
|
+
name: string;
|
|
55
|
+
gender: "male" | "female" | "genderless";
|
|
56
|
+
level: number;
|
|
57
|
+
experience: number;
|
|
58
|
+
ability: string;
|
|
59
|
+
nature: string;
|
|
60
|
+
shiny: boolean;
|
|
61
|
+
ivs: {
|
|
62
|
+
hp: number;
|
|
63
|
+
attack: number;
|
|
64
|
+
defense: number;
|
|
65
|
+
specialAttack: number;
|
|
66
|
+
specialDefense: number;
|
|
67
|
+
speed: number;
|
|
68
|
+
};
|
|
69
|
+
evs: {
|
|
70
|
+
hp: 0;
|
|
71
|
+
attack: 0;
|
|
72
|
+
defense: 0;
|
|
73
|
+
specialAttack: 0;
|
|
74
|
+
specialDefense: 0;
|
|
75
|
+
speed: 0;
|
|
76
|
+
};
|
|
77
|
+
moves: {
|
|
78
|
+
id: string;
|
|
79
|
+
name: string;
|
|
80
|
+
}[];
|
|
81
|
+
}[];
|
|
82
|
+
pendingEncounter: {
|
|
83
|
+
id: string;
|
|
84
|
+
kind: "special" | "ordinary";
|
|
85
|
+
speciesId: string & import("zod").$brand<"SpeciesId">;
|
|
86
|
+
name: string;
|
|
87
|
+
level: number;
|
|
88
|
+
gender: "male" | "female" | "genderless";
|
|
89
|
+
shiny: boolean;
|
|
90
|
+
spriteUrl: string;
|
|
91
|
+
caught: boolean;
|
|
92
|
+
} | null;
|
|
93
|
+
exploration: {
|
|
94
|
+
regions: {
|
|
95
|
+
id: string;
|
|
96
|
+
name: string;
|
|
97
|
+
visited: boolean;
|
|
98
|
+
completed: boolean;
|
|
99
|
+
locations: {
|
|
100
|
+
id: string & import("zod").$brand<"LocationId">;
|
|
101
|
+
name: string;
|
|
102
|
+
unlocked: boolean;
|
|
103
|
+
encounterless: boolean;
|
|
104
|
+
}[];
|
|
105
|
+
}[];
|
|
106
|
+
locations: {
|
|
107
|
+
id: string & import("zod").$brand<"LocationId">;
|
|
108
|
+
name: string;
|
|
109
|
+
unlocked: boolean;
|
|
110
|
+
encounterless: boolean;
|
|
111
|
+
}[];
|
|
112
|
+
locationUnlockProgress: number;
|
|
113
|
+
locationUnlockThreshold: number;
|
|
114
|
+
regionComplete: boolean;
|
|
115
|
+
} | null;
|
|
116
|
+
}>;
|
|
117
|
+
initialize(next: GameState): void;
|
|
118
|
+
apply(next: GameState): void;
|
|
119
|
+
dispose(): void;
|
|
120
|
+
isDisposed(): boolean;
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=coordinator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/state/coordinator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,2CAA2C,CAAA;AAC3F,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,6CAA6C,CAAA;AAEpD,wBAAgB,eAAe,IAAI,SAAS,CAU3C;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAO7B,SAAS,GAAG,IAAI;gBAGrB,SAAS,GAAG,IAAI;eAMjB,IAAI;kBAGD,OAAO;EAIxB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { createSignal } from "solid-js";
|
|
2
|
+
import { gameStateSchema } from "../../../../application/contracts/game.js";
|
|
3
|
+
import { gameNotifications, } from "../../../presentation/game-notifications.js";
|
|
4
|
+
export function initialTuiState() {
|
|
5
|
+
return gameStateSchema.parse({
|
|
6
|
+
phase: "onboarding",
|
|
7
|
+
message: "Loading PokéCode...",
|
|
8
|
+
region: null,
|
|
9
|
+
location: null,
|
|
10
|
+
party: [1, 2, 3, 4, 5, 6].map((position) => ({ position, pokemon: null })),
|
|
11
|
+
pendingChoices: [],
|
|
12
|
+
exploration: null,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export function createTuiStateCoordinator(initial, notify) {
|
|
16
|
+
const [state, setState] = createSignal(initial);
|
|
17
|
+
let disposed = false;
|
|
18
|
+
return {
|
|
19
|
+
state,
|
|
20
|
+
initialize(next) {
|
|
21
|
+
if (!disposed)
|
|
22
|
+
setState(next);
|
|
23
|
+
},
|
|
24
|
+
apply(next) {
|
|
25
|
+
if (disposed)
|
|
26
|
+
return;
|
|
27
|
+
const notifications = gameNotifications(state(), next);
|
|
28
|
+
setState(next);
|
|
29
|
+
for (const notification of notifications)
|
|
30
|
+
notify(notification);
|
|
31
|
+
},
|
|
32
|
+
dispose() {
|
|
33
|
+
disposed = true;
|
|
34
|
+
},
|
|
35
|
+
isDisposed() {
|
|
36
|
+
return disposed;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/state/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAkB,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3F,OAAO,EAEL,iBAAiB,GAClB,MAAM,6CAA6C,CAAA;AAEpD,MAAM,UAAU,eAAe;IAC7B,OAAO,eAAe,CAAC,KAAK,CAAC;QAC3B,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,qBAAqB;QAC9B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAAkB,EAClB,MAAgD;IAEhD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,YAAY,CAAY,OAAO,CAAC,CAAA;IAC1D,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,OAAO;QACL,KAAK;QACL,UAAU,CAAC,IAAe;YACxB,IAAI,CAAC,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,IAAe;YACnB,IAAI,QAAQ;gBAAE,OAAM;YACpB,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAA;YACtD,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,KAAK,MAAM,YAAY,IAAI,aAAa;gBAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAChE,CAAC;QACD,OAAO;YACL,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,UAAU;YACR,OAAO,QAAQ,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-failure.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/state/setup-failure.ts"],"names":[],"mappings":"AAAA,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC5B,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,KAAK,CAAC,CAWhB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export async function cleanupAfterSetupFailure(cleanup, setupError) {
|
|
2
|
+
try {
|
|
3
|
+
await cleanup();
|
|
4
|
+
}
|
|
5
|
+
catch (cleanupError) {
|
|
6
|
+
throw new AggregateError([setupError, cleanupError], "TUI setup failed and cleanup also failed", { cause: setupError });
|
|
7
|
+
}
|
|
8
|
+
throw setupError;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=setup-failure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-failure.js","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/state/setup-failure.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA4B,EAC5B,UAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,OAAO,EAAE,CAAA;IACjB,CAAC;IAAC,OAAO,YAAY,EAAE,CAAC;QACtB,MAAM,IAAI,cAAc,CACtB,CAAC,UAAU,EAAE,YAAY,CAAC,EAC1B,0CAA0C,EAC1C,EAAE,KAAK,EAAE,UAAU,EAAE,CACtB,CAAA;IACH,CAAC;IACD,MAAM,UAAU,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Context } from "@opencode/plugin/tui/context";
|
|
2
|
+
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
3
|
+
import type { createPokemonTuiClient } from "../client.js";
|
|
4
|
+
import type { createTuiStateCoordinator } from "../state/coordinator.js";
|
|
5
|
+
type TuiClient = ReturnType<typeof createPokemonTuiClient>;
|
|
6
|
+
type TuiState = ReturnType<typeof createTuiStateCoordinator>;
|
|
7
|
+
/** Owns the location dialog workflow without coupling it to plugin setup. */
|
|
8
|
+
export declare function createLocationTravelAction(dependencies: {
|
|
9
|
+
readonly rpc: TuiClient;
|
|
10
|
+
readonly state: TuiState;
|
|
11
|
+
readonly dialog: Pick<Context["ui"]["dialog"], "show" | "set" | "clear">;
|
|
12
|
+
readonly resolveSprite: SpriteResolver;
|
|
13
|
+
readonly travelToLocation: (locationId: string) => Promise<void>;
|
|
14
|
+
}): () => Promise<void>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/travel/actions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAIxE,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC1D,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5D,6EAA6E;AAC7E,wBAAgB,0BAA0B,CAAC,YAAY,EAAE;IACvD,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,CAAA;IACxE,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACjE,SACkB,OAAO,CAAC,IAAI,CAAC,CA2B/B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { LocationTravelDialog } from "./dialog.js";
|
|
2
|
+
import { locationTravelProjection } from "./projection.js";
|
|
3
|
+
/** Owns the location dialog workflow without coupling it to plugin setup. */
|
|
4
|
+
export function createLocationTravelAction(dependencies) {
|
|
5
|
+
return async () => {
|
|
6
|
+
const state = await dependencies.rpc.status({});
|
|
7
|
+
dependencies.state.apply(state);
|
|
8
|
+
if (dependencies.state.isDisposed())
|
|
9
|
+
return;
|
|
10
|
+
const exploration = state.exploration;
|
|
11
|
+
const regionId = state.region;
|
|
12
|
+
if (exploration === null || regionId === null)
|
|
13
|
+
return;
|
|
14
|
+
const dex = await dependencies.rpc.dex({});
|
|
15
|
+
if (dependencies.state.isDisposed())
|
|
16
|
+
return;
|
|
17
|
+
const projection = locationTravelProjection(state, dex);
|
|
18
|
+
if (projection === null)
|
|
19
|
+
return;
|
|
20
|
+
dependencies.dialog.show(() => (<LocationTravelDialog {...projection} onClose={() => {
|
|
21
|
+
if (!dependencies.state.isDisposed())
|
|
22
|
+
dependencies.dialog.clear();
|
|
23
|
+
}} onTravel={async (locationId) => {
|
|
24
|
+
await dependencies.travelToLocation(locationId);
|
|
25
|
+
if (!dependencies.state.isDisposed())
|
|
26
|
+
dependencies.dialog.clear();
|
|
27
|
+
}} resolveSprite={dependencies.resolveSprite}/>));
|
|
28
|
+
dependencies.dialog.set({ size: "large", centered: true });
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=actions.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/travel/actions.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAK1D,6EAA6E;AAC7E,MAAM,UAAU,0BAA0B,CAAC,YAM1C;IACC,OAAO,KAAK,IAAmB,EAAE;QAC/B,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC/C,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE;YAAE,OAAM;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAA;QAC7B,IAAI,WAAW,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAM;QACrD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1C,IAAI,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE;YAAE,OAAM;QAC3C,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACvD,IAAI,UAAU,KAAK,IAAI;YAAE,OAAM;QAE/B,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAC7B,CAAC,oBAAoB,CACnB,IAAI,UAAU,CAAC,CACf,OAAO,CAAC,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE;oBAAE,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACnE,CAAC,CAAC,CACF,QAAQ,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC7B,MAAM,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;gBAC/C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE;oBAAE,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACnE,CAAC,CAAC,CACF,aAAa,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,EAC1C,CACH,CAAC,CAAA;QACF,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC,CAAA;AACH,CAAC"}
|