{"version":3,"file":"index.cjs","names":["IconButton","CheckCheck","Copy","SyntaxHighlighter","vscDarkPlus"],"sources":["../../../src/components/CodeBlock/CodeBlock.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { CheckCheck, Copy } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Prism as SyntaxHighlighter } from \"react-syntax-highlighter\";\nimport { vscDarkPlus } from \"react-syntax-highlighter/dist/cjs/styles/prism\";\nimport { IconButton } from \"../IconButton\";\n\nexport interface CodeBlockProps {\n  language: string;\n  codeString: string;\n  theme?: {\n    [key: string]: React.CSSProperties;\n  };\n}\n\nexport const CodeBlock = ({ language, codeString, theme }: CodeBlockProps) => {\n  const [copied, setCopied] = useState(false);\n\n  const handleCopy = () => {\n    navigator.clipboard.writeText(codeString);\n    setCopied(true);\n    setTimeout(() => setCopied(false), 1000);\n  };\n\n  return (\n    <div className=\"openui-code-block-wrapper\">\n      <IconButton\n        onClick={handleCopy}\n        variant=\"secondary\"\n        size={\"small\"}\n        className={clsx(\"openui-code-block-copy-button\", {\n          \"openui-code-block-copy-button-copied\": copied,\n        })}\n        icon={copied ? <CheckCheck /> : <Copy />}\n        aria-label={copied ? \"Copied to clipboard\" : \"Copy code\"}\n      />\n      <SyntaxHighlighter\n        style={theme ?? vscDarkPlus}\n        language={language}\n        PreTag=\"div\"\n        className=\"openui-code-block-syntax-highlighter\"\n      >\n        {codeString}\n      </SyntaxHighlighter>\n    </div>\n  );\n};\n"],"mappings":";;;;;;;;;;;AAeA,MAAa,aAAa,EAAE,UAAU,YAAY,YAA4B;CAC5E,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,UAAsB,MAAM;CAE3C,MAAM,mBAAmB;AACvB,YAAU,UAAU,UAAU,WAAW;AACzC,YAAU,KAAK;AACf,mBAAiB,UAAU,MAAM,EAAE,IAAK;;AAG1C,QACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EAAK,WAAU;YAAf,CACE,iBAAA,GAAA,kBAAA,KAACA,oCAAAA,YAAD;GACE,SAAS;GACT,SAAQ;GACR,MAAM;GACN,YAAA,GAAA,KAAA,SAAgB,iCAAiC,EAC/C,wCAAwC,QACzC,CAAC;GACF,MAAM,SAAS,iBAAA,GAAA,kBAAA,KAACC,aAAAA,YAAD,EAAc,CAAA,GAAG,iBAAA,GAAA,kBAAA,KAACC,aAAAA,MAAD,EAAQ,CAAA;GACxC,cAAY,SAAS,wBAAwB;GAC7C,CAAA,EACF,iBAAA,GAAA,kBAAA,KAACC,yBAAAA,OAAD;GACE,OAAO,SAASC,+CAAAA;GACN;GACV,QAAO;GACP,WAAU;aAET;GACiB,CAAA,CAChB"}