@portabletext/editor 1.35.0 → 1.35.2
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/{plugin.event-listener.cjs → editor-provider.cjs} +50 -20
- package/lib/_chunks-cjs/editor-provider.cjs.map +1 -0
- package/lib/_chunks-es/{plugin.event-listener.js → editor-provider.js} +51 -21
- package/lib/_chunks-es/editor-provider.js.map +1 -0
- package/lib/behaviors/index.d.cts +19377 -210
- package/lib/behaviors/index.d.ts +19377 -210
- package/lib/index.cjs +81 -51
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +318 -47
- package/lib/index.d.ts +318 -47
- package/lib/index.js +35 -4
- package/lib/index.js.map +1 -1
- package/lib/plugins/index.cjs +22 -7
- package/lib/plugins/index.cjs.map +1 -1
- package/lib/plugins/index.d.cts +313 -2
- package/lib/plugins/index.d.ts +313 -2
- package/lib/plugins/index.js +18 -3
- package/lib/plugins/index.js.map +1 -1
- package/lib/selectors/index.d.cts +19504 -1
- package/lib/selectors/index.d.ts +19504 -1
- package/lib/utils/index.d.cts +19506 -2
- package/lib/utils/index.d.ts +19506 -2
- package/package.json +3 -3
- package/src/behavior-actions/behavior.action.decorator.add.ts +1 -0
- package/src/behavior-actions/behavior.action.delete.text.ts +1 -0
- package/src/behaviors/behavior.decorator-pair.ts +1 -0
- package/src/converters/converter.portable-text.deserialize.test.ts +3 -7
- package/src/converters/converter.portable-text.ts +7 -1
- package/src/converters/converter.text-html.deserialize.test.ts +3 -7
- package/src/converters/converter.text-html.serialize.test.ts +5 -10
- package/src/converters/converter.text-plain.test.ts +4 -6
- package/src/editor/Editable.tsx +26 -0
- package/src/editor/editor-machine.ts +170 -147
- package/src/editor/editor-selector.ts +3 -0
- package/src/editor/editor-snapshot.ts +13 -0
- package/src/editor/mutation-machine.ts +2 -0
- package/src/editor-event-listener.tsx +30 -0
- package/src/index.ts +1 -1
- package/src/internal-utils/create-test-snapshot.ts +23 -0
- package/src/plugins/plugin.one-line.tsx +1 -1
- package/src/selectors/selector.get-active-annotations.test.ts +4 -13
- package/src/selectors/selector.get-caret-word-selection.test.ts +3 -7
- package/src/selectors/selector.get-selected-spans.test.ts +5 -9
- package/src/selectors/selector.get-selection-text.test.ts +5 -7
- package/src/selectors/selector.get-trimmed-selection.test.ts +3 -5
- package/src/selectors/selector.is-active-decorator.test.ts +5 -9
- package/lib/_chunks-cjs/plugin.event-listener.cjs.map +0 -1
- package/lib/_chunks-es/plugin.event-listener.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var jsxRuntime = require("react/jsx-runtime"), reactCompilerRuntime = require("react-compiler-runtime"), React = require("react"), slateReact = require("slate-react"), react = require("@xstate/react"), debug$e = require("debug"), slate = require("slate"), xstate = require("xstate"), isEqual = require("lodash/isEqual.js"), patches = require("@portabletext/patches"), types = require("@sanity/types"), flatten = require("lodash/flatten.js"), isPlainObject = require("lodash/isPlainObject.js"), uniq = require("lodash/uniq.js"), getRandomValues = require("get-random-values-esm"), util_blockOffsetsToSelection = require("./util.block-offsets-to-selection.cjs"), util_sliceBlocks = require("./util.slice-blocks.cjs"), blockTools = require("@portabletext/block-tools"), toHtml = require("@portabletext/to-html"), schema = require("@sanity/schema"), get = require("lodash/get.js"), isUndefined = require("lodash/isUndefined.js"), omitBy = require("lodash/omitBy.js"), selector_isAtTheStartOfBlock = require("./selector.is-at-the-start-of-block.cjs"), selector_isActiveStyle = require("./selector.is-active-style.cjs"), omit = require("lodash/omit.js"), startCase = require("lodash.startcase"), behavior_core = require("./behavior.core.cjs"), rxjs = require("rxjs"), useEffectEvent = require("use-effect-event");
|
|
3
3
|
function _interopDefaultCompat(e) {
|
|
4
4
|
return e && typeof e == "object" && "default" in e ? e : { default: e };
|
|
5
5
|
}
|
|
@@ -378,11 +378,13 @@ const FLUSH_PATCHES_THROTTLED_MS = process.env.NODE_ENV === "test" ? 500 : 1e3,
|
|
|
378
378
|
target: "idle",
|
|
379
379
|
actions: ["emit mutation", "clear pending patches"]
|
|
380
380
|
}, {
|
|
381
|
+
target: "has pending patches",
|
|
381
382
|
reenter: !0
|
|
382
383
|
}]
|
|
383
384
|
},
|
|
384
385
|
on: {
|
|
385
386
|
patch: {
|
|
387
|
+
target: "has pending patches",
|
|
386
388
|
actions: ["defer patch"],
|
|
387
389
|
reenter: !0
|
|
388
390
|
}
|
|
@@ -2330,7 +2332,11 @@ const converterJson = {
|
|
|
2330
2332
|
context: snapshot.context,
|
|
2331
2333
|
block,
|
|
2332
2334
|
options: {
|
|
2333
|
-
|
|
2335
|
+
/**
|
|
2336
|
+
* If we are dragging internally then we would like to keep the
|
|
2337
|
+
* dropped portable text as is.
|
|
2338
|
+
*/
|
|
2339
|
+
refreshKeys: !snapshot.beta.hasTag?.("dragging internally")
|
|
2334
2340
|
}
|
|
2335
2341
|
});
|
|
2336
2342
|
return parsedBlock ? [parsedBlock] : [];
|
|
@@ -2914,6 +2920,9 @@ const decoratorAddActionImplementation = ({
|
|
|
2914
2920
|
},
|
|
2915
2921
|
backward: editorSelection?.backward
|
|
2916
2922
|
}), trimmedSelection = selector_isActiveStyle.getTrimmedSelection({
|
|
2923
|
+
beta: {
|
|
2924
|
+
hasTag: () => !1
|
|
2925
|
+
},
|
|
2917
2926
|
context: {
|
|
2918
2927
|
activeDecorators: [],
|
|
2919
2928
|
converters: [],
|
|
@@ -4127,6 +4136,9 @@ const blockSetBehaviorActionImplementation = ({
|
|
|
4127
4136
|
if (!selection)
|
|
4128
4137
|
throw new Error("Unable to find selection from block offsets");
|
|
4129
4138
|
const trimmedSelection = selector_isActiveStyle.getTrimmedSelection({
|
|
4139
|
+
beta: {
|
|
4140
|
+
hasTag: () => !1
|
|
4141
|
+
},
|
|
4130
4142
|
context: {
|
|
4131
4143
|
converters: [],
|
|
4132
4144
|
schema: context.schema,
|
|
@@ -5890,7 +5902,8 @@ function createEditorSnapshot({
|
|
|
5890
5902
|
converters,
|
|
5891
5903
|
editor,
|
|
5892
5904
|
keyGenerator,
|
|
5893
|
-
schema: schema2
|
|
5905
|
+
schema: schema2,
|
|
5906
|
+
hasTag
|
|
5894
5907
|
}) {
|
|
5895
5908
|
const value = fromSlateValue(editor.children, schema2.block.name, KEY_TO_VALUE_ELEMENT.get(editor)), selection = toPortableTextRange(value, editor.selection, schema2);
|
|
5896
5909
|
return {
|
|
@@ -5904,6 +5917,9 @@ function createEditorSnapshot({
|
|
|
5904
5917
|
schema: schema2,
|
|
5905
5918
|
selection,
|
|
5906
5919
|
value
|
|
5920
|
+
},
|
|
5921
|
+
beta: {
|
|
5922
|
+
hasTag
|
|
5907
5923
|
}
|
|
5908
5924
|
};
|
|
5909
5925
|
}
|
|
@@ -5912,7 +5928,8 @@ const editorMachine = xstate.setup({
|
|
|
5912
5928
|
context: {},
|
|
5913
5929
|
events: {},
|
|
5914
5930
|
emitted: {},
|
|
5915
|
-
input: {}
|
|
5931
|
+
input: {},
|
|
5932
|
+
tags: {}
|
|
5916
5933
|
},
|
|
5917
5934
|
actions: {
|
|
5918
5935
|
"add behavior to context": xstate.assign({
|
|
@@ -5971,7 +5988,8 @@ const editorMachine = xstate.setup({
|
|
|
5971
5988
|
"handle behavior event": xstate.enqueueActions(({
|
|
5972
5989
|
context,
|
|
5973
5990
|
event,
|
|
5974
|
-
enqueue
|
|
5991
|
+
enqueue,
|
|
5992
|
+
self
|
|
5975
5993
|
}) => {
|
|
5976
5994
|
xstate.assertEvent(event, ["behavior event", "custom behavior event"]);
|
|
5977
5995
|
const defaultAction = event.type === "custom behavior event" || event.behaviorEvent.type === "copy" || event.behaviorEvent.type === "deserialize" || event.behaviorEvent.type === "key.down" || event.behaviorEvent.type === "key.up" || event.behaviorEvent.type === "paste" || event.behaviorEvent.type === "serialize" ? void 0 : {
|
|
@@ -6007,7 +6025,8 @@ const editorMachine = xstate.setup({
|
|
|
6007
6025
|
converters: [...context.converters],
|
|
6008
6026
|
editor: event.editor,
|
|
6009
6027
|
keyGenerator: context.keyGenerator,
|
|
6010
|
-
schema: context.schema
|
|
6028
|
+
schema: context.schema,
|
|
6029
|
+
hasTag: (tag) => self.getSnapshot().hasTag(tag)
|
|
6011
6030
|
});
|
|
6012
6031
|
let behaviorOverwritten = !1;
|
|
6013
6032
|
for (const eventBehavior of eventBehaviors) {
|
|
@@ -6343,6 +6362,27 @@ const editorMachine = xstate.setup({
|
|
|
6343
6362
|
event
|
|
6344
6363
|
}) => event)
|
|
6345
6364
|
}
|
|
6365
|
+
},
|
|
6366
|
+
initial: "idle",
|
|
6367
|
+
states: {
|
|
6368
|
+
idle: {
|
|
6369
|
+
on: {
|
|
6370
|
+
dragstart: {
|
|
6371
|
+
target: "dragging internally"
|
|
6372
|
+
}
|
|
6373
|
+
}
|
|
6374
|
+
},
|
|
6375
|
+
"dragging internally": {
|
|
6376
|
+
tags: ["dragging internally"],
|
|
6377
|
+
on: {
|
|
6378
|
+
dragend: {
|
|
6379
|
+
target: "idle"
|
|
6380
|
+
},
|
|
6381
|
+
drop: {
|
|
6382
|
+
target: "idle"
|
|
6383
|
+
}
|
|
6384
|
+
}
|
|
6385
|
+
}
|
|
6346
6386
|
}
|
|
6347
6387
|
}
|
|
6348
6388
|
}
|
|
@@ -6450,6 +6490,9 @@ function getEditorSnapshot({
|
|
|
6450
6490
|
editorActorSnapshot,
|
|
6451
6491
|
slateEditorInstance
|
|
6452
6492
|
})
|
|
6493
|
+
},
|
|
6494
|
+
beta: {
|
|
6495
|
+
hasTag: (tag) => editorActorSnapshot.hasTag(tag)
|
|
6453
6496
|
}
|
|
6454
6497
|
};
|
|
6455
6498
|
}
|
|
@@ -7074,21 +7117,8 @@ function useEditor() {
|
|
|
7074
7117
|
throw new Error("No Editor set. Use EditorProvider to set one.");
|
|
7075
7118
|
return editor;
|
|
7076
7119
|
}
|
|
7077
|
-
function EventListenerPlugin(props) {
|
|
7078
|
-
const $ = reactCompilerRuntime.c(5), editor = useEditor(), on = useEffectEvent.useEffectEvent(props.on);
|
|
7079
|
-
let t0;
|
|
7080
|
-
$[0] !== editor || $[1] !== on ? (t0 = () => {
|
|
7081
|
-
const subscription = editor.on("*", on);
|
|
7082
|
-
return () => {
|
|
7083
|
-
subscription.unsubscribe();
|
|
7084
|
-
};
|
|
7085
|
-
}, $[0] = editor, $[1] = on, $[2] = t0) : t0 = $[2];
|
|
7086
|
-
let t1;
|
|
7087
|
-
return $[3] !== editor ? (t1 = [editor], $[3] = editor, $[4] = t1) : t1 = $[4], React.useEffect(t0, t1), null;
|
|
7088
|
-
}
|
|
7089
7120
|
exports.EditorActorContext = EditorActorContext;
|
|
7090
7121
|
exports.EditorProvider = EditorProvider;
|
|
7091
|
-
exports.EventListenerPlugin = EventListenerPlugin;
|
|
7092
7122
|
exports.IS_DRAGGING = IS_DRAGGING;
|
|
7093
7123
|
exports.IS_DRAGGING_BLOCK_ELEMENT = IS_DRAGGING_BLOCK_ELEMENT;
|
|
7094
7124
|
exports.IS_DRAGGING_BLOCK_TARGET_POSITION = IS_DRAGGING_BLOCK_TARGET_POSITION;
|
|
@@ -7108,4 +7138,4 @@ exports.useEditor = useEditor;
|
|
|
7108
7138
|
exports.useEditorSelector = useEditorSelector;
|
|
7109
7139
|
exports.usePortableTextEditor = usePortableTextEditor;
|
|
7110
7140
|
exports.usePortableTextEditorSelection = usePortableTextEditorSelection;
|
|
7111
|
-
//# sourceMappingURL=
|
|
7141
|
+
//# sourceMappingURL=editor-provider.cjs.map
|