@portabletext/editor 1.46.0 → 1.47.1
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/lib/_chunks-cjs/behavior.core.cjs +7 -7
- package/lib/_chunks-cjs/behavior.core.cjs.map +1 -1
- package/lib/_chunks-cjs/behavior.markdown.cjs.map +1 -1
- package/lib/_chunks-cjs/editor-provider.cjs +411 -327
- package/lib/_chunks-cjs/editor-provider.cjs.map +1 -1
- package/lib/_chunks-cjs/parse-blocks.cjs +4 -4
- package/lib/_chunks-cjs/parse-blocks.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.is-overlapping-selection.cjs.map +1 -1
- package/lib/_chunks-es/behavior.core.js +7 -7
- package/lib/_chunks-es/behavior.core.js.map +1 -1
- package/lib/_chunks-es/behavior.markdown.js.map +1 -1
- package/lib/_chunks-es/editor-provider.js +412 -328
- package/lib/_chunks-es/editor-provider.js.map +1 -1
- package/lib/_chunks-es/parse-blocks.js +4 -4
- package/lib/_chunks-es/parse-blocks.js.map +1 -1
- package/lib/_chunks-es/selector.is-overlapping-selection.js.map +1 -1
- package/lib/behaviors/index.cjs.map +1 -1
- package/lib/behaviors/index.d.cts +590 -28
- package/lib/behaviors/index.d.ts +590 -28
- package/lib/behaviors/index.js.map +1 -1
- package/lib/index.cjs +4 -4
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +71 -3
- package/lib/index.d.ts +71 -3
- package/lib/index.js +4 -4
- package/lib/index.js.map +1 -1
- package/lib/plugins/index.cjs.map +1 -1
- package/lib/plugins/index.d.cts +78 -23
- package/lib/plugins/index.d.ts +78 -23
- package/lib/plugins/index.js.map +1 -1
- package/lib/selectors/index.d.cts +79 -27
- package/lib/selectors/index.d.ts +79 -27
- package/lib/utils/index.d.cts +84 -29
- package/lib/utils/index.d.ts +84 -29
- package/package.json +6 -6
- package/src/behavior-actions/behavior.action.insert.block.ts +1 -1
- package/src/behavior-actions/behavior.action.move.backward.ts +12 -0
- package/src/behavior-actions/behavior.action.move.forward.ts +11 -0
- package/src/behavior-actions/behavior.action.split.block.ts +1 -1
- package/src/behavior-actions/behavior.actions.ts +18 -0
- package/src/behavior-actions/behavior.guards.ts +1 -1
- package/src/behaviors/behavior.core.decorators.ts +4 -4
- package/src/behaviors/behavior.core.insert-break.ts +4 -4
- package/src/behaviors/behavior.decorator-pair.ts +1 -1
- package/src/behaviors/behavior.links.ts +1 -1
- package/src/behaviors/behavior.markdown.ts +1 -1
- package/src/behaviors/behavior.perform-event.ts +1 -1
- package/src/behaviors/behavior.types.event.ts +10 -0
- package/src/converters/converter.portable-text.deserialize.test.ts +2 -3
- package/src/converters/converter.text-html.deserialize.test.ts +62 -5
- package/src/converters/converter.text-html.serialize.test.ts +9 -5
- package/src/converters/converter.text-html.ts +66 -64
- package/src/converters/converter.text-plain.test.ts +9 -4
- package/src/converters/converter.text-plain.ts +91 -87
- package/src/converters/converters.core.ts +13 -8
- package/src/editor/Editable.tsx +10 -5
- package/src/editor/PortableTextEditor.tsx +5 -5
- package/src/editor/__tests__/PortableTextEditorTester.tsx +4 -3
- package/src/editor/__tests__/insert-block.test.tsx +10 -10
- package/src/editor/__tests__/self-solving.test.tsx +2 -2
- package/src/editor/components/Synchronizer.tsx +1 -1
- package/src/editor/create-editor.ts +51 -18
- package/src/editor/editor-machine.ts +1 -1
- package/src/editor/{define-schema.ts → editor-schema.ts} +114 -5
- package/src/editor/editor-snapshot.ts +1 -1
- package/src/editor/get-active-decorators.ts +2 -2
- package/src/editor/{create-editor-schema.ts → legacy-schema.ts} +3 -3
- package/src/editor/mutation-machine.ts +1 -1
- package/src/editor/plugins/createWithObjectKeys.ts +6 -9
- package/src/editor/plugins/createWithPatches.ts +12 -11
- package/src/editor/plugins/createWithPortableTextBlockStyle.ts +2 -6
- package/src/editor/plugins/createWithPortableTextMarkModel.ts +15 -12
- package/src/editor/plugins/createWithSchemaTypes.ts +24 -16
- package/src/editor/plugins/createWithUndoRedo.ts +3 -4
- package/src/editor/plugins/createWithUtils.ts +12 -10
- package/src/editor/plugins/with-plugins.ts +5 -15
- package/src/editor/range-decorations-machine.ts +1 -1
- package/src/editor/sync-machine.ts +1 -1
- package/src/index.ts +2 -2
- package/src/internal-utils/__tests__/operationToPatches.test.ts +12 -10
- package/src/internal-utils/__tests__/patchToOperations.test.ts +3 -2
- package/src/internal-utils/__tests__/values.test.ts +3 -2
- package/src/internal-utils/applyPatch.ts +7 -9
- package/src/internal-utils/create-test-snapshot.ts +1 -1
- package/src/internal-utils/drag-selection.test.ts +1 -1
- package/src/internal-utils/operationToPatches.ts +4 -6
- package/src/internal-utils/parse-blocks.test.ts +1 -1
- package/src/internal-utils/parse-blocks.ts +8 -7
- package/src/internal-utils/slate-children-to-blocks.ts +1 -1
- package/src/internal-utils/slate-utils.ts +1 -1
- package/src/internal-utils/validateValue.ts +4 -6
- package/src/internal-utils/values.ts +5 -5
- package/src/plugins/plugin.decorator-shortcut.ts +1 -1
- package/src/plugins/plugin.markdown.test.tsx +1 -1
- package/src/plugins/plugin.markdown.tsx +1 -1
- package/src/selectors/selector.get-selection-text.test.ts +1 -1
- package/src/selectors/selector.get-trimmed-selection.test.ts +1 -1
package/lib/index.d.cts
CHANGED
|
@@ -64,7 +64,6 @@ import {
|
|
|
64
64
|
Values,
|
|
65
65
|
} from 'xstate'
|
|
66
66
|
import {GuardArgs} from 'xstate/guards'
|
|
67
|
-
import {PortableTextMemberSchemaTypes as PortableTextMemberSchemaTypes_2} from '..'
|
|
68
67
|
|
|
69
68
|
declare type AbstractBehaviorEvent =
|
|
70
69
|
| {
|
|
@@ -1455,7 +1454,7 @@ declare const editorMachine: StateMachine<
|
|
|
1455
1454
|
converters: Set<Converter>
|
|
1456
1455
|
keyGenerator: () => string
|
|
1457
1456
|
pendingEvents: never[]
|
|
1458
|
-
schema:
|
|
1457
|
+
schema: EditorSchema
|
|
1459
1458
|
selection: null
|
|
1460
1459
|
initialReadOnly: boolean
|
|
1461
1460
|
maxBlocks: number | undefined
|
|
@@ -4965,7 +4964,65 @@ export declare type EditorProviderProps = {
|
|
|
4965
4964
|
/**
|
|
4966
4965
|
* @public
|
|
4967
4966
|
*/
|
|
4968
|
-
export declare type EditorSchema =
|
|
4967
|
+
export declare type EditorSchema = {
|
|
4968
|
+
annotations: ReadonlyArray<
|
|
4969
|
+
BaseDefinition & {
|
|
4970
|
+
fields: ReadonlyArray<{
|
|
4971
|
+
name: string
|
|
4972
|
+
type: string
|
|
4973
|
+
}>
|
|
4974
|
+
}
|
|
4975
|
+
>
|
|
4976
|
+
block: {
|
|
4977
|
+
name: string
|
|
4978
|
+
}
|
|
4979
|
+
blockObjects: ReadonlyArray<
|
|
4980
|
+
BaseDefinition & {
|
|
4981
|
+
fields: ReadonlyArray<{
|
|
4982
|
+
name: string
|
|
4983
|
+
type: string
|
|
4984
|
+
}>
|
|
4985
|
+
}
|
|
4986
|
+
>
|
|
4987
|
+
decorators: ReadonlyArray<
|
|
4988
|
+
BaseDefinition & {
|
|
4989
|
+
/**
|
|
4990
|
+
* @deprecated
|
|
4991
|
+
* Use `name` instead
|
|
4992
|
+
*/
|
|
4993
|
+
value: string
|
|
4994
|
+
}
|
|
4995
|
+
>
|
|
4996
|
+
inlineObjects: ReadonlyArray<
|
|
4997
|
+
BaseDefinition & {
|
|
4998
|
+
fields: ReadonlyArray<{
|
|
4999
|
+
name: string
|
|
5000
|
+
type: string
|
|
5001
|
+
}>
|
|
5002
|
+
}
|
|
5003
|
+
>
|
|
5004
|
+
span: {
|
|
5005
|
+
name: string
|
|
5006
|
+
}
|
|
5007
|
+
styles: ReadonlyArray<
|
|
5008
|
+
BaseDefinition & {
|
|
5009
|
+
/**
|
|
5010
|
+
* @deprecated
|
|
5011
|
+
* Use `name` instead
|
|
5012
|
+
*/
|
|
5013
|
+
value: string
|
|
5014
|
+
}
|
|
5015
|
+
>
|
|
5016
|
+
lists: ReadonlyArray<
|
|
5017
|
+
BaseDefinition & {
|
|
5018
|
+
/**
|
|
5019
|
+
* @deprecated
|
|
5020
|
+
* Use `name` instead
|
|
5021
|
+
*/
|
|
5022
|
+
value: string
|
|
5023
|
+
}
|
|
5024
|
+
>
|
|
5025
|
+
}
|
|
4969
5026
|
|
|
4970
5027
|
/** @public */
|
|
4971
5028
|
export declare type EditorSelection = {
|
|
@@ -5153,6 +5210,7 @@ declare type InternalEditor = Editor & {
|
|
|
5153
5210
|
editable: EditableAPI
|
|
5154
5211
|
editorActor: EditorActor
|
|
5155
5212
|
slateEditor: SlateEditor
|
|
5213
|
+
legacySchema: PortableTextMemberSchemaTypes
|
|
5156
5214
|
}
|
|
5157
5215
|
}
|
|
5158
5216
|
|
|
@@ -6273,11 +6331,19 @@ declare type SyntheticBehaviorEvent =
|
|
|
6273
6331
|
type: StrictExtract<SyntheticBehaviorEventType, 'insert.text'>
|
|
6274
6332
|
text: string
|
|
6275
6333
|
}
|
|
6334
|
+
| {
|
|
6335
|
+
type: StrictExtract<SyntheticBehaviorEventType, 'move.backward'>
|
|
6336
|
+
distance: number
|
|
6337
|
+
}
|
|
6276
6338
|
| {
|
|
6277
6339
|
type: StrictExtract<SyntheticBehaviorEventType, 'move.block'>
|
|
6278
6340
|
at: [KeyedSegment]
|
|
6279
6341
|
to: [KeyedSegment]
|
|
6280
6342
|
}
|
|
6343
|
+
| {
|
|
6344
|
+
type: StrictExtract<SyntheticBehaviorEventType, 'move.forward'>
|
|
6345
|
+
distance: number
|
|
6346
|
+
}
|
|
6281
6347
|
| {
|
|
6282
6348
|
type: StrictExtract<SyntheticBehaviorEventType, 'select'>
|
|
6283
6349
|
at: EditorSelection
|
|
@@ -6314,7 +6380,9 @@ declare const syntheticBehaviorEventTypes: readonly [
|
|
|
6314
6380
|
'insert.block',
|
|
6315
6381
|
'insert.span',
|
|
6316
6382
|
'insert.text',
|
|
6383
|
+
'move.backward',
|
|
6317
6384
|
'move.block',
|
|
6385
|
+
'move.forward',
|
|
6318
6386
|
'select',
|
|
6319
6387
|
'split.block',
|
|
6320
6388
|
]
|
package/lib/index.d.ts
CHANGED
|
@@ -64,7 +64,6 @@ import {
|
|
|
64
64
|
Values,
|
|
65
65
|
} from 'xstate'
|
|
66
66
|
import {GuardArgs} from 'xstate/guards'
|
|
67
|
-
import {PortableTextMemberSchemaTypes as PortableTextMemberSchemaTypes_2} from '..'
|
|
68
67
|
|
|
69
68
|
declare type AbstractBehaviorEvent =
|
|
70
69
|
| {
|
|
@@ -1455,7 +1454,7 @@ declare const editorMachine: StateMachine<
|
|
|
1455
1454
|
converters: Set<Converter>
|
|
1456
1455
|
keyGenerator: () => string
|
|
1457
1456
|
pendingEvents: never[]
|
|
1458
|
-
schema:
|
|
1457
|
+
schema: EditorSchema
|
|
1459
1458
|
selection: null
|
|
1460
1459
|
initialReadOnly: boolean
|
|
1461
1460
|
maxBlocks: number | undefined
|
|
@@ -4965,7 +4964,65 @@ export declare type EditorProviderProps = {
|
|
|
4965
4964
|
/**
|
|
4966
4965
|
* @public
|
|
4967
4966
|
*/
|
|
4968
|
-
export declare type EditorSchema =
|
|
4967
|
+
export declare type EditorSchema = {
|
|
4968
|
+
annotations: ReadonlyArray<
|
|
4969
|
+
BaseDefinition & {
|
|
4970
|
+
fields: ReadonlyArray<{
|
|
4971
|
+
name: string
|
|
4972
|
+
type: string
|
|
4973
|
+
}>
|
|
4974
|
+
}
|
|
4975
|
+
>
|
|
4976
|
+
block: {
|
|
4977
|
+
name: string
|
|
4978
|
+
}
|
|
4979
|
+
blockObjects: ReadonlyArray<
|
|
4980
|
+
BaseDefinition & {
|
|
4981
|
+
fields: ReadonlyArray<{
|
|
4982
|
+
name: string
|
|
4983
|
+
type: string
|
|
4984
|
+
}>
|
|
4985
|
+
}
|
|
4986
|
+
>
|
|
4987
|
+
decorators: ReadonlyArray<
|
|
4988
|
+
BaseDefinition & {
|
|
4989
|
+
/**
|
|
4990
|
+
* @deprecated
|
|
4991
|
+
* Use `name` instead
|
|
4992
|
+
*/
|
|
4993
|
+
value: string
|
|
4994
|
+
}
|
|
4995
|
+
>
|
|
4996
|
+
inlineObjects: ReadonlyArray<
|
|
4997
|
+
BaseDefinition & {
|
|
4998
|
+
fields: ReadonlyArray<{
|
|
4999
|
+
name: string
|
|
5000
|
+
type: string
|
|
5001
|
+
}>
|
|
5002
|
+
}
|
|
5003
|
+
>
|
|
5004
|
+
span: {
|
|
5005
|
+
name: string
|
|
5006
|
+
}
|
|
5007
|
+
styles: ReadonlyArray<
|
|
5008
|
+
BaseDefinition & {
|
|
5009
|
+
/**
|
|
5010
|
+
* @deprecated
|
|
5011
|
+
* Use `name` instead
|
|
5012
|
+
*/
|
|
5013
|
+
value: string
|
|
5014
|
+
}
|
|
5015
|
+
>
|
|
5016
|
+
lists: ReadonlyArray<
|
|
5017
|
+
BaseDefinition & {
|
|
5018
|
+
/**
|
|
5019
|
+
* @deprecated
|
|
5020
|
+
* Use `name` instead
|
|
5021
|
+
*/
|
|
5022
|
+
value: string
|
|
5023
|
+
}
|
|
5024
|
+
>
|
|
5025
|
+
}
|
|
4969
5026
|
|
|
4970
5027
|
/** @public */
|
|
4971
5028
|
export declare type EditorSelection = {
|
|
@@ -5153,6 +5210,7 @@ declare type InternalEditor = Editor & {
|
|
|
5153
5210
|
editable: EditableAPI
|
|
5154
5211
|
editorActor: EditorActor
|
|
5155
5212
|
slateEditor: SlateEditor
|
|
5213
|
+
legacySchema: PortableTextMemberSchemaTypes
|
|
5156
5214
|
}
|
|
5157
5215
|
}
|
|
5158
5216
|
|
|
@@ -6273,11 +6331,19 @@ declare type SyntheticBehaviorEvent =
|
|
|
6273
6331
|
type: StrictExtract<SyntheticBehaviorEventType, 'insert.text'>
|
|
6274
6332
|
text: string
|
|
6275
6333
|
}
|
|
6334
|
+
| {
|
|
6335
|
+
type: StrictExtract<SyntheticBehaviorEventType, 'move.backward'>
|
|
6336
|
+
distance: number
|
|
6337
|
+
}
|
|
6276
6338
|
| {
|
|
6277
6339
|
type: StrictExtract<SyntheticBehaviorEventType, 'move.block'>
|
|
6278
6340
|
at: [KeyedSegment]
|
|
6279
6341
|
to: [KeyedSegment]
|
|
6280
6342
|
}
|
|
6343
|
+
| {
|
|
6344
|
+
type: StrictExtract<SyntheticBehaviorEventType, 'move.forward'>
|
|
6345
|
+
distance: number
|
|
6346
|
+
}
|
|
6281
6347
|
| {
|
|
6282
6348
|
type: StrictExtract<SyntheticBehaviorEventType, 'select'>
|
|
6283
6349
|
at: EditorSelection
|
|
@@ -6314,7 +6380,9 @@ declare const syntheticBehaviorEventTypes: readonly [
|
|
|
6314
6380
|
'insert.block',
|
|
6315
6381
|
'insert.span',
|
|
6316
6382
|
'insert.text',
|
|
6383
|
+
'move.backward',
|
|
6317
6384
|
'move.block',
|
|
6385
|
+
'move.forward',
|
|
6318
6386
|
'select',
|
|
6319
6387
|
'split.block',
|
|
6320
6388
|
]
|
package/lib/index.js
CHANGED
|
@@ -1081,9 +1081,9 @@ const debug = debugWithName("component:Editable"), PLACEHOLDER_STYLE = {
|
|
|
1081
1081
|
const withHotKeys = createWithHotkeys(editorActor, portableTextEditor, hotkeys);
|
|
1082
1082
|
return debug("Editable is in edit mode"), withHotKeys(slateEditor);
|
|
1083
1083
|
}, [editorActor, hotkeys, portableTextEditor, readOnly, slateEditor]);
|
|
1084
|
-
const renderElement = useCallback((eProps) => /* @__PURE__ */ jsx(Element$1, { ...eProps, readOnly, renderBlock, renderChild, renderListItem, renderStyle, schemaTypes, spellCheck }), [
|
|
1084
|
+
const renderElement = useCallback((eProps) => /* @__PURE__ */ jsx(Element$1, { ...eProps, readOnly, renderBlock, renderChild, renderListItem, renderStyle, schemaTypes: portableTextEditor.schemaTypes, spellCheck }), [portableTextEditor, spellCheck, readOnly, renderBlock, renderChild, renderListItem, renderStyle]), renderLeaf = useCallback((lProps) => {
|
|
1085
1085
|
if (lProps.leaf._type === "span") {
|
|
1086
|
-
let rendered = /* @__PURE__ */ jsx(Leaf, { ...lProps, editorActor, schemaTypes, renderAnnotation, renderChild, renderDecorator, readOnly });
|
|
1086
|
+
let rendered = /* @__PURE__ */ jsx(Leaf, { ...lProps, editorActor, schemaTypes: portableTextEditor.schemaTypes, renderAnnotation, renderChild, renderDecorator, readOnly });
|
|
1087
1087
|
if (renderPlaceholder && lProps.leaf.placeholder && lProps.text.text === "")
|
|
1088
1088
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1089
1089
|
/* @__PURE__ */ jsx("span", { style: PLACEHOLDER_STYLE, contentEditable: !1, children: renderPlaceholder() }),
|
|
@@ -1095,7 +1095,7 @@ const debug = debugWithName("component:Editable"), PLACEHOLDER_STYLE = {
|
|
|
1095
1095
|
})), rendered;
|
|
1096
1096
|
}
|
|
1097
1097
|
return lProps.children;
|
|
1098
|
-
}, [editorActor, readOnly, renderAnnotation, renderChild, renderDecorator, renderPlaceholder
|
|
1098
|
+
}, [editorActor, portableTextEditor.schemaTypes, readOnly, renderAnnotation, renderChild, renderDecorator, renderPlaceholder]), restoreSelectionFromProps = useCallback(() => {
|
|
1099
1099
|
if (propsSelection) {
|
|
1100
1100
|
debug(`Selection from props ${JSON.stringify(propsSelection)}`);
|
|
1101
1101
|
const normalizedSelection = normalizeSelection(propsSelection, fromSlateValue(slateEditor.children, blockTypeName));
|
|
@@ -1188,7 +1188,7 @@ const debug = debugWithName("component:Editable"), PLACEHOLDER_STYLE = {
|
|
|
1188
1188
|
event: event_1,
|
|
1189
1189
|
value,
|
|
1190
1190
|
path,
|
|
1191
|
-
schemaTypes
|
|
1191
|
+
schemaTypes: portableTextEditor.schemaTypes
|
|
1192
1192
|
});
|
|
1193
1193
|
if (onPasteResult || !slateEditor.selection)
|
|
1194
1194
|
event_1.preventDefault(), editorActor.send({
|