kokopu-react 3.1.0 → 3.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.
Files changed (236) hide show
  1. package/.eslintrc.yml +1 -1
  2. package/CHANGELOG.md +10 -0
  3. package/dist/lib/chessboard/BoardProperties.js.map +1 -1
  4. package/dist/lib/chessboard/Chessboard.css +13 -13
  5. package/dist/lib/chessboard/Chessboard.d.ts +27 -2
  6. package/dist/lib/chessboard/Chessboard.js +36 -17
  7. package/dist/lib/chessboard/Chessboard.js.map +1 -1
  8. package/dist/lib/chessboard/ChessboardImpl.js.map +1 -1
  9. package/dist/lib/chessboard/Draggable.js.map +1 -1
  10. package/dist/lib/chessboard/Motion.js.map +1 -1
  11. package/dist/lib/chessboard/colorsets.js.map +1 -1
  12. package/dist/lib/chessboard/piecesets.js.map +1 -1
  13. package/dist/lib/errorbox/ErrorBox.css +18 -18
  14. package/dist/lib/errorbox/ErrorBox.js.map +1 -1
  15. package/dist/lib/errorbox/parsing.js.map +1 -1
  16. package/dist/lib/exception.js.map +1 -1
  17. package/dist/lib/i18n.d.ts +1 -0
  18. package/dist/lib/i18n.js +1 -0
  19. package/dist/lib/i18n.js.map +1 -1
  20. package/dist/lib/icons/AnnotationSymbolShape.css +6 -6
  21. package/dist/lib/icons/AnnotationSymbolShape.js.map +1 -1
  22. package/dist/lib/icons/ArrowMarkerIcon.js.map +1 -1
  23. package/dist/lib/icons/ArrowTip.js.map +1 -1
  24. package/dist/lib/icons/ChessPieceIcon.js.map +1 -1
  25. package/dist/lib/icons/SquareMarkerIcon.js.map +1 -1
  26. package/dist/lib/icons/TextMarkerIcon.js.map +1 -1
  27. package/dist/lib/icons/arrow.css +1 -1
  28. package/dist/lib/index.d.ts +1 -0
  29. package/dist/lib/index.js +1 -0
  30. package/dist/lib/index.js.map +1 -1
  31. package/dist/lib/movetext/Movetext.css +27 -27
  32. package/dist/lib/movetext/Movetext.js.map +1 -1
  33. package/dist/lib/movetext/MovetextImpl.js.map +1 -1
  34. package/dist/lib/movetext/fonts.css +7 -7
  35. package/dist/lib/movetext/htmlFilter.js.map +1 -1
  36. package/dist/lib/movetext/moveFormatter.js.map +1 -1
  37. package/dist/lib/navigationboard/NavigationBoard.d.ts +68 -1
  38. package/dist/lib/navigationboard/NavigationBoard.js +141 -13
  39. package/dist/lib/navigationboard/NavigationBoard.js.map +1 -1
  40. package/dist/lib/navigationboard/NavigationButton.d.ts +66 -0
  41. package/dist/lib/navigationboard/NavigationButton.js +67 -0
  42. package/dist/lib/navigationboard/NavigationButton.js.map +1 -0
  43. package/dist/lib/navigationboard/NavigationField.css +7 -7
  44. package/dist/lib/navigationboard/NavigationField.js.map +1 -1
  45. package/dist/lib/navigationboard/NavigationToolbar.css +16 -13
  46. package/dist/lib/navigationboard/NavigationToolbar.d.ts +10 -10
  47. package/dist/lib/navigationboard/NavigationToolbar.js +61 -79
  48. package/dist/lib/navigationboard/NavigationToolbar.js.map +1 -1
  49. package/dist/lib/navigationboard/iconPaths.d.ts +29 -0
  50. package/dist/lib/navigationboard/iconPaths.js +91 -0
  51. package/dist/lib/navigationboard/iconPaths.js.map +1 -0
  52. package/dist/lib/sanitization.js.map +1 -1
  53. package/dist/lib/types.js.map +1 -1
  54. package/dist/lib/util.js.map +1 -1
  55. package/doc_src/demo/PageChessboardBase.tsx +115 -115
  56. package/doc_src/demo/PageChessboardInteraction.tsx +303 -303
  57. package/doc_src/demo/PageChessboardMove.tsx +173 -173
  58. package/doc_src/demo/PageChessboardSmallScreens.tsx +94 -94
  59. package/doc_src/demo/PageMovetextBase.tsx +180 -180
  60. package/doc_src/demo/PageMovetextInteraction.tsx +123 -123
  61. package/doc_src/demo/PageNavigationBoardBase.tsx +144 -137
  62. package/doc_src/demo/PageNavigationBoardUncontrolledVsControlled.tsx +69 -69
  63. package/doc_src/demo/decs.d.ts +4 -4
  64. package/doc_src/demo/demo.css +12 -12
  65. package/doc_src/demo/util.ts +1 -1
  66. package/doc_src/examples/NavigationBoard.md +1 -1
  67. package/doc_src/theming/LogoRenderer.js +13 -13
  68. package/doc_src/theming/theming.css +5 -5
  69. package/package.json +95 -95
  70. package/scripts/doc.styleguide.config.js +131 -131
  71. package/scripts/doc.tsconfig.json +5 -5
  72. package/scripts/docker-compose.yml +1 -1
  73. package/scripts/test-graphic.tsconfig.json +5 -5
  74. package/scripts/test-graphic.webpack.config.js +57 -57
  75. package/scripts/test-headless.webpack.config.js +29 -29
  76. package/src/chessboard/BoardProperties.ts +68 -68
  77. package/src/chessboard/Chessboard.css +13 -13
  78. package/src/chessboard/Chessboard.tsx +436 -380
  79. package/src/chessboard/ChessboardImpl.tsx +557 -557
  80. package/src/chessboard/Draggable.tsx +185 -185
  81. package/src/chessboard/Motion.tsx +67 -67
  82. package/src/chessboard/colorsets.ts +66 -66
  83. package/src/chessboard/piecesets.ts +84 -84
  84. package/src/decs.d.ts +2 -2
  85. package/src/errorbox/ErrorBox.css +18 -18
  86. package/src/errorbox/ErrorBox.tsx +75 -75
  87. package/src/errorbox/parsing.tsx +95 -95
  88. package/src/exception.ts +17 -17
  89. package/src/i18n.ts +1 -0
  90. package/src/icons/AnnotationSymbolShape.css +6 -6
  91. package/src/icons/AnnotationSymbolShape.tsx +31 -31
  92. package/src/icons/ArrowMarkerIcon.tsx +34 -34
  93. package/src/icons/ArrowTip.tsx +14 -14
  94. package/src/icons/ChessPieceIcon.tsx +45 -45
  95. package/src/icons/SquareMarkerIcon.tsx +20 -20
  96. package/src/icons/TextMarkerIcon.tsx +29 -29
  97. package/src/icons/arrow.css +1 -1
  98. package/src/index.ts +3 -2
  99. package/src/movetext/Movetext.css +27 -27
  100. package/src/movetext/Movetext.tsx +158 -158
  101. package/src/movetext/MovetextImpl.tsx +345 -345
  102. package/src/movetext/fonts.css +7 -7
  103. package/src/movetext/htmlFilter.tsx +129 -129
  104. package/src/movetext/moveFormatter.tsx +37 -37
  105. package/src/navigationboard/NavigationBoard.tsx +386 -180
  106. package/src/navigationboard/NavigationButton.ts +114 -0
  107. package/src/navigationboard/NavigationField.css +7 -7
  108. package/src/navigationboard/NavigationField.tsx +90 -90
  109. package/src/navigationboard/NavigationToolbar.css +16 -13
  110. package/src/navigationboard/NavigationToolbar.tsx +98 -112
  111. package/src/navigationboard/iconPaths.ts +98 -0
  112. package/src/sanitization.ts +17 -17
  113. package/src/types.ts +116 -116
  114. package/src/util.ts +11 -11
  115. package/test/01_types.js +167 -167
  116. package/test/02_chessboard_util.js +191 -115
  117. package/test/03_error_box_graphic.js +16 -16
  118. package/test/04_icons_graphic.js +32 -32
  119. package/test/05_chessboard_graphic.js +60 -60
  120. package/test/06_chessboard_animation.js +36 -36
  121. package/test/07_chessboard_interaction.js +101 -101
  122. package/test/08_chessboard_play_moves.js +62 -62
  123. package/test/09_chessboard_small_screens.js +32 -32
  124. package/test/10_movetext_graphic.js +32 -32
  125. package/test/11_movetext_interaction.js +100 -100
  126. package/test/12_navigation_board_base.js +151 -0
  127. package/test/13_navigation_board_graphic.js +68 -0
  128. package/test/14_navigation_board_autoplay.js +100 -0
  129. package/test/common/graphic.js +106 -97
  130. package/test/graphic_references/12_navigation_board_base/controlled/default.png +0 -0
  131. package/test/graphic_references/{12_navigation_board/controlled/forbidden_navigation_1.png → 12_navigation_board_base/controlled/forbidden_navigation_0.png} +0 -0
  132. package/test/graphic_references/{12_navigation_board/controlled/invalid_node_id.png → 12_navigation_board_base/controlled/forbidden_navigation_1.png} +0 -0
  133. package/test/graphic_references/{12_navigation_board/controlled/forbidden_navigation_0.png → 12_navigation_board_base/controlled/invalid_node_id.png} +0 -0
  134. package/test/graphic_references/12_navigation_board_base/controlled/no_callback_defined_0.png +0 -0
  135. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/controlled/no_callback_defined_1.png +0 -0
  136. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/controlled/overriding_initial_node_id.png +0 -0
  137. package/test/graphic_references/{12_navigation_board/controlled/regular_navigation_1.png → 12_navigation_board_base/controlled/regular_navigation_0.png} +0 -0
  138. package/test/graphic_references/{12_navigation_board/uncontrolled/initial_state_at_specific_id.png → 12_navigation_board_base/controlled/regular_navigation_1.png} +0 -0
  139. package/test/graphic_references/{12_navigation_board/controlled/regular_navigation_3.png → 12_navigation_board_base/controlled/regular_navigation_2.png} +0 -0
  140. package/test/graphic_references/{12_navigation_board/controlled/regular_navigation_0.png → 12_navigation_board_base/controlled/regular_navigation_3.png} +0 -0
  141. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_2.png → 12_navigation_board_base/uncontrolled/forbidden_navigation_at_beginning_0.png} +0 -0
  142. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_0.png → 12_navigation_board_base/uncontrolled/forbidden_navigation_at_beginning_1.png} +0 -0
  143. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_1.png → 12_navigation_board_base/uncontrolled/forbidden_navigation_at_beginning_2.png} +0 -0
  144. package/test/graphic_references/{12_navigation_board/controlled/no_callback_defined_0.png → 12_navigation_board_base/uncontrolled/forbidden_navigation_at_end_0.png} +0 -0
  145. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_end_1.png +0 -0
  146. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_end_2.png +0 -0
  147. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/initial_state_at_end.png +0 -0
  148. package/test/graphic_references/12_navigation_board_base/uncontrolled/initial_state_at_specific_id.png +0 -0
  149. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/initial_state_default.png +0 -0
  150. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/initial_state_default_with_game_index.png +0 -0
  151. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/initial_state_on_null-move.png +0 -0
  152. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/navigation_with_keys_0.png +0 -0
  153. package/test/graphic_references/12_navigation_board_base/uncontrolled/navigation_with_keys_1.png +0 -0
  154. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/navigation_with_keys_2.png +0 -0
  155. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/navigation_with_keys_3.png +0 -0
  156. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/navigation_with_keys_4.png +0 -0
  157. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_flipping_0.png +0 -0
  158. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_flipping_1.png +0 -0
  159. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_navigation_0.png +0 -0
  160. package/test/graphic_references/{12_navigation_board/controlled/default.png → 12_navigation_board_base/uncontrolled/regular_navigation_1.png} +0 -0
  161. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_navigation_2.png +0 -0
  162. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_navigation_3.png +0 -0
  163. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_navigation_4.png +0 -0
  164. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_navigation_5.png +0 -0
  165. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/error_1.png +0 -0
  166. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/error_2.png +0 -0
  167. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/multiple_buttons.png +0 -0
  168. package/test/graphic_references/{12_navigation_board/uncontrolled/regular_navigation_3.png → 13_navigation_board_graphic/additional_buttons/single_button.png} +0 -0
  169. package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/theme/custom_1.png +0 -0
  170. package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/theme/custom_2.png +0 -0
  171. package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/theme/large.png +0 -0
  172. package/test/graphic_references/13_navigation_board_graphic/theme/small.png +0 -0
  173. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_1_move_acknowledging_is-playing_changes.png +0 -0
  174. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_1_move_not_acknowledging_is-playing_changes.png +0 -0
  175. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_2_moves_acknowledging_node_changes.png +0 -0
  176. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_2_moves_not_acknowledging_node_changes.png +0 -0
  177. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_end_1.png → 14_navigation_board_autoplay/controlled/after_reaching_the_end.png} +0 -0
  178. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_end_2.png → 14_navigation_board_autoplay/controlled/already_at_the_end.png} +0 -0
  179. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_acknowledging_is-playing_changes.png +0 -0
  180. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_acknowledging_node_changes.png +0 -0
  181. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_end_0.png → 14_navigation_board_autoplay/controlled/initial_state_at_the_end.png} +0 -0
  182. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_close_to_end.png +0 -0
  183. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_not_acknowledging_is-playing_changes.png +0 -0
  184. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_not_acknowledging_node_changes.png +0 -0
  185. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_2_moves_from_beginning_after_stop.png +0 -0
  186. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_2_moves_from_beginning_before_stop.png +0 -0
  187. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_reaching_the_end_after_stop.png +0 -0
  188. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_reaching_the_end_before_stop.png +0 -0
  189. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/initial_state_close_to_end.png +0 -0
  190. package/test/graphic_references/{12_navigation_board/uncontrolled/navigation_with_keys_1.png → 14_navigation_board_autoplay/uncontrolled/initial_state_default.png} +0 -0
  191. package/test/graphic_test_app/03_error_box_graphic/base.tsx +14 -14
  192. package/test/graphic_test_app/03_error_box_graphic/localization.tsx +1 -1
  193. package/test/graphic_test_app/04_icons_graphic/chess_piece.tsx +7 -7
  194. package/test/graphic_test_app/04_icons_graphic/marker.tsx +15 -15
  195. package/test/graphic_test_app/05_chessboard_graphic/annotations.tsx +7 -7
  196. package/test/graphic_test_app/05_chessboard_graphic/base.tsx +6 -6
  197. package/test/graphic_test_app/05_chessboard_graphic/chess_variants.tsx +7 -7
  198. package/test/graphic_test_app/05_chessboard_graphic/flipped.tsx +5 -5
  199. package/test/graphic_test_app/05_chessboard_graphic/move.tsx +12 -12
  200. package/test/graphic_test_app/05_chessboard_graphic/theme.tsx +12 -12
  201. package/test/graphic_test_app/06_chessboard_animation/base_1.tsx +6 -6
  202. package/test/graphic_test_app/06_chessboard_animation/base_2.tsx +6 -6
  203. package/test/graphic_test_app/06_chessboard_animation/base_3.tsx +6 -6
  204. package/test/graphic_test_app/06_chessboard_animation/on_redraw.tsx +16 -16
  205. package/test/graphic_test_app/07_chessboard_interaction/click_squares.tsx +5 -5
  206. package/test/graphic_test_app/07_chessboard_interaction/edit_arrows.tsx +4 -4
  207. package/test/graphic_test_app/07_chessboard_interaction/error.tsx +2 -2
  208. package/test/graphic_test_app/07_chessboard_interaction/move_pieces.tsx +5 -5
  209. package/test/graphic_test_app/08_chessboard_play_moves/base.tsx +8 -8
  210. package/test/graphic_test_app/08_chessboard_play_moves/promotions.tsx +4 -4
  211. package/test/graphic_test_app/09_chessboard_small_screens/base.tsx +9 -9
  212. package/test/graphic_test_app/09_chessboard_small_screens/top_bottom_components.tsx +9 -9
  213. package/test/graphic_test_app/10_movetext_graphic/base.tsx +4 -4
  214. package/test/graphic_test_app/10_movetext_graphic/error.tsx +6 -6
  215. package/test/graphic_test_app/10_movetext_graphic/format_move.tsx +1 -1
  216. package/test/graphic_test_app/10_movetext_graphic/html.tsx +5 -5
  217. package/test/graphic_test_app/10_movetext_graphic/options.tsx +10 -10
  218. package/test/graphic_test_app/11_movetext_interaction/error.tsx +1 -1
  219. package/test/graphic_test_app/11_movetext_interaction/select_moves.tsx +11 -11
  220. package/test/graphic_test_app/{12_navigation_board → 12_navigation_board_base}/controlled.tsx +5 -5
  221. package/test/graphic_test_app/{12_navigation_board → 12_navigation_board_base}/uncontrolled.tsx +7 -7
  222. package/test/graphic_test_app/13_navigation_board_graphic/additional_buttons.tsx +49 -0
  223. package/test/graphic_test_app/{12_navigation_board → 13_navigation_board_graphic}/error.tsx +2 -2
  224. package/test/graphic_test_app/{12_navigation_board → 13_navigation_board_graphic}/theme.tsx +4 -4
  225. package/test/graphic_test_app/14_navigation_board_autoplay/controlled.tsx +73 -0
  226. package/test/graphic_test_app/14_navigation_board_autoplay/uncontrolled.tsx +34 -0
  227. package/test/graphic_test_app/common/decs.d.ts +2 -2
  228. package/test/graphic_test_app/common/test_app.css +15 -15
  229. package/test/graphic_test_app/common/test_app.tsx +48 -48
  230. package/tsconfig.json +13 -13
  231. package/test/12_navigation_board.js +0 -168
  232. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_2.png +0 -0
  233. package/test/graphic_references/12_navigation_board/theme/small.png +0 -0
  234. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_1.png +0 -0
  235. /package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/error/pgn_parsing_error.png +0 -0
  236. /package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/error/wrong_game_type.png +0 -0
@@ -28,10 +28,10 @@ import { testApp } from '../common/test_app';
28
28
  import { Chessboard } from '../../../dist/lib/index';
29
29
 
30
30
  testApp([ /* eslint-disable react/jsx-key */
31
- <Chessboard />,
32
- <Chessboard position="empty" turnVisible={true} />,
33
- <Chessboard position="something invalid" />,
34
- <Chessboard position="r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R b KQkq - 3 3" turnVisible={false} />,
35
- <Chessboard position={new Position('8/8/1r6/8/5k1K/8/8/8 b - - 0 1')} />,
36
- <Chessboard position={ /* eslint-disable @typescript-eslint/no-explicit-any */ 42 as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
31
+ <Chessboard />,
32
+ <Chessboard position="empty" turnVisible={true} />,
33
+ <Chessboard position="something invalid" />,
34
+ <Chessboard position="r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R b KQkq - 3 3" turnVisible={false} />,
35
+ <Chessboard position={new Position('8/8/1r6/8/5k1K/8/8/8 b - - 0 1')} />,
36
+ <Chessboard position={ /* eslint-disable @typescript-eslint/no-explicit-any */ 42 as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
37
37
  ]); /* eslint-enable react/jsx-key */
@@ -27,11 +27,11 @@ import { testApp } from '../common/test_app';
27
27
  import { Chessboard } from '../../../dist/lib/index';
28
28
 
29
29
  testApp([ /* eslint-disable react/jsx-key */
30
- <Chessboard position="chess960:nqbrnkrb/pppppppp/8/8/8/8/PPPPPPPP/NQBRNKRB w KQkq - 0 1" />,
31
- <Chessboard position="chess960:nqbrnkrb/pppppppp/8/8/8/8/PPPPPPPP/NQBRNKRB w KQkq - 0 1" move="O-O" />,
32
- <Chessboard position="chess960" />,
33
- <Chessboard position="horde" />,
34
- <Chessboard position="start" />,
35
- <Chessboard position="whatever" />,
36
- <Chessboard position="whatever:rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1" />,
30
+ <Chessboard position="chess960:nqbrnkrb/pppppppp/8/8/8/8/PPPPPPPP/NQBRNKRB w KQkq - 0 1" />,
31
+ <Chessboard position="chess960:nqbrnkrb/pppppppp/8/8/8/8/PPPPPPPP/NQBRNKRB w KQkq - 0 1" move="O-O" />,
32
+ <Chessboard position="chess960" />,
33
+ <Chessboard position="horde" />,
34
+ <Chessboard position="start" />,
35
+ <Chessboard position="whatever" />,
36
+ <Chessboard position="whatever:rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1" />,
37
37
  ]); /* eslint-enable react/jsx-key */
@@ -28,9 +28,9 @@ import { testApp } from '../common/test_app';
28
28
  import { Chessboard } from '../../../dist/lib/index';
29
29
 
30
30
  testApp([ /* eslint-disable react/jsx-key */
31
- <Chessboard flipped={true} turnVisible={false} />,
32
- <Chessboard flipped={true} position="empty" />,
33
- <Chessboard flipped={true} position="something invalid" />,
34
- <Chessboard flipped={true} position="r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R b KQkq - 3 3" />,
35
- <Chessboard flipped={true} position={new Position('8/8/1r6/8/5k1K/8/8/8 b - - 0 1')} turnVisible={true} />,
31
+ <Chessboard flipped={true} turnVisible={false} />,
32
+ <Chessboard flipped={true} position="empty" />,
33
+ <Chessboard flipped={true} position="something invalid" />,
34
+ <Chessboard flipped={true} position="r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R b KQkq - 3 3" />,
35
+ <Chessboard flipped={true} position={new Position('8/8/1r6/8/5k1K/8/8/8 b - - 0 1')} turnVisible={true} />,
36
36
  ]); /* eslint-enable react/jsx-key */
@@ -31,16 +31,16 @@ const pos = new Position('r1bqkbnr/1ppp1ppp/p1n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R
31
31
  const move = pos.notation('Bxc6');
32
32
 
33
33
  testApp([ /* eslint-disable react/jsx-key */
34
- <Chessboard move="e4" animated={false} />,
35
- <Chessboard move="Nf3" moveArrowVisible={false} animated={false} />,
36
- <Chessboard move="Nf4" animated={false} />,
37
- <Chessboard position="rnbqkbnr/pppp1ppp/4p3/8/3PP3/8/PPP2PPP/RNBQKBNR b KQkq - 0 2" move="Bb4+" moveArrowVisible={true} flipped={true} animated={true} />,
38
- <Chessboard position={pos} move={move} animated={true} moveArrowColor="g" />,
39
- <Chessboard position="r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R3K2R b KQkq - 0 1" move="O-O-O" animated={false} moveArrowColor="r" />,
40
- <Chessboard position="rnbqkbnr/ppp1p1pp/8/3pPp2/8/8/PPPP1PPP/RNBQKBNR w KQkq f6 0 3" move="exf6" animated={false} moveArrowColor="y" />,
41
- <Chessboard position="8/8/8/1K6/8/4k3/1p6/8 b - - 0 1" move="b1=R+" animated={false} moveArrowColor="b" />,
42
- <Chessboard move={ /* eslint-disable @typescript-eslint/no-explicit-any */ 42 as any /* eslint-enable @typescript-eslint/no-explicit-any */ } animated={false} />,
43
- <Chessboard move="e4" animated={false} moveArrowColor={ /* eslint-disable @typescript-eslint/no-explicit-any */ 'z' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
44
- <Chessboard move="--" animated={false} />,
45
- <Chessboard position="rnbqkbnr/ppp1pppp/8/1B1p4/4P3/8/PPPP1PPP/RNBQK1NR b KQkq - 1 2" move="--" animated={false} />,
34
+ <Chessboard move="e4" animated={false} />,
35
+ <Chessboard move="Nf3" moveArrowVisible={false} animated={false} />,
36
+ <Chessboard move="Nf4" animated={false} />,
37
+ <Chessboard position="rnbqkbnr/pppp1ppp/4p3/8/3PP3/8/PPP2PPP/RNBQKBNR b KQkq - 0 2" move="Bb4+" moveArrowVisible={true} flipped={true} animated={true} />,
38
+ <Chessboard position={pos} move={move} animated={true} moveArrowColor="g" />,
39
+ <Chessboard position="r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R3K2R b KQkq - 0 1" move="O-O-O" animated={false} moveArrowColor="r" />,
40
+ <Chessboard position="rnbqkbnr/ppp1p1pp/8/3pPp2/8/8/PPPP1PPP/RNBQKBNR w KQkq f6 0 3" move="exf6" animated={false} moveArrowColor="y" />,
41
+ <Chessboard position="8/8/8/1K6/8/4k3/1p6/8 b - - 0 1" move="b1=R+" animated={false} moveArrowColor="b" />,
42
+ <Chessboard move={ /* eslint-disable @typescript-eslint/no-explicit-any */ 42 as any /* eslint-enable @typescript-eslint/no-explicit-any */ } animated={false} />,
43
+ <Chessboard move="e4" animated={false} moveArrowColor={ /* eslint-disable @typescript-eslint/no-explicit-any */ 'z' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
44
+ <Chessboard move="--" animated={false} />,
45
+ <Chessboard position="rnbqkbnr/ppp1pppp/8/1B1p4/4P3/8/PPPP1PPP/RNBQK1NR b KQkq - 1 2" move="--" animated={false} />,
46
46
  ]); /* eslint-enable react/jsx-key */
@@ -36,16 +36,16 @@ const sm = 'Ba8,Ba7,Gb8,Gb7,Rc8,Rc7,Yd8,Yd7';
36
36
  const am = 'Ba1a3,Gb1b3,Rc1c3,Yd1d3';
37
37
 
38
38
  testApp([ /* eslint-disable react/jsx-key */
39
- <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} animated={false} />,
40
- <Chessboard position={pos2} move={mv2} squareMarkers={sm} arrowMarkers={am} squareSize={60} animated={false} />,
41
- <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} squareSize={29} coordinateVisible={false} flipped={true} animated={false} />,
42
- <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} squareSize={47} coordinateVisible={true} flipped={true} colorset="scid" animated={false} />,
43
- <Chessboard position={pos2} move={mv2} squareMarkers={sm} arrowMarkers={am} coordinateVisible={false} colorset="marine" pieceset="eyes" animated={false} />,
44
- <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} coordinateVisible={false} pieceset="fantasy" animated={false} />,
45
- <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} colorset="emerald" pieceset="skulls" animated={false} />,
46
- <Chessboard position={pos2} move={mv2} squareMarkers={sm} arrowMarkers={am} squareSize={91} flipped={true} colorset="gray" pieceset="spatial" animated={false} />,
47
- <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} squareSize={17} colorset="dusk" animated={false} />,
48
- <Chessboard squareSize={ /* eslint-disable @typescript-eslint/no-explicit-any */ '24' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
49
- <Chessboard colorset="not-a-colorset" />,
50
- <Chessboard pieceset="not-a-pieceset" />,
39
+ <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} animated={false} />,
40
+ <Chessboard position={pos2} move={mv2} squareMarkers={sm} arrowMarkers={am} squareSize={60} animated={false} />,
41
+ <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} squareSize={29} coordinateVisible={false} flipped={true} animated={false} />,
42
+ <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} squareSize={47} coordinateVisible={true} flipped={true} colorset="scid" animated={false} />,
43
+ <Chessboard position={pos2} move={mv2} squareMarkers={sm} arrowMarkers={am} coordinateVisible={false} colorset="marine" pieceset="eyes" animated={false} />,
44
+ <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} coordinateVisible={false} pieceset="fantasy" animated={false} />,
45
+ <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} colorset="emerald" pieceset="skulls" animated={false} />,
46
+ <Chessboard position={pos2} move={mv2} squareMarkers={sm} arrowMarkers={am} squareSize={91} flipped={true} colorset="gray" pieceset="spatial" animated={false} />,
47
+ <Chessboard position={pos1} move={mv1} squareMarkers={sm} arrowMarkers={am} squareSize={17} colorset="dusk" animated={false} />,
48
+ <Chessboard squareSize={ /* eslint-disable @typescript-eslint/no-explicit-any */ '24' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
49
+ <Chessboard colorset="not-a-colorset" />,
50
+ <Chessboard pieceset="not-a-pieceset" />,
51
51
  ]); /* eslint-enable react/jsx-key */
@@ -29,10 +29,10 @@ import { Chessboard } from '../../../dist/lib/index';
29
29
  window['__kokopu_debug_freeze_motion'] = 0.09;
30
30
 
31
31
  testApp([ /* eslint-disable react/jsx-key */
32
- <Chessboard move="e4" animated={true} />,
33
- <Chessboard move="Nf3" animated={true} moveArrowVisible={false} />,
34
- <Chessboard position="r1bqkbnr/pppppppp/n7/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 1 2" move="Bxa6" animated={true} flipped turnVisible={false} />,
35
- <Chessboard position="r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R3K2R b KQkq - 0 1" move="O-O-O" animated={true} />,
36
- <Chessboard position="rnbqkbnr/ppp1p1pp/8/3pPp2/8/8/PPPP1PPP/RNBQKBNR w KQkq f6 0 3" move="exf6" animated={true} />,
37
- <Chessboard position="8/8/8/1K6/8/4k3/1p6/8 b - - 0 1" move="b1=R+" animated={true} turnVisible={false} />,
32
+ <Chessboard move="e4" animated={true} />,
33
+ <Chessboard move="Nf3" animated={true} moveArrowVisible={false} />,
34
+ <Chessboard position="r1bqkbnr/pppppppp/n7/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 1 2" move="Bxa6" animated={true} flipped turnVisible={false} />,
35
+ <Chessboard position="r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R3K2R b KQkq - 0 1" move="O-O-O" animated={true} />,
36
+ <Chessboard position="rnbqkbnr/ppp1p1pp/8/3pPp2/8/8/PPPP1PPP/RNBQKBNR w KQkq f6 0 3" move="exf6" animated={true} />,
37
+ <Chessboard position="8/8/8/1K6/8/4k3/1p6/8 b - - 0 1" move="b1=R+" animated={true} turnVisible={false} />,
38
38
  ]); /* eslint-enable react/jsx-key */
@@ -29,10 +29,10 @@ import { Chessboard } from '../../../dist/lib/index';
29
29
  window['__kokopu_debug_freeze_motion'] = 0.7;
30
30
 
31
31
  testApp([ /* eslint-disable react/jsx-key */
32
- <Chessboard move="e4" animated={true} />,
33
- <Chessboard move="Nf3" animated={true} moveArrowVisible={false} />,
34
- <Chessboard position="r1bqkbnr/pppppppp/n7/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 1 2" move="Bxa6" animated={true} flipped turnVisible={false} />,
35
- <Chessboard position="r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R3K2R b KQkq - 0 1" move="O-O-O" animated={true} />,
36
- <Chessboard position="rnbqkbnr/ppp1p1pp/8/3pPp2/8/8/PPPP1PPP/RNBQKBNR w KQkq f6 0 3" move="exf6" animated={true} />,
37
- <Chessboard position="8/8/8/1K6/8/4k3/1p6/8 b - - 0 1" move="b1=R+" animated={true} turnVisible={false} />,
32
+ <Chessboard move="e4" animated={true} />,
33
+ <Chessboard move="Nf3" animated={true} moveArrowVisible={false} />,
34
+ <Chessboard position="r1bqkbnr/pppppppp/n7/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 1 2" move="Bxa6" animated={true} flipped turnVisible={false} />,
35
+ <Chessboard position="r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R3K2R b KQkq - 0 1" move="O-O-O" animated={true} />,
36
+ <Chessboard position="rnbqkbnr/ppp1p1pp/8/3pPp2/8/8/PPPP1PPP/RNBQKBNR w KQkq f6 0 3" move="exf6" animated={true} />,
37
+ <Chessboard position="8/8/8/1K6/8/4k3/1p6/8 b - - 0 1" move="b1=R+" animated={true} turnVisible={false} />,
38
38
  ]); /* eslint-enable react/jsx-key */
@@ -29,10 +29,10 @@ import { Chessboard } from '../../../dist/lib/index';
29
29
  window['__kokopu_debug_freeze_motion'] = 0.91;
30
30
 
31
31
  testApp([ /* eslint-disable react/jsx-key */
32
- <Chessboard move="e4" animated={true} />,
33
- <Chessboard move="Nf3" animated={true} moveArrowVisible={false} />,
34
- <Chessboard position="r1bqkbnr/pppppppp/n7/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 1 2" move="Bxa6" animated={true} flipped turnVisible={false} />,
35
- <Chessboard position="r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R3K2R b KQkq - 0 1" move="O-O-O" animated={true} />,
36
- <Chessboard position="rnbqkbnr/ppp1p1pp/8/3pPp2/8/8/PPPP1PPP/RNBQKBNR w KQkq f6 0 3" move="exf6" animated={true} />,
37
- <Chessboard position="8/8/8/1K6/8/4k3/1p6/8 b - - 0 1" move="b1=R+" animated={true} turnVisible={false} />,
32
+ <Chessboard move="e4" animated={true} />,
33
+ <Chessboard move="Nf3" animated={true} moveArrowVisible={false} />,
34
+ <Chessboard position="r1bqkbnr/pppppppp/n7/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 1 2" move="Bxa6" animated={true} flipped turnVisible={false} />,
35
+ <Chessboard position="r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R3K2R b KQkq - 0 1" move="O-O-O" animated={true} />,
36
+ <Chessboard position="rnbqkbnr/ppp1p1pp/8/3pPp2/8/8/PPPP1PPP/RNBQKBNR w KQkq f6 0 3" move="exf6" animated={true} />,
37
+ <Chessboard position="8/8/8/1K6/8/4k3/1p6/8 b - - 0 1" move="b1=R+" animated={true} turnVisible={false} />,
38
38
  ]); /* eslint-enable react/jsx-key */
@@ -28,24 +28,24 @@ import { Chessboard } from '../../../dist/lib/index';
28
28
 
29
29
  function TestComponent() {
30
30
 
31
- const [ clicked, setClicked ] = React.useState(false);
32
- const position = clicked ? 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1' : 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1';
33
- const move = clicked ? 'Nf6' : 'e4';
34
-
35
- function onClick() {
36
- window['__kokopu_debug_freeze_motion'] = 0.6;
37
- setClicked(true);
38
- }
39
-
40
- return (<>
41
- <div>
42
- <Chessboard position={position} move={move} animated={true} />
43
- </div>
44
- {clicked ? undefined : <button id="chessboard-action-button" onClick={onClick}>Click here</button>}
45
- </>);
31
+ const [ clicked, setClicked ] = React.useState(false);
32
+ const position = clicked ? 'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1' : 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1';
33
+ const move = clicked ? 'Nf6' : 'e4';
34
+
35
+ function onClick() {
36
+ window['__kokopu_debug_freeze_motion'] = 0.6;
37
+ setClicked(true);
38
+ }
39
+
40
+ return (<>
41
+ <div>
42
+ <Chessboard position={position} move={move} animated={true} />
43
+ </div>
44
+ {clicked ? undefined : <button id="chessboard-action-button" onClick={onClick}>Click here</button>}
45
+ </>);
46
46
  }
47
47
 
48
48
 
49
49
  testApp([ /* eslint-disable react/jsx-key */
50
- <TestComponent />,
50
+ <TestComponent />,
51
51
  ]); /* eslint-enable react/jsx-key */
@@ -28,12 +28,12 @@ import { testApp, setSandbox } from '../common/test_app';
28
28
  import { Chessboard } from '../../../dist/lib/index';
29
29
 
30
30
  function onSquareClicked(sq: Square) {
31
- setSandbox(`square clicked: ${sq}`);
31
+ setSandbox(`square clicked: ${sq}`);
32
32
  }
33
33
 
34
34
  testApp([ /* eslint-disable react/jsx-key */
35
- <Chessboard squareSize={50} interactionMode="clickSquares" onSquareClicked={onSquareClicked} />,
36
- <Chessboard squareSize={50} interactionMode="clickSquares" onSquareClicked={onSquareClicked} flipped coordinateVisible={false} />,
37
- <Chessboard squareSize={50} interactionMode="clickSquares" onSquareClicked={onSquareClicked} position="empty"
38
- squareMarkers="Ga8" arrowMarkers="Ra6d6" textMarkers="YAb4" />,
35
+ <Chessboard squareSize={50} interactionMode="clickSquares" onSquareClicked={onSquareClicked} />,
36
+ <Chessboard squareSize={50} interactionMode="clickSquares" onSquareClicked={onSquareClicked} flipped coordinateVisible={false} />,
37
+ <Chessboard squareSize={50} interactionMode="clickSquares" onSquareClicked={onSquareClicked} position="empty"
38
+ squareMarkers="Ga8" arrowMarkers="Ra6d6" textMarkers="YAb4" />,
39
39
  ]); /* eslint-enable react/jsx-key */
@@ -28,11 +28,11 @@ import { testApp, setSandbox } from '../common/test_app';
28
28
  import { Chessboard } from '../../../dist/lib/index';
29
29
 
30
30
  function onArrowEdited(from: Square, to: Square) {
31
- setSandbox(`arrow edited: ${from} -> ${to}`);
31
+ setSandbox(`arrow edited: ${from} -> ${to}`);
32
32
  }
33
33
 
34
34
  testApp([ /* eslint-disable react/jsx-key */
35
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="editArrows" onArrowEdited={onArrowEdited} editedArrowColor="g" />,
36
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="editArrows" onArrowEdited={onArrowEdited} editedArrowColor="r" flipped
37
- squareMarkers="Gc5" arrowMarkers="Yh3f6" />,
35
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="editArrows" onArrowEdited={onArrowEdited} editedArrowColor="g" />,
36
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="editArrows" onArrowEdited={onArrowEdited} editedArrowColor="r" flipped
37
+ squareMarkers="Gc5" arrowMarkers="Yh3f6" />,
38
38
  ]); /* eslint-enable react/jsx-key */
@@ -27,6 +27,6 @@ import { testApp } from '../common/test_app';
27
27
  import { Chessboard } from '../../../dist/lib/index';
28
28
 
29
29
  testApp([ /* eslint-disable react/jsx-key */
30
- <Chessboard interactionMode={ /* eslint-disable @typescript-eslint/no-explicit-any */ 'whatever' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
31
- <Chessboard interactionMode="editArrows" />,
30
+ <Chessboard interactionMode={ /* eslint-disable @typescript-eslint/no-explicit-any */ 'whatever' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
31
+ <Chessboard interactionMode="editArrows" />,
32
32
  ]); /* eslint-enable react/jsx-key */
@@ -28,12 +28,12 @@ import { testApp, setSandbox } from '../common/test_app';
28
28
  import { Chessboard } from '../../../dist/lib/index';
29
29
 
30
30
  function onPieceMoved(from: Square, to: Square) {
31
- setSandbox(`piece moved: ${from} -> ${to}`);
31
+ setSandbox(`piece moved: ${from} -> ${to}`);
32
32
  }
33
33
 
34
34
  testApp([ /* eslint-disable react/jsx-key */
35
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="movePieces" onPieceMoved={onPieceMoved} />,
36
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="movePieces" onPieceMoved={onPieceMoved} flipped
37
- squareMarkers="Gc4" textMarkers="BAh3" arrowMarkers="Gc8a4" moveArrowColor="r" />,
38
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="movePieces" onPieceMoved={onPieceMoved} move="e4" animated={false} />,
35
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="movePieces" onPieceMoved={onPieceMoved} />,
36
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="movePieces" onPieceMoved={onPieceMoved} flipped
37
+ squareMarkers="Gc4" textMarkers="BAh3" arrowMarkers="Gc8a4" moveArrowColor="r" />,
38
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="movePieces" onPieceMoved={onPieceMoved} move="e4" animated={false} />,
39
39
  ]); /* eslint-enable react/jsx-key */
@@ -27,15 +27,15 @@ import { testApp, setSandbox } from '../common/test_app';
27
27
  import { Chessboard } from '../../../dist/lib/index';
28
28
 
29
29
  function onMovePlayed(move: string) {
30
- setSandbox(`move played: ${move}`);
30
+ setSandbox(`move played: ${move}`);
31
31
  }
32
32
 
33
33
  testApp([ /* eslint-disable react/jsx-key */
34
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed} />,
35
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed}
36
- flipped position="rnbqk2r/ppp2ppp/3p1n2/2b1p3/4P3/2NP1N2/PPP2PPP/R1BQKB1R w KQkq - 0 1" move="Bg5" animated={false} moveArrowColor="g" />,
37
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed}
38
- position="rnbq1bnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQ - 0 1" />,
39
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed}
40
- position="chess960:1r3k1r/pppppppp/8/8/8/8/PPPPPPPP/1R3K1R w BHbh - 0 1" />,
34
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed} />,
35
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed}
36
+ flipped position="rnbqk2r/ppp2ppp/3p1n2/2b1p3/4P3/2NP1N2/PPP2PPP/R1BQKB1R w KQkq - 0 1" move="Bg5" animated={false} moveArrowColor="g" />,
37
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed}
38
+ position="rnbq1bnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQ - 0 1" />,
39
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed}
40
+ position="chess960:1r3k1r/pppppppp/8/8/8/8/PPPPPPPP/1R3K1R w BHbh - 0 1" />,
41
41
  ]); /* eslint-enable react/jsx-key */
@@ -27,11 +27,11 @@ import { testApp, setSandbox } from '../common/test_app';
27
27
  import { Chessboard } from '../../../dist/lib/index';
28
28
 
29
29
  function onMovePlayed(move: string) {
30
- setSandbox(`promotion move played: ${move}`);
30
+ setSandbox(`promotion move played: ${move}`);
31
31
  }
32
32
 
33
33
  testApp([ /* eslint-disable react/jsx-key */
34
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed} position="8/1P6/8/8/7k/8/5K2/8 w - - 0 1" />,
35
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed} position="8/8/8/8/7k/8/1p3K2/R7 b - - 0 1" />,
36
- <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed} flipped position="antichess:8/1P6/8/8/7r/8/5K2/8 w - - 0 1" />,
34
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed} position="8/1P6/8/8/7k/8/5K2/8 w - - 0 1" />,
35
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed} position="8/8/8/8/7k/8/1p3K2/R7 b - - 0 1" />,
36
+ <Chessboard squareSize={50} coordinateVisible={false} interactionMode="playMoves" onMovePlayed={onMovePlayed} flipped position="antichess:8/1P6/8/8/7r/8/5K2/8 w - - 0 1" />,
37
37
  ]); /* eslint-enable react/jsx-key */
@@ -28,16 +28,16 @@ import { Chessboard } from '../../../dist/lib/index';
28
28
 
29
29
  // WARNING: avoid window width < 600 (the selenium-controlled window has some issues in this case).
30
30
  const limits = [
31
- { width: 690, squareSize: 16 },
32
- { width: 700, turnVisible: false },
33
- { width: 710, squareSize: 24, coordinateVisible: false },
34
- { width: 720, squareSize: 44 },
35
- { width: 730, squareSize: 48, coordinateVisible: true },
36
- { width: 740, squareSize: 24, coordinateVisible: false },
37
- { width: 750, squareSize: 32 },
31
+ { width: 690, squareSize: 16 },
32
+ { width: 700, turnVisible: false },
33
+ { width: 710, squareSize: 24, coordinateVisible: false },
34
+ { width: 720, squareSize: 44 },
35
+ { width: 730, squareSize: 48, coordinateVisible: true },
36
+ { width: 740, squareSize: 24, coordinateVisible: false },
37
+ { width: 750, squareSize: 32 },
38
38
  ];
39
39
 
40
40
  testApp([ /* eslint-disable react/jsx-key */
41
- <Chessboard squareSize={50} smallScreenLimits={limits} />,
42
- <Chessboard smallScreenLimits={ /* eslint-disable @typescript-eslint/no-explicit-any */ 42 as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
41
+ <Chessboard squareSize={50} smallScreenLimits={limits} />,
42
+ <Chessboard smallScreenLimits={ /* eslint-disable @typescript-eslint/no-explicit-any */ 42 as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
43
43
  ]); /* eslint-enable react/jsx-key */
@@ -27,22 +27,22 @@ import { testApp } from '../common/test_app';
27
27
  import { Chessboard, ChessboardProps } from '../../../dist/lib/index';
28
28
 
29
29
  const limits1 = [
30
- { width: 750, squareSize: 24, coordinateVisible: false },
30
+ { width: 750, squareSize: 24, coordinateVisible: false },
31
31
  ];
32
32
 
33
33
  const limits2 = [
34
- { width: 750, squareSize: 27, turnVisible: false },
34
+ { width: 750, squareSize: 27, turnVisible: false },
35
35
  ];
36
36
 
37
37
  function AuxilliaryComponent({ squareSize, coordinateVisible, turnVisible}: Pick<ChessboardProps, 'squareSize' | 'coordinateVisible' | 'turnVisible'>) {
38
- return (<>
39
- <div>{`Square size: ${squareSize}`}</div>
40
- <div>{`Coordinates: ${coordinateVisible}`}</div>
41
- <div>{`Turn: ${turnVisible}`}</div>
42
- </>);
38
+ return (<>
39
+ <div>{`Square size: ${squareSize}`}</div>
40
+ <div>{`Coordinates: ${coordinateVisible}`}</div>
41
+ <div>{`Turn: ${turnVisible}`}</div>
42
+ </>);
43
43
  }
44
44
 
45
45
  testApp([ /* eslint-disable react/jsx-key */
46
- <Chessboard squareSize={30} smallScreenLimits={limits1} topComponent={AuxilliaryComponent} />,
47
- <Chessboard squareSize={30} smallScreenLimits={limits2} bottomComponent={AuxilliaryComponent} />,
46
+ <Chessboard squareSize={30} smallScreenLimits={limits1} topComponent={AuxilliaryComponent} />,
47
+ <Chessboard squareSize={30} smallScreenLimits={limits2} bottomComponent={AuxilliaryComponent} />,
48
48
  ]); /* eslint-enable react/jsx-key */
@@ -36,8 +36,8 @@ game.result('1-0');
36
36
  const database = pgnRead(pgn);
37
37
 
38
38
  testApp([ /* eslint-disable react/jsx-key */
39
- <Movetext game={game} />,
40
- <Movetext game={database} />,
41
- <Movetext game={pgn} gameIndex={1} />,
42
- <Movetext game={database} gameIndex={3} />,
39
+ <Movetext game={game} />,
40
+ <Movetext game={database} />,
41
+ <Movetext game={pgn} gameIndex={1} />,
42
+ <Movetext game={database} gameIndex={3} />,
43
43
  ], 'width-600'); /* eslint-enable react/jsx-key */
@@ -33,10 +33,10 @@ import dummyPgn from '../common/dummy.pgn';
33
33
  const database = pgnRead(pgn);
34
34
 
35
35
  testApp([ /* eslint-disable react/jsx-key */
36
- <Movetext game={pgn} gameIndex={99} />,
37
- <Movetext game={database} gameIndex={99} />,
38
- <Movetext game={dummyPgn} />,
39
- <Movetext game={pgnRead(dummyPgn)} gameIndex={1} />,
40
- <Movetext game={ /* eslint-disable @typescript-eslint/no-explicit-any */ 42 as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
41
- <Movetext game={pgn} gameIndex={-1} />,
36
+ <Movetext game={pgn} gameIndex={99} />,
37
+ <Movetext game={database} gameIndex={99} />,
38
+ <Movetext game={dummyPgn} />,
39
+ <Movetext game={pgnRead(dummyPgn)} gameIndex={1} />,
40
+ <Movetext game={ /* eslint-disable @typescript-eslint/no-explicit-any */ 42 as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
41
+ <Movetext game={pgn} gameIndex={-1} />,
42
42
  ], 'width-600'); /* eslint-enable react/jsx-key */
@@ -27,5 +27,5 @@ import { testApp } from '../common/test_app';
27
27
  import { formatMove } from '../../../dist/lib/index';
28
28
 
29
29
  testApp([ /* eslint-disable react/jsx-key */
30
- <div>{formatMove('figurines', 'Figurines: KQRBNP')}</div>,
30
+ <div>{formatMove('figurines', 'Figurines: KQRBNP')}</div>,
31
31
  ], 'width-600'); /* eslint-enable react/jsx-key */
@@ -29,14 +29,14 @@ import { Movetext } from '../../../dist/lib/index';
29
29
  import pgn from '../common/games.pgn';
30
30
 
31
31
  testApp([ /* eslint-disable react/jsx-key */
32
- <Movetext game={pgn} gameIndex={4} />,
33
- <Movetext game={pgn} gameIndex={5} />,
34
- <Movetext game={pgn} gameIndex={6} />,
32
+ <Movetext game={pgn} gameIndex={4} />,
33
+ <Movetext game={pgn} gameIndex={5} />,
34
+ <Movetext game={pgn} gameIndex={6} />,
35
35
  ], 'width-600'); /* eslint-enable react/jsx-key */
36
36
 
37
37
  const customCSS = document.createElement('style');
38
38
  customCSS.innerText = `
39
- .myClass { font-weight: bold; color: green; }
40
- #myId { font-weight: bold; color: red; }
39
+ .myClass { font-weight: bold; color: green; }
40
+ #myId { font-weight: bold; color: red; }
41
41
  `;
42
42
  document.head.appendChild(customCSS);
@@ -32,14 +32,14 @@ import pgn from '../common/games.pgn';
32
32
  i18n.PIECE_SYMBOLS = { K: 'R', Q: 'D', R: 'T', B: 'F', N: 'C', P: 'P' };
33
33
 
34
34
  testApp([ /* eslint-disable react/jsx-key */
35
- <Movetext game={pgn} pieceSymbols="localized" />,
36
- <Movetext game={pgn} gameIndex={2} pieceSymbols={{ K: 'Ki_', Q: 'Qu_', R: 'Rk_', B: 'Bi_', N: 'Kn_', P: 'Pw_' }} />,
37
- <Movetext game={pgn} gameIndex={3} pieceSymbols="figurines" headerVisible={false}
38
- diagramOptions={{ flipped: true, coordinateVisible: false, squareSize: 32, colorset: 'scid', pieceset: 'eyes' }} />,
39
- <Movetext game={pgn} gameIndex={3} diagramOptions={{ turnVisible: false, squareSize: 32 }} />,
40
- <Movetext game={pgn} gameIndex={9} diagramVisible={false} />,
41
- <Movetext game={pgn} gameIndex={3} diagramOptions={ /* eslint-disable @typescript-eslint/no-explicit-any */ null as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
42
- <Movetext game={pgn} gameIndex={3}
43
- diagramOptions={ /* eslint-disable @typescript-eslint/no-explicit-any */ { squareSize: '32' } as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
44
- <Movetext game={pgn} pieceSymbols={ /* eslint-disable @typescript-eslint/no-explicit-any */ 'invalid' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />
35
+ <Movetext game={pgn} pieceSymbols="localized" />,
36
+ <Movetext game={pgn} gameIndex={2} pieceSymbols={{ K: 'Ki_', Q: 'Qu_', R: 'Rk_', B: 'Bi_', N: 'Kn_', P: 'Pw_' }} />,
37
+ <Movetext game={pgn} gameIndex={3} pieceSymbols="figurines" headerVisible={false}
38
+ diagramOptions={{ flipped: true, coordinateVisible: false, squareSize: 32, colorset: 'scid', pieceset: 'eyes' }} />,
39
+ <Movetext game={pgn} gameIndex={3} diagramOptions={{ turnVisible: false, squareSize: 32 }} />,
40
+ <Movetext game={pgn} gameIndex={9} diagramVisible={false} />,
41
+ <Movetext game={pgn} gameIndex={3} diagramOptions={ /* eslint-disable @typescript-eslint/no-explicit-any */ null as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
42
+ <Movetext game={pgn} gameIndex={3}
43
+ diagramOptions={ /* eslint-disable @typescript-eslint/no-explicit-any */ { squareSize: '32' } as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
44
+ <Movetext game={pgn} pieceSymbols={ /* eslint-disable @typescript-eslint/no-explicit-any */ 'invalid' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />
45
45
  ], 'width-600'); /* eslint-enable react/jsx-key */
@@ -29,5 +29,5 @@ import { Movetext } from '../../../dist/lib/index';
29
29
  import pgn from '../common/games.pgn';
30
30
 
31
31
  testApp([ /* eslint-disable react/jsx-key */
32
- <Movetext game={pgn} gameIndex={7} interactionMode={ /* eslint-disable @typescript-eslint/no-explicit-any */ 'whatever' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
32
+ <Movetext game={pgn} gameIndex={7} interactionMode={ /* eslint-disable @typescript-eslint/no-explicit-any */ 'whatever' as any /* eslint-enable @typescript-eslint/no-explicit-any */ } />,
33
33
  ], 'width-600'); /* eslint-enable react/jsx-key */
@@ -29,18 +29,18 @@ import { Movetext } from '../../../dist/lib/index';
29
29
  import pgn from '../common/games.pgn';
30
30
 
31
31
  function onMoveSelected(nodeId: string | undefined, evtOrigin: string) {
32
- setSandbox(`move selected: ${nodeId}\norigin: ${evtOrigin}`);
32
+ setSandbox(`move selected: ${nodeId}\norigin: ${evtOrigin}`);
33
33
  }
34
34
 
35
35
  testApp([ /* eslint-disable react/jsx-key */
36
- <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} selection="4w" />,
37
- <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" />,
38
- <Movetext game={pgn} gameIndex={7} headerVisible={false} interactionMode="selectMove" />,
39
- <Movetext game={pgn} gameIndex={8} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="1b-v0-3w-v0-3w" />,
40
- <Movetext game={pgn} gameIndex={8} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="1b-v0-2b" />,
41
- <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="start" />,
42
- <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="1w" />,
43
- <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="6b" />,
44
- <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="invalid-id" />,
45
- <Movetext game={pgn} gameIndex={8} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="1b-v0-start" />,
36
+ <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} selection="4w" />,
37
+ <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" />,
38
+ <Movetext game={pgn} gameIndex={7} headerVisible={false} interactionMode="selectMove" />,
39
+ <Movetext game={pgn} gameIndex={8} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="1b-v0-3w-v0-3w" />,
40
+ <Movetext game={pgn} gameIndex={8} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="1b-v0-2b" />,
41
+ <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="start" />,
42
+ <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="1w" />,
43
+ <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="6b" />,
44
+ <Movetext game={pgn} gameIndex={7} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="invalid-id" />,
45
+ <Movetext game={pgn} gameIndex={8} headerVisible={false} onMoveSelected={onMoveSelected} interactionMode="selectMove" selection="1b-v0-start" />,
46
46
  ], 'width-600'); /* eslint-enable react/jsx-key */
@@ -29,15 +29,15 @@ import { NavigationBoard } from '../../../dist/lib/index';
29
29
  import pgn from '../common/games.pgn';
30
30
 
31
31
  function onNodeIdChanged(nodeId: string) {
32
- setSandbox(`Node ID changed: ${nodeId}`);
32
+ setSandbox(`Node ID changed: ${nodeId}`);
33
33
  }
34
34
 
35
35
  function onFlippedChanged(flipped: boolean) {
36
- setSandbox(`Flip state changed: ${flipped}`);
36
+ setSandbox(`Flip state changed: ${flipped}`);
37
37
  }
38
38
 
39
39
  testApp([ /* eslint-disable react/jsx-key */
40
- <NavigationBoard game={pgn} gameIndex={1} nodeId="17w" onNodeIdChanged={onNodeIdChanged} />,
41
- <NavigationBoard game={pgn} initialNodeId="3w" nodeId="end" onFlippedChanged={onFlippedChanged} />,
42
- <NavigationBoard game={pgn} gameIndex={3} nodeId="whatever..." onNodeIdChanged={onNodeIdChanged} flipped={false} onFlippedChanged={onFlippedChanged} />,
40
+ <NavigationBoard game={pgn} gameIndex={1} nodeId="17w" onNodeIdChanged={onNodeIdChanged} />,
41
+ <NavigationBoard game={pgn} initialNodeId="3w" nodeId="end" onFlippedChanged={onFlippedChanged} />,
42
+ <NavigationBoard game={pgn} gameIndex={3} nodeId="whatever..." onNodeIdChanged={onNodeIdChanged} flipped={false} onFlippedChanged={onFlippedChanged} />,
43
43
  ]); /* eslint-enable react/jsx-key */
@@ -40,17 +40,17 @@ gameWithNullMove.mainVariation().play('e4').play('e5').play('Nf3').play('--').pl
40
40
  const database = pgnRead(pgn);
41
41
 
42
42
  function onNodeIdChanged(nodeId: string) { // Must NOT be invoked as the components are uncontrolled.
43
- setSandbox(`Node ID changed: ${nodeId}`);
43
+ setSandbox(`Node ID changed: ${nodeId}`);
44
44
  }
45
45
 
46
46
  function onFlippedChanged(flipped: boolean) {
47
- setSandbox(`Flip state changed: ${flipped}`);
47
+ setSandbox(`Flip state changed: ${flipped}`);
48
48
  }
49
49
 
50
50
  testApp([ /* eslint-disable react/jsx-key */
51
- <NavigationBoard game={game} initialFlipped />,
52
- <NavigationBoard game={pgn} initialNodeId="end" initialFlipped flipped={false} />,
53
- <NavigationBoard game={pgn} gameIndex={1} initialNodeId="17w" onNodeIdChanged={onNodeIdChanged} />,
54
- <NavigationBoard game={database} gameIndex={3} onNodeIdChanged={onNodeIdChanged} flipped onFlippedChanged={onFlippedChanged} />,
55
- <NavigationBoard game={gameWithNullMove} initialNodeId="2b" />,
51
+ <NavigationBoard game={game} initialFlipped />,
52
+ <NavigationBoard game={pgn} initialNodeId="end" initialFlipped flipped={false} />,
53
+ <NavigationBoard game={pgn} gameIndex={1} initialNodeId="17w" onNodeIdChanged={onNodeIdChanged} />,
54
+ <NavigationBoard game={database} gameIndex={3} onNodeIdChanged={onNodeIdChanged} flipped onFlippedChanged={onFlippedChanged} />,
55
+ <NavigationBoard game={gameWithNullMove} initialNodeId="2b" />,
56
56
  ]); /* eslint-enable react/jsx-key */