@payloadcms/richtext-lexical 3.0.0-beta.90 → 3.0.0-beta.91

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 (80) hide show
  1. package/dist/exports/client/Field-SUWHJ4HF.js +2 -0
  2. package/dist/exports/client/Field-SUWHJ4HF.js.map +7 -0
  3. package/dist/exports/client/RelationshipComponent-EZORSGUZ.js +2 -0
  4. package/dist/exports/client/RelationshipComponent-EZORSGUZ.js.map +7 -0
  5. package/dist/exports/client/bundled.css +1 -1
  6. package/dist/exports/client/{chunk-NI6Z4GBD.js → chunk-OLSILJA6.js} +1 -1
  7. package/dist/exports/client/{chunk-NI6Z4GBD.js.map → chunk-OLSILJA6.js.map} +1 -1
  8. package/dist/exports/client/{chunk-G5DTIOPI.js → chunk-TD7O23AB.js} +2 -2
  9. package/dist/exports/client/{chunk-G5DTIOPI.js.map → chunk-TD7O23AB.js.map} +2 -2
  10. package/dist/exports/client/{chunk-LGUXX2QH.js → chunk-UJDWBQ2K.js} +2 -2
  11. package/dist/exports/client/{chunk-LGUXX2QH.js.map → chunk-UJDWBQ2K.js.map} +2 -2
  12. package/dist/exports/client/{chunk-OKMIHD2R.js → chunk-YL453UOS.js} +2 -2
  13. package/dist/exports/client/chunk-YSI2QILQ.js +2 -0
  14. package/dist/exports/client/{chunk-TO2W7Q2G.js.map → chunk-YSI2QILQ.js.map} +2 -2
  15. package/dist/exports/client/component-2YLEVOFH.js +2 -0
  16. package/dist/exports/client/component-2YLEVOFH.js.map +7 -0
  17. package/dist/exports/client/{component-LCAAX56T.js → component-7RAP75FW.js} +2 -2
  18. package/dist/exports/client/{componentInline-72VZAAHP.js → componentInline-YSHGRL2J.js} +2 -2
  19. package/dist/exports/client/index.js +12 -12
  20. package/dist/exports/client/index.js.map +3 -3
  21. package/dist/features/debug/testRecorder/client/plugin/index.js +187 -363
  22. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  23. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +234 -470
  24. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  25. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +3 -16
  26. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  27. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +59 -123
  28. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  29. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  30. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +5 -3
  31. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  32. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +1 -1
  33. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
  34. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  35. package/dist/features/relationship/client/components/RelationshipComponent.js +8 -5
  36. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  37. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +6 -4
  38. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  39. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  40. package/dist/features/toolbars/inline/client/Toolbar/index.js +53 -94
  41. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  42. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  43. package/dist/features/upload/client/component/index.js +3 -0
  44. package/dist/features/upload/client/component/index.js.map +1 -1
  45. package/dist/features/upload/server/nodes/UploadNode.d.ts +9 -7
  46. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  47. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  48. package/dist/field/bundled.css +1 -1
  49. package/dist/lexical/config/client/EditorConfigProvider.js +1 -1
  50. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  51. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +71 -109
  52. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  53. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +96 -135
  54. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  55. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  56. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +114 -139
  57. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  58. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +1 -1
  59. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +7 -25
  60. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  61. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
  62. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +4 -6
  63. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  64. package/dist/lexical/ui/icons/Caret/index.svg +2 -2
  65. package/dist/lexical/utils/setFloatingElemPosition.js +1 -1
  66. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
  67. package/dist/utilities/migrateSlateToLexical/index.d.ts.map +1 -1
  68. package/dist/utilities/migrateSlateToLexical/index.js +16 -1
  69. package/dist/utilities/migrateSlateToLexical/index.js.map +1 -1
  70. package/package.json +13 -13
  71. package/dist/exports/client/Field-63NGLPJB.js +0 -2
  72. package/dist/exports/client/Field-63NGLPJB.js.map +0 -7
  73. package/dist/exports/client/RelationshipComponent-3QWBV4GT.js +0 -2
  74. package/dist/exports/client/RelationshipComponent-3QWBV4GT.js.map +0 -7
  75. package/dist/exports/client/chunk-TO2W7Q2G.js +0 -2
  76. package/dist/exports/client/component-3OFD6Q4Z.js +0 -2
  77. package/dist/exports/client/component-3OFD6Q4Z.js.map +0 -7
  78. /package/dist/exports/client/{chunk-OKMIHD2R.js.map → chunk-YL453UOS.js.map} +0 -0
  79. /package/dist/exports/client/{component-LCAAX56T.js.map → component-7RAP75FW.js.map} +0 -0
  80. /package/dist/exports/client/{componentInline-72VZAAHP.js.map → componentInline-YSHGRL2J.js.map} +0 -0
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
4
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
6
5
  import { $createParagraphNode } from 'lexical';
@@ -28,7 +27,6 @@ function getCurrentIndex(keysLength) {
28
27
  return Math.floor(keysLength / 2);
29
28
  }
30
29
  function useAddBlockHandle(editor, anchorElem, isEditable) {
31
- const $ = _c(15);
32
30
  const scrollerElem = anchorElem.parentElement;
33
31
  const {
34
32
  editorConfig
@@ -36,156 +34,119 @@ function useAddBlockHandle(editor, anchorElem, isEditable) {
36
34
  const blockHandleHorizontalOffset = editorConfig?.admin?.hideGutter ? -24 : 12;
37
35
  const menuRef = useRef(null);
38
36
  const [hoveredElement, setHoveredElement] = useState(null);
39
- let t0;
40
- let t1;
41
- if ($[0] !== scrollerElem || $[1] !== editor || $[2] !== anchorElem || $[3] !== hoveredElement) {
42
- t0 = () => {
43
- const onDocumentMouseMove = function onDocumentMouseMove(event) {
44
- const target = event.target;
45
- if (!isHTMLElement(target)) {
46
- return;
47
- }
48
- const distanceFromScrollerElem = calculateDistanceFromScrollerElem(scrollerElem, event.pageX, event.pageY, target);
49
- if (distanceFromScrollerElem === -1) {
50
- setHoveredElement(null);
51
- return;
52
- }
53
- if (isOnHandleElement(target, ADD_BLOCK_MENU_CLASSNAME)) {
54
- return;
55
- }
56
- const topLevelNodeKeys = getTopLevelNodeKeys(editor);
57
- const {
58
- blockElem: _emptyBlockElem,
59
- blockNode,
60
- foundAtIndex
61
- } = getNodeCloseToPoint({
62
- anchorElem,
63
- cache_threshold: 0,
64
- editor,
65
- horizontalOffset: -distanceFromScrollerElem,
66
- point: new Point(event.x, event.y),
67
- returnEmptyParagraphs: true,
68
- startIndex: getCurrentIndex(topLevelNodeKeys.length),
69
- useEdgeAsDefault: false
37
+ useEffect(() => {
38
+ function onDocumentMouseMove(event) {
39
+ const target = event.target;
40
+ if (!isHTMLElement(target)) {
41
+ return;
42
+ }
43
+ const distanceFromScrollerElem = calculateDistanceFromScrollerElem(scrollerElem, event.pageX, event.pageY, target);
44
+ if (distanceFromScrollerElem === -1) {
45
+ setHoveredElement(null);
46
+ return;
47
+ }
48
+ if (isOnHandleElement(target, ADD_BLOCK_MENU_CLASSNAME)) {
49
+ return;
50
+ }
51
+ const topLevelNodeKeys = getTopLevelNodeKeys(editor);
52
+ const {
53
+ blockElem: _emptyBlockElem,
54
+ blockNode,
55
+ foundAtIndex
56
+ } = getNodeCloseToPoint({
57
+ anchorElem,
58
+ cache_threshold: 0,
59
+ editor,
60
+ horizontalOffset: -distanceFromScrollerElem,
61
+ point: new Point(event.x, event.y),
62
+ returnEmptyParagraphs: true,
63
+ startIndex: getCurrentIndex(topLevelNodeKeys.length),
64
+ useEdgeAsDefault: false
65
+ });
66
+ prevIndex = foundAtIndex;
67
+ if (!_emptyBlockElem) {
68
+ return;
69
+ }
70
+ if (hoveredElement?.node !== blockNode || hoveredElement?.elem !== _emptyBlockElem) {
71
+ setHoveredElement({
72
+ elem: _emptyBlockElem,
73
+ node: blockNode
70
74
  });
71
- prevIndex = foundAtIndex;
72
- if (!_emptyBlockElem) {
73
- return;
74
- }
75
- if (hoveredElement?.node !== blockNode || hoveredElement?.elem !== _emptyBlockElem) {
76
- setHoveredElement({
77
- elem: _emptyBlockElem,
78
- node: blockNode
79
- });
80
- }
81
- };
82
- document?.addEventListener("mousemove", onDocumentMouseMove);
83
- return () => {
84
- document?.removeEventListener("mousemove", onDocumentMouseMove);
85
- };
75
+ }
76
+ }
77
+ // Since the draggableBlockElem is outside the actual editor, we need to listen to the document
78
+ // to be able to detect when the mouse is outside the editor and respect a buffer around
79
+ // the scrollerElem to avoid the draggableBlockElem disappearing too early.
80
+ document?.addEventListener('mousemove', onDocumentMouseMove);
81
+ return () => {
82
+ document?.removeEventListener('mousemove', onDocumentMouseMove);
86
83
  };
87
- t1 = [scrollerElem, anchorElem, editor, hoveredElement];
88
- $[0] = scrollerElem;
89
- $[1] = editor;
90
- $[2] = anchorElem;
91
- $[3] = hoveredElement;
92
- $[4] = t0;
93
- $[5] = t1;
94
- } else {
95
- t0 = $[4];
96
- t1 = $[5];
97
- }
98
- useEffect(t0, t1);
99
- let t2;
100
- if ($[6] !== anchorElem || $[7] !== hoveredElement || $[8] !== blockHandleHorizontalOffset) {
101
- t2 = [anchorElem, hoveredElement, blockHandleHorizontalOffset];
102
- $[6] = anchorElem;
103
- $[7] = hoveredElement;
104
- $[8] = blockHandleHorizontalOffset;
105
- $[9] = t2;
106
- } else {
107
- t2 = $[9];
108
- }
84
+ }, [scrollerElem, anchorElem, editor, hoveredElement]);
109
85
  useEffect(() => {
110
86
  if (menuRef.current && hoveredElement?.node) {
111
87
  setHandlePosition(hoveredElement?.elem, menuRef.current, anchorElem, blockHandleHorizontalOffset);
112
88
  }
113
- }, t2);
114
- let t3;
115
- if ($[10] !== hoveredElement || $[11] !== editor) {
116
- t3 = event_0 => {
117
- let hoveredElementToUse;
118
- hoveredElementToUse = hoveredElement;
119
- if (!hoveredElementToUse?.node) {
120
- return;
89
+ }, [anchorElem, hoveredElement, blockHandleHorizontalOffset]);
90
+ const handleAddClick = useCallback(event_0 => {
91
+ let hoveredElementToUse = hoveredElement;
92
+ if (!hoveredElementToUse?.node) {
93
+ return;
94
+ }
95
+ // 1. Update hoveredElement.node to a new paragraph node if the hoveredElement.node is not a paragraph node
96
+ editor.update(() => {
97
+ // Check if blockNode is an empty text node
98
+ let isEmptyParagraph = true;
99
+ if (hoveredElementToUse.node.getType() !== 'paragraph' || hoveredElementToUse.node.getTextContent() !== '') {
100
+ isEmptyParagraph = false;
101
+ }
102
+ if (!isEmptyParagraph) {
103
+ const newParagraph = $createParagraphNode();
104
+ hoveredElementToUse.node.insertAfter(newParagraph);
105
+ setTimeout(() => {
106
+ hoveredElementToUse = {
107
+ elem: editor.getElementByKey(newParagraph.getKey()),
108
+ node: newParagraph
109
+ };
110
+ setHoveredElement(hoveredElementToUse);
111
+ }, 0);
121
112
  }
113
+ });
114
+ // 2. Focus on the new paragraph node
115
+ setTimeout(() => {
122
116
  editor.update(() => {
123
- let isEmptyParagraph = true;
124
- if (hoveredElementToUse.node.getType() !== "paragraph" || hoveredElementToUse.node.getTextContent() !== "") {
125
- isEmptyParagraph = false;
126
- }
127
- if (!isEmptyParagraph) {
128
- const newParagraph = $createParagraphNode();
129
- hoveredElementToUse.node.insertAfter(newParagraph);
130
- setTimeout(() => {
131
- hoveredElementToUse = {
132
- elem: editor.getElementByKey(newParagraph.getKey()),
133
- node: newParagraph
134
- };
135
- setHoveredElement(hoveredElementToUse);
136
- }, 0);
117
+ editor.focus();
118
+ if (hoveredElementToUse.node && 'select' in hoveredElementToUse.node && typeof hoveredElementToUse.node.select === 'function') {
119
+ hoveredElementToUse.node.select();
137
120
  }
138
121
  });
139
- setTimeout(() => {
140
- editor.update(() => {
141
- editor.focus();
142
- if (hoveredElementToUse.node && "select" in hoveredElementToUse.node && typeof hoveredElementToUse.node.select === "function") {
143
- hoveredElementToUse.node.select();
144
- }
145
- });
146
- }, 1);
147
- setTimeout(() => {
148
- editor.dispatchCommand(ENABLE_SLASH_MENU_COMMAND, {
149
- node: hoveredElementToUse.node
150
- });
151
- }, 2);
152
- event_0.stopPropagation();
153
- event_0.preventDefault();
154
- };
155
- $[10] = hoveredElement;
156
- $[11] = editor;
157
- $[12] = t3;
158
- } else {
159
- t3 = $[12];
160
- }
161
- const handleAddClick = t3;
162
- let t4;
163
- if ($[13] !== handleAddClick) {
164
- t4 = event_1 => {
165
- handleAddClick(event_1);
166
- };
167
- $[13] = handleAddClick;
168
- $[14] = t4;
169
- } else {
170
- t4 = $[14];
171
- }
172
- return createPortal(_jsx(React.Fragment, {
173
- children: _jsx("button", {
122
+ }, 1);
123
+ // Make sure this is called AFTER the focusing has been processed by the browser
124
+ // Otherwise, this won't work
125
+ setTimeout(() => {
126
+ editor.dispatchCommand(ENABLE_SLASH_MENU_COMMAND, {
127
+ node: hoveredElementToUse.node
128
+ });
129
+ }, 2);
130
+ event_0.stopPropagation();
131
+ event_0.preventDefault();
132
+ }, [editor, hoveredElement]);
133
+ return /*#__PURE__*/createPortal( /*#__PURE__*/_jsx(React.Fragment, {
134
+ children: /*#__PURE__*/_jsx("button", {
174
135
  className: "icon add-block-menu",
175
- onClick: t4,
136
+ onClick: event_1 => {
137
+ handleAddClick(event_1);
138
+ },
176
139
  ref: menuRef,
177
140
  type: "button",
178
- children: _jsx("div", {
179
- className: isEditable ? "icon" : ""
141
+ children: /*#__PURE__*/_jsx("div", {
142
+ className: isEditable ? 'icon' : ''
180
143
  })
181
144
  })
182
145
  }), anchorElem);
183
146
  }
184
- export function AddBlockHandlePlugin(t0) {
185
- const {
186
- anchorElem: t1
187
- } = t0;
188
- const anchorElem = t1 === undefined ? document.body : t1;
147
+ export function AddBlockHandlePlugin({
148
+ anchorElem = document.body
149
+ }) {
189
150
  const [editor] = useLexicalComposerContext();
190
151
  return useAddBlockHandle(editor, anchorElem, editor._editable);
191
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$createParagraphNode","React","useCallback","useEffect","useRef","useState","createPortal","useEditorConfigContext","isHTMLElement","Point","ENABLE_SLASH_MENU_COMMAND","calculateDistanceFromScrollerElem","getNodeCloseToPoint","getTopLevelNodeKeys","isOnHandleElement","setHandlePosition","ADD_BLOCK_MENU_CLASSNAME","prevIndex","Infinity","getCurrentIndex","keysLength","Math","floor","useAddBlockHandle","editor","anchorElem","isEditable","$","scrollerElem","parentElement","editorConfig","blockHandleHorizontalOffset","admin","hideGutter","menuRef","hoveredElement","setHoveredElement","t0","t1","onDocumentMouseMove","event","target","distanceFromScrollerElem","pageX","pageY","topLevelNodeKeys","blockElem","_emptyBlockElem","blockNode","foundAtIndex","cache_threshold","horizontalOffset","point","x","y","returnEmptyParagraphs","startIndex","length","useEdgeAsDefault","node","elem","document","addEventListener","removeEventListener","t2","current","t3","event_0","hoveredElementToUse","update","isEmptyParagraph","getType","getTextContent","newParagraph","insertAfter","setTimeout","getElementByKey","getKey","focus","select","dispatchCommand","stopPropagation","preventDefault","handleAddClick","t4","event_1","_jsx","Fragment","children","className","onClick","ref","type","AddBlockHandlePlugin","undefined","body","_editable"],"sources":["../../../../../src/lexical/plugins/handles/AddBlockHandlePlugin/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor, LexicalNode, ParagraphNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $createParagraphNode } from 'lexical'\nimport * as React from 'react'\nimport { type JSX, useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEditorConfigContext } from '../../../config/client/EditorConfigProvider.js'\nimport { isHTMLElement } from '../../../utils/guard.js'\nimport { Point } from '../../../utils/point.js'\nimport { ENABLE_SLASH_MENU_COMMAND } from '../../SlashMenu/LexicalTypeaheadMenuPlugin/index.js'\nimport { calculateDistanceFromScrollerElem } from '../utils/calculateDistanceFromScrollerElem.js'\nimport { getNodeCloseToPoint } from '../utils/getNodeCloseToPoint.js'\nimport { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys.js'\nimport { isOnHandleElement } from '../utils/isOnHandleElement.js'\nimport { setHandlePosition } from '../utils/setHandlePosition.js'\nimport './index.scss'\n\nconst ADD_BLOCK_MENU_CLASSNAME = 'add-block-menu'\n\nlet prevIndex = Infinity\n\nfunction getCurrentIndex(keysLength: number): number {\n if (keysLength === 0) {\n return Infinity\n }\n if (prevIndex >= 0 && prevIndex < keysLength) {\n return prevIndex\n }\n\n return Math.floor(keysLength / 2)\n}\n\nfunction useAddBlockHandle(\n editor: LexicalEditor,\n anchorElem: HTMLElement,\n isEditable: boolean,\n): React.ReactElement {\n const scrollerElem = anchorElem.parentElement\n\n const { editorConfig } = useEditorConfigContext()\n const blockHandleHorizontalOffset = editorConfig?.admin?.hideGutter ? -24 : 12\n\n const menuRef = useRef<HTMLButtonElement>(null)\n const [hoveredElement, setHoveredElement] = useState<{\n elem: HTMLElement\n node: LexicalNode\n } | null>(null)\n\n useEffect(() => {\n function onDocumentMouseMove(event: MouseEvent) {\n const target = event.target\n if (!isHTMLElement(target)) {\n return\n }\n\n const distanceFromScrollerElem = calculateDistanceFromScrollerElem(\n scrollerElem,\n event.pageX,\n event.pageY,\n target,\n )\n\n if (distanceFromScrollerElem === -1) {\n setHoveredElement(null)\n return\n }\n\n if (isOnHandleElement(target, ADD_BLOCK_MENU_CLASSNAME)) {\n return\n }\n const topLevelNodeKeys = getTopLevelNodeKeys(editor)\n\n const {\n blockElem: _emptyBlockElem,\n blockNode,\n foundAtIndex,\n } = getNodeCloseToPoint({\n anchorElem,\n cache_threshold: 0,\n editor,\n horizontalOffset: -distanceFromScrollerElem,\n point: new Point(event.x, event.y),\n returnEmptyParagraphs: true,\n startIndex: getCurrentIndex(topLevelNodeKeys.length),\n useEdgeAsDefault: false,\n })\n\n prevIndex = foundAtIndex\n\n if (!_emptyBlockElem) {\n return\n }\n if (hoveredElement?.node !== blockNode || hoveredElement?.elem !== _emptyBlockElem) {\n setHoveredElement({\n elem: _emptyBlockElem,\n node: blockNode,\n })\n }\n }\n\n // Since the draggableBlockElem is outside the actual editor, we need to listen to the document\n // to be able to detect when the mouse is outside the editor and respect a buffer around\n // the scrollerElem to avoid the draggableBlockElem disappearing too early.\n document?.addEventListener('mousemove', onDocumentMouseMove)\n\n return () => {\n document?.removeEventListener('mousemove', onDocumentMouseMove)\n }\n }, [scrollerElem, anchorElem, editor, hoveredElement])\n\n useEffect(() => {\n if (menuRef.current && hoveredElement?.node) {\n setHandlePosition(\n hoveredElement?.elem,\n menuRef.current,\n anchorElem,\n blockHandleHorizontalOffset,\n )\n }\n }, [anchorElem, hoveredElement, blockHandleHorizontalOffset])\n\n const handleAddClick = useCallback(\n (event) => {\n let hoveredElementToUse = hoveredElement\n if (!hoveredElementToUse?.node) {\n return\n }\n\n // 1. Update hoveredElement.node to a new paragraph node if the hoveredElement.node is not a paragraph node\n editor.update(() => {\n // Check if blockNode is an empty text node\n let isEmptyParagraph = true\n if (\n hoveredElementToUse.node.getType() !== 'paragraph' ||\n hoveredElementToUse.node.getTextContent() !== ''\n ) {\n isEmptyParagraph = false\n }\n\n if (!isEmptyParagraph) {\n const newParagraph = $createParagraphNode()\n hoveredElementToUse.node.insertAfter(newParagraph)\n\n setTimeout(() => {\n hoveredElementToUse = {\n elem: editor.getElementByKey(newParagraph.getKey()),\n node: newParagraph,\n }\n setHoveredElement(hoveredElementToUse)\n }, 0)\n }\n })\n\n // 2. Focus on the new paragraph node\n setTimeout(() => {\n editor.update(() => {\n editor.focus()\n\n if (\n hoveredElementToUse.node &&\n 'select' in hoveredElementToUse.node &&\n typeof hoveredElementToUse.node.select === 'function'\n ) {\n hoveredElementToUse.node.select()\n }\n })\n }, 1)\n\n // Make sure this is called AFTER the focusing has been processed by the browser\n // Otherwise, this won't work\n setTimeout(() => {\n editor.dispatchCommand(ENABLE_SLASH_MENU_COMMAND, {\n node: hoveredElementToUse.node as ParagraphNode,\n })\n }, 2)\n\n event.stopPropagation()\n event.preventDefault()\n },\n [editor, hoveredElement],\n )\n\n return createPortal(\n <React.Fragment>\n <button\n className=\"icon add-block-menu\"\n onClick={(event) => {\n handleAddClick(event)\n }}\n ref={menuRef}\n type=\"button\"\n >\n <div className={isEditable ? 'icon' : ''} />\n </button>\n </React.Fragment>,\n anchorElem,\n )\n}\n\nexport function AddBlockHandlePlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): React.ReactElement {\n const [editor] = useLexicalComposerContext()\n return useAddBlockHandle(editor, anchorElem, editor._editable)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useLexicalComposerContext","$createParagraphNode","React","useCallback","useEffect","useRef","useState","createPortal","useEditorConfigContext","isHTMLElement","Point","ENABLE_SLASH_MENU_COMMAND","calculateDistanceFromScrollerElem","getNodeCloseToPoint","getTopLevelNodeKeys","isOnHandleElement","setHandlePosition","ADD_BLOCK_MENU_CLASSNAME","prevIndex","Infinity","getCurrentIndex","keysLength","Math","floor","useAddBlockHandle","editor","anchorElem","isEditable","scrollerElem","parentElement","editorConfig","blockHandleHorizontalOffset","admin","hideGutter","menuRef","hoveredElement","setHoveredElement","onDocumentMouseMove","event","target","distanceFromScrollerElem","pageX","pageY","topLevelNodeKeys","blockElem","_emptyBlockElem","blockNode","foundAtIndex","cache_threshold","horizontalOffset","point","x","y","returnEmptyParagraphs","startIndex","length","useEdgeAsDefault","node","elem","document","addEventListener","removeEventListener","current","handleAddClick","hoveredElementToUse","update","isEmptyParagraph","getType","getTextContent","newParagraph","insertAfter","setTimeout","getElementByKey","getKey","focus","select","dispatchCommand","stopPropagation","preventDefault","_jsx","Fragment","className","onClick","ref","type","AddBlockHandlePlugin","body","_editable"],"sources":["../../../../../src/lexical/plugins/handles/AddBlockHandlePlugin/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor, LexicalNode, ParagraphNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $createParagraphNode } from 'lexical'\nimport * as React from 'react'\nimport { type JSX, useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEditorConfigContext } from '../../../config/client/EditorConfigProvider.js'\nimport { isHTMLElement } from '../../../utils/guard.js'\nimport { Point } from '../../../utils/point.js'\nimport { ENABLE_SLASH_MENU_COMMAND } from '../../SlashMenu/LexicalTypeaheadMenuPlugin/index.js'\nimport { calculateDistanceFromScrollerElem } from '../utils/calculateDistanceFromScrollerElem.js'\nimport { getNodeCloseToPoint } from '../utils/getNodeCloseToPoint.js'\nimport { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys.js'\nimport { isOnHandleElement } from '../utils/isOnHandleElement.js'\nimport { setHandlePosition } from '../utils/setHandlePosition.js'\nimport './index.scss'\n\nconst ADD_BLOCK_MENU_CLASSNAME = 'add-block-menu'\n\nlet prevIndex = Infinity\n\nfunction getCurrentIndex(keysLength: number): number {\n if (keysLength === 0) {\n return Infinity\n }\n if (prevIndex >= 0 && prevIndex < keysLength) {\n return prevIndex\n }\n\n return Math.floor(keysLength / 2)\n}\n\nfunction useAddBlockHandle(\n editor: LexicalEditor,\n anchorElem: HTMLElement,\n isEditable: boolean,\n): React.ReactElement {\n const scrollerElem = anchorElem.parentElement\n\n const { editorConfig } = useEditorConfigContext()\n const blockHandleHorizontalOffset = editorConfig?.admin?.hideGutter ? -24 : 12\n\n const menuRef = useRef<HTMLButtonElement>(null)\n const [hoveredElement, setHoveredElement] = useState<{\n elem: HTMLElement\n node: LexicalNode\n } | null>(null)\n\n useEffect(() => {\n function onDocumentMouseMove(event: MouseEvent) {\n const target = event.target\n if (!isHTMLElement(target)) {\n return\n }\n\n const distanceFromScrollerElem = calculateDistanceFromScrollerElem(\n scrollerElem,\n event.pageX,\n event.pageY,\n target,\n )\n\n if (distanceFromScrollerElem === -1) {\n setHoveredElement(null)\n return\n }\n\n if (isOnHandleElement(target, ADD_BLOCK_MENU_CLASSNAME)) {\n return\n }\n const topLevelNodeKeys = getTopLevelNodeKeys(editor)\n\n const {\n blockElem: _emptyBlockElem,\n blockNode,\n foundAtIndex,\n } = getNodeCloseToPoint({\n anchorElem,\n cache_threshold: 0,\n editor,\n horizontalOffset: -distanceFromScrollerElem,\n point: new Point(event.x, event.y),\n returnEmptyParagraphs: true,\n startIndex: getCurrentIndex(topLevelNodeKeys.length),\n useEdgeAsDefault: false,\n })\n\n prevIndex = foundAtIndex\n\n if (!_emptyBlockElem) {\n return\n }\n if (hoveredElement?.node !== blockNode || hoveredElement?.elem !== _emptyBlockElem) {\n setHoveredElement({\n elem: _emptyBlockElem,\n node: blockNode,\n })\n }\n }\n\n // Since the draggableBlockElem is outside the actual editor, we need to listen to the document\n // to be able to detect when the mouse is outside the editor and respect a buffer around\n // the scrollerElem to avoid the draggableBlockElem disappearing too early.\n document?.addEventListener('mousemove', onDocumentMouseMove)\n\n return () => {\n document?.removeEventListener('mousemove', onDocumentMouseMove)\n }\n }, [scrollerElem, anchorElem, editor, hoveredElement])\n\n useEffect(() => {\n if (menuRef.current && hoveredElement?.node) {\n setHandlePosition(\n hoveredElement?.elem,\n menuRef.current,\n anchorElem,\n blockHandleHorizontalOffset,\n )\n }\n }, [anchorElem, hoveredElement, blockHandleHorizontalOffset])\n\n const handleAddClick = useCallback(\n (event) => {\n let hoveredElementToUse = hoveredElement\n if (!hoveredElementToUse?.node) {\n return\n }\n\n // 1. Update hoveredElement.node to a new paragraph node if the hoveredElement.node is not a paragraph node\n editor.update(() => {\n // Check if blockNode is an empty text node\n let isEmptyParagraph = true\n if (\n hoveredElementToUse.node.getType() !== 'paragraph' ||\n hoveredElementToUse.node.getTextContent() !== ''\n ) {\n isEmptyParagraph = false\n }\n\n if (!isEmptyParagraph) {\n const newParagraph = $createParagraphNode()\n hoveredElementToUse.node.insertAfter(newParagraph)\n\n setTimeout(() => {\n hoveredElementToUse = {\n elem: editor.getElementByKey(newParagraph.getKey()),\n node: newParagraph,\n }\n setHoveredElement(hoveredElementToUse)\n }, 0)\n }\n })\n\n // 2. Focus on the new paragraph node\n setTimeout(() => {\n editor.update(() => {\n editor.focus()\n\n if (\n hoveredElementToUse.node &&\n 'select' in hoveredElementToUse.node &&\n typeof hoveredElementToUse.node.select === 'function'\n ) {\n hoveredElementToUse.node.select()\n }\n })\n }, 1)\n\n // Make sure this is called AFTER the focusing has been processed by the browser\n // Otherwise, this won't work\n setTimeout(() => {\n editor.dispatchCommand(ENABLE_SLASH_MENU_COMMAND, {\n node: hoveredElementToUse.node as ParagraphNode,\n })\n }, 2)\n\n event.stopPropagation()\n event.preventDefault()\n },\n [editor, hoveredElement],\n )\n\n return createPortal(\n <React.Fragment>\n <button\n className=\"icon add-block-menu\"\n onClick={(event) => {\n handleAddClick(event)\n }}\n ref={menuRef}\n type=\"button\"\n >\n <div className={isEditable ? 'icon' : ''} />\n </button>\n </React.Fragment>,\n anchorElem,\n )\n}\n\nexport function AddBlockHandlePlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): React.ReactElement {\n const [editor] = useLexicalComposerContext()\n return useAddBlockHandle(editor, anchorElem, editor._editable)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/handles/DraggableBlockPlugin/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,OAAO,cAAc,CAAA;AAuarB,wBAAgB,oBAAoB,CAAC,EACnC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,KAAK,CAAC,YAAY,CAGrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/handles/DraggableBlockPlugin/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,OAAO,cAAc,CAAA;AAiarB,wBAAgB,oBAAoB,CAAC,EACnC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,KAAK,CAAC,YAAY,CAGrB"}