{"version":3,"sources":["../src/index.ts","../src/typography.ts"],"sourcesContent":["import { Typography } from './typography.js'\n\nexport * from './typography.js'\n\nexport default Typography\n","import { Extension, textInputRule } from '@tiptap/core'\n\nexport interface TypographyOptions {\n  /**\n   * The em dash character.\n   * @default '—'\n   */\n  emDash: false | string\n\n  /**\n   * The ellipsis character.\n   * @default '…'\n   */\n  ellipsis: false | string\n\n  /**\n   * The open double quote character.\n   * @default '“'\n   */\n  openDoubleQuote: false | string\n\n  /**\n   * The close double quote character.\n   * @default '”'\n   */\n  closeDoubleQuote: false | string\n\n  /**\n   * The open single quote character.\n   * @default '‘'\n   */\n  openSingleQuote: false | string\n\n  /**\n   * The close single quote character.\n   * @default '’'\n   */\n  closeSingleQuote: false | string\n\n  /**\n   * The left arrow character.\n   * @default '←'\n   */\n  leftArrow: false | string\n\n  /**\n   * The right arrow character.\n   * @default '→'\n   */\n  rightArrow: false | string\n\n  /**\n   * The copyright character.\n   * @default '©'\n   */\n  copyright: false | string\n\n  /**\n   * The trademark character.\n   * @default '™'\n   */\n  trademark: false | string\n\n  /**\n   * The servicemark character.\n   * @default '℠'\n   */\n  servicemark: false | string\n\n  /**\n   * The registered trademark character.\n   * @default '®'\n   */\n  registeredTrademark: false | string\n\n  /**\n   * The one half character.\n   * @default '½'\n   */\n  oneHalf: false | string\n\n  /**\n   * The plus minus character.\n   * @default '±'\n   */\n  plusMinus: false | string\n\n  /**\n   * The not equal character.\n   * @default '≠'\n   */\n  notEqual: false | string\n\n  /**\n   * The laquo character.\n   * @default '«'\n   */\n  laquo: false | string\n\n  /**\n   * The raquo character.\n   * @default '»'\n   */\n  raquo: false | string\n\n  /**\n   * The multiplication character.\n   * @default '×'\n   */\n  multiplication: false | string\n\n  /**\n   * The superscript two character.\n   * @default '²'\n   */\n  superscriptTwo: false | string\n\n  /**\n   * The superscript three character.\n   * @default '³'\n   */\n  superscriptThree: false | string\n\n  /**\n   * The one quarter character.\n   * @default '¼'\n   */\n  oneQuarter: false | string\n\n  /**\n   * The three quarters character.\n   * @default '¾'\n   */\n  threeQuarters: false | string\n}\n\nexport const emDash = (override?: string) =>\n  textInputRule({\n    find: /--$/,\n    replace: override ?? '—',\n  })\n\nexport const ellipsis = (override?: string) =>\n  textInputRule({\n    find: /\\.\\.\\.$/,\n    replace: override ?? '…',\n  })\n\nexport const openDoubleQuote = (override?: string) =>\n  textInputRule({\n    find: /(?:^|[\\s{[(<'\"\\u2018\\u201C])(\")$/,\n    replace: override ?? '“',\n  })\n\nexport const closeDoubleQuote = (override?: string) =>\n  textInputRule({\n    find: /\"$/,\n    replace: override ?? '”',\n  })\n\nexport const openSingleQuote = (override?: string) =>\n  textInputRule({\n    find: /(?:^|[\\s{[(<'\"\\u2018\\u201C])(')$/,\n    replace: override ?? '‘',\n  })\n\nexport const closeSingleQuote = (override?: string) =>\n  textInputRule({\n    find: /'$/,\n    replace: override ?? '’',\n  })\n\nexport const leftArrow = (override?: string) =>\n  textInputRule({\n    find: /<-$/,\n    replace: override ?? '←',\n  })\n\nexport const rightArrow = (override?: string) =>\n  textInputRule({\n    find: /->$/,\n    replace: override ?? '→',\n  })\n\nexport const copyright = (override?: string) =>\n  textInputRule({\n    find: /\\(c\\)$/,\n    replace: override ?? '©',\n  })\n\nexport const trademark = (override?: string) =>\n  textInputRule({\n    find: /\\(tm\\)$/,\n    replace: override ?? '™',\n  })\n\nexport const servicemark = (override?: string) =>\n  textInputRule({\n    find: /\\(sm\\)$/,\n    replace: override ?? '℠',\n  })\n\nexport const registeredTrademark = (override?: string) =>\n  textInputRule({\n    find: /\\(r\\)$/,\n    replace: override ?? '®',\n  })\n\nexport const oneHalf = (override?: string) =>\n  textInputRule({\n    find: /(?:^|\\s)(1\\/2)\\s$/,\n    replace: override ?? '½',\n  })\n\nexport const plusMinus = (override?: string) =>\n  textInputRule({\n    find: /\\+\\/-$/,\n    replace: override ?? '±',\n  })\n\nexport const notEqual = (override?: string) =>\n  textInputRule({\n    find: /!=$/,\n    replace: override ?? '≠',\n  })\n\nexport const laquo = (override?: string) =>\n  textInputRule({\n    find: /<<$/,\n    replace: override ?? '«',\n  })\n\nexport const raquo = (override?: string) =>\n  textInputRule({\n    find: />>$/,\n    replace: override ?? '»',\n  })\n\nexport const multiplication = (override?: string) =>\n  textInputRule({\n    find: /\\d+\\s?([*x])\\s?\\d+$/,\n    replace: override ?? '×',\n  })\n\nexport const superscriptTwo = (override?: string) =>\n  textInputRule({\n    find: /\\^2$/,\n    replace: override ?? '²',\n  })\n\nexport const superscriptThree = (override?: string) =>\n  textInputRule({\n    find: /\\^3$/,\n    replace: override ?? '³',\n  })\n\nexport const oneQuarter = (override?: string) =>\n  textInputRule({\n    find: /(?:^|\\s)(1\\/4)\\s$/,\n    replace: override ?? '¼',\n  })\n\nexport const threeQuarters = (override?: string) =>\n  textInputRule({\n    find: /(?:^|\\s)(3\\/4)\\s$/,\n    replace: override ?? '¾',\n  })\n\n/**\n * This extension allows you to add typography replacements for specific characters.\n * @see https://www.tiptap.dev/api/extensions/typography\n */\nexport const Typography = Extension.create<TypographyOptions>({\n  name: 'typography',\n\n  addOptions() {\n    return {\n      closeDoubleQuote: '”',\n      closeSingleQuote: '’',\n      copyright: '©',\n      ellipsis: '…',\n      emDash: '—',\n      laquo: '«',\n      leftArrow: '←',\n      multiplication: '×',\n      notEqual: '≠',\n      oneHalf: '½',\n      oneQuarter: '¼',\n      openDoubleQuote: '“',\n      openSingleQuote: '‘',\n      plusMinus: '±',\n      raquo: '»',\n      registeredTrademark: '®',\n      rightArrow: '→',\n      servicemark: '℠',\n      superscriptThree: '³',\n      superscriptTwo: '²',\n      threeQuarters: '¾',\n      trademark: '™',\n    }\n  },\n\n  addInputRules() {\n    const rules = []\n\n    if (this.options.emDash !== false) {\n      rules.push(emDash(this.options.emDash))\n    }\n\n    if (this.options.ellipsis !== false) {\n      rules.push(ellipsis(this.options.ellipsis))\n    }\n\n    if (this.options.openDoubleQuote !== false) {\n      rules.push(openDoubleQuote(this.options.openDoubleQuote))\n    }\n\n    if (this.options.closeDoubleQuote !== false) {\n      rules.push(closeDoubleQuote(this.options.closeDoubleQuote))\n    }\n\n    if (this.options.openSingleQuote !== false) {\n      rules.push(openSingleQuote(this.options.openSingleQuote))\n    }\n\n    if (this.options.closeSingleQuote !== false) {\n      rules.push(closeSingleQuote(this.options.closeSingleQuote))\n    }\n\n    if (this.options.leftArrow !== false) {\n      rules.push(leftArrow(this.options.leftArrow))\n    }\n\n    if (this.options.rightArrow !== false) {\n      rules.push(rightArrow(this.options.rightArrow))\n    }\n\n    if (this.options.copyright !== false) {\n      rules.push(copyright(this.options.copyright))\n    }\n\n    if (this.options.trademark !== false) {\n      rules.push(trademark(this.options.trademark))\n    }\n\n    if (this.options.servicemark !== false) {\n      rules.push(servicemark(this.options.servicemark))\n    }\n\n    if (this.options.registeredTrademark !== false) {\n      rules.push(registeredTrademark(this.options.registeredTrademark))\n    }\n\n    if (this.options.oneHalf !== false) {\n      rules.push(oneHalf(this.options.oneHalf))\n    }\n\n    if (this.options.plusMinus !== false) {\n      rules.push(plusMinus(this.options.plusMinus))\n    }\n\n    if (this.options.notEqual !== false) {\n      rules.push(notEqual(this.options.notEqual))\n    }\n\n    if (this.options.laquo !== false) {\n      rules.push(laquo(this.options.laquo))\n    }\n\n    if (this.options.raquo !== false) {\n      rules.push(raquo(this.options.raquo))\n    }\n\n    if (this.options.multiplication !== false) {\n      rules.push(multiplication(this.options.multiplication))\n    }\n\n    if (this.options.superscriptTwo !== false) {\n      rules.push(superscriptTwo(this.options.superscriptTwo))\n    }\n\n    if (this.options.superscriptThree !== false) {\n      rules.push(superscriptThree(this.options.superscriptThree))\n    }\n\n    if (this.options.oneQuarter !== false) {\n      rules.push(oneQuarter(this.options.oneQuarter))\n    }\n\n    if (this.options.threeQuarters !== false) {\n      rules.push(threeQuarters(this.options.threeQuarters))\n    }\n\n    return rules\n  },\n})\n"],"mappings":"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","names":[]}