@payloadcms/richtext-lexical 3.0.0-beta.84 → 3.0.0-beta.86

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 (757) hide show
  1. package/dist/cell/index.js +117 -127
  2. package/dist/cell/index.js.map +1 -1
  3. package/dist/exports/client/Component-DOSSWC76.js +2 -0
  4. package/dist/exports/client/Component-DOSSWC76.js.map +7 -0
  5. package/dist/exports/client/Component-MBLHTKDK.js +2 -0
  6. package/dist/exports/client/Component-MBLHTKDK.js.map +7 -0
  7. package/dist/exports/client/Field-KUSPHC7Q.js +2 -0
  8. package/dist/exports/client/Field-KUSPHC7Q.js.map +7 -0
  9. package/dist/exports/client/RelationshipComponent-3QWBV4GT.js +2 -0
  10. package/dist/exports/client/RelationshipComponent-3QWBV4GT.js.map +7 -0
  11. package/dist/exports/client/bundled.css +1 -1
  12. package/dist/exports/client/chunk-G5DTIOPI.js +2 -0
  13. package/dist/exports/client/chunk-G5DTIOPI.js.map +7 -0
  14. package/dist/exports/client/chunk-LGUXX2QH.js +2 -0
  15. package/dist/exports/client/chunk-LGUXX2QH.js.map +7 -0
  16. package/dist/exports/client/chunk-NI6Z4GBD.js +2 -0
  17. package/dist/exports/client/{chunk-SQHN3N6E.js.map → chunk-NI6Z4GBD.js.map} +2 -2
  18. package/dist/exports/client/chunk-OKMIHD2R.js +2 -0
  19. package/dist/exports/client/chunk-OKMIHD2R.js.map +7 -0
  20. package/dist/exports/client/chunk-TO2W7Q2G.js +2 -0
  21. package/dist/exports/client/chunk-TO2W7Q2G.js.map +7 -0
  22. package/dist/exports/client/chunk-V2LKLT2F.js +3 -0
  23. package/dist/exports/client/chunk-V2LKLT2F.js.map +7 -0
  24. package/dist/exports/client/component-3OFD6Q4Z.js +2 -0
  25. package/dist/exports/client/component-3OFD6Q4Z.js.map +7 -0
  26. package/dist/exports/client/component-LCAAX56T.js +2 -0
  27. package/dist/exports/client/component-LCAAX56T.js.map +7 -0
  28. package/dist/exports/client/component-LLWMZU6K.js +2 -0
  29. package/dist/exports/client/component-LLWMZU6K.js.map +7 -0
  30. package/dist/exports/client/componentInline-72VZAAHP.js +2 -0
  31. package/dist/exports/client/componentInline-72VZAAHP.js.map +7 -0
  32. package/dist/exports/client/index.js +9 -9
  33. package/dist/exports/client/index.js.map +3 -3
  34. package/dist/exports/server/migrate.js +0 -1
  35. package/dist/exports/server/migrate.js.map +1 -1
  36. package/dist/features/align/client/index.js +151 -134
  37. package/dist/features/align/client/index.js.map +1 -1
  38. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  39. package/dist/features/align/client/toolbarAlignGroup.js +10 -9
  40. package/dist/features/align/client/toolbarAlignGroup.js.map +1 -1
  41. package/dist/features/align/server/i18n.js +192 -193
  42. package/dist/features/align/server/i18n.js.map +1 -1
  43. package/dist/features/align/server/index.js +5 -6
  44. package/dist/features/align/server/index.js.map +1 -1
  45. package/dist/features/blockquote/client/index.js +60 -65
  46. package/dist/features/blockquote/client/index.js.map +1 -1
  47. package/dist/features/blockquote/markdownTransformer.js +28 -34
  48. package/dist/features/blockquote/markdownTransformer.js.map +1 -1
  49. package/dist/features/blockquote/server/i18n.js +96 -97
  50. package/dist/features/blockquote/server/i18n.js.map +1 -1
  51. package/dist/features/blockquote/server/index.js +38 -37
  52. package/dist/features/blockquote/server/index.js.map +1 -1
  53. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  54. package/dist/features/blocks/client/component/BlockContent.js +166 -172
  55. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  56. package/dist/features/blocks/client/component/FormSavePlugin.d.ts.map +1 -1
  57. package/dist/features/blocks/client/component/FormSavePlugin.js +46 -22
  58. package/dist/features/blocks/client/component/FormSavePlugin.js.map +1 -1
  59. package/dist/features/blocks/client/component/index.js +130 -142
  60. package/dist/features/blocks/client/component/index.js.map +1 -1
  61. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +1 -1
  62. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +12 -8
  63. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +1 -1
  64. package/dist/features/blocks/client/componentInline/index.js +106 -122
  65. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  66. package/dist/features/blocks/client/index.js +149 -142
  67. package/dist/features/blocks/client/index.js.map +1 -1
  68. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  69. package/dist/features/blocks/client/nodes/BlocksNode.js +41 -40
  70. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  71. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  72. package/dist/features/blocks/client/nodes/InlineBlocksNode.js +31 -30
  73. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  74. package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -1
  75. package/dist/features/blocks/client/plugin/commands.js +2 -1
  76. package/dist/features/blocks/client/plugin/commands.js.map +1 -1
  77. package/dist/features/blocks/client/plugin/index.js +179 -106
  78. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  79. package/dist/features/blocks/server/graphQLPopulationPromise.js +41 -28
  80. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  81. package/dist/features/blocks/server/i18n.js +288 -289
  82. package/dist/features/blocks/server/i18n.js.map +1 -1
  83. package/dist/features/blocks/server/index.js +149 -151
  84. package/dist/features/blocks/server/index.js.map +1 -1
  85. package/dist/features/blocks/server/nodes/BlocksNode.js +76 -73
  86. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  87. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +78 -76
  88. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  89. package/dist/features/blocks/server/validate.js +45 -34
  90. package/dist/features/blocks/server/validate.js.map +1 -1
  91. package/dist/features/converters/html/converter/converters/linebreak.js +4 -7
  92. package/dist/features/converters/html/converter/converters/linebreak.js.map +1 -1
  93. package/dist/features/converters/html/converter/converters/paragraph.js +24 -19
  94. package/dist/features/converters/html/converter/converters/paragraph.js.map +1 -1
  95. package/dist/features/converters/html/converter/converters/text.js +28 -29
  96. package/dist/features/converters/html/converter/converters/text.js.map +1 -1
  97. package/dist/features/converters/html/converter/defaultConverters.js +1 -6
  98. package/dist/features/converters/html/converter/defaultConverters.js.map +1 -1
  99. package/dist/features/converters/html/converter/index.js +66 -51
  100. package/dist/features/converters/html/converter/index.js.map +1 -1
  101. package/dist/features/converters/html/converter/types.js +1 -2
  102. package/dist/features/converters/html/converter/types.js.map +1 -1
  103. package/dist/features/converters/html/field/index.js +134 -139
  104. package/dist/features/converters/html/field/index.js.map +1 -1
  105. package/dist/features/converters/html/index.js +2 -3
  106. package/dist/features/converters/html/index.js.map +1 -1
  107. package/dist/features/createClientComponent.js +7 -6
  108. package/dist/features/createClientComponent.js.map +1 -1
  109. package/dist/features/createFeaturePropComponent.js +14 -13
  110. package/dist/features/createFeaturePropComponent.js.map +1 -1
  111. package/dist/features/debug/testRecorder/client/index.js +5 -7
  112. package/dist/features/debug/testRecorder/client/index.js.map +1 -1
  113. package/dist/features/debug/testRecorder/client/plugin/index.js +518 -402
  114. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  115. package/dist/features/debug/testRecorder/server/index.js +4 -5
  116. package/dist/features/debug/testRecorder/server/index.js.map +1 -1
  117. package/dist/features/debug/treeView/client/index.js +5 -7
  118. package/dist/features/debug/treeView/client/index.js.map +1 -1
  119. package/dist/features/debug/treeView/client/plugin/index.js +21 -11
  120. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
  121. package/dist/features/debug/treeView/server/index.js +4 -5
  122. package/dist/features/debug/treeView/server/index.js.map +1 -1
  123. package/dist/features/experimental_table/client/index.js +41 -58
  124. package/dist/features/experimental_table/client/index.js.map +1 -1
  125. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +714 -560
  126. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  127. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +295 -301
  128. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  129. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -7
  130. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
  131. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +228 -159
  132. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  133. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts +1 -1
  134. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
  135. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +129 -82
  136. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  137. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +1 -1
  138. package/dist/features/experimental_table/client/utils/debounce.js +108 -89
  139. package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
  140. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +1 -1
  141. package/dist/features/experimental_table/client/utils/useDebounce.js +11 -13
  142. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
  143. package/dist/features/experimental_table/server/index.js +127 -114
  144. package/dist/features/experimental_table/server/index.js.map +1 -1
  145. package/dist/features/format/bold/feature.client.js +34 -35
  146. package/dist/features/format/bold/feature.client.js.map +1 -1
  147. package/dist/features/format/bold/feature.server.js +14 -18
  148. package/dist/features/format/bold/feature.server.js.map +1 -1
  149. package/dist/features/format/bold/markdownTransformers.js +14 -25
  150. package/dist/features/format/bold/markdownTransformers.js.map +1 -1
  151. package/dist/features/format/inlineCode/feature.client.js +26 -28
  152. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  153. package/dist/features/format/inlineCode/feature.server.js +5 -8
  154. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  155. package/dist/features/format/inlineCode/markdownTransformers.js +3 -6
  156. package/dist/features/format/inlineCode/markdownTransformers.js.map +1 -1
  157. package/dist/features/format/italic/feature.client.js +26 -29
  158. package/dist/features/format/italic/feature.client.js.map +1 -1
  159. package/dist/features/format/italic/feature.server.js +5 -9
  160. package/dist/features/format/italic/feature.server.js.map +1 -1
  161. package/dist/features/format/italic/markdownTransformers.js +7 -12
  162. package/dist/features/format/italic/markdownTransformers.js.map +1 -1
  163. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  164. package/dist/features/format/shared/toolbarFormatGroup.js +9 -8
  165. package/dist/features/format/shared/toolbarFormatGroup.js.map +1 -1
  166. package/dist/features/format/strikethrough/feature.client.js +26 -28
  167. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  168. package/dist/features/format/strikethrough/feature.server.js +5 -8
  169. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  170. package/dist/features/format/strikethrough/markdownTransformers.js +3 -6
  171. package/dist/features/format/strikethrough/markdownTransformers.js.map +1 -1
  172. package/dist/features/format/subscript/feature.client.js +25 -25
  173. package/dist/features/format/subscript/feature.client.js.map +1 -1
  174. package/dist/features/format/subscript/feature.server.js +4 -5
  175. package/dist/features/format/subscript/feature.server.js.map +1 -1
  176. package/dist/features/format/superscript/feature.client.js +25 -25
  177. package/dist/features/format/superscript/feature.client.js.map +1 -1
  178. package/dist/features/format/superscript/feature.server.js +4 -5
  179. package/dist/features/format/superscript/feature.server.js.map +1 -1
  180. package/dist/features/format/underline/feature.client.js +25 -25
  181. package/dist/features/format/underline/feature.client.js.map +1 -1
  182. package/dist/features/format/underline/feature.server.js +4 -5
  183. package/dist/features/format/underline/feature.server.js.map +1 -1
  184. package/dist/features/heading/client/index.js +86 -90
  185. package/dist/features/heading/client/index.js.map +1 -1
  186. package/dist/features/heading/markdownTransformer.js +22 -25
  187. package/dist/features/heading/markdownTransformer.js.map +1 -1
  188. package/dist/features/heading/server/i18n.js +96 -97
  189. package/dist/features/heading/server/i18n.js.map +1 -1
  190. package/dist/features/heading/server/index.js +49 -51
  191. package/dist/features/heading/server/index.js.map +1 -1
  192. package/dist/features/horizontalRule/client/component/index.js +81 -51
  193. package/dist/features/horizontalRule/client/component/index.js.map +1 -1
  194. package/dist/features/horizontalRule/client/index.js +48 -57
  195. package/dist/features/horizontalRule/client/index.js.map +1 -1
  196. package/dist/features/horizontalRule/client/markdownTransformer.js +15 -18
  197. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  198. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  199. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +33 -30
  200. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  201. package/dist/features/horizontalRule/client/plugin/index.js +31 -20
  202. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  203. package/dist/features/horizontalRule/server/i18n.js +96 -97
  204. package/dist/features/horizontalRule/server/i18n.js.map +1 -1
  205. package/dist/features/horizontalRule/server/index.js +17 -24
  206. package/dist/features/horizontalRule/server/index.js.map +1 -1
  207. package/dist/features/horizontalRule/server/markdownTransformer.js +15 -18
  208. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  209. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +71 -66
  210. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  211. package/dist/features/indent/client/index.js +52 -47
  212. package/dist/features/indent/client/index.js.map +1 -1
  213. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  214. package/dist/features/indent/client/toolbarIndentGroup.js +9 -8
  215. package/dist/features/indent/client/toolbarIndentGroup.js.map +1 -1
  216. package/dist/features/indent/server/i18n.js +128 -129
  217. package/dist/features/indent/server/i18n.js.map +1 -1
  218. package/dist/features/indent/server/index.js +5 -6
  219. package/dist/features/indent/server/index.js.map +1 -1
  220. package/dist/features/link/client/index.js +78 -83
  221. package/dist/features/link/client/index.js.map +1 -1
  222. package/dist/features/link/client/plugins/autoLink/index.js +267 -271
  223. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  224. package/dist/features/link/client/plugins/clickableLink/index.js +3 -3
  225. package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
  226. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -1
  227. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js +2 -1
  228. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -1
  229. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +254 -276
  230. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  231. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +8 -6
  232. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  233. package/dist/features/link/client/plugins/floatingLinkEditor/types.js +1 -2
  234. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
  235. package/dist/features/link/client/plugins/link/index.js +50 -41
  236. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  237. package/dist/features/link/markdownTransformer.js +38 -39
  238. package/dist/features/link/markdownTransformer.js.map +1 -1
  239. package/dist/features/link/nodes/AutoLinkNode.js +57 -56
  240. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  241. package/dist/features/link/nodes/LinkNode.js +277 -276
  242. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  243. package/dist/features/link/nodes/types.js +1 -2
  244. package/dist/features/link/nodes/types.js.map +1 -1
  245. package/dist/features/link/server/baseFields.js +118 -88
  246. package/dist/features/link/server/baseFields.js.map +1 -1
  247. package/dist/features/link/server/graphQLPopulationPromise.js +42 -28
  248. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
  249. package/dist/features/link/server/i18n.js +96 -97
  250. package/dist/features/link/server/i18n.js.map +1 -1
  251. package/dist/features/link/server/index.js +120 -114
  252. package/dist/features/link/server/index.js.map +1 -1
  253. package/dist/features/link/server/transformExtraFields.js +15 -15
  254. package/dist/features/link/server/transformExtraFields.js.map +1 -1
  255. package/dist/features/link/server/validate.js +37 -26
  256. package/dist/features/link/server/validate.js.map +1 -1
  257. package/dist/features/lists/checklist/client/index.js +77 -85
  258. package/dist/features/lists/checklist/client/index.js.map +1 -1
  259. package/dist/features/lists/checklist/client/plugin/index.js +3 -3
  260. package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
  261. package/dist/features/lists/checklist/markdownTransformers.js +7 -11
  262. package/dist/features/lists/checklist/markdownTransformers.js.map +1 -1
  263. package/dist/features/lists/checklist/server/i18n.js +96 -97
  264. package/dist/features/lists/checklist/server/i18n.js.map +1 -1
  265. package/dist/features/lists/checklist/server/index.js +21 -25
  266. package/dist/features/lists/checklist/server/index.js.map +1 -1
  267. package/dist/features/lists/htmlConverter.js +54 -43
  268. package/dist/features/lists/htmlConverter.js.map +1 -1
  269. package/dist/features/lists/orderedList/client/index.js +71 -77
  270. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  271. package/dist/features/lists/orderedList/markdownTransformer.js +7 -11
  272. package/dist/features/lists/orderedList/markdownTransformer.js.map +1 -1
  273. package/dist/features/lists/orderedList/server/i18n.js +96 -97
  274. package/dist/features/lists/orderedList/server/i18n.js.map +1 -1
  275. package/dist/features/lists/orderedList/server/index.js +21 -25
  276. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  277. package/dist/features/lists/plugin/index.js +3 -3
  278. package/dist/features/lists/plugin/index.js.map +1 -1
  279. package/dist/features/lists/shared/markdown.js +48 -49
  280. package/dist/features/lists/shared/markdown.js.map +1 -1
  281. package/dist/features/lists/shared/slashMenuListGroup.js +9 -8
  282. package/dist/features/lists/shared/slashMenuListGroup.js.map +1 -1
  283. package/dist/features/lists/unorderedList/client/index.js +68 -76
  284. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  285. package/dist/features/lists/unorderedList/markdownTransformer.js +7 -11
  286. package/dist/features/lists/unorderedList/markdownTransformer.js.map +1 -1
  287. package/dist/features/lists/unorderedList/server/i18n.js +96 -97
  288. package/dist/features/lists/unorderedList/server/i18n.js.map +1 -1
  289. package/dist/features/lists/unorderedList/server/index.js +17 -23
  290. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  291. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +18 -17
  292. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -1
  293. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +30 -29
  294. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -1
  295. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +21 -20
  296. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -1
  297. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +21 -19
  298. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -1
  299. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +18 -17
  300. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -1
  301. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +24 -23
  302. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -1
  303. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +20 -21
  304. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -1
  305. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +1 -10
  306. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -1
  307. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +69 -61
  308. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
  309. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js +1 -2
  310. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -1
  311. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +5 -7
  312. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -1
  313. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +42 -43
  314. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -1
  315. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -1
  316. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +11 -11
  317. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  318. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +64 -59
  319. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  320. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +19 -19
  321. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
  322. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +20 -25
  323. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
  324. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +28 -30
  325. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -1
  326. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +26 -26
  327. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
  328. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +22 -21
  329. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
  330. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +22 -22
  331. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
  332. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +12 -13
  333. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -1
  334. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +23 -23
  335. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
  336. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +22 -22
  337. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
  338. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +15 -16
  339. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -1
  340. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +1 -13
  341. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -1
  342. package/dist/features/migrations/slateToLexical/converter/index.js +105 -98
  343. package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
  344. package/dist/features/migrations/slateToLexical/converter/types.js +1 -2
  345. package/dist/features/migrations/slateToLexical/converter/types.js.map +1 -1
  346. package/dist/features/migrations/slateToLexical/feature.client.js +7 -7
  347. package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
  348. package/dist/features/migrations/slateToLexical/feature.server.js +43 -44
  349. package/dist/features/migrations/slateToLexical/feature.server.js.map +1 -1
  350. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -1
  351. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +11 -11
  352. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  353. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +64 -59
  354. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  355. package/dist/features/paragraph/client/index.js +58 -61
  356. package/dist/features/paragraph/client/index.js.map +1 -1
  357. package/dist/features/paragraph/server/i18n.js +128 -129
  358. package/dist/features/paragraph/server/i18n.js.map +1 -1
  359. package/dist/features/paragraph/server/index.js +6 -7
  360. package/dist/features/paragraph/server/index.js.map +1 -1
  361. package/dist/features/relationship/client/components/RelationshipComponent.js +141 -149
  362. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  363. package/dist/features/relationship/client/drawer/commands.js +0 -1
  364. package/dist/features/relationship/client/drawer/commands.js.map +1 -1
  365. package/dist/features/relationship/client/drawer/index.js +138 -67
  366. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  367. package/dist/features/relationship/client/index.js +53 -59
  368. package/dist/features/relationship/client/index.js.map +1 -1
  369. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  370. package/dist/features/relationship/client/nodes/RelationshipNode.js +60 -59
  371. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  372. package/dist/features/relationship/client/plugins/index.js +90 -35
  373. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  374. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.d.ts.map +1 -1
  375. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +97 -26
  376. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -1
  377. package/dist/features/relationship/server/graphQLPopulationPromise.js +34 -26
  378. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  379. package/dist/features/relationship/server/i18n.js +96 -97
  380. package/dist/features/relationship/server/i18n.js.map +1 -1
  381. package/dist/features/relationship/server/index.js +48 -44
  382. package/dist/features/relationship/server/index.js.map +1 -1
  383. package/dist/features/relationship/server/nodes/RelationshipNode.js +90 -87
  384. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  385. package/dist/features/shared/slashMenu/basicGroup.js +9 -8
  386. package/dist/features/shared/slashMenu/basicGroup.js.map +1 -1
  387. package/dist/features/shared/toolbar/addDropdownGroup.js +8 -9
  388. package/dist/features/shared/toolbar/addDropdownGroup.js.map +1 -1
  389. package/dist/features/shared/toolbar/featureButtonsGroup.js +7 -8
  390. package/dist/features/shared/toolbar/featureButtonsGroup.js.map +1 -1
  391. package/dist/features/shared/toolbar/textDropdownGroup.js +8 -9
  392. package/dist/features/shared/toolbar/textDropdownGroup.js.map +1 -1
  393. package/dist/features/toolbars/fixed/client/Toolbar/index.js +264 -187
  394. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  395. package/dist/features/toolbars/fixed/client/index.js +5 -7
  396. package/dist/features/toolbars/fixed/client/index.js.map +1 -1
  397. package/dist/features/toolbars/fixed/server/index.js +14 -13
  398. package/dist/features/toolbars/fixed/server/index.js.map +1 -1
  399. package/dist/features/toolbars/inline/client/Toolbar/index.js +374 -286
  400. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  401. package/dist/features/toolbars/inline/client/index.js +5 -7
  402. package/dist/features/toolbars/inline/client/index.js.map +1 -1
  403. package/dist/features/toolbars/inline/server/index.js +4 -5
  404. package/dist/features/toolbars/inline/server/index.js.map +1 -1
  405. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts +1 -1
  406. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  407. package/dist/features/toolbars/shared/ToolbarButton/index.js +75 -97
  408. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  409. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +190 -211
  410. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  411. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +1 -1
  412. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  413. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +289 -124
  414. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  415. package/dist/features/toolbars/types.js +1 -2
  416. package/dist/features/toolbars/types.js.map +1 -1
  417. package/dist/features/typeUtilities.js +2 -3
  418. package/dist/features/typeUtilities.js.map +1 -1
  419. package/dist/features/typesClient.js +1 -2
  420. package/dist/features/typesClient.js.map +1 -1
  421. package/dist/features/typesServer.js +1 -2
  422. package/dist/features/typesServer.js.map +1 -1
  423. package/dist/features/upload/client/component/index.js +208 -224
  424. package/dist/features/upload/client/component/index.js.map +1 -1
  425. package/dist/features/upload/client/drawer/commands.js +1 -1
  426. package/dist/features/upload/client/drawer/commands.js.map +1 -1
  427. package/dist/features/upload/client/drawer/index.js +107 -58
  428. package/dist/features/upload/client/drawer/index.js.map +1 -1
  429. package/dist/features/upload/client/feature.client.js +51 -61
  430. package/dist/features/upload/client/feature.client.js.map +1 -1
  431. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  432. package/dist/features/upload/client/nodes/UploadNode.js +76 -73
  433. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  434. package/dist/features/upload/client/plugin/index.js +67 -39
  435. package/dist/features/upload/client/plugin/index.js.map +1 -1
  436. package/dist/features/upload/server/feature.server.js +190 -171
  437. package/dist/features/upload/server/feature.server.js.map +1 -1
  438. package/dist/features/upload/server/graphQLPopulationPromise.js +60 -47
  439. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  440. package/dist/features/upload/server/i18n.js +96 -97
  441. package/dist/features/upload/server/i18n.js.map +1 -1
  442. package/dist/features/upload/server/nodes/UploadNode.js +113 -108
  443. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  444. package/dist/features/upload/server/validate.js +53 -40
  445. package/dist/features/upload/server/validate.js.map +1 -1
  446. package/dist/field/Field.js +124 -105
  447. package/dist/field/Field.js.map +1 -1
  448. package/dist/field/bundled.css +1 -0
  449. package/dist/field/index.js +92 -36
  450. package/dist/field/index.js.map +1 -1
  451. package/dist/i18n.js +160 -161
  452. package/dist/i18n.js.map +1 -1
  453. package/dist/index.d.ts.map +1 -1
  454. package/dist/index.js +670 -623
  455. package/dist/index.js.map +1 -1
  456. package/dist/lexical/EditorPlugin.d.ts.map +1 -1
  457. package/dist/lexical/EditorPlugin.js +15 -10
  458. package/dist/lexical/EditorPlugin.js.map +1 -1
  459. package/dist/lexical/LexicalEditor.js +206 -161
  460. package/dist/lexical/LexicalEditor.js.map +1 -1
  461. package/dist/lexical/LexicalProvider.js +83 -82
  462. package/dist/lexical/LexicalProvider.js.map +1 -1
  463. package/dist/lexical/config/client/EditorConfigProvider.js +76 -79
  464. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  465. package/dist/lexical/config/client/default.js +3 -3
  466. package/dist/lexical/config/client/default.js.map +1 -1
  467. package/dist/lexical/config/client/loader.js +42 -39
  468. package/dist/lexical/config/client/loader.js.map +1 -1
  469. package/dist/lexical/config/client/sanitize.js +165 -165
  470. package/dist/lexical/config/client/sanitize.js.map +1 -1
  471. package/dist/lexical/config/server/default.js +5 -27
  472. package/dist/lexical/config/server/default.js.map +1 -1
  473. package/dist/lexical/config/server/loader.js +103 -103
  474. package/dist/lexical/config/server/loader.js.map +1 -1
  475. package/dist/lexical/config/server/sanitize.js +98 -99
  476. package/dist/lexical/config/server/sanitize.js.map +1 -1
  477. package/dist/lexical/config/types.js +1 -2
  478. package/dist/lexical/config/types.js.map +1 -1
  479. package/dist/lexical/nodes/index.js +9 -8
  480. package/dist/lexical/nodes/index.js.map +1 -1
  481. package/dist/lexical/plugins/MarkdownShortcut/index.js +17 -5
  482. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  483. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +384 -361
  484. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  485. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +223 -160
  486. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  487. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -2
  488. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  489. package/dist/lexical/plugins/SlashMenu/index.js +191 -179
  490. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  491. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.d.ts.map +1 -1
  492. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +41 -26
  493. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -1
  494. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +164 -129
  495. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  496. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  497. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +11 -10
  498. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
  499. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.d.ts.map +1 -1
  500. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +11 -10
  501. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
  502. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts.map +1 -1
  503. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +27 -23
  504. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +1 -1
  505. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +331 -300
  506. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  507. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +110 -97
  508. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  509. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  510. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js +23 -16
  511. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js.map +1 -1
  512. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.d.ts.map +1 -1
  513. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +18 -27
  514. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +1 -1
  515. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.d.ts.map +1 -1
  516. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js +15 -11
  517. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js.map +1 -1
  518. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.d.ts.map +1 -1
  519. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +133 -118
  520. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
  521. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts.map +1 -1
  522. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +3 -2
  523. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -1
  524. package/dist/lexical/plugins/handles/utils/isOnHandleElement.d.ts.map +1 -1
  525. package/dist/lexical/plugins/handles/utils/isOnHandleElement.js +3 -2
  526. package/dist/lexical/plugins/handles/utils/isOnHandleElement.js.map +1 -1
  527. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
  528. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +26 -25
  529. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  530. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
  531. package/dist/lexical/theme/EditorTheme.js +97 -102
  532. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  533. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
  534. package/dist/lexical/ui/ContentEditable.js +27 -10
  535. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  536. package/dist/lexical/ui/icons/AI/index.d.ts.map +1 -1
  537. package/dist/lexical/ui/icons/AI/index.js +31 -33
  538. package/dist/lexical/ui/icons/AI/index.js.map +1 -1
  539. package/dist/lexical/ui/icons/Add/index.d.ts.map +1 -1
  540. package/dist/lexical/ui/icons/Add/index.js +16 -18
  541. package/dist/lexical/ui/icons/Add/index.js.map +1 -1
  542. package/dist/lexical/ui/icons/AlignCenter/index.d.ts.map +1 -1
  543. package/dist/lexical/ui/icons/AlignCenter/index.js +25 -28
  544. package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
  545. package/dist/lexical/ui/icons/AlignJustify/index.d.ts.map +1 -1
  546. package/dist/lexical/ui/icons/AlignJustify/index.js +25 -28
  547. package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
  548. package/dist/lexical/ui/icons/AlignLeft/index.d.ts.map +1 -1
  549. package/dist/lexical/ui/icons/AlignLeft/index.js +25 -28
  550. package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
  551. package/dist/lexical/ui/icons/AlignRight/index.d.ts.map +1 -1
  552. package/dist/lexical/ui/icons/AlignRight/index.js +25 -28
  553. package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
  554. package/dist/lexical/ui/icons/Block/index.d.ts.map +1 -1
  555. package/dist/lexical/ui/icons/Block/index.js +34 -37
  556. package/dist/lexical/ui/icons/Block/index.js.map +1 -1
  557. package/dist/lexical/ui/icons/Blockquote/index.d.ts.map +1 -1
  558. package/dist/lexical/ui/icons/Blockquote/index.js +16 -15
  559. package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
  560. package/dist/lexical/ui/icons/Bold/index.d.ts.map +1 -1
  561. package/dist/lexical/ui/icons/Bold/index.js +16 -15
  562. package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
  563. package/dist/lexical/ui/icons/Checklist/index.d.ts.map +1 -1
  564. package/dist/lexical/ui/icons/Checklist/index.js +24 -26
  565. package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
  566. package/dist/lexical/ui/icons/Code/index.d.ts.map +1 -1
  567. package/dist/lexical/ui/icons/Code/index.js +19 -21
  568. package/dist/lexical/ui/icons/Code/index.js.map +1 -1
  569. package/dist/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -1
  570. package/dist/lexical/ui/icons/CodeBlock/index.js +19 -21
  571. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
  572. package/dist/lexical/ui/icons/H1/index.d.ts.map +1 -1
  573. package/dist/lexical/ui/icons/H1/index.js +16 -15
  574. package/dist/lexical/ui/icons/H1/index.js.map +1 -1
  575. package/dist/lexical/ui/icons/H2/index.d.ts.map +1 -1
  576. package/dist/lexical/ui/icons/H2/index.js +16 -15
  577. package/dist/lexical/ui/icons/H2/index.js.map +1 -1
  578. package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
  579. package/dist/lexical/ui/icons/H3/index.js +16 -15
  580. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  581. package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
  582. package/dist/lexical/ui/icons/H4/index.js +16 -15
  583. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  584. package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
  585. package/dist/lexical/ui/icons/H5/index.js +16 -15
  586. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  587. package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
  588. package/dist/lexical/ui/icons/H6/index.js +16 -15
  589. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  590. package/dist/lexical/ui/icons/HorizontalRule/index.d.ts.map +1 -1
  591. package/dist/lexical/ui/icons/HorizontalRule/index.js +19 -18
  592. package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
  593. package/dist/lexical/ui/icons/IndentDecrease/index.d.ts.map +1 -1
  594. package/dist/lexical/ui/icons/IndentDecrease/index.js +28 -32
  595. package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
  596. package/dist/lexical/ui/icons/IndentIncrease/index.d.ts.map +1 -1
  597. package/dist/lexical/ui/icons/IndentIncrease/index.js +28 -32
  598. package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
  599. package/dist/lexical/ui/icons/InlineBlocks/index.d.ts.map +1 -1
  600. package/dist/lexical/ui/icons/InlineBlocks/index.js +18 -17
  601. package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
  602. package/dist/lexical/ui/icons/Italic/index.d.ts.map +1 -1
  603. package/dist/lexical/ui/icons/Italic/index.js +16 -15
  604. package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
  605. package/dist/lexical/ui/icons/Link/index.d.ts.map +1 -1
  606. package/dist/lexical/ui/icons/Link/index.js +17 -16
  607. package/dist/lexical/ui/icons/Link/index.js.map +1 -1
  608. package/dist/lexical/ui/icons/Meatballs/index.d.ts.map +1 -1
  609. package/dist/lexical/ui/icons/Meatballs/index.js +19 -22
  610. package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
  611. package/dist/lexical/ui/icons/OrderedList/index.d.ts.map +1 -1
  612. package/dist/lexical/ui/icons/OrderedList/index.js +31 -36
  613. package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
  614. package/dist/lexical/ui/icons/Relationship/index.d.ts.map +1 -1
  615. package/dist/lexical/ui/icons/Relationship/index.js +31 -33
  616. package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
  617. package/dist/lexical/ui/icons/Strikethrough/index.d.ts.map +1 -1
  618. package/dist/lexical/ui/icons/Strikethrough/index.js +19 -21
  619. package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
  620. package/dist/lexical/ui/icons/Subscript/index.d.ts.map +1 -1
  621. package/dist/lexical/ui/icons/Subscript/index.js +16 -15
  622. package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
  623. package/dist/lexical/ui/icons/Superscript/index.d.ts.map +1 -1
  624. package/dist/lexical/ui/icons/Superscript/index.js +16 -15
  625. package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
  626. package/dist/lexical/ui/icons/Table/index.d.ts.map +1 -1
  627. package/dist/lexical/ui/icons/Table/index.js +17 -16
  628. package/dist/lexical/ui/icons/Table/index.js.map +1 -1
  629. package/dist/lexical/ui/icons/Text/index.d.ts.map +1 -1
  630. package/dist/lexical/ui/icons/Text/index.js +16 -15
  631. package/dist/lexical/ui/icons/Text/index.js.map +1 -1
  632. package/dist/lexical/ui/icons/Underline/index.d.ts.map +1 -1
  633. package/dist/lexical/ui/icons/Underline/index.js +19 -21
  634. package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
  635. package/dist/lexical/ui/icons/UnorderedList/index.d.ts.map +1 -1
  636. package/dist/lexical/ui/icons/UnorderedList/index.js +46 -52
  637. package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
  638. package/dist/lexical/ui/icons/Upload/index.d.ts.map +1 -1
  639. package/dist/lexical/ui/icons/Upload/index.js +28 -31
  640. package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
  641. package/dist/lexical/utils/canUseDOM.d.ts.map +1 -1
  642. package/dist/lexical/utils/canUseDOM.js +2 -1
  643. package/dist/lexical/utils/canUseDOM.js.map +1 -1
  644. package/dist/lexical/utils/environment.d.ts.map +1 -1
  645. package/dist/lexical/utils/environment.js +2 -1
  646. package/dist/lexical/utils/environment.js.map +1 -1
  647. package/dist/lexical/utils/getDOMRangeRect.d.ts.map +1 -1
  648. package/dist/lexical/utils/getDOMRangeRect.js +13 -12
  649. package/dist/lexical/utils/getDOMRangeRect.js.map +1 -1
  650. package/dist/lexical/utils/getSelectedNode.d.ts.map +1 -1
  651. package/dist/lexical/utils/getSelectedNode.js +18 -13
  652. package/dist/lexical/utils/getSelectedNode.js.map +1 -1
  653. package/dist/lexical/utils/guard.d.ts.map +1 -1
  654. package/dist/lexical/utils/guard.js +3 -2
  655. package/dist/lexical/utils/guard.js.map +1 -1
  656. package/dist/lexical/utils/joinClasses.d.ts.map +1 -1
  657. package/dist/lexical/utils/joinClasses.js +3 -2
  658. package/dist/lexical/utils/joinClasses.js.map +1 -1
  659. package/dist/lexical/utils/markdown/createBlockNode.js +9 -10
  660. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  661. package/dist/lexical/utils/nodeFormat.js +58 -59
  662. package/dist/lexical/utils/nodeFormat.js.map +1 -1
  663. package/dist/lexical/utils/point.d.ts.map +1 -1
  664. package/dist/lexical/utils/point.js +40 -32
  665. package/dist/lexical/utils/point.js.map +1 -1
  666. package/dist/lexical/utils/rect.d.ts.map +1 -1
  667. package/dist/lexical/utils/rect.js +167 -134
  668. package/dist/lexical/utils/rect.js.map +1 -1
  669. package/dist/lexical/utils/setFloatingElemPosition.d.ts.map +1 -1
  670. package/dist/lexical/utils/setFloatingElemPosition.js +56 -45
  671. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
  672. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.d.ts.map +1 -1
  673. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js +23 -22
  674. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +1 -1
  675. package/dist/lexical/utils/swipe.d.ts.map +1 -1
  676. package/dist/lexical/utils/swipe.js +82 -83
  677. package/dist/lexical/utils/swipe.js.map +1 -1
  678. package/dist/lexical/utils/url.js +23 -22
  679. package/dist/lexical/utils/url.js.map +1 -1
  680. package/dist/nodeTypes.js +1 -2
  681. package/dist/nodeTypes.js.map +1 -1
  682. package/dist/populateGraphQL/defaultValue.js +24 -29
  683. package/dist/populateGraphQL/defaultValue.js.map +1 -1
  684. package/dist/populateGraphQL/populate.js +35 -25
  685. package/dist/populateGraphQL/populate.js.map +1 -1
  686. package/dist/populateGraphQL/populateLexicalPopulationPromises.js +47 -32
  687. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  688. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js +39 -25
  689. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
  690. package/dist/types.js +1 -2
  691. package/dist/types.js.map +1 -1
  692. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  693. package/dist/utilities/createClientFeature.js +40 -26
  694. package/dist/utilities/createClientFeature.js.map +1 -1
  695. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  696. package/dist/utilities/createServerFeature.js +46 -31
  697. package/dist/utilities/createServerFeature.js.map +1 -1
  698. package/dist/utilities/fieldsDrawer/Drawer.js +28 -17
  699. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  700. package/dist/utilities/fieldsDrawer/DrawerContent.js +149 -78
  701. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  702. package/dist/utilities/forEachNodeRecursively.js +24 -19
  703. package/dist/utilities/forEachNodeRecursively.js.map +1 -1
  704. package/dist/utilities/generateComponentMap.js +90 -82
  705. package/dist/utilities/generateComponentMap.js.map +1 -1
  706. package/dist/utilities/generateImportMap.js +53 -47
  707. package/dist/utilities/generateImportMap.js.map +1 -1
  708. package/dist/utilities/generateSchemaMap.js +35 -30
  709. package/dist/utilities/generateSchemaMap.js.map +1 -1
  710. package/dist/utilities/migrateSlateToLexical/index.js +99 -86
  711. package/dist/utilities/migrateSlateToLexical/index.js.map +1 -1
  712. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +73 -66
  713. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  714. package/dist/utilities/recurseNodeTree.js +25 -22
  715. package/dist/utilities/recurseNodeTree.js.map +1 -1
  716. package/dist/utilities/upgradeLexicalData/index.js +99 -86
  717. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  718. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +71 -66
  719. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  720. package/dist/utilities/useLexicalFeature.js +9 -8
  721. package/dist/utilities/useLexicalFeature.js.map +1 -1
  722. package/dist/validate/index.js +32 -26
  723. package/dist/validate/index.js.map +1 -1
  724. package/dist/validate/validateNodes.js +31 -28
  725. package/dist/validate/validateNodes.js.map +1 -1
  726. package/package.json +22 -11
  727. package/dist/exports/client/Component-7HS6FEJS.js +0 -2
  728. package/dist/exports/client/Component-7HS6FEJS.js.map +0 -7
  729. package/dist/exports/client/Component-LAKSCIDX.js +0 -2
  730. package/dist/exports/client/Component-LAKSCIDX.js.map +0 -7
  731. package/dist/exports/client/Field-BYB3WX7J.js +0 -2
  732. package/dist/exports/client/Field-BYB3WX7J.js.map +0 -7
  733. package/dist/exports/client/RelationshipComponent-GYUTPDNG.js +0 -2
  734. package/dist/exports/client/RelationshipComponent-GYUTPDNG.js.map +0 -7
  735. package/dist/exports/client/chunk-4EX7W4UX.js +0 -2
  736. package/dist/exports/client/chunk-4EX7W4UX.js.map +0 -7
  737. package/dist/exports/client/chunk-E4HH5PS6.js +0 -2
  738. package/dist/exports/client/chunk-E4HH5PS6.js.map +0 -7
  739. package/dist/exports/client/chunk-EBB2CEB6.js +0 -2
  740. package/dist/exports/client/chunk-EBB2CEB6.js.map +0 -7
  741. package/dist/exports/client/chunk-LTR7V74A.js +0 -2
  742. package/dist/exports/client/chunk-LTR7V74A.js.map +0 -7
  743. package/dist/exports/client/chunk-SQHN3N6E.js +0 -2
  744. package/dist/exports/client/chunk-VMCQSR3T.js +0 -3
  745. package/dist/exports/client/chunk-VMCQSR3T.js.map +0 -7
  746. package/dist/exports/client/component-6C5JERGA.js +0 -2
  747. package/dist/exports/client/component-6C5JERGA.js.map +0 -7
  748. package/dist/exports/client/component-GUWIGB77.js +0 -2
  749. package/dist/exports/client/component-GUWIGB77.js.map +0 -7
  750. package/dist/exports/client/component-UQ2BKD5X.js +0 -2
  751. package/dist/exports/client/component-UQ2BKD5X.js.map +0 -7
  752. package/dist/exports/client/componentInline-C2XIK5VZ.js +0 -2
  753. package/dist/exports/client/componentInline-C2XIK5VZ.js.map +0 -7
  754. package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.d.ts +0 -12
  755. package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  756. package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.js +0 -181
  757. package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TableCellNode, TableDOMCell, TableMapType, TableMapValueType } from '@lexical/table'\nimport type { LexicalEditor } from 'lexical'\nimport type { JSX, MouseEventHandler } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $computeTableMapSkipCellCheck,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $isTableCellNode,\n $isTableRowNode,\n getDOMCellFromTarget,\n} from '@lexical/table'\nimport { calculateZoomLevel } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode } from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\n\ntype MousePosition = {\n x: number\n y: number\n}\n\ntype MouseDraggingDirection = 'bottom' | 'right'\n\nconst MIN_ROW_HEIGHT = 33\nconst MIN_COLUMN_WIDTH = 50\n\nfunction TableCellResizer({ editor }: { editor: LexicalEditor }): JSX.Element {\n const targetRef = useRef<HTMLElement | null>(null)\n const resizerRef = useRef<HTMLDivElement | null>(null)\n const tableRectRef = useRef<ClientRect | null>(null)\n const editorConfig = useEditorConfigContext()\n\n const mouseStartPosRef = useRef<MousePosition | null>(null)\n const [mouseCurrentPos, updateMouseCurrentPos] = useState<MousePosition | null>(null)\n\n const [activeCell, updateActiveCell] = useState<TableDOMCell | null>(null)\n const [isMouseDown, updateIsMouseDown] = useState<boolean>(false)\n const [draggingDirection, updateDraggingDirection] = useState<MouseDraggingDirection | null>(null)\n\n const resetState = useCallback(() => {\n updateActiveCell(null)\n targetRef.current = null\n updateDraggingDirection(null)\n mouseStartPosRef.current = null\n tableRectRef.current = null\n }, [])\n\n const isMouseDownOnEvent = (event: MouseEvent) => {\n return (event.buttons & 1) === 1\n }\n\n useEffect(() => {\n const onMouseMove = (event: MouseEvent) => {\n setTimeout(() => {\n const target = event.target\n\n if (draggingDirection) {\n updateMouseCurrentPos({\n x: event.clientX,\n y: event.clientY,\n })\n return\n }\n updateIsMouseDown(isMouseDownOnEvent(event))\n if (resizerRef.current && resizerRef.current.contains(target as Node)) {\n return\n }\n\n if (targetRef.current !== target) {\n targetRef.current = target as HTMLElement\n const cell = getDOMCellFromTarget(target as HTMLElement)\n\n if (cell && activeCell !== cell) {\n editor.update(() => {\n const tableCellNode = $getNearestNodeFromDOMNode(cell.elem)\n\n if (!tableCellNode) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const tableElement = editor.getElementByKey(tableNode.getKey())\n\n if (!tableElement) {\n throw new Error('TableCellResizer: Table element not found.')\n }\n\n targetRef.current = target as HTMLElement\n tableRectRef.current = tableElement.getBoundingClientRect()\n updateActiveCell(cell)\n })\n } else if (cell == null) {\n resetState()\n }\n }\n }, 0)\n }\n\n const onMouseDown = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(true)\n }, 0)\n }\n\n const onMouseUp = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(false)\n }, 0)\n }\n\n const removeRootListener = editor.registerRootListener((rootElement, prevRootElement) => {\n rootElement?.addEventListener('mousemove', onMouseMove)\n rootElement?.addEventListener('mousedown', onMouseDown)\n rootElement?.addEventListener('mouseup', onMouseUp)\n\n prevRootElement?.removeEventListener('mousemove', onMouseMove)\n prevRootElement?.removeEventListener('mousedown', onMouseDown)\n prevRootElement?.removeEventListener('mouseup', onMouseUp)\n })\n\n return () => {\n removeRootListener()\n }\n }, [activeCell, draggingDirection, editor, resetState])\n\n const isHeightChanging = (direction: MouseDraggingDirection) => {\n if (direction === 'bottom') {\n return true\n }\n return false\n }\n\n const updateRowHeight = useCallback(\n (heightChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const tableRowIndex = $getTableRowIndexFromTableCellNode(tableCellNode)\n\n const tableRows = tableNode.getChildren()\n\n if (tableRowIndex >= tableRows.length || tableRowIndex < 0) {\n throw new Error('Expected table cell to be inside of table row.')\n }\n\n const tableRow = tableRows[tableRowIndex]\n\n if (!$isTableRowNode(tableRow)) {\n throw new Error('Expected table row')\n }\n\n let height = tableRow.getHeight()\n if (height === undefined) {\n const rowCells = tableRow.getChildren<TableCellNode>()\n height = Math.min(\n ...rowCells.map((cell) => getCellNodeHeight(cell, editor) ?? Infinity),\n )\n }\n\n const newHeight = Math.max(height + heightChange, MIN_ROW_HEIGHT)\n tableRow.setHeight(newHeight)\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const getCellNodeWidth = (\n cell: TableCellNode,\n activeEditor: LexicalEditor,\n ): number | undefined => {\n const width = cell.getWidth()\n if (width !== undefined) {\n return width\n }\n\n const domCellNode = activeEditor.getElementByKey(cell.getKey())\n if (domCellNode == null) {\n return undefined\n }\n const computedStyle = getComputedStyle(domCellNode)\n return (\n domCellNode.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight)\n )\n }\n\n const getCellNodeHeight = (\n cell: TableCellNode,\n activeEditor: LexicalEditor,\n ): number | undefined => {\n const domCellNode = activeEditor.getElementByKey(cell.getKey())\n return domCellNode?.clientHeight\n }\n\n const getCellColumnIndex = (tableCellNode: TableCellNode, tableMap: TableMapType) => {\n for (let row = 0; row < tableMap.length; row++) {\n for (let column = 0; column < tableMap[row].length; column++) {\n if (tableMap[row][column].cell === tableCellNode) {\n return column\n }\n }\n }\n }\n\n const updateColumnWidth = useCallback(\n (widthChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const [tableMap] = $computeTableMapSkipCellCheck(tableNode, null, null)\n const columnIndex = getCellColumnIndex(tableCellNode, tableMap)\n if (columnIndex === undefined) {\n throw new Error('TableCellResizer: Table column not found.')\n }\n\n for (let row = 0; row < tableMap.length; row++) {\n const cell: TableMapValueType = tableMap[row][columnIndex]\n if (\n cell.startRow === row &&\n (columnIndex === tableMap[row].length - 1 ||\n tableMap[row][columnIndex].cell !== tableMap[row][columnIndex + 1].cell)\n ) {\n const width = getCellNodeWidth(cell.cell, editor)\n if (width === undefined) {\n continue\n }\n const newWidth = Math.max(width + widthChange, MIN_COLUMN_WIDTH)\n cell.cell.setWidth(newWidth)\n }\n }\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const mouseUpHandler = useCallback(\n (direction: MouseDraggingDirection) => {\n const handler = (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n if (mouseStartPosRef.current) {\n const { x, y } = mouseStartPosRef.current\n\n if (activeCell === null) {\n return\n }\n const zoom = calculateZoomLevel(event.target as Element)\n\n if (isHeightChanging(direction)) {\n const heightChange = (event.clientY - y) / zoom\n updateRowHeight(heightChange)\n } else {\n const widthChange = (event.clientX - x) / zoom\n updateColumnWidth(widthChange)\n }\n\n resetState()\n document.removeEventListener('mouseup', handler)\n }\n }\n return handler\n },\n [activeCell, resetState, updateColumnWidth, updateRowHeight],\n )\n\n const toggleResize = useCallback(\n (direction: MouseDraggingDirection): MouseEventHandler<HTMLDivElement> =>\n (event) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n mouseStartPosRef.current = {\n x: event.clientX,\n y: event.clientY,\n }\n updateMouseCurrentPos(mouseStartPosRef.current)\n updateDraggingDirection(direction)\n\n document.addEventListener('mouseup', mouseUpHandler(direction))\n },\n [activeCell, mouseUpHandler],\n )\n\n const getResizers = useCallback(() => {\n if (activeCell) {\n const { height, left, top, width } = activeCell.elem.getBoundingClientRect()\n const zoom = calculateZoomLevel(activeCell.elem)\n const zoneWidth = 10 // Pixel width of the zone where you can drag the edge\n const styles = {\n bottom: {\n backgroundColor: 'none',\n cursor: 'row-resize',\n height: `${zoneWidth}px`,\n left: `${window.pageXOffset + left}px`,\n top: `${window.pageYOffset + top + height - zoneWidth / 2}px`,\n width: `${width}px`,\n },\n right: {\n backgroundColor: 'none',\n cursor: 'col-resize',\n height: `${height}px`,\n left: `${window.pageXOffset + left + width - zoneWidth / 2}px`,\n top: `${window.pageYOffset + top}px`,\n width: `${zoneWidth}px`,\n },\n }\n\n const tableRect = tableRectRef.current\n\n if (draggingDirection && mouseCurrentPos && tableRect) {\n if (isHeightChanging(draggingDirection)) {\n styles[draggingDirection].left = `${window.pageXOffset + tableRect.left}px`\n styles[draggingDirection].top = `${window.pageYOffset + mouseCurrentPos.y / zoom}px`\n styles[draggingDirection].height = '3px'\n styles[draggingDirection].width = `${tableRect.width}px`\n } else {\n styles[draggingDirection].top = `${window.pageYOffset + tableRect.top}px`\n styles[draggingDirection].left = `${window.pageXOffset + mouseCurrentPos.x / zoom}px`\n styles[draggingDirection].width = '3px'\n styles[draggingDirection].height = `${tableRect.height}px`\n }\n\n styles[draggingDirection].backgroundColor = '#adf'\n }\n\n return styles\n }\n\n return {\n bottom: null,\n left: null,\n right: null,\n top: null,\n }\n }, [activeCell, draggingDirection, mouseCurrentPos])\n\n const resizerStyles = getResizers()\n\n return (\n <div ref={resizerRef}>\n {activeCell != null && !isMouseDown && (\n <React.Fragment>\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('right')}\n style={resizerStyles.right || undefined}\n />\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('bottom')}\n style={resizerStyles.bottom || undefined}\n />\n </React.Fragment>\n )}\n </div>\n )\n}\n\nexport const TableCellResizerPlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n return useMemo(\n () => (isEditable ? createPortal(<TableCellResizer editor={editor} />, document.body) : null),\n [editor, isEditable],\n )\n}\n"],"names":["useLexicalComposerContext","useLexicalEditable","$computeTableMapSkipCellCheck","$getTableNodeFromLexicalNodeOrThrow","$getTableRowIndexFromTableCellNode","$isTableCellNode","$isTableRowNode","getDOMCellFromTarget","calculateZoomLevel","$getNearestNodeFromDOMNode","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","useEditorConfigContext","MIN_ROW_HEIGHT","MIN_COLUMN_WIDTH","TableCellResizer","editor","targetRef","resizerRef","tableRectRef","editorConfig","mouseStartPosRef","mouseCurrentPos","updateMouseCurrentPos","activeCell","updateActiveCell","isMouseDown","updateIsMouseDown","draggingDirection","updateDraggingDirection","resetState","current","isMouseDownOnEvent","event","buttons","onMouseMove","setTimeout","target","x","clientX","y","clientY","contains","cell","update","tableCellNode","elem","Error","tableNode","tableElement","getElementByKey","getKey","getBoundingClientRect","onMouseDown","onMouseUp","removeRootListener","registerRootListener","rootElement","prevRootElement","addEventListener","removeEventListener","isHeightChanging","direction","updateRowHeight","heightChange","tableRowIndex","tableRows","getChildren","length","tableRow","height","getHeight","undefined","rowCells","Math","min","map","getCellNodeHeight","Infinity","newHeight","max","setHeight","tag","getCellNodeWidth","activeEditor","width","getWidth","domCellNode","computedStyle","getComputedStyle","clientWidth","parseFloat","paddingLeft","paddingRight","clientHeight","getCellColumnIndex","tableMap","row","column","updateColumnWidth","widthChange","columnIndex","startRow","newWidth","setWidth","mouseUpHandler","handler","preventDefault","stopPropagation","zoom","document","toggleResize","getResizers","left","top","zoneWidth","styles","bottom","backgroundColor","cursor","window","pageXOffset","pageYOffset","right","tableRect","resizerStyles","div","ref","Fragment","className","lexical","theme","tableCellResizer","style","TableCellResizerPlugin","isEditable","body"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","$computeTableMapSkipCellCheck","$getTableNodeFromLexicalNodeOrThrow","$getTableRowIndexFromTableCellNode","$isTableCellNode","$isTableRowNode","getDOMCellFromTarget","calculateZoomLevel","$getNearestNodeFromDOMNode","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","useEditorConfigContext","MIN_ROW_HEIGHT","MIN_COLUMN_WIDTH","TableCellResizer","editor","targetRef","resizerRef","tableRectRef","editorConfig","mouseStartPosRef","mouseCurrentPos","updateMouseCurrentPos","activeCell","updateActiveCell","isMouseDown","updateIsMouseDown","draggingDirection","updateDraggingDirection","resetState","current","isMouseDownOnEvent","event","buttons","onMouseMove","setTimeout","target","x","clientX","y","clientY","contains","cell","update","tableCellNode","elem","Error","tableNode","tableElement","getElementByKey","getKey","getBoundingClientRect","onMouseDown","onMouseUp","removeRootListener","registerRootListener","rootElement","prevRootElement","addEventListener","removeEventListener","isHeightChanging","direction","updateRowHeight","heightChange","tableRowIndex","tableRows","getChildren","length","tableRow","height","getHeight","undefined","rowCells","Math","min","map","getCellNodeHeight","Infinity","newHeight","max","setHeight","tag","getCellNodeWidth","activeEditor","width","getWidth","domCellNode","computedStyle","getComputedStyle","clientWidth","parseFloat","paddingLeft","paddingRight","clientHeight","getCellColumnIndex","tableMap","row","column","updateColumnWidth","widthChange","columnIndex","startRow","newWidth","setWidth","mouseUpHandler","handler","preventDefault","stopPropagation","zoom","document","toggleResize","getResizers","left","top","zoneWidth","styles","bottom","backgroundColor","cursor","window","pageXOffset","pageYOffset","right","tableRect","resizerStyles","_jsx","ref","_jsxs","Fragment","className","lexical","theme","tableCellResizer","style","TableCellResizerPlugin","$","isEditable","t0","t1"],"sources":["../../../../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TableCellNode, TableDOMCell, TableMapType, TableMapValueType } from '@lexical/table'\nimport type { LexicalEditor } from 'lexical'\nimport type { JSX, MouseEventHandler } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $computeTableMapSkipCellCheck,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $isTableCellNode,\n $isTableRowNode,\n getDOMCellFromTarget,\n} from '@lexical/table'\nimport { calculateZoomLevel } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode } from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\n\ntype MousePosition = {\n x: number\n y: number\n}\n\ntype MouseDraggingDirection = 'bottom' | 'right'\n\nconst MIN_ROW_HEIGHT = 33\nconst MIN_COLUMN_WIDTH = 50\n\nfunction TableCellResizer({ editor }: { editor: LexicalEditor }): JSX.Element {\n const targetRef = useRef<HTMLElement | null>(null)\n const resizerRef = useRef<HTMLDivElement | null>(null)\n const tableRectRef = useRef<ClientRect | null>(null)\n const editorConfig = useEditorConfigContext()\n\n const mouseStartPosRef = useRef<MousePosition | null>(null)\n const [mouseCurrentPos, updateMouseCurrentPos] = useState<MousePosition | null>(null)\n\n const [activeCell, updateActiveCell] = useState<TableDOMCell | null>(null)\n const [isMouseDown, updateIsMouseDown] = useState<boolean>(false)\n const [draggingDirection, updateDraggingDirection] = useState<MouseDraggingDirection | null>(null)\n\n const resetState = useCallback(() => {\n updateActiveCell(null)\n targetRef.current = null\n updateDraggingDirection(null)\n mouseStartPosRef.current = null\n tableRectRef.current = null\n }, [])\n\n const isMouseDownOnEvent = (event: MouseEvent) => {\n return (event.buttons & 1) === 1\n }\n\n useEffect(() => {\n const onMouseMove = (event: MouseEvent) => {\n setTimeout(() => {\n const target = event.target\n\n if (draggingDirection) {\n updateMouseCurrentPos({\n x: event.clientX,\n y: event.clientY,\n })\n return\n }\n updateIsMouseDown(isMouseDownOnEvent(event))\n if (resizerRef.current && resizerRef.current.contains(target as Node)) {\n return\n }\n\n if (targetRef.current !== target) {\n targetRef.current = target as HTMLElement\n const cell = getDOMCellFromTarget(target as HTMLElement)\n\n if (cell && activeCell !== cell) {\n editor.update(() => {\n const tableCellNode = $getNearestNodeFromDOMNode(cell.elem)\n\n if (!tableCellNode) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const tableElement = editor.getElementByKey(tableNode.getKey())\n\n if (!tableElement) {\n throw new Error('TableCellResizer: Table element not found.')\n }\n\n targetRef.current = target as HTMLElement\n tableRectRef.current = tableElement.getBoundingClientRect()\n updateActiveCell(cell)\n })\n } else if (cell == null) {\n resetState()\n }\n }\n }, 0)\n }\n\n const onMouseDown = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(true)\n }, 0)\n }\n\n const onMouseUp = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(false)\n }, 0)\n }\n\n const removeRootListener = editor.registerRootListener((rootElement, prevRootElement) => {\n rootElement?.addEventListener('mousemove', onMouseMove)\n rootElement?.addEventListener('mousedown', onMouseDown)\n rootElement?.addEventListener('mouseup', onMouseUp)\n\n prevRootElement?.removeEventListener('mousemove', onMouseMove)\n prevRootElement?.removeEventListener('mousedown', onMouseDown)\n prevRootElement?.removeEventListener('mouseup', onMouseUp)\n })\n\n return () => {\n removeRootListener()\n }\n }, [activeCell, draggingDirection, editor, resetState])\n\n const isHeightChanging = (direction: MouseDraggingDirection) => {\n if (direction === 'bottom') {\n return true\n }\n return false\n }\n\n const updateRowHeight = useCallback(\n (heightChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const tableRowIndex = $getTableRowIndexFromTableCellNode(tableCellNode)\n\n const tableRows = tableNode.getChildren()\n\n if (tableRowIndex >= tableRows.length || tableRowIndex < 0) {\n throw new Error('Expected table cell to be inside of table row.')\n }\n\n const tableRow = tableRows[tableRowIndex]\n\n if (!$isTableRowNode(tableRow)) {\n throw new Error('Expected table row')\n }\n\n let height = tableRow.getHeight()\n if (height === undefined) {\n const rowCells = tableRow.getChildren<TableCellNode>()\n height = Math.min(\n ...rowCells.map((cell) => getCellNodeHeight(cell, editor) ?? Infinity),\n )\n }\n\n const newHeight = Math.max(height + heightChange, MIN_ROW_HEIGHT)\n tableRow.setHeight(newHeight)\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const getCellNodeWidth = (\n cell: TableCellNode,\n activeEditor: LexicalEditor,\n ): number | undefined => {\n const width = cell.getWidth()\n if (width !== undefined) {\n return width\n }\n\n const domCellNode = activeEditor.getElementByKey(cell.getKey())\n if (domCellNode == null) {\n return undefined\n }\n const computedStyle = getComputedStyle(domCellNode)\n return (\n domCellNode.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight)\n )\n }\n\n const getCellNodeHeight = (\n cell: TableCellNode,\n activeEditor: LexicalEditor,\n ): number | undefined => {\n const domCellNode = activeEditor.getElementByKey(cell.getKey())\n return domCellNode?.clientHeight\n }\n\n const getCellColumnIndex = (tableCellNode: TableCellNode, tableMap: TableMapType) => {\n for (let row = 0; row < tableMap.length; row++) {\n for (let column = 0; column < tableMap[row].length; column++) {\n if (tableMap[row][column].cell === tableCellNode) {\n return column\n }\n }\n }\n }\n\n const updateColumnWidth = useCallback(\n (widthChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const [tableMap] = $computeTableMapSkipCellCheck(tableNode, null, null)\n const columnIndex = getCellColumnIndex(tableCellNode, tableMap)\n if (columnIndex === undefined) {\n throw new Error('TableCellResizer: Table column not found.')\n }\n\n for (let row = 0; row < tableMap.length; row++) {\n const cell: TableMapValueType = tableMap[row][columnIndex]\n if (\n cell.startRow === row &&\n (columnIndex === tableMap[row].length - 1 ||\n tableMap[row][columnIndex].cell !== tableMap[row][columnIndex + 1].cell)\n ) {\n const width = getCellNodeWidth(cell.cell, editor)\n if (width === undefined) {\n continue\n }\n const newWidth = Math.max(width + widthChange, MIN_COLUMN_WIDTH)\n cell.cell.setWidth(newWidth)\n }\n }\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const mouseUpHandler = useCallback(\n (direction: MouseDraggingDirection) => {\n const handler = (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n if (mouseStartPosRef.current) {\n const { x, y } = mouseStartPosRef.current\n\n if (activeCell === null) {\n return\n }\n const zoom = calculateZoomLevel(event.target as Element)\n\n if (isHeightChanging(direction)) {\n const heightChange = (event.clientY - y) / zoom\n updateRowHeight(heightChange)\n } else {\n const widthChange = (event.clientX - x) / zoom\n updateColumnWidth(widthChange)\n }\n\n resetState()\n document.removeEventListener('mouseup', handler)\n }\n }\n return handler\n },\n [activeCell, resetState, updateColumnWidth, updateRowHeight],\n )\n\n const toggleResize = useCallback(\n (direction: MouseDraggingDirection): MouseEventHandler<HTMLDivElement> =>\n (event) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n mouseStartPosRef.current = {\n x: event.clientX,\n y: event.clientY,\n }\n updateMouseCurrentPos(mouseStartPosRef.current)\n updateDraggingDirection(direction)\n\n document.addEventListener('mouseup', mouseUpHandler(direction))\n },\n [activeCell, mouseUpHandler],\n )\n\n const getResizers = useCallback(() => {\n if (activeCell) {\n const { height, left, top, width } = activeCell.elem.getBoundingClientRect()\n const zoom = calculateZoomLevel(activeCell.elem)\n const zoneWidth = 10 // Pixel width of the zone where you can drag the edge\n const styles = {\n bottom: {\n backgroundColor: 'none',\n cursor: 'row-resize',\n height: `${zoneWidth}px`,\n left: `${window.pageXOffset + left}px`,\n top: `${window.pageYOffset + top + height - zoneWidth / 2}px`,\n width: `${width}px`,\n },\n right: {\n backgroundColor: 'none',\n cursor: 'col-resize',\n height: `${height}px`,\n left: `${window.pageXOffset + left + width - zoneWidth / 2}px`,\n top: `${window.pageYOffset + top}px`,\n width: `${zoneWidth}px`,\n },\n }\n\n const tableRect = tableRectRef.current\n\n if (draggingDirection && mouseCurrentPos && tableRect) {\n if (isHeightChanging(draggingDirection)) {\n styles[draggingDirection].left = `${window.pageXOffset + tableRect.left}px`\n styles[draggingDirection].top = `${window.pageYOffset + mouseCurrentPos.y / zoom}px`\n styles[draggingDirection].height = '3px'\n styles[draggingDirection].width = `${tableRect.width}px`\n } else {\n styles[draggingDirection].top = `${window.pageYOffset + tableRect.top}px`\n styles[draggingDirection].left = `${window.pageXOffset + mouseCurrentPos.x / zoom}px`\n styles[draggingDirection].width = '3px'\n styles[draggingDirection].height = `${tableRect.height}px`\n }\n\n styles[draggingDirection].backgroundColor = '#adf'\n }\n\n return styles\n }\n\n return {\n bottom: null,\n left: null,\n right: null,\n top: null,\n }\n }, [activeCell, draggingDirection, mouseCurrentPos])\n\n const resizerStyles = getResizers()\n\n return (\n <div ref={resizerRef}>\n {activeCell != null && !isMouseDown && (\n <React.Fragment>\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('right')}\n style={resizerStyles.right || undefined}\n />\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('bottom')}\n style={resizerStyles.bottom || undefined}\n />\n </React.Fragment>\n )}\n </div>\n )\n}\n\nexport const TableCellResizerPlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n return useMemo(\n () => (isEditable ? createPortal(<TableCellResizer editor={editor} />, document.body) : null),\n [editor, isEditable],\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,3 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */
8
1
  import * as React from 'react';
9
2
  export declare function TableHoverActionsPlugin({ anchorElem, }: {
10
3
  anchorElem?: HTMLElement;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAmN9B,wBAAgB,uBAAuB,CAAC,EACtC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CAE3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAmN9B,wBAAgB,uBAAuB,CAAC,EACtC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CAE3B"}
@@ -1,10 +1,7 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
5
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
9
6
  import { $getTableColumnIndexFromTableCellNode, $getTableRowIndexFromTableCellNode, $insertTableColumn__EXPERIMENTAL, $insertTableRow__EXPERIMENTAL, $isTableCellNode, $isTableNode, TableNode } from '@lexical/table';
10
7
  import { $findMatchingParent, mergeRegister } from '@lexical/utils';
@@ -15,167 +12,239 @@ import { createPortal } from 'react-dom';
15
12
  import { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js';
16
13
  import { useDebounce } from '../../utils/useDebounce.js';
17
14
  const BUTTON_WIDTH_PX = 20;
18
- function TableHoverActionsContainer({ anchorElem }) {
19
- const [editor] = useLexicalComposerContext();
20
- const editorConfig = useEditorConfigContext();
21
- const [isShownRow, setShownRow] = useState(false);
22
- const [isShownColumn, setShownColumn] = useState(false);
23
- const [shouldListenMouseMove, setShouldListenMouseMove] = useState(false);
24
- const [position, setPosition] = useState({});
25
- const codeSetRef = useRef(new Set());
26
- const tableDOMNodeRef = useRef(null);
27
- const debouncedOnMouseMove = useDebounce((event)=>{
28
- const { isOutside, tableDOMNode } = getMouseInfo(event, editorConfig.editorConfig?.lexical);
29
- if (isOutside) {
30
- setShownRow(false);
31
- setShownColumn(false);
32
- return;
33
- }
34
- if (!tableDOMNode) {
35
- return;
15
+ function TableHoverActionsContainer(t0) {
16
+ const $ = _c(14);
17
+ const {
18
+ anchorElem
19
+ } = t0;
20
+ const [editor] = useLexicalComposerContext();
21
+ const editorConfig = useEditorConfigContext();
22
+ const [isShownRow, setShownRow] = useState(false);
23
+ const [isShownColumn, setShownColumn] = useState(false);
24
+ const [shouldListenMouseMove, setShouldListenMouseMove] = useState(false);
25
+ let t1;
26
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
27
+ t1 = {};
28
+ $[0] = t1;
29
+ } else {
30
+ t1 = $[0];
31
+ }
32
+ const [position, setPosition] = useState(t1);
33
+ let t2;
34
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
35
+ t2 = new Set();
36
+ $[1] = t2;
37
+ } else {
38
+ t2 = $[1];
39
+ }
40
+ const codeSetRef = useRef(t2);
41
+ const tableDOMNodeRef = useRef(null);
42
+ const debouncedOnMouseMove = useDebounce(event => {
43
+ const {
44
+ isOutside,
45
+ tableDOMNode
46
+ } = getMouseInfo(event, editorConfig.editorConfig?.lexical);
47
+ if (isOutside) {
48
+ setShownRow(false);
49
+ setShownColumn(false);
50
+ return;
51
+ }
52
+ if (!tableDOMNode) {
53
+ return;
54
+ }
55
+ tableDOMNodeRef.current = tableDOMNode;
56
+ let hoveredRowNode;
57
+ hoveredRowNode = null;
58
+ let hoveredColumnNode;
59
+ hoveredColumnNode = null;
60
+ let tableDOMElement;
61
+ tableDOMElement = null;
62
+ editor.update(() => {
63
+ const maybeTableCell = $getNearestNodeFromDOMNode(tableDOMNode);
64
+ if ($isTableCellNode(maybeTableCell)) {
65
+ const table = $findMatchingParent(maybeTableCell, node => $isTableNode(node));
66
+ if (!$isTableNode(table)) {
67
+ return;
36
68
  }
37
- tableDOMNodeRef.current = tableDOMNode;
38
- let hoveredRowNode = null;
39
- let hoveredColumnNode = null;
40
- let tableDOMElement = null;
41
- editor.update(()=>{
42
- const maybeTableCell = $getNearestNodeFromDOMNode(tableDOMNode);
43
- if ($isTableCellNode(maybeTableCell)) {
44
- const table = $findMatchingParent(maybeTableCell, (node)=>$isTableNode(node));
45
- if (!$isTableNode(table)) {
46
- return;
47
- }
48
- tableDOMElement = editor.getElementByKey(table?.getKey());
49
- if (tableDOMElement) {
50
- const rowCount = table.getChildrenSize();
51
- const colCount = // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
52
- table.getChildAtIndex(0)?.getChildrenSize();
53
- const rowIndex = $getTableRowIndexFromTableCellNode(maybeTableCell);
54
- const colIndex = $getTableColumnIndexFromTableCellNode(maybeTableCell);
55
- if (rowIndex === rowCount - 1) {
56
- hoveredRowNode = maybeTableCell;
57
- } else if (colIndex === colCount - 1) {
58
- hoveredColumnNode = maybeTableCell;
59
- }
60
- }
61
- }
62
- });
69
+ tableDOMElement = editor.getElementByKey(table?.getKey());
63
70
  if (tableDOMElement) {
64
- const { bottom: tableElemBottom, height: tableElemHeight, right: tableElemRight, width: tableElemWidth, x: tableElemX, y: tableElemY } = tableDOMElement.getBoundingClientRect();
65
- const { left: editorElemLeft, y: editorElemY } = anchorElem.getBoundingClientRect();
66
- if (hoveredRowNode) {
67
- setShownColumn(false);
68
- setShownRow(true);
69
- setPosition({
70
- height: BUTTON_WIDTH_PX,
71
- left: tableElemX - editorElemLeft,
72
- top: tableElemBottom - editorElemY + 5,
73
- width: tableElemWidth
74
- });
75
- } else if (hoveredColumnNode) {
76
- setShownColumn(true);
77
- setShownRow(false);
78
- setPosition({
79
- height: tableElemHeight,
80
- left: tableElemRight - editorElemLeft + 5,
81
- top: tableElemY - editorElemY,
82
- width: BUTTON_WIDTH_PX
83
- });
71
+ const rowCount = table.getChildrenSize();
72
+ const colCount = table.getChildAtIndex(0)?.getChildrenSize();
73
+ const rowIndex = $getTableRowIndexFromTableCellNode(maybeTableCell);
74
+ const colIndex = $getTableColumnIndexFromTableCellNode(maybeTableCell);
75
+ if (rowIndex === rowCount - 1) {
76
+ hoveredRowNode = maybeTableCell;
77
+ } else {
78
+ if (colIndex === colCount - 1) {
79
+ hoveredColumnNode = maybeTableCell;
84
80
  }
81
+ }
85
82
  }
86
- }, 50, 250);
87
- useEffect(()=>{
88
- if (!shouldListenMouseMove) {
89
- return;
90
- }
91
- document.addEventListener('mousemove', debouncedOnMouseMove);
92
- return ()=>{
93
- setShownRow(false);
94
- setShownColumn(false);
95
- document.removeEventListener('mousemove', debouncedOnMouseMove);
96
- };
97
- }, [
98
- shouldListenMouseMove,
99
- debouncedOnMouseMove
100
- ]);
101
- useEffect(()=>{
102
- return mergeRegister(editor.registerMutationListener(TableNode, (mutations)=>{
103
- editor.getEditorState().read(()=>{
104
- for (const [key, type] of mutations){
105
- switch(type){
106
- case 'created':
107
- codeSetRef.current.add(key);
108
- setShouldListenMouseMove(codeSetRef.current.size > 0);
109
- break;
110
- case 'destroyed':
111
- codeSetRef.current.delete(key);
112
- setShouldListenMouseMove(codeSetRef.current.size > 0);
113
- break;
114
- default:
115
- break;
116
- }
117
- }
118
- });
119
- }, {
120
- skipInitialization: false
121
- }));
122
- }, [
123
- editor
124
- ]);
125
- const insertAction = (insertRow)=>{
126
- editor.update(()=>{
127
- if (tableDOMNodeRef.current) {
128
- const maybeTableNode = $getNearestNodeFromDOMNode(tableDOMNodeRef.current);
129
- maybeTableNode?.selectEnd();
130
- if (insertRow) {
131
- $insertTableRow__EXPERIMENTAL();
132
- setShownRow(false);
133
- } else {
134
- $insertTableColumn__EXPERIMENTAL();
135
- setShownColumn(false);
136
- }
137
- }
83
+ }
84
+ });
85
+ if (tableDOMElement) {
86
+ const {
87
+ bottom: tableElemBottom,
88
+ height: tableElemHeight,
89
+ right: tableElemRight,
90
+ width: tableElemWidth,
91
+ x: tableElemX,
92
+ y: tableElemY
93
+ } = tableDOMElement.getBoundingClientRect();
94
+ const {
95
+ left: editorElemLeft,
96
+ y: editorElemY
97
+ } = anchorElem.getBoundingClientRect();
98
+ if (hoveredRowNode) {
99
+ setShownColumn(false);
100
+ setShownRow(true);
101
+ setPosition({
102
+ height: BUTTON_WIDTH_PX,
103
+ left: tableElemX - editorElemLeft,
104
+ top: tableElemBottom - editorElemY + 5,
105
+ width: tableElemWidth
138
106
  });
107
+ } else {
108
+ if (hoveredColumnNode) {
109
+ setShownColumn(true);
110
+ setShownRow(false);
111
+ setPosition({
112
+ height: tableElemHeight,
113
+ left: tableElemRight - editorElemLeft + 5,
114
+ top: tableElemY - editorElemY,
115
+ width: BUTTON_WIDTH_PX
116
+ });
117
+ }
118
+ }
119
+ }
120
+ }, 50, 250);
121
+ let t3;
122
+ let t4;
123
+ if ($[2] !== shouldListenMouseMove || $[3] !== debouncedOnMouseMove) {
124
+ t3 = () => {
125
+ if (!shouldListenMouseMove) {
126
+ return;
127
+ }
128
+ document.addEventListener("mousemove", debouncedOnMouseMove);
129
+ return () => {
130
+ setShownRow(false);
131
+ setShownColumn(false);
132
+ document.removeEventListener("mousemove", debouncedOnMouseMove);
133
+ };
139
134
  };
140
- return /*#__PURE__*/ _jsxs(_Fragment, {
141
- children: [
142
- isShownRow && /*#__PURE__*/ _jsx("button", {
143
- className: editorConfig.editorConfig.lexical.theme.tableAddRows,
144
- onClick: ()=>insertAction(true),
145
- style: {
146
- ...position
147
- }
148
- }),
149
- isShownColumn && /*#__PURE__*/ _jsx("button", {
150
- className: editorConfig.editorConfig.lexical.theme.tableAddColumns,
151
- onClick: ()=>insertAction(false),
152
- style: {
153
- ...position
154
- }
155
- })
156
- ]
135
+ t4 = [shouldListenMouseMove, debouncedOnMouseMove];
136
+ $[2] = shouldListenMouseMove;
137
+ $[3] = debouncedOnMouseMove;
138
+ $[4] = t3;
139
+ $[5] = t4;
140
+ } else {
141
+ t3 = $[4];
142
+ t4 = $[5];
143
+ }
144
+ useEffect(t3, t4);
145
+ let t5;
146
+ let t6;
147
+ if ($[6] !== editor) {
148
+ t5 = () => mergeRegister(editor.registerMutationListener(TableNode, mutations => {
149
+ editor.getEditorState().read(() => {
150
+ for (const [key, type] of mutations) {
151
+ bb61: switch (type) {
152
+ case "created":
153
+ {
154
+ codeSetRef.current.add(key);
155
+ setShouldListenMouseMove(codeSetRef.current.size > 0);
156
+ break bb61;
157
+ }
158
+ case "destroyed":
159
+ {
160
+ codeSetRef.current.delete(key);
161
+ setShouldListenMouseMove(codeSetRef.current.size > 0);
162
+ break bb61;
163
+ }
164
+ default:
165
+ {}
166
+ }
167
+ }
168
+ });
169
+ }, {
170
+ skipInitialization: false
171
+ }));
172
+ t6 = [editor];
173
+ $[6] = editor;
174
+ $[7] = t5;
175
+ $[8] = t6;
176
+ } else {
177
+ t5 = $[7];
178
+ t6 = $[8];
179
+ }
180
+ useEffect(t5, t6);
181
+ const insertAction = insertRow => {
182
+ editor.update(() => {
183
+ if (tableDOMNodeRef.current) {
184
+ const maybeTableNode = $getNearestNodeFromDOMNode(tableDOMNodeRef.current);
185
+ maybeTableNode?.selectEnd();
186
+ if (insertRow) {
187
+ $insertTableRow__EXPERIMENTAL();
188
+ setShownRow(false);
189
+ } else {
190
+ $insertTableColumn__EXPERIMENTAL();
191
+ setShownColumn(false);
192
+ }
193
+ }
194
+ });
195
+ };
196
+ const t7 = _jsxs;
197
+ const t8 = _Fragment;
198
+ const t9 = isShownRow && _jsx("button", {
199
+ className: editorConfig.editorConfig.lexical.theme.tableAddRows,
200
+ onClick: () => insertAction(true),
201
+ style: {
202
+ ...position
203
+ }
204
+ });
205
+ const t10 = isShownColumn && _jsx("button", {
206
+ className: editorConfig.editorConfig.lexical.theme.tableAddColumns,
207
+ onClick: () => insertAction(false),
208
+ style: {
209
+ ...position
210
+ }
211
+ });
212
+ let t11;
213
+ if ($[9] !== t9 || $[10] !== t10 || $[11] !== t7 || $[12] !== t8) {
214
+ t11 = t7(t8, {
215
+ children: [t9, t10]
157
216
  });
217
+ $[9] = t9;
218
+ $[10] = t10;
219
+ $[11] = t7;
220
+ $[12] = t8;
221
+ $[13] = t11;
222
+ } else {
223
+ t11 = $[13];
224
+ }
225
+ return t11;
158
226
  }
159
227
  function getMouseInfo(event, editorConfig) {
160
- const target = event.target;
161
- if (target && target instanceof HTMLElement) {
162
- const tableDOMNode = target.closest(`td.${editorConfig.theme.tableCell}, th.${editorConfig.theme.tableCell}`);
163
- const isOutside = !(tableDOMNode || target.closest(`button.${editorConfig.theme.tableAddRows}`) || target.closest(`button.${editorConfig.theme.tableAddColumns}`) || target.closest(`div.${editorConfig.theme.tableCellResizer}`));
164
- return {
165
- isOutside,
166
- tableDOMNode
167
- };
168
- } else {
169
- return {
170
- isOutside: true,
171
- tableDOMNode: null
172
- };
173
- }
228
+ const target = event.target;
229
+ if (target && target instanceof HTMLElement) {
230
+ const tableDOMNode = target.closest(`td.${editorConfig.theme.tableCell}, th.${editorConfig.theme.tableCell}`);
231
+ const isOutside = !(tableDOMNode || target.closest(`button.${editorConfig.theme.tableAddRows}`) || target.closest(`button.${editorConfig.theme.tableAddColumns}`) || target.closest(`div.${editorConfig.theme.tableCellResizer}`));
232
+ return {
233
+ isOutside,
234
+ tableDOMNode
235
+ };
236
+ } else {
237
+ return {
238
+ isOutside: true,
239
+ tableDOMNode: null
240
+ };
241
+ }
174
242
  }
175
- export function TableHoverActionsPlugin({ anchorElem = document.body }) {
176
- return /*#__PURE__*/ createPortal(/*#__PURE__*/ _jsx(TableHoverActionsContainer, {
177
- anchorElem: anchorElem
178
- }), anchorElem);
243
+ export function TableHoverActionsPlugin({
244
+ anchorElem = document.body
245
+ }) {
246
+ return /*#__PURE__*/createPortal( /*#__PURE__*/_jsx(TableHoverActionsContainer, {
247
+ anchorElem: anchorElem
248
+ }), anchorElem);
179
249
  }
180
-
181
250
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport type { TableCellNode, TableRowNode } from '@lexical/table'\nimport type { EditorConfig, NodeKey } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport {\n $getTableColumnIndexFromTableCellNode,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumn__EXPERIMENTAL,\n $insertTableRow__EXPERIMENTAL,\n $isTableCellNode,\n $isTableNode,\n TableNode,\n} from '@lexical/table'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode } from 'lexical'\nimport { useEffect, useRef, useState } from 'react'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { useDebounce } from '../../utils/useDebounce.js'\n\nconst BUTTON_WIDTH_PX = 20\n\nfunction TableHoverActionsContainer({ anchorElem }: { anchorElem: HTMLElement }): JSX.Element {\n const [editor] = useLexicalComposerContext()\n const editorConfig = useEditorConfigContext()\n const [isShownRow, setShownRow] = useState<boolean>(false)\n const [isShownColumn, setShownColumn] = useState<boolean>(false)\n const [shouldListenMouseMove, setShouldListenMouseMove] = useState<boolean>(false)\n const [position, setPosition] = useState({})\n const codeSetRef = useRef<Set<NodeKey>>(new Set())\n const tableDOMNodeRef = useRef<HTMLElement | null>(null)\n\n const debouncedOnMouseMove = useDebounce(\n (event: MouseEvent) => {\n const { isOutside, tableDOMNode } = getMouseInfo(event, editorConfig.editorConfig?.lexical)\n\n if (isOutside) {\n setShownRow(false)\n setShownColumn(false)\n return\n }\n\n if (!tableDOMNode) {\n return\n }\n\n tableDOMNodeRef.current = tableDOMNode\n\n let hoveredRowNode: TableCellNode | null = null\n let hoveredColumnNode: TableCellNode | null = null\n let tableDOMElement: HTMLElement | null = null\n\n editor.update(() => {\n const maybeTableCell = $getNearestNodeFromDOMNode(tableDOMNode)\n\n if ($isTableCellNode(maybeTableCell)) {\n const table = $findMatchingParent(maybeTableCell, (node) => $isTableNode(node))\n if (!$isTableNode(table)) {\n return\n }\n\n tableDOMElement = editor.getElementByKey(table?.getKey())\n\n if (tableDOMElement) {\n const rowCount = table.getChildrenSize()\n const colCount =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n ((table as TableNode).getChildAtIndex(0) as TableRowNode)?.getChildrenSize()\n\n const rowIndex = $getTableRowIndexFromTableCellNode(maybeTableCell)\n const colIndex = $getTableColumnIndexFromTableCellNode(maybeTableCell)\n\n if (rowIndex === rowCount - 1) {\n hoveredRowNode = maybeTableCell\n } else if (colIndex === colCount - 1) {\n hoveredColumnNode = maybeTableCell\n }\n }\n }\n })\n\n if (tableDOMElement) {\n const {\n bottom: tableElemBottom,\n height: tableElemHeight,\n right: tableElemRight,\n width: tableElemWidth,\n x: tableElemX,\n y: tableElemY,\n } = (tableDOMElement as HTMLTableElement).getBoundingClientRect()\n\n const { left: editorElemLeft, y: editorElemY } = anchorElem.getBoundingClientRect()\n\n if (hoveredRowNode) {\n setShownColumn(false)\n setShownRow(true)\n setPosition({\n height: BUTTON_WIDTH_PX,\n left: tableElemX - editorElemLeft,\n top: tableElemBottom - editorElemY + 5,\n width: tableElemWidth,\n })\n } else if (hoveredColumnNode) {\n setShownColumn(true)\n setShownRow(false)\n setPosition({\n height: tableElemHeight,\n left: tableElemRight - editorElemLeft + 5,\n top: tableElemY - editorElemY,\n width: BUTTON_WIDTH_PX,\n })\n }\n }\n },\n 50,\n 250,\n )\n\n useEffect(() => {\n if (!shouldListenMouseMove) {\n return\n }\n\n document.addEventListener('mousemove', debouncedOnMouseMove)\n\n return () => {\n setShownRow(false)\n setShownColumn(false)\n\n document.removeEventListener('mousemove', debouncedOnMouseMove)\n }\n }, [shouldListenMouseMove, debouncedOnMouseMove])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerMutationListener(\n TableNode,\n (mutations) => {\n editor.getEditorState().read(() => {\n for (const [key, type] of mutations) {\n switch (type) {\n case 'created':\n codeSetRef.current.add(key)\n setShouldListenMouseMove(codeSetRef.current.size > 0)\n break\n\n case 'destroyed':\n codeSetRef.current.delete(key)\n setShouldListenMouseMove(codeSetRef.current.size > 0)\n break\n\n default:\n break\n }\n }\n })\n },\n { skipInitialization: false },\n ),\n )\n }, [editor])\n\n const insertAction = (insertRow: boolean) => {\n editor.update(() => {\n if (tableDOMNodeRef.current) {\n const maybeTableNode = $getNearestNodeFromDOMNode(tableDOMNodeRef.current)\n maybeTableNode?.selectEnd()\n if (insertRow) {\n $insertTableRow__EXPERIMENTAL()\n setShownRow(false)\n } else {\n $insertTableColumn__EXPERIMENTAL()\n setShownColumn(false)\n }\n }\n })\n }\n\n return (\n <>\n {isShownRow && (\n <button\n className={editorConfig.editorConfig.lexical.theme.tableAddRows}\n onClick={() => insertAction(true)}\n style={{ ...position }}\n />\n )}\n {isShownColumn && (\n <button\n className={editorConfig.editorConfig.lexical.theme.tableAddColumns}\n onClick={() => insertAction(false)}\n style={{ ...position }}\n />\n )}\n </>\n )\n}\n\nfunction getMouseInfo(\n event: MouseEvent,\n editorConfig: EditorConfig,\n): {\n isOutside: boolean\n tableDOMNode: HTMLElement | null\n} {\n const target = event.target\n\n if (target && target instanceof HTMLElement) {\n const tableDOMNode = target.closest<HTMLElement>(\n `td.${editorConfig.theme.tableCell}, th.${editorConfig.theme.tableCell}`,\n )\n\n const isOutside = !(\n tableDOMNode ||\n target.closest<HTMLElement>(`button.${editorConfig.theme.tableAddRows}`) ||\n target.closest<HTMLElement>(`button.${editorConfig.theme.tableAddColumns}`) ||\n target.closest<HTMLElement>(`div.${editorConfig.theme.tableCellResizer}`)\n )\n\n return { isOutside, tableDOMNode }\n } else {\n return { isOutside: true, tableDOMNode: null }\n }\n}\n\nexport function TableHoverActionsPlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): React.ReactPortal | null {\n return createPortal(<TableHoverActionsContainer anchorElem={anchorElem} />, anchorElem)\n}\n"],"names":["useLexicalComposerContext","$getTableColumnIndexFromTableCellNode","$getTableRowIndexFromTableCellNode","$insertTableColumn__EXPERIMENTAL","$insertTableRow__EXPERIMENTAL","$isTableCellNode","$isTableNode","TableNode","$findMatchingParent","mergeRegister","$getNearestNodeFromDOMNode","useEffect","useRef","useState","React","createPortal","useEditorConfigContext","useDebounce","BUTTON_WIDTH_PX","TableHoverActionsContainer","anchorElem","editor","editorConfig","isShownRow","setShownRow","isShownColumn","setShownColumn","shouldListenMouseMove","setShouldListenMouseMove","position","setPosition","codeSetRef","Set","tableDOMNodeRef","debouncedOnMouseMove","event","isOutside","tableDOMNode","getMouseInfo","lexical","current","hoveredRowNode","hoveredColumnNode","tableDOMElement","update","maybeTableCell","table","node","getElementByKey","getKey","rowCount","getChildrenSize","colCount","getChildAtIndex","rowIndex","colIndex","bottom","tableElemBottom","height","tableElemHeight","right","tableElemRight","width","tableElemWidth","x","tableElemX","y","tableElemY","getBoundingClientRect","left","editorElemLeft","editorElemY","top","document","addEventListener","removeEventListener","registerMutationListener","mutations","getEditorState","read","key","type","add","size","delete","skipInitialization","insertAction","insertRow","maybeTableNode","selectEnd","button","className","theme","tableAddRows","onClick","style","tableAddColumns","target","HTMLElement","closest","tableCell","tableCellResizer","TableHoverActionsPlugin","body"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$getTableColumnIndexFromTableCellNode","$getTableRowIndexFromTableCellNode","$insertTableColumn__EXPERIMENTAL","$insertTableRow__EXPERIMENTAL","$isTableCellNode","$isTableNode","TableNode","$findMatchingParent","mergeRegister","$getNearestNodeFromDOMNode","useEffect","useRef","useState","React","createPortal","useEditorConfigContext","useDebounce","BUTTON_WIDTH_PX","TableHoverActionsContainer","t0","$","anchorElem","editor","editorConfig","isShownRow","setShownRow","isShownColumn","setShownColumn","shouldListenMouseMove","setShouldListenMouseMove","t1","Symbol","for","position","setPosition","t2","Set","codeSetRef","tableDOMNodeRef","debouncedOnMouseMove","event","isOutside","tableDOMNode","getMouseInfo","lexical","current","hoveredRowNode","hoveredColumnNode","tableDOMElement","update","maybeTableCell","table","node","getElementByKey","getKey","rowCount","getChildrenSize","colCount","getChildAtIndex","rowIndex","colIndex","bottom","tableElemBottom","height","tableElemHeight","right","tableElemRight","width","tableElemWidth","x","tableElemX","y","tableElemY","getBoundingClientRect","left","editorElemLeft","editorElemY","top","t3","t4","document","addEventListener","removeEventListener","t5","t6","registerMutationListener","mutations","getEditorState","read","key","type","bb61","add","size","delete","skipInitialization","insertAction","insertRow","maybeTableNode","selectEnd","_jsxs","_Fragment","t9","_jsx","className","theme","tableAddRows","onClick","style","t10","tableAddColumns","t11","children","target","HTMLElement","closest","tableCell","tableCellResizer","TableHoverActionsPlugin","body"],"sources":["../../../../../../src/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TableCellNode, TableRowNode } from '@lexical/table'\nimport type { EditorConfig, NodeKey } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport {\n $getTableColumnIndexFromTableCellNode,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumn__EXPERIMENTAL,\n $insertTableRow__EXPERIMENTAL,\n $isTableCellNode,\n $isTableNode,\n TableNode,\n} from '@lexical/table'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode } from 'lexical'\nimport { useEffect, useRef, useState } from 'react'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { useDebounce } from '../../utils/useDebounce.js'\n\nconst BUTTON_WIDTH_PX = 20\n\nfunction TableHoverActionsContainer({ anchorElem }: { anchorElem: HTMLElement }): JSX.Element {\n const [editor] = useLexicalComposerContext()\n const editorConfig = useEditorConfigContext()\n const [isShownRow, setShownRow] = useState<boolean>(false)\n const [isShownColumn, setShownColumn] = useState<boolean>(false)\n const [shouldListenMouseMove, setShouldListenMouseMove] = useState<boolean>(false)\n const [position, setPosition] = useState({})\n const codeSetRef = useRef<Set<NodeKey>>(new Set())\n const tableDOMNodeRef = useRef<HTMLElement | null>(null)\n\n const debouncedOnMouseMove = useDebounce(\n (event: MouseEvent) => {\n const { isOutside, tableDOMNode } = getMouseInfo(event, editorConfig.editorConfig?.lexical)\n\n if (isOutside) {\n setShownRow(false)\n setShownColumn(false)\n return\n }\n\n if (!tableDOMNode) {\n return\n }\n\n tableDOMNodeRef.current = tableDOMNode\n\n let hoveredRowNode: TableCellNode | null = null\n let hoveredColumnNode: TableCellNode | null = null\n let tableDOMElement: HTMLElement | null = null\n\n editor.update(() => {\n const maybeTableCell = $getNearestNodeFromDOMNode(tableDOMNode)\n\n if ($isTableCellNode(maybeTableCell)) {\n const table = $findMatchingParent(maybeTableCell, (node) => $isTableNode(node))\n if (!$isTableNode(table)) {\n return\n }\n\n tableDOMElement = editor.getElementByKey(table?.getKey())\n\n if (tableDOMElement) {\n const rowCount = table.getChildrenSize()\n const colCount =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n ((table as TableNode).getChildAtIndex(0) as TableRowNode)?.getChildrenSize()\n\n const rowIndex = $getTableRowIndexFromTableCellNode(maybeTableCell)\n const colIndex = $getTableColumnIndexFromTableCellNode(maybeTableCell)\n\n if (rowIndex === rowCount - 1) {\n hoveredRowNode = maybeTableCell\n } else if (colIndex === colCount - 1) {\n hoveredColumnNode = maybeTableCell\n }\n }\n }\n })\n\n if (tableDOMElement) {\n const {\n bottom: tableElemBottom,\n height: tableElemHeight,\n right: tableElemRight,\n width: tableElemWidth,\n x: tableElemX,\n y: tableElemY,\n } = (tableDOMElement as HTMLTableElement).getBoundingClientRect()\n\n const { left: editorElemLeft, y: editorElemY } = anchorElem.getBoundingClientRect()\n\n if (hoveredRowNode) {\n setShownColumn(false)\n setShownRow(true)\n setPosition({\n height: BUTTON_WIDTH_PX,\n left: tableElemX - editorElemLeft,\n top: tableElemBottom - editorElemY + 5,\n width: tableElemWidth,\n })\n } else if (hoveredColumnNode) {\n setShownColumn(true)\n setShownRow(false)\n setPosition({\n height: tableElemHeight,\n left: tableElemRight - editorElemLeft + 5,\n top: tableElemY - editorElemY,\n width: BUTTON_WIDTH_PX,\n })\n }\n }\n },\n 50,\n 250,\n )\n\n useEffect(() => {\n if (!shouldListenMouseMove) {\n return\n }\n\n document.addEventListener('mousemove', debouncedOnMouseMove)\n\n return () => {\n setShownRow(false)\n setShownColumn(false)\n\n document.removeEventListener('mousemove', debouncedOnMouseMove)\n }\n }, [shouldListenMouseMove, debouncedOnMouseMove])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerMutationListener(\n TableNode,\n (mutations) => {\n editor.getEditorState().read(() => {\n for (const [key, type] of mutations) {\n switch (type) {\n case 'created':\n codeSetRef.current.add(key)\n setShouldListenMouseMove(codeSetRef.current.size > 0)\n break\n\n case 'destroyed':\n codeSetRef.current.delete(key)\n setShouldListenMouseMove(codeSetRef.current.size > 0)\n break\n\n default:\n break\n }\n }\n })\n },\n { skipInitialization: false },\n ),\n )\n }, [editor])\n\n const insertAction = (insertRow: boolean) => {\n editor.update(() => {\n if (tableDOMNodeRef.current) {\n const maybeTableNode = $getNearestNodeFromDOMNode(tableDOMNodeRef.current)\n maybeTableNode?.selectEnd()\n if (insertRow) {\n $insertTableRow__EXPERIMENTAL()\n setShownRow(false)\n } else {\n $insertTableColumn__EXPERIMENTAL()\n setShownColumn(false)\n }\n }\n })\n }\n\n return (\n <>\n {isShownRow && (\n <button\n className={editorConfig.editorConfig.lexical.theme.tableAddRows}\n onClick={() => insertAction(true)}\n style={{ ...position }}\n />\n )}\n {isShownColumn && (\n <button\n className={editorConfig.editorConfig.lexical.theme.tableAddColumns}\n onClick={() => insertAction(false)}\n style={{ ...position }}\n />\n )}\n </>\n )\n}\n\nfunction getMouseInfo(\n event: MouseEvent,\n editorConfig: EditorConfig,\n): {\n isOutside: boolean\n tableDOMNode: HTMLElement | null\n} {\n const target = event.target\n\n if (target && target instanceof HTMLElement) {\n const tableDOMNode = target.closest<HTMLElement>(\n `td.${editorConfig.theme.tableCell}, th.${editorConfig.theme.tableCell}`,\n )\n\n const isOutside = !(\n tableDOMNode ||\n target.closest<HTMLElement>(`button.${editorConfig.theme.tableAddRows}`) ||\n target.closest<HTMLElement>(`button.${editorConfig.theme.tableAddColumns}`) ||\n target.closest<HTMLElement>(`div.${editorConfig.theme.tableCellResizer}`)\n )\n\n return { isOutside, tableDOMNode }\n } else {\n return { isOutside: true, tableDOMNode: null }\n }\n}\n\nexport function TableHoverActionsPlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): React.ReactPortal | null {\n return createPortal(<TableHoverActionsContainer anchorElem={anchorElem} />, anchorElem)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,6 @@ export declare const OPEN_TABLE_DRAWER_COMMAND: LexicalCommand<{}>;
19
19
  export declare const CellContext: React.Context<CellContextShape>;
20
20
  export declare function TableContext({ children }: {
21
21
  children: JSX.Element;
22
- }): import("react/jsx-runtime").JSX.Element;
22
+ }): JSX.Element;
23
23
  export declare const TablePlugin: PluginComponent;
24
24
  //# sourceMappingURL=index.d.ts.map