{"_id":"@c-hinck10/splitflap-js","_rev":"15-fbbd401d68c9a2ffe192b0f68f108a72","name":"@c-hinck10/splitflap-js","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@c-hinck10/splitflap-js","version":"0.1.0","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.0","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"58512336f1c1b8c71b6a9d7eb57899d79e50fac4","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.0.tgz","fileCount":17,"integrity":"sha512-uDjXKoWXX+va1ipH2BLuS4frPHtY8u+6fG4YubHARMksD+2LQzIyh4k0qbdiA7fvbpP/3pPKWVr5WSFrFcChPg==","signatures":[{"sig":"MEUCIHDMrqPeeeONFiV8NiFrfqFQAvf7FloMeYKH9G7seA6tAiEApDo8x7N8FvVMuGbLuuuqe5ATo7g9+hwOQzWBPpeAOng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238263},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.0_1774014075412_0.9240102835593837","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@c-hinck10/splitflap-js","version":"0.1.1","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.1","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"6bba5a574dea1832948c79a99d539c9a6042da20","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.1.tgz","fileCount":17,"integrity":"sha512-sjHSBnf3amHDKG8WxV/C5pSKMHQ2Hbd3hla+CmUH7fEp/K1Vn3liCK5P+Rs8VDJNF5aQGvY5aus6gUpjEarmJQ==","signatures":[{"sig":"MEQCIFqFYIt76qDRLxdOL4PJkpb7imvxsMIZbRPgfN6PJhWZAiBUIjB15IasNSxUp35JCwLszKcu9Kbh7rBysf2Sf9u5wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241180},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.1_1774015219967_0.05954528245002755","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@c-hinck10/splitflap-js","version":"0.1.2","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.2","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"a7fcdf1c8096355ee8231d1e2521b99897fbe237","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.2.tgz","fileCount":17,"integrity":"sha512-9Pazx4uH//IkPjR1DAfaH1GADJAlAO5yrM1CRfsBakEGKORbwabKZZWAwWipJ3UdSPJab9076cVc84RSV5EOAQ==","signatures":[{"sig":"MEYCIQC1kIH7NES38SP4OyQcWxMZaMD/DuqJVwGifJNc7NI/hAIhALapXB9iitfgBSkL1r+wx+Gee2dUAJA8/FeICHGFQ0Fm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241600},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.2_1774015805480_0.8521468734827591","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@c-hinck10/splitflap-js","version":"0.1.3","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.3","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"8e040e95bddd50acdd78fdb7b4f176036cc01785","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.3.tgz","fileCount":17,"integrity":"sha512-8mPDmXnjuWBsFCuXdOcfasCuaVy+tsTBqNFpmH5+XROvUeeroGmKmoIYwMesbVWJXsHskpQQSWO5ccRfAYf0WA==","signatures":[{"sig":"MEUCIQDDBAQ0RC2dP/A1NHp0lNA0JjYQiFxnSwlABXSLlOSqmwIgYasrtyEqna1HenLgC0c5f0Uq3exycxSBmJQFJlwS9sc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243147},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.3_1774017528384_0.8273454006822363","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@c-hinck10/splitflap-js","version":"0.1.4","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.4","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"8ae41f45f8ce1da04d2b380684b59aefea1e4f80","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.4.tgz","fileCount":17,"integrity":"sha512-6IDzoPDnSpulYsvBxj+Hd2oJ8zVaiuv87DPDHbYoS/mEPp17ZCI6T3bqruOrTljifJHDy63brS1JszZtuGorhA==","signatures":[{"sig":"MEUCIQDV1ti7+8jEL16JoqOIZx0FtK7RBfKcdN901omqKXyNbwIgd9O/ctdcaCpYv+M0g2fMpQ0GYsiJAaKtZCU4X8j1auY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243753},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.4_1774017902938_0.9806601412421607","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@c-hinck10/splitflap-js","version":"0.1.5","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.5","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"b58c219780c2bc7ecd32ca43a858fb094f0791b2","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.5.tgz","fileCount":17,"integrity":"sha512-FlvfQHoOE8Wt0xs4aVyfJkVObqpix402VE/1G8HcCMef776Y/+GEpiSA9ozGaPJFNPq4aq80hIKBIS+0ZcbjIg==","signatures":[{"sig":"MEUCIQDcTzqCvK61ZwnX+TSvYVCyMf3CUWQTo/XLnGI852+SIAIgS5PCGyZUgCHrqjaP7Y+m7D4srcWGLk7EeW+fB9T8W74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246504},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.5_1774018214301_0.3173391062846016","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@c-hinck10/splitflap-js","version":"0.1.6","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.6","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"bf490894ca5038e1afe98e3f9366c427b71c3a2d","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.6.tgz","fileCount":17,"integrity":"sha512-gDmTWoXoJUINjabpTDwzKl27Qc3WaRmRHvYj7jHpEvO2oEs/Eo6Harb0ssRXMuWJ14NxWwAE+84PZ6vFFN04Ww==","signatures":[{"sig":"MEQCIDHS1jtgDvqgpDqO8bIYtJUFan41pzNDz9OcTjbktaGvAiACLE8LlctbxXCsNFTzA8vpLOug3SVc35aAgoaMnmVszw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248394},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.6_1774019035962_0.32642170727051467","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@c-hinck10/splitflap-js","version":"0.1.7","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.7","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"8d15f7d199ee9f927176cfb7b097dc801f9df2a7","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.7.tgz","fileCount":19,"integrity":"sha512-XlAOxTgNM/KAnMXqvPT4ZVxc3AxLAe1aowFnUsOuHxSig6eOrGVVkyySAdudO0/a0+eWCiJgRVMHEvdeFbEZ8w==","signatures":[{"sig":"MEUCIQCdrmBtKkIhUewW/5JiyxirAAV7+tY0oN10p/nVsiHfGwIgDF5szimZ0e02hxRAYu3WXzdzjWY4/bbntGFd/PuvGmc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274292},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.7_1774022314037_0.3319173604105812","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@c-hinck10/splitflap-js","version":"0.1.8","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.8","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"36ad0d079302d061e8c2aa47b6b1ab80e79b79fd","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.8.tgz","fileCount":19,"integrity":"sha512-zqjAPQoy3Op0K6kqolaY+XkE7rSYV4+b1UHVRJW2nSrXvx0kkwE1dMAxFSnh341O0aD6sf4bulWWL5lplimx5g==","signatures":[{"sig":"MEYCIQCm4nlgTxNmta+luy0VW9tU5AOCMHhq4kRs2yZj3CpzewIhAPPL5VtWokhr33CkbJS7z13WLfxUt/RcNW+gcZ9FxbXT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274477},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.8_1774023051840_0.8487121758318226","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@c-hinck10/splitflap-js","version":"0.1.9","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.9","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"442cc63b0d469be481afb842b937bf24aed08793","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.9.tgz","fileCount":19,"integrity":"sha512-DBhoCKcOzr+6hU6FPXuqnxddu59YiOqLnpQpuWjct8GpfWz1AzaaVP4zUnnvFkTM6M4uRh2LrqqoT/o0GkJwAA==","signatures":[{"sig":"MEUCIAPLxx0sDznSk8qlPQJp/E1NhCCn/4KgSPEgASp/0i9GAiEAw+RdR+PrUawJydjD/Nq69OthpVugqfT6eUHVjQ/IzNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278865},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.9_1774023906837_0.9283081925129653","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@c-hinck10/splitflap-js","version":"0.1.10","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.10","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"fb29ce3a8a5ce32ad6df7b09f89633ab0f67e079","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.10.tgz","fileCount":19,"integrity":"sha512-HTYazeUdj5TcKJvoAqD7nk3X8ZpXuSvb3m5ONo0o3Hl4+wIq4FE7EI3NzPRetrp/UVZtYePOv/XC06/eT5TSvw==","signatures":[{"sig":"MEUCIQCb2rFts5FF4oTHPWXPibeCC/DhL+1W6hgkrdXxlCRcjwIgY9qJh5AJ/SToHBKEsJBLvIJTbTSbFe0O6y7CUWy66eU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279706},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.10_1774024369664_0.14428032228067855","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@c-hinck10/splitflap-js","version":"0.1.11","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.11","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"5d25657aebc9dbd394226644175f029d4ef891d6","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.11.tgz","fileCount":19,"integrity":"sha512-ounpawjMExqS7SMmgCkmNVGtrZGM4DeU8usdbkmk/4L62I0IxGsPLPKj8YSN3kHByOHRUFBLLqrWs1JKythr7w==","signatures":[{"sig":"MEYCIQDdP60i5LgWNT7ynovr0KZtqATuPNIJdVUusg+/Vd0F8AIhAO3MTVntIutF6skaUOVH/ShoncS4oKSgKj8jSaiALNpv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280046},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.11_1774024716650_0.8687744494103742","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@c-hinck10/splitflap-js","version":"0.1.12","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.12","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"91c4f54a4a34b74c0bab5fbf0108ad902a9b18ad","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.12.tgz","fileCount":19,"integrity":"sha512-muaQVH6HjoiJdU3zFbhfCcTpzfiS6bQBRuMBoOxHYLXVER5A/kCnr1pYvVIlhxzOfxkUs+KQZVHKTIIvL06JxA==","signatures":[{"sig":"MEQCIHU/RGvphrVNr/gve4iRh8FXncImJ7DeWnRt9PHb+LT9AiBejNobXkqHPP3uijXpQl+RwG0P1xtRrIb9/6BZdS7law==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280046},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.12_1774025008518_0.23286222668955658","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@c-hinck10/splitflap-js","version":"0.1.13","keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","_id":"@c-hinck10/splitflap-js@0.1.13","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"dist":{"shasum":"e0e470df6d3af913183aaf6665774b9d6827de86","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.1.13.tgz","fileCount":19,"integrity":"sha512-H0YjCVv5Cv+ErXtLseL6ynLeNZ6j/gKGOnLImV68pNoq5gs7vu2E2A/+Oet8MUBISsXLItfLxGC0HIRVO5I7MA==","signatures":[{"sig":"MEYCIQCLNrkfrPJiL0jQ9uOB0ekJE0M6rFzqk8QyHsHfn7asOgIhAJPLJSJeGLJ/19DSxZAIzZJ12HroqVnueWlzDZBHfLTP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286118},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"vite demo","test":"vitest run","build":"tsup","check":"tsc --noEmit"},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"repository":{"url":"git+https://github.com/c-hinck10/splitflap-js.git","type":"git"},"_npmVersion":"11.10.1","description":"A lightweight split-flap display for the web.","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^7.1.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.2.4","react-dom":"^19.1.0","typescript":"^5.8.2","@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/splitflap-js_0.1.13_1774031612771_0.18997414728799744","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@c-hinck10/splitflap-js","version":"0.2.0","description":"A lightweight split-flap display for the web.","repository":{"type":"git","url":"git+https://github.com/c-hinck10/splitflap-js.git"},"homepage":"https://github.com/c-hinck10/splitflap-js#readme","bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":["./dist/styles.css"],"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./styles.css":"./dist/styles.css"},"publishConfig":{"access":"public"},"scripts":{"dev":"vite demo","build":"tsup","check":"tsc --noEmit","test":"vitest run"},"keywords":["split-flap","flipboard","react","typescript","animation"],"author":{"name":"Carson Hinckley"},"license":"MIT","peerDependencies":{"react":">=18","react-dom":">=18"},"devDependencies":{"@types/node":"^24.0.0","@types/react":"^19.1.0","@types/react-dom":"^19.1.0","jsdom":"^26.1.0","react":"^19.1.0","react-dom":"^19.1.0","tsup":"^8.4.0","typescript":"^5.8.2","vite":"^7.1.0","vitest":"^3.2.4"},"gitHead":"9d322970b79ba34d7976ca7b94b70e0bdbde815a","_id":"@c-hinck10/splitflap-js@0.2.0","_nodeVersion":"22.20.0","_npmVersion":"11.10.1","dist":{"integrity":"sha512-asOuPD9xNJcmD6oB17iu3EGRyA9f+Mu4uZZdW3uuxT0z8tVtpyW9mzuu1IPKL4OZlRH9EZXe5J5cFCr/WmBu6Q==","shasum":"dbcbc3672db8e29f055c7c516acff038e46e7fa1","tarball":"https://registry.npmjs.org/@c-hinck10/splitflap-js/-/splitflap-js-0.2.0.tgz","fileCount":17,"unpackedSize":329151,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCMtQijLjV04t5h71to6pYu31bcDFyo/d8kSL5k/jEygQIhAKB3AhOc6h/2RFVDRUQ28XnXefrQLFb5e2y18dtG1xkT"}]},"_npmUser":{"name":"c-hinck10","email":"c-hinck10@protonmail.com"},"directories":{},"maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/splitflap-js_0.2.0_1774146875864_0.8687475107760583"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T13:41:15.317Z","modified":"2026-03-22T02:34:36.135Z","0.1.0":"2026-03-20T13:41:15.622Z","0.1.1":"2026-03-20T14:00:20.113Z","0.1.2":"2026-03-20T14:10:05.619Z","0.1.3":"2026-03-20T14:38:48.519Z","0.1.4":"2026-03-20T14:45:03.088Z","0.1.5":"2026-03-20T14:50:14.440Z","0.1.6":"2026-03-20T15:03:56.141Z","0.1.7":"2026-03-20T15:58:34.197Z","0.1.8":"2026-03-20T16:10:52.004Z","0.1.9":"2026-03-20T16:25:06.991Z","0.1.10":"2026-03-20T16:32:49.805Z","0.1.11":"2026-03-20T16:38:36.809Z","0.1.12":"2026-03-20T16:43:28.749Z","0.1.13":"2026-03-20T18:33:32.932Z","0.2.0":"2026-03-22T02:34:36.019Z"},"bugs":{"url":"https://github.com/c-hinck10/splitflap-js/issues"},"author":{"name":"Carson Hinckley"},"license":"MIT","homepage":"https://github.com/c-hinck10/splitflap-js#readme","keywords":["split-flap","flipboard","react","typescript","animation"],"repository":{"type":"git","url":"git+https://github.com/c-hinck10/splitflap-js.git"},"description":"A lightweight split-flap display for the web.","maintainers":[{"name":"c-hinck10","email":"c-hinck10@protonmail.com"}],"readme":"# @c-hinck10/splitflap-js\n\nA lightweight split-flap display for the web.\n\nIt is built as a framework-agnostic DOM core with a tiny React wrapper, so the package stays embeddable and easy to extend to more frameworks later.\n\n## Features\n\n- Fixed-grid split-flap board\n- Word-aware row layout that avoids splitting words when possible\n- Long-message pagination into multiple board pages\n- Advanced `pages` API for row offsets, columns, decorators, and tones\n- Face-wheel model for authentic flap progression with optional custom ordering\n- DOM-driven animation core\n- `load`, `visible`, and `manual` trigger modes\n- Optional autoplay page rotation\n- Imperative controls like `setMessage()`, `play()`, `next()`, and `reset()`\n- Themeable via CSS variables\n- React wrapper that mounts the core without managing per-tile React state\n\n## Install\n\n```bash\nnpm install @c-hinck10/splitflap-js\n```\n\n## Local Demo\n\n```bash\nnpm install\nnpm run dev\n```\n\nThat opens a small playground from `demo/` so you can tune timing, trigger behavior, and message changes against the real DOM animation.\n\n## Vanilla Usage\n\n```ts\nimport { Flipboard } from '@c-hinck10/splitflap-js';\nimport '@c-hinck10/splitflap-js/styles.css';\n\nconst board = new Flipboard(document.getElementById('board')!, {\n  size: '3x15',\n  align: 'center',\n  preserveWords: true,\n  trigger: 'visible',\n  autoplay: true,\n  pageDuration: 3500,\n  staggerMode: 'simultaneous',\n  messages: [\n    'WELCOME TO THE HILTON BEAVER CREEK, WE APPRECIATE YOUR BUSINESS, CHECK THE FRONT DESK FOR EVENTS'\n  ],\n  stagger: 35,\n  flipDuration: 120\n});\n\nboard.play();\n```\n\n## React Usage\n\n```tsx\nimport { Flipboard } from '@c-hinck10/splitflap-js/react';\nimport '@c-hinck10/splitflap-js/styles.css';\n\nexport function HeroBoard() {\n  return (\n    <Flipboard\n      size=\"6x22\"\n      align=\"center\"\n      autoplay\n      pageDuration={4000}\n      trigger=\"visible\"\n      messages={[\n        'WELCOME TO THE HILTON BEAVER CREEK, WE APPRECIATE YOUR BUSINESS, CHECK THE FRONT DESK FOR EVENTS'\n      ]}\n    />\n  );\n}\n```\n\n## Core API\n\n```ts\ntype TriggerMode = 'load' | 'visible' | 'manual';\n\ntype FlipboardOptions = {\n  size?: '3x15' | '6x22';\n  rows?: number;\n  cols?: number;\n  align?: 'left' | 'center' | 'right';\n  preserveWords?: boolean;\n  tone?: 'default' | 'muted' | 'accent' | 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple';\n  theme?: 'classic' | 'menu' | 'playful';\n  trigger?: TriggerMode;\n  stagger?: number;\n  staggerMode?: 'simultaneous' | 'row' | 'sequence';\n  flipDuration?: number;\n  charset?: string;\n  faces?: FlipboardFace[];\n  shadow?: boolean | string;\n  tileShadow?: boolean | string;\n  loop?: boolean;\n  autoplay?: boolean;\n  pageDuration?: number;\n  paginate?: boolean;\n  messages?: string[];\n  pages?: FlipboardPage[];\n  startIndex?: number;\n  respectReducedMotion?: boolean;\n  pauseWhenHidden?: boolean;\n  responsive?: boolean;\n  performanceMode?: 'auto' | 'off' | 'on';\n  flipDirection?: 'forward' | 'shortest';\n  onComplete?: (message: string, index: number) => void;\n};\n\nclass Flipboard {\n  constructor(container: HTMLElement, options?: FlipboardOptions);\n\n  setMessage(message: string): void;\n  setMessages(messages: string[]): void;\n  play(index?: number): void;\n  next(): void;\n  reset(): void;\n  destroy(): void;\n}\n```\n\n`preserveWords` is enabled by default, so messages are wrapped per row when possible instead of being sliced through the middle of a word. For classic board composition, `align: 'center'` is also the default.\n\n`paginate` is also enabled by default, so one long message can automatically become multiple board pages. Pair that with `autoplay: true` and `pageDuration` to rotate through those pages on a timer.\n\nFor smoother behavior on phones and lower-power devices, the board now defaults to:\n\n- `respectReducedMotion: true` so it renders immediately when the user prefers reduced motion\n- `pauseWhenHidden: true` so autoplay timers stop in background tabs and resume when visible again\n- `responsive: true` so compact board styling can kick in on smaller or coarse-pointer layouts\n- `performanceMode: 'auto'` so mobile-style layouts can use lighter animation timing automatically\n- `flipDirection: 'forward'` by default for classic split-flap behavior, with an option to use the shortest path instead\n\n`shadow` controls the outer board drop shadow:\n\n- `true` keeps the package default\n- `false` disables it\n- a CSS `box-shadow` string overrides it, for example `0 12px 24px rgba(0, 0, 0, 0.18)`\n\n`tileShadow` controls the per-tile shadow:\n\n- `true` keeps the package default\n- `false` disables it\n- a CSS `box-shadow` string overrides it\n\nIf you want to override the shadow from your own page CSS, set `--fb-board-shadow` on the board container or a parent wrapper:\n\n```css\n.hero-board-wrap {\n  --fb-board-shadow: 0 0 0 rgba(0, 0, 0, 0);\n  --fb-tile-shadow: none;\n}\n```\n\nFor flatter or more custom boards, you can also override the packaged gloss and fill layers directly:\n\n```css\n.hero-board-wrap {\n  --fb-board-background: #f7f7f5;\n  --fb-board-inset-shadow: none;\n  --fb-tile-background: var(--fb-tile-bg);\n  --fb-tile-inset-shadow: none;\n  --fb-tile-shadow: none;\n  --fb-flap-background: var(--fb-tile-background);\n}\n```\n\n## Face Wheel\n\nThe simple API still works with `charset`, but the animation model now treats a flap face as a full visual state, not just a character.\n\nThat means a face can include:\n\n- `char`\n- `tone`\n- optional `id`\n- optional `label`\n\nFor most boards, you can keep using `charset` and let the package build a default face wheel for you. That default wheel preserves normal character flips and includes blank-tone decor faces for colored spacer rows.\n\nIf you want explicit control over flap ordering, pass `faces`:\n\n```ts\nimport { Flipboard, createDefaultFaces } from '@c-hinck10/splitflap-js';\n\nconst faces = [\n  ...createDefaultFaces(' ABCDEFGHIJKLMNOPQRSTUVWXYZ'),\n  { id: 'rainbow-start', char: '*', tone: 'accent' },\n  { id: 'purple-blank', char: ' ', tone: 'purple' }\n];\n\nconst board = new Flipboard(container, {\n  size: '6x22',\n  faces,\n  flipDirection: 'shortest',\n  pages: [\n    {\n      rows: [\n        {\n          kind: 'spacer',\n          leadingDecor: [{ char: ' ', tone: 'purple' }]\n        }\n      ]\n    }\n  ]\n});\n```\n\nOrder in `faces` defines rotation order. That gives you a path to authentic boards where decorative symbols, letters, blanks, and tone variants all exist as real flap faces.\n\n`flipDirection` controls how the board walks that wheel:\n\n- `forward` always advances in wheel order\n- `shortest` chooses the shortest available path, forward or backward\n\nIf both directions are tied, `shortest` falls back to forward so behavior stays deterministic.\n\n## Size Presets\n\nTwo board presets are built in:\n\n- `3x15`\n- `6x22`\n\nYou can use `size` directly, or still pass custom `rows` and `cols` when you want a non-preset board.\n\n## Advanced Pages\n\nFor signage-style compositions, use `pages` instead of plain `messages`.\n\n```ts\nconst pages = [\n  {\n    theme: 'playful',\n    rows: [\n      {\n        kind: 'spacer',\n        leadingDecor: ['purple', 'blue', 'green', 'yellow', 'orange', 'red'],\n        trailingDecor: ['red', 'orange', 'yellow', 'green', 'blue', 'purple']\n      },\n      {\n        text: 'WELCOME TO',\n        align: 'center',\n        leadingDecor: ['purple', 'blue', 'green', 'yellow'],\n        trailingDecor: ['yellow', 'green', 'blue', 'purple']\n      },\n      {\n        kind: 'columns',\n        left: 'LATTE',\n        right: '5.00/6.00',\n        leftTone: 'default',\n        rightTone: 'accent'\n      }\n    ]\n  }\n];\n\nconst board = new Flipboard(container, {\n  size: '6x22',\n  pages,\n  autoplay: true,\n  pageDuration: 4000\n});\n```\n\nThat advanced layer is what supports:\n\n- row offsets\n- left/center/right alignment\n- decorative edge tiles\n- menu-style left/right columns\n- theme presets and per-cell color tones\n\n## Styling\n\nImport `@c-hinck10/splitflap-js/styles.css`, then override the board variables on the container or a parent element:\n\n```css\n.hero-board {\n  --fb-bg: #101010;\n  --fb-tile-bg: #191919;\n  --fb-text: #f5f2e8;\n  --fb-gap: 8px;\n  --fb-radius: 8px;\n  --fb-font-size: 28px;\n  --fb-font-weight: 500;\n  --fb-letter-spacing: 0.03em;\n  --fb-tile-aspect: 1 / 1;\n  --fb-board-shadow: 0 12px 24px rgba(0, 0, 0, 0.18);\n  --fb-board-inset-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n  --fb-tile-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n  --fb-tile-inset-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), inset 0 -1px 0 rgba(0, 0, 0, 0.18);\n  --fb-board-background: #111;\n  --fb-tile-background: var(--fb-tile-bg);\n  --fb-flap-background: var(--fb-tile-background);\n}\n```\n\nWhen `responsive` is enabled, the board adds `data-compact=\"true\"` on smaller/coarse-pointer layouts and adjusts spacing, radius, and font sizing. When `performanceMode` is active, it also adds `data-performance=\"true\"` and uses lighter timing defaults.\n\nUseful visual-tuning variables:\n\n- `--fb-font-family`\n- `--fb-font-size`\n- `--fb-font-weight`\n- `--fb-letter-spacing`\n- `--fb-tile-aspect`\n- `--fb-radius`\n- `--fb-gap`\n- `--fb-board-inset-shadow`\n- `--fb-board-shadow`\n- `--fb-tile-shadow`\n- `--fb-tile-inset-shadow`\n- `--fb-board-background`\n- `--fb-tile-background`\n- `--fb-flap-background`\n","readmeFilename":"README.md"}