@payloadcms/richtext-lexical 3.91.0-internal.6e3dc85 → 4.0.0-beta.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 (1375) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/cell/rscEntry.d.ts +1 -1
  3. package/dist/cell/rscEntry.d.ts.map +1 -1
  4. package/dist/cell/rscEntry.js +5 -5
  5. package/dist/cell/rscEntry.js.map +1 -1
  6. package/dist/exports/client/Field-MT4FK3IP.js +2 -0
  7. package/dist/exports/client/Field-MT4FK3IP.js.map +7 -0
  8. package/dist/exports/client/RelationshipComponent-YCPAKOL7.js +2 -0
  9. package/dist/exports/client/RelationshipComponent-YCPAKOL7.js.map +7 -0
  10. package/dist/exports/client/chunk-3LRZDIIG.js +2 -0
  11. package/dist/exports/client/chunk-3LRZDIIG.js.map +7 -0
  12. package/dist/exports/client/chunk-5VIL27GI.js +2 -0
  13. package/dist/exports/client/chunk-5VIL27GI.js.map +7 -0
  14. package/dist/exports/client/chunk-E6LSRRP2.js +2 -0
  15. package/dist/exports/client/chunk-E6LSRRP2.js.map +7 -0
  16. package/dist/exports/client/{chunk-BZZVLW4U.js → chunk-RJ5MAOKZ.js} +1 -1
  17. package/dist/exports/client/chunk-RJ5MAOKZ.js.map +7 -0
  18. package/dist/exports/client/chunk-WSAPGI3Z.js +2 -0
  19. package/dist/exports/client/chunk-WSAPGI3Z.js.map +7 -0
  20. package/dist/exports/client/chunk-ZQX5HXUL.js +2 -0
  21. package/dist/exports/client/chunk-ZQX5HXUL.js.map +7 -0
  22. package/dist/exports/client/component-6DQLENIE.js +2 -0
  23. package/dist/exports/client/component-6DQLENIE.js.map +7 -0
  24. package/dist/exports/client/componentInline-HNE5G4TE.js +2 -0
  25. package/dist/exports/client/index.d.ts +1 -4
  26. package/dist/exports/client/index.d.ts.map +1 -1
  27. package/dist/exports/client/index.js +34 -35
  28. package/dist/exports/client/index.js.map +4 -4
  29. package/dist/exports/react/index.d.ts +1 -1
  30. package/dist/exports/react/index.d.ts.map +1 -1
  31. package/dist/exports/react/index.js.map +1 -1
  32. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  33. package/dist/features/align/client/toolbarAlignGroup.js +1 -0
  34. package/dist/features/align/client/toolbarAlignGroup.js.map +1 -1
  35. package/dist/features/blockquote/client/index.js +2 -2
  36. package/dist/features/blockquote/client/index.js.map +1 -1
  37. package/dist/features/blockquote/server/index.d.ts +1 -4
  38. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  39. package/dist/features/blockquote/server/index.js +4 -41
  40. package/dist/features/blockquote/server/index.js.map +1 -1
  41. package/dist/features/blockquote/server/schema.d.ts +8 -0
  42. package/dist/features/blockquote/server/schema.d.ts.map +1 -0
  43. package/dist/features/blockquote/server/schema.js +15 -0
  44. package/dist/features/blockquote/server/schema.js.map +1 -0
  45. package/dist/features/blocks/client/component/BlockContent.d.ts +10 -0
  46. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  47. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  48. package/dist/features/blocks/client/component/BlockReordering/index.d.ts +11 -0
  49. package/dist/features/blocks/client/component/BlockReordering/index.d.ts.map +1 -0
  50. package/dist/features/blocks/client/component/BlockReordering/index.js +18 -0
  51. package/dist/features/blocks/client/component/BlockReordering/index.js.map +1 -0
  52. package/dist/features/blocks/client/component/index.css +178 -0
  53. package/dist/features/blocks/client/component/index.d.ts +4 -9
  54. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  55. package/dist/features/blocks/client/component/index.js +215 -82
  56. package/dist/features/blocks/client/component/index.js.map +1 -1
  57. package/dist/features/blocks/client/component/useBlockReordering.d.ts +16 -0
  58. package/dist/features/blocks/client/component/useBlockReordering.d.ts.map +1 -0
  59. package/dist/features/blocks/client/component/useBlockReordering.js +178 -0
  60. package/dist/features/blocks/client/component/useBlockReordering.js.map +1 -0
  61. package/dist/features/blocks/client/componentInline/index.css +84 -0
  62. package/dist/features/blocks/client/componentInline/index.d.ts +4 -3
  63. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  64. package/dist/features/blocks/client/componentInline/index.js +65 -36
  65. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  66. package/dist/features/blocks/client/getBlockImageComponent.d.ts +1 -1
  67. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts +9 -0
  68. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts.map +1 -0
  69. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js +95 -0
  70. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js.map +1 -0
  71. package/dist/features/blocks/client/index.d.ts.map +1 -1
  72. package/dist/features/blocks/client/index.js +4 -4
  73. package/dist/features/blocks/client/index.js.map +1 -1
  74. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +1 -1
  75. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -1
  76. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +1 -1
  77. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
  78. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +1 -1
  79. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -1
  80. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +5 -2
  81. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
  82. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +1 -2
  83. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  84. package/dist/features/blocks/client/markdown/markdownTransformer.js +4 -4
  85. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  86. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  87. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  88. package/dist/features/blocks/client/nodes/BlocksNode.js +0 -10
  89. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  90. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +2 -2
  91. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  92. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  93. package/dist/features/blocks/client/plugin/index.d.ts +1 -1
  94. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  95. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  96. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts +1 -1
  97. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
  98. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +4 -0
  99. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  100. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.css +26 -0
  101. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts +1 -1
  102. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts.map +1 -1
  103. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +4 -1
  104. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
  105. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +38 -0
  106. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts +1 -1
  107. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts.map +1 -1
  108. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +7 -8
  109. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
  110. package/dist/features/blocks/premade/CodeBlock/Component/index.css +171 -0
  111. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +1 -2
  112. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  113. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  114. package/dist/features/blocks/server/index.d.ts +1 -0
  115. package/dist/features/blocks/server/index.d.ts.map +1 -1
  116. package/dist/features/blocks/server/index.js +26 -74
  117. package/dist/features/blocks/server/index.js.map +1 -1
  118. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +1 -1
  119. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  120. package/dist/features/blocks/server/markdown/markdownTransformer.js +4 -4
  121. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  122. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -18
  123. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  124. package/dist/features/blocks/server/nodes/BlocksNode.js +1 -12
  125. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  126. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +2 -10
  127. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  128. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +2 -2
  129. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  130. package/dist/features/blocks/server/schema.d.ts +47 -0
  131. package/dist/features/blocks/server/schema.d.ts.map +1 -0
  132. package/dist/features/blocks/server/schema.js +138 -0
  133. package/dist/features/blocks/server/schema.js.map +1 -0
  134. package/dist/features/blocks/server/validate.d.ts +1 -2
  135. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  136. package/dist/features/blocks/server/validate.js +1 -1
  137. package/dist/features/blocks/server/validate.js.map +1 -1
  138. package/dist/features/converters/htmlToLexical/index.d.ts +1 -1
  139. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  140. package/dist/features/converters/htmlToLexical/index.js.map +1 -1
  141. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts +1 -1
  142. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts.map +1 -1
  143. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
  144. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts +1 -1
  145. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts.map +1 -1
  146. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  147. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts +1 -1
  148. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts.map +1 -1
  149. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
  150. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts +1 -1
  151. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts.map +1 -1
  152. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
  153. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts +1 -1
  154. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts.map +1 -1
  155. package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
  156. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts +1 -1
  157. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  158. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  159. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts +1 -1
  160. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts.map +1 -1
  161. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
  162. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts +1 -1
  163. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts.map +1 -1
  164. package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
  165. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts +1 -1
  166. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts.map +1 -1
  167. package/dist/features/converters/lexicalToHtml/async/converters/table.js +1 -1
  168. package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
  169. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts +1 -1
  170. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts.map +1 -1
  171. package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
  172. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts +1 -1
  173. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts.map +1 -1
  174. package/dist/features/converters/lexicalToHtml/async/converters/upload.js +3 -3
  175. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  176. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts +1 -1
  177. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts.map +1 -1
  178. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
  179. package/dist/features/converters/lexicalToHtml/async/types.d.ts +15 -16
  180. package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -1
  181. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  182. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.d.ts.map +1 -1
  183. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +3 -2
  184. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  185. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts +1 -1
  186. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts.map +1 -1
  187. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
  188. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts +1 -1
  189. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts.map +1 -1
  190. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  191. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts +1 -1
  192. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts.map +1 -1
  193. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
  194. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts +1 -1
  195. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts.map +1 -1
  196. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
  197. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts +1 -1
  198. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts.map +1 -1
  199. package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
  200. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts +1 -1
  201. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  202. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  203. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts +1 -1
  204. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts.map +1 -1
  205. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
  206. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts +1 -1
  207. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts.map +1 -1
  208. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
  209. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts +1 -1
  210. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts.map +1 -1
  211. package/dist/features/converters/lexicalToHtml/sync/converters/table.js +1 -1
  212. package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
  213. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts +1 -1
  214. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts.map +1 -1
  215. package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
  216. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts +1 -1
  217. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts.map +1 -1
  218. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js +3 -3
  219. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  220. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts +1 -1
  221. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts.map +1 -1
  222. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
  223. package/dist/features/converters/lexicalToHtml/sync/types.d.ts +15 -16
  224. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  225. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  226. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +6 -4
  227. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  228. package/dist/features/converters/lexicalToJSX/Component/index.js +5 -4
  229. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  230. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts +1 -1
  231. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts.map +1 -1
  232. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  233. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts +1 -1
  234. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  235. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  236. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts +1 -1
  237. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts.map +1 -1
  238. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  239. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts +1 -1
  240. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts.map +1 -1
  241. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  242. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts +1 -1
  243. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts.map +1 -1
  244. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  245. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts +1 -1
  246. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  247. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  248. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts +1 -1
  249. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts.map +1 -1
  250. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  251. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts +1 -1
  252. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts.map +1 -1
  253. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
  254. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts +1 -1
  255. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts.map +1 -1
  256. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  257. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts +1 -1
  258. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts.map +1 -1
  259. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  260. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts +1 -1
  261. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  262. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +4 -5
  263. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  264. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts +1 -1
  265. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts.map +1 -1
  266. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
  267. package/dist/features/converters/lexicalToJSX/converter/index.d.ts +1 -1
  268. package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
  269. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  270. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +13 -15
  271. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  272. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  273. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  274. package/dist/features/converters/lexicalToMarkdown/index.js +1 -1
  275. package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
  276. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
  277. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +13 -15
  278. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -1
  279. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  280. package/dist/features/converters/markdownToLexical/index.d.ts +1 -1
  281. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  282. package/dist/features/converters/markdownToLexical/index.js +5 -2
  283. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  284. package/dist/features/converters/utilities/payloadPopulateFn.d.ts.map +1 -1
  285. package/dist/features/converters/utilities/payloadPopulateFn.js +4 -2
  286. package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
  287. package/dist/features/debug/jsxConverter/client/plugin/index.d.ts +1 -1
  288. package/dist/features/debug/jsxConverter/client/plugin/index.d.ts.map +1 -1
  289. package/dist/features/debug/jsxConverter/client/plugin/index.js +1 -0
  290. package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
  291. package/dist/features/debug/jsxConverter/client/plugin/style.css +9 -0
  292. package/dist/features/debug/testRecorder/client/plugin/index.css +50 -0
  293. package/dist/features/debug/testRecorder/client/plugin/index.d.ts +1 -1
  294. package/dist/features/debug/testRecorder/client/plugin/index.d.ts.map +1 -1
  295. package/dist/features/debug/testRecorder/client/plugin/index.js +1 -0
  296. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  297. package/dist/features/debug/treeView/client/plugin/index.css +81 -0
  298. package/dist/features/debug/treeView/client/plugin/index.d.ts +1 -1
  299. package/dist/features/debug/treeView/client/plugin/index.d.ts.map +1 -1
  300. package/dist/features/debug/treeView/client/plugin/index.js +1 -0
  301. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
  302. package/dist/features/format/bold/feature.client.js +1 -1
  303. package/dist/features/format/bold/feature.client.js.map +1 -1
  304. package/dist/features/format/bold/feature.server.d.ts.map +1 -1
  305. package/dist/features/format/bold/feature.server.js +1 -1
  306. package/dist/features/format/bold/feature.server.js.map +1 -1
  307. package/dist/features/format/inlineCode/feature.client.js +1 -1
  308. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  309. package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
  310. package/dist/features/format/inlineCode/feature.server.js +1 -1
  311. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  312. package/dist/features/format/italic/feature.client.js +1 -1
  313. package/dist/features/format/italic/feature.client.js.map +1 -1
  314. package/dist/features/format/italic/feature.server.d.ts.map +1 -1
  315. package/dist/features/format/italic/feature.server.js +1 -1
  316. package/dist/features/format/italic/feature.server.js.map +1 -1
  317. package/dist/features/format/strikethrough/feature.client.js +1 -1
  318. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  319. package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
  320. package/dist/features/format/strikethrough/feature.server.js +1 -1
  321. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  322. package/dist/features/heading/client/index.js +2 -2
  323. package/dist/features/heading/client/index.js.map +1 -1
  324. package/dist/features/heading/markdownTransformer.d.ts +2 -2
  325. package/dist/features/heading/markdownTransformer.d.ts.map +1 -1
  326. package/dist/features/heading/markdownTransformer.js +6 -19
  327. package/dist/features/heading/markdownTransformer.js.map +1 -1
  328. package/dist/features/heading/server/index.d.ts +2 -4
  329. package/dist/features/heading/server/index.d.ts.map +1 -1
  330. package/dist/features/heading/server/index.js +4 -43
  331. package/dist/features/heading/server/index.js.map +1 -1
  332. package/dist/features/heading/server/schema.d.ts +10 -0
  333. package/dist/features/heading/server/schema.d.ts.map +1 -0
  334. package/dist/features/heading/server/schema.js +37 -0
  335. package/dist/features/heading/server/schema.js.map +1 -0
  336. package/dist/features/horizontalRule/client/index.js +2 -2
  337. package/dist/features/horizontalRule/client/index.js.map +1 -1
  338. package/dist/features/horizontalRule/client/markdownTransformer.d.ts +2 -2
  339. package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -1
  340. package/dist/features/horizontalRule/client/markdownTransformer.js +1 -1
  341. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  342. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +13 -3
  343. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  344. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +18 -1
  345. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  346. package/dist/features/horizontalRule/client/plugin/index.css +25 -0
  347. package/dist/features/horizontalRule/client/plugin/index.d.ts +1 -1
  348. package/dist/features/horizontalRule/client/plugin/index.d.ts.map +1 -1
  349. package/dist/features/horizontalRule/client/plugin/index.js +73 -4
  350. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  351. package/dist/features/horizontalRule/server/index.d.ts +1 -0
  352. package/dist/features/horizontalRule/server/index.d.ts.map +1 -1
  353. package/dist/features/horizontalRule/server/index.js +4 -10
  354. package/dist/features/horizontalRule/server/index.js.map +1 -1
  355. package/dist/features/horizontalRule/server/markdownTransformer.d.ts +2 -2
  356. package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -1
  357. package/dist/features/horizontalRule/server/markdownTransformer.js +1 -1
  358. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  359. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +2 -6
  360. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  361. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +3 -3
  362. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  363. package/dist/features/horizontalRule/server/schema.d.ts +8 -0
  364. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -0
  365. package/dist/features/horizontalRule/server/schema.js +26 -0
  366. package/dist/features/horizontalRule/server/schema.js.map +1 -0
  367. package/dist/features/indent/client/IndentPlugin.d.ts.map +1 -1
  368. package/dist/features/indent/client/IndentPlugin.js +122 -1
  369. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  370. package/dist/features/indent/server/i18n.d.ts.map +1 -1
  371. package/dist/features/indent/server/i18n.js +74 -37
  372. package/dist/features/indent/server/i18n.js.map +1 -1
  373. package/dist/features/link/client/index.d.ts.map +1 -1
  374. package/dist/features/link/client/index.js +2 -2
  375. package/dist/features/link/client/index.js.map +1 -1
  376. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  377. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  378. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  379. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  380. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +43 -31
  381. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  382. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +106 -0
  383. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts +1 -1
  384. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -1
  385. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +1 -0
  386. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  387. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +1 -1
  388. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -1
  389. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
  390. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  391. package/dist/features/link/markdownTransformer.d.ts +5 -5
  392. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  393. package/dist/features/link/markdownTransformer.js +2 -2
  394. package/dist/features/link/markdownTransformer.js.map +1 -1
  395. package/dist/features/link/nodes/AutoLinkNode.d.ts +4 -4
  396. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  397. package/dist/features/link/nodes/AutoLinkNode.js +4 -11
  398. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  399. package/dist/features/link/nodes/LinkNode.d.ts +4 -4
  400. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  401. package/dist/features/link/nodes/LinkNode.js +4 -16
  402. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  403. package/dist/features/link/server/baseFields.js.map +1 -1
  404. package/dist/features/link/server/graphQLPopulationPromise.d.ts +1 -1
  405. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  406. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
  407. package/dist/features/link/server/index.d.ts +2 -1
  408. package/dist/features/link/server/index.d.ts.map +1 -1
  409. package/dist/features/link/server/index.js +7 -75
  410. package/dist/features/link/server/index.js.map +1 -1
  411. package/dist/features/link/server/schema.d.ts +32 -0
  412. package/dist/features/link/server/schema.d.ts.map +1 -0
  413. package/dist/features/link/server/schema.js +171 -0
  414. package/dist/features/link/server/schema.js.map +1 -0
  415. package/dist/features/link/server/validate.d.ts +1 -1
  416. package/dist/features/link/server/validate.d.ts.map +1 -1
  417. package/dist/features/link/server/validate.js +1 -1
  418. package/dist/features/link/server/validate.js.map +1 -1
  419. package/dist/features/lists/checklist/client/index.js +1 -1
  420. package/dist/features/lists/checklist/client/index.js.map +1 -1
  421. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  422. package/dist/features/lists/checklist/server/index.js +4 -8
  423. package/dist/features/lists/checklist/server/index.js.map +1 -1
  424. package/dist/features/lists/orderedList/client/index.js +1 -1
  425. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  426. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  427. package/dist/features/lists/orderedList/server/index.js +4 -8
  428. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  429. package/dist/features/lists/plugin/index.d.ts +0 -9
  430. package/dist/features/lists/plugin/index.d.ts.map +1 -1
  431. package/dist/features/lists/plugin/index.js.map +1 -1
  432. package/dist/features/lists/shared/schema.d.ts +18 -0
  433. package/dist/features/lists/shared/schema.d.ts.map +1 -0
  434. package/dist/features/lists/shared/schema.js +62 -0
  435. package/dist/features/lists/shared/schema.js.map +1 -0
  436. package/dist/features/lists/unorderedList/client/index.js +1 -1
  437. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  438. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  439. package/dist/features/lists/unorderedList/server/index.js +4 -8
  440. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  441. package/dist/features/relationship/client/components/RelationshipComponent.d.ts +2 -2
  442. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  443. package/dist/features/relationship/client/components/RelationshipComponent.js +29 -4
  444. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  445. package/dist/features/relationship/client/components/index.css +109 -0
  446. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  447. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  448. package/dist/features/relationship/client/nodes/RelationshipNode.js +0 -3
  449. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  450. package/dist/features/relationship/client/plugins/index.d.ts +1 -1
  451. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  452. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  453. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  454. package/dist/features/relationship/client/utils/useEnabledRelationships.js +5 -5
  455. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  456. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +1 -1
  457. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  458. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  459. package/dist/features/relationship/server/index.d.ts +1 -0
  460. package/dist/features/relationship/server/index.d.ts.map +1 -1
  461. package/dist/features/relationship/server/index.js +2 -0
  462. package/dist/features/relationship/server/index.js.map +1 -1
  463. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -10
  464. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  465. package/dist/features/relationship/server/nodes/RelationshipNode.js +1 -5
  466. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  467. package/dist/features/relationship/server/schema.d.ts +29 -0
  468. package/dist/features/relationship/server/schema.d.ts.map +1 -0
  469. package/dist/features/relationship/server/schema.js +94 -0
  470. package/dist/features/relationship/server/schema.js.map +1 -0
  471. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +16 -5
  472. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -1
  473. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +15 -8
  474. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -1
  475. package/dist/features/table/client/index.d.ts.map +1 -0
  476. package/dist/features/{experimental_table → table}/client/index.js +2 -2
  477. package/dist/features/table/client/index.js.map +1 -0
  478. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts.map +1 -0
  479. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js.map +1 -0
  480. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.css +90 -0
  481. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +1 -1
  482. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  483. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +4 -3
  484. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  485. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.css +11 -0
  486. package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +1 -1
  487. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  488. package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +42 -18
  489. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  490. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  491. package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +1 -1
  492. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  493. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.css +163 -0
  494. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts +17 -0
  495. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  496. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js +219 -0
  497. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  498. package/dist/features/table/client/plugins/TablePlugin/index.css +235 -0
  499. package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +1 -1
  500. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  501. package/dist/features/table/client/plugins/TablePlugin/index.js +143 -0
  502. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  503. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  504. package/dist/features/table/client/utils/debounce.js.map +1 -0
  505. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  506. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  507. package/dist/features/table/markdownTransformer.d.ts +5 -0
  508. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  509. package/dist/features/{experimental_table → table}/markdownTransformer.js +6 -3
  510. package/dist/features/table/markdownTransformer.js.map +1 -0
  511. package/dist/features/table/server/index.d.ts +3 -0
  512. package/dist/features/table/server/index.d.ts.map +1 -0
  513. package/dist/features/table/server/index.js +56 -0
  514. package/dist/features/table/server/index.js.map +1 -0
  515. package/dist/features/table/server/schema.d.ts +27 -0
  516. package/dist/features/table/server/schema.d.ts.map +1 -0
  517. package/dist/features/table/server/schema.js +107 -0
  518. package/dist/features/table/server/schema.js.map +1 -0
  519. package/dist/features/textState/feature.client.js +1 -1
  520. package/dist/features/textState/feature.client.js.map +1 -1
  521. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts +8 -0
  522. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts.map +1 -0
  523. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js +80 -0
  524. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js.map +1 -0
  525. package/dist/features/toolbars/fixed/client/Toolbar/index.css +159 -0
  526. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts +1 -1
  527. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  528. package/dist/features/toolbars/fixed/client/Toolbar/index.js +20 -1
  529. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  530. package/dist/features/toolbars/inline/client/Toolbar/index.css +31 -0
  531. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts +1 -1
  532. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  533. package/dist/features/toolbars/inline/client/Toolbar/index.js +18 -2
  534. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  535. package/dist/features/toolbars/shared/ToolbarButton/index.css +57 -0
  536. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts +1 -1
  537. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  538. package/dist/features/toolbars/shared/ToolbarButton/index.js +81 -74
  539. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  540. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  541. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +89 -33
  542. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  543. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +212 -0
  544. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +1 -1
  545. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  546. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +11 -7
  547. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  548. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts +5 -0
  549. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts.map +1 -0
  550. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js +79 -0
  551. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js.map +1 -0
  552. package/dist/features/toolbars/types.d.ts +5 -1
  553. package/dist/features/toolbars/types.d.ts.map +1 -1
  554. package/dist/features/toolbars/types.js.map +1 -1
  555. package/dist/features/typesClient.d.ts +2 -2
  556. package/dist/features/typesClient.d.ts.map +1 -1
  557. package/dist/features/typesClient.js.map +1 -1
  558. package/dist/features/typesServer.d.ts +35 -70
  559. package/dist/features/typesServer.d.ts.map +1 -1
  560. package/dist/features/typesServer.js.map +1 -1
  561. package/dist/features/upload/client/component/index.css +212 -0
  562. package/dist/features/upload/client/component/index.d.ts +2 -2
  563. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  564. package/dist/features/upload/client/component/index.js +86 -63
  565. package/dist/features/upload/client/component/index.js.map +1 -1
  566. package/dist/features/upload/client/component/pending/index.d.ts +0 -1
  567. package/dist/features/upload/client/component/pending/index.d.ts.map +1 -1
  568. package/dist/features/upload/client/component/pending/index.js.map +1 -1
  569. package/dist/features/upload/client/nodes/UploadNode.d.ts +1 -1
  570. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  571. package/dist/features/upload/client/nodes/UploadNode.js +0 -7
  572. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  573. package/dist/features/upload/client/plugin/index.d.ts +1 -1
  574. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  575. package/dist/features/upload/client/plugin/index.js +8 -6
  576. package/dist/features/upload/client/plugin/index.js.map +1 -1
  577. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +1 -1
  578. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  579. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  580. package/dist/features/upload/server/index.d.ts +1 -0
  581. package/dist/features/upload/server/index.d.ts.map +1 -1
  582. package/dist/features/upload/server/index.js +7 -87
  583. package/dist/features/upload/server/index.js.map +1 -1
  584. package/dist/features/upload/server/markdownTransformer.d.ts +2 -2
  585. package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -1
  586. package/dist/features/upload/server/markdownTransformer.js +1 -1
  587. package/dist/features/upload/server/markdownTransformer.js.map +1 -1
  588. package/dist/features/upload/server/nodes/UploadNode.d.ts +1 -55
  589. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  590. package/dist/features/upload/server/nodes/UploadNode.js +1 -9
  591. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  592. package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -1
  593. package/dist/features/upload/server/nodes/conversions.js.map +1 -1
  594. package/dist/features/upload/server/schema.d.ts +40 -0
  595. package/dist/features/upload/server/schema.d.ts.map +1 -0
  596. package/dist/features/upload/server/schema.js +147 -0
  597. package/dist/features/upload/server/schema.js.map +1 -0
  598. package/dist/features/upload/server/validate.d.ts +1 -1
  599. package/dist/features/upload/server/validate.d.ts.map +1 -1
  600. package/dist/features/upload/server/validate.js +1 -1
  601. package/dist/features/upload/server/validate.js.map +1 -1
  602. package/dist/field/Diff/converters/link.d.ts +1 -1
  603. package/dist/field/Diff/converters/link.d.ts.map +1 -1
  604. package/dist/field/Diff/converters/link.js.map +1 -1
  605. package/dist/field/Diff/converters/listitem/index.css +80 -0
  606. package/dist/field/Diff/converters/listitem/index.d.ts +2 -2
  607. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  608. package/dist/field/Diff/converters/listitem/index.js +1 -0
  609. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  610. package/dist/field/Diff/converters/relationship/index.css +107 -0
  611. package/dist/field/Diff/converters/relationship/index.d.ts +2 -2
  612. package/dist/field/Diff/converters/relationship/index.d.ts.map +1 -1
  613. package/dist/field/Diff/converters/relationship/index.js +11 -28
  614. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  615. package/dist/field/Diff/converters/unknown/index.css +36 -0
  616. package/dist/field/Diff/converters/unknown/index.d.ts +1 -1
  617. package/dist/field/Diff/converters/unknown/index.d.ts.map +1 -1
  618. package/dist/field/Diff/converters/unknown/index.js +1 -0
  619. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  620. package/dist/field/Diff/converters/upload/index.css +174 -0
  621. package/dist/field/Diff/converters/upload/index.d.ts +2 -2
  622. package/dist/field/Diff/converters/upload/index.d.ts.map +1 -1
  623. package/dist/field/Diff/converters/upload/index.js +7 -2
  624. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  625. package/dist/field/Diff/index.css +154 -0
  626. package/dist/field/Diff/index.d.ts +4 -3
  627. package/dist/field/Diff/index.d.ts.map +1 -1
  628. package/dist/field/Diff/index.js +3 -2
  629. package/dist/field/Diff/index.js.map +1 -1
  630. package/dist/field/Field.d.ts +3 -3
  631. package/dist/field/Field.d.ts.map +1 -1
  632. package/dist/field/Field.js +38 -27
  633. package/dist/field/Field.js.map +1 -1
  634. package/dist/field/RenderLexical/index.d.ts +2 -2
  635. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  636. package/dist/field/RenderLexical/index.js.map +1 -1
  637. package/dist/field/RichTextViewProvider.d.ts +1 -1
  638. package/dist/field/RichTextViewProvider.d.ts.map +1 -1
  639. package/dist/field/RichTextViewProvider.js.map +1 -1
  640. package/dist/field/ViewSelector.css +32 -0
  641. package/dist/field/ViewSelector.d.ts +1 -1
  642. package/dist/field/ViewSelector.d.ts.map +1 -1
  643. package/dist/field/ViewSelector.js +2 -0
  644. package/dist/field/ViewSelector.js.map +1 -1
  645. package/dist/field/bundled.css +1 -1
  646. package/dist/field/index.css +59 -0
  647. package/dist/field/index.d.ts +1 -1
  648. package/dist/field/index.d.ts.map +1 -1
  649. package/dist/field/index.js +1 -1
  650. package/dist/field/index.js.map +1 -1
  651. package/dist/field/rscEntry.d.ts +2 -2
  652. package/dist/field/rscEntry.d.ts.map +1 -1
  653. package/dist/field/rscEntry.js +2 -0
  654. package/dist/field/rscEntry.js.map +1 -1
  655. package/dist/hooks.d.ts +6 -0
  656. package/dist/hooks.d.ts.map +1 -0
  657. package/dist/hooks.js +548 -0
  658. package/dist/hooks.js.map +1 -0
  659. package/dist/i18n.d.ts.map +1 -1
  660. package/dist/i18n.js +68 -0
  661. package/dist/i18n.js.map +1 -1
  662. package/dist/index.d.ts +15 -22
  663. package/dist/index.d.ts.map +1 -1
  664. package/dist/index.js +48 -634
  665. package/dist/index.js.map +1 -1
  666. package/dist/lexical/LexicalEditor.css +61 -0
  667. package/dist/lexical/LexicalEditor.d.ts +1 -1
  668. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  669. package/dist/lexical/LexicalEditor.js +62 -64
  670. package/dist/lexical/LexicalEditor.js.map +1 -1
  671. package/dist/lexical/LexicalProvider.d.ts +1 -1
  672. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  673. package/dist/lexical/LexicalProvider.js.map +1 -1
  674. package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  675. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  676. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  677. package/dist/lexical/config/client/loader.d.ts +1 -1
  678. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  679. package/dist/lexical/config/client/loader.js +5 -1
  680. package/dist/lexical/config/client/loader.js.map +1 -1
  681. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  682. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  683. package/dist/lexical/config/client/sanitize.js.map +1 -1
  684. package/dist/lexical/config/server/loader.d.ts +1 -1
  685. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  686. package/dist/lexical/config/server/loader.js +14 -11
  687. package/dist/lexical/config/server/loader.js.map +1 -1
  688. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  689. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  690. package/dist/lexical/config/server/sanitize.js +11 -19
  691. package/dist/lexical/config/server/sanitize.js.map +1 -1
  692. package/dist/lexical/config/types.d.ts +1 -1
  693. package/dist/lexical/config/types.d.ts.map +1 -1
  694. package/dist/lexical/config/types.js.map +1 -1
  695. package/dist/lexical/nodes/index.d.ts +1 -1
  696. package/dist/lexical/nodes/index.d.ts.map +1 -1
  697. package/dist/lexical/nodes/index.js.map +1 -1
  698. package/dist/lexical/plugins/DecoratorPlugin/index.css +11 -0
  699. package/dist/lexical/plugins/DecoratorPlugin/index.d.ts +1 -1
  700. package/dist/lexical/plugins/DecoratorPlugin/index.d.ts.map +1 -1
  701. package/dist/lexical/plugins/DecoratorPlugin/index.js +25 -21
  702. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  703. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +45 -0
  704. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts +1 -1
  705. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  706. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +28 -14
  707. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  708. package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
  709. package/dist/lexical/plugins/MarkdownShortcut/index.js +1 -1
  710. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  711. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -1
  712. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +21 -0
  713. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -1
  714. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  715. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  716. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -21
  717. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  718. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +1 -1
  719. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  720. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  721. package/dist/lexical/plugins/SlashMenu/index.css +59 -0
  722. package/dist/lexical/plugins/SlashMenu/index.d.ts +1 -1
  723. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  724. package/dist/lexical/plugins/SlashMenu/index.js +2 -0
  725. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  726. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +41 -0
  727. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts +1 -1
  728. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  729. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +3 -2
  730. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  731. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +86 -0
  732. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts +1 -1
  733. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  734. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +32 -11
  735. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  736. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +1 -1
  737. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  738. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts +7 -0
  739. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts.map +1 -0
  740. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js +65 -0
  741. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js.map +1 -0
  742. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
  743. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +2 -0
  744. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  745. package/dist/lexical/theme/EditorTheme.css +356 -0
  746. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
  747. package/dist/lexical/theme/EditorTheme.js +1 -0
  748. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  749. package/dist/lexical/ui/ContentEditable.css +100 -0
  750. package/dist/lexical/ui/ContentEditable.d.ts +3 -2
  751. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
  752. package/dist/lexical/ui/ContentEditable.js +22 -7
  753. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  754. package/dist/lexical/ui/icons/Add/index.d.ts +4 -1
  755. package/dist/lexical/ui/icons/Add/index.d.ts.map +1 -1
  756. package/dist/lexical/ui/icons/Add/index.js +19 -12
  757. package/dist/lexical/ui/icons/Add/index.js.map +1 -1
  758. package/dist/lexical/ui/icons/Add/index.svg +2 -3
  759. package/dist/lexical/ui/icons/Add/light.svg +2 -3
  760. package/dist/lexical/ui/icons/AlignCenter/index.d.ts +3 -1
  761. package/dist/lexical/ui/icons/AlignCenter/index.d.ts.map +1 -1
  762. package/dist/lexical/ui/icons/AlignCenter/index.js +15 -19
  763. package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
  764. package/dist/lexical/ui/icons/AlignJustify/index.d.ts +3 -1
  765. package/dist/lexical/ui/icons/AlignJustify/index.d.ts.map +1 -1
  766. package/dist/lexical/ui/icons/AlignJustify/index.js +15 -19
  767. package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
  768. package/dist/lexical/ui/icons/AlignLeft/index.d.ts +3 -1
  769. package/dist/lexical/ui/icons/AlignLeft/index.d.ts.map +1 -1
  770. package/dist/lexical/ui/icons/AlignLeft/index.js +15 -19
  771. package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
  772. package/dist/lexical/ui/icons/AlignRight/index.d.ts +3 -1
  773. package/dist/lexical/ui/icons/AlignRight/index.d.ts.map +1 -1
  774. package/dist/lexical/ui/icons/AlignRight/index.js +15 -19
  775. package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
  776. package/dist/lexical/ui/icons/Block/index.d.ts +3 -1
  777. package/dist/lexical/ui/icons/Block/index.d.ts.map +1 -1
  778. package/dist/lexical/ui/icons/Block/index.js +13 -28
  779. package/dist/lexical/ui/icons/Block/index.js.map +1 -1
  780. package/dist/lexical/ui/icons/Blockquote/index.d.ts +3 -1
  781. package/dist/lexical/ui/icons/Blockquote/index.d.ts.map +1 -1
  782. package/dist/lexical/ui/icons/Blockquote/index.js +9 -6
  783. package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
  784. package/dist/lexical/ui/icons/Bold/index.d.ts +3 -1
  785. package/dist/lexical/ui/icons/Bold/index.d.ts.map +1 -1
  786. package/dist/lexical/ui/icons/Bold/index.js +13 -8
  787. package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
  788. package/dist/lexical/ui/icons/Checklist/index.d.ts +4 -1
  789. package/dist/lexical/ui/icons/Checklist/index.d.ts.map +1 -1
  790. package/dist/lexical/ui/icons/Checklist/index.js +17 -18
  791. package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
  792. package/dist/lexical/ui/icons/Code/index.d.ts +3 -1
  793. package/dist/lexical/ui/icons/Code/index.d.ts.map +1 -1
  794. package/dist/lexical/ui/icons/Code/index.js +15 -13
  795. package/dist/lexical/ui/icons/Code/index.js.map +1 -1
  796. package/dist/lexical/ui/icons/CodeBlock/index.d.ts +4 -1
  797. package/dist/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -1
  798. package/dist/lexical/ui/icons/CodeBlock/index.js +18 -7
  799. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
  800. package/dist/lexical/ui/icons/Collapse/index.d.ts +3 -1
  801. package/dist/lexical/ui/icons/Collapse/index.d.ts.map +1 -1
  802. package/dist/lexical/ui/icons/Collapse/index.js +10 -8
  803. package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
  804. package/dist/lexical/ui/icons/DraggableBlock/index.svg +7 -7
  805. package/dist/lexical/ui/icons/DraggableBlock/light.svg +7 -7
  806. package/dist/lexical/ui/icons/Expand/index.d.ts +5 -0
  807. package/dist/lexical/ui/icons/Expand/index.d.ts.map +1 -0
  808. package/dist/lexical/ui/icons/Expand/index.js +22 -0
  809. package/dist/lexical/ui/icons/Expand/index.js.map +1 -0
  810. package/dist/lexical/ui/icons/H1/index.d.ts +3 -1
  811. package/dist/lexical/ui/icons/H1/index.d.ts.map +1 -1
  812. package/dist/lexical/ui/icons/H1/index.js +9 -6
  813. package/dist/lexical/ui/icons/H1/index.js.map +1 -1
  814. package/dist/lexical/ui/icons/H2/index.d.ts +3 -1
  815. package/dist/lexical/ui/icons/H2/index.d.ts.map +1 -1
  816. package/dist/lexical/ui/icons/H2/index.js +9 -6
  817. package/dist/lexical/ui/icons/H2/index.js.map +1 -1
  818. package/dist/lexical/ui/icons/H3/index.d.ts +3 -1
  819. package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
  820. package/dist/lexical/ui/icons/H3/index.js +19 -9
  821. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  822. package/dist/lexical/ui/icons/H4/index.d.ts +3 -1
  823. package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
  824. package/dist/lexical/ui/icons/H4/index.js +19 -9
  825. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  826. package/dist/lexical/ui/icons/H5/index.d.ts +3 -1
  827. package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
  828. package/dist/lexical/ui/icons/H5/index.js +19 -9
  829. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  830. package/dist/lexical/ui/icons/H6/index.d.ts +3 -1
  831. package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
  832. package/dist/lexical/ui/icons/H6/index.js +19 -9
  833. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  834. package/dist/lexical/ui/icons/HorizontalRule/index.d.ts +3 -1
  835. package/dist/lexical/ui/icons/HorizontalRule/index.d.ts.map +1 -1
  836. package/dist/lexical/ui/icons/HorizontalRule/index.js +11 -11
  837. package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
  838. package/dist/lexical/ui/icons/IndentDecrease/index.d.ts +3 -1
  839. package/dist/lexical/ui/icons/IndentDecrease/index.d.ts.map +1 -1
  840. package/dist/lexical/ui/icons/IndentDecrease/index.js +18 -22
  841. package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
  842. package/dist/lexical/ui/icons/IndentIncrease/index.d.ts +3 -1
  843. package/dist/lexical/ui/icons/IndentIncrease/index.d.ts.map +1 -1
  844. package/dist/lexical/ui/icons/IndentIncrease/index.js +15 -22
  845. package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
  846. package/dist/lexical/ui/icons/InlineBlocks/index.d.ts +3 -1
  847. package/dist/lexical/ui/icons/InlineBlocks/index.d.ts.map +1 -1
  848. package/dist/lexical/ui/icons/InlineBlocks/index.js +9 -6
  849. package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
  850. package/dist/lexical/ui/icons/Italic/index.d.ts +3 -1
  851. package/dist/lexical/ui/icons/Italic/index.d.ts.map +1 -1
  852. package/dist/lexical/ui/icons/Italic/index.js +13 -8
  853. package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
  854. package/dist/lexical/ui/icons/Link/index.d.ts +4 -1
  855. package/dist/lexical/ui/icons/Link/index.d.ts.map +1 -1
  856. package/dist/lexical/ui/icons/Link/index.js +14 -9
  857. package/dist/lexical/ui/icons/Link/index.js.map +1 -1
  858. package/dist/lexical/ui/icons/Meatballs/index.d.ts +4 -1
  859. package/dist/lexical/ui/icons/Meatballs/index.d.ts.map +1 -1
  860. package/dist/lexical/ui/icons/Meatballs/index.js +19 -15
  861. package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
  862. package/dist/lexical/ui/icons/OrderedList/index.d.ts +4 -1
  863. package/dist/lexical/ui/icons/OrderedList/index.d.ts.map +1 -1
  864. package/dist/lexical/ui/icons/OrderedList/index.js +19 -25
  865. package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
  866. package/dist/lexical/ui/icons/Page/index.d.ts +5 -0
  867. package/dist/lexical/ui/icons/Page/index.d.ts.map +1 -0
  868. package/dist/lexical/ui/icons/Page/index.js +21 -0
  869. package/dist/lexical/ui/icons/Page/index.js.map +1 -0
  870. package/dist/lexical/ui/icons/Relationship/index.d.ts +3 -1
  871. package/dist/lexical/ui/icons/Relationship/index.d.ts.map +1 -1
  872. package/dist/lexical/ui/icons/Relationship/index.js +13 -25
  873. package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
  874. package/dist/lexical/ui/icons/Strikethrough/index.d.ts +3 -1
  875. package/dist/lexical/ui/icons/Strikethrough/index.d.ts.map +1 -1
  876. package/dist/lexical/ui/icons/Strikethrough/index.js +13 -13
  877. package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
  878. package/dist/lexical/ui/icons/Subscript/index.d.ts +3 -1
  879. package/dist/lexical/ui/icons/Subscript/index.d.ts.map +1 -1
  880. package/dist/lexical/ui/icons/Subscript/index.js +10 -7
  881. package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
  882. package/dist/lexical/ui/icons/Superscript/index.d.ts +3 -1
  883. package/dist/lexical/ui/icons/Superscript/index.d.ts.map +1 -1
  884. package/dist/lexical/ui/icons/Superscript/index.js +10 -7
  885. package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
  886. package/dist/lexical/ui/icons/Table/index.d.ts +4 -1
  887. package/dist/lexical/ui/icons/Table/index.d.ts.map +1 -1
  888. package/dist/lexical/ui/icons/Table/index.js +20 -15
  889. package/dist/lexical/ui/icons/Table/index.js.map +1 -1
  890. package/dist/lexical/ui/icons/Text/index.d.ts +4 -1
  891. package/dist/lexical/ui/icons/Text/index.d.ts.map +1 -1
  892. package/dist/lexical/ui/icons/Text/index.js +17 -8
  893. package/dist/lexical/ui/icons/Text/index.js.map +1 -1
  894. package/dist/lexical/ui/icons/Trash/index.d.ts +10 -0
  895. package/dist/lexical/ui/icons/Trash/index.d.ts.map +1 -0
  896. package/dist/lexical/ui/icons/Trash/index.js +29 -0
  897. package/dist/lexical/ui/icons/Trash/index.js.map +1 -0
  898. package/dist/lexical/ui/icons/Underline/index.d.ts +3 -1
  899. package/dist/lexical/ui/icons/Underline/index.d.ts.map +1 -1
  900. package/dist/lexical/ui/icons/Underline/index.js +16 -14
  901. package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
  902. package/dist/lexical/ui/icons/UnorderedList/index.d.ts +3 -1
  903. package/dist/lexical/ui/icons/UnorderedList/index.d.ts.map +1 -1
  904. package/dist/lexical/ui/icons/UnorderedList/index.js +13 -40
  905. package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
  906. package/dist/lexical/ui/icons/Upload/index.d.ts +3 -1
  907. package/dist/lexical/ui/icons/Upload/index.d.ts.map +1 -1
  908. package/dist/lexical/ui/icons/Upload/index.js +15 -22
  909. package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
  910. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts +17 -0
  911. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts.map +1 -0
  912. package/dist/lexical/utils/markdown/convertFromMarkdownString.js +27 -0
  913. package/dist/lexical/utils/markdown/convertFromMarkdownString.js.map +1 -0
  914. package/dist/lexical/utils/markdown/createBlockNode.d.ts +2 -2
  915. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  916. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  917. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts +25 -0
  918. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts.map +1 -0
  919. package/dist/lexical/utils/markdown/normalizeMarkdown.js +91 -0
  920. package/dist/lexical/utils/markdown/normalizeMarkdown.js.map +1 -0
  921. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  922. package/dist/lexical/utils/point.d.ts.map +1 -1
  923. package/dist/lexical/utils/rect.d.ts.map +1 -1
  924. package/dist/lexical-proxy/@lexical-markdown.d.ts +1 -1
  925. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -1
  926. package/dist/lexical-proxy/@lexical-markdown.js +1 -1
  927. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
  928. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -1
  929. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -1
  930. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -1
  931. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -1
  932. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -1
  933. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -1
  934. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -1
  935. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -1
  936. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -1
  937. package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -1
  938. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -1
  939. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -1
  940. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -1
  941. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -1
  942. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -1
  943. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -1
  944. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -1
  945. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -1
  946. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  947. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  948. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  949. package/dist/presets/llmInstructions.d.ts +2 -0
  950. package/dist/presets/llmInstructions.d.ts.map +1 -0
  951. package/dist/presets/llmInstructions.js +13 -0
  952. package/dist/presets/llmInstructions.js.map +1 -0
  953. package/dist/types/builtInNodes.d.ts +14 -0
  954. package/dist/types/builtInNodes.d.ts.map +1 -0
  955. package/dist/types/builtInNodes.js +208 -0
  956. package/dist/types/builtInNodes.js.map +1 -0
  957. package/dist/{types.d.ts → types/index.d.ts} +29 -33
  958. package/dist/types/index.d.ts.map +1 -0
  959. package/dist/types/index.js +2 -0
  960. package/dist/types/index.js.map +1 -0
  961. package/dist/types/jsonSchemaHelpers.d.ts +34 -0
  962. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -0
  963. package/dist/types/jsonSchemaHelpers.js +63 -0
  964. package/dist/types/jsonSchemaHelpers.js.map +1 -0
  965. package/dist/types/nodeTypes.d.ts +133 -0
  966. package/dist/types/nodeTypes.d.ts.map +1 -0
  967. package/dist/types/nodeTypes.js +6 -0
  968. package/dist/types/nodeTypes.js.map +1 -0
  969. package/dist/types/schema.d.ts +6 -0
  970. package/dist/types/schema.d.ts.map +1 -0
  971. package/dist/types/schema.js +90 -0
  972. package/dist/types/schema.js.map +1 -0
  973. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  974. package/dist/utilities/applyBaseFilterToFields.js +1 -2
  975. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  976. package/dist/utilities/buildEditorState.d.ts +18 -4
  977. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  978. package/dist/utilities/buildEditorState.js +21 -0
  979. package/dist/utilities/buildEditorState.js.map +1 -1
  980. package/dist/utilities/buildInitialState.d.ts +4 -2
  981. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  982. package/dist/utilities/buildInitialState.js +1 -0
  983. package/dist/utilities/buildInitialState.js.map +1 -1
  984. package/dist/utilities/createClientFeature.d.ts +1 -1
  985. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  986. package/dist/utilities/createClientFeature.js.map +1 -1
  987. package/dist/utilities/createServerFeature.d.ts +1 -1
  988. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  989. package/dist/utilities/createServerFeature.js +2 -2
  990. package/dist/utilities/createServerFeature.js.map +1 -1
  991. package/dist/utilities/editorConfigFactory.d.ts +7 -7
  992. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  993. package/dist/utilities/editorConfigFactory.js +9 -9
  994. package/dist/utilities/editorConfigFactory.js.map +1 -1
  995. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  996. package/dist/utilities/fieldsDrawer/Drawer.js +19 -10
  997. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  998. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -1
  999. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  1000. package/dist/utilities/fieldsDrawer/DrawerContent.js +39 -40
  1001. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  1002. package/dist/utilities/fieldsDrawer/index.css +12 -0
  1003. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +29 -0
  1004. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -0
  1005. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js +97 -0
  1006. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -0
  1007. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts +1 -0
  1008. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  1009. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +34 -18
  1010. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  1011. package/dist/utilities/generateImportMap.d.ts +3 -3
  1012. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  1013. package/dist/utilities/generateImportMap.js.map +1 -1
  1014. package/dist/utilities/generateSchemaMap.d.ts +1 -1
  1015. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  1016. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  1017. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  1018. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  1019. package/dist/utilities/initLexicalFeatures.d.ts +1 -1
  1020. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
  1021. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  1022. package/dist/utilities/upgradeLexicalData/index.js +6 -3
  1023. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  1024. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +1 -1
  1025. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  1026. package/dist/validate/hasText.d.ts +2 -2
  1027. package/dist/validate/hasText.d.ts.map +1 -1
  1028. package/dist/validate/hasText.js.map +1 -1
  1029. package/dist/validate/index.d.ts +1 -1
  1030. package/dist/validate/index.d.ts.map +1 -1
  1031. package/package.json +80 -86
  1032. package/dist/dependencyChecker.spec.js +0 -16
  1033. package/dist/dependencyChecker.spec.js.map +0 -1
  1034. package/dist/exports/client/Component-DOSSWC76.js +0 -2
  1035. package/dist/exports/client/Component-DOSSWC76.js.map +0 -7
  1036. package/dist/exports/client/Component-MBLHTKDK.js +0 -2
  1037. package/dist/exports/client/Component-MBLHTKDK.js.map +0 -7
  1038. package/dist/exports/client/Field-YZR46UCY.js +0 -2
  1039. package/dist/exports/client/Field-YZR46UCY.js.map +0 -7
  1040. package/dist/exports/client/RelationshipComponent-BG3DPV3T.js +0 -2
  1041. package/dist/exports/client/RelationshipComponent-BG3DPV3T.js.map +0 -7
  1042. package/dist/exports/client/bundled.css +0 -1
  1043. package/dist/exports/client/chunk-BZZVLW4U.js.map +0 -7
  1044. package/dist/exports/client/chunk-F26IQ5RE.js +0 -2
  1045. package/dist/exports/client/chunk-F26IQ5RE.js.map +0 -7
  1046. package/dist/exports/client/chunk-INBEEENE.js +0 -2
  1047. package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
  1048. package/dist/exports/client/chunk-OSMEE5HW.js +0 -2
  1049. package/dist/exports/client/chunk-OSMEE5HW.js.map +0 -7
  1050. package/dist/exports/client/chunk-QAW5QKEM.js +0 -12
  1051. package/dist/exports/client/chunk-QAW5QKEM.js.map +0 -7
  1052. package/dist/exports/client/chunk-XFA5M7FY.js +0 -2
  1053. package/dist/exports/client/chunk-XFA5M7FY.js.map +0 -7
  1054. package/dist/exports/client/component-UBRNPIQ6.js +0 -2
  1055. package/dist/exports/client/component-UBRNPIQ6.js.map +0 -7
  1056. package/dist/exports/client/componentInline-A4H3EY3L.js +0 -2
  1057. package/dist/exports/server/migrate.d.ts +0 -16
  1058. package/dist/exports/server/migrate.d.ts.map +0 -1
  1059. package/dist/exports/server/migrate.js +0 -16
  1060. package/dist/exports/server/migrate.js.map +0 -1
  1061. package/dist/features/blockquote/markdownTransformer.d.ts +0 -3
  1062. package/dist/features/blockquote/markdownTransformer.d.ts.map +0 -1
  1063. package/dist/features/blockquote/markdownTransformer.js +0 -33
  1064. package/dist/features/blockquote/markdownTransformer.js.map +0 -1
  1065. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts +0 -11
  1066. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +0 -1
  1067. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +0 -20
  1068. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +0 -1
  1069. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.d.ts +0 -4
  1070. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.d.ts.map +0 -1
  1071. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js +0 -7
  1072. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js.map +0 -1
  1073. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.d.ts +0 -4
  1074. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.d.ts.map +0 -1
  1075. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js +0 -38
  1076. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js.map +0 -1
  1077. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.d.ts +0 -4
  1078. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.d.ts.map +0 -1
  1079. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js +0 -9
  1080. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js.map +0 -1
  1081. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.d.ts +0 -4
  1082. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.d.ts.map +0 -1
  1083. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js +0 -33
  1084. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js.map +0 -1
  1085. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.d.ts +0 -6
  1086. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.d.ts.map +0 -1
  1087. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js +0 -9
  1088. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js.map +0 -1
  1089. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.d.ts +0 -70
  1090. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.d.ts.map +0 -1
  1091. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js +0 -104
  1092. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js.map +0 -1
  1093. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.d.ts +0 -27
  1094. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.d.ts.map +0 -1
  1095. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js +0 -2
  1096. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js.map +0 -1
  1097. package/dist/features/converters/lexicalToHtml_deprecated/field/index.d.ts +0 -39
  1098. package/dist/features/converters/lexicalToHtml_deprecated/field/index.d.ts.map +0 -1
  1099. package/dist/features/converters/lexicalToHtml_deprecated/field/index.js +0 -122
  1100. package/dist/features/converters/lexicalToHtml_deprecated/field/index.js.map +0 -1
  1101. package/dist/features/converters/lexicalToHtml_deprecated/index.d.ts +0 -12
  1102. package/dist/features/converters/lexicalToHtml_deprecated/index.d.ts.map +0 -1
  1103. package/dist/features/converters/lexicalToHtml_deprecated/index.js +0 -11
  1104. package/dist/features/converters/lexicalToHtml_deprecated/index.js.map +0 -1
  1105. package/dist/features/converters/lexicalToJSX/Component/nodeTags.spec.js +0 -114
  1106. package/dist/features/converters/lexicalToJSX/Component/nodeTags.spec.js.map +0 -1
  1107. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +0 -180
  1108. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +0 -1
  1109. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  1110. package/dist/features/experimental_table/client/index.js.map +0 -1
  1111. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts.map +0 -1
  1112. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js.map +0 -1
  1113. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  1114. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  1115. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  1116. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  1117. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  1118. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  1119. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  1120. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +0 -152
  1121. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  1122. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  1123. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  1124. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  1125. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  1126. package/dist/features/experimental_table/markdownTransformer.d.ts +0 -5
  1127. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  1128. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  1129. package/dist/features/experimental_table/server/index.d.ts +0 -8
  1130. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  1131. package/dist/features/experimental_table/server/index.js +0 -154
  1132. package/dist/features/experimental_table/server/index.js.map +0 -1
  1133. package/dist/features/format/bold/markdownTransformers.d.ts +0 -6
  1134. package/dist/features/format/bold/markdownTransformers.d.ts.map +0 -1
  1135. package/dist/features/format/bold/markdownTransformers.js +0 -23
  1136. package/dist/features/format/bold/markdownTransformers.js.map +0 -1
  1137. package/dist/features/format/inlineCode/markdownTransformers.d.ts +0 -3
  1138. package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +0 -1
  1139. package/dist/features/format/inlineCode/markdownTransformers.js +0 -6
  1140. package/dist/features/format/inlineCode/markdownTransformers.js.map +0 -1
  1141. package/dist/features/format/italic/markdownTransformers.d.ts +0 -4
  1142. package/dist/features/format/italic/markdownTransformers.d.ts.map +0 -1
  1143. package/dist/features/format/italic/markdownTransformers.js +0 -12
  1144. package/dist/features/format/italic/markdownTransformers.js.map +0 -1
  1145. package/dist/features/format/strikethrough/markdownTransformers.d.ts +0 -3
  1146. package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +0 -1
  1147. package/dist/features/format/strikethrough/markdownTransformers.js +0 -6
  1148. package/dist/features/format/strikethrough/markdownTransformers.js.map +0 -1
  1149. package/dist/features/link/markdownTransformer.spec.js +0 -195
  1150. package/dist/features/link/markdownTransformer.spec.js.map +0 -1
  1151. package/dist/features/link/nodes/types.d.ts +0 -27
  1152. package/dist/features/link/nodes/types.d.ts.map +0 -1
  1153. package/dist/features/link/nodes/types.js +0 -2
  1154. package/dist/features/link/nodes/types.js.map +0 -1
  1155. package/dist/features/lists/checklist/markdownTransformers.d.ts +0 -3
  1156. package/dist/features/lists/checklist/markdownTransformers.d.ts.map +0 -1
  1157. package/dist/features/lists/checklist/markdownTransformers.js +0 -12
  1158. package/dist/features/lists/checklist/markdownTransformers.js.map +0 -1
  1159. package/dist/features/lists/htmlConverter.d.ts +0 -5
  1160. package/dist/features/lists/htmlConverter.d.ts.map +0 -1
  1161. package/dist/features/lists/htmlConverter.js +0 -84
  1162. package/dist/features/lists/htmlConverter.js.map +0 -1
  1163. package/dist/features/lists/orderedList/markdownTransformer.d.ts +0 -3
  1164. package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +0 -1
  1165. package/dist/features/lists/orderedList/markdownTransformer.js +0 -12
  1166. package/dist/features/lists/orderedList/markdownTransformer.js.map +0 -1
  1167. package/dist/features/lists/shared/markdown.d.ts +0 -6
  1168. package/dist/features/lists/shared/markdown.d.ts.map +0 -1
  1169. package/dist/features/lists/shared/markdown.js +0 -57
  1170. package/dist/features/lists/shared/markdown.js.map +0 -1
  1171. package/dist/features/lists/unorderedList/markdownTransformer.d.ts +0 -3
  1172. package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +0 -1
  1173. package/dist/features/lists/unorderedList/markdownTransformer.js +0 -12
  1174. package/dist/features/lists/unorderedList/markdownTransformer.js.map +0 -1
  1175. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +0 -3
  1176. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +0 -1
  1177. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +0 -22
  1178. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +0 -1
  1179. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +0 -3
  1180. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +0 -1
  1181. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +0 -33
  1182. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +0 -1
  1183. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +0 -3
  1184. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +0 -1
  1185. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +0 -24
  1186. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +0 -1
  1187. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +0 -3
  1188. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +0 -1
  1189. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +0 -25
  1190. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +0 -1
  1191. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +0 -3
  1192. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +0 -1
  1193. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +0 -22
  1194. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +0 -1
  1195. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +0 -3
  1196. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +0 -1
  1197. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +0 -28
  1198. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +0 -1
  1199. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +0 -3
  1200. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +0 -1
  1201. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +0 -22
  1202. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +0 -1
  1203. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +0 -3
  1204. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +0 -1
  1205. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +0 -9
  1206. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +0 -1
  1207. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts +0 -19
  1208. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +0 -1
  1209. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +0 -78
  1210. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +0 -1
  1211. package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts +0 -23
  1212. package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts.map +0 -1
  1213. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js +0 -2
  1214. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +0 -1
  1215. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts +0 -2
  1216. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +0 -1
  1217. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +0 -10
  1218. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +0 -1
  1219. package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts +0 -10
  1220. package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +0 -1
  1221. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +0 -49
  1222. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +0 -1
  1223. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts +0 -9
  1224. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
  1225. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +0 -15
  1226. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +0 -1
  1227. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +0 -33
  1228. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
  1229. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +0 -74
  1230. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +0 -1
  1231. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +0 -3
  1232. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +0 -1
  1233. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +0 -23
  1234. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +0 -1
  1235. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +0 -3
  1236. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +0 -1
  1237. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +0 -24
  1238. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +0 -1
  1239. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +0 -3
  1240. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +0 -1
  1241. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +0 -33
  1242. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +0 -1
  1243. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +0 -3
  1244. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +0 -1
  1245. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +0 -30
  1246. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +0 -1
  1247. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +0 -3
  1248. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +0 -1
  1249. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +0 -26
  1250. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +0 -1
  1251. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +0 -3
  1252. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +0 -1
  1253. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +0 -26
  1254. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +0 -1
  1255. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +0 -3
  1256. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +0 -1
  1257. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +0 -15
  1258. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +0 -1
  1259. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +0 -3
  1260. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +0 -1
  1261. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +0 -27
  1262. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +0 -1
  1263. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +0 -3
  1264. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +0 -1
  1265. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +0 -26
  1266. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +0 -1
  1267. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +0 -3
  1268. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +0 -1
  1269. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +0 -18
  1270. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +0 -1
  1271. package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts +0 -3
  1272. package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +0 -1
  1273. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +0 -12
  1274. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +0 -1
  1275. package/dist/features/migrations/slateToLexical/converter/index.d.ts +0 -19
  1276. package/dist/features/migrations/slateToLexical/converter/index.d.ts.map +0 -1
  1277. package/dist/features/migrations/slateToLexical/converter/index.js +0 -130
  1278. package/dist/features/migrations/slateToLexical/converter/index.js.map +0 -1
  1279. package/dist/features/migrations/slateToLexical/converter/types.d.ts +0 -16
  1280. package/dist/features/migrations/slateToLexical/converter/types.d.ts.map +0 -1
  1281. package/dist/features/migrations/slateToLexical/converter/types.js +0 -2
  1282. package/dist/features/migrations/slateToLexical/converter/types.js.map +0 -1
  1283. package/dist/features/migrations/slateToLexical/feature.client.d.ts +0 -2
  1284. package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +0 -1
  1285. package/dist/features/migrations/slateToLexical/feature.client.js +0 -10
  1286. package/dist/features/migrations/slateToLexical/feature.client.js.map +0 -1
  1287. package/dist/features/migrations/slateToLexical/feature.server.d.ts +0 -40
  1288. package/dist/features/migrations/slateToLexical/feature.server.d.ts.map +0 -1
  1289. package/dist/features/migrations/slateToLexical/feature.server.js +0 -68
  1290. package/dist/features/migrations/slateToLexical/feature.server.js.map +0 -1
  1291. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts +0 -9
  1292. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
  1293. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +0 -15
  1294. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +0 -1
  1295. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +0 -33
  1296. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
  1297. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +0 -74
  1298. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +0 -1
  1299. package/dist/lexical/ui/icons/AI/index.d.ts +0 -3
  1300. package/dist/lexical/ui/icons/AI/index.d.ts.map +0 -1
  1301. package/dist/lexical/ui/icons/AI/index.js +0 -34
  1302. package/dist/lexical/ui/icons/AI/index.js.map +0 -1
  1303. package/dist/lexical/ui/icons/Caret/index.svg +0 -3
  1304. package/dist/lexical/ui/icons/Edit/index.svg +0 -10
  1305. package/dist/lexical/ui/icons/Remove/index.svg +0 -4
  1306. package/dist/lexical/utils/guard.d.ts +0 -5
  1307. package/dist/lexical/utils/guard.d.ts.map +0 -1
  1308. package/dist/lexical/utils/guard.js +0 -9
  1309. package/dist/lexical/utils/guard.js.map +0 -1
  1310. package/dist/lexical/utils/url.spec.js +0 -114
  1311. package/dist/lexical/utils/url.spec.js.map +0 -1
  1312. package/dist/nodeTypes.d.ts +0 -74
  1313. package/dist/nodeTypes.d.ts.map +0 -1
  1314. package/dist/nodeTypes.js +0 -5
  1315. package/dist/nodeTypes.js.map +0 -1
  1316. package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js +0 -160
  1317. package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js.map +0 -1
  1318. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts +0 -14
  1319. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +0 -1
  1320. package/dist/packages/@lexical/markdown/MarkdownExport.js +0 -220
  1321. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +0 -1
  1322. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts +0 -19
  1323. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +0 -1
  1324. package/dist/packages/@lexical/markdown/MarkdownImport.js +0 -199
  1325. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +0 -1
  1326. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts +0 -11
  1327. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +0 -1
  1328. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +0 -304
  1329. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +0 -1
  1330. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +0 -173
  1331. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +0 -1
  1332. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +0 -352
  1333. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +0 -1
  1334. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts +0 -22
  1335. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +0 -1
  1336. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +0 -91
  1337. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +0 -1
  1338. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts +0 -21
  1339. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +0 -1
  1340. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +0 -54
  1341. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +0 -1
  1342. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts +0 -18
  1343. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts.map +0 -1
  1344. package/dist/packages/@lexical/markdown/importTextTransformers.js +0 -54
  1345. package/dist/packages/@lexical/markdown/importTextTransformers.js.map +0 -1
  1346. package/dist/packages/@lexical/markdown/index.d.ts +0 -29
  1347. package/dist/packages/@lexical/markdown/index.d.ts.map +0 -1
  1348. package/dist/packages/@lexical/markdown/index.js +0 -39
  1349. package/dist/packages/@lexical/markdown/index.js.map +0 -1
  1350. package/dist/packages/@lexical/markdown/utils.d.ts +0 -34
  1351. package/dist/packages/@lexical/markdown/utils.d.ts.map +0 -1
  1352. package/dist/packages/@lexical/markdown/utils.js +0 -267
  1353. package/dist/packages/@lexical/markdown/utils.js.map +0 -1
  1354. package/dist/types.d.ts.map +0 -1
  1355. package/dist/types.js +0 -2
  1356. package/dist/types.js.map +0 -1
  1357. package/dist/utilities/jsx/jsx.spec.js +0 -178
  1358. package/dist/utilities/jsx/jsx.spec.js.map +0 -1
  1359. package/dist/utilities/migrateSlateToLexical/index.d.ts +0 -15
  1360. package/dist/utilities/migrateSlateToLexical/index.d.ts.map +0 -1
  1361. package/dist/utilities/migrateSlateToLexical/index.js +0 -152
  1362. package/dist/utilities/migrateSlateToLexical/index.js.map +0 -1
  1363. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +0 -10
  1364. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +0 -1
  1365. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +0 -85
  1366. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +0 -1
  1367. /package/dist/exports/client/{componentInline-A4H3EY3L.js.map → componentInline-HNE5G4TE.js.map} +0 -0
  1368. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  1369. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts +0 -0
  1370. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/computeSelectionCount.js +0 -0
  1371. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  1372. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  1373. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  1374. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  1375. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","mergeRegister","$createTextNode","$getSelection","$isElementNode","$isLineBreakNode","$isNodeSelection","$isRangeSelection","$isTextNode","TextNode","TextNodeValue","useEffect","$createAutoLinkNode","$isAutoLinkNode","AutoLinkNode","$isLinkNode","createLinkMatcherWithRegExp","regExp","urlTransformer","text","match","exec","index","length","url","findFirstMatch","matchers","matcher","PUNCTUATION_OR_SPACE","isSeparator","char","undefined","test","endsWithSeparator","textContent","startsWithSeparator","startsWithTLD","isEmail","isPreviousNodeValid","node","previousNode","getPreviousSibling","getLastDescendant","getTextContent","isNextNodeValid","nextNode","getNextSibling","getFirstDescendant","isContentAroundIsValid","matchStart","matchEnd","nodes","contentBeforeIsValid","contentAfterIsValid","extractMatchingNodes","startIndex","endIndex","unmodifiedBeforeNodes","matchingNodes","unmodifiedAfterNodes","matchingOffset","currentOffset","currentNodes","currentNode","currentNodeText","currentNodeLength","currentNodeStart","currentNodeEnd","push","shift","$createAutoLinkNode_","fields","linkType","linkNode","remainingTextNode","linkTextNode","splitText","textNode","setFormat","getFormat","setDetail","getDetail","setStyle","getStyle","append","replace","firstTextNode","offset","firstLinkTextNode","linkNodes","forEach","endNode","selection","selectedTextNode","getNodes","find","select","anchor","focus","$handleLinkCreation","onChange","initialText","map","join","invalidMatchEnd","matchLength","isValid","actualMatchStart","actualMatchEnd","substring","handleLinkEdit","children","getChildren","childrenLength","i","child","isSimpleText","replaceWithChildren","getFields","flds","setFields","handleBadNeighbors","previousSibling","nextSibling","isEmailURI","startsWith","j","insertAfter","remove","getLatest","getTextNodesToMatch","textNodesToMatch","useAutoLink","editor","$","t0","t1","hasNodes","Error","onChangeWrapped","prevUrl","registerNodeTransform","parent","getParentOrThrow","previous","URL_REGEX","EMAIL_REGEX","MATCHERS","AutoLinkPlugin"],"sources":["../../../../../../src/features/link/client/plugins/autoLink/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalEditor, LexicalNode, TextNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isLineBreakNode,\n $isNodeSelection,\n $isRangeSelection,\n $isTextNode,\n TextNode as TextNodeValue,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { LinkFields } from '../../../nodes/types.js'\nimport type { ClientProps } from '../../index.js'\n\nimport { $createAutoLinkNode, $isAutoLinkNode, AutoLinkNode } from '../../../nodes/AutoLinkNode.js'\nimport { $isLinkNode } from '../../../nodes/LinkNode.js'\n\ntype ChangeHandler = (url: null | string, prevUrl: null | string) => void\n\ninterface LinkMatcherResult {\n fields?: LinkFields\n index: number\n length: number\n text: string\n url: string\n}\n\nexport type LinkMatcher = (text: string) => LinkMatcherResult | null\n\nexport function createLinkMatcherWithRegExp(\n regExp: RegExp,\n urlTransformer: (text: string) => string = (text) => text,\n) {\n return (text: string) => {\n const match = regExp.exec(text)\n if (match === null) {\n return null\n }\n return {\n index: match.index,\n length: match[0].length,\n text: match[0],\n url: urlTransformer(match[0]),\n }\n }\n}\n\nfunction findFirstMatch(text: string, matchers: LinkMatcher[]): LinkMatcherResult | null {\n for (const matcher of matchers) {\n const match = matcher(text)\n\n if (match != null) {\n return match\n }\n }\n\n return null\n}\n\nconst PUNCTUATION_OR_SPACE = /[.,;\\s]/\n\nfunction isSeparator(char: string | undefined): boolean {\n return char !== undefined && PUNCTUATION_OR_SPACE.test(char)\n}\n\nfunction endsWithSeparator(textContent: string): boolean {\n return isSeparator(textContent[textContent.length - 1])\n}\n\nfunction startsWithSeparator(textContent: string): boolean {\n return isSeparator(textContent[0])\n}\n\n/**\n * Check if the text content starts with a fullstop followed by a top-level domain.\n * Meaning if the text content can be a beginning of a top level domain.\n * @param textContent\n * @param isEmail\n * @returns boolean\n */\nfunction startsWithTLD(textContent: string, isEmail: boolean): boolean {\n if (isEmail) {\n return /^\\.[a-z]{2,}/i.test(textContent)\n } else {\n return /^\\.[a-z0-9]+/i.test(textContent)\n }\n}\n\nfunction isPreviousNodeValid(node: LexicalNode): boolean {\n let previousNode = node.getPreviousSibling()\n if ($isElementNode(previousNode)) {\n previousNode = previousNode.getLastDescendant()\n }\n return (\n previousNode === null ||\n $isLineBreakNode(previousNode) ||\n ($isTextNode(previousNode) && endsWithSeparator(previousNode.getTextContent()))\n )\n}\n\nfunction isNextNodeValid(node: LexicalNode): boolean {\n let nextNode = node.getNextSibling()\n if ($isElementNode(nextNode)) {\n nextNode = nextNode.getFirstDescendant()\n }\n return (\n nextNode === null ||\n $isLineBreakNode(nextNode) ||\n ($isTextNode(nextNode) && startsWithSeparator(nextNode.getTextContent()))\n )\n}\n\nfunction isContentAroundIsValid(\n matchStart: number,\n matchEnd: number,\n text: string,\n nodes: TextNode[],\n): boolean {\n const contentBeforeIsValid =\n matchStart > 0 ? isSeparator(text[matchStart - 1]) : isPreviousNodeValid(nodes[0]!)\n if (!contentBeforeIsValid) {\n return false\n }\n\n const contentAfterIsValid =\n matchEnd < text.length ? isSeparator(text[matchEnd]) : isNextNodeValid(nodes[nodes.length - 1]!)\n return contentAfterIsValid\n}\n\nfunction extractMatchingNodes(\n nodes: TextNode[],\n startIndex: number,\n endIndex: number,\n): [\n matchingOffset: number,\n unmodifiedBeforeNodes: TextNode[],\n matchingNodes: TextNode[],\n unmodifiedAfterNodes: TextNode[],\n] {\n const unmodifiedBeforeNodes: TextNode[] = []\n const matchingNodes: TextNode[] = []\n const unmodifiedAfterNodes: TextNode[] = []\n let matchingOffset = 0\n\n let currentOffset = 0\n const currentNodes = [...nodes]\n\n while (currentNodes.length > 0) {\n const currentNode = currentNodes[0]!\n const currentNodeText = currentNode.getTextContent()\n const currentNodeLength = currentNodeText.length\n const currentNodeStart = currentOffset\n const currentNodeEnd = currentOffset + currentNodeLength\n\n if (currentNodeEnd <= startIndex) {\n unmodifiedBeforeNodes.push(currentNode)\n matchingOffset += currentNodeLength\n } else if (currentNodeStart >= endIndex) {\n unmodifiedAfterNodes.push(currentNode)\n } else {\n matchingNodes.push(currentNode)\n }\n currentOffset += currentNodeLength\n currentNodes.shift()\n }\n return [matchingOffset, unmodifiedBeforeNodes, matchingNodes, unmodifiedAfterNodes]\n}\n\nfunction $createAutoLinkNode_(\n nodes: TextNode[],\n startIndex: number,\n endIndex: number,\n match: LinkMatcherResult,\n): TextNode | undefined {\n const fields = {\n linkType: 'custom',\n url: match.url,\n ...match.fields,\n } as LinkFields\n\n const linkNode = $createAutoLinkNode({ fields })\n if (nodes.length === 1) {\n const remainingTextNode = nodes[0]!\n let linkTextNode: TextNode | undefined\n if (startIndex === 0) {\n ;[linkTextNode] = remainingTextNode.splitText(endIndex)\n } else {\n ;[, linkTextNode] = remainingTextNode.splitText(startIndex, endIndex)\n }\n if (linkTextNode) {\n const textNode = $createTextNode(match.text)\n textNode.setFormat(linkTextNode.getFormat())\n textNode.setDetail(linkTextNode.getDetail())\n textNode.setStyle(linkTextNode.getStyle())\n linkNode.append(textNode)\n linkTextNode.replace(linkNode)\n }\n return remainingTextNode\n } else if (nodes.length > 1) {\n const firstTextNode = nodes[0]!\n let offset = firstTextNode.getTextContent().length\n let firstLinkTextNode\n if (startIndex === 0) {\n firstLinkTextNode = firstTextNode\n } else {\n ;[, firstLinkTextNode] = firstTextNode.splitText(startIndex)\n }\n const linkNodes: LexicalNode[] = []\n let remainingTextNode\n nodes.forEach((currentNode) => {\n const currentNodeText = currentNode.getTextContent()\n const currentNodeLength = currentNodeText.length\n const currentNodeStart = offset\n const currentNodeEnd = offset + currentNodeLength\n if (currentNodeStart < endIndex) {\n if (currentNodeEnd <= endIndex) {\n linkNodes.push(currentNode)\n } else {\n const [linkTextNode, endNode] = currentNode.splitText(endIndex - currentNodeStart)\n if (linkTextNode) {\n linkNodes.push(linkTextNode)\n }\n remainingTextNode = endNode\n }\n }\n offset += currentNodeLength\n })\n\n if (firstLinkTextNode) {\n const selection = $getSelection()\n const selectedTextNode = selection ? selection.getNodes().find($isTextNode) : undefined\n const textNode = $createTextNode(firstLinkTextNode.getTextContent())\n textNode.setFormat(firstLinkTextNode.getFormat())\n textNode.setDetail(firstLinkTextNode.getDetail())\n textNode.setStyle(firstLinkTextNode.getStyle())\n linkNode.append(textNode, ...linkNodes)\n // it does not preserve caret position if caret was at the first text node\n // so we need to restore caret position\n if (selectedTextNode && selectedTextNode === firstLinkTextNode) {\n if ($isRangeSelection(selection)) {\n textNode.select(selection.anchor.offset, selection.focus.offset)\n } else if ($isNodeSelection(selection)) {\n textNode.select(0, textNode.getTextContent().length)\n }\n }\n firstLinkTextNode.replace(linkNode)\n return remainingTextNode\n }\n }\n return undefined\n}\n\nfunction $handleLinkCreation(\n nodes: TextNode[],\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n let currentNodes = [...nodes]\n const initialText = currentNodes.map((node) => node.getTextContent()).join('')\n let text = initialText\n\n let match\n let invalidMatchEnd = 0\n\n while ((match = findFirstMatch(text, matchers)) != null && match !== null) {\n const matchStart: number = match.index\n const matchLength: number = match.length\n const matchEnd = matchStart + matchLength\n const isValid = isContentAroundIsValid(\n invalidMatchEnd + matchStart,\n invalidMatchEnd + matchEnd,\n initialText,\n currentNodes,\n )\n\n if (isValid) {\n const [matchingOffset, , matchingNodes, unmodifiedAfterNodes] = extractMatchingNodes(\n currentNodes,\n invalidMatchEnd + matchStart,\n invalidMatchEnd + matchEnd,\n )\n\n const actualMatchStart = invalidMatchEnd + matchStart - matchingOffset\n const actualMatchEnd = invalidMatchEnd + matchEnd - matchingOffset\n const remainingTextNode = $createAutoLinkNode_(\n matchingNodes,\n actualMatchStart,\n actualMatchEnd,\n match,\n )\n currentNodes = remainingTextNode\n ? [remainingTextNode, ...unmodifiedAfterNodes]\n : unmodifiedAfterNodes\n onChange(match.url, null)\n invalidMatchEnd = 0\n } else {\n invalidMatchEnd += matchEnd\n }\n\n text = text.substring(matchEnd)\n }\n}\n\nfunction handleLinkEdit(\n linkNode: AutoLinkNode,\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n // Check children are simple text\n const children = linkNode.getChildren()\n const childrenLength = children.length\n for (let i = 0; i < childrenLength; i++) {\n const child = children[i]\n if (!$isTextNode(child) || !child.isSimpleText()) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n }\n\n // Check text content fully matches\n const text = linkNode.getTextContent()\n const match = findFirstMatch(text, matchers)\n if (match === null || match.text !== text) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n\n // Check neighbors\n if (!isPreviousNodeValid(linkNode) || !isNextNodeValid(linkNode)) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n\n const url = linkNode.getFields()?.url\n if (url !== match?.url) {\n const flds = linkNode.getFields()\n flds.url = match?.url\n linkNode.setFields(flds)\n onChange(match.url, url ?? null)\n }\n}\n\n// Bad neighbors are edits in neighbor nodes that make AutoLinks incompatible.\n// Given the creation preconditions, these can only be simple text nodes.\nfunction handleBadNeighbors(\n textNode: TextNode,\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n const previousSibling = textNode.getPreviousSibling()\n const nextSibling = textNode.getNextSibling()\n const text = textNode.getTextContent()\n\n if ($isAutoLinkNode(previousSibling)) {\n const isEmailURI = previousSibling.getFields()?.url\n ? (previousSibling.getFields()?.url?.startsWith('mailto:') ?? false)\n : false\n if (!startsWithSeparator(text) || startsWithTLD(text, isEmailURI)) {\n previousSibling.append(textNode)\n handleLinkEdit(previousSibling, matchers, onChange)\n onChange(null, previousSibling.getFields()?.url ?? null)\n }\n }\n\n if ($isAutoLinkNode(nextSibling) && !endsWithSeparator(text)) {\n replaceWithChildren(nextSibling)\n handleLinkEdit(nextSibling, matchers, onChange)\n onChange(null, nextSibling.getFields()?.url ?? null)\n }\n}\n\nfunction replaceWithChildren(node: ElementNode): LexicalNode[] {\n const children = node.getChildren()\n const childrenLength = children.length\n\n for (let j = childrenLength - 1; j >= 0; j--) {\n node.insertAfter(children[j]!)\n }\n\n node.remove()\n return children.map((child) => child.getLatest())\n}\n\nfunction getTextNodesToMatch(textNode: TextNode): TextNode[] {\n // check if next siblings are simple text nodes till a node contains a space separator\n const textNodesToMatch = [textNode]\n let nextSibling = textNode.getNextSibling()\n while (nextSibling !== null && $isTextNode(nextSibling) && nextSibling.isSimpleText()) {\n textNodesToMatch.push(nextSibling)\n if (/\\s/.test(nextSibling.getTextContent())) {\n break\n }\n nextSibling = nextSibling.getNextSibling()\n }\n return textNodesToMatch\n}\n\nfunction useAutoLink(\n editor: LexicalEditor,\n matchers: LinkMatcher[],\n onChange?: ChangeHandler,\n): void {\n useEffect(() => {\n if (!editor.hasNodes([AutoLinkNode])) {\n throw new Error('LexicalAutoLinkPlugin: AutoLinkNode not registered on editor')\n }\n\n const onChangeWrapped = (url: null | string, prevUrl: null | string): void => {\n if (onChange != null) {\n onChange(url, prevUrl)\n }\n }\n\n return mergeRegister(\n editor.registerNodeTransform(TextNodeValue, (textNode: TextNode) => {\n const parent = textNode.getParentOrThrow()\n const previous = textNode.getPreviousSibling()\n if ($isAutoLinkNode(parent)) {\n handleLinkEdit(parent, matchers, onChangeWrapped)\n } else if (!$isLinkNode(parent)) {\n if (\n textNode.isSimpleText() &&\n (startsWithSeparator(textNode.getTextContent()) || !$isAutoLinkNode(previous))\n ) {\n const textNodesToMatch = getTextNodesToMatch(textNode)\n $handleLinkCreation(textNodesToMatch, matchers, onChangeWrapped)\n }\n\n handleBadNeighbors(textNode, matchers, onChangeWrapped)\n }\n }),\n )\n }, [editor, matchers, onChange])\n}\n\nconst URL_REGEX =\n /((https?:\\/\\/(www\\.)?)|(www\\.))[-\\w@:%.+~#=]{1,256}\\.[a-zA-Z\\d()]{1,6}\\b([-\\w()@:%+.~#?&/=]*)(?<![-.+():%])/\n\nconst EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\])|(([a-z\\-\\d]+\\.)+[a-z]{2,}))/i\n\nconst MATCHERS = [\n createLinkMatcherWithRegExp(URL_REGEX, (text) => {\n return text.startsWith('http') ? text : `https://${text}`\n }),\n createLinkMatcherWithRegExp(EMAIL_REGEX, (text) => {\n return `mailto:${text}`\n }),\n]\n\nexport const AutoLinkPlugin: PluginComponent<ClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n\n useAutoLink(editor, MATCHERS)\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","mergeRegister","$createTextNode","$getSelection","$isElementNode","$isLineBreakNode","$isNodeSelection","$isRangeSelection","$isTextNode","TextNode","TextNodeValue","useEffect","$createAutoLinkNode","$isAutoLinkNode","AutoLinkNode","$isLinkNode","createLinkMatcherWithRegExp","regExp","urlTransformer","text","match","exec","index","length","url","findFirstMatch","matchers","matcher","PUNCTUATION_OR_SPACE","isSeparator","char","undefined","test","endsWithSeparator","textContent","startsWithSeparator","startsWithTLD","isEmail","isPreviousNodeValid","node","previousNode","getPreviousSibling","getLastDescendant","getTextContent","isNextNodeValid","nextNode","getNextSibling","getFirstDescendant","isContentAroundIsValid","matchStart","matchEnd","nodes","contentBeforeIsValid","contentAfterIsValid","extractMatchingNodes","startIndex","endIndex","unmodifiedBeforeNodes","matchingNodes","unmodifiedAfterNodes","matchingOffset","currentOffset","currentNodes","currentNode","currentNodeText","currentNodeLength","currentNodeStart","currentNodeEnd","push","shift","$createAutoLinkNode_","fields","linkType","linkNode","remainingTextNode","linkTextNode","splitText","textNode","setFormat","getFormat","setDetail","getDetail","setStyle","getStyle","append","replace","firstTextNode","offset","firstLinkTextNode","linkNodes","forEach","endNode","selection","selectedTextNode","getNodes","find","select","anchor","focus","$handleLinkCreation","onChange","initialText","map","join","invalidMatchEnd","matchLength","isValid","actualMatchStart","actualMatchEnd","substring","handleLinkEdit","children","getChildren","childrenLength","i","child","isSimpleText","replaceWithChildren","getFields","flds","setFields","handleBadNeighbors","previousSibling","nextSibling","isEmailURI","startsWith","j","insertAfter","remove","getLatest","getTextNodesToMatch","textNodesToMatch","useAutoLink","editor","$","t0","t1","hasNodes","Error","onChangeWrapped","prevUrl","registerNodeTransform","parent","getParentOrThrow","previous","URL_REGEX","EMAIL_REGEX","MATCHERS","AutoLinkPlugin"],"sources":["../../../../../../src/features/link/client/plugins/autoLink/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalEditor, LexicalNode, TextNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isLineBreakNode,\n $isNodeSelection,\n $isRangeSelection,\n $isTextNode,\n TextNode as TextNodeValue,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { LinkFields } from '../../../server/schema.js'\nimport type { ClientProps } from '../../index.js'\n\nimport { $createAutoLinkNode, $isAutoLinkNode, AutoLinkNode } from '../../../nodes/AutoLinkNode.js'\nimport { $isLinkNode } from '../../../nodes/LinkNode.js'\n\ntype ChangeHandler = (url: null | string, prevUrl: null | string) => void\n\ninterface LinkMatcherResult {\n fields?: LinkFields\n index: number\n length: number\n text: string\n url: string\n}\n\nexport type LinkMatcher = (text: string) => LinkMatcherResult | null\n\nexport function createLinkMatcherWithRegExp(\n regExp: RegExp,\n urlTransformer: (text: string) => string = (text) => text,\n) {\n return (text: string) => {\n const match = regExp.exec(text)\n if (match === null) {\n return null\n }\n return {\n index: match.index,\n length: match[0].length,\n text: match[0],\n url: urlTransformer(match[0]),\n }\n }\n}\n\nfunction findFirstMatch(text: string, matchers: LinkMatcher[]): LinkMatcherResult | null {\n for (const matcher of matchers) {\n const match = matcher(text)\n\n if (match != null) {\n return match\n }\n }\n\n return null\n}\n\nconst PUNCTUATION_OR_SPACE = /[.,;\\s]/\n\nfunction isSeparator(char: string | undefined): boolean {\n return char !== undefined && PUNCTUATION_OR_SPACE.test(char)\n}\n\nfunction endsWithSeparator(textContent: string): boolean {\n return isSeparator(textContent[textContent.length - 1])\n}\n\nfunction startsWithSeparator(textContent: string): boolean {\n return isSeparator(textContent[0])\n}\n\n/**\n * Check if the text content starts with a fullstop followed by a top-level domain.\n * Meaning if the text content can be a beginning of a top level domain.\n * @param textContent\n * @param isEmail\n * @returns boolean\n */\nfunction startsWithTLD(textContent: string, isEmail: boolean): boolean {\n if (isEmail) {\n return /^\\.[a-z]{2,}/i.test(textContent)\n } else {\n return /^\\.[a-z0-9]+/i.test(textContent)\n }\n}\n\nfunction isPreviousNodeValid(node: LexicalNode): boolean {\n let previousNode = node.getPreviousSibling()\n if ($isElementNode(previousNode)) {\n previousNode = previousNode.getLastDescendant()\n }\n return (\n previousNode === null ||\n $isLineBreakNode(previousNode) ||\n ($isTextNode(previousNode) && endsWithSeparator(previousNode.getTextContent()))\n )\n}\n\nfunction isNextNodeValid(node: LexicalNode): boolean {\n let nextNode = node.getNextSibling()\n if ($isElementNode(nextNode)) {\n nextNode = nextNode.getFirstDescendant()\n }\n return (\n nextNode === null ||\n $isLineBreakNode(nextNode) ||\n ($isTextNode(nextNode) && startsWithSeparator(nextNode.getTextContent()))\n )\n}\n\nfunction isContentAroundIsValid(\n matchStart: number,\n matchEnd: number,\n text: string,\n nodes: TextNode[],\n): boolean {\n const contentBeforeIsValid =\n matchStart > 0 ? isSeparator(text[matchStart - 1]) : isPreviousNodeValid(nodes[0]!)\n if (!contentBeforeIsValid) {\n return false\n }\n\n const contentAfterIsValid =\n matchEnd < text.length ? isSeparator(text[matchEnd]) : isNextNodeValid(nodes[nodes.length - 1]!)\n return contentAfterIsValid\n}\n\nfunction extractMatchingNodes(\n nodes: TextNode[],\n startIndex: number,\n endIndex: number,\n): [\n matchingOffset: number,\n unmodifiedBeforeNodes: TextNode[],\n matchingNodes: TextNode[],\n unmodifiedAfterNodes: TextNode[],\n] {\n const unmodifiedBeforeNodes: TextNode[] = []\n const matchingNodes: TextNode[] = []\n const unmodifiedAfterNodes: TextNode[] = []\n let matchingOffset = 0\n\n let currentOffset = 0\n const currentNodes = [...nodes]\n\n while (currentNodes.length > 0) {\n const currentNode = currentNodes[0]!\n const currentNodeText = currentNode.getTextContent()\n const currentNodeLength = currentNodeText.length\n const currentNodeStart = currentOffset\n const currentNodeEnd = currentOffset + currentNodeLength\n\n if (currentNodeEnd <= startIndex) {\n unmodifiedBeforeNodes.push(currentNode)\n matchingOffset += currentNodeLength\n } else if (currentNodeStart >= endIndex) {\n unmodifiedAfterNodes.push(currentNode)\n } else {\n matchingNodes.push(currentNode)\n }\n currentOffset += currentNodeLength\n currentNodes.shift()\n }\n return [matchingOffset, unmodifiedBeforeNodes, matchingNodes, unmodifiedAfterNodes]\n}\n\nfunction $createAutoLinkNode_(\n nodes: TextNode[],\n startIndex: number,\n endIndex: number,\n match: LinkMatcherResult,\n): TextNode | undefined {\n const fields = {\n linkType: 'custom',\n url: match.url,\n ...match.fields,\n } as LinkFields\n\n const linkNode = $createAutoLinkNode({ fields })\n if (nodes.length === 1) {\n const remainingTextNode = nodes[0]!\n let linkTextNode: TextNode | undefined\n if (startIndex === 0) {\n ;[linkTextNode] = remainingTextNode.splitText(endIndex)\n } else {\n ;[, linkTextNode] = remainingTextNode.splitText(startIndex, endIndex)\n }\n if (linkTextNode) {\n const textNode = $createTextNode(match.text)\n textNode.setFormat(linkTextNode.getFormat())\n textNode.setDetail(linkTextNode.getDetail())\n textNode.setStyle(linkTextNode.getStyle())\n linkNode.append(textNode)\n linkTextNode.replace(linkNode)\n }\n return remainingTextNode\n } else if (nodes.length > 1) {\n const firstTextNode = nodes[0]!\n let offset = firstTextNode.getTextContent().length\n let firstLinkTextNode\n if (startIndex === 0) {\n firstLinkTextNode = firstTextNode\n } else {\n ;[, firstLinkTextNode] = firstTextNode.splitText(startIndex)\n }\n const linkNodes: LexicalNode[] = []\n let remainingTextNode\n nodes.forEach((currentNode) => {\n const currentNodeText = currentNode.getTextContent()\n const currentNodeLength = currentNodeText.length\n const currentNodeStart = offset\n const currentNodeEnd = offset + currentNodeLength\n if (currentNodeStart < endIndex) {\n if (currentNodeEnd <= endIndex) {\n linkNodes.push(currentNode)\n } else {\n const [linkTextNode, endNode] = currentNode.splitText(endIndex - currentNodeStart)\n if (linkTextNode) {\n linkNodes.push(linkTextNode)\n }\n remainingTextNode = endNode\n }\n }\n offset += currentNodeLength\n })\n\n if (firstLinkTextNode) {\n const selection = $getSelection()\n const selectedTextNode = selection ? selection.getNodes().find($isTextNode) : undefined\n const textNode = $createTextNode(firstLinkTextNode.getTextContent())\n textNode.setFormat(firstLinkTextNode.getFormat())\n textNode.setDetail(firstLinkTextNode.getDetail())\n textNode.setStyle(firstLinkTextNode.getStyle())\n linkNode.append(textNode, ...linkNodes)\n // it does not preserve caret position if caret was at the first text node\n // so we need to restore caret position\n if (selectedTextNode && selectedTextNode === firstLinkTextNode) {\n if ($isRangeSelection(selection)) {\n textNode.select(selection.anchor.offset, selection.focus.offset)\n } else if ($isNodeSelection(selection)) {\n textNode.select(0, textNode.getTextContent().length)\n }\n }\n firstLinkTextNode.replace(linkNode)\n return remainingTextNode\n }\n }\n return undefined\n}\n\nfunction $handleLinkCreation(\n nodes: TextNode[],\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n let currentNodes = [...nodes]\n const initialText = currentNodes.map((node) => node.getTextContent()).join('')\n let text = initialText\n\n let match\n let invalidMatchEnd = 0\n\n while ((match = findFirstMatch(text, matchers)) != null && match !== null) {\n const matchStart: number = match.index\n const matchLength: number = match.length\n const matchEnd = matchStart + matchLength\n const isValid = isContentAroundIsValid(\n invalidMatchEnd + matchStart,\n invalidMatchEnd + matchEnd,\n initialText,\n currentNodes,\n )\n\n if (isValid) {\n const [matchingOffset, , matchingNodes, unmodifiedAfterNodes] = extractMatchingNodes(\n currentNodes,\n invalidMatchEnd + matchStart,\n invalidMatchEnd + matchEnd,\n )\n\n const actualMatchStart = invalidMatchEnd + matchStart - matchingOffset\n const actualMatchEnd = invalidMatchEnd + matchEnd - matchingOffset\n const remainingTextNode = $createAutoLinkNode_(\n matchingNodes,\n actualMatchStart,\n actualMatchEnd,\n match,\n )\n currentNodes = remainingTextNode\n ? [remainingTextNode, ...unmodifiedAfterNodes]\n : unmodifiedAfterNodes\n onChange(match.url, null)\n invalidMatchEnd = 0\n } else {\n invalidMatchEnd += matchEnd\n }\n\n text = text.substring(matchEnd)\n }\n}\n\nfunction handleLinkEdit(\n linkNode: AutoLinkNode,\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n // Check children are simple text\n const children = linkNode.getChildren()\n const childrenLength = children.length\n for (let i = 0; i < childrenLength; i++) {\n const child = children[i]\n if (!$isTextNode(child) || !child.isSimpleText()) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n }\n\n // Check text content fully matches\n const text = linkNode.getTextContent()\n const match = findFirstMatch(text, matchers)\n if (match === null || match.text !== text) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n\n // Check neighbors\n if (!isPreviousNodeValid(linkNode) || !isNextNodeValid(linkNode)) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n\n const url = linkNode.getFields()?.url\n if (url !== match?.url) {\n const flds = linkNode.getFields()\n flds.url = match?.url\n linkNode.setFields(flds)\n onChange(match.url, url ?? null)\n }\n}\n\n// Bad neighbors are edits in neighbor nodes that make AutoLinks incompatible.\n// Given the creation preconditions, these can only be simple text nodes.\nfunction handleBadNeighbors(\n textNode: TextNode,\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n const previousSibling = textNode.getPreviousSibling()\n const nextSibling = textNode.getNextSibling()\n const text = textNode.getTextContent()\n\n if ($isAutoLinkNode(previousSibling)) {\n const isEmailURI = previousSibling.getFields()?.url\n ? (previousSibling.getFields()?.url?.startsWith('mailto:') ?? false)\n : false\n if (!startsWithSeparator(text) || startsWithTLD(text, isEmailURI)) {\n previousSibling.append(textNode)\n handleLinkEdit(previousSibling, matchers, onChange)\n onChange(null, previousSibling.getFields()?.url ?? null)\n }\n }\n\n if ($isAutoLinkNode(nextSibling) && !endsWithSeparator(text)) {\n replaceWithChildren(nextSibling)\n handleLinkEdit(nextSibling, matchers, onChange)\n onChange(null, nextSibling.getFields()?.url ?? null)\n }\n}\n\nfunction replaceWithChildren(node: ElementNode): LexicalNode[] {\n const children = node.getChildren()\n const childrenLength = children.length\n\n for (let j = childrenLength - 1; j >= 0; j--) {\n node.insertAfter(children[j]!)\n }\n\n node.remove()\n return children.map((child) => child.getLatest())\n}\n\nfunction getTextNodesToMatch(textNode: TextNode): TextNode[] {\n // check if next siblings are simple text nodes till a node contains a space separator\n const textNodesToMatch = [textNode]\n let nextSibling = textNode.getNextSibling()\n while (nextSibling !== null && $isTextNode(nextSibling) && nextSibling.isSimpleText()) {\n textNodesToMatch.push(nextSibling)\n if (/\\s/.test(nextSibling.getTextContent())) {\n break\n }\n nextSibling = nextSibling.getNextSibling()\n }\n return textNodesToMatch\n}\n\nfunction useAutoLink(\n editor: LexicalEditor,\n matchers: LinkMatcher[],\n onChange?: ChangeHandler,\n): void {\n useEffect(() => {\n if (!editor.hasNodes([AutoLinkNode])) {\n throw new Error('LexicalAutoLinkPlugin: AutoLinkNode not registered on editor')\n }\n\n const onChangeWrapped = (url: null | string, prevUrl: null | string): void => {\n if (onChange != null) {\n onChange(url, prevUrl)\n }\n }\n\n return mergeRegister(\n editor.registerNodeTransform(TextNodeValue, (textNode: TextNode) => {\n const parent = textNode.getParentOrThrow()\n const previous = textNode.getPreviousSibling()\n if ($isAutoLinkNode(parent)) {\n handleLinkEdit(parent, matchers, onChangeWrapped)\n } else if (!$isLinkNode(parent)) {\n if (\n textNode.isSimpleText() &&\n (startsWithSeparator(textNode.getTextContent()) || !$isAutoLinkNode(previous))\n ) {\n const textNodesToMatch = getTextNodesToMatch(textNode)\n $handleLinkCreation(textNodesToMatch, matchers, onChangeWrapped)\n }\n\n handleBadNeighbors(textNode, matchers, onChangeWrapped)\n }\n }),\n )\n }, [editor, matchers, onChange])\n}\n\nconst URL_REGEX =\n /((https?:\\/\\/(www\\.)?)|(www\\.))[-\\w@:%.+~#=]{1,256}\\.[a-zA-Z\\d()]{1,6}\\b([-\\w()@:%+.~#?&/=]*)(?<![-.+():%])/\n\nconst EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\])|(([a-z\\-\\d]+\\.)+[a-z]{2,}))/i\n\nconst MATCHERS = [\n createLinkMatcherWithRegExp(URL_REGEX, (text) => {\n return text.startsWith('http') ? text : `https://${text}`\n }),\n createLinkMatcherWithRegExp(EMAIL_REGEX, (text) => {\n return `mailto:${text}`\n }),\n]\n\nexport const AutoLinkPlugin: PluginComponent<ClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n\n useAutoLink(editor, MATCHERS)\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAoE,MAAM,OAAO,CAAA;AAqBxF,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,KAAK,CAAC,SAAS,CAgavF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAoE,MAAM,OAAO,CAAA;AAwBxF,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,KAAK,CAAC,SAAS,CAkavF"}
@@ -5,12 +5,15 @@ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext
5
5
  import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
6
6
  import { $findMatchingParent, mergeRegister } from '@lexical/utils';
7
7
  import { getTranslation } from '@payloadcms/translations';
8
- import { CloseMenuIcon, EditIcon, ExternalLinkIcon, formatDrawerSlug, useConfig, useEditDepth, useLocale, useModal, useTranslation } from '@payloadcms/ui';
8
+ import { formatDrawerSlug, NewTabIcon, useConfig, useEditDepth, useLocale, useTranslation, WriteIcon } from '@payloadcms/ui';
9
9
  import { requests } from '@payloadcms/ui/shared';
10
- import { $getSelection, $isLineBreakNode, $isRangeSelection, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, getDOMSelection, KEY_ESCAPE_COMMAND, SELECTION_CHANGE_COMMAND } from 'lexical';
10
+ import { $getSelection, $isLineBreakNode, $isRangeSelection, $onUpdate, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, getDOMSelection, KEY_ESCAPE_COMMAND, SELECTION_CHANGE_COMMAND } from 'lexical';
11
11
  import { formatAdminURL } from 'payload/shared';
12
12
  import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
13
13
  import { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js';
14
+ import { LinkIcon } from '../../../../../../lexical/ui/icons/Link/index.js';
15
+ import { PageIcon } from '../../../../../../lexical/ui/icons/Page/index.js';
16
+ import { TrashIcon } from '../../../../../../lexical/ui/icons/Trash/index.js';
14
17
  import { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js';
15
18
  import { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js';
16
19
  import { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js';
@@ -57,11 +60,6 @@ export function LinkEditor({
57
60
  slug: `lexical-rich-text-link-` + uuid,
58
61
  depth: editDepth
59
62
  });
60
- const {
61
- modalState
62
- } = useModal();
63
- const isDrawerOpenRef = useRef(false);
64
- isDrawerOpenRef.current = Boolean(modalState[drawerSlug]?.isOpen);
65
63
  const {
66
64
  toggleDrawer
67
65
  } = useLexicalDrawer(drawerSlug);
@@ -72,15 +70,11 @@ export function LinkEditor({
72
70
  editorRef.current.style.transform = 'translate(-10000px, -10000px)';
73
71
  }
74
72
  setIsAutoLink(false);
75
- // Nested fields can temporarily move selection away from the editor. Keep the backing form
76
- // state until the drawer closes so those interactions cannot reset or unmount its fields.
77
- if (!isDrawerOpenRef.current) {
78
- setLinkUrl(null);
79
- setLinkLabel(null);
80
- setSelectedNodes([]);
81
- setStateData(undefined);
82
- }
83
- }, []);
73
+ setLinkUrl(null);
74
+ setLinkLabel(null);
75
+ setSelectedNodes([]);
76
+ setStateData(undefined);
77
+ }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes]);
84
78
  const $updateLinkEditor = useCallback(() => {
85
79
  const selection = $getSelection();
86
80
  let selectedNodeDomRect;
@@ -164,11 +158,9 @@ export function LinkEditor({
164
158
  });
165
159
  }
166
160
  }
161
+ setStateData(data);
167
162
  setIsLink(true);
168
- if (!isDrawerOpenRef.current) {
169
- setStateData(data);
170
- setSelectedNodes(selection ? selection?.getNodes() : []);
171
- }
163
+ setSelectedNodes(selection ? selection?.getNodes() : []);
172
164
  if ($isAutoLinkNode(focusLinkParent)) {
173
165
  setIsAutoLink(true);
174
166
  } else {
@@ -238,10 +230,12 @@ export function LinkEditor({
238
230
  void $updateLinkEditor();
239
231
  });
240
232
  }), editor.registerCommand(SELECTION_CHANGE_COMMAND, () => {
241
- void $updateLinkEditor();
233
+ $onUpdate(() => editor.read('latest', $updateLinkEditor));
242
234
  return true;
243
- }, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ESCAPE_COMMAND, () => {
235
+ }, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ESCAPE_COMMAND, event => {
244
236
  if (isLink) {
237
+ event.preventDefault();
238
+ event.stopImmediatePropagation();
245
239
  setNotLink();
246
240
  return true;
247
241
  }
@@ -265,31 +259,47 @@ export function LinkEditor({
265
259
  return /*#__PURE__*/_jsxs(React.Fragment, {
266
260
  children: [/*#__PURE__*/_jsx("div", {
267
261
  className: "link-editor",
262
+ "data-theme": "dark",
263
+ hidden: !isLink,
268
264
  ref: editorRef,
269
265
  children: /*#__PURE__*/_jsxs("div", {
270
266
  className: "link-input",
271
- children: [linkUrl && linkUrl.length > 0 ? /*#__PURE__*/_jsxs("a", {
267
+ children: [linkNode?.__fields?.linkType === 'custom' ? /*#__PURE__*/_jsx(LinkIcon, {}) : /*#__PURE__*/_jsx(PageIcon, {}), linkUrl && linkUrl.length > 0 ? /*#__PURE__*/_jsxs("a", {
268
+ className: "link-input__url",
272
269
  href: linkUrl,
273
270
  rel: "noopener noreferrer",
274
271
  target: "_blank",
275
- children: [linkNode?.__fields.newTab ? /*#__PURE__*/_jsx(ExternalLinkIcon, {}) : null, linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl]
272
+ children: [linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl, linkNode?.__fields.newTab ? /*#__PURE__*/_jsxs(_Fragment, {
273
+ children: [/*#__PURE__*/_jsx(NewTabIcon, {
274
+ size: 16
275
+ }), " ", /*#__PURE__*/_jsx("div", {
276
+ className: "link-input__divider"
277
+ }), ' ']
278
+ }) : null]
276
279
  }) : linkLabel != null && linkLabel.length > 0 ? /*#__PURE__*/_jsxs(_Fragment, {
277
- children: [linkNode?.__fields.newTab ? /*#__PURE__*/_jsx(ExternalLinkIcon, {}) : null, /*#__PURE__*/_jsx("span", {
280
+ children: [/*#__PURE__*/_jsx("span", {
278
281
  className: "link-input__label-pure",
279
282
  children: linkLabel
280
- })]
281
- }) : null, isEditable && /*#__PURE__*/_jsxs(React.Fragment, {
283
+ }), linkNode?.__fields.newTab ? /*#__PURE__*/_jsxs(_Fragment, {
284
+ children: [/*#__PURE__*/_jsx(NewTabIcon, {
285
+ size: 16
286
+ }), " ", /*#__PURE__*/_jsx("div", {
287
+ className: "link-input__divider"
288
+ }), ' ']
289
+ }) : null]
290
+ }) : null, isEditable && /*#__PURE__*/_jsxs("div", {
291
+ className: "link-input__actions",
282
292
  children: [/*#__PURE__*/_jsx("button", {
283
293
  "aria-label": "Edit link",
284
294
  className: "link-edit",
285
- onClick: event => {
286
- event.preventDefault();
295
+ onClick: event_0 => {
296
+ event_0.preventDefault();
287
297
  toggleDrawer();
288
298
  },
289
299
  onMouseDown: preventDefault,
290
300
  tabIndex: 0,
291
301
  type: "button",
292
- children: /*#__PURE__*/_jsx(EditIcon, {})
302
+ children: /*#__PURE__*/_jsx(WriteIcon, {})
293
303
  }), !isAutoLink && /*#__PURE__*/_jsx("button", {
294
304
  "aria-label": "Remove link",
295
305
  className: "link-trash",
@@ -299,7 +309,9 @@ export function LinkEditor({
299
309
  onMouseDown: preventDefault,
300
310
  tabIndex: 0,
301
311
  type: "button",
302
- children: /*#__PURE__*/_jsx(CloseMenuIcon, {})
312
+ children: /*#__PURE__*/_jsx(TrashIcon, {
313
+ small: true
314
+ })
303
315
  })]
304
316
  })]
305
317
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useLexicalComposerContext","useLexicalEditable","$findMatchingParent","mergeRegister","getTranslation","CloseMenuIcon","EditIcon","ExternalLinkIcon","formatDrawerSlug","useConfig","useEditDepth","useLocale","useModal","useTranslation","requests","$getSelection","$isLineBreakNode","$isRangeSelection","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","getDOMSelection","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","formatAdminURL","React","useCallback","useEffect","useLayoutEffect","useRef","useState","useEditorConfigContext","getSelectedNode","setFloatingElemPositionForLinkEditor","FieldsDrawer","useLexicalDrawer","$isAutoLinkNode","$createLinkNode","$isLinkNode","TOGGLE_LINK_COMMAND","TOGGLE_LINK_WITH_MODAL_COMMAND","preventDefault","event","LinkEditor","anchorElem","editor","linkNode","setLinkNode","editorRef","selectedNodeRectRef","linkUrl","setLinkUrl","linkLabel","setLinkLabel","fieldProps","schemaPath","uuid","isEditable","config","getEntityConfig","i18n","t","stateData","setStateData","editDepth","isLink","setIsLink","selectedNodes","setSelectedNodes","locale","isAutoLink","setIsAutoLink","drawerSlug","slug","depth","modalState","isDrawerOpenRef","current","Boolean","isOpen","toggleDrawer","setNotLink","style","opacity","transform","undefined","$updateLinkEditor","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusLinkParent","badNode","getNodes","filter","node","find","is","fields","getFields","data","id","getID","text","getTextContent","linkType","url","routes","admin","doc","relationTo","value","relatedField","collectionSlug","label","String","collection","Error","loadingLabel","labels","singular","replace","get","apiRoute","api","path","serverURL","headers","language","params","code","then","res","ok","status","json","useAsTitle","title","catch","editorElem","nativeSelection","_window","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","window","addEventListener","removeEventListener","registerUpdateListener","editorState","_jsxs","Fragment","_jsx","ref","length","href","rel","target","__fields","newTab","_Fragment","onClick","onMouseDown","tabIndex","type","drawerTitle","featureKey","handleDrawerSubmit","newLinkPayload","bareLinkFields","linkParent","getParent","schemaPathSuffix"],"sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalNode } from 'lexical'\nimport type { Data, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CloseMenuIcon,\n EditIcon,\n ExternalLinkIcon,\n formatDrawerSlug,\n useConfig,\n useEditDepth,\n useLocale,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nfunction preventDefault(\n event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLElement>,\n): void {\n event.preventDefault()\n}\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n // TO-DO: There are several states that should not be state, because they\n // are derived from linkNode (linkUrl, linkLabel, stateData, isLink, isAutoLink...)\n const [linkNode, setLinkNode] = useState<LinkNode>()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const selectedNodeRectRef = useRef<DOMRect | null>(null)\n const [linkUrl, setLinkUrl] = useState<null | string>(null)\n const [linkLabel, setLinkLabel] = useState<null | string>(null)\n\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n\n const { config, getEntityConfig } = useConfig()\n\n const { i18n, t } = useTranslation<object, 'lexical:link:loadingWithEllipsis'>()\n\n const [stateData, setStateData] = useState<\n ({ id?: string; text: string } & LinkFields) | undefined\n >()\n\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n const locale = useLocale()\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const { modalState } = useModal()\n const isDrawerOpenRef = useRef(false)\n isDrawerOpenRef.current = Boolean(modalState[drawerSlug]?.isOpen)\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n // Nested fields can temporarily move selection away from the editor. Keep the backing form\n // state until the drawer closes so those interactions cannot reset or unmount its fields.\n if (!isDrawerOpenRef.current) {\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(undefined)\n }\n }, [])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n void setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n setLinkNode(focusLinkParent)\n\n const fields = focusLinkParent.getFields()\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n ...fields,\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (fields?.linkType === 'custom') {\n setLinkUrl(fields?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${fields?.doc?.relationTo}/${\n fields?.doc?.value\n }`,\n )\n\n const relatedField = fields?.doc?.relationTo\n ? getEntityConfig({ collectionSlug: fields?.doc?.relationTo })\n : undefined\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(fields?.label ? String(fields?.label) : null)\n setLinkUrl(fields?.url ? String(fields?.url) : null)\n } else {\n const id = typeof fields.doc?.value === 'object' ? fields.doc.value.id : fields.doc?.value\n const collection = fields.doc?.relationTo\n if (!id || !collection) {\n throw new Error(`Focus link parent is missing doc.value or doc.relationTo`)\n }\n\n const loadingLabel = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('lexical:link:loadingWithEllipsis', i18n)}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(loadingLabel)\n\n requests\n .get(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${collection}/${id}`,\n serverURL: config.serverURL,\n }),\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n params: {\n depth: 0,\n locale: locale?.code,\n },\n },\n )\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP error! Status: ${res.status}`)\n }\n const data = await res.json()\n const useAsTitle = relatedField?.admin?.useAsTitle || 'id'\n const title = data[useAsTitle]\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${title}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n .catch(() => {\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('general:untitled', i18n)} - ID: ${id}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n }\n }\n\n setIsLink(true)\n if (!isDrawerOpenRef.current) {\n setStateData(data)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n }\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\n }\n\n const editorElem = editorRef.current\n const nativeSelection = getDOMSelection(editor._window)\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n // Store the rect for positioning in useLayoutEffect after content renders\n selectedNodeRectRef.current = selectedNodeDomRect\n }\n } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [\n editor,\n setNotLink,\n config.routes.admin,\n config.routes.api,\n config.serverURL,\n getEntityConfig,\n t,\n i18n,\n locale?.code,\n anchorElem,\n ])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n // Position the tooltip after React renders the link content\n useLayoutEffect(() => {\n if (!isLink || !editorRef.current || !anchorElem || !selectedNodeRectRef.current) {\n return\n }\n\n // Now the DOM has the actual link element, we can position the tooltip\n setFloatingElemPositionForLinkEditor(selectedNodeRectRef.current, editorRef.current, anchorElem)\n // linkNode dependency ensures re-positioning when clicking between different links with the same URL\n }, [linkUrl, linkLabel, isLink, anchorElem, linkNode])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <>\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n </>\n ) : null}\n\n {isEditable && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-edit\"\n onClick={(event) => {\n event.preventDefault()\n toggleDrawer()\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <EditIcon />\n </button>\n {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent: ElementNode | null = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0]?.getParent() ?? null\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useLexicalComposerContext","useLexicalEditable","$findMatchingParent","mergeRegister","getTranslation","formatDrawerSlug","NewTabIcon","useConfig","useEditDepth","useLocale","useTranslation","WriteIcon","requests","$getSelection","$isLineBreakNode","$isRangeSelection","$onUpdate","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","getDOMSelection","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","formatAdminURL","React","useCallback","useEffect","useLayoutEffect","useRef","useState","useEditorConfigContext","LinkIcon","PageIcon","TrashIcon","getSelectedNode","setFloatingElemPositionForLinkEditor","FieldsDrawer","useLexicalDrawer","$isAutoLinkNode","$createLinkNode","$isLinkNode","TOGGLE_LINK_COMMAND","TOGGLE_LINK_WITH_MODAL_COMMAND","preventDefault","event","LinkEditor","anchorElem","editor","linkNode","setLinkNode","editorRef","selectedNodeRectRef","linkUrl","setLinkUrl","linkLabel","setLinkLabel","fieldProps","schemaPath","uuid","isEditable","config","getEntityConfig","i18n","t","stateData","setStateData","editDepth","isLink","setIsLink","selectedNodes","setSelectedNodes","locale","isAutoLink","setIsAutoLink","drawerSlug","slug","depth","toggleDrawer","setNotLink","current","style","opacity","transform","undefined","$updateLinkEditor","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusLinkParent","badNode","getNodes","filter","node","find","is","fields","getFields","data","id","getID","text","getTextContent","linkType","url","routes","admin","doc","relationTo","value","relatedField","collectionSlug","label","String","collection","Error","loadingLabel","labels","singular","replace","get","apiRoute","api","path","serverURL","headers","language","params","code","then","res","ok","status","json","useAsTitle","title","catch","editorElem","nativeSelection","_window","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","window","addEventListener","removeEventListener","registerUpdateListener","editorState","stopImmediatePropagation","_jsxs","Fragment","_jsx","hidden","ref","__fields","length","href","rel","target","newTab","_Fragment","size","onClick","onMouseDown","tabIndex","type","small","drawerTitle","featureKey","handleDrawerSubmit","newLinkPayload","bareLinkFields","linkParent","getParent","schemaPathSuffix"],"sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalNode } from 'lexical'\nimport type { Data, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatDrawerSlug,\n NewTabIcon,\n useConfig,\n useEditDepth,\n useLocale,\n useTranslation,\n WriteIcon,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n $onUpdate,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../server/schema.js'\nimport type { LinkPayload } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { LinkIcon } from '../../../../../../lexical/ui/icons/Link/index.js'\nimport { PageIcon } from '../../../../../../lexical/ui/icons/Page/index.js'\nimport { TrashIcon } from '../../../../../../lexical/ui/icons/Trash/index.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nfunction preventDefault(\n event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLElement>,\n): void {\n event.preventDefault()\n}\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n // TO-DO: There are several states that should not be state, because they\n // are derived from linkNode (linkUrl, linkLabel, stateData, isLink, isAutoLink...)\n const [linkNode, setLinkNode] = useState<LinkNode>()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const selectedNodeRectRef = useRef<DOMRect | null>(null)\n const [linkUrl, setLinkUrl] = useState<null | string>(null)\n const [linkLabel, setLinkLabel] = useState<null | string>(null)\n\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n\n const { config, getEntityConfig } = useConfig()\n\n const { i18n, t } = useTranslation<object, 'lexical:link:loadingWithEllipsis'>()\n\n const [stateData, setStateData] = useState<\n ({ id?: string; text: string } & LinkFields) | undefined\n >()\n\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n const locale = useLocale()\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(undefined)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n void setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n setLinkNode(focusLinkParent)\n\n const fields = focusLinkParent.getFields()\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n ...fields,\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (fields?.linkType === 'custom') {\n setLinkUrl(fields?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${fields?.doc?.relationTo}/${\n fields?.doc?.value\n }`,\n )\n\n const relatedField = fields?.doc?.relationTo\n ? getEntityConfig({ collectionSlug: fields?.doc?.relationTo })\n : undefined\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(fields?.label ? String(fields?.label) : null)\n setLinkUrl(fields?.url ? String(fields?.url) : null)\n } else {\n const id = typeof fields.doc?.value === 'object' ? fields.doc.value.id : fields.doc?.value\n const collection = fields.doc?.relationTo\n if (!id || !collection) {\n throw new Error(`Focus link parent is missing doc.value or doc.relationTo`)\n }\n\n const loadingLabel = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('lexical:link:loadingWithEllipsis', i18n)}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(loadingLabel)\n\n requests\n .get(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${collection}/${id}`,\n serverURL: config.serverURL,\n }),\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n params: {\n depth: 0,\n locale: locale?.code,\n },\n },\n )\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP error! Status: ${res.status}`)\n }\n const data = await res.json()\n const useAsTitle = relatedField?.admin?.useAsTitle || 'id'\n const title = data[useAsTitle]\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${title}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n .catch(() => {\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('general:untitled', i18n)} - ID: ${id}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\n }\n\n const editorElem = editorRef.current\n const nativeSelection = getDOMSelection(editor._window)\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n // Store the rect for positioning in useLayoutEffect after content renders\n selectedNodeRectRef.current = selectedNodeDomRect\n }\n } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [\n editor,\n setNotLink,\n config.routes.admin,\n config.routes.api,\n config.serverURL,\n getEntityConfig,\n t,\n i18n,\n locale?.code,\n anchorElem,\n ])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n $onUpdate(() => editor.read('latest', $updateLinkEditor))\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n (event) => {\n if (isLink) {\n event.preventDefault()\n event.stopImmediatePropagation()\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n // Position the tooltip after React renders the link content\n useLayoutEffect(() => {\n if (!isLink || !editorRef.current || !anchorElem || !selectedNodeRectRef.current) {\n return\n }\n\n // Now the DOM has the actual link element, we can position the tooltip\n setFloatingElemPositionForLinkEditor(selectedNodeRectRef.current, editorRef.current, anchorElem)\n // linkNode dependency ensures re-positioning when clicking between different links with the same URL\n }, [linkUrl, linkLabel, isLink, anchorElem, linkNode])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" data-theme=\"dark\" hidden={!isLink} ref={editorRef}>\n <div className=\"link-input\">\n {linkNode?.__fields?.linkType === 'custom' ? <LinkIcon /> : <PageIcon />}\n {linkUrl && linkUrl.length > 0 ? (\n <a className=\"link-input__url\" href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n {linkNode?.__fields.newTab ? (\n <>\n <NewTabIcon size={16} /> <div className=\"link-input__divider\" />{' '}\n </>\n ) : null}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <>\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n {linkNode?.__fields.newTab ? (\n <>\n <NewTabIcon size={16} /> <div className=\"link-input__divider\" />{' '}\n </>\n ) : null}\n </>\n ) : null}\n\n {isEditable && (\n <div className=\"link-input__actions\">\n <button\n aria-label=\"Edit link\"\n className=\"link-edit\"\n onClick={(event) => {\n event.preventDefault()\n toggleDrawer()\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <WriteIcon />\n </button>\n {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <TrashIcon small />\n </button>\n )}\n </div>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent: ElementNode | null = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0]?.getParent() ?? null\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,106 @@
1
+ @layer payload-default {
2
+ .link-editor {
3
+ z-index: 1;
4
+ display: flex;
5
+ align-items: center;
6
+ gap: var(--spacer-2);
7
+ background: var(--color-bg-menu);
8
+ padding: 0 var(--spacer-2);
9
+ height: var(--spacer-6);
10
+ vertical-align: middle;
11
+ position: absolute;
12
+ top: 0;
13
+ inset-inline-start: 0;
14
+ opacity: 0;
15
+ border-radius: var(--radius-large);
16
+ will-change: transform;
17
+ overflow: clip;
18
+ box-shadow: var(--elevation-100-canvas);
19
+
20
+ .link-input {
21
+ display: flex;
22
+ align-items: center;
23
+ flex-direction: row;
24
+ flex-wrap: nowrap;
25
+ width: 100%;
26
+ min-width: 0;
27
+ box-sizing: border-box;
28
+ gap: var(--spacer-2);
29
+ border: 0;
30
+ outline: 0;
31
+ position: relative;
32
+
33
+ > .icon:first-child {
34
+ color: var(--color-icon-onbrand-secondary);
35
+ flex-shrink: 0;
36
+ }
37
+
38
+ & a {
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ text-decoration: underline;
43
+ gap: var(--spacer-1);
44
+ white-space: nowrap;
45
+ overflow: hidden;
46
+ text-overflow: ellipsis;
47
+ color: var(--color-text-onbrand);
48
+ font-size: var(--text-body-medium-font-size);
49
+ line-height: var(--text-body-medium-line-height);
50
+ min-width: 0;
51
+ height: 100%;
52
+
53
+ &:hover {
54
+ color: var(--color-text-onbrand);
55
+ }
56
+ }
57
+ }
58
+
59
+ .link-input__divider {
60
+ width: var(--stroke-width-small);
61
+ align-self: stretch;
62
+ background-color: var(--color-text-onbrand-secondary);
63
+ margin-inline-start: var(--spacer-2);
64
+ }
65
+
66
+ .link-input__label-pure {
67
+ color: var(--color-text-onbrand);
68
+ margin-inline-end: var(--spacer-3);
69
+ display: block;
70
+ white-space: nowrap;
71
+ overflow: hidden;
72
+ font-size: var(--text-body-medium-font-size);
73
+ line-height: var(--text-body-medium-line-height);
74
+ }
75
+
76
+ .link-input__actions {
77
+ display: flex;
78
+ gap: var(--spacer-1);
79
+ }
80
+
81
+ button {
82
+ all: unset;
83
+ display: flex;
84
+ align-items: center;
85
+ justify-content: center;
86
+ min-width: var(--spacer-4);
87
+ min-height: var(--spacer-4);
88
+ cursor: pointer;
89
+ color: var(--color-icon-onbrand);
90
+ border-radius: var(--radius-medium);
91
+
92
+ &:hover:not([disabled]) {
93
+ color: var(--color-icon-onbrand);
94
+ background-color: var(--color-bg-transparent-hover);
95
+ }
96
+
97
+ &:focus-visible {
98
+ outline: var(--stroke-width-small) solid var(--color-border-brand-strong);
99
+ }
100
+ }
101
+
102
+ .icon {
103
+ color: var(--color-icon-onbrand);
104
+ }
105
+ }
106
+ }
@@ -1,5 +1,5 @@
1
1
  import type { PluginComponentWithAnchor } from '../../../../typesClient.js';
2
2
  import type { ClientProps } from '../../index.js';
3
- import './index.scss';
3
+ import './index.css';
4
4
  export declare const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps>;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,wBAAwB,EAAE,yBAAyB,CAAC,WAAW,CAI3E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,aAAa,CAAA;AAGpB,eAAO,MAAM,wBAAwB,EAAE,yBAAyB,CAAC,WAAW,CAI3E,CAAA"}
@@ -3,6 +3,7 @@
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  import * as React from 'react';
5
5
  import { createPortal } from 'react-dom';
6
+ import './index.css';
6
7
  import { LinkEditor } from './LinkEditor/index.js';
7
8
  export const FloatingLinkEditorPlugin = props => {
8
9
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createPortal","LinkEditor","FloatingLinkEditorPlugin","props","anchorElem","document","body","_jsx"],"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nimport './index.scss'\nimport { LinkEditor } from './LinkEditor/index.js'\n\nexport const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps> = (props) => {\n const { anchorElem = document.body } = props\n\n return createPortal(<LinkEditor anchorElem={anchorElem} />, anchorElem)\n}\n"],"mappings":"AAAA;;;AACA,YAAYA,KAAA,MAAW;AACvB,SAASC,YAAY,QAAQ;AAM7B,SAASC,UAAU,QAAQ;AAE3B,OAAO,MAAMC,wBAAA,GAAoEC,KAAA;EAC/E,MAAM;IAAEC,UAAA,GAAaC,QAAA,CAASC;EAAI,CAAE,GAAGH,KAAA;EAEvC,oBAAOH,YAAA,cAAaO,IAAA,CAACN,UAAA;IAAWG,UAAA,EAAYA;MAAgBA,UAAA;AAC9D","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createPortal","LinkEditor","FloatingLinkEditorPlugin","props","anchorElem","document","body","_jsx"],"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nimport './index.css'\nimport { LinkEditor } from './LinkEditor/index.js'\n\nexport const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps> = (props) => {\n const { anchorElem = document.body } = props\n\n return createPortal(<LinkEditor anchorElem={anchorElem} />, anchorElem)\n}\n"],"mappings":"AAAA;;;AACA,YAAYA,KAAA,MAAW;AACvB,SAASC,YAAY,QAAQ;AAK7B,OAAO;AACP,SAASC,UAAU,QAAQ;AAE3B,OAAO,MAAMC,wBAAA,GAAoEC,KAAA;EAC/E,MAAM;IAAEC,UAAA,GAAaC,QAAA,CAASC;EAAI,CAAE,GAAGH,KAAA;EAEvC,oBAAOH,YAAA,cAAaO,IAAA,CAACN,UAAA;IAAWG,UAAA,EAAYA;MAAgBA,UAAA;AAC9D","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { LexicalNode } from 'lexical';
2
- import type { LinkFields } from '../../../nodes/types.js';
2
+ import type { LinkFields } from '../../../server/schema.js';
3
3
  /**
4
4
  * The payload of a link node
5
5
  * This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEzD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC3B,aAAa,CAAC,EAAE,WAAW,EAAE,CAAA;IAC7B;;OAEG;IACH,IAAI,EAAE,IAAI,GAAG,MAAM,CAAA;CACpB,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAE3D;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC3B,aAAa,CAAC,EAAE,WAAW,EAAE,CAAA;IAC7B;;OAEG;IACH,IAAI,EAAE,IAAI,GAAG,MAAM,CAAA;CACpB,GAAG,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/types.ts"],"sourcesContent":["import type { LexicalNode } from 'lexical'\n\nimport type { LinkFields } from '../../../nodes/types.js'\n\n/**\n * The payload of a link node\n * This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND\n */\nexport type LinkPayload = {\n /**\n * The fields of the link node. Undefined fields will be taken from the default values of the link node\n */\n fields: Partial<LinkFields>\n selectedNodes?: LexicalNode[]\n /**\n * The text content of the link node - will be displayed in the drawer\n */\n text: null | string\n} | null\n"],"mappings":"AAIA;;;GAIA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/types.ts"],"sourcesContent":["import type { LexicalNode } from 'lexical'\n\nimport type { LinkFields } from '../../../server/schema.js'\n\n/**\n * The payload of a link node\n * This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND\n */\nexport type LinkPayload = {\n /**\n * The fields of the link node. Undefined fields will be taken from the default values of the link node\n */\n fields: Partial<LinkFields>\n selectedNodes?: LexicalNode[]\n /**\n * The text content of the link node - will be displayed in the drawer\n */\n text: null | string\n} | null\n"],"mappings":"AAIA;;;GAIA","ignoreList":[]}