import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter' import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism' import { useCopyToClipboard } from '../hooks/useCopyToClipboard' // Map our common short names to Prism language ids const LANG_ALIASES = { jsx: 'jsx', tsx: 'tsx', js: 'javascript', javascript: 'javascript', ts: 'typescript', typescript: 'typescript', py: 'python', python: 'python', sh: 'bash', shell: 'bash', bash: 'bash', zsh: 'bash', html: 'markup', xml: 'markup', svg: 'markup', css: 'css', json: 'json', yaml: 'yaml', yml: 'yaml', sql: 'sql', md: 'markdown', markdown: 'markdown', } export default function CodeBlock({ lang, children, dense = false }) { const code = String(children || '').replace(/\n$/, '') const language = LANG_ALIASES[(lang || '').toLowerCase()] || 'text' const { copied, copy } = useCopyToClipboard() return (