UNPKG

@nexusui/components

Version:

These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.

3 lines (2 loc) 997 B
"use client"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),s=require("@mui/material/NoSsr"),t=require("@mui/material/Box"),u=require("clsx"),a=require("../prism/prism.js"),i=require("./CodeCopyButton.js"),l=require("./CodeViewer.style.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=o(s),d=o(t),c=o(u);const m="NexusCodeViewer";exports.CodeViewer=s=>{const{code:t,language:u="tsx",copyButtonHidden:o=!1,showLineNumbers:x=!1,sx:f,...j}=s,p=r.useMemo((()=>a.default(t.trim(),u)),[t,u]);return e.jsxs(d.default,{className:`${m}-root`,"aria-label":"codeViewerLabel",sx:[l.styles.root,...Array.isArray(f)?f:[f]],...j,children:[e.jsx("pre",{className:x?c.default(`${m}-lineNumbers`,"line-numbers"):void 0,children:e.jsx("code",{className:c.default(`${m}-language-${u}`,`language-${u}`),dangerouslySetInnerHTML:{__html:p}})}),o?null:e.jsx(n.default,{children:e.jsx(i.default,{code:t})})]})};