@omercnet/paseo-queens 0.1.0-next.126.2 → 0.1.0-next.129.1

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.
@@ -144,6 +144,10 @@ function QueensPopoverGame({
144
144
  ? theme.colors.statusDanger
145
145
  : theme.colors.foregroundMuted;
146
146
  const puzzleNumber = state.activePuzzleIndex + 1;
147
+ const selectPuzzle = (index: number) => {
148
+ const clampedIndex = Math.min(Math.max(index, 0), state.puzzles.length - 1);
149
+ session.dispatch({ type: "select-puzzle", index: clampedIndex, now: Date.now() });
150
+ };
147
151
 
148
152
  return (
149
153
  <View style={styles.root}>
@@ -227,19 +231,19 @@ function QueensPopoverGame({
227
231
  canUndo={progress.history.length > 0}
228
232
  canHint={!progress.solved}
229
233
  canReset={hasProgress}
230
- canGoPrevious={false}
231
- canGoNext={false}
234
+ canGoPrevious={state.activePuzzleIndex > 0}
235
+ canGoNext={state.activePuzzleIndex < state.puzzles.length - 1}
232
236
  saving={session.saving}
233
237
  disabled={session.saving}
234
238
  dense
235
- showNavigation={false}
239
+ showNavigation
236
240
  showSavingStatus={false}
237
241
  theme={theme}
238
242
  onUndo={() => session.dispatch({ type: "undo", now: Date.now() })}
239
243
  onHint={() => session.dispatch({ type: "hint", now: Date.now() })}
240
244
  onReset={() => session.dispatch({ type: "reset", now: Date.now() })}
241
- onPrevious={IGNORE_GESTURE}
242
- onNext={IGNORE_GESTURE}
245
+ onPrevious={() => selectPuzzle(state.activePuzzleIndex - 1)}
246
+ onNext={() => selectPuzzle(state.activePuzzleIndex + 1)}
243
247
  />
244
248
  </View>
245
249
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omercnet/paseo-queens",
3
- "version": "0.1.0-next.126.2",
3
+ "version": "0.1.0-next.129.1",
4
4
  "type": "module",
5
5
  "description": "A cross-platform Queens logic puzzle for Paseo.",
6
6
  "license": "MIT",
@@ -38,17 +38,22 @@
38
38
  "paseo-plugin.json"
39
39
  ],
40
40
  "scripts": {
41
- "check": "biome check .",
41
+ "check": "biome check --error-on-warnings .",
42
42
  "import:puzzles": "node scripts/import-curated-puzzles.mjs",
43
- "test": "vitest run",
43
+ "test": "run-s test:ci:*",
44
44
  "typecheck": "tsc --noEmit",
45
- "verify:package": "npm pack --dry-run"
45
+ "verify:package": "npm pack --dry-run",
46
+ "check:write": "biome check --write .",
47
+ "test:ci:unit": "vitest run",
48
+ "build": "node ../.github/scripts/build-plugin.mjs"
46
49
  },
47
50
  "devDependencies": {
48
- "@biomejs/biome": "^2.5.10",
51
+ "@biomejs/biome": "^2.5.14",
49
52
  "@getpaseo/plugin": "0.9.0-beta.1",
53
+ "@getpaseo/server": "0.9.0-beta.1",
50
54
  "@types/node": "^24.5.2",
51
55
  "@types/react": "~19.2.0",
56
+ "npm-run-all2": "^9.0.3",
52
57
  "react": "19.1.0",
53
58
  "react-native": "0.81.5",
54
59
  "typescript": "^7.0.0",