@sbugallo/pokecode 0.2.1 → 0.3.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/README.md +17 -11
- package/dist/adapters/opencode/tui/choices/cards.d.ts +4 -0
- package/dist/adapters/opencode/tui/choices/cards.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/choices/cards.jsx +6 -6
- package/dist/adapters/opencode/tui/choices/cards.jsx.map +1 -1
- package/dist/adapters/opencode/tui/choices/encounter.d.ts +2 -0
- package/dist/adapters/opencode/tui/choices/encounter.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/choices/encounter.jsx +1 -1
- package/dist/adapters/opencode/tui/choices/encounter.jsx.map +1 -1
- package/dist/adapters/opencode/tui/components/image-protocol.d.ts +31 -0
- package/dist/adapters/opencode/tui/components/image-protocol.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/image-protocol.js +83 -0
- package/dist/adapters/opencode/tui/components/image-protocol.js.map +1 -0
- package/dist/adapters/opencode/tui/components/sprite.d.ts +2 -0
- package/dist/adapters/opencode/tui/components/sprite.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/components/sprite.jsx +1 -1
- package/dist/adapters/opencode/tui/components/sprite.jsx.map +1 -1
- package/dist/adapters/opencode/tui/pc/actions.d.ts +2 -0
- package/dist/adapters/opencode/tui/pc/actions.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/pc/actions.jsx +1 -1
- package/dist/adapters/opencode/tui/pc/actions.jsx.map +1 -1
- package/dist/adapters/opencode/tui/pc/details.d.ts +2 -0
- package/dist/adapters/opencode/tui/pc/details.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/pc/details.jsx +1 -1
- package/dist/adapters/opencode/tui/pc/details.jsx.map +1 -1
- package/dist/adapters/opencode/tui/pc/dialog.d.ts +2 -0
- package/dist/adapters/opencode/tui/pc/dialog.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/pc/dialog.jsx +1 -1
- package/dist/adapters/opencode/tui/pc/dialog.jsx.map +1 -1
- package/dist/adapters/opencode/tui/plugin.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/plugin.jsx +8 -0
- package/dist/adapters/opencode/tui/plugin.jsx.map +1 -1
- package/dist/adapters/opencode/tui/sidebar/register.d.ts +2 -0
- package/dist/adapters/opencode/tui/sidebar/register.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/sidebar/register.jsx +1 -1
- package/dist/adapters/opencode/tui/sidebar/register.jsx.map +1 -1
- package/dist/adapters/opencode/tui/sidebar/view.d.ts +4 -0
- package/dist/adapters/opencode/tui/sidebar/view.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/sidebar/view.jsx +9 -9
- package/dist/adapters/opencode/tui/sidebar/view.jsx.map +1 -1
- package/dist/adapters/opencode/tui/state/cleanup.d.ts +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/state/cleanup.js +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.js.map +1 -1
- package/dist/adapters/opencode/tui/travel/actions.d.ts +2 -0
- package/dist/adapters/opencode/tui/travel/actions.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/travel/actions.jsx +1 -1
- package/dist/adapters/opencode/tui/travel/actions.jsx.map +1 -1
- package/dist/adapters/opencode/tui/travel/dialog.d.ts +2 -0
- package/dist/adapters/opencode/tui/travel/dialog.d.ts.map +1 -1
- package/dist/adapters/opencode/tui/travel/dialog.jsx +1 -1
- package/dist/adapters/opencode/tui/travel/dialog.jsx.map +1 -1
- package/dist/adapters/sqlite/game-repository.d.ts +2 -1
- package/dist/adapters/sqlite/game-repository.d.ts.map +1 -1
- package/dist/adapters/sqlite/game-repository.js +9 -1
- package/dist/adapters/sqlite/game-repository.js.map +1 -1
- package/dist/adapters/sqlite/queries/game-state.d.ts +2 -1
- package/dist/adapters/sqlite/queries/game-state.d.ts.map +1 -1
- package/dist/adapters/sqlite/queries/game-state.js +9 -3
- package/dist/adapters/sqlite/queries/game-state.js.map +1 -1
- package/dist/application/contracts/game.d.ts +3 -2
- package/dist/application/contracts/game.d.ts.map +1 -1
- package/dist/application/contracts/game.js +3 -2
- package/dist/application/contracts/game.js.map +1 -1
- package/dist/application/game.d.ts.map +1 -1
- package/dist/application/game.js +5 -1
- package/dist/application/game.js.map +1 -1
- package/dist/application/ports/game.d.ts +2 -1
- package/dist/application/ports/game.d.ts.map +1 -1
- package/dist/application/use-cases/record-usage.d.ts.map +1 -1
- package/dist/application/use-cases/record-usage.js +17 -4
- package/dist/application/use-cases/record-usage.js.map +1 -1
- package/dist/domain/content/catalog.d.ts +4 -0
- package/dist/domain/content/catalog.d.ts.map +1 -1
- package/dist/domain/content/catalog.js +17 -0
- package/dist/domain/content/catalog.js.map +1 -1
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/alola-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/galar-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/johto-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/kalos-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/kanto-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/paldea-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js.map +1 -1
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts.map +1 -1
- package/dist/domain/content/catalogs/unova-locations-catalog.js +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.js.map +1 -1
- package/dist/domain/content/schema.d.ts +1 -0
- package/dist/domain/content/schema.d.ts.map +1 -1
- package/dist/domain/content/schema.js +2 -0
- package/dist/domain/content/schema.js.map +1 -1
- package/dist/domain/exploration/exploration.d.ts +20 -0
- package/dist/domain/exploration/exploration.d.ts.map +1 -1
- package/dist/domain/exploration/exploration.js +17 -0
- package/dist/domain/exploration/exploration.js.map +1 -1
- package/dist/domain/usage/usage.d.ts +3 -3
- package/dist/domain/usage/usage.d.ts.map +1 -1
- package/dist/domain/usage/usage.js +4 -2
- package/dist/domain/usage/usage.js.map +1 -1
- package/dist/index.js +67 -10
- package/dist/rpc.js +8 -2
- package/dist/tui.js +195 -36
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ Your active team gains experience from the tokens reported for completed assista
|
|
|
54
54
|
includes input, output, reasoning, and cache read/write tokens. Usage is deduplicated across
|
|
55
55
|
sessions and restarts so the same message is never counted twice.
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
**Every 1,000 counted tokens grants 1 XP to each active Pokémon**. Fractional XP carries
|
|
58
58
|
forward. Your team can hold up to six Pokémon, and only active team members earn new XP; Pokémon in
|
|
59
59
|
the PC remain idle. The level cap is 100.
|
|
60
60
|
|
|
@@ -166,10 +166,13 @@ evolve during the next applied usage event; it does not have to hit the exact le
|
|
|
166
166
|
|
|
167
167
|
Start in any of the nine regions and choose one of its three native starters.
|
|
168
168
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
169
|
+
Each location has its own unlock cost, charged for eligible tokens spent at your newest unlocked
|
|
170
|
+
location. Costs follow a power curve over the location's position in its region's story, normalized
|
|
171
|
+
by region length and calibrated against main-series gym-leader and champion ace levels, so your
|
|
172
|
+
party keeps pace with the narrative. After a region's champion, further locations cost no more than
|
|
173
|
+
the final approach. Use `/pokecode-locations` to travel there before working toward the following
|
|
174
|
+
location. Returning to an older location preserves your unlock progress, but usage there does not
|
|
175
|
+
advance the next unlock.
|
|
173
176
|
|
|
174
177
|
A single usage event can unlock at most one location; excess unlock progress is discarded. Travel is
|
|
175
178
|
always manual, even in continuous mode.
|
|
@@ -262,10 +265,11 @@ default:
|
|
|
262
265
|
"options": {
|
|
263
266
|
"language": "en",
|
|
264
267
|
"pauseOnPendingChoice": true,
|
|
265
|
-
"xpTokensPerPoint": 1000,
|
|
266
268
|
"encounterMinimumTokens": 200000,
|
|
267
269
|
"encounterMaximumTokens": 400000,
|
|
268
|
-
"
|
|
270
|
+
"locationUnlockBaseTokens": 4214000,
|
|
271
|
+
"locationUnlockExponent": 2.64,
|
|
272
|
+
"locationUnlockRegionExponent": -1.72
|
|
269
273
|
}
|
|
270
274
|
}
|
|
271
275
|
]
|
|
@@ -276,13 +280,15 @@ default:
|
|
|
276
280
|
| --- | --- |
|
|
277
281
|
| `language` | `en` for English or `es` for Spanish. Localizes Pokémon, locations, regions, moves, abilities, and interface text. Missing translations fall back to English. |
|
|
278
282
|
| `pauseOnPendingChoice` | Pauses XP, encounters, and exploration while decisions are pending. Set to `false` for continuous progression and persistent queues. |
|
|
279
|
-
| `xpTokensPerPoint` | Counted tokens required for 1 XP per active Pokémon. Lower values mean faster leveling. |
|
|
280
283
|
| `encounterMinimumTokens` | Minimum eligible-token interval between encounter opportunities. |
|
|
281
284
|
| `encounterMaximumTokens` | Maximum eligible-token interval between encounter opportunities. |
|
|
282
|
-
| `
|
|
285
|
+
| `locationUnlockBaseTokens` | Scale of the location-unlock cost curve. |
|
|
286
|
+
| `locationUnlockExponent` | How quickly unlock costs grow along a region's story. |
|
|
287
|
+
| `locationUnlockRegionExponent` | Normalization applied by region length so short and long regions pace alike. Typically negative. |
|
|
283
288
|
|
|
284
|
-
Token thresholds must be positive integers. Reload or restart
|
|
285
|
-
Because the save is shared, use consistent gameplay settings
|
|
289
|
+
Token thresholds must be positive integers; the exponents are plain numbers. Reload or restart
|
|
290
|
+
OpenCode after changing options. Because the save is shared, use consistent gameplay settings
|
|
291
|
+
across concurrently running instances.
|
|
286
292
|
|
|
287
293
|
## Storage
|
|
288
294
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { GameState } from "../../../../application/contracts/game.js";
|
|
2
2
|
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
3
|
+
import type { ImageProtocolAccessor } from "../components/image-protocol.js";
|
|
3
4
|
export declare function PendingChoiceCard(properties: {
|
|
4
5
|
readonly state: () => GameState;
|
|
5
6
|
readonly onResolveMove: (choiceId: string, selectedMoveId: string) => Promise<void>;
|
|
6
7
|
readonly onResolveEvolution: (choiceId: string, selectedSpeciesId: string) => Promise<void>;
|
|
7
8
|
readonly resolveSprite: SpriteResolver;
|
|
9
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
8
10
|
readonly language: () => GameState["locale"];
|
|
9
11
|
}): any;
|
|
10
12
|
export declare function MoveChoiceCard(properties: {
|
|
@@ -13,6 +15,7 @@ export declare function MoveChoiceCard(properties: {
|
|
|
13
15
|
readonly choicePokemon: () => GameState["choicePokemon"];
|
|
14
16
|
readonly onResolve: (choiceId: string, selectedMoveId: string) => Promise<void>;
|
|
15
17
|
readonly resolveSprite: SpriteResolver;
|
|
18
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
16
19
|
readonly language?: (() => GameState["locale"]) | undefined;
|
|
17
20
|
}): any;
|
|
18
21
|
export declare function EvolutionChoiceCard(properties: {
|
|
@@ -20,6 +23,7 @@ export declare function EvolutionChoiceCard(properties: {
|
|
|
20
23
|
readonly party: () => GameState["party"];
|
|
21
24
|
readonly choicePokemon: () => GameState["choicePokemon"];
|
|
22
25
|
readonly resolveSprite: SpriteResolver;
|
|
26
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
23
27
|
readonly language: () => GameState["locale"];
|
|
24
28
|
readonly onResolve: (choiceId: string, selectedSpeciesId: string) => Promise<void>;
|
|
25
29
|
}): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/cards.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAQ1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/cards.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAQ1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAI5E,wBAAgB,iBAAiB,CAAC,UAAU,EAAE;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,SAAS,CAAA;IAC/B,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnF,QAAQ,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3F,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;CAC7C,OAgCA;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,CAAC,eAAe,CAAC,CAAA;IACxD,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/E,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;CAC5D,OAiDA;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,CAAC,eAAe,CAAC,CAAA;IACxD,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnF,OA8CA;AAqDD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,SAAS,MAAM,EAAE,CAAA;IAClD,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;CAC5D,OAwDA"}
|
|
@@ -11,10 +11,10 @@ export function PendingChoiceCard(properties) {
|
|
|
11
11
|
return (<Show when={choice()} keyed>
|
|
12
12
|
{(activeChoice) => (<Switch>
|
|
13
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}/>
|
|
14
|
+
<MoveChoiceCard choice={() => activeChoice} party={() => properties.state().party} choicePokemon={() => properties.state().choicePokemon} onResolve={properties.onResolveMove} resolveSprite={properties.resolveSprite} imageProtocol={properties.imageProtocol} language={properties.language}/>
|
|
15
15
|
</Match>
|
|
16
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}/>
|
|
17
|
+
<EvolutionChoiceCard choice={() => activeChoice} party={() => properties.state().party} choicePokemon={() => properties.state().choicePokemon} resolveSprite={properties.resolveSprite} imageProtocol={properties.imageProtocol} language={properties.language} onResolve={properties.onResolveEvolution}/>
|
|
18
18
|
</Match>
|
|
19
19
|
</Switch>)}
|
|
20
20
|
</Show>);
|
|
@@ -38,7 +38,7 @@ export function MoveChoiceCard(properties) {
|
|
|
38
38
|
<text width="100%" wrapMode="word" textAlign="center">
|
|
39
39
|
{copy().movePrompt(pokemon.name)}
|
|
40
40
|
</text>
|
|
41
|
-
<Sprite language={properties.language} resolve={properties.resolveSprite} shiny={pokemon.shiny} gender={pokemon.gender} speciesId={pokemon.speciesId}/>
|
|
41
|
+
<Sprite language={properties.language} resolve={properties.resolveSprite} protocol={properties.imageProtocol} shiny={pokemon.shiny} gender={pokemon.gender} speciesId={pokemon.speciesId}/>
|
|
42
42
|
<text width="100%" wrapMode="word" textAlign="center">
|
|
43
43
|
{copy().moveDescription}
|
|
44
44
|
</text>
|
|
@@ -59,10 +59,10 @@ export function EvolutionChoiceCard(properties) {
|
|
|
59
59
|
const [hoveredOption, setHoveredOption] = createSignal(null);
|
|
60
60
|
return (<box alignItems="center" border borderStyle="rounded" flexDirection="column" gap={1} padding={1}>
|
|
61
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}/>
|
|
62
|
+
<Sprite language={properties.language} resolve={properties.resolveSprite} protocol={properties.imageProtocol} shiny={pokemon.shiny} gender={pokemon.gender} speciesId={pokemon.speciesId}/>
|
|
63
63
|
<text>{uiCopy(properties.language()).chooseEvolution}</text>
|
|
64
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}/>))}
|
|
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} imageProtocol={properties.imageProtocol} language={properties.language}/>))}
|
|
66
66
|
</box>
|
|
67
67
|
</box>);
|
|
68
68
|
}
|
|
@@ -75,7 +75,7 @@ function EvolutionOptionCard(properties) {
|
|
|
75
75
|
void properties.onResolve();
|
|
76
76
|
}}>
|
|
77
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}/>
|
|
78
|
+
<Sprite compactFallback language={properties.language} resolve={properties.resolveSprite} protocol={properties.imageProtocol} shiny={properties.pokemon.shiny} gender={properties.pokemon.gender} speciesId={properties.option.speciesId}/>
|
|
79
79
|
</box>
|
|
80
80
|
<box flexDirection="row" justifyContent="center" width="100%">
|
|
81
81
|
<text>{properties.option.name}</text>
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"cards.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/cards.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { GameState } from "../../../../application/contracts/game.js";
|
|
2
2
|
import type { PendingEncounter } from "../../../../domain/encounters/encounter.js";
|
|
3
3
|
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
4
|
+
import type { ImageProtocolAccessor } from "../components/image-protocol.js";
|
|
4
5
|
export declare function EncounterCard(properties: {
|
|
5
6
|
readonly encounter: () => GameState["pendingEncounter"];
|
|
6
7
|
readonly mutedColor: () => string;
|
|
@@ -8,6 +9,7 @@ export declare function EncounterCard(properties: {
|
|
|
8
9
|
readonly onHover: (action: "catch" | "run" | null) => void;
|
|
9
10
|
readonly onResolve: (encounterId: string, encounter: PendingEncounter, capture: boolean) => Promise<void>;
|
|
10
11
|
readonly resolveSprite: SpriteResolver;
|
|
12
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
11
13
|
readonly language?: (() => GameState["locale"]) | undefined;
|
|
12
14
|
}): any;
|
|
13
15
|
//# sourceMappingURL=encounter.d.ts.map
|
|
@@ -1 +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;
|
|
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;AAEnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAG5E,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,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;CAC5D,OAsDA"}
|
|
@@ -20,7 +20,7 @@ export function EncounterCard(properties) {
|
|
|
20
20
|
})}
|
|
21
21
|
</text>
|
|
22
22
|
</box>
|
|
23
|
-
<Sprite language={properties.language} resolve={properties.resolveSprite} shiny={encounter.shiny} gender={encounter.gender} speciesId={encounter.speciesId}/>
|
|
23
|
+
<Sprite language={properties.language} resolve={properties.resolveSprite} protocol={properties.imageProtocol} shiny={encounter.shiny} gender={encounter.gender} speciesId={encounter.speciesId}/>
|
|
24
24
|
<box flexDirection="row" gap={1} justifyContent="center">
|
|
25
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
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"/>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encounter.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/encounter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"encounter.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/choices/encounter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ImageRenderProtocol, TerminalCapabilities } from "@opentui/core";
|
|
2
|
+
import { type Accessor } from "solid-js";
|
|
3
|
+
export type ImageProtocolCapabilities = Pick<TerminalCapabilities, "terminal" | "image_protocol" | "sixel" | "kitty_graphics">;
|
|
4
|
+
export type ImageProtocolAccessor = Accessor<ImageRenderProtocol>;
|
|
5
|
+
/** Minimal structural view of the renderer's capability events. */
|
|
6
|
+
export type CapabilitiesEventSource = Readonly<{
|
|
7
|
+
readonly capabilities: ImageProtocolCapabilities | null;
|
|
8
|
+
on(event: "capabilities", listener: (capabilities: ImageProtocolCapabilities) => void): unknown;
|
|
9
|
+
off(event: "capabilities", listener: (capabilities: ImageProtocolCapabilities) => void): unknown;
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* Picks the sprite image protocol for the detected terminal.
|
|
13
|
+
*
|
|
14
|
+
* Capability-first: an explicit OPENTUI_IMAGE_PROTOCOL override (surfaced by
|
|
15
|
+
* OpenTUI as the image_protocol capability) always wins, and everything else
|
|
16
|
+
* stays "auto" so OpenTUI resolves from real capability queries — Kitty
|
|
17
|
+
* graphics first, then Sixel (which the xterm.js image addon behind VS Code's
|
|
18
|
+
* terminal.integrated.enableImages advertises through DA1), then half-blocks.
|
|
19
|
+
* Only terminals known to misreport their capabilities need a correction
|
|
20
|
+
* from the table above.
|
|
21
|
+
*/
|
|
22
|
+
export declare function spriteImageProtocol(capabilities: ImageProtocolCapabilities | null): ImageRenderProtocol;
|
|
23
|
+
/**
|
|
24
|
+
* Tracks the resolved protocol reactively: capability detection answers
|
|
25
|
+
* after startup, so the accessor flips once the terminal identifies itself.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createImageProtocolState(source: CapabilitiesEventSource): {
|
|
28
|
+
readonly protocol: ImageProtocolAccessor;
|
|
29
|
+
readonly dispose: () => void;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=image-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-protocol.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/image-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,UAAU,CAAA;AAEtD,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,oBAAoB,EACpB,UAAU,GAAG,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,CAC3D,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAEjE,mEAAmE;AACnE,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,yBAAyB,GAAG,IAAI,CAAA;IACvD,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAA;IAC/F,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAA;CACjG,CAAC,CAAA;AAyDF;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,yBAAyB,GAAG,IAAI,GAC7C,mBAAmB,CAQrB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,GAAG;IACzE,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B,CAYA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { createSignal } from "solid-js";
|
|
2
|
+
/**
|
|
3
|
+
* Terminals that advertise image capabilities they cannot honor. Capability
|
|
4
|
+
* detection is only as honest as the answering terminal, so the rare terminal
|
|
5
|
+
* that lies needs a correction keyed by its identity — the same technique
|
|
6
|
+
* OpenTUI's own native detection uses (applyKnownGraphicsIdentity, and the
|
|
7
|
+
* TERM_PROGRAM=vscode kitty_graphics correction). Entries are data: add one
|
|
8
|
+
* here, never a new branch in the resolver.
|
|
9
|
+
*/
|
|
10
|
+
const graphicsCorrections = [
|
|
11
|
+
{
|
|
12
|
+
// VS Code and Orca both present as "xterm.js": XTVERSION answers with the
|
|
13
|
+
// library name, which outranks the TERM_PROGRAM identity fallback, so no
|
|
14
|
+
// per-product name ever surfaces here. The xterm.js image addon behind
|
|
15
|
+
// terminal.integrated.enableImages advertises BOTH Kitty graphics and
|
|
16
|
+
// Sixel — but its Kitty path drops OpenTUI's placements while Sixel
|
|
17
|
+
// renders reliably. Prefer Sixel whenever this identity advertises it;
|
|
18
|
+
// addon disabled → no Sixel advertised → the entry does not match and
|
|
19
|
+
// auto falls through to half-blocks.
|
|
20
|
+
terminalName: /^xterm\.js$/i,
|
|
21
|
+
requires: { sixel: true },
|
|
22
|
+
protocol: "sixel",
|
|
23
|
+
reason: "xterm.js image addon Kitty path drops OpenTUI placements",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
// Orca answers the Kitty graphics probe with OK, so no capability query
|
|
27
|
+
// distinguishes it from Kitty; placements blank once its per-pane image
|
|
28
|
+
// budget evicts them (stablyai/orca#23547, open as of October 2026).
|
|
29
|
+
// Keyed on the TERM_PROGRAM identity for the case where Orca stops
|
|
30
|
+
// answering XTVERSION.
|
|
31
|
+
terminalName: /orca/i,
|
|
32
|
+
protocol: "blocks",
|
|
33
|
+
reason: "stablyai/orca#23547",
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
const requirementsMet = (requires, capabilities) => {
|
|
37
|
+
if (requires === undefined)
|
|
38
|
+
return true;
|
|
39
|
+
if (requires.sixel !== undefined && capabilities?.sixel !== requires.sixel)
|
|
40
|
+
return false;
|
|
41
|
+
if (requires.kitty_graphics !== undefined &&
|
|
42
|
+
capabilities?.kitty_graphics !== requires.kitty_graphics) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Picks the sprite image protocol for the detected terminal.
|
|
49
|
+
*
|
|
50
|
+
* Capability-first: an explicit OPENTUI_IMAGE_PROTOCOL override (surfaced by
|
|
51
|
+
* OpenTUI as the image_protocol capability) always wins, and everything else
|
|
52
|
+
* stays "auto" so OpenTUI resolves from real capability queries — Kitty
|
|
53
|
+
* graphics first, then Sixel (which the xterm.js image addon behind VS Code's
|
|
54
|
+
* terminal.integrated.enableImages advertises through DA1), then half-blocks.
|
|
55
|
+
* Only terminals known to misreport their capabilities need a correction
|
|
56
|
+
* from the table above.
|
|
57
|
+
*/
|
|
58
|
+
export function spriteImageProtocol(capabilities) {
|
|
59
|
+
const configured = capabilities?.image_protocol;
|
|
60
|
+
if (configured !== undefined && configured !== "auto")
|
|
61
|
+
return configured;
|
|
62
|
+
const name = capabilities?.terminal.name ?? "";
|
|
63
|
+
const correction = graphicsCorrections.find((entry) => entry.terminalName.test(name) && requirementsMet(entry.requires, capabilities));
|
|
64
|
+
return correction?.protocol ?? "auto";
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Tracks the resolved protocol reactively: capability detection answers
|
|
68
|
+
* after startup, so the accessor flips once the terminal identifies itself.
|
|
69
|
+
*/
|
|
70
|
+
export function createImageProtocolState(source) {
|
|
71
|
+
const [protocol, setProtocol] = createSignal(spriteImageProtocol(source.capabilities));
|
|
72
|
+
const listener = (capabilities) => {
|
|
73
|
+
setProtocol(spriteImageProtocol(capabilities));
|
|
74
|
+
};
|
|
75
|
+
source.on("capabilities", listener);
|
|
76
|
+
return {
|
|
77
|
+
protocol,
|
|
78
|
+
dispose: () => {
|
|
79
|
+
source.off("capabilities", listener);
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=image-protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-protocol.js","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/image-protocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,YAAY,EAAE,MAAM,UAAU,CAAA;AAgBtD;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAKnB;IACJ;QACE,0EAA0E;QAC1E,yEAAyE;QACzE,uEAAuE;QACvE,sEAAsE;QACtE,oEAAoE;QACpE,uEAAuE;QACvE,sEAAsE;QACtE,qCAAqC;QACrC,YAAY,EAAE,cAAc;QAC5B,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACzB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,0DAA0D;KACnE;IACD;QACE,wEAAwE;QACxE,wEAAwE;QACxE,qEAAqE;QACrE,mEAAmE;QACnE,uBAAuB;QACvB,YAAY,EAAE,OAAO;QACrB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,qBAAqB;KAC9B;CACF,CAAA;AAED,MAAM,eAAe,GAAG,CACtB,QAAqF,EACrF,YAA8C,EACrC,EAAE;IACX,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,YAAY,EAAE,KAAK,KAAK,QAAQ,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxF,IACE,QAAQ,CAAC,cAAc,KAAK,SAAS;QACrC,YAAY,EAAE,cAAc,KAAK,QAAQ,CAAC,cAAc,EACxD,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAA8C;IAE9C,MAAM,UAAU,GAAG,YAAY,EAAE,cAAc,CAAA;IAC/C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,UAAU,CAAA;IACxE,MAAM,IAAI,GAAG,YAAY,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAA;IAC9C,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAC1F,CAAA;IACD,OAAO,UAAU,EAAE,QAAQ,IAAI,MAAM,CAAA;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA+B;IAItE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACtF,MAAM,QAAQ,GAAG,CAAC,YAAuC,EAAQ,EAAE;QACjE,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAA;IAChD,CAAC,CAAA;IACD,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;IACnC,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QACtC,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Language } from "../../../../domain/shared/language.js";
|
|
2
2
|
import type { SpriteInput, SpriteResolver } from "../../../sprites/contracts.js";
|
|
3
|
+
import type { ImageProtocolAccessor } from "./image-protocol.js";
|
|
3
4
|
export declare function Sprite(properties: {
|
|
4
5
|
readonly resolve: SpriteResolver;
|
|
5
6
|
readonly gender: SpriteInput["gender"];
|
|
@@ -7,6 +8,7 @@ export declare function Sprite(properties: {
|
|
|
7
8
|
readonly speciesId: string;
|
|
8
9
|
readonly language?: (() => Language) | undefined;
|
|
9
10
|
readonly compactFallback?: boolean | undefined;
|
|
11
|
+
readonly protocol?: ImageProtocolAccessor | undefined;
|
|
10
12
|
readonly width?: number | undefined;
|
|
11
13
|
readonly height?: number | undefined;
|
|
12
14
|
}): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/sprite.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,KAAK,EAAE,WAAW,EAAoB,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/sprite.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,KAAK,EAAE,WAAW,EAAoB,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAClG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAGhE,wBAAgB,MAAM,CAAC,UAAU,EAAE;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,QAAQ,CAAC,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,OAwCA"}
|
|
@@ -24,7 +24,7 @@ export function Sprite(properties) {
|
|
|
24
24
|
: uiCopy(properties.language?.() ?? "en").spriteUnavailable}
|
|
25
25
|
</text>
|
|
26
26
|
</box>}>
|
|
27
|
-
{(cachedSource) => (<image source={cachedSource()} fit="fit" width={width} height={height}/>)}
|
|
27
|
+
{(cachedSource) => (<image source={cachedSource()} fit="fit" width={width} height={height} protocol={properties.protocol?.() ?? "auto"}/>)}
|
|
28
28
|
</Show>);
|
|
29
29
|
}
|
|
30
30
|
//# sourceMappingURL=sprite.jsx.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprite.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/sprite.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"sprite.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/components/sprite.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAGzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAErD,MAAM,UAAU,MAAM,CAAC,UAUtB;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,YAAY,CAA0B,IAAI,CAAC,CAAA;IACvE,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAA;IACrC,KAAK,UAAU;SACZ,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC;SAClE,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACzB,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAA;QACzB,OAAO,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAC7D,CAAC,CAAA;IACD,OAAO,CACL,CAAC,IAAI,CACH,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CACf,QAAQ,CAAC,CACP,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAC5E;UAAA,CAAC,IAAI,CACH;YAAA,CAAC,UAAU,CAAC,eAAe,KAAK,IAAI;gBAClC,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI;oBACjB,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,GAAG;gBACP,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI;oBACjB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,aAAa;oBACvD,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,iBAAiB,CACjE;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,GAAG,CACP,CAAC,CAED;MAAA,CAAC,CAAC,YAA0B,EAAE,EAAE,CAAC,CAC/B,CAAC,KAAK,CACJ,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC,CACvB,GAAG,CAAC,KAAK,CACT,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,MAAM,CAAC,EAC5C,CACH,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Context } from "@opencode/plugin/tui/context";
|
|
2
2
|
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
3
3
|
import type { createPokemonTuiClient } from "../client.js";
|
|
4
|
+
import type { ImageProtocolAccessor } from "../components/image-protocol.js";
|
|
4
5
|
import type { createTuiStateCoordinator } from "../state/coordinator.js";
|
|
5
6
|
type TuiClient = ReturnType<typeof createPokemonTuiClient>;
|
|
6
7
|
type TuiState = ReturnType<typeof createTuiStateCoordinator>;
|
|
@@ -17,6 +18,7 @@ export declare function createPcAction(dependencies: {
|
|
|
17
18
|
readonly muted: () => string;
|
|
18
19
|
};
|
|
19
20
|
readonly resolveSprite: SpriteResolver;
|
|
21
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
20
22
|
}): () => Promise<void>;
|
|
21
23
|
export {};
|
|
22
24
|
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/actions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAG3D,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;AAGxE,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC1D,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5D,wBAAgB,kCAAkC,CAAC,YAAY,EAAE;IAC/D,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CACzB,IACe,YAAY,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC,CAK/D;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE;IAC3C,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,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAA;KAAE,CAAA;IAC7E,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/actions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAGxE,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC1D,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5D,wBAAgB,kCAAkC,CAAC,YAAY,EAAE;IAC/D,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CACzB,IACe,YAAY,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC,CAK/D;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE;IAC3C,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,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAA;KAAE,CAAA;IAC7E,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;CAC9C,SAKkB,OAAO,CAAC,IAAI,CAAC,CAsD/B"}
|
|
@@ -37,7 +37,7 @@ export function createPcAction(dependencies) {
|
|
|
37
37
|
const partyIds = dependencies.state
|
|
38
38
|
.state()
|
|
39
39
|
.party.flatMap((slot) => (slot.pokemon === null ? [] : [slot.pokemon.id]));
|
|
40
|
-
dependencies.dialog.show(() => (<PokemonPcDialog pokemon={pokemon()} partyIds={partyIds} language={dependencies.state.state().locale} textColor={dependencies.theme.base} mutedColor={dependencies.theme.muted} resolveSprite={dependencies.resolveSprite} onClose={() => {
|
|
40
|
+
dependencies.dialog.show(() => (<PokemonPcDialog pokemon={pokemon()} partyIds={partyIds} language={dependencies.state.state().locale} textColor={dependencies.theme.base} mutedColor={dependencies.theme.muted} resolveSprite={dependencies.resolveSprite} imageProtocol={dependencies.imageProtocol} onClose={() => {
|
|
41
41
|
if (!dependencies.state.isDisposed())
|
|
42
42
|
dependencies.dialog.clear();
|
|
43
43
|
}} onConfirm={onConfirm} onRename={(pokemonId, name) => manage(dependencies.rpc.renamePokemon({ pokemonId, name }), (pokemon) => pokemon.map((entry) => entry.id === pokemonId ? { ...entry, name: name.trim() } : entry))} onRelease={(pokemonId) => manage(dependencies.rpc.releasePokemon({ pokemonId }), (pokemon) => pokemon.filter((entry) => entry.id !== pokemonId))}/>));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/actions.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"actions.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/actions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { PokemonInstance } from "../../../../domain/pokemon/model.js";
|
|
2
2
|
import type { Language } from "../../../../domain/shared/language.js";
|
|
3
3
|
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
4
|
+
import type { ImageProtocolAccessor } from "../components/image-protocol.js";
|
|
4
5
|
export declare function PcDetails(properties: {
|
|
5
6
|
readonly pokemon: PokemonInstance;
|
|
6
7
|
readonly language: Language;
|
|
7
8
|
readonly textColor: string;
|
|
8
9
|
readonly resolveSprite: SpriteResolver;
|
|
10
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
9
11
|
}): any;
|
|
10
12
|
//# sourceMappingURL=details.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/details.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAG1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/details.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAG1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAM5E,wBAAgB,SAAS,CAAC,UAAU,EAAE;IACpC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;CAC9C,OAmEA"}
|
|
@@ -15,7 +15,7 @@ export function PcDetails(properties) {
|
|
|
15
15
|
const statLine = ([name, value, ev, iv], indicator = " ") => `${indicator} ${name}${" ".repeat(11 - stringWidth(name))}${" ".repeat(6 - stringWidth(value))}${value} ${ev.padStart(2)} ${iv.padStart(2)}`;
|
|
16
16
|
return (<box alignItems="center" flexDirection="column" gap={1} width="100%" minWidth={0}>
|
|
17
17
|
<box alignItems="center" flexDirection="column">
|
|
18
|
-
<Sprite language={() => properties.language} resolve={properties.resolveSprite} shiny={properties.pokemon.shiny} gender={properties.pokemon.gender} speciesId={properties.pokemon.speciesId}/>
|
|
18
|
+
<Sprite language={() => properties.language} resolve={properties.resolveSprite} protocol={properties.imageProtocol} shiny={properties.pokemon.shiny} gender={properties.pokemon.gender} speciesId={properties.pokemon.speciesId}/>
|
|
19
19
|
<text>{`${properties.pokemon.shiny ? "★ " : ""}${properties.pokemon.name} ${symbol()} Lv.${properties.pokemon.level}`}</text>
|
|
20
20
|
</box>
|
|
21
21
|
<box alignItems="center" flexDirection="column">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/details.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"details.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/details.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { PokemonManagementResult } from "../../../../application/contracts/
|
|
|
3
3
|
import type { PokemonInstance } from "../../../../domain/pokemon/model.js";
|
|
4
4
|
import type { Language } from "../../../../domain/shared/language.js";
|
|
5
5
|
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
6
|
+
import type { ImageProtocolAccessor } from "../components/image-protocol.js";
|
|
6
7
|
import "../controls/native.js";
|
|
7
8
|
export declare function PokemonPcDialog(properties: {
|
|
8
9
|
readonly pokemon: readonly PokemonInstance[];
|
|
@@ -15,5 +16,6 @@ export declare function PokemonPcDialog(properties: {
|
|
|
15
16
|
readonly onRename: (pokemonId: string, name: string) => Promise<PokemonManagementResult["kind"]>;
|
|
16
17
|
readonly onRelease: (pokemonId: string) => Promise<PokemonManagementResult["kind"]>;
|
|
17
18
|
readonly resolveSprite: SpriteResolver;
|
|
19
|
+
readonly imageProtocol: ImageProtocolAccessor;
|
|
18
20
|
}): any;
|
|
19
21
|
//# sourceMappingURL=dialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/dialog.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAA;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/pc/dialog.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAA;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAG5E,OAAO,uBAAuB,CAAA;AAI9B,wBAAgB,eAAe,CAAC,UAAU,EAAE;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAA;IAChG,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAA;IACnF,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;CAC9C,OAiTA"}
|
|
@@ -216,7 +216,7 @@ export function PokemonPcDialog(properties) {
|
|
|
216
216
|
details = renderable;
|
|
217
217
|
}} id="pokecode-pc-details" flexGrow={1} width={0} minHeight={0} minWidth={0} scrollX={false} scrollY contentOptions={{ flexDirection: "column" }} viewportOptions={{ minHeight: 0, overflow: "hidden" }}>
|
|
218
218
|
<Show when={inspected()} keyed>
|
|
219
|
-
{(pokemon) => (<PcDetails pokemon={pokemon} language={properties.language} textColor={textColor()} resolveSprite={properties.resolveSprite}/>)}
|
|
219
|
+
{(pokemon) => (<PcDetails pokemon={pokemon} language={properties.language} textColor={textColor()} resolveSprite={properties.resolveSprite} imageProtocol={properties.imageProtocol}/>)}
|
|
220
220
|
</Show>
|
|
221
221
|
</scrollbox>
|
|
222
222
|
</box>
|