react-native-chess-kit 0.5.2 → 0.5.3
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 +21 -21
- package/README.md +187 -168
- package/lib/commonjs/board-annotations.js +8 -8
- package/lib/commonjs/board-annotations.js.map +1 -1
- package/lib/commonjs/board-arrows.js.map +1 -1
- package/lib/commonjs/board-background.js +5 -5
- package/lib/commonjs/board-background.js.map +1 -1
- package/lib/commonjs/board-coordinates.js +8 -8
- package/lib/commonjs/board-coordinates.js.map +1 -1
- package/lib/commonjs/board-drag-ghost.js +10 -10
- package/lib/commonjs/board-drag-ghost.js.map +1 -1
- package/lib/commonjs/board-highlights.js +15 -15
- package/lib/commonjs/board-highlights.js.map +1 -1
- package/lib/commonjs/board-legal-dots.js +5 -5
- package/lib/commonjs/board-legal-dots.js.map +1 -1
- package/lib/commonjs/board-piece.js +25 -25
- package/lib/commonjs/board-piece.js.map +1 -1
- package/lib/commonjs/board-pieces.js +6 -6
- package/lib/commonjs/board-pieces.js.map +1 -1
- package/lib/commonjs/board.js +68 -63
- package/lib/commonjs/board.js.map +1 -1
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/pieces/default-pieces.js.map +1 -1
- package/lib/commonjs/pieces/index.js.map +1 -1
- package/lib/commonjs/promotion-picker.js +9 -9
- package/lib/commonjs/promotion-picker.js.map +1 -1
- package/lib/commonjs/static-board.js +7 -7
- package/lib/commonjs/static-board.js.map +1 -1
- package/lib/commonjs/themes.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/use-board-gesture.js +26 -26
- package/lib/commonjs/use-board-gesture.js.map +1 -1
- package/lib/commonjs/use-board-pieces.js +15 -15
- package/lib/commonjs/use-board-pieces.js.map +1 -1
- package/lib/commonjs/use-board-state.js +21 -12
- package/lib/commonjs/use-board-state.js.map +1 -1
- package/lib/commonjs/use-premove.js +12 -12
- package/lib/commonjs/use-premove.js.map +1 -1
- package/lib/module/board-annotations.js +8 -8
- package/lib/module/board-annotations.js.map +1 -1
- package/lib/module/board-arrows.js.map +1 -1
- package/lib/module/board-background.js +5 -5
- package/lib/module/board-background.js.map +1 -1
- package/lib/module/board-coordinates.js +8 -8
- package/lib/module/board-coordinates.js.map +1 -1
- package/lib/module/board-drag-ghost.js +10 -10
- package/lib/module/board-drag-ghost.js.map +1 -1
- package/lib/module/board-highlights.js +15 -15
- package/lib/module/board-highlights.js.map +1 -1
- package/lib/module/board-legal-dots.js +5 -5
- package/lib/module/board-legal-dots.js.map +1 -1
- package/lib/module/board-piece.js +25 -25
- package/lib/module/board-piece.js.map +1 -1
- package/lib/module/board-pieces.js +6 -6
- package/lib/module/board-pieces.js.map +1 -1
- package/lib/module/board.js +68 -63
- package/lib/module/board.js.map +1 -1
- package/lib/module/constants.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/pieces/default-pieces.js.map +1 -1
- package/lib/module/pieces/index.js.map +1 -1
- package/lib/module/promotion-picker.js +9 -9
- package/lib/module/promotion-picker.js.map +1 -1
- package/lib/module/static-board.js +7 -7
- package/lib/module/static-board.js.map +1 -1
- package/lib/module/themes.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/use-board-gesture.js +26 -26
- package/lib/module/use-board-gesture.js.map +1 -1
- package/lib/module/use-board-pieces.js +15 -15
- package/lib/module/use-board-pieces.js.map +1 -1
- package/lib/module/use-board-state.js +21 -12
- package/lib/module/use-board-state.js.map +1 -1
- package/lib/module/use-premove.js +12 -12
- package/lib/module/use-premove.js.map +1 -1
- package/lib/typescript/board-coordinates.d.ts.map +1 -1
- package/lib/typescript/board.d.ts.map +1 -1
- package/lib/typescript/promotion-picker.d.ts.map +1 -1
- package/lib/typescript/static-board.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +12 -2
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/use-board-gesture.d.ts.map +1 -1
- package/lib/typescript/use-board-state.d.ts.map +1 -1
- package/package.json +23 -3
- package/src/board-annotations.tsx +147 -147
- package/src/board-background.tsx +46 -46
- package/src/board-coordinates.tsx +192 -192
- package/src/board-drag-ghost.tsx +132 -132
- package/src/board-highlights.tsx +226 -226
- package/src/board-legal-dots.tsx +73 -73
- package/src/board-piece.tsx +160 -160
- package/src/board-pieces.tsx +63 -63
- package/src/board.tsx +688 -685
- package/src/constants.ts +103 -103
- package/src/index.ts +101 -101
- package/src/pieces/default-pieces.tsx +383 -383
- package/src/pieces/index.ts +1 -1
- package/src/promotion-picker.tsx +147 -147
- package/src/static-board.tsx +186 -187
- package/src/themes.ts +129 -129
- package/src/types.ts +394 -373
- package/src/use-board-gesture.ts +459 -429
- package/src/use-board-pieces.ts +158 -158
- package/src/use-board-state.ts +120 -111
- package/src/use-premove.ts +59 -59
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useCallback","useMemo","Chess","useBoardState","initialFen","chessRef","current","getLegalMoves","square","moves","verbose","
|
|
1
|
+
{"version":3,"names":["useRef","useCallback","useMemo","Chess","useBoardState","initialFen","chessRef","current","getLegalMoves","square","moves","verbose","seen","Set","result","m","has","to","add","push","isCapture","captured","undefined","isPlayerPiece","pieces","player","piece","find","p","pieceColor","color","applyMove","from","promotion","move","applied","fen","undoMove","undo","loadFen","load","getFen","getTurn","turn","isInCheck","isCheck"],"sourceRoot":"../../src","sources":["use-board-state.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useState, useCallback } from 'react';
|
|
4
|
-
/**
|
|
5
|
-
* Manages a single premove queue (one premove at a time).
|
|
6
|
-
*
|
|
7
|
-
* Premoves work like lichess:
|
|
8
|
-
* 1. When it's not your turn, you can drag/click a move — it queues as a premove
|
|
9
|
-
* 2. The premove squares are highlighted with a distinct color
|
|
10
|
-
* 3. When your turn begins (FEN changes and it's now your turn), the premove
|
|
11
|
-
* is automatically attempted via the board's internal chess.js
|
|
12
|
-
* 4. If the premove is legal, it's applied; if not, it's silently discarded
|
|
13
|
-
*
|
|
14
|
-
* The board.tsx orchestrates this: it calls consumePremove() in a useEffect
|
|
15
|
-
* that watches the FEN (turn change), then attempts the move.
|
|
4
|
+
/**
|
|
5
|
+
* Manages a single premove queue (one premove at a time).
|
|
6
|
+
*
|
|
7
|
+
* Premoves work like lichess:
|
|
8
|
+
* 1. When it's not your turn, you can drag/click a move — it queues as a premove
|
|
9
|
+
* 2. The premove squares are highlighted with a distinct color
|
|
10
|
+
* 3. When your turn begins (FEN changes and it's now your turn), the premove
|
|
11
|
+
* is automatically attempted via the board's internal chess.js
|
|
12
|
+
* 4. If the premove is legal, it's applied; if not, it's silently discarded
|
|
13
|
+
*
|
|
14
|
+
* The board.tsx orchestrates this: it calls consumePremove() in a useEffect
|
|
15
|
+
* that watches the FEN (turn change), then attempts the move.
|
|
16
16
|
*/
|
|
17
17
|
export function usePremove() {
|
|
18
18
|
const [premove, setPremoveState] = useState(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useCallback","usePremove","premove","setPremoveState","setPremove","pm","clearPremove","consumePremove","consumed","current"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["useState","useCallback","usePremove","premove","setPremoveState","setPremove","pm","clearPremove","consumePremove","consumed","current"],"sourceRoot":"../../src","sources":["use-premove.ts"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AAmB7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAAA,EAAqB;EAC7C,MAAM,CAACC,OAAO,EAAEC,eAAe,CAAC,GAAGJ,QAAQ,CAAqB,IAAI,CAAC;EAErE,MAAMK,UAAU,GAAGJ,WAAW,CAAEK,EAAe,IAAK;IAClDF,eAAe,CAACE,EAAE,CAAC;EACrB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,YAAY,GAAGN,WAAW,CAAC,MAAM;IACrCG,eAAe,CAAC,IAAI,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMI,cAAc,GAAGP,WAAW,CAAC,MAA0B;IAC3D,IAAIQ,QAA4B,GAAG,IAAI;IACvCL,eAAe,CAAEM,OAAO,IAAK;MAC3BD,QAAQ,GAAGC,OAAO;MAClB,OAAO,IAAI;IACb,CAAC,CAAC;IACF,OAAOD,QAAQ;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLN,OAAO;IACPE,UAAU;IACVE,YAAY;IACZC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-coordinates.d.ts","sourceRoot":"","sources":["../../src/board-coordinates.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"board-coordinates.d.ts","sourceRoot":"","sources":["../../src/board-coordinates.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,UAAU,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAOF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,mDA+J3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/board.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/board.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EAKX,MAAM,SAAS,CAAC;AAsEjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,KAAK,6EA+jBhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promotion-picker.d.ts","sourceRoot":"","sources":["../../src/promotion-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"promotion-picker.d.ts","sourceRoot":"","sources":["../../src/promotion-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQ1D,KAAK,oBAAoB,GAAG;IAC1B,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,yDAAyD;IACzD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC;IAChE,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAgBF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,kDAwF1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-board.d.ts","sourceRoot":"","sources":["../../src/static-board.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,OAAO,KAAK,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"static-board.d.ts","sourceRoot":"","sources":["../../src/static-board.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,SAAS,CAAC;AAc3D;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,8CAgKtB,CAAC"}
|
|
@@ -207,8 +207,18 @@ export type BoardProps = {
|
|
|
207
207
|
*/
|
|
208
208
|
pieceExitAnimation?: BaseAnimationBuilder | typeof BaseAnimationBuilder | null;
|
|
209
209
|
/**
|
|
210
|
-
*
|
|
211
|
-
*
|
|
210
|
+
* Auto-promote pawns to this piece without showing the picker.
|
|
211
|
+
* When set, the promotion picker is skipped entirely.
|
|
212
|
+
* Example: `autoPromoteTo="q"` always promotes to queen.
|
|
213
|
+
*/
|
|
214
|
+
autoPromoteTo?: PromotionPiece;
|
|
215
|
+
/**
|
|
216
|
+
* Called when a pawn promotion occurs. If not provided, the built-in
|
|
217
|
+
* promotion picker is shown. Return the chosen piece to complete the
|
|
218
|
+
* promotion, or throw/reject to cancel.
|
|
219
|
+
*
|
|
220
|
+
* When provided, the built-in picker is NOT shown — the consumer is
|
|
221
|
+
* expected to handle piece selection via their own UI.
|
|
212
222
|
*/
|
|
213
223
|
onPromotion?: (from: string, to: string) => Promise<PromotionPiece> | PromotionPiece;
|
|
214
224
|
/** Called after a visual move is applied */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAMjF,qCAAqC;AACrC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3C,yCAAyC;AACzC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnD,kDAAkD;AAClD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/D,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnD,uFAAuF;AACvF,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAMjE,uDAAuD;AACvD,MAAM,MAAM,SAAS,GACjB,IAAI,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-board-gesture.d.ts","sourceRoot":"","sources":["../../src/use-board-gesture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-board-gesture.d.ts","sourceRoot":"","sources":["../../src/use-board-gesture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGvD,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAC;AAOjB,KAAK,gBAAgB,GAAG;IACtB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAEF,yDAAyD;AACzD,KAAK,aAAa,GAAG;IACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9D,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5D,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,+CAA+C;AAC/C,KAAK,gBAAgB,GAAG;IACtB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC/C,CAAC;AAMF,KAAK,qBAAqB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,mCAAmC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6DAA6D;IAC7D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2DAA2D;IAC3D,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,iEAAiE;IACjE,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CACzB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAoBF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,WAAW,EACX,cAAc,EACd,MAAM,EACN,UAAU,EACV,MAAM,EACN,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,eAAuB,EACvB,cAAc,EACd,UAAU,EACV,WAAW,GACZ,EAAE,qBAAqB,GAAG,qBAAqB,CA0U/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-board-state.d.ts","sourceRoot":"","sources":["../../src/use-board-state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE,KAAK,UAAU,GAAG;IAChB,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,sDAAsD;IACtD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC;IACrD,yEAAyE;IACzE,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,KAAK,OAAO,CAAC;IAC9F,8EAA8E;IAC9E,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC;IACxE,qDAAqD;IACrD,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,mDAAmD;IACnD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,8CAA8C;IAC9C,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"use-board-state.d.ts","sourceRoot":"","sources":["../../src/use-board-state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE,KAAK,UAAU,GAAG;IAChB,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,sDAAsD;IACtD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC;IACrD,yEAAyE;IACzE,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,KAAK,OAAO,CAAC;IAC9F,8EAA8E;IAC9E,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC;IACxE,qDAAqD;IACrD,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,mDAAmD;IACnD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,8CAA8C;IAC9C,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CA8ElE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-chess-kit",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "High-performance chess board for React Native. Single gesture handler, ~40 components, 0 re-renders during drag. Built on Reanimated + Gesture Handler.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -17,7 +17,13 @@
|
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "bob build",
|
|
19
19
|
"typecheck": "tsc --noEmit",
|
|
20
|
-
"
|
|
20
|
+
"lint": "eslint src/",
|
|
21
|
+
"lint:fix": "eslint src/ --fix",
|
|
22
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
23
|
+
"format:check": "prettier --check \"src/**/*.{ts,tsx}\"",
|
|
24
|
+
"clean": "rimraf lib",
|
|
25
|
+
"prepare": "husky",
|
|
26
|
+
"prepack": "bob build"
|
|
21
27
|
},
|
|
22
28
|
"keywords": [
|
|
23
29
|
"react-native",
|
|
@@ -56,7 +62,21 @@
|
|
|
56
62
|
"react-native-gesture-handler": "~2.28.0",
|
|
57
63
|
"react-native-reanimated": "~4.1.1",
|
|
58
64
|
"react-native-svg": "~15.11.2",
|
|
59
|
-
"typescript": "~5.9.2"
|
|
65
|
+
"typescript": "~5.9.2",
|
|
66
|
+
"@eslint/js": "^9.0.0",
|
|
67
|
+
"typescript-eslint": "^8.0.0",
|
|
68
|
+
"eslint-plugin-react-hooks": "^5.0.0",
|
|
69
|
+
"eslint": "^9.0.0",
|
|
70
|
+
"prettier": "^3.3.0",
|
|
71
|
+
"husky": "^9.0.0",
|
|
72
|
+
"lint-staged": "^15.0.0",
|
|
73
|
+
"rimraf": "^6.0.0"
|
|
74
|
+
},
|
|
75
|
+
"lint-staged": {
|
|
76
|
+
"src/**/*.{ts,tsx}": [
|
|
77
|
+
"eslint --fix",
|
|
78
|
+
"prettier --write"
|
|
79
|
+
]
|
|
60
80
|
},
|
|
61
81
|
"react-native-builder-bob": {
|
|
62
82
|
"source": "src",
|
|
@@ -1,147 +1,147 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { View, Text } from 'react-native';
|
|
3
|
-
|
|
4
|
-
import type { ChessColor, AnnotationData } from './types';
|
|
5
|
-
import { squareToXY } from './use-board-pieces';
|
|
6
|
-
import { DEFAULT_ANNOTATION_BG, DEFAULT_ANNOTATION_TEXT, ANNOTATION_SCALE } from './constants';
|
|
7
|
-
|
|
8
|
-
// ---------------------------------------------------------------------------
|
|
9
|
-
// Props
|
|
10
|
-
// ---------------------------------------------------------------------------
|
|
11
|
-
|
|
12
|
-
type BoardAnnotationsProps = {
|
|
13
|
-
boardSize: number;
|
|
14
|
-
orientation: ChessColor;
|
|
15
|
-
squareSize: number;
|
|
16
|
-
annotations: AnnotationData[];
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
// ---------------------------------------------------------------------------
|
|
20
|
-
// Annotations layer
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Text annotation badges on chess squares (!, ?, !!, ??, etc.).
|
|
25
|
-
*
|
|
26
|
-
* Each annotation appears as a small colored badge at the top-right
|
|
27
|
-
* corner of the target square. Positioned absolutely, pointer-events none.
|
|
28
|
-
*/
|
|
29
|
-
export const BoardAnnotations = React.memo(function BoardAnnotations({
|
|
30
|
-
boardSize,
|
|
31
|
-
orientation,
|
|
32
|
-
squareSize,
|
|
33
|
-
annotations,
|
|
34
|
-
}: BoardAnnotationsProps) {
|
|
35
|
-
if (annotations.length === 0) return null;
|
|
36
|
-
|
|
37
|
-
const badgeSize = squareSize * ANNOTATION_SCALE;
|
|
38
|
-
const fontSize = badgeSize * 0.65;
|
|
39
|
-
|
|
40
|
-
return (
|
|
41
|
-
<View
|
|
42
|
-
style={{ position: 'absolute', width: boardSize, height: boardSize }}
|
|
43
|
-
pointerEvents="none"
|
|
44
|
-
>
|
|
45
|
-
{annotations.map((ann, i) => {
|
|
46
|
-
const { x, y } = squareToXY(ann.square, squareSize, orientation);
|
|
47
|
-
const bgColor = ann.backgroundColor ?? DEFAULT_ANNOTATION_BG;
|
|
48
|
-
const textColor = ann.color ?? DEFAULT_ANNOTATION_TEXT;
|
|
49
|
-
|
|
50
|
-
return (
|
|
51
|
-
<View
|
|
52
|
-
key={`ann-${ann.square}-${i}`}
|
|
53
|
-
style={{
|
|
54
|
-
position: 'absolute',
|
|
55
|
-
// Position at top-right corner of the square
|
|
56
|
-
left: x + squareSize - badgeSize - 1,
|
|
57
|
-
top: y + 1,
|
|
58
|
-
minWidth: badgeSize,
|
|
59
|
-
height: badgeSize,
|
|
60
|
-
borderRadius: badgeSize / 2,
|
|
61
|
-
backgroundColor: bgColor,
|
|
62
|
-
alignItems: 'center',
|
|
63
|
-
justifyContent: 'center',
|
|
64
|
-
paddingHorizontal: 2,
|
|
65
|
-
}}
|
|
66
|
-
>
|
|
67
|
-
<Text
|
|
68
|
-
style={{
|
|
69
|
-
color: textColor,
|
|
70
|
-
fontSize,
|
|
71
|
-
fontWeight: '700',
|
|
72
|
-
lineHeight: badgeSize * 0.85,
|
|
73
|
-
textAlign: 'center',
|
|
74
|
-
}}
|
|
75
|
-
numberOfLines={1}
|
|
76
|
-
>
|
|
77
|
-
{ann.text}
|
|
78
|
-
</Text>
|
|
79
|
-
</View>
|
|
80
|
-
);
|
|
81
|
-
})}
|
|
82
|
-
</View>
|
|
83
|
-
);
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
// ---------------------------------------------------------------------------
|
|
87
|
-
// Standalone export for advanced consumers
|
|
88
|
-
// ---------------------------------------------------------------------------
|
|
89
|
-
|
|
90
|
-
type AnnotationBadgeProps = {
|
|
91
|
-
square: string;
|
|
92
|
-
text: string;
|
|
93
|
-
squareSize: number;
|
|
94
|
-
orientation: ChessColor;
|
|
95
|
-
color?: string;
|
|
96
|
-
backgroundColor?: string;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Single annotation badge component.
|
|
101
|
-
* Exported for consumers who build their own overlay layers.
|
|
102
|
-
*/
|
|
103
|
-
export const Annotation = React.memo(function Annotation({
|
|
104
|
-
square,
|
|
105
|
-
text,
|
|
106
|
-
squareSize,
|
|
107
|
-
orientation,
|
|
108
|
-
color,
|
|
109
|
-
backgroundColor,
|
|
110
|
-
}: AnnotationBadgeProps) {
|
|
111
|
-
const { x, y } = squareToXY(square, squareSize, orientation);
|
|
112
|
-
const badgeSize = squareSize * ANNOTATION_SCALE;
|
|
113
|
-
const fontSize = badgeSize * 0.65;
|
|
114
|
-
const bgColor = backgroundColor ?? DEFAULT_ANNOTATION_BG;
|
|
115
|
-
const textColor = color ?? DEFAULT_ANNOTATION_TEXT;
|
|
116
|
-
|
|
117
|
-
return (
|
|
118
|
-
<View
|
|
119
|
-
style={{
|
|
120
|
-
position: 'absolute',
|
|
121
|
-
left: x + squareSize - badgeSize - 1,
|
|
122
|
-
top: y + 1,
|
|
123
|
-
minWidth: badgeSize,
|
|
124
|
-
height: badgeSize,
|
|
125
|
-
borderRadius: badgeSize / 2,
|
|
126
|
-
backgroundColor: bgColor,
|
|
127
|
-
alignItems: 'center',
|
|
128
|
-
justifyContent: 'center',
|
|
129
|
-
paddingHorizontal: 2,
|
|
130
|
-
}}
|
|
131
|
-
pointerEvents="none"
|
|
132
|
-
>
|
|
133
|
-
<Text
|
|
134
|
-
style={{
|
|
135
|
-
color: textColor,
|
|
136
|
-
fontSize,
|
|
137
|
-
fontWeight: '700',
|
|
138
|
-
lineHeight: badgeSize * 0.85,
|
|
139
|
-
textAlign: 'center',
|
|
140
|
-
}}
|
|
141
|
-
numberOfLines={1}
|
|
142
|
-
>
|
|
143
|
-
{text}
|
|
144
|
-
</Text>
|
|
145
|
-
</View>
|
|
146
|
-
);
|
|
147
|
-
});
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { View, Text } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import type { ChessColor, AnnotationData } from './types';
|
|
5
|
+
import { squareToXY } from './use-board-pieces';
|
|
6
|
+
import { DEFAULT_ANNOTATION_BG, DEFAULT_ANNOTATION_TEXT, ANNOTATION_SCALE } from './constants';
|
|
7
|
+
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Props
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
type BoardAnnotationsProps = {
|
|
13
|
+
boardSize: number;
|
|
14
|
+
orientation: ChessColor;
|
|
15
|
+
squareSize: number;
|
|
16
|
+
annotations: AnnotationData[];
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Annotations layer
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Text annotation badges on chess squares (!, ?, !!, ??, etc.).
|
|
25
|
+
*
|
|
26
|
+
* Each annotation appears as a small colored badge at the top-right
|
|
27
|
+
* corner of the target square. Positioned absolutely, pointer-events none.
|
|
28
|
+
*/
|
|
29
|
+
export const BoardAnnotations = React.memo(function BoardAnnotations({
|
|
30
|
+
boardSize,
|
|
31
|
+
orientation,
|
|
32
|
+
squareSize,
|
|
33
|
+
annotations,
|
|
34
|
+
}: BoardAnnotationsProps) {
|
|
35
|
+
if (annotations.length === 0) return null;
|
|
36
|
+
|
|
37
|
+
const badgeSize = squareSize * ANNOTATION_SCALE;
|
|
38
|
+
const fontSize = badgeSize * 0.65;
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<View
|
|
42
|
+
style={{ position: 'absolute', width: boardSize, height: boardSize }}
|
|
43
|
+
pointerEvents="none"
|
|
44
|
+
>
|
|
45
|
+
{annotations.map((ann, i) => {
|
|
46
|
+
const { x, y } = squareToXY(ann.square, squareSize, orientation);
|
|
47
|
+
const bgColor = ann.backgroundColor ?? DEFAULT_ANNOTATION_BG;
|
|
48
|
+
const textColor = ann.color ?? DEFAULT_ANNOTATION_TEXT;
|
|
49
|
+
|
|
50
|
+
return (
|
|
51
|
+
<View
|
|
52
|
+
key={`ann-${ann.square}-${i}`}
|
|
53
|
+
style={{
|
|
54
|
+
position: 'absolute',
|
|
55
|
+
// Position at top-right corner of the square
|
|
56
|
+
left: x + squareSize - badgeSize - 1,
|
|
57
|
+
top: y + 1,
|
|
58
|
+
minWidth: badgeSize,
|
|
59
|
+
height: badgeSize,
|
|
60
|
+
borderRadius: badgeSize / 2,
|
|
61
|
+
backgroundColor: bgColor,
|
|
62
|
+
alignItems: 'center',
|
|
63
|
+
justifyContent: 'center',
|
|
64
|
+
paddingHorizontal: 2,
|
|
65
|
+
}}
|
|
66
|
+
>
|
|
67
|
+
<Text
|
|
68
|
+
style={{
|
|
69
|
+
color: textColor,
|
|
70
|
+
fontSize,
|
|
71
|
+
fontWeight: '700',
|
|
72
|
+
lineHeight: badgeSize * 0.85,
|
|
73
|
+
textAlign: 'center',
|
|
74
|
+
}}
|
|
75
|
+
numberOfLines={1}
|
|
76
|
+
>
|
|
77
|
+
{ann.text}
|
|
78
|
+
</Text>
|
|
79
|
+
</View>
|
|
80
|
+
);
|
|
81
|
+
})}
|
|
82
|
+
</View>
|
|
83
|
+
);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// ---------------------------------------------------------------------------
|
|
87
|
+
// Standalone export for advanced consumers
|
|
88
|
+
// ---------------------------------------------------------------------------
|
|
89
|
+
|
|
90
|
+
type AnnotationBadgeProps = {
|
|
91
|
+
square: string;
|
|
92
|
+
text: string;
|
|
93
|
+
squareSize: number;
|
|
94
|
+
orientation: ChessColor;
|
|
95
|
+
color?: string;
|
|
96
|
+
backgroundColor?: string;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Single annotation badge component.
|
|
101
|
+
* Exported for consumers who build their own overlay layers.
|
|
102
|
+
*/
|
|
103
|
+
export const Annotation = React.memo(function Annotation({
|
|
104
|
+
square,
|
|
105
|
+
text,
|
|
106
|
+
squareSize,
|
|
107
|
+
orientation,
|
|
108
|
+
color,
|
|
109
|
+
backgroundColor,
|
|
110
|
+
}: AnnotationBadgeProps) {
|
|
111
|
+
const { x, y } = squareToXY(square, squareSize, orientation);
|
|
112
|
+
const badgeSize = squareSize * ANNOTATION_SCALE;
|
|
113
|
+
const fontSize = badgeSize * 0.65;
|
|
114
|
+
const bgColor = backgroundColor ?? DEFAULT_ANNOTATION_BG;
|
|
115
|
+
const textColor = color ?? DEFAULT_ANNOTATION_TEXT;
|
|
116
|
+
|
|
117
|
+
return (
|
|
118
|
+
<View
|
|
119
|
+
style={{
|
|
120
|
+
position: 'absolute',
|
|
121
|
+
left: x + squareSize - badgeSize - 1,
|
|
122
|
+
top: y + 1,
|
|
123
|
+
minWidth: badgeSize,
|
|
124
|
+
height: badgeSize,
|
|
125
|
+
borderRadius: badgeSize / 2,
|
|
126
|
+
backgroundColor: bgColor,
|
|
127
|
+
alignItems: 'center',
|
|
128
|
+
justifyContent: 'center',
|
|
129
|
+
paddingHorizontal: 2,
|
|
130
|
+
}}
|
|
131
|
+
pointerEvents="none"
|
|
132
|
+
>
|
|
133
|
+
<Text
|
|
134
|
+
style={{
|
|
135
|
+
color: textColor,
|
|
136
|
+
fontSize,
|
|
137
|
+
fontWeight: '700',
|
|
138
|
+
lineHeight: badgeSize * 0.85,
|
|
139
|
+
textAlign: 'center',
|
|
140
|
+
}}
|
|
141
|
+
numberOfLines={1}
|
|
142
|
+
>
|
|
143
|
+
{text}
|
|
144
|
+
</Text>
|
|
145
|
+
</View>
|
|
146
|
+
);
|
|
147
|
+
});
|
package/src/board-background.tsx
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { View } from 'react-native';
|
|
3
|
-
|
|
4
|
-
type BoardBackgroundProps = {
|
|
5
|
-
boardSize: number;
|
|
6
|
-
lightColor: string;
|
|
7
|
-
darkColor: string;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* 64 static colored squares forming the chess board grid.
|
|
12
|
-
*
|
|
13
|
-
* These are plain Views with backgroundColor — no animations, no gesture
|
|
14
|
-
* handlers. They never re-render after mount unless the board theme changes.
|
|
15
|
-
*/
|
|
16
|
-
export const BoardBackground = React.memo(function BoardBackground({
|
|
17
|
-
boardSize,
|
|
18
|
-
lightColor,
|
|
19
|
-
darkColor,
|
|
20
|
-
}: BoardBackgroundProps) {
|
|
21
|
-
const squareSize = boardSize / 8;
|
|
22
|
-
|
|
23
|
-
return (
|
|
24
|
-
<View style={{ width: boardSize, height: boardSize, flexDirection: 'row', flexWrap: 'wrap' }}>
|
|
25
|
-
{SQUARE_INDICES.map((i) => {
|
|
26
|
-
const row = Math.floor(i / 8);
|
|
27
|
-
const col = i % 8;
|
|
28
|
-
const isLight = (row + col) % 2 === 0;
|
|
29
|
-
|
|
30
|
-
return (
|
|
31
|
-
<View
|
|
32
|
-
key={i}
|
|
33
|
-
style={{
|
|
34
|
-
width: squareSize,
|
|
35
|
-
height: squareSize,
|
|
36
|
-
backgroundColor: isLight ? lightColor : darkColor,
|
|
37
|
-
}}
|
|
38
|
-
/>
|
|
39
|
-
);
|
|
40
|
-
})}
|
|
41
|
-
</View>
|
|
42
|
-
);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
// Pre-computed array of 0-63 to avoid allocation on every render
|
|
46
|
-
const SQUARE_INDICES = Array.from({ length: 64 }, (_, i) => i);
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
type BoardBackgroundProps = {
|
|
5
|
+
boardSize: number;
|
|
6
|
+
lightColor: string;
|
|
7
|
+
darkColor: string;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 64 static colored squares forming the chess board grid.
|
|
12
|
+
*
|
|
13
|
+
* These are plain Views with backgroundColor — no animations, no gesture
|
|
14
|
+
* handlers. They never re-render after mount unless the board theme changes.
|
|
15
|
+
*/
|
|
16
|
+
export const BoardBackground = React.memo(function BoardBackground({
|
|
17
|
+
boardSize,
|
|
18
|
+
lightColor,
|
|
19
|
+
darkColor,
|
|
20
|
+
}: BoardBackgroundProps) {
|
|
21
|
+
const squareSize = boardSize / 8;
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<View style={{ width: boardSize, height: boardSize, flexDirection: 'row', flexWrap: 'wrap' }}>
|
|
25
|
+
{SQUARE_INDICES.map((i) => {
|
|
26
|
+
const row = Math.floor(i / 8);
|
|
27
|
+
const col = i % 8;
|
|
28
|
+
const isLight = (row + col) % 2 === 0;
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<View
|
|
32
|
+
key={i}
|
|
33
|
+
style={{
|
|
34
|
+
width: squareSize,
|
|
35
|
+
height: squareSize,
|
|
36
|
+
backgroundColor: isLight ? lightColor : darkColor,
|
|
37
|
+
}}
|
|
38
|
+
/>
|
|
39
|
+
);
|
|
40
|
+
})}
|
|
41
|
+
</View>
|
|
42
|
+
);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Pre-computed array of 0-63 to avoid allocation on every render
|
|
46
|
+
const SQUARE_INDICES = Array.from({ length: 64 }, (_, i) => i);
|