{"_id":"@deckgl-fiber-renderer/dom","_rev":"9-b3d238e5bd4a5023a99f0678d9560da4","name":"@deckgl-fiber-renderer/dom","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@deckgl-fiber-renderer/dom","version":"1.0.0","license":"MIT","_id":"@deckgl-fiber-renderer/dom@1.0.0","maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"dist":{"shasum":"1d8bbb92f63e200c4d72125d411822ede0bf716d","tarball":"https://registry.npmjs.org/@deckgl-fiber-renderer/dom/-/dom-1.0.0.tgz","fileCount":11,"integrity":"sha512-HEbTjDV6ZQ83mW/yJ6LDhUBPmwpd7lnE7me4/EHpA+mSo5MzAwMvOJTu3816Bv2D3RHv/gI56N2WC4PKBthI8w==","signatures":[{"sig":"MEYCIQDFUY4J2XXUElI1+yw4+XeKUGijYQh/xHX/QWlI3PaJawIhAMjYkd1f/agMwGwMitYZjGc6DE9x6lNpzdcvTO0cJSev","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10342},"type":"module","_from":"file:deckgl-fiber-renderer-dom-1.0.0.tgz","types":"./dist/index.d.ts","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"pnpm tsc --watch","lint":"pnpm biome lint","test":"pnpm vitest --dir=src","build":"pnpm tsup"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/6817788403870d0bd4103cbd95964974/deckgl-fiber-renderer-dom-1.0.0.tgz","_integrity":"sha512-HEbTjDV6ZQ83mW/yJ6LDhUBPmwpd7lnE7me4/EHpA+mSo5MzAwMvOJTu3816Bv2D3RHv/gI56N2WC4PKBthI8w==","_npmVersion":"10.9.2","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"its-fine":"^2.0.0","client-only":"^0.0.1","@deckgl-fiber-renderer/types":"1.0.0","@deckgl-fiber-renderer/shared":"1.0.0","@deckgl-fiber-renderer/reconciler":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"react":"^19","react-dom":"^19"},"_npmOperationalInternal":{"tmp":"tmp/dom_1.0.0_1741925703774_0.7257336073464338","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@deckgl-fiber-renderer/dom","version":"1.0.1","license":"MIT","_id":"@deckgl-fiber-renderer/dom@1.0.1","maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"dist":{"shasum":"41b8c0bdb5e1d7c2efdaf3b55feca7d25d1f1133","tarball":"https://registry.npmjs.org/@deckgl-fiber-renderer/dom/-/dom-1.0.1.tgz","fileCount":11,"integrity":"sha512-GLalN5CLo0eAW+sEe0TuVq7O8h3mwR6iVY3tf3o7G0wG23C84G0/yFpadGIcPUI2QdY1lKV0fS2orbFAaHf70w==","signatures":[{"sig":"MEYCIQCuQLP0/m+8z/NwrM7DXjYR4A4FUlpAnlfMFveDUztiDgIhAM470f3vQWxNTCVRBAT+wFkSoN2NDtdmdVeTval9f7x2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10342},"type":"module","_from":"file:deckgl-fiber-renderer-dom-1.0.1.tgz","types":"./dist/index.d.ts","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"pnpm tsc --watch","lint":"pnpm biome lint","test":"pnpm vitest --dir=src","build":"pnpm tsup"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/ce04158b7cb44e8f2a6c54d3e647f0e7/deckgl-fiber-renderer-dom-1.0.1.tgz","_integrity":"sha512-GLalN5CLo0eAW+sEe0TuVq7O8h3mwR6iVY3tf3o7G0wG23C84G0/yFpadGIcPUI2QdY1lKV0fS2orbFAaHf70w==","_npmVersion":"10.9.2","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"its-fine":"^2.0.0","client-only":"^0.0.1","@deckgl-fiber-renderer/types":"1.0.1","@deckgl-fiber-renderer/shared":"1.0.1","@deckgl-fiber-renderer/reconciler":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"react":"^19","react-dom":"^19"},"_npmOperationalInternal":{"tmp":"tmp/dom_1.0.1_1741926014039_0.8167609432868639","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@deckgl-fiber-renderer/dom","version":"1.1.0","license":"MIT","_id":"@deckgl-fiber-renderer/dom@1.1.0","maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"dist":{"shasum":"a60c821d35fcddd16644bdeaade970556f3253a2","tarball":"https://registry.npmjs.org/@deckgl-fiber-renderer/dom/-/dom-1.1.0.tgz","fileCount":12,"integrity":"sha512-tQsQLfEAQoCOd1raOFtRfRLtWy4Q1YUCeHFPZNATntnYad6sd0V2NcitPEy5hMi7w+4RFz8UxxueOC+Jby8J5Q==","signatures":[{"sig":"MEYCIQCkNHvpbbj84+hHJ+x6JVrin/slzcyp+2yZA24GeASuegIhAPnAQ2jjVbHBpDVMl5Y+xKc2/3Ne/Xxm0hYYKBNhK12z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18657},"type":"module","_from":"file:deckgl-fiber-renderer-dom-1.1.0.tgz","types":"./dist/index.d.ts","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"pnpm tsc --watch","lint":"pnpm biome lint","test":"pnpm vitest --dir=src","build":"pnpm tsup"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/b5333da4d728e99cf1245f1a32644395/deckgl-fiber-renderer-dom-1.1.0.tgz","_integrity":"sha512-tQsQLfEAQoCOd1raOFtRfRLtWy4Q1YUCeHFPZNATntnYad6sd0V2NcitPEy5hMi7w+4RFz8UxxueOC+Jby8J5Q==","_npmVersion":"10.9.2","description":"A React renderer for [deck.gl](https://deck.gl/).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"its-fine":"^2.0.0","client-only":"^0.0.1","@deckgl-fiber-renderer/types":"1.1.0","@deckgl-fiber-renderer/shared":"1.1.0","@deckgl-fiber-renderer/reconciler":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"react":"^19","react-dom":"^19"},"_npmOperationalInternal":{"tmp":"tmp/dom_1.1.0_1742012480920_0.21888082034764622","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@deckgl-fiber-renderer/dom","version":"1.1.1","license":"MIT","_id":"@deckgl-fiber-renderer/dom@1.1.1","maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"dist":{"shasum":"7648351c4322498bae0969840c2020ffd9a87b1d","tarball":"https://registry.npmjs.org/@deckgl-fiber-renderer/dom/-/dom-1.1.1.tgz","fileCount":12,"integrity":"sha512-AUdZioGk6XNrklAqMBqUXkN2ciykeZfOW7CwL7N71o86f8wMyzg9lKA7z39+2NHdWiqPahbEqyrj5hmMEyUlzw==","signatures":[{"sig":"MEUCIG7QCgGPFwJTtS4fGcMoGbrsdX76rieb32RUO2Z19apgAiEAof00gL+9BqQ7T51Df/xUELVo5rA0g67BJjGSuVYuN/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18708},"type":"module","_from":"file:deckgl-fiber-renderer-dom-1.1.1.tgz","types":"./dist/index.d.ts","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"pnpm tsc --watch","lint":"pnpm biome lint","test":"pnpm vitest --dir=src","build":"pnpm tsup"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/e711020a65cbe5732a9d4a93e48dc186/deckgl-fiber-renderer-dom-1.1.1.tgz","_integrity":"sha512-AUdZioGk6XNrklAqMBqUXkN2ciykeZfOW7CwL7N71o86f8wMyzg9lKA7z39+2NHdWiqPahbEqyrj5hmMEyUlzw==","_npmVersion":"10.9.2","description":"![Deckgl Fiber Renderer](../../assets/banner.jpg)","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"its-fine":"^2.0.0","client-only":"^0.0.1","@deckgl-fiber-renderer/types":"1.1.1","@deckgl-fiber-renderer/shared":"1.1.1","@deckgl-fiber-renderer/reconciler":"1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"react":"^19","react-dom":"^19"},"_npmOperationalInternal":{"tmp":"tmp/dom_1.1.1_1742227233248_0.01080639689654328","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@deckgl-fiber-renderer/dom","version":"1.2.0","keywords":["react","renderer","fiber","deckgl","deck.gl"],"author":{"url":"https://github.com/brandonjpierce","name":"Brandon Pierce"},"license":"MIT","_id":"@deckgl-fiber-renderer/dom@1.2.0","maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"homepage":"https://github.com/deckgl-fiber-renderer/fiber.gl#readme","bugs":{"url":"https://github.com/deckgl-fiber-renderer/fiber.gl/issues"},"dist":{"shasum":"a189443c3f0912f745f647f70578800a8b97987c","tarball":"https://registry.npmjs.org/@deckgl-fiber-renderer/dom/-/dom-1.2.0.tgz","fileCount":12,"integrity":"sha512-Y/PLX+yT2rAo8pSJIeRqfthRVxZ/zccVOq3TPRXF1znbpcYhFBwKMR+wxwg7t2YORw4nfttldE6jC+6CRYYXgg==","signatures":[{"sig":"MEQCIFKiz9lkxpq8w0XGXiSOzsHyYv4CV3mLt9mqIP/YQoAjAiB70HgyFWMCOku2xpv6Q3al6EOoRz3g2RuVd45ivKD2nQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19229},"type":"module","_from":"file:deckgl-fiber-renderer-dom-1.2.0.tgz","types":"./dist/index.d.ts","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"pnpm tsup --watch","lint":"pnpm biome lint","test":"pnpm vitest --dir=src","build":"pnpm tsup"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/54401191721aa30882a2206e9a1c21c3/deckgl-fiber-renderer-dom-1.2.0.tgz","_integrity":"sha512-Y/PLX+yT2rAo8pSJIeRqfthRVxZ/zccVOq3TPRXF1znbpcYhFBwKMR+wxwg7t2YORw4nfttldE6jC+6CRYYXgg==","repository":{"url":"git+https://github.com/deckgl-fiber-renderer/fiber.gl.git","type":"git","directory":"packages/dom"},"_npmVersion":"10.9.2","description":"A React renderer for Deck.gl","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"its-fine":"^2.0.0","client-only":"^0.0.1","@deckgl-fiber-renderer/types":"1.2.0","@deckgl-fiber-renderer/shared":"1.2.0","@deckgl-fiber-renderer/reconciler":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"react":"^19","react-dom":"^19"},"_npmOperationalInternal":{"tmp":"tmp/dom_1.2.0_1742268102465_0.47358932367748796","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@deckgl-fiber-renderer/dom","version":"1.3.0","keywords":["react","renderer","fiber","deckgl","deck.gl"],"author":{"url":"https://github.com/brandonjpierce","name":"Brandon Pierce"},"license":"MIT","_id":"@deckgl-fiber-renderer/dom@1.3.0","maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"homepage":"https://github.com/deckgl-fiber-renderer/fiber.gl#readme","bugs":{"url":"https://github.com/deckgl-fiber-renderer/fiber.gl/issues"},"dist":{"shasum":"5f8be3d754e182bcca1d5d68644b30587141c58f","tarball":"https://registry.npmjs.org/@deckgl-fiber-renderer/dom/-/dom-1.3.0.tgz","fileCount":12,"integrity":"sha512-Xh+1B6mCuDkV7GjEzUgGMa4vheh7HryTBL7fTiTzDSjnHEmwu5laUIXrbH6lFfb1GQmTVbFDwkaNZQp4t+YIlA==","signatures":[{"sig":"MEUCIQDvQVXjYqnCDuLlYINiupIB5EPUlJO4b/KMJVVih20lHAIgA+6TQpL3czbGEDWGW/9tzYmCuYpUqIkphWvhh3k5NkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18419},"type":"module","_from":"file:deckgl-fiber-renderer-dom-1.3.0.tgz","types":"./dist/index.d.ts","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"pnpm tsup --watch","lint":"pnpm biome lint","test":"pnpm vitest --dir=src","build":"pnpm tsup"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/b978c751ab4deddd5e620ec1b022ff7d/deckgl-fiber-renderer-dom-1.3.0.tgz","_integrity":"sha512-Xh+1B6mCuDkV7GjEzUgGMa4vheh7HryTBL7fTiTzDSjnHEmwu5laUIXrbH6lFfb1GQmTVbFDwkaNZQp4t+YIlA==","repository":{"url":"git+https://github.com/deckgl-fiber-renderer/fiber.gl.git","type":"git","directory":"packages/dom"},"_npmVersion":"10.9.2","description":"A React renderer for Deck.gl","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"its-fine":"^2.0.0","client-only":"^0.0.1","@deckgl-fiber-renderer/types":"1.3.0","@deckgl-fiber-renderer/shared":"1.3.0","@deckgl-fiber-renderer/reconciler":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"react":"^19","react-dom":"^19"},"_npmOperationalInternal":{"tmp":"tmp/dom_1.3.0_1742396231183_0.4690291698281315","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@deckgl-fiber-renderer/dom","version":"1.4.0","keywords":["react","renderer","fiber","deckgl","deck.gl"],"author":{"url":"https://github.com/brandonjpierce","name":"Brandon Pierce"},"license":"MIT","_id":"@deckgl-fiber-renderer/dom@1.4.0","maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"homepage":"https://github.com/deckgl-fiber-renderer/fiber.gl#readme","bugs":{"url":"https://github.com/deckgl-fiber-renderer/fiber.gl/issues"},"dist":{"shasum":"a58ffebcd5d7b3dd9b68f36119b1a3938c51d594","tarball":"https://registry.npmjs.org/@deckgl-fiber-renderer/dom/-/dom-1.4.0.tgz","fileCount":12,"integrity":"sha512-t3bkgCo7d91O5Y+mo/Fdvsnnz9A1I/Iij+Dfu0capLrXioa7MxjUOmmfZiia/MrPM308aM8eE3ODQE4JWQjZkw==","signatures":[{"sig":"MEQCIAhNqe596IeUTdi+qddI+A7zTG5AwzW09TI+VYz6z50uAiBtSLYKy1iB5OK7Sul1ctoVUPtC+24RY8cTxBUmyZqtnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19025},"type":"module","_from":"file:deckgl-fiber-renderer-dom-1.4.0.tgz","types":"./dist/index.d.ts","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"pnpm tsup --watch","lint":"pnpm biome lint","test":"pnpm vitest --dir=src","build":"pnpm tsup"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/fa9da4ae62bf5998bbb9cdfe84058902/deckgl-fiber-renderer-dom-1.4.0.tgz","_integrity":"sha512-t3bkgCo7d91O5Y+mo/Fdvsnnz9A1I/Iij+Dfu0capLrXioa7MxjUOmmfZiia/MrPM308aM8eE3ODQE4JWQjZkw==","repository":{"url":"git+https://github.com/deckgl-fiber-renderer/fiber.gl.git","type":"git","directory":"packages/dom"},"_npmVersion":"10.9.2","description":"A React renderer for Deck.gl","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"its-fine":"^2.0.0","client-only":"^0.0.1","@deckgl-fiber-renderer/types":"1.4.0","@deckgl-fiber-renderer/shared":"1.4.0","@deckgl-fiber-renderer/reconciler":"1.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"react":"^19","react-dom":"^19"},"_npmOperationalInternal":{"tmp":"tmp/dom_1.4.0_1746720232089_0.9285035859517428","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@deckgl-fiber-renderer/dom","version":"2.0.0","keywords":["deck.gl","deckgl","fiber","react","renderer"],"author":{"url":"https://github.com/brandonjpierce","name":"Brandon Pierce"},"license":"MIT","_id":"@deckgl-fiber-renderer/dom@2.0.0","maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"homepage":"https://github.com/deckgl-fiber-renderer/fiber.gl#readme","bugs":{"url":"https://github.com/deckgl-fiber-renderer/fiber.gl/issues"},"dist":{"shasum":"fbdcb06ba442e29a6ec1d8ca2e8854aaa27ff8de","tarball":"https://registry.npmjs.org/@deckgl-fiber-renderer/dom/-/dom-2.0.0.tgz","fileCount":11,"integrity":"sha512-8S1sX84/nSycsPLBNYRGTz2PiPxYsUdih5b3+4+cpF6v9NEFAiX7Wi2bbXULbaQxBD2VTs5hAnQZ49Qyip2oMw==","signatures":[{"sig":"MEUCIBeiLtok6oha4XF3oiGByRQ2Dia6tjvcEQ9e7MvNmWuSAiEAlCWslPyQVNI6gT1QVPiauATnMUj9P3FYovPadpY7UZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29327},"type":"module","_from":"file:deckgl-fiber-renderer-dom-2.0.0.tgz","types":"./dist/index.d.ts","$schema":"https://json.schemastore.org/package","exports":{".":"./dist/index.js","./hooks":"./dist/hooks.js","./components":"./dist/components.js","./package.json":"./package.json"},"private":false,"scripts":{"dev":"pnpm exec tsdown --watch","lint":"pnpm exec ultracite check","test":"pnpm exec vitest --dir=src","build":"pnpm exec tsdown","format":"pnpm exec ultracite fix"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/efc1484d47f341280a57643420a298cf/deckgl-fiber-renderer-dom-2.0.0.tgz","_integrity":"sha512-8S1sX84/nSycsPLBNYRGTz2PiPxYsUdih5b3+4+cpF6v9NEFAiX7Wi2bbXULbaQxBD2VTs5hAnQZ49Qyip2oMw==","repository":{"url":"git+https://github.com/deckgl-fiber-renderer/fiber.gl.git","type":"git","directory":"packages/dom"},"_npmVersion":"11.11.0","description":"A React renderer for Deck.gl","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"its-fine":"^2.0.0","client-only":"^0.0.1","@deckgl-fiber-renderer/types":"2.0.0","use-isomorphic-layout-effect":"^1.2.1","@deckgl-fiber-renderer/shared":"2.0.0","@deckgl-fiber-renderer/reconciler":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29","react":"^19","tsdown":"^0.21.8","vitest":"^4","react-dom":"^19","typescript":"^6","@types/react":"^19","@deck.gl/core":">=9.1","@deck.gl/layers":">=9.1","@deck.gl/mapbox":">=9.1","@types/react-dom":"^19","@deck.gl/geo-layers":">=9.1","@vitest/coverage-v8":"^4","@deck.gl/mesh-layers":">=9.1","@rolldown/plugin-babel":"^0.2.2","@testing-library/react":"^16","@testing-library/jest-dom":"^6","babel-plugin-react-compiler":"^1.0.0"},"peerDependencies":{"react":"^19","react-dom":"^19","@deck.gl/core":">=9.1","@deck.gl/layers":">=9.1","@deck.gl/mapbox":">=9.1","@deck.gl/geo-layers":">=9.1","@deck.gl/mesh-layers":">=9.1"},"_npmOperationalInternal":{"tmp":"tmp/dom_2.0.0_1776790892615_0.9192803077884437","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"$schema":"https://json.schemastore.org/package","name":"@deckgl-fiber-renderer/dom","version":"2.0.1","private":false,"description":"A React renderer for Deck.gl","keywords":["deck.gl","deckgl","fiber","react","renderer"],"bugs":{"url":"https://github.com/deckgl-fiber-renderer/fiber.gl/issues"},"license":"MIT","author":{"name":"Brandon Pierce","url":"https://github.com/brandonjpierce"},"maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"repository":{"type":"git","url":"git+https://github.com/deckgl-fiber-renderer/fiber.gl.git","directory":"packages/dom"},"type":"module","sideEffects":false,"types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./components":"./dist/components.js","./hooks":"./dist/hooks.js","./package.json":"./package.json"},"publishConfig":{"access":"public"},"dependencies":{"client-only":"^0.0.1","its-fine":"^2.0.0","use-isomorphic-layout-effect":"^1.2.1","@deckgl-fiber-renderer/reconciler":"2.0.1","@deckgl-fiber-renderer/shared":"2.0.1","@deckgl-fiber-renderer/types":"2.0.1"},"devDependencies":{"@deck.gl/core":">=9.1","@deck.gl/geo-layers":">=9.1","@deck.gl/layers":">=9.1","@deck.gl/mapbox":">=9.1","@deck.gl/mesh-layers":">=9.1","@rolldown/plugin-babel":"^0.2.2","@testing-library/jest-dom":"^6","@testing-library/react":"^16","@types/react":"^19","@types/react-dom":"^19","@vitest/coverage-v8":"^4","babel-plugin-react-compiler":"^1.0.0","jsdom":"^29","react":"^19","react-dom":"^19","tsdown":"^0.21.8","typescript":"^6","vitest":"^4"},"peerDependencies":{"@deck.gl/core":">=9.1","@deck.gl/geo-layers":">=9.1","@deck.gl/layers":">=9.1","@deck.gl/mapbox":">=9.1","@deck.gl/mesh-layers":">=9.1","react":"^19","react-dom":"^19"},"scripts":{"build":"pnpm exec tsdown","dev":"pnpm exec tsdown --watch","format":"pnpm exec ultracite fix","lint":"pnpm exec ultracite check","test":"pnpm exec vitest --dir=src"},"_id":"@deckgl-fiber-renderer/dom@2.0.1","homepage":"https://github.com/deckgl-fiber-renderer/fiber.gl#readme","_integrity":"sha512-j4NPt8AJ8HPxIOb1DeBU3yoL17VkRDT8bOO43bA8IUArX30sfIlVMKxMSTWNHcAu+zFG3NdVQ3MyaU8oLef7ug==","_resolved":"/tmp/89066e43043d7c818a504ba4ff65e084/deckgl-fiber-renderer-dom-2.0.1.tgz","_from":"file:deckgl-fiber-renderer-dom-2.0.1.tgz","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-j4NPt8AJ8HPxIOb1DeBU3yoL17VkRDT8bOO43bA8IUArX30sfIlVMKxMSTWNHcAu+zFG3NdVQ3MyaU8oLef7ug==","shasum":"cf4df833fd43095e325d2f305352522e427a7c7a","tarball":"https://registry.npmjs.org/@deckgl-fiber-renderer/dom/-/dom-2.0.1.tgz","fileCount":11,"unpackedSize":32651,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICOcWhcd+NUNIDSi2zqv7B+Tk5YcMYqeE4P3X/uaQzOKAiBluWF2xvjSUTSC+R8F9zm/27rEZYg3s2BTKSADFrIyFw=="}]},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dom_2.0.1_1779803759964_0.23657230449991462"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-14T04:15:03.708Z","modified":"2026-05-26T13:56:00.249Z","1.0.0":"2025-03-14T04:15:03.942Z","1.0.1":"2025-03-14T04:20:14.263Z","1.1.0":"2025-03-15T04:21:21.127Z","1.1.1":"2025-03-17T16:00:33.435Z","1.2.0":"2025-03-18T03:21:42.725Z","1.3.0":"2025-03-19T14:57:11.349Z","1.4.0":"2025-05-08T16:03:52.337Z","2.0.0":"2026-04-21T17:01:32.744Z","2.0.1":"2026-05-26T13:56:00.100Z"},"bugs":{"url":"https://github.com/deckgl-fiber-renderer/fiber.gl/issues"},"author":{"name":"Brandon Pierce","url":"https://github.com/brandonjpierce"},"license":"MIT","homepage":"https://github.com/deckgl-fiber-renderer/fiber.gl#readme","keywords":["deck.gl","deckgl","fiber","react","renderer"],"repository":{"type":"git","url":"git+https://github.com/deckgl-fiber-renderer/fiber.gl.git","directory":"packages/dom"},"description":"A React renderer for Deck.gl","maintainers":[{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"}],"readme":"# @deckgl-fiber-renderer/dom\n\nReact renderer for deck.gl. Build geospatial visualizations using React components and hooks with full TypeScript support.\n\n## Installation\n\n```bash\npnpm add @deckgl-fiber-renderer/dom\n```\n\n### Peer Dependencies\n\n```bash\npnpm add react react-dom @deck.gl/core @deck.gl/layers\n```\n\n**Requirements:** React `19.0.0+`, deck.gl `^9.1.0`\n\n---\n\n## Tutorial\n\n### Your First Map\n\nBuild a working scatterplot visualization in 3 steps.\n\n**1. Create the component**\n\n```tsx\nimport { Deckgl } from \"@deckgl-fiber-renderer/dom\";\nimport { ScatterplotLayer } from \"@deck.gl/layers\";\n\nfunction App() {\n  const data = [\n    { position: [-122.45, 37.8], size: 100, name: \"Point A\" },\n    { position: [-122.46, 37.81], size: 200, name: \"Point B\" },\n  ];\n\n  return (\n    <Deckgl\n      initialViewState={{\n        longitude: -122.45,\n        latitude: 37.8,\n        zoom: 12,\n      }}\n      style={{ width: \"100%\", height: \"100vh\" }}\n    >\n      <layer\n        layer={\n          new ScatterplotLayer({\n            id: \"points\",\n            data,\n            getPosition: (d) => d.position,\n            getRadius: (d) => d.size,\n            getFillColor: [255, 140, 0],\n          })\n        }\n      />\n    </Deckgl>\n  );\n}\n```\n\n**2. Add interactivity**\n\n```tsx\nimport { useState } from \"react\";\n\nfunction App() {\n  const [hovered, setHovered] = useState(null);\n\n  return (\n    <Deckgl\n      initialViewState={{ longitude: -122.45, latitude: 37.8, zoom: 12 }}\n      onHover={(info) => setHovered(info.object)}\n      getCursor={() => (hovered ? \"pointer\" : \"grab\")}\n    >\n      <layer\n        layer={\n          new ScatterplotLayer({\n            id: \"points\",\n            data,\n            getPosition: (d) => d.position,\n            getRadius: (d) => d.size,\n            getFillColor: hovered ? [255, 200, 0] : [255, 140, 0],\n            pickable: true,\n          })\n        }\n      />\n      {hovered && <div className=\"tooltip\">{hovered.name}</div>}\n    </Deckgl>\n  );\n}\n```\n\n**3. Success criteria**\n\n- ✅ You see orange points on the map\n- ✅ Cursor changes on hover\n- ✅ Tooltip shows point name\n\n**Learn more about deck.gl layers:** https://deck.gl/docs/api-reference/layers\n\n---\n\n## How-To Guides\n\n### Integrate with MapLibre/Mapbox\n\nUse interleaved rendering to combine deck.gl with basemap layers.\n\n```tsx\nimport { Map, useControl } from \"react-map-gl/maplibre\";\nimport { Deckgl, useDeckgl } from \"@deckgl-fiber-renderer/dom\";\n\nfunction DeckglOverlay() {\n  const deck = useDeckgl();\n  useControl(() => deck);\n  return null;\n}\n\nfunction App() {\n  return (\n    <Map\n      initialViewState={{ longitude: -122.4, latitude: 37.8, zoom: 12 }}\n      mapStyle=\"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json\"\n    >\n      <Deckgl interleaved>\n        <DeckglOverlay />\n        <layer layer={new ScatterplotLayer({ id: \"points\", data })} />\n      </Deckgl>\n    </Map>\n  );\n}\n```\n\n**Key points:**\n\n- `<Map>` wraps `<Deckgl>`, not vice versa\n- `interleaved` prop enables layer interleaving\n- `useDeckgl()` provides deck instance to `useControl()`\n\n**Learn more:** https://deck.gl/docs/api-reference/mapbox/overview\n\n### Render Multiple Views\n\nSplit screen or minimap with different cameras.\n\n```tsx\nimport { MapView, OrthographicView } from \"@deck.gl/core\";\n\nfunction App() {\n  return (\n    <Deckgl>\n      <view\n        view={\n          new MapView({\n            id: \"main\",\n            x: 0,\n            y: 0,\n            width: \"70%\",\n            height: \"100%\",\n          })\n        }\n      >\n        <layer layer={new ScatterplotLayer({ id: \"main-points\", data })} />\n      </view>\n\n      <view\n        view={\n          new OrthographicView({\n            id: \"minimap\",\n            x: \"70%\",\n            y: 0,\n            width: \"30%\",\n            height: \"100%\",\n          })\n        }\n      >\n        <layer layer={new ScatterplotLayer({ id: \"mini-points\", data })} />\n      </view>\n    </Deckgl>\n  );\n}\n```\n\n**Note:** Layer filtering by view requires manual control via props. All layers render in all views by default.\n\n**Learn more:** https://deck.gl/docs/api-reference/core/deck#views\n\n### Use Custom Layers\n\nCustom layers work immediately without registration.\n\n```tsx\nimport { CompositeLayer } from \"@deck.gl/core\";\nimport { ScatterplotLayer } from \"@deck.gl/layers\";\n\nclass CustomLayer extends CompositeLayer {\n  static layerName = \"CustomLayer\";\n\n  renderLayers() {\n    return new ScatterplotLayer({\n      id: `${this.props.id}-scatter`,\n      data: this.props.data,\n      getPosition: (d) => d.coordinates,\n      getRadius: this.props.customRadius || 100,\n    });\n  }\n}\n\n// Use immediately - no registration needed\n<layer layer={new CustomLayer({ id: \"custom\", data, customRadius: 200 })} />;\n```\n\n**TypeScript typing (optional):**\n\n```tsx\ntype CustomLayerProps = {\n  id: string;\n  data: unknown[];\n  customRadius?: number;\n};\n\ndeclare global {\n  namespace React.JSX {\n    interface IntrinsicElements {\n      customLayer: CustomLayerProps;\n    }\n  }\n}\n\n// Now <customLayer> has type checking (but <layer> is recommended)\n```\n\n**Learn more:** https://deck.gl/docs/developer-guide/custom-layers\n\n---\n\n## Reference\n\n### API: `<Deckgl>`\n\nRoot container for deck.gl visualization.\n\n```tsx\n<Deckgl\n  initialViewState={{ longitude: -122.4, latitude: 37.8, zoom: 12 }}\n  width=\"100%\"\n  height=\"100vh\"\n  onLoad={(deck) => console.log(\"Ready\", deck)}\n>\n  {children}\n</Deckgl>\n```\n\n**Props:**\n\n| Prop                | Type                    | Description                                               |\n| ------------------- | ----------------------- | --------------------------------------------------------- |\n| `initialViewState`  | `object`                | Initial camera position (longitude, latitude, zoom, etc.) |\n| `width`             | `string \\| number`      | Container width (CSS values supported)                    |\n| `height`            | `string \\| number`      | Container height (CSS values supported)                   |\n| `interleaved`       | `boolean`               | Enable interleaved rendering for basemap integration      |\n| `onLoad`            | `(deck: Deck) => void`  | Callback when deck.gl initializes                         |\n| `onViewStateChange` | `(params) => void`      | Callback when view state changes                          |\n| `onHover`           | `(info, event) => void` | Callback on hover                                         |\n| `onClick`           | `(info, event) => void` | Callback on click                                         |\n| `getCursor`         | `(state) => string`     | Custom cursor based on state                              |\n| `debug`             | `boolean`               | Enable logging (development mode only)                    |\n\n**Inherited props:** All props from deck.gl's [`DeckProps`](https://deck.gl/docs/api-reference/core/deck#properties) and [`MapboxOverlayProps`](https://deck.gl/docs/api-reference/mapbox/mapbox-overlay#properties) are supported.\n\n### API: `useDeckgl()`\n\nHook to access the deck.gl instance.\n\n```tsx\nimport { useDeckgl } from \"@deckgl-fiber-renderer/dom\";\n\nfunction MyComponent() {\n  const deck = useDeckgl();\n\n  useEffect(() => {\n    if (deck) {\n      console.log(\"Current view state:\", deck.viewState);\n    }\n  }, [deck]);\n\n  return null;\n}\n```\n\n**Returns:** `Deck | null`\n\n**Note:** Returns `null` until `<Deckgl>` mounts. Always check before use.\n\n### API: `<layer>` and `<view>`\n\nUniversal elements for layers and views (v2 syntax).\n\n**`<layer>` element:**\n\n```tsx\n<layer layer={new ScatterplotLayer({ id: \"points\", data })} key=\"optional-react-key\" />\n```\n\n| Prop    | Type     | Required | Description                  |\n| ------- | -------- | -------- | ---------------------------- |\n| `layer` | `Layer`  | Yes      | deck.gl Layer instance       |\n| `key`   | `string` | No       | React key for list rendering |\n\n**`<view>` element:**\n\n```tsx\n<view view={new MapView({ id: \"main\" })} key=\"optional-react-key\" />\n```\n\n| Prop   | Type     | Required | Description                  |\n| ------ | -------- | -------- | ---------------------------- |\n| `view` | `View`   | Yes      | deck.gl View instance        |\n| `key`  | `string` | No       | React key for list rendering |\n\n**TypeScript generics:**\n\n```tsx\ntype DataPoint = { coordinates: [number, number]; value: number };\n\n<layer\n  layer={\n    new ScatterplotLayer<DataPoint>({\n      id: \"points\",\n      data,\n      getPosition: (d) => d.coordinates, // d typed as DataPoint\n      getRadius: (d) => d.value, // Full autocomplete\n    })\n  }\n/>;\n```\n\n### API: `extend()` (deprecated)\n\n```tsx\nimport { extend } from \"@deckgl-fiber-renderer/dom\";\nimport { MyCustomLayer } from \"./my-custom-layer\";\n\nextend({ MyCustomLayer });\n\n// Deprecated - use <layer> instead\n<myCustomLayer id=\"custom\" data={data} />;\n```\n\n**Deprecation:** This function is deprecated and will be removed in v3. Use `<layer layer={new MyCustomLayer(...)} />` instead.\n\n---\n\n## Explanation\n\n### Why a React Reconciler?\n\nThe official deck.gl React bindings wrap the imperative deck.gl API. This limits composition - layers must be direct children, hooks don't work, and TypeScript generics are unsupported.\n\nA React reconciler integrates deck.gl at a lower level. It teaches React how to render to deck.gl, making layers first-class React components. This enables:\n\n- **Nesting** - Layers can be anywhere in your component tree\n- **Hooks** - useState, useContext, custom hooks all work\n- **Generics** - Full TypeScript type inference in accessor functions\n- **Composition** - Build reusable layer components\n\n**Tradeoff:** Slightly larger bundle (~15KB) for reconciler infrastructure. Worth it for teams building complex visualizations.\n\n### Persistence Mode Design\n\nReact reconcilers can mutate nodes (DOM) or replace them (primitives like strings). This reconciler uses **persistence mode** - it replaces layers instead of mutating them.\n\n**Why?** deck.gl layers are designed as immutable descriptors:\n\n> \"Layers are descriptor objects that are very cheap to instantiate. Create a new set of layers every render cycle.\" - [deck.gl docs](https://deck.gl/docs/developer-guide/using-layers)\n\ndeck.gl handles efficient updates internally by:\n\n1. Matching layers by ID\n2. Diffing props\n3. Reusing GPU resources\n\nThe reconciler creates new layer instances on prop changes. deck.gl's diffing algorithm detects what actually changed and updates only affected state.\n\n**Performance:** No overhead. Creating layer instances is cheap - they're plain objects until deck.gl processes them.\n\n### Layer IDs and Diffing\n\n**Rule:** Always provide explicit, stable `id` props.\n\n```tsx\n// ✅ Good - explicit, stable ID\n<layer layer={new ScatterplotLayer({ id: \"points\", data })} />\n\n// ❌ Bad - missing ID (auto-generated, changes every render)\n<layer layer={new ScatterplotLayer({ data })} />\n\n// ❌ Bad - non-stable ID (changes every render)\n<layer layer={new ScatterplotLayer({ id: Math.random().toString(), data })} />\n```\n\n**Why?** deck.gl uses IDs for diffing. Without stable IDs:\n\n- Layer treated as new on every render\n- GPU resources destroyed and recreated\n- Animations reset\n- Performance degrades\n\n**Development mode validation:** Missing or duplicate IDs trigger warnings. These checks are stripped from production builds.\n\n**Learn more:** https://deck.gl/docs/developer-guide/using-layers#layer-identity-and-diffing\n\n### v1 vs v2 Syntax\n\n#### Understanding v1 Auto-Registration\n\nIn v1, importing the side-effects module automatically registered all deck.gl layers:\n\n```tsx\n// v1 side-effects import (no longer works in v2)\nimport \"@deckgl-fiber-renderer/reconciler/side-effects\";\n```\n\nThis single import executed code that called `extend()` with 30+ layer constructors:\n\n```tsx\n// What the v1 side-effects import did internally:\nextend({\n  // Views\n  MapView,\n  OrthographicView,\n  OrbitView,\n  FirstPersonView,\n  GlobeView,\n\n  // @deck.gl/layers (13 layers)\n  ArcLayer,\n  BitmapLayer,\n  IconLayer,\n  LineLayer,\n  PointCloudLayer,\n  ScatterplotLayer,\n  ColumnLayer,\n  GridCellLayer,\n  PathLayer,\n  PolygonLayer,\n  GeoJsonLayer,\n  TextLayer,\n  SolidPolygonLayer,\n\n  // @deck.gl/geo-layers (14 layers)\n  S2Layer,\n  QuadkeyLayer,\n  TileLayer,\n  TripsLayer,\n  H3ClusterLayer,\n  H3HexagonLayer,\n  Tile3DLayer,\n  TerrainLayer,\n  MVTLayer,\n  GeohashLayer,\n  GreatCircleLayer,\n  WMSLayer,\n\n  // @deck.gl/mesh-layers (2 layers)\n  ScenegraphLayer,\n  SimpleMeshLayer,\n});\n```\n\nAfter this registration, you could use layer-specific JSX elements:\n\n```tsx\n<scatterplotLayer id=\"points\" data={data} getPosition={(d) => d.coordinates} />\n<pathLayer id=\"routes\" data={routes} getPath={(d) => d.path} />\n```\n\n#### ⚠️ The Migration Footgun\n\n**JSX elements still have TypeScript types in v2, but they won't work at runtime without proper registration.**\n\nThis is the most common migration error:\n\n```tsx\n// No registration - JSX types exist but runtime catalog is empty\n<scatterplotLayer id=\"points\" data={data} getPosition={(d) => d.coordinates} />\n//              ^^^^^^^^^ TypeScript: ✅  Runtime: ❌ \"Unknown element type: scatterplotLayer\"\n```\n\n**Why this happens:**\n\n1. **TypeScript types exist:** `@deckgl-fiber-renderer/types` declares JSX elements for all layers for backwards compatibility\n2. **Runtime registry is empty:** Without manual `extend()` calls, the reconciler doesn't know how to instantiate `scatterplotLayer`\n3. **Side-effects import is a no-op in v2:** It only shows a deprecation warning - it doesn't register layers anymore\n4. **TypeScript can't catch this:** Type definitions don't guarantee runtime behavior\n\n**What breaks:**\n\n- Your app renders nothing or shows errors\n- No layers appear on the map\n- Console shows \"Unknown element type\" errors\n\n#### Migration Strategies\n\n**Option 1: Migrate to v2 syntax (Recommended)**\n\nReplace layer-specific elements with the universal `<layer>` element:\n\n```tsx\n// ✅ v2 - No registration needed\nimport { ScatterplotLayer } from \"@deck.gl/layers\";\n\n<layer\n  layer={\n    new ScatterplotLayer({\n      id: \"points\",\n      data,\n      getPosition: (d) => d.coordinates,\n    })\n  }\n/>;\n```\n\n**Benefits:**\n\n- ✅ No registration required - works immediately\n- ✅ Full TypeScript generics with type inference\n- ✅ Automatic code-splitting (only bundle imported layers)\n- ✅ Custom layers work without setup\n- ✅ Future-proof (v1 syntax removed in v3)\n\n**Option 2: Stay on v1 syntax (Not recommended)**\n\nIf you must stay on v1 syntax temporarily, you need to manually register layers using `extend()`.\n\n**For complete v1 behavior** (all default layers):\n\n```tsx\n// Recreate v1 side-effects behavior manually\nimport { extend } from \"@deckgl-fiber-renderer/dom\";\nimport {\n  FirstPersonView,\n  _GlobeView as GlobeView,\n  MapView,\n  OrbitView,\n  OrthographicView,\n} from \"@deck.gl/core\";\nimport {\n  GeohashLayer,\n  GreatCircleLayer,\n  H3ClusterLayer,\n  H3HexagonLayer,\n  MVTLayer,\n  QuadkeyLayer,\n  S2Layer,\n  TerrainLayer,\n  Tile3DLayer,\n  TileLayer,\n  TripsLayer,\n  _WMSLayer as WMSLayer,\n} from \"@deck.gl/geo-layers\";\nimport {\n  ArcLayer,\n  BitmapLayer,\n  ColumnLayer,\n  GeoJsonLayer,\n  GridCellLayer,\n  IconLayer,\n  LineLayer,\n  PathLayer,\n  PointCloudLayer,\n  PolygonLayer,\n  ScatterplotLayer,\n  SolidPolygonLayer,\n  TextLayer,\n} from \"@deck.gl/layers\";\nimport { ScenegraphLayer, SimpleMeshLayer } from \"@deck.gl/mesh-layers\";\n\n// Register all layers\nextend({\n  // Views\n  MapView,\n  OrthographicView,\n  OrbitView,\n  FirstPersonView,\n  GlobeView,\n  // @deck.gl/layers\n  ArcLayer,\n  BitmapLayer,\n  IconLayer,\n  LineLayer,\n  PointCloudLayer,\n  ScatterplotLayer,\n  ColumnLayer,\n  GridCellLayer,\n  PathLayer,\n  PolygonLayer,\n  GeoJsonLayer,\n  TextLayer,\n  SolidPolygonLayer,\n  // @deck.gl/geo-layers\n  S2Layer,\n  QuadkeyLayer,\n  TileLayer,\n  TripsLayer,\n  H3ClusterLayer,\n  H3HexagonLayer,\n  Tile3DLayer,\n  TerrainLayer,\n  MVTLayer,\n  MvtLayer: MVTLayer,\n  WMSLayer,\n  WmsLayer: WMSLayer,\n  GeohashLayer,\n  GreatCircleLayer,\n  // @deck.gl/mesh-layers\n  ScenegraphLayer,\n  SimpleMeshLayer,\n});\n\n// Now v1 syntax works\n<scatterplotLayer id=\"points\" data={data} />;\n```\n\n**For minimal registration** (only layers you need):\n\n```tsx\n// Register only what you use\nimport { extend } from \"@deckgl-fiber-renderer/dom\";\nimport { ScatterplotLayer, PathLayer } from \"@deck.gl/layers\";\n\nextend({ ScatterplotLayer, PathLayer });\n\n// Now these specific layers work\n<scatterplotLayer id=\"points\" data={data} />\n<pathLayer id=\"routes\" data={routes} />\n```\n\n**Downsides of staying on v1:**\n\n- ⚠️ Shows deprecation warnings in development mode\n- ⚠️ Will break in v3 (complete removal)\n- ⚠️ No TypeScript generics support\n- ⚠️ Bundles all layers if you use complete registration\n- ⚠️ Easy to forget registering a layer (runtime errors)\n\n#### Migration Checklist\n\nMigrating from v1 to v2:\n\n1. **Remove the side-effects import** (it's a no-op in v2):\n\n   ```tsx\n   // ❌ Remove this - doesn't work anymore\n   import \"@deckgl-fiber-renderer/reconciler/side-effects\";\n   ```\n\n2. **Import layer constructors:**\n\n   ```tsx\n   // ✅ Add explicit imports\n   import { ScatterplotLayer, PathLayer } from \"@deck.gl/layers\";\n   ```\n\n3. **Replace layer elements:**\n\n   ```tsx\n   // ❌ Old\n   <scatterplotLayer id=\"points\" data={data} getPosition={(d) => d.coordinates} />\n\n   // ✅ New\n   <layer layer={new ScatterplotLayer({ id: \"points\", data, getPosition: (d) => d.coordinates })} />\n   ```\n\n4. **Remove `extend()` calls** (no longer needed)\n\n5. **Add TypeScript generics** (optional but recommended):\n\n   ```tsx\n   type DataPoint = { coordinates: [number, number]; value: number };\n\n   <layer\n     layer={\n       new ScatterplotLayer<DataPoint>({\n         id: \"points\",\n         data,\n         getPosition: (d) => d.coordinates, // d typed as DataPoint\n       })\n     }\n   />;\n   ```\n\n---\n\n## Additional Resources\n\n- **deck.gl Documentation:** https://deck.gl/docs\n- **deck.gl Examples:** https://deck.gl/examples\n- **React Reconciler:** https://github.com/facebook/react/tree/main/packages/react-reconciler\n- **Source Code:** https://github.com/deckgl-fiber-renderer/fiber.gl\n","readmeFilename":"README.md"}