{"_id":"@buenalabs/buena-graphs","name":"@buenalabs/buena-graphs","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@buenalabs/buena-graphs","version":"0.1.0","description":"Text-first graphs on the Buena Mono grid - components, text renderer, registry, frame contract, and agent skill.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/buenagames/buena-graphs.git"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json && node scripts/build-registry.mjs && node scripts/gen-readme-components.mjs && node scripts/gen-components-doc.mjs","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","smoke":"tsx scripts/smoke.mts","build:site":"npm run build && node scripts/build-site.mjs"},"dependencies":{"clsx":"^2.1.1","node-html-parser":"^9.0.0","tailwind-merge":"^3.6.0"},"peerDependencies":{"react":">=19","react-dom":">=19"},"devDependencies":{"@types/react":"^19.2.17","@types/react-dom":"^19.2.3","react":"^19.2.7","react-dom":"^19.2.7","tsx":"^4.23.13","typescript":"^5.7.0"},"gitHead":"42a7500b294f7eb8ffbc97b0aa894ef34221f68f","_id":"@buenalabs/buena-graphs@0.1.0","bugs":{"url":"https://github.com/buenagames/buena-graphs/issues"},"homepage":"https://github.com/buenagames/buena-graphs#readme","_nodeVersion":"26.8.1","_npmVersion":"11.19.0","dist":{"integrity":"sha512-eHBB/Nod4ymyEpY3PJFHcvaEDXYmNFvSlaXCE3UIC/Yf7iC2sJFVdVKZfGF62NM94E0AlFzK0JDa62XTmMD3Lg==","shasum":"57458e1907cef4b238990f7e060b1e74e24f8358","tarball":"https://registry.npmjs.org/@buenalabs/buena-graphs/-/buena-graphs-0.1.0.tgz","fileCount":115,"unpackedSize":877396,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD79yAZ6N7i8qKu0zZuuPxWGxv4Dbgoi/2bMtGwuthlDwIhAIni/qSKmXoyMUsUYG2JxGXeMC/X2DGbJm+ImYPKKEtG"}]},"_npmUser":{"name":"buenalabs","email":"buena@buenalabs.io"},"directories":{},"maintainers":[{"name":"buenalabs","email":"buena@buenalabs.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/buena-graphs_0.1.0_1788626682311_0.7324860592317743"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-05T16:44:42.106Z","0.1.0":"2026-09-05T16:44:42.466Z","modified":"2026-09-05T16:44:42.650Z"},"maintainers":[{"name":"buenalabs","email":"buena@buenalabs.io"}],"description":"Text-first graphs on the Buena Mono grid - components, text renderer, registry, frame contract, and agent skill.","homepage":"https://github.com/buenagames/buena-graphs#readme","repository":{"type":"git","url":"git+https://github.com/buenagames/buena-graphs.git"},"bugs":{"url":"https://github.com/buenagames/buena-graphs/issues"},"license":"MIT","readme":"# buena-graphs\n\nText-first graphs on the Buena Mono grid: thirty React components,\neach with an official plain-text twin — the same characters read in a\nterminal, on GitHub, in chat, and render natively in\n[mrkdwn](https://mrkdwn.buenalabs.io).\n\nA buena-graphs figure is readable with no framework at all — and\nrenderers that know [the contract](CONTRACT.md) upgrade it.\n\n<img src=\"docs/assets/graph-activity.png\" alt=\"The Activity component: a contribution grid drawn as characters inside a dashed frame titled [ COMMITS ], with a coral accent on the peak day and a Less-to-More legend\" width=\"640\">\n\nEvery graph is characters on the grid — no canvas, no SVG, no client\nruntime. This is the `Activity` component as the specimen site renders\nit; its plain-text twin is the same figure with the color removed:\n\n```text\n[ STATUS ]\n\n████████████████▒████████·▒███\n█████████▒██\n90%               6w ago today\n█ up  ▒ slow  · down\n90 percent uptime over 42 days, 6w ago to today\n```\n\n<img src=\"docs/assets/graph-plot.png\" alt=\"The Plot component: an area chart titled [ RUNNING TOTAL ] drawn as character columns with a y-scale from 0 to 243 and the newest column accented in coral\" width=\"760\">\n\n**Status: private until launch.** The components and the text engine\nwere extracted from the buena-mono specimen site, which remains the\ncatalog's publishing surface at\n<https://buena-mono.buenalabs.io/graphs.md>. Browse every component\nrendered live at <https://buena-mono.buenalabs.io/graphs>.\n\n## Install\n\nComponents, into any shadcn-style project (each item carries its\ndependencies, theme variables, and css utilities):\n\n```sh\nnpx shadcn@latest add https://graphs.buenalabs.io/r/graph-uptime.json\n```\n\nThe agent skill, which teaches a coding agent when to copy a text\ntwin and when to install a component:\n\n```sh\nnpx skills add buenagames/buena-graphs\n```\n\n## What ships from this repo\n\n| Artifact | What it is |\n|---|---|\n| [`CONTRACT.md`](CONTRACT.md) | The frame contract — the text grammar a renderer may rely on, semver'd |\n| [`src/`](src/) | Components + the DOM-to-text engine |\n| [`r/`](r/) | shadcn-compatible registry, generated — never hand-edit |\n| [`skills/buena-graphs/`](skills/buena-graphs/) | The agent skill, with the bundled catalog and a gold-standard [example](skills/buena-graphs/examples/sample-report.md) |\n\n## The thirty components\n\nGenerated from the catalog metadata — regenerate with\n`node scripts/gen-readme-components.mjs`, never hand-edit the table.\n\n<!-- components:start -->\n| Registry name | Component | What it draws |\n|---|---|---|\n| `graph-activity` | Activity | A contribution grid. Dated counts in, weeks and intensity derived. |\n| `graph-bars` | Bars | Two series above and below a label — a before and after of the same categories, with the thing between them named. |\n| `graph-bullet` | Bullet | Value against target on one track, for a number with something to beat. |\n| `graph-calendar` | Calendar | One month on a seven-column grid, with days marked and one picked out. |\n| `graph-cells` | Cells | Small multiples of an on-and-off grid — the same shape drawn once per group, for comparing patterns rather than magnitudes. |\n| `graph-compare` | Compare | A feature matrix. Booleans draw as ✓ and –; one column takes the accent. |\n| `graph-countdown` | Countdown | Time remaining until an instant, with a message for when it lands. |\n| `graph-diff` | Diff | Added, removed and unchanged rows, with a total at the bottom. |\n| `graph-flow` | Flow | Nodes on dashed arrows. Rows read left to right; one path can be accented. |\n| `graph-frame` | Frame | Not a graph — the dashed figure the other twenty-nine are drawn inside. Compose it with GraphBody, GraphTitle, GraphRule, GraphTrack and GraphTick to draw one of your own. |\n| `graph-funnel` | Funnel | Steps that only ever narrow, with the drop shown at each one. |\n| `graph-gantt` | Gantt | Bars on a shared track, measured from day counts rather than drawn. |\n| `graph-heatmap` | Heatmap | A punchcard: labelled rows against labelled columns, intensity by glyph. |\n| `graph-invoice` | Invoice | A document rather than a chart — the frame doing receipts and statements. |\n| `graph-kpi` | KPI | One number with its trend under it — a headline that shows its working. |\n| `graph-meter` | Meter | A single value on a track — the smallest chart that is still a chart. |\n| `graph-plot` | Plot | A line or area plot with a y-scale, for when the magnitude matters. |\n| `graph-rank` | Rank | An ordered bar list — the shape you want for a top-n. |\n| `graph-slope` | Slope | Two columns and the lines between them — what moved, and which way. |\n| `graph-spark` | Spark | A sparkline in block glyphs, scaled to its own highest point. |\n| `graph-spec` | Spec | A definition list — labels down the left, values right, one accented. |\n| `graph-stack` | Stack | Parts of a whole, one row per group. The palette that earns three hues. |\n| `graph-stat` | Stat | A row of headline figures, each with a label and an optional hint. |\n| `graph-table` | Table | A plain table inside the frame, with per-column alignment and a footer. |\n| `graph-timeline` | Timeline | Dated events down a connector, with done, current and upcoming states. |\n| `graph-timer` | Timer | Elapsed time, time since, or a wall clock. |\n| `graph-tree` | Tree | A hierarchy in branch glyphs, with one node carrying the accent. |\n| `graph-uptime` | Uptime | A status strip — one cell a day, three states and a gap. |\n| `graph-waffle` | Waffle | A percentage as a block of cells, when a bar would not show the remainder. |\n| `graph-waterfall` | Waterfall | How a total was arrived at — a start, the moves, and where it landed. |\n<!-- components:end -->\n\n## Licensing — read this once\n\nThe **code** in this repository is MIT-licensed (see\n[`LICENSE`](LICENSE)). The **Buena Mono typeface** is a separate work\nunder its own license and is not contained in, nor licensed by, this\nrepository. The graphs are drawn *for* the typeface's grid; they do\nnot include it.\n\nThe components derive from\n[mdx-graphs](https://github.com/keshav-exe/markdown-graphs)\n(MIT, Copyright (c) 2026 Keshav Bagaade), carried here as a documented\nfork — the edits are listed at the top of\n[`src/components/index.ts`](src/components/index.ts). The registry's\ndefault theme values come from the same source\n([`scripts/registry-theme.json`](scripts/registry-theme.json)).\n","readmeFilename":"README.md","_rev":"1-88cff83d4c511675638bfaf791c77351"}