{"_id":"@bactv/vue-calendar-heatmap","_rev":"3-c2023888950801d00735025fe9b49aca","name":"@bactv/vue-calendar-heatmap","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@bactv/vue-calendar-heatmap","version":"1.0.0","keywords":["vue","vue3","typescript","calendar","heatmap","calendar-heatmap","github-contributions","activity-graph"],"license":"MIT","_id":"@bactv/vue-calendar-heatmap@1.0.0","maintainers":[{"name":"bactv","email":"bactruongvan17@gmail.com"}],"homepage":"https://github.com/bactvdev/vue-calendar-heatmap#readme","bugs":{"url":"https://github.com/bactvdev/vue-calendar-heatmap/issues"},"dist":{"shasum":"11722acf25085934b8ffb273de427dc3794c74ea","tarball":"https://registry.npmjs.org/@bactv/vue-calendar-heatmap/-/vue-calendar-heatmap-1.0.0.tgz","fileCount":11,"integrity":"sha512-71Wkl4EhWg6nCCiFa/pfcBwtvKwpNcNyHKjjHVL+M+XIXwsOBFmvGFp6bNeaRqY3DrD1q6joKZ7qFrvJRvLLaw==","signatures":[{"sig":"MEUCIAKDpMT/Do7VHb5ika5AOqOYD8BkhC6vXiYP9odrbVcjAiEAkEkVCBRkP7b8VJEGG4xILFcFx01iNS85cYoYi9kd8CM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25025},"main":"./dist/calendar-heatmap.umd.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/calendar-heatmap.umd.cjs","module":"./dist/calendar-heatmap.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/calendar-heatmap.es.js","require":"./dist/calendar-heatmap.umd.cjs"},"./style.css":"./dist/calendar-heatmap.css"},"gitHead":"92f0f0f9e6e88066f7c5432bb1d062da6b30cd20","scripts":{"dev":"vite","build":"vue-tsc -p tsconfig.build.json --noEmit && vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"bactv","email":"bactruongvan17@gmail.com"},"repository":{"url":"git+https://github.com/bactvdev/vue-calendar-heatmap.git","type":"git"},"_npmVersion":"11.16.0","description":"A GitHub-style calendar heatmap component for Vue 3, written in TypeScript.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.11","vue-tsc":"^2.1.10","typescript":"^5.6.3","vite-plugin-dts":"^4.3.0","@vitejs/plugin-vue":"^5.1.4"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-calendar-heatmap_1.0.0_1785750124616_0.15245226457340588","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bactv/vue-calendar-heatmap","version":"1.0.1","keywords":["vue","vue3","typescript","calendar","heatmap","calendar-heatmap","github-contributions","activity-graph"],"license":"MIT","_id":"@bactv/vue-calendar-heatmap@1.0.1","maintainers":[{"name":"bactv","email":"bactruongvan17@gmail.com"}],"homepage":"https://github.com/bactvdev/vue-calendar-heatmap#readme","bugs":{"url":"https://github.com/bactvdev/vue-calendar-heatmap/issues"},"dist":{"shasum":"2ca9a6d4cf6a317e1e4416455b85abdc9b61af8a","tarball":"https://registry.npmjs.org/@bactv/vue-calendar-heatmap/-/vue-calendar-heatmap-1.0.1.tgz","fileCount":11,"integrity":"sha512-ZKrbR+unsLBUCYna5LUomvusjkO4B0FY+ByLD1xlKxCTDtsXkIRsTVtYJQ/tJLBvRc/zEM4TQAwyc38tFsCamQ==","signatures":[{"sig":"MEUCIAPXGzvDIBMCcYNpm1kX42LCc11oMkNOPnEtWPpwW6QVAiEAnawM/2kHRTzb+q4+qHFANJq9FVSbXM7xUsHzyuhUvao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24661},"main":"./dist/calendar-heatmap.umd.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/calendar-heatmap.umd.cjs","module":"./dist/calendar-heatmap.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/calendar-heatmap.es.js","require":"./dist/calendar-heatmap.umd.cjs"},"./style.css":"./dist/calendar-heatmap.css"},"gitHead":"138e8ff7f79ef54226df06e702f4e30460ff3888","scripts":{"dev":"vite","build":"vue-tsc -p tsconfig.build.json --noEmit && vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"bactv","email":"bactruongvan17@gmail.com"},"repository":{"url":"git+https://github.com/bactvdev/vue-calendar-heatmap.git","type":"git"},"_npmVersion":"11.16.0","description":"A GitHub-style calendar heatmap component for Vue 3, written in TypeScript.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.11","vue-tsc":"^2.1.10","typescript":"^5.6.3","vite-plugin-dts":"^4.3.0","@vitejs/plugin-vue":"^5.1.4"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-calendar-heatmap_1.0.1_1785750607271_0.8553952297725074","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bactv/vue-calendar-heatmap","version":"1.0.2","description":"A GitHub-style calendar heatmap component for Vue 3, written in TypeScript.","type":"module","main":"./dist/calendar-heatmap.umd.cjs","module":"./dist/calendar-heatmap.es.js","types":"./dist/index.d.ts","unpkg":"./dist/calendar-heatmap.umd.cjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/calendar-heatmap.es.js","require":"./dist/calendar-heatmap.umd.cjs"},"./style.css":"./dist/calendar-heatmap.css"},"sideEffects":["*.css"],"keywords":["vue","vue3","typescript","calendar","heatmap","calendar-heatmap","github-contributions","activity-graph"],"license":"MIT","peerDependencies":{"vue":"^3.3.0"},"devDependencies":{"@vitejs/plugin-vue":"^5.1.4","typescript":"^5.6.3","vite":"^5.4.11","vite-plugin-dts":"^4.3.0","vue":"^3.5.13","vue-tsc":"^2.1.10"},"scripts":{"dev":"vite","build":"vue-tsc -p tsconfig.build.json --noEmit && vite build","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/bactvdev/vue-calendar-heatmap.git"},"gitHead":"665e6f1c34636b36593920c3d5be9f238552ff2b","_id":"@bactv/vue-calendar-heatmap@1.0.2","bugs":{"url":"https://github.com/bactvdev/vue-calendar-heatmap/issues"},"homepage":"https://github.com/bactvdev/vue-calendar-heatmap#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-/oF/yIHdFHJPtQc+hjUMwhyFCt8VVN/gVw9DLJWW7QC53PiOeqxvrLs/vl6Ofq0ChWHruB9EoIq02QEu/DC6kQ==","shasum":"2299b6e64923db73b7012b5cd0473657b4bfded4","tarball":"https://registry.npmjs.org/@bactv/vue-calendar-heatmap/-/vue-calendar-heatmap-1.0.2.tgz","fileCount":11,"unpackedSize":24649,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDzIHUoC3GyY17V+8it8Ne+zhz4sbEf6nt6lmOWHpW5sgIhALHJmvF2NUFLNzP8RQ6KlMuN8jBXOwHeCHF6iNhnU/ID"}]},"_npmUser":{"name":"bactv","email":"bactruongvan17@gmail.com"},"directories":{},"maintainers":[{"name":"bactv","email":"bactruongvan17@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-calendar-heatmap_1.0.2_1785750743457_0.5403799775895051"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-03T09:42:04.394Z","modified":"2026-08-03T09:52:23.761Z","1.0.0":"2026-08-03T09:42:04.774Z","1.0.1":"2026-08-03T09:50:07.438Z","1.0.2":"2026-08-03T09:52:23.615Z"},"bugs":{"url":"https://github.com/bactvdev/vue-calendar-heatmap/issues"},"license":"MIT","homepage":"https://github.com/bactvdev/vue-calendar-heatmap#readme","keywords":["vue","vue3","typescript","calendar","heatmap","calendar-heatmap","github-contributions","activity-graph"],"repository":{"type":"git","url":"git+https://github.com/bactvdev/vue-calendar-heatmap.git"},"description":"A GitHub-style calendar heatmap component for Vue 3, written in TypeScript.","maintainers":[{"name":"bactv","email":"bactruongvan17@gmail.com"}],"readme":"# vue3-calendar-heatmap\n\nA lightweight, GitHub-style calendar/activity heatmap component for **Vue 3**, written in **TypeScript**. No runtime dependencies besides Vue itself.\n\n## Install\n\n```bash\nnpm install @bactv/vue3-calendar-heatmap\n```\n\n## Usage\n\n```vue\n<script setup lang=\"ts\">\nimport { CalendarHeatmap } from '@bactv/vue3-calendar-heatmap';\nimport '@bactv/vue3-calendar-heatmap/style.css'; // required — component styles ship as a separate CSS file\n\nconst values = [\n  { date: '2025-01-03', count: 4 },\n  { date: '2025-01-04', count: 0 },\n  { date: '2025-01-10', count: 12 },\n  // days not present here are treated as \"no data\"\n];\n</script>\n\n<template>\n  <CalendarHeatmap\n    :values=\"values\"\n    start-date=\"2025-01-01\"\n    end-date=\"2025-12-31\"\n    :round=\"2\"\n    :dark-mode=\"false\"\n    :color=\"{ mainColor: '#196127' }\"\n    no-data-text=\"No activity\"\n    :tooltip-formatter=\"(v) => `${v.count} events on ${v.date}`\"\n  />\n</template>\n```\n\n> Note: component styles are built as a separate CSS file (`dist/calendar-heatmap.css`, exposed as `vue3-calendar-heatmap-ts/style.css`). Always import it once in your app entry point.\n\n## Props\n\n| Prop | Type | Default | Description |\n|---|---|---|---|\n| `values` | `Array<{ date: Date \\| string; count: number; [key: string]: unknown }>` | — (required) | Data points. Any day in the range without a matching entry is treated as \"no data\". |\n| `startDate` | `string` | — (required) | Inclusive start of the rendered range, e.g. `'2025-01-01'`. |\n| `endDate` | `string` | — (required) | Inclusive end of the rendered range, e.g. `'2025-12-31'`. |\n| `round` | `number` (0-5) | `0` | Corner rounding of each cell. `0` = square, `5` = full circle (mapped linearly to `border-radius`). |\n| `darkMode` | `boolean` | `false` | Uses a built-in dark color scheme when `rangeColor` isn't provided. |\n| `color` | `{mainColor: string, mixBase: string}` | {mainColor: '#171717'} | Color progression. |\n| `max` | `number` | highest count in `values` | Upper bound used to distribute `rangeColor[2..]` across counts. |\n| `noDataText` | `string \\| null` | `null` | Tooltip text for days with no matching entry. `null` shows no tooltip for those days. |\n| `tooltipFormatter` | `(value) => string` | built-in formatter | Formats the tooltip for days that **do** have a matching entry. Support plain text and html format |\n| `vertical` | `boolean` | `false` | Renders weeks as rows instead of columns. |\n\nEmits: `day-click` — fired with `{ date, count, data }` when a rendered day cell is clicked.\n\n## Development\n\n```bash\nnpm install\nnpm run dev     # playground at src/../playground, exercising all props\nnpm run build    # builds dist/ (ESM + UMD + .d.ts + css) for publishing\n```\n\n## Publishing\n\n```bash\nnpm run build\nnpm publish\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}