{"version":3,"file":"tiptap-extension-horizontal-rule.cjs","sources":["../src/horizontal-rule.ts"],"sourcesContent":["import {\n mergeAttributes,\n Node,\n nodeInputRule,\n} from '@tiptap/core'\nimport { TextSelection } from 'prosemirror-state'\n\nexport interface HorizontalRuleOptions {\n HTMLAttributes: Record,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n horizontalRule: {\n /**\n * Add a horizontal rule\n */\n setHorizontalRule: () => ReturnType,\n }\n }\n}\n\nexport const HorizontalRule = Node.create({\n name: 'horizontalRule',\n\n addOptions() {\n return {\n HTMLAttributes: {},\n }\n },\n\n group: 'block',\n\n parseHTML() {\n return [\n { tag: 'hr' },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['hr', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n\n addCommands() {\n return {\n setHorizontalRule: () => ({ chain }) => {\n return chain()\n .insertContent({ type: this.name })\n // set cursor after horizontal rule\n .command(({ tr, dispatch }) => {\n if (dispatch) {\n const { $to } = tr.selection\n const posAfter = $to.end()\n\n if ($to.nodeAfter) {\n tr.setSelection(TextSelection.create(tr.doc, $to.pos))\n } else {\n // add node after horizontal rule if it’s the end of the document\n const node = $to.parent.type.contentMatch.defaultType?.create()\n\n if (node) {\n tr.insert(posAfter, node)\n tr.setSelection(TextSelection.create(tr.doc, posAfter))\n }\n }\n\n tr.scrollIntoView()\n }\n\n return true\n })\n .run()\n },\n }\n },\n\n addInputRules() {\n return [\n nodeInputRule({\n find: /^(?:---|—-|___\\s|\\*\\*\\*\\s)$/,\n type: this.type,\n }),\n ]\n },\n})\n"],"names":["Node","mergeAttributes","TextSelection","nodeInputRule"],"mappings":";;;;;;;AAsBa,MAAA,cAAc,GAAGA,SAAI,CAAC,MAAM,CAAwB;AAC/D,IAAA,IAAI,EAAE,gBAAgB;IAEtB,UAAU,GAAA;QACR,OAAO;AACL,YAAA,cAAc,EAAE,EAAE;SACnB,CAAA;KACF;AAED,IAAA,KAAK,EAAE,OAAO;IAEd,SAAS,GAAA;QACP,OAAO;YACL,EAAE,GAAG,EAAE,IAAI,EAAE;SACd,CAAA;KACF;IAED,UAAU,CAAC,EAAE,cAAc,EAAE,EAAA;AAC3B,QAAA,OAAO,CAAC,IAAI,EAAEC,oBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAA;KAC5E;IAED,WAAW,GAAA;QACT,OAAO;YACL,iBAAiB,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAI;AACrC,gBAAA,OAAO,KAAK,EAAE;qBACX,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;;qBAElC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAI;;AAC5B,oBAAA,IAAI,QAAQ,EAAE;AACZ,wBAAA,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,CAAA;AAC5B,wBAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;wBAE1B,IAAI,GAAG,CAAC,SAAS,EAAE;AACjB,4BAAA,EAAE,CAAC,YAAY,CAACC,8BAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACvD,yBAAA;AAAM,6BAAA;;AAEL,4BAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,EAAE,CAAA;AAE/D,4BAAA,IAAI,IAAI,EAAE;AACR,gCAAA,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACzB,gCAAA,EAAE,CAAC,YAAY,CAACA,8BAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;AACxD,6BAAA;AACF,yBAAA;wBAED,EAAE,CAAC,cAAc,EAAE,CAAA;AACpB,qBAAA;AAED,oBAAA,OAAO,IAAI,CAAA;AACb,iBAAC,CAAC;AACD,qBAAA,GAAG,EAAE,CAAA;aACT;SACF,CAAA;KACF;IAED,aAAa,GAAA;QACX,OAAO;AACL,YAAAC,kBAAa,CAAC;AACZ,gBAAA,IAAI,EAAE,6BAA6B;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAA;KACF;AACF,CAAA;;;;;"}