import { useTheme } from "next-themes"; import ShikiHighlighter from "react-shiki"; import { cn } from "@turbostarter/ui"; import type { ReactNode } from "react"; import type { Element } from "react-shiki"; interface CodeHighlightProps { className?: string | undefined; children?: ReactNode | undefined; node?: Element | undefined; inline?: boolean; } export const CodeHighlight = ({ inline = false, className, children, ...props }: CodeHighlightProps) => { const { resolvedTheme } = useTheme(); const match = className?.match(/language-(\w+)/); const language = match ? match[1] : undefined; // eslint-disable-next-line @typescript-eslint/no-base-to-string const code = String(children).trim(); return !inline ? ( {code} ) : ( {children} ); };