@portabletext/editor 1.35.0 → 1.35.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/{plugin.event-listener.cjs → editor-provider.cjs} +48 -20
- package/lib/_chunks-cjs/editor-provider.cjs.map +1 -0
- package/lib/_chunks-es/{plugin.event-listener.js → editor-provider.js} +49 -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 +1 -1
- 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-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
|
}
|
|
@@ -2330,7 +2330,11 @@ const converterJson = {
|
|
|
2330
2330
|
context: snapshot.context,
|
|
2331
2331
|
block,
|
|
2332
2332
|
options: {
|
|
2333
|
-
|
|
2333
|
+
/**
|
|
2334
|
+
* If we are dragging internally then we would like to keep the
|
|
2335
|
+
* dropped portable text as is.
|
|
2336
|
+
*/
|
|
2337
|
+
refreshKeys: !snapshot.beta.hasTag?.("dragging internally")
|
|
2334
2338
|
}
|
|
2335
2339
|
});
|
|
2336
2340
|
return parsedBlock ? [parsedBlock] : [];
|
|
@@ -2914,6 +2918,9 @@ const decoratorAddActionImplementation = ({
|
|
|
2914
2918
|
},
|
|
2915
2919
|
backward: editorSelection?.backward
|
|
2916
2920
|
}), trimmedSelection = selector_isActiveStyle.getTrimmedSelection({
|
|
2921
|
+
beta: {
|
|
2922
|
+
hasTag: () => !1
|
|
2923
|
+
},
|
|
2917
2924
|
context: {
|
|
2918
2925
|
activeDecorators: [],
|
|
2919
2926
|
converters: [],
|
|
@@ -4127,6 +4134,9 @@ const blockSetBehaviorActionImplementation = ({
|
|
|
4127
4134
|
if (!selection)
|
|
4128
4135
|
throw new Error("Unable to find selection from block offsets");
|
|
4129
4136
|
const trimmedSelection = selector_isActiveStyle.getTrimmedSelection({
|
|
4137
|
+
beta: {
|
|
4138
|
+
hasTag: () => !1
|
|
4139
|
+
},
|
|
4130
4140
|
context: {
|
|
4131
4141
|
converters: [],
|
|
4132
4142
|
schema: context.schema,
|
|
@@ -5890,7 +5900,8 @@ function createEditorSnapshot({
|
|
|
5890
5900
|
converters,
|
|
5891
5901
|
editor,
|
|
5892
5902
|
keyGenerator,
|
|
5893
|
-
schema: schema2
|
|
5903
|
+
schema: schema2,
|
|
5904
|
+
hasTag
|
|
5894
5905
|
}) {
|
|
5895
5906
|
const value = fromSlateValue(editor.children, schema2.block.name, KEY_TO_VALUE_ELEMENT.get(editor)), selection = toPortableTextRange(value, editor.selection, schema2);
|
|
5896
5907
|
return {
|
|
@@ -5904,6 +5915,9 @@ function createEditorSnapshot({
|
|
|
5904
5915
|
schema: schema2,
|
|
5905
5916
|
selection,
|
|
5906
5917
|
value
|
|
5918
|
+
},
|
|
5919
|
+
beta: {
|
|
5920
|
+
hasTag
|
|
5907
5921
|
}
|
|
5908
5922
|
};
|
|
5909
5923
|
}
|
|
@@ -5912,7 +5926,8 @@ const editorMachine = xstate.setup({
|
|
|
5912
5926
|
context: {},
|
|
5913
5927
|
events: {},
|
|
5914
5928
|
emitted: {},
|
|
5915
|
-
input: {}
|
|
5929
|
+
input: {},
|
|
5930
|
+
tags: {}
|
|
5916
5931
|
},
|
|
5917
5932
|
actions: {
|
|
5918
5933
|
"add behavior to context": xstate.assign({
|
|
@@ -5971,7 +5986,8 @@ const editorMachine = xstate.setup({
|
|
|
5971
5986
|
"handle behavior event": xstate.enqueueActions(({
|
|
5972
5987
|
context,
|
|
5973
5988
|
event,
|
|
5974
|
-
enqueue
|
|
5989
|
+
enqueue,
|
|
5990
|
+
self
|
|
5975
5991
|
}) => {
|
|
5976
5992
|
xstate.assertEvent(event, ["behavior event", "custom behavior event"]);
|
|
5977
5993
|
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 +6023,8 @@ const editorMachine = xstate.setup({
|
|
|
6007
6023
|
converters: [...context.converters],
|
|
6008
6024
|
editor: event.editor,
|
|
6009
6025
|
keyGenerator: context.keyGenerator,
|
|
6010
|
-
schema: context.schema
|
|
6026
|
+
schema: context.schema,
|
|
6027
|
+
hasTag: (tag) => self.getSnapshot().hasTag(tag)
|
|
6011
6028
|
});
|
|
6012
6029
|
let behaviorOverwritten = !1;
|
|
6013
6030
|
for (const eventBehavior of eventBehaviors) {
|
|
@@ -6343,6 +6360,27 @@ const editorMachine = xstate.setup({
|
|
|
6343
6360
|
event
|
|
6344
6361
|
}) => event)
|
|
6345
6362
|
}
|
|
6363
|
+
},
|
|
6364
|
+
initial: "idle",
|
|
6365
|
+
states: {
|
|
6366
|
+
idle: {
|
|
6367
|
+
on: {
|
|
6368
|
+
dragstart: {
|
|
6369
|
+
target: "dragging internally"
|
|
6370
|
+
}
|
|
6371
|
+
}
|
|
6372
|
+
},
|
|
6373
|
+
"dragging internally": {
|
|
6374
|
+
tags: ["dragging internally"],
|
|
6375
|
+
on: {
|
|
6376
|
+
dragend: {
|
|
6377
|
+
target: "idle"
|
|
6378
|
+
},
|
|
6379
|
+
drop: {
|
|
6380
|
+
target: "idle"
|
|
6381
|
+
}
|
|
6382
|
+
}
|
|
6383
|
+
}
|
|
6346
6384
|
}
|
|
6347
6385
|
}
|
|
6348
6386
|
}
|
|
@@ -6450,6 +6488,9 @@ function getEditorSnapshot({
|
|
|
6450
6488
|
editorActorSnapshot,
|
|
6451
6489
|
slateEditorInstance
|
|
6452
6490
|
})
|
|
6491
|
+
},
|
|
6492
|
+
beta: {
|
|
6493
|
+
hasTag: (tag) => editorActorSnapshot.hasTag(tag)
|
|
6453
6494
|
}
|
|
6454
6495
|
};
|
|
6455
6496
|
}
|
|
@@ -7074,21 +7115,8 @@ function useEditor() {
|
|
|
7074
7115
|
throw new Error("No Editor set. Use EditorProvider to set one.");
|
|
7075
7116
|
return editor;
|
|
7076
7117
|
}
|
|
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
7118
|
exports.EditorActorContext = EditorActorContext;
|
|
7090
7119
|
exports.EditorProvider = EditorProvider;
|
|
7091
|
-
exports.EventListenerPlugin = EventListenerPlugin;
|
|
7092
7120
|
exports.IS_DRAGGING = IS_DRAGGING;
|
|
7093
7121
|
exports.IS_DRAGGING_BLOCK_ELEMENT = IS_DRAGGING_BLOCK_ELEMENT;
|
|
7094
7122
|
exports.IS_DRAGGING_BLOCK_TARGET_POSITION = IS_DRAGGING_BLOCK_TARGET_POSITION;
|
|
@@ -7108,4 +7136,4 @@ exports.useEditor = useEditor;
|
|
|
7108
7136
|
exports.useEditorSelector = useEditorSelector;
|
|
7109
7137
|
exports.usePortableTextEditor = usePortableTextEditor;
|
|
7110
7138
|
exports.usePortableTextEditorSelection = usePortableTextEditorSelection;
|
|
7111
|
-
//# sourceMappingURL=
|
|
7139
|
+
//# sourceMappingURL=editor-provider.cjs.map
|