@dialpad/dialtone-vue 3.225.0-next.9 → 3.225.0

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.
Files changed (81) hide show
  1. package/dist/MarkdownRenderer-BQQDcWMC.cjs +31 -0
  2. package/dist/MarkdownRenderer-BQQDcWMC.cjs.map +1 -0
  3. package/dist/{MarkdownRenderer-NSSny0ID.js → MarkdownRenderer-D3rM2x-1.js} +102 -98
  4. package/dist/{MarkdownRenderer-NSSny0ID.js.map → MarkdownRenderer-D3rM2x-1.js.map} +1 -1
  5. package/dist/{RichTextEditor-DBfzhN9C.cjs → RichTextEditor-BVQ99ytl.cjs} +2 -2
  6. package/dist/RichTextEditor-BVQ99ytl.cjs.map +1 -0
  7. package/dist/{RichTextEditor-Bs2RwA4g.js → RichTextEditor-DKpulIyi.js} +4 -3
  8. package/dist/RichTextEditor-DKpulIyi.js.map +1 -0
  9. package/dist/common/sr_only_close_button.vue.d.ts +2 -0
  10. package/dist/components/Banner/Banner.vue.d.ts +4 -0
  11. package/dist/components/Banner/Banner.vue.d.ts.map +1 -1
  12. package/dist/components/Button/Button.vue.d.ts +2 -0
  13. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  14. package/dist/components/Chip/Chip.vue.d.ts +2 -0
  15. package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
  16. package/dist/components/Collapsible/Collapsible.vue.d.ts +2 -0
  17. package/dist/components/Collapsible/Collapsible.vue.d.ts.map +1 -1
  18. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts +5 -0
  19. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts.map +1 -1
  20. package/dist/components/Dropdown/Dropdown.vue.d.ts +5 -0
  21. package/dist/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
  22. package/dist/components/FilterPill/FilterPill.vue.d.ts +12 -0
  23. package/dist/components/FilterPill/FilterPill.vue.d.ts.map +1 -1
  24. package/dist/components/Hovercard/Hovercard.vue.d.ts +12 -0
  25. package/dist/components/Hovercard/Hovercard.vue.d.ts.map +1 -1
  26. package/dist/components/ImageViewer/ImageViewer.vue.d.ts +4 -0
  27. package/dist/components/ImageViewer/ImageViewer.vue.d.ts.map +1 -1
  28. package/dist/components/Modal/Modal.vue.d.ts +4 -0
  29. package/dist/components/Modal/Modal.vue.d.ts.map +1 -1
  30. package/dist/components/Notice/Notice.vue.d.ts +4 -0
  31. package/dist/components/Notice/Notice.vue.d.ts.map +1 -1
  32. package/dist/components/Notice/NoticeAction.vue.d.ts +4 -0
  33. package/dist/components/Notice/NoticeAction.vue.d.ts.map +1 -1
  34. package/dist/components/Pagination/Pagination.vue.d.ts +2 -0
  35. package/dist/components/Pagination/Pagination.vue.d.ts.map +1 -1
  36. package/dist/components/Popover/Popover.vue.d.ts +5 -0
  37. package/dist/components/Popover/Popover.vue.d.ts.map +1 -1
  38. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts +2 -0
  39. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts.map +1 -1
  40. package/dist/components/RichTextEditor/Extensions/Emoji/Emoji.d.ts.map +1 -1
  41. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts +7 -0
  42. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts.map +1 -1
  43. package/dist/components/RichTextEditor/MarkdownRenderer.d.ts.map +1 -1
  44. package/dist/components/SplitButton/SplitButton.vue.d.ts +9 -0
  45. package/dist/components/SplitButton/SplitButton.vue.d.ts.map +1 -1
  46. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts +2 -0
  47. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts.map +1 -1
  48. package/dist/components/SplitButton/SplitButtonStart.vue.d.ts +2 -0
  49. package/dist/components/Tab/Tab.vue.d.ts +2 -0
  50. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts +4 -0
  51. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts.map +1 -1
  52. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts +4 -0
  53. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts.map +1 -1
  54. package/dist/components/Toast/Toast.vue.d.ts +16 -0
  55. package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
  56. package/dist/components/Tooltip/Tooltip.vue.d.ts.map +1 -1
  57. package/dist/dialtone-vue.cjs +1 -1
  58. package/dist/dialtone-vue.js +1 -1
  59. package/dist/lib/button/button.cjs +1 -1
  60. package/dist/lib/button/button.cjs.map +1 -1
  61. package/dist/lib/button/button.js +14 -6
  62. package/dist/lib/button/button.js.map +1 -1
  63. package/dist/lib/popover/popover.cjs +1 -1
  64. package/dist/lib/popover/popover.cjs.map +1 -1
  65. package/dist/lib/popover/popover.js +20 -11
  66. package/dist/lib/popover/popover.js.map +1 -1
  67. package/dist/lib/rich-text-editor/index.cjs +1 -1
  68. package/dist/lib/rich-text-editor/index.js +1 -1
  69. package/dist/lib/rich-text-editor/markdown-renderer.cjs +1 -1
  70. package/dist/lib/rich-text-editor/markdown-renderer.js +1 -1
  71. package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
  72. package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
  73. package/dist/lib/tooltip/tooltip.cjs +1 -1
  74. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  75. package/dist/lib/tooltip/tooltip.js +12 -3
  76. package/dist/lib/tooltip/tooltip.js.map +1 -1
  77. package/package.json +5 -5
  78. package/dist/MarkdownRenderer-D5XWsyQk.cjs +0 -31
  79. package/dist/MarkdownRenderer-D5XWsyQk.cjs.map +0 -1
  80. package/dist/RichTextEditor-Bs2RwA4g.js.map +0 -1
  81. package/dist/RichTextEditor-DBfzhN9C.cjs.map +0 -1
@@ -0,0 +1,31 @@
1
+ require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./common/emoji/index.cjs`);let t=require(`@tiptap/core`),n=require(`@tiptap/pm/model`);function r(e,n,r){let i=e.attrs;return i?n.filter(t=>t.type===(typeof e.type==`string`?e.type:e.type.name)?r?t.attribute.rendered:!0:!1).map(e=>e.attribute.renderHTML&&e.attribute.renderHTML(i)||{[e.name]:e.name in i?i[e.name]:e.attribute.default}).reduce((e,n)=>(0,t.mergeAttributes)(e,n),{}):{}}function i(e,t){return r(e,t,!0)}function a(e,n,r,a){let o=(0,t.getExtensionField)(n,`renderHTML`,{name:n.name,options:n.options,storage:n.storage,parent:n.parent});return o?[n.name,({node:t,children:a})=>{try{return e(o({node:t,HTMLAttributes:i(t,r)}))(a)}catch(e){throw Error(`[tiptap error]: Node ${n.name} cannot be rendered, it's "renderToHTML" method threw an error: ${e.message}`,{cause:e})}}]:a?.unhandledNode?[n.name,a.unhandledNode]:[n.name,()=>{throw Error(`[tiptap error]: Node ${n.name} cannot be rendered, it is missing a "renderToHTML" method, please implement it or override the corresponding "nodeMapping" method to have a custom rendering`)}]}function o(e,n,r,a){let o=(0,t.getExtensionField)(n,`renderHTML`,{name:n.name,options:n.options,storage:n.storage,parent:n.parent});return o?[n.name,({mark:t,children:a})=>{try{return e(o({mark:t,HTMLAttributes:i(t,r)}))(a)}catch(e){throw Error(`[tiptap error]: Mark ${n.name} cannot be rendered, it's "renderToHTML" method threw an error: ${e.message}`,{cause:e})}}]:a?.unhandledMark?[n.name,a.unhandledMark]:[n.name,()=>{throw Error(`Node ${n.name} cannot be rendered, it is missing a "renderToHTML" method`)}]}function s({renderer:e,domOutputSpecToElement:r,mapDefinedTypes:i,content:s,extensions:c,options:l}){c=(0,t.resolveExtensions)(c);let u=(0,t.getAttributesFromExtensions)(c),{nodeExtensions:d,markExtensions:f}=(0,t.splitExtensions)(c);return s instanceof n.Node||(s=n.Node.fromJSON((0,t.getSchemaByResolvedExtensions)(c),s)),e({...l,nodeMapping:{...Object.fromEntries(d.filter(e=>e.name in i?!1:l?.nodeMapping?!(e.name in l.nodeMapping):!0).map(e=>a(r,e,u,l))),...i,...l?.nodeMapping},markMapping:{...Object.fromEntries(f.filter(e=>l?.markMapping?!(e.name in l.markMapping):!0).map(e=>o(r,e,u,l))),...l?.markMapping}})({content:s})}function c(e,{nodeMapping:t,markMapping:n,unhandledNode:r,unhandledMark:i}){return function a({content:o,parent:s}){let c=typeof o.type==`string`?o.type:o.type.name,l=t[c]??r;if(!l)throw Error(`missing handler for node type ${c}`);let u=e({component:l,props:{node:o,parent:s,renderElement:a,get children(){let e=[];return o.content&&o.content.forEach(t=>{e.push(a({content:t,parent:o}))}),e}}});return o.marks?o.marks.reduce((t,r)=>{let a=typeof r.type==`string`?r.type:r.type.name,c=n[a]??i;if(!c)throw Error(`missing handler for mark type ${a}`);return e({component:c,props:{mark:r,parent:s,node:o,children:t}})},u):u}}function l(e){return c(e=>e.component(e.props),e)}function u(e){let t=Object.entries(e||{}).map(([e,t])=>`${e.split(` `).at(-1)}=${JSON.stringify(t)}`).join(` `);return t?` ${t}`:``}function d(e){return[].concat(e||``).filter(Boolean).join(``)}var f=new Set([`iframe`,`script`,`style`,`title`,`textarea`,`div`,`span`,`a`,`button`]);function p(e){if(typeof e==`string`)return()=>e;if(typeof e==`object`&&`length`in e){let[t,n,r,...i]=e,a=t,o=a.split(` `);if(o.length>1&&(a=`${o[1]} xmlns="${o[0]}"`),n===void 0)return()=>`<${a}/>`;if(n===0)return e=>`<${a}>${d(e)}</${a}>`;if(typeof n==`object`)return Array.isArray(n)?r===void 0||r===0?e=>`<${a}>${p(n)(e)}</${a}>`:e=>`<${a}>${p(n)(e)}${[r].concat(i).map(t=>p(t)(e))}</${a}>`:r===void 0?f.has(a)?()=>`<${a}${u(n)}></${a}>`:()=>`<${a}${u(n)}/>`:r===0?e=>`<${a}${u(n)}>${d(e)}</${a}>`:e=>`<${a}${u(n)}>${[r].concat(i).map(t=>p(t)(e)).join(``)}</${a}>`}throw Error("[tiptap error]: Unsupported DomOutputSpec type, check the `renderHTML` method output or implement a node mapping",{cause:e})}function m({content:e,extensions:t,options:n}){return s({renderer:l,domOutputSpecToElement:p,mapDefinedTypes:{doc:({children:e})=>d(e),text:({node:e})=>e.text??``},content:e,extensions:t,options:n})}function h({content:e,extensions:t,options:n}){return m({content:e,extensions:t,options:{...n,nodeMapping:{bulletList({children:e}){return`
2
+ ${d(e)}`},orderedList({children:e}){return`
3
+ ${d(e)}`},listItem({node:e,children:t,parent:n}){if(n?.type.name===`bulletList`)return`- ${d(t).trim()}
4
+ `;if(n?.type.name===`orderedList`){let r=n.attrs.start||1;return n.forEach((t,n,i)=>{e===t&&(r=i+1)}),`${r}. ${d(t).trim()}
5
+ `}return d(t)},paragraph({children:e}){return`
6
+ ${d(e)}
7
+ `},heading({node:e,children:t}){let n=e.attrs.level;return`${Array(n).fill(`#`).join(``)} ${t}
8
+ `},codeBlock({node:e,children:t}){return`
9
+ \`\`\`${e.attrs.language}
10
+ ${d(t)}
11
+ \`\`\`
12
+ `},blockquote({children:e}){return`
13
+ ${d(e).trim().split(`
14
+ `).map(e=>`> ${e}`).join(`
15
+ `)}`},image({node:e}){return`![${e.attrs.alt}](${e.attrs.src})`},hardBreak(){return`
16
+ `},horizontalRule(){return`
17
+ ---
18
+ `},table({children:e,node:t}){if(!Array.isArray(e))return`
19
+ ${d(e)}
20
+ `;let n=t.children[0].childCount;return`
21
+ ${d(e[0])}| ${Array(n).fill(`---`).join(` | `)} |
22
+ ${d(e.slice(1))}
23
+ `},tableRow({children:e}){return Array.isArray(e)?`| ${e.join(` | `)} |
24
+ `:`${d(e)}
25
+ `},tableHeader({children:e}){return d(e).trim()},tableCell({children:e}){return d(e).trim()},...n?.nodeMapping},markMapping:{bold({children:e}){return`**${d(e)}**`},italic({children:e,node:t}){let n=!1;return t?.marks.some(e=>e.type.name===`bold`)&&(n=!0),n?`*${d(e)}*`:`_${d(e)}_`},code({children:e}){return`\`${d(e)}\``},strike({children:e}){return`~~${d(e)}~~`},underline({children:e}){return`<u>${d(e)}</u>`},subscript({children:e}){return`<sub>${d(e)}</sub>`},superscript({children:e}){return`<sup>${d(e)}</sup>`},link({mark:e,children:t}){return`[${d(t)}](${e.attrs.href})`},highlight({children:e}){return`==${d(e)}==`},...n?.markMapping}}})}var g=e=>Array.isArray(e)?e.join(``):e||``,_=(e,t,n)=>{let r=e.trim();return r?`${e.slice(0,e.length-e.trimStart().length)}${t}${r}${n}${e.slice(e.trimEnd().length)}`:e};function v(t,n){return h({extensions:n,content:t,options:{nodeMapping:{blockquote({children:e}){return g(e).trim().split(`
26
+ `).map(e=>e?`> ${e}`:`>`).join(`
27
+ `)+`
28
+ `},codeBlock({node:e,children:t}){return`\`\`\`${e.attrs?.language||``}\n${g(t)}\n\`\`\`\n`},mention({node:e}){return`<!-- @mention: {"id": "${e.attrs?.id||``}", "contactKey": "${e.attrs?.contactKey||``}", "name": "${e.attrs?.name||``}"} -->`},channel({node:e}){return`<!-- @channel: {"id": "${e.attrs?.id||``}", "channelKey": "${e.attrs?.channelKey||``}", "name": "${e.attrs?.name||``}", "locked": "${String(e.attrs?.locked??``)}"} -->`},"slash-commands"({node:e}){return`/${e.attrs?.command||``}`},emoji({node:t}){let n=t.attrs?.code;if(!n)return``;let r=e.codeToEmojiData(n);return r?e.stringToUnicode(r.unicode_output):n},variable({node:e}){return`{{${e.attrs?.id||``}=${e.attrs?.altText||``}}}`}},markMapping:{bold({children:e}){return _(g(e),`**`,`**`)},italic({children:e}){return _(g(e),`*`,`*`)},strike({children:e}){return _(g(e),`~~`,`~~`)},code({children:e}){return _(g(e),"`","`")},link({mark:e,children:t}){let n=g(t),r=e.attrs?.href||``,i=n.trim();return`${n.slice(0,n.length-n.trimStart().length)}[${i}](${r})${n.slice(n.trimEnd().length)}`},underline({children:e}){return g(e)}}}}).replace(/\n{3,}/g,`
29
+
30
+ `).replace(/^\n+|\n+$/g,``)}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return v}});
31
+ //# sourceMappingURL=MarkdownRenderer-BQQDcWMC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownRenderer-BQQDcWMC.cjs","names":["Node","codeToEmojiData","stringToUnicode"],"sources":["../../../node_modules/.pnpm/@tiptap+static-renderer@3.19.0_@tiptap+core@3.19.0_@tiptap+pm@3.19.0__@tiptap+pm@3.19.0_9606d4b01b88c88c850636a0b274a958/node_modules/@tiptap/static-renderer/dist/pm/markdown/index.js","../components/RichTextEditor/MarkdownRenderer.js"],"sourcesContent":["// src/pm/extensionRenderer.ts\nimport {\n getAttributesFromExtensions,\n getExtensionField,\n getSchemaByResolvedExtensions,\n resolveExtensions,\n splitExtensions\n} from \"@tiptap/core\";\nimport { Node } from \"@tiptap/pm/model\";\n\n// src/helpers.ts\nimport { mergeAttributes } from \"@tiptap/core\";\nfunction getAttributes(nodeOrMark, extensionAttributes, onlyRenderedAttributes) {\n const nodeOrMarkAttributes = nodeOrMark.attrs;\n if (!nodeOrMarkAttributes) {\n return {};\n }\n return extensionAttributes.filter((item) => {\n if (item.type !== (typeof nodeOrMark.type === \"string\" ? nodeOrMark.type : nodeOrMark.type.name)) {\n return false;\n }\n if (onlyRenderedAttributes) {\n return item.attribute.rendered;\n }\n return true;\n }).map((item) => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }\n return item.attribute.renderHTML(nodeOrMarkAttributes) || {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }).reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {});\n}\nfunction getHTMLAttributes(nodeOrMark, extensionAttributes) {\n return getAttributes(nodeOrMark, extensionAttributes, true);\n}\n\n// src/pm/extensionRenderer.ts\nfunction mapNodeExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledNode) {\n return [extension.name, options.unhandledNode];\n }\n return [\n extension.name,\n () => {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method, please implement it or override the corresponding \"nodeMapping\" method to have a custom rendering`\n );\n }\n ];\n }\n return [\n extension.name,\n ({ node, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n node,\n HTMLAttributes: getHTMLAttributes(node, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction mapMarkExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledMark) {\n return [extension.name, options.unhandledMark];\n }\n return [\n extension.name,\n () => {\n throw new Error(`Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method`);\n }\n ];\n }\n return [\n extension.name,\n ({ mark, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n mark,\n HTMLAttributes: getHTMLAttributes(mark, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Mark ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction renderToElement({\n renderer,\n domOutputSpecToElement,\n mapDefinedTypes,\n content,\n extensions,\n options\n}) {\n extensions = resolveExtensions(extensions);\n const extensionAttributes = getAttributesFromExtensions(extensions);\n const { nodeExtensions, markExtensions } = splitExtensions(extensions);\n if (!(content instanceof Node)) {\n content = Node.fromJSON(getSchemaByResolvedExtensions(extensions), content);\n }\n return renderer({\n ...options,\n nodeMapping: {\n ...Object.fromEntries(\n nodeExtensions.filter((e) => {\n if (e.name in mapDefinedTypes) {\n return false;\n }\n if (options == null ? void 0 : options.nodeMapping) {\n return !(e.name in options.nodeMapping);\n }\n return true;\n }).map(\n (nodeExtension) => mapNodeExtensionToReactNode(domOutputSpecToElement, nodeExtension, extensionAttributes, options)\n )\n ),\n ...mapDefinedTypes,\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n ...Object.fromEntries(\n markExtensions.filter((e) => {\n if (options == null ? void 0 : options.markMapping) {\n return !(e.name in options.markMapping);\n }\n return true;\n }).map((mark) => mapMarkExtensionToReactNode(domOutputSpecToElement, mark, extensionAttributes, options))\n ),\n ...options == null ? void 0 : options.markMapping\n }\n })({ content });\n}\n\n// src/json/renderer.ts\nfunction TiptapStaticRenderer(renderComponent, {\n nodeMapping,\n markMapping,\n unhandledNode,\n unhandledMark\n}) {\n return function renderContent({\n content,\n parent\n }) {\n var _a;\n const nodeType = typeof content.type === \"string\" ? content.type : content.type.name;\n const NodeHandler = (_a = nodeMapping[nodeType]) != null ? _a : unhandledNode;\n if (!NodeHandler) {\n throw new Error(`missing handler for node type ${nodeType}`);\n }\n const nodeContent = renderComponent({\n component: NodeHandler,\n props: {\n node: content,\n parent,\n renderElement: renderContent,\n // Lazily compute the children to avoid unnecessary recursion\n get children() {\n const children = [];\n if (content.content) {\n content.content.forEach((child) => {\n children.push(\n renderContent({\n content: child,\n parent: content\n })\n );\n });\n }\n return children;\n }\n }\n });\n const markedContent = content.marks ? content.marks.reduce((acc, mark) => {\n var _a2;\n const markType = typeof mark.type === \"string\" ? mark.type : mark.type.name;\n const MarkHandler = (_a2 = markMapping[markType]) != null ? _a2 : unhandledMark;\n if (!MarkHandler) {\n throw new Error(`missing handler for mark type ${markType}`);\n }\n return renderComponent({\n component: MarkHandler,\n props: {\n mark,\n parent,\n node: content,\n children: acc\n }\n });\n }, nodeContent) : nodeContent;\n return markedContent;\n };\n}\n\n// src/json/html-string/string.ts\nfunction renderJSONContentToString(options) {\n return TiptapStaticRenderer((ctx) => {\n return ctx.component(ctx.props);\n }, options);\n}\nfunction serializeAttrsToHTMLString(attrs) {\n const output = Object.entries(attrs || {}).map(([key, value]) => `${key.split(\" \").at(-1)}=${JSON.stringify(value)}`).join(\" \");\n return output ? ` ${output}` : \"\";\n}\nfunction serializeChildrenToHTMLString(children) {\n return [].concat(children || \"\").filter(Boolean).join(\"\");\n}\n\n// src/pm/html-string/html-string.ts\nvar NON_SELF_CLOSING_TAGS = /* @__PURE__ */ new Set([\"iframe\", \"script\", \"style\", \"title\", \"textarea\", \"div\", \"span\", \"a\", \"button\"]);\nfunction domOutputSpecToHTMLString(content) {\n if (typeof content === \"string\") {\n return () => content;\n }\n if (typeof content === \"object\" && \"length\" in content) {\n const [_tag, attrs, children, ...rest] = content;\n let tag = _tag;\n const parts = tag.split(\" \");\n if (parts.length > 1) {\n tag = `${parts[1]} xmlns=\"${parts[0]}\"`;\n }\n if (attrs === void 0) {\n return () => `<${tag}/>`;\n }\n if (attrs === 0) {\n return (child) => `<${tag}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n if (typeof attrs === \"object\") {\n if (Array.isArray(attrs)) {\n if (children === void 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n if (children === 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child))}</${tag}>`;\n }\n if (children === void 0) {\n if (NON_SELF_CLOSING_TAGS.has(tag)) {\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}></${tag}>`;\n }\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}/>`;\n }\n if (children === 0) {\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child)).join(\"\")}</${tag}>`;\n }\n }\n throw new Error(\n \"[tiptap error]: Unsupported DomOutputSpec type, check the `renderHTML` method output or implement a node mapping\",\n {\n cause: content\n }\n );\n}\nfunction renderToHTMLString({\n content,\n extensions,\n options\n}) {\n return renderToElement({\n renderer: renderJSONContentToString,\n domOutputSpecToElement: domOutputSpecToHTMLString,\n mapDefinedTypes: {\n // Map a doc node to concatenated children\n doc: ({ children }) => serializeChildrenToHTMLString(children),\n // Map a text node to its text content\n text: ({ node }) => {\n var _a;\n return (_a = node.text) != null ? _a : \"\";\n }\n },\n content,\n extensions,\n options\n });\n}\n\n// src/pm/markdown/markdown.ts\nfunction renderToMarkdown({\n content,\n extensions,\n options\n}) {\n return renderToHTMLString({\n content,\n extensions,\n options: {\n ...options,\n nodeMapping: {\n bulletList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n orderedList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n listItem({ node, children, parent }) {\n if ((parent == null ? void 0 : parent.type.name) === \"bulletList\") {\n return `- ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n if ((parent == null ? void 0 : parent.type.name) === \"orderedList\") {\n let number = parent.attrs.start || 1;\n parent.forEach((parentChild, _offset, index) => {\n if (node === parentChild) {\n number = index + 1;\n }\n });\n return `${number}. ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n return serializeChildrenToHTMLString(children);\n },\n paragraph({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n },\n heading({ node, children }) {\n const level = node.attrs.level;\n return `${new Array(level).fill(\"#\").join(\"\")} ${children}\n`;\n },\n codeBlock({ node, children }) {\n return `\n\\`\\`\\`${node.attrs.language}\n${serializeChildrenToHTMLString(children)}\n\\`\\`\\`\n`;\n },\n blockquote({ children }) {\n return `\n${serializeChildrenToHTMLString(children).trim().split(\"\\n\").map((a) => `> ${a}`).join(\"\\n\")}`;\n },\n image({ node }) {\n return `![${node.attrs.alt}](${node.attrs.src})`;\n },\n hardBreak() {\n return \"\\n\";\n },\n horizontalRule() {\n return \"\\n---\\n\";\n },\n table({ children, node }) {\n if (!Array.isArray(children)) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n }\n const columnCount = node.children[0].childCount;\n return `\n${serializeChildrenToHTMLString(children[0])}| ${new Array(columnCount).fill(\"---\").join(\" | \")} |\n${serializeChildrenToHTMLString(children.slice(1))}\n`;\n },\n tableRow({ children }) {\n if (Array.isArray(children)) {\n return `| ${children.join(\" | \")} |\n`;\n }\n return `${serializeChildrenToHTMLString(children)}\n`;\n },\n tableHeader({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n tableCell({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n bold({ children }) {\n return `**${serializeChildrenToHTMLString(children)}**`;\n },\n italic({ children, node }) {\n let isBoldToo = false;\n if (node == null ? void 0 : node.marks.some((m) => m.type.name === \"bold\")) {\n isBoldToo = true;\n }\n if (isBoldToo) {\n return `*${serializeChildrenToHTMLString(children)}*`;\n }\n return `_${serializeChildrenToHTMLString(children)}_`;\n },\n code({ children }) {\n return `\\`${serializeChildrenToHTMLString(children)}\\``;\n },\n strike({ children }) {\n return `~~${serializeChildrenToHTMLString(children)}~~`;\n },\n underline({ children }) {\n return `<u>${serializeChildrenToHTMLString(children)}</u>`;\n },\n subscript({ children }) {\n return `<sub>${serializeChildrenToHTMLString(children)}</sub>`;\n },\n superscript({ children }) {\n return `<sup>${serializeChildrenToHTMLString(children)}</sup>`;\n },\n link({ mark, children }) {\n return `[${serializeChildrenToHTMLString(children)}](${mark.attrs.href})`;\n },\n highlight({ children }) {\n return `==${serializeChildrenToHTMLString(children)}==`;\n },\n ...options == null ? void 0 : options.markMapping\n }\n }\n });\n}\nexport {\n mapMarkExtensionToReactNode,\n mapNodeExtensionToReactNode,\n renderToElement,\n renderToMarkdown\n};\n//# sourceMappingURL=index.js.map","import { renderToMarkdown } from '@tiptap/static-renderer/pm/markdown';\nimport { codeToEmojiData, stringToUnicode } from '@/common/emoji';\n\n// The pm/markdown renderer passes children as string[] (one entry per child node),\n// not as a pre-joined string. Normalize to a string before processing.\nconst joinChildren = (children) => Array.isArray(children) ? children.join('') : (children || '');\n\n// Move leading/trailing spaces outside mark delimiters so parsers like CommonMark\n// don't reject them (e.g. \"** bold **\" → \" **bold** \").\nconst wrapMark = (text, open, close) => {\n const trimmed = text.trim();\n if (!trimmed) return text;\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}${open}${trimmed}${close}${trailing}`;\n};\n\n/**\n * Renders a TipTap/ProseMirror JSON document to a markdown string.\n *\n * Uses @tiptap/static-renderer with custom mappings to preserve the output\n * format of the legacy jsonToMarkdownConverter, including Dialtone-specific\n * node types (mention, channel, emoji, variable, slash-commands).\n *\n * @param {import('@tiptap/core').JSONContent} jsonContent - TipTap JSON document\n * @param {import('@tiptap/core').Extensions} extensions - Active editor extensions\n * @returns {string}\n */\nexport function renderEditorToMarkdown (jsonContent, extensions) {\n const output = renderToMarkdown({\n extensions,\n content: jsonContent,\n options: {\n nodeMapping: {\n // Override blockquote: built-in omits trailing newline (causes lazy continuation).\n // Since we replace the built-in entirely, we must add the '> ' prefix ourselves.\n blockquote ({ children }) {\n const text = joinChildren(children).trim();\n const quoted = text\n .split('\\n')\n .map(line => line ? `> ${line}` : '>')\n .join('\\n');\n return quoted + '\\n';\n },\n\n // Override codeBlock: built-in passes null language through literally\n codeBlock ({ node, children }) {\n const lang = node.attrs?.language || '';\n return `\\`\\`\\`${lang}\\n${joinChildren(children)}\\n\\`\\`\\`\\n`;\n },\n\n // Custom Dialtone node types\n mention ({ node }) {\n const id = node.attrs?.id || '';\n const contactKey = node.attrs?.contactKey || '';\n const name = node.attrs?.name || '';\n return `<!-- @mention: {\"id\": \"${id}\", \"contactKey\": \"${contactKey}\", \"name\": \"${name}\"} -->`;\n },\n\n channel ({ node }) {\n const id = node.attrs?.id || '';\n const channelKey = node.attrs?.channelKey || '';\n const name = node.attrs?.name || '';\n const locked = String(node.attrs?.locked ?? '');\n return `<!-- @channel: {\"id\": \"${id}\", \"channelKey\": \"${channelKey}\", \"name\": \"${name}\", \"locked\": \"${locked}\"} -->`;\n },\n\n 'slash-commands' ({ node }) {\n return `/${node.attrs?.command || ''}`;\n },\n\n emoji ({ node }) {\n const code = node.attrs?.code;\n if (!code) return '';\n // Always output emoji as unicode characters rather than shortcodes, matching\n // renderText's backwards-compatibility behavior with our backend (see Emoji.js).\n const emojiData = codeToEmojiData(code);\n return emojiData ? stringToUnicode(emojiData.unicode_output) : code;\n },\n\n variable ({ node }) {\n const id = node.attrs?.id || '';\n const altText = node.attrs?.altText || '';\n return `{{${id}=${altText}}}`;\n },\n },\n\n markMapping: {\n bold ({ children }) {\n return wrapMark(joinChildren(children), '**', '**');\n },\n\n // Override italic: use * instead of built-in _ and fix boundary spaces\n italic ({ children }) {\n return wrapMark(joinChildren(children), '*', '*');\n },\n\n strike ({ children }) {\n return wrapMark(joinChildren(children), '~~', '~~');\n },\n\n code ({ children }) {\n return wrapMark(joinChildren(children), '`', '`');\n },\n\n link ({ mark, children }) {\n const text = joinChildren(children);\n const href = mark.attrs?.href || '';\n const trimmed = text.trim();\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}[${trimmed}](${href})${trailing}`;\n },\n\n // Override underline: pass-through (no markdown equivalent, matches legacy no-op)\n underline ({ children }) {\n return joinChildren(children);\n },\n },\n },\n });\n // Collapse 3+ consecutive newlines to 2 (CommonMark ignores extra blank\n // lines between blocks), and strip the leading newline that the built-in\n // paragraph renderer always prepends to the first node.\n return output.replace(/\\n{3,}/g, '\\n\\n').replace(/^\\n+|\\n+$/g, '');\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,70 +1,71 @@
1
- import { getAttributesFromExtensions as e, getExtensionField as t, getSchemaByResolvedExtensions as n, mergeAttributes as r, resolveExtensions as i, splitExtensions as a } from "@tiptap/core";
2
- import { Node as o } from "@tiptap/pm/model";
1
+ import { codeToEmojiData as e, stringToUnicode as t } from "./common/emoji/index.js";
2
+ import { getAttributesFromExtensions as n, getExtensionField as r, getSchemaByResolvedExtensions as i, mergeAttributes as a, resolveExtensions as o, splitExtensions as s } from "@tiptap/core";
3
+ import { Node as c } from "@tiptap/pm/model";
3
4
  //#region ../../node_modules/.pnpm/@tiptap+static-renderer@3.19.0_@tiptap+core@3.19.0_@tiptap+pm@3.19.0__@tiptap+pm@3.19.0_9606d4b01b88c88c850636a0b274a958/node_modules/@tiptap/static-renderer/dist/pm/markdown/index.js
4
- function s(e, t, n) {
5
- let i = e.attrs;
6
- return i ? t.filter((t) => t.type === (typeof e.type == "string" ? e.type : e.type.name) ? n ? t.attribute.rendered : !0 : !1).map((e) => e.attribute.renderHTML && e.attribute.renderHTML(i) || { [e.name]: e.name in i ? i[e.name] : e.attribute.default }).reduce((e, t) => r(e, t), {}) : {};
5
+ function l(e, t, n) {
6
+ let r = e.attrs;
7
+ return r ? t.filter((t) => t.type === (typeof e.type == "string" ? e.type : e.type.name) ? n ? t.attribute.rendered : !0 : !1).map((e) => e.attribute.renderHTML && e.attribute.renderHTML(r) || { [e.name]: e.name in r ? r[e.name] : e.attribute.default }).reduce((e, t) => a(e, t), {}) : {};
7
8
  }
8
- function c(e, t) {
9
- return s(e, t, !0);
9
+ function u(e, t) {
10
+ return l(e, t, !0);
10
11
  }
11
- function l(e, n, r, i) {
12
- let a = t(n, "renderHTML", {
13
- name: n.name,
14
- options: n.options,
15
- storage: n.storage,
16
- parent: n.parent
12
+ function d(e, t, n, i) {
13
+ let a = r(t, "renderHTML", {
14
+ name: t.name,
15
+ options: t.options,
16
+ storage: t.storage,
17
+ parent: t.parent
17
18
  });
18
- return a ? [n.name, ({ node: t, children: i }) => {
19
+ return a ? [t.name, ({ node: r, children: i }) => {
19
20
  try {
20
21
  return e(a({
21
- node: t,
22
- HTMLAttributes: c(t, r)
22
+ node: r,
23
+ HTMLAttributes: u(r, n)
23
24
  }))(i);
24
25
  } catch (e) {
25
- throw Error(`[tiptap error]: Node ${n.name} cannot be rendered, it's "renderToHTML" method threw an error: ${e.message}`, { cause: e });
26
+ throw Error(`[tiptap error]: Node ${t.name} cannot be rendered, it's "renderToHTML" method threw an error: ${e.message}`, { cause: e });
26
27
  }
27
- }] : i?.unhandledNode ? [n.name, i.unhandledNode] : [n.name, () => {
28
- throw Error(`[tiptap error]: Node ${n.name} cannot be rendered, it is missing a "renderToHTML" method, please implement it or override the corresponding "nodeMapping" method to have a custom rendering`);
28
+ }] : i?.unhandledNode ? [t.name, i.unhandledNode] : [t.name, () => {
29
+ throw Error(`[tiptap error]: Node ${t.name} cannot be rendered, it is missing a "renderToHTML" method, please implement it or override the corresponding "nodeMapping" method to have a custom rendering`);
29
30
  }];
30
31
  }
31
- function u(e, n, r, i) {
32
- let a = t(n, "renderHTML", {
33
- name: n.name,
34
- options: n.options,
35
- storage: n.storage,
36
- parent: n.parent
32
+ function f(e, t, n, i) {
33
+ let a = r(t, "renderHTML", {
34
+ name: t.name,
35
+ options: t.options,
36
+ storage: t.storage,
37
+ parent: t.parent
37
38
  });
38
- return a ? [n.name, ({ mark: t, children: i }) => {
39
+ return a ? [t.name, ({ mark: r, children: i }) => {
39
40
  try {
40
41
  return e(a({
41
- mark: t,
42
- HTMLAttributes: c(t, r)
42
+ mark: r,
43
+ HTMLAttributes: u(r, n)
43
44
  }))(i);
44
45
  } catch (e) {
45
- throw Error(`[tiptap error]: Mark ${n.name} cannot be rendered, it's "renderToHTML" method threw an error: ${e.message}`, { cause: e });
46
+ throw Error(`[tiptap error]: Mark ${t.name} cannot be rendered, it's "renderToHTML" method threw an error: ${e.message}`, { cause: e });
46
47
  }
47
- }] : i?.unhandledMark ? [n.name, i.unhandledMark] : [n.name, () => {
48
- throw Error(`Node ${n.name} cannot be rendered, it is missing a "renderToHTML" method`);
48
+ }] : i?.unhandledMark ? [t.name, i.unhandledMark] : [t.name, () => {
49
+ throw Error(`Node ${t.name} cannot be rendered, it is missing a "renderToHTML" method`);
49
50
  }];
50
51
  }
51
- function d({ renderer: t, domOutputSpecToElement: r, mapDefinedTypes: s, content: c, extensions: d, options: f }) {
52
- d = i(d);
53
- let p = e(d), { nodeExtensions: m, markExtensions: h } = a(d);
54
- return c instanceof o || (c = o.fromJSON(n(d), c)), t({
55
- ...f,
52
+ function p({ renderer: e, domOutputSpecToElement: t, mapDefinedTypes: r, content: a, extensions: l, options: u }) {
53
+ l = o(l);
54
+ let p = n(l), { nodeExtensions: m, markExtensions: h } = s(l);
55
+ return a instanceof c || (a = c.fromJSON(i(l), a)), e({
56
+ ...u,
56
57
  nodeMapping: {
57
- ...Object.fromEntries(m.filter((e) => e.name in s ? !1 : f?.nodeMapping ? !(e.name in f.nodeMapping) : !0).map((e) => l(r, e, p, f))),
58
- ...s,
59
- ...f?.nodeMapping
58
+ ...Object.fromEntries(m.filter((e) => e.name in r ? !1 : u?.nodeMapping ? !(e.name in u.nodeMapping) : !0).map((e) => d(t, e, p, u))),
59
+ ...r,
60
+ ...u?.nodeMapping
60
61
  },
61
62
  markMapping: {
62
- ...Object.fromEntries(h.filter((e) => f?.markMapping ? !(e.name in f.markMapping) : !0).map((e) => u(r, e, p, f))),
63
- ...f?.markMapping
63
+ ...Object.fromEntries(h.filter((e) => u?.markMapping ? !(e.name in u.markMapping) : !0).map((e) => f(t, e, p, u))),
64
+ ...u?.markMapping
64
65
  }
65
- })({ content: c });
66
+ })({ content: a });
66
67
  }
67
- function f(e, { nodeMapping: t, markMapping: n, unhandledNode: r, unhandledMark: i }) {
68
+ function m(e, { nodeMapping: t, markMapping: n, unhandledNode: r, unhandledMark: i }) {
68
69
  return function a({ content: o, parent: s }) {
69
70
  let c = typeof o.type == "string" ? o.type : o.type.name, l = t[c] ?? r;
70
71
  if (!l) throw Error(`missing handler for node type ${c}`);
@@ -100,17 +101,17 @@ function f(e, { nodeMapping: t, markMapping: n, unhandledNode: r, unhandledMark:
100
101
  }, u) : u;
101
102
  };
102
103
  }
103
- function p(e) {
104
- return f((e) => e.component(e.props), e);
104
+ function h(e) {
105
+ return m((e) => e.component(e.props), e);
105
106
  }
106
- function m(e) {
107
+ function g(e) {
107
108
  let t = Object.entries(e || {}).map(([e, t]) => `${e.split(" ").at(-1)}=${JSON.stringify(t)}`).join(" ");
108
109
  return t ? ` ${t}` : "";
109
110
  }
110
- function h(e) {
111
+ function _(e) {
111
112
  return [].concat(e || "").filter(Boolean).join("");
112
113
  }
113
- var g = /* @__PURE__ */ new Set([
114
+ var v = /* @__PURE__ */ new Set([
114
115
  "iframe",
115
116
  "script",
116
117
  "style",
@@ -121,22 +122,22 @@ var g = /* @__PURE__ */ new Set([
121
122
  "a",
122
123
  "button"
123
124
  ]);
124
- function _(e) {
125
+ function y(e) {
125
126
  if (typeof e == "string") return () => e;
126
127
  if (typeof e == "object" && "length" in e) {
127
128
  let [t, n, r, ...i] = e, a = t, o = a.split(" ");
128
129
  if (o.length > 1 && (a = `${o[1]} xmlns="${o[0]}"`), n === void 0) return () => `<${a}/>`;
129
- if (n === 0) return (e) => `<${a}>${h(e)}</${a}>`;
130
- if (typeof n == "object") return Array.isArray(n) ? r === void 0 || r === 0 ? (e) => `<${a}>${_(n)(e)}</${a}>` : (e) => `<${a}>${_(n)(e)}${[r].concat(i).map((t) => _(t)(e))}</${a}>` : r === void 0 ? g.has(a) ? () => `<${a}${m(n)}></${a}>` : () => `<${a}${m(n)}/>` : r === 0 ? (e) => `<${a}${m(n)}>${h(e)}</${a}>` : (e) => `<${a}${m(n)}>${[r].concat(i).map((t) => _(t)(e)).join("")}</${a}>`;
130
+ if (n === 0) return (e) => `<${a}>${_(e)}</${a}>`;
131
+ if (typeof n == "object") return Array.isArray(n) ? r === void 0 || r === 0 ? (e) => `<${a}>${y(n)(e)}</${a}>` : (e) => `<${a}>${y(n)(e)}${[r].concat(i).map((t) => y(t)(e))}</${a}>` : r === void 0 ? v.has(a) ? () => `<${a}${g(n)}></${a}>` : () => `<${a}${g(n)}/>` : r === 0 ? (e) => `<${a}${g(n)}>${_(e)}</${a}>` : (e) => `<${a}${g(n)}>${[r].concat(i).map((t) => y(t)(e)).join("")}</${a}>`;
131
132
  }
132
133
  throw Error("[tiptap error]: Unsupported DomOutputSpec type, check the `renderHTML` method output or implement a node mapping", { cause: e });
133
134
  }
134
- function v({ content: e, extensions: t, options: n }) {
135
- return d({
136
- renderer: p,
137
- domOutputSpecToElement: _,
135
+ function b({ content: e, extensions: t, options: n }) {
136
+ return p({
137
+ renderer: h,
138
+ domOutputSpecToElement: y,
138
139
  mapDefinedTypes: {
139
- doc: ({ children: e }) => h(e),
140
+ doc: ({ children: e }) => _(e),
140
141
  text: ({ node: e }) => e.text ?? ""
141
142
  },
142
143
  content: e,
@@ -144,8 +145,8 @@ function v({ content: e, extensions: t, options: n }) {
144
145
  options: n
145
146
  });
146
147
  }
147
- function y({ content: e, extensions: t, options: n }) {
148
- return v({
148
+ function x({ content: e, extensions: t, options: n }) {
149
+ return b({
149
150
  content: e,
150
151
  extensions: t,
151
152
  options: {
@@ -153,27 +154,27 @@ function y({ content: e, extensions: t, options: n }) {
153
154
  nodeMapping: {
154
155
  bulletList({ children: e }) {
155
156
  return `
156
- ${h(e)}`;
157
+ ${_(e)}`;
157
158
  },
158
159
  orderedList({ children: e }) {
159
160
  return `
160
- ${h(e)}`;
161
+ ${_(e)}`;
161
162
  },
162
163
  listItem({ node: e, children: t, parent: n }) {
163
- if (n?.type.name === "bulletList") return `- ${h(t).trim()}
164
+ if (n?.type.name === "bulletList") return `- ${_(t).trim()}
164
165
  `;
165
166
  if (n?.type.name === "orderedList") {
166
167
  let r = n.attrs.start || 1;
167
168
  return n.forEach((t, n, i) => {
168
169
  e === t && (r = i + 1);
169
- }), `${r}. ${h(t).trim()}
170
+ }), `${r}. ${_(t).trim()}
170
171
  `;
171
172
  }
172
- return h(t);
173
+ return _(t);
173
174
  },
174
175
  paragraph({ children: e }) {
175
176
  return `
176
- ${h(e)}
177
+ ${_(e)}
177
178
  `;
178
179
  },
179
180
  heading({ node: e, children: t }) {
@@ -184,13 +185,13 @@ ${h(e)}
184
185
  codeBlock({ node: e, children: t }) {
185
186
  return `
186
187
  \`\`\`${e.attrs.language}
187
- ${h(t)}
188
+ ${_(t)}
188
189
  \`\`\`
189
190
  `;
190
191
  },
191
192
  blockquote({ children: e }) {
192
193
  return `
193
- ${h(e).trim().split("\n").map((e) => `> ${e}`).join("\n")}`;
194
+ ${_(e).trim().split("\n").map((e) => `> ${e}`).join("\n")}`;
194
195
  },
195
196
  image({ node: e }) {
196
197
  return `![${e.attrs.alt}](${e.attrs.src})`;
@@ -203,55 +204,55 @@ ${h(e).trim().split("\n").map((e) => `> ${e}`).join("\n")}`;
203
204
  },
204
205
  table({ children: e, node: t }) {
205
206
  if (!Array.isArray(e)) return `
206
- ${h(e)}
207
+ ${_(e)}
207
208
  `;
208
209
  let n = t.children[0].childCount;
209
210
  return `
210
- ${h(e[0])}| ${Array(n).fill("---").join(" | ")} |
211
- ${h(e.slice(1))}
211
+ ${_(e[0])}| ${Array(n).fill("---").join(" | ")} |
212
+ ${_(e.slice(1))}
212
213
  `;
213
214
  },
214
215
  tableRow({ children: e }) {
215
216
  return Array.isArray(e) ? `| ${e.join(" | ")} |
216
- ` : `${h(e)}
217
+ ` : `${_(e)}
217
218
  `;
218
219
  },
219
220
  tableHeader({ children: e }) {
220
- return h(e).trim();
221
+ return _(e).trim();
221
222
  },
222
223
  tableCell({ children: e }) {
223
- return h(e).trim();
224
+ return _(e).trim();
224
225
  },
225
226
  ...n?.nodeMapping
226
227
  },
227
228
  markMapping: {
228
229
  bold({ children: e }) {
229
- return `**${h(e)}**`;
230
+ return `**${_(e)}**`;
230
231
  },
231
232
  italic({ children: e, node: t }) {
232
233
  let n = !1;
233
- return t?.marks.some((e) => e.type.name === "bold") && (n = !0), n ? `*${h(e)}*` : `_${h(e)}_`;
234
+ return t?.marks.some((e) => e.type.name === "bold") && (n = !0), n ? `*${_(e)}*` : `_${_(e)}_`;
234
235
  },
235
236
  code({ children: e }) {
236
- return `\`${h(e)}\``;
237
+ return `\`${_(e)}\``;
237
238
  },
238
239
  strike({ children: e }) {
239
- return `~~${h(e)}~~`;
240
+ return `~~${_(e)}~~`;
240
241
  },
241
242
  underline({ children: e }) {
242
- return `<u>${h(e)}</u>`;
243
+ return `<u>${_(e)}</u>`;
243
244
  },
244
245
  subscript({ children: e }) {
245
- return `<sub>${h(e)}</sub>`;
246
+ return `<sub>${_(e)}</sub>`;
246
247
  },
247
248
  superscript({ children: e }) {
248
- return `<sup>${h(e)}</sup>`;
249
+ return `<sup>${_(e)}</sup>`;
249
250
  },
250
251
  link({ mark: e, children: t }) {
251
- return `[${h(t)}](${e.attrs.href})`;
252
+ return `[${_(t)}](${e.attrs.href})`;
252
253
  },
253
254
  highlight({ children: e }) {
254
- return `==${h(e)}==`;
255
+ return `==${_(e)}==`;
255
256
  },
256
257
  ...n?.markMapping
257
258
  }
@@ -260,21 +261,21 @@ ${h(e.slice(1))}
260
261
  }
261
262
  //#endregion
262
263
  //#region components/RichTextEditor/MarkdownRenderer.js
263
- var b = (e) => Array.isArray(e) ? e.join("") : e || "", x = (e, t, n) => {
264
+ var S = (e) => Array.isArray(e) ? e.join("") : e || "", C = (e, t, n) => {
264
265
  let r = e.trim();
265
266
  return r ? `${e.slice(0, e.length - e.trimStart().length)}${t}${r}${n}${e.slice(e.trimEnd().length)}` : e;
266
267
  };
267
- function S(e, t) {
268
- return y({
269
- extensions: t,
270
- content: e,
268
+ function w(n, r) {
269
+ return x({
270
+ extensions: r,
271
+ content: n,
271
272
  options: {
272
273
  nodeMapping: {
273
274
  blockquote({ children: e }) {
274
- return b(e).trim().split("\n").map((e) => e ? `> ${e}` : ">").join("\n") + "\n";
275
+ return S(e).trim().split("\n").map((e) => e ? `> ${e}` : ">").join("\n") + "\n";
275
276
  },
276
277
  codeBlock({ node: e, children: t }) {
277
- return `\`\`\`${e.attrs?.language || ""}\n${b(t)}\n\`\`\`\n`;
278
+ return `\`\`\`${e.attrs?.language || ""}\n${S(t)}\n\`\`\`\n`;
278
279
  },
279
280
  mention({ node: e }) {
280
281
  return `<!-- @mention: {"id": "${e.attrs?.id || ""}", "contactKey": "${e.attrs?.contactKey || ""}", "name": "${e.attrs?.name || ""}"} -->`;
@@ -285,8 +286,11 @@ function S(e, t) {
285
286
  "slash-commands"({ node: e }) {
286
287
  return `/${e.attrs?.command || ""}`;
287
288
  },
288
- emoji({ node: e }) {
289
- return e.attrs?.code || "";
289
+ emoji({ node: n }) {
290
+ let r = n.attrs?.code;
291
+ if (!r) return "";
292
+ let i = e(r);
293
+ return i ? t(i.unicode_output) : r;
290
294
  },
291
295
  variable({ node: e }) {
292
296
  return `{{${e.attrs?.id || ""}=${e.attrs?.altText || ""}}}`;
@@ -294,29 +298,29 @@ function S(e, t) {
294
298
  },
295
299
  markMapping: {
296
300
  bold({ children: e }) {
297
- return x(b(e), "**", "**");
301
+ return C(S(e), "**", "**");
298
302
  },
299
303
  italic({ children: e }) {
300
- return x(b(e), "*", "*");
304
+ return C(S(e), "*", "*");
301
305
  },
302
306
  strike({ children: e }) {
303
- return x(b(e), "~~", "~~");
307
+ return C(S(e), "~~", "~~");
304
308
  },
305
309
  code({ children: e }) {
306
- return x(b(e), "`", "`");
310
+ return C(S(e), "`", "`");
307
311
  },
308
312
  link({ mark: e, children: t }) {
309
- let n = b(t), r = e.attrs?.href || "", i = n.trim();
313
+ let n = S(t), r = e.attrs?.href || "", i = n.trim();
310
314
  return `${n.slice(0, n.length - n.trimStart().length)}[${i}](${r})${n.slice(n.trimEnd().length)}`;
311
315
  },
312
316
  underline({ children: e }) {
313
- return b(e);
317
+ return S(e);
314
318
  }
315
319
  }
316
320
  }
317
321
  }).replace(/\n{3,}/g, "\n\n").replace(/^\n+|\n+$/g, "");
318
322
  }
319
323
  //#endregion
320
- export { S as t };
324
+ export { w as t };
321
325
 
322
- //# sourceMappingURL=MarkdownRenderer-NSSny0ID.js.map
326
+ //# sourceMappingURL=MarkdownRenderer-D3rM2x-1.js.map