@portabletext/plugin-typography 7.0.26 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/package.json +13 -13
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getSelectedSpans, isActiveDecorator } from "@portabletext/editor/selectors";
|
|
2
|
+
import { getPathSubSchema } from "@portabletext/editor/traversal";
|
|
2
3
|
import { defineTextTransformRule, InputRulePlugin } from "@portabletext/plugin-input-rule";
|
|
3
4
|
import { jsx } from "react/jsx-runtime";
|
|
4
5
|
import { c } from "react/compiler-runtime";
|
|
@@ -7,11 +8,11 @@ function createDecoratorGuard(config) {
|
|
|
7
8
|
snapshot,
|
|
8
9
|
event
|
|
9
10
|
}) => {
|
|
10
|
-
const allowedDecorators = config.decorators({
|
|
11
|
+
const subSchema = getPathSubSchema(snapshot, event.focusBlock.path), allowedDecorators = config.decorators({
|
|
11
12
|
context: {
|
|
12
|
-
schema:
|
|
13
|
+
schema: subSchema
|
|
13
14
|
}
|
|
14
|
-
}), decorators =
|
|
15
|
+
}), decorators = subSchema.decorators.flatMap((decorator) => allowedDecorators.includes(decorator.name) ? [] : [decorator.name]);
|
|
15
16
|
if (decorators.length === 0)
|
|
16
17
|
return !0;
|
|
17
18
|
const matchedSpans = event.matches.flatMap((match) => getSelectedSpans({
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/create-decorator-guard.ts","../src/input-rules.typography.ts","../src/plugin.typography.tsx"],"sourcesContent":["import type {EditorContext, EditorSchema} from '@portabletext/editor'\nimport {\n getSelectedSpans,\n isActiveDecorator,\n} from '@portabletext/editor/selectors'\nimport type {InputRuleGuard} from '@portabletext/plugin-input-rule'\n\n/**\n * @public\n * Create an `InputRuleGuard` that can prevent the rule from running inside\n * certain decorators.\n *\n * @example\n * ```tsx\n * const guard = createDecoratorGuard({\n * decorators: ({context}) => context.schema.decorators.flatMap((decorator) => decorator.name === 'code' ? [] : [decorator.name]),\n * })\n *\n * <TypographyPlugin guard={guard} />\n * ```\n */\nexport function createDecoratorGuard(config: {\n decorators: ({\n context,\n }: {\n context: Pick<EditorContext, 'schema'>\n }) => Array<EditorSchema['decorators'][number]['name']>\n}): InputRuleGuard {\n return ({snapshot, event}) => {\n const allowedDecorators = config.decorators({\n context: {\n schema: snapshot.context.schema,\n },\n })\n const decorators = snapshot.context.schema.decorators.flatMap(\n (decorator) =>\n allowedDecorators.includes(decorator.name) ? [] : [decorator.name],\n )\n\n if (decorators.length === 0) {\n return true\n }\n\n const matchedSpans = event.matches.flatMap((match) =>\n getSelectedSpans({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: match.selection,\n },\n }),\n )\n\n let preventInputRule = false\n\n for (const decorator of decorators) {\n if (isActiveDecorator(decorator)(snapshot)) {\n preventInputRule = true\n break\n }\n\n if (matchedSpans.some((span) => span.node.marks?.includes(decorator))) {\n preventInputRule = true\n break\n }\n }\n\n return !preventInputRule\n }\n}\n","import {\n defineTextTransformRule,\n type InputRule,\n} from '@portabletext/plugin-input-rule'\n\n/**\n * @public\n */\nexport const emDashRule = defineTextTransformRule({\n on: /--/,\n transform: () => '—',\n})\n\n/**\n * @public\n */\nexport const ellipsisRule = defineTextTransformRule({\n on: /\\.\\.\\./,\n transform: () => '…',\n})\n\n/**\n * @public\n */\nexport const openingDoubleQuoteRule = defineTextTransformRule({\n on: /(?:^|(?<=[\\s{[(<'\"\\u2018\\u201C]))\"/g,\n transform: () => '“',\n})\n\n/**\n * @public\n */\nexport const closingDoubleQuoteRule = defineTextTransformRule({\n on: /\"/g,\n transform: () => '”',\n})\n\n/**\n * @public\n */\nexport const openingSingleQuoteRule = defineTextTransformRule({\n on: /(?:^|(?<=[\\s{[(<'\"\\u2018\\u201C]))'/g,\n transform: () => '‘',\n})\n\n/**\n * @public\n */\nexport const closingSingleQuoteRule = defineTextTransformRule({\n on: /'/g,\n transform: () => '’',\n})\n\n/**\n * @public\n */\nexport const smartQuotesRules: Array<InputRule> = [\n openingDoubleQuoteRule,\n closingDoubleQuoteRule,\n openingSingleQuoteRule,\n closingSingleQuoteRule,\n]\n\n/**\n * @public\n */\nexport const leftArrowRule = defineTextTransformRule({\n on: /<-/,\n transform: () => '←',\n})\n\n/**\n * @public\n */\nexport const rightArrowRule = defineTextTransformRule({\n on: /->/,\n transform: () => '→',\n})\n\n/**\n * @public\n */\nexport const copyrightRule = defineTextTransformRule({\n on: /\\(c\\)/,\n transform: () => '©',\n})\n\n/**\n * @public\n */\nexport const servicemarkRule = defineTextTransformRule({\n on: /\\(sm\\)/,\n transform: () => '℠',\n})\n\n/**\n * @public\n */\nexport const trademarkRule = defineTextTransformRule({\n on: /\\(tm\\)/,\n transform: () => '™',\n})\n\n/**\n * @beta\n */\nexport const registeredTrademarkRule = defineTextTransformRule({\n on: /\\(r\\)/,\n transform: () => '®',\n})\n\n/**\n * @public\n */\nexport const oneHalfRule = defineTextTransformRule({\n on: /(?:^|\\s)(1\\/2)\\s/,\n transform: () => '½',\n})\n\n/**\n * @public\n */\nexport const plusMinusRule = defineTextTransformRule({\n on: /\\+\\/-/,\n transform: () => '±',\n})\n\n/**\n * @public\n */\nexport const notEqualRule = defineTextTransformRule({\n on: /!=/,\n transform: () => '≠',\n})\n\n/**\n * @public\n */\nexport const laquoRule = defineTextTransformRule({\n on: /<</,\n transform: () => '«',\n})\n\n/**\n * @public\n */\nexport const raquoRule = defineTextTransformRule({\n on: />>/,\n transform: () => '»',\n})\n\n/**\n * @public\n */\nexport const multiplicationRule = defineTextTransformRule({\n on: /\\d+\\s?([*x])\\s?\\d+/,\n transform: () => '×',\n})\n\n/**\n * @public\n */\nexport const superscriptTwoRule = defineTextTransformRule({\n on: /\\^2/,\n transform: () => '²',\n})\n\n/**\n * @public\n */\nexport const superscriptThreeRule = defineTextTransformRule({\n on: /\\^3/,\n transform: () => '³',\n})\n\n/**\n * @public\n */\nexport const oneQuarterRule = defineTextTransformRule({\n on: /(?:^|\\s)(1\\/4)\\s/,\n transform: () => '¼',\n})\n\n/**\n * @public\n */\nexport const threeQuartersRule = defineTextTransformRule({\n on: /(?:^|\\s)(3\\/4)\\s/,\n transform: () => '¾',\n})\n","import {\n InputRulePlugin,\n type InputRuleGuard,\n} from '@portabletext/plugin-input-rule'\nimport {useMemo} from 'react'\nimport {\n closingDoubleQuoteRule,\n closingSingleQuoteRule,\n copyrightRule,\n ellipsisRule,\n emDashRule,\n laquoRule,\n leftArrowRule,\n multiplicationRule,\n notEqualRule,\n oneHalfRule,\n oneQuarterRule,\n openingDoubleQuoteRule,\n openingSingleQuoteRule,\n plusMinusRule,\n raquoRule,\n registeredTrademarkRule,\n rightArrowRule,\n servicemarkRule,\n superscriptThreeRule,\n superscriptTwoRule,\n threeQuartersRule,\n trademarkRule,\n} from './input-rules.typography'\n\nconst defaultRuleConfig = [\n {name: 'emDash', rule: emDashRule, state: 'on'},\n {name: 'ellipsis', rule: ellipsisRule, state: 'on'},\n {name: 'openingDoubleQuote', rule: openingDoubleQuoteRule, state: 'on'},\n {name: 'closingDoubleQuote', rule: closingDoubleQuoteRule, state: 'on'},\n {name: 'openingSingleQuote', rule: openingSingleQuoteRule, state: 'on'},\n {name: 'closingSingleQuote', rule: closingSingleQuoteRule, state: 'on'},\n {name: 'leftArrow', rule: leftArrowRule, state: 'on'},\n {name: 'rightArrow', rule: rightArrowRule, state: 'on'},\n {name: 'copyright', rule: copyrightRule, state: 'on'},\n {name: 'trademark', rule: trademarkRule, state: 'on'},\n {name: 'servicemark', rule: servicemarkRule, state: 'on'},\n {name: 'registeredTrademark', rule: registeredTrademarkRule, state: 'on'},\n {name: 'oneHalf', rule: oneHalfRule, state: 'off'},\n {name: 'plusMinus', rule: plusMinusRule, state: 'off'},\n {name: 'laquo', rule: laquoRule, state: 'off'},\n {name: 'notEqual', rule: notEqualRule, state: 'off'},\n {name: 'raquo', rule: raquoRule, state: 'off'},\n {name: 'multiplication', rule: multiplicationRule, state: 'off'},\n {name: 'superscriptTwo', rule: superscriptTwoRule, state: 'off'},\n {name: 'superscriptThree', rule: superscriptThreeRule, state: 'off'},\n {name: 'oneQuarter', rule: oneQuarterRule, state: 'off'},\n {name: 'threeQuarters', rule: threeQuartersRule, state: 'off'},\n] as const\n\ntype RuleName = (typeof defaultRuleConfig)[number]['name']\n\n/**\n * @public\n */\nexport type TypographyPluginProps<\n TEnabledRuleName extends RuleName = never,\n TDisabledRuleName extends Exclude<RuleName, TEnabledRuleName> = never,\n> = {\n guard?: InputRuleGuard\n /**\n * Preset configuration for rules.\n * - `'default'`: Common typography rules enabled (em dash, ellipsis, quotes, arrows, copyright symbols)\n * - `'all'`: All rules enabled\n * - `'none'`: No rules enabled (use with `enable` prop)\n *\n * @defaultValue 'default'\n */\n preset?: 'default' | 'all' | 'none'\n /**\n * Enable specific rules (additive to preset).\n * Use this to enable additional rules beyond the preset.\n *\n * @example\n * ```tsx\n * // Enable multiplication and plusMinus in addition to default rules\n * <TypographyPlugin enable={['multiplication', 'plusMinus']} />\n * ```\n */\n enable?: ReadonlyArray<TEnabledRuleName>\n /**\n * Disable specific rules (subtractive from preset).\n * Use this to disable rules that would otherwise be enabled by the preset.\n * Cannot contain rules that are in the `enable` array (TypeScript will enforce this).\n *\n * @example\n * ```tsx\n * // Disable em dash from the default rules\n * <TypographyPlugin disable={['emDash']} />\n * ```\n */\n disable?: ReadonlyArray<TDisabledRuleName>\n}\n\n/**\n * @public\n */\nexport function TypographyPlugin<\n TEnabledRuleName extends RuleName = never,\n TDisabledRuleName extends Exclude<RuleName, TEnabledRuleName> = never,\n>(props: TypographyPluginProps<TEnabledRuleName, TDisabledRuleName>) {\n const {preset = 'default', enable = [], disable = [], guard} = props\n\n const configuredInputRules = useMemo(() => {\n // Determine which rules should be enabled based on preset\n const enabledRules = new Set<RuleName>()\n\n if (preset === 'all') {\n // Enable all rules\n for (const rule of defaultRuleConfig) {\n enabledRules.add(rule.name)\n }\n } else if (preset === 'default') {\n // Enable only default rules (state: 'on')\n for (const rule of defaultRuleConfig) {\n if (rule.state === 'on') {\n enabledRules.add(rule.name)\n }\n }\n }\n // preset === 'none' starts with empty set\n\n // Apply enable list (additive)\n for (const ruleName of enable) {\n enabledRules.add(ruleName)\n }\n\n // Apply disable list (subtractive)\n for (const ruleName of disable) {\n enabledRules.delete(ruleName)\n }\n\n // Build final rule list\n return defaultRuleConfig.flatMap((rule) =>\n enabledRules.has(rule.name)\n ? [{...rule.rule, guard: guard ?? (() => true)}]\n : [],\n )\n }, [preset, enable, disable, guard])\n\n return <InputRulePlugin rules={configuredInputRules} />\n}\n"],"names":["createDecoratorGuard","config","snapshot","event","allowedDecorators","decorators","context","schema","flatMap","decorator","includes","name","length","matchedSpans","matches","match","getSelectedSpans","selection","preventInputRule","isActiveDecorator","some","span","node","marks","emDashRule","defineTextTransformRule","on","transform","ellipsisRule","openingDoubleQuoteRule","closingDoubleQuoteRule","openingSingleQuoteRule","closingSingleQuoteRule","smartQuotesRules","leftArrowRule","rightArrowRule","copyrightRule","servicemarkRule","trademarkRule","registeredTrademarkRule","oneHalfRule","plusMinusRule","notEqualRule","laquoRule","raquoRule","multiplicationRule","superscriptTwoRule","superscriptThreeRule","oneQuarterRule","threeQuartersRule","defaultRuleConfig","rule","state","TypographyPlugin","props","$","_c","preset","t0","enable","t1","disable","t2","guard","undefined","t3","t4","enabledRules","Set","add","rule_0","ruleName","ruleName_0","delete","t5","rule_1","has","_temp","configuredInputRules","t6"],"mappings":";;;;AAqBO,SAASA,qBAAqBC,QAMlB;AACjB,SAAO,CAAC;AAAA,IAACC;AAAAA,IAAUC;AAAAA,EAAAA,MAAW;AAC5B,UAAMC,oBAAoBH,OAAOI,WAAW;AAAA,MAC1CC,SAAS;AAAA,QACPC,QAAQL,SAASI,QAAQC;AAAAA,MAAAA;AAAAA,IAC3B,CACD,GACKF,aAAaH,SAASI,QAAQC,OAAOF,WAAWG,QACnDC,CAAAA,cACCL,kBAAkBM,SAASD,UAAUE,IAAI,IAAI,CAAA,IAAK,CAACF,UAAUE,IAAI,CACrE;AAEA,QAAIN,WAAWO,WAAW;AACxB,aAAO;AAGT,UAAMC,eAAeV,MAAMW,QAAQN,QAASO,WAC1CC,iBAAiB;AAAA,MACf,GAAGd;AAAAA,MACHI,SAAS;AAAA,QACP,GAAGJ,SAASI;AAAAA,QACZW,WAAWF,MAAME;AAAAA,MAAAA;AAAAA,IACnB,CACD,CACH;AAEA,QAAIC,mBAAmB;AAEvB,eAAWT,aAAaJ,YAAY;AAClC,UAAIc,kBAAkBV,SAAS,EAAEP,QAAQ,GAAG;AAC1CgB,2BAAmB;AACnB;AAAA,MACF;AAEA,UAAIL,aAAaO,KAAMC,CAAAA,SAASA,KAAKC,KAAKC,OAAOb,SAASD,SAAS,CAAC,GAAG;AACrES,2BAAmB;AACnB;AAAA,MACF;AAAA,IACF;AAEA,WAAO,CAACA;AAAAA,EACV;AACF;AC7DO,MAAMM,aAAaC,wBAAwB;AAAA,EAChDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYC,eAAeH,wBAAwB;AAAA,EAClDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYE,yBAAyBJ,wBAAwB;AAAA,EAC5DC,IAAI,IAAA,OAAA,yCAAA,GAAqC;AAAA,EACzCC,WAAWA,MAAM;AACnB,CAAC,GAKYG,yBAAyBL,wBAAwB;AAAA,EAC5DC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYI,yBAAyBN,wBAAwB;AAAA,EAC5DC,IAAI,IAAA,OAAA,yCAAA,GAAqC;AAAA,EACzCC,WAAWA,MAAM;AACnB,CAAC,GAKYK,yBAAyBP,wBAAwB;AAAA,EAC5DC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYM,mBAAqC,CAChDJ,wBACAC,wBACAC,wBACAC,sBAAsB,GAMXE,gBAAgBT,wBAAwB;AAAA,EACnDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYQ,iBAAiBV,wBAAwB;AAAA,EACpDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYS,gBAAgBX,wBAAwB;AAAA,EACnDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYU,kBAAkBZ,wBAAwB;AAAA,EACrDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYW,gBAAgBb,wBAAwB;AAAA,EACnDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYY,0BAA0Bd,wBAAwB;AAAA,EAC7DC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYa,cAAcf,wBAAwB;AAAA,EACjDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYc,gBAAgBhB,wBAAwB;AAAA,EACnDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYe,eAAejB,wBAAwB;AAAA,EAClDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYgB,YAAYlB,wBAAwB;AAAA,EAC/CC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYiB,YAAYnB,wBAAwB;AAAA,EAC/CC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYkB,qBAAqBpB,wBAAwB;AAAA,EACxDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYmB,qBAAqBrB,wBAAwB;AAAA,EACxDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYoB,uBAAuBtB,wBAAwB;AAAA,EAC1DC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYqB,iBAAiBvB,wBAAwB;AAAA,EACpDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GAKYsB,oBAAoBxB,wBAAwB;AAAA,EACvDC,IAAI;AAAA,EACJC,WAAWA,MAAM;AACnB,CAAC,GC/JKuB,oBAAoB,CACxB;AAAA,EAACvC,MAAM;AAAA,EAAUwC,MAAM3B;AAAAA,EAAY4B,OAAO;AAAI,GAC9C;AAAA,EAACzC,MAAM;AAAA,EAAYwC,MAAMvB;AAAAA,EAAcwB,OAAO;AAAI,GAClD;AAAA,EAACzC,MAAM;AAAA,EAAsBwC,MAAMtB;AAAAA,EAAwBuB,OAAO;AAAI,GACtE;AAAA,EAACzC,MAAM;AAAA,EAAsBwC,MAAMrB;AAAAA,EAAwBsB,OAAO;AAAI,GACtE;AAAA,EAACzC,MAAM;AAAA,EAAsBwC,MAAMpB;AAAAA,EAAwBqB,OAAO;AAAI,GACtE;AAAA,EAACzC,MAAM;AAAA,EAAsBwC,MAAMnB;AAAAA,EAAwBoB,OAAO;AAAI,GACtE;AAAA,EAACzC,MAAM;AAAA,EAAawC,MAAMjB;AAAAA,EAAekB,OAAO;AAAI,GACpD;AAAA,EAACzC,MAAM;AAAA,EAAcwC,MAAMhB;AAAAA,EAAgBiB,OAAO;AAAI,GACtD;AAAA,EAACzC,MAAM;AAAA,EAAawC,MAAMf;AAAAA,EAAegB,OAAO;AAAI,GACpD;AAAA,EAACzC,MAAM;AAAA,EAAawC,MAAMb;AAAAA,EAAec,OAAO;AAAI,GACpD;AAAA,EAACzC,MAAM;AAAA,EAAewC,MAAMd;AAAAA,EAAiBe,OAAO;AAAI,GACxD;AAAA,EAACzC,MAAM;AAAA,EAAuBwC,MAAMZ;AAAAA,EAAyBa,OAAO;AAAI,GACxE;AAAA,EAACzC,MAAM;AAAA,EAAWwC,MAAMX;AAAAA,EAAaY,OAAO;AAAK,GACjD;AAAA,EAACzC,MAAM;AAAA,EAAawC,MAAMV;AAAAA,EAAeW,OAAO;AAAK,GACrD;AAAA,EAACzC,MAAM;AAAA,EAASwC,MAAMR;AAAAA,EAAWS,OAAO;AAAK,GAC7C;AAAA,EAACzC,MAAM;AAAA,EAAYwC,MAAMT;AAAAA,EAAcU,OAAO;AAAK,GACnD;AAAA,EAACzC,MAAM;AAAA,EAASwC,MAAMP;AAAAA,EAAWQ,OAAO;AAAK,GAC7C;AAAA,EAACzC,MAAM;AAAA,EAAkBwC,MAAMN;AAAAA,EAAoBO,OAAO;AAAK,GAC/D;AAAA,EAACzC,MAAM;AAAA,EAAkBwC,MAAML;AAAAA,EAAoBM,OAAO;AAAK,GAC/D;AAAA,EAACzC,MAAM;AAAA,EAAoBwC,MAAMJ;AAAAA,EAAsBK,OAAO;AAAK,GACnE;AAAA,EAACzC,MAAM;AAAA,EAAcwC,MAAMH;AAAAA,EAAgBI,OAAO;AAAK,GACvD;AAAA,EAACzC,MAAM;AAAA,EAAiBwC,MAAMF;AAAAA,EAAmBG,OAAO;AAAK,CAAC;AAkDzD,SAAAC,iBAAAC,OAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAIL;AAAA,IAAAC,QAAAC;AAAAA,IAAAC,QAAAC;AAAAA,IAAAC,SAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA+DT,OAAxDG,SAAAC,OAAAM,SAAA,YAAAN;AAAkB,MAAAO;AAAAV,WAAAK,MAAEK,KAAAL,OAAAI,SAAA,CAAA,IAAAJ,IAAWL,OAAAK,IAAAL,OAAAU,MAAAA,KAAAV,EAAA,CAAA;AAAX,QAAAI,SAAAM;AAAW,MAAAC;AAAAX,WAAAO,MAAEI,KAAAJ,OAAAE,SAAA,CAAA,IAAAF,IAAYP,OAAAO,IAAAP,OAAAW,MAAAA,KAAAX,EAAA,CAAA;AAAZ,QAAAM,UAAAK;AAAY,MAAAC;AAAA,MAAAZ,EAAA,CAAA,MAAAM,WAAAN,SAAAI,UAAAJ,EAAA,CAAA,MAAAE,QAAA;AAMlD,QAFAU,eAAqB,oBAAIC,IAAAA,GAErBX,WAAW;AAEb,iBAAKN,QAAcD;AACjBiB,qBAAYE,IAAKlB,KAAIxC,IAAK;AAAA,aAEnB8C,WAAW;AAEpB,iBAAKa,UAAcpB;AACbC,eAAIC,UAAW,QACjBe,aAAYE,IAAKlB,OAAIxC,IAAK;AAOhC,eAAK4D,YAAkBZ;AACrBQ,mBAAYE,IAAKE,QAAQ;AAI3B,eAAKC,cAAkBX;AACrBM,mBAAYM,OAAQF,UAAQ;AAC7BhB,WAAAM,SAAAN,OAAAI,QAAAJ,OAAAE,QAAAF,OAAAY;AAAAA,EAAA;AAAAA,mBAAAZ,EAAA,CAAA;AAAA,MAAAmB;AAAAnB,IAAA,CAAA,MAAAY,gBAAAZ,SAAAQ,SAGMW,KAAAxB,kBAAiB1C,QAASmE,CAAAA,WAC/BR,aAAYS,IAAKzB,OAAIxC,IAEhB,IAFL,CACK;AAAA,IAAA,GAAIwC,OAAIA;AAAAA,IAAKY,OAASA,SAAAc;AAAAA,EAAAA,CAAsB,IADjD,CAAA,CAGF,GAACtB,OAAAY,cAAAZ,OAAAQ,OAAAR,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA;AAlCH,QAAAuB,uBA8BEJ;AAKkC,MAAAK;AAAA,SAAAxB,UAAAuB,wBAE7BC,yBAAC,iBAAA,EAAuBD,OAAAA,sBAAoB,GAAIvB,QAAAuB,sBAAAvB,QAAAwB,MAAAA,KAAAxB,EAAA,EAAA,GAAhDwB;AAAgD;AA3ClD,SAAAF,QAAA;AAAA,SAsC0C;AAAI;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/create-decorator-guard.ts","../src/input-rules.typography.ts","../src/plugin.typography.tsx"],"sourcesContent":["import type {EditorContext, EditorSchema} from '@portabletext/editor'\nimport {\n getSelectedSpans,\n isActiveDecorator,\n} from '@portabletext/editor/selectors'\nimport {getPathSubSchema} from '@portabletext/editor/traversal'\nimport type {InputRuleGuard} from '@portabletext/plugin-input-rule'\n\n/**\n * @public\n * Create an `InputRuleGuard` that can prevent the rule from running inside\n * certain decorators.\n *\n * @example\n * ```tsx\n * const guard = createDecoratorGuard({\n * decorators: ({context}) => context.schema.decorators.flatMap((decorator) => decorator.name === 'code' ? [] : [decorator.name]),\n * })\n *\n * <TypographyPlugin guard={guard} />\n * ```\n */\nexport function createDecoratorGuard(config: {\n decorators: ({\n context,\n }: {\n context: Pick<EditorContext, 'schema'>\n }) => Array<EditorSchema['decorators'][number]['name']>\n}): InputRuleGuard {\n return ({snapshot, event}) => {\n const subSchema = getPathSubSchema(snapshot, event.focusBlock.path)\n const allowedDecorators = config.decorators({\n context: {\n schema: subSchema,\n },\n })\n const decorators = subSchema.decorators.flatMap((decorator) =>\n allowedDecorators.includes(decorator.name) ? [] : [decorator.name],\n )\n\n if (decorators.length === 0) {\n return true\n }\n\n const matchedSpans = event.matches.flatMap((match) =>\n getSelectedSpans({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: match.selection,\n },\n }),\n )\n\n let preventInputRule = false\n\n for (const decorator of decorators) {\n if (isActiveDecorator(decorator)(snapshot)) {\n preventInputRule = true\n break\n }\n\n if (matchedSpans.some((span) => span.node.marks?.includes(decorator))) {\n preventInputRule = true\n break\n }\n }\n\n return !preventInputRule\n }\n}\n","import {\n defineTextTransformRule,\n type InputRule,\n} from '@portabletext/plugin-input-rule'\n\n/**\n * @public\n */\nexport const emDashRule = defineTextTransformRule({\n on: /--/,\n transform: () => '—',\n})\n\n/**\n * @public\n */\nexport const ellipsisRule = defineTextTransformRule({\n on: /\\.\\.\\./,\n transform: () => '…',\n})\n\n/**\n * @public\n */\nexport const openingDoubleQuoteRule = defineTextTransformRule({\n on: /(?:^|(?<=[\\s{[(<'\"\\u2018\\u201C]))\"/g,\n transform: () => '“',\n})\n\n/**\n * @public\n */\nexport const closingDoubleQuoteRule = defineTextTransformRule({\n on: /\"/g,\n transform: () => '”',\n})\n\n/**\n * @public\n */\nexport const openingSingleQuoteRule = defineTextTransformRule({\n on: /(?:^|(?<=[\\s{[(<'\"\\u2018\\u201C]))'/g,\n transform: () => '‘',\n})\n\n/**\n * @public\n */\nexport const closingSingleQuoteRule = defineTextTransformRule({\n on: /'/g,\n transform: () => '’',\n})\n\n/**\n * @public\n */\nexport const smartQuotesRules: Array<InputRule> = [\n openingDoubleQuoteRule,\n closingDoubleQuoteRule,\n openingSingleQuoteRule,\n closingSingleQuoteRule,\n]\n\n/**\n * @public\n */\nexport const leftArrowRule = defineTextTransformRule({\n on: /<-/,\n transform: () => '←',\n})\n\n/**\n * @public\n */\nexport const rightArrowRule = defineTextTransformRule({\n on: /->/,\n transform: () => '→',\n})\n\n/**\n * @public\n */\nexport const copyrightRule = defineTextTransformRule({\n on: /\\(c\\)/,\n transform: () => '©',\n})\n\n/**\n * @public\n */\nexport const servicemarkRule = defineTextTransformRule({\n on: /\\(sm\\)/,\n transform: () => '℠',\n})\n\n/**\n * @public\n */\nexport const trademarkRule = defineTextTransformRule({\n on: /\\(tm\\)/,\n transform: () => '™',\n})\n\n/**\n * @beta\n */\nexport const registeredTrademarkRule = defineTextTransformRule({\n on: /\\(r\\)/,\n transform: () => '®',\n})\n\n/**\n * @public\n */\nexport const oneHalfRule = defineTextTransformRule({\n on: /(?:^|\\s)(1\\/2)\\s/,\n transform: () => '½',\n})\n\n/**\n * @public\n */\nexport const plusMinusRule = defineTextTransformRule({\n on: /\\+\\/-/,\n transform: () => '±',\n})\n\n/**\n * @public\n */\nexport const notEqualRule = defineTextTransformRule({\n on: /!=/,\n transform: () => '≠',\n})\n\n/**\n * @public\n */\nexport const laquoRule = defineTextTransformRule({\n on: /<</,\n transform: () => '«',\n})\n\n/**\n * @public\n */\nexport const raquoRule = defineTextTransformRule({\n on: />>/,\n transform: () => '»',\n})\n\n/**\n * @public\n */\nexport const multiplicationRule = defineTextTransformRule({\n on: /\\d+\\s?([*x])\\s?\\d+/,\n transform: () => '×',\n})\n\n/**\n * @public\n */\nexport const superscriptTwoRule = defineTextTransformRule({\n on: /\\^2/,\n transform: () => '²',\n})\n\n/**\n * @public\n */\nexport const superscriptThreeRule = defineTextTransformRule({\n on: /\\^3/,\n transform: () => '³',\n})\n\n/**\n * @public\n */\nexport const oneQuarterRule = defineTextTransformRule({\n on: /(?:^|\\s)(1\\/4)\\s/,\n transform: () => '¼',\n})\n\n/**\n * @public\n */\nexport const threeQuartersRule = defineTextTransformRule({\n on: /(?:^|\\s)(3\\/4)\\s/,\n transform: () => '¾',\n})\n","import {\n InputRulePlugin,\n type InputRuleGuard,\n} from '@portabletext/plugin-input-rule'\nimport {useMemo} from 'react'\nimport {\n closingDoubleQuoteRule,\n closingSingleQuoteRule,\n copyrightRule,\n ellipsisRule,\n emDashRule,\n laquoRule,\n leftArrowRule,\n multiplicationRule,\n notEqualRule,\n oneHalfRule,\n oneQuarterRule,\n openingDoubleQuoteRule,\n openingSingleQuoteRule,\n plusMinusRule,\n raquoRule,\n registeredTrademarkRule,\n rightArrowRule,\n servicemarkRule,\n superscriptThreeRule,\n superscriptTwoRule,\n threeQuartersRule,\n trademarkRule,\n} from './input-rules.typography'\n\nconst defaultRuleConfig = [\n {name: 'emDash', rule: emDashRule, state: 'on'},\n {name: 'ellipsis', rule: ellipsisRule, state: 'on'},\n {name: 'openingDoubleQuote', rule: openingDoubleQuoteRule, state: 'on'},\n {name: 'closingDoubleQuote', rule: closingDoubleQuoteRule, state: 'on'},\n {name: 'openingSingleQuote', rule: openingSingleQuoteRule, state: 'on'},\n {name: 'closingSingleQuote', rule: closingSingleQuoteRule, state: 'on'},\n {name: 'leftArrow', rule: leftArrowRule, state: 'on'},\n {name: 'rightArrow', rule: rightArrowRule, state: 'on'},\n {name: 'copyright', rule: copyrightRule, state: 'on'},\n {name: 'trademark', rule: trademarkRule, state: 'on'},\n {name: 'servicemark', rule: servicemarkRule, state: 'on'},\n {name: 'registeredTrademark', rule: registeredTrademarkRule, state: 'on'},\n {name: 'oneHalf', rule: oneHalfRule, state: 'off'},\n {name: 'plusMinus', rule: plusMinusRule, state: 'off'},\n {name: 'laquo', rule: laquoRule, state: 'off'},\n {name: 'notEqual', rule: notEqualRule, state: 'off'},\n {name: 'raquo', rule: raquoRule, state: 'off'},\n {name: 'multiplication', rule: multiplicationRule, state: 'off'},\n {name: 'superscriptTwo', rule: superscriptTwoRule, state: 'off'},\n {name: 'superscriptThree', rule: superscriptThreeRule, state: 'off'},\n {name: 'oneQuarter', rule: oneQuarterRule, state: 'off'},\n {name: 'threeQuarters', rule: threeQuartersRule, state: 'off'},\n] as const\n\ntype RuleName = (typeof defaultRuleConfig)[number]['name']\n\n/**\n * @public\n */\nexport type TypographyPluginProps<\n TEnabledRuleName extends RuleName = never,\n TDisabledRuleName extends Exclude<RuleName, TEnabledRuleName> = never,\n> = {\n guard?: InputRuleGuard\n /**\n * Preset configuration for rules.\n * - `'default'`: Common typography rules enabled (em dash, ellipsis, quotes, arrows, copyright symbols)\n * - `'all'`: All rules enabled\n * - `'none'`: No rules enabled (use with `enable` prop)\n *\n * @defaultValue 'default'\n */\n preset?: 'default' | 'all' | 'none'\n /**\n * Enable specific rules (additive to preset).\n * Use this to enable additional rules beyond the preset.\n *\n * @example\n * ```tsx\n * // Enable multiplication and plusMinus in addition to default rules\n * <TypographyPlugin enable={['multiplication', 'plusMinus']} />\n * ```\n */\n enable?: ReadonlyArray<TEnabledRuleName>\n /**\n * Disable specific rules (subtractive from preset).\n * Use this to disable rules that would otherwise be enabled by the preset.\n * Cannot contain rules that are in the `enable` array (TypeScript will enforce this).\n *\n * @example\n * ```tsx\n * // Disable em dash from the default rules\n * <TypographyPlugin disable={['emDash']} />\n * ```\n */\n disable?: ReadonlyArray<TDisabledRuleName>\n}\n\n/**\n * @public\n */\nexport function TypographyPlugin<\n TEnabledRuleName extends RuleName = never,\n TDisabledRuleName extends Exclude<RuleName, TEnabledRuleName> = never,\n>(props: TypographyPluginProps<TEnabledRuleName, TDisabledRuleName>) {\n const {preset = 'default', enable = [], disable = [], guard} = props\n\n const configuredInputRules = useMemo(() => {\n // Determine which rules should be enabled based on preset\n const enabledRules = new Set<RuleName>()\n\n if (preset === 'all') {\n // Enable all rules\n for (const rule of defaultRuleConfig) {\n enabledRules.add(rule.name)\n }\n } else if (preset === 'default') {\n // Enable only default rules (state: 'on')\n for (const rule of defaultRuleConfig) {\n if (rule.state === 'on') {\n enabledRules.add(rule.name)\n }\n }\n }\n // preset === 'none' starts with empty set\n\n // Apply enable list (additive)\n for (const ruleName of enable) {\n enabledRules.add(ruleName)\n }\n\n // Apply disable list (subtractive)\n for (const ruleName of disable) {\n enabledRules.delete(ruleName)\n }\n\n // Build final rule list\n return defaultRuleConfig.flatMap((rule) =>\n enabledRules.has(rule.name)\n ? [{...rule.rule, guard: guard ?? (() => true)}]\n : [],\n )\n }, [preset, enable, disable, guard])\n\n return <InputRulePlugin rules={configuredInputRules} />\n}\n"],"names":["createDecoratorGuard","config","snapshot","event","subSchema","getPathSubSchema","focusBlock","path","allowedDecorators","decorators","context","schema","flatMap","decorator","includes","name","length","matchedSpans","matches","match","getSelectedSpans","selection","preventInputRule","isActiveDecorator","some","span","node","marks","emDashRule","defineTextTransformRule","on","transform","ellipsisRule","openingDoubleQuoteRule","closingDoubleQuoteRule","openingSingleQuoteRule","closingSingleQuoteRule","smartQuotesRules","leftArrowRule","rightArrowRule","copyrightRule","servicemarkRule","trademarkRule","registeredTrademarkRule","oneHalfRule","plusMinusRule","notEqualRule","laquoRule","raquoRule","multiplicationRule","superscriptTwoRule","superscriptThreeRule","oneQuarterRule","threeQuartersRule","defaultRuleConfig","rule","state","TypographyPlugin","props","$","_c","preset","t0","enable","t1","disable","t2","guard","undefined","t3","t4","enabledRules","Set","add","rule_0","ruleName","ruleName_0","delete","t5","rule_1","has","_temp","configuredInputRules","t6"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@portabletext/plugin-typography",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Automatically transform text to typographic variants",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"portabletext",
|
|
@@ -30,29 +30,29 @@
|
|
|
30
30
|
"dist"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@portabletext/plugin-input-rule": "^
|
|
33
|
+
"@portabletext/plugin-input-rule": "^5.0.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@sanity/pkg-utils": "^10.2.1",
|
|
37
37
|
"@sanity/tsconfig": "^2.1.0",
|
|
38
|
-
"@types/react": "^19.2.
|
|
39
|
-
"@vitejs/plugin-react": "^5.
|
|
40
|
-
"@vitest/browser": "^4.1.
|
|
41
|
-
"@vitest/browser-playwright": "^4.1.
|
|
38
|
+
"@types/react": "^19.2.14",
|
|
39
|
+
"@vitejs/plugin-react": "^5.2.0",
|
|
40
|
+
"@vitest/browser": "^4.1.4",
|
|
41
|
+
"@vitest/browser-playwright": "^4.1.4",
|
|
42
42
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
43
43
|
"eslint": "^9.39.1",
|
|
44
44
|
"eslint-formatter-gha": "^1.6.0",
|
|
45
|
-
"eslint-plugin-react-hooks": "^7.
|
|
46
|
-
"react": "^19.2.
|
|
45
|
+
"eslint-plugin-react-hooks": "^7.1.1",
|
|
46
|
+
"react": "^19.2.5",
|
|
47
47
|
"typescript": "5.9.3",
|
|
48
48
|
"typescript-eslint": "^8.48.0",
|
|
49
|
-
"vitest": "^4.1.
|
|
50
|
-
"@portabletext/editor": "^
|
|
51
|
-
"@portabletext/schema": "^2.
|
|
52
|
-
"racejar": "2.0.
|
|
49
|
+
"vitest": "^4.1.4",
|
|
50
|
+
"@portabletext/editor": "^7.0.0",
|
|
51
|
+
"@portabletext/schema": "^2.2.0",
|
|
52
|
+
"racejar": "2.0.6"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@portabletext/editor": "^
|
|
55
|
+
"@portabletext/editor": "^7.0.0",
|
|
56
56
|
"react": "^19.2"
|
|
57
57
|
},
|
|
58
58
|
"engines": {
|