@portabletext/plugin-typography 8.0.50 → 9.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.d.ts +44 -44
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +11 -21
package/dist/index.d.ts
CHANGED
|
@@ -112,93 +112,93 @@ declare const oneQuarterRule: InputRule<true>;
|
|
|
112
112
|
*/
|
|
113
113
|
declare const threeQuartersRule: InputRule<true>;
|
|
114
114
|
declare const defaultRuleConfig: readonly [{
|
|
115
|
-
readonly name:
|
|
115
|
+
readonly name: 'emDash';
|
|
116
116
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
117
|
-
readonly state:
|
|
117
|
+
readonly state: 'on';
|
|
118
118
|
}, {
|
|
119
|
-
readonly name:
|
|
119
|
+
readonly name: 'ellipsis';
|
|
120
120
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
121
|
-
readonly state:
|
|
121
|
+
readonly state: 'on';
|
|
122
122
|
}, {
|
|
123
|
-
readonly name:
|
|
123
|
+
readonly name: 'openingDoubleQuote';
|
|
124
124
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
125
|
-
readonly state:
|
|
125
|
+
readonly state: 'on';
|
|
126
126
|
}, {
|
|
127
|
-
readonly name:
|
|
127
|
+
readonly name: 'closingDoubleQuote';
|
|
128
128
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
129
|
-
readonly state:
|
|
129
|
+
readonly state: 'on';
|
|
130
130
|
}, {
|
|
131
|
-
readonly name:
|
|
131
|
+
readonly name: 'openingSingleQuote';
|
|
132
132
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
133
|
-
readonly state:
|
|
133
|
+
readonly state: 'on';
|
|
134
134
|
}, {
|
|
135
|
-
readonly name:
|
|
135
|
+
readonly name: 'closingSingleQuote';
|
|
136
136
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
137
|
-
readonly state:
|
|
137
|
+
readonly state: 'on';
|
|
138
138
|
}, {
|
|
139
|
-
readonly name:
|
|
139
|
+
readonly name: 'leftArrow';
|
|
140
140
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
141
|
-
readonly state:
|
|
141
|
+
readonly state: 'on';
|
|
142
142
|
}, {
|
|
143
|
-
readonly name:
|
|
143
|
+
readonly name: 'rightArrow';
|
|
144
144
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
145
|
-
readonly state:
|
|
145
|
+
readonly state: 'on';
|
|
146
146
|
}, {
|
|
147
|
-
readonly name:
|
|
147
|
+
readonly name: 'copyright';
|
|
148
148
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
149
|
-
readonly state:
|
|
149
|
+
readonly state: 'on';
|
|
150
150
|
}, {
|
|
151
|
-
readonly name:
|
|
151
|
+
readonly name: 'trademark';
|
|
152
152
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
153
|
-
readonly state:
|
|
153
|
+
readonly state: 'on';
|
|
154
154
|
}, {
|
|
155
|
-
readonly name:
|
|
155
|
+
readonly name: 'servicemark';
|
|
156
156
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
157
|
-
readonly state:
|
|
157
|
+
readonly state: 'on';
|
|
158
158
|
}, {
|
|
159
|
-
readonly name:
|
|
159
|
+
readonly name: 'registeredTrademark';
|
|
160
160
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
161
|
-
readonly state:
|
|
161
|
+
readonly state: 'on';
|
|
162
162
|
}, {
|
|
163
|
-
readonly name:
|
|
163
|
+
readonly name: 'oneHalf';
|
|
164
164
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
165
|
-
readonly state:
|
|
165
|
+
readonly state: 'off';
|
|
166
166
|
}, {
|
|
167
|
-
readonly name:
|
|
167
|
+
readonly name: 'plusMinus';
|
|
168
168
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
169
|
-
readonly state:
|
|
169
|
+
readonly state: 'off';
|
|
170
170
|
}, {
|
|
171
|
-
readonly name:
|
|
171
|
+
readonly name: 'laquo';
|
|
172
172
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
173
|
-
readonly state:
|
|
173
|
+
readonly state: 'off';
|
|
174
174
|
}, {
|
|
175
|
-
readonly name:
|
|
175
|
+
readonly name: 'notEqual';
|
|
176
176
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
177
|
-
readonly state:
|
|
177
|
+
readonly state: 'off';
|
|
178
178
|
}, {
|
|
179
|
-
readonly name:
|
|
179
|
+
readonly name: 'raquo';
|
|
180
180
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
181
|
-
readonly state:
|
|
181
|
+
readonly state: 'off';
|
|
182
182
|
}, {
|
|
183
|
-
readonly name:
|
|
183
|
+
readonly name: 'multiplication';
|
|
184
184
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
185
|
-
readonly state:
|
|
185
|
+
readonly state: 'off';
|
|
186
186
|
}, {
|
|
187
|
-
readonly name:
|
|
187
|
+
readonly name: 'superscriptTwo';
|
|
188
188
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
189
|
-
readonly state:
|
|
189
|
+
readonly state: 'off';
|
|
190
190
|
}, {
|
|
191
|
-
readonly name:
|
|
191
|
+
readonly name: 'superscriptThree';
|
|
192
192
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
193
|
-
readonly state:
|
|
193
|
+
readonly state: 'off';
|
|
194
194
|
}, {
|
|
195
|
-
readonly name:
|
|
195
|
+
readonly name: 'oneQuarter';
|
|
196
196
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
197
|
-
readonly state:
|
|
197
|
+
readonly state: 'off';
|
|
198
198
|
}, {
|
|
199
|
-
readonly name:
|
|
199
|
+
readonly name: 'threeQuarters';
|
|
200
200
|
readonly rule: import("@portabletext/plugin-input-rule").InputRule<true>;
|
|
201
|
-
readonly state:
|
|
201
|
+
readonly state: 'off';
|
|
202
202
|
}];
|
|
203
203
|
type RuleName = (typeof defaultRuleConfig)[number]['name'];
|
|
204
204
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/create-decorator-guard.ts","../src/input-rules.typography.ts","../src/plugin.typography.tsx"],"mappings":";;;;;;;;;;;;;;;;iBAsBgB,qBAAqB;EACnC,eACE;IAEA,SAAS,KAAK;QACV,MAAM;IACV;;;;cCpBS,YAAU;;;;cAQV,cAAY;;;;cAQZ,wBAAsB;;;;cAQtB,wBAAsB;;;;cAQtB,wBAAsB;;;;cAQtB,wBAAsB;;;;cAQtB,kBAAkB,MAAM;;;;cAUxB,eAAa;;;;cAQb,gBAAc;;;;cAQd,eAAa;;;;cAQb,iBAAe;;;;cAQf,eAAa;;;;cAQb,yBAAuB;;;;cAQvB,aAAW;;;;cAQX,eAAa;;;;cAQb,cAAY;;;;cAQZ,WAAS;;;;cAQT,WAAS;;;;cAQT,oBAAkB;;;;cAQlB,oBAAkB;;;;cAQlB,sBAAoB;;;;cAQpB,gBAAc;;;;cAQd,mBAAiB;cC5JxB
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/create-decorator-guard.ts","../src/input-rules.typography.ts","../src/plugin.typography.tsx"],"mappings":";;;;;;;;;;;;;;;;iBAsBgB,qBAAqB;EACnC,eACE;IAEA,SAAS,KAAK;QACV,MAAM;IACV;;;;cCpBS,YAAU;;;;cAQV,cAAY;;;;cAQZ,wBAAsB;;;;cAQtB,wBAAsB;;;;cAQtB,wBAAsB;;;;cAQtB,wBAAsB;;;;cAQtB,kBAAkB,MAAM;;;;cAUxB,eAAa;;;;cAQb,gBAAc;;;;cAQd,eAAa;;;;cAQb,iBAAe;;;;cAQf,eAAa;;;;cAQb,yBAAuB;;;;cAQvB,aAAW;;;;cAQX,eAAa;;;;cAQb,cAAY;;;;cAQZ,WAAS;;;;cAQT,WAAS;;;;cAQT,oBAAkB;;;;cAQlB,oBAAkB;;;;cAQlB,sBAAoB;;;;cAQpB,gBAAc;;;;cAQd,mBAAiB;cC5JxB;WACH;WAAgB,gDAAI;WAAc;;WAClC;WAAkB,gDAAI;WAAgB;;WACtC;WAA4B,gDAAI;WAA0B;;WAC1D;WAA4B,gDAAI;WAA0B;;WAC1D;WAA4B,gDAAI;WAA0B;;WAC1D;WAA4B,gDAAI;WAA0B;;WAC1D;WAAmB,gDAAI;WAAiB;;WACxC;WAAoB,gDAAI;WAAkB;;WAC1C;WAAmB,gDAAI;WAAiB;;WACxC;WAAmB,gDAAI;WAAiB;;WACxC;WAAqB,gDAAI;WAAmB;;WAC5C;WAA6B,gDAAI;WAA2B;;WAC5D;WAAiB,gDAAI;WAAe;;WACpC;WAAmB,gDAAI;WAAiB;;WACxC;WAAe,gDAAI;WAAa;;WAChC;WAAkB,gDAAI;WAAgB;;WACtC;WAAe,gDAAI;WAAa;;WAChC;WAAwB,gDAAI;WAAsB;;WAClD;WAAwB,gDAAI;WAAsB;;WAClD;WAA0B,gDAAI;WAAwB;;WACtD;WAAoB,gDAAI;WAAkB;;WAC1C;WAAuB,gDAAI;WAAqB;;KAG9C,mBAAmB;;;;KAKZ,sBACV,yBAAyB,kBACzB,0BAA0B,QAAQ,UAAU;EAE5C,QAAQ;;;;;;;;;EASR;;;;;;;;;;;EAWA,SAAS,cAAc;;;;;;;;;;;;EAYvB,UAAU,cAAc;;;;;iBAMV,iBACd,yBAAyB,kBACzB,0BAA0B,QAAQ,UAAU,2BAC5C,OAAO,sBAAsB,kBAAkB,qCAAkB,IAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,6 @@ import { getSelectedSpans, isActiveDecorator } from "@portabletext/editor/select
|
|
|
2
2
|
import { getPathSubSchema } from "@portabletext/editor/traversal";
|
|
3
3
|
import { InputRulePlugin, defineTextTransformRule } from "@portabletext/plugin-input-rule";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
5
|
-
import "react";
|
|
6
5
|
import { jsx } from "react/jsx-runtime";
|
|
7
6
|
/**
|
|
8
7
|
* @public
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["EditorContext","EditorSchema","getSelectedSpans","isActiveDecorator","getPathSubSchema","InputRuleGuard","createDecoratorGuard","config","decorators","context","Pick","Array","snapshot","event","subSchema","focusBlock","path","allowedDecorators","schema","flatMap","decorator","includes","name","length","matchedSpans","matches","match","selection","preventInputRule","some","span","node","marks","defineTextTransformRule","InputRule","emDashRule","on","transform","ellipsisRule","openingDoubleQuoteRule","closingDoubleQuoteRule","openingSingleQuoteRule","closingSingleQuoteRule","smartQuotesRules","Array","leftArrowRule","rightArrowRule","copyrightRule","servicemarkRule","trademarkRule","registeredTrademarkRule","oneHalfRule","fraction","plusMinusRule","notEqualRule","laquoRule","raquoRule","multiplicationRule","operator","superscriptTwoRule","superscriptThreeRule","oneQuarterRule","threeQuartersRule","InputRulePlugin","InputRuleGuard","useMemo","closingDoubleQuoteRule","closingSingleQuoteRule","copyrightRule","ellipsisRule","emDashRule","laquoRule","leftArrowRule","multiplicationRule","notEqualRule","oneHalfRule","oneQuarterRule","openingDoubleQuoteRule","openingSingleQuoteRule","plusMinusRule","raquoRule","registeredTrademarkRule","rightArrowRule","servicemarkRule","superscriptThreeRule","superscriptTwoRule","threeQuartersRule","trademarkRule","defaultRuleConfig","name","rule","state","const","RuleName","TypographyPluginProps","Exclude","TEnabledRuleName","guard","preset","enable","ReadonlyArray","disable","TDisabledRuleName","TypographyPlugin","props","$","_c","t0","t1","t2","undefined","t3","t4","enabledRules","Set","add","rule_0","ruleName","ruleName_0","delete","t5","flatMap","rule_1","has","_temp","configuredInputRules","t6"],"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)(?<fraction>1\\/2)\\s/,\n transform: {fraction: () => '½'},\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?(?<operator>[*x])\\s?\\d+/,\n transform: {operator: () => '×'},\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)(?<fraction>1\\/4)\\s/,\n transform: {fraction: () => '¼'},\n})\n\n/**\n * @public\n */\nexport const threeQuartersRule = defineTextTransformRule({\n on: /(?:^|\\s)(?<fraction>3\\/4)\\s/,\n transform: {fraction: () => '¾'},\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["preset = 'default'","enable = []","disable = []","rule","ruleName","defaultRuleConfig.flatMap((rule) =>\n enabledRules.has(rule.name)\n ? [{...rule.rule, guard: guard ?? (() => true)}]\n : [],\n )","() => true","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])","<InputRulePlugin rules={configuredInputRules} />"],"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)(?<fraction>1\\/2)\\s/,\n transform: {fraction: () => '½'},\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?(?<operator>[*x])\\s?\\d+/,\n transform: {operator: () => '×'},\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)(?<fraction>1\\/4)\\s/,\n transform: {fraction: () => '¼'},\n})\n\n/**\n * @public\n */\nexport const threeQuartersRule = defineTextTransformRule({\n on: /(?:^|\\s)(?<fraction>3\\/4)\\s/,\n transform: {fraction: () => '¾'},\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"],"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": "9.0.0",
|
|
4
4
|
"description": "Automatically transform text to typographic variants",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plugin",
|
|
@@ -23,53 +23,43 @@
|
|
|
23
23
|
],
|
|
24
24
|
"type": "module",
|
|
25
25
|
"sideEffects": false,
|
|
26
|
-
"main": "./dist/index.js",
|
|
27
|
-
"module": "./dist/index.js",
|
|
28
26
|
"types": "./dist/index.d.ts",
|
|
29
27
|
"exports": {
|
|
30
28
|
".": "./dist/index.js",
|
|
31
29
|
"./package.json": "./package.json"
|
|
32
30
|
},
|
|
33
31
|
"dependencies": {
|
|
34
|
-
"@portabletext/plugin-input-rule": "^
|
|
32
|
+
"@portabletext/plugin-input-rule": "^7.0.0"
|
|
35
33
|
},
|
|
36
34
|
"devDependencies": {
|
|
37
|
-
"@
|
|
38
|
-
"@sanity/pkg-utils": "^12.1.0",
|
|
35
|
+
"@sanity/pkg-utils": "^12.3.0",
|
|
39
36
|
"@sanity/tsconfig": "^2.1.0",
|
|
40
37
|
"@types/react": "^19.2.17",
|
|
41
|
-
"@vitejs/plugin-react": "^6.0
|
|
38
|
+
"@vitejs/plugin-react": "^6.1.0",
|
|
42
39
|
"@vitest/browser": "^4.1.10",
|
|
43
40
|
"@vitest/browser-playwright": "^4.1.10",
|
|
44
|
-
"
|
|
45
|
-
"eslint": "^9.39.4",
|
|
46
|
-
"eslint-formatter-gha": "^1.6.0",
|
|
47
|
-
"eslint-plugin-react-hooks": "^7.1.1",
|
|
41
|
+
"oxc-transform-react": "^0.145.0",
|
|
48
42
|
"react": "^19.2.8",
|
|
49
|
-
"typescript": "
|
|
50
|
-
"typescript-eslint": "^8.62.0",
|
|
43
|
+
"typescript": "^7.0.2",
|
|
51
44
|
"vite": "^8.2.0",
|
|
52
45
|
"vitest": "^4.1.10",
|
|
53
|
-
"@portabletext/editor": "^
|
|
54
|
-
"@portabletext/schema": "^
|
|
55
|
-
"racejar": "
|
|
46
|
+
"@portabletext/editor": "^8.0.0",
|
|
47
|
+
"@portabletext/schema": "^3.0.0",
|
|
48
|
+
"racejar": "3.0.0"
|
|
56
49
|
},
|
|
57
50
|
"peerDependencies": {
|
|
58
|
-
"@portabletext/editor": "^
|
|
51
|
+
"@portabletext/editor": "^8.0.0",
|
|
59
52
|
"react": "^19.2"
|
|
60
53
|
},
|
|
61
54
|
"engines": {
|
|
62
|
-
"node": ">=
|
|
55
|
+
"node": ">=22.12"
|
|
63
56
|
},
|
|
64
57
|
"scripts": {
|
|
65
58
|
"build": "pkg-utils build --strict --check",
|
|
66
|
-
"check:lint": "biome lint .",
|
|
67
|
-
"check:react-compiler": "eslint --cache .",
|
|
68
59
|
"check:types": "tsc",
|
|
69
60
|
"check:types:watch": "tsc --watch",
|
|
70
61
|
"clean": "del .turbo && del lib && del node_modules",
|
|
71
62
|
"dev": "pkg-utils watch",
|
|
72
|
-
"lint:fix": "biome lint --write .",
|
|
73
63
|
"test": "vitest --run",
|
|
74
64
|
"test:browser": "vitest --run --project browser",
|
|
75
65
|
"test:browser:chromium": "vitest run --project \"browser (chromium)\"",
|