{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "ink/use-clipboard",
  "title": "Use Clipboard",
  "description": "Clipboard hook with browser and terminal fallbacks.",
  "dependencies": [
    "ink"
  ],
  "files": [
    {
      "path": "registry/hooks/use-clipboard.ts",
      "content": "import { useStdout } from \"ink\";\nimport * as React from \"react\";\n\nconst clipboardWrite = (text: string) => {\n  const encoded = Buffer.from(text).toString(\"base64\");\n  return `\u001b]52;c;${encoded}\u0007`;\n};\n\nexport const useClipboard = () => {\n  const { stdout } = useStdout();\n  const write = React.useCallback(\n    async (text: string) => {\n      if (\n        typeof navigator !== \"undefined\" &&\n        navigator.clipboard &&\n        typeof navigator.clipboard.writeText === \"function\"\n      ) {\n        await navigator.clipboard.writeText(text);\n        return;\n      }\n\n      if (stdout.isTTY) {\n        stdout.write(clipboardWrite(text));\n        return;\n      }\n      throw new Error(\"Clipboard is unavailable when output is not a TTY\");\n    },\n    [stdout]\n  );\n\n  return { write };\n};\n",
      "type": "registry:hook"
    }
  ],
  "categories": [
    "core"
  ],
  "type": "registry:hook"
}