{
  "id": "terminal-ledger-registry",
  "name": "Package Registry",
  "theme": "terminal-ledger",
  "category": "Search & Browse",
  "description": "Package search where each result shows the install line, the last publish, and whether it has a known advisory — the three things that decide it.",
  "layout": "Search bar over a result list of fixed-height rows; every row ends with a copyable install command in an inverted block, and advisories break the row with a full-width warning line.",
  "modules": [
    {
      "key": "search",
      "name": "Registry search",
      "html": "\n<header class=\"rs\"><span class=\"rs-p\">ledger registry</span><input type=\"search\" value=\"rebalance\" aria-label=\"Search packages\"><button type=\"button\">SEARCH</button><span class=\"rs-n\">31 packages</span></header>"
    },
    {
      "key": "sort",
      "name": "Sort strip",
      "html": "\n<div class=\"ss\"><span>SORT</span><button type=\"button\" class=\"on\">RELEVANCE</button><button type=\"button\">DOWNLOADS</button><button type=\"button\">RECENT</button><span class=\"ss-sp\"></span><label><input type=\"checkbox\" checked> hide deprecated</label><label><input type=\"checkbox\"> only typed</label></div>"
    },
    {
      "key": "results",
      "name": "Package rows",
      "html": "\n<ul class=\"pk\">\n  <li>\n    <div class=\"pk-h\"><b>@ledger/rebalance</b><span class=\"v\">4.2.0</span><span class=\"lic\">Apache-2.0</span><span class=\"pk-sp\"></span><span class=\"dl\">2.1M/wk</span></div>\n    <p>Partition rebalance primitives with heartbeat eviction and deterministic assignment.</p>\n    <div class=\"pk-f\"><span class=\"pub\">published 4d ago</span><code>npm i @ledger/rebalance</code></div>\n  </li>\n  <li class=\"adv\">\n    <div class=\"pk-h\"><b>rebalance-kit</b><span class=\"v\">1.9.4</span><span class=\"lic\">MIT</span><span class=\"pk-sp\"></span><span class=\"dl\">418K/wk</span></div>\n    <p>Community rebalance helpers. Unmaintained since 2024.</p>\n    <div class=\"warn-line\">ADVISORY GHSA-4x2q · prototype pollution in mergeAssignment() · no patched version</div>\n    <div class=\"pk-f\"><span class=\"pub\">published 1y ago</span><code>npm i rebalance-kit</code></div>\n  </li>\n  <li>\n    <div class=\"pk-h\"><b>@ledger/consumer</b><span class=\"v\">7.0.1</span><span class=\"lic\">Apache-2.0</span><span class=\"pk-sp\"></span><span class=\"dl\">3.4M/wk</span></div>\n    <p>Consumer group client. Depends on @ledger/rebalance.</p>\n    <div class=\"pk-f\"><span class=\"pub\">published 11d ago</span><code>npm i @ledger/consumer</code></div>\n  </li>\n</ul>"
    }
  ],
  "moduleCount": 3,
  "reorderable": true,
  "meta": {
    "id": "terminal-ledger-registry",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-08-29T18:41:55+09:00",
    "updatedAt": "2026-08-29T18:41:55+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/terminal-ledger-registry.json",
  "structure": "Search bar over a result list of fixed-height rows; every row ends with a copyable install command in an inverted block, and advisories break the row with a full-width warning line.",
  "html": "<div class=\"dz dz-terminal-ledger-registry\" data-design=\"terminal-ledger-registry\" data-theme=\"terminal-ledger\">\n<section class=\"dz-mod\" data-mod=\"search\" aria-label=\"Registry search\">\n<header class=\"rs\"><span class=\"rs-p\">ledger registry</span><input type=\"search\" value=\"rebalance\" aria-label=\"Search packages\"><button type=\"button\">SEARCH</button><span class=\"rs-n\">31 packages</span></header></section>\n<section class=\"dz-mod\" data-mod=\"sort\" aria-label=\"Sort strip\">\n<div class=\"ss\"><span>SORT</span><button type=\"button\" class=\"on\">RELEVANCE</button><button type=\"button\">DOWNLOADS</button><button type=\"button\">RECENT</button><span class=\"ss-sp\"></span><label><input type=\"checkbox\" checked> hide deprecated</label><label><input type=\"checkbox\"> only typed</label></div></section>\n<section class=\"dz-mod\" data-mod=\"results\" aria-label=\"Package rows\">\n<ul class=\"pk\">\n  <li>\n    <div class=\"pk-h\"><b>@ledger/rebalance</b><span class=\"v\">4.2.0</span><span class=\"lic\">Apache-2.0</span><span class=\"pk-sp\"></span><span class=\"dl\">2.1M/wk</span></div>\n    <p>Partition rebalance primitives with heartbeat eviction and deterministic assignment.</p>\n    <div class=\"pk-f\"><span class=\"pub\">published 4d ago</span><code>npm i @ledger/rebalance</code></div>\n  </li>\n  <li class=\"adv\">\n    <div class=\"pk-h\"><b>rebalance-kit</b><span class=\"v\">1.9.4</span><span class=\"lic\">MIT</span><span class=\"pk-sp\"></span><span class=\"dl\">418K/wk</span></div>\n    <p>Community rebalance helpers. Unmaintained since 2024.</p>\n    <div class=\"warn-line\">ADVISORY GHSA-4x2q · prototype pollution in mergeAssignment() · no patched version</div>\n    <div class=\"pk-f\"><span class=\"pub\">published 1y ago</span><code>npm i rebalance-kit</code></div>\n  </li>\n  <li>\n    <div class=\"pk-h\"><b>@ledger/consumer</b><span class=\"v\">7.0.1</span><span class=\"lic\">Apache-2.0</span><span class=\"pk-sp\"></span><span class=\"dl\">3.4M/wk</span></div>\n    <p>Consumer group client. Depends on @ledger/rebalance.</p>\n    <div class=\"pk-f\"><span class=\"pub\">published 11d ago</span><code>npm i @ledger/consumer</code></div>\n  </li>\n</ul></section>\n</div>",
  "css": "\n.dz-terminal-ledger-registry { background: var(--background); color: var(--foreground); font-family: var(--pv-mono); font-size: 12.5px; padding: 0 0 20px; }\n.dz-terminal-ledger-registry .rs { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: var(--pv-bw) solid var(--border); }\n.dz-terminal-ledger-registry .rs-p { color: var(--chart-1); }\n.dz-terminal-ledger-registry .rs input { flex: 1; min-width: 0; font: inherit; font-size: 13px; padding: 7px 11px; border: var(--pv-bw) solid var(--input); background: var(--muted); color: var(--foreground); }\n.dz-terminal-ledger-registry .rs input:focus-visible { outline: 2px solid var(--ring); outline-offset: -2px; }\n.dz-terminal-ledger-registry .rs button { font: inherit; font-size: 11px; letter-spacing: .1em; padding: 7px 16px; border: var(--pv-bw) solid var(--foreground); background: var(--foreground); color: var(--background); cursor: pointer; }\n.dz-terminal-ledger-registry .rs-n { font-size: 11.5px; color: var(--muted-foreground); }\n.dz-terminal-ledger-registry .ss { display: flex; align-items: center; gap: 6px; padding: 8px 16px; border-bottom: var(--pv-bw) solid var(--border); font-size: 11px; color: var(--muted-foreground); }\n.dz-terminal-ledger-registry .ss > span:first-child { letter-spacing: .14em; margin-right: 4px; }\n.dz-terminal-ledger-registry .ss button { font: inherit; font-size: 10.5px; letter-spacing: .08em; padding: 4px 10px; border: var(--pv-bw) solid var(--border); background: var(--background); color: var(--muted-foreground); cursor: pointer; }\n.dz-terminal-ledger-registry .ss button.on { background: var(--foreground); color: var(--background); border-color: var(--foreground); }\n.dz-terminal-ledger-registry .ss-sp { flex: 1; }\n.dz-terminal-ledger-registry .ss label { display: flex; align-items: center; gap: 6px; margin-left: 14px; cursor: pointer; }\n.dz-terminal-ledger-registry .ss input { accent-color: var(--primary); }\n.dz-terminal-ledger-registry .pk { list-style: none; margin: 0; padding: 0; }\n.dz-terminal-ledger-registry .pk li { padding: 12px 16px; border-bottom: var(--pv-bw) solid var(--border); transition: background var(--dur) var(--ease); }\n.dz-terminal-ledger-registry .pk li:hover { background: var(--muted); }\n.dz-terminal-ledger-registry .pk li.adv { border-left: 2px solid var(--destructive); }\n.dz-terminal-ledger-registry .pk-h { display: flex; align-items: baseline; gap: 10px; }\n.dz-terminal-ledger-registry .pk-h b { font-size: 13.5px; color: var(--primary); }\n.dz-terminal-ledger-registry .v { font-size: 11.5px; color: var(--muted-foreground); }\n.dz-terminal-ledger-registry .lic { font-size: 10.5px; border: var(--pv-bw) solid var(--border); padding: 1px 6px; color: var(--muted-foreground); }\n.dz-terminal-ledger-registry .pk-sp { flex: 1; }\n.dz-terminal-ledger-registry .dl { font-size: 11.5px; color: var(--muted-foreground); }\n.dz-terminal-ledger-registry .pk p { margin: 6px 0 8px; color: var(--muted-foreground); line-height: 1.55; max-width: 76ch; }\n.dz-terminal-ledger-registry .warn-line { background: var(--destructive); color: var(--background); font-size: 11px; padding: 4px 9px; margin: 0 0 8px; }\n.dz-terminal-ledger-registry .pk-f { display: flex; align-items: center; gap: 14px; }\n.dz-terminal-ledger-registry .pub { font-size: 11px; color: var(--muted-foreground); }\n.dz-terminal-ledger-registry .pk code { font-family: inherit; font-size: 11.5px; background: var(--foreground); color: var(--background); padding: 3px 9px; }\n@media (prefers-reduced-motion: reduce) { .dz-terminal-ledger-registry *, .dz-terminal-ledger-registry *::before, .dz-terminal-ledger-registry *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }",
  "requiredTheme": "/api/v1/themes/terminal-ledger.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap"
}