{"_id":"@altara/core","_rev":"7-379f1d1d68c40497b55438e1b692bdca","name":"@altara/core","dist-tags":{"latest":"0.2.3"},"versions":{"0.0.1":{"name":"@altara/core","version":"0.0.1","license":"MIT","_id":"@altara/core@0.0.1","maintainers":[{"name":"jayachapparam","email":"cjskishan@gmail.com"}],"dist":{"shasum":"1e4f91839114e2a57a1dfc611ff0ac59b0837b08","tarball":"https://registry.npmjs.org/@altara/core/-/core-0.0.1.tgz","fileCount":9,"integrity":"sha512-VHdZPow3lMjC9AnDHpEeGb1ypZX9sz8FGEadZCFz8NiwuBuHDP9QwT9m4oMz/7HeqtEN67NQrMS0bMHdhfpURA==","signatures":[{"sig":"MEUCIHhQ8el9V+SOt/D7trw46w/6KqbKTx9VAa+MLL2ViAceAiEAwQ3ID1luMJFDVxM9sslRAwq6ANkiuzhGVmFsiPiDOZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496846},"main":"./dist/index.js","_from":"file:altara-core-0.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/tokens.css"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup && cp src/tokens/tokens.css dist/tokens.css","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayachapparam","email":"cjskishan@gmail.com"},"_resolved":"/tmp/d2f6e540fa209e14aac9b513aa082233/altara-core-0.0.1.tgz","_integrity":"sha512-VHdZPow3lMjC9AnDHpEeGb1ypZX9sz8FGEadZCFz8NiwuBuHDP9QwT9m4oMz/7HeqtEN67NQrMS0bMHdhfpURA==","_npmVersion":"10.8.2","description":"Real-time telemetry UI components for React","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"zustand":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.0","vitest":"^1.5.0","leaflet":"^1.9.4","happy-dom":"^14.7.1","react-dom":"^18.3.0","typescript":"^5.4.0","@types/react":"^18.3.0","react-leaflet":"^4.2.1","@types/leaflet":"^1.9.8","@types/react-dom":"^18.3.0","react-grid-layout":"^1.4.4","@vitest/coverage-v8":"^1.5.0","@testing-library/react":"^15.0.5","@types/react-grid-layout":"^1.3.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"three":{"optional":true},"leaflet":{"optional":true},"react-leaflet":{"optional":true},"react-grid-layout":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.0.1_1777686837029_0.3862568037418197","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@altara/core","version":"0.0.2","keywords":["react","telemetry","real-time","robotics","ros2","rosbridge","mqtt","iot","aerospace","websocket","canvas","60fps","time-series","gauge","dashboard","visualization"],"author":{"name":"Jaya Sai Kishan Chapparam"},"license":"MIT","_id":"@altara/core@0.0.2","maintainers":[{"name":"jayachapparam","email":"cjskishan@gmail.com"}],"homepage":"https://github.com/JayaSaiKishanChapparam/altara#readme","bugs":{"url":"https://github.com/JayaSaiKishanChapparam/altara/issues"},"dist":{"shasum":"90ff3a7f8c356a3d8a9f156ee251b54cd1aa9fdd","tarball":"https://registry.npmjs.org/@altara/core/-/core-0.0.2.tgz","fileCount":10,"integrity":"sha512-KnXAOvfuOeK3vHWkem+ZGwMfkPAXAcYaqw7ee4AzPsry53tYiGKVd3XUGzzc1i07GNPTHRuo8XmAh5/1UKp5IQ==","signatures":[{"sig":"MEQCIHUoDUJbKH2FLK7wPNq/oi66zPhn1UZrPjR3OKwMQe1NAiAz1a+GMcZVDQqNvkUep9JCAbH0gP5bSaPCe8ump9onvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500569},"main":"./dist/index.js","_from":"file:altara-core-0.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/tokens.css"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup && cp src/tokens/tokens.css dist/tokens.css","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayachapparam","email":"cjskishan@gmail.com"},"_resolved":"/tmp/8febca430f3b071b5f3838814ca21e64/altara-core-0.0.2.tgz","_integrity":"sha512-KnXAOvfuOeK3vHWkem+ZGwMfkPAXAcYaqw7ee4AzPsry53tYiGKVd3XUGzzc1i07GNPTHRuo8XmAh5/1UKp5IQ==","repository":{"url":"git+https://github.com/JayaSaiKishanChapparam/altara.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"React components for real-time telemetry dashboards — built for robotics, aerospace, and industrial IoT.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"zustand":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.0","vitest":"^1.5.0","leaflet":"^1.9.4","happy-dom":"^14.7.1","react-dom":"^18.3.0","typescript":"^5.4.0","@types/react":"^18.3.0","react-leaflet":"^4.2.1","@types/leaflet":"^1.9.8","@types/react-dom":"^18.3.0","react-grid-layout":"^1.4.4","@vitest/coverage-v8":"^1.5.0","@testing-library/react":"^15.0.5","@types/react-grid-layout":"^1.3.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"three":{"optional":true},"leaflet":{"optional":true},"react-leaflet":{"optional":true},"react-grid-layout":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.0.2_1777687722172_0.15016666114072552","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@altara/core","version":"0.1.0","keywords":["react","telemetry","real-time","robotics","ros2","rosbridge","mqtt","iot","iiot","industrial-iot","aerospace","autonomous-vehicles","websocket","canvas","60fps","time-series","gauge","dashboard","dashboard-components","monitoring","visualization","data-visualization","react-components","instruments","attitude-indicator","live-map","signal-panel","ring-buffer","altara"],"author":{"name":"Jaya Sai Kishan Chapparam"},"license":"MIT","_id":"@altara/core@0.1.0","maintainers":[{"name":"jayachapparam","email":"cjskishan@gmail.com"}],"homepage":"https://github.com/JayaSaiKishanChapparam/altara#readme","bugs":{"url":"https://github.com/JayaSaiKishanChapparam/altara/issues"},"dist":{"shasum":"40d13088a095efcd94540f0e1830e35992f9e5e5","tarball":"https://registry.npmjs.org/@altara/core/-/core-0.1.0.tgz","fileCount":10,"integrity":"sha512-IjUEMvHclQQZdn3OQQUaqzpajJtF/JUqWSRlVZWhr01exytXUYFC11Px1Yv71aKfENEO8/P161WoF5GV9EuyTg==","signatures":[{"sig":"MEUCIQDO3Dk/OgidrvfSsHo45UlwNzHBp9eUhTees79sIecDJQIgIiLkxg+0/azE6w1jd+Sn1b7B0fJeUwgNqaudEEXBJQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":525068},"main":"./dist/index.js","_from":"file:altara-core-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/tokens.css"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup && cp src/tokens/tokens.css dist/tokens.css","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayachapparam","email":"cjskishan@gmail.com"},"_resolved":"/tmp/83b3b0da4c13972b3295e0128b82b1bd/altara-core-0.1.0.tgz","_integrity":"sha512-IjUEMvHclQQZdn3OQQUaqzpajJtF/JUqWSRlVZWhr01exytXUYFC11Px1Yv71aKfENEO8/P161WoF5GV9EuyTg==","repository":{"url":"git+https://github.com/JayaSaiKishanChapparam/altara.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"React components for real-time telemetry dashboards — canvas-rendered time-series, gauges, attitude indicators, GPS maps, signal panels, and event logs for robotics, aerospace, autonomous vehicles, and industrial IoT.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"zustand":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.0","vitest":"^1.5.0","leaflet":"^1.9.4","happy-dom":"^14.7.1","react-dom":"^18.3.0","typescript":"^5.4.0","@types/react":"^18.3.0","react-leaflet":"^4.2.1","@types/leaflet":"^1.9.8","@types/react-dom":"^18.3.0","react-grid-layout":"^1.4.4","@vitest/coverage-v8":"^1.5.0","@testing-library/react":"^15.0.5","@types/react-grid-layout":"^1.3.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"three":{"optional":true},"leaflet":{"optional":true},"react-leaflet":{"optional":true},"react-grid-layout":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1781725216500_0.8813947767602812","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@altara/core","version":"0.2.0","keywords":["react","telemetry","real-time","robotics","ros2","rosbridge","mqtt","iot","iiot","industrial-iot","aerospace","autonomous-vehicles","websocket","canvas","60fps","time-series","gauge","dashboard","dashboard-components","monitoring","visualization","data-visualization","react-components","instruments","attitude-indicator","live-map","signal-panel","ring-buffer","altara"],"author":{"name":"Jaya Sai Kishan Chapparam"},"license":"MIT","_id":"@altara/core@0.2.0","maintainers":[{"name":"jayachapparam","email":"cjskishan@gmail.com"}],"homepage":"https://github.com/JayaSaiKishanChapparam/altara#readme","bugs":{"url":"https://github.com/JayaSaiKishanChapparam/altara/issues"},"dist":{"shasum":"14f3e5775154c1dcad69818d3dd317c74dc7fb41","tarball":"https://registry.npmjs.org/@altara/core/-/core-0.2.0.tgz","fileCount":10,"integrity":"sha512-VDKg/PwE4IbQ/NbpRb8cbA15H9ydZuGYHRtLBI6yffLWkTRAo9DruoQNghiB2jCEbACkw4tS7xXL02wmCCDomg==","signatures":[{"sig":"MEYCIQDuQig+pFv6tGrz2jlHcdjrujNqPrjz6KoaEeAMBWWF0wIhALS02W67svOwjATzwOCEwLlTpnSHIji9/DvPd9X+snDl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":538008},"main":"./dist/index.js","_from":"file:altara-core-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/tokens.css"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup && cp src/tokens/tokens.css dist/tokens.css","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayachapparam","email":"cjskishan@gmail.com"},"_resolved":"/tmp/fa1e33329ef6ed50c1b1b1df7445d038/altara-core-0.2.0.tgz","_integrity":"sha512-VDKg/PwE4IbQ/NbpRb8cbA15H9ydZuGYHRtLBI6yffLWkTRAo9DruoQNghiB2jCEbACkw4tS7xXL02wmCCDomg==","repository":{"url":"git+https://github.com/JayaSaiKishanChapparam/altara.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"React components for real-time telemetry dashboards — canvas-rendered time-series, gauges, attitude indicators, GPS maps, signal panels, and event logs for robotics, aerospace, autonomous vehicles, and industrial IoT.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"zustand":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.0","vitest":"^1.5.0","leaflet":"^1.9.4","happy-dom":"^14.7.1","react-dom":"^18.3.0","typescript":"^5.4.0","@types/react":"^18.3.0","react-leaflet":"^4.2.1","@types/leaflet":"^1.9.8","@types/react-dom":"^18.3.0","react-grid-layout":"^1.4.4","@vitest/coverage-v8":"^1.5.0","@testing-library/react":"^15.0.5","@types/react-grid-layout":"^1.3.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"three":{"optional":true},"leaflet":{"optional":true},"react-leaflet":{"optional":true},"react-grid-layout":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0_1781816833254_0.2116030047875359","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@altara/core","version":"0.2.1","keywords":["react","telemetry","real-time","robotics","ros2","rosbridge","mqtt","iot","iiot","industrial-iot","aerospace","autonomous-vehicles","websocket","canvas","60fps","time-series","gauge","dashboard","dashboard-components","monitoring","visualization","data-visualization","react-components","instruments","attitude-indicator","live-map","signal-panel","ring-buffer","altara"],"author":{"name":"Jaya Sai Kishan Chapparam"},"license":"MIT","_id":"@altara/core@0.2.1","maintainers":[{"name":"jayachapparam","email":"cjskishan@gmail.com"}],"homepage":"https://github.com/JayaSaiKishanChapparam/altara#readme","bugs":{"url":"https://github.com/JayaSaiKishanChapparam/altara/issues"},"dist":{"shasum":"052dfbaefe082b839f0787bae1549d27d61e59c9","tarball":"https://registry.npmjs.org/@altara/core/-/core-0.2.1.tgz","fileCount":10,"integrity":"sha512-N+Qlyxd4Gc8wS6gzmmsrMs9JDJy0K7g+skVJQTrtJOGZlGnvty+MEcWZ5l6CPJC1rzlXgL6OU5AM8+KeKsdmTA==","signatures":[{"sig":"MEQCIC95Y1qpK0ns0+gcm1F+rsco31Kje3jFsAU7YpeweH01AiBCBWcu+GhZY2hcmZ1IXsu8xZCH5vsZKj0xrAuoDewJhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561623},"main":"./dist/index.js","_from":"file:altara-core-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/tokens.css"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup && cp src/tokens/tokens.css dist/tokens.css","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayachapparam","email":"cjskishan@gmail.com"},"_resolved":"/tmp/a124568699b6102ac35cfd6c1148aea8/altara-core-0.2.1.tgz","_integrity":"sha512-N+Qlyxd4Gc8wS6gzmmsrMs9JDJy0K7g+skVJQTrtJOGZlGnvty+MEcWZ5l6CPJC1rzlXgL6OU5AM8+KeKsdmTA==","repository":{"url":"git+https://github.com/JayaSaiKishanChapparam/altara.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"React components for real-time telemetry dashboards — canvas-rendered time-series, gauges, attitude indicators, GPS maps, signal panels, and event logs for robotics, aerospace, autonomous vehicles, and industrial IoT.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"zustand":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.0","vitest":"^1.5.0","leaflet":"^1.9.4","happy-dom":"^14.7.1","react-dom":"^18.3.0","typescript":"^5.4.0","@types/react":"^18.3.0","react-leaflet":"^4.2.1","@types/leaflet":"^1.9.8","@types/react-dom":"^18.3.0","react-grid-layout":"^1.4.4","@vitest/coverage-v8":"^1.5.0","@testing-library/react":"^15.0.5","@types/react-grid-layout":"^1.3.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"three":{"optional":true},"leaflet":{"optional":true},"react-leaflet":{"optional":true},"react-grid-layout":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.1_1786905333832_0.7249591743344084","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@altara/core","version":"0.2.2","keywords":["react","telemetry","real-time","robotics","ros2","rosbridge","mqtt","iot","iiot","industrial-iot","aerospace","autonomous-vehicles","websocket","canvas","60fps","time-series","gauge","dashboard","dashboard-components","monitoring","visualization","data-visualization","react-components","instruments","attitude-indicator","live-map","signal-panel","ring-buffer","altara"],"author":{"name":"Jaya Sai Kishan Chapparam"},"license":"MIT","_id":"@altara/core@0.2.2","maintainers":[{"name":"jayachapparam","email":"cjskishan@gmail.com"}],"homepage":"https://github.com/JayaSaiKishanChapparam/altara#readme","bugs":{"url":"https://github.com/JayaSaiKishanChapparam/altara/issues"},"dist":{"shasum":"f87186cf9924489b49633ecab9ec7a9d43b6b80f","tarball":"https://registry.npmjs.org/@altara/core/-/core-0.2.2.tgz","fileCount":11,"integrity":"sha512-c4Pw5Lk5Yuqul1sRBVZkQpUjS5I8lEpZDljmaV1Pywy7op1GwMIXxdMeM7Vfc9a4OgMzs5YwVfyi01Vs4rrvzw==","signatures":[{"sig":"MEUCIQDTvO9ua4fuRgiNulVALS7jXY7aedwnSUBDSa6NutzSrAIgFzWtW2uDT78aFy/hFw1cjpbPIhfKaDTDzcJOaKsO2Fc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":571696},"main":"./dist/index.js","type":"commonjs","_from":"file:altara-core-0.2.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./styles.css":"./dist/tokens.css"},"scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup && cp src/tokens/tokens.css dist/tokens.css && node ../../scripts/add-use-client.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayachapparam","email":"cjskishan@gmail.com"},"_resolved":"/tmp/631e36c08abc0d406c9ce2e2bf15cd1c/altara-core-0.2.2.tgz","_integrity":"sha512-c4Pw5Lk5Yuqul1sRBVZkQpUjS5I8lEpZDljmaV1Pywy7op1GwMIXxdMeM7Vfc9a4OgMzs5YwVfyi01Vs4rrvzw==","repository":{"url":"git+https://github.com/JayaSaiKishanChapparam/altara.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"React components for real-time telemetry dashboards — canvas-rendered time-series, gauges, attitude indicators, GPS maps, signal panels, and event logs for robotics, aerospace, autonomous vehicles, and industrial IoT.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"zustand":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.0","vitest":"^1.5.0","leaflet":"^1.9.4","happy-dom":"^14.7.1","react-dom":"^18.3.0","typescript":"^5.4.0","@types/react":"^18.3.0","react-leaflet":"^4.2.1","@types/leaflet":"^1.9.8","@types/react-dom":"^18.3.0","react-grid-layout":"^1.4.4","@vitest/coverage-v8":"^1.5.0","@testing-library/react":"^15.0.5","@types/react-grid-layout":"^1.3.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"three":{"optional":true},"leaflet":{"optional":true},"react-leaflet":{"optional":true},"react-grid-layout":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.2_1787090496766_0.44022277315288405","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@altara/core","version":"0.2.3","description":"React components for real-time telemetry dashboards — canvas-rendered time-series, gauges, attitude indicators, GPS maps, signal panels, and event logs for robotics, aerospace, autonomous vehicles, and industrial IoT.","license":"MIT","type":"commonjs","author":{"name":"Jaya Sai Kishan Chapparam"},"homepage":"https://github.com/JayaSaiKishanChapparam/altara#readme","repository":{"type":"git","url":"git+https://github.com/JayaSaiKishanChapparam/altara.git","directory":"packages/core"},"bugs":{"url":"https://github.com/JayaSaiKishanChapparam/altara/issues"},"keywords":["react","telemetry","real-time","robotics","ros2","rosbridge","mqtt","iot","iiot","industrial-iot","aerospace","autonomous-vehicles","websocket","canvas","60fps","time-series","gauge","dashboard","dashboard-components","monitoring","visualization","data-visualization","react-components","instruments","attitude-indicator","live-map","signal-panel","ring-buffer","altara"],"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./styles.css":"./dist/tokens.css"},"sideEffects":["**/*.css"],"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"leaflet":{"optional":true},"react-leaflet":{"optional":true},"react-grid-layout":{"optional":true},"three":{"optional":true}},"dependencies":{"zustand":"^4.5.0"},"devDependencies":{"@testing-library/react":"^15.0.5","@types/leaflet":"^1.9.8","@types/react":"^18.3.0","@types/react-grid-layout":"^1.3.5","@types/react-dom":"^18.3.0","@vitest/coverage-v8":"^1.5.0","happy-dom":"^14.7.1","leaflet":"^1.9.4","react":"^18.3.0","react-dom":"^18.3.0","react-grid-layout":"^1.4.4","react-leaflet":"^4.2.1","tsup":"^8.0.0","typescript":"^5.4.0","vitest":"^1.5.0"},"engines":{"node":">=20"},"scripts":{"build":"tsup && cp src/tokens/tokens.css dist/tokens.css && node ../../scripts/add-use-client.mjs","dev":"tsup --watch","test":"vitest run","lint":"eslint src --ext .ts,.tsx","typecheck":"tsc --noEmit"},"_id":"@altara/core@0.2.3","_integrity":"sha512-UshkAxx+zyV60ekKl51afOmDL3IDr5+XSiJ1zgvtvGS0OZLqvPLtFdknzTaIeDYUBKZs774j8h8Ft6l+HSWKNA==","_resolved":"/tmp/c912b9779559a40fe691a4871cffef17/altara-core-0.2.3.tgz","_from":"file:altara-core-0.2.3.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-UshkAxx+zyV60ekKl51afOmDL3IDr5+XSiJ1zgvtvGS0OZLqvPLtFdknzTaIeDYUBKZs774j8h8Ft6l+HSWKNA==","shasum":"acf430dcd3b882860b36205d91051add111501a4","tarball":"https://registry.npmjs.org/@altara/core/-/core-0.2.3.tgz","fileCount":11,"unpackedSize":576170,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBRohuUbdN+3JX3AxQ0BI9R9+I6tb7VuCuTt4I/WZlKFAiEAloBLmLKxlKLnEDNAS7nceuSrUDfBLtk6rEbpLh4utB4="}]},"_npmUser":{"name":"jayachapparam","email":"cjskishan@gmail.com"},"directories":{},"maintainers":[{"name":"jayachapparam","email":"cjskishan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.2.3_1787174087099_0.9335039881338829"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-02T01:53:56.930Z","modified":"2026-08-19T21:14:47.442Z","0.0.1":"2026-05-02T01:53:57.176Z","0.0.2":"2026-05-02T02:08:42.384Z","0.1.0":"2026-06-17T19:40:16.660Z","0.2.0":"2026-06-18T21:07:13.422Z","0.2.1":"2026-08-16T18:35:34.002Z","0.2.2":"2026-08-18T22:01:36.948Z","0.2.3":"2026-08-19T21:14:47.254Z"},"bugs":{"url":"https://github.com/JayaSaiKishanChapparam/altara/issues"},"author":{"name":"Jaya Sai Kishan Chapparam"},"license":"MIT","homepage":"https://github.com/JayaSaiKishanChapparam/altara#readme","keywords":["react","telemetry","real-time","robotics","ros2","rosbridge","mqtt","iot","iiot","industrial-iot","aerospace","autonomous-vehicles","websocket","canvas","60fps","time-series","gauge","dashboard","dashboard-components","monitoring","visualization","data-visualization","react-components","instruments","attitude-indicator","live-map","signal-panel","ring-buffer","altara"],"repository":{"type":"git","url":"git+https://github.com/JayaSaiKishanChapparam/altara.git","directory":"packages/core"},"description":"React components for real-time telemetry dashboards — canvas-rendered time-series, gauges, attitude indicators, GPS maps, signal panels, and event logs for robotics, aerospace, autonomous vehicles, and industrial IoT.","maintainers":[{"name":"jayachapparam","email":"cjskishan@gmail.com"}],"readme":"# @altara/core\n\n**React components for real-time telemetry dashboards.** Canvas-rendered time-series charts, gauges, attitude indicators, GPS maps, signal panels, and event logs for robotics, aerospace, autonomous-vehicle, and industrial-IoT applications — where generic charting libraries fall short.\n\n![Altara Gauge — live battery-drain telemetry](https://raw.githubusercontent.com/JayaSaiKishanChapparam/altara/main/apps/storybook/public/gifs/gauge-battery-drain.gif)\n\n[![npm version](https://img.shields.io/npm/v/@altara/core?color=1D9E75&label=npm)](https://www.npmjs.com/package/@altara/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@altara/core?color=378ADD&label=gzip)](https://bundlephobia.com/package/@altara/core)\n[![types included](https://img.shields.io/badge/types-included-1D9E75)](https://www.npmjs.com/package/@altara/core)\n[![license](https://img.shields.io/npm/l/@altara/core?color=888780)](https://github.com/JayaSaiKishanChapparam/altara/blob/main/LICENSE)\n\n## Install\n\n```bash\nnpm install @altara/core\n```\n\n## Quick start\n\n```tsx\nimport '@altara/core/styles.css';\nimport { AltaraProvider, TimeSeries, Gauge } from '@altara/core';\n\nexport function Dashboard() {\n  return (\n    <AltaraProvider theme=\"dark\">\n      <TimeSeries mockMode height={240} />\n      <Gauge mockMode min={0} max={100} label=\"Battery\" unit=\"%\" />\n    </AltaraProvider>\n  );\n}\n```\n\nA working dashboard with zero configuration — `mockMode` plumbs realistic synthetic data into every component until you swap in a real `dataSource`.\n\n**See it live:** [Website](https://www.usealtara.dev/) · [Live demo](https://jayasaikishanchapparam.github.io/altara/demo/) · [Storybook](https://jayasaikishanchapparam.github.io/altara/storybook/)\n\n## What's in the package\n\n- **Components** — `TimeSeries`, `Gauge`, `Attitude`, `SignalPanel`, `LiveMap`, `EventLog`, `ConnectionBar`, `MultiAxisPlot`, `DashboardLayout`\n- **Hooks** — `useWebSocket`, `useTelemetry`, `useRingBuffer`\n- **Adapters** — `createMqttAdapter`, `createWorkerDataSource`, `createMockDataSource`, `mergeChannels`\n- **Mock generators** — `sineWave`, `randomWalk`, `stepFunction`, `custom`\n- **Design tokens** — single CSS file (`@altara/core/styles.css`), dark + light themes via CSS custom properties\n\n### Driving multi-input components — `mergeChannels`\n\n`mergeChannels(sources)` unions several single-value data sources into one channel-tagged source: each key becomes the `channel` on that source's samples, so a multi-input component (like `PrimaryFlightDisplay` from `@altara/aerospace`, which routes by `roll` / `pitch` / `heading` / `airspeed` / `altitude`) can consume a single `dataSource`. `getHistory()` merges children in timestamp order, `status` is worst-of, and `destroy()` tears down every child.\n\n```ts\nimport { mergeChannels } from '@altara/core';\n\nconst source = mergeChannels({\n  roll: rollAdapter,   // samples tagged channel: 'roll'\n  pitch: pitchAdapter, // samples tagged channel: 'pitch'\n});\n// <PrimaryFlightDisplay dataSource={source} />\n```\n\n### Mock profiles\n\n`Gauge` takes an optional `mockProfile?: 'sine' | 'ramp'` (default `'sine'`) that's only relevant when `mockMode` is on: `'sine'` sweeps the needle back and forth, while `'ramp'` drains monotonically from max → min then resets — a believable draining-battery demo.\n\n`LiveMap`'s `mockMode` now rotates the marker's nose along its orbit (great-circle bearing along the simulated path); when you pass a controlled `position`, your `heading` prop still wins.\n\n## Showcase\n\n<table>\n<tr>\n<td align=\"center\">\n<img src=\"https://raw.githubusercontent.com/JayaSaiKishanChapparam/altara/main/apps/storybook/public/gifs/time-series.gif\" width=\"380\" alt=\"TimeSeries — 60fps canvas chart\"/><br/>\n<sub><b>TimeSeries</b> — 60fps canvas chart</sub>\n</td>\n<td align=\"center\">\n<img src=\"https://raw.githubusercontent.com/JayaSaiKishanChapparam/altara/main/apps/storybook/public/gifs/attitude.gif\" width=\"240\" alt=\"Attitude indicator\"/><br/>\n<sub><b>Attitude</b> — artificial horizon</sub>\n</td>\n</tr>\n<tr>\n<td align=\"center\">\n<img src=\"https://raw.githubusercontent.com/JayaSaiKishanChapparam/altara/main/apps/storybook/public/gifs/gauge.gif\" width=\"240\" alt=\"Analog gauge\"/><br/>\n<sub><b>Gauge</b> — threshold-zone arcs</sub>\n</td>\n<td align=\"center\">\n<img src=\"https://raw.githubusercontent.com/JayaSaiKishanChapparam/altara/main/apps/storybook/public/gifs/signal-panel.gif\" width=\"380\" alt=\"Signal panel\"/><br/>\n<sub><b>SignalPanel</b> — live signals + status dots</sub>\n</td>\n</tr>\n</table>\n\n## Why Altara\n\nMost React charting libraries re-render a React subtree per update, so paint cost scales with how often the data changes. Altara writes directly to Canvas via `requestAnimationFrame` and keeps the hot path completely out of React. A `RingBuffer` (Float64Array) holds samples; the rAF loop reads from the buffer and paints. React state only tracks UI concerns like connection status.\n\nIt also ships the domain-specific components engineers actually need — attitude indicators, live GPS maps, threshold-aware gauges — and a typed rosbridge adapter (in [`@altara/ros`](https://www.npmjs.com/package/@altara/ros)) so a one-line import gets you live ROS2 data on screen.\n\n## Bundle size\n\n12.2 KB gzipped, enforced in CI by a 30 KB `size-limit` gate. Optional peer deps (`leaflet`, `react-leaflet`, `react-grid-layout`, `mqtt`, `three`) are dynamically imported and only paid for if you use the components that need them.\n\n## Documentation\n\n- **[📚 Storybook](https://jayasaikishanchapparam.github.io/altara/storybook/)** — every component, every prop, with live demos. Plus Guides (Getting started, Connecting ROS2 / MQTT, Mock data, Theming, Performance), Cookbook dashboards, and Comparisons vs. Grafana / Foxglove.\n- **[🛰️ Live demo dashboard](https://jayasaikishanchapparam.github.io/altara/demo/)** — multi-tab showcase combining `core`, `aerospace`, `av`, and `industrial`, all driven by mock data.\n\nOr run them locally:\n\n```bash\ngit clone https://github.com/JayaSaiKishanChapparam/altara.git\ncd altara\npnpm install\npnpm --filter @altara/storybook storybook   # http://localhost:6006\npnpm --filter @altara/demo dev              # http://localhost:5173\n```\n\n## Sibling packages\n\n| Package | What it does |\n| --- | --- |\n| [`@altara/aerospace`](https://www.npmjs.com/package/@altara/aerospace) | Flight instruments — PFD, HSI, altimeter, airspeed, VSI, engine cluster, TCAS, TAWS, FMA, fuel gauge, radio altimeter. |\n| [`@altara/ros`](https://www.npmjs.com/package/@altara/ros) | ROS2 / rosbridge adapter + typed factories for common `sensor_msgs/*` message types. |\n| [`@altara/mqtt`](https://www.npmjs.com/package/@altara/mqtt) | MQTT-over-WebSocket adapter (re-exports `createMqttAdapter` from this package). |\n\n## Links\n\n- [Storybook (live)](https://jayasaikishanchapparam.github.io/altara/storybook/) · [Demo dashboard (live)](https://jayasaikishanchapparam.github.io/altara/demo/)\n- [GitHub repository](https://github.com/JayaSaiKishanChapparam/altara)\n- [Issue tracker](https://github.com/JayaSaiKishanChapparam/altara/issues)\n- [Discussions](https://github.com/JayaSaiKishanChapparam/altara/discussions)\n\n## Stability\n\n**Pre-1.0.** Every package is below `1.0.0`, and until one reaches it the public\nAPI is not considered stable:\n\n- **Patch** (`0.2.1` -> `0.2.2`) — bug fixes, docs, packaging. Safe.\n- **Minor** (`0.2.x` -> `0.3.0`) — new features, and **may include breaking\n  changes**. This is the pre-1.0 semver allowance, not an accident. Pin the\n  minor (`~0.2.0`) if you need that not to happen.\n- Breaking changes are always described in the package's\n  [CHANGELOG](CHANGELOG.md); anything spanning packages also lands in\n  [MIGRATION.md](https://github.com/JayaSaiKishanChapparam/altara/blob/main/MIGRATION.md).\n\nIn practice the component APIs have been stable since `0.1.0` and every break so\nfar has been in the adapter layer. That is a track record, not a guarantee.\n\n## License\n\nMIT — see [LICENSE](https://github.com/JayaSaiKishanChapparam/altara/blob/main/LICENSE).\n","readmeFilename":"README.md"}