@next-bricks/markdown 1.13.10 → 1.13.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[1838],{220:(e,n,t)=>{t.d(n,{b:()=>m});var r=t(4269),o=t(4650),a=t(6271),s=t(4969);let i;let d=0;const l=new DOMParser,c=new XMLSerializer;function m(){return async e=>{const n=[];(0,r.YR)(e,"element",((e,r,m)=>{m&&"element"===m.type&&"pre"===m.tagName&&"code"===e.tagName&&"mermaid"===(0,s.G)(e)&&n.push((async()=>{const n="mermaid-"+d++;let s;try{const r=await(i||(i=async function(){const e=(await t.e(7367).then(t.bind(t,7367))).default;return e.initialize({startOnLoad:!1,theme:"base",themeVariables:{fontSize:"14px",lineColor:"#979797",primaryColor:"#DCD2F3",primaryBorderColor:"#0000001A"}}),e}(),i));s=(await r.render(n,(0,o.d)(e))).svg}catch(e){var h;return console.error("Error rendering mermaid diagram:",e),void(null===(h=document.getElementById(n))||void 0===h||h.remove())}const p=l.parseFromString(s,"text/html"),u=p.querySelector("svg"),b=p.createElementNS("http://www.w3.org/2000/svg","defs");b.innerHTML=`<linearGradient id="linear-gradient-${n}" x1="0%" y1="0%" x2="0%" y2="100%">\n <stop offset="0%" stop-color="#F0EBFA" />\n <stop offset="75%" stop-color="#DED4F4" />\n <stop offset="100%" stop-color="#C5C7FA" />\n</linearGradient>`,u.prepend(b);const g=p.createElementNS("http://www.w3.org/2000/svg","style");g.textContent=`\n#${n} .node rect,\n#${n} .node circle,\n#${n} .node ellipse,\n#${n} .node polygon,\n#${n} .node path {\n fill: url(#linear-gradient-${n});\n}\n#${n} .node rect {\n rx: 4;\n ry: 4;\n}\n#${n} .labelBkg {\n background-color: #f5f8ff;\n}\n#${n} .edgeLabel,\n#${n} .edgeLabel p {\n background-color: transparent;\n}\n#${n} .edgeLabel {\n color: #8c8c8c;\n font-size: 12px;\n}\n`,u.appendChild(g);const k=c.serializeToString(u),w=(0,a.f)(k,{fragment:!0}).children;m.children.splice(r,1,...w),m.properties.className=(m.properties.className||[]).concat("mermaid")})())})),await Promise.all(n)}}},3086:(e,n,t)=>{var r=t(2591),o=t.n(r),a=t(1740),s=t.n(a),i=t(8128),d=t.n(i),l=t(855),c=t.n(l),m=t(3051),h=t.n(m),p=t(3656),u=t.n(p),b=t(7148),g={};g.styleTagTransform=u(),g.setAttributes=c(),g.insert=d().bind(null,"head"),g.domAPI=s(),g.insertStyleElement=h(),o()(b.A,g),b.A&&b.A.locals&&b.A.locals},4537:(e,n,t)=>{t.d(n,{DA:()=>b});var r=t(2142),o=t(6948),a=t(2147),s=t(9755);const i={json:()=>t.e(4190).then(t.bind(t,4190)),javascript:()=>t.e(5065).then(t.bind(t,5065)),js:()=>t.e(5065).then(t.bind(t,5065)),typescript:()=>t.e(2449).then(t.bind(t,2449)),ts:()=>t.e(2449).then(t.bind(t,2449)),html:()=>Promise.all([t.e(5065),t.e(2593),t.e(4735)]).then(t.bind(t,4735)),"html-derivative":()=>Promise.all([t.e(5065),t.e(2593),t.e(4735),t.e(9251)]).then(t.bind(t,9251)),xml:()=>t.e(8263).then(t.bind(t,8263)),css:()=>t.e(2593).then(t.bind(t,2593)),markdown:()=>t.e(8311).then(t.bind(t,8311)),md:()=>t.e(8311).then(t.bind(t,8311)),mermaid:()=>t.e(8757).then(t.bind(t,8757)),mmd:()=>t.e(8757).then(t.bind(t,8757)),jsx:()=>t.e(1136).then(t.bind(t,8755)),tsx:()=>t.e(4609).then(t.bind(t,4609)),shellscript:()=>t.e(1215).then(t.bind(t,1215)),bash:()=>t.e(1215).then(t.bind(t,1215)),sh:()=>t.e(1215).then(t.bind(t,1215)),shell:()=>t.e(1215).then(t.bind(t,1215)),zsh:()=>t.e(1215).then(t.bind(t,1215)),python:()=>t.e(2510).then(t.bind(t,2510)),py:()=>t.e(2510).then(t.bind(t,2510)),go:()=>t.e(5498).then(t.bind(t,5498)),sql:()=>t.e(1120).then(t.bind(t,1120))},d={"light-plus":r.A,"dark-plus":o.A},l=(0,a.q6)({langs:i,themes:d,engine:()=>(0,s.Mk)(t.e(5032).then(t.bind(t,5032)))}),{codeToHtml:c,codeToHast:m,codeToTokensBase:h,codeToTokens:p,codeToTokensWithThemes:u,getSingletonHighlighter:b,getLastGrammarState:g}=(0,a.CZ)(l,{guessEmbeddedLanguages(e,n){if("markdown"===n||"md"===n)return["mermaid"]}})},4724:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(6758),o=t.n(r),a=t(935),s=t.n(a)()(o());s.push([e.id,":host{display:block}:host([hidden]){display:none}:not(pre) > code{color:var(--eo-markdown-display-code-color);background:var(--eo-markdown-display-code-background);margin:0 2px;padding:1px 6px;white-space:nowrap;border-radius:3px}blockquote{border-left:6px solid var(--eo-markdown-display-blockquote-border-color);padding:0 1em}:not(blockquote) > blockquote{margin-left:0;margin-right:0}",""]);const i=s.toString()},4969:(e,n,t)=>{function r(e){const n=e.properties.className||[];for(const e of n)if("language-"===e.slice(0,9))return e.slice(9).toLowerCase();return null}t.d(n,{G:()=>r})},7148:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(6758),o=t.n(r),a=t(935),s=t.n(a)()(o());s.push([e.id,':root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme="dark"],\nhtml[data-theme="dark-v2"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}',""]);const i=s},7384:(e,n,t)=>{t.d(n,{N:()=>u});var r=t(8769),o=t(1085),a=t(1420),s=t(5301),i=t(2967),d=t(3730),l=t(1846),c=t(5619),m=t(4537),h=t(220);const p={Fragment:o.Fragment,jsx:o.jsx,jsxs:o.jsxs};function u(e){var n;let{content:t,components:o,shiki:u}=e;const[b,g]=(0,r.useState)(null),k=null!==(n=null==u?void 0:u.theme)&&void 0!==n?n:"dark-plus";return(0,r.useEffect)((()=>{let e=!1;return(async()=>{try{const n=await(0,m.DA)({themes:[k]});if(e)return;const r=await(0,a.l)().use(s.A).use(i.A).use(d.A).use(h.b).use(c.A,n,{theme:k,lazy:!0,defaultLanguage:"text"}).use(l.A,{...p,passNode:!0,components:o}).process(t);e||g(r.result)}catch(n){e||(console.error("Convert markdown failed:",n),g(null))}})(),()=>{e=!0}}),[o,t,k]),b}},7471:(e,n,t)=>{t.r(n),t.d(n,{MarkdownDisplay:()=>x});var r,o=t(918),a=t(6121),s=t(829),i=t(2740),d=t(8769),l=t.n(d),c=t(870),m=t(981),h=t(4986),p=(t(4419),t(7384)),u=t(4724);let b,g,k,w,f;t(3086);const y=(0,m.wrapBrick)("presentational.code-wrapper"),{defineElement:v,property:A}=(0,c.createDecorators)();let x;var T=new WeakMap,C=new WeakMap;class E extends m.ReactNextElement{constructor(){super(...arguments),(0,o.A)(this,T,g(this)),(0,o.A)(this,C,(k(this),w(this))),f(this)}get content(){return(0,s.A)(T,this)}set content(e){(0,a.A)(T,this,e)}get themeVariant(){return(0,s.A)(C,this)}set themeVariant(e){(0,a.A)(C,this,e)}render(){return l().createElement(N,{content:this.content,themeVariant:this.themeVariant})}}function N(e){let{content:n,themeVariant:t}=e;const r=(0,h.useCurrentTheme)(),o=(0,d.useMemo)((()=>({theme:"dark-v2"===r?"dark-plus":"light-plus"})),[r]),a=(0,d.useMemo)((()=>({pre:function(e){var n;let{node:r,...o}=e;return l().createElement(y,{preProps:o,showCopyButton:!(null===(n=o.className)||void 0===n||!n.includes("shiki")),themeVariant:t,exportparts:"pre, copy, mermaid"})}})),[t]);return l().createElement(p.N,{content:n,components:a,shiki:o})}r=E,({e:[g,k,w,f],c:[x,b]}=(0,i.A)(r,[v("eo-markdown-display",{styleTexts:[u.A]})],[[A(),1,"content"],[A(),1,"themeVariant"]],0,void 0,m.ReactNextElement)),b()}}]);
2
- //# sourceMappingURL=eo-markdown-display.8564f750.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/eo-markdown-display.8564f750.js","mappings":"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","sources":["webpack:///../../src/rehypeMermaid.ts","webpack:///./src/markdown-display/host-context.css?6555","webpack:///../../src/index.ts","webpack:///./src/markdown-display/styles.shadow.css","webpack:///../../src/utils.ts","webpack:///./src/markdown-display/host-context.css","webpack:///../../src/MarkdownComponent.tsx","webpack:///./src/markdown-display/index.tsx"],"sourcesContent":["import { visit } from \"unist-util-visit\";\nimport { toString } from \"hast-util-to-string\";\nimport type { Element } from \"hast\";\nimport type Mermaid from \"mermaid\";\nimport { fromHtmlIsomorphic } from \"hast-util-from-html-isomorphic\";\nimport { getCodeLanguage } from \"./utils.js\";\n\nlet mermaidPromise: Promise<typeof Mermaid> | undefined;\n\nfunction loadMermaid() {\n if (mermaidPromise) {\n return mermaidPromise;\n }\n mermaidPromise = doLoadMermaid();\n return mermaidPromise;\n}\n\nasync function doLoadMermaid() {\n const mermaid = (await import(\"mermaid\")).default;\n mermaid.initialize({\n startOnLoad: false,\n theme: \"base\",\n themeVariables: {\n fontSize: \"14px\",\n lineColor: \"#979797\",\n primaryColor: \"#DCD2F3\",\n primaryBorderColor: \"#0000001A\",\n },\n });\n return mermaid;\n}\n\nlet count = 0;\n\nconst parser = new DOMParser();\nconst serializer = new XMLSerializer();\n\n// Reference https://github.com/remcohaszing/rehype-mermaid\nexport function rehypeMermaid() {\n return async (tree: Element) => {\n const promises: Promise<void>[] = [];\n\n visit(tree, \"element\", (node, index, parent) => {\n if (\n !parent ||\n parent.type !== \"element\" ||\n parent.tagName !== \"pre\" ||\n node.tagName !== \"code\"\n ) {\n return;\n }\n\n const lang = getCodeLanguage(node);\n\n if (lang !== \"mermaid\") {\n return;\n }\n\n promises.push(\n (async () => {\n const id = `mermaid-${count++}`;\n let svg: string;\n try {\n const mermaid = await loadMermaid();\n const result = await mermaid.render(id, toString(node));\n svg = result.svg;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error rendering mermaid diagram:\", error);\n document.getElementById(id)?.remove();\n return;\n }\n const root = parser.parseFromString(svg, \"text/html\");\n const svgElement = root.querySelector(\"svg\") as SVGSVGElement;\n\n const defs = root.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"defs\"\n );\n defs.innerHTML = `<linearGradient id=\"linear-gradient-${id}\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n <stop offset=\"0%\" stop-color=\"#F0EBFA\" />\n <stop offset=\"75%\" stop-color=\"#DED4F4\" />\n <stop offset=\"100%\" stop-color=\"#C5C7FA\" />\n</linearGradient>`;\n svgElement.prepend(defs);\n\n const style = root.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"style\"\n );\n style.textContent = `\n#${id} .node rect,\n#${id} .node circle,\n#${id} .node ellipse,\n#${id} .node polygon,\n#${id} .node path {\n fill: url(#linear-gradient-${id});\n}\n#${id} .node rect {\n rx: 4;\n ry: 4;\n}\n#${id} .labelBkg {\n background-color: #f5f8ff;\n}\n#${id} .edgeLabel,\n#${id} .edgeLabel p {\n background-color: transparent;\n}\n#${id} .edgeLabel {\n color: #8c8c8c;\n font-size: 12px;\n}\n`;\n svgElement.appendChild(style);\n\n const modifiedSvg = serializer.serializeToString(svgElement);\n\n const replacements = fromHtmlIsomorphic(modifiedSvg, {\n fragment: true,\n }).children as Element[];\n parent.children.splice(index!, 1, ...replacements);\n parent.properties.className = (\n (parent.properties.className as string[]) || []\n ).concat(\"mermaid\");\n })()\n );\n });\n\n await Promise.all(promises);\n };\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","// istanbul ignore file\n\n/*\nnpx shiki-codegen \\\n --langs json,javascript,typescript,html,html-derivative,xml,css,markdown,mermaid,jsx,tsx,shellscript,python,go,sql \\\n --themes light-plus,dark-plus \\\n --engine oniguruma \\\n ./shared/shiki/src/bundle.ts\n*/\n\nimport lightPlus from \"@shikijs/themes/light-plus\";\nimport darkPlus from \"@shikijs/themes/dark-plus\";\n\n/* Generate by @shikijs/codegen */\nimport type {\n DynamicImportLanguageRegistration,\n HighlighterGeneric,\n ThemeInput,\n} from \"@shikijs/types\";\nimport {\n createSingletonShorthands,\n createdBundledHighlighter,\n} from \"@shikijs/core\";\nimport { createOnigurumaEngine } from \"@shikijs/engine-oniguruma\";\n\ntype BundledLanguage =\n | \"json\"\n | \"javascript\"\n | \"js\"\n | \"typescript\"\n | \"ts\"\n | \"html\"\n | \"html-derivative\"\n | \"xml\"\n | \"css\"\n | \"markdown\"\n | \"md\"\n | \"mermaid\"\n | \"mmd\"\n | \"jsx\"\n | \"tsx\"\n | \"shellscript\"\n | \"bash\"\n | \"sh\"\n | \"shell\"\n | \"zsh\"\n | \"python\"\n | \"py\"\n | \"go\"\n | \"sql\";\ntype BundledTheme = \"light-plus\" | \"dark-plus\";\ntype Highlighter = HighlighterGeneric<BundledLanguage, BundledTheme>;\n\nconst bundledLanguages = {\n json: () => import(\"@shikijs/langs/json\"),\n javascript: () => import(\"@shikijs/langs/javascript\"),\n js: () => import(\"@shikijs/langs/javascript\"),\n typescript: () => import(\"@shikijs/langs/typescript\"),\n ts: () => import(\"@shikijs/langs/typescript\"),\n html: () => import(\"@shikijs/langs/html\"),\n \"html-derivative\": () => import(\"@shikijs/langs/html-derivative\"),\n xml: () => import(\"@shikijs/langs/xml\"),\n css: () => import(\"@shikijs/langs/css\"),\n markdown: () => import(\"@shikijs/langs/markdown\"),\n md: () => import(\"@shikijs/langs/markdown\"),\n mermaid: () => import(\"@shikijs/langs/mermaid\"),\n mmd: () => import(\"@shikijs/langs/mermaid\"),\n jsx: () => import(\"@shikijs/langs/jsx\"),\n tsx: () => import(\"@shikijs/langs/tsx\"),\n shellscript: () => import(\"@shikijs/langs/shellscript\"),\n bash: () => import(\"@shikijs/langs/shellscript\"),\n sh: () => import(\"@shikijs/langs/shellscript\"),\n shell: () => import(\"@shikijs/langs/shellscript\"),\n zsh: () => import(\"@shikijs/langs/shellscript\"),\n python: () => import(\"@shikijs/langs/python\"),\n py: () => import(\"@shikijs/langs/python\"),\n go: () => import(\"@shikijs/langs/go\"),\n sql: () => import(\"@shikijs/langs/sql\"),\n} as Record<BundledLanguage, DynamicImportLanguageRegistration>;\n\nconst bundledThemes = {\n \"light-plus\": lightPlus,\n \"dark-plus\": darkPlus,\n} as Record<BundledTheme, ThemeInput>;\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter<\n BundledLanguage,\n BundledTheme\n>({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createOnigurumaEngine(import(\"shiki/wasm\")),\n});\n\nconst {\n codeToHtml,\n codeToHast,\n codeToTokensBase,\n codeToTokens,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState,\n} = /* @__PURE__ */ createSingletonShorthands<BundledLanguage, BundledTheme>(\n createHighlighter,\n {\n guessEmbeddedLanguages(code, lang) {\n if (lang === \"markdown\" || lang === \"md\") {\n return [\"mermaid\"];\n }\n },\n }\n);\n\nexport {\n bundledLanguages,\n bundledThemes,\n codeToHast,\n codeToHtml,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getLastGrammarState,\n getSingletonHighlighter,\n};\nexport type { BundledLanguage, BundledTheme, Highlighter };\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:not(pre) > code{color:var(--eo-markdown-display-code-color);background:var(--eo-markdown-display-code-background);margin:0 2px;padding:1px 6px;white-space:nowrap;border-radius:3px}blockquote{border-left:6px solid var(--eo-markdown-display-blockquote-border-color);padding:0 1em}:not(blockquote) > blockquote{margin-left:0;margin-right:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import type { Element } from \"hast\";\n\nexport function getCodeLanguage(node: Element) {\n const className = (node.properties.className as string[]) || [];\n\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === \"language-\") {\n return classListItem.slice(9).toLowerCase();\n }\n }\n\n return null;\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-markdown-display-code-color:#b30056;--eo-markdown-display-code-background:#ffe6ec;--eo-markdown-display-blockquote-border-color:#bcc0c5}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--eo-markdown-display-code-color:#f3679a;--eo-markdown-display-code-background:var(--color-fill-bg-base-1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { useEffect, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\nimport type { Components } from \"hast-util-to-jsx-runtime\";\nimport rehypeShikiFromHighlighter from \"@shikijs/rehype/core\";\nimport { getSingletonHighlighter } from \"@next-shared/shiki\";\nimport { rehypeMermaid } from \"./rehypeMermaid.js\";\n\nconst production = { Fragment, jsx, jsxs };\n\nexport interface MarkdownComponentProps {\n content?: string;\n components?: Partial<Components>;\n shiki?: {\n /** @default \"dark-plus\" */\n theme?: \"light-plus\" | \"dark-plus\";\n };\n}\n\n// Reference https://github.com/remarkjs/react-remark/blob/39553e5f5c9e9b903bebf261788ff45130668de0/src/index.ts\nexport function MarkdownComponent({\n content,\n components,\n shiki,\n}: MarkdownComponentProps): JSX.Element | null {\n const [reactContent, setReactContent] = useState<JSX.Element | null>(null);\n const theme = shiki?.theme ?? \"dark-plus\";\n\n useEffect(() => {\n let ignore = false;\n (async () => {\n try {\n const highlighter = await getSingletonHighlighter({\n themes: [theme],\n });\n if (ignore) {\n return;\n }\n const vFile = await unified()\n .use(remarkParse)\n .use(remarkGfm)\n .use(remarkToRehype)\n .use(rehypeMermaid)\n .use(rehypeShikiFromHighlighter, highlighter as any, {\n theme,\n lazy: true,\n defaultLanguage: \"text\",\n })\n .use(rehypeReact, {\n ...production,\n passNode: true,\n components,\n } as RehypeReactOptions)\n .process(content);\n if (!ignore) {\n setReactContent(vFile.result);\n }\n } catch (error) {\n if (!ignore) {\n // eslint-disable-next-line no-console\n console.error(\"Convert markdown failed:\", error);\n setReactContent(null);\n }\n }\n })();\n return () => {\n ignore = true;\n };\n }, [components, content, theme]);\n\n return reactContent;\n}\n","import React, { useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport \"@next-core/theme\";\nimport {\n MarkdownComponent,\n type MarkdownComponentProps,\n} from \"@next-shared/markdown\";\nimport {\n CodeWrapper,\n type CodeWrapperProps,\n} from \"@next-bricks/presentational/code-wrapper\";\nimport styleText from \"./styles.shadow.css\";\nimport \"./host-context.css\";\n\nconst WrappedCodeWrapper = wrapBrick<CodeWrapper, CodeWrapperProps>(\n \"presentational.code-wrapper\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface MarkdownDisplayProps {\n content?: string;\n themeVariant?: \"default\" | \"elevo\";\n}\n\n/**\n * 用于展示 markdown 内容的构件。\n */\nexport\n@defineElement(\"eo-markdown-display\", {\n styleTexts: [styleText],\n})\nclass MarkdownDisplay extends ReactNextElement implements MarkdownDisplayProps {\n @property()\n accessor content: string | undefined;\n\n /**\n * 主题变体\n */\n @property()\n accessor themeVariant: \"default\" | \"elevo\" | undefined;\n\n render() {\n return (\n <MarkdownDisplayComponent\n content={this.content}\n themeVariant={this.themeVariant}\n />\n );\n }\n}\n\nfunction MarkdownDisplayComponent({\n content,\n themeVariant,\n}: MarkdownDisplayProps) {\n const systemTheme = useCurrentTheme();\n const shikiOptions = useMemo<MarkdownComponentProps[\"shiki\"]>(\n () => ({\n theme: systemTheme === \"dark-v2\" ? \"dark-plus\" : \"light-plus\",\n }),\n [systemTheme]\n );\n\n const components = useMemo<MarkdownComponentProps[\"components\"]>(\n () => ({\n pre: function Pre({ node, ...props }) {\n return (\n <WrappedCodeWrapper\n preProps={props}\n showCopyButton={!!props.className?.includes(\"shiki\")}\n themeVariant={themeVariant}\n exportparts=\"pre, copy, mermaid\"\n />\n );\n },\n }),\n [themeVariant]\n );\n\n return (\n <MarkdownComponent\n content={content}\n components={components}\n shiki={shikiOptions}\n />\n );\n}\n"],"names":["mermaidPromise","count","parser","DOMParser","serializer","XMLSerializer","rehypeMermaid","async","promises","visit","tree","node","index","parent","type","tagName","getCodeLanguage","push","id","svg","mermaid","default","initialize","startOnLoad","theme","themeVariables","fontSize","lineColor","primaryColor","primaryBorderColor","doLoadMermaid","render","toString","error","_document$getElementB","console","document","getElementById","remove","root","parseFromString","svgElement","querySelector","defs","createElementNS","innerHTML","prepend","style","textContent","appendChild","modifiedSvg","serializeToString","replacements","fromHtmlIsomorphic","fragment","children","splice","properties","className","concat","Promise","all","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","bundledLanguages","json","javascript","js","typescript","ts","html","html-derivative","xml","css","markdown","md","mmd","jsx","tsx","shellscript","bash","sh","shell","zsh","python","py","go","sql","bundledThemes","lightPlus","darkPlus","createHighlighter","createdBundledHighlighter","langs","themes","engine","createOnigurumaEngine","codeToHtml","codeToHast","codeToTokensBase","codeToTokens","codeToTokensWithThemes","getSingletonHighlighter","getLastGrammarState","createSingletonShorthands","guessEmbeddedLanguages","code","lang","___CSS_LOADER_EXPORT___","module","classListItem","slice","toLowerCase","production","Fragment","jsxs","MarkdownComponent","_ref","_shiki$theme","content","components","shiki","reactContent","setReactContent","useState","useEffect","ignore","highlighter","vFile","unified","use","remarkParse","remarkGfm","remarkToRehype","rehypeShikiFromHighlighter","lazy","defaultLanguage","rehypeReact","passNode","process","result","WrappedCodeWrapper","wrapBrick","defineElement","property","createDecorators","_MarkdownDisplay","_A","WeakMap","_B","MarkdownDisplay","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_content","_init_extra_content","_init_themeVariant","_init_extra_themeVariant","_classPrivateFieldGet","v","_classPrivateFieldSet","themeVariant","React","MarkdownDisplayComponent","this","systemTheme","useCurrentTheme","shikiOptions","useMemo","pre","_ref2","_props$className","props","preProps","showCopyButton","includes","exportparts","_MarkdownDisplay2","e","c","_initClass","_applyDecs","styleTexts","styleText"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_markdown=globalThis.webpackChunk_next_bricks_markdown||[]).push([[2967],{7196:(e,t,n)=>{n.r(t),n.d(t,{MarkdownEditor:()=>me,MarkdownEditorComponent:()=>Me});var a,i=n(4586),o=n(4635),l=n(918),r=n(6902),s=n(5536),c=n(6121),u=n(829),d=n(2740),h=n(9575),m=n(8769),k=n.n(m),p=n(870),b=n(981),y=(n(4419),n(998)),A=n(1408),g=n(7647),w=n(2466),v=n(1854),E=n(9760),f=n(135),C=n(6486),M=n(6512),N=n(8653),S=n(537),W=n(5435),j=n(9796),I=n(3971),_=n(7082),x=n(1151),T=n(4557),q=n(426),D=n(235),U=n(3373),V=n.n(U);let $,B,F,O,G,J,K,P,X,L,Q,R,Y,Z,z,H,ee,te,ne,ae,ie,oe,le;const re=(0,b.wrapBrick)("eo-form-item"),se=(0,b.wrapBrick)("eo-icon"),ce=e=>{let{icon:t,onClick:n,tooltip:a}=e;return k().createElement("div",{className:"menu-btn-box",onMouseDown:e=>{null==n||n(),e.preventDefault()}},k().createElement(se,(0,h.A)({style:{verticalAlign:"middle"}},t)),a&&k().createElement("div",{className:"menuIconTooltip"},a))},{defineElement:ue,property:de,event:he}=(0,p.createDecorators)();let me;var ke=new WeakMap,pe=new WeakMap,be=new WeakMap,ye=new WeakMap,Ae=new WeakMap,ge=new WeakMap,we=new WeakMap,ve=new WeakMap,Ee=new WeakSet,fe=new WeakMap;class Ce extends q.N{constructor(){super(...arguments),(0,o.A)(this,Ee),(0,l.A)(this,ke,B(this)),(0,l.A)(this,pe,(F(this),O(this))),(0,l.A)(this,be,(G(this),J(this))),(0,l.A)(this,ye,(K(this),P(this))),(0,l.A)(this,Ae,(X(this),L(this))),(0,l.A)(this,ge,(Q(this),R(this))),(0,l.A)(this,we,(Y(this),Z(this))),(0,l.A)(this,ve,(z(this),H(this))),(0,i.A)(this,"handleUploadImage",(ne(this),e=>{(0,s.A)(Ee,this,ee).emit(e)})),(0,l.A)(this,fe,ae(this)),(0,i.A)(this,"handleMarkdownValueChange",(le(this),e=>{var t;null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),this.value=e,(0,s.A)(Ee,this,ie).emit(e)}))}get name(){return(0,u.A)(ke,this)}set name(e){(0,c.A)(ke,this,e)}get label(){return(0,u.A)(pe,this)}set label(e){(0,c.A)(pe,this,e)}get required(){return(0,u.A)(be,this)}set required(e){(0,c.A)(be,this,e)}get value(){return(0,u.A)(ye,this)}set value(e){(0,c.A)(ye,this,e)}get bucketName(){return(0,u.A)(Ae,this)}set bucketName(e){(0,c.A)(Ae,this,e)}get readonly(){return(0,u.A)(ge,this)}set readonly(e){(0,c.A)(ge,this,e)}get containerStyle(){return(0,u.A)(we,this)}set containerStyle(e){(0,c.A)(we,this,e)}render(){return k().createElement(w.pb,null,k().createElement(I.vo,null,k().createElement(Me,{formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,curElement:this,bucketName:this.bucketName,value:this.value,readonly:this.readonly,containerStyle:this.containerStyle,onUploadImage:this.handleUploadImage,onMarkdownValueChange:this.handleMarkdownValueChange})))}}function Me(e){const{bucketName:t,containerStyle:n,value:a,formElement:i,readonly:o,onUploadImage:l,onMarkdownValueChange:r}=e,[s,c]=(0,m.useState)(!1),u=async(n,a)=>{const i=[];let o=[];for(let e=0;e<n.length;e++){const t=n.item(e);t&&t.type.includes("image")&&i.push(t)}try{o=await Promise.all(i.map((async n=>{const i=await(0,A.i)(t,{file:n,width:0,height:0}),o=(r=null==i?void 0:i.objectName,`/next/api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${e.bucketName}/object/${r}`);var r;const s=n.name;return l&&l({name:s,src:o}),a.nodes.image.createAndFill({src:o,alt:s})})))}catch(e){console.error("upload failed:",e)}return o},d=(0,I.Uv)(),p=(0,I.rJ)(),b=(0,I.$X)(),y=(0,m.useMemo)((()=>o?[]:[S.Te,x.EI,x.nk,e=>async()=>{e.set(x.EI.key,{view:d({component:x.ST})})},(0,x.jp)(p)].flat()),[o,d,p]),{get:q}=(0,w.hG)((e=>g.KE.make().config((n=>{n.set(g.k,e),n.update(g.QM,(e=>({...e,editable:()=>!o}))),a&&n.set(g.CI,a),n.get(N.Ob).markdownUpdated(((e,t,n)=>{r&&r(t)})).focus((()=>{c(!0)})).blur((()=>{c(!1)})),t&&n.update(C.wu.key,(e=>({...e,uploader:u}))),n.update(j.mS.key,(e=>({...e,configureRefractor:()=>_.L})))})).config(E.E).use(N.F_).use(v.PD).use(f.b6).use(S.Te).use(W.pZ).use(C.Se).use(y).use(j.Wj).use(o?[]:(0,M.m5)(v.Ay.node,(()=>b({component:T.N}))))),[]);function U(e,t){var n;return null===(n=q())||void 0===n?void 0:n.action((0,M.KD)(e,t))}(0,m.useEffect)((()=>{var e;i&&void 0!==a&&!s&&(null===(e=q())||void 0===e||e.action((0,M.yh)(a)))}),[q(),a]);const $=[{icon:{lib:"antd",icon:"undo"},onClick:()=>U(f.Eb.key),tooltip:"撤销"},{icon:{lib:"antd",icon:"redo"},onClick:()=>U(f.eD.key),tooltip:"重做"},{icon:{lib:"antd",icon:"bold"},onClick:()=>U(v.vY.key),tooltip:"粗体"},{icon:{lib:"antd",icon:"italic"},onClick:()=>U(v.e0.key),tooltip:"斜体"},{icon:{lib:"antd",icon:"strikethrough"},onClick:()=>U(S.$l.key),tooltip:"删除线"},{icon:{lib:"antd",icon:"table"},onClick:()=>U(S.f$.key),tooltip:"表格"},{icon:{lib:"antd",icon:"unordered-list"},onClick:()=>U(v.Xk.key),tooltip:"无序列表"},{icon:{lib:"antd",icon:"ordered-list"},onClick:()=>U(v.Ej.key),tooltip:"有序列表"},{icon:{lib:"fa",icon:"quote-right"},onClick:()=>U(v.oO.key),tooltip:"块引用"}];return k().createElement(re,(0,h.A)({exportparts:"message"},(0,D.v)(e)),k().createElement("div",{className:V()("markdown-container",{readonly:o}),style:n},!o&&k().createElement("div",{className:"menu-container-outter"},k().createElement("div",{className:"menu-container-inner prose"},$.map((e=>k().createElement(ce,(0,h.A)({},e,{key:JSON.stringify(e.icon)})))))),k().createElement("div",{className:"editor-container"},k().createElement(w.y5,null))))}a=Ce,({e:[B,F,O,G,J,K,P,X,L,Q,R,Y,Z,z,H,ee,te,ne,ae,ie,oe,le],c:[me,$]}=(0,d.A)(a,[ue("eo-markdown-editor",{styleTexts:[y.A],alias:["markdown.markdown-editor"]})],[[de(),1,"name"],[de(),1,"label"],[de({type:Boolean}),1,"required"],[de(),1,"value"],[de(),1,"bucketName"],[de({type:Boolean}),1,"readonly"],[de({attribute:!1}),1,"containerStyle"],[he({type:"image.upload"}),1,"uploadImage",e=>(0,u.A)(ve,e),(e,t)=>(0,c.A)(ve,e,t)],[he({type:"markdown.value.change"}),1,"markdownValueChange",e=>(0,u.A)(fe,e),(e,t)=>(0,c.A)(fe,e,t)]],0,(e=>Ee.has((0,r.A)(e))),q.N)),$()}}]);
2
- //# sourceMappingURL=eo-markdown-editor.48f003e3.js.map