gigaboard 1.5.4 → 1.7.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 (50) hide show
  1. package/README.md +18 -0
  2. package/dist/chunk-GL2OZMOW.js +79 -0
  3. package/dist/chunk-GL2OZMOW.js.map +1 -0
  4. package/dist/chunk-KTL53IC3.cjs +82 -0
  5. package/dist/chunk-KTL53IC3.cjs.map +1 -0
  6. package/dist/{chunk-FUP2LDMO.cjs → chunk-MCD4AIR2.cjs} +11 -3
  7. package/dist/chunk-MCD4AIR2.cjs.map +1 -0
  8. package/dist/{chunk-6F3FZAG7.js → chunk-SOM6XGJO.js} +11 -3
  9. package/dist/chunk-SOM6XGJO.js.map +1 -0
  10. package/dist/core.cjs +51 -51
  11. package/dist/core.js +1 -1
  12. package/dist/index.cjs +161 -83
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.d.cts +13 -5
  15. package/dist/index.d.ts +13 -5
  16. package/dist/index.js +101 -24
  17. package/dist/index.js.map +1 -1
  18. package/dist/pieces/giga-diagram.cjs +17 -0
  19. package/dist/pieces/giga-diagram.cjs.map +1 -0
  20. package/dist/pieces/giga-diagram.d.cts +11 -0
  21. package/dist/pieces/giga-diagram.d.ts +11 -0
  22. package/dist/pieces/giga-diagram.js +4 -0
  23. package/dist/pieces/giga-diagram.js.map +1 -0
  24. package/dist/pieces-svg/giga-diagram/bB.svg +23 -0
  25. package/dist/pieces-svg/giga-diagram/bK.svg +23 -0
  26. package/dist/pieces-svg/giga-diagram/bN.svg +20 -0
  27. package/dist/pieces-svg/giga-diagram/bP.svg +23 -0
  28. package/dist/pieces-svg/giga-diagram/bQ.svg +35 -0
  29. package/dist/pieces-svg/giga-diagram/bR.svg +20 -0
  30. package/dist/pieces-svg/giga-diagram/wB.svg +23 -0
  31. package/dist/pieces-svg/giga-diagram/wK.svg +23 -0
  32. package/dist/pieces-svg/giga-diagram/wN.svg +20 -0
  33. package/dist/pieces-svg/giga-diagram/wP.svg +23 -0
  34. package/dist/pieces-svg/giga-diagram/wQ.svg +35 -0
  35. package/dist/pieces-svg/giga-diagram/wR.svg +20 -0
  36. package/dist/pieces.cjs +7 -1
  37. package/dist/pieces.cjs.map +1 -1
  38. package/dist/pieces.d.cts +2 -0
  39. package/dist/pieces.d.ts +2 -0
  40. package/dist/pieces.js +4 -1
  41. package/dist/pieces.js.map +1 -1
  42. package/dist/server.d.cts +1 -1
  43. package/dist/server.d.ts +1 -1
  44. package/dist/themes.cjs +13 -13
  45. package/dist/themes.js +6 -6
  46. package/dist/{types-Dox7oLof.d.cts → types-nvS4NLgA.d.cts} +49 -9
  47. package/dist/{types-4W8ULiE2.d.ts → types-pfl2aAFu.d.ts} +49 -9
  48. package/package.json +2 -2
  49. package/dist/chunk-6F3FZAG7.js.map +0 -1
  50. package/dist/chunk-FUP2LDMO.cjs.map +0 -1
package/README.md CHANGED
@@ -146,6 +146,24 @@ Available piece sets (`gigaboard/pieces/*`):
146
146
  * `merida` (wood-tinted tournament set)
147
147
  * `alpha` (minimalist mobile silhouettes)
148
148
  * `chesscom` (explicit alias for neo)
149
+ * `giga-diagram` (original cross-free SVG diagrams; ivory/charcoal with matched geometry)
150
+
151
+
152
+ ### Giga Diagram (new in 1.6.0)
153
+
154
+ The original, self-contained **Giga Diagram V4** vector set uses the same six
155
+ shapes for White and Black (different palettes only). It includes a wider,
156
+ **cross-free king**, five-point queen without interior diamond, and
157
+ Neo-inspired on-board proportions.
158
+
159
+ ```tsx
160
+ import { gigaDiagram } from "gigaboard/pieces/giga-diagram";
161
+ <Chessboard game={game} pieces={gigaDiagram} />;
162
+ ```
163
+
164
+ The twelve raw SVG sources ship in `dist/pieces-svg/giga-diagram/`.
165
+ The renderer uses data URLs so it works offline without separate asset paths.
166
+ With strict CSP, allow `img-src data:`.
149
167
 
150
168
  Available themes (`gigaboard/themes/*` — 22 tree-shakable palettes):
151
169
  * **Classic**: `green` (default chess.com), `brown` (tournament wood), `blue` (modern cool contrast), `wood` (warm board), `chesscomGreen`, `chesscomBlue`, `ic`
@@ -0,0 +1,79 @@
1
+ import { createImagePieceSet } from './chunk-44YKPXXT.js';
2
+
3
+ // src/pieces/sets/giga-diagram.ts
4
+ var GEOMETRY = Object.freeze({
5
+ K: '<g transform="translate(50 94) scale(0.910000 0.912088) translate(-50 -94)"><defs><clipPath id="body"><path d="M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z"/></clipPath></defs>\n<path d="M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z" class="main"/>\n<g clip-path="url(#body)"><path d="M54 33 C70 23 88 32 91 45 C92 60 83 70 80 79 H39 C61 66 77 49 80 34 C70 37 60 43 54 51Z" class="shade"/><path d="M16 43 C18 30 28 27 36 31 C29 32 21 40 19 50 C15 53 14 49 16 43Z" class="highlight"/></g>\n<path d="M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z" class="edge"/><circle cx="50" cy="16" r="11" class="main"/>\n<path d="M50 5 A11 11 0 0 1 50 27 Q51.65 23.92 55.28 18.42 A11 11 0 0 0 50 5Z" class="shade"/>\n<ellipse cx="46.48" cy="11.82" rx="3.74" ry="2.09" transform="rotate(-29 46.48 11.82)" class="highlight"/>\n<circle cx="50" cy="16" r="11" class="edge"/><defs><clipPath id="foot"><path d="M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z"/></clipPath></defs>\n<path d="M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M53.7 78 H87 V92 H68.5Z" class="shade"/><path d="M19 81 H54.440000000000005 L44.82 83 H19Z" class="highlight"/></g>\n<path d="M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z" class="edge"/></g>',
6
+ Q: '<g transform="translate(50 94) scale(1.000000 0.891304) translate(-50 -94)"><defs><clipPath id="body"><path d="M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z"/></clipPath></defs>\n<path d="M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z" class="main"/>\n<g clip-path="url(#body)"><path d="M48 17 L58 52 L72 25 L73 55 L85 35 L78 80 H44 L74 45 L59 65Z" class="shade"/><path d="M22 42 L29 54 L28 32 L41 58 L35 65Z" class="highlight"/></g>\n<path d="M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z" class="edge"/><circle cx="14" cy="33" r="6" class="main"/>\n<path d="M14 27 A6 6 0 0 1 14 39 Q14.9 37.32 16.88 34.32 A6 6 0 0 0 14 27Z" class="shade"/>\n<ellipse cx="12.08" cy="30.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 12.08 30.72)" class="highlight"/>\n<circle cx="14" cy="33" r="6" class="edge"/><circle cx="30" cy="21" r="6" class="main"/>\n<path d="M30 15 A6 6 0 0 1 30 27 Q30.9 25.32 32.88 22.32 A6 6 0 0 0 30 15Z" class="shade"/>\n<ellipse cx="28.08" cy="18.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 28.08 18.72)" class="highlight"/>\n<circle cx="30" cy="21" r="6" class="edge"/><circle cx="50" cy="10" r="6" class="main"/>\n<path d="M50 4 A6 6 0 0 1 50 16 Q50.9 14.32 52.88 11.32 A6 6 0 0 0 50 4Z" class="shade"/>\n<ellipse cx="48.08" cy="7.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 48.08 7.72)" class="highlight"/>\n<circle cx="50" cy="10" r="6" class="edge"/><circle cx="70" cy="21" r="6" class="main"/>\n<path d="M70 15 A6 6 0 0 1 70 27 Q70.9 25.32 72.88 22.32 A6 6 0 0 0 70 15Z" class="shade"/>\n<ellipse cx="68.08" cy="18.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 68.08 18.72)" class="highlight"/>\n<circle cx="70" cy="21" r="6" class="edge"/><circle cx="86" cy="33" r="6" class="main"/>\n<path d="M86 27 A6 6 0 0 1 86 39 Q86.9 37.32 88.88 34.32 A6 6 0 0 0 86 27Z" class="shade"/>\n<ellipse cx="84.08" cy="30.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 84.08 30.72)" class="highlight"/>\n<circle cx="86" cy="33" r="6" class="edge"/><defs><clipPath id="foot"><path d="M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z"/></clipPath></defs>\n<path d="M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M53.1 79 H81 V92 H65.5Z" class="shade"/><path d="M25 82 H53.720000000000006 L45.66 84 H25Z" class="highlight"/></g>\n<path d="M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z" class="edge"/></g>',
7
+ B: '<g transform="translate(50 94) scale(1.000000 0.893617) translate(-50 -94)"><defs><clipPath id="body"><path d="M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z"/></clipPath></defs>\n<path d="M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z" class="main"/>\n<g clip-path="url(#body)"><path d="M52 20 C63 32 74 41 71 55 C69 70 67 75 68 81 H46 C55 59 60 40 52 20Z" class="shade"/><path d="M43 27 C35 36 32 46 34 52 C35 56 38 48 40 41Z" class="highlight"/></g>\n<path d="M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z" class="edge"/><circle cx="50" cy="10" r="8.8" class="main"/>\n<path d="M50 1.1999999999999993 A8.8 8.8 0 0 1 50 18.8 Q51.32 16.336 54.224000000000004 11.936 A8.8 8.8 0 0 0 50 1.1999999999999993Z" class="shade"/>\n<ellipse cx="47.184" cy="6.656" rx="2.9920000000000004" ry="1.6720000000000002" transform="rotate(-29 47.184 6.656)" class="highlight"/>\n<circle cx="50" cy="10" r="8.8" class="edge"/><path d="M54 26 L45 51" class="slash"/><defs><clipPath id="foot"><path d="M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z"/></clipPath></defs>\n<path d="M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M52.5 79 H75 V92 H62.5Z" class="shade"/><path d="M31 82 H53 L46.5 84 H31Z" class="highlight"/></g>\n<path d="M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z" class="edge"/></g>',
8
+ N: '<g transform="translate(50 94) scale(1.000000 0.929412) translate(-50 -94)"><defs><clipPath id="body"><path d="M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z"/></clipPath></defs>\n<path d="M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z" class="main"/>\n<g clip-path="url(#body)"><path d="M46 15 C66 21 77 35 79 48 C80 63 78 73 82 80 H50 C60 67 64 46 59 32 C54 23 47 21 46 15Z" class="shade"/><path d="M22 44 L38 24 L38 18 Q31 25 23 33 L16 44 Q15 50 22 44Z" class="highlight"/></g>\n<path d="M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z" class="edge"/><path d="M40 30 Q45 28 48 31 Q45 35 39 34Z" class="detail-fill"/><circle cx="18.2" cy="47" r="1.7" class="detail-fill"/><path d="M23 53 C31 53 41 49 49 43" class="detail-line"/><defs><clipPath id="foot"><path d="M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z"/></clipPath></defs>\n<path d="M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M54.2 79 H83 V92 H67Z" class="shade"/><path d="M25 82 H54.84 L46.519999999999996 84 H25Z" class="highlight"/></g>\n<path d="M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z" class="edge"/></g>',
9
+ R: '<g transform="translate(50 94) scale(1.040000 1.164179) translate(-50 -94)"><defs><clipPath id="body"><path d="M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z"/></clipPath></defs>\n<path d="M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z" class="main"/>\n<g clip-path="url(#body)"><path d="M58 30 H75 V50 L69 56 L72 80 H54 L60 52Z" class="shade"/><path d="M29 35 H33 V43 H29Z M33 58 L31 73 H36 L38 58Z" class="highlight"/></g>\n<path d="M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z" class="edge"/><defs><clipPath id="foot"><path d="M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z"/></clipPath></defs>\n<path d="M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M53 79 H80 V92 H65Z" class="shade"/><path d="M26 82 H53.6 L45.8 84 H26Z" class="highlight"/></g>\n<path d="M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z" class="edge"/></g>',
10
+ P: '<g transform="translate(50 94) scale(1.130000 1.161616) translate(-50 -94)"><defs><clipPath id="body"><path d="M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z"/></clipPath></defs>\n<path d="M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z" class="main"/>\n<g clip-path="url(#body)"><path d="M51 58 H57 C57 69 63 77 70 87 H50 Q59 75 55 66Z" class="shade"/><path d="M43 65 C41 70 39 73 35 78 L35 83 L40 78Z" class="highlight"/></g>\n<path d="M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z" class="edge"/><circle cx="50" cy="48" r="11.5" class="main"/>\n<path d="M50 36.5 A11.5 11.5 0 0 1 50 59.5 Q51.725 56.28 55.519999999999996 50.53 A11.5 11.5 0 0 0 50 36.5Z" class="shade"/>\n<ellipse cx="46.32" cy="43.63" rx="3.91" ry="2.185" transform="rotate(-29 46.32 43.63)" class="highlight"/>\n<circle cx="50" cy="48" r="11.5" class="edge"/><defs><clipPath id="foot"><path d="M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z"/></clipPath></defs>\n<path d="M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M52.1 84 H71 V92 H60.5Z" class="shade"/><path d="M34 87 H52.52 L47.06 89 H34Z" class="highlight"/></g>\n<path d="M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z" class="edge"/></g>'
11
+ });
12
+ var PALETTES = {
13
+ w: {
14
+ main: "#faf8f2",
15
+ highlight: "#ffffff",
16
+ shade: "#cecac2",
17
+ medium: "#e8e5de",
18
+ outline: "#121416",
19
+ detail: "#191b1d"
20
+ },
21
+ b: {
22
+ main: "#4e5053",
23
+ highlight: "#898b8f",
24
+ shade: "#2d2f31",
25
+ medium: "#616367",
26
+ outline: "#090b0c",
27
+ detail: "#0b0d0e"
28
+ }
29
+ };
30
+ var NAMES = {
31
+ K: "King",
32
+ Q: "Queen",
33
+ B: "Bishop",
34
+ N: "Knight",
35
+ R: "Rook",
36
+ P: "Pawn"
37
+ };
38
+ function style(p) {
39
+ return `<style>
40
+ .main{fill:${p.main};stroke:none}
41
+ .edge{fill:none;stroke:${p.outline};stroke-width:3.8;stroke-linejoin:round;stroke-linecap:round}
42
+ .shade{fill:${p.shade}}
43
+ .highlight{fill:${p.highlight}}
44
+ .medium{fill:${p.medium}}
45
+ .detail-fill{fill:${p.detail}}
46
+ .detail-line{fill:none;stroke:${p.detail};stroke-width:2.1;stroke-linecap:round}
47
+ .slash{fill:none;stroke:${p.detail};stroke-width:6;stroke-linecap:round}
48
+ </style>`;
49
+ }
50
+ function gigaDiagramSvg(role, side) {
51
+ const name = `${side === "w" ? "White" : "Black"} ${NAMES[role]}`;
52
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100" aria-label="${name}">
53
+ <title>${name} \u2014 Giga Diagram</title>
54
+ ${style(PALETTES[side])}
55
+ ${GEOMETRY[role]}
56
+ </svg>`;
57
+ }
58
+ function imageUrl(role, side) {
59
+ return `data:image/svg+xml,${encodeURIComponent(gigaDiagramSvg(role, side))}`;
60
+ }
61
+ var URLS = Object.freeze({
62
+ 1: imageUrl("P", "w"),
63
+ 2: imageUrl("N", "w"),
64
+ 3: imageUrl("B", "w"),
65
+ 4: imageUrl("R", "w"),
66
+ 5: imageUrl("Q", "w"),
67
+ 6: imageUrl("K", "w"),
68
+ 7: imageUrl("P", "b"),
69
+ 8: imageUrl("N", "b"),
70
+ 9: imageUrl("B", "b"),
71
+ 10: imageUrl("R", "b"),
72
+ 11: imageUrl("Q", "b"),
73
+ 12: imageUrl("K", "b")
74
+ });
75
+ var gigaDiagram = createImagePieceSet(URLS);
76
+
77
+ export { gigaDiagram, gigaDiagramSvg };
78
+ //# sourceMappingURL=chunk-GL2OZMOW.js.map
79
+ //# sourceMappingURL=chunk-GL2OZMOW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/pieces/sets/giga-diagram.ts"],"names":[],"mappings":"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","file":"chunk-GL2OZMOW.js","sourcesContent":["/**\n * Giga Diagram V4 — original, cross-free chess-diagram symbols.\n *\n * Six shared vector geometries; black/white differ solely by color palette.\n * All 12 URLs are cached via the existing pooled image piece-set factory.\n * The optional subpath is self-contained: no CDN or separate asset fetch.\n *\n * Authoring reference: docs/pieces/giga-diagram.md\n * SVG source files: src/pieces/svg/giga-diagram/\n * With strict CSP, allow \"img-src data:\" for SVG data URLs.\n */\nimport { createImagePieceSet, type PieceUrlTable } from \"../create-image-piece-set.js\";\n\nexport type GigaDiagramRole = \"P\" | \"N\" | \"B\" | \"R\" | \"Q\" | \"K\";\nexport type GigaDiagramSide = \"w\" | \"b\";\n\n/** Geometry is always shared between white and black versions. */\nconst GEOMETRY: Readonly<Record<GigaDiagramRole, string>> = Object.freeze({\n K: '<g transform=\"translate(50 94) scale(0.910000 0.912088) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z\"/></clipPath></defs>\\n<path d=\"M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M54 33 C70 23 88 32 91 45 C92 60 83 70 80 79 H39 C61 66 77 49 80 34 C70 37 60 43 54 51Z\" class=\"shade\"/><path d=\"M16 43 C18 30 28 27 36 31 C29 32 21 40 19 50 C15 53 14 49 16 43Z\" class=\"highlight\"/></g>\\n<path d=\"M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z\" class=\"edge\"/><circle cx=\"50\" cy=\"16\" r=\"11\" class=\"main\"/>\\n<path d=\"M50 5 A11 11 0 0 1 50 27 Q51.65 23.92 55.28 18.42 A11 11 0 0 0 50 5Z\" class=\"shade\"/>\\n<ellipse cx=\"46.48\" cy=\"11.82\" rx=\"3.74\" ry=\"2.09\" transform=\"rotate(-29 46.48 11.82)\" class=\"highlight\"/>\\n<circle cx=\"50\" cy=\"16\" r=\"11\" class=\"edge\"/><defs><clipPath id=\"foot\"><path d=\"M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z\"/></clipPath></defs>\\n<path d=\"M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M53.7 78 H87 V92 H68.5Z\" class=\"shade\"/><path d=\"M19 81 H54.440000000000005 L44.82 83 H19Z\" class=\"highlight\"/></g>\\n<path d=\"M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z\" class=\"edge\"/></g>',\n Q: '<g transform=\"translate(50 94) scale(1.000000 0.891304) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z\"/></clipPath></defs>\\n<path d=\"M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M48 17 L58 52 L72 25 L73 55 L85 35 L78 80 H44 L74 45 L59 65Z\" class=\"shade\"/><path d=\"M22 42 L29 54 L28 32 L41 58 L35 65Z\" class=\"highlight\"/></g>\\n<path d=\"M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z\" class=\"edge\"/><circle cx=\"14\" cy=\"33\" r=\"6\" class=\"main\"/>\\n<path d=\"M14 27 A6 6 0 0 1 14 39 Q14.9 37.32 16.88 34.32 A6 6 0 0 0 14 27Z\" class=\"shade\"/>\\n<ellipse cx=\"12.08\" cy=\"30.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 12.08 30.72)\" class=\"highlight\"/>\\n<circle cx=\"14\" cy=\"33\" r=\"6\" class=\"edge\"/><circle cx=\"30\" cy=\"21\" r=\"6\" class=\"main\"/>\\n<path d=\"M30 15 A6 6 0 0 1 30 27 Q30.9 25.32 32.88 22.32 A6 6 0 0 0 30 15Z\" class=\"shade\"/>\\n<ellipse cx=\"28.08\" cy=\"18.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 28.08 18.72)\" class=\"highlight\"/>\\n<circle cx=\"30\" cy=\"21\" r=\"6\" class=\"edge\"/><circle cx=\"50\" cy=\"10\" r=\"6\" class=\"main\"/>\\n<path d=\"M50 4 A6 6 0 0 1 50 16 Q50.9 14.32 52.88 11.32 A6 6 0 0 0 50 4Z\" class=\"shade\"/>\\n<ellipse cx=\"48.08\" cy=\"7.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 48.08 7.72)\" class=\"highlight\"/>\\n<circle cx=\"50\" cy=\"10\" r=\"6\" class=\"edge\"/><circle cx=\"70\" cy=\"21\" r=\"6\" class=\"main\"/>\\n<path d=\"M70 15 A6 6 0 0 1 70 27 Q70.9 25.32 72.88 22.32 A6 6 0 0 0 70 15Z\" class=\"shade\"/>\\n<ellipse cx=\"68.08\" cy=\"18.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 68.08 18.72)\" class=\"highlight\"/>\\n<circle cx=\"70\" cy=\"21\" r=\"6\" class=\"edge\"/><circle cx=\"86\" cy=\"33\" r=\"6\" class=\"main\"/>\\n<path d=\"M86 27 A6 6 0 0 1 86 39 Q86.9 37.32 88.88 34.32 A6 6 0 0 0 86 27Z\" class=\"shade\"/>\\n<ellipse cx=\"84.08\" cy=\"30.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 84.08 30.72)\" class=\"highlight\"/>\\n<circle cx=\"86\" cy=\"33\" r=\"6\" class=\"edge\"/><defs><clipPath id=\"foot\"><path d=\"M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\"/></clipPath></defs>\\n<path d=\"M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M53.1 79 H81 V92 H65.5Z\" class=\"shade\"/><path d=\"M25 82 H53.720000000000006 L45.66 84 H25Z\" class=\"highlight\"/></g>\\n<path d=\"M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\" class=\"edge\"/></g>',\n B: '<g transform=\"translate(50 94) scale(1.000000 0.893617) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z\"/></clipPath></defs>\\n<path d=\"M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M52 20 C63 32 74 41 71 55 C69 70 67 75 68 81 H46 C55 59 60 40 52 20Z\" class=\"shade\"/><path d=\"M43 27 C35 36 32 46 34 52 C35 56 38 48 40 41Z\" class=\"highlight\"/></g>\\n<path d=\"M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z\" class=\"edge\"/><circle cx=\"50\" cy=\"10\" r=\"8.8\" class=\"main\"/>\\n<path d=\"M50 1.1999999999999993 A8.8 8.8 0 0 1 50 18.8 Q51.32 16.336 54.224000000000004 11.936 A8.8 8.8 0 0 0 50 1.1999999999999993Z\" class=\"shade\"/>\\n<ellipse cx=\"47.184\" cy=\"6.656\" rx=\"2.9920000000000004\" ry=\"1.6720000000000002\" transform=\"rotate(-29 47.184 6.656)\" class=\"highlight\"/>\\n<circle cx=\"50\" cy=\"10\" r=\"8.8\" class=\"edge\"/><path d=\"M54 26 L45 51\" class=\"slash\"/><defs><clipPath id=\"foot\"><path d=\"M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z\"/></clipPath></defs>\\n<path d=\"M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M52.5 79 H75 V92 H62.5Z\" class=\"shade\"/><path d=\"M31 82 H53 L46.5 84 H31Z\" class=\"highlight\"/></g>\\n<path d=\"M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z\" class=\"edge\"/></g>',\n N: '<g transform=\"translate(50 94) scale(1.000000 0.929412) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z\"/></clipPath></defs>\\n<path d=\"M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M46 15 C66 21 77 35 79 48 C80 63 78 73 82 80 H50 C60 67 64 46 59 32 C54 23 47 21 46 15Z\" class=\"shade\"/><path d=\"M22 44 L38 24 L38 18 Q31 25 23 33 L16 44 Q15 50 22 44Z\" class=\"highlight\"/></g>\\n<path d=\"M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z\" class=\"edge\"/><path d=\"M40 30 Q45 28 48 31 Q45 35 39 34Z\" class=\"detail-fill\"/><circle cx=\"18.2\" cy=\"47\" r=\"1.7\" class=\"detail-fill\"/><path d=\"M23 53 C31 53 41 49 49 43\" class=\"detail-line\"/><defs><clipPath id=\"foot\"><path d=\"M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\"/></clipPath></defs>\\n<path d=\"M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M54.2 79 H83 V92 H67Z\" class=\"shade\"/><path d=\"M25 82 H54.84 L46.519999999999996 84 H25Z\" class=\"highlight\"/></g>\\n<path d=\"M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\" class=\"edge\"/></g>',\n R: '<g transform=\"translate(50 94) scale(1.040000 1.164179) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z\"/></clipPath></defs>\\n<path d=\"M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M58 30 H75 V50 L69 56 L72 80 H54 L60 52Z\" class=\"shade\"/><path d=\"M29 35 H33 V43 H29Z M33 58 L31 73 H36 L38 58Z\" class=\"highlight\"/></g>\\n<path d=\"M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z\" class=\"edge\"/><defs><clipPath id=\"foot\"><path d=\"M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z\"/></clipPath></defs>\\n<path d=\"M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M53 79 H80 V92 H65Z\" class=\"shade\"/><path d=\"M26 82 H53.6 L45.8 84 H26Z\" class=\"highlight\"/></g>\\n<path d=\"M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z\" class=\"edge\"/></g>',\n P: '<g transform=\"translate(50 94) scale(1.130000 1.161616) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z\"/></clipPath></defs>\\n<path d=\"M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M51 58 H57 C57 69 63 77 70 87 H50 Q59 75 55 66Z\" class=\"shade\"/><path d=\"M43 65 C41 70 39 73 35 78 L35 83 L40 78Z\" class=\"highlight\"/></g>\\n<path d=\"M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z\" class=\"edge\"/><circle cx=\"50\" cy=\"48\" r=\"11.5\" class=\"main\"/>\\n<path d=\"M50 36.5 A11.5 11.5 0 0 1 50 59.5 Q51.725 56.28 55.519999999999996 50.53 A11.5 11.5 0 0 0 50 36.5Z\" class=\"shade\"/>\\n<ellipse cx=\"46.32\" cy=\"43.63\" rx=\"3.91\" ry=\"2.185\" transform=\"rotate(-29 46.32 43.63)\" class=\"highlight\"/>\\n<circle cx=\"50\" cy=\"48\" r=\"11.5\" class=\"edge\"/><defs><clipPath id=\"foot\"><path d=\"M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z\"/></clipPath></defs>\\n<path d=\"M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M52.1 84 H71 V92 H60.5Z\" class=\"shade\"/><path d=\"M34 87 H52.52 L47.06 89 H34Z\" class=\"highlight\"/></g>\\n<path d=\"M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z\" class=\"edge\"/></g>',\n});\n\nconst PALETTES = {\n w: {\n main: \"#faf8f2\",\n highlight: \"#ffffff\",\n shade: \"#cecac2\",\n medium: \"#e8e5de\",\n outline: \"#121416\",\n detail: \"#191b1d\",\n },\n b: {\n main: \"#4e5053\",\n highlight: \"#898b8f\",\n shade: \"#2d2f31\",\n medium: \"#616367\",\n outline: \"#090b0c\",\n detail: \"#0b0d0e\",\n },\n} as const;\nconst NAMES: Record<GigaDiagramRole, string> = {\n K: \"King\",\n Q: \"Queen\",\n B: \"Bishop\",\n N: \"Knight\",\n R: \"Rook\",\n P: \"Pawn\",\n};\n\nfunction style(p: typeof PALETTES.w | typeof PALETTES.b): string {\n return `<style>\n.main{fill:${p.main};stroke:none}\n.edge{fill:none;stroke:${p.outline};stroke-width:3.8;stroke-linejoin:round;stroke-linecap:round}\n.shade{fill:${p.shade}}\n.highlight{fill:${p.highlight}}\n.medium{fill:${p.medium}}\n.detail-fill{fill:${p.detail}}\n.detail-line{fill:none;stroke:${p.detail};stroke-width:2.1;stroke-linecap:round}\n.slash{fill:none;stroke:${p.detail};stroke-width:6;stroke-linecap:round}\n</style>`;\n}\n\n/** The actual source SVG for a piece. No external artwork dependencies. */\nexport function gigaDiagramSvg(role: GigaDiagramRole, side: GigaDiagramSide): string {\n const name = `${side === \"w\" ? \"White\" : \"Black\"} ${NAMES[role]}`;\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewBox=\"0 0 100 100\" aria-label=\"${name}\">\n<title>${name} — Giga Diagram</title>\n${style(PALETTES[side])}\n${GEOMETRY[role]}\n</svg>`;\n}\n\nfunction imageUrl(role: GigaDiagramRole, side: GigaDiagramSide): string {\n return `data:image/svg+xml,${encodeURIComponent(gigaDiagramSvg(role, side))}`;\n}\n\nconst URLS: PieceUrlTable = Object.freeze({\n 1: imageUrl(\"P\", \"w\"),\n 2: imageUrl(\"N\", \"w\"),\n 3: imageUrl(\"B\", \"w\"),\n 4: imageUrl(\"R\", \"w\"),\n 5: imageUrl(\"Q\", \"w\"),\n 6: imageUrl(\"K\", \"w\"),\n 7: imageUrl(\"P\", \"b\"),\n 8: imageUrl(\"N\", \"b\"),\n 9: imageUrl(\"B\", \"b\"),\n 10: imageUrl(\"R\", \"b\"),\n 11: imageUrl(\"Q\", \"b\"),\n 12: imageUrl(\"K\", \"b\"),\n});\n\n/** Select with <Chessboard pieces={gigaDiagram} />. */\nexport const gigaDiagram = createImagePieceSet(URLS);\n"]}
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ var chunkFNRS6YJI_cjs = require('./chunk-FNRS6YJI.cjs');
4
+
5
+ // src/pieces/sets/giga-diagram.ts
6
+ var GEOMETRY = Object.freeze({
7
+ K: '<g transform="translate(50 94) scale(0.910000 0.912088) translate(-50 -94)"><defs><clipPath id="body"><path d="M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z"/></clipPath></defs>\n<path d="M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z" class="main"/>\n<g clip-path="url(#body)"><path d="M54 33 C70 23 88 32 91 45 C92 60 83 70 80 79 H39 C61 66 77 49 80 34 C70 37 60 43 54 51Z" class="shade"/><path d="M16 43 C18 30 28 27 36 31 C29 32 21 40 19 50 C15 53 14 49 16 43Z" class="highlight"/></g>\n<path d="M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z" class="edge"/><circle cx="50" cy="16" r="11" class="main"/>\n<path d="M50 5 A11 11 0 0 1 50 27 Q51.65 23.92 55.28 18.42 A11 11 0 0 0 50 5Z" class="shade"/>\n<ellipse cx="46.48" cy="11.82" rx="3.74" ry="2.09" transform="rotate(-29 46.48 11.82)" class="highlight"/>\n<circle cx="50" cy="16" r="11" class="edge"/><defs><clipPath id="foot"><path d="M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z"/></clipPath></defs>\n<path d="M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M53.7 78 H87 V92 H68.5Z" class="shade"/><path d="M19 81 H54.440000000000005 L44.82 83 H19Z" class="highlight"/></g>\n<path d="M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z" class="edge"/></g>',
8
+ Q: '<g transform="translate(50 94) scale(1.000000 0.891304) translate(-50 -94)"><defs><clipPath id="body"><path d="M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z"/></clipPath></defs>\n<path d="M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z" class="main"/>\n<g clip-path="url(#body)"><path d="M48 17 L58 52 L72 25 L73 55 L85 35 L78 80 H44 L74 45 L59 65Z" class="shade"/><path d="M22 42 L29 54 L28 32 L41 58 L35 65Z" class="highlight"/></g>\n<path d="M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z" class="edge"/><circle cx="14" cy="33" r="6" class="main"/>\n<path d="M14 27 A6 6 0 0 1 14 39 Q14.9 37.32 16.88 34.32 A6 6 0 0 0 14 27Z" class="shade"/>\n<ellipse cx="12.08" cy="30.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 12.08 30.72)" class="highlight"/>\n<circle cx="14" cy="33" r="6" class="edge"/><circle cx="30" cy="21" r="6" class="main"/>\n<path d="M30 15 A6 6 0 0 1 30 27 Q30.9 25.32 32.88 22.32 A6 6 0 0 0 30 15Z" class="shade"/>\n<ellipse cx="28.08" cy="18.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 28.08 18.72)" class="highlight"/>\n<circle cx="30" cy="21" r="6" class="edge"/><circle cx="50" cy="10" r="6" class="main"/>\n<path d="M50 4 A6 6 0 0 1 50 16 Q50.9 14.32 52.88 11.32 A6 6 0 0 0 50 4Z" class="shade"/>\n<ellipse cx="48.08" cy="7.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 48.08 7.72)" class="highlight"/>\n<circle cx="50" cy="10" r="6" class="edge"/><circle cx="70" cy="21" r="6" class="main"/>\n<path d="M70 15 A6 6 0 0 1 70 27 Q70.9 25.32 72.88 22.32 A6 6 0 0 0 70 15Z" class="shade"/>\n<ellipse cx="68.08" cy="18.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 68.08 18.72)" class="highlight"/>\n<circle cx="70" cy="21" r="6" class="edge"/><circle cx="86" cy="33" r="6" class="main"/>\n<path d="M86 27 A6 6 0 0 1 86 39 Q86.9 37.32 88.88 34.32 A6 6 0 0 0 86 27Z" class="shade"/>\n<ellipse cx="84.08" cy="30.72" rx="2.04" ry="1.1400000000000001" transform="rotate(-29 84.08 30.72)" class="highlight"/>\n<circle cx="86" cy="33" r="6" class="edge"/><defs><clipPath id="foot"><path d="M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z"/></clipPath></defs>\n<path d="M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M53.1 79 H81 V92 H65.5Z" class="shade"/><path d="M25 82 H53.720000000000006 L45.66 84 H25Z" class="highlight"/></g>\n<path d="M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z" class="edge"/></g>',
9
+ B: '<g transform="translate(50 94) scale(1.000000 0.893617) translate(-50 -94)"><defs><clipPath id="body"><path d="M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z"/></clipPath></defs>\n<path d="M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z" class="main"/>\n<g clip-path="url(#body)"><path d="M52 20 C63 32 74 41 71 55 C69 70 67 75 68 81 H46 C55 59 60 40 52 20Z" class="shade"/><path d="M43 27 C35 36 32 46 34 52 C35 56 38 48 40 41Z" class="highlight"/></g>\n<path d="M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z" class="edge"/><circle cx="50" cy="10" r="8.8" class="main"/>\n<path d="M50 1.1999999999999993 A8.8 8.8 0 0 1 50 18.8 Q51.32 16.336 54.224000000000004 11.936 A8.8 8.8 0 0 0 50 1.1999999999999993Z" class="shade"/>\n<ellipse cx="47.184" cy="6.656" rx="2.9920000000000004" ry="1.6720000000000002" transform="rotate(-29 47.184 6.656)" class="highlight"/>\n<circle cx="50" cy="10" r="8.8" class="edge"/><path d="M54 26 L45 51" class="slash"/><defs><clipPath id="foot"><path d="M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z"/></clipPath></defs>\n<path d="M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M52.5 79 H75 V92 H62.5Z" class="shade"/><path d="M31 82 H53 L46.5 84 H31Z" class="highlight"/></g>\n<path d="M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z" class="edge"/></g>',
10
+ N: '<g transform="translate(50 94) scale(1.000000 0.929412) translate(-50 -94)"><defs><clipPath id="body"><path d="M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z"/></clipPath></defs>\n<path d="M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z" class="main"/>\n<g clip-path="url(#body)"><path d="M46 15 C66 21 77 35 79 48 C80 63 78 73 82 80 H50 C60 67 64 46 59 32 C54 23 47 21 46 15Z" class="shade"/><path d="M22 44 L38 24 L38 18 Q31 25 23 33 L16 44 Q15 50 22 44Z" class="highlight"/></g>\n<path d="M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z" class="edge"/><path d="M40 30 Q45 28 48 31 Q45 35 39 34Z" class="detail-fill"/><circle cx="18.2" cy="47" r="1.7" class="detail-fill"/><path d="M23 53 C31 53 41 49 49 43" class="detail-line"/><defs><clipPath id="foot"><path d="M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z"/></clipPath></defs>\n<path d="M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M54.2 79 H83 V92 H67Z" class="shade"/><path d="M25 82 H54.84 L46.519999999999996 84 H25Z" class="highlight"/></g>\n<path d="M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z" class="edge"/></g>',
11
+ R: '<g transform="translate(50 94) scale(1.040000 1.164179) translate(-50 -94)"><defs><clipPath id="body"><path d="M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z"/></clipPath></defs>\n<path d="M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z" class="main"/>\n<g clip-path="url(#body)"><path d="M58 30 H75 V50 L69 56 L72 80 H54 L60 52Z" class="shade"/><path d="M29 35 H33 V43 H29Z M33 58 L31 73 H36 L38 58Z" class="highlight"/></g>\n<path d="M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z" class="edge"/><defs><clipPath id="foot"><path d="M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z"/></clipPath></defs>\n<path d="M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M53 79 H80 V92 H65Z" class="shade"/><path d="M26 82 H53.6 L45.8 84 H26Z" class="highlight"/></g>\n<path d="M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z" class="edge"/></g>',
12
+ P: '<g transform="translate(50 94) scale(1.130000 1.161616) translate(-50 -94)"><defs><clipPath id="body"><path d="M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z"/></clipPath></defs>\n<path d="M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z" class="main"/>\n<g clip-path="url(#body)"><path d="M51 58 H57 C57 69 63 77 70 87 H50 Q59 75 55 66Z" class="shade"/><path d="M43 65 C41 70 39 73 35 78 L35 83 L40 78Z" class="highlight"/></g>\n<path d="M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z" class="edge"/><circle cx="50" cy="48" r="11.5" class="main"/>\n<path d="M50 36.5 A11.5 11.5 0 0 1 50 59.5 Q51.725 56.28 55.519999999999996 50.53 A11.5 11.5 0 0 0 50 36.5Z" class="shade"/>\n<ellipse cx="46.32" cy="43.63" rx="3.91" ry="2.185" transform="rotate(-29 46.32 43.63)" class="highlight"/>\n<circle cx="50" cy="48" r="11.5" class="edge"/><defs><clipPath id="foot"><path d="M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z"/></clipPath></defs>\n<path d="M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z" class="main"/>\n<g clip-path="url(#foot)"><path d="M52.1 84 H71 V92 H60.5Z" class="shade"/><path d="M34 87 H52.52 L47.06 89 H34Z" class="highlight"/></g>\n<path d="M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z" class="edge"/></g>'
13
+ });
14
+ var PALETTES = {
15
+ w: {
16
+ main: "#faf8f2",
17
+ highlight: "#ffffff",
18
+ shade: "#cecac2",
19
+ medium: "#e8e5de",
20
+ outline: "#121416",
21
+ detail: "#191b1d"
22
+ },
23
+ b: {
24
+ main: "#4e5053",
25
+ highlight: "#898b8f",
26
+ shade: "#2d2f31",
27
+ medium: "#616367",
28
+ outline: "#090b0c",
29
+ detail: "#0b0d0e"
30
+ }
31
+ };
32
+ var NAMES = {
33
+ K: "King",
34
+ Q: "Queen",
35
+ B: "Bishop",
36
+ N: "Knight",
37
+ R: "Rook",
38
+ P: "Pawn"
39
+ };
40
+ function style(p) {
41
+ return `<style>
42
+ .main{fill:${p.main};stroke:none}
43
+ .edge{fill:none;stroke:${p.outline};stroke-width:3.8;stroke-linejoin:round;stroke-linecap:round}
44
+ .shade{fill:${p.shade}}
45
+ .highlight{fill:${p.highlight}}
46
+ .medium{fill:${p.medium}}
47
+ .detail-fill{fill:${p.detail}}
48
+ .detail-line{fill:none;stroke:${p.detail};stroke-width:2.1;stroke-linecap:round}
49
+ .slash{fill:none;stroke:${p.detail};stroke-width:6;stroke-linecap:round}
50
+ </style>`;
51
+ }
52
+ function gigaDiagramSvg(role, side) {
53
+ const name = `${side === "w" ? "White" : "Black"} ${NAMES[role]}`;
54
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100" aria-label="${name}">
55
+ <title>${name} \u2014 Giga Diagram</title>
56
+ ${style(PALETTES[side])}
57
+ ${GEOMETRY[role]}
58
+ </svg>`;
59
+ }
60
+ function imageUrl(role, side) {
61
+ return `data:image/svg+xml,${encodeURIComponent(gigaDiagramSvg(role, side))}`;
62
+ }
63
+ var URLS = Object.freeze({
64
+ 1: imageUrl("P", "w"),
65
+ 2: imageUrl("N", "w"),
66
+ 3: imageUrl("B", "w"),
67
+ 4: imageUrl("R", "w"),
68
+ 5: imageUrl("Q", "w"),
69
+ 6: imageUrl("K", "w"),
70
+ 7: imageUrl("P", "b"),
71
+ 8: imageUrl("N", "b"),
72
+ 9: imageUrl("B", "b"),
73
+ 10: imageUrl("R", "b"),
74
+ 11: imageUrl("Q", "b"),
75
+ 12: imageUrl("K", "b")
76
+ });
77
+ var gigaDiagram = chunkFNRS6YJI_cjs.createImagePieceSet(URLS);
78
+
79
+ exports.gigaDiagram = gigaDiagram;
80
+ exports.gigaDiagramSvg = gigaDiagramSvg;
81
+ //# sourceMappingURL=chunk-KTL53IC3.cjs.map
82
+ //# sourceMappingURL=chunk-KTL53IC3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/pieces/sets/giga-diagram.ts"],"names":["createImagePieceSet"],"mappings":"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","file":"chunk-KTL53IC3.cjs","sourcesContent":["/**\n * Giga Diagram V4 — original, cross-free chess-diagram symbols.\n *\n * Six shared vector geometries; black/white differ solely by color palette.\n * All 12 URLs are cached via the existing pooled image piece-set factory.\n * The optional subpath is self-contained: no CDN or separate asset fetch.\n *\n * Authoring reference: docs/pieces/giga-diagram.md\n * SVG source files: src/pieces/svg/giga-diagram/\n * With strict CSP, allow \"img-src data:\" for SVG data URLs.\n */\nimport { createImagePieceSet, type PieceUrlTable } from \"../create-image-piece-set.js\";\n\nexport type GigaDiagramRole = \"P\" | \"N\" | \"B\" | \"R\" | \"Q\" | \"K\";\nexport type GigaDiagramSide = \"w\" | \"b\";\n\n/** Geometry is always shared between white and black versions. */\nconst GEOMETRY: Readonly<Record<GigaDiagramRole, string>> = Object.freeze({\n K: '<g transform=\"translate(50 94) scale(0.910000 0.912088) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z\"/></clipPath></defs>\\n<path d=\"M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M54 33 C70 23 88 32 91 45 C92 60 83 70 80 79 H39 C61 66 77 49 80 34 C70 37 60 43 54 51Z\" class=\"shade\"/><path d=\"M16 43 C18 30 28 27 36 31 C29 32 21 40 19 50 C15 53 14 49 16 43Z\" class=\"highlight\"/></g>\\n<path d=\"M20 78 C12 68 6 57 9 43 C11 29 21 24 32 25 C40 25 46 30 50 37 C54 30 60 25 68 25 C79 24 89 29 91 43 C94 57 88 68 80 78Z\" class=\"edge\"/><circle cx=\"50\" cy=\"16\" r=\"11\" class=\"main\"/>\\n<path d=\"M50 5 A11 11 0 0 1 50 27 Q51.65 23.92 55.28 18.42 A11 11 0 0 0 50 5Z\" class=\"shade\"/>\\n<ellipse cx=\"46.48\" cy=\"11.82\" rx=\"3.74\" ry=\"2.09\" transform=\"rotate(-29 46.48 11.82)\" class=\"highlight\"/>\\n<circle cx=\"50\" cy=\"16\" r=\"11\" class=\"edge\"/><defs><clipPath id=\"foot\"><path d=\"M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z\"/></clipPath></defs>\\n<path d=\"M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M53.7 78 H87 V92 H68.5Z\" class=\"shade\"/><path d=\"M19 81 H54.440000000000005 L44.82 83 H19Z\" class=\"highlight\"/></g>\\n<path d=\"M18 78 H82 Q87 78 87 83 V87 Q87 92 82 92 H18 Q13 92 13 87 V83 Q13 78 18 78Z\" class=\"edge\"/></g>',\n Q: '<g transform=\"translate(50 94) scale(1.000000 0.891304) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z\"/></clipPath></defs>\\n<path d=\"M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M48 17 L58 52 L72 25 L73 55 L85 35 L78 80 H44 L74 45 L59 65Z\" class=\"shade\"/><path d=\"M22 42 L29 54 L28 32 L41 58 L35 65Z\" class=\"highlight\"/></g>\\n<path d=\"M14 34 L27 54 L28 24 L42 52 L50 14 L58 52 L72 24 L73 54 L86 34 L78 79 H22Z\" class=\"edge\"/><circle cx=\"14\" cy=\"33\" r=\"6\" class=\"main\"/>\\n<path d=\"M14 27 A6 6 0 0 1 14 39 Q14.9 37.32 16.88 34.32 A6 6 0 0 0 14 27Z\" class=\"shade\"/>\\n<ellipse cx=\"12.08\" cy=\"30.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 12.08 30.72)\" class=\"highlight\"/>\\n<circle cx=\"14\" cy=\"33\" r=\"6\" class=\"edge\"/><circle cx=\"30\" cy=\"21\" r=\"6\" class=\"main\"/>\\n<path d=\"M30 15 A6 6 0 0 1 30 27 Q30.9 25.32 32.88 22.32 A6 6 0 0 0 30 15Z\" class=\"shade\"/>\\n<ellipse cx=\"28.08\" cy=\"18.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 28.08 18.72)\" class=\"highlight\"/>\\n<circle cx=\"30\" cy=\"21\" r=\"6\" class=\"edge\"/><circle cx=\"50\" cy=\"10\" r=\"6\" class=\"main\"/>\\n<path d=\"M50 4 A6 6 0 0 1 50 16 Q50.9 14.32 52.88 11.32 A6 6 0 0 0 50 4Z\" class=\"shade\"/>\\n<ellipse cx=\"48.08\" cy=\"7.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 48.08 7.72)\" class=\"highlight\"/>\\n<circle cx=\"50\" cy=\"10\" r=\"6\" class=\"edge\"/><circle cx=\"70\" cy=\"21\" r=\"6\" class=\"main\"/>\\n<path d=\"M70 15 A6 6 0 0 1 70 27 Q70.9 25.32 72.88 22.32 A6 6 0 0 0 70 15Z\" class=\"shade\"/>\\n<ellipse cx=\"68.08\" cy=\"18.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 68.08 18.72)\" class=\"highlight\"/>\\n<circle cx=\"70\" cy=\"21\" r=\"6\" class=\"edge\"/><circle cx=\"86\" cy=\"33\" r=\"6\" class=\"main\"/>\\n<path d=\"M86 27 A6 6 0 0 1 86 39 Q86.9 37.32 88.88 34.32 A6 6 0 0 0 86 27Z\" class=\"shade\"/>\\n<ellipse cx=\"84.08\" cy=\"30.72\" rx=\"2.04\" ry=\"1.1400000000000001\" transform=\"rotate(-29 84.08 30.72)\" class=\"highlight\"/>\\n<circle cx=\"86\" cy=\"33\" r=\"6\" class=\"edge\"/><defs><clipPath id=\"foot\"><path d=\"M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\"/></clipPath></defs>\\n<path d=\"M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M53.1 79 H81 V92 H65.5Z\" class=\"shade\"/><path d=\"M25 82 H53.720000000000006 L45.66 84 H25Z\" class=\"highlight\"/></g>\\n<path d=\"M24 79 H76 Q81 79 81 84 V87 Q81 92 76 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\" class=\"edge\"/></g>',\n B: '<g transform=\"translate(50 94) scale(1.000000 0.893617) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z\"/></clipPath></defs>\\n<path d=\"M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M52 20 C63 32 74 41 71 55 C69 70 67 75 68 81 H46 C55 59 60 40 52 20Z\" class=\"shade\"/><path d=\"M43 27 C35 36 32 46 34 52 C35 56 38 48 40 41Z\" class=\"highlight\"/></g>\\n<path d=\"M50 18 C58 23 72 38 72 52 C72 63 66 69 68 79 H32 C34 69 28 63 28 52 C28 38 42 23 50 18Z\" class=\"edge\"/><circle cx=\"50\" cy=\"10\" r=\"8.8\" class=\"main\"/>\\n<path d=\"M50 1.1999999999999993 A8.8 8.8 0 0 1 50 18.8 Q51.32 16.336 54.224000000000004 11.936 A8.8 8.8 0 0 0 50 1.1999999999999993Z\" class=\"shade\"/>\\n<ellipse cx=\"47.184\" cy=\"6.656\" rx=\"2.9920000000000004\" ry=\"1.6720000000000002\" transform=\"rotate(-29 47.184 6.656)\" class=\"highlight\"/>\\n<circle cx=\"50\" cy=\"10\" r=\"8.8\" class=\"edge\"/><path d=\"M54 26 L45 51\" class=\"slash\"/><defs><clipPath id=\"foot\"><path d=\"M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z\"/></clipPath></defs>\\n<path d=\"M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M52.5 79 H75 V92 H62.5Z\" class=\"shade\"/><path d=\"M31 82 H53 L46.5 84 H31Z\" class=\"highlight\"/></g>\\n<path d=\"M30 79 H70 Q75 79 75 84 V87 Q75 92 70 92 H30 Q25 92 25 87 V84 Q25 79 30 79Z\" class=\"edge\"/></g>',\n N: '<g transform=\"translate(50 94) scale(1.000000 0.929412) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z\"/></clipPath></defs>\\n<path d=\"M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M46 15 C66 21 77 35 79 48 C80 63 78 73 82 80 H50 C60 67 64 46 59 32 C54 23 47 21 46 15Z\" class=\"shade\"/><path d=\"M22 44 L38 24 L38 18 Q31 25 23 33 L16 44 Q15 50 22 44Z\" class=\"highlight\"/></g>\\n<path d=\"M20 79 C22 70 30 61 43 53 C35 57 24 60 18 56 C11 53 10 48 15 42 L32 23 L34 11 L44 14 C65 18 77 29 79 47 C82 62 77 71 81 79Z\" class=\"edge\"/><path d=\"M40 30 Q45 28 48 31 Q45 35 39 34Z\" class=\"detail-fill\"/><circle cx=\"18.2\" cy=\"47\" r=\"1.7\" class=\"detail-fill\"/><path d=\"M23 53 C31 53 41 49 49 43\" class=\"detail-line\"/><defs><clipPath id=\"foot\"><path d=\"M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\"/></clipPath></defs>\\n<path d=\"M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M54.2 79 H83 V92 H67Z\" class=\"shade\"/><path d=\"M25 82 H54.84 L46.519999999999996 84 H25Z\" class=\"highlight\"/></g>\\n<path d=\"M24 79 H78 Q83 79 83 84 V87 Q83 92 78 92 H24 Q19 92 19 87 V84 Q19 79 24 79Z\" class=\"edge\"/></g>',\n R: '<g transform=\"translate(50 94) scale(1.040000 1.164179) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z\"/></clipPath></defs>\\n<path d=\"M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M58 30 H75 V50 L69 56 L72 80 H54 L60 52Z\" class=\"shade\"/><path d=\"M29 35 H33 V43 H29Z M33 58 L31 73 H36 L38 58Z\" class=\"highlight\"/></g>\\n<path d=\"M25 29 H35 V39 H44 V29 H56 V39 H65 V29 H75 V48 L69 55 L72 79 H28 L31 55 L25 48Z\" class=\"edge\"/><defs><clipPath id=\"foot\"><path d=\"M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z\"/></clipPath></defs>\\n<path d=\"M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M53 79 H80 V92 H65Z\" class=\"shade\"/><path d=\"M26 82 H53.6 L45.8 84 H26Z\" class=\"highlight\"/></g>\\n<path d=\"M25 79 H75 Q80 79 80 84 V87 Q80 92 75 92 H25 Q20 92 20 87 V84 Q20 79 25 79Z\" class=\"edge\"/></g>',\n P: '<g transform=\"translate(50 94) scale(1.130000 1.161616) translate(-50 -94)\"><defs><clipPath id=\"body\"><path d=\"M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z\"/></clipPath></defs>\\n<path d=\"M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z\" class=\"main\"/>\\n<g clip-path=\"url(#body)\"><path d=\"M51 58 H57 C57 69 63 77 70 87 H50 Q59 75 55 66Z\" class=\"shade\"/><path d=\"M43 65 C41 70 39 73 35 78 L35 83 L40 78Z\" class=\"highlight\"/></g>\\n<path d=\"M44 58 H56 C56 68 61 75 68 82 L70 86 H30 L32 82 C39 75 44 68 44 58Z\" class=\"edge\"/><circle cx=\"50\" cy=\"48\" r=\"11.5\" class=\"main\"/>\\n<path d=\"M50 36.5 A11.5 11.5 0 0 1 50 59.5 Q51.725 56.28 55.519999999999996 50.53 A11.5 11.5 0 0 0 50 36.5Z\" class=\"shade\"/>\\n<ellipse cx=\"46.32\" cy=\"43.63\" rx=\"3.91\" ry=\"2.185\" transform=\"rotate(-29 46.32 43.63)\" class=\"highlight\"/>\\n<circle cx=\"50\" cy=\"48\" r=\"11.5\" class=\"edge\"/><defs><clipPath id=\"foot\"><path d=\"M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z\"/></clipPath></defs>\\n<path d=\"M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z\" class=\"main\"/>\\n<g clip-path=\"url(#foot)\"><path d=\"M52.1 84 H71 V92 H60.5Z\" class=\"shade\"/><path d=\"M34 87 H52.52 L47.06 89 H34Z\" class=\"highlight\"/></g>\\n<path d=\"M33 84 H67 Q71 84 71 88 V88 Q71 92 67 92 H33 Q29 92 29 88 V88 Q29 84 33 84Z\" class=\"edge\"/></g>',\n});\n\nconst PALETTES = {\n w: {\n main: \"#faf8f2\",\n highlight: \"#ffffff\",\n shade: \"#cecac2\",\n medium: \"#e8e5de\",\n outline: \"#121416\",\n detail: \"#191b1d\",\n },\n b: {\n main: \"#4e5053\",\n highlight: \"#898b8f\",\n shade: \"#2d2f31\",\n medium: \"#616367\",\n outline: \"#090b0c\",\n detail: \"#0b0d0e\",\n },\n} as const;\nconst NAMES: Record<GigaDiagramRole, string> = {\n K: \"King\",\n Q: \"Queen\",\n B: \"Bishop\",\n N: \"Knight\",\n R: \"Rook\",\n P: \"Pawn\",\n};\n\nfunction style(p: typeof PALETTES.w | typeof PALETTES.b): string {\n return `<style>\n.main{fill:${p.main};stroke:none}\n.edge{fill:none;stroke:${p.outline};stroke-width:3.8;stroke-linejoin:round;stroke-linecap:round}\n.shade{fill:${p.shade}}\n.highlight{fill:${p.highlight}}\n.medium{fill:${p.medium}}\n.detail-fill{fill:${p.detail}}\n.detail-line{fill:none;stroke:${p.detail};stroke-width:2.1;stroke-linecap:round}\n.slash{fill:none;stroke:${p.detail};stroke-width:6;stroke-linecap:round}\n</style>`;\n}\n\n/** The actual source SVG for a piece. No external artwork dependencies. */\nexport function gigaDiagramSvg(role: GigaDiagramRole, side: GigaDiagramSide): string {\n const name = `${side === \"w\" ? \"White\" : \"Black\"} ${NAMES[role]}`;\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewBox=\"0 0 100 100\" aria-label=\"${name}\">\n<title>${name} — Giga Diagram</title>\n${style(PALETTES[side])}\n${GEOMETRY[role]}\n</svg>`;\n}\n\nfunction imageUrl(role: GigaDiagramRole, side: GigaDiagramSide): string {\n return `data:image/svg+xml,${encodeURIComponent(gigaDiagramSvg(role, side))}`;\n}\n\nconst URLS: PieceUrlTable = Object.freeze({\n 1: imageUrl(\"P\", \"w\"),\n 2: imageUrl(\"N\", \"w\"),\n 3: imageUrl(\"B\", \"w\"),\n 4: imageUrl(\"R\", \"w\"),\n 5: imageUrl(\"Q\", \"w\"),\n 6: imageUrl(\"K\", \"w\"),\n 7: imageUrl(\"P\", \"b\"),\n 8: imageUrl(\"N\", \"b\"),\n 9: imageUrl(\"B\", \"b\"),\n 10: imageUrl(\"R\", \"b\"),\n 11: imageUrl(\"Q\", \"b\"),\n 12: imageUrl(\"K\", \"b\"),\n});\n\n/** Select with <Chessboard pieces={gigaDiagram} />. */\nexport const gigaDiagram = createImagePieceSet(URLS);\n"]}
@@ -867,7 +867,15 @@ function createBoardModel(engine, options = {}) {
867
867
  const set = /* @__PURE__ */ new Set();
868
868
  for (let i = 0; i < tos.length; i++) {
869
869
  const t = tos[i];
870
- if (t !== void 0) set.add(t);
870
+ if (t === void 0) continue;
871
+ set.add(t);
872
+ if (pieceOnSquare === BOARD_CELL_WK && selected === 4) {
873
+ if (t === 7) set.add(6);
874
+ else if (t === 0) set.add(2);
875
+ } else if (pieceOnSquare === BOARD_CELL_BK && selected === 60) {
876
+ if (t === 63) set.add(62);
877
+ else if (t === 56) set.add(58);
878
+ }
871
879
  }
872
880
  return set;
873
881
  };
@@ -1255,5 +1263,5 @@ exports.preloadGigachessAdapter = preloadGigachessAdapter;
1255
1263
  exports.toSquareIndex = toSquareIndex;
1256
1264
  exports.unpackMove = unpackMove;
1257
1265
  exports.writeBoardCell = writeBoardCell;
1258
- //# sourceMappingURL=chunk-FUP2LDMO.cjs.map
1259
- //# sourceMappingURL=chunk-FUP2LDMO.cjs.map
1266
+ //# sourceMappingURL=chunk-MCD4AIR2.cjs.map
1267
+ //# sourceMappingURL=chunk-MCD4AIR2.cjs.map