@payloadcms/richtext-lexical 3.78.0-internal-debug.f663370 → 3.78.0-internal.ab11ffa

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 (1110) hide show
  1. package/dist/cell/rscEntry.js +72 -74
  2. package/dist/cell/rscEntry.js.map +1 -1
  3. package/dist/dependencyChecker.spec.js +7 -8
  4. package/dist/dependencyChecker.spec.js.map +1 -1
  5. package/dist/exports/client/Component-DOSSWC76.js +2 -0
  6. package/dist/exports/client/Component-DOSSWC76.js.map +7 -0
  7. package/dist/exports/client/Component-MBLHTKDK.js +2 -0
  8. package/dist/exports/client/Component-MBLHTKDK.js.map +7 -0
  9. package/dist/exports/client/Field-HJGV32KA.js +2 -0
  10. package/dist/exports/client/Field-HJGV32KA.js.map +7 -0
  11. package/dist/exports/client/RelationshipComponent-BG3DPV3T.js +2 -0
  12. package/dist/exports/client/RelationshipComponent-BG3DPV3T.js.map +7 -0
  13. package/dist/exports/client/bundled.css +1 -0
  14. package/dist/exports/client/chunk-2S5Q7QYO.js +2 -0
  15. package/dist/exports/client/chunk-2S5Q7QYO.js.map +7 -0
  16. package/dist/exports/client/chunk-BZZVLW4U.js +2 -0
  17. package/dist/exports/client/chunk-BZZVLW4U.js.map +7 -0
  18. package/dist/exports/client/chunk-DBWINSQN.js +2 -0
  19. package/dist/exports/client/chunk-DBWINSQN.js.map +7 -0
  20. package/dist/exports/client/chunk-EZX4YW7S.js +12 -0
  21. package/dist/exports/client/chunk-EZX4YW7S.js.map +7 -0
  22. package/dist/exports/client/chunk-F26IQ5RE.js +2 -0
  23. package/dist/exports/client/chunk-F26IQ5RE.js.map +7 -0
  24. package/dist/exports/client/chunk-INBEEENE.js +2 -0
  25. package/dist/exports/client/chunk-INBEEENE.js.map +7 -0
  26. package/dist/exports/client/chunk-QJ5EETIB.js +2 -0
  27. package/dist/exports/client/chunk-QJ5EETIB.js.map +7 -0
  28. package/dist/exports/client/component-XIHC3W6W.js +2 -0
  29. package/dist/exports/client/component-XIHC3W6W.js.map +7 -0
  30. package/dist/exports/client/componentInline-NL25DNZ5.js +2 -0
  31. package/dist/exports/client/componentInline-NL25DNZ5.js.map +7 -0
  32. package/dist/exports/client/index.d.ts +0 -1
  33. package/dist/exports/client/index.d.ts.map +1 -1
  34. package/dist/exports/client/index.js +65 -86
  35. package/dist/exports/client/index.js.map +7 -1
  36. package/dist/exports/cssEntry.js +0 -1
  37. package/dist/exports/cssEntry.js.map +1 -1
  38. package/dist/exports/html/index.js +0 -1
  39. package/dist/exports/html/index.js.map +1 -1
  40. package/dist/exports/html-async/index.js +0 -1
  41. package/dist/exports/html-async/index.js.map +1 -1
  42. package/dist/exports/plaintext/index.js +0 -1
  43. package/dist/exports/plaintext/index.js.map +1 -1
  44. package/dist/exports/react/index.d.ts +1 -3
  45. package/dist/exports/react/index.d.ts.map +1 -1
  46. package/dist/exports/react/index.js +1 -3
  47. package/dist/exports/react/index.js.map +1 -1
  48. package/dist/exports/server/ast/mdx.js +34 -36
  49. package/dist/exports/server/ast/mdx.js.map +1 -1
  50. package/dist/exports/server/migrate.js +0 -1
  51. package/dist/exports/server/migrate.js.map +1 -1
  52. package/dist/exports/server/rsc.js +0 -1
  53. package/dist/exports/server/rsc.js.map +1 -1
  54. package/dist/exports/shared.js +0 -1
  55. package/dist/exports/shared.js.map +1 -1
  56. package/dist/features/align/client/index.js +195 -168
  57. package/dist/features/align/client/index.js.map +1 -1
  58. package/dist/features/align/client/toolbarAlignGroup.js +9 -9
  59. package/dist/features/align/client/toolbarAlignGroup.js.map +1 -1
  60. package/dist/features/align/server/i18n.js +222 -223
  61. package/dist/features/align/server/i18n.js.map +1 -1
  62. package/dist/features/align/server/index.js +5 -6
  63. package/dist/features/align/server/index.js.map +1 -1
  64. package/dist/features/blockquote/client/index.js +60 -65
  65. package/dist/features/blockquote/client/index.js.map +1 -1
  66. package/dist/features/blockquote/markdownTransformer.js +28 -33
  67. package/dist/features/blockquote/markdownTransformer.js.map +1 -1
  68. package/dist/features/blockquote/server/i18n.js +111 -112
  69. package/dist/features/blockquote/server/i18n.js.map +1 -1
  70. package/dist/features/blockquote/server/index.js +48 -47
  71. package/dist/features/blockquote/server/index.js.map +1 -1
  72. package/dist/features/blocks/client/component/BlockContent.d.ts +4 -7
  73. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  74. package/dist/features/blocks/client/component/BlockContent.js +68 -97
  75. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  76. package/dist/features/blocks/client/component/components/BlockCollapsible.js +14 -13
  77. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
  78. package/dist/features/blocks/client/component/components/BlockEditButton.js +17 -9
  79. package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -1
  80. package/dist/features/blocks/client/component/components/BlockRemoveButton.js +17 -9
  81. package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -1
  82. package/dist/features/blocks/client/component/index.d.ts +4 -20
  83. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  84. package/dist/features/blocks/client/component/index.js +418 -611
  85. package/dist/features/blocks/client/component/index.js.map +1 -1
  86. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +11 -8
  87. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +1 -1
  88. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +23 -11
  89. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -1
  90. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +17 -9
  91. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -1
  92. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +17 -9
  93. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -1
  94. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +17 -9
  95. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -1
  96. package/dist/features/blocks/client/componentInline/index.d.ts +14 -8
  97. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  98. package/dist/features/blocks/client/componentInline/index.js +346 -509
  99. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  100. package/dist/features/blocks/client/getBlockImageComponent.js +12 -17
  101. package/dist/features/blocks/client/getBlockImageComponent.js.map +1 -1
  102. package/dist/features/blocks/client/index.js +146 -141
  103. package/dist/features/blocks/client/index.js.map +1 -1
  104. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +18 -18
  105. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
  106. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +15 -14
  107. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
  108. package/dist/features/blocks/client/markdown/markdownTransformer.js +330 -328
  109. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  110. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -4
  111. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  112. package/dist/features/blocks/client/nodes/BlocksNode.js +40 -46
  113. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  114. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +2 -4
  115. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  116. package/dist/features/blocks/client/nodes/InlineBlocksNode.js +33 -39
  117. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  118. package/dist/features/blocks/client/plugin/commands.js +1 -1
  119. package/dist/features/blocks/client/plugin/commands.js.map +1 -1
  120. package/dist/features/blocks/client/plugin/index.js +87 -59
  121. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  122. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +101 -158
  123. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  124. package/dist/features/blocks/premade/CodeBlock/Component/Code.js +93 -119
  125. package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
  126. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +11 -19
  127. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
  128. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +20 -32
  129. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
  130. package/dist/features/blocks/premade/CodeBlock/Component/defaultLanguages.js +83 -84
  131. package/dist/features/blocks/premade/CodeBlock/Component/defaultLanguages.js.map +1 -1
  132. package/dist/features/blocks/premade/CodeBlock/converter.js +40 -36
  133. package/dist/features/blocks/premade/CodeBlock/converter.js.map +1 -1
  134. package/dist/features/blocks/premade/CodeBlock/converterClient.js +1 -1
  135. package/dist/features/blocks/premade/CodeBlock/converterClient.js.map +1 -1
  136. package/dist/features/blocks/premade/CodeBlock/index.js +49 -49
  137. package/dist/features/blocks/premade/CodeBlock/index.js.map +1 -1
  138. package/dist/features/blocks/server/graphQLPopulationPromise.js +44 -29
  139. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  140. package/dist/features/blocks/server/i18n.js +333 -334
  141. package/dist/features/blocks/server/i18n.js.map +1 -1
  142. package/dist/features/blocks/server/index.js +218 -238
  143. package/dist/features/blocks/server/index.js.map +1 -1
  144. package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.js +122 -123
  145. package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.js.map +1 -1
  146. package/dist/features/blocks/server/markdown/markdownTransformer.js +349 -347
  147. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  148. package/dist/features/blocks/server/nodes/BlocksNode.js +90 -86
  149. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  150. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +87 -84
  151. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  152. package/dist/features/blocks/server/validate.js +55 -42
  153. package/dist/features/blocks/server/validate.js.map +1 -1
  154. package/dist/features/converters/htmlToLexical/index.js +24 -21
  155. package/dist/features/converters/htmlToLexical/index.js.map +1 -1
  156. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js +10 -7
  157. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
  158. package/dist/features/converters/lexicalToHtml/async/converters/heading.js +10 -7
  159. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  160. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js +1 -2
  161. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
  162. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js +1 -2
  163. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
  164. package/dist/features/converters/lexicalToHtml/async/converters/link.js +37 -28
  165. package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
  166. package/dist/features/converters/lexicalToHtml/async/converters/list.js +26 -18
  167. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  168. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js +12 -9
  169. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
  170. package/dist/features/converters/lexicalToHtml/async/converters/tab.js +1 -2
  171. package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
  172. package/dist/features/converters/lexicalToHtml/async/converters/table.js +38 -27
  173. package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
  174. package/dist/features/converters/lexicalToHtml/async/converters/text.js +26 -25
  175. package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
  176. package/dist/features/converters/lexicalToHtml/async/converters/upload.js +44 -41
  177. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  178. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js +11 -12
  179. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
  180. package/dist/features/converters/lexicalToHtml/async/field/index.js +56 -56
  181. package/dist/features/converters/lexicalToHtml/async/field/index.js.map +1 -1
  182. package/dist/features/converters/lexicalToHtml/async/index.js +97 -87
  183. package/dist/features/converters/lexicalToHtml/async/index.js.map +1 -1
  184. package/dist/features/converters/lexicalToHtml/async/types.js +1 -4
  185. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  186. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +62 -57
  187. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  188. package/dist/features/converters/lexicalToHtml/shared/types.js +1 -2
  189. package/dist/features/converters/lexicalToHtml/shared/types.js.map +1 -1
  190. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js +10 -7
  191. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
  192. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js +10 -7
  193. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  194. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js +1 -2
  195. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
  196. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js +1 -2
  197. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
  198. package/dist/features/converters/lexicalToHtml/sync/converters/link.js +35 -27
  199. package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
  200. package/dist/features/converters/lexicalToHtml/sync/converters/list.js +26 -18
  201. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  202. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js +12 -9
  203. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
  204. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js +1 -2
  205. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
  206. package/dist/features/converters/lexicalToHtml/sync/converters/table.js +38 -27
  207. package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
  208. package/dist/features/converters/lexicalToHtml/sync/converters/text.js +26 -25
  209. package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
  210. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js +37 -35
  211. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  212. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js +11 -12
  213. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
  214. package/dist/features/converters/lexicalToHtml/sync/index.js +92 -84
  215. package/dist/features/converters/lexicalToHtml/sync/index.js.map +1 -1
  216. package/dist/features/converters/lexicalToHtml/sync/types.js +1 -4
  217. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  218. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js +4 -7
  219. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js.map +1 -1
  220. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js +34 -29
  221. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js.map +1 -1
  222. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js +6 -7
  223. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js.map +1 -1
  224. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js +28 -29
  225. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js.map +1 -1
  226. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js +2 -7
  227. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js.map +1 -1
  228. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js +84 -84
  229. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js.map +1 -1
  230. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js +1 -6
  231. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js.map +1 -1
  232. package/dist/features/converters/lexicalToHtml_deprecated/field/index.js +107 -107
  233. package/dist/features/converters/lexicalToHtml_deprecated/field/index.js.map +1 -1
  234. package/dist/features/converters/lexicalToHtml_deprecated/index.js +4 -4
  235. package/dist/features/converters/lexicalToHtml_deprecated/index.js.map +1 -1
  236. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +20 -6
  237. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  238. package/dist/features/converters/lexicalToJSX/Component/index.js +37 -42
  239. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  240. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js +12 -14
  241. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  242. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +13 -15
  243. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  244. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js +2 -7
  245. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  246. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js +2 -7
  247. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  248. package/dist/features/converters/lexicalToJSX/converter/converters/link.js +47 -49
  249. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  250. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +56 -78
  251. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  252. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js +16 -26
  253. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  254. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js +1 -2
  255. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
  256. package/dist/features/converters/lexicalToJSX/converter/converters/table.js +59 -73
  257. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  258. package/dist/features/converters/lexicalToJSX/converter/converters/text.js +47 -74
  259. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  260. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +61 -77
  261. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  262. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js +11 -12
  263. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
  264. package/dist/features/converters/lexicalToJSX/converter/index.d.ts +2 -17
  265. package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
  266. package/dist/features/converters/lexicalToJSX/converter/index.js +125 -253
  267. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  268. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +10 -14
  269. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  270. package/dist/features/converters/lexicalToJSX/converter/types.js +1 -4
  271. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  272. package/dist/features/converters/lexicalToMarkdown/index.js +19 -17
  273. package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
  274. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +146 -223
  275. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +1 -1
  276. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js +13 -11
  277. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
  278. package/dist/features/converters/lexicalToPlaintext/shared/types.js +1 -2
  279. package/dist/features/converters/lexicalToPlaintext/shared/types.js.map +1 -1
  280. package/dist/features/converters/lexicalToPlaintext/sync/index.js +82 -83
  281. package/dist/features/converters/lexicalToPlaintext/sync/index.js.map +1 -1
  282. package/dist/features/converters/lexicalToPlaintext/sync/types.js +1 -3
  283. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  284. package/dist/features/converters/markdownToLexical/index.js +16 -14
  285. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  286. package/dist/features/converters/utilities/payloadPopulateFn.js +38 -37
  287. package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
  288. package/dist/features/converters/utilities/restPopulateFn.js +30 -24
  289. package/dist/features/converters/utilities/restPopulateFn.js.map +1 -1
  290. package/dist/features/debug/jsxConverter/client/index.js +5 -7
  291. package/dist/features/debug/jsxConverter/client/index.js.map +1 -1
  292. package/dist/features/debug/jsxConverter/client/plugin/index.js +47 -27
  293. package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
  294. package/dist/features/debug/jsxConverter/server/index.js +4 -5
  295. package/dist/features/debug/jsxConverter/server/index.js.map +1 -1
  296. package/dist/features/debug/testRecorder/client/index.js +5 -7
  297. package/dist/features/debug/testRecorder/client/index.js.map +1 -1
  298. package/dist/features/debug/testRecorder/client/plugin/index.js +365 -456
  299. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  300. package/dist/features/debug/testRecorder/server/index.js +4 -5
  301. package/dist/features/debug/testRecorder/server/index.js.map +1 -1
  302. package/dist/features/debug/treeView/client/index.js +5 -7
  303. package/dist/features/debug/treeView/client/index.js.map +1 -1
  304. package/dist/features/debug/treeView/client/plugin/index.js +23 -18
  305. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
  306. package/dist/features/debug/treeView/server/index.js +4 -5
  307. package/dist/features/debug/treeView/server/index.js.map +1 -1
  308. package/dist/features/experimental_table/client/index.js +42 -61
  309. package/dist/features/experimental_table/client/index.js.map +1 -1
  310. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +517 -752
  311. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  312. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +316 -350
  313. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  314. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +225 -215
  315. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  316. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +133 -104
  317. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  318. package/dist/features/experimental_table/client/utils/debounce.js +107 -89
  319. package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
  320. package/dist/features/experimental_table/client/utils/useDebounce.js +39 -21
  321. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
  322. package/dist/features/experimental_table/markdownTransformer.js +118 -123
  323. package/dist/features/experimental_table/markdownTransformer.js.map +1 -1
  324. package/dist/features/experimental_table/server/index.js +143 -125
  325. package/dist/features/experimental_table/server/index.js.map +1 -1
  326. package/dist/features/format/bold/feature.client.js +35 -38
  327. package/dist/features/format/bold/feature.client.js.map +1 -1
  328. package/dist/features/format/bold/feature.server.js +14 -18
  329. package/dist/features/format/bold/feature.server.js.map +1 -1
  330. package/dist/features/format/bold/markdownTransformers.js +14 -25
  331. package/dist/features/format/bold/markdownTransformers.js.map +1 -1
  332. package/dist/features/format/inlineCode/feature.client.js +27 -31
  333. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  334. package/dist/features/format/inlineCode/feature.server.js +5 -8
  335. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  336. package/dist/features/format/inlineCode/markdownTransformers.js +3 -6
  337. package/dist/features/format/inlineCode/markdownTransformers.js.map +1 -1
  338. package/dist/features/format/italic/feature.client.js +27 -32
  339. package/dist/features/format/italic/feature.client.js.map +1 -1
  340. package/dist/features/format/italic/feature.server.js +5 -9
  341. package/dist/features/format/italic/feature.server.js.map +1 -1
  342. package/dist/features/format/italic/markdownTransformers.js +7 -12
  343. package/dist/features/format/italic/markdownTransformers.js.map +1 -1
  344. package/dist/features/format/shared/toolbarFormatGroup.js +8 -8
  345. package/dist/features/format/shared/toolbarFormatGroup.js.map +1 -1
  346. package/dist/features/format/strikethrough/feature.client.js +27 -31
  347. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  348. package/dist/features/format/strikethrough/feature.server.js +5 -8
  349. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  350. package/dist/features/format/strikethrough/markdownTransformers.js +3 -6
  351. package/dist/features/format/strikethrough/markdownTransformers.js.map +1 -1
  352. package/dist/features/format/subscript/feature.client.js +26 -28
  353. package/dist/features/format/subscript/feature.client.js.map +1 -1
  354. package/dist/features/format/subscript/feature.server.js +4 -5
  355. package/dist/features/format/subscript/feature.server.js.map +1 -1
  356. package/dist/features/format/superscript/feature.client.js +26 -28
  357. package/dist/features/format/superscript/feature.client.js.map +1 -1
  358. package/dist/features/format/superscript/feature.server.js +4 -5
  359. package/dist/features/format/superscript/feature.server.js.map +1 -1
  360. package/dist/features/format/underline/feature.client.js +26 -28
  361. package/dist/features/format/underline/feature.client.js.map +1 -1
  362. package/dist/features/format/underline/feature.server.js +4 -5
  363. package/dist/features/format/underline/feature.server.js.map +1 -1
  364. package/dist/features/heading/client/index.js +142 -121
  365. package/dist/features/heading/client/index.js.map +1 -1
  366. package/dist/features/heading/markdownTransformer.js +22 -25
  367. package/dist/features/heading/markdownTransformer.js.map +1 -1
  368. package/dist/features/heading/server/i18n.js +111 -112
  369. package/dist/features/heading/server/i18n.js.map +1 -1
  370. package/dist/features/heading/server/index.js +60 -62
  371. package/dist/features/heading/server/index.js.map +1 -1
  372. package/dist/features/horizontalRule/client/index.js +48 -57
  373. package/dist/features/horizontalRule/client/index.js.map +1 -1
  374. package/dist/features/horizontalRule/client/markdownTransformer.js +15 -18
  375. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  376. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +27 -25
  377. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  378. package/dist/features/horizontalRule/client/plugin/index.js +32 -21
  379. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  380. package/dist/features/horizontalRule/server/i18n.js +111 -112
  381. package/dist/features/horizontalRule/server/i18n.js.map +1 -1
  382. package/dist/features/horizontalRule/server/index.js +17 -24
  383. package/dist/features/horizontalRule/server/index.js.map +1 -1
  384. package/dist/features/horizontalRule/server/markdownTransformer.js +15 -18
  385. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  386. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +72 -69
  387. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  388. package/dist/features/indent/client/IndentPlugin.js +78 -78
  389. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  390. package/dist/features/indent/client/index.js +77 -68
  391. package/dist/features/indent/client/index.js.map +1 -1
  392. package/dist/features/indent/client/toolbarIndentGroup.js +8 -8
  393. package/dist/features/indent/client/toolbarIndentGroup.js.map +1 -1
  394. package/dist/features/indent/server/i18n.js +148 -149
  395. package/dist/features/indent/server/i18n.js.map +1 -1
  396. package/dist/features/indent/server/index.js +11 -18
  397. package/dist/features/indent/server/index.js.map +1 -1
  398. package/dist/features/link/client/index.js +80 -83
  399. package/dist/features/link/client/index.js.map +1 -1
  400. package/dist/features/link/client/plugins/autoLink/index.js +273 -280
  401. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  402. package/dist/features/link/client/plugins/clickableLink/index.js +4 -8
  403. package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
  404. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -1
  405. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -1
  406. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +308 -395
  407. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  408. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +9 -12
  409. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  410. package/dist/features/link/client/plugins/floatingLinkEditor/types.js +1 -6
  411. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
  412. package/dist/features/link/client/plugins/link/index.js +68 -53
  413. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  414. package/dist/features/link/markdownTransformer.js +33 -34
  415. package/dist/features/link/markdownTransformer.js.map +1 -1
  416. package/dist/features/link/nodes/AutoLinkNode.js +58 -56
  417. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  418. package/dist/features/link/nodes/LinkNode.js +288 -286
  419. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  420. package/dist/features/link/nodes/types.js +1 -6
  421. package/dist/features/link/nodes/types.js.map +1 -1
  422. package/dist/features/link/server/baseFields.js +140 -115
  423. package/dist/features/link/server/baseFields.js.map +1 -1
  424. package/dist/features/link/server/graphQLPopulationPromise.js +45 -29
  425. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
  426. package/dist/features/link/server/i18n.js +148 -149
  427. package/dist/features/link/server/i18n.js.map +1 -1
  428. package/dist/features/link/server/index.js +143 -156
  429. package/dist/features/link/server/index.js.map +1 -1
  430. package/dist/features/link/server/transformExtraFields.js +15 -15
  431. package/dist/features/link/server/transformExtraFields.js.map +1 -1
  432. package/dist/features/link/server/validate.js +46 -35
  433. package/dist/features/link/server/validate.js.map +1 -1
  434. package/dist/features/lists/checklist/client/index.js +78 -86
  435. package/dist/features/lists/checklist/client/index.js.map +1 -1
  436. package/dist/features/lists/checklist/client/plugin/index.js +4 -8
  437. package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
  438. package/dist/features/lists/checklist/markdownTransformers.js +7 -11
  439. package/dist/features/lists/checklist/markdownTransformers.js.map +1 -1
  440. package/dist/features/lists/checklist/server/i18n.js +111 -112
  441. package/dist/features/lists/checklist/server/i18n.js.map +1 -1
  442. package/dist/features/lists/checklist/server/index.js +21 -26
  443. package/dist/features/lists/checklist/server/index.js.map +1 -1
  444. package/dist/features/lists/htmlConverter.js +62 -47
  445. package/dist/features/lists/htmlConverter.js.map +1 -1
  446. package/dist/features/lists/orderedList/client/index.js +72 -78
  447. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  448. package/dist/features/lists/orderedList/markdownTransformer.js +7 -11
  449. package/dist/features/lists/orderedList/markdownTransformer.js.map +1 -1
  450. package/dist/features/lists/orderedList/server/i18n.js +111 -112
  451. package/dist/features/lists/orderedList/server/i18n.js.map +1 -1
  452. package/dist/features/lists/orderedList/server/index.js +21 -26
  453. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  454. package/dist/features/lists/plugin/index.js +4 -8
  455. package/dist/features/lists/plugin/index.js.map +1 -1
  456. package/dist/features/lists/shared/markdown.js +48 -49
  457. package/dist/features/lists/shared/markdown.js.map +1 -1
  458. package/dist/features/lists/shared/shouldRegisterListBaseNodes.js +9 -10
  459. package/dist/features/lists/shared/shouldRegisterListBaseNodes.js.map +1 -1
  460. package/dist/features/lists/shared/slashMenuListGroup.js +9 -8
  461. package/dist/features/lists/shared/slashMenuListGroup.js.map +1 -1
  462. package/dist/features/lists/unorderedList/client/index.js +68 -76
  463. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  464. package/dist/features/lists/unorderedList/markdownTransformer.js +7 -11
  465. package/dist/features/lists/unorderedList/markdownTransformer.js.map +1 -1
  466. package/dist/features/lists/unorderedList/server/i18n.js +111 -112
  467. package/dist/features/lists/unorderedList/server/i18n.js.map +1 -1
  468. package/dist/features/lists/unorderedList/server/index.js +17 -24
  469. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  470. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +18 -17
  471. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -1
  472. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +30 -29
  473. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -1
  474. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +21 -20
  475. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -1
  476. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +21 -19
  477. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -1
  478. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +18 -17
  479. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -1
  480. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +24 -23
  481. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -1
  482. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +20 -21
  483. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -1
  484. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +1 -10
  485. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -1
  486. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +70 -64
  487. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
  488. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js +1 -2
  489. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -1
  490. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +5 -7
  491. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -1
  492. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +42 -43
  493. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -1
  494. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +11 -21
  495. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  496. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +66 -65
  497. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  498. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +19 -19
  499. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
  500. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +20 -26
  501. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
  502. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +28 -30
  503. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -1
  504. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +26 -27
  505. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
  506. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +22 -21
  507. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
  508. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +22 -22
  509. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
  510. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +12 -13
  511. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -1
  512. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +23 -23
  513. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
  514. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +22 -22
  515. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
  516. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +15 -16
  517. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -1
  518. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +1 -13
  519. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -1
  520. package/dist/features/migrations/slateToLexical/converter/index.js +117 -110
  521. package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
  522. package/dist/features/migrations/slateToLexical/converter/types.js +1 -2
  523. package/dist/features/migrations/slateToLexical/converter/types.js.map +1 -1
  524. package/dist/features/migrations/slateToLexical/feature.client.js +5 -7
  525. package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
  526. package/dist/features/migrations/slateToLexical/feature.server.js +45 -54
  527. package/dist/features/migrations/slateToLexical/feature.server.js.map +1 -1
  528. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +11 -21
  529. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  530. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +66 -65
  531. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  532. package/dist/features/paragraph/client/index.js +58 -61
  533. package/dist/features/paragraph/client/index.js.map +1 -1
  534. package/dist/features/paragraph/server/i18n.js +148 -149
  535. package/dist/features/paragraph/server/i18n.js.map +1 -1
  536. package/dist/features/paragraph/server/index.js +6 -7
  537. package/dist/features/paragraph/server/index.js.map +1 -1
  538. package/dist/features/relationship/client/components/RelationshipComponent.js +118 -147
  539. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  540. package/dist/features/relationship/client/drawer/commands.js +0 -1
  541. package/dist/features/relationship/client/drawer/commands.js.map +1 -1
  542. package/dist/features/relationship/client/drawer/index.js +132 -81
  543. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  544. package/dist/features/relationship/client/index.js +53 -59
  545. package/dist/features/relationship/client/index.js.map +1 -1
  546. package/dist/features/relationship/client/nodes/RelationshipNode.js +60 -64
  547. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  548. package/dist/features/relationship/client/plugins/index.js +69 -39
  549. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  550. package/dist/features/relationship/client/utils/useEnabledRelationships.js +58 -48
  551. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  552. package/dist/features/relationship/server/graphQLPopulationPromise.js +34 -26
  553. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  554. package/dist/features/relationship/server/i18n.js +111 -112
  555. package/dist/features/relationship/server/i18n.js.map +1 -1
  556. package/dist/features/relationship/server/index.js +59 -64
  557. package/dist/features/relationship/server/index.js.map +1 -1
  558. package/dist/features/relationship/server/nodes/RelationshipNode.js +95 -92
  559. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  560. package/dist/features/shared/slashMenu/basicGroup.js +9 -8
  561. package/dist/features/shared/slashMenu/basicGroup.js.map +1 -1
  562. package/dist/features/shared/toolbar/addDropdownGroup.js +8 -9
  563. package/dist/features/shared/toolbar/addDropdownGroup.js.map +1 -1
  564. package/dist/features/shared/toolbar/featureButtonsGroup.js +7 -8
  565. package/dist/features/shared/toolbar/featureButtonsGroup.js.map +1 -1
  566. package/dist/features/shared/toolbar/textDropdownGroup.js +8 -9
  567. package/dist/features/shared/toolbar/textDropdownGroup.js.map +1 -1
  568. package/dist/features/textState/defaultColors.js +370 -370
  569. package/dist/features/textState/defaultColors.js.map +1 -1
  570. package/dist/features/textState/feature.client.js +64 -77
  571. package/dist/features/textState/feature.client.js.map +1 -1
  572. package/dist/features/textState/feature.server.js +14 -46
  573. package/dist/features/textState/feature.server.js.map +1 -1
  574. package/dist/features/textState/i18n.js +111 -112
  575. package/dist/features/textState/i18n.js.map +1 -1
  576. package/dist/features/textState/textState.js +62 -64
  577. package/dist/features/textState/textState.js.map +1 -1
  578. package/dist/features/toolbars/fixed/client/Toolbar/index.js +297 -263
  579. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  580. package/dist/features/toolbars/fixed/client/index.js +5 -7
  581. package/dist/features/toolbars/fixed/client/index.js.map +1 -1
  582. package/dist/features/toolbars/fixed/server/index.js +16 -32
  583. package/dist/features/toolbars/fixed/server/index.js.map +1 -1
  584. package/dist/features/toolbars/inline/client/Toolbar/index.js +366 -343
  585. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  586. package/dist/features/toolbars/inline/client/index.js +5 -7
  587. package/dist/features/toolbars/inline/client/index.js.map +1 -1
  588. package/dist/features/toolbars/inline/server/index.js +4 -5
  589. package/dist/features/toolbars/inline/server/index.js.map +1 -1
  590. package/dist/features/toolbars/shared/ToolbarButton/index.js +145 -103
  591. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  592. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +208 -264
  593. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  594. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +176 -172
  595. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  596. package/dist/features/toolbars/types.js +1 -29
  597. package/dist/features/toolbars/types.js.map +1 -1
  598. package/dist/features/typeUtilities.js +2 -3
  599. package/dist/features/typeUtilities.js.map +1 -1
  600. package/dist/features/typesClient.js +1 -61
  601. package/dist/features/typesClient.js.map +1 -1
  602. package/dist/features/typesServer.js +1 -90
  603. package/dist/features/typesServer.js.map +1 -1
  604. package/dist/features/upload/client/component/index.js +189 -242
  605. package/dist/features/upload/client/component/index.js.map +1 -1
  606. package/dist/features/upload/client/component/pending/index.js +10 -19
  607. package/dist/features/upload/client/component/pending/index.js.map +1 -1
  608. package/dist/features/upload/client/drawer/commands.js +1 -1
  609. package/dist/features/upload/client/drawer/commands.js.map +1 -1
  610. package/dist/features/upload/client/drawer/index.js +132 -83
  611. package/dist/features/upload/client/drawer/index.js.map +1 -1
  612. package/dist/features/upload/client/index.js +51 -61
  613. package/dist/features/upload/client/index.js.map +1 -1
  614. package/dist/features/upload/client/nodes/UploadNode.js +61 -67
  615. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  616. package/dist/features/upload/client/plugin/index.js +331 -290
  617. package/dist/features/upload/client/plugin/index.js.map +1 -1
  618. package/dist/features/upload/server/graphQLPopulationPromise.js +63 -48
  619. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  620. package/dist/features/upload/server/i18n.js +111 -112
  621. package/dist/features/upload/server/i18n.js.map +1 -1
  622. package/dist/features/upload/server/index.d.ts.map +1 -1
  623. package/dist/features/upload/server/index.js +209 -197
  624. package/dist/features/upload/server/index.js.map +1 -1
  625. package/dist/features/upload/server/markdownTransformer.d.ts +3 -0
  626. package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -0
  627. package/dist/features/upload/server/markdownTransformer.js +52 -0
  628. package/dist/features/upload/server/markdownTransformer.js.map +1 -0
  629. package/dist/features/upload/server/nodes/UploadNode.js +99 -115
  630. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  631. package/dist/features/upload/server/nodes/conversions.js +40 -41
  632. package/dist/features/upload/server/nodes/conversions.js.map +1 -1
  633. package/dist/features/upload/server/validate.js +62 -48
  634. package/dist/features/upload/server/validate.js.map +1 -1
  635. package/dist/field/Diff/converters/link.js +41 -32
  636. package/dist/field/Diff/converters/link.js.map +1 -1
  637. package/dist/field/Diff/converters/listitem/index.js +55 -75
  638. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  639. package/dist/field/Diff/converters/relationship/index.js +63 -85
  640. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  641. package/dist/field/Diff/converters/unknown/index.js +41 -64
  642. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  643. package/dist/field/Diff/converters/upload/index.js +66 -122
  644. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  645. package/dist/field/Diff/index.js +99 -86
  646. package/dist/field/Diff/index.js.map +1 -1
  647. package/dist/field/Field.d.ts.map +1 -1
  648. package/dist/field/Field.js +167 -246
  649. package/dist/field/Field.js.map +1 -1
  650. package/dist/field/RenderLexical/index.js +119 -123
  651. package/dist/field/RenderLexical/index.js.map +1 -1
  652. package/dist/field/bundled.css +1 -0
  653. package/dist/field/index.d.ts +0 -1
  654. package/dist/field/index.d.ts.map +1 -1
  655. package/dist/field/index.js +97 -89
  656. package/dist/field/index.js.map +1 -1
  657. package/dist/field/rscEntry.d.ts +1 -1
  658. package/dist/field/rscEntry.d.ts.map +1 -1
  659. package/dist/field/rscEntry.js +84 -98
  660. package/dist/field/rscEntry.js.map +1 -1
  661. package/dist/i18n.js +222 -223
  662. package/dist/i18n.js.map +1 -1
  663. package/dist/index.d.ts +1 -1
  664. package/dist/index.d.ts.map +1 -1
  665. package/dist/index.js +704 -641
  666. package/dist/index.js.map +1 -1
  667. package/dist/lexical/EditorPlugin.js +17 -21
  668. package/dist/lexical/EditorPlugin.js.map +1 -1
  669. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  670. package/dist/lexical/LexicalEditor.js +171 -280
  671. package/dist/lexical/LexicalEditor.js.map +1 -1
  672. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  673. package/dist/lexical/LexicalProvider.js +86 -117
  674. package/dist/lexical/LexicalProvider.js.map +1 -1
  675. package/dist/lexical/config/client/EditorConfigProvider.js +81 -94
  676. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  677. package/dist/lexical/config/client/default.js +3 -3
  678. package/dist/lexical/config/client/default.js.map +1 -1
  679. package/dist/lexical/config/client/loader.js +38 -30
  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 +188 -190
  684. package/dist/lexical/config/client/sanitize.js.map +1 -1
  685. package/dist/lexical/config/server/default.js +5 -27
  686. package/dist/lexical/config/server/default.js.map +1 -1
  687. package/dist/lexical/config/server/loader.js +106 -105
  688. package/dist/lexical/config/server/loader.js.map +1 -1
  689. package/dist/lexical/config/server/sanitize.js +113 -114
  690. package/dist/lexical/config/server/sanitize.js.map +1 -1
  691. package/dist/lexical/config/types.d.ts +0 -4
  692. package/dist/lexical/config/types.d.ts.map +1 -1
  693. package/dist/lexical/config/types.js +1 -6
  694. package/dist/lexical/config/types.js.map +1 -1
  695. package/dist/lexical/nodes/index.d.ts +2 -12
  696. package/dist/lexical/nodes/index.d.ts.map +1 -1
  697. package/dist/lexical/nodes/index.js +15 -215
  698. package/dist/lexical/nodes/index.js.map +1 -1
  699. package/dist/lexical/plugins/ClipboardPlugin/index.js +70 -66
  700. package/dist/lexical/plugins/ClipboardPlugin/index.js.map +1 -1
  701. package/dist/lexical/plugins/DecoratorPlugin/index.js +225 -208
  702. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  703. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +41 -42
  704. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  705. package/dist/lexical/plugins/MarkdownShortcut/index.js +23 -11
  706. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  707. package/dist/lexical/plugins/NormalizeSelection/index.js +19 -21
  708. package/dist/lexical/plugins/NormalizeSelection/index.js.map +1 -1
  709. package/dist/lexical/plugins/SelectAllPlugin/index.js +17 -19
  710. package/dist/lexical/plugins/SelectAllPlugin/index.js.map +1 -1
  711. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +420 -399
  712. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  713. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +155 -164
  714. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  715. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -10
  716. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  717. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  718. package/dist/lexical/plugins/SlashMenu/index.js +181 -217
  719. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  720. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +41 -28
  721. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -1
  722. package/dist/lexical/plugins/TextPlugin/index.js +42 -27
  723. package/dist/lexical/plugins/TextPlugin/index.js.map +1 -1
  724. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +130 -145
  725. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  726. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +10 -10
  727. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
  728. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +10 -10
  729. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
  730. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +26 -23
  731. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +1 -1
  732. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +317 -325
  733. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  734. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +98 -86
  735. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  736. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js +22 -16
  737. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js.map +1 -1
  738. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +19 -29
  739. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +1 -1
  740. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js +14 -11
  741. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js.map +1 -1
  742. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +133 -122
  743. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
  744. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +2 -2
  745. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -1
  746. package/dist/lexical/plugins/handles/utils/isOnHandleElement.js +2 -2
  747. package/dist/lexical/plugins/handles/utils/isOnHandleElement.js.map +1 -1
  748. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +24 -29
  749. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  750. package/dist/lexical/theme/EditorTheme.js +65 -72
  751. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  752. package/dist/lexical/ui/ContentEditable.js +35 -22
  753. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  754. package/dist/lexical/ui/icons/AI/index.js +31 -58
  755. package/dist/lexical/ui/icons/AI/index.js.map +1 -1
  756. package/dist/lexical/ui/icons/Add/index.js +16 -31
  757. package/dist/lexical/ui/icons/Add/index.js.map +1 -1
  758. package/dist/lexical/ui/icons/AlignCenter/index.js +25 -45
  759. package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
  760. package/dist/lexical/ui/icons/AlignJustify/index.js +25 -45
  761. package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
  762. package/dist/lexical/ui/icons/AlignLeft/index.js +25 -45
  763. package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
  764. package/dist/lexical/ui/icons/AlignRight/index.js +25 -45
  765. package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
  766. package/dist/lexical/ui/icons/Block/index.js +34 -54
  767. package/dist/lexical/ui/icons/Block/index.js.map +1 -1
  768. package/dist/lexical/ui/icons/Blockquote/index.js +16 -24
  769. package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
  770. package/dist/lexical/ui/icons/Bold/index.js +16 -24
  771. package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
  772. package/dist/lexical/ui/icons/Checklist/index.js +24 -39
  773. package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
  774. package/dist/lexical/ui/icons/Code/index.js +19 -34
  775. package/dist/lexical/ui/icons/Code/index.js.map +1 -1
  776. package/dist/lexical/ui/icons/CodeBlock/index.js +14 -22
  777. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
  778. package/dist/lexical/ui/icons/Collapse/index.js +15 -23
  779. package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
  780. package/dist/lexical/ui/icons/H1/index.js +16 -24
  781. package/dist/lexical/ui/icons/H1/index.js.map +1 -1
  782. package/dist/lexical/ui/icons/H2/index.js +16 -24
  783. package/dist/lexical/ui/icons/H2/index.js.map +1 -1
  784. package/dist/lexical/ui/icons/H3/index.js +16 -24
  785. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  786. package/dist/lexical/ui/icons/H4/index.js +16 -24
  787. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  788. package/dist/lexical/ui/icons/H5/index.js +16 -24
  789. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  790. package/dist/lexical/ui/icons/H6/index.js +16 -24
  791. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  792. package/dist/lexical/ui/icons/HorizontalRule/index.js +19 -27
  793. package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
  794. package/dist/lexical/ui/icons/IndentDecrease/index.js +28 -53
  795. package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
  796. package/dist/lexical/ui/icons/IndentIncrease/index.js +28 -53
  797. package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
  798. package/dist/lexical/ui/icons/InlineBlocks/index.js +18 -26
  799. package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
  800. package/dist/lexical/ui/icons/Italic/index.js +16 -24
  801. package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
  802. package/dist/lexical/ui/icons/Link/index.js +17 -25
  803. package/dist/lexical/ui/icons/Link/index.js.map +1 -1
  804. package/dist/lexical/ui/icons/Meatballs/index.js +19 -39
  805. package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
  806. package/dist/lexical/ui/icons/OrderedList/index.js +31 -61
  807. package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
  808. package/dist/lexical/ui/icons/Relationship/index.js +31 -58
  809. package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
  810. package/dist/lexical/ui/icons/Strikethrough/index.js +19 -34
  811. package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
  812. package/dist/lexical/ui/icons/Subscript/index.js +16 -24
  813. package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
  814. package/dist/lexical/ui/icons/Superscript/index.js +16 -24
  815. package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
  816. package/dist/lexical/ui/icons/Table/index.js +17 -25
  817. package/dist/lexical/ui/icons/Table/index.js.map +1 -1
  818. package/dist/lexical/ui/icons/Text/index.js +16 -24
  819. package/dist/lexical/ui/icons/Text/index.js.map +1 -1
  820. package/dist/lexical/ui/icons/TextState/index.js +19 -25
  821. package/dist/lexical/ui/icons/TextState/index.js.map +1 -1
  822. package/dist/lexical/ui/icons/Underline/index.js +19 -34
  823. package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
  824. package/dist/lexical/ui/icons/UnorderedList/index.js +46 -81
  825. package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
  826. package/dist/lexical/ui/icons/Upload/index.js +28 -48
  827. package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
  828. package/dist/lexical/utils/canUseDOM.js +1 -1
  829. package/dist/lexical/utils/canUseDOM.js.map +1 -1
  830. package/dist/lexical/utils/environment.js +1 -1
  831. package/dist/lexical/utils/environment.js.map +1 -1
  832. package/dist/lexical/utils/getDOMRangeRect.js +12 -12
  833. package/dist/lexical/utils/getDOMRangeRect.js.map +1 -1
  834. package/dist/lexical/utils/getSelectedNode.js +17 -13
  835. package/dist/lexical/utils/getSelectedNode.js.map +1 -1
  836. package/dist/lexical/utils/guard.js +4 -3
  837. package/dist/lexical/utils/guard.js.map +1 -1
  838. package/dist/lexical/utils/joinClasses.js +2 -2
  839. package/dist/lexical/utils/joinClasses.js.map +1 -1
  840. package/dist/lexical/utils/markdown/createBlockNode.js +9 -10
  841. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  842. package/dist/lexical/utils/nodeFormat.js +58 -59
  843. package/dist/lexical/utils/nodeFormat.js.map +1 -1
  844. package/dist/lexical/utils/point.js +39 -32
  845. package/dist/lexical/utils/point.js.map +1 -1
  846. package/dist/lexical/utils/rect.js +166 -136
  847. package/dist/lexical/utils/rect.js.map +1 -1
  848. package/dist/lexical/utils/setFloatingElemPosition.js +56 -48
  849. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
  850. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js +49 -49
  851. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +1 -1
  852. package/dist/lexical/utils/swipe.js +81 -83
  853. package/dist/lexical/utils/swipe.js.map +1 -1
  854. package/dist/lexical/utils/url.js +53 -53
  855. package/dist/lexical/utils/url.js.map +1 -1
  856. package/dist/lexical/utils/url.spec.js +98 -214
  857. package/dist/lexical/utils/url.spec.js.map +1 -1
  858. package/dist/lexical-proxy/@lexical-headless.js +0 -1
  859. package/dist/lexical-proxy/@lexical-headless.js.map +1 -1
  860. package/dist/lexical-proxy/@lexical-html.js +0 -1
  861. package/dist/lexical-proxy/@lexical-html.js.map +1 -1
  862. package/dist/lexical-proxy/@lexical-link.js +0 -1
  863. package/dist/lexical-proxy/@lexical-link.js.map +1 -1
  864. package/dist/lexical-proxy/@lexical-list.js +0 -1
  865. package/dist/lexical-proxy/@lexical-list.js.map +1 -1
  866. package/dist/lexical-proxy/@lexical-mark.js +0 -1
  867. package/dist/lexical-proxy/@lexical-mark.js.map +1 -1
  868. package/dist/lexical-proxy/@lexical-markdown.js +0 -1
  869. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
  870. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js +0 -1
  871. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js.map +1 -1
  872. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js +0 -1
  873. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js.map +1 -1
  874. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js +0 -1
  875. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js.map +1 -1
  876. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js +0 -1
  877. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js.map +1 -1
  878. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js +0 -1
  879. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js.map +1 -1
  880. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js +0 -1
  881. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js.map +1 -1
  882. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js +0 -1
  883. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js.map +1 -1
  884. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js +0 -1
  885. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js.map +1 -1
  886. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js +0 -1
  887. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js.map +1 -1
  888. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js +0 -1
  889. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js.map +1 -1
  890. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js +0 -1
  891. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js.map +1 -1
  892. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js +0 -1
  893. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js.map +1 -1
  894. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js +0 -1
  895. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js.map +1 -1
  896. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +0 -1
  897. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +1 -1
  898. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js +0 -1
  899. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js.map +1 -1
  900. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js +0 -1
  901. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js.map +1 -1
  902. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js +0 -1
  903. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js.map +1 -1
  904. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js +0 -1
  905. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js.map +1 -1
  906. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js +0 -1
  907. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js.map +1 -1
  908. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js +0 -1
  909. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js.map +1 -1
  910. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js +0 -1
  911. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js.map +1 -1
  912. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js +0 -1
  913. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js.map +1 -1
  914. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js +0 -1
  915. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js.map +1 -1
  916. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js +0 -1
  917. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js.map +1 -1
  918. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js +0 -1
  919. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js.map +1 -1
  920. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js +0 -1
  921. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js.map +1 -1
  922. package/dist/lexical-proxy/@lexical-react/LexicalNodeContextMenuPlugin.js +0 -1
  923. package/dist/lexical-proxy/@lexical-react/LexicalNodeContextMenuPlugin.js.map +1 -1
  924. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js +0 -1
  925. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js.map +1 -1
  926. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js +0 -1
  927. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js.map +1 -1
  928. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js +0 -1
  929. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js.map +1 -1
  930. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js +0 -1
  931. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js.map +1 -1
  932. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js +0 -1
  933. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js.map +1 -1
  934. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js +0 -1
  935. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js.map +1 -1
  936. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js +0 -1
  937. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js.map +1 -1
  938. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js +0 -1
  939. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js.map +1 -1
  940. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js +0 -1
  941. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js.map +1 -1
  942. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js +0 -1
  943. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js.map +1 -1
  944. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js +0 -1
  945. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js.map +1 -1
  946. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js +0 -1
  947. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js.map +1 -1
  948. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js +0 -1
  949. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js.map +1 -1
  950. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js +0 -1
  951. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js.map +1 -1
  952. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js +0 -1
  953. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js.map +1 -1
  954. package/dist/lexical-proxy/@lexical-rich-text.js +0 -1
  955. package/dist/lexical-proxy/@lexical-rich-text.js.map +1 -1
  956. package/dist/lexical-proxy/@lexical-selection.js +0 -1
  957. package/dist/lexical-proxy/@lexical-selection.js.map +1 -1
  958. package/dist/lexical-proxy/@lexical-utils.js +0 -1
  959. package/dist/lexical-proxy/@lexical-utils.js.map +1 -1
  960. package/dist/lexical-proxy/lexical.js +0 -1
  961. package/dist/lexical-proxy/lexical.js.map +1 -1
  962. package/dist/nodeTypes.js +1 -35
  963. package/dist/nodeTypes.js.map +1 -1
  964. package/dist/packages/@lexical/markdown/MarkdownExport.js +179 -184
  965. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +1 -1
  966. package/dist/packages/@lexical/markdown/MarkdownImport.js +168 -173
  967. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +1 -1
  968. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +268 -258
  969. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +1 -1
  970. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +209 -305
  971. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +1 -1
  972. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +73 -76
  973. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +1 -1
  974. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +48 -59
  975. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +1 -1
  976. package/dist/packages/@lexical/markdown/importTextTransformers.js +45 -51
  977. package/dist/packages/@lexical/markdown/importTextTransformers.js.map +1 -1
  978. package/dist/packages/@lexical/markdown/index.js +14 -33
  979. package/dist/packages/@lexical/markdown/index.js.map +1 -1
  980. package/dist/packages/@lexical/markdown/utils.js +185 -217
  981. package/dist/packages/@lexical/markdown/utils.js.map +1 -1
  982. package/dist/populateGraphQL/defaultValue.js +24 -29
  983. package/dist/populateGraphQL/defaultValue.js.map +1 -1
  984. package/dist/populateGraphQL/populate.js +37 -26
  985. package/dist/populateGraphQL/populate.js.map +1 -1
  986. package/dist/populateGraphQL/populateLexicalPopulationPromises.js +50 -34
  987. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  988. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js +42 -35
  989. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
  990. package/dist/types.d.ts +2 -329
  991. package/dist/types.d.ts.map +1 -1
  992. package/dist/types.js +1 -219
  993. package/dist/types.js.map +1 -1
  994. package/dist/utilities/applyBaseFilterToFields.js +84 -81
  995. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  996. package/dist/utilities/buildEditorState.js +40 -39
  997. package/dist/utilities/buildEditorState.js.map +1 -1
  998. package/dist/utilities/buildInitialState.js +52 -51
  999. package/dist/utilities/buildInitialState.js.map +1 -1
  1000. package/dist/utilities/createClientFeature.js +48 -42
  1001. package/dist/utilities/createClientFeature.js.map +1 -1
  1002. package/dist/utilities/createServerFeature.js +48 -38
  1003. package/dist/utilities/createServerFeature.js.map +1 -1
  1004. package/dist/utilities/editorConfigFactory.js +79 -78
  1005. package/dist/utilities/editorConfigFactory.js.map +1 -1
  1006. package/dist/utilities/fieldsDrawer/Drawer.js +70 -45
  1007. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  1008. package/dist/utilities/fieldsDrawer/DrawerContent.js +124 -134
  1009. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  1010. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +115 -64
  1011. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  1012. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +121 -76
  1013. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -1
  1014. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +141 -79
  1015. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
  1016. package/dist/utilities/forEachNodeRecursively.js +24 -19
  1017. package/dist/utilities/forEachNodeRecursively.js.map +1 -1
  1018. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  1019. package/dist/utilities/generateImportMap.js +49 -44
  1020. package/dist/utilities/generateImportMap.js.map +1 -1
  1021. package/dist/utilities/generateSchemaMap.js +37 -32
  1022. package/dist/utilities/generateSchemaMap.js.map +1 -1
  1023. package/dist/utilities/getDefaultSanitizedEditorConfig.js +14 -12
  1024. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  1025. package/dist/utilities/initLexicalFeatures.js +65 -68
  1026. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  1027. package/dist/utilities/jsx/collectTopLevelJSXInLines.js +29 -26
  1028. package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -1
  1029. package/dist/utilities/jsx/declare.d.js.map +1 -1
  1030. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js +102 -100
  1031. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js.map +1 -1
  1032. package/dist/utilities/jsx/jsx.js +80 -76
  1033. package/dist/utilities/jsx/jsx.js.map +1 -1
  1034. package/dist/utilities/jsx/jsx.spec.js +171 -225
  1035. package/dist/utilities/jsx/jsx.spec.js.map +1 -1
  1036. package/dist/utilities/migrateSlateToLexical/index.js +127 -111
  1037. package/dist/utilities/migrateSlateToLexical/index.js.map +1 -1
  1038. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +78 -74
  1039. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  1040. package/dist/utilities/recurseNodeTree.js +25 -22
  1041. package/dist/utilities/recurseNodeTree.js.map +1 -1
  1042. package/dist/utilities/upgradeLexicalData/index.js +101 -87
  1043. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  1044. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +80 -78
  1045. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  1046. package/dist/utilities/useLexicalFeature.js +16 -14
  1047. package/dist/utilities/useLexicalFeature.js.map +1 -1
  1048. package/dist/utilities/useRunDeprioritized.js +37 -41
  1049. package/dist/utilities/useRunDeprioritized.js.map +1 -1
  1050. package/dist/validate/hasText.d.ts +1 -6
  1051. package/dist/validate/hasText.d.ts.map +1 -1
  1052. package/dist/validate/hasText.js +20 -27
  1053. package/dist/validate/hasText.js.map +1 -1
  1054. package/dist/validate/index.js +28 -22
  1055. package/dist/validate/index.js.map +1 -1
  1056. package/dist/validate/validateNodes.js +31 -28
  1057. package/dist/validate/validateNodes.js.map +1 -1
  1058. package/package.json +6 -11
  1059. package/dist/exports/client/internal-client.d.ts +0 -3
  1060. package/dist/exports/client/internal-client.d.ts.map +0 -1
  1061. package/dist/exports/client/internal-client.js +0 -4
  1062. package/dist/exports/client/internal-client.js.map +0 -1
  1063. package/dist/features/blocks/client/component/index.scss +0 -188
  1064. package/dist/features/blocks/client/componentInline/index.scss +0 -100
  1065. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.scss +0 -6
  1066. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.scss +0 -29
  1067. package/dist/features/blocks/premade/CodeBlock/Component/index.scss +0 -97
  1068. package/dist/features/debug/jsxConverter/client/plugin/style.scss +0 -12
  1069. package/dist/features/debug/testRecorder/client/plugin/index.scss +0 -53
  1070. package/dist/features/debug/treeView/client/plugin/index.scss +0 -80
  1071. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.scss +0 -87
  1072. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.scss +0 -11
  1073. package/dist/features/experimental_table/client/plugins/TablePlugin/index.scss +0 -233
  1074. package/dist/features/horizontalRule/client/plugin/index.scss +0 -23
  1075. package/dist/features/link/client/plugins/floatingLinkEditor/index.scss +0 -95
  1076. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +0 -16
  1077. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +0 -16
  1078. package/dist/features/relationship/client/components/index.scss +0 -95
  1079. package/dist/features/toolbars/fixed/client/Toolbar/index.scss +0 -113
  1080. package/dist/features/toolbars/inline/client/Toolbar/index.scss +0 -58
  1081. package/dist/features/toolbars/shared/ToolbarButton/index.scss +0 -46
  1082. package/dist/features/toolbars/shared/ToolbarDropdown/index.scss +0 -129
  1083. package/dist/features/upload/client/component/index.scss +0 -191
  1084. package/dist/field/Diff/converters/listitem/index.scss +0 -47
  1085. package/dist/field/Diff/converters/relationship/index.scss +0 -73
  1086. package/dist/field/Diff/converters/unknown/index.scss +0 -40
  1087. package/dist/field/Diff/converters/upload/index.scss +0 -115
  1088. package/dist/field/Diff/index.scss +0 -102
  1089. package/dist/field/RichTextViewProvider.d.ts +0 -85
  1090. package/dist/field/RichTextViewProvider.d.ts.map +0 -1
  1091. package/dist/field/RichTextViewProvider.js +0 -114
  1092. package/dist/field/RichTextViewProvider.js.map +0 -1
  1093. package/dist/field/ViewSelector.d.ts +0 -4
  1094. package/dist/field/ViewSelector.d.ts.map +0 -1
  1095. package/dist/field/ViewSelector.js +0 -90
  1096. package/dist/field/ViewSelector.js.map +0 -1
  1097. package/dist/field/ViewSelector.scss +0 -34
  1098. package/dist/field/index.scss +0 -53
  1099. package/dist/lexical/LexicalEditor.scss +0 -54
  1100. package/dist/lexical/plugins/DecoratorPlugin/index.scss +0 -13
  1101. package/dist/lexical/plugins/InsertParagraphAtEnd/index.scss +0 -54
  1102. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts +0 -2
  1103. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +0 -1
  1104. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +0 -31
  1105. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +0 -1
  1106. package/dist/lexical/plugins/SlashMenu/index.scss +0 -68
  1107. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +0 -35
  1108. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.scss +0 -80
  1109. package/dist/lexical/theme/EditorTheme.scss +0 -357
  1110. package/dist/lexical/ui/ContentEditable.scss +0 -105
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- */ import { $isListItemNode, $isListNode } from '@lexical/list';
7
+ */import { $isListItemNode, $isListNode } from '@lexical/list';
8
8
  import { $isQuoteNode } from '@lexical/rich-text';
9
9
  import { $findMatchingParent } from '@lexical/utils';
10
10
  import { $createLineBreakNode, $createParagraphNode, $createTextNode, $getRoot, $getSelection, $isParagraphNode } from 'lexical';
@@ -12,192 +12,187 @@ import { importTextTransformers } from './importTextTransformers.js';
12
12
  import { isEmptyParagraph, transformersByType } from './utils.js';
13
13
  /**
14
14
  * Renders markdown from a string. The selection is moved to the start after the operation.
15
- */ export function createMarkdownImport(transformers, shouldPreserveNewLines = false) {
16
- const byType = transformersByType(transformers);
17
- const textFormatTransformersIndex = createTextFormatTransformersIndex(byType.textFormat);
18
- return (markdownString, node)=>{
19
- const lines = markdownString.split('\n');
20
- const linesLength = lines.length;
21
- const root = node || $getRoot();
22
- root.clear();
23
- for(let i = 0; i < linesLength; i++){
24
- const lineText = lines[i];
25
- const [imported, shiftedIndex] = $importMultiline(lines, i, byType.multilineElement, root);
26
- if (imported) {
27
- // If a multiline markdown element was imported, we don't want to process the lines that were part of it anymore.
28
- // There could be other sub-markdown elements (both multiline and normal ones) matching within this matched multiline element's children.
29
- // However, it would be the responsibility of the matched multiline transformer to decide how it wants to handle them.
30
- // We cannot handle those, as there is no way for us to know how to maintain the correct order of generated lexical nodes for possible children.
31
- i = shiftedIndex;
32
- continue;
33
- }
34
- $importBlocks(lineText, root, byType.element, textFormatTransformersIndex, byType.textMatch);
35
- }
36
- // By default, removing empty paragraphs as md does not really
37
- // allow empty lines and uses them as delimiter.
38
- // If you need empty lines set shouldPreserveNewLines = true.
39
- const children = root.getChildren();
40
- for (const child of children){
41
- if (!shouldPreserveNewLines && isEmptyParagraph(child) && root.getChildrenSize() > 1) {
42
- child.remove();
43
- }
44
- }
45
- if ($getSelection() !== null) {
46
- root.selectStart();
47
- }
48
- };
15
+ */
16
+ export function createMarkdownImport(transformers, shouldPreserveNewLines = false) {
17
+ const byType = transformersByType(transformers);
18
+ const textFormatTransformersIndex = createTextFormatTransformersIndex(byType.textFormat);
19
+ return (markdownString, node) => {
20
+ const lines = markdownString.split('\n');
21
+ const linesLength = lines.length;
22
+ const root = node || $getRoot();
23
+ root.clear();
24
+ for (let i = 0; i < linesLength; i++) {
25
+ const lineText = lines[i];
26
+ const [imported, shiftedIndex] = $importMultiline(lines, i, byType.multilineElement, root);
27
+ if (imported) {
28
+ // If a multiline markdown element was imported, we don't want to process the lines that were part of it anymore.
29
+ // There could be other sub-markdown elements (both multiline and normal ones) matching within this matched multiline element's children.
30
+ // However, it would be the responsibility of the matched multiline transformer to decide how it wants to handle them.
31
+ // We cannot handle those, as there is no way for us to know how to maintain the correct order of generated lexical nodes for possible children.
32
+ i = shiftedIndex; // Next loop will start from the line after the last line of the multiline element
33
+ continue;
34
+ }
35
+ $importBlocks(lineText, root, byType.element, textFormatTransformersIndex, byType.textMatch);
36
+ }
37
+ // By default, removing empty paragraphs as md does not really
38
+ // allow empty lines and uses them as delimiter.
39
+ // If you need empty lines set shouldPreserveNewLines = true.
40
+ const children = root.getChildren();
41
+ for (const child of children) {
42
+ if (!shouldPreserveNewLines && isEmptyParagraph(child) && root.getChildrenSize() > 1) {
43
+ child.remove();
44
+ }
45
+ }
46
+ if ($getSelection() !== null) {
47
+ root.selectStart();
48
+ }
49
+ };
49
50
  }
50
51
  /**
51
52
  *
52
53
  * @returns first element of the returned tuple is a boolean indicating if a multiline element was imported. The second element is the index of the last line that was processed.
53
- */ function $importMultiline(lines, startLineIndex, multilineElementTransformers, rootNode) {
54
- for (const transformer of multilineElementTransformers){
55
- const { handleImportAfterStartMatch, regExpEnd, regExpStart, replace } = transformer;
56
- const startMatch = lines[startLineIndex]?.match(regExpStart);
57
- if (!startMatch) {
58
- continue;
59
- }
60
- // Try next transformer
61
- if (handleImportAfterStartMatch) {
62
- const result = handleImportAfterStartMatch({
63
- lines,
64
- rootNode,
65
- startLineIndex,
66
- startMatch,
67
- transformer
68
- });
69
- if (result === null) {
70
- continue;
71
- } else if (result) {
72
- return result;
73
- }
54
+ */
55
+ function $importMultiline(lines, startLineIndex, multilineElementTransformers, rootNode) {
56
+ for (const transformer of multilineElementTransformers) {
57
+ const {
58
+ handleImportAfterStartMatch,
59
+ regExpEnd,
60
+ regExpStart,
61
+ replace
62
+ } = transformer;
63
+ const startMatch = lines[startLineIndex]?.match(regExpStart);
64
+ if (!startMatch) {
65
+ continue; // Try next transformer
66
+ }
67
+ if (handleImportAfterStartMatch) {
68
+ const result = handleImportAfterStartMatch({
69
+ lines,
70
+ rootNode,
71
+ startLineIndex,
72
+ startMatch,
73
+ transformer
74
+ });
75
+ if (result === null) {
76
+ continue;
77
+ } else if (result) {
78
+ return result;
79
+ }
80
+ }
81
+ const regexpEndRegex = typeof regExpEnd === 'object' && 'regExp' in regExpEnd ? regExpEnd.regExp : regExpEnd;
82
+ const isEndOptional = regExpEnd && typeof regExpEnd === 'object' && 'optional' in regExpEnd ? regExpEnd.optional : !regExpEnd;
83
+ let endLineIndex = startLineIndex;
84
+ const linesLength = lines.length;
85
+ // check every single line for the closing match. It could also be on the same line as the opening match.
86
+ while (endLineIndex < linesLength) {
87
+ const endMatch = regexpEndRegex ? lines[endLineIndex]?.match(regexpEndRegex) : null;
88
+ if (!endMatch) {
89
+ if (!isEndOptional || isEndOptional && endLineIndex < linesLength - 1 // Optional end, but didn't reach the end of the document yet => continue searching for potential closing match
90
+ ) {
91
+ endLineIndex++;
92
+ continue; // Search next line for closing match
74
93
  }
75
- const regexpEndRegex = typeof regExpEnd === 'object' && 'regExp' in regExpEnd ? regExpEnd.regExp : regExpEnd;
76
- const isEndOptional = regExpEnd && typeof regExpEnd === 'object' && 'optional' in regExpEnd ? regExpEnd.optional : !regExpEnd;
77
- let endLineIndex = startLineIndex;
78
- const linesLength = lines.length;
79
- // check every single line for the closing match. It could also be on the same line as the opening match.
80
- while(endLineIndex < linesLength){
81
- const endMatch = regexpEndRegex ? lines[endLineIndex]?.match(regexpEndRegex) : null;
82
- if (!endMatch) {
83
- if (!isEndOptional || isEndOptional && endLineIndex < linesLength - 1) // Optional end, but didn't reach the end of the document yet => continue searching for potential closing match
84
- {
85
- endLineIndex++;
86
- continue;
87
- }
88
- }
89
- // Search next line for closing match
90
- // Now, check if the closing match matched is the same as the opening match.
91
- // If it is, we need to continue searching for the actual closing match.
92
- if (endMatch && startLineIndex === endLineIndex && endMatch.index === startMatch.index) {
93
- endLineIndex++;
94
- continue;
95
- }
96
- // Search next line for closing match
97
- // At this point, we have found the closing match. Next: calculate the lines in between open and closing match
98
- // This should not include the matches themselves, and be split up by lines
99
- const linesInBetween = [];
100
- if (endMatch && startLineIndex === endLineIndex) {
101
- linesInBetween.push(lines[startLineIndex].slice(startMatch[0].length, -endMatch[0].length));
102
- } else {
103
- for(let i = startLineIndex; i <= endLineIndex; i++){
104
- const line = lines[i];
105
- if (i === startLineIndex) {
106
- const text = line.slice(startMatch[0].length);
107
- linesInBetween.push(text);
108
- } else // Also include empty text
109
- if (i === endLineIndex && endMatch) {
110
- const text = line.slice(0, -endMatch[0].length);
111
- linesInBetween.push(text);
112
- } else // Also include empty text
113
- {
114
- linesInBetween.push(line);
115
- }
116
- }
117
- }
118
- if (replace(rootNode, null, startMatch, endMatch, linesInBetween, true) !== false) {
119
- // Return here. This $importMultiline function is run line by line and should only process a single multiline element at a time.
120
- return [
121
- true,
122
- endLineIndex
123
- ];
124
- }
125
- break;
94
+ }
95
+ // Now, check if the closing match matched is the same as the opening match.
96
+ // If it is, we need to continue searching for the actual closing match.
97
+ if (endMatch && startLineIndex === endLineIndex && endMatch.index === startMatch.index) {
98
+ endLineIndex++;
99
+ continue; // Search next line for closing match
100
+ }
101
+ // At this point, we have found the closing match. Next: calculate the lines in between open and closing match
102
+ // This should not include the matches themselves, and be split up by lines
103
+ const linesInBetween = [];
104
+ if (endMatch && startLineIndex === endLineIndex) {
105
+ linesInBetween.push(lines[startLineIndex].slice(startMatch[0].length, -endMatch[0].length));
106
+ } else {
107
+ for (let i = startLineIndex; i <= endLineIndex; i++) {
108
+ const line = lines[i];
109
+ if (i === startLineIndex) {
110
+ const text = line.slice(startMatch[0].length);
111
+ linesInBetween.push(text); // Also include empty text
112
+ } else if (i === endLineIndex && endMatch) {
113
+ const text = line.slice(0, -endMatch[0].length);
114
+ linesInBetween.push(text); // Also include empty text
115
+ } else {
116
+ linesInBetween.push(line);
117
+ }
126
118
  }
119
+ }
120
+ if (replace(rootNode, null, startMatch, endMatch, linesInBetween, true) !== false) {
121
+ // Return here. This $importMultiline function is run line by line and should only process a single multiline element at a time.
122
+ return [true, endLineIndex];
123
+ }
124
+ break;
127
125
  }
128
- // No multiline transformer handled this line successfully
129
- return [
130
- false,
131
- startLineIndex
132
- ];
126
+ }
127
+ // No multiline transformer handled this line successfully
128
+ return [false, startLineIndex];
133
129
  }
134
130
  function $importBlocks(lineText, rootNode, elementTransformers, textFormatTransformersIndex, textMatchTransformers) {
135
- const textNode = $createTextNode(lineText);
136
- const elementNode = $createParagraphNode();
137
- elementNode.append(textNode);
138
- rootNode.append(elementNode);
139
- for (const { regExp, replace } of elementTransformers){
140
- const match = lineText.match(regExp);
141
- if (match) {
142
- textNode.setTextContent(lineText.slice(match[0].length));
143
- if (replace(elementNode, [
144
- textNode
145
- ], match, true) !== false) {
146
- break;
147
- }
148
- }
131
+ const textNode = $createTextNode(lineText);
132
+ const elementNode = $createParagraphNode();
133
+ elementNode.append(textNode);
134
+ rootNode.append(elementNode);
135
+ for (const {
136
+ regExp,
137
+ replace
138
+ } of elementTransformers) {
139
+ const match = lineText.match(regExp);
140
+ if (match) {
141
+ textNode.setTextContent(lineText.slice(match[0].length));
142
+ if (replace(elementNode, [textNode], match, true) !== false) {
143
+ break;
144
+ }
149
145
  }
150
- importTextTransformers(textNode, textFormatTransformersIndex, textMatchTransformers);
151
- // If no transformer found and we left with original paragraph node
152
- // can check if its content can be appended to the previous node
153
- // if it's a paragraph, quote or list
154
- if (elementNode.isAttached() && lineText.length > 0) {
155
- const previousNode = elementNode.getPreviousSibling();
156
- if ($isParagraphNode(previousNode) || $isQuoteNode(previousNode) || $isListNode(previousNode)) {
157
- let targetNode = previousNode;
158
- if ($isListNode(previousNode)) {
159
- const lastDescendant = previousNode.getLastDescendant();
160
- if (lastDescendant == null) {
161
- targetNode = null;
162
- } else {
163
- targetNode = $findMatchingParent(lastDescendant, $isListItemNode);
164
- }
165
- }
166
- if (targetNode != null && targetNode.getTextContentSize() > 0) {
167
- targetNode.splice(targetNode.getChildrenSize(), 0, [
168
- $createLineBreakNode(),
169
- ...elementNode.getChildren()
170
- ]);
171
- elementNode.remove();
172
- }
146
+ }
147
+ importTextTransformers(textNode, textFormatTransformersIndex, textMatchTransformers);
148
+ // If no transformer found and we left with original paragraph node
149
+ // can check if its content can be appended to the previous node
150
+ // if it's a paragraph, quote or list
151
+ if (elementNode.isAttached() && lineText.length > 0) {
152
+ const previousNode = elementNode.getPreviousSibling();
153
+ if ($isParagraphNode(previousNode) || $isQuoteNode(previousNode) || $isListNode(previousNode)) {
154
+ let targetNode = previousNode;
155
+ if ($isListNode(previousNode)) {
156
+ const lastDescendant = previousNode.getLastDescendant();
157
+ if (lastDescendant == null) {
158
+ targetNode = null;
159
+ } else {
160
+ targetNode = $findMatchingParent(lastDescendant, $isListItemNode);
173
161
  }
162
+ }
163
+ if (targetNode != null && targetNode.getTextContentSize() > 0) {
164
+ targetNode.splice(targetNode.getChildrenSize(), 0, [$createLineBreakNode(), ...elementNode.getChildren()]);
165
+ elementNode.remove();
166
+ }
174
167
  }
168
+ }
175
169
  }
176
170
  function createTextFormatTransformersIndex(textTransformers) {
177
- const transformersByTag = {};
178
- const fullMatchRegExpByTag = {};
179
- const openTagsRegExp = [];
180
- const escapeRegExp = `(?<![\\\\])`;
181
- for (const transformer of textTransformers){
182
- const { tag } = transformer;
183
- transformersByTag[tag] = transformer;
184
- const tagRegExp = tag.replace(/([*^+])/g, '\\$1');
185
- openTagsRegExp.push(tagRegExp);
186
- // Single-char tag (e.g. "*"),
187
- if (tag.length === 1) {
188
- fullMatchRegExpByTag[tag] = new RegExp(`(?<![\\\\${tagRegExp}])(${tagRegExp})((\\\\${tagRegExp})?.*?[^${tagRegExp}\\s](\\\\${tagRegExp})?)((?<!\\\\)|(?<=\\\\\\\\))(${tagRegExp})(?![\\\\${tagRegExp}])`);
189
- } else {
190
- // Multi‐char tags (e.g. "**")
191
- fullMatchRegExpByTag[tag] = new RegExp(`(?<!\\\\)(${tagRegExp})((\\\\${tagRegExp})?.*?[^\\s](\\\\${tagRegExp})?)((?<!\\\\)|(?<=\\\\\\\\))(${tagRegExp})(?!\\\\)`);
192
- }
171
+ const transformersByTag = {};
172
+ const fullMatchRegExpByTag = {};
173
+ const openTagsRegExp = [];
174
+ const escapeRegExp = `(?<![\\\\])`;
175
+ for (const transformer of textTransformers) {
176
+ const {
177
+ tag
178
+ } = transformer;
179
+ transformersByTag[tag] = transformer;
180
+ const tagRegExp = tag.replace(/([*^+])/g, '\\$1');
181
+ openTagsRegExp.push(tagRegExp);
182
+ // Single-char tag (e.g. "*"),
183
+ if (tag.length === 1) {
184
+ fullMatchRegExpByTag[tag] = new RegExp(`(?<![\\\\${tagRegExp}])(${tagRegExp})((\\\\${tagRegExp})?.*?[^${tagRegExp}\\s](\\\\${tagRegExp})?)((?<!\\\\)|(?<=\\\\\\\\))(${tagRegExp})(?![\\\\${tagRegExp}])`);
185
+ } else {
186
+ // Multi‐char tags (e.g. "**")
187
+ fullMatchRegExpByTag[tag] = new RegExp(`(?<!\\\\)(${tagRegExp})((\\\\${tagRegExp})?.*?[^\\s](\\\\${tagRegExp})?)((?<!\\\\)|(?<=\\\\\\\\))(${tagRegExp})(?!\\\\)`);
193
188
  }
194
- return {
195
- // Reg exp to find open tag + content + close tag
196
- fullMatchRegExpByTag,
197
- // Regexp to locate *any* potential opening tag (longest first).
198
- openTagsRegExp: new RegExp(`${escapeRegExp}(${openTagsRegExp.join('|')})`, 'g'),
199
- transformersByTag
200
- };
189
+ }
190
+ return {
191
+ // Reg exp to find open tag + content + close tag
192
+ fullMatchRegExpByTag,
193
+ // Regexp to locate *any* potential opening tag (longest first).
194
+ openTagsRegExp: new RegExp(`${escapeRegExp}(${openTagsRegExp.join('|')})`, 'g'),
195
+ transformersByTag
196
+ };
201
197
  }
202
-
203
198
  //# sourceMappingURL=MarkdownImport.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/packages/@lexical/markdown/MarkdownImport.ts"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport type { ListItemNode } from '@lexical/list'\nimport type { ElementNode } from 'lexical'\n\nimport { $isListItemNode, $isListNode } from '@lexical/list'\nimport { $isQuoteNode } from '@lexical/rich-text'\nimport { $findMatchingParent } from '@lexical/utils'\nimport {\n $createLineBreakNode,\n $createParagraphNode,\n $createTextNode,\n $getRoot,\n $getSelection,\n $isParagraphNode,\n} from 'lexical'\n\nimport type {\n ElementTransformer,\n MultilineElementTransformer,\n TextFormatTransformer,\n TextMatchTransformer,\n Transformer,\n} from './MarkdownTransformers.js'\n\nimport { importTextTransformers } from './importTextTransformers.js'\nimport { isEmptyParagraph, transformersByType } from './utils.js'\n\nexport type TextFormatTransformersIndex = Readonly<{\n fullMatchRegExpByTag: Readonly<Record<string, RegExp>>\n openTagsRegExp: RegExp\n transformersByTag: Readonly<Record<string, TextFormatTransformer>>\n}>\n\n/**\n * Renders markdown from a string. The selection is moved to the start after the operation.\n */\nexport function createMarkdownImport(\n transformers: Array<Transformer>,\n shouldPreserveNewLines = false,\n): (markdownString: string, node?: ElementNode) => void {\n const byType = transformersByType(transformers)\n const textFormatTransformersIndex = createTextFormatTransformersIndex(byType.textFormat)\n\n return (markdownString, node) => {\n const lines = markdownString.split('\\n')\n const linesLength = lines.length\n const root = node || $getRoot()\n root.clear()\n\n for (let i = 0; i < linesLength; i++) {\n const lineText = lines[i]!\n\n const [imported, shiftedIndex] = $importMultiline(lines, i, byType.multilineElement, root)\n\n if (imported) {\n // If a multiline markdown element was imported, we don't want to process the lines that were part of it anymore.\n // There could be other sub-markdown elements (both multiline and normal ones) matching within this matched multiline element's children.\n // However, it would be the responsibility of the matched multiline transformer to decide how it wants to handle them.\n // We cannot handle those, as there is no way for us to know how to maintain the correct order of generated lexical nodes for possible children.\n i = shiftedIndex // Next loop will start from the line after the last line of the multiline element\n continue\n }\n\n $importBlocks(lineText, root, byType.element, textFormatTransformersIndex, byType.textMatch)\n }\n\n // By default, removing empty paragraphs as md does not really\n // allow empty lines and uses them as delimiter.\n // If you need empty lines set shouldPreserveNewLines = true.\n const children = root.getChildren()\n for (const child of children) {\n if (!shouldPreserveNewLines && isEmptyParagraph(child) && root.getChildrenSize() > 1) {\n child.remove()\n }\n }\n\n if ($getSelection() !== null) {\n root.selectStart()\n }\n }\n}\n\n/**\n *\n * @returns first element of the returned tuple is a boolean indicating if a multiline element was imported. The second element is the index of the last line that was processed.\n */\nfunction $importMultiline(\n lines: Array<string>,\n startLineIndex: number,\n multilineElementTransformers: Array<MultilineElementTransformer>,\n rootNode: ElementNode,\n): [boolean, number] {\n for (const transformer of multilineElementTransformers) {\n const { handleImportAfterStartMatch, regExpEnd, regExpStart, replace } = transformer\n\n const startMatch = lines[startLineIndex]?.match(regExpStart)\n if (!startMatch) {\n continue // Try next transformer\n }\n\n if (handleImportAfterStartMatch) {\n const result = handleImportAfterStartMatch({\n lines,\n rootNode,\n startLineIndex,\n startMatch,\n transformer,\n })\n if (result === null) {\n continue\n } else if (result) {\n return result\n }\n }\n\n const regexpEndRegex: RegExp | undefined =\n typeof regExpEnd === 'object' && 'regExp' in regExpEnd ? regExpEnd.regExp : regExpEnd\n\n const isEndOptional =\n regExpEnd && typeof regExpEnd === 'object' && 'optional' in regExpEnd\n ? regExpEnd.optional\n : !regExpEnd\n\n let endLineIndex = startLineIndex\n const linesLength = lines.length\n\n // check every single line for the closing match. It could also be on the same line as the opening match.\n while (endLineIndex < linesLength) {\n const endMatch = regexpEndRegex ? lines[endLineIndex]?.match(regexpEndRegex) : null\n if (!endMatch) {\n if (\n !isEndOptional ||\n (isEndOptional && endLineIndex < linesLength - 1) // Optional end, but didn't reach the end of the document yet => continue searching for potential closing match\n ) {\n endLineIndex++\n continue // Search next line for closing match\n }\n }\n\n // Now, check if the closing match matched is the same as the opening match.\n // If it is, we need to continue searching for the actual closing match.\n if (endMatch && startLineIndex === endLineIndex && endMatch.index === startMatch.index) {\n endLineIndex++\n continue // Search next line for closing match\n }\n\n // At this point, we have found the closing match. Next: calculate the lines in between open and closing match\n // This should not include the matches themselves, and be split up by lines\n const linesInBetween: string[] = []\n\n if (endMatch && startLineIndex === endLineIndex) {\n linesInBetween.push(lines[startLineIndex]!.slice(startMatch[0].length, -endMatch[0].length))\n } else {\n for (let i = startLineIndex; i <= endLineIndex; i++) {\n const line = lines[i]!\n if (i === startLineIndex) {\n const text = line.slice(startMatch[0].length)\n linesInBetween.push(text) // Also include empty text\n } else if (i === endLineIndex && endMatch) {\n const text = line.slice(0, -endMatch[0].length)\n linesInBetween.push(text) // Also include empty text\n } else {\n linesInBetween.push(line)\n }\n }\n }\n\n if (replace(rootNode, null, startMatch, endMatch!, linesInBetween, true) !== false) {\n // Return here. This $importMultiline function is run line by line and should only process a single multiline element at a time.\n return [true, endLineIndex]\n }\n\n // The replace function returned false, despite finding the matching open and close tags => this transformer does not want to handle it.\n // Thus, we continue letting the remaining transformers handle the passed lines of text from the beginning\n break\n }\n }\n\n // No multiline transformer handled this line successfully\n return [false, startLineIndex]\n}\n\nfunction $importBlocks(\n lineText: string,\n rootNode: ElementNode,\n elementTransformers: Array<ElementTransformer>,\n textFormatTransformersIndex: TextFormatTransformersIndex,\n textMatchTransformers: Array<TextMatchTransformer>,\n) {\n const textNode = $createTextNode(lineText)\n const elementNode = $createParagraphNode()\n elementNode.append(textNode)\n rootNode.append(elementNode)\n\n for (const { regExp, replace } of elementTransformers) {\n const match = lineText.match(regExp)\n\n if (match) {\n textNode.setTextContent(lineText.slice(match[0].length))\n if (replace(elementNode, [textNode], match, true) !== false) {\n break\n }\n }\n }\n\n importTextTransformers(textNode, textFormatTransformersIndex, textMatchTransformers)\n\n // If no transformer found and we left with original paragraph node\n // can check if its content can be appended to the previous node\n // if it's a paragraph, quote or list\n if (elementNode.isAttached() && lineText.length > 0) {\n const previousNode = elementNode.getPreviousSibling()\n if ($isParagraphNode(previousNode) || $isQuoteNode(previousNode) || $isListNode(previousNode)) {\n let targetNode: ListItemNode | null | typeof previousNode = previousNode\n\n if ($isListNode(previousNode)) {\n const lastDescendant = previousNode.getLastDescendant()\n if (lastDescendant == null) {\n targetNode = null\n } else {\n targetNode = $findMatchingParent(lastDescendant, $isListItemNode)\n }\n }\n\n if (targetNode != null && targetNode.getTextContentSize() > 0) {\n targetNode.splice(targetNode.getChildrenSize(), 0, [\n $createLineBreakNode(),\n ...elementNode.getChildren(),\n ])\n elementNode.remove()\n }\n }\n }\n}\n\nfunction createTextFormatTransformersIndex(\n textTransformers: Array<TextFormatTransformer>,\n): TextFormatTransformersIndex {\n const transformersByTag: Record<string, TextFormatTransformer> = {}\n const fullMatchRegExpByTag: Record<string, RegExp> = {}\n const openTagsRegExp: string[] = []\n const escapeRegExp = `(?<![\\\\\\\\])`\n\n for (const transformer of textTransformers) {\n const { tag } = transformer\n transformersByTag[tag] = transformer\n const tagRegExp = tag.replace(/([*^+])/g, '\\\\$1')\n openTagsRegExp.push(tagRegExp)\n\n // Single-char tag (e.g. \"*\"),\n if (tag.length === 1) {\n fullMatchRegExpByTag[tag] = new RegExp(\n `(?<![\\\\\\\\${tagRegExp}])(${tagRegExp})((\\\\\\\\${tagRegExp})?.*?[^${tagRegExp}\\\\s](\\\\\\\\${tagRegExp})?)((?<!\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\))(${tagRegExp})(?![\\\\\\\\${tagRegExp}])`,\n )\n } else {\n // Multi‐char tags (e.g. \"**\")\n fullMatchRegExpByTag[tag] = new RegExp(\n `(?<!\\\\\\\\)(${tagRegExp})((\\\\\\\\${tagRegExp})?.*?[^\\\\s](\\\\\\\\${tagRegExp})?)((?<!\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\))(${tagRegExp})(?!\\\\\\\\)`,\n )\n }\n }\n\n return {\n // Reg exp to find open tag + content + close tag\n fullMatchRegExpByTag,\n\n // Regexp to locate *any* potential opening tag (longest first).\n openTagsRegExp: new RegExp(`${escapeRegExp}(${openTagsRegExp.join('|')})`, 'g'),\n transformersByTag,\n }\n}\n"],"names":["$isListItemNode","$isListNode","$isQuoteNode","$findMatchingParent","$createLineBreakNode","$createParagraphNode","$createTextNode","$getRoot","$getSelection","$isParagraphNode","importTextTransformers","isEmptyParagraph","transformersByType","createMarkdownImport","transformers","shouldPreserveNewLines","byType","textFormatTransformersIndex","createTextFormatTransformersIndex","textFormat","markdownString","node","lines","split","linesLength","length","root","clear","i","lineText","imported","shiftedIndex","$importMultiline","multilineElement","$importBlocks","element","textMatch","children","getChildren","child","getChildrenSize","remove","selectStart","startLineIndex","multilineElementTransformers","rootNode","transformer","handleImportAfterStartMatch","regExpEnd","regExpStart","replace","startMatch","match","result","regexpEndRegex","regExp","isEndOptional","optional","endLineIndex","endMatch","index","linesInBetween","push","slice","line","text","elementTransformers","textMatchTransformers","textNode","elementNode","append","setTextContent","isAttached","previousNode","getPreviousSibling","targetNode","lastDescendant","getLastDescendant","getTextContentSize","splice","textTransformers","transformersByTag","fullMatchRegExpByTag","openTagsRegExp","escapeRegExp","tag","tagRegExp","RegExp","join"],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownImport.js","names":["$isListItemNode","$isListNode","$isQuoteNode","$findMatchingParent","$createLineBreakNode","$createParagraphNode","$createTextNode","$getRoot","$getSelection","$isParagraphNode","importTextTransformers","isEmptyParagraph","transformersByType","createMarkdownImport","transformers","shouldPreserveNewLines","byType","textFormatTransformersIndex","createTextFormatTransformersIndex","textFormat","markdownString","node","lines","split","linesLength","length","root","clear","i","lineText","imported","shiftedIndex","$importMultiline","multilineElement","$importBlocks","element","textMatch","children","getChildren","child","getChildrenSize","remove","selectStart","startLineIndex","multilineElementTransformers","rootNode","transformer","handleImportAfterStartMatch","regExpEnd","regExpStart","replace","startMatch","match","result","regexpEndRegex","regExp","isEndOptional","optional","endLineIndex","endMatch","index","linesInBetween","push","slice","line","text","elementTransformers","textMatchTransformers","textNode","elementNode","append","setTextContent","isAttached","previousNode","getPreviousSibling","targetNode","lastDescendant","getLastDescendant","getTextContentSize","splice","textTransformers","transformersByTag","fullMatchRegExpByTag","openTagsRegExp","escapeRegExp","tag","tagRegExp","RegExp","join"],"sources":["../../../../src/packages/@lexical/markdown/MarkdownImport.ts"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport type { ListItemNode } from '@lexical/list'\nimport type { ElementNode } from 'lexical'\n\nimport { $isListItemNode, $isListNode } from '@lexical/list'\nimport { $isQuoteNode } from '@lexical/rich-text'\nimport { $findMatchingParent } from '@lexical/utils'\nimport {\n $createLineBreakNode,\n $createParagraphNode,\n $createTextNode,\n $getRoot,\n $getSelection,\n $isParagraphNode,\n} from 'lexical'\n\nimport type {\n ElementTransformer,\n MultilineElementTransformer,\n TextFormatTransformer,\n TextMatchTransformer,\n Transformer,\n} from './MarkdownTransformers.js'\n\nimport { importTextTransformers } from './importTextTransformers.js'\nimport { isEmptyParagraph, transformersByType } from './utils.js'\n\nexport type TextFormatTransformersIndex = Readonly<{\n fullMatchRegExpByTag: Readonly<Record<string, RegExp>>\n openTagsRegExp: RegExp\n transformersByTag: Readonly<Record<string, TextFormatTransformer>>\n}>\n\n/**\n * Renders markdown from a string. The selection is moved to the start after the operation.\n */\nexport function createMarkdownImport(\n transformers: Array<Transformer>,\n shouldPreserveNewLines = false,\n): (markdownString: string, node?: ElementNode) => void {\n const byType = transformersByType(transformers)\n const textFormatTransformersIndex = createTextFormatTransformersIndex(byType.textFormat)\n\n return (markdownString, node) => {\n const lines = markdownString.split('\\n')\n const linesLength = lines.length\n const root = node || $getRoot()\n root.clear()\n\n for (let i = 0; i < linesLength; i++) {\n const lineText = lines[i]!\n\n const [imported, shiftedIndex] = $importMultiline(lines, i, byType.multilineElement, root)\n\n if (imported) {\n // If a multiline markdown element was imported, we don't want to process the lines that were part of it anymore.\n // There could be other sub-markdown elements (both multiline and normal ones) matching within this matched multiline element's children.\n // However, it would be the responsibility of the matched multiline transformer to decide how it wants to handle them.\n // We cannot handle those, as there is no way for us to know how to maintain the correct order of generated lexical nodes for possible children.\n i = shiftedIndex // Next loop will start from the line after the last line of the multiline element\n continue\n }\n\n $importBlocks(lineText, root, byType.element, textFormatTransformersIndex, byType.textMatch)\n }\n\n // By default, removing empty paragraphs as md does not really\n // allow empty lines and uses them as delimiter.\n // If you need empty lines set shouldPreserveNewLines = true.\n const children = root.getChildren()\n for (const child of children) {\n if (!shouldPreserveNewLines && isEmptyParagraph(child) && root.getChildrenSize() > 1) {\n child.remove()\n }\n }\n\n if ($getSelection() !== null) {\n root.selectStart()\n }\n }\n}\n\n/**\n *\n * @returns first element of the returned tuple is a boolean indicating if a multiline element was imported. The second element is the index of the last line that was processed.\n */\nfunction $importMultiline(\n lines: Array<string>,\n startLineIndex: number,\n multilineElementTransformers: Array<MultilineElementTransformer>,\n rootNode: ElementNode,\n): [boolean, number] {\n for (const transformer of multilineElementTransformers) {\n const { handleImportAfterStartMatch, regExpEnd, regExpStart, replace } = transformer\n\n const startMatch = lines[startLineIndex]?.match(regExpStart)\n if (!startMatch) {\n continue // Try next transformer\n }\n\n if (handleImportAfterStartMatch) {\n const result = handleImportAfterStartMatch({\n lines,\n rootNode,\n startLineIndex,\n startMatch,\n transformer,\n })\n if (result === null) {\n continue\n } else if (result) {\n return result\n }\n }\n\n const regexpEndRegex: RegExp | undefined =\n typeof regExpEnd === 'object' && 'regExp' in regExpEnd ? regExpEnd.regExp : regExpEnd\n\n const isEndOptional =\n regExpEnd && typeof regExpEnd === 'object' && 'optional' in regExpEnd\n ? regExpEnd.optional\n : !regExpEnd\n\n let endLineIndex = startLineIndex\n const linesLength = lines.length\n\n // check every single line for the closing match. It could also be on the same line as the opening match.\n while (endLineIndex < linesLength) {\n const endMatch = regexpEndRegex ? lines[endLineIndex]?.match(regexpEndRegex) : null\n if (!endMatch) {\n if (\n !isEndOptional ||\n (isEndOptional && endLineIndex < linesLength - 1) // Optional end, but didn't reach the end of the document yet => continue searching for potential closing match\n ) {\n endLineIndex++\n continue // Search next line for closing match\n }\n }\n\n // Now, check if the closing match matched is the same as the opening match.\n // If it is, we need to continue searching for the actual closing match.\n if (endMatch && startLineIndex === endLineIndex && endMatch.index === startMatch.index) {\n endLineIndex++\n continue // Search next line for closing match\n }\n\n // At this point, we have found the closing match. Next: calculate the lines in between open and closing match\n // This should not include the matches themselves, and be split up by lines\n const linesInBetween: string[] = []\n\n if (endMatch && startLineIndex === endLineIndex) {\n linesInBetween.push(lines[startLineIndex]!.slice(startMatch[0].length, -endMatch[0].length))\n } else {\n for (let i = startLineIndex; i <= endLineIndex; i++) {\n const line = lines[i]!\n if (i === startLineIndex) {\n const text = line.slice(startMatch[0].length)\n linesInBetween.push(text) // Also include empty text\n } else if (i === endLineIndex && endMatch) {\n const text = line.slice(0, -endMatch[0].length)\n linesInBetween.push(text) // Also include empty text\n } else {\n linesInBetween.push(line)\n }\n }\n }\n\n if (replace(rootNode, null, startMatch, endMatch!, linesInBetween, true) !== false) {\n // Return here. This $importMultiline function is run line by line and should only process a single multiline element at a time.\n return [true, endLineIndex]\n }\n\n // The replace function returned false, despite finding the matching open and close tags => this transformer does not want to handle it.\n // Thus, we continue letting the remaining transformers handle the passed lines of text from the beginning\n break\n }\n }\n\n // No multiline transformer handled this line successfully\n return [false, startLineIndex]\n}\n\nfunction $importBlocks(\n lineText: string,\n rootNode: ElementNode,\n elementTransformers: Array<ElementTransformer>,\n textFormatTransformersIndex: TextFormatTransformersIndex,\n textMatchTransformers: Array<TextMatchTransformer>,\n) {\n const textNode = $createTextNode(lineText)\n const elementNode = $createParagraphNode()\n elementNode.append(textNode)\n rootNode.append(elementNode)\n\n for (const { regExp, replace } of elementTransformers) {\n const match = lineText.match(regExp)\n\n if (match) {\n textNode.setTextContent(lineText.slice(match[0].length))\n if (replace(elementNode, [textNode], match, true) !== false) {\n break\n }\n }\n }\n\n importTextTransformers(textNode, textFormatTransformersIndex, textMatchTransformers)\n\n // If no transformer found and we left with original paragraph node\n // can check if its content can be appended to the previous node\n // if it's a paragraph, quote or list\n if (elementNode.isAttached() && lineText.length > 0) {\n const previousNode = elementNode.getPreviousSibling()\n if ($isParagraphNode(previousNode) || $isQuoteNode(previousNode) || $isListNode(previousNode)) {\n let targetNode: ListItemNode | null | typeof previousNode = previousNode\n\n if ($isListNode(previousNode)) {\n const lastDescendant = previousNode.getLastDescendant()\n if (lastDescendant == null) {\n targetNode = null\n } else {\n targetNode = $findMatchingParent(lastDescendant, $isListItemNode)\n }\n }\n\n if (targetNode != null && targetNode.getTextContentSize() > 0) {\n targetNode.splice(targetNode.getChildrenSize(), 0, [\n $createLineBreakNode(),\n ...elementNode.getChildren(),\n ])\n elementNode.remove()\n }\n }\n }\n}\n\nfunction createTextFormatTransformersIndex(\n textTransformers: Array<TextFormatTransformer>,\n): TextFormatTransformersIndex {\n const transformersByTag: Record<string, TextFormatTransformer> = {}\n const fullMatchRegExpByTag: Record<string, RegExp> = {}\n const openTagsRegExp: string[] = []\n const escapeRegExp = `(?<![\\\\\\\\])`\n\n for (const transformer of textTransformers) {\n const { tag } = transformer\n transformersByTag[tag] = transformer\n const tagRegExp = tag.replace(/([*^+])/g, '\\\\$1')\n openTagsRegExp.push(tagRegExp)\n\n // Single-char tag (e.g. \"*\"),\n if (tag.length === 1) {\n fullMatchRegExpByTag[tag] = new RegExp(\n `(?<![\\\\\\\\${tagRegExp}])(${tagRegExp})((\\\\\\\\${tagRegExp})?.*?[^${tagRegExp}\\\\s](\\\\\\\\${tagRegExp})?)((?<!\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\))(${tagRegExp})(?![\\\\\\\\${tagRegExp}])`,\n )\n } else {\n // Multi‐char tags (e.g. \"**\")\n fullMatchRegExpByTag[tag] = new RegExp(\n `(?<!\\\\\\\\)(${tagRegExp})((\\\\\\\\${tagRegExp})?.*?[^\\\\s](\\\\\\\\${tagRegExp})?)((?<!\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\))(${tagRegExp})(?!\\\\\\\\)`,\n )\n }\n }\n\n return {\n // Reg exp to find open tag + content + close tag\n fullMatchRegExpByTag,\n\n // Regexp to locate *any* potential opening tag (longest first).\n openTagsRegExp: new RegExp(`${escapeRegExp}(${openTagsRegExp.join('|')})`, 'g'),\n transformersByTag,\n }\n}\n"],"mappings":"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","ignoreList":[]}