@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.
Files changed (48) hide show
  1. package/lib/_chunks-cjs/behavior.core.cjs +52 -28
  2. package/lib/_chunks-cjs/behavior.core.cjs.map +1 -1
  3. package/lib/_chunks-cjs/behavior.markdown.cjs +11 -11
  4. package/lib/_chunks-cjs/behavior.markdown.cjs.map +1 -1
  5. package/lib/_chunks-cjs/editor-provider.cjs +24 -21
  6. package/lib/_chunks-cjs/editor-provider.cjs.map +1 -1
  7. package/lib/_chunks-cjs/selector.get-focus-inline-object.cjs +2 -2
  8. package/lib/_chunks-cjs/selector.get-focus-inline-object.cjs.map +1 -1
  9. package/lib/_chunks-cjs/selector.get-text-before.cjs +2 -2
  10. package/lib/_chunks-cjs/selector.get-text-before.cjs.map +1 -1
  11. package/lib/_chunks-cjs/selector.is-active-style.cjs +240 -0
  12. package/lib/_chunks-cjs/selector.is-active-style.cjs.map +1 -0
  13. package/lib/_chunks-cjs/selector.is-overlapping-selection.cjs +300 -218
  14. package/lib/_chunks-cjs/selector.is-overlapping-selection.cjs.map +1 -1
  15. package/lib/_chunks-es/behavior.core.js +27 -3
  16. package/lib/_chunks-es/behavior.core.js.map +1 -1
  17. package/lib/_chunks-es/behavior.markdown.js +1 -1
  18. package/lib/_chunks-es/editor-provider.js +5 -2
  19. package/lib/_chunks-es/editor-provider.js.map +1 -1
  20. package/lib/_chunks-es/selector.get-focus-inline-object.js +1 -1
  21. package/lib/_chunks-es/selector.get-text-before.js +1 -1
  22. package/lib/_chunks-es/selector.is-active-style.js +243 -0
  23. package/lib/_chunks-es/selector.is-active-style.js.map +1 -0
  24. package/lib/_chunks-es/selector.is-overlapping-selection.js +298 -217
  25. package/lib/_chunks-es/selector.is-overlapping-selection.js.map +1 -1
  26. package/lib/behaviors/index.cjs +9 -9
  27. package/lib/behaviors/index.cjs.map +1 -1
  28. package/lib/behaviors/index.js +1 -1
  29. package/lib/index.cjs +75 -102
  30. package/lib/index.cjs.map +1 -1
  31. package/lib/index.js +66 -93
  32. package/lib/index.js.map +1 -1
  33. package/lib/plugins/index.cjs +6 -6
  34. package/lib/plugins/index.cjs.map +1 -1
  35. package/lib/plugins/index.js +1 -1
  36. package/lib/selectors/index.cjs +36 -36
  37. package/lib/selectors/index.cjs.map +1 -1
  38. package/lib/selectors/index.js +4 -4
  39. package/package.json +1 -1
  40. package/src/behaviors/behavior.core.dnd.ts +27 -0
  41. package/src/behaviors/behavior.core.ts +2 -0
  42. package/src/behaviors/behavior.default.ts +4 -0
  43. package/src/editor/Editable.tsx +22 -40
  44. package/lib/_chunks-cjs/selector.is-at-the-start-of-block.cjs +0 -322
  45. package/lib/_chunks-cjs/selector.is-at-the-start-of-block.cjs.map +0 -1
  46. package/lib/_chunks-es/selector.is-at-the-start-of-block.js +0 -324
  47. package/lib/_chunks-es/selector.is-at-the-start-of-block.js.map +0 -1
  48. 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-at-the-start-of-block.js";
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() || (event_9.stopPropagation(), !getEventPosition({
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
- }))) && editorActor.send({
1255
- type: "behavior event",
1256
- behaviorEvent: {
1257
- type: "drag.drag",
1258
- originEvent: {
1259
- dataTransfer: event_9.dataTransfer
1260
- }
1261
- },
1262
- editor: slateEditor
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()) && (event_10.stopPropagation(), editorActor.send({
1266
- type: "behavior event",
1267
- behaviorEvent: {
1268
- type: "drag.dragend",
1269
- originEvent: {
1270
- dataTransfer: event_10.dataTransfer
1271
- }
1272
- },
1273
- editor: slateEditor
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
- position_6 && editorActor.send({
1285
- type: "behavior event",
1286
- behaviorEvent: {
1287
- type: "drag.dragenter",
1288
- originEvent: {
1289
- dataTransfer: event_11.dataTransfer
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
- position: position_6
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 (!position_7)
1305
- return;
1306
- const snapshot_0 = getEditorSnapshot({
1307
- editorActorSnapshot: editorActor.getSnapshot(),
1308
- slateEditorInstance: slateEditor
1309
- });
1310
- draggingOnDragOrigin({
1311
- snapshot: snapshot_0,
1312
- position: position_7
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
- position: position_7
1321
- },
1322
- editor: slateEditor,
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() || (event_14.stopPropagation(), !getEventPosition({
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
- }))) && editorActor.send({
1362
- type: "behavior event",
1363
- behaviorEvent: {
1364
- type: "drag.dragleave",
1365
- originEvent: {
1366
- dataTransfer: event_14.dataTransfer
1367
- }
1368
- },
1369
- editor: slateEditor
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,