{"version":3,"file":"markdownRenderer-DCgGQseq.cjs","names":["Node"],"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_react_4n7lapq7bmfej5hsrzhdkukr6e/node_modules/@tiptap/static-renderer/dist/pm/markdown/index.js","../components/rich_text_editor/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';\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          return node.attrs?.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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"}