{"version":3,"file":"index.cjs","sources":["../src/font-family.ts"],"sourcesContent":["import '@tiptap/extension-text-style'\n\nimport { Extension } from '@tiptap/core'\n\nexport type FontFamilyOptions = {\n  /**\n   * A list of node names where the font family can be applied.\n   * @default ['textStyle']\n   * @example ['heading', 'paragraph']\n   */\n  types: string[],\n}\n\ndeclare module '@tiptap/core' {\n  interface Commands<ReturnType> {\n    fontFamily: {\n      /**\n       * Set the font family\n       * @param fontFamily The font family\n       * @example editor.commands.setFontFamily('Arial')\n       */\n      setFontFamily: (fontFamily: string) => ReturnType,\n      /**\n       * Unset the font family\n       * @example editor.commands.unsetFontFamily()\n       */\n      unsetFontFamily: () => ReturnType,\n    }\n  }\n}\n\n/**\n * This extension allows you to set a font family for text.\n * @see https://www.tiptap.dev/api/extensions/font-family\n */\nexport const FontFamily = Extension.create<FontFamilyOptions>({\n  name: 'fontFamily',\n\n  addOptions() {\n    return {\n      types: ['textStyle'],\n    }\n  },\n\n  addGlobalAttributes() {\n    return [\n      {\n        types: this.options.types,\n        attributes: {\n          fontFamily: {\n            default: null,\n            parseHTML: element => element.style.fontFamily,\n            renderHTML: attributes => {\n              if (!attributes.fontFamily) {\n                return {}\n              }\n\n              return {\n                style: `font-family: ${attributes.fontFamily}`,\n              }\n            },\n          },\n        },\n      },\n    ]\n  },\n\n  addCommands() {\n    return {\n      setFontFamily: fontFamily => ({ chain }) => {\n        return chain()\n          .setMark('textStyle', { fontFamily })\n          .run()\n      },\n      unsetFontFamily: () => ({ chain }) => {\n        return chain()\n          .setMark('textStyle', { fontFamily: null })\n          .removeEmptyTextStyle()\n          .run()\n      },\n    }\n  },\n})\n"],"names":["Extension"],"mappings":";;;;;;;AA+BA;;;AAGG;AACU,MAAA,UAAU,GAAGA,cAAS,CAAC,MAAM,CAAoB;AAC5D,IAAA,IAAI,EAAE,YAAY;IAElB,UAAU,GAAA;QACR,OAAO;YACL,KAAK,EAAE,CAAC,WAAW,CAAC;SACrB;KACF;IAED,mBAAmB,GAAA;QACjB,OAAO;AACL,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AACzB,gBAAA,UAAU,EAAE;AACV,oBAAA,UAAU,EAAE;AACV,wBAAA,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU;wBAC9C,UAAU,EAAE,UAAU,IAAG;AACvB,4BAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;AAC1B,gCAAA,OAAO,EAAE;;4BAGX,OAAO;AACL,gCAAA,KAAK,EAAE,CAAA,aAAA,EAAgB,UAAU,CAAC,UAAU,CAAE,CAAA;6BAC/C;yBACF;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;SACF;KACF;IAED,WAAW,GAAA;QACT,OAAO;YACL,aAAa,EAAE,UAAU,IAAI,CAAC,EAAE,KAAK,EAAE,KAAI;AACzC,gBAAA,OAAO,KAAK;AACT,qBAAA,OAAO,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE;AACnC,qBAAA,GAAG,EAAE;aACT;YACD,eAAe,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAI;AACnC,gBAAA,OAAO,KAAK;qBACT,OAAO,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;AACzC,qBAAA,oBAAoB;AACpB,qBAAA,GAAG,EAAE;aACT;SACF;KACF;AACF,CAAA;;;;;"}