{"version":3,"file":"index.cjs","sources":["../src/blockquote.ts"],"sourcesContent":["import { mergeAttributes, Node, wrappingInputRule } from \"@sse-editor/core\";\r\n\r\nexport interface BlockquoteOptions {\r\n  HTMLAttributes: Record<string, any>;\r\n}\r\n\r\ndeclare module \"@sse-editor/core\" {\r\n  interface Commands<ReturnType> {\r\n    blockQuote: {\r\n      /**\r\n       * Set a blockquote node\r\n       */\r\n      setBlockquote: () => ReturnType;\r\n      /**\r\n       * Toggle a blockquote node\r\n       */\r\n      toggleBlockquote: () => ReturnType;\r\n      /**\r\n       * Unset a blockquote node\r\n       */\r\n      unsetBlockquote: () => ReturnType;\r\n    };\r\n  }\r\n}\r\n\r\nexport const inputRegex = /^\\s*>\\s$/;\r\n\r\nexport const Blockquote = Node.create<BlockquoteOptions>({\r\n  name: \"blockquote\",\r\n\r\n  addOptions() {\r\n    return {\r\n      HTMLAttributes: {},\r\n    };\r\n  },\r\n\r\n  content: \"block+\",\r\n\r\n  group: \"block\",\r\n\r\n  defining: true,\r\n\r\n  parseHTML() {\r\n    return [{ tag: \"blockquote\" }];\r\n  },\r\n\r\n  renderHTML({ HTMLAttributes }) {\r\n    return [\"blockquote\", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\r\n  },\r\n\r\n  addCommands() {\r\n    return {\r\n      setBlockquote:\r\n        () =>\r\n        ({ commands }) => {\r\n          return commands.wrapIn(this.name);\r\n        },\r\n      toggleBlockquote:\r\n        () =>\r\n        ({ commands }) => {\r\n          return commands.toggleWrap(this.name);\r\n        },\r\n      unsetBlockquote:\r\n        () =>\r\n        ({ commands }) => {\r\n          return commands.lift(this.name);\r\n        },\r\n    };\r\n  },\r\n\r\n  addKeyboardShortcuts() {\r\n    return {\r\n      \"Mod-Shift-b\": () => this.editor.commands.toggleBlockquote(),\r\n    };\r\n  },\r\n\r\n  addInputRules() {\r\n    return [\r\n      wrappingInputRule({\r\n        find: inputRegex,\r\n        type: this.type,\r\n      }),\r\n    ];\r\n  },\r\n});\r\n"],"names":["Node","mergeAttributes","wrappingInputRule"],"mappings":";;;;;;AAyBO,MAAM,UAAU,GAAG,WAAW;AAExB,MAAA,UAAU,GAAGA,SAAI,CAAC,MAAM,CAAoB;AACvD,IAAA,IAAI,EAAE,YAAY;IAElB,UAAU,GAAA;QACR,OAAO;AACL,YAAA,cAAc,EAAE,EAAE;SACnB,CAAC;KACH;AAED,IAAA,OAAO,EAAE,QAAQ;AAEjB,IAAA,KAAK,EAAE,OAAO;AAEd,IAAA,QAAQ,EAAE,IAAI;IAEd,SAAS,GAAA;AACP,QAAA,OAAO,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;KAChC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE,EAAA;AAC3B,QAAA,OAAO,CAAC,YAAY,EAAEC,oBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;KACxF;IAED,WAAW,GAAA;QACT,OAAO;YACL,aAAa,EACX,MACA,CAAC,EAAE,QAAQ,EAAE,KAAI;gBACf,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;YACH,gBAAgB,EACd,MACA,CAAC,EAAE,QAAQ,EAAE,KAAI;gBACf,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC;YACH,eAAe,EACb,MACA,CAAC,EAAE,QAAQ,EAAE,KAAI;gBACf,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC;SACJ,CAAC;KACH;IAED,oBAAoB,GAAA;QAClB,OAAO;YACL,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE;SAC7D,CAAC;KACH;IAED,aAAa,GAAA;QACX,OAAO;AACL,YAAAC,sBAAiB,CAAC;AAChB,gBAAA,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAC;KACH;AACF,CAAA;;;;;;"}