@portabletext/editor 1.41.3 → 1.41.4
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 +52 -28
- package/lib/_chunks-cjs/behavior.core.cjs.map +1 -1
- package/lib/_chunks-cjs/behavior.markdown.cjs +11 -11
- package/lib/_chunks-cjs/behavior.markdown.cjs.map +1 -1
- package/lib/_chunks-cjs/editor-provider.cjs +24 -21
- package/lib/_chunks-cjs/editor-provider.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.get-focus-inline-object.cjs +2 -2
- package/lib/_chunks-cjs/selector.get-focus-inline-object.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.get-text-before.cjs +2 -2
- package/lib/_chunks-cjs/selector.get-text-before.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.is-active-style.cjs +240 -0
- package/lib/_chunks-cjs/selector.is-active-style.cjs.map +1 -0
- package/lib/_chunks-cjs/selector.is-overlapping-selection.cjs +300 -218
- package/lib/_chunks-cjs/selector.is-overlapping-selection.cjs.map +1 -1
- package/lib/_chunks-es/behavior.core.js +27 -3
- package/lib/_chunks-es/behavior.core.js.map +1 -1
- package/lib/_chunks-es/behavior.markdown.js +1 -1
- package/lib/_chunks-es/editor-provider.js +5 -2
- package/lib/_chunks-es/editor-provider.js.map +1 -1
- package/lib/_chunks-es/selector.get-focus-inline-object.js +1 -1
- package/lib/_chunks-es/selector.get-text-before.js +1 -1
- package/lib/_chunks-es/selector.is-active-style.js +243 -0
- package/lib/_chunks-es/selector.is-active-style.js.map +1 -0
- package/lib/_chunks-es/selector.is-overlapping-selection.js +298 -217
- package/lib/_chunks-es/selector.is-overlapping-selection.js.map +1 -1
- package/lib/behaviors/index.cjs +9 -9
- package/lib/behaviors/index.cjs.map +1 -1
- package/lib/behaviors/index.js +1 -1
- package/lib/index.cjs +75 -102
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +66 -93
- package/lib/index.js.map +1 -1
- package/lib/plugins/index.cjs +6 -6
- package/lib/plugins/index.cjs.map +1 -1
- package/lib/plugins/index.js +1 -1
- package/lib/selectors/index.cjs +36 -36
- package/lib/selectors/index.cjs.map +1 -1
- package/lib/selectors/index.js +4 -4
- package/package.json +1 -1
- package/src/behaviors/behavior.core.dnd.ts +27 -0
- package/src/behaviors/behavior.core.ts +2 -0
- package/src/behaviors/behavior.default.ts +4 -0
- package/src/editor/Editable.tsx +22 -40
- package/lib/_chunks-cjs/selector.is-at-the-start-of-block.cjs +0 -322
- package/lib/_chunks-cjs/selector.is-at-the-start-of-block.cjs.map +0 -1
- package/lib/_chunks-es/selector.is-at-the-start-of-block.js +0 -324
- package/lib/_chunks-es/selector.is-at-the-start-of-block.js.map +0 -1
- package/src/internal-utils/dragging-on-drag-origin.ts +0 -22
package/lib/index.js
CHANGED
|
@@ -8,12 +8,12 @@ import { useContext, useRef, useState, useEffect, useMemo, startTransition, useC
|
|
|
8
8
|
import { Editor, Range, Element as Element$2, Text, Transforms, Path } from "slate";
|
|
9
9
|
import { useSlateStatic, useSelected, ReactEditor, useSlate, Editable } from "slate-react";
|
|
10
10
|
import { getBlockEndPoint, getBlockStartPoint, isKeyedSegment } from "./_chunks-es/util.slice-blocks.js";
|
|
11
|
-
import { isSelectionCollapsed, getFocusTextBlock, getFocusSpan, getSelectedBlocks, isSelectionExpanded, getSelectionStartBlock, getSelectionEndBlock, getFocusBlock } from "./_chunks-es/selector.is-
|
|
11
|
+
import { isSelectionCollapsed, getFocusTextBlock, getFocusSpan, getSelectedBlocks, isSelectionExpanded, getSelectionStartBlock, getSelectionEndBlock, isOverlappingSelection, getFocusBlock } from "./_chunks-es/selector.is-overlapping-selection.js";
|
|
12
12
|
import { getFocusInlineObject } from "./_chunks-es/selector.get-focus-inline-object.js";
|
|
13
|
-
import { isOverlappingSelection, isSelectingEntireBlocks } from "./_chunks-es/selector.is-overlapping-selection.js";
|
|
14
13
|
import { DOMEditor, isDOMNode } from "slate-dom";
|
|
15
14
|
import { isSelectionCollapsed as isSelectionCollapsed$1, getSelectionEndPoint } from "./_chunks-es/util.is-selection-collapsed.js";
|
|
16
15
|
import { parseBlocks } from "./_chunks-es/util.selection-point-to-block-offset.js";
|
|
16
|
+
import { isSelectingEntireBlocks } from "./_chunks-es/selector.is-active-style.js";
|
|
17
17
|
import { defineBehavior, isHotkey } from "./_chunks-es/behavior.core.js";
|
|
18
18
|
import { c } from "react-compiler-runtime";
|
|
19
19
|
import uniq from "lodash/uniq.js";
|
|
@@ -85,19 +85,6 @@ function getDragSelection({
|
|
|
85
85
|
}
|
|
86
86
|
return dragSelection;
|
|
87
87
|
}
|
|
88
|
-
function draggingOnDragOrigin({
|
|
89
|
-
snapshot,
|
|
90
|
-
position
|
|
91
|
-
}) {
|
|
92
|
-
const dragOrigin = snapshot.beta.internalDrag?.origin;
|
|
93
|
-
return dragOrigin ? isOverlappingSelection(position.selection)({
|
|
94
|
-
...snapshot,
|
|
95
|
-
context: {
|
|
96
|
-
...snapshot.context,
|
|
97
|
-
selection: dragOrigin.selection
|
|
98
|
-
}
|
|
99
|
-
}) : !1;
|
|
100
|
-
}
|
|
101
88
|
function getEventPosition({
|
|
102
89
|
schema,
|
|
103
90
|
slateEditor,
|
|
@@ -1166,7 +1153,6 @@ const debug = debugWithName("component:Editable"), PLACEHOLDER_STYLE = {
|
|
|
1166
1153
|
const handleDragStart = useCallback((event_8) => {
|
|
1167
1154
|
if (onDragStart?.(event_8), event_8.isDefaultPrevented() || event_8.isPropagationStopped())
|
|
1168
1155
|
return;
|
|
1169
|
-
event_8.stopPropagation();
|
|
1170
1156
|
const position_4 = getEventPosition({
|
|
1171
1157
|
schema: editorActor.getSnapshot().context.schema,
|
|
1172
1158
|
slateEditor,
|
|
@@ -1216,7 +1202,7 @@ const debug = debugWithName("component:Editable"), PLACEHOLDER_STYLE = {
|
|
|
1216
1202
|
const childrenDomRect = getCompoundClientRect(draggedDomNodes.childNodes), x_1 = event_8.clientX - childrenDomRect.left, y_1 = event_8.clientY - childrenDomRect.top;
|
|
1217
1203
|
dragGhost.style.width = `${childrenDomRect.width}px`, dragGhost.style.height = `${childrenDomRect.height}px`, event_8.dataTransfer.setDragImage(dragGhost, x_1, y_1);
|
|
1218
1204
|
}
|
|
1219
|
-
editorActor.send({
|
|
1205
|
+
return editorActor.send({
|
|
1220
1206
|
type: "behavior event",
|
|
1221
1207
|
behaviorEvent: {
|
|
1222
1208
|
type: "select",
|
|
@@ -1245,87 +1231,79 @@ const debug = debugWithName("component:Editable"), PLACEHOLDER_STYLE = {
|
|
|
1245
1231
|
}
|
|
1246
1232
|
},
|
|
1247
1233
|
editor: slateEditor
|
|
1248
|
-
});
|
|
1234
|
+
}), !0;
|
|
1249
1235
|
}, [onDragStart, editorActor, slateEditor]), handleDrag = useCallback((event_9) => {
|
|
1250
|
-
onDrag?.(event_9), !(event_9.isDefaultPrevented() || event_9.isPropagationStopped() ||
|
|
1236
|
+
if (onDrag?.(event_9), !(event_9.isDefaultPrevented() || event_9.isPropagationStopped() || !getEventPosition({
|
|
1251
1237
|
schema: editorActor.getSnapshot().context.schema,
|
|
1252
1238
|
slateEditor,
|
|
1253
1239
|
event: event_9.nativeEvent
|
|
1254
|
-
})))
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1240
|
+
})))
|
|
1241
|
+
return editorActor.send({
|
|
1242
|
+
type: "behavior event",
|
|
1243
|
+
behaviorEvent: {
|
|
1244
|
+
type: "drag.drag",
|
|
1245
|
+
originEvent: {
|
|
1246
|
+
dataTransfer: event_9.dataTransfer
|
|
1247
|
+
}
|
|
1248
|
+
},
|
|
1249
|
+
editor: slateEditor
|
|
1250
|
+
}), !0;
|
|
1264
1251
|
}, [onDrag, editorActor, slateEditor]), handleDragEnd = useCallback((event_10) => {
|
|
1265
|
-
onDragEnd?.(event_10), !(event_10.isDefaultPrevented() || event_10.isPropagationStopped())
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1252
|
+
if (onDragEnd?.(event_10), !(event_10.isDefaultPrevented() || event_10.isPropagationStopped()))
|
|
1253
|
+
return editorActor.send({
|
|
1254
|
+
type: "behavior event",
|
|
1255
|
+
behaviorEvent: {
|
|
1256
|
+
type: "drag.dragend",
|
|
1257
|
+
originEvent: {
|
|
1258
|
+
dataTransfer: event_10.dataTransfer
|
|
1259
|
+
}
|
|
1260
|
+
},
|
|
1261
|
+
editor: slateEditor
|
|
1262
|
+
}), !0;
|
|
1275
1263
|
}, [onDragEnd, editorActor, slateEditor]), handleDragEnter = useCallback((event_11) => {
|
|
1276
1264
|
if (onDragEnter?.(event_11), event_11.isDefaultPrevented() || event_11.isPropagationStopped())
|
|
1277
1265
|
return;
|
|
1278
|
-
event_11.stopPropagation();
|
|
1279
1266
|
const position_6 = getEventPosition({
|
|
1280
1267
|
schema: editorActor.getSnapshot().context.schema,
|
|
1281
1268
|
slateEditor,
|
|
1282
1269
|
event: event_11.nativeEvent
|
|
1283
1270
|
});
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1271
|
+
if (position_6)
|
|
1272
|
+
return editorActor.send({
|
|
1273
|
+
type: "behavior event",
|
|
1274
|
+
behaviorEvent: {
|
|
1275
|
+
type: "drag.dragenter",
|
|
1276
|
+
originEvent: {
|
|
1277
|
+
dataTransfer: event_11.dataTransfer
|
|
1278
|
+
},
|
|
1279
|
+
position: position_6
|
|
1290
1280
|
},
|
|
1291
|
-
|
|
1292
|
-
},
|
|
1293
|
-
editor: slateEditor
|
|
1294
|
-
});
|
|
1281
|
+
editor: slateEditor
|
|
1282
|
+
}), !0;
|
|
1295
1283
|
}, [onDragEnter, editorActor, slateEditor]), handleDragOver = useCallback((event_12) => {
|
|
1296
1284
|
if (onDragOver?.(event_12), event_12.isDefaultPrevented() || event_12.isPropagationStopped())
|
|
1297
1285
|
return;
|
|
1298
|
-
event_12.stopPropagation();
|
|
1299
1286
|
const position_7 = getEventPosition({
|
|
1300
1287
|
schema: editorActor.getSnapshot().context.schema,
|
|
1301
1288
|
slateEditor,
|
|
1302
1289
|
event: event_12.nativeEvent
|
|
1303
1290
|
});
|
|
1304
|
-
if (
|
|
1305
|
-
return
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
}) && event_12.preventDefault(), editorActor.send({
|
|
1314
|
-
type: "behavior event",
|
|
1315
|
-
behaviorEvent: {
|
|
1316
|
-
type: "drag.dragover",
|
|
1317
|
-
originEvent: {
|
|
1318
|
-
dataTransfer: event_12.dataTransfer
|
|
1291
|
+
if (position_7)
|
|
1292
|
+
return editorActor.send({
|
|
1293
|
+
type: "behavior event",
|
|
1294
|
+
behaviorEvent: {
|
|
1295
|
+
type: "drag.dragover",
|
|
1296
|
+
originEvent: {
|
|
1297
|
+
dataTransfer: event_12.dataTransfer
|
|
1298
|
+
},
|
|
1299
|
+
position: position_7
|
|
1319
1300
|
},
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
nativeEvent: event_12
|
|
1324
|
-
});
|
|
1301
|
+
editor: slateEditor,
|
|
1302
|
+
nativeEvent: event_12
|
|
1303
|
+
}), !0;
|
|
1325
1304
|
}, [onDragOver, editorActor, slateEditor]), handleDrop = useCallback((event_13) => {
|
|
1326
1305
|
if (onDrop?.(event_13), event_13.isDefaultPrevented() || event_13.isPropagationStopped())
|
|
1327
1306
|
return;
|
|
1328
|
-
event_13.preventDefault();
|
|
1329
1307
|
const position_8 = getEventPosition({
|
|
1330
1308
|
schema: editorActor.getSnapshot().context.schema,
|
|
1331
1309
|
slateEditor,
|
|
@@ -1335,14 +1313,7 @@ const debug = debugWithName("component:Editable"), PLACEHOLDER_STYLE = {
|
|
|
1335
1313
|
console.warn("Could not find position for drop event");
|
|
1336
1314
|
return;
|
|
1337
1315
|
}
|
|
1338
|
-
editorActor.send({
|
|
1339
|
-
type: "behavior event",
|
|
1340
|
-
behaviorEvent: {
|
|
1341
|
-
type: "select",
|
|
1342
|
-
selection: position_8.selection
|
|
1343
|
-
},
|
|
1344
|
-
editor: slateEditor
|
|
1345
|
-
}), editorActor.send({
|
|
1316
|
+
return editorActor.send({
|
|
1346
1317
|
type: "behavior event",
|
|
1347
1318
|
behaviorEvent: {
|
|
1348
1319
|
type: "drag.drop",
|
|
@@ -1351,23 +1322,25 @@ const debug = debugWithName("component:Editable"), PLACEHOLDER_STYLE = {
|
|
|
1351
1322
|
},
|
|
1352
1323
|
position: position_8
|
|
1353
1324
|
},
|
|
1354
|
-
editor: slateEditor
|
|
1355
|
-
|
|
1325
|
+
editor: slateEditor,
|
|
1326
|
+
nativeEvent: event_13
|
|
1327
|
+
}), !0;
|
|
1356
1328
|
}, [onDrop, editorActor, slateEditor]), handleDragLeave = useCallback((event_14) => {
|
|
1357
|
-
onDragLeave?.(event_14), !(event_14.isDefaultPrevented() || event_14.isPropagationStopped() ||
|
|
1329
|
+
if (onDragLeave?.(event_14), !(event_14.isDefaultPrevented() || event_14.isPropagationStopped() || !getEventPosition({
|
|
1358
1330
|
schema: editorActor.getSnapshot().context.schema,
|
|
1359
1331
|
slateEditor,
|
|
1360
1332
|
event: event_14.nativeEvent
|
|
1361
|
-
})))
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1333
|
+
})))
|
|
1334
|
+
return editorActor.send({
|
|
1335
|
+
type: "behavior event",
|
|
1336
|
+
behaviorEvent: {
|
|
1337
|
+
type: "drag.dragleave",
|
|
1338
|
+
originEvent: {
|
|
1339
|
+
dataTransfer: event_14.dataTransfer
|
|
1340
|
+
}
|
|
1341
|
+
},
|
|
1342
|
+
editor: slateEditor
|
|
1343
|
+
}), !0;
|
|
1371
1344
|
}, [onDragLeave, editorActor, slateEditor]);
|
|
1372
1345
|
return portableTextEditor ? hasInvalidValue ? null : /* @__PURE__ */ jsx(
|
|
1373
1346
|
Editable,
|