{"version":3,"file":"index.js","names":[],"sources":["../src/bold.tsx","../src/index.ts"],"sourcesContent":["/** @jsxImportSource @tiptap/core */\nimport { Mark, markInputRule, markPasteRule, mergeAttributes } from '@tiptap/core'\n\nexport interface BoldOptions {\n /**\n * HTML attributes to add to the bold element.\n * @default {}\n * @example { class: 'foo' }\n */\n HTMLAttributes: Record\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n bold: {\n /**\n * Set a bold mark\n */\n setBold: () => ReturnType\n /**\n * Toggle a bold mark\n */\n toggleBold: () => ReturnType\n /**\n * Unset a bold mark\n */\n unsetBold: () => ReturnType\n }\n }\n}\n\n/**\n * Matches bold text via `**` as input.\n */\nexport const starInputRegex = /(?:^|\\s)(\\*\\*(?!\\s+\\*\\*)((?:[^*]+))\\*\\*(?!\\s+\\*\\*))$/\n\n/**\n * Matches bold text via `**` while pasting.\n */\nexport const starPasteRegex = /(?:^|\\s)(\\*\\*(?!\\s+\\*\\*)((?:[^*]+))\\*\\*(?!\\s+\\*\\*))/g\n\n/**\n * Matches bold text via `__` as input.\n */\nexport const underscoreInputRegex = /(?:^|\\s)(__(?!\\s+__)((?:[^_]+))__(?!\\s+__))$/\n\n/**\n * Matches bold text via `__` while pasting.\n */\nexport const underscorePasteRegex = /(?:^|\\s)(__(?!\\s+__)((?:[^_]+))__(?!\\s+__))/g\n\n/**\n * This extension allows you to mark text as bold.\n * @see https://tiptap.dev/api/marks/bold\n */\nexport const Bold = Mark.create({\n name: 'bold',\n\n addOptions() {\n return {\n HTMLAttributes: {},\n }\n },\n\n parseHTML() {\n return [\n {\n tag: 'strong',\n },\n {\n tag: 'b',\n getAttrs: node => (node as HTMLElement).style.fontWeight !== 'normal' && null,\n },\n {\n style: 'font-weight=400',\n clearMark: mark => mark.type.name === this.name,\n },\n {\n style: 'font-weight',\n getAttrs: value => /^(bold(er)?|[5-9]\\d{2,})$/.test(value as string) && null,\n },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return (\n \n \n \n )\n },\n\n markdownTokenName: 'strong',\n\n parseMarkdown: (token, helpers) => {\n // Convert 'strong' token to bold mark\n return helpers.applyMark('bold', helpers.parseInline(token.tokens || []))\n },\n\n markdownOptions: {\n htmlReopen: {\n open: '',\n close: '',\n },\n },\n\n renderMarkdown: (node, h) => {\n return `**${h.renderChildren(node)}**`\n },\n\n addCommands() {\n return {\n setBold:\n () =>\n ({ commands }) => {\n return commands.setMark(this.name)\n },\n toggleBold:\n () =>\n ({ commands }) => {\n return commands.toggleMark(this.name)\n },\n unsetBold:\n () =>\n ({ commands }) => {\n return commands.unsetMark(this.name)\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-b': () => this.editor.commands.toggleBold(),\n 'Mod-B': () => this.editor.commands.toggleBold(),\n }\n },\n\n addInputRules() {\n return [\n markInputRule({\n find: starInputRegex,\n type: this.type,\n }),\n markInputRule({\n find: underscoreInputRegex,\n type: this.type,\n }),\n ]\n },\n\n addPasteRules() {\n return [\n markPasteRule({\n find: starPasteRegex,\n type: this.type,\n }),\n markPasteRule({\n find: underscorePasteRegex,\n type: this.type,\n }),\n ]\n },\n})\n","import { Bold } from './bold.jsx'\n\nexport * from './bold.jsx'\n\nexport default Bold\n"],"mappings":";;;;;;;AAkCA,MAAa,iBAAiB;;;;AAK9B,MAAa,iBAAiB;;;;AAK9B,MAAa,uBAAuB;;;;AAKpC,MAAa,uBAAuB;;;;;AAMpC,MAAa,OAAO,KAAK,OAAoB;CAC3C,MAAM;CAEN,aAAa;EACX,OAAO,EACL,gBAAgB,CAAC,EACnB;CACF;CAEA,YAAY;EACV,OAAO;GACL,EACE,KAAK,SACP;GACA;IACE,KAAK;IACL,WAAU,SAAS,KAAqB,MAAM,eAAe,YAAY;GAC3E;GACA;IACE,OAAO;IACP,YAAW,SAAQ,KAAK,KAAK,SAAS,KAAK;GAC7C;GACA;IACE,OAAO;IACP,WAAU,UAAS,4BAA4B,KAAK,KAAe,KAAK;GAC1E;EACF;CACF;CAEA,WAAW,EAAE,kBAAkB;EAC7B,OACE,oBAAC,UAAD;GAAQ,GAAI,gBAAgB,KAAK,QAAQ,gBAAgB,cAAc;GACrE,UAAA,oBAAC,QAAD,CAAO,CAAA;EACD,CAAA;CAEZ;CAEA,mBAAmB;CAEnB,gBAAgB,OAAO,YAAY;EAEjC,OAAO,QAAQ,UAAU,QAAQ,QAAQ,YAAY,MAAM,UAAU,CAAC,CAAC,CAAC;CAC1E;CAEA,iBAAiB,EACf,YAAY;EACV,MAAM;EACN,OAAO;CACT,EACF;CAEA,iBAAiB,MAAM,MAAM;EAC3B,OAAO,KAAK,EAAE,eAAe,IAAI,EAAE;CACrC;CAEA,cAAc;EACZ,OAAO;GACL,gBAEG,EAAE,eAAe;IAChB,OAAO,SAAS,QAAQ,KAAK,IAAI;GACnC;GACF,mBAEG,EAAE,eAAe;IAChB,OAAO,SAAS,WAAW,KAAK,IAAI;GACtC;GACF,kBAEG,EAAE,eAAe;IAChB,OAAO,SAAS,UAAU,KAAK,IAAI;GACrC;EACJ;CACF;CAEA,uBAAuB;EACrB,OAAO;GACL,eAAe,KAAK,OAAO,SAAS,WAAW;GAC/C,eAAe,KAAK,OAAO,SAAS,WAAW;EACjD;CACF;CAEA,gBAAgB;EACd,OAAO,CACL,cAAc;GACZ,MAAM;GACN,MAAM,KAAK;EACb,CAAC,GACD,cAAc;GACZ,MAAM;GACN,MAAM,KAAK;EACb,CAAC,CACH;CACF;CAEA,gBAAgB;EACd,OAAO,CACL,cAAc;GACZ,MAAM;GACN,MAAM,KAAK;EACb,CAAC,GACD,cAAc;GACZ,MAAM;GACN,MAAM,KAAK;EACb,CAAC,CACH;CACF;AACF,CAAC;;;AC9JD,IAAA,cAAe"}