@payloadcms/richtext-lexical 3.85.0 → 4.0.0-canary.0

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 (934) hide show
  1. package/dist/cell/rscEntry.d.ts +1 -1
  2. package/dist/cell/rscEntry.d.ts.map +1 -1
  3. package/dist/cell/rscEntry.js.map +1 -1
  4. package/dist/exports/client/Field-G5Z2HM5Y.js +2 -0
  5. package/dist/exports/client/Field-G5Z2HM5Y.js.map +7 -0
  6. package/dist/exports/client/RelationshipComponent-RZL743CS.js +2 -0
  7. package/dist/exports/client/RelationshipComponent-RZL743CS.js.map +7 -0
  8. package/dist/exports/client/bundled.css +1 -1
  9. package/dist/exports/client/chunk-5VIL27GI.js +2 -0
  10. package/dist/exports/client/chunk-5VIL27GI.js.map +7 -0
  11. package/dist/exports/client/{chunk-FTT5KJ6W.js → chunk-LH634DPU.js} +1 -1
  12. package/dist/exports/client/chunk-LH634DPU.js.map +7 -0
  13. package/dist/exports/client/{chunk-BZZVLW4U.js → chunk-RJ5MAOKZ.js} +1 -1
  14. package/dist/exports/client/chunk-RJ5MAOKZ.js.map +7 -0
  15. package/dist/exports/client/chunk-UD4DQ4AK.js +2 -0
  16. package/dist/exports/client/chunk-UD4DQ4AK.js.map +7 -0
  17. package/dist/exports/client/chunk-WSAPGI3Z.js +2 -0
  18. package/dist/exports/client/chunk-WSAPGI3Z.js.map +7 -0
  19. package/dist/exports/client/chunk-XIJE2UCQ.js +2 -0
  20. package/dist/exports/client/chunk-XIJE2UCQ.js.map +7 -0
  21. package/dist/exports/client/component-KESPRYJR.js +2 -0
  22. package/dist/exports/client/component-KESPRYJR.js.map +7 -0
  23. package/dist/exports/client/componentInline-R2RSJX4K.js +2 -0
  24. package/dist/exports/client/index.d.ts +0 -2
  25. package/dist/exports/client/index.d.ts.map +1 -1
  26. package/dist/exports/client/index.js +30 -30
  27. package/dist/exports/client/index.js.map +4 -4
  28. package/dist/exports/react/index.d.ts +1 -1
  29. package/dist/exports/react/index.d.ts.map +1 -1
  30. package/dist/exports/react/index.js.map +1 -1
  31. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  32. package/dist/features/align/client/toolbarAlignGroup.js +1 -0
  33. package/dist/features/align/client/toolbarAlignGroup.js.map +1 -1
  34. package/dist/features/blockquote/server/index.d.ts +1 -1
  35. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  36. package/dist/features/blockquote/server/index.js +0 -39
  37. package/dist/features/blockquote/server/index.js.map +1 -1
  38. package/dist/features/blocks/client/component/BlockContent.d.ts +10 -0
  39. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  40. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  41. package/dist/features/blocks/client/component/index.css +178 -0
  42. package/dist/features/blocks/client/component/index.d.ts +3 -2
  43. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  44. package/dist/features/blocks/client/component/index.js +88 -24
  45. package/dist/features/blocks/client/component/index.js.map +1 -1
  46. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
  47. package/dist/features/blocks/client/componentInline/index.css +85 -0
  48. package/dist/features/blocks/client/componentInline/index.d.ts +3 -2
  49. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  50. package/dist/features/blocks/client/componentInline/index.js +33 -13
  51. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  52. package/dist/features/blocks/client/index.d.ts.map +1 -1
  53. package/dist/features/blocks/client/index.js +0 -2
  54. package/dist/features/blocks/client/index.js.map +1 -1
  55. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  56. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +1 -1
  57. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  58. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  59. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +1 -1
  60. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  61. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  62. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts +1 -1
  63. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
  64. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +3 -0
  65. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  66. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.css +26 -0
  67. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts +1 -1
  68. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts.map +1 -1
  69. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +4 -1
  70. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
  71. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +40 -0
  72. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts +1 -1
  73. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts.map +1 -1
  74. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +7 -8
  75. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
  76. package/dist/features/blocks/premade/CodeBlock/Component/index.css +171 -0
  77. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  78. package/dist/features/blocks/server/index.js +1 -1
  79. package/dist/features/blocks/server/index.js.map +1 -1
  80. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  81. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -1
  82. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  83. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  84. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +1 -1
  85. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  86. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  87. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  88. package/dist/features/converters/htmlToLexical/index.d.ts +1 -1
  89. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  90. package/dist/features/converters/htmlToLexical/index.js.map +1 -1
  91. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts +1 -1
  92. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts.map +1 -1
  93. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
  94. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts +1 -1
  95. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts.map +1 -1
  96. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  97. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts +1 -1
  98. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts.map +1 -1
  99. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
  100. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts +1 -1
  101. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts.map +1 -1
  102. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
  103. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts +1 -1
  104. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts.map +1 -1
  105. package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
  106. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts +1 -1
  107. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  108. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  109. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts +1 -1
  110. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts.map +1 -1
  111. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
  112. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts +1 -1
  113. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts.map +1 -1
  114. package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
  115. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts +1 -1
  116. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts.map +1 -1
  117. package/dist/features/converters/lexicalToHtml/async/converters/table.js +1 -1
  118. package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
  119. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts +1 -1
  120. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts.map +1 -1
  121. package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
  122. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts +1 -1
  123. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts.map +1 -1
  124. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  125. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts +1 -1
  126. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts.map +1 -1
  127. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
  128. package/dist/features/converters/lexicalToHtml/async/types.d.ts +1 -1
  129. package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -1
  130. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  131. package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
  132. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  133. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts +1 -1
  134. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts.map +1 -1
  135. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
  136. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts +1 -1
  137. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts.map +1 -1
  138. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  139. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts +1 -1
  140. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts.map +1 -1
  141. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
  142. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts +1 -1
  143. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts.map +1 -1
  144. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
  145. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts +1 -1
  146. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts.map +1 -1
  147. package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
  148. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts +1 -1
  149. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  150. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  151. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts +1 -1
  152. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts.map +1 -1
  153. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
  154. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts +1 -1
  155. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts.map +1 -1
  156. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
  157. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts +1 -1
  158. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts.map +1 -1
  159. package/dist/features/converters/lexicalToHtml/sync/converters/table.js +1 -1
  160. package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
  161. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts +1 -1
  162. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts.map +1 -1
  163. package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
  164. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts +1 -1
  165. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts.map +1 -1
  166. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  167. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts +1 -1
  168. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts.map +1 -1
  169. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
  170. package/dist/features/converters/lexicalToHtml/sync/types.d.ts +1 -1
  171. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  172. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  173. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +2 -2
  174. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  175. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  176. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts +1 -1
  177. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts.map +1 -1
  178. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  179. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts +1 -1
  180. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  181. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  182. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts +1 -1
  183. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts.map +1 -1
  184. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  185. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts +1 -1
  186. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts.map +1 -1
  187. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  188. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts +1 -1
  189. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts.map +1 -1
  190. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  191. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts +1 -1
  192. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  193. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  194. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts +1 -1
  195. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts.map +1 -1
  196. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  197. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts +1 -1
  198. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts.map +1 -1
  199. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
  200. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts +1 -1
  201. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts.map +1 -1
  202. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  203. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts +1 -1
  204. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts.map +1 -1
  205. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  206. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts +1 -1
  207. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  208. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  209. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts +1 -1
  210. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts.map +1 -1
  211. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
  212. package/dist/features/converters/lexicalToJSX/converter/index.d.ts +1 -1
  213. package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
  214. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  215. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +1 -1
  216. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  217. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  218. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  219. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +1 -1
  220. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
  221. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +1 -1
  222. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -1
  223. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  224. package/dist/features/converters/markdownToLexical/index.d.ts +1 -1
  225. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  226. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  227. package/dist/features/debug/jsxConverter/client/plugin/index.d.ts +1 -1
  228. package/dist/features/debug/jsxConverter/client/plugin/index.d.ts.map +1 -1
  229. package/dist/features/debug/jsxConverter/client/plugin/index.js +1 -0
  230. package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
  231. package/dist/features/debug/jsxConverter/client/plugin/style.css +9 -0
  232. package/dist/features/debug/testRecorder/client/plugin/index.css +51 -0
  233. package/dist/features/debug/testRecorder/client/plugin/index.d.ts +1 -1
  234. package/dist/features/debug/testRecorder/client/plugin/index.d.ts.map +1 -1
  235. package/dist/features/debug/testRecorder/client/plugin/index.js +1 -0
  236. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  237. package/dist/features/debug/treeView/client/plugin/index.css +81 -0
  238. package/dist/features/debug/treeView/client/plugin/index.d.ts +1 -1
  239. package/dist/features/debug/treeView/client/plugin/index.d.ts.map +1 -1
  240. package/dist/features/debug/treeView/client/plugin/index.js +1 -0
  241. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
  242. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.css +91 -0
  243. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts +1 -1
  244. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -1
  245. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +3 -2
  246. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  247. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.css +11 -0
  248. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts +1 -1
  249. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -1
  250. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +1 -0
  251. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  252. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +1 -1
  253. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  254. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.css +166 -0
  255. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts +17 -0
  256. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  257. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js +219 -0
  258. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  259. package/dist/features/experimental_table/client/plugins/TablePlugin/index.css +235 -0
  260. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts +1 -1
  261. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
  262. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +95 -104
  263. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  264. package/dist/features/experimental_table/server/index.d.ts +1 -1
  265. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  266. package/dist/features/experimental_table/server/index.js +0 -102
  267. package/dist/features/experimental_table/server/index.js.map +1 -1
  268. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  269. package/dist/features/heading/server/index.d.ts +1 -1
  270. package/dist/features/heading/server/index.d.ts.map +1 -1
  271. package/dist/features/heading/server/index.js +0 -39
  272. package/dist/features/heading/server/index.js.map +1 -1
  273. package/dist/features/horizontalRule/client/plugin/index.css +25 -0
  274. package/dist/features/horizontalRule/client/plugin/index.d.ts +1 -1
  275. package/dist/features/horizontalRule/client/plugin/index.d.ts.map +1 -1
  276. package/dist/features/horizontalRule/client/plugin/index.js +73 -4
  277. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  278. package/dist/features/horizontalRule/server/index.d.ts.map +1 -1
  279. package/dist/features/horizontalRule/server/index.js +0 -8
  280. package/dist/features/horizontalRule/server/index.js.map +1 -1
  281. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
  282. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  283. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  284. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  285. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  286. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  287. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +28 -8
  288. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  289. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +112 -0
  290. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts +1 -1
  291. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -1
  292. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +1 -0
  293. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  294. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  295. package/dist/features/link/nodes/types.d.ts +1 -1
  296. package/dist/features/link/nodes/types.d.ts.map +1 -1
  297. package/dist/features/link/nodes/types.js.map +1 -1
  298. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  299. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  300. package/dist/features/link/server/index.d.ts.map +1 -1
  301. package/dist/features/link/server/index.js +0 -71
  302. package/dist/features/link/server/index.js.map +1 -1
  303. package/dist/features/link/server/validate.d.ts.map +1 -1
  304. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  305. package/dist/features/lists/checklist/server/index.js +0 -7
  306. package/dist/features/lists/checklist/server/index.js.map +1 -1
  307. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  308. package/dist/features/lists/orderedList/server/index.js +0 -7
  309. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  310. package/dist/features/lists/plugin/index.d.ts +1 -1
  311. package/dist/features/lists/plugin/index.d.ts.map +1 -1
  312. package/dist/features/lists/plugin/index.js.map +1 -1
  313. package/dist/features/lists/shared/markdown.d.ts.map +1 -1
  314. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  315. package/dist/features/lists/unorderedList/server/index.js +0 -7
  316. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  317. package/dist/features/relationship/client/components/RelationshipComponent.d.ts +1 -1
  318. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  319. package/dist/features/relationship/client/components/RelationshipComponent.js +29 -4
  320. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  321. package/dist/features/relationship/client/components/index.css +112 -0
  322. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  323. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  324. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  325. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -1
  326. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  327. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  328. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
  329. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
  330. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
  331. package/dist/features/toolbars/fixed/client/Toolbar/index.css +87 -0
  332. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts +1 -1
  333. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  334. package/dist/features/toolbars/fixed/client/Toolbar/index.js +1 -0
  335. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  336. package/dist/features/toolbars/inline/client/Toolbar/index.css +43 -0
  337. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts +1 -1
  338. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  339. package/dist/features/toolbars/inline/client/Toolbar/index.js +1 -0
  340. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  341. package/dist/features/toolbars/shared/ToolbarButton/index.css +57 -0
  342. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts +1 -1
  343. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  344. package/dist/features/toolbars/shared/ToolbarButton/index.js +80 -74
  345. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  346. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  347. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +5 -2
  348. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  349. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +214 -0
  350. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +1 -1
  351. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  352. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +11 -7
  353. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  354. package/dist/features/toolbars/types.d.ts +5 -1
  355. package/dist/features/toolbars/types.d.ts.map +1 -1
  356. package/dist/features/toolbars/types.js.map +1 -1
  357. package/dist/features/typesClient.d.ts +1 -1
  358. package/dist/features/typesClient.d.ts.map +1 -1
  359. package/dist/features/typesClient.js.map +1 -1
  360. package/dist/features/typesServer.d.ts +3 -20
  361. package/dist/features/typesServer.d.ts.map +1 -1
  362. package/dist/features/typesServer.js.map +1 -1
  363. package/dist/features/upload/client/component/index.css +214 -0
  364. package/dist/features/upload/client/component/index.d.ts +1 -1
  365. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  366. package/dist/features/upload/client/component/index.js +86 -63
  367. package/dist/features/upload/client/component/index.js.map +1 -1
  368. package/dist/features/upload/client/component/pending/index.d.ts +0 -1
  369. package/dist/features/upload/client/component/pending/index.d.ts.map +1 -1
  370. package/dist/features/upload/client/component/pending/index.js.map +1 -1
  371. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  372. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  373. package/dist/features/upload/server/index.d.ts.map +1 -1
  374. package/dist/features/upload/server/index.js +0 -78
  375. package/dist/features/upload/server/index.js.map +1 -1
  376. package/dist/features/upload/server/nodes/UploadNode.d.ts +1 -1
  377. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  378. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  379. package/dist/features/upload/server/validate.d.ts.map +1 -1
  380. package/dist/field/Diff/converters/link.d.ts +1 -1
  381. package/dist/field/Diff/converters/link.d.ts.map +1 -1
  382. package/dist/field/Diff/converters/link.js.map +1 -1
  383. package/dist/field/Diff/converters/listitem/index.css +80 -0
  384. package/dist/field/Diff/converters/listitem/index.d.ts +2 -2
  385. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  386. package/dist/field/Diff/converters/listitem/index.js +1 -0
  387. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  388. package/dist/field/Diff/converters/relationship/index.css +108 -0
  389. package/dist/field/Diff/converters/relationship/index.d.ts +2 -2
  390. package/dist/field/Diff/converters/relationship/index.d.ts.map +1 -1
  391. package/dist/field/Diff/converters/relationship/index.js +11 -28
  392. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  393. package/dist/field/Diff/converters/unknown/index.css +37 -0
  394. package/dist/field/Diff/converters/unknown/index.d.ts +1 -1
  395. package/dist/field/Diff/converters/unknown/index.d.ts.map +1 -1
  396. package/dist/field/Diff/converters/unknown/index.js +1 -0
  397. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  398. package/dist/field/Diff/converters/upload/index.css +175 -0
  399. package/dist/field/Diff/converters/upload/index.d.ts +2 -2
  400. package/dist/field/Diff/converters/upload/index.d.ts.map +1 -1
  401. package/dist/field/Diff/converters/upload/index.js +7 -2
  402. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  403. package/dist/field/Diff/index.css +156 -0
  404. package/dist/field/Diff/index.d.ts +1 -1
  405. package/dist/field/Diff/index.d.ts.map +1 -1
  406. package/dist/field/Diff/index.js +1 -0
  407. package/dist/field/Diff/index.js.map +1 -1
  408. package/dist/field/Field.d.ts +3 -3
  409. package/dist/field/Field.d.ts.map +1 -1
  410. package/dist/field/Field.js +12 -11
  411. package/dist/field/Field.js.map +1 -1
  412. package/dist/field/RenderLexical/index.d.ts +2 -2
  413. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  414. package/dist/field/RenderLexical/index.js.map +1 -1
  415. package/dist/field/RichTextViewProvider.d.ts +1 -1
  416. package/dist/field/RichTextViewProvider.d.ts.map +1 -1
  417. package/dist/field/RichTextViewProvider.js.map +1 -1
  418. package/dist/field/ViewSelector.css +32 -0
  419. package/dist/field/ViewSelector.d.ts +1 -1
  420. package/dist/field/ViewSelector.d.ts.map +1 -1
  421. package/dist/field/ViewSelector.js +1 -0
  422. package/dist/field/ViewSelector.js.map +1 -1
  423. package/dist/field/bundled.css +1 -1
  424. package/dist/field/index.css +60 -0
  425. package/dist/field/index.d.ts +1 -1
  426. package/dist/field/index.d.ts.map +1 -1
  427. package/dist/field/index.js.map +1 -1
  428. package/dist/field/rscEntry.d.ts +1 -1
  429. package/dist/field/rscEntry.d.ts.map +1 -1
  430. package/dist/field/rscEntry.js.map +1 -1
  431. package/dist/hooks.d.ts +6 -0
  432. package/dist/hooks.d.ts.map +1 -0
  433. package/dist/hooks.js +548 -0
  434. package/dist/hooks.js.map +1 -0
  435. package/dist/index.d.ts +3 -13
  436. package/dist/index.d.ts.map +1 -1
  437. package/dist/index.js +20 -628
  438. package/dist/index.js.map +1 -1
  439. package/dist/lexical/LexicalEditor.css +50 -0
  440. package/dist/lexical/LexicalEditor.d.ts +1 -1
  441. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  442. package/dist/lexical/LexicalEditor.js +1 -0
  443. package/dist/lexical/LexicalEditor.js.map +1 -1
  444. package/dist/lexical/LexicalProvider.d.ts +1 -1
  445. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  446. package/dist/lexical/LexicalProvider.js.map +1 -1
  447. package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  448. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  449. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  450. package/dist/lexical/config/client/loader.d.ts +1 -1
  451. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  452. package/dist/lexical/config/client/loader.js.map +1 -1
  453. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  454. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  455. package/dist/lexical/config/client/sanitize.js.map +1 -1
  456. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  457. package/dist/lexical/config/server/loader.js +12 -9
  458. package/dist/lexical/config/server/loader.js.map +1 -1
  459. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  460. package/dist/lexical/config/server/sanitize.js +3 -9
  461. package/dist/lexical/config/server/sanitize.js.map +1 -1
  462. package/dist/lexical/config/types.d.ts +1 -1
  463. package/dist/lexical/config/types.d.ts.map +1 -1
  464. package/dist/lexical/config/types.js.map +1 -1
  465. package/dist/lexical/nodes/index.d.ts +1 -1
  466. package/dist/lexical/nodes/index.d.ts.map +1 -1
  467. package/dist/lexical/nodes/index.js.map +1 -1
  468. package/dist/lexical/plugins/DecoratorPlugin/index.css +11 -0
  469. package/dist/lexical/plugins/DecoratorPlugin/index.d.ts +1 -1
  470. package/dist/lexical/plugins/DecoratorPlugin/index.d.ts.map +1 -1
  471. package/dist/lexical/plugins/DecoratorPlugin/index.js +1 -0
  472. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  473. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +52 -0
  474. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts +1 -1
  475. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  476. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +1 -0
  477. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  478. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +1 -1
  479. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  480. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  481. package/dist/lexical/plugins/SlashMenu/index.css +65 -0
  482. package/dist/lexical/plugins/SlashMenu/index.d.ts +1 -1
  483. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  484. package/dist/lexical/plugins/SlashMenu/index.js +2 -0
  485. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  486. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +40 -0
  487. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts +1 -1
  488. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  489. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +1 -0
  490. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  491. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  492. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +84 -0
  493. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts +1 -1
  494. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  495. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +15 -8
  496. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  497. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +1 -1
  498. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  499. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  500. package/dist/lexical/theme/EditorTheme.css +359 -0
  501. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
  502. package/dist/lexical/theme/EditorTheme.js +1 -0
  503. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  504. package/dist/lexical/ui/ContentEditable.css +95 -0
  505. package/dist/lexical/ui/ContentEditable.d.ts +1 -1
  506. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
  507. package/dist/lexical/ui/ContentEditable.js +1 -0
  508. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  509. package/dist/lexical/ui/icons/Add/index.d.ts +4 -1
  510. package/dist/lexical/ui/icons/Add/index.d.ts.map +1 -1
  511. package/dist/lexical/ui/icons/Add/index.js +19 -12
  512. package/dist/lexical/ui/icons/Add/index.js.map +1 -1
  513. package/dist/lexical/ui/icons/Add/index.svg +2 -3
  514. package/dist/lexical/ui/icons/Add/light.svg +2 -3
  515. package/dist/lexical/ui/icons/AlignCenter/index.d.ts +3 -1
  516. package/dist/lexical/ui/icons/AlignCenter/index.d.ts.map +1 -1
  517. package/dist/lexical/ui/icons/AlignCenter/index.js +15 -19
  518. package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
  519. package/dist/lexical/ui/icons/AlignJustify/index.d.ts +3 -1
  520. package/dist/lexical/ui/icons/AlignJustify/index.d.ts.map +1 -1
  521. package/dist/lexical/ui/icons/AlignJustify/index.js +15 -19
  522. package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
  523. package/dist/lexical/ui/icons/AlignLeft/index.d.ts +3 -1
  524. package/dist/lexical/ui/icons/AlignLeft/index.d.ts.map +1 -1
  525. package/dist/lexical/ui/icons/AlignLeft/index.js +15 -19
  526. package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
  527. package/dist/lexical/ui/icons/AlignRight/index.d.ts +3 -1
  528. package/dist/lexical/ui/icons/AlignRight/index.d.ts.map +1 -1
  529. package/dist/lexical/ui/icons/AlignRight/index.js +15 -19
  530. package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
  531. package/dist/lexical/ui/icons/Block/index.d.ts +3 -1
  532. package/dist/lexical/ui/icons/Block/index.d.ts.map +1 -1
  533. package/dist/lexical/ui/icons/Block/index.js +13 -28
  534. package/dist/lexical/ui/icons/Block/index.js.map +1 -1
  535. package/dist/lexical/ui/icons/Blockquote/index.d.ts +3 -1
  536. package/dist/lexical/ui/icons/Blockquote/index.d.ts.map +1 -1
  537. package/dist/lexical/ui/icons/Blockquote/index.js +9 -6
  538. package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
  539. package/dist/lexical/ui/icons/Bold/index.d.ts +3 -1
  540. package/dist/lexical/ui/icons/Bold/index.d.ts.map +1 -1
  541. package/dist/lexical/ui/icons/Bold/index.js +13 -8
  542. package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
  543. package/dist/lexical/ui/icons/Checklist/index.d.ts +4 -1
  544. package/dist/lexical/ui/icons/Checklist/index.d.ts.map +1 -1
  545. package/dist/lexical/ui/icons/Checklist/index.js +17 -18
  546. package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
  547. package/dist/lexical/ui/icons/Code/index.d.ts +3 -1
  548. package/dist/lexical/ui/icons/Code/index.d.ts.map +1 -1
  549. package/dist/lexical/ui/icons/Code/index.js +15 -13
  550. package/dist/lexical/ui/icons/Code/index.js.map +1 -1
  551. package/dist/lexical/ui/icons/CodeBlock/index.d.ts +4 -1
  552. package/dist/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -1
  553. package/dist/lexical/ui/icons/CodeBlock/index.js +18 -7
  554. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
  555. package/dist/lexical/ui/icons/Collapse/index.d.ts +3 -1
  556. package/dist/lexical/ui/icons/Collapse/index.d.ts.map +1 -1
  557. package/dist/lexical/ui/icons/Collapse/index.js +10 -8
  558. package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
  559. package/dist/lexical/ui/icons/DraggableBlock/index.svg +7 -7
  560. package/dist/lexical/ui/icons/DraggableBlock/light.svg +7 -7
  561. package/dist/lexical/ui/icons/Expand/index.d.ts +5 -0
  562. package/dist/lexical/ui/icons/Expand/index.d.ts.map +1 -0
  563. package/dist/lexical/ui/icons/Expand/index.js +22 -0
  564. package/dist/lexical/ui/icons/Expand/index.js.map +1 -0
  565. package/dist/lexical/ui/icons/H1/index.d.ts +3 -1
  566. package/dist/lexical/ui/icons/H1/index.d.ts.map +1 -1
  567. package/dist/lexical/ui/icons/H1/index.js +9 -6
  568. package/dist/lexical/ui/icons/H1/index.js.map +1 -1
  569. package/dist/lexical/ui/icons/H2/index.d.ts +3 -1
  570. package/dist/lexical/ui/icons/H2/index.d.ts.map +1 -1
  571. package/dist/lexical/ui/icons/H2/index.js +9 -6
  572. package/dist/lexical/ui/icons/H2/index.js.map +1 -1
  573. package/dist/lexical/ui/icons/H3/index.d.ts +3 -1
  574. package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
  575. package/dist/lexical/ui/icons/H3/index.js +9 -6
  576. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  577. package/dist/lexical/ui/icons/H4/index.d.ts +3 -1
  578. package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
  579. package/dist/lexical/ui/icons/H4/index.js +9 -6
  580. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  581. package/dist/lexical/ui/icons/H5/index.d.ts +3 -1
  582. package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
  583. package/dist/lexical/ui/icons/H5/index.js +9 -6
  584. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  585. package/dist/lexical/ui/icons/H6/index.d.ts +3 -1
  586. package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
  587. package/dist/lexical/ui/icons/H6/index.js +9 -6
  588. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  589. package/dist/lexical/ui/icons/HorizontalRule/index.d.ts +3 -1
  590. package/dist/lexical/ui/icons/HorizontalRule/index.d.ts.map +1 -1
  591. package/dist/lexical/ui/icons/HorizontalRule/index.js +11 -11
  592. package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
  593. package/dist/lexical/ui/icons/IndentDecrease/index.d.ts +3 -1
  594. package/dist/lexical/ui/icons/IndentDecrease/index.d.ts.map +1 -1
  595. package/dist/lexical/ui/icons/IndentDecrease/index.js +18 -22
  596. package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
  597. package/dist/lexical/ui/icons/IndentIncrease/index.d.ts +3 -1
  598. package/dist/lexical/ui/icons/IndentIncrease/index.d.ts.map +1 -1
  599. package/dist/lexical/ui/icons/IndentIncrease/index.js +15 -22
  600. package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
  601. package/dist/lexical/ui/icons/InlineBlocks/index.d.ts +3 -1
  602. package/dist/lexical/ui/icons/InlineBlocks/index.d.ts.map +1 -1
  603. package/dist/lexical/ui/icons/InlineBlocks/index.js +9 -6
  604. package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
  605. package/dist/lexical/ui/icons/Italic/index.d.ts +3 -1
  606. package/dist/lexical/ui/icons/Italic/index.d.ts.map +1 -1
  607. package/dist/lexical/ui/icons/Italic/index.js +13 -8
  608. package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
  609. package/dist/lexical/ui/icons/Link/index.d.ts +4 -1
  610. package/dist/lexical/ui/icons/Link/index.d.ts.map +1 -1
  611. package/dist/lexical/ui/icons/Link/index.js +14 -9
  612. package/dist/lexical/ui/icons/Link/index.js.map +1 -1
  613. package/dist/lexical/ui/icons/Meatballs/index.d.ts +4 -1
  614. package/dist/lexical/ui/icons/Meatballs/index.d.ts.map +1 -1
  615. package/dist/lexical/ui/icons/Meatballs/index.js +19 -15
  616. package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
  617. package/dist/lexical/ui/icons/OrderedList/index.d.ts +4 -1
  618. package/dist/lexical/ui/icons/OrderedList/index.d.ts.map +1 -1
  619. package/dist/lexical/ui/icons/OrderedList/index.js +19 -25
  620. package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
  621. package/dist/lexical/ui/icons/Page/index.d.ts +5 -0
  622. package/dist/lexical/ui/icons/Page/index.d.ts.map +1 -0
  623. package/dist/lexical/ui/icons/Page/index.js +21 -0
  624. package/dist/lexical/ui/icons/Page/index.js.map +1 -0
  625. package/dist/lexical/ui/icons/Relationship/index.d.ts +3 -1
  626. package/dist/lexical/ui/icons/Relationship/index.d.ts.map +1 -1
  627. package/dist/lexical/ui/icons/Relationship/index.js +13 -25
  628. package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
  629. package/dist/lexical/ui/icons/Strikethrough/index.d.ts +3 -1
  630. package/dist/lexical/ui/icons/Strikethrough/index.d.ts.map +1 -1
  631. package/dist/lexical/ui/icons/Strikethrough/index.js +13 -13
  632. package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
  633. package/dist/lexical/ui/icons/Subscript/index.d.ts +3 -1
  634. package/dist/lexical/ui/icons/Subscript/index.d.ts.map +1 -1
  635. package/dist/lexical/ui/icons/Subscript/index.js +10 -7
  636. package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
  637. package/dist/lexical/ui/icons/Superscript/index.d.ts +3 -1
  638. package/dist/lexical/ui/icons/Superscript/index.d.ts.map +1 -1
  639. package/dist/lexical/ui/icons/Superscript/index.js +10 -7
  640. package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
  641. package/dist/lexical/ui/icons/Table/index.d.ts +4 -1
  642. package/dist/lexical/ui/icons/Table/index.d.ts.map +1 -1
  643. package/dist/lexical/ui/icons/Table/index.js +20 -15
  644. package/dist/lexical/ui/icons/Table/index.js.map +1 -1
  645. package/dist/lexical/ui/icons/Text/index.d.ts +4 -1
  646. package/dist/lexical/ui/icons/Text/index.d.ts.map +1 -1
  647. package/dist/lexical/ui/icons/Text/index.js +17 -8
  648. package/dist/lexical/ui/icons/Text/index.js.map +1 -1
  649. package/dist/lexical/ui/icons/Trash/index.d.ts +10 -0
  650. package/dist/lexical/ui/icons/Trash/index.d.ts.map +1 -0
  651. package/dist/lexical/ui/icons/Trash/index.js +29 -0
  652. package/dist/lexical/ui/icons/Trash/index.js.map +1 -0
  653. package/dist/lexical/ui/icons/Underline/index.d.ts +3 -1
  654. package/dist/lexical/ui/icons/Underline/index.d.ts.map +1 -1
  655. package/dist/lexical/ui/icons/Underline/index.js +16 -14
  656. package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
  657. package/dist/lexical/ui/icons/UnorderedList/index.d.ts +3 -1
  658. package/dist/lexical/ui/icons/UnorderedList/index.d.ts.map +1 -1
  659. package/dist/lexical/ui/icons/UnorderedList/index.js +13 -40
  660. package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
  661. package/dist/lexical/ui/icons/Upload/index.d.ts +3 -1
  662. package/dist/lexical/ui/icons/Upload/index.d.ts.map +1 -1
  663. package/dist/lexical/ui/icons/Upload/index.js +15 -22
  664. package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
  665. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  666. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  667. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  668. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  669. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
  670. package/dist/{types.d.ts → types/index.d.ts} +9 -9
  671. package/dist/types/index.d.ts.map +1 -0
  672. package/dist/types/index.js +2 -0
  673. package/dist/types/index.js.map +1 -0
  674. package/dist/{nodeTypes.d.ts → types/nodeTypes.d.ts} +10 -10
  675. package/dist/types/nodeTypes.d.ts.map +1 -0
  676. package/dist/types/nodeTypes.js.map +1 -0
  677. package/dist/types/schema.d.ts +6 -0
  678. package/dist/types/schema.d.ts.map +1 -0
  679. package/dist/types/schema.js +81 -0
  680. package/dist/types/schema.js.map +1 -0
  681. package/dist/utilities/buildEditorState.d.ts +1 -1
  682. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  683. package/dist/utilities/buildEditorState.js +13 -0
  684. package/dist/utilities/buildEditorState.js.map +1 -1
  685. package/dist/utilities/buildInitialState.js.map +1 -1
  686. package/dist/utilities/createClientFeature.d.ts +1 -1
  687. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  688. package/dist/utilities/createClientFeature.js.map +1 -1
  689. package/dist/utilities/editorConfigFactory.d.ts +1 -1
  690. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  691. package/dist/utilities/editorConfigFactory.js.map +1 -1
  692. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  693. package/dist/utilities/fieldsDrawer/Drawer.js +19 -10
  694. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  695. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -1
  696. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  697. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -7
  698. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  699. package/dist/utilities/fieldsDrawer/index.css +12 -0
  700. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +29 -0
  701. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -0
  702. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js +97 -0
  703. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -0
  704. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts +1 -0
  705. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  706. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +34 -18
  707. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  708. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  709. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
  710. package/dist/utilities/generateImportMap.d.ts +1 -1
  711. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  712. package/dist/utilities/generateImportMap.js.map +1 -1
  713. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  714. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  715. package/dist/utilities/initLexicalFeatures.d.ts +1 -1
  716. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
  717. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  718. package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
  719. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  720. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  721. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  722. package/dist/validate/index.d.ts.map +1 -1
  723. package/package.json +15 -20
  724. package/dist/exports/client/Component-DOSSWC76.js +0 -2
  725. package/dist/exports/client/Component-DOSSWC76.js.map +0 -7
  726. package/dist/exports/client/Component-MBLHTKDK.js +0 -2
  727. package/dist/exports/client/Component-MBLHTKDK.js.map +0 -7
  728. package/dist/exports/client/Field-OVF2FPGD.js +0 -2
  729. package/dist/exports/client/Field-OVF2FPGD.js.map +0 -7
  730. package/dist/exports/client/RelationshipComponent-BG3DPV3T.js +0 -2
  731. package/dist/exports/client/RelationshipComponent-BG3DPV3T.js.map +0 -7
  732. package/dist/exports/client/chunk-BZZVLW4U.js.map +0 -7
  733. package/dist/exports/client/chunk-F26IQ5RE.js +0 -2
  734. package/dist/exports/client/chunk-F26IQ5RE.js.map +0 -7
  735. package/dist/exports/client/chunk-FTT5KJ6W.js.map +0 -7
  736. package/dist/exports/client/chunk-INBEEENE.js +0 -2
  737. package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
  738. package/dist/exports/client/chunk-QJ5EETIB.js +0 -2
  739. package/dist/exports/client/chunk-QJ5EETIB.js.map +0 -7
  740. package/dist/exports/client/chunk-XFA5M7FY.js +0 -2
  741. package/dist/exports/client/chunk-XFA5M7FY.js.map +0 -7
  742. package/dist/exports/client/component-XIHC3W6W.js +0 -2
  743. package/dist/exports/client/component-XIHC3W6W.js.map +0 -7
  744. package/dist/exports/client/componentInline-A4H3EY3L.js +0 -2
  745. package/dist/exports/server/migrate.d.ts +0 -16
  746. package/dist/exports/server/migrate.d.ts.map +0 -1
  747. package/dist/exports/server/migrate.js +0 -16
  748. package/dist/exports/server/migrate.js.map +0 -1
  749. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.d.ts +0 -4
  750. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.d.ts.map +0 -1
  751. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js +0 -7
  752. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js.map +0 -1
  753. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.d.ts +0 -4
  754. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.d.ts.map +0 -1
  755. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js +0 -38
  756. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js.map +0 -1
  757. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.d.ts +0 -4
  758. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.d.ts.map +0 -1
  759. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js +0 -9
  760. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js.map +0 -1
  761. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.d.ts +0 -4
  762. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.d.ts.map +0 -1
  763. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js +0 -33
  764. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js.map +0 -1
  765. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.d.ts +0 -6
  766. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.d.ts.map +0 -1
  767. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js +0 -9
  768. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js.map +0 -1
  769. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.d.ts +0 -70
  770. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.d.ts.map +0 -1
  771. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js +0 -104
  772. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js.map +0 -1
  773. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.d.ts +0 -27
  774. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.d.ts.map +0 -1
  775. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js +0 -2
  776. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js.map +0 -1
  777. package/dist/features/converters/lexicalToHtml_deprecated/field/index.d.ts +0 -39
  778. package/dist/features/converters/lexicalToHtml_deprecated/field/index.d.ts.map +0 -1
  779. package/dist/features/converters/lexicalToHtml_deprecated/field/index.js +0 -122
  780. package/dist/features/converters/lexicalToHtml_deprecated/field/index.js.map +0 -1
  781. package/dist/features/converters/lexicalToHtml_deprecated/index.d.ts +0 -12
  782. package/dist/features/converters/lexicalToHtml_deprecated/index.d.ts.map +0 -1
  783. package/dist/features/converters/lexicalToHtml_deprecated/index.js +0 -11
  784. package/dist/features/converters/lexicalToHtml_deprecated/index.js.map +0 -1
  785. package/dist/features/lists/htmlConverter.d.ts +0 -5
  786. package/dist/features/lists/htmlConverter.d.ts.map +0 -1
  787. package/dist/features/lists/htmlConverter.js +0 -81
  788. package/dist/features/lists/htmlConverter.js.map +0 -1
  789. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +0 -3
  790. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +0 -1
  791. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +0 -22
  792. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +0 -1
  793. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +0 -3
  794. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +0 -1
  795. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +0 -33
  796. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +0 -1
  797. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +0 -3
  798. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +0 -1
  799. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +0 -24
  800. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +0 -1
  801. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +0 -3
  802. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +0 -1
  803. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +0 -25
  804. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +0 -1
  805. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +0 -3
  806. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +0 -1
  807. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +0 -22
  808. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +0 -1
  809. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +0 -3
  810. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +0 -1
  811. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +0 -28
  812. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +0 -1
  813. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +0 -3
  814. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +0 -1
  815. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +0 -22
  816. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +0 -1
  817. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +0 -3
  818. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +0 -1
  819. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +0 -9
  820. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +0 -1
  821. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts +0 -19
  822. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +0 -1
  823. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +0 -78
  824. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +0 -1
  825. package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts +0 -23
  826. package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts.map +0 -1
  827. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js +0 -2
  828. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +0 -1
  829. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts +0 -2
  830. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +0 -1
  831. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +0 -10
  832. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +0 -1
  833. package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts +0 -10
  834. package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +0 -1
  835. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +0 -49
  836. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +0 -1
  837. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts +0 -9
  838. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
  839. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +0 -15
  840. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +0 -1
  841. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +0 -33
  842. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
  843. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +0 -74
  844. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +0 -1
  845. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +0 -3
  846. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +0 -1
  847. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +0 -23
  848. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +0 -1
  849. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +0 -3
  850. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +0 -1
  851. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +0 -24
  852. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +0 -1
  853. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +0 -3
  854. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +0 -1
  855. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +0 -33
  856. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +0 -1
  857. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +0 -3
  858. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +0 -1
  859. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +0 -30
  860. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +0 -1
  861. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +0 -3
  862. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +0 -1
  863. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +0 -26
  864. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +0 -1
  865. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +0 -3
  866. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +0 -1
  867. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +0 -26
  868. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +0 -1
  869. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +0 -3
  870. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +0 -1
  871. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +0 -15
  872. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +0 -1
  873. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +0 -3
  874. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +0 -1
  875. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +0 -27
  876. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +0 -1
  877. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +0 -3
  878. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +0 -1
  879. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +0 -26
  880. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +0 -1
  881. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +0 -3
  882. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +0 -1
  883. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +0 -18
  884. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +0 -1
  885. package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts +0 -3
  886. package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +0 -1
  887. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +0 -12
  888. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +0 -1
  889. package/dist/features/migrations/slateToLexical/converter/index.d.ts +0 -19
  890. package/dist/features/migrations/slateToLexical/converter/index.d.ts.map +0 -1
  891. package/dist/features/migrations/slateToLexical/converter/index.js +0 -130
  892. package/dist/features/migrations/slateToLexical/converter/index.js.map +0 -1
  893. package/dist/features/migrations/slateToLexical/converter/types.d.ts +0 -16
  894. package/dist/features/migrations/slateToLexical/converter/types.d.ts.map +0 -1
  895. package/dist/features/migrations/slateToLexical/converter/types.js +0 -2
  896. package/dist/features/migrations/slateToLexical/converter/types.js.map +0 -1
  897. package/dist/features/migrations/slateToLexical/feature.client.d.ts +0 -2
  898. package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +0 -1
  899. package/dist/features/migrations/slateToLexical/feature.client.js +0 -10
  900. package/dist/features/migrations/slateToLexical/feature.client.js.map +0 -1
  901. package/dist/features/migrations/slateToLexical/feature.server.d.ts +0 -40
  902. package/dist/features/migrations/slateToLexical/feature.server.d.ts.map +0 -1
  903. package/dist/features/migrations/slateToLexical/feature.server.js +0 -68
  904. package/dist/features/migrations/slateToLexical/feature.server.js.map +0 -1
  905. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts +0 -9
  906. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
  907. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +0 -15
  908. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +0 -1
  909. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +0 -33
  910. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
  911. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +0 -74
  912. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +0 -1
  913. package/dist/lexical/ui/icons/AI/index.d.ts +0 -3
  914. package/dist/lexical/ui/icons/AI/index.d.ts.map +0 -1
  915. package/dist/lexical/ui/icons/AI/index.js +0 -34
  916. package/dist/lexical/ui/icons/AI/index.js.map +0 -1
  917. package/dist/lexical/ui/icons/Caret/index.svg +0 -3
  918. package/dist/lexical/ui/icons/Edit/index.svg +0 -10
  919. package/dist/lexical/ui/icons/Remove/index.svg +0 -4
  920. package/dist/nodeTypes.d.ts.map +0 -1
  921. package/dist/nodeTypes.js.map +0 -1
  922. package/dist/types.d.ts.map +0 -1
  923. package/dist/types.js +0 -2
  924. package/dist/types.js.map +0 -1
  925. package/dist/utilities/migrateSlateToLexical/index.d.ts +0 -15
  926. package/dist/utilities/migrateSlateToLexical/index.d.ts.map +0 -1
  927. package/dist/utilities/migrateSlateToLexical/index.js +0 -152
  928. package/dist/utilities/migrateSlateToLexical/index.js.map +0 -1
  929. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +0 -10
  930. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +0 -1
  931. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +0 -85
  932. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +0 -1
  933. /package/dist/exports/client/{componentInline-A4H3EY3L.js.map → componentInline-R2RSJX4K.js.map} +0 -0
  934. /package/dist/{nodeTypes.js → types/nodeTypes.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","$computeTableMapSkipCellCheck","$getTableNodeFromLexicalNodeOrThrow","$getTableRowIndexFromTableCellNode","$isTableCellNode","$isTableRowNode","getDOMCellFromTarget","getTableElement","TableNode","calculateZoomLevel","mergeRegister","$getNearestNodeFromDOMNode","isHTMLElement","SKIP_SCROLL_INTO_VIEW_TAG","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","useEditorConfigContext","MIN_ROW_HEIGHT","MIN_COLUMN_WIDTH","TableCellResizer","editor","targetRef","resizerRef","tableRectRef","hasTable","setHasTable","editorConfig","mouseStartPosRef","mouseCurrentPos","updateMouseCurrentPos","activeCell","updateActiveCell","isMouseDown","updateIsMouseDown","draggingDirection","updateDraggingDirection","resetState","current","isMouseDownOnEvent","event","buttons","tableKeys","Set","registerMutationListener","nodeMutations","nodeKey","mutation","delete","add","size","registerNodeTransform","tableNode","getColWidths","numColumns","getColumnCount","columnWidth","setColWidths","Array","fill","onMouseMove","target","x","clientX","y","clientY","contains","cell","getEditorState","read","tableCellNode","elem","Error","tableElement","getElementByKey","getKey","getBoundingClientRect","onMouseDown","onMouseUp","removeRootListener","registerRootListener","rootElement","prevRootElement","removeEventListener","addEventListener","isHeightChanging","direction","updateRowHeight","heightChange","update","baseRowIndex","tableRows","getChildren","isFullRowMerge","getColSpan","tableRowIndex","getRowSpan","length","tableRow","height","getHeight","undefined","rowCells","Math","min","map","getCellNodeHeight","Infinity","newHeight","max","setHeight","tag","activeEditor","domCellNode","clientHeight","getCellColumnIndex","tableMap","columnIndex","forEach","row","columnIndexInner","updateColumnWidth","widthChange","colWidths","width","newColWidths","newWidth","mouseUpHandler","handler","preventDefault","stopPropagation","zoom","document","toggleResize","resizerStyles","setResizerStyles","bottom","left","right","top","zoneWidth","styles","backgroundColor","cursor","window","scrollX","scrollY","tableRect","_jsx","ref","_jsxs","Fragment","className","lexical","theme","tableCellResizer","style","TableCellResizerPlugin","$","isEditable","t0"],"sources":["../../../../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TableCellNode, TableDOMCell, TableMapType } from '@lexical/table'\nimport type { LexicalEditor, NodeKey } 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 getTableElement,\n TableNode,\n} from '@lexical/table'\nimport { calculateZoomLevel, mergeRegister } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode, isHTMLElement, SKIP_SCROLL_INTO_VIEW_TAG } 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 './index.scss'\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 = 92\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 [hasTable, setHasTable] = useState(false)\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<null | TableDOMCell>(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 tableKeys = new Set<NodeKey>()\n return mergeRegister(\n editor.registerMutationListener(TableNode, (nodeMutations) => {\n for (const [nodeKey, mutation] of nodeMutations) {\n if (mutation === 'destroyed') {\n tableKeys.delete(nodeKey)\n } else {\n tableKeys.add(nodeKey)\n }\n }\n setHasTable(tableKeys.size > 0)\n }),\n editor.registerNodeTransform(TableNode, (tableNode) => {\n if (tableNode.getColWidths()) {\n return tableNode\n }\n\n const numColumns = tableNode.getColumnCount()\n const columnWidth = MIN_COLUMN_WIDTH\n\n tableNode.setColWidths(Array(numColumns).fill(columnWidth))\n return tableNode\n }),\n )\n }, [editor])\n\n useEffect(() => {\n if (!hasTable) {\n return\n }\n\n const onMouseMove = (event: MouseEvent) => {\n const target = event.target\n if (!isHTMLElement(target)) {\n return\n }\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)) {\n return\n }\n\n if (targetRef.current !== target) {\n targetRef.current = target\n const cell = getDOMCellFromTarget(target)\n\n if (cell && activeCell !== cell) {\n editor.getEditorState().read(\n () => {\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 = getTableElement(\n tableNode,\n editor.getElementByKey(tableNode.getKey()),\n )\n if (!tableElement) {\n throw new Error('TableCellResizer: Table element not found.')\n }\n\n targetRef.current = target\n tableRectRef.current = tableElement.getBoundingClientRect()\n updateActiveCell(cell)\n },\n { editor },\n )\n } else if (cell == null) {\n resetState()\n }\n }\n }\n\n const onMouseDown = (event: MouseEvent) => {\n updateIsMouseDown(true)\n }\n\n const onMouseUp = (event: MouseEvent) => {\n updateIsMouseDown(false)\n }\n\n const removeRootListener = editor.registerRootListener((rootElement, prevRootElement) => {\n prevRootElement?.removeEventListener('mousemove', onMouseMove)\n prevRootElement?.removeEventListener('mousedown', onMouseDown)\n prevRootElement?.removeEventListener('mouseup', onMouseUp)\n rootElement?.addEventListener('mousemove', onMouseMove)\n rootElement?.addEventListener('mousedown', onMouseDown)\n rootElement?.addEventListener('mouseup', onMouseUp)\n })\n\n return () => {\n removeRootListener()\n }\n }, [activeCell, draggingDirection, editor, hasTable, 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 baseRowIndex = $getTableRowIndexFromTableCellNode(tableCellNode)\n const tableRows = tableNode.getChildren()\n\n // Determine if this is a full row merge by checking colspan\n const isFullRowMerge = tableCellNode.getColSpan() === tableNode.getColumnCount()\n\n // For full row merges, apply to first row. For partial merges, apply to last row\n const tableRowIndex = isFullRowMerge\n ? baseRowIndex\n : baseRowIndex + tableCellNode.getRowSpan() - 1\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_TAG },\n )\n },\n [activeCell, editor],\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 let columnIndex: number | undefined\n tableMap.forEach((row) => {\n row.forEach((cell, columnIndexInner) => {\n if (cell.cell === tableCellNode) {\n columnIndex = columnIndexInner\n }\n })\n })\n return columnIndex\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 const colWidths = tableNode.getColWidths()\n if (!colWidths) {\n return\n }\n const width = colWidths[columnIndex]\n if (width === undefined) {\n return\n }\n const newColWidths = [...colWidths]\n const newWidth = Math.max(width + widthChange, MIN_COLUMN_WIDTH)\n newColWidths[columnIndex] = newWidth\n tableNode.setColWidths(newColWidths)\n },\n { tag: SKIP_SCROLL_INTO_VIEW_TAG },\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 [resizerStyles, setResizerStyles] = useState<{\n bottom?: null | React.CSSProperties\n left?: null | React.CSSProperties\n right?: null | React.CSSProperties\n top?: null | React.CSSProperties\n }>({\n bottom: null,\n left: null,\n right: null,\n top: null,\n })\n\n useEffect(() => {\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.scrollX + left}px`,\n top: `${window.scrollY + 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.scrollX + left + width - zoneWidth / 2}px`,\n top: `${window.scrollY + 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.scrollX + tableRect.left}px`\n styles[draggingDirection].top = `${window.scrollY + mouseCurrentPos.y / zoom}px`\n styles[draggingDirection].height = '3px'\n styles[draggingDirection].width = `${tableRect.width}px`\n } else {\n styles[draggingDirection].top = `${window.scrollY + tableRect.top}px`\n styles[draggingDirection].left = `${window.scrollX + 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 setResizerStyles(styles)\n } else {\n setResizerStyles({\n bottom: null,\n left: null,\n right: null,\n top: null,\n })\n }\n }, [activeCell, draggingDirection, mouseCurrentPos])\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
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","$computeTableMapSkipCellCheck","$getTableNodeFromLexicalNodeOrThrow","$getTableRowIndexFromTableCellNode","$isTableCellNode","$isTableRowNode","getDOMCellFromTarget","getTableElement","TableNode","calculateZoomLevel","mergeRegister","$getNearestNodeFromDOMNode","isHTMLElement","SKIP_SCROLL_INTO_VIEW_TAG","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","useEditorConfigContext","MIN_ROW_HEIGHT","MIN_COLUMN_WIDTH","TableCellResizer","editor","targetRef","resizerRef","tableRectRef","hasTable","setHasTable","editorConfig","mouseStartPosRef","mouseCurrentPos","updateMouseCurrentPos","activeCell","updateActiveCell","isMouseDown","updateIsMouseDown","draggingDirection","updateDraggingDirection","resetState","current","isMouseDownOnEvent","event","buttons","tableKeys","Set","registerMutationListener","nodeMutations","nodeKey","mutation","delete","add","size","registerNodeTransform","tableNode","getColWidths","numColumns","getColumnCount","columnWidth","setColWidths","Array","fill","onMouseMove","target","x","clientX","y","clientY","contains","cell","getEditorState","read","tableCellNode","elem","Error","tableElement","getElementByKey","getKey","getBoundingClientRect","onMouseDown","onMouseUp","removeRootListener","registerRootListener","rootElement","prevRootElement","removeEventListener","addEventListener","isHeightChanging","direction","updateRowHeight","heightChange","update","baseRowIndex","tableRows","getChildren","isFullRowMerge","getColSpan","tableRowIndex","getRowSpan","length","tableRow","height","getHeight","undefined","rowCells","Math","min","map","getCellNodeHeight","Infinity","newHeight","max","setHeight","tag","activeEditor","domCellNode","clientHeight","getCellColumnIndex","tableMap","columnIndex","forEach","row","columnIndexInner","updateColumnWidth","widthChange","colWidths","width","newColWidths","newWidth","mouseUpHandler","handler","preventDefault","stopPropagation","zoom","document","toggleResize","resizerStyles","setResizerStyles","bottom","left","right","top","zoneWidth","styles","backgroundColor","cursor","window","scrollX","scrollY","tableRect","_jsx","ref","_jsxs","Fragment","className","lexical","theme","tableCellResizer","style","TableCellResizerPlugin","$","isEditable","t0"],"sources":["../../../../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TableCellNode, TableDOMCell, TableMapType } from '@lexical/table'\nimport type { LexicalEditor, NodeKey } 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 getTableElement,\n TableNode,\n} from '@lexical/table'\nimport { calculateZoomLevel, mergeRegister } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode, isHTMLElement, SKIP_SCROLL_INTO_VIEW_TAG } 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 './index.css'\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 = 92\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 [hasTable, setHasTable] = useState(false)\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<null | TableDOMCell>(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 tableKeys = new Set<NodeKey>()\n return mergeRegister(\n editor.registerMutationListener(TableNode, (nodeMutations) => {\n for (const [nodeKey, mutation] of nodeMutations) {\n if (mutation === 'destroyed') {\n tableKeys.delete(nodeKey)\n } else {\n tableKeys.add(nodeKey)\n }\n }\n setHasTable(tableKeys.size > 0)\n }),\n editor.registerNodeTransform(TableNode, (tableNode) => {\n if (tableNode.getColWidths()) {\n return tableNode\n }\n\n const numColumns = tableNode.getColumnCount()\n const columnWidth = MIN_COLUMN_WIDTH\n\n tableNode.setColWidths(Array(numColumns).fill(columnWidth))\n return tableNode\n }),\n )\n }, [editor])\n\n useEffect(() => {\n if (!hasTable) {\n return\n }\n\n const onMouseMove = (event: MouseEvent) => {\n const target = event.target\n if (!isHTMLElement(target)) {\n return\n }\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)) {\n return\n }\n\n if (targetRef.current !== target) {\n targetRef.current = target\n const cell = getDOMCellFromTarget(target)\n\n if (cell && activeCell !== cell) {\n editor.getEditorState().read(\n () => {\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 = getTableElement(\n tableNode,\n editor.getElementByKey(tableNode.getKey()),\n )\n if (!tableElement) {\n throw new Error('TableCellResizer: Table element not found.')\n }\n\n targetRef.current = target\n tableRectRef.current = tableElement.getBoundingClientRect()\n updateActiveCell(cell)\n },\n { editor },\n )\n } else if (cell == null) {\n resetState()\n }\n }\n }\n\n const onMouseDown = (event: MouseEvent) => {\n updateIsMouseDown(true)\n }\n\n const onMouseUp = (event: MouseEvent) => {\n updateIsMouseDown(false)\n }\n\n const removeRootListener = editor.registerRootListener((rootElement, prevRootElement) => {\n prevRootElement?.removeEventListener('mousemove', onMouseMove)\n prevRootElement?.removeEventListener('mousedown', onMouseDown)\n prevRootElement?.removeEventListener('mouseup', onMouseUp)\n rootElement?.addEventListener('mousemove', onMouseMove)\n rootElement?.addEventListener('mousedown', onMouseDown)\n rootElement?.addEventListener('mouseup', onMouseUp)\n })\n\n return () => {\n removeRootListener()\n }\n }, [activeCell, draggingDirection, editor, hasTable, 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 baseRowIndex = $getTableRowIndexFromTableCellNode(tableCellNode)\n const tableRows = tableNode.getChildren()\n\n // Determine if this is a full row merge by checking colspan\n const isFullRowMerge = tableCellNode.getColSpan() === tableNode.getColumnCount()\n\n // For full row merges, apply to first row. For partial merges, apply to last row\n const tableRowIndex = isFullRowMerge\n ? baseRowIndex\n : baseRowIndex + tableCellNode.getRowSpan() - 1\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_TAG },\n )\n },\n [activeCell, editor],\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 let columnIndex: number | undefined\n tableMap.forEach((row) => {\n row.forEach((cell, columnIndexInner) => {\n if (cell.cell === tableCellNode) {\n columnIndex = columnIndexInner\n }\n })\n })\n return columnIndex\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 const colWidths = tableNode.getColWidths()\n if (!colWidths) {\n return\n }\n const width = colWidths[columnIndex]\n if (width === undefined) {\n return\n }\n const newColWidths = [...colWidths]\n const newWidth = Math.max(width + widthChange, MIN_COLUMN_WIDTH)\n newColWidths[columnIndex] = newWidth\n tableNode.setColWidths(newColWidths)\n },\n { tag: SKIP_SCROLL_INTO_VIEW_TAG },\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 [resizerStyles, setResizerStyles] = useState<{\n bottom?: null | React.CSSProperties\n left?: null | React.CSSProperties\n right?: null | React.CSSProperties\n top?: null | React.CSSProperties\n }>({\n bottom: null,\n left: null,\n right: null,\n top: null,\n })\n\n useEffect(() => {\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.scrollX + left}px`,\n top: `${window.scrollY + 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.scrollX + left + width - zoneWidth / 2}px`,\n top: `${window.scrollY + 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.scrollX + tableRect.left}px`\n styles[draggingDirection].top = `${window.scrollY + mouseCurrentPos.y / zoom}px`\n styles[draggingDirection].height = '3px'\n styles[draggingDirection].width = `${tableRect.width}px`\n } else {\n styles[draggingDirection].top = `${window.scrollY + tableRect.top}px`\n styles[draggingDirection].left = `${window.scrollX + 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 setResizerStyles(styles)\n } else {\n setResizerStyles({\n bottom: null,\n left: null,\n right: null,\n top: null,\n })\n }\n }, [activeCell, draggingDirection, mouseCurrentPos])\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":[]}
@@ -12,7 +12,7 @@ import * as React from 'react';
12
12
  import { createPortal } from 'react-dom';
13
13
  import { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js';
14
14
  import { useDebounce } from '../../utils/useDebounce.js';
15
- const BUTTON_WIDTH_PX = 20;
15
+ const BUTTON_WIDTH_PX = 16;
16
16
  function TableHoverActionsContainer({
17
17
  anchorElem
18
18
  }) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","$getTableAndElementByKey","$getTableColumnIndexFromTableCellNode","$getTableRowIndexFromTableCellNode","$insertTableColumnAtSelection","$insertTableRowAtSelection","$isTableCellNode","$isTableNode","getTableElement","TableNode","$findMatchingParent","mergeRegister","$getNearestNodeFromDOMNode","isHTMLElement","useEffect","useMemo","useRef","useState","React","createPortal","useEditorConfigContext","useDebounce","BUTTON_WIDTH_PX","TableHoverActionsContainer","anchorElem","editor","isEditable","editorConfig","isShownRow","setShownRow","isShownColumn","setShownColumn","shouldListenMouseMove","setShouldListenMouseMove","position","setPosition","tableSetRef","Set","tableCellDOMNodeRef","debouncedOnMouseMove","event","isOutside","tableDOMNode","getMouseInfo","lexical","current","hoveredRowNode","hoveredColumnNode","tableDOMElement","getEditorState","read","maybeTableCell","table","node","getElementByKey","getKey","rowCount","getChildrenSize","colCount","getChildAtIndex","rowIndex","colIndex","tableContainerElement","parentElement","bottom","tableElemBottom","height","tableElemHeight","left","tableElemLeft","right","tableElemRight","width","tableElemWidth","y","tableElemY","getBoundingClientRect","tableHasScroll","classList","contains","scrollWidth","clientWidth","editorElemLeft","editorElemY","offsetLeft","top","offsetWidth","tableResizeObserver","ResizeObserver","document","addEventListener","removeEventListener","registerMutationListener","mutations","resetObserver","key","type","add","delete","disconnect","tableKey","tableElement","observe","size","skipInitialization","insertAction","insertRow","update","maybeTableNode","selectEnd","_jsxs","_Fragment","_jsx","className","theme","tableAddRows","onClick","style","tableAddColumns","target","closest","tableCell","tableCellResizer","TableHoverActionsPlugin","t0","$","t1","undefined","body","t2"],"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 { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $getTableAndElementByKey,\n $getTableColumnIndexFromTableCellNode,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumnAtSelection,\n $insertTableRowAtSelection,\n $isTableCellNode,\n $isTableNode,\n getTableElement,\n TableNode,\n} from '@lexical/table'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode, isHTMLElement } from 'lexical'\nimport { useEffect, useMemo, 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({\n anchorElem,\n}: {\n anchorElem: HTMLElement\n}): JSX.Element | null {\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\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 tableSetRef = useRef<Set<NodeKey>>(new Set())\n const tableCellDOMNodeRef = 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 tableCellDOMNodeRef.current = tableDOMNode\n\n let hoveredRowNode: null | TableCellNode = null\n let hoveredColumnNode: null | TableCellNode = null\n let tableDOMElement: HTMLElement | null = null\n\n editor.getEditorState().read(\n () => {\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 = getTableElement(table, editor.getElementByKey(table.getKey()))\n\n if (tableDOMElement) {\n const rowCount = table.getChildrenSize()\n const colCount = (table.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 { editor },\n )\n\n if (!tableDOMElement) {\n return\n }\n\n // this is the scrollable div container of the table (in case of overflow)\n const tableContainerElement = (tableDOMElement as HTMLTableElement).parentElement\n\n if (!tableContainerElement) {\n return\n }\n\n const {\n bottom: tableElemBottom,\n height: tableElemHeight,\n left: tableElemLeft,\n right: tableElemRight,\n width: tableElemWidth,\n y: tableElemY,\n } = (tableDOMElement as HTMLTableElement).getBoundingClientRect()\n\n let tableHasScroll = false\n if (\n tableContainerElement &&\n tableContainerElement.classList.contains('LexicalEditorTheme__tableScrollableWrapper')\n ) {\n tableHasScroll = tableContainerElement.scrollWidth > tableContainerElement.clientWidth\n }\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:\n tableHasScroll && tableContainerElement\n ? tableContainerElement.offsetLeft\n : tableElemLeft - editorElemLeft,\n top: tableElemBottom - editorElemY + 5,\n width:\n tableHasScroll && tableContainerElement\n ? tableContainerElement.offsetWidth\n : 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 50,\n 250,\n )\n\n // Hide the buttons on any table dimensions change to prevent last row cells\n // overlap behind the 'Add Row' button when text entry changes cell height\n const tableResizeObserver = useMemo(() => {\n return new ResizeObserver(() => {\n setShownRow(false)\n setShownColumn(false)\n })\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 () => {\n let resetObserver = false\n for (const [key, type] of mutations) {\n switch (type) {\n case 'created': {\n tableSetRef.current.add(key)\n resetObserver = true\n break\n }\n case 'destroyed': {\n tableSetRef.current.delete(key)\n resetObserver = true\n break\n }\n default:\n break\n }\n }\n if (resetObserver) {\n // Reset resize observers\n tableResizeObserver.disconnect()\n for (const tableKey of tableSetRef.current) {\n const { tableElement } = $getTableAndElementByKey(tableKey)\n tableResizeObserver.observe(tableElement)\n }\n setShouldListenMouseMove(tableSetRef.current.size > 0)\n }\n },\n { editor },\n )\n },\n { skipInitialization: false },\n ),\n )\n }, [editor, tableResizeObserver])\n\n const insertAction = (insertRow: boolean) => {\n editor.update(() => {\n if (tableCellDOMNodeRef.current) {\n const maybeTableNode = $getNearestNodeFromDOMNode(tableCellDOMNodeRef.current)\n maybeTableNode?.selectEnd()\n if (insertRow) {\n $insertTableRowAtSelection()\n setShownRow(false)\n } else {\n $insertTableColumnAtSelection()\n setShownColumn(false)\n }\n }\n })\n }\n\n if (!isEditable) {\n return null\n }\n\n return (\n <>\n {isShownRow && (\n <button\n aria-label=\"Add Row\"\n className={editorConfig.editorConfig.lexical.theme.tableAddRows}\n onClick={() => insertAction(true)}\n style={{ ...position }}\n type=\"button\"\n />\n )}\n {isShownColumn && (\n <button\n aria-label=\"Add Column\"\n className={editorConfig.editorConfig.lexical.theme.tableAddColumns}\n onClick={() => insertAction(false)}\n style={{ ...position }}\n type=\"button\"\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 (isHTMLElement(target)) {\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}): null | React.ReactPortal {\n const isEditable = useLexicalEditable()\n\n if (!isEditable) {\n return null\n }\n\n return createPortal(<TableHoverActionsContainer anchorElem={anchorElem} />, anchorElem)\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAMA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,kBAAkB,QAAQ;AACnC,SACEC,wBAAwB,EACxBC,qCAAqC,EACrCC,kCAAkC,EAClCC,6BAA6B,EAC7BC,0BAA0B,EAC1BC,gBAAgB,EAChBC,YAAY,EACZC,eAAe,EACfC,SAAS,QACJ;AACP,SAASC,mBAAmB,EAAEC,aAAa,QAAQ;AACnD,SAASC,0BAA0B,EAAEC,aAAa,QAAQ;AAC1D,SAASC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AACrD,YAAYC,KAAA,MAAW;AACvB,SAASC,YAAY,QAAQ;AAE7B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,WAAW,QAAQ;AAE5B,MAAMC,eAAA,GAAkB;AAExB,SAASC,2BAA2B;EAClCC;AAAU,CAGX;EACC,MAAM,CAACC,MAAA,CAAO,GAAG1B,yBAAA;EACjB,MAAM2B,UAAA,GAAa1B,kBAAA;EAEnB,MAAM2B,YAAA,GAAeP,sBAAA;EACrB,MAAM,CAACQ,UAAA,EAAYC,WAAA,CAAY,GAAGZ,QAAA,CAAkB;EACpD,MAAM,CAACa,aAAA,EAAeC,cAAA,CAAe,GAAGd,QAAA,CAAkB;EAC1D,MAAM,CAACe,qBAAA,EAAuBC,wBAAA,CAAyB,GAAGhB,QAAA,CAAkB;EAC5E,MAAM,CAACiB,QAAA,EAAUC,WAAA,CAAY,GAAGlB,QAAA,CAAS,CAAC;EAC1C,MAAMmB,WAAA,GAAcpB,MAAA,CAAqB,IAAIqB,GAAA;EAC7C,MAAMC,mBAAA,GAAsBtB,MAAA,CAA2B;EAEvD,MAAMuB,oBAAA,GAAuBlB,WAAA,CAC1BmB,KAAA;IACC,MAAM;MAAEC,SAAS;MAAEC;IAAY,CAAE,GAAGC,YAAA,CAAaH,KAAA,EAAOb,YAAA,CAAaA,YAAY,EAAEiB,OAAA;IAEnF,IAAIH,SAAA,EAAW;MACbZ,WAAA,CAAY;MACZE,cAAA,CAAe;MACf;IACF;IAEA,IAAI,CAACW,YAAA,EAAc;MACjB;IACF;IAEAJ,mBAAA,CAAoBO,OAAO,GAAGH,YAAA;IAE9B,IAAII,cAAA,GAAuC;IAC3C,IAAIC,iBAAA,GAA0C;IAC9C,IAAIC,eAAA,GAAsC;IAE1CvB,MAAA,CAAOwB,cAAc,GAAGC,IAAI,CAC1B;MACE,MAAMC,cAAA,GAAiBvC,0BAAA,CAA2B8B,YAAA;MAElD,IAAIpC,gBAAA,CAAiB6C,cAAA,GAAiB;QACpC,MAAMC,KAAA,GAAQ1C,mBAAA,CAAoByC,cAAA,EAAiBE,IAAA,IAAS9C,YAAA,CAAa8C,IAAA;QACzE,IAAI,CAAC9C,YAAA,CAAa6C,KAAA,GAAQ;UACxB;QACF;QAEAJ,eAAA,GAAkBxC,eAAA,CAAgB4C,KAAA,EAAO3B,MAAA,CAAO6B,eAAe,CAACF,KAAA,CAAMG,MAAM;QAE5E,IAAIP,eAAA,EAAiB;UACnB,MAAMQ,QAAA,GAAWJ,KAAA,CAAMK,eAAe;UACtC,MAAMC,QAAA,GAAYN,KAAA,CAAMO,eAAe,CAAC,IAAqBF,eAAA;UAE7D,MAAMG,QAAA,GAAWzD,kCAAA,CAAmCgD,cAAA;UACpD,MAAMU,QAAA,GAAW3D,qCAAA,CAAsCiD,cAAA;UAEvD,IAAIS,QAAA,KAAaJ,QAAA,GAAW,GAAG;YAC7BV,cAAA,GAAiBK,cAAA;UACnB,OAAO,IAAIU,QAAA,KAAaH,QAAA,GAAW,GAAG;YACpCX,iBAAA,GAAoBI,cAAA;UACtB;QACF;MACF;IACF,GACA;MAAE1B;IAAO;IAGX,IAAI,CAACuB,eAAA,EAAiB;MACpB;IACF;IAEA;IACA,MAAMc,qBAAA,GAAwBd,eAAC,CAAqCe,aAAa;IAEjF,IAAI,CAACD,qBAAA,EAAuB;MAC1B;IACF;IAEA,MAAM;MACJE,MAAA,EAAQC,eAAe;MACvBC,MAAA,EAAQC,eAAe;MACvBC,IAAA,EAAMC,aAAa;MACnBC,KAAA,EAAOC,cAAc;MACrBC,KAAA,EAAOC,cAAc;MACrBC,CAAA,EAAGC;IAAU,CACd,GAAG3B,eAAC,CAAqC4B,qBAAqB;IAE/D,IAAIC,cAAA,GAAiB;IACrB,IACEf,qBAAA,IACAA,qBAAA,CAAsBgB,SAAS,CAACC,QAAQ,CAAC,+CACzC;MACAF,cAAA,GAAiBf,qBAAA,CAAsBkB,WAAW,GAAGlB,qBAAA,CAAsBmB,WAAW;IACxF;IAEA,MAAM;MAAEb,IAAA,EAAMc,cAAc;MAAER,CAAA,EAAGS;IAAW,CAAE,GAAG3D,UAAA,CAAWoD,qBAAqB;IAEjF,IAAI9B,cAAA,EAAgB;MAClBf,cAAA,CAAe;MACfF,WAAA,CAAY;MACZM,WAAA,CAAY;QACV+B,MAAA,EAAQ5C,eAAA;QACR8C,IAAA,EACES,cAAA,IAAkBf,qBAAA,GACdA,qBAAA,CAAsBsB,UAAU,GAChCf,aAAA,GAAgBa,cAAA;QACtBG,GAAA,EAAKpB,eAAA,GAAkBkB,WAAA,GAAc;QACrCX,KAAA,EACEK,cAAA,IAAkBf,qBAAA,GACdA,qBAAA,CAAsBwB,WAAW,GACjCb;MACR;IACF,OAAO,IAAI1B,iBAAA,EAAmB;MAC5BhB,cAAA,CAAe;MACfF,WAAA,CAAY;MACZM,WAAA,CAAY;QACV+B,MAAA,EAAQC,eAAA;QACRC,IAAA,EAAMG,cAAA,GAAiBW,cAAA,GAAiB;QACxCG,GAAA,EAAKV,UAAA,GAAaQ,WAAA;QAClBX,KAAA,EAAOlD;MACT;IACF;EACF,GACA,IACA;EAGF;EACA;EACA,MAAMiE,mBAAA,GAAsBxE,OAAA,CAAQ;IAClC,OAAO,IAAIyE,cAAA,CAAe;MACxB3D,WAAA,CAAY;MACZE,cAAA,CAAe;IACjB;EACF,GAAG,EAAE;EAELjB,SAAA,CAAU;IACR,IAAI,CAACkB,qBAAA,EAAuB;MAC1B;IACF;IAEAyD,QAAA,CAASC,gBAAgB,CAAC,aAAanD,oBAAA;IAEvC,OAAO;MACLV,WAAA,CAAY;MACZE,cAAA,CAAe;MAEf0D,QAAA,CAASE,mBAAmB,CAAC,aAAapD,oBAAA;IAC5C;EACF,GAAG,CAACP,qBAAA,EAAuBO,oBAAA,CAAqB;EAEhDzB,SAAA,CAAU;IACR,OAAOH,aAAA,CACLc,MAAA,CAAOmE,wBAAwB,CAC7BnF,SAAA,EACCoF,SAAA;MACCpE,MAAA,CAAOwB,cAAc,GAAGC,IAAI,CAC1B;QACE,IAAI4C,aAAA,GAAgB;QACpB,KAAK,MAAM,CAACC,GAAA,EAAKC,IAAA,CAAK,IAAIH,SAAA,EAAW;UACnC,QAAQG,IAAA;YACN,KAAK;cAAW;gBACd5D,WAAA,CAAYS,OAAO,CAACoD,GAAG,CAACF,GAAA;gBACxBD,aAAA,GAAgB;gBAChB;cACF;YACA,KAAK;cAAa;gBAChB1D,WAAA,CAAYS,OAAO,CAACqD,MAAM,CAACH,GAAA;gBAC3BD,aAAA,GAAgB;gBAChB;cACF;YACA;cACE;UACJ;QACF;QACA,IAAIA,aAAA,EAAe;UACjB;UACAP,mBAAA,CAAoBY,UAAU;UAC9B,KAAK,MAAMC,QAAA,IAAYhE,WAAA,CAAYS,OAAO,EAAE;YAC1C,MAAM;cAAEwD;YAAY,CAAE,GAAGpG,wBAAA,CAAyBmG,QAAA;YAClDb,mBAAA,CAAoBe,OAAO,CAACD,YAAA;UAC9B;UACApE,wBAAA,CAAyBG,WAAA,CAAYS,OAAO,CAAC0D,IAAI,GAAG;QACtD;MACF,GACA;QAAE9E;MAAO;IAEb,GACA;MAAE+E,kBAAA,EAAoB;IAAM;EAGlC,GAAG,CAAC/E,MAAA,EAAQ8D,mBAAA,CAAoB;EAEhC,MAAMkB,YAAA,GAAgBC,SAAA;IACpBjF,MAAA,CAAOkF,MAAM,CAAC;MACZ,IAAIrE,mBAAA,CAAoBO,OAAO,EAAE;QAC/B,MAAM+D,cAAA,GAAiBhG,0BAAA,CAA2B0B,mBAAA,CAAoBO,OAAO;QAC7E+D,cAAA,EAAgBC,SAAA;QAChB,IAAIH,SAAA,EAAW;UACbrG,0BAAA;UACAwB,WAAA,CAAY;QACd,OAAO;UACLzB,6BAAA;UACA2B,cAAA,CAAe;QACjB;MACF;IACF;EACF;EAEA,IAAI,CAACL,UAAA,EAAY;IACf,OAAO;EACT;EAEA,oBACEoF,KAAA,CAAAC,SAAA;eACGnF,UAAA,iBACCoF,IAAA,CAAC;MACC,cAAW;MACXC,SAAA,EAAWtF,YAAA,CAAaA,YAAY,CAACiB,OAAO,CAACsE,KAAK,CAACC,YAAY;MAC/DC,OAAA,EAASA,CAAA,KAAMX,YAAA,CAAa;MAC5BY,KAAA,EAAO;QAAE,GAAGnF;MAAS;MACrB8D,IAAA,EAAK;QAGRlE,aAAA,iBACCkF,IAAA,CAAC;MACC,cAAW;MACXC,SAAA,EAAWtF,YAAA,CAAaA,YAAY,CAACiB,OAAO,CAACsE,KAAK,CAACI,eAAe;MAClEF,OAAA,EAASA,CAAA,KAAMX,YAAA,CAAa;MAC5BY,KAAA,EAAO;QAAE,GAAGnF;MAAS;MACrB8D,IAAA,EAAK;;;AAKf;AAEA,SAASrD,aACPH,KAAiB,EACjBb,YAA0B;EAK1B,MAAM4F,MAAA,GAAS/E,KAAA,CAAM+E,MAAM;EAE3B,IAAI1G,aAAA,CAAc0G,MAAA,GAAS;IACzB,MAAM7E,YAAA,GAAe6E,MAAA,CAAOC,OAAO,CACjC,MAAM7F,YAAA,CAAauF,KAAK,CAACO,SAAS,QAAQ9F,YAAA,CAAauF,KAAK,CAACO,SAAS,EAAE;IAG1E,MAAMhF,SAAA,GAAY,EAChBC,YAAA,IACA6E,MAAA,CAAOC,OAAO,CAAc,UAAU7F,YAAA,CAAauF,KAAK,CAACC,YAAY,EAAE,KACvEI,MAAA,CAAOC,OAAO,CAAc,UAAU7F,YAAA,CAAauF,KAAK,CAACI,eAAe,EAAE,KAC1EC,MAAA,CAAOC,OAAO,CAAc,OAAO7F,YAAA,CAAauF,KAAK,CAACQ,gBAAgB,EAAE;IAG1E,OAAO;MAAEjF,SAAA;MAAWC;IAAa;EACnC,OAAO;IACL,OAAO;MAAED,SAAA,EAAW;MAAMC,YAAA,EAAc;IAAK;EAC/C;AACF;AAEA,OAAO,SAAAiF,wBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAA/H,EAAA;EAAiC;IAAA0B,UAAA,EAAAsG;EAAA,IAAAF,EAIvC;EAHC,MAAApG,UAAA,GAAAsG,EAA0B,KAAAC,SAAA,GAAAtC,QAAA,CAAAuC,IAAA,GAA1BF,EAA0B;EAI1B,MAAApG,UAAA,GAAmB1B,kBAAA;EAAA,KAEd0B,UAAA;IAAA;EAAA;EAAA,IAAAuG,EAAA;EAAA,IAAAJ,CAAA,QAAArG,UAAA;IAIEyG,EAAA,GAAA9G,YAAA,CAAa6F,IAAA,CAAAzF,0BAAA;MAAAC;IAAA,C,GAAwDA,UAAA;IAAAqG,CAAA,MAAArG,UAAA;IAAAqG,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAAA,OAArEI,EAAqE;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","$getTableAndElementByKey","$getTableColumnIndexFromTableCellNode","$getTableRowIndexFromTableCellNode","$insertTableColumnAtSelection","$insertTableRowAtSelection","$isTableCellNode","$isTableNode","getTableElement","TableNode","$findMatchingParent","mergeRegister","$getNearestNodeFromDOMNode","isHTMLElement","useEffect","useMemo","useRef","useState","React","createPortal","useEditorConfigContext","useDebounce","BUTTON_WIDTH_PX","TableHoverActionsContainer","anchorElem","editor","isEditable","editorConfig","isShownRow","setShownRow","isShownColumn","setShownColumn","shouldListenMouseMove","setShouldListenMouseMove","position","setPosition","tableSetRef","Set","tableCellDOMNodeRef","debouncedOnMouseMove","event","isOutside","tableDOMNode","getMouseInfo","lexical","current","hoveredRowNode","hoveredColumnNode","tableDOMElement","getEditorState","read","maybeTableCell","table","node","getElementByKey","getKey","rowCount","getChildrenSize","colCount","getChildAtIndex","rowIndex","colIndex","tableContainerElement","parentElement","bottom","tableElemBottom","height","tableElemHeight","left","tableElemLeft","right","tableElemRight","width","tableElemWidth","y","tableElemY","getBoundingClientRect","tableHasScroll","classList","contains","scrollWidth","clientWidth","editorElemLeft","editorElemY","offsetLeft","top","offsetWidth","tableResizeObserver","ResizeObserver","document","addEventListener","removeEventListener","registerMutationListener","mutations","resetObserver","key","type","add","delete","disconnect","tableKey","tableElement","observe","size","skipInitialization","insertAction","insertRow","update","maybeTableNode","selectEnd","_jsxs","_Fragment","_jsx","className","theme","tableAddRows","onClick","style","tableAddColumns","target","closest","tableCell","tableCellResizer","TableHoverActionsPlugin","t0","$","t1","undefined","body","t2"],"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 { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $getTableAndElementByKey,\n $getTableColumnIndexFromTableCellNode,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumnAtSelection,\n $insertTableRowAtSelection,\n $isTableCellNode,\n $isTableNode,\n getTableElement,\n TableNode,\n} from '@lexical/table'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode, isHTMLElement } from 'lexical'\nimport { useEffect, useMemo, 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 = 16\n\nfunction TableHoverActionsContainer({\n anchorElem,\n}: {\n anchorElem: HTMLElement\n}): JSX.Element | null {\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\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 tableSetRef = useRef<Set<NodeKey>>(new Set())\n const tableCellDOMNodeRef = 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 tableCellDOMNodeRef.current = tableDOMNode\n\n let hoveredRowNode: null | TableCellNode = null\n let hoveredColumnNode: null | TableCellNode = null\n let tableDOMElement: HTMLElement | null = null\n\n editor.getEditorState().read(\n () => {\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 = getTableElement(table, editor.getElementByKey(table.getKey()))\n\n if (tableDOMElement) {\n const rowCount = table.getChildrenSize()\n const colCount = (table.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 { editor },\n )\n\n if (!tableDOMElement) {\n return\n }\n\n // this is the scrollable div container of the table (in case of overflow)\n const tableContainerElement = (tableDOMElement as HTMLTableElement).parentElement\n\n if (!tableContainerElement) {\n return\n }\n\n const {\n bottom: tableElemBottom,\n height: tableElemHeight,\n left: tableElemLeft,\n right: tableElemRight,\n width: tableElemWidth,\n y: tableElemY,\n } = (tableDOMElement as HTMLTableElement).getBoundingClientRect()\n\n let tableHasScroll = false\n if (\n tableContainerElement &&\n tableContainerElement.classList.contains('LexicalEditorTheme__tableScrollableWrapper')\n ) {\n tableHasScroll = tableContainerElement.scrollWidth > tableContainerElement.clientWidth\n }\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:\n tableHasScroll && tableContainerElement\n ? tableContainerElement.offsetLeft\n : tableElemLeft - editorElemLeft,\n top: tableElemBottom - editorElemY + 5,\n width:\n tableHasScroll && tableContainerElement\n ? tableContainerElement.offsetWidth\n : 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 50,\n 250,\n )\n\n // Hide the buttons on any table dimensions change to prevent last row cells\n // overlap behind the 'Add Row' button when text entry changes cell height\n const tableResizeObserver = useMemo(() => {\n return new ResizeObserver(() => {\n setShownRow(false)\n setShownColumn(false)\n })\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 () => {\n let resetObserver = false\n for (const [key, type] of mutations) {\n switch (type) {\n case 'created': {\n tableSetRef.current.add(key)\n resetObserver = true\n break\n }\n case 'destroyed': {\n tableSetRef.current.delete(key)\n resetObserver = true\n break\n }\n default:\n break\n }\n }\n if (resetObserver) {\n // Reset resize observers\n tableResizeObserver.disconnect()\n for (const tableKey of tableSetRef.current) {\n const { tableElement } = $getTableAndElementByKey(tableKey)\n tableResizeObserver.observe(tableElement)\n }\n setShouldListenMouseMove(tableSetRef.current.size > 0)\n }\n },\n { editor },\n )\n },\n { skipInitialization: false },\n ),\n )\n }, [editor, tableResizeObserver])\n\n const insertAction = (insertRow: boolean) => {\n editor.update(() => {\n if (tableCellDOMNodeRef.current) {\n const maybeTableNode = $getNearestNodeFromDOMNode(tableCellDOMNodeRef.current)\n maybeTableNode?.selectEnd()\n if (insertRow) {\n $insertTableRowAtSelection()\n setShownRow(false)\n } else {\n $insertTableColumnAtSelection()\n setShownColumn(false)\n }\n }\n })\n }\n\n if (!isEditable) {\n return null\n }\n\n return (\n <>\n {isShownRow && (\n <button\n aria-label=\"Add Row\"\n className={editorConfig.editorConfig.lexical.theme.tableAddRows}\n onClick={() => insertAction(true)}\n style={{ ...position }}\n type=\"button\"\n />\n )}\n {isShownColumn && (\n <button\n aria-label=\"Add Column\"\n className={editorConfig.editorConfig.lexical.theme.tableAddColumns}\n onClick={() => insertAction(false)}\n style={{ ...position }}\n type=\"button\"\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 (isHTMLElement(target)) {\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}): null | React.ReactPortal {\n const isEditable = useLexicalEditable()\n\n if (!isEditable) {\n return null\n }\n\n return createPortal(<TableHoverActionsContainer anchorElem={anchorElem} />, anchorElem)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,166 @@
1
+ @layer payload-default {
2
+ .table-grid-popup {
3
+ position: absolute;
4
+ top: 0;
5
+ left: 0;
6
+ z-index: 100;
7
+ }
8
+
9
+ .table-grid-popup__content {
10
+ width: 13rem;
11
+ background: var(--color-bg);
12
+ border-radius: var(--radius-large);
13
+ padding: var(--spacer-2);
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: var(--spacer-2);
17
+ box-shadow:
18
+ 0px 0px 0.5px 0px rgba(0, 0, 0, 0.15),
19
+ 0px 5px 12px 0px rgba(0, 0, 0, 0.13),
20
+ 0px 1px 3px 0px rgba(0, 0, 0, 0.1);
21
+ }
22
+
23
+ .table-grid-popup__header {
24
+ display: flex;
25
+ align-items: center;
26
+ gap: var(--spacer-2);
27
+ justify-content: center;
28
+ }
29
+
30
+ .table-grid-popup__input-group {
31
+ flex: 1 0 0;
32
+ display: flex;
33
+ align-items: center;
34
+ height: var(--spacer-4);
35
+ background: var(--color-bg-secondary);
36
+ border-radius: var(--radius-medium);
37
+ overflow: clip;
38
+ min-width: 0;
39
+ border: var(--stroke-width-small) solid transparent;
40
+ }
41
+
42
+ .table-grid-popup__input-group:hover {
43
+ background: var(--color-bg-secondary-hover);
44
+ }
45
+
46
+ .table-grid-popup__input-group--focused {
47
+ border-color: var(--color-border-selected);
48
+ }
49
+
50
+ .table-grid-popup__input-icon {
51
+ width: var(--spacer-4);
52
+ height: var(--spacer-4);
53
+ flex-shrink: 0;
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ color: var(--color-text-secondary);
58
+ }
59
+
60
+ .table-grid-popup__input-icon svg {
61
+ width: var(--spacer-2-5);
62
+ height: var(--spacer-2-5);
63
+ }
64
+
65
+ .table-grid-popup__input {
66
+ flex: 1 0 0;
67
+ min-width: 0;
68
+ border: none;
69
+ background: transparent;
70
+ font-family: var(--text-body-medium-font-family);
71
+ font-size: var(--text-body-medium-font-size);
72
+ font-weight: var(--text-body-medium-font-weight);
73
+ line-height: var(--text-body-medium-line-height);
74
+ color: var(--color-text-secondary);
75
+ padding: 0;
76
+ padding-right: var(--spacer-2);
77
+ outline: none;
78
+ overflow: hidden;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ width: 100%;
82
+ }
83
+
84
+ .table-grid-popup__input::-webkit-inner-spin-button,
85
+ .table-grid-popup__input::-webkit-outer-spin-button {
86
+ -webkit-appearance: none;
87
+ margin: 0;
88
+ }
89
+
90
+ .table-grid-popup__input[type='number'] {
91
+ -moz-appearance: textfield;
92
+ }
93
+
94
+ .table-grid-popup__separator {
95
+ font-family: var(--text-body-medium-font-family);
96
+ font-size: var(--text-body-medium-font-size);
97
+ font-weight: var(--text-body-medium-font-weight);
98
+ color: var(--color-text-secondary);
99
+ flex-shrink: 0;
100
+ line-height: 1;
101
+ }
102
+
103
+ .table-grid-popup__grid {
104
+ display: grid;
105
+ grid-template-columns: repeat(10, 1fr);
106
+ grid-template-rows: repeat(7, 1fr);
107
+ row-gap: calc(var(--spacer-1) / 2);
108
+ column-gap: calc(var(--spacer-1) / 2);
109
+ flex-shrink: 0;
110
+ align-self: stretch;
111
+ position: relative;
112
+ }
113
+
114
+ .table-grid-popup__cell {
115
+ aspect-ratio: 1;
116
+ background: var(--color-bg-secondary);
117
+ border-radius: var(--radius-small);
118
+ cursor: pointer;
119
+ border: var(--stroke-width-small) solid transparent;
120
+ }
121
+
122
+ .table-grid-popup__cell--selected {
123
+ background: var(--color-bg-selected);
124
+ border-color: var(--color-blue-400);
125
+ }
126
+
127
+ .table-grid-popup__cell--hover {
128
+ background: var(--color-bg-selected-hover);
129
+ border-color: var(--color-blue-400);
130
+ }
131
+
132
+ .table-grid-popup__tooltip {
133
+ position: absolute;
134
+ background: var(--color-bg-menu);
135
+ color: var(--ramp-white-800);
136
+ font-family: var(--text-body-medium-font-family);
137
+ font-size: var(--text-body-medium-font-size);
138
+ font-weight: var(--text-body-medium-font-weight);
139
+ line-height: var(--text-body-medium-line-height);
140
+ padding: var(--spacer-1) var(--spacer-2);
141
+ border-radius: var(--radius-medium);
142
+ white-space: nowrap;
143
+ pointer-events: none;
144
+ transform: translate(-50%, calc(-100% - 6px));
145
+ z-index: 1;
146
+ }
147
+
148
+ /* .table-grid-popup__tooltip::after {
149
+ content: '';
150
+ position: absolute;
151
+ bottom: calc(var(--spacer-1) * -1);
152
+ left: 50%;
153
+ transform: translateX(-50%);
154
+ width: 0;
155
+ height: 0;
156
+ border-left: 5px solid transparent;
157
+ border-right: 5px solid transparent;
158
+ border-top: 4px solid var(--color-bg-menu);
159
+ } */
160
+
161
+ .table-grid-popup__backdrop {
162
+ position: fixed;
163
+ inset: 0;
164
+ z-index: 99;
165
+ }
166
+ }
@@ -0,0 +1,17 @@
1
+ import type { LexicalEditor } from 'lexical';
2
+ import * as React from 'react';
3
+ import './index.css';
4
+ type TableGridPopupProps = {
5
+ anchorElem: HTMLElement | null;
6
+ editor: LexicalEditor;
7
+ isOpen: boolean;
8
+ onClose: () => void;
9
+ onInsert: (cols: number, rows: number) => void;
10
+ position: {
11
+ left: number;
12
+ top: number;
13
+ } | null;
14
+ };
15
+ export declare function TableGridPopup({ anchorElem, editor: _editor, isOpen, onClose, onInsert, position, }: TableGridPopupProps): React.ReactPortal | null;
16
+ export {};
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,aAAa,CAAA;AAuBpB,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,WAAW,GAAG,IAAI,CAAA;IAC9B,MAAM,EAAE,aAAa,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC/C,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,MAAM,EAAE,OAAO,EACf,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,EAAE,mBAAmB,4BAgLrB"}
@@ -0,0 +1,219 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { useCallback, useEffect, useRef, useState } from 'react';
5
+ import * as React from 'react';
6
+ import { createPortal } from 'react-dom';
7
+ import './index.css';
8
+ const GRID_COLUMNS = 10;
9
+ const GRID_ROWS = 7;
10
+ function ColumnsIcon() {
11
+ return /*#__PURE__*/_jsxs("svg", {
12
+ fill: "none",
13
+ height: "12",
14
+ viewBox: "0 0 12 12",
15
+ width: "12",
16
+ xmlns: "http://www.w3.org/2000/svg",
17
+ children: [/*#__PURE__*/_jsx("rect", {
18
+ height: "9",
19
+ rx: "1",
20
+ stroke: "currentColor",
21
+ width: "3",
22
+ x: "1.5",
23
+ y: "1.5"
24
+ }), /*#__PURE__*/_jsx("rect", {
25
+ height: "9",
26
+ rx: "1",
27
+ stroke: "currentColor",
28
+ width: "3",
29
+ x: "7.5",
30
+ y: "1.5"
31
+ })]
32
+ });
33
+ }
34
+ function RowsIcon() {
35
+ return /*#__PURE__*/_jsxs("svg", {
36
+ fill: "none",
37
+ height: "12",
38
+ viewBox: "0 0 12 12",
39
+ width: "12",
40
+ xmlns: "http://www.w3.org/2000/svg",
41
+ children: [/*#__PURE__*/_jsx("rect", {
42
+ height: "3",
43
+ rx: "1",
44
+ stroke: "currentColor",
45
+ width: "9",
46
+ x: "1.5",
47
+ y: "1.5"
48
+ }), /*#__PURE__*/_jsx("rect", {
49
+ height: "3",
50
+ rx: "1",
51
+ stroke: "currentColor",
52
+ width: "9",
53
+ x: "1.5",
54
+ y: "7.5"
55
+ })]
56
+ });
57
+ }
58
+ export function TableGridPopup({
59
+ anchorElem,
60
+ editor: _editor,
61
+ isOpen,
62
+ onClose,
63
+ onInsert,
64
+ position
65
+ }) {
66
+ const [hoverCol, setHoverCol] = useState(0);
67
+ const [hoverRow, setHoverRow] = useState(0);
68
+ const [inputCols, setInputCols] = useState('');
69
+ const [inputRows, setInputRows] = useState('');
70
+ const [focusedInput, setFocusedInput] = useState(null);
71
+ const popupRef = useRef(null);
72
+ const colsInputRef = useRef(null);
73
+ const rowsInputRef = useRef(null);
74
+ const effectiveCols = hoverCol > 0 ? hoverCol : inputCols ? parseInt(inputCols, 10) || 0 : 5;
75
+ const effectiveRows = hoverRow > 0 ? hoverRow : inputRows ? parseInt(inputRows, 10) || 0 : 5;
76
+ useEffect(() => {
77
+ if (!isOpen) {
78
+ setHoverCol(0);
79
+ setHoverRow(0);
80
+ setInputCols('');
81
+ setInputRows('');
82
+ setFocusedInput(null);
83
+ }
84
+ }, [isOpen]);
85
+ useEffect(() => {
86
+ if (!isOpen) {
87
+ return;
88
+ }
89
+ const handleKeyDown = e => {
90
+ if (e.key === 'Escape') {
91
+ e.preventDefault();
92
+ e.stopPropagation();
93
+ onClose();
94
+ }
95
+ if (e.key === 'Enter' && focusedInput) {
96
+ e.preventDefault();
97
+ const cols = parseInt(inputCols, 10);
98
+ const rows = parseInt(inputRows, 10);
99
+ if (cols > 0 && rows > 0) {
100
+ onInsert(cols, rows);
101
+ }
102
+ }
103
+ };
104
+ document.addEventListener('keydown', handleKeyDown, true);
105
+ return () => document.removeEventListener('keydown', handleKeyDown, true);
106
+ }, [isOpen, onClose, onInsert, focusedInput, inputCols, inputRows]);
107
+ const handleCellClick = useCallback((col, row) => {
108
+ if (col > 0 && row > 0) {
109
+ onInsert(col, row);
110
+ }
111
+ }, [onInsert]);
112
+ const handleCellMouseEnter = useCallback((col_0, row_0) => {
113
+ setHoverCol(col_0);
114
+ setHoverRow(row_0);
115
+ }, []);
116
+ const handleGridMouseLeave = useCallback(() => {
117
+ setHoverCol(0);
118
+ setHoverRow(0);
119
+ }, []);
120
+ if (!isOpen || !position || !anchorElem) {
121
+ return null;
122
+ }
123
+ const cells = [];
124
+ for (let row_1 = 1; row_1 <= GRID_ROWS; row_1++) {
125
+ for (let col_1 = 1; col_1 <= GRID_COLUMNS; col_1++) {
126
+ const isInSelection = col_1 <= effectiveCols && row_1 <= effectiveRows;
127
+ const isHovered = col_1 <= hoverCol && row_1 <= hoverRow;
128
+ let className = 'table-grid-popup__cell';
129
+ if (isInSelection && isHovered) {
130
+ className += ' table-grid-popup__cell--hover';
131
+ } else if (isInSelection) {
132
+ className += ' table-grid-popup__cell--selected';
133
+ }
134
+ cells.push(/*#__PURE__*/_jsx("div", {
135
+ "aria-label": `${col_1} columns, ${row_1} rows`,
136
+ className: className,
137
+ onClick: () => handleCellClick(col_1, row_1),
138
+ onKeyDown: e_0 => {
139
+ if (e_0.key === 'Enter' || e_0.key === ' ') {
140
+ e_0.preventDefault();
141
+ handleCellClick(col_1, row_1);
142
+ }
143
+ },
144
+ onMouseEnter: () => handleCellMouseEnter(col_1, row_1),
145
+ role: "button",
146
+ tabIndex: -1
147
+ }, `${row_1}-${col_1}`));
148
+ }
149
+ }
150
+ const showTooltip = hoverCol > 0 && hoverRow > 0;
151
+ return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(React.Fragment, {
152
+ children: [/*#__PURE__*/_jsx("div", {
153
+ className: "table-grid-popup__backdrop",
154
+ onClick: onClose
155
+ }), /*#__PURE__*/_jsx("div", {
156
+ className: "table-grid-popup",
157
+ ref: popupRef,
158
+ style: {
159
+ transform: `translate(${position.left}px, ${position.top}px)`
160
+ },
161
+ children: /*#__PURE__*/_jsxs("div", {
162
+ className: "table-grid-popup__content",
163
+ children: [/*#__PURE__*/_jsxs("div", {
164
+ className: "table-grid-popup__header",
165
+ children: [/*#__PURE__*/_jsxs("div", {
166
+ className: `table-grid-popup__input-group${focusedInput === 'cols' ? ' table-grid-popup__input-group--focused' : ''}`,
167
+ children: [/*#__PURE__*/_jsx("div", {
168
+ className: "table-grid-popup__input-icon",
169
+ children: /*#__PURE__*/_jsx(ColumnsIcon, {})
170
+ }), /*#__PURE__*/_jsx("input", {
171
+ "aria-label": "Columns",
172
+ className: "table-grid-popup__input",
173
+ min: 1,
174
+ onBlur: () => setFocusedInput(null),
175
+ onChange: e_1 => setInputCols(e_1.target.value),
176
+ onFocus: () => setFocusedInput('cols'),
177
+ placeholder: hoverCol > 0 ? String(hoverCol) : '5',
178
+ ref: colsInputRef,
179
+ type: "number",
180
+ value: inputCols
181
+ })]
182
+ }), /*#__PURE__*/_jsx("span", {
183
+ className: "table-grid-popup__separator",
184
+ children: "×"
185
+ }), /*#__PURE__*/_jsxs("div", {
186
+ className: `table-grid-popup__input-group${focusedInput === 'rows' ? ' table-grid-popup__input-group--focused' : ''}`,
187
+ children: [/*#__PURE__*/_jsx("div", {
188
+ className: "table-grid-popup__input-icon",
189
+ children: /*#__PURE__*/_jsx(RowsIcon, {})
190
+ }), /*#__PURE__*/_jsx("input", {
191
+ "aria-label": "Rows",
192
+ className: "table-grid-popup__input",
193
+ min: 1,
194
+ onBlur: () => setFocusedInput(null),
195
+ onChange: e_2 => setInputRows(e_2.target.value),
196
+ onFocus: () => setFocusedInput('rows'),
197
+ placeholder: hoverRow > 0 ? String(hoverRow) : '5',
198
+ ref: rowsInputRef,
199
+ type: "number",
200
+ value: inputRows
201
+ })]
202
+ })]
203
+ }), /*#__PURE__*/_jsxs("div", {
204
+ className: "table-grid-popup__grid",
205
+ onMouseLeave: handleGridMouseLeave,
206
+ children: [cells, showTooltip && /*#__PURE__*/_jsxs("div", {
207
+ className: "table-grid-popup__tooltip",
208
+ style: {
209
+ left: `calc(${(hoverCol - 0.5) / GRID_COLUMNS * 100}%)`,
210
+ top: `calc(${(hoverRow - 1) / GRID_ROWS * 100}%)`
211
+ },
212
+ children: [effectiveCols, " × ", effectiveRows]
213
+ })]
214
+ })]
215
+ })
216
+ })]
217
+ }), anchorElem);
218
+ }
219
+ //# sourceMappingURL=index.js.map