{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "card-tree-node-fixtures",
  "title": "Card Tree Node — fixtures",
  "author": "ilinxa",
  "description": "Card Tree Node plus the dummy-data fixtures used by the docs-site demo.",
  "registryDependencies": [
    "@ilinxa/card-tree-node"
  ],
  "files": [
    {
      "path": "src/registry/components/data/card-tree-node/dummy-data.ts",
      "content": "// F-S1 lock — RELATIVE import for cross-procomp types. Same-category alias\n// imports get the slug name substituted by shadcn's rewriter; relative paths\n// bypass that and translate verbatim.\nimport type { CanvasData } from \"../flow-canvas/types\";\nimport type { CardTreeCanvasNode } from \"./types\";\n\n// 3 card-tree nodes + 1 custom-json node. Each card-tree node has __rcids\n// pre-attached at the root + at every subcard, so subcard-click-to-focus\n// works out of the box (F-03 lock — degrades gracefully when __rcid is\n// missing, but the happy path is what the demo exercises).\n\nconst promptCard: CardTreeCanvasNode = {\n  __type: \"card-tree\",\n  __rcid: \"card-prompt-root\",\n  title: \"User Prompt\",\n  priority: 1,\n  urgency: true,\n  createdAt: \"2026-05-16T09:14:00Z\",\n  ports: [\n    { id: \"p-prompt-out\", side: \"right\", dir: \"out\", type: \"text\" },\n  ],\n  metadata: {\n    __rcid: \"card-prompt-metadata\",\n    title: \"Metadata\",\n    sessionId: \"sess-7a2c\",\n    locale: \"en-US\",\n    ports: [\n      // Type \"text\" matches the target (p-llm-system-in) so typed-port\n      // validation passes; the metadata stream is text-shaped to LLM.\n      { id: \"p-prompt-meta-out\", side: \"right\", dir: \"out\", type: \"text\" },\n    ],\n  },\n};\n\nconst llmCard: CardTreeCanvasNode = {\n  __type: \"card-tree\",\n  __rcid: \"card-llm-root\",\n  title: \"GPT-4 Inference\",\n  model: \"gpt-4o-2026-04\",\n  temperature: 0.7,\n  maxTokens: 2048,\n  ports: [\n    { id: \"p-llm-in\", side: \"left\", dir: \"in\", type: \"text\" },\n    { id: \"p-llm-out\", side: \"right\", dir: \"out\", type: \"text\" },\n  ],\n  system: {\n    __rcid: \"card-llm-system\",\n    title: \"System message\",\n    content: \"You are a helpful agent. Always cite sources.\",\n    ports: [\n      // Dropped `multi: true` (was inconsistent with p-llm-user-in which\n      // has no multi). The multi field is not passed through to xyflow's\n      // <Handle> by PortHandle — it's a flow-canvas-only field for the\n      // typed-edge validator. Default (multi: false) is fine for v0.1.\n      { id: \"p-llm-system-in\", side: \"left\", dir: \"in\", type: \"text\" },\n    ],\n  },\n  user: {\n    __rcid: \"card-llm-user\",\n    title: \"User message\",\n    content: \"{{prompt}}\",\n    ports: [\n      { id: \"p-llm-user-in\", side: \"left\", dir: \"in\", type: \"text\" },\n    ],\n  },\n};\n\nconst responseCard: CardTreeCanvasNode = {\n  __type: \"card-tree\",\n  __rcid: \"card-response-root\",\n  title: \"Response\",\n  format: \"markdown\",\n  streaming: false,\n  receivedAt: \"2026-05-16T09:14:03Z\",\n  ports: [\n    { id: \"p-response-in\", side: \"left\", dir: \"in\", type: \"text\" },\n  ],\n  metadata: {\n    __rcid: \"card-response-metadata\",\n    title: \"Metadata\",\n    finishReason: \"stop\",\n    totalTokens: 412,\n  },\n};\n\nconst auditNode = {\n  __type: \"audit-log\",\n  _label: \"Audit Log\",\n  // Demonstrates the renderer-mixed pattern — falls back to customJsonRenderer.\n  events: [\n    { ts: \"2026-05-16T09:14:03Z\", kind: \"tool-call\", name: \"search\" },\n    { ts: \"2026-05-16T09:14:04Z\", kind: \"tool-result\", status: \"ok\" },\n  ],\n};\n\nexport const cardTreeNodeFixture: CanvasData = {\n  version: 1,\n  nodes: [\n    {\n      id: \"n-prompt\",\n      position: { x: 40, y: 40 },\n      data: promptCard,\n    },\n    {\n      id: \"n-llm\",\n      position: { x: 380, y: 40 },\n      data: llmCard,\n    },\n    {\n      id: \"n-response\",\n      position: { x: 740, y: 40 },\n      data: responseCard,\n    },\n    {\n      id: \"n-audit\",\n      position: { x: 380, y: 360 },\n      data: auditNode,\n    },\n  ],\n  edges: [\n    {\n      id: \"e-prompt-to-llm-user\",\n      source: \"n-prompt:p-prompt-out\",\n      target: \"n-llm:p-llm-user-in\",\n    },\n    {\n      id: \"e-llm-to-response\",\n      source: \"n-llm:p-llm-out\",\n      target: \"n-response:p-response-in\",\n    },\n    {\n      id: \"e-prompt-meta-to-llm-system\",\n      source: \"n-prompt:p-prompt-meta-out\",\n      target: \"n-llm:p-llm-system-in\",\n    },\n  ],\n  viewport: { x: 0, y: 0, zoom: 0.85 },\n};\n",
      "type": "registry:component",
      "target": "components/card-tree-node/dummy-data.ts"
    }
  ],
  "categories": [
    "data",
    "flow",
    "rich-content",
    "fixtures"
  ],
  "type": "registry:block"
}