{"_id":"map-gl-style-switcher","_rev":"10-626bf7c6a71aa79a285414a46f68e00d","name":"map-gl-style-switcher","dist-tags":{"latest":"0.10.1"},"versions":{"0.5.0":{"name":"map-gl-style-switcher","version":"0.5.0","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility"],"author":{"name":"Muhammad Imran Siddique","email":"muimsd@gmail.com"},"license":"MIT","_id":"map-gl-style-switcher@0.5.0","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"demo":"https://map-gl-style-switcher.netlify.app","dist":{"shasum":"f616e4ca88b7e582c9ec34a6987bf62402b7a667","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.5.0.tgz","fileCount":9,"integrity":"sha512-B9HohbGf0PdBon1KpndtBYojXYDbojtltp7Y9FkSFpw36wKq8dlGwmlYg/8rqWB5mVHemM6bZB8XnaMrDhkDUw==","signatures":[{"sig":"MEUCIAMxEISXBNWrJBXAj8jHwahJ86BaALruth+q+3ldY5UcAiEAnP/2/S9a1UQgjmj7lrnB/9RnDG3ijO7wwAG4QEuBEQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107526},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=8.0.0","node":">=16"},"gitHead":"6fe9ffc4bae0fb5fe059635397bc7d37301d4218","scripts":{"dev":"vite","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"jest","build":"npm run clean && npm run type-check && rollup -c","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"eslint src --ext ts,tsx --fix","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c --watch","postversion":"git push && git push --tags","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","build:example":"vite build --outDir dist-demo","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","release:patch":"npm version patch && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run validate && npm run build:prod","preview:example":"vite preview --outDir dist-demo","type-check:watch":"tsc --noEmit --watch"},"_npmUser":{"name":"muimsd","email":"muimsd@gmail.com"},"repository":{"url":"git+https://github.com/muimsd/map-gl-style-switcher.git","type":"git"},"_npmVersion":"10.9.2","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.3.5","react":"^19.1.0","tslib":"^2.8.1","eslint":"^9.25.0","rimraf":"^6.0.1","rollup":"^4.43.0","globals":"^16.0.0","ts-jest":"^29.2.6","prettier":"^3.4.2","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","maplibre-gl":"^5.6.0","@types/react":"^19.1.2","@types/mapbox-gl":"^3.4.1","@types/react-dom":"^19.1.2","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.30.1","@types/maplibre-gl":"^1.13.2","@vitejs/plugin-react":"^4.4.1","rollup-plugin-postcss":"^4.0.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-typescript":"^12.1.2","eslint-plugin-react-hooks":"^5.2.0","@rollup/plugin-node-resolve":"^16.0.1","eslint-plugin-react-refresh":"^0.4.19"},"peerDependencies":{"mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0"},"peerDependenciesMeta":{"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/map-gl-style-switcher_0.5.0_1750082028078_0.3455462489190695","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"map-gl-style-switcher","version":"0.7.0","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"author":{"name":"Muhammad Imran Siddique","email":"muimsd@gmail.com"},"license":"MIT","_id":"map-gl-style-switcher@0.7.0","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"demo":"https://map-gl-style-switcher.netlify.app","dist":{"shasum":"384ea11965ba12783c34948bc3f0e2dda1d3201d","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.7.0.tgz","fileCount":9,"integrity":"sha512-pF+oJ3dEpDT7di4ny4KNAdoQHMbS1dKWUnWYZtlyq3L0tqbe1f1EBNzDZh5YwxP3t8LDD92eDKj+aTpcLDfDFA==","signatures":[{"sig":"MEUCIQDQuiL/Zz1nxL/mYusoKcQZkGnjIk4rT3Mc0p8JnnNXCwIgay7e74u3joG0uQbTusfSH4JQHplc3bC7ACOF3cDbfv4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84045},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=8.0.0","node":">=16"},"gitHead":"9e8de50d9848bb9188a7f796946f127d26adb5df","scripts":{"dev":"vite","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"jest","build":"npm run clean && npm run type-check && rollup -c","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"eslint src --ext ts,tsx --fix","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c --watch","postversion":"git push && git push --tags","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","build:example":"vite build --outDir dist-demo","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","release:patch":"npm version patch && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run validate && npm run build:prod","preview:example":"vite preview --outDir dist-demo","type-check:watch":"tsc --noEmit --watch"},"_npmUser":{"name":"muimsd","actor":{"name":"muimsd","type":"user","email":"muimsd@gmail.com"},"email":"muimsd@gmail.com"},"repository":{"url":"git+https://github.com/muimsd/map-gl-style-switcher.git","type":"git"},"_npmVersion":"10.8.2","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.3.5","react":"^19.1.0","tslib":"^2.8.1","eslint":"^9.25.0","rimraf":"^6.0.1","rollup":"^4.43.0","globals":"^16.0.0","ts-jest":"^29.2.6","prettier":"^3.4.2","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","maplibre-gl":"^5.6.0","@types/react":"^19.1.2","react-map-gl":"^8.0.4","@types/mapbox-gl":"^3.4.1","@types/react-dom":"^19.1.2","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.30.1","@types/maplibre-gl":"^1.13.2","@vitejs/plugin-react":"^4.4.1","rollup-plugin-postcss":"^4.0.2","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@rollup/plugin-node-resolve":"^16.0.1","eslint-plugin-react-refresh":"^0.4.19"},"peerDependencies":{"react":">=16.8.0","mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0","react-map-gl":">=7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true},"react-map-gl":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/map-gl-style-switcher_0.7.0_1750764011373_0.015387587376376244","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"map-gl-style-switcher","version":"0.7.2","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"author":{"name":"Muhammad Imran Siddique","email":"muimsd@gmail.com"},"license":"MIT","_id":"map-gl-style-switcher@0.7.2","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"demo":"https://map-gl-style-switcher.netlify.app","dist":{"shasum":"39e5f64c00a76da7ee5c05cbfdf820470c928783","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.7.2.tgz","fileCount":9,"integrity":"sha512-OaWO6JSPPiyTXiDBk7AqWjsKhcbapwSdxm0Lt0yq5P2eBNWNSdaDOeZd56AU4FxT+KXDNkXvJ2jFqb001bKByw==","signatures":[{"sig":"MEUCIFqdyoGMdGnsC/qk8NlbX3nuMrHDRo9ymqusYcUXYGM8AiEA+kOLFhwKEJo1JK3vkAu52oeizgX2RZOk4mIs0li8AOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83858},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=8.0.0","node":">=16"},"gitHead":"bfedeebb8d5b1f6fe713d03ff7103f7ff428815a","scripts":{"dev":"vite","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"jest","build":"npm run clean && npm run type-check && rollup -c","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"eslint src --ext ts,tsx --fix","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c --watch","postversion":"git push && git push --tags","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","build:example":"vite build --outDir dist-demo","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","release:patch":"npm version patch && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run validate && npm run build:prod","preview:example":"vite preview --outDir dist-demo","type-check:watch":"tsc --noEmit --watch"},"_npmUser":{"name":"muimsd","actor":{"name":"muimsd","type":"user","email":"muimsd@gmail.com"},"email":"muimsd@gmail.com"},"repository":{"url":"git+https://github.com/muimsd/map-gl-style-switcher.git","type":"git"},"_npmVersion":"10.8.2","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.3.5","react":"^19.1.0","tslib":"^2.8.1","eslint":"^9.25.0","rimraf":"^6.0.1","rollup":"^4.43.0","globals":"^16.0.0","ts-jest":"^29.2.6","prettier":"^3.4.2","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","maplibre-gl":"^5.6.0","@types/react":"^19.1.2","react-map-gl":"^8.0.4","@types/mapbox-gl":"^3.4.1","@types/react-dom":"^19.1.2","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.30.1","@types/maplibre-gl":"^1.13.2","@vitejs/plugin-react":"^4.4.1","rollup-plugin-postcss":"^4.0.2","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@rollup/plugin-node-resolve":"^16.0.1","eslint-plugin-react-refresh":"^0.4.19"},"peerDependencies":{"react":">=16.8.0","mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0","react-map-gl":">=7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true},"react-map-gl":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/map-gl-style-switcher_0.7.2_1750766529640_0.02421044986172949","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"map-gl-style-switcher","version":"0.7.5","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"author":{"name":"Muhammad Imran Siddique","email":"muimsd@gmail.com"},"license":"MIT","_id":"map-gl-style-switcher@0.7.5","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"demo":"https://map-gl-style-switcher.netlify.app","dist":{"shasum":"ebdfa3627bfa6e54f6f48b12c78df86bd565c67b","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.7.5.tgz","fileCount":9,"integrity":"sha512-fG13gJiSOzmW/d5I7N0XQJT7Sn87AIi2P5nQzm/QF4omxk9Kf5TgGCOvwiBynn0jrVToFW9sPHJzvNLYGrrrbQ==","signatures":[{"sig":"MEUCIQDCHgn0YapdI6/RfOiwBIHBoSw+gcO2NAOo9TVOgg+YEwIgDKdYHuJI0mcPHrJ3aLRwX4nOVcr6t7UdtZaGcwuvwcE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88352},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=8.0.0","node":">=16"},"gitHead":"37be6de01acbd843d1cce4463e53c128a248ea23","scripts":{"dev":"vite","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"jest","build":"npm run clean && npm run type-check && rollup -c","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"eslint src --ext ts,tsx --fix","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c --watch","postversion":"git push && git push --tags","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","build:example":"vite build --outDir dist-demo","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","release:patch":"npm version patch && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run validate && npm run build:prod","preview:example":"vite preview --outDir dist-demo","type-check:watch":"tsc --noEmit --watch"},"_npmUser":{"name":"muimsd","actor":{"name":"muimsd","type":"user","email":"muimsd@gmail.com"},"email":"muimsd@gmail.com"},"repository":{"url":"git+https://github.com/muimsd/map-gl-style-switcher.git","type":"git"},"_npmVersion":"10.8.2","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","directories":{},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.3.5","react":"^19.1.0","tslib":"^2.8.1","eslint":"^9.25.0","rimraf":"^6.0.1","rollup":"^4.43.0","globals":"^16.0.0","ts-jest":"^29.2.6","prettier":"^3.4.2","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","maplibre-gl":"^5.6.0","@types/react":"^19.1.2","react-map-gl":"^8.0.4","@types/mapbox-gl":"^3.4.1","@types/react-dom":"^19.1.2","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.30.1","@types/maplibre-gl":"^1.13.2","@vitejs/plugin-react":"^4.4.1","rollup-plugin-postcss":"^4.0.2","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@rollup/plugin-node-resolve":"^16.0.1","eslint-plugin-react-refresh":"^0.4.19"},"peerDependencies":{"react":">=16.8.0","mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0","react-map-gl":">=7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true},"react-map-gl":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/map-gl-style-switcher_0.7.5_1751124622057_0.246257704684945","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"map-gl-style-switcher","version":"0.9.0","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"author":{"name":"Muhammad Imran Siddique","email":"muimsd@gmail.com"},"license":"MIT","_id":"map-gl-style-switcher@0.9.0","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"demo":"https://map-gl-style-switcher.netlify.app","dist":{"shasum":"c92fd0f1d647f90f142de7c6bdf38bc7a40d4497","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.9.0.tgz","fileCount":16,"integrity":"sha512-vQAv2QNMprh8MWDUo11DbesU5VImQ9WXXcP2ImjmFbajb6+IKVYrYkPOR/JXA2jd2vfP2naxN3BMIiry/5y79Q==","signatures":[{"sig":"MEQCIDsno0R58nBsg2E3fU0GtHfj2KELCnmgV0O8x0o7zbesAiAxC7SKCsapPzV2IJwjkQze91oc4Yfu7TKnstNgmWh8aQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87175},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=8.0.0","node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.js"},"./react-map-gl":{"types":"./dist/react-map-gl.d.ts","import":"./dist/react-map-gl.js","require":"./dist/react-map-gl.js"},"./dist/map-gl-style-switcher.css":"./dist/map-gl-style-switcher.css"},"gitHead":"6170caf8da384d884baa17f07d3b5528115fbef6","scripts":{"dev":"vite","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"jest","build":"npm run clean && npm run type-check && rollup -c","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"eslint src --ext ts,tsx --fix","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c --watch","postversion":"git push && git push --tags","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","build:example":"vite build --outDir dist-demo","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","release:patch":"npm version patch && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run validate && npm run build:prod","preview:example":"vite preview --outDir dist-demo","type-check:watch":"tsc --noEmit --watch"},"_npmUser":{"name":"muimsd","email":"muimsd@gmail.com"},"repository":{"url":"git+https://github.com/muimsd/map-gl-style-switcher.git","type":"git"},"_npmVersion":"10.8.2","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","directories":{},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.3.5","react":"^19.1.0","tslib":"^2.8.1","eslint":"^9.25.0","rimraf":"^6.0.1","rollup":"^4.43.0","globals":"^16.0.0","ts-jest":"^29.2.6","prettier":"^3.4.2","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","maplibre-gl":"^5.6.0","@types/react":"^19.1.2","react-map-gl":"^8.0.4","@types/mapbox-gl":"^3.4.1","@types/react-dom":"^19.1.2","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.30.1","@types/maplibre-gl":"^1.13.2","@vitejs/plugin-react":"^4.4.1","rollup-plugin-postcss":"^4.0.2","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@rollup/plugin-node-resolve":"^16.0.1","eslint-plugin-react-refresh":"^0.4.19"},"peerDependencies":{"mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0"},"peerDependenciesMeta":{"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/map-gl-style-switcher_0.9.0_1752386756795_0.200858344637588","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"map-gl-style-switcher","version":"0.9.1","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"author":{"name":"Muhammad Imran Siddique"},"license":"MIT","_id":"map-gl-style-switcher@0.9.1","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"demo":"https://map-gl-style-switcher.netlify.app","dist":{"shasum":"4436af9bff56097a4c958941044c9db655591fd1","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.9.1.tgz","fileCount":16,"integrity":"sha512-SODNPdi4x3EchKcIBQ2SEpTlKyoJHFeXJHqRDUhhydZqHTUVIo7ldebc6CsGkiJLxPXh1zREQ7uYEjVIegFjKg==","signatures":[{"sig":"MEQCIB5RovjFASzstwPDbHlzRALS70k6i9hWh0VuwW90pDM8AiAf9zSy4nlzmW2lAs6Aye0qBTgP2neluIZvp9bXng1Odg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78234},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=8.0.0","node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.js"},"./react-map-gl":{"types":"./dist/react-map-gl.d.ts","import":"./dist/react-map-gl.js","require":"./dist/react-map-gl.js"},"./dist/map-gl-style-switcher.css":"./dist/map-gl-style-switcher.css"},"gitHead":"f05487b5becf0fb3e75df25bd28aff3453f46124","scripts":{"dev":"vite","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"jest","build":"npm run clean && npm run type-check && rollup -c","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"eslint src --ext ts,tsx --fix","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c --watch","postversion":"git push && git push --tags","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","build:example":"vite build --outDir dist-demo","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","release:patch":"npm version patch && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run validate && npm run build:prod","preview:example":"vite preview --outDir dist-demo","type-check:watch":"tsc --noEmit --watch"},"_npmUser":{"name":"muimsd","email":"muimsd@gmail.com"},"repository":{"url":"git+https://github.com/muimsd/map-gl-style-switcher.git","type":"git"},"_npmVersion":"10.8.2","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","directories":{},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","vite":"^6.3.5","react":"^19.1.0","tslib":"^2.8.1","eslint":"^9.25.0","rimraf":"^6.0.1","rollup":"^4.43.0","globals":"^16.0.0","ts-jest":"^29.2.6","prettier":"^3.4.2","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","maplibre-gl":"^5.6.0","@types/react":"^19.1.2","react-map-gl":"^8.0.4","@types/mapbox-gl":"^3.4.1","@types/react-dom":"^19.1.2","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.30.1","@types/maplibre-gl":"^1.13.2","@vitejs/plugin-react":"^4.4.1","rollup-plugin-postcss":"^4.0.2","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@rollup/plugin-node-resolve":"^16.0.1","eslint-plugin-react-refresh":"^0.4.19"},"peerDependencies":{"react":">=16.8.0","mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0","react-map-gl":">=7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true},"react-map-gl":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/map-gl-style-switcher_0.9.1_1752391375923_0.16726764267859595","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"map-gl-style-switcher","version":"0.9.2","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"author":{"name":"Muhammad Imran Siddique"},"license":"MIT","_id":"map-gl-style-switcher@0.9.2","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"demo":"https://map-gl-style-switcher.netlify.app","dist":{"shasum":"149e3edaf38e6ef47faacac82dc099d154a97137","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.9.2.tgz","fileCount":16,"integrity":"sha512-MQ26qY2Gb2GTkBGureg9Kt+aeQW69TjyTTGicSUoOM5Ig3L31zWpEa8vxTyspKNe5SKEz24wKrsg0GAhtIIJLA==","signatures":[{"sig":"MEUCIBFLL6Ko7Skz80qOBVI/+uJT0ZT2AXjCFw1Q5ksXziUCAiEApC5EGgSRQ2KSMQZ0VGEkOO2lyKmjgBAQMElpEDB7PNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77787},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=8.0.0","node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.js"},"./react-map-gl":{"types":"./dist/react-map-gl.d.ts","import":"./dist/react-map-gl.js","require":"./dist/react-map-gl.js"},"./dist/map-gl-style-switcher.css":"./dist/map-gl-style-switcher.css"},"gitHead":"b5e5ba8b4cfe654b8e84e7586bf3245dc1d3957b","scripts":{"dev":"vite","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"jest","build":"npm run clean && npm run type-check && rollup -c","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"eslint src --ext ts,tsx --fix","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c --watch","postversion":"git push && git push --tags","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","build:example":"vite build --outDir dist-demo","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","release:patch":"npm version patch && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run validate && npm run build:prod","preview:example":"vite preview --outDir dist-demo","type-check:watch":"tsc --noEmit --watch"},"_npmUser":{"name":"muimsd","email":"muimsd@gmail.com"},"repository":{"url":"git+https://github.com/muimsd/map-gl-style-switcher.git","type":"git"},"_npmVersion":"10.8.2","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^6.3.5","react":"^19.1.0","tslib":"^2.8.1","eslint":"^9.25.0","rimraf":"^6.0.1","rollup":"^4.43.0","globals":"^16.0.0","ts-jest":"^29.4.6","prettier":"^3.4.2","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/jest":"^30.0.0","@types/node":"^22.10.7","maplibre-gl":"^5.6.0","@types/react":"^19.1.2","react-map-gl":"^8.0.4","@types/react-dom":"^19.1.2","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.30.1","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^30.2.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@rollup/plugin-node-resolve":"^16.0.1","eslint-plugin-react-refresh":"^0.4.19"},"peerDependencies":{"react":">=16.8.0","mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0","react-map-gl":">=7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true},"react-map-gl":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/map-gl-style-switcher_0.9.2_1767519968960_0.3823355047951087","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"map-gl-style-switcher","version":"0.9.3","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"author":{"name":"Muhammad Imran Siddique"},"license":"MIT","_id":"map-gl-style-switcher@0.9.3","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"demo":"https://map-gl-style-switcher.netlify.app","dist":{"shasum":"d7f579723e6862d2a15fe3ca76fbed0c9fc07c64","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.9.3.tgz","fileCount":16,"integrity":"sha512-bXKQru/PkTM246a1lra6b0jtyisNS6Own/svkkG5QFRZFF4LdlF4ECISHOzM7d2/mlWJpxrfj54frN+THFCiyQ==","signatures":[{"sig":"MEUCIQDKEygW69oe5MQJ4r3O9/aJYlsg8/cBkMf/kdOprlML9AIgK/AXk54BAF9XxuAoN3SRbl9zBJ5AbfJ1Pt1DYH2aalU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91659},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=8.0.0","node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js"},"./react-map-gl":{"types":"./dist/react-map-gl.d.ts","import":"./dist/react-map-gl.js"},"./dist/map-gl-style-switcher.css":"./dist/map-gl-style-switcher.css"},"gitHead":"1d62070f2d7e3874261cff57cf1ecf8cd873be78","scripts":{"dev":"vite","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"jest","build":"npm run clean && npm run type-check && rollup -c","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","prepare":"husky","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"eslint src --ext ts,tsx --fix","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c --watch","postversion":"git push && git push --tags","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","build:example":"vite build --outDir dist-demo","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","release:patch":"npm version patch && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run validate && npm run build:prod","preview:example":"vite preview --outDir dist-demo","type-check:watch":"tsc --noEmit --watch"},"_npmUser":{"name":"muimsd","email":"muimsd@gmail.com"},"repository":{"url":"git+https://github.com/muimsd/map-gl-style-switcher.git","type":"git"},"_npmVersion":"10.8.2","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","directories":{},"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^6.3.5","husky":"^9.1.7","react":"^19.1.0","tslib":"^2.8.1","eslint":"^9.25.0","rimraf":"^6.0.1","rollup":"^4.43.0","globals":"^16.0.0","ts-jest":"^29.4.6","prettier":"^3.4.2","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/jest":"^30.0.0","@types/node":"^22.10.7","maplibre-gl":"^5.6.0","@types/react":"^19.1.2","react-map-gl":"^8.0.4","@types/react-dom":"^19.1.2","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.30.1","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^30.2.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@rollup/plugin-node-resolve":"^16.0.1","eslint-plugin-react-refresh":"^0.4.19"},"peerDependencies":{"react":">=16.8.0","mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0","react-map-gl":">=7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true},"react-map-gl":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/map-gl-style-switcher_0.9.3_1771594287244_0.7886777367060065","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"map-gl-style-switcher","version":"0.10.0","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"author":{"name":"Muhammad Imran Siddique"},"license":"MIT","_id":"map-gl-style-switcher@0.10.0","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"demo":"https://map-gl-style-switcher.netlify.app","dist":{"shasum":"1a417108fe83f46a1361c78142f8c7b6f781291c","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.10.0.tgz","fileCount":16,"integrity":"sha512-jcQTMDByCDgpzkIXVtdHCkfOjK3lqLVZWRWNHBMQ/ckQZBPYfdxOwui+aJYDNSPbDn3YRiOXcopeefICExrnJg==","signatures":[{"sig":"MEUCIE9+Bgzp85P+ZCiHVVlh1muRG7C6WtJfeAg69qg9BPUDAiEAlNJquCqUtlGOh0BAKDdkIBqlGU/6B27VS2hUZCjSk/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96882},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=8.0.0","node":">=16"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js"},"./react-map-gl":{"types":"./dist/react-map-gl.d.ts","import":"./dist/react-map-gl.js"},"./dist/map-gl-style-switcher.css":"./dist/map-gl-style-switcher.css"},"gitHead":"03fa3d4a0501cf315228d785a8c2c1d428336fc0","scripts":{"dev":"vite","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"jest","build":"npm run clean && npm run type-check && rollup -c","clean":"rimraf dist","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","prepare":"husky","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"eslint src --ext ts,tsx --fix","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c --watch","postversion":"git push && git push --tags","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","build:example":"vite build --outDir dist-demo","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","release:patch":"npm version patch && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run validate && npm run build:prod","preview:example":"vite preview --outDir dist-demo","type-check:watch":"tsc --noEmit --watch"},"_npmUser":{"name":"muimsd","email":"muimsd@gmail.com"},"repository":{"url":"git+https://github.com/muimsd/map-gl-style-switcher.git","type":"git"},"_npmVersion":"10.8.2","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","directories":{},"lint-staged":{"*.{css,md}":["prettier --write"],"*.{ts,tsx}":["prettier --write","eslint --max-warnings 0"]},"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","vite":"^6.3.5","husky":"^9.1.7","react":"^19.1.0","tslib":"^2.8.1","eslint":"^9.25.0","rimraf":"^6.0.1","rollup":"^4.43.0","globals":"^16.0.0","ts-jest":"^29.4.6","prettier":"^3.4.2","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/jest":"^30.0.0","@types/node":"^22.10.7","lint-staged":"^16.2.7","maplibre-gl":"^5.6.0","@types/react":"^19.1.2","react-map-gl":"^8.0.4","@types/react-dom":"^19.1.2","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.30.1","@vitejs/plugin-react":"^4.4.1","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^30.2.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0","@rollup/plugin-node-resolve":"^16.0.1","eslint-plugin-react-refresh":"^0.4.19"},"peerDependencies":{"react":">=16.8.0","mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0","react-map-gl":">=7.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true},"react-map-gl":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/map-gl-style-switcher_0.10.0_1771597533037_0.2988441400858739","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"map-gl-style-switcher","version":"0.10.1","description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js"},"./react-map-gl":{"types":"./dist/react-map-gl.d.ts","import":"./dist/react-map-gl.js"},"./dist/map-gl-style-switcher.css":"./dist/map-gl-style-switcher.css"},"engines":{"node":">=16","npm":">=8.0.0"},"keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"author":{"name":"Muhammad Imran Siddique"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/muimsd/map-gl-style-switcher.git"},"bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","demo":"https://map-gl-style-switcher.netlify.app","peerDependencies":{"mapbox-gl":">=1.0.0","maplibre-gl":">=2.0.0","react":">=16.8.0","react-map-gl":">=7.0.0"},"peerDependenciesMeta":{"mapbox-gl":{"optional":true},"maplibre-gl":{"optional":true},"react":{"optional":true},"react-map-gl":{"optional":true}},"scripts":{"dev":"vite","build":"npm run clean && npm run type-check && rollup -c","build:prod":"npm run clean && npm run type-check && npm run lint && rollup -c","build:watch":"rollup -c --watch","build:example":"vite build --outDir dist-demo","preview:example":"vite preview --outDir dist-demo","clean":"rimraf dist","type-check":"tsc --noEmit","type-check:watch":"tsc --noEmit --watch","lint":"eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint src --ext ts,tsx --fix","format":"prettier --write \"src/**/*.{ts,tsx,css,md}\"","format:check":"prettier --check \"src/**/*.{ts,tsx,css,md}\"","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","test:ci":"jest --ci --coverage --watchAll=false","validate":"npm run type-check && npm run lint && npm run format:check && npm run test:ci","release:patch":"npm version patch && npm publish","release:minor":"npm version minor && npm publish","release:major":"npm version major && npm publish","prepublishOnly":"npm run validate && npm run build:prod","postversion":"git push && git push --tags","prepare":"husky"},"lint-staged":{"*.{ts,tsx}":["prettier --write","eslint --max-warnings 0"],"*.{css,md}":["prettier --write"]},"devDependencies":{"@eslint/js":"^9.25.0","@rollup/plugin-node-resolve":"^16.0.1","@rollup/plugin-terser":"^1.0.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.3.0","@types/jest":"^30.0.0","@types/node":"^22.10.7","@types/react":"^19.1.2","@types/react-dom":"^19.1.2","@vitejs/plugin-react":"^4.4.1","eslint":"^9.25.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","globals":"^16.0.0","husky":"^9.1.7","jest":"^30.2.0","jest-environment-jsdom":"^30.2.0","lint-staged":"^16.2.7","maplibre-gl":"^5.6.0","prettier":"^3.4.2","react":"^19.1.0","react-dom":"^19.1.0","react-map-gl":"^8.0.4","rimraf":"^6.0.1","rollup":"^4.43.0","rollup-plugin-dts":"^6.2.1","ts-jest":"^29.4.6","tslib":"^2.8.1","typescript":"~5.8.3","typescript-eslint":"^8.30.1","vite":"^6.3.5"},"gitHead":"5fce2422f2b7358f16669a86198c97660a406460","_id":"map-gl-style-switcher@0.10.1","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-W0yxIz2OkPYL5mFD7dcWDF5Wa6HZ1RjVg9IzpLNjZ+3Chc/3rCgADrNxlNEiRGOkyQ5LPheHAeEXF4kywM9IyQ==","shasum":"3be7e4b8c8e38d1e06f91d827264d1fe1a10924f","tarball":"https://registry.npmjs.org/map-gl-style-switcher/-/map-gl-style-switcher-0.10.1.tgz","fileCount":16,"unpackedSize":112910,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/map-gl-style-switcher@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEnAnTHGP6qUl/vkCj/QApRRaZ9DM+ctHxYyenzp+YpAAiEAphulYcr6DlgjDwL6qbyrjIyJwjmIY025egfRmE5YOgQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6505d5ce-00f3-40cd-a7e4-79bb469ca9aa"}},"directories":{},"maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/map-gl-style-switcher_0.10.1_1778404353166_0.5195473946377434"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-16T13:53:48.077Z","modified":"2026-05-10T09:12:33.618Z","0.5.0":"2025-06-16T13:53:48.270Z","0.7.0":"2025-06-24T11:20:11.542Z","0.7.2":"2025-06-24T12:02:09.880Z","0.7.5":"2025-06-28T15:30:22.262Z","0.9.0":"2025-07-13T06:05:56.978Z","0.9.1":"2025-07-13T07:22:56.111Z","0.9.2":"2026-01-04T09:46:09.135Z","0.9.3":"2026-02-20T13:31:27.394Z","0.10.0":"2026-02-20T14:25:33.243Z","0.10.1":"2026-05-10T09:12:33.318Z"},"bugs":{"url":"https://github.com/muimsd/map-gl-style-switcher/issues"},"author":{"name":"Muhammad Imran Siddique"},"license":"MIT","homepage":"https://github.com/muimsd/map-gl-style-switcher#readme","keywords":["mapbox","maplibre","map","style","switcher","basemap","control","typescript","accessibility","react","react-map-gl"],"repository":{"type":"git","url":"git+https://github.com/muimsd/map-gl-style-switcher.git"},"description":"A customizable style switcher control for Mapbox GL JS and MapLibre GL JS","maintainers":[{"name":"muimsd","email":"muimsd@gmail.com"}],"readme":"# Map GL Style Switcher\n\n[![npm version](https://badge.fury.io/js/map-gl-style-switcher.svg)](https://badge.fury.io/js/map-gl-style-switcher)\n[![CI](https://github.com/muimsd/map-gl-style-switcher/actions/workflows/ci.yml/badge.svg)](https://github.com/muimsd/map-gl-style-switcher/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Netlify Status](https://api.netlify.com/api/v1/badges/ea3ee6af-161d-46be-9006-9d31ad52da3c/deploy-status)](https://app.netlify.com/projects/map-gl-style-switcher/deploys)\n\n[![Coverage Status](https://codecov.io/gh/muimsd/map-gl-style-switcher/branch/main/graph/badge.svg)](https://codecov.io/gh/muimsd/map-gl-style-switcher)\n\nA TypeScript control for switching Mapbox GL / MapLibre GL map styles. Easily add a floating style switcher to your map app, with support for multiple styles, images, dark/light themes, and before/after change callbacks.\n\n**Available as:**\n\n- `StyleSwitcherControl` - Direct IControl implementation for Mapbox/MapLibre GL\n- `MapGLStyleSwitcher` - React component for react-map-gl integration\n- `useStyleSwitcher` - React hook for custom map instances\n\n**<a href=\"https://map-gl-style-switcher.netlify.app/\" target=\"_blank\">🌐 Live Demo</a>**\n\n## Animated Demo\n\n![Demo GIF](./images/demo.gif)\n\n## Available Styles\n\n![Available Styles](./images/styles.png)\n\n## Features\n\n- IControl implementation for Mapbox GL / MapLibre GL\n- **React component for react-map-gl integration**\n- **React hook for custom map instances**\n- Floating style switcher in any corner (via map.addControl position)\n- Support for multiple map styles with thumbnails\n- Expand/collapse on hover with smooth animations\n- Dark/light/auto theme support — `theme: 'auto'` reacts to OS preference changes in real time\n- RTL text support for Arabic/Hebrew interfaces\n- Configurable display options (show/hide labels and images)\n- Callbacks for before/after style change\n- `updateOptions()` for imperative option updates after mount\n- Fully customizable CSS classes\n- TypeScript support\n- Accessibility features (ARIA labels, keyboard navigation)\n- ESM-only package (tree-shakeable, no CommonJS bundle)\n- Comprehensive test coverage\n\n## Install\n\n```sh\n# Using npm (recommended)\nnpm install map-gl-style-switcher\n\n# Using yarn\nyarn add map-gl-style-switcher\n\n# Using pnpm\npnpm add map-gl-style-switcher\n```\n\n> **Note:** This package ships ES modules only. CommonJS `require()` is not supported. All modern bundlers (Vite, webpack 5, Rollup, esbuild) handle ESM natively.\n\n## Usage\n\n### Vanilla JS / Direct MapLibre or Mapbox GL\n\n```ts\nimport { StyleSwitcherControl, type StyleItem } from 'map-gl-style-switcher';\nimport 'map-gl-style-switcher/dist/map-gl-style-switcher.css';\n\nconst styles: StyleItem[] = [\n  {\n    id: 'voyager',\n    name: 'Voyager',\n    image:\n      'https://raw.githubusercontent.com/muimsd/map-gl-style-switcher/refs/heads/main/public/voyager.png',\n    styleUrl: 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json',\n    description: 'Voyager style from Carto',\n  },\n  {\n    id: 'positron',\n    name: 'Positron',\n    image:\n      'https://raw.githubusercontent.com/muimsd/map-gl-style-switcher/refs/heads/main/public/positron.png',\n    styleUrl: 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json',\n    description: 'Positron style from Carto',\n  },\n];\n\nconst control = new StyleSwitcherControl({\n  styles,\n  activeStyleId: 'voyager',\n  theme: 'auto',\n  onAfterStyleChange: (_from, to) => {\n    map.setStyle(to.styleUrl);\n  },\n});\n\nmap.addControl(control, 'bottom-left');\n```\n\n### React — `useStyleSwitcher` hook (custom map instance)\n\nUse this when you manage the map instance yourself (e.g., inside `useEffect`):\n\n```tsx\nimport { useEffect, useRef } from 'react';\nimport maplibregl from 'maplibre-gl';\nimport { useStyleSwitcher, type StyleItem } from 'map-gl-style-switcher/react';\nimport 'maplibre-gl/dist/maplibre-gl.css';\nimport 'map-gl-style-switcher/dist/map-gl-style-switcher.css';\n\nconst styles: StyleItem[] = [\n  /* ... */\n];\n\nfunction MapComponent() {\n  const mapContainer = useRef<HTMLDivElement>(null);\n  const mapRef = useRef<maplibregl.Map | null>(null);\n\n  useEffect(() => {\n    if (!mapContainer.current) return;\n    mapRef.current = new maplibregl.Map({\n      container: mapContainer.current,\n      style: styles[0].styleUrl,\n      center: [0, 0],\n      zoom: 2,\n    });\n    return () => mapRef.current?.remove();\n  }, []);\n\n  useStyleSwitcher(mapRef.current, {\n    styles,\n    theme: 'auto',\n    position: 'bottom-left',\n    onAfterStyleChange: (_from, to) => {\n      mapRef.current?.setStyle(to.styleUrl);\n    },\n  });\n\n  return <div ref={mapContainer} style={{ width: '100%', height: '500px' }} />;\n}\n```\n\n> **Tip:** The hook recreates the control whenever options change (deep comparison via JSON serialisation). Pass stable object references or memoize options if performance is critical.\n\n### React — `MapGLStyleSwitcher` component (react-map-gl)\n\nUse this when your map is rendered by `react-map-gl`:\n\n```tsx\nimport { useState } from 'react';\nimport { Map } from 'react-map-gl/maplibre';\nimport { MapGLStyleSwitcher, type StyleItem } from 'map-gl-style-switcher/react-map-gl';\nimport 'maplibre-gl/dist/maplibre-gl.css';\nimport 'map-gl-style-switcher/dist/map-gl-style-switcher.css';\n\nconst styles: StyleItem[] = [\n  /* ... */\n];\n\nfunction MyMap() {\n  const [mapStyle, setMapStyle] = useState(styles[0].styleUrl);\n  const [activeStyleId, setActiveStyleId] = useState(styles[0].id);\n\n  const handleStyleChange = (styleUrl: string) => {\n    setMapStyle(styleUrl);\n    const style = styles.find(s => s.styleUrl === styleUrl);\n    if (style) setActiveStyleId(style.id);\n  };\n\n  return (\n    <Map mapStyle={mapStyle} initialViewState={{ longitude: 0, latitude: 0, zoom: 2 }}>\n      <MapGLStyleSwitcher\n        styles={styles}\n        activeStyleId={activeStyleId}\n        theme=\"auto\"\n        position=\"bottom-left\"\n        onStyleChange={handleStyleChange}\n      />\n    </Map>\n  );\n}\n```\n\n`MapGLStyleSwitcher` propagates all non-callback prop changes to the underlying control after mount — changing `activeStyleId`, `theme`, `showLabels`, `styles`, etc. is fully reactive. Callbacks (`onBeforeStyleChange`, `onAfterStyleChange`, `onStyleChange`) are always up-to-date via refs and do not cause the control to be recreated.\n\n## Examples\n\n### MapLibre GL Example\n\n[View the maplibre example →](examples/maplibre/)\n\n### React Map GL Example\n\n[View the react-map-gl example →](examples/react-map-gl/)\n\n## Configuration Options\n\n```ts\ninterface StyleSwitcherControlOptions {\n  styles: StyleItem[]; // Array of map styles (required)\n  activeStyleId?: string; // Active style ID (default: first style)\n  onBeforeStyleChange?: (from: StyleItem, to: StyleItem) => void; // Called before style changes\n  onAfterStyleChange?: (from: StyleItem, to: StyleItem) => void; // Called after style changes\n  showLabels?: boolean; // Show style names (default: true)\n  showImages?: boolean; // Show thumbnails (default: true)\n  animationDuration?: number; // Expand animation in ms (default: 200)\n  maxHeight?: number; // Max list height in px (default: 300)\n  theme?: 'light' | 'dark' | 'auto'; // UI theme (default: 'light')\n  design?: 'default' | 'outlined'; // Visual design variant (default: 'default')\n  classNames?: Partial<StyleSwitcherClassNames>; // Custom CSS class overrides\n  rtl?: boolean; // RTL layout (default: false)\n}\n\ninterface StyleItem {\n  id: string; // Unique identifier\n  name: string; // Display name\n  image: string; // Thumbnail URL or data URI\n  styleUrl: string; // MapLibre/Mapbox style URL\n  description?: string; // Optional tooltip text\n}\n\ninterface StyleSwitcherClassNames {\n  container: string; // Main container class\n  list: string; // Expanded list container class\n  item: string; // Individual style item class\n  itemSelected: string; // Selected item class\n  itemHideLabel: string; // No-label utility class\n  dark: string; // Dark theme class\n  light: string; // Light theme class\n  outlined: string; // Outlined design variant class (applied when design is 'outlined')\n}\n```\n\n### Option details\n\n- **`activeStyleId`**: Controls both the initially selected style and what is shown in the collapsed state. When using `MapGLStyleSwitcher`, updating this prop reactively switches the highlighted style.\n- **`showLabels`** & **`showImages`**: At least one must be `true` (throws otherwise).\n- **`theme`**:\n  - `'light'`: Light colour scheme (default)\n  - `'dark'`: Dark colour scheme\n  - `'auto'`: Follows the OS preference and updates automatically when the user switches between light and dark mode\n- **`design`**:\n  - `'default'`: Solid container with shadow (default)\n  - `'outlined'`: Translucent backdrop with a visible border on the container and on each item — ideal when you want a lighter chrome over a busy map. The class applied for this variant is configurable via `classNames.outlined`.\n- **`rtl`**: Enables right-to-left layout for Arabic/Hebrew interfaces.\n\n### Imperative updates — `updateOptions()`\n\nAfter adding the control to a map you can update its options without recreating it:\n\n```ts\nconst control = new StyleSwitcherControl({ styles, activeStyleId: 'voyager' });\nmap.addControl(control, 'bottom-left');\n\n// Later — switch active style programmatically\ncontrol.updateOptions({ activeStyleId: 'positron' });\n\n// Or change multiple options at once\ncontrol.updateOptions({ theme: 'dark', showLabels: false });\n```\n\nOnly the keys you pass are updated; all others remain unchanged. If the control has already been added to the map, the UI re-renders immediately.\n\n## Customizing CSS Classes\n\nOverride all CSS classes used by the control via the `classNames` option:\n\n```ts\nconst control = new StyleSwitcherControl({\n  styles,\n  classNames: {\n    container: 'my-style-switcher',\n    list: 'my-style-list',\n    item: 'my-style-item',\n    itemSelected: 'my-style-item-selected',\n    itemHideLabel: 'my-style-item-hide-label',\n    dark: 'my-style-dark',\n    light: 'my-style-light',\n    outlined: 'my-style-outlined',\n  },\n});\n```\n\n## Contributing\n\nWe welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n### Development Setup\n\n1. **Clone the repository**\n\n   ```sh\n   git clone https://github.com/muimsd/map-gl-style-switcher\n   cd map-gl-style-switcher\n   ```\n\n2. **Install dependencies**\n\n   ```sh\n   npm install\n   ```\n\n3. **Start development server**\n\n   ```sh\n   npm run dev\n   ```\n\n4. **Make your changes**\n   - Follow TypeScript best practices\n   - Maintain backward compatibility when possible\n   - Add tests for new features\n\n5. **Test your changes**\n\n   ```sh\n   npm run validate  # Runs type-check, lint, format-check, and tests\n   ```\n\n6. **Submit a pull request**\n\n### Guidelines\n\n- Use npm for dependency management\n- Follow TypeScript best practices\n- Maintain backward compatibility when possible\n- Add tests for new features\n- Update documentation as needed\n- Follow the existing code style\n- Ensure all checks pass: `npm run validate`\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n---\n\nMade with ❤️ for the MapLibre GL and Mapbox GL community\n","readmeFilename":"README.md"}