{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "aurora-ai-edge",
  "title": "Aurora AI Edge",
  "author": "jmagar <https://github.com/jmagar>",
  "description": "Aurora-native graph edge label with status tone and direction states.",
  "dependencies": [
    "lucide-react@^0.487.0"
  ],
  "registryDependencies": [
    "@aurora/aurora-tokens",
    "@aurora/aurora-ai-elements",
    "@aurora/aurora-components"
  ],
  "files": [
    {
      "path": "registry/aurora/blocks/ai/elements/edge.tsx",
      "content": "/**\n * Aurora Edge — a graph edge label rendered as a compact, tone-tinted pill.\n *\n * A rounded pill carrying a small tone-colored dot + label, with optional\n * inline direction arrows and an optional dashed / animated-flow treatment.\n * Used to annotate connections in a node graph (status codes, sync state,\n * latency, etc.).\n *\n *   tone:\n *     - `active`  — cyan (accent primary); pairs with `animated` for flow\n *     - `success` — teal\n *     - `warn`    — sand\n *     - `error`   — rose\n *     - `muted`   — slate (default)\n *   direction:\n *     - `forward` — trailing `→`\n *     - `back`    — leading `←`\n *     - `both`    — leading `←` and trailing `→`\n *     - `none`    — no arrows (default)\n *   `dashed`   — dashed pill border (e.g. a tentative / pending edge)\n *   `animated` — flowing dashed border (continuous motion); respects\n *                `prefers-reduced-motion`\n *\n * This file deliberately re-implements `Edge` (rather than re-exporting the\n * legacy `core` divider version) so it can carry the `tone` / `direction` /\n * `dashed` / `animated` API while keeping every shadcn/Aurora guarantee:\n * `forwardRef`, `displayName`, `React.memo`, and full `React.HTMLAttributes`\n * spread. Token-only colors (`--aurora-*`).\n */\n\nimport * as React from \"react\"\n\nexport type EdgeTone = \"active\" | \"success\" | \"warn\" | \"error\" | \"muted\"\nexport type EdgeDirection = \"none\" | \"forward\" | \"back\" | \"both\"\n\nexport interface EdgeProps extends React.HTMLAttributes<HTMLDivElement> {\n  /** Edge caption (e.g. \"200 OK\", \"sync\", \"429 retry\"). */\n  label?: string\n  /** Drives the dot / label / border tint. */\n  tone?: EdgeTone\n  /** Inline direction arrows. */\n  direction?: EdgeDirection\n  /** Render the pill border as a static dash. */\n  dashed?: boolean\n  /** Animate the dashed border as a flowing edge. */\n  animated?: boolean\n}\n\n// Styles: registry/aurora/styles/aurora-components.css (@layer aurora-components).\n\nconst ARROW_BACK = \"←\" // ←\nconst ARROW_FORWARD = \"→\" // →\n\nconst Edge = (\n    { ref,\n      label = \"edge\",\n      tone = \"muted\",\n      direction = \"none\",\n      dashed = false,\n      animated = false,\n      className,\n      ...props\n    }: EdgeProps & { ref?: React.Ref<HTMLDivElement> }\n  ) => {\n    const flowing = animated\n    const showBack = direction === \"back\" || direction === \"both\"\n    const showForward = direction === \"forward\" || direction === \"both\"\n    const cls = [\"aurora-edge\", className].filter(Boolean).join(\" \")\n    const arrowText = showBack && showForward ? \"↔\" : showForward ? \"→\" : showBack ? \"←\" : \"\"\n    const ariaLabel = arrowText ? `${label} ${arrowText}` : label\n\n    return (\n      <div\n        ref={ref}\n        className={cls}\n        data-tone={tone}\n        data-direction={direction}\n        data-dashed={dashed && !animated ? \"true\" : undefined}\n        data-flowing={flowing ? \"true\" : undefined}\n        role=\"img\"\n        aria-label={ariaLabel}\n        {...props}\n      >\n        {showBack ? (\n          <span className=\"aurora-edge__arrow\" aria-hidden>\n            {ARROW_BACK}\n          </span>\n        ) : null}\n        <span className=\"aurora-edge__dot\" aria-hidden />\n        <span className=\"aurora-edge__label\">{label}</span>\n        {showForward ? (\n          <span className=\"aurora-edge__arrow\" aria-hidden>\n            {ARROW_FORWARD}\n          </span>\n        ) : null}\n      </div>\n    )\n  }\nEdge.displayName = \"Edge\"\n\nconst MemoEdge = React.memo(Edge)\nMemoEdge.displayName = \"Edge\"\n\nexport { MemoEdge as Edge }\nexport default MemoEdge\n",
      "type": "registry:component",
      "target": "@components/aurora/ai/edge.tsx"
    }
  ],
  "meta": {
    "namespace": "@aurora",
    "style": "aurora",
    "family": "block",
    "requiresTokens": true,
    "sourcePath": "registry/aurora/blocks/ai/elements/edge.tsx",
    "installTarget": "@components/aurora/ai/edge.tsx",
    "taxonomy": "ai"
  },
  "docs": "Aurora block that installs Aurora AI Edge.\n\nInstall `aurora-tokens`, `aurora-ai-elements`, and `aurora-components` first; the shadcn CLI resolves these automatically through the @aurora registry namespace.\n\nDefault install target: `@components/aurora/ai/edge.tsx`.\n\nRegistry dependencies: `aurora-tokens`, `aurora-ai-elements`, `aurora-components`.",
  "categories": [
    "aurora",
    "block",
    "ai"
  ],
  "type": "registry:block"
}