UNPKG

intlayer-editor

Version:

Integrate the Intlayer visual editor into your Intlayer projects, enabling CMS-like content management with multilingual support.

105 lines (104 loc) 4.43 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vue-BQglRdBF.js","assets/css-BtVcDqlU.js","assets/javascript-DLs729Nk.js","assets/typescript-Cju7JbYj.js","assets/json-D07AUpjp.js","assets/html-derivative-Cswrtqyq.js","assets/html-BOjX3v2Q.js","assets/bundle-web-CNJDzNQN.js","assets/index-DqbmCrrm.js","assets/index-xMTI_9fM.css"])))=>i.map(i=>d[i]); import { r as reactExports, j as jsxRuntimeExports, C as CodeDefault, _ as __vitePreload } from "./index-DqbmCrrm.js"; const languageCache = /* @__PURE__ */ new Map(); const themeCache = /* @__PURE__ */ new Map(); const loadLanguage = async (lang) => { if (languageCache.has(lang)) return languageCache.get(lang); let languageModule; switch (lang) { case "typescript": case "ts": languageModule = await __vitePreload(() => import("./typescript-Cju7JbYj.js").then((n) => n.b), true ? [] : void 0); break; case "javascript": case "js": languageModule = await __vitePreload(() => import("./javascript-DLs729Nk.js").then((n) => n.b), true ? [] : void 0); break; case "bash": case "sh": case "shell": languageModule = await __vitePreload(() => import("./bash-Bz2gZrDc.js").then((n) => n.b), true ? [] : void 0); break; case "json": languageModule = await __vitePreload(() => import("./json-D07AUpjp.js").then((n) => n.b), true ? [] : void 0); break; case "tsx": languageModule = await __vitePreload(() => import("./tsx-B9RA6cgQ.js").then((n) => n.b), true ? [] : void 0); break; case "vue": languageModule = await __vitePreload(() => import("./vue-BQglRdBF.js").then((n) => n.b), true ? __vite__mapDeps([0,1,2,3,4,5,6]) : void 0); break; case "html": languageModule = await __vitePreload(() => import("./html-BOjX3v2Q.js").then((n) => n.b), true ? __vite__mapDeps([6,2,1]) : void 0); break; default: languageModule = await __vitePreload(() => import("./typescript-Cju7JbYj.js").then((n) => n.b), true ? [] : void 0); break; } const language = languageModule.default; languageCache.set(lang, language); return language; }; const loadTheme = async (themeName) => { if (themeCache.has(themeName)) return themeCache.get(themeName); let themeModule; switch (themeName) { case "github-dark": themeModule = await __vitePreload(() => import("./github-dark-CvKoaIXY.js").then((n) => n.a), true ? [] : void 0); break; case "github-light": themeModule = await __vitePreload(() => import("./github-light-Dcx8we6r.js").then((n) => n.a), true ? [] : void 0); break; default: themeModule = await __vitePreload(() => import("./github-light-Dcx8we6r.js").then((n) => n.a), true ? [] : void 0); break; } const theme = themeModule.default; themeCache.set(themeName, theme); return theme; }; const highlightCode = async (code, lang, isDarkMode) => { const themeName = isDarkMode ? "github-dark" : "github-light"; const [{ codeToHtml }, languageModule, themeModule] = await Promise.all([ __vitePreload(() => import("./bundle-web-CNJDzNQN.js"), true ? __vite__mapDeps([7,8,9]) : void 0), loadLanguage(lang), loadTheme(themeName) ]); return codeToHtml(code, { lang, theme: themeModule, langs: [languageModule] }); }; const CodeBlockShiki = ({ children, lang, isDarkMode }) => { const [html, setHtml] = reactExports.useState(null); reactExports.useEffect(() => { let isCancelled = false; setHtml(null); highlightCode(children, lang, isDarkMode).then((result) => { if (!isCancelled) setHtml(result); }).catch(() => { if (!isCancelled) setHtml(""); }); return () => { isCancelled = true; }; }, [ children, lang, isDarkMode ]); return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-w-0 max-w-full overflow-auto bg-transparent [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden [&_pre::-webkit-scrollbar]:hidden [&_pre]:[-ms-overflow-style:none] [&_pre]:[scrollbar-width:none]", style: { backgroundColor: "transparent", minWidth: 0, maxWidth: "100%", overflow: "auto" }, children: html ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { dangerouslySetInnerHTML: { __html: html } }) : /* @__PURE__ */ jsxRuntimeExports.jsx(CodeDefault, { children }) }); }; export { CodeBlockShiki };