{"version":3,"sources":["Renderer.tsx"],"sourcesContent":["// deno-lint-ignore-file\n// deno-lint-ignore-file no-explicit-any\nimport { type TableOfContents } from \"./Markdown.tsx\";\nimport type { marked } from \"./marked.d.ts\";\nimport { Marked } from \"./lib/marked@15.0.6.ts\";\nimport { markedHighlight } from \"./lib/marked-highlight@2.2.1.ts\";\nimport { gfmHeadingId, getHeadingList } from \"./lib/marked-gfm-heading-id.ts\";\nimport { markedEmoji } from \"./lib/marked-emoji@1.4.3.ts\";\nimport markedFootnote from \"./lib/marked-footnote@1.2.4.ts\";\nimport markedAlerts from \"./lib/marked-alerts@2.1.2.ts\";\nimport { markedSmartypants } from \"./lib/marked-smartypants@1.1.9.ts\";\nimport * as prettier from \"./lib/prettier@3.4.2.ts\";\nimport prettierPluginEstree from \"./lib/prettier@3.4.2/plugins/estree.mjs\";\nimport prettierPluginTypescript from \"./lib/prettier@3.4.2/plugins/typescript.mjs\";\nimport prettierPluginBabel from \"./lib/prettier@3.4.2/plugins/babel.mjs\";\nimport \"./lib/dompurify@3.2.3.js\";\n\nimport { codeToHtml } from 'https://esm.sh/shiki@4.4.3';\nimport { unsafeHTML } from 'uix/html/unsafe-html.ts';\n\ninterface UnytTab {\n\ttype: 'unyt-tab';\n\traw: string;\n\ttext: string;\n\tproperties: Record<string, string | boolean>;\n\ttokens: marked.Token[];\n}\ninterface UnytTabs {\n\ttype: 'unyt-tabs';\n\traw: string;\n\ttokens: UnytTab[];\n}\n\ndeclare global {\n\tvar mdInstance: any;\n\tvar DOMPurify: any;\n\tvar unicodeEmojiList: any;\n\tvar customEmojiList: any;\n}\n\nconst parser = new DOMParser();\n\nconst getMarkedInstance = () => {\n\tconst marked = new Marked(\n\t\tmarkedHighlight({\n\t\t\tasync: true,\n\t\t\tasync highlight(code: string, lang: string, info: string) {\n\t\t\t\tif (info.includes(\"prettier\")) {\n\t\t\t\t\tconst parser = \n\t\t\t\t\t\tlang === \"js\" || lang === \"javascript\" ?\n\t\t\t\t\t\t\t\"babel\" : \n\t\t\t\t\t\tlang === \"typescript\" || lang === \"ts\" || lang === \"tsx\" || lang === \"jsx\" ? \n\t\t\t\t\t\t\t\"typescript\" :\n\t\t\t\t\t\t\tnull;\n\t\t\t\t\tif (parser)\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcode = await prettier.format(code, {\n\t\t\t\t\t\t\t\tparser,\n\t\t\t\t\t\t\t\tplugins: [prettierPluginBabel, prettierPluginEstree, prettierPluginTypescript],\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} catch {}\n\t\t\t\t}\n\t\t\t\tif (lang == \"datex\")\n\t\t\t\t\tlang = \"rust\";\n\t\t\t\ttry {\n\t\t\t\t\tconst data = await codeToHtml(code, {\n\t\t\t\t\t\tlang: lang.toLowerCase(),\n\t\t\t\t\t\tthemes: {\n\t\t\t\t\t\t\tlight: 'github-light',\n\t\t\t\t\t\t\tdark: 'github-dark'\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\treturn data.match(/<code[^>]*>([\\s\\S]*?)<\\/code>/)?.[1]!;\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error(`Could not highlight language: ${lang}`);\n\t\t\t\t\treturn code;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t);\n\t\n\tconst renderer = new marked.Renderer(undefined);\n\tconst code = renderer.code.bind(renderer);\n\n\trenderer.code = (data: { text: string, lang: string, escaped: string}) => {\n\t\tif (!data.lang)\n\t\t\treturn code(data);\n\t\tlet text = data.text;\n\t\tconst props = Object.fromEntries(\n\t\t\tArray.from<string[]>(\n\t\t\t\tdata.lang.split(\" \")\n\t\t\t\t.slice(1)\n\t\t\t\t.join(\" \")\n\t\t\t\t.matchAll(/(\\w+)\\s*=\\s*\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"/g)\n\t\t\t).map((e) => [e[1], e[2]])\n\t\t);\n\t\tconst dom = <code/>;\n\t\tdom.innerHTML = text;\n\t\treturn (<pre class=\"ufm-snippet\">\n\t\t\t{Object.keys(props).length ? <header style={props.style}>\n\t\t\t\t{props.icon && <span class={`fa ${props.icon}`}/>} <div>{props.title}</div>\n\t\t\t</header> : undefined}\n\t\t\t<div>\n\t\t\t\t{dom}\n\t\t\t\t<div class=\"copy-container\">\n\t\t\t\t\t<span class={\"copy-icon fa fa-copy\"}/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</pre>).outerHTML;\n\t};\n\tconst unytTOCExtension: marked.TokenizerAndRendererExtension = {\n\t\tname: 'unyt-toc',\n\t\tlevel: 'block',\n\t\tstart(src: string) {\n\t\t\treturn src.match(/<unyt-toc/)?.index;\n\t\t},\n\t\ttokenizer(src: string, _tokens: marked.Token[] | marked.TokensList): marked.Tokens.Generic | undefined {\n\t\t\tconst match = src.match(/^<unyt-toc(\\s+[^>\\/]*)?(?:\\s*\\/>|>([\\s\\S]*?)<\\/unyt-toc>)/);\n\t\t\tif (match) {\n\t\t\t\tconst attrRegex = /\\s+(\\w+)=\"([^\"\\\\`]*(?:\\\\.|[^\"\\\\`])*)\"/g;\n\t\t\t\tconst attributesWithValue = match[1] ?\n\t\t\t\t\tObject.fromEntries(\n\t\t\t\t\t\t[...(match[1].matchAll(attrRegex) ?? [])\n\t\t\t\t\t].map(e => [e[1], e[2]])) : {};\n\t\t\t\treturn {\n\t\t\t\t\ttype: 'unyt-toc',\n\t\t\t\t\tproperties: attributesWithValue,\n\t\t\t\t\traw: match[0]\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\trenderer: (token: marked.Tokens.Generic) => {\n\t\t\treturn `<section \n\t\t\t\tid=\"ufm-toc\"\n\t\t\t\tclass=\"ufm-toc\"\n\t\t\t\t${Object.entries(token.properties as Record<string, string>) .map(([a,b]) => `data-${a}=\"${b.replaceAll('\"', '\\\"')}\"`).join(\" \")}></section>`;\n\t\t}\n\t};\n\tconst unytTabsExtension: marked.TokenizerAndRendererExtension = {\n\t\tname: 'unyt-tabs',\n\t\tlevel: 'block',\n\t\tstart(src: string) {\n\t\t\treturn src.match(/\\<unyt-tabs[^>]+\\>/)?.index;\n\t\t},\n\t\ttokenizer(src: string, _tokens: marked.Token[] | marked.TokensList): marked.Tokens.Generic | undefined {\n\t\t\tconst rule = /^<unyt-tabs\\b[^>]*>([\\s\\S]*?)<\\/unyt-tabs>/s;\n\t\t\tconst match = rule.exec(src);\n\t\t\tif (match) {\n\t\t\t\tconst rawContent = match[1].trim();\n\t\t\t\tconst tabTokens: UnytTab[] = [];\n\t\t\t\tconst tabRegex = /<unyt-tab(?:\\s+[^>]+)?>([\\s\\S]*?)<\\/unyt-tab>/g;\n\t\t\t\tlet tabMatch;\n\t\t\t\twhile ((tabMatch = tabRegex.exec(rawContent)) !== null) {\n\t\t\t\t\tlet line = tabMatch[0]?.split(\"\\n\")?.[0]?.trim() ?? \"\";\n\t\t\t\t\tconst attrRegex = /\\s+(\\w+)=\"([^\"\\\\`]*(?:\\\\.|[^\"\\\\`])*)\"/g;\n\t\t\t\t\tconst attributesWithValue = Object.fromEntries(\n\t\t\t\t\t\t[...(line.matchAll(attrRegex) ?? [])\n\t\t\t\t\t].map(e => [e[1], e[2]]));\n\t\t\t\t\tconst attrsWithoutValue = [...line.replace(attrRegex, \"\")\n\t\t\t\t\t\t.replace(\"<unyt-tab\", \"\")\n\t\t\t\t\t\t.replace(\">\",\"\")\n\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t.matchAll(/\\w+/g)]\n\t\t\t\t\t\t.map(e => [e[0], true]);\n\t\t\t\t\tconst properties: Record<string, string | boolean> = Object.assign(attributesWithValue, Object.fromEntries(attrsWithoutValue));\n\t\t\t\t\ttabTokens.push({\n\t\t\t\t\t\ttype: 'unyt-tab',\n\t\t\t\t\t\traw: tabMatch[0],\n\t\t\t\t\t\ttext: tabMatch[1].trim(),\n\t\t\t\t\t\tproperties,\n\t\t\t\t\t\ttokens: this.lexer.blockTokens(tabMatch[1].trim(), []),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (tabTokens.length && !tabTokens.find(e => e.properties.default))\n\t\t\t\t\ttabTokens[0].properties.default = true;\n\t\t\t\treturn {\n\t\t\t\t\ttype: 'unyt-tabs',\n\t\t\t\t\traw: match[0],\n\t\t\t\t\ttokens: tabTokens as unknown as marked.Token[],\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\trenderer(token: marked.Tokens.Generic | UnytTabs) {\n\t\t\tconst buttons = token.tokens?.filter(e => e.type === \"unyt-tab\")\n\t\t\t\t.map(e => `<button data-active=${e.properties.default ?? false}${e.properties.disabled ? ' disabled' : ''}>\n\t\t\t\t\t${(e.properties.icon ? `<span class=\"fa ${e.properties.icon}\"></span>` : '')} ${e.properties.label}\n\t\t\t\t</button>`)\n\t\t\t\t.join(\"\\n\")\n\t\t\tconst renderedContent = renderer.parser.parse(token.tokens);\n\t\t\treturn `<div class=\"ufm-tabs\">\n\t\t\t\t<div class=\"ufm-tabs-button-container\">${buttons}</div>\n\t\t\t\t<div class=\"ufm-tabs-content\">${renderedContent}</div>\n\t\t\t</div>`;\n\t\t}\n\t};\n\tconst unytTabExtension: marked.RendererExtension = {\n\t\tname: 'unyt-tab',\n\t\trenderer(token: marked.Tokens.Generic) {\n\t\t\tconst unytTabToken = token as UnytTab;\n\t\t\tconst renderedContent = this.parser.parse(unytTabToken.tokens ?? []);\n\t\t\treturn `<div class=\"ufm-tab\" data-active=\"${unytTabToken.properties.default ?? false}\">${renderedContent}</div>`;\n\t\t},\n\t};\n\tconst unytMentionExtension = {\n\t\tname: 'mention',\n\t\tlevel: 'inline',\n\t\ttokenizer(src: string) {\n\t\t\tconst mentionRegex = /(?<=\\s|^)(@([a-zA-Z0-9]{1,10})|@@([a-fA-F0-9]{32})|@\\+([a-zA-Z0-9]{1,10}))(?!\\w)/g;\n\t\t\tconst matches = [...src.matchAll(mentionRegex)];\n\t\t\tif (matches.length === 0)\n\t\t\t\treturn undefined; \n\t\t\tconst tokens: marked.Token[] = [];\n\t\t\tlet lastIndex = 0;\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tconst matchIndex = match.index || 0;\n\t\t\t\tif (lastIndex < matchIndex) {\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\traw: src.slice(lastIndex, matchIndex),\n\t\t\t\t\t\ttext: src.slice(lastIndex, matchIndex),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tlet endpoint: string;\n\t\t\t\tif (match[2])\n\t\t\t\t\tendpoint = match[2];\n\t\t\t\telse if (match[3])\n\t\t\t\t\tendpoint = `@${match[3]}`;\n\t\t\t\telse if (match[4])\n\t\t\t\t\tendpoint = `+${match[4]}`;\n\t\t\t\telse return;\n\t\t\t\ttokens.push({\n\t\t\t\t\t// @ts-ignore $\n\t\t\t\t\ttype: \"mention\",\n\t\t\t\t\traw: match[0],\n\t\t\t\t\tendpoint: endpoint,\n\t\t\t\t\tendpointType: match[2] ? 'user' : match[3] ? 'anonymous' : 'institution',\n\t\t\t\t\ttext: match[0],\n\t\t\t\t});\n\t\t\t\tlastIndex = matchIndex + match[0].length;\n\t\t\t});\n\t\t\tif (lastIndex < src.length)\n\t\t\t\ttokens.push({\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\traw: src.slice(lastIndex),\n\t\t\t\t\ttext: src.slice(lastIndex),\n\t\t\t\t});\n\t\t\treturn {\n\t\t\t\ttype: 'text',\n\t\t\t\traw: src,\n\t\t\t\ttext: src,\n\t\t\t\ttokens,\n\t\t\t};\n\t\t},\n\t\trenderer(token: { endpointType: string, endpoint: string }) {\n\t\t\treturn `<a class=\"ufm-endpoint ${token.endpointType}\">@${token.endpoint}</a>`;\n\t\t},\n\t};\n\tmarked.setOptions({ renderer });\n\tmarked.use({extensions: [unytTOCExtension, unytTabsExtension, unytTabExtension, unytMentionExtension], async: true, pedantic: false, gfm: true});\n\tmarked.use(markedEmoji({\n\t\temojis: Object.assign({}, unicodeEmojiList, customEmojiList),\n\t\trenderer: (token: {name: string, emoji: string | {light: string, dark: string}}) => (token.name in customEmojiList) ? \n\t\t\t`<span class=\"ufm-custom-emoji\">${\n\t\t\t\ttypeof token.emoji === \"string\" ? \n\t\t\t\t\ttoken.emoji : \n\t\t\t\t\t`<span class=\"light\">${token.emoji.light}</span>\n\t\t\t\t\t<span class=\"dark\">${token.emoji.dark}</span>`\n\t\t\t}</span>` :\n\t\t\ttoken.emoji\n\t}));\n\tmarked.use(markedFootnote({}));\n\tmarked.use(markedSmartypants());\n\tmarked.use(markedAlerts({\n\t\tvariants: [\n\t\t\t{\n\t\t\t\ttype: 'note',\n\t\t\t\ticon: '<span class=\"fa fa-circle-info\"></span>',\n\t\t\t\ttitle: 'Note',\n\t\t\t\ttitleClassName: 'ufm-alert-note'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'tip',\n\t\t\t\ticon: '<span class=\"fa fa-lightbulb\"></span>',\n\t\t\t\ttitle: 'Tip',\n\t\t\t\ttitleClassName: 'ufm-alert-tip'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'important',\n\t\t\t\ticon: '<span class=\"fa fa-bell\"></span>',\n\t\t\t\ttitle: 'Important',\n\t\t\t\ttitleClassName: 'ufm-alert-important'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'warning',\n\t\t\t\ticon: '<span class=\"fa fa-circle-exclamation\"></span>',\n\t\t\t\ttitle: 'Warning',\n\t\t\t\ttitleClassName: 'ufm-alert-warning'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'caution',\n\t\t\t\ticon: '<span class=\"fa fa-triangle-exclamation\"></span>',\n\t\t\t\ttitle: 'Caution',\n\t\t\t\ttitleClassName: 'ufm-alert-caution'\n\t\t\t}\n\t\t]\n\t}));\n\tconst gfmHeadings = gfmHeadingId();\n\tconst heading = gfmHeadings.renderer.heading.bind(renderer);\n\n\tgfmHeadings.renderer.heading = function({tokens, depth}) {\n\t\tconst data = heading({tokens, depth});\n\t\tconst elem = unsafeHTML(data);\n\t\treturn (<section class=\"ufm-heading\">\n\t\t\t{elem}\n\t\t\t<a href={`#${elem.id}`}><span class=\"fa fa-link\"/></a>\n\t\t</section>).outerHTML;\n\t}\n\tmarked.use(gfmHeadings);\n\treturn marked;\n}\n\nexport const renderMarkdown = async (value: string, prettify: boolean | null = null) => {\n\tif (!globalThis.unicodeEmojiList)\n\t\tglobalThis.unicodeEmojiList = (await import(\"./res/unicode-emoji-list.json\", { with: { type: \"json\" } })).default;\n\tif (!globalThis.customEmojiList)\n\t\tglobalThis.customEmojiList = (await import(\"./res/custom-emoji-list.json\", { with: { type: \"json\" } })).default;\n\n\tif (!globalThis.mdInstance)\n\t\tglobalThis.mdInstance = getMarkedInstance();\n\tif (prettify)\n\t\tvalue = value.replace(/(```\\w+)/gm, \"$1 prettier\");\n\tif (prettify === false) \n\t\tvalue = value.replace(/(```\\w+.*)prettier/gm, \"$1\");\n\tconst html = await globalThis.mdInstance.parse(value);\n\n\tif (\"Deno\" in globalThis) {\n\t\tconst { JSDOM } = await import(/*lazy*/\"npm:jsdom@26.1.0\"); // https://esm.sh/jsdom@25.0.1\n\t\treturn DOMPurify(new JSDOM().window).sanitize(html);\n\t}\n\treturn DOMPurify.sanitize(html);\n}\nexport const renderMarkdownToHTML = async (value: string, prettify: boolean | null = null) => {\n\tconst html = await renderMarkdown(value, prettify);\n\treturn textToHTML(html);\n}\n\nconst textToHTML = (text: string) => {\n\tconst dom = parser.parseFromString(text, 'text/html').querySelector(\"body\");\n\t// UIX Dom throws when non relative resolvable paths are used\n\t// This is a workaround to make sure that all paths are relative\n\tdom?.querySelectorAll(\"img, video, audio, source\").forEach((elem) => {\n\t\tconst href = elem.getAttribute(\"src\");\n\t\tif (href && !href.match(/^https?:\\/\\//) && !href.startsWith(\".\") && !href.startsWith(\"/\"))\n\t\t\telem.setAttribute(\"src\", \"./\" + href);\n\t})\n\treturn dom;\n}\n\nexport const renderMarkdownToHTMLWithTOC = async (value: string, prettify: boolean | null = null) => {\n\tconst { html, toc } = await renderMarkdownWithTOC(value, prettify);\n\treturn {\n\t\ttoc,\n\t\thtml: textToHTML(html)\n\t}\n};\n\nexport const renderMarkdownWithTOC = async (value: string, prettify: boolean | null = null) => {\n\tconst result: TableOfContents[] = [];\n\tconst html = await renderMarkdown(value, prettify);\n\tconst stack = [{ depth: 0, children: result }];\n\tconst headings = getHeadingList();\n\tlet initalHeadingSkipped = false;\n\tconst span = <span/> as HTMLSpanElement;\n\tfor (const {level, text, id} of headings) {\n\t\tif (!initalHeadingSkipped) {\n\t\t\tinitalHeadingSkipped = true;\n\t\t\tcontinue;\n\t\t}\n\t\tspan.innerHTML = text;\n\t\tconst newNode = { \n\t\t\thtml: text,\n\t\t\ttext: span.innerText,\n\t\t\tlink: `#${id}`,\n\t\t\tchildren: []\n\t\t};\n\t\twhile (stack[stack.length - 1].depth >= level)\n\t\t\tstack.pop();\n\t\tstack.at(-1)!.children.push(newNode);\n\t\tstack.push({ depth: level, children: newNode.children });\n\t}\n\treturn {\n\t\thtml,\n\t\ttoc: result\n\t}\n}"],"names":["Marked","markedHighlight","gfmHeadingId","getHeadingList","markedEmoji","markedFootnote","markedAlerts","markedSmartypants","prettier","prettierPluginEstree","prettierPluginTypescript","prettierPluginBabel","codeToHtml","unsafeHTML","parser","DOMParser","getMarkedInstance","marked","async","highlight","code","lang","info","includes","format","plugins","data","toLowerCase","themes","light","dark","match","e","console","error","renderer","Renderer","undefined","bind","text","props","Object","fromEntries","Array","from","split","slice","join","matchAll","map","dom","innerHTML","pre","class","keys","length","header","style","icon","span","div","title","outerHTML","setOptions","use","extensions","name","level","start","src","index","tokenizer","_tokens","type","properties","raw","token","entries","a","b","replaceAll","rule","exec","tabMatch","rawContent","trim","tabTokens","tabRegex","line","attrRegex","assign","replace","push","tokens","lexer","blockTokens","find","default","buttons","filter","disabled","label","renderedContent","parse","unytTabToken","matches","lastIndex","forEach","endpoint","matchIndex","endpointType","pedantic","gfm","emojis","unicodeEmojiList","customEmojiList","emoji","variants","titleClassName","gfmHeadings","heading","depth","elem","section","href","id","renderMarkdown","value","prettify","globalThis","with","mdInstance","html","JSDOM","DOMPurify","window","sanitize","renderMarkdownToHTML","textToHTML","parseFromString","querySelector","querySelectorAll","getAttribute","startsWith","setAttribute","renderMarkdownToHTMLWithTOC","toc","renderMarkdownWithTOC","result","stack","children","headings","initalHeadingSkipped","newNode","innerText","link","pop","at"],"mappings":";AAIA,SAASA,MAAM,QAAQ,yBAAyB;AAChD,SAASC,eAAe,QAAQ,kCAAkC;AAClE,SAASC,YAAY,EAAEC,cAAc,QAAQ,iCAAiC;AAC9E,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,OAAOC,oBAAoB,iCAAiC;AAC5D,OAAOC,kBAAkB,+BAA+B;AACxD,SAASC,iBAAiB,QAAQ,oCAAoC;AACtE,YAAYC,cAAc,0BAA0B;AACpD,OAAOC,0BAA0B,0CAA0C;AAC3E,OAAOC,8BAA8B,8CAA8C;AACnF,OAAOC,yBAAyB,yCAAyC;AACzE,OAAO,2BAA2B;AAElC,SAASC,UAAU,QAAQ,6BAA6B;AACxD,SAASC,UAAU,QAAQ,0BAA0B;AAsBrD,IAAMC,SAAS,IAAIC,aAEbC,oBAAoB;IACzB,IAAMC,SAAS,IAAIjB,OAClBC,gBAAgB;QACfiB,OAAO,CAAA;QACP,MAAMC,WAAUC,IAAY,EAAEC,IAAY,EAAEC,IAAY;YACvD,IAAIA,KAAKC,QAAQ,CAAC,aAAa;gBAC9B,IAAMT,SACLO,AAAS,SAATA,QAAiBA,AAAS,iBAATA,OAChB,UACDA,AAAS,iBAATA,QAAyBA,AAAS,SAATA,QAAiBA,AAAS,UAATA,QAAkBA,AAAS,UAATA,OAC3D,eACA;gBACF,IAAIP,QACH,IAAI;oBACHM,OAAO,MAAMZ,SAASgB,MAAM,CAACJ,MAAM;wBAClCN;wBACAW,SAAS;4BAACd;4BAAqBF;4BAAsBC;yBAAyB;oBAC/E;gBACD,EAAE,OAAM,CAAC;YACX;YACY,WAARW,QACHA,CAAAA,OAAO,MAAK;YACb,IAAI;gBACH,IAAMK,OAAO,MAAMd,WAAWQ,MAAM;oBACnCC,MAAMA,KAAKM,WAAW;oBACtBC,QAAQ;wBACPC,OAAO;wBACPC,MAAM;oBACP;gBACD;gBACA,OAAOJ,KAAKK,KAAK,CAAC,kCAAkC,CAAC,EAAE;YACxD,EAAE,OAAOC,GAAG;gBAEX,OADAC,QAAQC,KAAK,CAAC,CAAC,8BAA8B,EAAEb,KAAK,CAAC,GAC9CD;YACR;QACD;IACD,KAGKe,WAAW,IAAIlB,OAAOmB,QAAQ,CAACC,KAAAA,IAC/BjB,OAAOe,SAASf,IAAI,CAACkB,IAAI,CAACH;IAEhCA,SAASf,IAAI,GAAG,CAACM;QAChB,IAAI,CAACA,KAAKL,IAAI,EACb,OAAOD,KAAKM;QACb,IAAIa,OAAOb,KAAKa,IAAI,EACdC,QAAQC,OAAOC,WAAW,CAC/BC,MAAMC,IAAI,CACTlB,KAAKL,IAAI,CAACwB,KAAK,CAAC,KACfC,KAAK,CAAC,GACNC,IAAI,CAAC,KACLC,QAAQ,CAAC,4CACTC,GAAG,CAAC,CAACjB,IAAM;gBAACA,CAAC,CAAC,EAAE;gBAAEA,CAAC,CAAC,EAAE;aAAC,IAEpBkB,oBAAM,KAAC9B;QAEb,OADA8B,IAAIC,SAAS,GAAGZ,MACT,cAAC,MAACa;YAAIC,OAAM;;gBACjBZ,OAAOa,IAAI,CAACd,OAAOe,MAAM,iBAAG,MAACC;oBAAOC,OAAOjB,MAAMiB,KAAK;;wBACrDjB,MAAMkB,IAAI,kBAAI,KAACC;4BAAKN,OAAO,CAAC,GAAG,EAAEb,MAAMkB,IAAI,CAAC,CAAC;;wBAAI;sCAAC,KAACE;sCAAKpB,MAAMqB,KAAK;;;qBACzDxB,KAAAA;8BACZ,MAACuB;;wBACCV;sCACD,KAACU;4BAAIP,OAAM;sCACV,cAAA,KAACM;gCAAKN,OAAO;;;;;;WAGRS,SAAS;IAClB,GAoJA7C,OAAO8C,UAAU,CAAC;QAAE5B;IAAS,IAC7BlB,OAAO+C,GAAG,CAAC;QAACC,YAAY;YApJuC;gBAC9DC,MAAM;gBACNC,OAAO;gBACPC,OAAAA,CAAMC,MACEA,IAAItC,KAAK,CAAC,cAAcuC;gBAEhCC,WAAUF,GAAW,EAAEG,OAA2C;oBACjE,IAAMzC,QAAQsC,IAAItC,KAAK,CAAC;oBACxB,IAAIA,OAMH,OAAO;wBACN0C,MAAM;wBACNC,YAN2B3C,KAAK,CAAC,EAAE,GACnCU,OAAOC,WAAW,CACjB;+BAAKX,KAAK,CAAC,EAAE,CAACiB,QAAQ,CAHN,6CAGqB,EAAE;yBACvC,CAACC,GAAG,CAACjB,CAAAA,IAAK;gCAACA,CAAC,CAAC,EAAE;gCAAEA,CAAC,CAAC,EAAE;6BAAC,KAAK,CAAC;wBAI7B2C,KAAK5C,KAAK,CAAC,EAAE;oBACd;gBAEF;gBACAI,UAAU,CAACyC,QACH,CAAC;;;IAGP,EAAEnC,OAAOoC,OAAO,CAACD,MAAMF,UAAU,EAA6BzB,GAAG,CAAC,CAAC,CAAC6B,GAAEC,EAAE,GAAK,CAAC,KAAK,EAAED,EAAE,EAAE,EAAEC,EAAEC,UAAU,CAAC,KAAK,MAAM,CAAC,CAAC,EAAEjC,IAAI,CAAC,KAAK,WAAW,CAAC;YAEhJ;YACgE;gBAC/DmB,MAAM;gBACNC,OAAO;gBACPC,OAAAA,CAAMC,MACEA,IAAItC,KAAK,CAAC,uBAAuBuC;gBAEzCC,WAAUF,GAAW,EAAEG,OAA2C;oBAEjE,IAAMzC,QAAQkD,AADD,8CACMC,IAAI,CAACb;oBACxB,IAAItC,OAAO;4BAINoD;wBAHJ,IAAMC,aAAarD,KAAK,CAAC,EAAE,CAACsD,IAAI,IAC1BC,YAAuB,EAAE,EACzBC,WAAW;wBAEjB,MAAO,AAA2C,SAA1CJ,CAAAA,WAAWI,SAASL,IAAI,CAACE,WAAU,GAAa;4BACvD,IAAII,OAAOL,QAAQ,CAAC,EAAE,EAAEtC,MAAM,OAAO,CAAC,EAAE,EAAEwC,UAAU,IAC9CI,YAAY,0CAUZf,aAA+CjC,OAAOiD,MAAM,CATtCjD,OAAOC,WAAW,CAC7C;mCAAK8C,KAAKxC,QAAQ,CAACyC,cAAc,EAAE;6BACnC,CAACxC,GAAG,CAACjB,CAAAA,IAAK;oCAACA,CAAC,CAAC,EAAE;oCAAEA,CAAC,CAAC,EAAE;iCAAC,IAOiES,OAAOC,WAAW,CANhF;mCAAI8C,KAAKG,OAAO,CAACF,WAAW,IACpDE,OAAO,CAAC,aAAa,IACrBA,OAAO,CAAC,KAAI,IACZN,IAAI,GACJrC,QAAQ,CAAC;6BAAQ,CACjBC,GAAG,CAACjB,CAAAA,IAAK;oCAACA,CAAC,CAAC,EAAE;oCAAE,CAAA;iCAAK;4BAEvBsD,UAAUM,IAAI,CAAC;gCACdnB,MAAM;gCACNE,KAAKQ,QAAQ,CAAC,EAAE;gCAChB5C,MAAM4C,QAAQ,CAAC,EAAE,CAACE,IAAI;gCACtBX;gCACAmB,QAAQ,IAAI,CAACC,KAAK,CAACC,WAAW,CAACZ,QAAQ,CAAC,EAAE,CAACE,IAAI,IAAI,EAAE;4BACtD;wBACD;wBAGA,OAFIC,UAAU/B,MAAM,IAAI,CAAC+B,UAAUU,IAAI,CAAChE,CAAAA,IAAKA,EAAE0C,UAAU,CAACuB,OAAO,KAChEX,CAAAA,SAAS,CAAC,EAAE,CAACZ,UAAU,CAACuB,OAAO,GAAG,CAAA,CAAG,GAC/B;4BACNxB,MAAM;4BACNE,KAAK5C,KAAK,CAAC,EAAE;4BACb8D,QAAQP;wBACT;oBACD;gBACD;gBACAnD,UAASyC,KAAuC;oBAC/C,IAAMsB,UAAUtB,MAAMiB,MAAM,EAAEM,OAAOnE,CAAAA,IAAKA,AAAW,eAAXA,EAAEyC,IAAI,EAC9CxB,IAAIjB,CAAAA,IAAK,CAAC,oBAAoB,EAAEA,EAAE0C,UAAU,CAACuB,OAAO,IAAI,CAAA,EAAM,EAAEjE,EAAE0C,UAAU,CAAC0B,QAAQ,GAAG,cAAc,GAAG;KACzG,EAAGpE,EAAE0C,UAAU,CAAChB,IAAI,GAAG,CAAC,gBAAgB,EAAE1B,EAAE0C,UAAU,CAAChB,IAAI,CAAC,SAAS,CAAC,GAAG,GAAI,CAAC,EAAE1B,EAAE0C,UAAU,CAAC2B,KAAK,CAAC;aAC3F,CAAC,EACTtD,KAAK,OACDuD,kBAAkBnE,SAASrB,MAAM,CAACyF,KAAK,CAAC3B,MAAMiB,MAAM;oBAC1D,OAAO,CAAC;2CACgC,EAAEK,QAAQ;kCACnB,EAAEI,gBAAgB;SAC3C,CAAC;gBACR;YACD;YACmD;gBAClDpC,MAAM;gBACN/B,UAASyC,KAA4B;oBAEpC,IAAM0B,kBAAkB,IAAI,CAACxF,MAAM,CAACyF,KAAK,CAACC,AADrB5B,MACkCiB,MAAM,IAAI,EAAE;oBACnE,OAAO,CAAC,kCAAkC,EAAEW,AAFvB5B,MAEoCF,UAAU,CAACuB,OAAO,IAAI,CAAA,EAAM,EAAE,EAAEK,gBAAgB,MAAM,CAAC;gBACjH;YACD;YAC6B;gBAC5BpC,MAAM;gBACNC,OAAO;gBACPI,WAAUF,GAAW;oBAEpB,IAAMoC,UAAU;2BAAIpC,IAAIrB,QAAQ,CADX;qBAC0B;oBAC/C,IAAIyD,AAAmB,MAAnBA,QAAQlD,MAAM,EACjB;oBACD,IAAMsC,SAAyB,EAAE,EAC7Ba,YAAY;oBAkChB,OAjCAD,QAAQE,OAAO,CAAC,CAAC5E;4BASZ6E;wBARJ,IAAMC,aAAa9E,MAAMuC,KAAK,IAAI;wBASlC,IARIoC,YAAYG,cACfhB,OAAOD,IAAI,CAAC;4BACXnB,MAAM;4BACNE,KAAKN,IAAIvB,KAAK,CAAC4D,WAAWG;4BAC1BtE,MAAM8B,IAAIvB,KAAK,CAAC4D,WAAWG;wBAC5B,IAGG9E,KAAK,CAAC,EAAE,EACX6E,WAAW7E,KAAK,CAAC,EAAE;6BACf,IAAIA,KAAK,CAAC,EAAE,EAChB6E,WAAW,CAAC,CAAC,EAAE7E,KAAK,CAAC,EAAE,CAAC,CAAC;;4BACrB,KAAIA,KAAK,CAAC,EAAE,EAEZ;4BADJ6E,WAAW,CAAC,CAAC,EAAE7E,KAAK,CAAC,EAAE,CAAC,CAAC;;wBAE1B8D,OAAOD,IAAI,CAAC;4BAEXnB,MAAM;4BACNE,KAAK5C,KAAK,CAAC,EAAE;4BACb6E,UAAUA;4BACVE,cAAc/E,KAAK,CAAC,EAAE,GAAG,SAASA,KAAK,CAAC,EAAE,GAAG,cAAc;4BAC3DQ,MAAMR,KAAK,CAAC,EAAE;wBACf,IACA2E,YAAYG,aAAa9E,KAAK,CAAC,EAAE,CAACwB,MAAM;oBACzC,IACImD,YAAYrC,IAAId,MAAM,IACzBsC,OAAOD,IAAI,CAAC;wBACXnB,MAAM;wBACNE,KAAKN,IAAIvB,KAAK,CAAC4D;wBACfnE,MAAM8B,IAAIvB,KAAK,CAAC4D;oBACjB,IACM;wBACNjC,MAAM;wBACNE,KAAKN;wBACL9B,MAAM8B;wBACNwB;oBACD;gBACD;gBACA1D,UAAAA,CAASyC,QACD,CAAC,uBAAuB,EAAEA,MAAMkC,YAAY,CAAC,GAAG,EAAElC,MAAMgC,QAAQ,CAAC,IAAI,CAAC;YAE/E;SAEqG;QAAE1F,OAAO,CAAA;QAAM6F,UAAU,CAAA;QAAOC,KAAK,CAAA;IAAI,IAC9I/F,OAAO+C,GAAG,CAAC5D,YAAY;QACtB6G,QAAQxE,OAAOiD,MAAM,CAAC,CAAC,GAAGwB,kBAAkBC;QAC5ChF,UAAU,CAACyC,QAAyE,AAACA,MAAMV,IAAI,IAAIiD,kBAClG,CAAC,+BAA+B,EAC/B,AAAuB,YAAvB,OAAOvC,MAAMwC,KAAK,GACjBxC,MAAMwC,KAAK,GACX,CAAC,oBAAoB,EAAExC,MAAMwC,KAAK,CAACvF,KAAK,CAAC;wBACtB,EAAE+C,MAAMwC,KAAK,CAACtF,IAAI,CAAC,OAAO,CAAC,CAC/C,OAAO,CAAC,GACT8C,MAAMwC,KAAK;IACb,KACAnG,OAAO+C,GAAG,CAAC3D,eAAe,CAAC,KAC3BY,OAAO+C,GAAG,CAACzD,sBACXU,OAAO+C,GAAG,CAAC1D,aAAa;QACvB+G,UAAU;YACT;gBACC5C,MAAM;gBACNf,MAAM;gBACNG,OAAO;gBACPyD,gBAAgB;YACjB;YACA;gBACC7C,MAAM;gBACNf,MAAM;gBACNG,OAAO;gBACPyD,gBAAgB;YACjB;YACA;gBACC7C,MAAM;gBACNf,MAAM;gBACNG,OAAO;gBACPyD,gBAAgB;YACjB;YACA;gBACC7C,MAAM;gBACNf,MAAM;gBACNG,OAAO;gBACPyD,gBAAgB;YACjB;YACA;gBACC7C,MAAM;gBACNf,MAAM;gBACNG,OAAO;gBACPyD,gBAAgB;YACjB;SACA;IACF;IACA,IAAMC,cAAcrH,gBACdsH,UAAUD,YAAYpF,QAAQ,CAACqF,OAAO,CAAClF,IAAI,CAACH;IAWlD,OATAoF,YAAYpF,QAAQ,CAACqF,OAAO,GAAG,SAAS,EAAC3B,MAAM,EAAE4B,KAAK,EAAC;QAEtD,IAAMC,OAAO7G,WADA2G,QAAQ;YAAC3B;YAAQ4B;QAAK;QAEnC,OAAO,cAAC,MAACE;YAAQtE,OAAM;;gBACrBqE;8BACD,KAAC5C;oBAAE8C,MAAM,CAAC,CAAC,EAAEF,KAAKG,EAAE,CAAC,CAAC;8BAAE,cAAA,KAAClE;wBAAKN,OAAM;;;;WACzBS,SAAS;IACtB,GACA7C,OAAO+C,GAAG,CAACuD,cACJtG;AACR;AAEA,OAAO,MAAM6G,iBAAiB,OAAOC,OAAeC,WAA2B,IAAI;IAC7EC,WAAWf,gBAAgB,IAC/Be,CAAAA,WAAWf,gBAAgB,GAAG,AAAC,CAAA,MAAM,MAAM,CAAC,iCAAiC;QAAEgB,MAAM;YAAEzD,MAAM;QAAO;IAAE,EAAC,EAAGwB,OAAO,AAAD,GAC5GgC,WAAWd,eAAe,IAC9Bc,CAAAA,WAAWd,eAAe,GAAG,AAAC,CAAA,MAAM,MAAM,CAAC,gCAAgC;QAAEe,MAAM;YAAEzD,MAAM;QAAO;IAAE,EAAC,EAAGwB,OAAO,AAAD,GAE1GgC,WAAWE,UAAU,IACzBF,CAAAA,WAAWE,UAAU,GAAGnH,mBAAkB,GACvCgH,YACHD,CAAAA,QAAQA,MAAMpC,OAAO,CAAC,cAAc,cAAa,GACjC,CAAA,MAAbqC,YACHD,CAAAA,QAAQA,MAAMpC,OAAO,CAAC,wBAAwB,KAAI;IACnD,IAAMyC,OAAO,MAAMH,WAAWE,UAAU,CAAC5B,KAAK,CAACwB;IAE/C,IAAI,UAAUE,YAAY;QACzB,IAAM,EAAEI,KAAK,EAAE,GAAG,MAAM,MAAM,CAAS;QACvC,OAAOC,UAAU,IAAID,QAAQE,MAAM,EAAEC,QAAQ,CAACJ;IAC/C;IACA,OAAOE,UAAUE,QAAQ,CAACJ;AAC3B,EAAC;AACD,OAAO,MAAMK,uBAAuB,OAAOV,OAAeC,WAA2B,IAAI,GAEjFU,WADM,MAAMZ,eAAeC,OAAOC,WAEzC;AAED,IAAMU,aAAa,CAACnG;IACnB,IAAMW,MAAMpC,OAAO6H,eAAe,CAACpG,MAAM,aAAaqG,aAAa,CAAC;IAQpE,OALA1F,KAAK2F,iBAAiB,6BAA6BlC,QAAQ,CAACe;QAC3D,IAAME,OAAOF,KAAKoB,YAAY,CAAC;SAC3BlB,QAASA,KAAK7F,KAAK,CAAC,mBAAoB6F,KAAKmB,UAAU,CAAC,QAASnB,KAAKmB,UAAU,CAAC,QACpFrB,KAAKsB,YAAY,CAAC,OAAO,OAAOpB;IAClC,IACO1E;AACR;AAEA,OAAO,MAAM+F,8BAA8B,OAAOlB,OAAeC,WAA2B,IAAI;IAC/F,IAAM,EAAEI,IAAI,EAAEc,GAAG,EAAE,GAAG,MAAMC,sBAAsBpB,OAAOC;IACzD,OAAO;QACNkB;QACAd,MAAMM,WAAWN;IAClB;AACD,EAAE;AAEF,OAAO,MAAMe,wBAAwB,OAAOpB,OAAeC,WAA2B,IAAI;IACzF,IAAMoB,SAA4B,EAAE,EAC9BhB,OAAO,MAAMN,eAAeC,OAAOC,WACnCqB,QAAQ;QAAC;YAAE5B,OAAO;YAAG6B,UAAUF;QAAO;KAAE,EACxCG,WAAWpJ,kBACbqJ,uBAAuB,CAAA,GACrB7F,qBAAO,KAACA;IACd,KAAK,IAAM,EAACQ,KAAK,EAAE5B,IAAI,EAAEsF,EAAE,EAAC,IAAI0B,SAAU;QACzC,IAAI,CAACC,sBAAsB;YAC1BA,uBAAuB,CAAA;YACvB;QACD;QACA7F,KAAKR,SAAS,GAAGZ;QACjB,IAAMkH,UAAU;YACfrB,MAAM7F;YACNA,MAAMoB,KAAK+F,SAAS;YACpBC,MAAM,CAAC,CAAC,EAAE9B,GAAG,CAAC;YACdyB,UAAU,EAAE;QACb;QACA,MAAOD,KAAK,CAACA,MAAM9F,MAAM,GAAG,EAAE,CAACkE,KAAK,IAAItD,OACvCkF,MAAMO,GAAG;QACVP,MAAMQ,EAAE,CAAC,IAAKP,QAAQ,CAAC1D,IAAI,CAAC6D,UAC5BJ,MAAMzD,IAAI,CAAC;YAAE6B,OAAOtD;YAAOmF,UAAUG,QAAQH,QAAQ;QAAC;IACvD;IACA,OAAO;QACNlB;QACAc,KAAKE;IACN;AACD,EAAC","sourceRoot":"/lib/uix-pwa-0.0.15/components/Markdown/","file":"Renderer.tsx"}