kokopu-react 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/.eslintrc.yml +1 -1
  2. package/CHANGELOG.md +10 -0
  3. package/dist/lib/chessboard/BoardProperties.js.map +1 -1
  4. package/dist/lib/chessboard/Chessboard.css +13 -13
  5. package/dist/lib/chessboard/Chessboard.d.ts +27 -2
  6. package/dist/lib/chessboard/Chessboard.js +36 -17
  7. package/dist/lib/chessboard/Chessboard.js.map +1 -1
  8. package/dist/lib/chessboard/ChessboardImpl.js.map +1 -1
  9. package/dist/lib/chessboard/Draggable.js.map +1 -1
  10. package/dist/lib/chessboard/Motion.js.map +1 -1
  11. package/dist/lib/chessboard/colorsets.js.map +1 -1
  12. package/dist/lib/chessboard/piecesets.js.map +1 -1
  13. package/dist/lib/errorbox/ErrorBox.css +18 -18
  14. package/dist/lib/errorbox/ErrorBox.js.map +1 -1
  15. package/dist/lib/errorbox/parsing.js.map +1 -1
  16. package/dist/lib/exception.js.map +1 -1
  17. package/dist/lib/i18n.d.ts +1 -0
  18. package/dist/lib/i18n.js +1 -0
  19. package/dist/lib/i18n.js.map +1 -1
  20. package/dist/lib/icons/AnnotationSymbolShape.css +6 -6
  21. package/dist/lib/icons/AnnotationSymbolShape.js.map +1 -1
  22. package/dist/lib/icons/ArrowMarkerIcon.js.map +1 -1
  23. package/dist/lib/icons/ArrowTip.js.map +1 -1
  24. package/dist/lib/icons/ChessPieceIcon.js.map +1 -1
  25. package/dist/lib/icons/SquareMarkerIcon.js.map +1 -1
  26. package/dist/lib/icons/TextMarkerIcon.js.map +1 -1
  27. package/dist/lib/icons/arrow.css +1 -1
  28. package/dist/lib/index.d.ts +1 -0
  29. package/dist/lib/index.js +1 -0
  30. package/dist/lib/index.js.map +1 -1
  31. package/dist/lib/movetext/Movetext.css +27 -27
  32. package/dist/lib/movetext/Movetext.js.map +1 -1
  33. package/dist/lib/movetext/MovetextImpl.js.map +1 -1
  34. package/dist/lib/movetext/fonts.css +7 -7
  35. package/dist/lib/movetext/htmlFilter.js.map +1 -1
  36. package/dist/lib/movetext/moveFormatter.js.map +1 -1
  37. package/dist/lib/navigationboard/NavigationBoard.d.ts +68 -1
  38. package/dist/lib/navigationboard/NavigationBoard.js +141 -13
  39. package/dist/lib/navigationboard/NavigationBoard.js.map +1 -1
  40. package/dist/lib/navigationboard/NavigationButton.d.ts +66 -0
  41. package/dist/lib/navigationboard/NavigationButton.js +67 -0
  42. package/dist/lib/navigationboard/NavigationButton.js.map +1 -0
  43. package/dist/lib/navigationboard/NavigationField.css +7 -7
  44. package/dist/lib/navigationboard/NavigationField.js.map +1 -1
  45. package/dist/lib/navigationboard/NavigationToolbar.css +16 -13
  46. package/dist/lib/navigationboard/NavigationToolbar.d.ts +10 -10
  47. package/dist/lib/navigationboard/NavigationToolbar.js +61 -79
  48. package/dist/lib/navigationboard/NavigationToolbar.js.map +1 -1
  49. package/dist/lib/navigationboard/iconPaths.d.ts +29 -0
  50. package/dist/lib/navigationboard/iconPaths.js +91 -0
  51. package/dist/lib/navigationboard/iconPaths.js.map +1 -0
  52. package/dist/lib/sanitization.js.map +1 -1
  53. package/dist/lib/types.js.map +1 -1
  54. package/dist/lib/util.js.map +1 -1
  55. package/doc_src/demo/PageChessboardBase.tsx +115 -115
  56. package/doc_src/demo/PageChessboardInteraction.tsx +303 -303
  57. package/doc_src/demo/PageChessboardMove.tsx +173 -173
  58. package/doc_src/demo/PageChessboardSmallScreens.tsx +94 -94
  59. package/doc_src/demo/PageMovetextBase.tsx +180 -180
  60. package/doc_src/demo/PageMovetextInteraction.tsx +123 -123
  61. package/doc_src/demo/PageNavigationBoardBase.tsx +144 -137
  62. package/doc_src/demo/PageNavigationBoardUncontrolledVsControlled.tsx +69 -69
  63. package/doc_src/demo/decs.d.ts +4 -4
  64. package/doc_src/demo/demo.css +12 -12
  65. package/doc_src/demo/util.ts +1 -1
  66. package/doc_src/examples/NavigationBoard.md +1 -1
  67. package/doc_src/theming/LogoRenderer.js +13 -13
  68. package/doc_src/theming/theming.css +5 -5
  69. package/package.json +95 -95
  70. package/scripts/doc.styleguide.config.js +131 -131
  71. package/scripts/doc.tsconfig.json +5 -5
  72. package/scripts/docker-compose.yml +1 -1
  73. package/scripts/test-graphic.tsconfig.json +5 -5
  74. package/scripts/test-graphic.webpack.config.js +57 -57
  75. package/scripts/test-headless.webpack.config.js +29 -29
  76. package/src/chessboard/BoardProperties.ts +68 -68
  77. package/src/chessboard/Chessboard.css +13 -13
  78. package/src/chessboard/Chessboard.tsx +436 -380
  79. package/src/chessboard/ChessboardImpl.tsx +557 -557
  80. package/src/chessboard/Draggable.tsx +185 -185
  81. package/src/chessboard/Motion.tsx +67 -67
  82. package/src/chessboard/colorsets.ts +66 -66
  83. package/src/chessboard/piecesets.ts +84 -84
  84. package/src/decs.d.ts +2 -2
  85. package/src/errorbox/ErrorBox.css +18 -18
  86. package/src/errorbox/ErrorBox.tsx +75 -75
  87. package/src/errorbox/parsing.tsx +95 -95
  88. package/src/exception.ts +17 -17
  89. package/src/i18n.ts +1 -0
  90. package/src/icons/AnnotationSymbolShape.css +6 -6
  91. package/src/icons/AnnotationSymbolShape.tsx +31 -31
  92. package/src/icons/ArrowMarkerIcon.tsx +34 -34
  93. package/src/icons/ArrowTip.tsx +14 -14
  94. package/src/icons/ChessPieceIcon.tsx +45 -45
  95. package/src/icons/SquareMarkerIcon.tsx +20 -20
  96. package/src/icons/TextMarkerIcon.tsx +29 -29
  97. package/src/icons/arrow.css +1 -1
  98. package/src/index.ts +3 -2
  99. package/src/movetext/Movetext.css +27 -27
  100. package/src/movetext/Movetext.tsx +158 -158
  101. package/src/movetext/MovetextImpl.tsx +345 -345
  102. package/src/movetext/fonts.css +7 -7
  103. package/src/movetext/htmlFilter.tsx +129 -129
  104. package/src/movetext/moveFormatter.tsx +37 -37
  105. package/src/navigationboard/NavigationBoard.tsx +386 -180
  106. package/src/navigationboard/NavigationButton.ts +114 -0
  107. package/src/navigationboard/NavigationField.css +7 -7
  108. package/src/navigationboard/NavigationField.tsx +90 -90
  109. package/src/navigationboard/NavigationToolbar.css +16 -13
  110. package/src/navigationboard/NavigationToolbar.tsx +98 -112
  111. package/src/navigationboard/iconPaths.ts +98 -0
  112. package/src/sanitization.ts +17 -17
  113. package/src/types.ts +116 -116
  114. package/src/util.ts +11 -11
  115. package/test/01_types.js +167 -167
  116. package/test/02_chessboard_util.js +191 -115
  117. package/test/03_error_box_graphic.js +16 -16
  118. package/test/04_icons_graphic.js +32 -32
  119. package/test/05_chessboard_graphic.js +60 -60
  120. package/test/06_chessboard_animation.js +36 -36
  121. package/test/07_chessboard_interaction.js +101 -101
  122. package/test/08_chessboard_play_moves.js +62 -62
  123. package/test/09_chessboard_small_screens.js +32 -32
  124. package/test/10_movetext_graphic.js +32 -32
  125. package/test/11_movetext_interaction.js +100 -100
  126. package/test/12_navigation_board_base.js +151 -0
  127. package/test/13_navigation_board_graphic.js +68 -0
  128. package/test/14_navigation_board_autoplay.js +100 -0
  129. package/test/common/graphic.js +106 -97
  130. package/test/graphic_references/12_navigation_board_base/controlled/default.png +0 -0
  131. package/test/graphic_references/{12_navigation_board/controlled/forbidden_navigation_1.png → 12_navigation_board_base/controlled/forbidden_navigation_0.png} +0 -0
  132. package/test/graphic_references/{12_navigation_board/controlled/invalid_node_id.png → 12_navigation_board_base/controlled/forbidden_navigation_1.png} +0 -0
  133. package/test/graphic_references/{12_navigation_board/controlled/forbidden_navigation_0.png → 12_navigation_board_base/controlled/invalid_node_id.png} +0 -0
  134. package/test/graphic_references/12_navigation_board_base/controlled/no_callback_defined_0.png +0 -0
  135. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/controlled/no_callback_defined_1.png +0 -0
  136. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/controlled/overriding_initial_node_id.png +0 -0
  137. package/test/graphic_references/{12_navigation_board/controlled/regular_navigation_1.png → 12_navigation_board_base/controlled/regular_navigation_0.png} +0 -0
  138. package/test/graphic_references/{12_navigation_board/uncontrolled/initial_state_at_specific_id.png → 12_navigation_board_base/controlled/regular_navigation_1.png} +0 -0
  139. package/test/graphic_references/{12_navigation_board/controlled/regular_navigation_3.png → 12_navigation_board_base/controlled/regular_navigation_2.png} +0 -0
  140. package/test/graphic_references/{12_navigation_board/controlled/regular_navigation_0.png → 12_navigation_board_base/controlled/regular_navigation_3.png} +0 -0
  141. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_2.png → 12_navigation_board_base/uncontrolled/forbidden_navigation_at_beginning_0.png} +0 -0
  142. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_0.png → 12_navigation_board_base/uncontrolled/forbidden_navigation_at_beginning_1.png} +0 -0
  143. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_1.png → 12_navigation_board_base/uncontrolled/forbidden_navigation_at_beginning_2.png} +0 -0
  144. package/test/graphic_references/{12_navigation_board/controlled/no_callback_defined_0.png → 12_navigation_board_base/uncontrolled/forbidden_navigation_at_end_0.png} +0 -0
  145. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_end_1.png +0 -0
  146. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_end_2.png +0 -0
  147. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/initial_state_at_end.png +0 -0
  148. package/test/graphic_references/12_navigation_board_base/uncontrolled/initial_state_at_specific_id.png +0 -0
  149. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/initial_state_default.png +0 -0
  150. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/initial_state_default_with_game_index.png +0 -0
  151. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/initial_state_on_null-move.png +0 -0
  152. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/navigation_with_keys_0.png +0 -0
  153. package/test/graphic_references/12_navigation_board_base/uncontrolled/navigation_with_keys_1.png +0 -0
  154. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/navigation_with_keys_2.png +0 -0
  155. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/navigation_with_keys_3.png +0 -0
  156. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/navigation_with_keys_4.png +0 -0
  157. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_flipping_0.png +0 -0
  158. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_flipping_1.png +0 -0
  159. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_navigation_0.png +0 -0
  160. package/test/graphic_references/{12_navigation_board/controlled/default.png → 12_navigation_board_base/uncontrolled/regular_navigation_1.png} +0 -0
  161. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_navigation_2.png +0 -0
  162. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_navigation_3.png +0 -0
  163. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_navigation_4.png +0 -0
  164. package/test/graphic_references/{12_navigation_board → 12_navigation_board_base}/uncontrolled/regular_navigation_5.png +0 -0
  165. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/error_1.png +0 -0
  166. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/error_2.png +0 -0
  167. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/multiple_buttons.png +0 -0
  168. package/test/graphic_references/{12_navigation_board/uncontrolled/regular_navigation_3.png → 13_navigation_board_graphic/additional_buttons/single_button.png} +0 -0
  169. package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/theme/custom_1.png +0 -0
  170. package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/theme/custom_2.png +0 -0
  171. package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/theme/large.png +0 -0
  172. package/test/graphic_references/13_navigation_board_graphic/theme/small.png +0 -0
  173. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_1_move_acknowledging_is-playing_changes.png +0 -0
  174. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_1_move_not_acknowledging_is-playing_changes.png +0 -0
  175. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_2_moves_acknowledging_node_changes.png +0 -0
  176. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_2_moves_not_acknowledging_node_changes.png +0 -0
  177. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_end_1.png → 14_navigation_board_autoplay/controlled/after_reaching_the_end.png} +0 -0
  178. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_end_2.png → 14_navigation_board_autoplay/controlled/already_at_the_end.png} +0 -0
  179. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_acknowledging_is-playing_changes.png +0 -0
  180. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_acknowledging_node_changes.png +0 -0
  181. package/test/graphic_references/{12_navigation_board/uncontrolled/forbidden_navigation_at_end_0.png → 14_navigation_board_autoplay/controlled/initial_state_at_the_end.png} +0 -0
  182. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_close_to_end.png +0 -0
  183. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_not_acknowledging_is-playing_changes.png +0 -0
  184. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_not_acknowledging_node_changes.png +0 -0
  185. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_2_moves_from_beginning_after_stop.png +0 -0
  186. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_2_moves_from_beginning_before_stop.png +0 -0
  187. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_reaching_the_end_after_stop.png +0 -0
  188. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_reaching_the_end_before_stop.png +0 -0
  189. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/initial_state_close_to_end.png +0 -0
  190. package/test/graphic_references/{12_navigation_board/uncontrolled/navigation_with_keys_1.png → 14_navigation_board_autoplay/uncontrolled/initial_state_default.png} +0 -0
  191. package/test/graphic_test_app/03_error_box_graphic/base.tsx +14 -14
  192. package/test/graphic_test_app/03_error_box_graphic/localization.tsx +1 -1
  193. package/test/graphic_test_app/04_icons_graphic/chess_piece.tsx +7 -7
  194. package/test/graphic_test_app/04_icons_graphic/marker.tsx +15 -15
  195. package/test/graphic_test_app/05_chessboard_graphic/annotations.tsx +7 -7
  196. package/test/graphic_test_app/05_chessboard_graphic/base.tsx +6 -6
  197. package/test/graphic_test_app/05_chessboard_graphic/chess_variants.tsx +7 -7
  198. package/test/graphic_test_app/05_chessboard_graphic/flipped.tsx +5 -5
  199. package/test/graphic_test_app/05_chessboard_graphic/move.tsx +12 -12
  200. package/test/graphic_test_app/05_chessboard_graphic/theme.tsx +12 -12
  201. package/test/graphic_test_app/06_chessboard_animation/base_1.tsx +6 -6
  202. package/test/graphic_test_app/06_chessboard_animation/base_2.tsx +6 -6
  203. package/test/graphic_test_app/06_chessboard_animation/base_3.tsx +6 -6
  204. package/test/graphic_test_app/06_chessboard_animation/on_redraw.tsx +16 -16
  205. package/test/graphic_test_app/07_chessboard_interaction/click_squares.tsx +5 -5
  206. package/test/graphic_test_app/07_chessboard_interaction/edit_arrows.tsx +4 -4
  207. package/test/graphic_test_app/07_chessboard_interaction/error.tsx +2 -2
  208. package/test/graphic_test_app/07_chessboard_interaction/move_pieces.tsx +5 -5
  209. package/test/graphic_test_app/08_chessboard_play_moves/base.tsx +8 -8
  210. package/test/graphic_test_app/08_chessboard_play_moves/promotions.tsx +4 -4
  211. package/test/graphic_test_app/09_chessboard_small_screens/base.tsx +9 -9
  212. package/test/graphic_test_app/09_chessboard_small_screens/top_bottom_components.tsx +9 -9
  213. package/test/graphic_test_app/10_movetext_graphic/base.tsx +4 -4
  214. package/test/graphic_test_app/10_movetext_graphic/error.tsx +6 -6
  215. package/test/graphic_test_app/10_movetext_graphic/format_move.tsx +1 -1
  216. package/test/graphic_test_app/10_movetext_graphic/html.tsx +5 -5
  217. package/test/graphic_test_app/10_movetext_graphic/options.tsx +10 -10
  218. package/test/graphic_test_app/11_movetext_interaction/error.tsx +1 -1
  219. package/test/graphic_test_app/11_movetext_interaction/select_moves.tsx +11 -11
  220. package/test/graphic_test_app/{12_navigation_board → 12_navigation_board_base}/controlled.tsx +5 -5
  221. package/test/graphic_test_app/{12_navigation_board → 12_navigation_board_base}/uncontrolled.tsx +7 -7
  222. package/test/graphic_test_app/13_navigation_board_graphic/additional_buttons.tsx +49 -0
  223. package/test/graphic_test_app/{12_navigation_board → 13_navigation_board_graphic}/error.tsx +2 -2
  224. package/test/graphic_test_app/{12_navigation_board → 13_navigation_board_graphic}/theme.tsx +4 -4
  225. package/test/graphic_test_app/14_navigation_board_autoplay/controlled.tsx +73 -0
  226. package/test/graphic_test_app/14_navigation_board_autoplay/uncontrolled.tsx +34 -0
  227. package/test/graphic_test_app/common/decs.d.ts +2 -2
  228. package/test/graphic_test_app/common/test_app.css +15 -15
  229. package/test/graphic_test_app/common/test_app.tsx +48 -48
  230. package/tsconfig.json +13 -13
  231. package/test/12_navigation_board.js +0 -168
  232. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_2.png +0 -0
  233. package/test/graphic_references/12_navigation_board/theme/small.png +0 -0
  234. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_1.png +0 -0
  235. /package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/error/pgn_parsing_error.png +0 -0
  236. /package/test/graphic_references/{12_navigation_board → 13_navigation_board_graphic}/error/wrong_game_type.png +0 -0
@@ -37,48 +37,48 @@ export const DEFAULT_COLORSET = 'original';
37
37
  export const colorsets: Record<string, Colorset> = {};
38
38
 
39
39
  colorsets.original = {
40
- b: '#b5876b',
41
- w: '#f0dec7',
42
- cb: '#04f',
43
- cg: '#0e0',
44
- cr: '#d00',
45
- cy: '#db0',
40
+ b: '#b5876b',
41
+ w: '#f0dec7',
42
+ cb: '#04f',
43
+ cg: '#0e0',
44
+ cr: '#d00',
45
+ cy: '#db0',
46
46
  };
47
47
 
48
48
  colorsets.gray = {
49
- b: '#bbbbbb',
50
- w: '#f8f8f8',
51
- cb: '#04f',
52
- cg: '#0a0',
53
- cr: '#d00',
54
- cy: '#a90',
49
+ b: '#bbbbbb',
50
+ w: '#f8f8f8',
51
+ cb: '#04f',
52
+ cg: '#0a0',
53
+ cr: '#d00',
54
+ cy: '#a90',
55
55
  };
56
56
 
57
57
  colorsets.scid = {
58
- b: '#7389b6',
59
- w: '#f3f3f3',
60
- cb: '#04f',
61
- cg: '#0e0',
62
- cr: '#d00',
63
- cy: '#db0',
58
+ b: '#7389b6',
59
+ w: '#f3f3f3',
60
+ cb: '#04f',
61
+ cg: '#0e0',
62
+ cr: '#d00',
63
+ cy: '#db0',
64
64
  };
65
65
 
66
66
  colorsets.wikipedia = {
67
- b: '#d18b47',
68
- w: '#ffce9e',
69
- cb: '#04f',
70
- cg: '#0e0',
71
- cr: '#d00',
72
- cy: '#db0',
67
+ b: '#d18b47',
68
+ w: '#ffce9e',
69
+ cb: '#04f',
70
+ cg: '#0e0',
71
+ cr: '#d00',
72
+ cy: '#db0',
73
73
  };
74
74
 
75
75
  colorsets.xboard = {
76
- b: '#77a26d',
77
- w: '#c8c365',
78
- cb: '#04f',
79
- cg: '#0f0',
80
- cr: '#d00',
81
- cy: '#ff0',
76
+ b: '#77a26d',
77
+ w: '#c8c365',
78
+ cb: '#04f',
79
+ cg: '#0f0',
80
+ cr: '#d00',
81
+ cy: '#ff0',
82
82
  };
83
83
 
84
84
 
@@ -88,55 +88,55 @@ colorsets.xboard = {
88
88
  */
89
89
 
90
90
  colorsets.coral = {
91
- b: 'rgb(112,162,163)',
92
- w: 'rgb(177,228,185)',
93
- cb: '#04f',
94
- cg: '#080',
95
- cr: '#d00',
96
- cy: '#ff0',
91
+ b: 'rgb(112,162,163)',
92
+ w: 'rgb(177,228,185)',
93
+ cb: '#04f',
94
+ cg: '#080',
95
+ cr: '#d00',
96
+ cy: '#ff0',
97
97
  };
98
98
 
99
99
  colorsets.dusk = {
100
- b: 'rgb(112,102,119)',
101
- w: 'rgb(204,183,174)',
102
- cb: '#04f',
103
- cg: '#3f3',
104
- cr: '#f20',
105
- cy: '#ff0',
100
+ b: 'rgb(112,102,119)',
101
+ w: 'rgb(204,183,174)',
102
+ cb: '#04f',
103
+ cg: '#3f3',
104
+ cr: '#f20',
105
+ cy: '#ff0',
106
106
  };
107
107
 
108
108
  colorsets.emerald = {
109
- b: 'rgb(111,143,114)',
110
- w: 'rgb(173,189,143)',
111
- cb: '#04f',
112
- cg: '#6f6',
113
- cr: '#d00',
114
- cy: '#ff0',
109
+ b: 'rgb(111,143,114)',
110
+ w: 'rgb(173,189,143)',
111
+ cb: '#04f',
112
+ cg: '#6f6',
113
+ cr: '#d00',
114
+ cy: '#ff0',
115
115
  };
116
116
 
117
117
  colorsets.marine = {
118
- b: 'rgb(111,115,210)',
119
- w: 'rgb(157,172,255)',
120
- cb: '#04f',
121
- cg: '#6f6',
122
- cr: '#f50',
123
- cy: '#ff0',
118
+ b: 'rgb(111,115,210)',
119
+ w: 'rgb(157,172,255)',
120
+ cb: '#04f',
121
+ cg: '#6f6',
122
+ cr: '#f50',
123
+ cy: '#ff0',
124
124
  };
125
125
 
126
126
  colorsets.sandcastle = {
127
- b: 'rgb(184,139,74)',
128
- w: 'rgb(227,193,111)',
129
- cb: '#04f',
130
- cg: '#0c3',
131
- cr: '#d02',
132
- cy: '#ff0',
127
+ b: 'rgb(184,139,74)',
128
+ w: 'rgb(227,193,111)',
129
+ cb: '#04f',
130
+ cg: '#0c3',
131
+ cr: '#d02',
132
+ cy: '#ff0',
133
133
  };
134
134
 
135
135
  colorsets.wheat = {
136
- b: 'rgb(187,190,100)',
137
- w: 'rgb(234,240,206)',
138
- cb: '#04f',
139
- cg: '#0c3',
140
- cr: '#d00',
141
- cy: '#ff3',
136
+ b: 'rgb(187,190,100)',
137
+ w: 'rgb(234,240,206)',
138
+ cb: '#04f',
139
+ cg: '#0c3',
140
+ cr: '#d00',
141
+ cy: '#ff3',
142
142
  };
@@ -135,103 +135,103 @@ export const DEFAULT_PIECESET = 'cburnett';
135
135
  export const piecesets: Record<string, Pieceset> = {};
136
136
 
137
137
  piecesets.cburnett = {
138
- bb: cburnett_bb,
139
- bk: cburnett_bk,
140
- bn: cburnett_bn,
141
- bp: cburnett_bp,
142
- bq: cburnett_bq,
143
- br: cburnett_br,
144
- bx: cburnett_bx,
145
- wb: cburnett_wb,
146
- wk: cburnett_wk,
147
- wn: cburnett_wn,
148
- wp: cburnett_wp,
149
- wq: cburnett_wq,
150
- wr: cburnett_wr,
151
- wx: cburnett_wx,
138
+ bb: cburnett_bb,
139
+ bk: cburnett_bk,
140
+ bn: cburnett_bn,
141
+ bp: cburnett_bp,
142
+ bq: cburnett_bq,
143
+ br: cburnett_br,
144
+ bx: cburnett_bx,
145
+ wb: cburnett_wb,
146
+ wk: cburnett_wk,
147
+ wn: cburnett_wn,
148
+ wp: cburnett_wp,
149
+ wq: cburnett_wq,
150
+ wr: cburnett_wr,
151
+ wx: cburnett_wx,
152
152
  };
153
153
 
154
154
  piecesets.celtic = {
155
- bb: celtic_bb,
156
- bk: celtic_bk,
157
- bn: celtic_bn,
158
- bp: celtic_bp,
159
- bq: celtic_bq,
160
- br: celtic_br,
161
- bx: celtic_bx,
162
- wb: celtic_wb,
163
- wk: celtic_wk,
164
- wn: celtic_wn,
165
- wp: celtic_wp,
166
- wq: celtic_wq,
167
- wr: celtic_wr,
168
- wx: celtic_wx,
155
+ bb: celtic_bb,
156
+ bk: celtic_bk,
157
+ bn: celtic_bn,
158
+ bp: celtic_bp,
159
+ bq: celtic_bq,
160
+ br: celtic_br,
161
+ bx: celtic_bx,
162
+ wb: celtic_wb,
163
+ wk: celtic_wk,
164
+ wn: celtic_wn,
165
+ wp: celtic_wp,
166
+ wq: celtic_wq,
167
+ wr: celtic_wr,
168
+ wx: celtic_wx,
169
169
  };
170
170
 
171
171
  piecesets.eyes = {
172
- bb: eyes_bb,
173
- bk: eyes_bk,
174
- bn: eyes_bn,
175
- bp: eyes_bp,
176
- bq: eyes_bq,
177
- br: eyes_br,
178
- bx: eyes_spatial_bx,
179
- wb: eyes_wb,
180
- wk: eyes_wk,
181
- wn: eyes_wn,
182
- wp: eyes_wp,
183
- wq: eyes_wq,
184
- wr: eyes_wr,
185
- wx: eyes_spatial_wx,
172
+ bb: eyes_bb,
173
+ bk: eyes_bk,
174
+ bn: eyes_bn,
175
+ bp: eyes_bp,
176
+ bq: eyes_bq,
177
+ br: eyes_br,
178
+ bx: eyes_spatial_bx,
179
+ wb: eyes_wb,
180
+ wk: eyes_wk,
181
+ wn: eyes_wn,
182
+ wp: eyes_wp,
183
+ wq: eyes_wq,
184
+ wr: eyes_wr,
185
+ wx: eyes_spatial_wx,
186
186
  };
187
187
 
188
188
  piecesets.fantasy = {
189
- bb: fantasy_bb,
190
- bk: fantasy_bk,
191
- bn: fantasy_bn,
192
- bp: fantasy_bp,
193
- bq: fantasy_bq,
194
- br: fantasy_br,
195
- bx: fantasy_bx,
196
- wb: fantasy_wb,
197
- wk: fantasy_wk,
198
- wn: fantasy_wn,
199
- wp: fantasy_wp,
200
- wq: fantasy_wq,
201
- wr: fantasy_wr,
202
- wx: fantasy_wx,
189
+ bb: fantasy_bb,
190
+ bk: fantasy_bk,
191
+ bn: fantasy_bn,
192
+ bp: fantasy_bp,
193
+ bq: fantasy_bq,
194
+ br: fantasy_br,
195
+ bx: fantasy_bx,
196
+ wb: fantasy_wb,
197
+ wk: fantasy_wk,
198
+ wn: fantasy_wn,
199
+ wp: fantasy_wp,
200
+ wq: fantasy_wq,
201
+ wr: fantasy_wr,
202
+ wx: fantasy_wx,
203
203
  };
204
204
 
205
205
  piecesets.skulls = {
206
- bb: skulls_bb,
207
- bk: skulls_bk,
208
- bn: skulls_bn,
209
- bp: skulls_bp,
210
- bq: skulls_bq,
211
- br: skulls_br,
212
- bx: skulls_bx,
213
- wb: skulls_wb,
214
- wk: skulls_wk,
215
- wn: skulls_wn,
216
- wp: skulls_wp,
217
- wq: skulls_wq,
218
- wr: skulls_wr,
219
- wx: skulls_wx,
206
+ bb: skulls_bb,
207
+ bk: skulls_bk,
208
+ bn: skulls_bn,
209
+ bp: skulls_bp,
210
+ bq: skulls_bq,
211
+ br: skulls_br,
212
+ bx: skulls_bx,
213
+ wb: skulls_wb,
214
+ wk: skulls_wk,
215
+ wn: skulls_wn,
216
+ wp: skulls_wp,
217
+ wq: skulls_wq,
218
+ wr: skulls_wr,
219
+ wx: skulls_wx,
220
220
  };
221
221
 
222
222
  piecesets.spatial = {
223
- bb: spatial_bb,
224
- bk: spatial_bk,
225
- bn: spatial_bn,
226
- bp: spatial_bp,
227
- bq: spatial_bq,
228
- br: spatial_br,
229
- bx: eyes_spatial_bx,
230
- wb: spatial_wb,
231
- wk: spatial_wk,
232
- wn: spatial_wn,
233
- wp: spatial_wp,
234
- wq: spatial_wq,
235
- wr: spatial_wr,
236
- wx: eyes_spatial_wx,
223
+ bb: spatial_bb,
224
+ bk: spatial_bk,
225
+ bn: spatial_bn,
226
+ bp: spatial_bp,
227
+ bq: spatial_bq,
228
+ br: spatial_br,
229
+ bx: eyes_spatial_bx,
230
+ wb: spatial_wb,
231
+ wk: spatial_wk,
232
+ wn: spatial_wn,
233
+ wp: spatial_wp,
234
+ wq: spatial_wq,
235
+ wr: spatial_wr,
236
+ wx: eyes_spatial_wx,
237
237
  };
package/src/decs.d.ts CHANGED
@@ -23,6 +23,6 @@
23
23
 
24
24
 
25
25
  declare module '*.png' {
26
- const path: string;
27
- export default path;
26
+ const path: string;
27
+ export default path;
28
28
  }
@@ -23,32 +23,32 @@
23
23
 
24
24
 
25
25
  .kokopu-errorBox {
26
- text-align: left;
27
- font-family: sans-serif;
28
- font-size: 12px;
29
- line-height: 1.3em;
30
- color: #800;
31
- background-color: #fdd;
32
- border: solid 1px #c00;
33
- padding: 0.75em;
26
+ text-align: left;
27
+ font-family: sans-serif;
28
+ font-size: 12px;
29
+ line-height: 1.3em;
30
+ color: #800;
31
+ background-color: #fdd;
32
+ border: solid 1px #c00;
33
+ padding: 0.75em;
34
34
  }
35
35
 
36
36
  .kokopu-errorTitle {
37
- font-weight: bold;
38
- font-style: italic;
37
+ font-weight: bold;
38
+ font-style: italic;
39
39
  }
40
40
 
41
41
  .kokopu-errorMessage,
42
42
  .kokopu-errorExcerpt {
43
- margin-top: 0.4em;
43
+ margin-top: 0.4em;
44
44
  }
45
45
 
46
46
  .kokopu-errorExcerpt {
47
- white-space: pre-wrap;
48
- font-family: monospace;
49
- line-height: 1.5em;
50
- color: #400;
51
- background-color: #ffd;
52
- border: solid 1px #aa0;
53
- padding: 0.75em 1em 0.15em;
47
+ white-space: pre-wrap;
48
+ font-family: monospace;
49
+ line-height: 1.5em;
50
+ color: #400;
51
+ background-color: #ffd;
52
+ border: solid 1px #aa0;
53
+ padding: 0.75em 1em 0.15em;
54
54
  }
@@ -37,30 +37,30 @@ const ELLIPSIS_SYMBOL_LENGTH = 4; // Symbol is ... + space (before or after)
37
37
 
38
38
  export interface ErrorBoxProps {
39
39
 
40
- /**
41
- * Title of the error box.
42
- */
43
- title: string;
44
-
45
- /**
46
- * Additional message providing details about the error.
47
- */
48
- message: string;
49
-
50
- /**
51
- * Raw text whose processing results in the error.
52
- */
53
- text?: string;
54
-
55
- /**
56
- * Index of the character within `text` that results in the error.
57
- */
58
- errorIndex?: number;
59
-
60
- /**
61
- * Index (1-based) of the line in which is the character that results in the error.
62
- */
63
- lineNumber?: number;
40
+ /**
41
+ * Title of the error box.
42
+ */
43
+ title: string;
44
+
45
+ /**
46
+ * Additional message providing details about the error.
47
+ */
48
+ message: string;
49
+
50
+ /**
51
+ * Raw text whose processing results in the error.
52
+ */
53
+ text?: string;
54
+
55
+ /**
56
+ * Index of the character within `text` that results in the error.
57
+ */
58
+ errorIndex?: number;
59
+
60
+ /**
61
+ * Index (1-based) of the line in which is the character that results in the error.
62
+ */
63
+ lineNumber?: number;
64
64
  }
65
65
 
66
66
 
@@ -69,25 +69,25 @@ export interface ErrorBoxProps {
69
69
  */
70
70
  export function ErrorBox({ title, message, text, errorIndex, lineNumber }: ErrorBoxProps) {
71
71
 
72
- // Sanitize the inputs.
73
- title = sanitizeString(title);
74
- message = sanitizeString(message);
75
- text = sanitizeOptional(text, sanitizeString);
76
- errorIndex = Number.isInteger(errorIndex) ? errorIndex : undefined;
77
- lineNumber = Number.isInteger(lineNumber) ? lineNumber : undefined;
78
-
79
- // Render the component.
80
- let excerpt: React.ReactNode = undefined;
81
- if (text && errorIndex !== undefined && errorIndex >= 0 && errorIndex < text.length) {
82
- excerpt = <div className="kokopu-errorExcerpt">{ellipsisAt(text, errorIndex, lineNumber)}</div>;
83
- }
84
- return (
85
- <div className="kokopu-errorBox">
86
- <div className="kokopu-errorTitle">{title}</div>
87
- <div className="kokopu-errorMessage">{message}</div>
88
- {excerpt}
89
- </div>
90
- );
72
+ // Sanitize the inputs.
73
+ title = sanitizeString(title);
74
+ message = sanitizeString(message);
75
+ text = sanitizeOptional(text, sanitizeString);
76
+ errorIndex = Number.isInteger(errorIndex) ? errorIndex : undefined;
77
+ lineNumber = Number.isInteger(lineNumber) ? lineNumber : undefined;
78
+
79
+ // Render the component.
80
+ let excerpt: React.ReactNode = undefined;
81
+ if (text && errorIndex !== undefined && errorIndex >= 0 && errorIndex < text.length) {
82
+ excerpt = <div className="kokopu-errorExcerpt">{ellipsisAt(text, errorIndex, lineNumber)}</div>;
83
+ }
84
+ return (
85
+ <div className="kokopu-errorBox">
86
+ <div className="kokopu-errorTitle">{title}</div>
87
+ <div className="kokopu-errorMessage">{message}</div>
88
+ {excerpt}
89
+ </div>
90
+ );
91
91
  }
92
92
 
93
93
 
@@ -96,36 +96,36 @@ export function ErrorBox({ title, message, text, errorIndex, lineNumber }: Error
96
96
  */
97
97
  function ellipsisAt(text: string, pos: number, lineNumber?: number) {
98
98
 
99
- // Compute the number of characters to keep before `pos`.
100
- let cutBeginningAt = pos - BACKWARD_CHARACTER_COUNT;
101
- let isBeginningEllipsed = true;
102
- for (let keptCharacterCount = 0; keptCharacterCount <= BACKWARD_CHARACTER_COUNT + ELLIPSIS_SYMBOL_LENGTH; ++keptCharacterCount) {
103
- const p = pos - keptCharacterCount - 1;
104
- if (p < 0 || text.charAt(p) === '\n' || text.charAt(p) === '\r') {
105
- cutBeginningAt = p + 1;
106
- isBeginningEllipsed = false;
107
- break;
108
- }
109
- }
110
-
111
- // Compute the number of characters to keep after `pos`.
112
- let cutEndAt = pos + FORWARD_CHARACTER_COUNT;
113
- let isEndEllipsed = true;
114
- for (let keptCharacterCount = 0; keptCharacterCount <= FORWARD_CHARACTER_COUNT + ELLIPSIS_SYMBOL_LENGTH; ++keptCharacterCount) {
115
- const p = pos + keptCharacterCount + 1;
116
- if (p >= text.length || text.charAt(p) === '\n' || text.charAt(p) === '\r') {
117
- cutEndAt = p - 1;
118
- isEndEllipsed = false;
119
- break;
120
- }
121
- }
122
-
123
- // Extract the sub-string around the requested position.
124
- let excerpt = (isBeginningEllipsed ? '... ' : '') + text.substring(cutBeginningAt, cutEndAt + 1) + (isEndEllipsed ? ' ...' : '');
125
- excerpt = excerpt.replace(/\s/g, ' ');
126
- let secondLine = ' '.repeat(pos - cutBeginningAt + (isBeginningEllipsed ? ELLIPSIS_SYMBOL_LENGTH : 0)) + '^';
127
- if (lineNumber && lineNumber >= 1) {
128
- secondLine += ` (${fillPlaceholder(i18n.LINE, lineNumber)})`;
129
- }
130
- return excerpt + '\n' + secondLine;
99
+ // Compute the number of characters to keep before `pos`.
100
+ let cutBeginningAt = pos - BACKWARD_CHARACTER_COUNT;
101
+ let isBeginningEllipsed = true;
102
+ for (let keptCharacterCount = 0; keptCharacterCount <= BACKWARD_CHARACTER_COUNT + ELLIPSIS_SYMBOL_LENGTH; ++keptCharacterCount) {
103
+ const p = pos - keptCharacterCount - 1;
104
+ if (p < 0 || text.charAt(p) === '\n' || text.charAt(p) === '\r') {
105
+ cutBeginningAt = p + 1;
106
+ isBeginningEllipsed = false;
107
+ break;
108
+ }
109
+ }
110
+
111
+ // Compute the number of characters to keep after `pos`.
112
+ let cutEndAt = pos + FORWARD_CHARACTER_COUNT;
113
+ let isEndEllipsed = true;
114
+ for (let keptCharacterCount = 0; keptCharacterCount <= FORWARD_CHARACTER_COUNT + ELLIPSIS_SYMBOL_LENGTH; ++keptCharacterCount) {
115
+ const p = pos + keptCharacterCount + 1;
116
+ if (p >= text.length || text.charAt(p) === '\n' || text.charAt(p) === '\r') {
117
+ cutEndAt = p - 1;
118
+ isEndEllipsed = false;
119
+ break;
120
+ }
121
+ }
122
+
123
+ // Extract the sub-string around the requested position.
124
+ let excerpt = (isBeginningEllipsed ? '... ' : '') + text.substring(cutBeginningAt, cutEndAt + 1) + (isEndEllipsed ? ' ...' : '');
125
+ excerpt = excerpt.replace(/\s/g, ' ');
126
+ let secondLine = ' '.repeat(pos - cutBeginningAt + (isBeginningEllipsed ? ELLIPSIS_SYMBOL_LENGTH : 0)) + '^';
127
+ if (lineNumber && lineNumber >= 1) {
128
+ secondLine += ` (${fillPlaceholder(i18n.LINE, lineNumber)})`;
129
+ }
130
+ return excerpt + '\n' + secondLine;
131
131
  }