{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "signoff-ui",
  "homepage": "https://github.com/dgesteves/signoff-ui",
  "items": [
    {
      "name": "diff-review",
      "type": "registry:component",
      "title": "Diff Review",
      "description": "Review agent edits across files: accept or reject hunks or whole files, comment on lines, mark files viewed, from the keyboard; returns the applied files, rejected hunks and comments.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "@radix-ui/react-toggle-group@^1.2.1",
        "ai",
        "clsx@^2.1.1",
        "diff@^9.0.0",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/diff-review.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/diff-review.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/diff-async.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/diff-async.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/diff-worker.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/diff-worker.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/diff.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/diff.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/highlight.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/highlight.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/hooks.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/hooks.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/primitives.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/primitives.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/revealed.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/revealed.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/review.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/review.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/scroll-region.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/scroll-region.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/untrusted.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/untrusted.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        },
        {
          "path": "packages/signoff-ui/src/use-diff-review.ts",
          "type": "registry:component",
          "target": "components/signoff-ui/use-diff-review.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "use-diff-review",
      "type": "registry:component",
      "title": "useDiffReview",
      "description": "DiffReview without its markup: parsing (in a worker for large files), decisions, line comments, viewed files, context and the keyboard, for your own design system.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "ai",
        "clsx@^2.1.1",
        "diff@^9.0.0",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/use-diff-review.ts",
          "type": "registry:component",
          "target": "components/signoff-ui/use-diff-review.ts"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/diff-async.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/diff-async.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/diff-worker.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/diff-worker.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/diff.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/diff.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/hooks.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/hooks.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/review.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/review.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "approval-card",
      "type": "registry:component",
      "title": "Approval Card",
      "description": "Approve or deny a tool call once, for the session or always, by tool and argument pattern: an args preview, editable arguments, risk levels, a denial reason, a key per choice, approve all pending.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "@radix-ui/react-collapsible@^1.2.1",
        "ai",
        "clsx@^2.1.1",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/approval-card.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/approval-card.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/highlight.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/highlight.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/hooks.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/hooks.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/policy.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/policy.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/primitives.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/primitives.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/revealed.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/revealed.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/scroll-region.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/scroll-region.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/untrusted.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/untrusted.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        },
        {
          "path": "packages/signoff-ui/src/tool-call-timeline.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/tool-call-timeline.tsx"
        },
        {
          "path": "packages/signoff-ui/src/use-approval-policy.ts",
          "type": "registry:component",
          "target": "components/signoff-ui/use-approval-policy.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "use-approval-policy",
      "type": "registry:component",
      "title": "useApprovalPolicy",
      "description": "Approval rules without markup: once, session or always, by tool and argument glob, deny winning; pluggable storage, an audit trail, and the same rules as AI SDK 7 toolApproval.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [],
      "files": [
        {
          "path": "packages/signoff-ui/src/use-approval-policy.ts",
          "type": "registry:component",
          "target": "components/signoff-ui/use-approval-policy.ts"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/policy.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/policy.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "agent-message",
      "type": "registry:component",
      "title": "Agent Message",
      "description": "Renders an assistant UIMessage: markdown, reasoning, grouped tool calls, inline approvals and sources.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "@radix-ui/react-collapsible@^1.2.1",
        "ai",
        "clsx@^2.1.1",
        "react-markdown@^10.1.0",
        "remark-gfm@^4.0.1",
        "remend@^1.4.0",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/agent-message.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/agent-message.tsx"
        },
        {
          "path": "packages/signoff-ui/src/agent-message-base.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/agent-message-base.tsx"
        },
        {
          "path": "packages/signoff-ui/src/approval-card.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/approval-card.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/highlight.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/highlight.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/hooks.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/hooks.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/images.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/images.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/policy.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/policy.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/primitives.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/primitives.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/revealed.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/revealed.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/scroll-region.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/scroll-region.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/untrusted.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/untrusted.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        },
        {
          "path": "packages/signoff-ui/src/markdown-renderer.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/markdown-renderer.tsx"
        },
        {
          "path": "packages/signoff-ui/src/markdown.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/markdown.tsx"
        },
        {
          "path": "packages/signoff-ui/src/reasoning-base.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/reasoning-base.tsx"
        },
        {
          "path": "packages/signoff-ui/src/sources.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/sources.tsx"
        },
        {
          "path": "packages/signoff-ui/src/tool-call-timeline.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/tool-call-timeline.tsx"
        },
        {
          "path": "packages/signoff-ui/src/use-approval-policy.ts",
          "type": "registry:component",
          "target": "components/signoff-ui/use-approval-policy.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "tool-call-timeline",
      "type": "registry:component",
      "title": "Tool Call Timeline",
      "description": "Vertical timeline of AI SDK tool calls with live states, durations, a waterfall and expandable input/output.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "@radix-ui/react-collapsible@^1.2.1",
        "ai",
        "clsx@^2.1.1",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/tool-call-timeline.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/tool-call-timeline.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/highlight.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/highlight.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/hooks.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/hooks.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/primitives.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/primitives.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "run-meter",
      "type": "registry:component",
      "title": "Run Meter",
      "description": "Tokens, estimated cost and latency (TTFT, total) for an agent run, compact or expanded.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "ai",
        "clsx@^2.1.1",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/run-meter.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/run-meter.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai-types.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai-types.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/hooks.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/hooks.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/scroll-region.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/scroll-region.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/usage.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/usage.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "agent-status",
      "type": "registry:component",
      "title": "Agent Status",
      "description": "Run state pill (thinking, working, waiting for approval, done, stopped, error) announced through an aria-live region.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "ai",
        "clsx@^2.1.1",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/agent-status.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/agent-status.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/highlight.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/highlight.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/hooks.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/hooks.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/primitives.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/primitives.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "sources",
      "type": "registry:component",
      "title": "Sources",
      "description": "Citation chips and cards for AI SDK source-url and source-document parts.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "ai",
        "clsx@^2.1.1",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/sources.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/sources.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/untrusted.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/untrusted.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "markdown",
      "type": "registry:component",
      "title": "Markdown",
      "description": "Streaming-safe GFM markdown with linked [n] citations and a typing caret.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "clsx@^2.1.1",
        "react-markdown@^10.1.0",
        "remark-gfm@^4.0.1",
        "remend@^1.4.0",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/markdown.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/markdown.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/highlight.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/highlight.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/images.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/images.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/primitives.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/primitives.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/scroll-region.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/scroll-region.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/untrusted.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/untrusted.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "reasoning",
      "type": "registry:component",
      "title": "Reasoning",
      "description": "Collapsible model reasoning that opens while streaming and summarizes its duration.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "@radix-ui/react-collapsible@^1.2.1",
        "ai",
        "clsx@^2.1.1",
        "react-markdown@^10.1.0",
        "remark-gfm@^4.0.1",
        "remend@^1.4.0",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/reasoning.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/reasoning.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/highlight.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/highlight.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/hooks.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/hooks.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/images.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/images.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/primitives.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/primitives.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/scroll-region.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/scroll-region.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/untrusted.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/untrusted.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        },
        {
          "path": "packages/signoff-ui/src/markdown-renderer.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/markdown-renderer.tsx"
        },
        {
          "path": "packages/signoff-ui/src/markdown.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/markdown.tsx"
        },
        {
          "path": "packages/signoff-ui/src/reasoning-base.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/reasoning-base.tsx"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "ag-ui",
      "type": "registry:component",
      "title": "AG-UI Adapter",
      "description": "useAgUiAgent: renders any AG-UI agent (LangGraph, CrewAI, Mastra, Pydantic AI) with these components, interrupts as approvals.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [],
      "files": [
        {
          "path": "packages/signoff-ui/src/use-ag-ui-agent.ts",
          "type": "registry:component",
          "target": "components/signoff-ui/use-ag-ui-agent.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/ag-ui.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ag-ui.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai-types.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai-types.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/usage.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/usage.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    },
    {
      "name": "assistant-ui",
      "type": "registry:component",
      "title": "assistant-ui Tool UIs",
      "description": "signoffTools for MessagePrimitive.Parts: DiffReview for assistant-ui tool calls that propose files, its result sent back with addResult, and the approval card with approval rules for calls at an approval gate.",
      "author": "Diogo Esteves <https://github.com/dgesteves>",
      "dependencies": [
        "@assistant-ui/react",
        "@radix-ui/react-collapsible@^1.2.1",
        "@radix-ui/react-toggle-group@^1.2.1",
        "ai",
        "clsx@^2.1.1",
        "diff@^9.0.0",
        "tailwind-merge@^3.7.0"
      ],
      "files": [
        {
          "path": "packages/signoff-ui/src/assistant-ui-tools.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/assistant-ui-tools.tsx"
        },
        {
          "path": "packages/signoff-ui/src/approval-card.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/approval-card.tsx"
        },
        {
          "path": "packages/signoff-ui/src/diff-review.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/diff-review.tsx"
        },
        {
          "path": "packages/signoff-ui/src/labels.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/labels.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/ai.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/ai.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/diff-async.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/diff-async.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/diff-worker.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/diff-worker.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/diff.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/diff.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/format.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/format.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/highlight.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/highlight.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/hooks.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/hooks.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/icons.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/icons.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/labels.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/labels.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/policy.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/policy.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/primitives.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/primitives.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/revealed.tsx",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/revealed.tsx"
        },
        {
          "path": "packages/signoff-ui/src/lib/review.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/review.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/scroll-region.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/scroll-region.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/untrusted.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/untrusted.ts"
        },
        {
          "path": "packages/signoff-ui/src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/signoff-ui/lib/utils.ts"
        },
        {
          "path": "packages/signoff-ui/src/tool-call-timeline.tsx",
          "type": "registry:component",
          "target": "components/signoff-ui/tool-call-timeline.tsx"
        },
        {
          "path": "packages/signoff-ui/src/use-approval-policy.ts",
          "type": "registry:component",
          "target": "components/signoff-ui/use-approval-policy.ts"
        },
        {
          "path": "packages/signoff-ui/src/use-diff-review.ts",
          "type": "registry:component",
          "target": "components/signoff-ui/use-diff-review.ts"
        }
      ],
      "cssVars": {
        "theme": {
          "color-signoff-bg": "var(--signoff-bg)",
          "color-signoff-surface": "var(--signoff-surface)",
          "color-signoff-surface-2": "var(--signoff-surface-2)",
          "color-signoff-border": "var(--signoff-border)",
          "color-signoff-border-strong": "var(--signoff-border-strong)",
          "color-signoff-fg": "var(--signoff-fg)",
          "color-signoff-fg-muted": "var(--signoff-fg-muted)",
          "color-signoff-fg-subtle": "var(--signoff-fg-subtle)",
          "color-signoff-accent": "var(--signoff-accent)",
          "color-signoff-accent-fg": "var(--signoff-accent-fg)",
          "color-signoff-on-accent": "var(--signoff-on-accent)",
          "color-signoff-hot": "var(--signoff-hot)",
          "color-signoff-hot-fg": "var(--signoff-hot-fg)",
          "color-signoff-on-hot": "var(--signoff-on-hot)",
          "color-signoff-warn": "var(--signoff-warn)",
          "color-signoff-warn-fg": "var(--signoff-warn-fg)",
          "color-signoff-ring": "var(--signoff-ring)",
          "color-signoff-add": "var(--signoff-add-bg)",
          "color-signoff-add-strong": "var(--signoff-add-strong)",
          "color-signoff-del": "var(--signoff-del-bg)",
          "color-signoff-del-strong": "var(--signoff-del-strong)",
          "color-signoff-chart-input": "var(--signoff-chart-input)",
          "color-signoff-chart-output": "var(--signoff-chart-output)",
          "color-signoff-code-keyword": "var(--signoff-code-keyword)",
          "color-signoff-code-string": "var(--signoff-code-string)",
          "color-signoff-code-number": "var(--signoff-code-number)",
          "color-signoff-code-comment": "var(--signoff-code-comment)",
          "color-signoff-code-punctuation": "var(--signoff-code-punctuation)",
          "radius-signoff": "var(--signoff-radius)",
          "font-signoff-sans": "var(--signoff-font-sans)",
          "font-signoff-mono": "var(--signoff-font-mono)",
          "animate-signoff-shimmer": "signoff-shimmer 2.2s linear infinite",
          "animate-signoff-ping": "signoff-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite",
          "animate-signoff-spin": "signoff-spin 0.9s linear infinite",
          "animate-signoff-blink": "signoff-blink 1.1s steps(2, start) infinite",
          "animate-signoff-enter": "signoff-enter 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) backwards",
          "animate-signoff-indeterminate": "signoff-indeterminate 1.4s ease-in-out infinite",
          "animate-signoff-expand": "signoff-expand 0.22s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-signoff-collapse": "signoff-collapse 0.18s ease-in"
        },
        "light": {
          "signoff-bg": "#ffffff",
          "signoff-surface": "#f6f7f9",
          "signoff-surface-2": "#eef0f3",
          "signoff-border": "#e2e5ea",
          "signoff-border-strong": "#cdd2d9",
          "signoff-fg": "#0d0f12",
          "signoff-fg-muted": "#4b5563",
          "signoff-fg-subtle": "#5f6875",
          "signoff-accent": "#0e7490",
          "signoff-accent-fg": "#155e75",
          "signoff-on-accent": "#ffffff",
          "signoff-hot": "#be185d",
          "signoff-hot-fg": "#9d174d",
          "signoff-on-hot": "#ffffff",
          "signoff-warn": "#b45309",
          "signoff-warn-fg": "#92400e",
          "signoff-ring": "#0e7490",
          "signoff-add-bg": "rgb(8 145 178 / 0.08)",
          "signoff-add-strong": "rgb(8 145 178 / 0.16)",
          "signoff-del-bg": "rgb(190 24 93 / 0.07)",
          "signoff-del-strong": "rgb(190 24 93 / 0.14)",
          "signoff-chart-input": "#0891b2",
          "signoff-chart-output": "#db2777",
          "signoff-code-keyword": "#155e75",
          "signoff-code-string": "#9a3412",
          "signoff-code-number": "#9d174d",
          "signoff-code-comment": "#525b67",
          "signoff-code-punctuation": "#4b5563",
          "signoff-radius": "0.75rem",
          "signoff-font-sans": "var(--font-sans, var(--font-geist-sans, ui-sans-serif, system-ui, sans-serif))",
          "signoff-font-mono": "var(--font-mono, var(--font-geist-mono, ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace))"
        },
        "dark": {
          "signoff-bg": "#0d0f12",
          "signoff-surface": "#181c22",
          "signoff-surface-2": "#1e232a",
          "signoff-border": "#262b33",
          "signoff-border-strong": "#353c47",
          "signoff-fg": "#e8eaed",
          "signoff-fg-muted": "#a1a9b4",
          "signoff-fg-subtle": "#8b94a0",
          "signoff-accent": "#22d3ee",
          "signoff-accent-fg": "#67e8f9",
          "signoff-on-accent": "#0d0f12",
          "signoff-hot": "#f0468a",
          "signoff-hot-fg": "#f472a8",
          "signoff-on-hot": "#0d0f12",
          "signoff-warn": "#fbbf24",
          "signoff-warn-fg": "#fcd34d",
          "signoff-ring": "#67e8f9",
          "signoff-add-bg": "rgb(34 211 238 / 0.08)",
          "signoff-add-strong": "rgb(34 211 238 / 0.14)",
          "signoff-del-bg": "rgb(240 70 138 / 0.08)",
          "signoff-del-strong": "rgb(240 70 138 / 0.26)",
          "signoff-chart-input": "#11a2bc",
          "signoff-chart-output": "#f0468a",
          "signoff-code-keyword": "#67e8f9",
          "signoff-code-string": "#f5c27a",
          "signoff-code-number": "#f9a8d4",
          "signoff-code-comment": "#a1a9b4",
          "signoff-code-punctuation": "#a1a9b4"
        }
      },
      "css": {
        "@keyframes signoff-shimmer": {
          "from": {
            "background-position": "200% 0"
          },
          "to": {
            "background-position": "-200% 0"
          }
        },
        "@keyframes signoff-ping": {
          "0%": {
            "transform": "scale(1)",
            "opacity": "0.7"
          },
          "80%, 100%": {
            "transform": "scale(2.2)",
            "opacity": "0"
          }
        },
        "@keyframes signoff-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes signoff-blink": {
          "to": {
            "visibility": "hidden"
          }
        },
        "@keyframes signoff-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "none"
          }
        },
        "@keyframes signoff-expand": {
          "from": {
            "height": "0",
            "opacity": "0"
          },
          "to": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          }
        },
        "@keyframes signoff-collapse": {
          "from": {
            "height": "var(--radix-collapsible-content-height)",
            "opacity": "1"
          },
          "to": {
            "height": "0",
            "opacity": "0"
          }
        },
        "@keyframes signoff-indeterminate": {
          "0%": {
            "transform": "translateX(-100%)"
          },
          "100%": {
            "transform": "translateX(250%)"
          }
        }
      },
      "meta": {
        "version": "0.14.0",
        "unreleasedChanges": false
      }
    }
  ]
}
