kokopu-react 1.11.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/.eslintrc.yml +83 -0
  2. package/.nycrc.yml +0 -1
  3. package/CHANGELOG.md +178 -0
  4. package/CREDITS.md +18 -0
  5. package/README.md +1 -1
  6. package/{src/css/chessboard.css → dist/lib/chessboard/Chessboard.css} +2 -2
  7. package/dist/lib/chessboard/Chessboard.d.ts +171 -0
  8. package/dist/lib/chessboard/Chessboard.js +366 -0
  9. package/dist/lib/chessboard/Chessboard.js.map +1 -0
  10. package/dist/lib/chessboard/ChessboardImpl.d.ts +119 -0
  11. package/dist/lib/chessboard/ChessboardImpl.js +471 -0
  12. package/dist/lib/chessboard/ChessboardImpl.js.map +1 -0
  13. package/dist/lib/chessboard/Draggable.d.ts +62 -0
  14. package/dist/lib/chessboard/Draggable.js +157 -0
  15. package/dist/lib/chessboard/Draggable.js.map +1 -0
  16. package/dist/lib/chessboard/Motion.d.ts +28 -0
  17. package/dist/lib/chessboard/Motion.js +74 -0
  18. package/dist/lib/chessboard/Motion.js.map +1 -0
  19. package/dist/lib/chessboard/colorsets.d.ts +5 -0
  20. package/dist/lib/{impl → chessboard}/colorsets.js +43 -47
  21. package/dist/lib/chessboard/colorsets.js.map +1 -0
  22. package/dist/lib/chessboard/piecesets.d.ts +5 -0
  23. package/dist/lib/chessboard/piecesets.js +214 -0
  24. package/dist/lib/chessboard/piecesets.js.map +1 -0
  25. package/dist/lib/{css/error_box.css → errorbox/ErrorBox.css} +2 -2
  26. package/dist/lib/errorbox/ErrorBox.d.ts +28 -0
  27. package/dist/lib/errorbox/ErrorBox.js +84 -0
  28. package/dist/lib/errorbox/ErrorBox.js.map +1 -0
  29. package/dist/lib/exception.d.ts +18 -0
  30. package/dist/lib/exception.js +40 -0
  31. package/dist/lib/exception.js.map +1 -0
  32. package/dist/lib/i18n.d.ts +18 -0
  33. package/dist/lib/i18n.js +20 -33
  34. package/dist/lib/i18n.js.map +1 -0
  35. package/{src/css/symbol.css → dist/lib/icons/AnnotationSymbolShape.css} +2 -2
  36. package/dist/lib/icons/AnnotationSymbolShape.d.ts +30 -0
  37. package/dist/lib/{impl/ArrowTip.js → icons/AnnotationSymbolShape.js} +21 -35
  38. package/dist/lib/icons/AnnotationSymbolShape.js.map +1 -0
  39. package/dist/lib/icons/ArrowMarkerIcon.d.ts +20 -0
  40. package/dist/lib/icons/ArrowMarkerIcon.js +54 -0
  41. package/dist/lib/icons/ArrowMarkerIcon.js.map +1 -0
  42. package/dist/lib/icons/ArrowTip.d.ts +16 -0
  43. package/dist/lib/icons/ArrowTip.js +29 -0
  44. package/dist/lib/icons/ArrowTip.js.map +1 -0
  45. package/dist/lib/icons/SquareMarkerIcon.d.ts +18 -0
  46. package/{src/i18n.js → dist/lib/icons/SquareMarkerIcon.js} +24 -23
  47. package/dist/lib/icons/SquareMarkerIcon.js.map +1 -0
  48. package/dist/lib/icons/TextMarkerIcon.d.ts +23 -0
  49. package/dist/lib/icons/TextMarkerIcon.js +45 -0
  50. package/dist/lib/icons/TextMarkerIcon.js.map +1 -0
  51. package/{src/css → dist/lib/icons}/arrow.css +2 -2
  52. package/dist/lib/index.d.ts +10 -0
  53. package/dist/lib/index.js +31 -105
  54. package/dist/lib/index.js.map +1 -0
  55. package/dist/lib/{css/movetext.css → movetext/Movetext.css} +2 -2
  56. package/dist/lib/movetext/Movetext.d.ts +136 -0
  57. package/dist/lib/movetext/Movetext.js +168 -0
  58. package/dist/lib/movetext/Movetext.js.map +1 -0
  59. package/dist/lib/movetext/MovetextImpl.d.ts +85 -0
  60. package/dist/lib/movetext/MovetextImpl.js +411 -0
  61. package/dist/lib/movetext/MovetextImpl.js.map +1 -0
  62. package/dist/lib/{css → movetext}/fonts.css +4 -4
  63. package/dist/lib/movetext/htmlFilter.d.ts +7 -0
  64. package/dist/lib/movetext/htmlFilter.js +169 -0
  65. package/dist/lib/movetext/htmlFilter.js.map +1 -0
  66. package/dist/lib/movetext/moveFormatter.d.ts +20 -0
  67. package/dist/lib/movetext/moveFormatter.js +93 -0
  68. package/dist/lib/movetext/moveFormatter.js.map +1 -0
  69. package/dist/lib/sanitization.d.ts +6 -0
  70. package/dist/lib/sanitization.js +39 -0
  71. package/dist/lib/sanitization.js.map +1 -0
  72. package/dist/lib/types.d.ts +151 -0
  73. package/dist/lib/types.js +162 -0
  74. package/dist/lib/types.js.map +1 -0
  75. package/dist/lib/util.d.ts +2 -0
  76. package/dist/lib/util.js +36 -0
  77. package/dist/lib/util.js.map +1 -0
  78. package/doc_src/demo/{PageChessboardBase.js → PageChessboardBase.tsx} +30 -24
  79. package/doc_src/demo/{PageChessboardInteraction.js → PageChessboardInteraction.tsx} +95 -66
  80. package/doc_src/demo/{PageChessboardMove.js → PageChessboardMove.tsx} +66 -54
  81. package/doc_src/demo/{PageChessboardSmallScreens.js → PageChessboardSmallScreens.tsx} +23 -14
  82. package/doc_src/demo/{PageMovetextBase.js → PageMovetextBase.tsx} +62 -49
  83. package/doc_src/demo/{PageMovetextInteraction.js → PageMovetextInteraction.tsx} +58 -43
  84. package/doc_src/demo/decs.d.ts +31 -0
  85. package/doc_src/demo/demo.css +2 -2
  86. package/doc_src/demo/{util.js → util.ts} +3 -3
  87. package/doc_src/migrate_to_2.md +26 -0
  88. package/doc_src/theming/LogoRenderer.js +5 -5
  89. package/doc_src/theming/theming.css +8 -2
  90. package/package.json +45 -32
  91. package/scripts/doc.styleguide.config.js +192 -0
  92. package/scripts/doc.tsconfig.json +7 -0
  93. package/scripts/docker-compose.yml +1 -1
  94. package/scripts/test-graphic.tsconfig.json +7 -0
  95. package/scripts/test-graphic.webpack.config.js +33 -17
  96. package/scripts/test-headless.webpack.config.js +6 -10
  97. package/{dist/lib/css/chessboard.css → src/chessboard/Chessboard.css} +2 -2
  98. package/src/chessboard/Chessboard.tsx +575 -0
  99. package/src/chessboard/ChessboardImpl.tsx +632 -0
  100. package/src/chessboard/Draggable.tsx +252 -0
  101. package/src/{impl/Motion.js → chessboard/Motion.tsx} +37 -27
  102. package/src/chessboard/colorsets.ts +134 -0
  103. package/src/chessboard/piecesets.ts +229 -0
  104. package/src/decs.d.ts +26 -0
  105. package/src/{css/error_box.css → errorbox/ErrorBox.css} +2 -2
  106. package/src/errorbox/ErrorBox.tsx +129 -0
  107. package/src/exception.ts +51 -0
  108. package/src/i18n.ts +43 -0
  109. package/{dist/lib/css/symbol.css → src/icons/AnnotationSymbolShape.css} +2 -2
  110. package/src/{impl/TextSymbol.js → icons/AnnotationSymbolShape.tsx} +32 -30
  111. package/src/{ArrowMarkerIcon.js → icons/ArrowMarkerIcon.tsx} +39 -36
  112. package/src/{impl/ArrowTip.js → icons/ArrowTip.tsx} +20 -20
  113. package/src/{SquareMarkerIcon.js → icons/SquareMarkerIcon.tsx} +35 -28
  114. package/src/{TextMarkerIcon.js → icons/TextMarkerIcon.tsx} +40 -32
  115. package/{dist/lib/css → src/icons}/arrow.css +2 -2
  116. package/src/index.ts +38 -0
  117. package/src/{css/movetext.css → movetext/Movetext.css} +2 -2
  118. package/src/movetext/Movetext.tsx +278 -0
  119. package/src/movetext/MovetextImpl.tsx +493 -0
  120. package/src/{css → movetext}/fonts.css +4 -4
  121. package/src/movetext/htmlFilter.tsx +188 -0
  122. package/src/{formatmove.js → movetext/moveFormatter.tsx} +39 -26
  123. package/src/sanitization.ts +51 -0
  124. package/src/types.ts +311 -0
  125. package/src/util.ts +39 -0
  126. package/test/.eslintrc.yml +3 -3
  127. package/test/{1_markers.js → 01_types.js} +89 -4
  128. package/test/{2_chessboard_util.js → 02_chessboard_util.js} +16 -7
  129. package/test/{3_marker_icons_graphic.js → 03_error_box_graphic.js} +20 -14
  130. package/test/04_marker_icons_graphic.js +49 -0
  131. package/test/05_chessboard_graphic.js +92 -0
  132. package/test/06_chessboard_animation.js +71 -0
  133. package/test/07_chessboard_interaction.js +130 -0
  134. package/test/08_chessboard_play_moves.js +98 -0
  135. package/test/{7_movetext_graphic.js → 09_movetext_graphic.js} +32 -16
  136. package/test/{8_movetext_interaction.js → 10_movetext_interaction.js} +18 -23
  137. package/test/common/graphic.js +67 -33
  138. package/test/graphic_references/03_error_box_graphic/base/cut_beginning_of_text.png +0 -0
  139. package/test/graphic_references/03_error_box_graphic/base/cut_end_of_text.png +0 -0
  140. package/test/graphic_references/03_error_box_graphic/base/cut_on_line_breaks.png +0 -0
  141. package/test/graphic_references/03_error_box_graphic/base/error_index_not_integer.png +0 -0
  142. package/test/graphic_references/03_error_box_graphic/base/full.png +0 -0
  143. package/test/graphic_references/03_error_box_graphic/base/minimal.png +0 -0
  144. package/test/graphic_references/03_error_box_graphic/base/missing_error_index.png +0 -0
  145. package/test/graphic_references/03_error_box_graphic/base/missing_error_text.png +0 -0
  146. package/test/graphic_references/03_error_box_graphic/base/negative_error_index.png +0 -0
  147. package/test/graphic_references/03_error_box_graphic/base/single_character_text.png +0 -0
  148. package/test/graphic_references/03_error_box_graphic/base/too_large_error_index.png +0 -0
  149. package/test/graphic_references/03_error_box_graphic/localization/default.png +0 -0
  150. package/test/graphic_references/04_marker_icons_graphic/base/colorized_arrow.png +0 -0
  151. package/test/graphic_references/04_marker_icons_graphic/base/colorized_symbol.png +0 -0
  152. package/test/graphic_references/04_marker_icons_graphic/base/colorized_text.png +0 -0
  153. package/test/graphic_references/04_marker_icons_graphic/base/default_arrow.png +0 -0
  154. package/test/graphic_references/04_marker_icons_graphic/base/default_text.png +0 -0
  155. package/test/graphic_references/04_marker_icons_graphic/base/invalid_arrow_size.png +0 -0
  156. package/test/graphic_references/04_marker_icons_graphic/base/invalid_square_size.png +0 -0
  157. package/test/graphic_references/04_marker_icons_graphic/base/invalid_symbol.png +0 -0
  158. package/test/graphic_references/04_marker_icons_graphic/base/invalid_text_size.png +0 -0
  159. package/test/graphic_references/04_marker_icons_graphic/base/wrapped_arrow.png +0 -0
  160. package/test/graphic_references/04_marker_icons_graphic/base/wrapped_symbol.png +0 -0
  161. package/test/graphic_references/04_marker_icons_graphic/base/wrapped_text.png +0 -0
  162. package/test/graphic_references/05_chessboard_graphic/base/wrong_position_type.png +0 -0
  163. package/test/graphic_references/05_chessboard_graphic/chess_variants/chess960.png +0 -0
  164. package/test/graphic_references/05_chessboard_graphic/chess_variants/chess960_with_move.png +0 -0
  165. package/test/graphic_references/05_chessboard_graphic/chess_variants/invalid_variant.png +0 -0
  166. package/test/graphic_references/05_chessboard_graphic/chess_variants/invalid_variant_with_fen.png +0 -0
  167. package/test/graphic_references/05_chessboard_graphic/chess_variants/special_code.png +0 -0
  168. package/test/graphic_references/05_chessboard_graphic/chess_variants/variant_with_std_initial_position.png +0 -0
  169. package/test/graphic_references/05_chessboard_graphic/flipped/parsing_error.png +0 -0
  170. package/test/graphic_references/05_chessboard_graphic/move/wrong_move_arrow_color_type.png +0 -0
  171. package/test/graphic_references/05_chessboard_graphic/move/wrong_move_type.png +0 -0
  172. package/test/graphic_references/05_chessboard_graphic/theme/wrong_colorset.png +0 -0
  173. package/test/graphic_references/05_chessboard_graphic/theme/wrong_pieceset.png +0 -0
  174. package/test/graphic_references/05_chessboard_graphic/theme/wrong_square_size_type.png +0 -0
  175. package/test/graphic_references/06_chessboard_animation/on_redraw/final_state.png +0 -0
  176. package/test/graphic_references/06_chessboard_animation/on_redraw/initial_state.png +0 -0
  177. package/test/graphic_references/07_chessboard_interaction/error/edit_color_not_set.png +0 -0
  178. package/test/graphic_references/07_chessboard_interaction/error/wrong_interaction_mode.png +0 -0
  179. package/test/graphic_references/09_movetext_graphic/error/wrong_game_index_type.png +0 -0
  180. package/test/graphic_references/09_movetext_graphic/error/wrong_game_type.png +0 -0
  181. package/test/graphic_references/09_movetext_graphic/options/wrong_diagram_options_1.png +0 -0
  182. package/test/graphic_references/09_movetext_graphic/options/wrong_diagram_options_2.png +0 -0
  183. package/test/graphic_references/10_movetext_interaction/error/wrong_interaction_mode.png +0 -0
  184. package/test/graphic_test_app/.eslintrc.yml +3 -0
  185. package/test/graphic_test_app/03_error_box_graphic/base.tsx +46 -0
  186. package/{scripts/clean-graphic-output.js → test/graphic_test_app/03_error_box_graphic/localization.tsx} +10 -7
  187. package/{graphic_test_src/01_marker_icons.js → test/graphic_test_app/04_marker_icons_graphic/base.tsx} +15 -7
  188. package/{graphic_test_src/04_chessboard_annotations.js → test/graphic_test_app/05_chessboard_graphic/annotations.tsx} +23 -14
  189. package/{graphic_test_src/02_chessboard_simple.js → test/graphic_test_app/05_chessboard_graphic/base.tsx} +6 -6
  190. package/test/graphic_test_app/05_chessboard_graphic/chess_variants.tsx +35 -0
  191. package/{graphic_test_src/03_chessboard_flipped.js → test/graphic_test_app/05_chessboard_graphic/flipped.tsx} +5 -5
  192. package/{graphic_test_src/05_chessboard_move.js → test/graphic_test_app/05_chessboard_graphic/move.tsx} +9 -8
  193. package/{graphic_test_src/07_chessboard_theme.js → test/graphic_test_app/05_chessboard_graphic/theme.tsx} +14 -11
  194. package/{graphic_test_src/06a_chessboard_animated_move.js → test/graphic_test_app/06_chessboard_animation/base_1.tsx} +5 -5
  195. package/{graphic_test_src/06b_chessboard_animated_move.js → test/graphic_test_app/06_chessboard_animation/base_2.tsx} +5 -5
  196. package/{graphic_test_src/06c_chessboard_animated_move.js → test/graphic_test_app/06_chessboard_animation/base_3.tsx} +5 -5
  197. package/test/graphic_test_app/06_chessboard_animation/on_redraw.tsx +49 -0
  198. package/{graphic_test_src/08_chessboard_click_squares.js → test/graphic_test_app/07_chessboard_interaction/click_squares.tsx} +7 -6
  199. package/{graphic_test_src/10_chessboard_edit_arrows.js → test/graphic_test_app/07_chessboard_interaction/edit_arrows.tsx} +7 -7
  200. package/test/graphic_test_app/07_chessboard_interaction/error.tsx +30 -0
  201. package/{graphic_test_src/09_chessboard_move_pieces.js → test/graphic_test_app/07_chessboard_interaction/move_pieces.tsx} +7 -6
  202. package/{graphic_test_src/11_chessboard_play_moves.js → test/graphic_test_app/08_chessboard_play_moves/base.tsx} +6 -6
  203. package/{graphic_test_src/12_chessboard_play_promotions.js → test/graphic_test_app/08_chessboard_play_moves/promotions.tsx} +6 -6
  204. package/{graphic_test_src/13_movetext_simple.js → test/graphic_test_app/09_movetext_graphic/base.tsx} +8 -8
  205. package/{graphic_test_src/14_movetext_error.js → test/graphic_test_app/09_movetext_graphic/error.tsx} +10 -9
  206. package/{graphic_test_src/15_movetext_html.js → test/graphic_test_app/09_movetext_graphic/html.tsx} +7 -7
  207. package/{graphic_test_src/16_movetext_options.js → test/graphic_test_app/09_movetext_graphic/options.tsx} +9 -6
  208. package/test/graphic_test_app/10_movetext_interaction/error.tsx +31 -0
  209. package/{graphic_test_src/17_movetext_interaction.js → test/graphic_test_app/10_movetext_interaction/select_moves.tsx} +7 -7
  210. package/test/graphic_test_app/common/decs.d.ts +26 -0
  211. package/{graphic_test_src → test/graphic_test_app}/common/games.pgn +1 -1
  212. package/{graphic_test_src → test/graphic_test_app}/common/test_app.css +11 -2
  213. package/{graphic_test_src/common/test_app.js → test/graphic_test_app/common/test_app.tsx} +62 -14
  214. package/tsconfig.json +15 -0
  215. package/.babelrc +0 -3
  216. package/dist/lib/ArrowMarkerIcon.js +0 -85
  217. package/dist/lib/Chessboard.js +0 -1276
  218. package/dist/lib/ErrorBox.js +0 -125
  219. package/dist/lib/Movetext.js +0 -805
  220. package/dist/lib/SquareMarkerIcon.js +0 -69
  221. package/dist/lib/TextMarkerIcon.js +0 -74
  222. package/dist/lib/formatmove.js +0 -107
  223. package/dist/lib/impl/DraggableHandle.js +0 -277
  224. package/dist/lib/impl/HtmlSanitizer.js +0 -145
  225. package/dist/lib/impl/Motion.js +0 -109
  226. package/dist/lib/impl/TextSymbol.js +0 -89
  227. package/dist/lib/impl/piecesets.js +0 -219
  228. package/dist/lib/impl/util.js +0 -71
  229. package/dist/lib/markers.js +0 -144
  230. package/doc_src/.eslintrc.yml +0 -2
  231. package/src/Chessboard.js +0 -1034
  232. package/src/ErrorBox.js +0 -132
  233. package/src/Movetext.js +0 -671
  234. package/src/impl/DraggableHandle.js +0 -235
  235. package/src/impl/HtmlSanitizer.js +0 -126
  236. package/src/impl/colorsets.js +0 -119
  237. package/src/impl/piecesets.js +0 -218
  238. package/src/impl/util.js +0 -68
  239. package/src/index.js +0 -31
  240. package/src/markers.js +0 -115
  241. package/test/4_chessboard_graphic.js +0 -49
  242. package/test/5_chessboard_interaction.js +0 -135
  243. package/test/6_chessboard_play_moves.js +0 -107
  244. package/test/references/01_marker_icons/10.png +0 -0
  245. package/test/references/01_marker_icons/3.png +0 -0
  246. package/test/references/01_marker_icons/4.png +0 -0
  247. package/test/references/01_marker_icons/5.png +0 -0
  248. package/test/references/01_marker_icons/6.png +0 -0
  249. package/test/references/01_marker_icons/7.png +0 -0
  250. package/test/references/01_marker_icons/8.png +0 -0
  251. package/test/references/01_marker_icons/9.png +0 -0
  252. package/test/references/02_chessboard_simple/5.png +0 -0
  253. package/test/references/05_chessboard_move/8.png +0 -0
  254. package/test/references/11_chessboard_play_moves/wrong_color.png +0 -0
  255. package/test/references/14_movetext_error/4.png +0 -0
  256. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bb.png +0 -0
  257. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bk.png +0 -0
  258. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bn.png +0 -0
  259. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bp.png +0 -0
  260. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bq.png +0 -0
  261. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-br.png +0 -0
  262. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bx.png +0 -0
  263. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wb.png +0 -0
  264. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wk.png +0 -0
  265. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wn.png +0 -0
  266. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wp.png +0 -0
  267. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wq.png +0 -0
  268. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wr.png +0 -0
  269. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wx.png +0 -0
  270. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bb.png +0 -0
  271. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bk.png +0 -0
  272. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bn.png +0 -0
  273. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bp.png +0 -0
  274. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bq.png +0 -0
  275. /package/dist/lib/{sprites → chessboard/sprites}/celtic-br.png +0 -0
  276. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bx.png +0 -0
  277. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wb.png +0 -0
  278. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wk.png +0 -0
  279. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wn.png +0 -0
  280. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wp.png +0 -0
  281. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wq.png +0 -0
  282. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wr.png +0 -0
  283. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wx.png +0 -0
  284. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bb.png +0 -0
  285. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bk.png +0 -0
  286. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bn.png +0 -0
  287. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bp.png +0 -0
  288. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bq.png +0 -0
  289. /package/dist/lib/{sprites → chessboard/sprites}/eyes-br.png +0 -0
  290. /package/dist/lib/{sprites → chessboard/sprites}/eyes-spatial-bx.png +0 -0
  291. /package/dist/lib/{sprites → chessboard/sprites}/eyes-spatial-wx.png +0 -0
  292. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wb.png +0 -0
  293. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wk.png +0 -0
  294. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wn.png +0 -0
  295. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wp.png +0 -0
  296. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wq.png +0 -0
  297. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wr.png +0 -0
  298. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bb.png +0 -0
  299. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bk.png +0 -0
  300. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bn.png +0 -0
  301. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bp.png +0 -0
  302. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bq.png +0 -0
  303. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-br.png +0 -0
  304. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bx.png +0 -0
  305. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wb.png +0 -0
  306. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wk.png +0 -0
  307. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wn.png +0 -0
  308. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wp.png +0 -0
  309. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wq.png +0 -0
  310. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wr.png +0 -0
  311. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wx.png +0 -0
  312. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bb.png +0 -0
  313. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bk.png +0 -0
  314. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bn.png +0 -0
  315. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bp.png +0 -0
  316. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bq.png +0 -0
  317. /package/dist/lib/{sprites → chessboard/sprites}/skulls-br.png +0 -0
  318. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bx.png +0 -0
  319. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wb.png +0 -0
  320. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wk.png +0 -0
  321. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wn.png +0 -0
  322. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wp.png +0 -0
  323. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wq.png +0 -0
  324. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wr.png +0 -0
  325. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wx.png +0 -0
  326. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bb.png +0 -0
  327. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bk.png +0 -0
  328. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bn.png +0 -0
  329. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bp.png +0 -0
  330. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bq.png +0 -0
  331. /package/dist/lib/{sprites → chessboard/sprites}/spatial-br.png +0 -0
  332. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wb.png +0 -0
  333. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wk.png +0 -0
  334. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wn.png +0 -0
  335. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wp.png +0 -0
  336. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wq.png +0 -0
  337. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wr.png +0 -0
  338. /package/dist/lib/{fonts → movetext/fonts}/chessalpha.woff +0 -0
  339. /package/dist/lib/{fonts → movetext/fonts}/chessalpha.woff2 +0 -0
  340. /package/src/{sprites → chessboard/sprites}/cburnett-bb.png +0 -0
  341. /package/src/{sprites → chessboard/sprites}/cburnett-bk.png +0 -0
  342. /package/src/{sprites → chessboard/sprites}/cburnett-bn.png +0 -0
  343. /package/src/{sprites → chessboard/sprites}/cburnett-bp.png +0 -0
  344. /package/src/{sprites → chessboard/sprites}/cburnett-bq.png +0 -0
  345. /package/src/{sprites → chessboard/sprites}/cburnett-br.png +0 -0
  346. /package/src/{sprites → chessboard/sprites}/cburnett-bx.png +0 -0
  347. /package/src/{sprites → chessboard/sprites}/cburnett-wb.png +0 -0
  348. /package/src/{sprites → chessboard/sprites}/cburnett-wk.png +0 -0
  349. /package/src/{sprites → chessboard/sprites}/cburnett-wn.png +0 -0
  350. /package/src/{sprites → chessboard/sprites}/cburnett-wp.png +0 -0
  351. /package/src/{sprites → chessboard/sprites}/cburnett-wq.png +0 -0
  352. /package/src/{sprites → chessboard/sprites}/cburnett-wr.png +0 -0
  353. /package/src/{sprites → chessboard/sprites}/cburnett-wx.png +0 -0
  354. /package/src/{sprites → chessboard/sprites}/celtic-bb.png +0 -0
  355. /package/src/{sprites → chessboard/sprites}/celtic-bk.png +0 -0
  356. /package/src/{sprites → chessboard/sprites}/celtic-bn.png +0 -0
  357. /package/src/{sprites → chessboard/sprites}/celtic-bp.png +0 -0
  358. /package/src/{sprites → chessboard/sprites}/celtic-bq.png +0 -0
  359. /package/src/{sprites → chessboard/sprites}/celtic-br.png +0 -0
  360. /package/src/{sprites → chessboard/sprites}/celtic-bx.png +0 -0
  361. /package/src/{sprites → chessboard/sprites}/celtic-wb.png +0 -0
  362. /package/src/{sprites → chessboard/sprites}/celtic-wk.png +0 -0
  363. /package/src/{sprites → chessboard/sprites}/celtic-wn.png +0 -0
  364. /package/src/{sprites → chessboard/sprites}/celtic-wp.png +0 -0
  365. /package/src/{sprites → chessboard/sprites}/celtic-wq.png +0 -0
  366. /package/src/{sprites → chessboard/sprites}/celtic-wr.png +0 -0
  367. /package/src/{sprites → chessboard/sprites}/celtic-wx.png +0 -0
  368. /package/src/{sprites → chessboard/sprites}/eyes-bb.png +0 -0
  369. /package/src/{sprites → chessboard/sprites}/eyes-bk.png +0 -0
  370. /package/src/{sprites → chessboard/sprites}/eyes-bn.png +0 -0
  371. /package/src/{sprites → chessboard/sprites}/eyes-bp.png +0 -0
  372. /package/src/{sprites → chessboard/sprites}/eyes-bq.png +0 -0
  373. /package/src/{sprites → chessboard/sprites}/eyes-br.png +0 -0
  374. /package/src/{sprites → chessboard/sprites}/eyes-spatial-bx.png +0 -0
  375. /package/src/{sprites → chessboard/sprites}/eyes-spatial-wx.png +0 -0
  376. /package/src/{sprites → chessboard/sprites}/eyes-wb.png +0 -0
  377. /package/src/{sprites → chessboard/sprites}/eyes-wk.png +0 -0
  378. /package/src/{sprites → chessboard/sprites}/eyes-wn.png +0 -0
  379. /package/src/{sprites → chessboard/sprites}/eyes-wp.png +0 -0
  380. /package/src/{sprites → chessboard/sprites}/eyes-wq.png +0 -0
  381. /package/src/{sprites → chessboard/sprites}/eyes-wr.png +0 -0
  382. /package/src/{sprites → chessboard/sprites}/fantasy-bb.png +0 -0
  383. /package/src/{sprites → chessboard/sprites}/fantasy-bk.png +0 -0
  384. /package/src/{sprites → chessboard/sprites}/fantasy-bn.png +0 -0
  385. /package/src/{sprites → chessboard/sprites}/fantasy-bp.png +0 -0
  386. /package/src/{sprites → chessboard/sprites}/fantasy-bq.png +0 -0
  387. /package/src/{sprites → chessboard/sprites}/fantasy-br.png +0 -0
  388. /package/src/{sprites → chessboard/sprites}/fantasy-bx.png +0 -0
  389. /package/src/{sprites → chessboard/sprites}/fantasy-wb.png +0 -0
  390. /package/src/{sprites → chessboard/sprites}/fantasy-wk.png +0 -0
  391. /package/src/{sprites → chessboard/sprites}/fantasy-wn.png +0 -0
  392. /package/src/{sprites → chessboard/sprites}/fantasy-wp.png +0 -0
  393. /package/src/{sprites → chessboard/sprites}/fantasy-wq.png +0 -0
  394. /package/src/{sprites → chessboard/sprites}/fantasy-wr.png +0 -0
  395. /package/src/{sprites → chessboard/sprites}/fantasy-wx.png +0 -0
  396. /package/src/{sprites → chessboard/sprites}/skulls-bb.png +0 -0
  397. /package/src/{sprites → chessboard/sprites}/skulls-bk.png +0 -0
  398. /package/src/{sprites → chessboard/sprites}/skulls-bn.png +0 -0
  399. /package/src/{sprites → chessboard/sprites}/skulls-bp.png +0 -0
  400. /package/src/{sprites → chessboard/sprites}/skulls-bq.png +0 -0
  401. /package/src/{sprites → chessboard/sprites}/skulls-br.png +0 -0
  402. /package/src/{sprites → chessboard/sprites}/skulls-bx.png +0 -0
  403. /package/src/{sprites → chessboard/sprites}/skulls-wb.png +0 -0
  404. /package/src/{sprites → chessboard/sprites}/skulls-wk.png +0 -0
  405. /package/src/{sprites → chessboard/sprites}/skulls-wn.png +0 -0
  406. /package/src/{sprites → chessboard/sprites}/skulls-wp.png +0 -0
  407. /package/src/{sprites → chessboard/sprites}/skulls-wq.png +0 -0
  408. /package/src/{sprites → chessboard/sprites}/skulls-wr.png +0 -0
  409. /package/src/{sprites → chessboard/sprites}/skulls-wx.png +0 -0
  410. /package/src/{sprites → chessboard/sprites}/spatial-bb.png +0 -0
  411. /package/src/{sprites → chessboard/sprites}/spatial-bk.png +0 -0
  412. /package/src/{sprites → chessboard/sprites}/spatial-bn.png +0 -0
  413. /package/src/{sprites → chessboard/sprites}/spatial-bp.png +0 -0
  414. /package/src/{sprites → chessboard/sprites}/spatial-bq.png +0 -0
  415. /package/src/{sprites → chessboard/sprites}/spatial-br.png +0 -0
  416. /package/src/{sprites → chessboard/sprites}/spatial-wb.png +0 -0
  417. /package/src/{sprites → chessboard/sprites}/spatial-wk.png +0 -0
  418. /package/src/{sprites → chessboard/sprites}/spatial-wn.png +0 -0
  419. /package/src/{sprites → chessboard/sprites}/spatial-wp.png +0 -0
  420. /package/src/{sprites → chessboard/sprites}/spatial-wq.png +0 -0
  421. /package/src/{sprites → chessboard/sprites}/spatial-wr.png +0 -0
  422. /package/src/{fonts → movetext/fonts}/chessalpha.woff +0 -0
  423. /package/src/{fonts → movetext/fonts}/chessalpha.woff2 +0 -0
  424. /package/test/{references/01_marker_icons/1.png → graphic_references/04_marker_icons_graphic/base/colorized_square.png} +0 -0
  425. /package/test/{references/01_marker_icons/0.png → graphic_references/04_marker_icons_graphic/base/default_square.png} +0 -0
  426. /package/test/{references/01_marker_icons/2.png → graphic_references/04_marker_icons_graphic/base/wrapped_square.png} +0 -0
  427. /package/test/{references/04_chessboard_annotations/4.png → graphic_references/05_chessboard_graphic/annotations/overlap.png} +0 -0
  428. /package/test/{references/04_chessboard_annotations/5.png → graphic_references/05_chessboard_graphic/annotations/overlap_and_flip.png} +0 -0
  429. /package/test/{references/04_chessboard_annotations/0.png → graphic_references/05_chessboard_graphic/annotations/with_coordinates.png} +0 -0
  430. /package/test/{references/04_chessboard_annotations/1.png → graphic_references/05_chessboard_graphic/annotations/with_coordinates_and_flip.png} +0 -0
  431. /package/test/{references/04_chessboard_annotations/2.png → graphic_references/05_chessboard_graphic/annotations/without_coordinates.png} +0 -0
  432. /package/test/{references/04_chessboard_annotations/3.png → graphic_references/05_chessboard_graphic/annotations/without_coordinates_and_flip.png} +0 -0
  433. /package/test/{references/02_chessboard_simple/0.png → graphic_references/05_chessboard_graphic/base/default.png} +0 -0
  434. /package/test/{references/02_chessboard_simple/1.png → graphic_references/05_chessboard_graphic/base/empty.png} +0 -0
  435. /package/test/{references/02_chessboard_simple/3.png → graphic_references/05_chessboard_graphic/base/from_fen.png} +0 -0
  436. /package/test/{references/02_chessboard_simple/4.png → graphic_references/05_chessboard_graphic/base/from_kokopu_object.png} +0 -0
  437. /package/test/{references/02_chessboard_simple/2.png → graphic_references/05_chessboard_graphic/base/parsing_error.png} +0 -0
  438. /package/test/{references/03_chessboard_flipped/2.png → graphic_references/05_chessboard_graphic/chess_variants/variant_without_std_initial_position.png} +0 -0
  439. /package/test/{references/03_chessboard_flipped/0.png → graphic_references/05_chessboard_graphic/flipped/default.png} +0 -0
  440. /package/test/{references/03_chessboard_flipped/1.png → graphic_references/05_chessboard_graphic/flipped/empty.png} +0 -0
  441. /package/test/{references/03_chessboard_flipped/3.png → graphic_references/05_chessboard_graphic/flipped/from_fen.png} +0 -0
  442. /package/test/{references/03_chessboard_flipped/4.png → graphic_references/05_chessboard_graphic/flipped/from_kokopu_object.png} +0 -0
  443. /package/test/{references/05_chessboard_move/4.png → graphic_references/05_chessboard_graphic/move/capture.png} +0 -0
  444. /package/test/{references/05_chessboard_move/5.png → graphic_references/05_chessboard_graphic/move/castling_move.png} +0 -0
  445. /package/test/{references/05_chessboard_move/0.png → graphic_references/05_chessboard_graphic/move/default.png} +0 -0
  446. /package/test/{references/05_chessboard_move/6.png → graphic_references/05_chessboard_graphic/move/en-passant.png} +0 -0
  447. /package/test/{references/05_chessboard_move/1.png → graphic_references/05_chessboard_graphic/move/no_move_arrow.png} +0 -0
  448. /package/test/{references/05_chessboard_move/2.png → graphic_references/05_chessboard_graphic/move/parsing_error.png} +0 -0
  449. /package/test/{references/05_chessboard_move/7.png → graphic_references/05_chessboard_graphic/move/promotion.png} +0 -0
  450. /package/test/{references/05_chessboard_move/3.png → graphic_references/05_chessboard_graphic/move/with_forced_move_arrow_and_flip.png} +0 -0
  451. /package/test/{references/07_chessboard_theme/3.png → graphic_references/05_chessboard_graphic/theme/custom_1.png} +0 -0
  452. /package/test/{references/07_chessboard_theme/4.png → graphic_references/05_chessboard_graphic/theme/custom_2.png} +0 -0
  453. /package/test/{references/07_chessboard_theme/5.png → graphic_references/05_chessboard_graphic/theme/custom_3.png} +0 -0
  454. /package/test/{references/07_chessboard_theme/6.png → graphic_references/05_chessboard_graphic/theme/custom_4.png} +0 -0
  455. /package/test/{references/07_chessboard_theme/7.png → graphic_references/05_chessboard_graphic/theme/custom_5.png} +0 -0
  456. /package/test/{references/07_chessboard_theme/8.png → graphic_references/05_chessboard_graphic/theme/custom_6.png} +0 -0
  457. /package/test/{references/07_chessboard_theme/0.png → graphic_references/05_chessboard_graphic/theme/default.png} +0 -0
  458. /package/test/{references/07_chessboard_theme/1.png → graphic_references/05_chessboard_graphic/theme/large.png} +0 -0
  459. /package/test/{references/07_chessboard_theme/2.png → graphic_references/05_chessboard_graphic/theme/small.png} +0 -0
  460. /package/test/{references/06a_chessboard_animated_move/2.png → graphic_references/06_chessboard_animation/base_1/capture.png} +0 -0
  461. /package/test/{references/06a_chessboard_animated_move/3.png → graphic_references/06_chessboard_animation/base_1/castling_move.png} +0 -0
  462. /package/test/{references/06a_chessboard_animated_move/4.png → graphic_references/06_chessboard_animation/base_1/en-passant.png} +0 -0
  463. /package/test/{references/06a_chessboard_animated_move/0.png → graphic_references/06_chessboard_animation/base_1/move_1.png} +0 -0
  464. /package/test/{references/06a_chessboard_animated_move/1.png → graphic_references/06_chessboard_animation/base_1/move_2.png} +0 -0
  465. /package/test/{references/06a_chessboard_animated_move/5.png → graphic_references/06_chessboard_animation/base_1/promotion.png} +0 -0
  466. /package/test/{references/06b_chessboard_animated_move/2.png → graphic_references/06_chessboard_animation/base_2/capture.png} +0 -0
  467. /package/test/{references/06b_chessboard_animated_move/3.png → graphic_references/06_chessboard_animation/base_2/castling_move.png} +0 -0
  468. /package/test/{references/06b_chessboard_animated_move/4.png → graphic_references/06_chessboard_animation/base_2/en-passant.png} +0 -0
  469. /package/test/{references/06b_chessboard_animated_move/0.png → graphic_references/06_chessboard_animation/base_2/move_1.png} +0 -0
  470. /package/test/{references/06b_chessboard_animated_move/1.png → graphic_references/06_chessboard_animation/base_2/move_2.png} +0 -0
  471. /package/test/{references/06b_chessboard_animated_move/5.png → graphic_references/06_chessboard_animation/base_2/promotion.png} +0 -0
  472. /package/test/{references/06c_chessboard_animated_move/2.png → graphic_references/06_chessboard_animation/base_3/capture.png} +0 -0
  473. /package/test/{references/06c_chessboard_animated_move/3.png → graphic_references/06_chessboard_animation/base_3/castling_move.png} +0 -0
  474. /package/test/{references/06c_chessboard_animated_move/4.png → graphic_references/06_chessboard_animation/base_3/en-passant.png} +0 -0
  475. /package/test/{references/06c_chessboard_animated_move/0.png → graphic_references/06_chessboard_animation/base_3/move_1.png} +0 -0
  476. /package/test/{references/06c_chessboard_animated_move/1.png → graphic_references/06_chessboard_animation/base_3/move_2.png} +0 -0
  477. /package/test/{references/06c_chessboard_animated_move/5.png → graphic_references/06_chessboard_animation/base_3/promotion.png} +0 -0
  478. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/base_1.png +0 -0
  479. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/base_2.png +0 -0
  480. /package/test/{references/10_chessboard_edit_arrows/null_vector.png → graphic_references/07_chessboard_interaction/edit_arrows/from_==_to.png} +0 -0
  481. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/out_of_board.png +0 -0
  482. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/over_arrow_marker.png +0 -0
  483. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/over_square_marker.png +0 -0
  484. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/after_move.png +0 -0
  485. /package/test/{references/09_chessboard_move_pieces/null_vector.png → graphic_references/07_chessboard_interaction/move_pieces/from_==_to.png} +0 -0
  486. /package/test/{references/09_chessboard_move_pieces/empty_square.png → graphic_references/07_chessboard_interaction/move_pieces/move_empty_square.png} +0 -0
  487. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/out_of_board.png +0 -0
  488. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/over_arrow_marker.png +0 -0
  489. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/over_empty.png +0 -0
  490. /package/test/{references/09_chessboard_move_pieces/over_non_empty_1.png → graphic_references/07_chessboard_interaction/move_pieces/over_non-empty_1.png} +0 -0
  491. /package/test/{references/09_chessboard_move_pieces/over_non_empty_2.png → graphic_references/07_chessboard_interaction/move_pieces/over_non-empty_2.png} +0 -0
  492. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/over_square_marker.png +0 -0
  493. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/over_text_marker.png +0 -0
  494. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/castling_move.png +0 -0
  495. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/chess960_ambiguous_king_move.png +0 -0
  496. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/chess960_castling_move_1.png +0 -0
  497. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/chess960_castling_move_2.png +0 -0
  498. /package/test/{references/11_chessboard_play_moves/chess960_non_kxr_castling.png → graphic_references/08_chessboard_play_moves/base/chess960_non-kxr_castling.png} +0 -0
  499. /package/test/{references/11_chessboard_play_moves/null_vector.png → graphic_references/08_chessboard_play_moves/base/from_==_to.png} +0 -0
  500. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/illegal_move.png +0 -0
  501. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/illegal_position.png +0 -0
  502. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/out_of_board.png +0 -0
  503. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/regular_move_1.png +0 -0
  504. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/regular_move_2.png +0 -0
  505. /package/test/{references/10_chessboard_edit_arrows/edit_color_not_set.png → graphic_references/08_chessboard_play_moves/base/wrong_color_moved.png} +0 -0
  506. /package/test/{references/12_chessboard_play_promotions → graphic_references/08_chessboard_play_moves/promotions}/antichess_promotion.png +0 -0
  507. /package/test/{references/12_chessboard_play_promotions → graphic_references/08_chessboard_play_moves/promotions}/cancel_promotion.png +0 -0
  508. /package/test/{references/12_chessboard_play_promotions → graphic_references/08_chessboard_play_moves/promotions}/regular_promotion_1.png +0 -0
  509. /package/test/{references/12_chessboard_play_promotions → graphic_references/08_chessboard_play_moves/promotions}/regular_promotion_2.png +0 -0
  510. /package/test/{references/13_movetext_simple/0.png → graphic_references/09_movetext_graphic/base/game_1.png} +0 -0
  511. /package/test/{references/13_movetext_simple/1.png → graphic_references/09_movetext_graphic/base/game_2.png} +0 -0
  512. /package/test/{references/13_movetext_simple/2.png → graphic_references/09_movetext_graphic/base/game_3.png} +0 -0
  513. /package/test/{references/13_movetext_simple/3.png → graphic_references/09_movetext_graphic/base/game_4.png} +0 -0
  514. /package/test/{references/14_movetext_error/2.png → graphic_references/09_movetext_graphic/error/pgn_parsing_error_1.png} +0 -0
  515. /package/test/{references/14_movetext_error/3.png → graphic_references/09_movetext_graphic/error/pgn_parsing_error_2.png} +0 -0
  516. /package/test/{references/14_movetext_error/0.png → graphic_references/09_movetext_graphic/error/wrong_game_index_1.png} +0 -0
  517. /package/test/{references/14_movetext_error/1.png → graphic_references/09_movetext_graphic/error/wrong_game_index_2.png} +0 -0
  518. /package/test/{references/15_movetext_html/2.png → graphic_references/09_movetext_graphic/html/filtered_tags_and_attributes.png} +0 -0
  519. /package/test/{references/15_movetext_html/1.png → graphic_references/09_movetext_graphic/html/html_in_comments.png} +0 -0
  520. /package/test/{references/15_movetext_html/0.png → graphic_references/09_movetext_graphic/html/html_in_headers.png} +0 -0
  521. /package/test/{references/16_movetext_options/1.png → graphic_references/09_movetext_graphic/options/custom_piece_symbols.png} +0 -0
  522. /package/test/{references/16_movetext_options/2.png → graphic_references/09_movetext_graphic/options/figurine_piece_symbols_and_diagram_options.png} +0 -0
  523. /package/test/{references/16_movetext_options/3.png → graphic_references/09_movetext_graphic/options/hidden_diagrams.png} +0 -0
  524. /package/test/{references/16_movetext_options/0.png → graphic_references/09_movetext_graphic/options/localized_piece_symbols.png} +0 -0
  525. /package/test/{references/17_movetext_interaction/0.png → graphic_references/10_movetext_interaction/select_moves/click_on_disabled.png} +0 -0
  526. /package/test/{references/17_movetext_interaction/1.png → graphic_references/10_movetext_interaction/select_moves/click_on_unselected.png} +0 -0
  527. /package/test/{references/17_movetext_interaction/2.png → graphic_references/10_movetext_interaction/select_moves/click_on_with_variations.png} +0 -0
  528. /package/{graphic_test_src → test/graphic_test_app}/common/dummy.pgn +0 -0
  529. /package/{graphic_test_src → test/graphic_test_app}/common/heartbeat.txt +0 -0
  530. /package/{graphic_test_src → test/graphic_test_app}/common/smiley.png +0 -0
@@ -1,4 +1,4 @@
1
- /******************************************************************************
1
+ /* -------------------------------------------------------------------------- *
2
2
  * *
3
3
  * This file is part of Kokopu-React, a JavaScript chess library. *
4
4
  * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
@@ -17,13 +17,13 @@
17
17
  * Public License along with this program. If not, see *
18
18
  * <http://www.gnu.org/licenses/>. *
19
19
  * *
20
- ******************************************************************************/
20
+ * -------------------------------------------------------------------------- */
21
21
 
22
22
 
23
- import React from 'react';
24
- import { pgnRead } from 'kokopu';
23
+ import * as React from 'react';
24
+ import { pgnRead, Node as GameNode } from 'kokopu';
25
25
 
26
- import { Chessboard, Movetext } from '../../src/index';
26
+ import { Chessboard, Movetext, MovetextProps, MoveSelectEventOrigin } from '../../src/index';
27
27
  import { buildComponentDemoCode } from './util';
28
28
 
29
29
  import Box from '@mui/material/Box';
@@ -41,9 +41,18 @@ import game1 from './game-1.pgn';
41
41
  import game2 from './game-2.pgn';
42
42
 
43
43
 
44
- export default class Page extends React.Component {
44
+ interface PageState {
45
+ pgn: string;
46
+ selection: string;
47
+ interactionMode: 'none' | 'selectMove';
48
+ withPopup: boolean;
49
+ withMove: boolean;
50
+ }
51
+
45
52
 
46
- constructor(props) {
53
+ export default class Page extends React.Component<object, PageState> {
54
+
55
+ constructor(props: object) {
47
56
  super(props);
48
57
  this.state = {
49
58
  pgn: game1,
@@ -65,25 +74,25 @@ export default class Page extends React.Component {
65
74
  );
66
75
  }
67
76
 
68
- renderControls() {
77
+ private renderControls() {
69
78
  return (<>
70
79
  <Stack direction="row" spacing={2} alignItems="center">
71
80
  <ButtonGroup color="primary" size="small">
72
- <Button onClick={() => this.set('pgn', game1, 'selection', '28b')}>Game 1</Button>
73
- <Button onClick={() => this.set('pgn', game2, 'selection', '15b')}>Game 2</Button>
81
+ <Button onClick={() => this.setState({ pgn: game1, selection: '28b' })}>Game 1</Button>
82
+ <Button onClick={() => this.setState({ pgn: game2, selection: '15b' })}>Game 2</Button>
74
83
  </ButtonGroup>
75
84
  </Stack>
76
85
  <Box>
77
86
  <Typography gutterBottom>Interaction mode</Typography>
78
- <RadioGroup value={this.state.interactionMode} onChange={evt => this.set('interactionMode', evt.target.value)}>
79
- <FormControlLabel value="" control={<Radio color="primary" />} label="None" />
87
+ <RadioGroup value={this.state.interactionMode} onChange={evt => this.setState({ interactionMode: evt.target.value as PageState['interactionMode'] })}>
88
+ <FormControlLabel value="none" control={<Radio color="primary" />} label="None" />
80
89
  <FormControlLabel value="selectMove" control={<Radio color="primary" />} label="Select moves" />
81
90
  </RadioGroup>
82
91
  </Box>
83
92
  </>);
84
93
  }
85
94
 
86
- renderMovetext() {
95
+ private renderMovetext() {
87
96
  return (
88
97
  <Box>
89
98
  <Movetext
@@ -91,20 +100,20 @@ export default class Page extends React.Component {
91
100
  selection={this.state.selection}
92
101
  pieceSymbols="figurines"
93
102
  diagramVisible={false}
94
- interactionMode={this.state.interactionMode}
103
+ interactionMode={this.getMovetextInterationMode()}
95
104
  onMoveSelected={(nodeId, evtOrigin) => this.handleMoveSelected(nodeId, evtOrigin)}
96
105
  />
97
106
  </Box>
98
107
  );
99
108
  }
100
109
 
101
- renderCode() {
102
- let attributes = [];
110
+ private renderCode() {
111
+ const attributes: string[] = [];
103
112
  attributes.push('game={pgn}');
104
113
  attributes.push('pieceSymbols="figurines"');
105
114
  attributes.push('diagramVisible={false}');
106
115
  attributes.push(`selection="${this.state.selection}"`);
107
- switch(this.state.interactionMode) {
116
+ switch (this.state.interactionMode) {
108
117
  case 'selectMove':
109
118
  attributes.push('interactionMode="selectMove"');
110
119
  attributes.push('onMoveSelected={nodeId => handleMoveSelected(nodeId)}');
@@ -112,48 +121,54 @@ export default class Page extends React.Component {
112
121
  default:
113
122
  break;
114
123
  }
115
- let pgnDeclaration = 'const pgn = `\n' + this.state.pgn.trim() + '`;\n\n';
124
+ const pgnDeclaration = 'const pgn = `\n' + this.state.pgn.trim() + '`;\n\n';
116
125
  return <pre className="kokopu-demoCode">{pgnDeclaration + buildComponentDemoCode('Movetext', attributes)}</pre>;
117
126
  }
118
127
 
119
- renderNavigationBoard() {
120
- let button = <Button size="small" onClick={() => this.handlePopupToggled()}>{this.state.withPopup ? 'Reduce' : 'Open'}</Button>;
121
- let { position, move, csl, cal } = this.getCurrentPositionAndAnnotations();
122
- let content = this.state.withPopup ? <Stack><Chessboard position={position} move={move} squareMarkers={csl} arrowMarkers={cal} animated={true} />{button}</Stack> : button;
128
+ private renderNavigationBoard() {
129
+ const button = <Button size="small" onClick={() => this.setState({ withPopup: !this.state.withPopup })}>{this.state.withPopup ? 'Reduce' : 'Open'}</Button>;
130
+ const { position, move, csl, cal } = this.getCurrentPositionAndAnnotations();
131
+ const content = this.state.withPopup ?
132
+ <Stack><Chessboard position={position} move={move} squareMarkers={csl} arrowMarkers={cal} animated={true} />{button}</Stack> :
133
+ button;
123
134
  return <Paper className="kokopu-fixedPopup" elevation={3}>{content}</Paper>;
124
135
  }
125
136
 
126
- handleMoveSelected(nodeId, evtOrigin) {
137
+ private handleMoveSelected(nodeId: string | undefined, evtOrigin: MoveSelectEventOrigin) {
127
138
  if (nodeId) {
128
- this.set('selection', nodeId, 'withMove', evtOrigin === 'key-next');
139
+ this.setState({ selection: nodeId, withMove: evtOrigin === 'key-next' });
129
140
  }
130
141
  }
131
142
 
132
- handlePopupToggled() {
133
- this.set('withPopup', !this.state.withPopup);
134
- }
135
-
136
- set(attributeName, newValue, attributeName2, newValue2) {
137
- let newState = {};
138
- newState[attributeName] = newValue;
139
- if (attributeName2) {
140
- newState[attributeName2] = newValue2;
143
+ private getMovetextInterationMode(): MovetextProps['interactionMode'] {
144
+ switch (this.state.interactionMode) {
145
+ case 'selectMove':
146
+ return this.state.interactionMode;
147
+ default:
148
+ return undefined;
141
149
  }
142
- this.setState(newState);
143
150
  }
144
151
 
145
- getCurrentPositionAndAnnotations() {
146
- let game = pgnRead(this.state.pgn, 0);
152
+ private getCurrentPositionAndAnnotations() {
153
+ const game = pgnRead(this.state.pgn, 0);
147
154
  if (this.state.selection === 'start') {
148
- let mainVariation = game.mainVariation();
149
- return { position: mainVariation.initialPosition(), csl: mainVariation.tag('csl'), cal: mainVariation.tag('cal') };
155
+ const mainVariation = game.mainVariation();
156
+ return {
157
+ position: mainVariation.initialPosition(),
158
+ move: undefined,
159
+ csl: mainVariation.tag('csl'),
160
+ cal: mainVariation.tag('cal'),
161
+ };
150
162
  }
151
163
  else {
152
- let node = game.findById(this.state.selection);
153
- let result = this.state.withMove ? { position: node.positionBefore(), move: node.notation() } : { position: node.position() };
154
- result.csl = node.tag('csl');
155
- result.cal = node.tag('cal');
156
- return result;
164
+ const node = game.findById(this.state.selection) as GameNode;
165
+ return {
166
+ position: this.state.withMove ? node.positionBefore() : node.position(),
167
+ move: this.state.withMove ? node.notation() : undefined,
168
+ csl: node.tag('csl'),
169
+ cal: node.tag('cal'),
170
+ };
157
171
  }
158
172
  }
173
+
159
174
  }
@@ -0,0 +1,31 @@
1
+ /* -------------------------------------------------------------------------- *
2
+ * *
3
+ * This file is part of Kokopu-React, a JavaScript chess library. *
4
+ * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
5
+ * *
6
+ * This program is free software: you can redistribute it and/or *
7
+ * modify it under the terms of the GNU Lesser General Public License *
8
+ * as published by the Free Software Foundation, either version 3 of *
9
+ * the License, or (at your option) any later version. *
10
+ * *
11
+ * This program is distributed in the hope that it will be useful, *
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14
+ * GNU Lesser General Public License for more details. *
15
+ * *
16
+ * You should have received a copy of the GNU Lesser General *
17
+ * Public License along with this program. If not, see *
18
+ * <http://www.gnu.org/licenses/>. *
19
+ * *
20
+ * -------------------------------------------------------------------------- */
21
+
22
+
23
+ declare module '*.pgn' {
24
+ const pgnText: string;
25
+ export default pgnText;
26
+ }
27
+
28
+ declare module '*.png' {
29
+ const path: string;
30
+ export default path;
31
+ }
@@ -1,4 +1,4 @@
1
- /******************************************************************************
1
+ /* -------------------------------------------------------------------------- *
2
2
  * *
3
3
  * This file is part of Kokopu-React, a JavaScript chess library. *
4
4
  * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
@@ -17,7 +17,7 @@
17
17
  * Public License along with this program. If not, see *
18
18
  * <http://www.gnu.org/licenses/>. *
19
19
  * *
20
- ******************************************************************************/
20
+ * -------------------------------------------------------------------------- */
21
21
 
22
22
 
23
23
  .kokopu-demoCode {
@@ -1,4 +1,4 @@
1
- /******************************************************************************
1
+ /* -------------------------------------------------------------------------- *
2
2
  * *
3
3
  * This file is part of Kokopu-React, a JavaScript chess library. *
4
4
  * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
@@ -17,9 +17,9 @@
17
17
  * Public License along with this program. If not, see *
18
18
  * <http://www.gnu.org/licenses/>. *
19
19
  * *
20
- ******************************************************************************/
20
+ * -------------------------------------------------------------------------- */
21
21
 
22
22
 
23
- export function buildComponentDemoCode(componentName, attributes) {
23
+ export function buildComponentDemoCode(componentName: string, attributes: string[]) {
24
24
  return attributes.length === 0 ? `<${componentName} />` : `<${componentName} ${attributes.join(' ')} />`;
25
25
  }
@@ -0,0 +1,26 @@
1
+ Kokopu-React version 2.0.0 introduces some breaking changes with regard to the previous versions.
2
+ Those changes may require some fixes or adjustments in your codebase when upgrading Kokopu-React
3
+ from 1.x to 2.0.0 (or any subsequent version).
4
+
5
+
6
+
7
+ PropTypes
8
+ ---------
9
+
10
+ As of 2.0.0, `Chessboard.propTypes`, `Movetext.propTypes`, etc... are no longer available, as component parameter type validation
11
+ is ensured through TypeScript. If your codebase includes references to the `propTypes` property of any Kokopu-React component,
12
+ you must remove those references.
13
+
14
+
15
+
16
+ SquareSize parameters
17
+ ---------------------
18
+
19
+ Before 2.0.0, it was possible to define the square size of the `Chessboard` components through a string, i.e. for instance to write
20
+ things such as `<Chessboard squareSize="32" />`. As of 2.0.0, a strict type-checking policy is enforced to avoid unexpected type
21
+ conversions leading to hard-to-debug behaviors. As a consequence, the value passed to the square size parameter must be a number,
22
+ i.e. for instance:
23
+
24
+ ```plain
25
+ <Chessboard squareSize={32} />
26
+ ```
@@ -1,4 +1,4 @@
1
- /******************************************************************************
1
+ /* -------------------------------------------------------------------------- *
2
2
  * *
3
3
  * This file is part of Kokopu-React, a JavaScript chess library. *
4
4
  * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
@@ -17,17 +17,17 @@
17
17
  * Public License along with this program. If not, see *
18
18
  * <http://www.gnu.org/licenses/>. *
19
19
  * *
20
- ******************************************************************************/
20
+ * -------------------------------------------------------------------------- */
21
21
 
22
22
 
23
23
  import React from 'react';
24
24
  import Styled from 'react-styleguidist/lib/client/rsg-components/Styled';
25
25
 
26
- import logo from './kokopu-react-logo.png';
27
-
28
26
  import './theming.css';
29
27
 
30
28
 
29
+ /* eslint-disable react/prop-types */
30
+
31
31
  const styles = ({ color, fontFamily, fontSize }) => ({
32
32
  logo: {
33
33
  color: color.base,
@@ -41,7 +41,7 @@ const styles = ({ color, fontFamily, fontSize }) => ({
41
41
  function LogoRenderer({ classes, children }) {
42
42
  return (<>
43
43
  <div className="kokopu-logo">
44
- <img src={logo} />
44
+ <img src="kokopu-react-logo.png" />
45
45
  </div>
46
46
  <h1 className={classes.logo}>{children}</h1>
47
47
  </>);
@@ -1,4 +1,4 @@
1
- /******************************************************************************
1
+ /* -------------------------------------------------------------------------- *
2
2
  * *
3
3
  * This file is part of Kokopu-React, a JavaScript chess library. *
4
4
  * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
@@ -17,7 +17,7 @@
17
17
  * Public License along with this program. If not, see *
18
18
  * <http://www.gnu.org/licenses/>. *
19
19
  * *
20
- ******************************************************************************/
20
+ * -------------------------------------------------------------------------- */
21
21
 
22
22
 
23
23
  .kokopu-logo {
@@ -27,3 +27,9 @@
27
27
  footer {
28
28
  display: none !important;
29
29
  }
30
+
31
+ #changelog h2 {
32
+ font-size: inherit;
33
+ font-weight: bold;
34
+ margin-top: 24px;
35
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kokopu-react",
3
- "version": "1.11.1",
3
+ "version": "2.0.1",
4
4
  "description": "A React-based library to create and display chessboard and chess-related components.",
5
5
  "keywords": [
6
6
  "chess",
@@ -18,65 +18,78 @@
18
18
  "files": [
19
19
  "dist/lib",
20
20
  "doc_src",
21
- "graphic_test_src",
22
- "scripts/clean-graphic-output.js",
21
+ "scripts/doc.styleguide.config.js",
22
+ "scripts/doc.tsconfig.json",
23
23
  "scripts/docker-compose.yml",
24
+ "scripts/test-graphic.tsconfig.json",
24
25
  "scripts/test-graphic.webpack.config.js",
25
26
  "scripts/test-headless.webpack.config.js",
26
27
  "src",
27
28
  "test",
28
- ".babelrc",
29
- ".eslint.yml",
30
- ".nycrc.yml"
29
+ ".eslintrc.yml",
30
+ ".nycrc.yml",
31
+ "CHANGELOG.md",
32
+ "CREDITS.md",
33
+ "LICENSE",
34
+ "README.md",
35
+ "tsconfig.json"
31
36
  ],
32
37
  "peerDependencies": {
33
- "kokopu": "^4.0.1",
38
+ "kokopu": "^4.3.0",
34
39
  "react": "17.x.x || 18.x.x"
35
40
  },
36
41
  "dependencies": {
37
- "htmlparser2": "^8.0.1",
38
- "prop-types": "^15.8.1"
42
+ "htmlparser2": "^9.0.0"
39
43
  },
40
44
  "devDependencies": {
41
- "@babel/cli": "^7.20.7",
42
- "@babel/core": "^7.20.12",
43
- "@babel/preset-env": "^7.20.2",
45
+ "@babel/preset-env": "^7.21.5",
44
46
  "@babel/preset-react": "^7.18.6",
45
- "@emotion/react": "^11.10.5",
46
- "@emotion/styled": "^11.10.5",
47
- "@mui/material": "^5.11.7",
47
+ "@emotion/react": "^11.11.0",
48
+ "@emotion/styled": "^11.11.0",
49
+ "@mui/material": "^5.13.2",
50
+ "@types/react": "^18.2.7",
51
+ "@types/react-dom": "^18.2.4",
52
+ "@typescript-eslint/eslint-plugin": "^5.59.7",
53
+ "@typescript-eslint/parser": "^5.59.7",
48
54
  "babel-loader": "^9.1.2",
49
- "babel-plugin-istanbul": "^6.1.1",
50
55
  "copy-webpack-plugin": "^11.0.0",
51
- "css-loader": "^6.7.3",
52
- "eslint": "^8.33.0",
56
+ "copyfiles": "^2.4.1",
57
+ "coverage-istanbul-loader": "^3.0.5",
58
+ "css-loader": "^6.7.4",
59
+ "eslint": "^8.41.0",
53
60
  "eslint-plugin-react": "^7.32.2",
54
- "html-webpack-plugin": "^5.5.0",
61
+ "html-webpack-plugin": "^5.5.1",
55
62
  "img-diff-js": "^0.5.2",
56
- "kokopu": "^4.2.1",
63
+ "kokopu": "^4.7.0",
57
64
  "mocha": "^10.2.0",
58
65
  "null-loader": "^4.0.1",
59
66
  "nyc": "^15.1.0",
60
67
  "react": "^18.2.0",
68
+ "react-docgen-typescript": "^2.2.2",
61
69
  "react-dom": "^18.2.0",
62
- "react-styleguidist": "^13.0.0",
63
- "selenium-webdriver": "^4.8.0",
64
- "ssh2-sftp-client": "^9.0.4",
65
- "style-loader": "^3.3.1",
70
+ "react-styleguidist": "^13.1.1",
71
+ "rimraf": "^5.0.1",
72
+ "selenium-webdriver": "^4.9.2",
73
+ "ssh2-sftp-client": "^9.1.0",
74
+ "style-loader": "^3.3.3",
75
+ "ts-loader": "^9.4.3",
76
+ "typescript": "^5.0.4",
66
77
  "unit.js": "^2.1.1",
67
- "webpack": "^5.75.0",
68
- "webpack-cli": "^5.0.1"
78
+ "webpack": "^5.84.0",
79
+ "webpack-cli": "^5.1.1"
69
80
  },
70
81
  "scripts": {
71
- "lint": "eslint doc_src graphic_test_src src test",
72
- "preunit": "webpack --config scripts/test-headless.webpack.config.js && webpack --config scripts/test-graphic.webpack.config.js && node scripts/clean-graphic-output.js",
73
- "unit": "nyc mocha --bail --sort",
82
+ "lint": "eslint doc_src src test",
83
+ "preunit": "npm run build:lib && webpack --config scripts/test-headless.webpack.config.js && webpack --config scripts/test-graphic.webpack.config.js && rimraf build/graphic_output",
84
+ "unit": "nyc mocha --enable-source-maps --bail --sort",
74
85
  "test": "npm run lint && npm run unit",
75
86
  "test_env:start": "docker-compose -p kokopu-react-test-env -f scripts/docker-compose.yml up -d",
76
87
  "test_env:stop": "docker-compose -p kokopu-react-test-env -f scripts/docker-compose.yml down",
77
- "build": "make -f scripts/build.mk",
78
- "clean": "make -f scripts/build.mk clean",
79
- "start": "styleguidist server --open --config scripts/styleguide.config.js",
88
+ "build": "npm run build:lib && npm run build:doc",
89
+ "build:doc": "rimraf dist/docs && styleguidist build --config scripts/doc.styleguide.config.js && copyfiles -u 2 'doc_src/theming/*.png' dist/docs",
90
+ "build:lib": "rimraf dist/lib && tsc --outDir dist/lib && copyfiles -u 1 'src/**/*.{css,png,woff,woff2}' dist/lib",
91
+ "start": "styleguidist server --open --config scripts/doc.styleguide.config.js",
92
+ "clean": "rimraf build dist",
80
93
  "predeploy": "npm run test && npm run build",
81
94
  "deploy": "npm publish && node scripts/deploy.js"
82
95
  }
@@ -0,0 +1,192 @@
1
+ /* -------------------------------------------------------------------------- *
2
+ * *
3
+ * This file is part of Kokopu-React, a JavaScript chess library. *
4
+ * Copyright (C) 2021-2023 Yoann Le Montagner <yo35 -at- melix.net> *
5
+ * *
6
+ * This program is free software: you can redistribute it and/or *
7
+ * modify it under the terms of the GNU Lesser General Public License *
8
+ * as published by the Free Software Foundation, either version 3 of *
9
+ * the License, or (at your option) any later version. *
10
+ * *
11
+ * This program is distributed in the hope that it will be useful, *
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14
+ * GNU Lesser General Public License for more details. *
15
+ * *
16
+ * You should have received a copy of the GNU Lesser General *
17
+ * Public License along with this program. If not, see *
18
+ * <http://www.gnu.org/licenses/>. *
19
+ * *
20
+ * -------------------------------------------------------------------------- */
21
+
22
+
23
+ const fs = require('fs');
24
+ const path = require('path');
25
+ const version = require('../package.json').version;
26
+
27
+ const reactDocgenTypescript = require('react-docgen-typescript');
28
+
29
+ const docSrcDir = '../doc_src';
30
+ const srcDir = '../src';
31
+ const tmpDir = '../build/tmp_docs';
32
+
33
+ fs.mkdirSync(path.resolve(__dirname, tmpDir), { recursive: true });
34
+
35
+
36
+ // Component section configuration
37
+ // -------------------------------
38
+
39
+ const componentSectionTitle = 'Components';
40
+ const components = [ 'errorbox/ErrorBox', 'icons/SquareMarkerIcon', 'icons/TextMarkerIcon', 'icons/ArrowMarkerIcon', 'chessboard/Chessboard', 'movetext/Movetext' ];
41
+
42
+
43
+ // Demo section configuration
44
+ // --------------------------
45
+
46
+ const demoSectionTitle = 'Live demo';
47
+ const demoPages = [
48
+ { id: 'ChessboardBase', title: 'Chessboard - Basic features' },
49
+ { id: 'ChessboardInteraction', title: 'Chessboard - Interactions' },
50
+ { id: 'ChessboardMove', title: 'Chessboard - Display moves' },
51
+ { id: 'ChessboardSmallScreens', title: 'Chessboard - Small screens' },
52
+ { id: 'MovetextBase', title: 'Movetext - Basic features' },
53
+ { id: 'MovetextInteraction', title: 'Movetext - Interactions' },
54
+ ];
55
+
56
+
57
+ // Build the documentation
58
+ // -----------------------
59
+
60
+ // Generate the Markdown file corresponding to each demo page.
61
+ demoPages.forEach(demoPage => {
62
+ const filename = `${tmpDir}/${demoPage.id}.md`;
63
+ fs.writeFileSync(path.resolve(__dirname, filename),
64
+ '```js\n' +
65
+ `<Page${demoPage.id} />\n` +
66
+ '```\n'
67
+ );
68
+ demoPage.filename = filename;
69
+ });
70
+
71
+ // Generate the changelog page.
72
+ const changelog = fs.readFileSync(path.resolve(__dirname, '../CHANGELOG.md'), { encoding: 'utf8' }).split('\n').slice(2);
73
+ changelog.unshift('<div id="changelog">');
74
+ changelog.push('</div>');
75
+ fs.writeFileSync(path.resolve(__dirname, `${tmpDir}/changelog.md`), changelog.join('\n'));
76
+
77
+ // Generate the table of contents for each sections with sub-sections.
78
+ function generateTableOfContents(parentName, itemNames) {
79
+ const text = itemNames.map(itemName => {
80
+ itemName = path.basename(itemName);
81
+ const link = `#/${parentName}/${itemName}`.replace(/ /g, '%20');
82
+ return `- [${itemName}](${link})\n`;
83
+ }).join('');
84
+ const filename = `${tmpDir}/Header_${parentName.replace(/ /g, '_')}.md`;
85
+ fs.writeFileSync(path.resolve(__dirname, filename), text);
86
+ return filename;
87
+ }
88
+ const componentsTocFilename = generateTableOfContents(componentSectionTitle, components);
89
+ const demoTocFilename = generateTableOfContents(demoSectionTitle, demoPages.map(demoPage => demoPage.title));
90
+
91
+ // Define the symbols available for example blocks in documentation.
92
+ const componentContext = Object.fromEntries(components.map(componentName => [ path.basename(componentName), path.resolve(__dirname, `${srcDir}/${componentName}`) ]));
93
+ const demoContext = Object.fromEntries(demoPages.map(demoPage => [ 'Page' + demoPage.id, path.resolve(__dirname, `${docSrcDir}/demo/Page${demoPage.id}`) ]));
94
+
95
+
96
+ // Styleguidist config.
97
+ module.exports = {
98
+ styleguideDir: '../dist/docs',
99
+ webpackConfig: {
100
+ module: {
101
+ rules: [
102
+ {
103
+ test: /\.js$/i,
104
+ use: {
105
+ loader: 'babel-loader',
106
+ options: {
107
+ presets: [ '@babel/preset-env', '@babel/preset-react' ],
108
+ },
109
+ }
110
+ },
111
+ {
112
+ test: /\.tsx?$/i,
113
+ use: {
114
+ loader: 'ts-loader',
115
+ options: {
116
+ configFile: path.resolve(__dirname, 'doc.tsconfig.json'),
117
+ },
118
+ },
119
+ },
120
+ {
121
+ test: /\.css$/i,
122
+ use: [ 'style-loader', 'css-loader' ],
123
+ },
124
+ {
125
+ test: /\.(png|woff|woff2)$/i,
126
+ type: 'asset/resource',
127
+ },
128
+ {
129
+ test: /\.pgn$/i,
130
+ type: 'asset/source',
131
+ },
132
+ ],
133
+ },
134
+ resolve: {
135
+ extensions: [ '*.js', '*.ts', '*.tsx' ],
136
+ },
137
+ },
138
+ propsParser: (filePath, source, resolver, handlers) => reactDocgenTypescript.parse(filePath, source, resolver, handlers),
139
+ usageMode: 'expand',
140
+ exampleMode: 'expand',
141
+ context: Object.assign({}, componentContext, demoContext),
142
+ getComponentPathLine: componentPath => `import { ${path.basename(componentPath, '.tsx')} } from 'kokopu-react';`,
143
+ getExampleFilename: componentPath => path.resolve(__dirname, `${docSrcDir}/examples/${path.basename(componentPath, '.tsx')}.md`),
144
+ pagePerSection: true,
145
+ sections: [
146
+ {
147
+ name: 'Home',
148
+ content: `${docSrcDir}/home.md`,
149
+ },
150
+ {
151
+ name: componentSectionTitle,
152
+ content: componentsTocFilename,
153
+ components: components.map(componentName => `${srcDir}/${componentName}.tsx`),
154
+ sectionDepth: 1
155
+ },
156
+ {
157
+ name: demoSectionTitle,
158
+ content: demoTocFilename,
159
+ sectionDepth: 1,
160
+ sections: demoPages.map(demoPage => {
161
+ return {
162
+ name: demoPage.title,
163
+ content: demoPage.filename,
164
+ exampleMode: 'hide'
165
+ };
166
+ }),
167
+ },
168
+ {
169
+ name: 'Kokopu core library documentation',
170
+ href: 'https://kokopu.yo35.org/',
171
+ },
172
+ {
173
+ name: 'ChangeLog',
174
+ content: `${tmpDir}/changelog.md`,
175
+ },
176
+ {
177
+ name: 'Migrate to 2.x',
178
+ content: `${docSrcDir}/migrate_to_2.md`,
179
+ },
180
+ ],
181
+ styleguideComponents: {
182
+ LogoRenderer: path.resolve(__dirname, `${docSrcDir}/theming/LogoRenderer`),
183
+ },
184
+ template: {
185
+ favicon: 'kokopu-react-favicon.png',
186
+ },
187
+ theme: {
188
+ sidebarWidth: 300,
189
+ },
190
+ title: 'Kokopu-React documentation',
191
+ version: version,
192
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "../tsconfig.json",
3
+ "include": [ "../doc_src/demo/**/*" ],
4
+ "compilerOptions": {
5
+ "declaration": false
6
+ }
7
+ }