{"version":3,"file":"font-size.mjs","sources":["../../../../../../../../packages/components/editor/src/plugins/font-size/font-size.ts"],"sourcesContent":["import { Extension } from '@tiptap/core'\nimport '@tiptap/extension-text-style'\n\ntype FontSizeOptions = {\n  types: string[]\n  getStyle: (fontSize: string) => string\n}\n\ndeclare module '@tiptap/core' {\n  interface Commands<ReturnType> {\n    fontSize: {\n      /**\n       * Set the font size attribute\n       */\n      setFontSize: (size: string) => ReturnType\n      /**\n       * Unset the font size attribute\n       */\n      unsetFontSize: () => ReturnType\n    }\n  }\n}\n\nexport const FontSize = Extension.create<FontSizeOptions>({\n  name: 'fontSize',\n\n  addOptions(): FontSizeOptions {\n    return {\n      types: ['textStyle'],\n      getStyle: (fontSize: string) => {\n        return `font-size: ${fontSize}`\n      },\n    }\n  },\n\n  addGlobalAttributes() {\n    return [\n      {\n        types: this.options.types,\n        attributes: {\n          fontSize: {\n            default: null,\n            parseHTML: (element) =>\n              element.style.fontSize.replace(/['\"]+/g, ''),\n            renderHTML: (attributes) => {\n              if (!attributes.fontSize) {\n                return {}\n              }\n\n              return {\n                style: this.options.getStyle(attributes.fontSize),\n              }\n            },\n          },\n        },\n      },\n    ]\n  },\n\n  addCommands() {\n    return {\n      setFontSize:\n        (fontSize) =>\n        ({ chain }) => {\n          return chain().setMark('textStyle', { fontSize }).run()\n        },\n      unsetFontSize:\n        () =>\n        ({ chain }) => {\n          return chain()\n            .setMark('textStyle', { fontSize: null })\n            .removeEmptyTextStyle()\n            .run()\n        },\n    }\n  },\n})\n"],"names":[],"mappings":";;AAuBa,MAAA,QAAA,GAAW,UAAU,MAAwB,CAAA;AAAA,EACxD,IAAM,EAAA,UAAA;AAAA,EAEN,UAA8B,GAAA;AAC5B,IAAO,OAAA;AAAA,MACL,KAAA,EAAO,CAAC,WAAW,CAAA;AAAA,MACnB,QAAA,EAAU,CAAC,QAAqB,KAAA;AAC9B,QAAA,OAAO,CAAc,WAAA,EAAA,QAAA,CAAA,CAAA,CAAA;AAAA,OACvB;AAAA,KACF,CAAA;AAAA,GACF;AAAA,EAEA,mBAAsB,GAAA;AACpB,IAAO,OAAA;AAAA,MACL;AAAA,QACE,KAAA,EAAO,KAAK,OAAQ,CAAA,KAAA;AAAA,QACpB,UAAY,EAAA;AAAA,UACV,QAAU,EAAA;AAAA,YACR,OAAS,EAAA,IAAA;AAAA,YACT,SAAA,EAAW,CAAC,OACV,KAAA,OAAA,CAAQ,MAAM,QAAS,CAAA,OAAA,CAAQ,UAAU,EAAE,CAAA;AAAA,YAC7C,UAAA,EAAY,CAAC,UAAe,KAAA;AAC1B,cAAI,IAAA,CAAC,WAAW,QAAU,EAAA;AACxB,gBAAA,OAAO,EAAC,CAAA;AAAA,eACV;AAEA,cAAO,OAAA;AAAA,gBACL,KAAO,EAAA,IAAA,CAAK,OAAQ,CAAA,QAAA,CAAS,WAAW,QAAQ,CAAA;AAAA,eAClD,CAAA;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF,CAAA;AAAA,GACF;AAAA,EAEA,WAAc,GAAA;AACZ,IAAO,OAAA;AAAA,MACL,aACE,CAAC,QAAA,KACD,CAAC,EAAE,OAAY,KAAA;AACb,QAAO,OAAA,KAAA,GAAQ,OAAQ,CAAA,WAAA,EAAa,EAAE,QAAS,EAAC,EAAE,GAAI,EAAA,CAAA;AAAA,OACxD;AAAA,MACF,aACE,EAAA,MACA,CAAC,EAAE,OAAY,KAAA;AACb,QAAO,OAAA,KAAA,EACJ,CAAA,OAAA,CAAQ,WAAa,EAAA,EAAE,QAAU,EAAA,IAAA,EAAM,CAAA,CACvC,oBAAqB,EAAA,CACrB,GAAI,EAAA,CAAA;AAAA,OACT;AAAA,KACJ,CAAA;AAAA,GACF;AACF,CAAC;;;;"}