// src/blockquote.tsx import { mergeAttributes, Node, wrappingInputRule } from "@tiptap/core"; import { jsx } from "@tiptap/core/jsx-runtime"; var inputRegex = /^\s*>\s$/; var Blockquote = Node.create({ name: "blockquote", addOptions() { return { HTMLAttributes: {} }; }, content: "block+", group: "block", defining: true, parseHTML() { return [{ tag: "blockquote" }]; }, renderHTML({ HTMLAttributes }) { return /* @__PURE__ */ jsx("blockquote", { ...mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), children: /* @__PURE__ */ jsx("slot", {}) }); }, parseMarkdown: (token, helpers) => { return helpers.createNode("blockquote", void 0, helpers.parseChildren(token.tokens || [])); }, renderMarkdown: (node, h) => { if (!node.content) { return ""; } const prefix = ">"; const result = []; node.content.forEach((child) => { const childContent = h.renderChildren([child]); const lines = childContent.split("\n"); const linesWithPrefix = lines.map((line) => { if (line.trim() === "") { return prefix; } return `${prefix} ${line}`; }); result.push(linesWithPrefix.join("\n")); }); return result.join(` ${prefix} `); }, addCommands() { return { setBlockquote: () => ({ commands }) => { return commands.wrapIn(this.name); }, toggleBlockquote: () => ({ commands }) => { return commands.toggleWrap(this.name); }, unsetBlockquote: () => ({ commands }) => { return commands.lift(this.name); } }; }, addKeyboardShortcuts() { return { "Mod-Shift-b": () => this.editor.commands.toggleBlockquote() }; }, addInputRules() { return [ wrappingInputRule({ find: inputRegex, type: this.type }) ]; } }); // src/index.ts var index_default = Blockquote; export { Blockquote, index_default as default, inputRegex }; //# sourceMappingURL=index.js.map