gigaboard 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/README.md +28 -8
  2. package/dist/chunk-35HQL3AK.js +19 -0
  3. package/dist/chunk-35HQL3AK.js.map +1 -0
  4. package/dist/chunk-375XPUCQ.js +18 -0
  5. package/dist/chunk-375XPUCQ.js.map +1 -0
  6. package/dist/chunk-3DEOTW2M.js +16 -0
  7. package/dist/chunk-3DEOTW2M.js.map +1 -0
  8. package/dist/chunk-3UFHYHMR.js +16 -0
  9. package/dist/chunk-3UFHYHMR.js.map +1 -0
  10. package/dist/chunk-52DIWDSX.js +18 -0
  11. package/dist/chunk-52DIWDSX.js.map +1 -0
  12. package/dist/chunk-5OGPVD4R.cjs +18 -0
  13. package/dist/chunk-5OGPVD4R.cjs.map +1 -0
  14. package/dist/chunk-6S6THNZP.js +24 -0
  15. package/dist/chunk-6S6THNZP.js.map +1 -0
  16. package/dist/chunk-6ZEPUUY5.cjs +18 -0
  17. package/dist/chunk-6ZEPUUY5.cjs.map +1 -0
  18. package/dist/chunk-76PL52EB.cjs +21 -0
  19. package/dist/chunk-76PL52EB.cjs.map +1 -0
  20. package/dist/chunk-A3HBH676.cjs +20 -0
  21. package/dist/chunk-A3HBH676.cjs.map +1 -0
  22. package/dist/chunk-AWNSXENI.js +18 -0
  23. package/dist/chunk-AWNSXENI.js.map +1 -0
  24. package/dist/{chunk-P24JILQQ.js → chunk-BB54XFHQ.js} +3 -3
  25. package/dist/{chunk-P24JILQQ.js.map → chunk-BB54XFHQ.js.map} +1 -1
  26. package/dist/chunk-CMV3NVR3.cjs +18 -0
  27. package/dist/chunk-CMV3NVR3.cjs.map +1 -0
  28. package/dist/{chunk-I4BQGFP5.cjs → chunk-D45G3J5E.cjs} +8 -2
  29. package/dist/chunk-D45G3J5E.cjs.map +1 -0
  30. package/dist/{chunk-CXDGJMYL.js → chunk-EJUGH25P.js} +8 -2
  31. package/dist/chunk-EJUGH25P.js.map +1 -0
  32. package/dist/{chunk-6VYZY2Y4.cjs → chunk-ENYRJ4Q2.cjs} +3 -3
  33. package/dist/{chunk-6VYZY2Y4.cjs.map → chunk-ENYRJ4Q2.cjs.map} +1 -1
  34. package/dist/chunk-EWAHJSTZ.js +18 -0
  35. package/dist/chunk-EWAHJSTZ.js.map +1 -0
  36. package/dist/chunk-F2QTCQXE.cjs +20 -0
  37. package/dist/chunk-F2QTCQXE.cjs.map +1 -0
  38. package/dist/chunk-FACLRSNS.js +16 -0
  39. package/dist/chunk-FACLRSNS.js.map +1 -0
  40. package/dist/chunk-FICI4AMA.cjs +24 -0
  41. package/dist/chunk-FICI4AMA.cjs.map +1 -0
  42. package/dist/chunk-FW54YBHD.cjs +23 -0
  43. package/dist/chunk-FW54YBHD.cjs.map +1 -0
  44. package/dist/chunk-HL6YTFI6.js +18 -0
  45. package/dist/chunk-HL6YTFI6.js.map +1 -0
  46. package/dist/chunk-JHWYLKFQ.cjs +23 -0
  47. package/dist/chunk-JHWYLKFQ.cjs.map +1 -0
  48. package/dist/chunk-KYPCPATQ.js +21 -0
  49. package/dist/chunk-KYPCPATQ.js.map +1 -0
  50. package/dist/chunk-LIC3EXRR.cjs +20 -0
  51. package/dist/chunk-LIC3EXRR.cjs.map +1 -0
  52. package/dist/chunk-M6NSGIVF.cjs +24 -0
  53. package/dist/chunk-M6NSGIVF.cjs.map +1 -0
  54. package/dist/chunk-MDBGFL5S.js +22 -0
  55. package/dist/chunk-MDBGFL5S.js.map +1 -0
  56. package/dist/chunk-NB62E57G.js +21 -0
  57. package/dist/chunk-NB62E57G.js.map +1 -0
  58. package/dist/chunk-QIIIL4BN.cjs +20 -0
  59. package/dist/chunk-QIIIL4BN.cjs.map +1 -0
  60. package/dist/chunk-RNC76LWZ.js +16 -0
  61. package/dist/chunk-RNC76LWZ.js.map +1 -0
  62. package/dist/chunk-TUO6GFCZ.cjs +20 -0
  63. package/dist/chunk-TUO6GFCZ.cjs.map +1 -0
  64. package/dist/chunk-UERUICKB.cjs +20 -0
  65. package/dist/chunk-UERUICKB.cjs.map +1 -0
  66. package/dist/chunk-UF32KQA3.cjs +18 -0
  67. package/dist/chunk-UF32KQA3.cjs.map +1 -0
  68. package/dist/chunk-W5WAATJ7.js +22 -0
  69. package/dist/chunk-W5WAATJ7.js.map +1 -0
  70. package/dist/chunk-WD7Y2RDG.js +16 -0
  71. package/dist/chunk-WD7Y2RDG.js.map +1 -0
  72. package/dist/chunk-WNFJK4HA.js +16 -0
  73. package/dist/chunk-WNFJK4HA.js.map +1 -0
  74. package/dist/chunk-XQO7TG53.cjs +18 -0
  75. package/dist/chunk-XQO7TG53.cjs.map +1 -0
  76. package/dist/chunk-XQW5XTYT.js +18 -0
  77. package/dist/chunk-XQW5XTYT.js.map +1 -0
  78. package/dist/chunk-ZB2G3XMO.cjs +18 -0
  79. package/dist/chunk-ZB2G3XMO.cjs.map +1 -0
  80. package/dist/chunk-ZZQ5FPWF.cjs +26 -0
  81. package/dist/chunk-ZZQ5FPWF.cjs.map +1 -0
  82. package/dist/core.cjs +44 -44
  83. package/dist/core.d.cts +1 -1
  84. package/dist/core.d.ts +1 -1
  85. package/dist/core.js +1 -1
  86. package/dist/index.cjs +89 -73
  87. package/dist/index.cjs.map +1 -1
  88. package/dist/index.d.cts +7 -1
  89. package/dist/index.d.ts +7 -1
  90. package/dist/index.js +29 -13
  91. package/dist/index.js.map +1 -1
  92. package/dist/pieces.cjs +1 -1
  93. package/dist/pieces.cjs.map +1 -1
  94. package/dist/pieces.d.cts +1 -1
  95. package/dist/pieces.d.ts +1 -1
  96. package/dist/pieces.js +1 -1
  97. package/dist/pieces.js.map +1 -1
  98. package/dist/server.cjs +15 -8
  99. package/dist/server.cjs.map +1 -1
  100. package/dist/server.js +10 -3
  101. package/dist/server.js.map +1 -1
  102. package/dist/themes/blue.d.cts +255 -3
  103. package/dist/themes/blue.d.ts +255 -3
  104. package/dist/themes/cafeCreme.cjs +12 -0
  105. package/dist/themes/cafeCreme.cjs.map +1 -0
  106. package/dist/themes/cafeCreme.d.cts +1 -0
  107. package/dist/themes/cafeCreme.d.ts +1 -0
  108. package/dist/themes/cafeCreme.js +3 -0
  109. package/dist/themes/cafeCreme.js.map +1 -0
  110. package/dist/themes/canvas.cjs +12 -0
  111. package/dist/themes/canvas.cjs.map +1 -0
  112. package/dist/themes/canvas.d.cts +1 -0
  113. package/dist/themes/canvas.d.ts +1 -0
  114. package/dist/themes/canvas.js +3 -0
  115. package/dist/themes/canvas.js.map +1 -0
  116. package/dist/themes/chesscomBlue.cjs +12 -0
  117. package/dist/themes/chesscomBlue.cjs.map +1 -0
  118. package/dist/themes/chesscomBlue.d.cts +1 -0
  119. package/dist/themes/chesscomBlue.d.ts +1 -0
  120. package/dist/themes/chesscomBlue.js +3 -0
  121. package/dist/themes/chesscomBlue.js.map +1 -0
  122. package/dist/themes/chesscomGreen.cjs +12 -0
  123. package/dist/themes/chesscomGreen.cjs.map +1 -0
  124. package/dist/themes/chesscomGreen.d.cts +1 -0
  125. package/dist/themes/chesscomGreen.d.ts +1 -0
  126. package/dist/themes/chesscomGreen.js +3 -0
  127. package/dist/themes/chesscomGreen.js.map +1 -0
  128. package/dist/themes/darkWood.cjs +12 -0
  129. package/dist/themes/darkWood.cjs.map +1 -0
  130. package/dist/themes/darkWood.d.cts +1 -0
  131. package/dist/themes/darkWood.d.ts +1 -0
  132. package/dist/themes/darkWood.js +3 -0
  133. package/dist/themes/darkWood.js.map +1 -0
  134. package/dist/themes/deuteranopia.cjs +12 -0
  135. package/dist/themes/deuteranopia.cjs.map +1 -0
  136. package/dist/themes/deuteranopia.d.cts +1 -0
  137. package/dist/themes/deuteranopia.d.ts +1 -0
  138. package/dist/themes/deuteranopia.js +3 -0
  139. package/dist/themes/deuteranopia.js.map +1 -0
  140. package/dist/themes/espresso.cjs +12 -0
  141. package/dist/themes/espresso.cjs.map +1 -0
  142. package/dist/themes/espresso.d.cts +1 -0
  143. package/dist/themes/espresso.d.ts +1 -0
  144. package/dist/themes/espresso.js +3 -0
  145. package/dist/themes/espresso.js.map +1 -0
  146. package/dist/themes/green.d.cts +1 -1
  147. package/dist/themes/green.d.ts +1 -1
  148. package/dist/themes/highContrast.cjs +12 -0
  149. package/dist/themes/highContrast.cjs.map +1 -0
  150. package/dist/themes/highContrast.d.cts +1 -0
  151. package/dist/themes/highContrast.d.ts +1 -0
  152. package/dist/themes/highContrast.js +3 -0
  153. package/dist/themes/highContrast.js.map +1 -0
  154. package/dist/themes/ic.cjs +12 -0
  155. package/dist/themes/ic.cjs.map +1 -0
  156. package/dist/themes/ic.d.cts +1 -0
  157. package/dist/themes/ic.d.ts +1 -0
  158. package/dist/themes/ic.js +3 -0
  159. package/dist/themes/ic.js.map +1 -0
  160. package/dist/themes/leather.cjs +12 -0
  161. package/dist/themes/leather.cjs.map +1 -0
  162. package/dist/themes/leather.d.cts +1 -0
  163. package/dist/themes/leather.d.ts +1 -0
  164. package/dist/themes/leather.js +3 -0
  165. package/dist/themes/leather.js.map +1 -0
  166. package/dist/themes/marble.cjs +12 -0
  167. package/dist/themes/marble.cjs.map +1 -0
  168. package/dist/themes/marble.d.cts +1 -0
  169. package/dist/themes/marble.d.ts +1 -0
  170. package/dist/themes/marble.js +3 -0
  171. package/dist/themes/marble.js.map +1 -0
  172. package/dist/themes/neon.cjs +12 -0
  173. package/dist/themes/neon.cjs.map +1 -0
  174. package/dist/themes/neon.d.cts +1 -0
  175. package/dist/themes/neon.d.ts +1 -0
  176. package/dist/themes/neon.js +3 -0
  177. package/dist/themes/neon.js.map +1 -0
  178. package/dist/themes/newspaper.cjs +12 -0
  179. package/dist/themes/newspaper.cjs.map +1 -0
  180. package/dist/themes/newspaper.d.cts +1 -0
  181. package/dist/themes/newspaper.d.ts +1 -0
  182. package/dist/themes/newspaper.js +3 -0
  183. package/dist/themes/newspaper.js.map +1 -0
  184. package/dist/themes/olive.cjs +12 -0
  185. package/dist/themes/olive.cjs.map +1 -0
  186. package/dist/themes/olive.d.cts +1 -0
  187. package/dist/themes/olive.d.ts +1 -0
  188. package/dist/themes/olive.js +3 -0
  189. package/dist/themes/olive.js.map +1 -0
  190. package/dist/themes/pink.cjs +12 -0
  191. package/dist/themes/pink.cjs.map +1 -0
  192. package/dist/themes/pink.d.cts +1 -0
  193. package/dist/themes/pink.d.ts +1 -0
  194. package/dist/themes/pink.js +3 -0
  195. package/dist/themes/pink.js.map +1 -0
  196. package/dist/themes/purple.cjs +12 -0
  197. package/dist/themes/purple.cjs.map +1 -0
  198. package/dist/themes/purple.d.cts +1 -0
  199. package/dist/themes/purple.d.ts +1 -0
  200. package/dist/themes/purple.js +3 -0
  201. package/dist/themes/purple.js.map +1 -0
  202. package/dist/themes/tritanopia.cjs +12 -0
  203. package/dist/themes/tritanopia.cjs.map +1 -0
  204. package/dist/themes/tritanopia.d.cts +1 -0
  205. package/dist/themes/tritanopia.d.ts +1 -0
  206. package/dist/themes/tritanopia.js +3 -0
  207. package/dist/themes/tritanopia.js.map +1 -0
  208. package/dist/themes/walnut.cjs +12 -0
  209. package/dist/themes/walnut.cjs.map +1 -0
  210. package/dist/themes/walnut.d.cts +1 -0
  211. package/dist/themes/walnut.d.ts +1 -0
  212. package/dist/themes/walnut.js +3 -0
  213. package/dist/themes/walnut.js.map +1 -0
  214. package/dist/themes/wood.d.cts +1 -1
  215. package/dist/themes/wood.d.ts +1 -1
  216. package/dist/themes.cjs +116 -8
  217. package/dist/themes.cjs.map +1 -1
  218. package/dist/themes.d.cts +1 -1
  219. package/dist/themes.d.ts +1 -1
  220. package/dist/themes.js +60 -6
  221. package/dist/themes.js.map +1 -1
  222. package/package.json +1 -1
  223. package/dist/chunk-CXDGJMYL.js.map +0 -1
  224. package/dist/chunk-I4BQGFP5.cjs.map +0 -1
@@ -7,6 +7,12 @@ var chunkAYVQCHSG_cjs = require('./chunk-AYVQCHSG.cjs');
7
7
  var CSS_VARS = {
8
8
  SQ_LIGHT: "--gb-sq-light",
9
9
  SQ_DARK: "--gb-sq-dark",
10
+ SQ_LIGHT_IMAGE: "--gb-sq-light-image",
11
+ SQ_DARK_IMAGE: "--gb-sq-dark-image",
12
+ SQ_IMAGE_SIZE: "--gb-sq-image-size",
13
+ SQ_BLEND_MODE: "--gb-sq-blend-mode",
14
+ PIECE_FILTER_WHITE: "--gb-piece-filter-white",
15
+ PIECE_FILTER_BLACK: "--gb-piece-filter-black",
10
16
  LAST_MOVE: "--gb-last-move",
11
17
  SELECTED: "--gb-selected",
12
18
  LEGAL_TARGET: "--gb-legal-target",
@@ -109,5 +115,5 @@ exports.defaultArrowColors = defaultArrowColors;
109
115
  exports.defaultPieces = defaultPieces;
110
116
  exports.defaultTheme = defaultTheme;
111
117
  exports.parseFenPlacement = parseFenPlacement;
112
- //# sourceMappingURL=chunk-I4BQGFP5.cjs.map
113
- //# sourceMappingURL=chunk-I4BQGFP5.cjs.map
118
+ //# sourceMappingURL=chunk-D45G3J5E.cjs.map
119
+ //# sourceMappingURL=chunk-D45G3J5E.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/default-theme.ts","../src/fen.ts","../src/pieces/default-pieces.tsx"],"names":["green","neo"],"mappings":"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","file":"chunk-D45G3J5E.cjs","sourcesContent":["import { green } from \"./themes/green.js\";\nimport type { Theme } from \"./types.js\";\n\n/** Keys every Gigaboard board understands. */\nexport const CSS_VARS = {\n SQ_LIGHT: \"--gb-sq-light\",\n SQ_DARK: \"--gb-sq-dark\",\n SQ_LIGHT_IMAGE: \"--gb-sq-light-image\",\n SQ_DARK_IMAGE: \"--gb-sq-dark-image\",\n SQ_IMAGE_SIZE: \"--gb-sq-image-size\",\n SQ_BLEND_MODE: \"--gb-sq-blend-mode\",\n PIECE_FILTER_WHITE: \"--gb-piece-filter-white\",\n PIECE_FILTER_BLACK: \"--gb-piece-filter-black\",\n LAST_MOVE: \"--gb-last-move\",\n SELECTED: \"--gb-selected\",\n LEGAL_TARGET: \"--gb-legal-target\",\n LEGAL_TARGET_CAPTURE: \"--gb-legal-target-capture\",\n CHECK: \"--gb-check\",\n COORDINATE_LIGHT: \"--gb-coord-light\",\n COORDINATE_DARK: \"--gb-coord-dark\",\n /**\n * Opacity of the piece left behind at the drag origin while the ghost\n * is in flight. Default `0.35` (lichess parity). Themes may override\n * to `0` for a chess.com-style \"piece vanishes\" effect.\n */\n DRAG_GHOST_OPACITY: \"--gb-drag-ghost-opacity\",\n} as const;\n\nexport const defaultTheme: Theme = Object.freeze({\n ...green,\n [CSS_VARS.DRAG_GHOST_OPACITY]: \"0.35\",\n});\n\n/**\n * Default arrow-channel colours. Close to lichess's palette so arrows feel\n * familiar to players migrating over.\n */\nexport const defaultArrowColors = Object.freeze({\n default: \"rgba(21, 120, 27, 0.8)\",\n shift: \"rgba(153, 40, 40, 0.8)\",\n alt: \"rgba(230, 160, 0, 0.8)\",\n ctrl: \"rgba(0, 60, 130, 0.8)\",\n});\n\n/** Distinct blue tint used to preview pending premoves. */\nexport const DEFAULT_PREMOVE_TINT = \"rgba(30, 98, 255, 0.4)\";\n\n/** Red tint used to announce rejected moves. */\nexport const DEFAULT_ILLEGAL_FLASH_TINT = \"rgba(220, 40, 40, 0.55)\";\n","/**\n * FEN placement parsing — the one slice of FEN that both the server\n * `<StaticChessboard/>` and the client fallback-render path need.\n *\n * The parser is intentionally narrow: it only consumes the first\n * whitespace-delimited field of a FEN (piece placement) and returns a\n * 64-byte `Uint8Array` using our {@link BoardCell} encoding. Side-to-move,\n * castling, en-passant and the move clocks are the engine's business and\n * don't affect how the board is drawn.\n *\n * Kept in its own module so that:\n *\n * 1. `server.tsx` can import it without pulling a `\"use client\"` module.\n * 2. The client `<Chessboard/>`'s fallback path (`fallbackFen`) can reuse\n * the exact same parser — one source of truth for FEN shape.\n *\n * Throws on malformed input so misconfiguration fails at render time\n * rather than silently producing a blank board.\n */\n\nimport type { BoardCell } from \"./core/index.js\";\n\n/** FEN piece letter → our 1..12 `BoardCell` code, or 0 for unknown. */\nfunction pieceCellFromFenChar(ch: string): BoardCell {\n switch (ch) {\n case \"P\":\n return 1 as BoardCell;\n case \"N\":\n return 2 as BoardCell;\n case \"B\":\n return 3 as BoardCell;\n case \"R\":\n return 4 as BoardCell;\n case \"Q\":\n return 5 as BoardCell;\n case \"K\":\n return 6 as BoardCell;\n case \"p\":\n return 7 as BoardCell;\n case \"n\":\n return 8 as BoardCell;\n case \"b\":\n return 9 as BoardCell;\n case \"r\":\n return 10 as BoardCell;\n case \"q\":\n return 11 as BoardCell;\n case \"k\":\n return 12 as BoardCell;\n default:\n return 0 as BoardCell;\n }\n}\n\n/**\n * Parse the piece-placement field of a FEN into a 64-byte `Uint8Array`\n * in LERF order (index 0 = a1, index 63 = h8).\n *\n * Only the first whitespace-delimited token is read; anything after it\n * is ignored. That means both a full FEN (`\"rnbq... w KQkq - 0 1\"`) and\n * a bare placement (`\"rnbq...\"`) are accepted.\n */\nexport function parseFenPlacement(fen: string): Uint8Array {\n const placement = fen.trim().split(/\\s+/)[0];\n if (placement === undefined) {\n throw new Error(\"FEN is empty\");\n }\n const ranks = placement.split(\"/\");\n if (ranks.length !== 8) {\n throw new Error(`FEN must have 8 ranks, got ${ranks.length}`);\n }\n const board = new Uint8Array(64);\n for (let r = 0; r < 8; r++) {\n // FEN lists ranks 8→1; our LERF layout has rank 7 at top, 0 at bottom.\n const rank = 7 - r;\n const row = ranks[r];\n if (row === undefined) throw new Error(`FEN rank ${rank + 1} missing`);\n let file = 0;\n for (const ch of row) {\n if (file > 7) throw new Error(`FEN rank ${rank + 1} has too many files`);\n const skip = Number.parseInt(ch, 10);\n if (!Number.isNaN(skip)) {\n file += skip;\n continue;\n }\n const cell = pieceCellFromFenChar(ch);\n if (cell === 0) throw new Error(`FEN contains unknown piece: ${ch}`);\n board[rank * 8 + file] = cell;\n file++;\n }\n if (file !== 8) {\n throw new Error(`FEN rank ${rank + 1} ended at file ${file}, expected 8`);\n }\n }\n return board;\n}\n\n/** Standard starting position FEN, re-exported for convenience. */\nexport const STARTING_FEN = \"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1\";\n","import type { PieceRenderer } from \"../types.js\";\nimport { neo } from \"./sets/neo.js\";\n\nexport const defaultPieces: PieceRenderer = neo;\n"]}
@@ -5,6 +5,12 @@ import { neo } from './chunk-U6WAD322.js';
5
5
  var CSS_VARS = {
6
6
  SQ_LIGHT: "--gb-sq-light",
7
7
  SQ_DARK: "--gb-sq-dark",
8
+ SQ_LIGHT_IMAGE: "--gb-sq-light-image",
9
+ SQ_DARK_IMAGE: "--gb-sq-dark-image",
10
+ SQ_IMAGE_SIZE: "--gb-sq-image-size",
11
+ SQ_BLEND_MODE: "--gb-sq-blend-mode",
12
+ PIECE_FILTER_WHITE: "--gb-piece-filter-white",
13
+ PIECE_FILTER_BLACK: "--gb-piece-filter-black",
8
14
  LAST_MOVE: "--gb-last-move",
9
15
  SELECTED: "--gb-selected",
10
16
  LEGAL_TARGET: "--gb-legal-target",
@@ -101,5 +107,5 @@ function parseFenPlacement(fen) {
101
107
  var defaultPieces = neo;
102
108
 
103
109
  export { CSS_VARS, DEFAULT_ILLEGAL_FLASH_TINT, DEFAULT_PREMOVE_TINT, defaultArrowColors, defaultPieces, defaultTheme, parseFenPlacement };
104
- //# sourceMappingURL=chunk-CXDGJMYL.js.map
105
- //# sourceMappingURL=chunk-CXDGJMYL.js.map
110
+ //# sourceMappingURL=chunk-EJUGH25P.js.map
111
+ //# sourceMappingURL=chunk-EJUGH25P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/default-theme.ts","../src/fen.ts","../src/pieces/default-pieces.tsx"],"names":[],"mappings":";;;;AAIO,IAAM,QAAA,GAAW;AAAA,EACtB,QAAA,EAAU,eAAA;AAAA,EACV,OAAA,EAAS,cAAA;AAAA,EACT,cAAA,EAAgB,qBAAA;AAAA,EAChB,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,kBAAA,EAAoB,yBAAA;AAAA,EACpB,kBAAA,EAAoB,yBAAA;AAAA,EACpB,SAAA,EAAW,gBAAA;AAAA,EACX,QAAA,EAAU,eAAA;AAAA,EACV,YAAA,EAAc,mBAAA;AAAA,EACd,oBAAA,EAAsB,2BAAA;AAAA,EACtB,KAAA,EAAO,YAAA;AAAA,EACP,gBAAA,EAAkB,kBAAA;AAAA,EAClB,eAAA,EAAiB,iBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjB,kBAAA,EAAoB;AACtB;AAEO,IAAM,YAAA,GAAsB,OAAO,MAAA,CAAO;AAAA,EAC/C,GAAG,KAAA;AAAA,EACH,CAAC,QAAA,CAAS,kBAAkB,GAAG;AACjC,CAAC;AAMM,IAAM,kBAAA,GAAqB,OAAO,MAAA,CAAO;AAAA,EAC9C,OAAA,EAAS,wBAAA;AAAA,EACT,KAAA,EAAO,wBAAA;AAAA,EACP,GAAA,EAAK,wBAAA;AAAA,EACL,IAAA,EAAM;AACR,CAAC;AAGM,IAAM,oBAAA,GAAuB;AAG7B,IAAM,0BAAA,GAA6B;;;ACzB1C,SAAS,qBAAqB,EAAA,EAAuB;AACnD,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,GAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,CAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,EAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,EAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAA,OAAO,EAAA;AAAA,IACT;AACE,MAAA,OAAO,CAAA;AAAA;AAEb;AAUO,SAAS,kBAAkB,GAAA,EAAyB;AACzD,EAAA,MAAM,YAAY,GAAA,CAAI,IAAA,GAAO,KAAA,CAAM,KAAK,EAAE,CAAC,CAAA;AAC3C,EAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,IAAA,MAAM,IAAI,MAAM,cAAc,CAAA;AAAA,EAChC;AACA,EAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,KAAA,CAAM,GAAG,CAAA;AACjC,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,2BAAA,EAA8B,KAAA,CAAM,MAAM,CAAA,CAAE,CAAA;AAAA,EAC9D;AACA,EAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,CAAW,EAAE,CAAA;AAC/B,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAE1B,IAAA,MAAM,OAAO,CAAA,GAAI,CAAA;AACjB,IAAA,MAAM,GAAA,GAAM,MAAM,CAAC,CAAA;AACnB,IAAA,IAAI,GAAA,KAAQ,QAAW,MAAM,IAAI,MAAM,CAAA,SAAA,EAAY,IAAA,GAAO,CAAC,CAAA,QAAA,CAAU,CAAA;AACrE,IAAA,IAAI,IAAA,GAAO,CAAA;AACX,IAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AACpB,MAAA,IAAI,IAAA,GAAO,GAAG,MAAM,IAAI,MAAM,CAAA,SAAA,EAAY,IAAA,GAAO,CAAC,CAAA,mBAAA,CAAqB,CAAA;AACvE,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,QAAA,CAAS,EAAA,EAAI,EAAE,CAAA;AACnC,MAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA,EAAG;AACvB,QAAA,IAAA,IAAQ,IAAA;AACR,QAAA;AAAA,MACF;AACA,MAAA,MAAM,IAAA,GAAO,qBAAqB,EAAE,CAAA;AACpC,MAAA,IAAI,SAAS,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,CAAA,4BAAA,EAA+B,EAAE,CAAA,CAAE,CAAA;AACnE,MAAA,KAAA,CAAM,IAAA,GAAO,CAAA,GAAI,IAAI,CAAA,GAAI,IAAA;AACzB,MAAA,IAAA,EAAA;AAAA,IACF;AACA,IAAA,IAAI,SAAS,CAAA,EAAG;AACd,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,SAAA,EAAY,OAAO,CAAC,CAAA,eAAA,EAAkB,IAAI,CAAA,YAAA,CAAc,CAAA;AAAA,IAC1E;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;;;AC5FO,IAAM,aAAA,GAA+B","file":"chunk-EJUGH25P.js","sourcesContent":["import { green } from \"./themes/green.js\";\nimport type { Theme } from \"./types.js\";\n\n/** Keys every Gigaboard board understands. */\nexport const CSS_VARS = {\n SQ_LIGHT: \"--gb-sq-light\",\n SQ_DARK: \"--gb-sq-dark\",\n SQ_LIGHT_IMAGE: \"--gb-sq-light-image\",\n SQ_DARK_IMAGE: \"--gb-sq-dark-image\",\n SQ_IMAGE_SIZE: \"--gb-sq-image-size\",\n SQ_BLEND_MODE: \"--gb-sq-blend-mode\",\n PIECE_FILTER_WHITE: \"--gb-piece-filter-white\",\n PIECE_FILTER_BLACK: \"--gb-piece-filter-black\",\n LAST_MOVE: \"--gb-last-move\",\n SELECTED: \"--gb-selected\",\n LEGAL_TARGET: \"--gb-legal-target\",\n LEGAL_TARGET_CAPTURE: \"--gb-legal-target-capture\",\n CHECK: \"--gb-check\",\n COORDINATE_LIGHT: \"--gb-coord-light\",\n COORDINATE_DARK: \"--gb-coord-dark\",\n /**\n * Opacity of the piece left behind at the drag origin while the ghost\n * is in flight. Default `0.35` (lichess parity). Themes may override\n * to `0` for a chess.com-style \"piece vanishes\" effect.\n */\n DRAG_GHOST_OPACITY: \"--gb-drag-ghost-opacity\",\n} as const;\n\nexport const defaultTheme: Theme = Object.freeze({\n ...green,\n [CSS_VARS.DRAG_GHOST_OPACITY]: \"0.35\",\n});\n\n/**\n * Default arrow-channel colours. Close to lichess's palette so arrows feel\n * familiar to players migrating over.\n */\nexport const defaultArrowColors = Object.freeze({\n default: \"rgba(21, 120, 27, 0.8)\",\n shift: \"rgba(153, 40, 40, 0.8)\",\n alt: \"rgba(230, 160, 0, 0.8)\",\n ctrl: \"rgba(0, 60, 130, 0.8)\",\n});\n\n/** Distinct blue tint used to preview pending premoves. */\nexport const DEFAULT_PREMOVE_TINT = \"rgba(30, 98, 255, 0.4)\";\n\n/** Red tint used to announce rejected moves. */\nexport const DEFAULT_ILLEGAL_FLASH_TINT = \"rgba(220, 40, 40, 0.55)\";\n","/**\n * FEN placement parsing — the one slice of FEN that both the server\n * `<StaticChessboard/>` and the client fallback-render path need.\n *\n * The parser is intentionally narrow: it only consumes the first\n * whitespace-delimited field of a FEN (piece placement) and returns a\n * 64-byte `Uint8Array` using our {@link BoardCell} encoding. Side-to-move,\n * castling, en-passant and the move clocks are the engine's business and\n * don't affect how the board is drawn.\n *\n * Kept in its own module so that:\n *\n * 1. `server.tsx` can import it without pulling a `\"use client\"` module.\n * 2. The client `<Chessboard/>`'s fallback path (`fallbackFen`) can reuse\n * the exact same parser — one source of truth for FEN shape.\n *\n * Throws on malformed input so misconfiguration fails at render time\n * rather than silently producing a blank board.\n */\n\nimport type { BoardCell } from \"./core/index.js\";\n\n/** FEN piece letter → our 1..12 `BoardCell` code, or 0 for unknown. */\nfunction pieceCellFromFenChar(ch: string): BoardCell {\n switch (ch) {\n case \"P\":\n return 1 as BoardCell;\n case \"N\":\n return 2 as BoardCell;\n case \"B\":\n return 3 as BoardCell;\n case \"R\":\n return 4 as BoardCell;\n case \"Q\":\n return 5 as BoardCell;\n case \"K\":\n return 6 as BoardCell;\n case \"p\":\n return 7 as BoardCell;\n case \"n\":\n return 8 as BoardCell;\n case \"b\":\n return 9 as BoardCell;\n case \"r\":\n return 10 as BoardCell;\n case \"q\":\n return 11 as BoardCell;\n case \"k\":\n return 12 as BoardCell;\n default:\n return 0 as BoardCell;\n }\n}\n\n/**\n * Parse the piece-placement field of a FEN into a 64-byte `Uint8Array`\n * in LERF order (index 0 = a1, index 63 = h8).\n *\n * Only the first whitespace-delimited token is read; anything after it\n * is ignored. That means both a full FEN (`\"rnbq... w KQkq - 0 1\"`) and\n * a bare placement (`\"rnbq...\"`) are accepted.\n */\nexport function parseFenPlacement(fen: string): Uint8Array {\n const placement = fen.trim().split(/\\s+/)[0];\n if (placement === undefined) {\n throw new Error(\"FEN is empty\");\n }\n const ranks = placement.split(\"/\");\n if (ranks.length !== 8) {\n throw new Error(`FEN must have 8 ranks, got ${ranks.length}`);\n }\n const board = new Uint8Array(64);\n for (let r = 0; r < 8; r++) {\n // FEN lists ranks 8→1; our LERF layout has rank 7 at top, 0 at bottom.\n const rank = 7 - r;\n const row = ranks[r];\n if (row === undefined) throw new Error(`FEN rank ${rank + 1} missing`);\n let file = 0;\n for (const ch of row) {\n if (file > 7) throw new Error(`FEN rank ${rank + 1} has too many files`);\n const skip = Number.parseInt(ch, 10);\n if (!Number.isNaN(skip)) {\n file += skip;\n continue;\n }\n const cell = pieceCellFromFenChar(ch);\n if (cell === 0) throw new Error(`FEN contains unknown piece: ${ch}`);\n board[rank * 8 + file] = cell;\n file++;\n }\n if (file !== 8) {\n throw new Error(`FEN rank ${rank + 1} ended at file ${file}, expected 8`);\n }\n }\n return board;\n}\n\n/** Standard starting position FEN, re-exported for convenience. */\nexport const STARTING_FEN = \"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1\";\n","import type { PieceRenderer } from \"../types.js\";\nimport { neo } from \"./sets/neo.js\";\n\nexport const defaultPieces: PieceRenderer = neo;\n"]}
@@ -1099,7 +1099,7 @@ function writeBoardCell(out, index, cell) {
1099
1099
  }
1100
1100
 
1101
1101
  // src/core/index.ts
1102
- var PACKAGE_VERSION = "1.3.2";
1102
+ var PACKAGE_VERSION = "1.3.3";
1103
1103
 
1104
1104
  exports.BOARD_CELL_BB = BOARD_CELL_BB;
1105
1105
  exports.BOARD_CELL_BK = BOARD_CELL_BK;
@@ -1144,5 +1144,5 @@ exports.preloadGigachessAdapter = preloadGigachessAdapter;
1144
1144
  exports.toSquareIndex = toSquareIndex;
1145
1145
  exports.unpackMove = unpackMove;
1146
1146
  exports.writeBoardCell = writeBoardCell;
1147
- //# sourceMappingURL=chunk-6VYZY2Y4.cjs.map
1148
- //# sourceMappingURL=chunk-6VYZY2Y4.cjs.map
1147
+ //# sourceMappingURL=chunk-ENYRJ4Q2.cjs.map
1148
+ //# sourceMappingURL=chunk-ENYRJ4Q2.cjs.map