UNPKG

@tolokoban/ui

Version:

React components with theme

21 lines 2.27 kB
import { jsx as _jsx } from "react/jsx-runtime"; import * as React from "react"; import { Theme } from "../../theme/index.js"; import Styles from "./CodeHighlighter.module.css"; const $ = Theme.classNames; export function ViewCodeHighlighter({ className, children, grammar, }) { const [code, setCode] = React.useState([children]); React.useEffect(() => { setCode(parseCode(children, grammar)); }, [children, grammar]); return (_jsx("div", { className: $.join(className, Styles.CodeHighlighter), children: code.map(buildCode) })); } function buildCode(code, index) { if (typeof code === "string") return code; return (_jsx("span", { className: code.className, children: code.children.map(buildCode) }, `Code.${index}`)); } function parseCode(text, _grammar) { return [text]; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUhpZ2hsaWdodGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZpZXcvQ29kZUhpZ2hsaWdodGVyL0NvZGVIaWdobGlnaHRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRTlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUk1QyxPQUFPLE1BQU0sTUFBTSw4QkFBOEIsQ0FBQTtBQUVqRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO0FBbUIxQixNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFDaEMsU0FBUyxFQUNULFFBQVEsRUFDUixPQUFPLEdBQ2dCO0lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDekMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDdkIsT0FBTyxDQUNILGNBQUssU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FDbEIsQ0FDVCxDQUFBO0FBQ0wsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLElBQWlCLEVBQUUsS0FBYTtJQUMvQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUV6QyxPQUFPLENBQ0gsZUFBNEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLFlBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUR0QixRQUFRLEtBQUssRUFBRSxDQUVuQixDQUNWLENBQUE7QUFDTCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQ2QsSUFBWSxFQUNaLFFBQXFCO0lBRXJCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUNqQixDQUFDIn0=