{"_id":"@alonso-cancino/dcel-map-frontend","_rev":"13-c226f2cb41539e08bd3e0c7d47c7d7f9","name":"@alonso-cancino/dcel-map-frontend","dist-tags":{"latest":"0.9.3"},"versions":{"0.2.0":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.2.0","_id":"@alonso-cancino/dcel-map-frontend@0.2.0","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"dist":{"shasum":"658c0c9a30644a701d27278a88f175d50554d852","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.2.0.tgz","fileCount":8,"integrity":"sha512-VyEeaLEX+XxoYkYyo8gkmrrVT3oT2ziA93Mv6OT0vkLRT2pQSq5sf1PmB+k0UNJaVhkoATOiAOgCQkQkJHQkWA==","signatures":[{"sig":"MEUCIDKfJuF/iO3w68uzyfB477eMYjxBMoHagq53hW9pCiF8AiEAwKnXUW9ZD9idfjEiroHLcsJWXMOfShmliLV+EFDjizI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98341},"main":"./dist-lib/index.js","type":"module","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"gitHead":"5acdf897b9e21bab87b19089d497ea189bb1fc86","scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"},"_npmVersion":"10.9.2","directories":{},"_nodeVersion":"22.17.0","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.2.0_1774981666214_0.7404164462915492","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.5.0","_id":"@alonso-cancino/dcel-map-frontend@0.5.0","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"6f101892b593bfa0bf39571192413ecb8db9838d","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.5.0.tgz","fileCount":8,"integrity":"sha512-5I8KucMpR6luARKNHrjaJ3FFjl8EkSPuMo8ImxZ7Q5w3+WRFASlC2ePrcKx/JeMVjKHY0CVBOIMoPJz5Z1BH8w==","signatures":[{"sig":"MEUCIQD9wXrpG9k6OnEt9J+w5cUiuVigyd2kYqzl70+cf/mpeAIgPm6ePl7h6ueSKh5srV10h2ZO4aHRD7KP5Sg9LMUGvc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98473},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.5.0.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.5.0.tgz","_integrity":"sha512-5I8KucMpR6luARKNHrjaJ3FFjl8EkSPuMo8ImxZ7Q5w3+WRFASlC2ePrcKx/JeMVjKHY0CVBOIMoPJz5Z1BH8w==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.9.0","directories":{},"_nodeVersion":"24.14.0","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.5.0_1775007105625_0.5540800682640425","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.6.0","_id":"@alonso-cancino/dcel-map-frontend@0.6.0","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"29e1b8b9be83f99346f1bb6a95d2cfd93d737160","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.6.0.tgz","fileCount":8,"integrity":"sha512-22PiDwPEJBG70ewPWqYAORvtBbRm6tVPEcnKyNRS3y/xtCFwYx2RvjbQY/+Lo+KztKosZON37xAmx7AZ59HuhQ==","signatures":[{"sig":"MEQCIHycHazdu7rLzVED/qgf4qZLopukQfflrMLoOwGmpHnSAiBLhY5/NIOBNA6HfaAUrgPpb6GfiF2fixZlC0lhuprqMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98473},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.6.0.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.6.0.tgz","_integrity":"sha512-22PiDwPEJBG70ewPWqYAORvtBbRm6tVPEcnKyNRS3y/xtCFwYx2RvjbQY/+Lo+KztKosZON37xAmx7AZ59HuhQ==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.9.0","directories":{},"_nodeVersion":"24.14.0","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.6.0_1775014052640_0.8708655659074189","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.6.1","_id":"@alonso-cancino/dcel-map-frontend@0.6.1","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"0ec5326f7a067b72846faa96b72b00eb723c5fc8","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.6.1.tgz","fileCount":8,"integrity":"sha512-YOjU8YUGTX/caffOm9etCeD4lZMCTfvH+AOxWTjQ5Zr/3cgtgV9DyRPvmi0zSl0XM/VLzJj7DpZTROWHslWqNw==","signatures":[{"sig":"MEQCIG2rhrwIH2HA4v8ExNSH5V4slObIg+ctzBUGUH1peKDyAiBguJA0vRhII/PyBptbpUfZe14Qaf08wZWRStM3aLRfeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101118},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.6.1.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.6.1.tgz","_integrity":"sha512-YOjU8YUGTX/caffOm9etCeD4lZMCTfvH+AOxWTjQ5Zr/3cgtgV9DyRPvmi0zSl0XM/VLzJj7DpZTROWHslWqNw==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.9.0","directories":{},"_nodeVersion":"24.14.0","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.6.1_1775015299237_0.5119273441014502","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.6.2","_id":"@alonso-cancino/dcel-map-frontend@0.6.2","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"45a624c4947610fba819b01bdb0196545e9e450f","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.6.2.tgz","fileCount":8,"integrity":"sha512-hQ1IYb1DfsPW6bsFRjMeO44tQsdPHUq9C/BZCulFF02kXSet3nk8WDc6xMVsGBw6bf0iiCIsnDbPrekAXcxrIg==","signatures":[{"sig":"MEUCIQDqn5Mvjt7MzVHgQYRP58ZwOOMOiyzTy+y8E2HKsB8k9QIgQli5bHsBdvNPbHMYo/WrW4p8fzoWsddcJCecLFhJHTc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101118},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.6.2.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.6.2.tgz","_integrity":"sha512-hQ1IYb1DfsPW6bsFRjMeO44tQsdPHUq9C/BZCulFF02kXSet3nk8WDc6xMVsGBw6bf0iiCIsnDbPrekAXcxrIg==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.9.0","directories":{},"_nodeVersion":"24.14.0","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.6.2_1775018252231_0.10857159287132401","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.7.0","_id":"@alonso-cancino/dcel-map-frontend@0.7.0","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"23194944cb113b1a26495d28e1a9021cdb4d1d64","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.7.0.tgz","fileCount":9,"integrity":"sha512-QqRfw6EOXGscRR+K2HdR3YxHwqGiUcTt6Fl0oG7Fv8yRA7VwSbhQIDu6Q7Xk7/T/U0izTQf6iWepROglfB8VKg==","signatures":[{"sig":"MEUCIGNNNfTBzLnu6aJLCB8qPSJxK/n23so0CHs6SBo5+EI4AiEA6j3qFcVdT2prNCEJ5YkfgYSYqdiNiN7zl+Le8oqcntI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104990},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.7.0.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.7.0.tgz","_integrity":"sha512-QqRfw6EOXGscRR+K2HdR3YxHwqGiUcTt6Fl0oG7Fv8yRA7VwSbhQIDu6Q7Xk7/T/U0izTQf6iWepROglfB8VKg==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.9.0","description":"An interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, ho","directories":{},"_nodeVersion":"24.14.0","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.7.0_1775018423913_0.7689259704903679","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.8.0","_id":"@alonso-cancino/dcel-map-frontend@0.8.0","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"ec0f2acabef2746c4acbee9979f2af6eed755c8d","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.8.0.tgz","fileCount":14,"integrity":"sha512-0C3Ix3rMZSNX5f+F3NtVMlROPzDED0BbcLirZzSC7fqaHZCb/qLd52BsZH3LdWmQPL6IqYNHaY12eg2J5g25aA==","signatures":[{"sig":"MEQCICo4pXaa6zwUTylMl65PAmVGWdvEfs3lpyppqSJUZZ2OAiAkv4yIcU6tHuzm6CpRv/dgQbHHO/LCoxRC9BaXS8MrvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116569},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.8.0.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.8.0.tgz","_integrity":"sha512-0C3Ix3rMZSNX5f+F3NtVMlROPzDED0BbcLirZzSC7fqaHZCb/qLd52BsZH3LdWmQPL6IqYNHaY12eg2J5g25aA==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.9.0","description":"An interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, ho","directories":{},"_nodeVersion":"24.14.0","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.8.0_1775092300368_0.20627501225047395","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.8.1","_id":"@alonso-cancino/dcel-map-frontend@0.8.1","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"0b2a3810d54027db0c02a422e38d6d7433adefb6","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.8.1.tgz","fileCount":14,"integrity":"sha512-EgWvewV+cHEQWym56wBVD8B7UV/le+FNAmSZgr5fp2nI3f+A/OsUtf4QFHzreZOABX7M8Jwl/BgKpTuq9fmTIQ==","signatures":[{"sig":"MEQCIDUafM1vCOo7JYkTxnmAoxLagsy4P8+sVLa8/mn47vSOAiA94bY3zOtKSGj2KVTarkSgbkfrofIAzp/gEiVZtq4Xcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122837},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.8.1.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.8.1.tgz","_integrity":"sha512-EgWvewV+cHEQWym56wBVD8B7UV/le+FNAmSZgr5fp2nI3f+A/OsUtf4QFHzreZOABX7M8Jwl/BgKpTuq9fmTIQ==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.9.0","description":"An interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, ho","directories":{},"_nodeVersion":"24.14.0","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.8.1_1775100588397_0.44354808514628075","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.8.2","_id":"@alonso-cancino/dcel-map-frontend@0.8.2","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"3269de1d68083e5db4ccc058cb92d061b6acdc87","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.8.2.tgz","fileCount":14,"integrity":"sha512-qdVjdeVAFMlJHbaKDMli4iykRFkNadDvMf0tP9Weh01kqhwQuJHZGvXZKZxGTpWCXTByza1r1KMRY6EteFp4NA==","signatures":[{"sig":"MEUCIQDpviyyP/r+mOCnvh2XaJVqLopGmJd1n1l9bJlGwxvVqwIgVXUdjK14dYknCwxynl7hgyv7+PEUFyw1HR0+gZGpd/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124074},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.8.2.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.8.2.tgz","_integrity":"sha512-qdVjdeVAFMlJHbaKDMli4iykRFkNadDvMf0tP9Weh01kqhwQuJHZGvXZKZxGTpWCXTByza1r1KMRY6EteFp4NA==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.11.0","description":"An interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, ho","directories":{},"_nodeVersion":"24.14.1","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.8.2_1776139383041_0.37198946726339543","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.9.0","_id":"@alonso-cancino/dcel-map-frontend@0.9.0","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"ee9a970281a1a2767220bfd7e6d5f46f4f931d65","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.9.0.tgz","fileCount":14,"integrity":"sha512-yR63DaXUNRhNC4oc16l3AcBxg8JYUSsL5h6BrpJct7CfGRLIqVIExcOFbNxVDiYsDqjkYTsgmCJ6wwbF0K4Tbg==","signatures":[{"sig":"MEUCIDVthxqK/4tYLvXOd35NPZPLWuPY7TE+3au9uuH4XcZCAiEAoo0bYS5kfsIw7Fmm8M3fd9XOUBqe64JBAJYAH5JuaZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124074},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.9.0.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.9.0.tgz","_integrity":"sha512-yR63DaXUNRhNC4oc16l3AcBxg8JYUSsL5h6BrpJct7CfGRLIqVIExcOFbNxVDiYsDqjkYTsgmCJ6wwbF0K4Tbg==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.11.0","description":"An interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, ho","directories":{},"_nodeVersion":"24.14.1","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.9.0_1776200222343_0.9551197286550497","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.9.1","_id":"@alonso-cancino/dcel-map-frontend@0.9.1","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"8c80472cd4d615e6ab136387ffb589d81c41a946","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.9.1.tgz","fileCount":14,"integrity":"sha512-eQq13NAPL5SLcFJ1fNw/qSKxot+xdDacEVGvk20a4yFh6uzOK1WKY2dVdW+PF+a8AaF64Hj9eCQzj1Iv/8tJcQ==","signatures":[{"sig":"MEQCIBed8MtxyI00RijnRr5+uAJFR45gz/kJKOxNgZdILC4bAiBQWLKlBfN8BlF9JtZFK7vl2JM49+Emky7oEx2F+WrFdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124074},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.9.1.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.9.1.tgz","_integrity":"sha512-eQq13NAPL5SLcFJ1fNw/qSKxot+xdDacEVGvk20a4yFh6uzOK1WKY2dVdW+PF+a8AaF64Hj9eCQzj1Iv/8tJcQ==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.11.0","description":"An interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, ho","directories":{},"_nodeVersion":"24.14.1","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.9.1_1776214540884_0.3887722712957933","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.9.2","_id":"@alonso-cancino/dcel-map-frontend@0.9.2","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"homepage":"https://github.com/alonso-cancino/map-generator#readme","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"dist":{"shasum":"6cf95533f4293122cfe463c727f076c9af9355b9","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.9.2.tgz","fileCount":14,"integrity":"sha512-nMyetxB6omtGpd5kzT2Rtj24iyzVeixgQz0p+iM7v9v+xvP8SatPgU/G1uX/Scu8dz4insCH/DcElp/KQ1auYg==","signatures":[{"sig":"MEUCIQDQGfsdjLIDgDbDQWKpx0QwdNN0COyzq1YCXzV39Bgv4gIgfk0mDgxDdiLhrv68r7CNUSvCUdAvreyAAvscESyuTLU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124074},"main":"./dist-lib/index.js","type":"module","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.9.2.tgz","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","preview":"vite preview","pack:lib":"npm pack","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.9.2.tgz","_integrity":"sha512-nMyetxB6omtGpd5kzT2Rtj24iyzVeixgQz0p+iM7v9v+xvP8SatPgU/G1uX/Scu8dz4insCH/DcElp/KQ1auYg==","repository":{"url":"git+https://github.com/alonso-cancino/map-generator.git","type":"git","directory":"frontend"},"_npmVersion":"11.11.0","description":"An interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, ho","directories":{},"_nodeVersion":"24.14.1","dependencies":{"d3":"^7.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","@types/d3":"^7.4.3","typescript":"^5.7.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/dcel-map-frontend_0.9.2_1776227558316_0.7677069799328182","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@alonso-cancino/dcel-map-frontend","version":"0.9.3","repository":{"type":"git","url":"git+https://github.com/alonso-cancino/map-generator.git","directory":"frontend"},"type":"module","main":"./dist-lib/index.js","module":"./dist-lib/index.js","types":"./dist-lib/index.d.ts","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/index.css"},"scripts":{"dev":"vite","build":"npm run build:app && npm run build:lib","build:app":"tsc -b && vite build","build:lib":"tsc -p tsconfig.lib.json && vite build --config vite.lib.config.ts","pack:lib":"npm pack","preview":"vite preview"},"dependencies":{"d3":"^7.9.0"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"devDependencies":{"@types/d3":"^7.4.3","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.4","typescript":"^5.7.2","vite":"^6.0.5"},"_id":"@alonso-cancino/dcel-map-frontend@0.9.3","description":"An interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, ho","bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"homepage":"https://github.com/alonso-cancino/map-generator#readme","_integrity":"sha512-2XDgpLABcNU4pGlVU4PlczNDeSROObib4B8ky9LK+4Hc1BM4BIqwCL9mZR7Xx2kHss4bXcPOHrLUXOXphfG7oA==","_resolved":"/home/runner/work/map-generator/map-generator/release-artifacts/alonso-cancino-dcel-map-frontend-0.9.3.tgz","_from":"file:release-artifacts/alonso-cancino-dcel-map-frontend-0.9.3.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-2XDgpLABcNU4pGlVU4PlczNDeSROObib4B8ky9LK+4Hc1BM4BIqwCL9mZR7Xx2kHss4bXcPOHrLUXOXphfG7oA==","shasum":"61f9ee1514e6f15da885f3daadc19748d2dd67e3","tarball":"https://registry.npmjs.org/@alonso-cancino/dcel-map-frontend/-/dcel-map-frontend-0.9.3.tgz","fileCount":14,"unpackedSize":127551,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alonso-cancino%2fdcel-map-frontend@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID6C/TcFjhEu51O3Jxx+Cj2Jd398MlPKI9s9UE/uO3cBAiAxLTRRfC9IYraq2I/XCYXLW8TfSlRh41XdTBrgrzlaBg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23b11c27-1c40-44fa-89dd-49295134ad3a"}},"directories":{},"maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dcel-map-frontend_0.9.3_1776255557349_0.14988492731497471"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-31T18:27:46.083Z","modified":"2026-04-15T12:19:17.756Z","0.2.0":"2026-03-31T18:27:46.352Z","0.5.0":"2026-04-01T01:31:45.774Z","0.6.0":"2026-04-01T03:27:32.771Z","0.6.1":"2026-04-01T03:48:19.375Z","0.6.2":"2026-04-01T04:37:32.383Z","0.7.0":"2026-04-01T04:40:24.047Z","0.8.0":"2026-04-02T01:11:40.563Z","0.8.1":"2026-04-02T03:29:48.550Z","0.8.2":"2026-04-14T04:03:03.231Z","0.9.0":"2026-04-14T20:57:02.492Z","0.9.1":"2026-04-15T00:55:41.037Z","0.9.2":"2026-04-15T04:32:38.445Z","0.9.3":"2026-04-15T12:19:17.481Z"},"bugs":{"url":"https://github.com/alonso-cancino/map-generator/issues"},"homepage":"https://github.com/alonso-cancino/map-generator#readme","repository":{"type":"git","url":"git+https://github.com/alonso-cancino/map-generator.git","directory":"frontend"},"description":"An interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, ho","maintainers":[{"name":"alonso-cancino","email":"ct.alonso.mat@gmail.com"}],"readme":"# @alonso-cancino/dcel-map-frontend\n\nAn interactive, zoomable map viewer for hierarchical zone maps. Built with React and D3, this component renders SVG maps generated by [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/) with smooth zoom, depth-aware progressive detail, hover highlights, and zone labels.\n\n[Live Demo](https://alonso-cancino.github.io/map-generator/) | [GitHub](https://github.com/alonso-cancino/map-generator)\n\n## Installation\n\n```bash\nnpm install @alonso-cancino/dcel-map-frontend\n```\n\n### Peer Dependencies\n\n- `react` ^18.3.1\n- `react-dom` ^18.3.1\n\n## Quick Example\n\nMinimal usage — just pass a bundle:\n\n```tsx\nimport { MapView, loadBundle } from \"@alonso-cancino/dcel-map-frontend\";\nimport \"@alonso-cancino/dcel-map-frontend/style.css\";\nimport { useEffect, useState } from \"react\";\nimport type { FrontendBundle } from \"@alonso-cancino/dcel-map-frontend\";\n\nfunction App() {\n  const [bundle, setBundle] = useState<FrontendBundle | null>(null);\n\n  useEffect(() => {\n    loadBundle(\"/map_bundle.json\").then(setBundle);\n  }, []);\n\n  if (!bundle) return <p>Loading...</p>;\n  return <MapView bundle={bundle} />;\n}\n```\n\nWith theme and side panel:\n\n```tsx\n<MapView\n  bundle={bundle}\n  theme={{ palette: \"parchment\", texture: \"crosshatch\", hover: \"glow\" }}\n  panel={{ enabled: true, defaultState: \"half\", position: \"right\" }}\n  panelContent={<aside>Zone inspector</aside>}\n  onZoneClick={(zone) => console.log(zone.name)}\n/>\n```\n\n## API\n\n### `<MapView />`\n\nThe main React component. Renders an interactive SVG map with:\n\n- D3-powered zoom and pan\n- Depth-aware zone visibility — child zones reveal as you zoom in\n- Hover highlights with zone name tooltips\n- Smooth animated transitions between zoom levels\n- Responsive container sizing\n- Configurable color palettes, SVG textures, and hover animations\n- Optional resizable side panel\n\n**Props:**\n\n| Prop | Type | Description |\n|---|---|---|\n| `bundle` | `FrontendBundle` | Parsed map bundle (see `loadBundle` or `parseBundle`) |\n| `renderConfig` | `Partial<MapRenderConfig>` | Optional rendering behavior config |\n| `theme` | `MapTheme` | Optional theme config (palette, texture, hover) |\n| `panel` | `SidePanelConfig` | Optional side panel configuration |\n| `panelContent` | `React.ReactNode` | Content rendered inside the side panel |\n| `onZoneClick` | `(zone: ZoneRecord) => void` | Callback when a zone is clicked |\n| `onZoneHover` | `(zone: ZoneRecord \\| null) => void` | Callback when the hovered zone changes |\n\n### `loadBundle(path: string): Promise<FrontendBundle>`\n\nFetch and parse a map bundle JSON file from a URL or path.\n\n```ts\nconst bundle = await loadBundle(\"/map_bundle.json\");\n```\n\n### `parseBundle(raw: RawFrontendBundle): FrontendBundle`\n\nParse an already-loaded raw JSON object into a `FrontendBundle`. Useful when you have the JSON data from a source other than `fetch`.\n\n```ts\nimport rawData from \"./my-bundle.json\";\nconst bundle = parseBundle(rawData as RawFrontendBundle);\n```\n\n### Theme\n\nThe `theme` prop controls visual appearance. All fields are optional and default to the current look.\n\n```tsx\n<MapView\n  bundle={bundle}\n  theme={{\n    palette: \"parchment\",\n    texture: \"dots\",\n    textureOpacity: 0.2,\n    hover: \"glow\",\n  }}\n/>\n```\n\n#### Color Palettes\n\nSet `theme.palette` to a built-in name or a custom function:\n\n| Palette | Description |\n|---|---|\n| `\"default\"` | Full hue rotation (current behavior) |\n| `\"parchment\"` | Warm sepia tones |\n| `\"forest\"` | Greens and earth browns |\n| `\"ocean\"` | Blues and teals |\n| `\"volcanic\"` | Reds and dark oranges |\n| `\"arctic\"` | Cool grays and pale blues |\n\nCustom palette function:\n\n```tsx\n<MapView\n  bundle={bundle}\n  theme={{\n    palette: (zoneId, depth) => `hsl(${(zoneId * 30) % 360}, 60%, ${50 + depth * 5}%)`,\n  }}\n/>\n```\n\n#### SVG Textures\n\nSet `theme.texture` to a built-in name or a custom `SvgPatternDef`:\n\n| Texture | Description |\n|---|---|\n| `\"none\"` | No texture overlay (default) |\n| `\"crosshatch\"` | Diagonal crosshatch lines |\n| `\"dots\"` | Regular dot grid |\n| `\"waves\"` | Sinusoidal wave pattern |\n| `\"parchment-noise\"` | Irregular scattered marks |\n| `\"stipple\"` | Pseudo-random dot placement |\n\n`textureOpacity` controls the overlay intensity (0–1, default `0.15`).\n\nCustom texture:\n\n```tsx\n<MapView\n  bundle={bundle}\n  theme={{\n    texture: {\n      id: \"my-pattern\",\n      width: 10,\n      height: 10,\n      content: '<circle cx=\"5\" cy=\"5\" r=\"2\" fill=\"currentColor\" />',\n    },\n    textureOpacity: 0.1,\n  }}\n/>\n```\n\n#### Hover Animations\n\nSet `theme.hover` to a built-in preset or a custom animation:\n\n| Preset | Description |\n|---|---|\n| `\"pulse\"` | Opacity pulse with golden glow (default) |\n| `\"glow\"` | Expanding golden halo |\n| `\"lift\"` | Slight scale-up with shadow |\n| `\"none\"` | No hover animation |\n\nCustom hover animation:\n\n```tsx\n<MapView\n  bundle={bundle}\n  theme={{\n    hover: {\n      className: \"my-hover\",\n      keyframes: `\n        @keyframes myEffect {\n          0%, 100% { opacity: 1; }\n          50% { opacity: 0.6; }\n        }\n        .region.my-hover.is-hovered {\n          animation: myEffect 1s ease infinite;\n        }\n      `,\n    },\n  }}\n/>\n```\n\n### Side Panel\n\nThe `panel` prop enables a resizable side panel alongside the map. The map viewport automatically resizes to accommodate the panel.\n\n```tsx\n<MapView\n  bundle={bundle}\n  panel={{\n    enabled: true,\n    defaultState: \"half\",\n    position: \"right\",\n  }}\n  panelContent={<div>Zone details here</div>}\n/>\n```\n\n**`SidePanelConfig`:**\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `enabled` | `boolean` | — | Whether the panel is rendered |\n| `defaultState` | `PanelState` | `\"hidden\"` | Initial state (uncontrolled mode) |\n| `state` | `PanelState` | — | Controlled panel state |\n| `onStateChange` | `(state: PanelState) => void` | — | Called when the panel state changes |\n| `position` | `\"left\" \\| \"right\"` | `\"right\"` | Which side the panel appears on |\n\n**`PanelState`:** `\"hidden\"` | `\"half\"` | `\"full\"`\n\nThe panel supports both controlled and uncontrolled modes. Pass `state` to control it externally, or use `defaultState` to let the component manage its own state. A toggle button on the panel edge cycles through the three states.\n\n### Render Config\n\nThe `renderConfig` prop controls rendering engine behavior:\n\n```tsx\n<MapView\n  bundle={bundle}\n  renderConfig={{\n    detailCommitMode: \"animation-frame\",\n    interactionSettleMs: 80,\n    disableEffectsWhileInteracting: true,\n  }}\n/>\n```\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `detailCommitMode` | `\"animation-frame\" \\| \"interaction-end\"` | `\"animation-frame\"` | When to commit viewport detail updates |\n| `interactionSettleMs` | `number` | `80` | Delay after interaction before settling |\n| `disableEffectsWhileInteracting` | `boolean` | `true` | Disable hover/focus effects during pan/zoom |\n\n### Event Callbacks\n\n```tsx\n<MapView\n  bundle={bundle}\n  onZoneClick={(zone) => console.log(\"Clicked:\", zone.name)}\n  onZoneHover={(zone) => console.log(\"Hovered:\", zone?.name ?? \"none\")}\n/>\n```\n\nBoth callbacks receive a `ZoneRecord` (or `null` for `onZoneHover` when the pointer leaves all zones).\n\n## TypeScript Types\n\n### `FrontendBundle`\n\nThe parsed bundle consumed by `MapView`:\n\n```ts\ninterface FrontendBundle {\n  rootId: number;\n  maxDepth: number;\n  worldBBox: [number, number, number, number];\n  zoomDepthThresholds: Map<number, number>;\n  levels: Map<number, number[]>;\n  borders: BorderRecord[];\n  zones: Map<number, ZoneRecord>;\n}\n```\n\n### `ZoneRecord`\n\nA single zone (territory) in the map:\n\n```ts\ninterface ZoneRecord {\n  id: number;\n  name: string;\n  parentId: number | null;\n  depth: number;\n  childIds: number[];\n  isLeaf: boolean;\n  bbox: [number, number, number, number];\n  area: number;\n  path: string;              // SVG path data\n  childrenRevealDepth: number | null;\n}\n```\n\n### `BorderRecord`\n\nA shared border between two zones:\n\n```ts\ninterface BorderRecord {\n  id: string;\n  zoneIds: [number, number];\n  path: string;              // SVG path data\n}\n```\n\n### `MapTheme`\n\n```ts\ninterface MapTheme {\n  palette?: BuiltinPalette | ((zoneId: number, depth: number) => string);\n  texture?: BuiltinTexture | SvgPatternDef;\n  textureOpacity?: number;\n  hover?: BuiltinHoverPreset | CustomHoverAnimation;\n}\n```\n\n### `SvgPatternDef`\n\n```ts\ninterface SvgPatternDef {\n  id: string;\n  width: number;\n  height: number;\n  content: string; // SVG markup for the pattern\n}\n```\n\n### `CustomHoverAnimation`\n\n```ts\ninterface CustomHoverAnimation {\n  className: string;\n  keyframes?: string;\n  style?: Record<string, string>;\n}\n```\n\n### `SidePanelConfig`\n\n```ts\ninterface SidePanelConfig {\n  enabled: boolean;\n  defaultState?: PanelState;\n  state?: PanelState;\n  onStateChange?: (state: PanelState) => void;\n  position?: \"left\" | \"right\";\n}\n```\n\n### Preset Constants\n\nThe library exports arrays of available built-in options:\n\n```ts\nimport {\n  BUILTIN_PALETTES,       // [\"default\", \"parchment\", \"forest\", \"ocean\", \"volcanic\", \"arctic\"]\n  BUILTIN_TEXTURES,       // [\"none\", \"crosshatch\", \"dots\", \"waves\", \"parchment-noise\", \"stipple\"]\n  BUILTIN_HOVER_PRESETS,  // [\"pulse\", \"glow\", \"lift\", \"none\"]\n} from \"@alonso-cancino/dcel-map-frontend\";\n```\n\n### Raw Types\n\n`RawFrontendBundle`, `RawZoneRecord`, and `RawBorderRecord` represent the JSON wire format (snake_case keys) before parsing. These are useful if you need to work with the raw JSON directly.\n\n## Generating Map Bundles\n\nMap bundles are generated by the Python package [`dcel-map-generator`](https://pypi.org/project/dcel-map-generator/):\n\n```bash\npip install dcel-map-generator\n\ndcel-map \\\n  --zone-edges zone_edges.json \\\n  --tree-stats zone_tree_stats.json \\\n  --zone-index zone_index.json \\\n  --frontend-bundle map_bundle.json\n```\n\nOr via the Python API:\n\n```python\nfrom dcel_builder import generate_frontend_bundle\n\nbundle, report = generate_frontend_bundle(\n    \"zone_edges.json\",\n    \"zone_tree_stats.json\",\n    \"zone_index.json\",\n    seed=42,\n)\n```\n\n## CSS\n\nImport the stylesheet to get default zone and border styling:\n\n```ts\nimport \"@alonso-cancino/dcel-map-frontend/style.css\";\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}