{"_id":"@brigh-am/black-hole-board","name":"@brigh-am/black-hole-board","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@brigh-am/black-hole-board","version":"0.1.0","description":"Reusable Black Hole board: pure game model + SVG illustration components (static stills, rotation/flip transposition animations, scoring visualization, themeable skins).","type":"module","author":{"name":"Brigham Brown","email":"me@brighambrown.com"},"license":"MIT","homepage":"https://github.com/brigham/blackholetraining/tree/main/black-hole-board#readme","repository":{"type":"git","url":"git+https://github.com/brigham/blackholetraining.git","directory":"black-hole-board"},"keywords":["black-hole","board-game","react","svg","visualization","animation"],"publishConfig":{"access":"public"},"sideEffects":["*.css"],"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./game":{"types":"./dist/game.d.ts","import":"./dist/game.js"},"./styles.css":"./dist/index.css"},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","playground":"vite --config examples/vite.config.ts","prepublishOnly":"npm run build"},"peerDependencies":{"react":">=18","react-dom":">=18"},"devDependencies":{"@types/react":"^19.2.14","@types/react-dom":"^19.2.3","react":"^19.2.6","react-dom":"^19.2.6","tsup":"^8.5.0","typescript":"~6.0.2","vite":"^8.0.12","@vitejs/plugin-react":"^6.0.1"},"gitHead":"9e7806791df3f85e4b494227e0a5724028003104","_id":"@brigh-am/black-hole-board@0.1.0","bugs":{"url":"https://github.com/brigham/blackholetraining/issues"},"_nodeVersion":"26.0.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-5Rrsj3o16cx6j8idD9PPC6tFgM0WQVLiVEz+eeZSCkfWdclrv4G8r0AP1+N3bA4DU5wrBgbeozXi5WUkfBPxmw==","shasum":"cf6df3045d11e7f3a944accc043374714f514ae2","tarball":"https://registry.npmjs.org/@brigh-am/black-hole-board/-/black-hole-board-0.1.0.tgz","fileCount":13,"unpackedSize":127180,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF4E7tZ+u+24n+C0Nl37TwW9E+BQjnZCFMd8QUNKeV5yAiEAlQa5K1j0xlt9U1rhcZ/DBdyKm9P/FNtQjCPYIsGPxQs="}]},"_npmUser":{"name":"mrcoffeebeard","email":"rhodium.tale_1i@icloud.com"},"directories":{},"maintainers":[{"name":"mrcoffeebeard","email":"rhodium.tale_1i@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/black-hole-board_0.1.0_1782432646523_0.19313111255760274"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-26T00:10:46.311Z","0.1.0":"2026-06-26T00:10:46.695Z","modified":"2026-06-26T00:10:46.978Z"},"maintainers":[{"name":"mrcoffeebeard","email":"rhodium.tale_1i@icloud.com"}],"description":"Reusable Black Hole board: pure game model + SVG illustration components (static stills, rotation/flip transposition animations, scoring visualization, themeable skins).","homepage":"https://github.com/brigham/blackholetraining/tree/main/black-hole-board#readme","keywords":["black-hole","board-game","react","svg","visualization","animation"],"repository":{"type":"git","url":"git+https://github.com/brigham/blackholetraining.git","directory":"black-hole-board"},"author":{"name":"Brigham Brown","email":"me@brighambrown.com"},"bugs":{"url":"https://github.com/brigham/blackholetraining/issues"},"license":"MIT","readme":"# @brigh-am/black-hole-board\n\nReusable **Black Hole** board: the pure game data model plus React SVG\nillustration components. Designed to be shared by the game and by blog posts that\nillustrate game concepts — with **no AI, solver, or WASM** pulled in.\n\n## What's inside\n\n- **Pure data model** — `Board`, `around`, `isSafe`, scoring. Zero dependencies.\n  Import without React via the `/game` subpath.\n- **`<IllustrationBoard>`** — coordinate-based SVG renderer. Cells sit on a true\n  equilateral lattice, which keeps transposition (rotation/flip) animations\n  geometrically exact.\n- **Geometry + triangle symmetry helpers** — `transformBoard`, `transformCell`,\n  `symmetryMatrix`, `resolveLayout` (the D3 group on `(i,j,k)` coords).\n- **Themeable skins** — `classic` (default) and `handwriting` (notebook/chalkboard).\n  Skins only set colors/strokes/fonts; geometry and animation never read them.\n\n## Usage\n\n```tsx\nimport { Board, IllustrationBoard } from \"@brigh-am/black-hole-board\";\nimport \"@brigh-am/black-hole-board/styles.css\";\n\nlet board = new Board(6);\nboard = board.play(0, 0).play(2, 1).play(3, 3);\n\n<IllustrationBoard board={board} theme=\"classic\" showSafe />;\n```\n\nPure model only (no React):\n\n```ts\nimport { Board, transformBoard } from \"@brigh-am/black-hole-board/game\";\n```\n\n`react` and `react-dom` are peer dependencies (>=18).\n\n## Theming\n\nPass `theme=\"classic\"` (default) or `theme=\"handwriting\"`. Skins only set\ncolors/strokes/fonts via CSS variables — geometry and animation are identical\nacross themes. The handwriting skin draws ruled notebook paper (light) / plain\nchalkboard (dark) and gives outlines a hand-drawn wobble using a dependency-free\nSVG turbulence filter.\n\nThe handwriting digits use whatever font you point `--bhb-hand-font` at (with a\ncursive fallback). To get a real handwriting face, load one in your site and set\nthe token, e.g.:\n\n```css\n/* after @font-face / <link> for the font of your choice */\n.bhb-theme-handwriting { --bhb-hand-font: \"Caveat\", cursive; }\n```\n\n## Develop\n\n```sh\nnpm run build      # bundle to dist/ (tsup)\nnpm run dev        # watch\nnpm run typecheck\n```\n\nConsumed locally via `file:` dependencies; not yet published to a registry.\n","readmeFilename":"README.md","_rev":"1-b911cec02da0c0fccb4ba94bb65e868d"}