react-native-chess-kit 0.5.1 → 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 +9 -9
- 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 +9 -9
- 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-arrows.tsx +197 -197
- 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
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 anas-asghar4831
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 anas-asghar4831
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,168 +1,187 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
|
77
|
-
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
80
|
-
| `
|
|
81
|
-
| `
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
85
|
-
| `
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
1
|
+
[](https://www.npmjs.com/package/react-native-chess-kit)
|
|
2
|
+
[](https://www.npmjs.com/package/react-native-chess-kit)
|
|
3
|
+
[](https://github.com/anas-asghar4831/react-native-chess-kit/actions/workflows/ci.yml)
|
|
4
|
+
[](https://github.com/anas-asghar4831/react-native-chess-kit/blob/main/LICENSE)
|
|
5
|
+
|
|
6
|
+
# react-native-chess-kit
|
|
7
|
+
|
|
8
|
+
High-performance chess board for React Native. Built for 60fps on budget Android devices.
|
|
9
|
+
|
|
10
|
+
## Performance
|
|
11
|
+
|
|
12
|
+
| Metric | react-native-chess-kit | expo-chessboard |
|
|
13
|
+
|--------|----------------------|-----------------|
|
|
14
|
+
| Gesture handlers | 1 (centralized) | 32 (one per piece) |
|
|
15
|
+
| Mounted components | ~40 | ~281 |
|
|
16
|
+
| Native views | ~75 | ~470 |
|
|
17
|
+
| React Context providers | 0 | 8 |
|
|
18
|
+
| Re-renders during drag | 0 | Per-frame |
|
|
19
|
+
|
|
20
|
+
Zero React re-renders during drag -- all animation runs on the UI thread via Reanimated worklets. Pieces animate only `transform` + `opacity` (Reanimated's fast path). Stable piece IDs survive position changes without unmount/remount cycles.
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install react-native-chess-kit
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Peer dependencies
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install react-native-reanimated react-native-gesture-handler chess.js
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
| Package | Version |
|
|
35
|
+
|---------|---------|
|
|
36
|
+
| react-native-reanimated | >= 3.0.0 |
|
|
37
|
+
| react-native-gesture-handler | >= 2.0.0 |
|
|
38
|
+
| chess.js | >= 1.0.0 |
|
|
39
|
+
| react | >= 18.0.0 |
|
|
40
|
+
| react-native | >= 0.70.0 |
|
|
41
|
+
|
|
42
|
+
## Usage
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
import { useRef } from 'react';
|
|
46
|
+
import { Board } from 'react-native-chess-kit';
|
|
47
|
+
import type { BoardRef } from 'react-native-chess-kit';
|
|
48
|
+
|
|
49
|
+
function ChessScreen() {
|
|
50
|
+
const boardRef = useRef<BoardRef>(null);
|
|
51
|
+
|
|
52
|
+
return (
|
|
53
|
+
<Board
|
|
54
|
+
ref={boardRef}
|
|
55
|
+
fen="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"
|
|
56
|
+
orientation="white"
|
|
57
|
+
boardSize={360}
|
|
58
|
+
gestureEnabled={true}
|
|
59
|
+
player="white"
|
|
60
|
+
colors={{ light: '#eeeed2', dark: '#769656' }}
|
|
61
|
+
moveDuration={200}
|
|
62
|
+
withLetters={true}
|
|
63
|
+
withNumbers={true}
|
|
64
|
+
showLegalMoves={true}
|
|
65
|
+
moveMethod="both"
|
|
66
|
+
onMove={({ from, to }) => {
|
|
67
|
+
console.log(`Moved from ${from} to ${to}`);
|
|
68
|
+
}}
|
|
69
|
+
/>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Props
|
|
75
|
+
|
|
76
|
+
| Prop | Type | Default | Description |
|
|
77
|
+
|------|------|---------|-------------|
|
|
78
|
+
| `fen` | `string` | required | Board position in FEN notation |
|
|
79
|
+
| `orientation` | `'white' \| 'black'` | required | Which color is at the bottom |
|
|
80
|
+
| `boardSize` | `number` | required | Board width/height in pixels |
|
|
81
|
+
| `gestureEnabled` | `boolean` | required | Whether touch interaction is enabled |
|
|
82
|
+
| `player` | `'white' \| 'black' \| 'both'` | required | Which side can move pieces |
|
|
83
|
+
| `colors` | `{ light: string, dark: string }` | required | Square colors |
|
|
84
|
+
| `moveDuration` | `number` | required | Animation duration in ms (0 = instant) |
|
|
85
|
+
| `withLetters` | `boolean` | required | Show file labels (a-h) |
|
|
86
|
+
| `withNumbers` | `boolean` | required | Show rank numbers (1-8) |
|
|
87
|
+
| `showLegalMoves` | `boolean` | required | Show legal move dots on piece selection |
|
|
88
|
+
| `moveMethod` | `'drag' \| 'click' \| 'both'` | required | How the user moves pieces |
|
|
89
|
+
| `onMove` | `(info: { from, to }) => void` | optional | Called after a move gesture completes |
|
|
90
|
+
| `renderPiece` | `(code, size) => ReactElement` | optional | Custom piece renderer |
|
|
91
|
+
|
|
92
|
+
## Ref API
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
const boardRef = useRef<BoardRef>(null);
|
|
96
|
+
|
|
97
|
+
// Programmatic move (e.g. opponent's move, puzzle auto-play)
|
|
98
|
+
boardRef.current?.move({ from: 'e2', to: 'e4' });
|
|
99
|
+
|
|
100
|
+
// Highlight a square
|
|
101
|
+
boardRef.current?.highlight('e4', 'rgba(255, 255, 0, 0.5)');
|
|
102
|
+
|
|
103
|
+
// Clear all highlights
|
|
104
|
+
boardRef.current?.clearHighlights();
|
|
105
|
+
|
|
106
|
+
// Reset to a new position
|
|
107
|
+
boardRef.current?.resetBoard('rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1');
|
|
108
|
+
|
|
109
|
+
// Undo the last visual move (snap back)
|
|
110
|
+
boardRef.current?.undo();
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Custom Piece Rendering
|
|
114
|
+
|
|
115
|
+
Use `renderPiece` to provide your own piece images:
|
|
116
|
+
|
|
117
|
+
```tsx
|
|
118
|
+
import { Image } from 'expo-image';
|
|
119
|
+
|
|
120
|
+
const PIECE_IMAGES = {
|
|
121
|
+
wp: require('./assets/pieces/wp.png'),
|
|
122
|
+
wn: require('./assets/pieces/wn.png'),
|
|
123
|
+
// ... etc
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
<Board
|
|
127
|
+
renderPiece={(code, size) => (
|
|
128
|
+
<Image
|
|
129
|
+
source={PIECE_IMAGES[code]}
|
|
130
|
+
style={{ width: size, height: size }}
|
|
131
|
+
cachePolicy="memory-disk"
|
|
132
|
+
/>
|
|
133
|
+
)}
|
|
134
|
+
// ... other props
|
|
135
|
+
/>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Exports
|
|
139
|
+
|
|
140
|
+
```ts
|
|
141
|
+
// Component
|
|
142
|
+
export { Board } from 'react-native-chess-kit';
|
|
143
|
+
|
|
144
|
+
// Types
|
|
145
|
+
export type {
|
|
146
|
+
BoardRef,
|
|
147
|
+
BoardProps,
|
|
148
|
+
BoardColors,
|
|
149
|
+
BoardPiece,
|
|
150
|
+
ChessColor,
|
|
151
|
+
MoveMethod,
|
|
152
|
+
GestureState,
|
|
153
|
+
LegalMoveTarget,
|
|
154
|
+
ParsedPiece,
|
|
155
|
+
} from 'react-native-chess-kit';
|
|
156
|
+
|
|
157
|
+
// Utilities (useful for overlay positioning)
|
|
158
|
+
export { squareToXY, xyToSquare } from 'react-native-chess-kit';
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Architecture
|
|
162
|
+
|
|
163
|
+
The board follows the chess.com / lichess pattern:
|
|
164
|
+
|
|
165
|
+
- **Single gesture handler** at the board level (not per-piece)
|
|
166
|
+
- **Reanimated shared values** for drag state (zero JS thread work during drag)
|
|
167
|
+
- **Stable piece IDs** via smart FEN diffing (pieces survive position changes)
|
|
168
|
+
- **chess.js** for internal legal move validation
|
|
169
|
+
- **Worklet-only animation** using transform + opacity (Reanimated fast path)
|
|
170
|
+
|
|
171
|
+
## Contributing
|
|
172
|
+
|
|
173
|
+
Contributions are welcome! Please read the [Contributing Guide](CONTRIBUTING.md) before submitting a PR.
|
|
174
|
+
|
|
175
|
+
This project uses [Conventional Commits](https://www.conventionalcommits.org/) for commit messages.
|
|
176
|
+
|
|
177
|
+
## Security
|
|
178
|
+
|
|
179
|
+
To report a vulnerability, please see our [Security Policy](SECURITY.md).
|
|
180
|
+
|
|
181
|
+
## Changelog
|
|
182
|
+
|
|
183
|
+
See [CHANGELOG.md](CHANGELOG.md) for a list of changes.
|
|
184
|
+
|
|
185
|
+
## License
|
|
186
|
+
|
|
187
|
+
MIT
|
|
@@ -18,11 +18,11 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
18
18
|
// Annotations layer
|
|
19
19
|
// ---------------------------------------------------------------------------
|
|
20
20
|
|
|
21
|
-
/**
|
|
22
|
-
* Text annotation badges on chess squares (!, ?, !!, ??, etc.).
|
|
23
|
-
*
|
|
24
|
-
* Each annotation appears as a small colored badge at the top-right
|
|
25
|
-
* corner of the target square. Positioned absolutely, pointer-events none.
|
|
21
|
+
/**
|
|
22
|
+
* Text annotation badges on chess squares (!, ?, !!, ??, etc.).
|
|
23
|
+
*
|
|
24
|
+
* Each annotation appears as a small colored badge at the top-right
|
|
25
|
+
* corner of the target square. Positioned absolutely, pointer-events none.
|
|
26
26
|
*/
|
|
27
27
|
const BoardAnnotations = exports.BoardAnnotations = /*#__PURE__*/_react.default.memo(function BoardAnnotations({
|
|
28
28
|
boardSize,
|
|
@@ -81,9 +81,9 @@ const BoardAnnotations = exports.BoardAnnotations = /*#__PURE__*/_react.default.
|
|
|
81
81
|
// Standalone export for advanced consumers
|
|
82
82
|
// ---------------------------------------------------------------------------
|
|
83
83
|
|
|
84
|
-
/**
|
|
85
|
-
* Single annotation badge component.
|
|
86
|
-
* Exported for consumers who build their own overlay layers.
|
|
84
|
+
/**
|
|
85
|
+
* Single annotation badge component.
|
|
86
|
+
* Exported for consumers who build their own overlay layers.
|
|
87
87
|
*/
|
|
88
88
|
const Annotation = exports.Annotation = /*#__PURE__*/_react.default.memo(function Annotation({
|
|
89
89
|
square,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_useBoardPieces","_constants","_jsxRuntime","e","__esModule","default","BoardAnnotations","exports","React","memo","boardSize","orientation","squareSize","annotations","length","badgeSize","ANNOTATION_SCALE","fontSize","jsx","View","style","position","width","height","pointerEvents","children","map","ann","i","x","y","squareToXY","square","bgColor","backgroundColor","DEFAULT_ANNOTATION_BG","textColor","color","DEFAULT_ANNOTATION_TEXT","left","top","minWidth","borderRadius","alignItems","justifyContent","paddingHorizontal","Text","fontWeight","lineHeight","textAlign","numberOfLines","text","Annotation"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_useBoardPieces","_constants","_jsxRuntime","e","__esModule","default","BoardAnnotations","exports","React","memo","boardSize","orientation","squareSize","annotations","length","badgeSize","ANNOTATION_SCALE","fontSize","jsx","View","style","position","width","height","pointerEvents","children","map","ann","i","x","y","squareToXY","square","bgColor","backgroundColor","DEFAULT_ANNOTATION_BG","textColor","color","DEFAULT_ANNOTATION_TEXT","left","top","minWidth","borderRadius","alignItems","justifyContent","paddingHorizontal","Text","fontWeight","lineHeight","textAlign","numberOfLines","text","Annotation"],"sourceRoot":"../../src","sources":["board-annotations.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -52,13 +52,13 @@ function calculateArrowPath(from, to, shortenBy) {
|
|
|
52
52
|
// Combined arrows + shapes SVG layer
|
|
53
53
|
// ---------------------------------------------------------------------------
|
|
54
54
|
|
|
55
|
-
/**
|
|
56
|
-
* SVG overlay for arrows and shapes drawn on the board.
|
|
57
|
-
*
|
|
58
|
-
* Uses a percentage-based 100x100 viewBox so coordinates map cleanly
|
|
59
|
-
* to the 8x8 grid (each square = 12.5 x 12.5 units).
|
|
60
|
-
*
|
|
61
|
-
* Renders above the pieces layer so arrows are always visible.
|
|
55
|
+
/**
|
|
56
|
+
* SVG overlay for arrows and shapes drawn on the board.
|
|
57
|
+
*
|
|
58
|
+
* Uses a percentage-based 100x100 viewBox so coordinates map cleanly
|
|
59
|
+
* to the 8x8 grid (each square = 12.5 x 12.5 units).
|
|
60
|
+
*
|
|
61
|
+
* Renders above the pieces layer so arrows are always visible.
|
|
62
62
|
*/
|
|
63
63
|
const BoardArrows = exports.BoardArrows = /*#__PURE__*/_react.default.memo(function BoardArrows({
|
|
64
64
|
boardSize,
|
|
@@ -144,8 +144,8 @@ const ArrowSvg = exports.Arrow = /*#__PURE__*/_react.default.memo(function Arrow
|
|
|
144
144
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Line, {
|
|
145
145
|
x1: path.x1,
|
|
146
146
|
y1: path.y1,
|
|
147
|
-
x2: path.x2,
|
|
148
|
-
y2: path.y2,
|
|
147
|
+
x2: path.x2 - ux * headSize * 2,
|
|
148
|
+
y2: path.y2 - uy * headSize * 2,
|
|
149
149
|
stroke: color,
|
|
150
150
|
strokeWidth: width,
|
|
151
151
|
strokeLinecap: "round",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSvg","_interopRequireWildcard","_constants","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","squareToViewBoxCenter","square","orientation","fileIdx","charCodeAt","rankIdx","parseInt","col","row","x","y","calculateArrowPath","from","to","shortenBy","dx","dy","len","Math","sqrt","x1","y1","x2","y2","ux","uy","BoardArrows","exports","React","memo","boardSize","arrows","shapes","hasArrows","length","hasShapes","jsx","View","style","position","width","height","pointerEvents","children","jsxs","viewBox","map","shape","type","center","color","DEFAULT_SHAPE_COLOR","Circle","cx","cy","fill","stroke","strokeWidth","opacity","arrow","ArrowSvg","DEFAULT_ARROW_COLOR","ARROW_STROKE_WIDTH","Arrow","fromCoord","toCoord","path","ARROW_SHORTEN_BY","headSize","ARROW_HEAD_SIZE","tip","baseLeft","baseRight","arrowPoints","Fragment","Line","strokeLinecap","Polygon","points"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSvg","_interopRequireWildcard","_constants","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","squareToViewBoxCenter","square","orientation","fileIdx","charCodeAt","rankIdx","parseInt","col","row","x","y","calculateArrowPath","from","to","shortenBy","dx","dy","len","Math","sqrt","x1","y1","x2","y2","ux","uy","BoardArrows","exports","React","memo","boardSize","arrows","shapes","hasArrows","length","hasShapes","jsx","View","style","position","width","height","pointerEvents","children","jsxs","viewBox","map","shape","type","center","color","DEFAULT_SHAPE_COLOR","Circle","cx","cy","fill","stroke","strokeWidth","opacity","arrow","ArrowSvg","DEFAULT_ARROW_COLOR","ARROW_STROKE_WIDTH","Arrow","fromCoord","toCoord","path","ARROW_SHORTEN_BY","headSize","ARROW_HEAD_SIZE","tip","baseLeft","baseRight","arrowPoints","Fragment","Line","strokeLinecap","Polygon","points"],"sourceRoot":"../../src","sources":["board-arrows.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,11 +8,11 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
-
/**
|
|
12
|
-
* 64 static colored squares forming the chess board grid.
|
|
13
|
-
*
|
|
14
|
-
* These are plain Views with backgroundColor — no animations, no gesture
|
|
15
|
-
* handlers. They never re-render after mount unless the board theme changes.
|
|
11
|
+
/**
|
|
12
|
+
* 64 static colored squares forming the chess board grid.
|
|
13
|
+
*
|
|
14
|
+
* These are plain Views with backgroundColor — no animations, no gesture
|
|
15
|
+
* handlers. They never re-render after mount unless the board theme changes.
|
|
16
16
|
*/
|
|
17
17
|
const BoardBackground = exports.BoardBackground = /*#__PURE__*/_react.default.memo(function BoardBackground({
|
|
18
18
|
boardSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","BoardBackground","exports","React","memo","boardSize","lightColor","darkColor","squareSize","jsx","View","style","width","height","flexDirection","flexWrap","children","SQUARE_INDICES","map","i","row","Math","floor","col","isLight","backgroundColor","Array","from","length","_"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","BoardBackground","exports","React","memo","boardSize","lightColor","darkColor","squareSize","jsx","View","style","width","height","flexDirection","flexWrap","children","SQUARE_INDICES","map","i","row","Math","floor","col","isLight","backgroundColor","Array","from","length","_"],"sourceRoot":"../../src","sources":["board-background.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAoC,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQpC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,eAAe,GAAAC,OAAA,CAAAD,eAAA,gBAAGE,cAAK,CAACC,IAAI,CAAC,SAASH,eAAeA,CAAC;EACjEI,SAAS;EACTC,UAAU;EACVC;AACoB,CAAC,EAAE;EACvB,MAAMC,UAAU,GAAGH,SAAS,GAAG,CAAC;EAEhC,oBACE,IAAAR,WAAA,CAAAY,GAAA,EAACb,YAAA,CAAAc,IAAI;IAACC,KAAK,EAAE;MAAEC,KAAK,EAAEP,SAAS;MAAEQ,MAAM,EAAER,SAAS;MAAES,aAAa,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAO,CAAE;IAAAC,QAAA,EAC1FC,cAAc,CAACC,GAAG,CAAEC,CAAC,IAAK;MACzB,MAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACH,CAAC,GAAG,CAAC,CAAC;MAC7B,MAAMI,GAAG,GAAGJ,CAAC,GAAG,CAAC;MACjB,MAAMK,OAAO,GAAG,CAACJ,GAAG,GAAGG,GAAG,IAAI,CAAC,KAAK,CAAC;MAErC,oBACE,IAAA1B,WAAA,CAAAY,GAAA,EAACb,YAAA,CAAAc,IAAI;QAEHC,KAAK,EAAE;UACLC,KAAK,EAAEJ,UAAU;UACjBK,MAAM,EAAEL,UAAU;UAClBiB,eAAe,EAAED,OAAO,GAAGlB,UAAU,GAAGC;QAC1C;MAAE,GALGY,CAMN,CAAC;IAEN,CAAC;EAAC,CACE,CAAC;AAEX,CAAC,CAAC;;AAEF;AACA,MAAMF,cAAc,GAAGS,KAAK,CAACC,IAAI,CAAC;EAAEC,MAAM,EAAE;AAAG,CAAC,EAAE,CAACC,CAAC,EAAEV,CAAC,KAAKA,CAAC,CAAC","ignoreList":[]}
|
|
@@ -13,14 +13,14 @@ const FILES_BLACK = ['h', 'g', 'f', 'e', 'd', 'c', 'b', 'a'];
|
|
|
13
13
|
const RANKS_WHITE = ['8', '7', '6', '5', '4', '3', '2', '1'];
|
|
14
14
|
const RANKS_BLACK = ['1', '2', '3', '4', '5', '6', '7', '8'];
|
|
15
15
|
|
|
16
|
-
/**
|
|
17
|
-
* File letters (a-h) and rank numbers (1-8) drawn on or around the board.
|
|
18
|
-
*
|
|
19
|
-
* Two modes:
|
|
20
|
-
* - **inside** (default): absolute-positioned inside each edge square, colors
|
|
21
|
-
* alternate to contrast with the square behind them.
|
|
22
|
-
* - **outside**: rendered in a gutter area around the board. Rank numbers to
|
|
23
|
-
* the left, file letters along the bottom. Uses the dark square color.
|
|
16
|
+
/**
|
|
17
|
+
* File letters (a-h) and rank numbers (1-8) drawn on or around the board.
|
|
18
|
+
*
|
|
19
|
+
* Two modes:
|
|
20
|
+
* - **inside** (default): absolute-positioned inside each edge square, colors
|
|
21
|
+
* alternate to contrast with the square behind them.
|
|
22
|
+
* - **outside**: rendered in a gutter area around the board. Rank numbers to
|
|
23
|
+
* the left, file letters along the bottom. Uses the dark square color.
|
|
24
24
|
*/
|
|
25
25
|
const BoardCoordinates = exports.BoardCoordinates = /*#__PURE__*/_react.default.memo(function BoardCoordinates({
|
|
26
26
|
boardSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","FILES_WHITE","FILES_BLACK","RANKS_WHITE","RANKS_BLACK","BoardCoordinates","exports","React","memo","boardSize","orientation","lightColor","darkColor","withLetters","withNumbers","position","gutterWidth","squareSize","files","ranks","fontSize","textColor","jsxs","Fragment","children","jsx","View","style","left","top","width","height","pointerEvents","map","rank","row","alignItems","justifyContent","Text","fontWeight","color","bottom","file","col","padding","isLight","right","textAlign"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","FILES_WHITE","FILES_BLACK","RANKS_WHITE","RANKS_BLACK","BoardCoordinates","exports","React","memo","boardSize","orientation","lightColor","darkColor","withLetters","withNumbers","position","gutterWidth","squareSize","files","ranks","fontSize","textColor","jsxs","Fragment","children","jsx","View","style","left","top","width","height","pointerEvents","map","rank","row","alignItems","justifyContent","Text","fontWeight","color","bottom","file","col","padding","isLight","right","textAlign"],"sourceRoot":"../../src","sources":["board-coordinates.tsx"],"mappings":"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","ignoreList":[]}
|