kokopu-react 3.0.1 → 3.1.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 (250) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/lib/chessboard/BoardProperties.d.ts +91 -0
  3. package/dist/lib/chessboard/BoardProperties.js +43 -0
  4. package/dist/lib/chessboard/BoardProperties.js.map +1 -0
  5. package/dist/lib/chessboard/Chessboard.css +7 -5
  6. package/dist/lib/chessboard/Chessboard.d.ts +36 -58
  7. package/dist/lib/chessboard/Chessboard.js +33 -97
  8. package/dist/lib/chessboard/Chessboard.js.map +1 -1
  9. package/dist/lib/chessboard/ChessboardImpl.d.ts +22 -0
  10. package/dist/lib/chessboard/ChessboardImpl.js +8 -6
  11. package/dist/lib/chessboard/ChessboardImpl.js.map +1 -1
  12. package/dist/lib/chessboard/Draggable.d.ts +22 -0
  13. package/dist/lib/chessboard/Draggable.js +7 -5
  14. package/dist/lib/chessboard/Draggable.js.map +1 -1
  15. package/dist/lib/chessboard/Motion.d.ts +22 -0
  16. package/dist/lib/chessboard/Motion.js +7 -5
  17. package/dist/lib/chessboard/Motion.js.map +1 -1
  18. package/dist/lib/chessboard/colorsets.d.ts +22 -0
  19. package/dist/lib/chessboard/colorsets.js +7 -5
  20. package/dist/lib/chessboard/colorsets.js.map +1 -1
  21. package/dist/lib/chessboard/piecesets.d.ts +22 -0
  22. package/dist/lib/chessboard/piecesets.js +7 -5
  23. package/dist/lib/chessboard/piecesets.js.map +1 -1
  24. package/dist/lib/errorbox/ErrorBox.css +7 -5
  25. package/dist/lib/errorbox/ErrorBox.d.ts +22 -0
  26. package/dist/lib/errorbox/ErrorBox.js +7 -5
  27. package/dist/lib/errorbox/ErrorBox.js.map +1 -1
  28. package/dist/lib/errorbox/parsing.d.ts +57 -0
  29. package/dist/lib/errorbox/parsing.js +140 -0
  30. package/dist/lib/errorbox/parsing.js.map +1 -0
  31. package/dist/lib/exception.d.ts +22 -0
  32. package/dist/lib/exception.js +7 -5
  33. package/dist/lib/exception.js.map +1 -1
  34. package/dist/lib/i18n.d.ts +27 -0
  35. package/dist/lib/i18n.js +13 -5
  36. package/dist/lib/i18n.js.map +1 -1
  37. package/dist/lib/icons/AnnotationSymbolShape.css +7 -5
  38. package/dist/lib/icons/AnnotationSymbolShape.d.ts +22 -0
  39. package/dist/lib/icons/AnnotationSymbolShape.js +7 -5
  40. package/dist/lib/icons/AnnotationSymbolShape.js.map +1 -1
  41. package/dist/lib/icons/ArrowMarkerIcon.d.ts +22 -0
  42. package/dist/lib/icons/ArrowMarkerIcon.js +7 -5
  43. package/dist/lib/icons/ArrowMarkerIcon.js.map +1 -1
  44. package/dist/lib/icons/ArrowTip.d.ts +22 -0
  45. package/dist/lib/icons/ArrowTip.js +7 -5
  46. package/dist/lib/icons/ArrowTip.js.map +1 -1
  47. package/dist/lib/icons/ChessPieceIcon.d.ts +22 -0
  48. package/dist/lib/icons/ChessPieceIcon.js +7 -5
  49. package/dist/lib/icons/ChessPieceIcon.js.map +1 -1
  50. package/dist/lib/icons/SquareMarkerIcon.d.ts +22 -0
  51. package/dist/lib/icons/SquareMarkerIcon.js +7 -5
  52. package/dist/lib/icons/SquareMarkerIcon.js.map +1 -1
  53. package/dist/lib/icons/TextMarkerIcon.d.ts +22 -0
  54. package/dist/lib/icons/TextMarkerIcon.js +7 -5
  55. package/dist/lib/icons/TextMarkerIcon.js.map +1 -1
  56. package/dist/lib/icons/arrow.css +7 -5
  57. package/dist/lib/index.d.ts +26 -1
  58. package/dist/lib/index.js +9 -5
  59. package/dist/lib/index.js.map +1 -1
  60. package/dist/lib/movetext/Movetext.css +7 -18
  61. package/dist/lib/movetext/Movetext.d.ts +31 -43
  62. package/dist/lib/movetext/Movetext.js +22 -72
  63. package/dist/lib/movetext/Movetext.js.map +1 -1
  64. package/dist/lib/movetext/MovetextImpl.d.ts +29 -28
  65. package/dist/lib/movetext/MovetextImpl.js +22 -99
  66. package/dist/lib/movetext/MovetextImpl.js.map +1 -1
  67. package/dist/lib/movetext/fonts.css +7 -5
  68. package/dist/lib/movetext/htmlFilter.d.ts +22 -0
  69. package/dist/lib/movetext/htmlFilter.js +21 -19
  70. package/dist/lib/movetext/htmlFilter.js.map +1 -1
  71. package/dist/lib/movetext/moveFormatter.d.ts +22 -0
  72. package/dist/lib/movetext/moveFormatter.js +7 -5
  73. package/dist/lib/movetext/moveFormatter.js.map +1 -1
  74. package/dist/lib/navigationboard/NavigationBoard.d.ts +118 -0
  75. package/dist/lib/navigationboard/NavigationBoard.js +112 -0
  76. package/dist/lib/navigationboard/NavigationBoard.js.map +1 -0
  77. package/dist/lib/navigationboard/NavigationField.css +36 -0
  78. package/dist/lib/navigationboard/NavigationField.d.ts +81 -0
  79. package/dist/lib/navigationboard/NavigationField.js +154 -0
  80. package/dist/lib/navigationboard/NavigationField.js.map +1 -0
  81. package/dist/lib/navigationboard/NavigationToolbar.css +51 -0
  82. package/dist/lib/navigationboard/NavigationToolbar.d.ts +41 -0
  83. package/dist/lib/navigationboard/NavigationToolbar.js +124 -0
  84. package/dist/lib/navigationboard/NavigationToolbar.js.map +1 -0
  85. package/dist/lib/sanitization.d.ts +22 -0
  86. package/dist/lib/sanitization.js +7 -5
  87. package/dist/lib/sanitization.js.map +1 -1
  88. package/dist/lib/types.d.ts +22 -0
  89. package/dist/lib/types.js +7 -5
  90. package/dist/lib/types.js.map +1 -1
  91. package/dist/lib/util.d.ts +22 -0
  92. package/dist/lib/util.js +7 -5
  93. package/dist/lib/util.js.map +1 -1
  94. package/doc_src/demo/PageChessboardBase.tsx +7 -5
  95. package/doc_src/demo/PageChessboardInteraction.tsx +32 -22
  96. package/doc_src/demo/PageChessboardMove.tsx +24 -5
  97. package/doc_src/demo/PageChessboardSmallScreens.tsx +7 -5
  98. package/doc_src/demo/PageMovetextBase.tsx +7 -5
  99. package/doc_src/demo/PageMovetextInteraction.tsx +7 -5
  100. package/doc_src/demo/PageNavigationBoardBase.tsx +194 -0
  101. package/doc_src/demo/PageNavigationBoardUncontrolledVsControlled.tsx +114 -0
  102. package/doc_src/demo/decs.d.ts +7 -5
  103. package/doc_src/demo/demo.css +7 -5
  104. package/doc_src/demo/game-3.pgn +10 -0
  105. package/doc_src/demo/util.ts +7 -5
  106. package/doc_src/examples/Movetext.md +1 -1
  107. package/doc_src/examples/NavigationBoard.md +15 -0
  108. package/doc_src/theming/LogoRenderer.js +7 -5
  109. package/doc_src/theming/theming.css +7 -5
  110. package/package.json +27 -26
  111. package/scripts/doc.styleguide.config.js +19 -7
  112. package/scripts/docker-compose.yml +3 -3
  113. package/scripts/test-graphic.webpack.config.js +7 -5
  114. package/scripts/test-headless.webpack.config.js +7 -5
  115. package/src/chessboard/BoardProperties.ts +131 -0
  116. package/src/chessboard/Chessboard.css +7 -5
  117. package/src/chessboard/Chessboard.tsx +48 -175
  118. package/src/chessboard/ChessboardImpl.tsx +7 -5
  119. package/src/chessboard/Draggable.tsx +7 -5
  120. package/src/chessboard/Motion.tsx +7 -5
  121. package/src/chessboard/colorsets.ts +7 -5
  122. package/src/chessboard/piecesets.ts +7 -5
  123. package/src/decs.d.ts +7 -5
  124. package/src/errorbox/ErrorBox.css +7 -5
  125. package/src/errorbox/ErrorBox.tsx +7 -5
  126. package/src/errorbox/parsing.tsx +158 -0
  127. package/src/exception.ts +7 -5
  128. package/src/i18n.ts +14 -5
  129. package/src/icons/AnnotationSymbolShape.css +7 -5
  130. package/src/icons/AnnotationSymbolShape.tsx +7 -5
  131. package/src/icons/ArrowMarkerIcon.tsx +7 -5
  132. package/src/icons/ArrowTip.tsx +7 -5
  133. package/src/icons/ChessPieceIcon.tsx +7 -5
  134. package/src/icons/SquareMarkerIcon.tsx +7 -5
  135. package/src/icons/TextMarkerIcon.tsx +7 -5
  136. package/src/icons/arrow.css +7 -5
  137. package/src/index.ts +12 -6
  138. package/src/movetext/Movetext.css +7 -18
  139. package/src/movetext/Movetext.tsx +27 -90
  140. package/src/movetext/MovetextImpl.tsx +35 -120
  141. package/src/movetext/fonts.css +7 -5
  142. package/src/movetext/htmlFilter.tsx +7 -5
  143. package/src/movetext/moveFormatter.tsx +7 -5
  144. package/src/navigationboard/NavigationBoard.tsx +231 -0
  145. package/src/navigationboard/NavigationField.css +36 -0
  146. package/src/navigationboard/NavigationField.tsx +185 -0
  147. package/src/navigationboard/NavigationToolbar.css +51 -0
  148. package/src/navigationboard/NavigationToolbar.tsx +174 -0
  149. package/src/sanitization.ts +7 -5
  150. package/src/types.ts +7 -5
  151. package/src/util.ts +7 -5
  152. package/test/01_types.js +7 -5
  153. package/test/02_chessboard_util.js +7 -5
  154. package/test/03_error_box_graphic.js +7 -5
  155. package/test/04_icons_graphic.js +7 -5
  156. package/test/05_chessboard_graphic.js +9 -5
  157. package/test/06_chessboard_animation.js +7 -5
  158. package/test/07_chessboard_interaction.js +7 -5
  159. package/test/08_chessboard_play_moves.js +7 -5
  160. package/test/09_chessboard_small_screens.js +28 -5
  161. package/test/10_movetext_graphic.js +12 -5
  162. package/test/11_movetext_interaction.js +19 -13
  163. package/test/12_navigation_board.js +168 -0
  164. package/test/common/graphic.js +7 -5
  165. package/test/graphic_references/05_chessboard_graphic/move/illegal_null-move.png +0 -0
  166. package/test/graphic_references/05_chessboard_graphic/move/null-move.png +0 -0
  167. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/default_bottom_component.png +0 -0
  168. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/default_top_component.png +0 -0
  169. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/reduced_bottom_component.png +0 -0
  170. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/reduced_top_component.png +0 -0
  171. package/test/graphic_references/10_movetext_graphic/format_move/format_text.png +0 -0
  172. package/test/graphic_references/10_movetext_graphic/options/wrong_piece_symbol_value.png +0 -0
  173. package/test/graphic_references/11_movetext_interaction/select_moves/click_on_unselected_without_callback.png +0 -0
  174. package/test/graphic_references/12_navigation_board/controlled/default.png +0 -0
  175. package/test/graphic_references/12_navigation_board/controlled/forbidden_navigation_0.png +0 -0
  176. package/test/graphic_references/12_navigation_board/controlled/forbidden_navigation_1.png +0 -0
  177. package/test/graphic_references/12_navigation_board/controlled/invalid_node_id.png +0 -0
  178. package/test/graphic_references/12_navigation_board/controlled/no_callback_defined_0.png +0 -0
  179. package/test/graphic_references/12_navigation_board/controlled/no_callback_defined_1.png +0 -0
  180. package/test/graphic_references/12_navigation_board/controlled/overriding_initial_node_id.png +0 -0
  181. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_0.png +0 -0
  182. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_1.png +0 -0
  183. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_2.png +0 -0
  184. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_3.png +0 -0
  185. package/test/graphic_references/12_navigation_board/error/pgn_parsing_error.png +0 -0
  186. package/test/graphic_references/12_navigation_board/error/wrong_game_type.png +0 -0
  187. package/test/graphic_references/12_navigation_board/theme/custom_1.png +0 -0
  188. package/test/graphic_references/12_navigation_board/theme/custom_2.png +0 -0
  189. package/test/graphic_references/12_navigation_board/theme/large.png +0 -0
  190. package/test/graphic_references/12_navigation_board/theme/small.png +0 -0
  191. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_0.png +0 -0
  192. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_1.png +0 -0
  193. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_2.png +0 -0
  194. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_end_0.png +0 -0
  195. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_end_1.png +0 -0
  196. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_end_2.png +0 -0
  197. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_at_end.png +0 -0
  198. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_at_specific_id.png +0 -0
  199. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_default.png +0 -0
  200. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_default_with_game_index.png +0 -0
  201. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_on_null-move.png +0 -0
  202. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_0.png +0 -0
  203. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_1.png +0 -0
  204. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_2.png +0 -0
  205. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_3.png +0 -0
  206. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_4.png +0 -0
  207. package/test/graphic_references/12_navigation_board/uncontrolled/regular_flipping_0.png +0 -0
  208. package/test/graphic_references/12_navigation_board/uncontrolled/regular_flipping_1.png +0 -0
  209. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_0.png +0 -0
  210. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_1.png +0 -0
  211. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_2.png +0 -0
  212. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_3.png +0 -0
  213. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_4.png +0 -0
  214. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_5.png +0 -0
  215. package/test/graphic_test_app/03_error_box_graphic/base.tsx +7 -5
  216. package/test/graphic_test_app/03_error_box_graphic/localization.tsx +7 -5
  217. package/test/graphic_test_app/04_icons_graphic/chess_piece.tsx +7 -5
  218. package/test/graphic_test_app/04_icons_graphic/marker.tsx +7 -5
  219. package/test/graphic_test_app/05_chessboard_graphic/annotations.tsx +7 -5
  220. package/test/graphic_test_app/05_chessboard_graphic/base.tsx +7 -5
  221. package/test/graphic_test_app/05_chessboard_graphic/chess_variants.tsx +7 -5
  222. package/test/graphic_test_app/05_chessboard_graphic/flipped.tsx +7 -5
  223. package/test/graphic_test_app/05_chessboard_graphic/move.tsx +9 -5
  224. package/test/graphic_test_app/05_chessboard_graphic/theme.tsx +7 -5
  225. package/test/graphic_test_app/06_chessboard_animation/base_1.tsx +7 -5
  226. package/test/graphic_test_app/06_chessboard_animation/base_2.tsx +7 -5
  227. package/test/graphic_test_app/06_chessboard_animation/base_3.tsx +7 -5
  228. package/test/graphic_test_app/06_chessboard_animation/on_redraw.tsx +7 -5
  229. package/test/graphic_test_app/07_chessboard_interaction/click_squares.tsx +7 -5
  230. package/test/graphic_test_app/07_chessboard_interaction/edit_arrows.tsx +7 -5
  231. package/test/graphic_test_app/07_chessboard_interaction/error.tsx +7 -5
  232. package/test/graphic_test_app/07_chessboard_interaction/move_pieces.tsx +7 -5
  233. package/test/graphic_test_app/08_chessboard_play_moves/base.tsx +7 -5
  234. package/test/graphic_test_app/08_chessboard_play_moves/promotions.tsx +7 -5
  235. package/test/graphic_test_app/09_chessboard_small_screens/base.tsx +7 -5
  236. package/test/graphic_test_app/09_chessboard_small_screens/top_bottom_components.tsx +48 -0
  237. package/test/graphic_test_app/10_movetext_graphic/base.tsx +7 -5
  238. package/test/graphic_test_app/10_movetext_graphic/error.tsx +7 -5
  239. package/test/graphic_test_app/10_movetext_graphic/format_move.tsx +31 -0
  240. package/test/graphic_test_app/10_movetext_graphic/html.tsx +7 -5
  241. package/test/graphic_test_app/10_movetext_graphic/options.tsx +8 -5
  242. package/test/graphic_test_app/11_movetext_interaction/error.tsx +7 -5
  243. package/test/graphic_test_app/11_movetext_interaction/select_moves.tsx +8 -5
  244. package/test/graphic_test_app/12_navigation_board/controlled.tsx +43 -0
  245. package/test/graphic_test_app/12_navigation_board/error.tsx +34 -0
  246. package/test/graphic_test_app/12_navigation_board/theme.tsx +38 -0
  247. package/test/graphic_test_app/12_navigation_board/uncontrolled.tsx +56 -0
  248. package/test/graphic_test_app/common/decs.d.ts +7 -5
  249. package/test/graphic_test_app/common/test_app.css +7 -5
  250. package/test/graphic_test_app/common/test_app.tsx +7 -5
package/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  ChangeLog
2
2
  =========
3
3
 
4
+ 3.1.0 (March 3, 2024)
5
+ ---------------------
6
+ * Add support for null-moves in `Chessboard`.
7
+ * Add top/bottom auxilliary components in `Chessboard`.
8
+ * Add `NavigationBoard` (see [#6](https://github.com/yo35/kokopu-react/issues/6)).
9
+
10
+ 3.0.2 (January 20, 2024)
11
+ ------------------------
12
+ * Minor fixes in dependencies.
13
+
4
14
  3.0.1 (July 14, 2023)
5
15
  ---------------------
6
16
  * Add documentation regarding Webpack configuration.
@@ -0,0 +1,91 @@
1
+ /*!
2
+ * -------------------------------------------------------------------------- *
3
+ * *
4
+ * Kokopu-React - A React-based library of chess-related components. *
5
+ * <https://www.npmjs.com/package/kokopu-react> *
6
+ * Copyright (C) 2021-2024 Yoann Le Montagner <yo35 -at- melix.net> *
7
+ * *
8
+ * Kokopu-React is free software: you can redistribute it and/or *
9
+ * modify it under the terms of the GNU Lesser General Public License *
10
+ * as published by the Free Software Foundation, either version 3 of *
11
+ * the License, or (at your option) any later version. *
12
+ * *
13
+ * Kokopu-React is distributed in the hope that it will be useful, *
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16
+ * GNU Lesser General Public License for more details. *
17
+ * *
18
+ * You should have received a copy of the GNU Lesser General *
19
+ * Public License along with this program. If not, see *
20
+ * <http://www.gnu.org/licenses/>. *
21
+ * *
22
+ * -------------------------------------------------------------------------- */
23
+ import { AnnotationColor } from '../types';
24
+ /**
25
+ * Define a limit applicable to the parameters of a {@link Chessboard} on small-screen devices.
26
+ */
27
+ export interface SmallScreenLimit {
28
+ width: number;
29
+ squareSize?: number;
30
+ coordinateVisible?: boolean;
31
+ turnVisible?: boolean;
32
+ }
33
+ /**
34
+ * Properties in relation to the appearance of a `Chessboard` component (excluding properties related to move display).
35
+ */
36
+ export interface StaticBoardGraphicProps {
37
+ /**
38
+ * Size of the squares (in pixels). Must be an integer between `Chessboard.minSquareSize()` and `Chessboard.maxSquareSize()`.
39
+ */
40
+ squareSize: number;
41
+ /**
42
+ * Whether the row and column coordinates are visible or not.
43
+ */
44
+ coordinateVisible: boolean;
45
+ /**
46
+ * Whether the turn flag is visible or not.
47
+ */
48
+ turnVisible: boolean;
49
+ /**
50
+ * Color theme ID. Must be a property of `Chessboard.colorsets()`.
51
+ */
52
+ colorset: string;
53
+ /**
54
+ * Piece theme ID. Must be a property of `Chessboard.piecesets()`.
55
+ */
56
+ pieceset: string;
57
+ /**
58
+ * Limits applicable on small-screen devices. For instance, if set to
59
+ * ```
60
+ * [
61
+ * { width: 768, squareSize: 40 },
62
+ * { width: 375, squareSize: 24, coordinateVisible: false }
63
+ * ]
64
+ * ```
65
+ * then on screens with resolution ≤768 pixels, the square size will be limited to 40 (whatever the value
66
+ * of the `squareSize` attribute); in addition, on screens with resolution ≤375 pixels, the square size
67
+ * will be limited to 24 and the row and column coordinates will always be hidden (whatever the value of the
68
+ * `coordinateVisible` attribute).
69
+ */
70
+ smallScreenLimits?: SmallScreenLimit[];
71
+ }
72
+ /**
73
+ * Properties in relation to the appearance of a `Chessboard` component (including properties related to move display).
74
+ */
75
+ export interface DynamicBoardGraphicProps extends StaticBoardGraphicProps {
76
+ /**
77
+ * Whether moves are highlighted with an arrow or not.
78
+ */
79
+ moveArrowVisible: boolean;
80
+ /**
81
+ * Color of the move arrow.
82
+ */
83
+ moveArrowColor: AnnotationColor;
84
+ /**
85
+ * Whether moves are animated or not.
86
+ */
87
+ animated: boolean;
88
+ }
89
+ export declare const DEFAULT_SQUARE_SIZE = 40;
90
+ export declare function defaultStaticBoardProps(): StaticBoardGraphicProps;
91
+ export declare function defaultDynamicBoardProps(): DynamicBoardGraphicProps;
@@ -0,0 +1,43 @@
1
+ /*!
2
+ * -------------------------------------------------------------------------- *
3
+ * *
4
+ * Kokopu-React - A React-based library of chess-related components. *
5
+ * <https://www.npmjs.com/package/kokopu-react> *
6
+ * Copyright (C) 2021-2024 Yoann Le Montagner <yo35 -at- melix.net> *
7
+ * *
8
+ * Kokopu-React is free software: you can redistribute it and/or *
9
+ * modify it under the terms of the GNU Lesser General Public License *
10
+ * as published by the Free Software Foundation, either version 3 of *
11
+ * the License, or (at your option) any later version. *
12
+ * *
13
+ * Kokopu-React is distributed in the hope that it will be useful, *
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16
+ * GNU Lesser General Public License for more details. *
17
+ * *
18
+ * You should have received a copy of the GNU Lesser General *
19
+ * Public License along with this program. If not, see *
20
+ * <http://www.gnu.org/licenses/>. *
21
+ * *
22
+ * -------------------------------------------------------------------------- */
23
+ import { DEFAULT_COLORSET } from './colorsets';
24
+ import { DEFAULT_PIECESET } from './piecesets';
25
+ export const DEFAULT_SQUARE_SIZE = 40;
26
+ export function defaultStaticBoardProps() {
27
+ return {
28
+ squareSize: DEFAULT_SQUARE_SIZE,
29
+ coordinateVisible: true,
30
+ turnVisible: true,
31
+ colorset: DEFAULT_COLORSET,
32
+ pieceset: DEFAULT_PIECESET,
33
+ };
34
+ }
35
+ export function defaultDynamicBoardProps() {
36
+ return {
37
+ ...defaultStaticBoardProps(),
38
+ moveArrowVisible: true,
39
+ moveArrowColor: 'b',
40
+ animated: false,
41
+ };
42
+ }
43
+ //# sourceMappingURL=BoardProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoardProperties.js","sourceRoot":"","sources":["../../../src/chessboard/BoardProperties.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;gFAqBgF;AAIhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAmF/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAGtC,MAAM,UAAU,uBAAuB;IACtC,OAAO;QACN,UAAU,EAAE,mBAAmB;QAC/B,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;KAC1B,CAAC;AACH,CAAC;AAGD,MAAM,UAAU,wBAAwB;IACvC,OAAO;QACN,GAAG,uBAAuB,EAAE;QAC5B,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,GAAG;QACnB,QAAQ,EAAE,KAAK;KACf,CAAC;AACH,CAAC"}
@@ -1,14 +1,16 @@
1
- /* -------------------------------------------------------------------------- *
1
+ /*!
2
+ * -------------------------------------------------------------------------- *
2
3
  * *
3
- * This file is part of Kokopu-React, a JavaScript chess library. *
4
- * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
4
+ * Kokopu-React - A React-based library of chess-related components. *
5
+ * <https://www.npmjs.com/package/kokopu-react> *
6
+ * Copyright (C) 2021-2024 Yoann Le Montagner <yo35 -at- melix.net> *
5
7
  * *
6
- * This program is free software: you can redistribute it and/or *
8
+ * Kokopu-React is free software: you can redistribute it and/or *
7
9
  * modify it under the terms of the GNU Lesser General Public License *
8
10
  * as published by the Free Software Foundation, either version 3 of *
9
11
  * the License, or (at your option) any later version. *
10
12
  * *
11
- * This program is distributed in the hope that it will be useful, *
13
+ * Kokopu-React is distributed in the hope that it will be useful, *
12
14
  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
15
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14
16
  * GNU Lesser General Public License for more details. *
@@ -1,16 +1,30 @@
1
+ /*!
2
+ * -------------------------------------------------------------------------- *
3
+ * *
4
+ * Kokopu-React - A React-based library of chess-related components. *
5
+ * <https://www.npmjs.com/package/kokopu-react> *
6
+ * Copyright (C) 2021-2024 Yoann Le Montagner <yo35 -at- melix.net> *
7
+ * *
8
+ * Kokopu-React is free software: you can redistribute it and/or *
9
+ * modify it under the terms of the GNU Lesser General Public License *
10
+ * as published by the Free Software Foundation, either version 3 of *
11
+ * the License, or (at your option) any later version. *
12
+ * *
13
+ * Kokopu-React is distributed in the hope that it will be useful, *
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16
+ * GNU Lesser General Public License for more details. *
17
+ * *
18
+ * You should have received a copy of the GNU Lesser General *
19
+ * Public License along with this program. If not, see *
20
+ * <http://www.gnu.org/licenses/>. *
21
+ * *
22
+ * -------------------------------------------------------------------------- */
1
23
  import * as React from 'react';
2
24
  import { MoveDescriptor, Position, Square } from 'kokopu';
3
25
  import { Colorset, Pieceset, AnnotationColor, SquareMarkerSet, TextMarkerSet, ArrowMarkerSet } from '../types';
4
- /**
5
- * Define a limit applicable to the parameters of a {@link Chessboard} on small-screen devices.
6
- */
7
- export interface SmallScreenLimit {
8
- width: number;
9
- squareSize?: number;
10
- coordinateVisible?: boolean;
11
- turnVisible?: boolean;
12
- }
13
- export interface ChessboardProps {
26
+ import { StaticBoardGraphicProps, DynamicBoardGraphicProps } from './BoardProperties';
27
+ export interface ChessboardProps extends DynamicBoardGraphicProps {
14
28
  /**
15
29
  * Displayed position. Can be a [kokopu.Position](https://kokopu.yo35.org/docs/current/classes/Position.html) object,
16
30
  * a [FEN string](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation),
@@ -23,8 +37,8 @@ export interface ChessboardProps {
23
37
  position: Position | string;
24
38
  /**
25
39
  * Displayed move (optional), defined either as a [kokopu.MoveDescriptor](https://kokopu.yo35.org/docs/current/classes/MoveDescriptor.html) object
26
- * or as a [SAN string](https://en.wikipedia.org/wiki/Algebraic_notation_(chess)) (e.g. `'Nf3'`). In both cases, it must represent
27
- * a legal move in position defined in attribute `position`.
40
+ * or as a [SAN string](https://en.wikipedia.org/wiki/Algebraic_notation_(chess)) (e.g. `'Nf3'`). Use `'--'` for a null-move.
41
+ * In all cases, the move must be a legal move in position defined in attribute `position`.
28
42
  */
29
43
  move?: MoveDescriptor | string;
30
44
  /**
@@ -45,52 +59,6 @@ export interface ChessboardProps {
45
59
  * Whether the board is flipped (i.e. seen from Black's point of view) or not.
46
60
  */
47
61
  flipped: boolean;
48
- /**
49
- * Size of the squares (in pixels). Must be an integer between `Chessboard.minSquareSize()` and `Chessboard.maxSquareSize()`.
50
- */
51
- squareSize: number;
52
- /**
53
- * Whether the row and column coordinates are visible or not.
54
- */
55
- coordinateVisible: boolean;
56
- /**
57
- * Whether the turn flag is visible or not.
58
- */
59
- turnVisible: boolean;
60
- /**
61
- * Whether moves are highlighted with an arrow or not.
62
- */
63
- moveArrowVisible: boolean;
64
- /**
65
- * Color of the move arrow.
66
- */
67
- moveArrowColor: AnnotationColor;
68
- /**
69
- * Whether moves are animated or not.
70
- */
71
- animated: boolean;
72
- /**
73
- * Color theme ID. Must be a property of `Chessboard.colorsets()`.
74
- */
75
- colorset: string;
76
- /**
77
- * Piece theme ID. Must be a property of `Chessboard.piecesets()`.
78
- */
79
- pieceset: string;
80
- /**
81
- * Limits applicable on small-screen devices. For instance, if set to
82
- * ```
83
- * [
84
- * { width: 768, squareSize: 40 },
85
- * { width: 375, squareSize: 24, coordinateVisible: false }
86
- * ]
87
- * ```
88
- * then on screens with resolution ≤768 pixels, the square size will be limited to 40 (whatever the value
89
- * of the `squareSize` attribute); in addition, on screens with resolution ≤375 pixels, the square size
90
- * will be limited to 24 and the row and column coordinates will always be hidden (whatever the value of the
91
- * `coordinateVisible` attribute).
92
- */
93
- smallScreenLimits?: SmallScreenLimit[];
94
62
  /**
95
63
  * Type of action allowed with the mouse on the chessboard. If undefined, then the user cannot interact with the component.
96
64
  *
@@ -120,6 +88,16 @@ export interface ChessboardProps {
120
88
  * Callback invoked when a move is played (only if `interactionMode` is set to `'playMoves'`).
121
89
  */
122
90
  onMovePlayed?: (move: string) => void;
91
+ /**
92
+ * Optional component, to be rendered above the chessboard, and customized with the same square-size / coordinate-visible / turn-visible
93
+ * parameter values as actually used for the chessboard (which may be different from what is defined in props because of small-screen limits).
94
+ */
95
+ topComponent?: (attr: Pick<StaticBoardGraphicProps, 'squareSize' | 'coordinateVisible' | 'turnVisible'>) => JSX.Element;
96
+ /**
97
+ * Optional component, to be rendered below the chessboard, and customized with the same square-size / coordinate-visible / turn-visible
98
+ * parameter values as actually used for the chessboard (which may be different from what is defined in props because of small-screen limits).
99
+ */
100
+ bottomComponent?: (attr: Pick<StaticBoardGraphicProps, 'squareSize' | 'coordinateVisible' | 'turnVisible'>) => JSX.Element;
123
101
  }
124
102
  interface ChessboardState {
125
103
  windowWidth: number;
@@ -1,14 +1,16 @@
1
- /* -------------------------------------------------------------------------- *
1
+ /*!
2
+ * -------------------------------------------------------------------------- *
2
3
  * *
3
- * This file is part of Kokopu-React, a JavaScript chess library. *
4
- * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
4
+ * Kokopu-React - A React-based library of chess-related components. *
5
+ * <https://www.npmjs.com/package/kokopu-react> *
6
+ * Copyright (C) 2021-2024 Yoann Le Montagner <yo35 -at- melix.net> *
5
7
  * *
6
- * This program is free software: you can redistribute it and/or *
8
+ * Kokopu-React is free software: you can redistribute it and/or *
7
9
  * modify it under the terms of the GNU Lesser General Public License *
8
10
  * as published by the Free Software Foundation, either version 3 of *
9
11
  * the License, or (at your option) any later version. *
10
12
  * *
11
- * This program is distributed in the hope that it will be useful, *
13
+ * Kokopu-React is distributed in the hope that it will be useful, *
12
14
  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
15
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14
16
  * GNU Lesser General Public License for more details. *
@@ -19,16 +21,15 @@
19
21
  * *
20
22
  * -------------------------------------------------------------------------- */
21
23
  import * as React from 'react';
22
- import { exception as kokopuException, MoveDescriptor, Position, isSquare, isSquareCouple, isGameVariant } from 'kokopu';
24
+ import { Position, isSquare, isSquareCouple } from 'kokopu';
23
25
  import { IllegalArgument } from '../exception';
24
- import { i18n } from '../i18n';
25
26
  import { sanitizeString, sanitizeBoolean, sanitizePartialObject, sanitizeInteger, sanitizeBoundedInteger, sanitizeOptional } from '../sanitization';
26
27
  import { MIN_SQUARE_SIZE, MAX_SQUARE_SIZE, isAnnotationColor, isAnnotationSymbol, parseSquareMarkers, parseTextMarkers, parseArrowMarkers } from '../types';
27
- import { colorsets, DEFAULT_COLORSET } from './colorsets';
28
- import { piecesets, DEFAULT_PIECESET } from './piecesets';
28
+ import { DEFAULT_SQUARE_SIZE, defaultDynamicBoardProps } from './BoardProperties';
29
+ import { colorsets } from './colorsets';
30
+ import { piecesets } from './piecesets';
29
31
  import { ChessboardImpl, chessboardSize } from './ChessboardImpl';
30
- import { ErrorBox } from '../errorbox/ErrorBox';
31
- const DEFAULT_SQUARE_SIZE = 40;
32
+ import { parsePosition, parseMove } from '../errorbox/parsing';
32
33
  /**
33
34
  * SVG image representing a chessboard diagram. Optionally, the user may interact with the board (move pieces, click on squares...).
34
35
  * Annotations such as square markers or arrows can also be added to the board.
@@ -52,16 +53,20 @@ export class Chessboard extends React.Component {
52
53
  }
53
54
  render() {
54
55
  // Validate the position and move attributes.
55
- const positionInfo = parsePosition(this.props.position);
56
+ const positionInfo = parsePosition(this.props.position, 'Chessboard');
56
57
  if (positionInfo.error) {
57
- return React.createElement(ErrorBox, { title: i18n.INVALID_FEN_ERROR_TITLE, message: positionInfo.message });
58
+ return positionInfo.errorBox;
58
59
  }
59
- const position = positionInfo.position;
60
- const moveInfo = parseMove(position, this.props.move);
60
+ let position = positionInfo.position;
61
+ const moveInfo = parseMove(position, this.props.move, 'Chessboard');
61
62
  if (moveInfo.error) {
62
- return React.createElement(ErrorBox, { title: i18n.INVALID_NOTATION_ERROR_TITLE, message: moveInfo.message });
63
+ return moveInfo.errorBox;
64
+ }
65
+ const move = moveInfo.type === 'regular' ? moveInfo.move : undefined;
66
+ if (moveInfo.type === 'null-move') {
67
+ position = new Position(position);
68
+ position.playNullMove();
63
69
  }
64
- const move = moveInfo.move;
65
70
  // Validate the markers
66
71
  const sqm = parseMarkers(this.props.squareMarkers, 'squareMarkers', parseSquareMarkers, isSquare, isAnnotationColor);
67
72
  const txtm = parseMarkers(this.props.textMarkers, 'textMarkers', parseTextMarkers, isSquare, isTextMarkerElement);
@@ -89,13 +94,21 @@ export class Chessboard extends React.Component {
89
94
  const actualSquareSize = computeSquareSizeForSmallScreens(squareSize, smallScreenLimits, this.state.windowWidth);
90
95
  const actualCoordinateVisible = computeCoordinateVisibleForSmallScreens(coordinateVisible, smallScreenLimits, this.state.windowWidth);
91
96
  const actualTurnVisible = computeTurnVisibleForSmallScreens(turnVisible, smallScreenLimits, this.state.windowWidth);
97
+ const auxilliaryComponentAttr = {
98
+ squareSize: actualSquareSize,
99
+ coordinateVisible: actualCoordinateVisible,
100
+ turnVisible: actualTurnVisible,
101
+ };
92
102
  // Validate the interaction attributes and the callbacks.
93
103
  const interactionMode = this.getInteractionModeAndValidateEditedArrowColor();
94
104
  const { onPieceMoved, onSquareClicked, onArrowEdited, onMovePlayed } = this.props;
95
105
  // Build a key so that a new `ChessboardImpl` component is instantiated each time the position or the move changes
96
106
  // (mandatory to ensure that the move animation works properly and that the internal state of the component remains consistent).
97
107
  const key = `${position.variant()}|${position.fen()}|${move ? position.notation(move) : ''}`;
98
- return (React.createElement(ChessboardImpl, { key: key, position: position, move: move, squareMarkers: sqm, textMarkers: txtm, arrowMarkers: arm, flipped: flipped, squareSize: actualSquareSize, coordinateVisible: actualCoordinateVisible, turnVisible: actualTurnVisible, moveArrowVisible: moveArrowVisible, moveArrowColor: this.props.moveArrowColor, animated: animated, colorset: colorset, pieceset: pieceset, interactionMode: interactionMode, editedArrowColor: this.props.editedArrowColor, onPieceMoved: onPieceMoved, onSquareClicked: onSquareClicked, onArrowEdited: onArrowEdited, onMovePlayed: onMovePlayed }));
108
+ return (React.createElement(React.Fragment, null,
109
+ this.props.topComponent ? this.props.topComponent(auxilliaryComponentAttr) : undefined,
110
+ React.createElement(ChessboardImpl, { key: key, position: position, move: move, squareMarkers: sqm, textMarkers: txtm, arrowMarkers: arm, flipped: flipped, squareSize: actualSquareSize, coordinateVisible: actualCoordinateVisible, turnVisible: actualTurnVisible, moveArrowVisible: moveArrowVisible, moveArrowColor: this.props.moveArrowColor, animated: animated, colorset: colorset, pieceset: pieceset, interactionMode: interactionMode, editedArrowColor: this.props.editedArrowColor, onPieceMoved: onPieceMoved, onSquareClicked: onSquareClicked, onArrowEdited: onArrowEdited, onMovePlayed: onMovePlayed }),
111
+ this.props.bottomComponent ? this.props.bottomComponent(auxilliaryComponentAttr) : undefined));
99
112
  }
100
113
  getInteractionModeAndValidateEditedArrowColor() {
101
114
  const interactionMode = sanitizeOptional(this.props.interactionMode, sanitizeString);
@@ -136,7 +149,7 @@ export class Chessboard extends React.Component {
136
149
  * Return the maximum square size that would allow the chessboard to fit in a rectangle of size `width x height`.
137
150
  */
138
151
  static adaptSquareSize(width, height, attr) {
139
- let { coordinateVisible, turnVisible, smallScreenLimits } = sanitizePartialObject(attr, () => new IllegalArgument('Chessboard.size()', 'attr'));
152
+ let { coordinateVisible, turnVisible, smallScreenLimits } = sanitizePartialObject(attr, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'attr'));
140
153
  // Sanitize the arguments.
141
154
  width = sanitizeInteger(width, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'width'));
142
155
  height = sanitizeInteger(height, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'height'));
@@ -209,16 +222,9 @@ export class Chessboard extends React.Component {
209
222
  }
210
223
  }
211
224
  Chessboard.defaultProps = {
225
+ ...defaultDynamicBoardProps(),
212
226
  position: 'start',
213
227
  flipped: false,
214
- squareSize: DEFAULT_SQUARE_SIZE,
215
- coordinateVisible: true,
216
- turnVisible: true,
217
- moveArrowVisible: true,
218
- moveArrowColor: 'b',
219
- animated: false,
220
- colorset: DEFAULT_COLORSET,
221
- pieceset: DEFAULT_PIECESET,
222
228
  };
223
229
  /**
224
230
  * Compute the actual square size taking into account the given small-screen limits and window width.
@@ -261,76 +267,6 @@ function computeSmallScreenLimits(smallScreenLimits, windowWidth, getter) {
261
267
  }
262
268
  return bestAttributeValue;
263
269
  }
264
- /**
265
- * Try to interpret the given object as a chess position.
266
- */
267
- function parsePosition(position) {
268
- if (position instanceof Position) {
269
- return { error: false, position: position };
270
- }
271
- else if (position === 'start' || position === 'empty') {
272
- return { error: false, position: new Position(position) };
273
- }
274
- else if (typeof position === 'string') {
275
- try {
276
- const { variant, fen } = splitGameVariantAndFEN(position);
277
- const result = new Position(variant, 'empty');
278
- result.fen(fen);
279
- return { error: false, position: result };
280
- }
281
- catch (e) {
282
- // istanbul ignore else
283
- if (e instanceof kokopuException.InvalidFEN) {
284
- return { error: true, message: e.message };
285
- }
286
- else {
287
- throw e;
288
- }
289
- }
290
- }
291
- else {
292
- throw new IllegalArgument('Chessboard', 'position');
293
- }
294
- }
295
- /**
296
- * Look for an optional 'chess-variant:' prefix in the position attribute.
297
- */
298
- function splitGameVariantAndFEN(position) {
299
- const separatorIndex = position.indexOf(':');
300
- if (separatorIndex < 0) {
301
- return { variant: 'regular', fen: position };
302
- }
303
- const variant = position.substring(0, separatorIndex);
304
- return isGameVariant(variant) ? { variant: variant, fen: position.substring(separatorIndex + 1) } : { variant: 'regular', fen: position };
305
- }
306
- /**
307
- * Try to interpret the given object `move` as a move descriptor based on the given position.
308
- */
309
- function parseMove(position, move) {
310
- if (move === undefined || move === null) {
311
- return { error: false, move: undefined };
312
- }
313
- else if (move instanceof MoveDescriptor) {
314
- return { error: false, move: move };
315
- }
316
- else if (typeof move === 'string') {
317
- try {
318
- return { error: false, move: position.notation(move) };
319
- }
320
- catch (e) {
321
- // istanbul ignore else
322
- if (e instanceof kokopuException.InvalidNotation) {
323
- return { error: true, message: e.message };
324
- }
325
- else {
326
- throw e;
327
- }
328
- }
329
- }
330
- else {
331
- throw new IllegalArgument('Chessboard', 'move');
332
- }
333
- }
334
270
  /**
335
271
  * Try to interpret the given object as a list of markers.
336
272
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Chessboard.js","sourceRoot":"","sources":["../../../src/chessboard/Chessboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chessboard.js","sourceRoot":"","sources":["../../../src/chessboard/Chessboard.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,25 @@
1
+ /*!
2
+ * -------------------------------------------------------------------------- *
3
+ * *
4
+ * Kokopu-React - A React-based library of chess-related components. *
5
+ * <https://www.npmjs.com/package/kokopu-react> *
6
+ * Copyright (C) 2021-2024 Yoann Le Montagner <yo35 -at- melix.net> *
7
+ * *
8
+ * Kokopu-React is free software: you can redistribute it and/or *
9
+ * modify it under the terms of the GNU Lesser General Public License *
10
+ * as published by the Free Software Foundation, either version 3 of *
11
+ * the License, or (at your option) any later version. *
12
+ * *
13
+ * Kokopu-React is distributed in the hope that it will be useful, *
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16
+ * GNU Lesser General Public License for more details. *
17
+ * *
18
+ * You should have received a copy of the GNU Lesser General *
19
+ * Public License along with this program. If not, see *
20
+ * <http://www.gnu.org/licenses/>. *
21
+ * *
22
+ * -------------------------------------------------------------------------- */
1
23
  import * as React from 'react';
2
24
  import { Piece, Square, MoveDescriptor, Position } from 'kokopu';
3
25
  import { Colorset, Pieceset, AnnotationColor, SquareMarkerSet, TextMarkerSet, ArrowMarkerSet } from '../types';
@@ -1,14 +1,16 @@
1
- /* -------------------------------------------------------------------------- *
1
+ /*!
2
+ * -------------------------------------------------------------------------- *
2
3
  * *
3
- * This file is part of Kokopu-React, a JavaScript chess library. *
4
- * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
4
+ * Kokopu-React - A React-based library of chess-related components. *
5
+ * <https://www.npmjs.com/package/kokopu-react> *
6
+ * Copyright (C) 2021-2024 Yoann Le Montagner <yo35 -at- melix.net> *
5
7
  * *
6
- * This program is free software: you can redistribute it and/or *
8
+ * Kokopu-React is free software: you can redistribute it and/or *
7
9
  * modify it under the terms of the GNU Lesser General Public License *
8
10
  * as published by the Free Software Foundation, either version 3 of *
9
11
  * the License, or (at your option) any later version. *
10
12
  * *
11
- * This program is distributed in the hope that it will be useful, *
13
+ * Kokopu-React is distributed in the hope that it will be useful, *
12
14
  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
15
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14
16
  * GNU Lesser General Public License for more details. *
@@ -362,7 +364,7 @@ export class ChessboardImpl extends React.Component {
362
364
  // Promotion move.
363
365
  case 'promotion':
364
366
  this.setState({
365
- inhibitedSquare: sq,
367
+ inhibitedSquare: sq, // The moving pawn must not be visible while the promotion drawer is opened.
366
368
  promotionDrawer: {
367
369
  origin: targetSq,
368
370
  buttons: positionStill.variant() === 'antichess' ? ['q', 'r', 'b', 'n', 'k'] : ['q', 'r', 'b', 'n'],