@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,215 +4,210 @@
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 { $getRoot, $isDecoratorNode, $isElementNode, $isLineBreakNode, $isTextNode } from 'lexical';
7
+ */import { $getRoot, $isDecoratorNode, $isElementNode, $isLineBreakNode, $isTextNode } from 'lexical';
8
8
  import { isEmptyParagraph, transformersByType } from './utils.js';
9
9
  /**
10
10
  * Renders string from markdown. The selection is moved to the start after the operation.
11
- */ export function createMarkdownExport(transformers, shouldPreserveNewLines = false) {
12
- const byType = transformersByType(transformers);
13
- const elementTransformers = [
14
- ...byType.multilineElement,
15
- ...byType.element
16
- ];
17
- const isNewlineDelimited = !shouldPreserveNewLines;
18
- // Export only uses text formats that are responsible for single format
19
- // e.g. it will filter out *** (bold, italic) and instead use separate ** and *
20
- const textFormatTransformers = byType.textFormat.filter((transformer)=>transformer.format.length === 1).// Make sure all text transformers that contain 'code' in their format are at the end of the array. Otherwise, formatted code like
21
- // <strong><code>code</code></strong> will be exported as `**Bold Code**`, as the code format will be applied first, and the bold format
22
- // will be applied second and thus skipped entirely, as the code format will prevent any further formatting.
23
- sort((a, b)=>{
24
- if (a.format.includes('code') && !b.format.includes('code')) {
25
- return 1;
26
- } else if (!a.format.includes('code') && b.format.includes('code')) {
27
- return -1;
28
- } else {
29
- return 0;
30
- }
11
+ */
12
+ export function createMarkdownExport(transformers, shouldPreserveNewLines = false) {
13
+ const byType = transformersByType(transformers);
14
+ const elementTransformers = [...byType.multilineElement, ...byType.element];
15
+ const isNewlineDelimited = !shouldPreserveNewLines;
16
+ // Export only uses text formats that are responsible for single format
17
+ // e.g. it will filter out *** (bold, italic) and instead use separate ** and *
18
+ const textFormatTransformers = byType.textFormat.filter(transformer => transformer.format.length === 1) // Make sure all text transformers that contain 'code' in their format are at the end of the array. Otherwise, formatted code like
19
+ // <strong><code>code</code></strong> will be exported as `**Bold Code**`, as the code format will be applied first, and the bold format
20
+ // will be applied second and thus skipped entirely, as the code format will prevent any further formatting.
21
+ .sort((a, b) => {
22
+ if (a.format.includes('code') && !b.format.includes('code')) {
23
+ return 1;
24
+ } else if (!a.format.includes('code') && b.format.includes('code')) {
25
+ return -1;
26
+ } else {
27
+ return 0;
28
+ }
29
+ });
30
+ return node => {
31
+ const output = [];
32
+ const children = (node || $getRoot()).getChildren();
33
+ children.forEach((child, i) => {
34
+ const result = exportTopLevelElements(child, elementTransformers, textFormatTransformers, byType.textMatch);
35
+ if (result != null) {
36
+ output.push(
37
+ // separate consecutive group of texts with a line break: eg. ["hello", "world"] -> ["hello", "/nworld"]
38
+ isNewlineDelimited && i > 0 && !isEmptyParagraph(child) && !isEmptyParagraph(children[i - 1]) ? '\n'.concat(result) : result);
39
+ }
31
40
  });
32
- return (node)=>{
33
- const output = [];
34
- const children = (node || $getRoot()).getChildren();
35
- children.forEach((child, i)=>{
36
- const result = exportTopLevelElements(child, elementTransformers, textFormatTransformers, byType.textMatch);
37
- if (result != null) {
38
- output.push(// separate consecutive group of texts with a line break: eg. ["hello", "world"] -> ["hello", "/nworld"]
39
- isNewlineDelimited && i > 0 && !isEmptyParagraph(child) && !isEmptyParagraph(children[i - 1]) ? '\n'.concat(result) : result);
40
- }
41
- });
42
- // Ensure consecutive groups of texts are at least \n\n apart while each empty paragraph render as a newline.
43
- // Eg. ["hello", "", "", "hi", "\nworld"] -> "hello\n\n\nhi\n\nworld"
44
- return output.join('\n');
45
- };
41
+ // Ensure consecutive groups of texts are at least \n\n apart while each empty paragraph render as a newline.
42
+ // Eg. ["hello", "", "", "hi", "\nworld"] -> "hello\n\n\nhi\n\nworld"
43
+ return output.join('\n');
44
+ };
46
45
  }
47
46
  function exportTopLevelElements(node, elementTransformers, textTransformersIndex, textMatchTransformers) {
48
- for (const transformer of elementTransformers){
49
- if (!transformer.export) {
50
- continue;
51
- }
52
- const result = transformer.export(node, (_node)=>exportChildren(_node, textTransformersIndex, textMatchTransformers));
53
- if (result != null) {
54
- return result;
55
- }
47
+ for (const transformer of elementTransformers) {
48
+ if (!transformer.export) {
49
+ continue;
56
50
  }
57
- if ($isElementNode(node)) {
58
- return exportChildren(node, textTransformersIndex, textMatchTransformers);
59
- } else if ($isDecoratorNode(node)) {
60
- return node.getTextContent();
61
- } else {
62
- return null;
51
+ const result = transformer.export(node, _node => exportChildren(_node, textTransformersIndex, textMatchTransformers));
52
+ if (result != null) {
53
+ return result;
63
54
  }
55
+ }
56
+ if ($isElementNode(node)) {
57
+ return exportChildren(node, textTransformersIndex, textMatchTransformers);
58
+ } else if ($isDecoratorNode(node)) {
59
+ return node.getTextContent();
60
+ } else {
61
+ return null;
62
+ }
64
63
  }
65
64
  function exportChildren(node, textTransformersIndex, textMatchTransformers, unclosedTags, unclosableTags) {
66
- const output = [];
67
- const children = node.getChildren();
68
- // keep track of unclosed tags from the very beginning
69
- if (!unclosedTags) {
70
- unclosedTags = [];
65
+ const output = [];
66
+ const children = node.getChildren();
67
+ // keep track of unclosed tags from the very beginning
68
+ if (!unclosedTags) {
69
+ unclosedTags = [];
70
+ }
71
+ if (!unclosableTags) {
72
+ unclosableTags = [];
73
+ }
74
+ mainLoop: for (const child of children) {
75
+ for (const transformer of textMatchTransformers) {
76
+ if (!transformer.export) {
77
+ continue;
78
+ }
79
+ const result = transformer.export(child, parentNode => exportChildren(parentNode, textTransformersIndex, textMatchTransformers, unclosedTags,
80
+ // Add current unclosed tags to the list of unclosable tags - we don't want nested tags from
81
+ // textmatch transformers to close the outer ones, as that may result in invalid markdown.
82
+ // E.g. **text [text**](https://lexical.io)
83
+ // is invalid markdown, as the closing ** is inside the link.
84
+ //
85
+ [...unclosableTags, ...unclosedTags]), (textNode, textContent) => exportTextFormat(textNode, textContent, textTransformersIndex, unclosedTags, unclosableTags));
86
+ if (result != null) {
87
+ output.push(result);
88
+ continue mainLoop;
89
+ }
71
90
  }
72
- if (!unclosableTags) {
73
- unclosableTags = [];
74
- }
75
- mainLoop: for (const child of children){
76
- for (const transformer of textMatchTransformers){
77
- if (!transformer.export) {
78
- continue;
79
- }
80
- const result = transformer.export(child, (parentNode)=>exportChildren(parentNode, textTransformersIndex, textMatchTransformers, unclosedTags, // Add current unclosed tags to the list of unclosable tags - we don't want nested tags from
81
- // textmatch transformers to close the outer ones, as that may result in invalid markdown.
82
- // E.g. **text [text**](https://lexical.io)
83
- // is invalid markdown, as the closing ** is inside the link.
84
- //
85
- [
86
- ...unclosableTags,
87
- ...unclosedTags
88
- ]), (textNode, textContent)=>exportTextFormat(textNode, textContent, textTransformersIndex, unclosedTags, unclosableTags));
89
- if (result != null) {
90
- output.push(result);
91
- continue mainLoop;
92
- }
93
- }
94
- if ($isLineBreakNode(child)) {
95
- output.push('\n');
96
- } else if ($isTextNode(child)) {
97
- output.push(exportTextFormat(child, child.getTextContent(), textTransformersIndex, unclosedTags, unclosableTags));
98
- } else if ($isElementNode(child)) {
99
- // empty paragraph returns ""
100
- output.push(exportChildren(child, textTransformersIndex, textMatchTransformers, unclosedTags, unclosableTags));
101
- } else if ($isDecoratorNode(child)) {
102
- output.push(child.getTextContent());
103
- }
91
+ if ($isLineBreakNode(child)) {
92
+ output.push('\n');
93
+ } else if ($isTextNode(child)) {
94
+ output.push(exportTextFormat(child, child.getTextContent(), textTransformersIndex, unclosedTags, unclosableTags));
95
+ } else if ($isElementNode(child)) {
96
+ // empty paragraph returns ""
97
+ output.push(exportChildren(child, textTransformersIndex, textMatchTransformers, unclosedTags, unclosableTags));
98
+ } else if ($isDecoratorNode(child)) {
99
+ output.push(child.getTextContent());
104
100
  }
105
- return output.join('');
101
+ }
102
+ return output.join('');
106
103
  }
107
- function exportTextFormat(node, textContent, textTransformers, // unclosed tags include the markdown tags that haven't been closed yet, and their associated formats
104
+ function exportTextFormat(node, textContent, textTransformers,
105
+ // unclosed tags include the markdown tags that haven't been closed yet, and their associated formats
108
106
  unclosedTags, unclosableTags) {
109
- // This function handles the case of a string looking like this: " foo "
110
- // Where it would be invalid markdown to generate: "** foo **"
111
- // We instead want to trim the whitespace out, apply formatting, and then
112
- // bring the whitespace back. So our returned string looks like this: " **foo** "
113
- const frozenString = textContent.trim();
114
- let output = frozenString;
115
- if (!node.hasFormat('code')) {
116
- // Escape any markdown characters in the text content
117
- output = output.replace(/([*_`~\\])/g, '\\$1');
107
+ // This function handles the case of a string looking like this: " foo "
108
+ // Where it would be invalid markdown to generate: "** foo **"
109
+ // We instead want to trim the whitespace out, apply formatting, and then
110
+ // bring the whitespace back. So our returned string looks like this: " **foo** "
111
+ const frozenString = textContent.trim();
112
+ let output = frozenString;
113
+ if (!node.hasFormat('code')) {
114
+ // Escape any markdown characters in the text content
115
+ output = output.replace(/([*_`~\\])/g, '\\$1');
116
+ }
117
+ // the opening tags to be added to the result
118
+ let openingTags = '';
119
+ // the closing tags to be added to the result
120
+ let closingTagsBefore = '';
121
+ let closingTagsAfter = '';
122
+ const prevNode = getTextSibling(node, true);
123
+ const nextNode = getTextSibling(node, false);
124
+ const applied = new Set();
125
+ for (const transformer of textTransformers) {
126
+ const format = transformer.format[0];
127
+ const tag = transformer.tag;
128
+ // dedup applied formats
129
+ if (hasFormat(node, format) && !applied.has(format)) {
130
+ // Multiple tags might be used for the same format (*, _)
131
+ applied.add(format);
132
+ // append the tag to openningTags, if it's not applied to the previous nodes,
133
+ // or the nodes before that (which would result in an unclosed tag)
134
+ if (!hasFormat(prevNode, format) || !unclosedTags.find(element => element.tag === tag)) {
135
+ unclosedTags.push({
136
+ format,
137
+ tag
138
+ });
139
+ openingTags += tag;
140
+ }
118
141
  }
119
- // the opening tags to be added to the result
120
- let openingTags = '';
121
- // the closing tags to be added to the result
122
- let closingTagsBefore = '';
123
- let closingTagsAfter = '';
124
- const prevNode = getTextSibling(node, true);
125
- const nextNode = getTextSibling(node, false);
126
- const applied = new Set();
127
- for (const transformer of textTransformers){
128
- const format = transformer.format[0];
129
- const tag = transformer.tag;
130
- // dedup applied formats
131
- if (hasFormat(node, format) && !applied.has(format)) {
132
- // Multiple tags might be used for the same format (*, _)
133
- applied.add(format);
134
- // append the tag to openningTags, if it's not applied to the previous nodes,
135
- // or the nodes before that (which would result in an unclosed tag)
136
- if (!hasFormat(prevNode, format) || !unclosedTags.find((element)=>element.tag === tag)) {
137
- unclosedTags.push({
138
- format,
139
- tag
140
- });
141
- openingTags += tag;
142
- }
143
- }
142
+ }
143
+ // close any tags in the same order they were applied, if necessary
144
+ for (let i = 0; i < unclosedTags.length; i++) {
145
+ const unclosedTag = unclosedTags[i];
146
+ const nodeHasFormat = hasFormat(node, unclosedTag.format);
147
+ const nextNodeHasFormat = hasFormat(nextNode, unclosedTag.format);
148
+ // prevent adding closing tag if next sibling will do it
149
+ if (nodeHasFormat && nextNodeHasFormat) {
150
+ continue;
144
151
  }
145
- // close any tags in the same order they were applied, if necessary
146
- for(let i = 0; i < unclosedTags.length; i++){
147
- const unclosedTag = unclosedTags[i];
148
- const nodeHasFormat = hasFormat(node, unclosedTag.format);
149
- const nextNodeHasFormat = hasFormat(nextNode, unclosedTag.format);
150
- // prevent adding closing tag if next sibling will do it
151
- if (nodeHasFormat && nextNodeHasFormat) {
152
- continue;
153
- }
154
- const unhandledUnclosedTags = [
155
- ...unclosedTags
156
- ];
157
- // Shallow copy to avoid modifying the original array
158
- while(unhandledUnclosedTags.length > i){
159
- const unclosedTag = unhandledUnclosedTags.pop();
160
- // If tag is unclosable, don't close it and leave it in the original array,
161
- // So that it can be closed when it's no longer unclosable
162
- if (unclosableTags && unclosedTag && unclosableTags.find((element)=>element.tag === unclosedTag.tag)) {
163
- continue;
164
- }
165
- if (unclosedTag && typeof unclosedTag.tag === 'string') {
166
- if (!nodeHasFormat) {
167
- // Handles cases where the tag has not been closed before, e.g. if the previous node
168
- // was a text match transformer that did not account for closing tags of the next node (e.g. a link)
169
- closingTagsBefore += unclosedTag.tag;
170
- } else if (!nextNodeHasFormat) {
171
- closingTagsAfter += unclosedTag.tag;
172
- }
173
- }
174
- // Mutate the original array to remove the closed tag
175
- unclosedTags.pop();
152
+ const unhandledUnclosedTags = [...unclosedTags] // Shallow copy to avoid modifying the original array
153
+ ;
154
+ while (unhandledUnclosedTags.length > i) {
155
+ const unclosedTag = unhandledUnclosedTags.pop();
156
+ // If tag is unclosable, don't close it and leave it in the original array,
157
+ // So that it can be closed when it's no longer unclosable
158
+ if (unclosableTags && unclosedTag && unclosableTags.find(element => element.tag === unclosedTag.tag)) {
159
+ continue;
160
+ }
161
+ if (unclosedTag && typeof unclosedTag.tag === 'string') {
162
+ if (!nodeHasFormat) {
163
+ // Handles cases where the tag has not been closed before, e.g. if the previous node
164
+ // was a text match transformer that did not account for closing tags of the next node (e.g. a link)
165
+ closingTagsBefore += unclosedTag.tag;
166
+ } else if (!nextNodeHasFormat) {
167
+ closingTagsAfter += unclosedTag.tag;
176
168
  }
177
- break;
169
+ }
170
+ // Mutate the original array to remove the closed tag
171
+ unclosedTags.pop();
178
172
  }
179
- output = openingTags + output + closingTagsAfter;
180
- // Replace trimmed version of textContent ensuring surrounding whitespace is not modified
181
- return closingTagsBefore + textContent.replace(frozenString, ()=>output);
173
+ break;
174
+ }
175
+ output = openingTags + output + closingTagsAfter;
176
+ // Replace trimmed version of textContent ensuring surrounding whitespace is not modified
177
+ return closingTagsBefore + textContent.replace(frozenString, () => output);
182
178
  }
183
179
  // Get next or previous text sibling a text node, including cases
184
180
  // when it's a child of inline element (e.g. link)
185
181
  function getTextSibling(node, backward) {
186
- let sibling = backward ? node.getPreviousSibling() : node.getNextSibling();
187
- if (!sibling) {
188
- const parent = node.getParentOrThrow();
189
- if (parent.isInline()) {
190
- sibling = backward ? parent.getPreviousSibling() : parent.getNextSibling();
191
- }
182
+ let sibling = backward ? node.getPreviousSibling() : node.getNextSibling();
183
+ if (!sibling) {
184
+ const parent = node.getParentOrThrow();
185
+ if (parent.isInline()) {
186
+ sibling = backward ? parent.getPreviousSibling() : parent.getNextSibling();
192
187
  }
193
- while(sibling){
194
- if ($isElementNode(sibling)) {
195
- if (!sibling.isInline()) {
196
- break;
197
- }
198
- const descendant = backward ? sibling.getLastDescendant() : sibling.getFirstDescendant();
199
- if ($isTextNode(descendant)) {
200
- return descendant;
201
- } else {
202
- sibling = backward ? sibling.getPreviousSibling() : sibling.getNextSibling();
203
- }
204
- }
205
- if ($isTextNode(sibling)) {
206
- return sibling;
207
- }
208
- if (!$isElementNode(sibling)) {
209
- return null;
210
- }
188
+ }
189
+ while (sibling) {
190
+ if ($isElementNode(sibling)) {
191
+ if (!sibling.isInline()) {
192
+ break;
193
+ }
194
+ const descendant = backward ? sibling.getLastDescendant() : sibling.getFirstDescendant();
195
+ if ($isTextNode(descendant)) {
196
+ return descendant;
197
+ } else {
198
+ sibling = backward ? sibling.getPreviousSibling() : sibling.getNextSibling();
199
+ }
211
200
  }
212
- return null;
201
+ if ($isTextNode(sibling)) {
202
+ return sibling;
203
+ }
204
+ if (!$isElementNode(sibling)) {
205
+ return null;
206
+ }
207
+ }
208
+ return null;
213
209
  }
214
210
  function hasFormat(node, format) {
215
- return $isTextNode(node) && node.hasFormat(format);
211
+ return $isTextNode(node) && node.hasFormat(format);
216
212
  }
217
-
218
213
  //# sourceMappingURL=MarkdownExport.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/packages/@lexical/markdown/MarkdownExport.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 { ElementNode, LexicalNode, TextFormatType, TextNode } from 'lexical'\n\nimport { $getRoot, $isDecoratorNode, $isElementNode, $isLineBreakNode, $isTextNode } from 'lexical'\n\nimport type {\n ElementTransformer,\n MultilineElementTransformer,\n TextFormatTransformer,\n TextMatchTransformer,\n Transformer,\n} from './MarkdownTransformers.js'\n\nimport { isEmptyParagraph, transformersByType } from './utils.js'\n\n/**\n * Renders string from markdown. The selection is moved to the start after the operation.\n */\nexport function createMarkdownExport(\n transformers: Array<Transformer>,\n shouldPreserveNewLines: boolean = false,\n): (node?: ElementNode) => string {\n const byType = transformersByType(transformers)\n const elementTransformers = [...byType.multilineElement, ...byType.element]\n const isNewlineDelimited = !shouldPreserveNewLines\n\n // Export only uses text formats that are responsible for single format\n // e.g. it will filter out *** (bold, italic) and instead use separate ** and *\n const textFormatTransformers = byType.textFormat\n .filter((transformer) => transformer.format.length === 1)\n // Make sure all text transformers that contain 'code' in their format are at the end of the array. Otherwise, formatted code like\n // <strong><code>code</code></strong> will be exported as `**Bold Code**`, as the code format will be applied first, and the bold format\n // will be applied second and thus skipped entirely, as the code format will prevent any further formatting.\n .sort((a, b) => {\n if (a.format.includes('code') && !b.format.includes('code')) {\n return 1\n } else if (!a.format.includes('code') && b.format.includes('code')) {\n return -1\n } else {\n return 0\n }\n })\n\n return (node) => {\n const output: string[] = []\n const children = (node || $getRoot()).getChildren()\n\n children.forEach((child, i) => {\n const result = exportTopLevelElements(\n child,\n elementTransformers,\n textFormatTransformers,\n byType.textMatch,\n )\n\n if (result != null) {\n output.push(\n // separate consecutive group of texts with a line break: eg. [\"hello\", \"world\"] -> [\"hello\", \"/nworld\"]\n isNewlineDelimited &&\n i > 0 &&\n !isEmptyParagraph(child) &&\n !isEmptyParagraph(children[i - 1]!)\n ? '\\n'.concat(result)\n : result,\n )\n }\n })\n // Ensure consecutive groups of texts are at least \\n\\n apart while each empty paragraph render as a newline.\n // Eg. [\"hello\", \"\", \"\", \"hi\", \"\\nworld\"] -> \"hello\\n\\n\\nhi\\n\\nworld\"\n return output.join('\\n')\n }\n}\n\nfunction exportTopLevelElements(\n node: LexicalNode,\n elementTransformers: Array<ElementTransformer | MultilineElementTransformer>,\n textTransformersIndex: Array<TextFormatTransformer>,\n textMatchTransformers: Array<TextMatchTransformer>,\n): null | string {\n for (const transformer of elementTransformers) {\n if (!transformer.export) {\n continue\n }\n const result = transformer.export(node, (_node) =>\n exportChildren(_node, textTransformersIndex, textMatchTransformers),\n )\n\n if (result != null) {\n return result\n }\n }\n\n if ($isElementNode(node)) {\n return exportChildren(node, textTransformersIndex, textMatchTransformers)\n } else if ($isDecoratorNode(node)) {\n return node.getTextContent()\n } else {\n return null\n }\n}\n\nfunction exportChildren(\n node: ElementNode,\n textTransformersIndex: Array<TextFormatTransformer>,\n textMatchTransformers: Array<TextMatchTransformer>,\n unclosedTags?: Array<{ format: TextFormatType; tag: string }>,\n unclosableTags?: Array<{ format: TextFormatType; tag: string }>,\n): string {\n const output = []\n const children = node.getChildren()\n // keep track of unclosed tags from the very beginning\n if (!unclosedTags) {\n unclosedTags = []\n }\n if (!unclosableTags) {\n unclosableTags = []\n }\n\n mainLoop: for (const child of children) {\n for (const transformer of textMatchTransformers) {\n if (!transformer.export) {\n continue\n }\n\n const result = transformer.export(\n child,\n (parentNode) =>\n exportChildren(\n parentNode,\n textTransformersIndex,\n textMatchTransformers,\n unclosedTags,\n // Add current unclosed tags to the list of unclosable tags - we don't want nested tags from\n // textmatch transformers to close the outer ones, as that may result in invalid markdown.\n // E.g. **text [text**](https://lexical.io)\n // is invalid markdown, as the closing ** is inside the link.\n //\n [...unclosableTags, ...unclosedTags],\n ),\n (textNode, textContent) =>\n exportTextFormat(\n textNode,\n textContent,\n textTransformersIndex,\n unclosedTags,\n unclosableTags,\n ),\n )\n\n if (result != null) {\n output.push(result)\n continue mainLoop\n }\n }\n\n if ($isLineBreakNode(child)) {\n output.push('\\n')\n } else if ($isTextNode(child)) {\n output.push(\n exportTextFormat(\n child,\n child.getTextContent(),\n textTransformersIndex,\n unclosedTags,\n unclosableTags,\n ),\n )\n } else if ($isElementNode(child)) {\n // empty paragraph returns \"\"\n output.push(\n exportChildren(\n child,\n textTransformersIndex,\n textMatchTransformers,\n unclosedTags,\n unclosableTags,\n ),\n )\n } else if ($isDecoratorNode(child)) {\n output.push(child.getTextContent())\n }\n }\n\n return output.join('')\n}\n\nfunction exportTextFormat(\n node: TextNode,\n textContent: string,\n textTransformers: Array<TextFormatTransformer>,\n // unclosed tags include the markdown tags that haven't been closed yet, and their associated formats\n unclosedTags: Array<{ format: TextFormatType; tag: string }>,\n unclosableTags?: Array<{ format: TextFormatType; tag: string }>,\n): string {\n // This function handles the case of a string looking like this: \" foo \"\n // Where it would be invalid markdown to generate: \"** foo **\"\n // We instead want to trim the whitespace out, apply formatting, and then\n // bring the whitespace back. So our returned string looks like this: \" **foo** \"\n const frozenString = textContent.trim()\n let output = frozenString\n\n if (!node.hasFormat('code')) {\n // Escape any markdown characters in the text content\n output = output.replace(/([*_`~\\\\])/g, '\\\\$1')\n }\n\n // the opening tags to be added to the result\n let openingTags = ''\n // the closing tags to be added to the result\n let closingTagsBefore = ''\n let closingTagsAfter = ''\n\n const prevNode = getTextSibling(node, true)\n const nextNode = getTextSibling(node, false)\n\n const applied = new Set()\n\n for (const transformer of textTransformers) {\n const format = transformer.format[0]!\n const tag = transformer.tag\n\n // dedup applied formats\n if (hasFormat(node, format) && !applied.has(format)) {\n // Multiple tags might be used for the same format (*, _)\n applied.add(format)\n\n // append the tag to openningTags, if it's not applied to the previous nodes,\n // or the nodes before that (which would result in an unclosed tag)\n if (!hasFormat(prevNode, format) || !unclosedTags.find((element) => element.tag === tag)) {\n unclosedTags.push({ format, tag })\n openingTags += tag\n }\n }\n }\n\n // close any tags in the same order they were applied, if necessary\n for (let i = 0; i < unclosedTags.length; i++) {\n const unclosedTag = unclosedTags[i]!\n const nodeHasFormat = hasFormat(node, unclosedTag.format)\n const nextNodeHasFormat = hasFormat(nextNode, unclosedTag.format)\n\n // prevent adding closing tag if next sibling will do it\n if (nodeHasFormat && nextNodeHasFormat) {\n continue\n }\n\n const unhandledUnclosedTags = [...unclosedTags] // Shallow copy to avoid modifying the original array\n\n while (unhandledUnclosedTags.length > i) {\n const unclosedTag = unhandledUnclosedTags.pop()\n\n // If tag is unclosable, don't close it and leave it in the original array,\n // So that it can be closed when it's no longer unclosable\n if (\n unclosableTags &&\n unclosedTag &&\n unclosableTags.find((element) => element.tag === unclosedTag.tag)\n ) {\n continue\n }\n\n if (unclosedTag && typeof unclosedTag.tag === 'string') {\n if (!nodeHasFormat) {\n // Handles cases where the tag has not been closed before, e.g. if the previous node\n // was a text match transformer that did not account for closing tags of the next node (e.g. a link)\n closingTagsBefore += unclosedTag.tag\n } else if (!nextNodeHasFormat) {\n closingTagsAfter += unclosedTag.tag\n }\n }\n // Mutate the original array to remove the closed tag\n unclosedTags.pop()\n }\n break\n }\n\n output = openingTags + output + closingTagsAfter\n // Replace trimmed version of textContent ensuring surrounding whitespace is not modified\n return closingTagsBefore + textContent.replace(frozenString, () => output)\n}\n\n// Get next or previous text sibling a text node, including cases\n// when it's a child of inline element (e.g. link)\nfunction getTextSibling(node: TextNode, backward: boolean): null | TextNode {\n let sibling = backward ? node.getPreviousSibling() : node.getNextSibling()\n\n if (!sibling) {\n const parent = node.getParentOrThrow()\n\n if (parent.isInline()) {\n sibling = backward ? parent.getPreviousSibling() : parent.getNextSibling()\n }\n }\n\n while (sibling) {\n if ($isElementNode(sibling)) {\n if (!sibling.isInline()) {\n break\n }\n\n const descendant = backward ? sibling.getLastDescendant() : sibling.getFirstDescendant()\n\n if ($isTextNode(descendant)) {\n return descendant\n } else {\n sibling = backward ? sibling.getPreviousSibling() : sibling.getNextSibling()\n }\n }\n\n if ($isTextNode(sibling)) {\n return sibling\n }\n\n if (!$isElementNode(sibling)) {\n return null\n }\n }\n\n return null\n}\n\nfunction hasFormat(node: LexicalNode | null | undefined, format: TextFormatType): boolean {\n return $isTextNode(node) && node.hasFormat(format)\n}\n"],"names":["$getRoot","$isDecoratorNode","$isElementNode","$isLineBreakNode","$isTextNode","isEmptyParagraph","transformersByType","createMarkdownExport","transformers","shouldPreserveNewLines","byType","elementTransformers","multilineElement","element","isNewlineDelimited","textFormatTransformers","textFormat","filter","transformer","format","length","sort","a","b","includes","node","output","children","getChildren","forEach","child","i","result","exportTopLevelElements","textMatch","push","concat","join","textTransformersIndex","textMatchTransformers","export","_node","exportChildren","getTextContent","unclosedTags","unclosableTags","mainLoop","parentNode","textNode","textContent","exportTextFormat","textTransformers","frozenString","trim","hasFormat","replace","openingTags","closingTagsBefore","closingTagsAfter","prevNode","getTextSibling","nextNode","applied","Set","tag","has","add","find","unclosedTag","nodeHasFormat","nextNodeHasFormat","unhandledUnclosedTags","pop","backward","sibling","getPreviousSibling","getNextSibling","parent","getParentOrThrow","isInline","descendant","getLastDescendant","getFirstDescendant"],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownExport.js","names":["$getRoot","$isDecoratorNode","$isElementNode","$isLineBreakNode","$isTextNode","isEmptyParagraph","transformersByType","createMarkdownExport","transformers","shouldPreserveNewLines","byType","elementTransformers","multilineElement","element","isNewlineDelimited","textFormatTransformers","textFormat","filter","transformer","format","length","sort","a","b","includes","node","output","children","getChildren","forEach","child","i","result","exportTopLevelElements","textMatch","push","concat","join","textTransformersIndex","textMatchTransformers","export","_node","exportChildren","getTextContent","unclosedTags","unclosableTags","mainLoop","parentNode","textNode","textContent","exportTextFormat","textTransformers","frozenString","trim","hasFormat","replace","openingTags","closingTagsBefore","closingTagsAfter","prevNode","getTextSibling","nextNode","applied","Set","tag","has","add","find","unclosedTag","nodeHasFormat","nextNodeHasFormat","unhandledUnclosedTags","pop","backward","sibling","getPreviousSibling","getNextSibling","parent","getParentOrThrow","isInline","descendant","getLastDescendant","getFirstDescendant"],"sources":["../../../../src/packages/@lexical/markdown/MarkdownExport.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 { ElementNode, LexicalNode, TextFormatType, TextNode } from 'lexical'\n\nimport { $getRoot, $isDecoratorNode, $isElementNode, $isLineBreakNode, $isTextNode } from 'lexical'\n\nimport type {\n ElementTransformer,\n MultilineElementTransformer,\n TextFormatTransformer,\n TextMatchTransformer,\n Transformer,\n} from './MarkdownTransformers.js'\n\nimport { isEmptyParagraph, transformersByType } from './utils.js'\n\n/**\n * Renders string from markdown. The selection is moved to the start after the operation.\n */\nexport function createMarkdownExport(\n transformers: Array<Transformer>,\n shouldPreserveNewLines: boolean = false,\n): (node?: ElementNode) => string {\n const byType = transformersByType(transformers)\n const elementTransformers = [...byType.multilineElement, ...byType.element]\n const isNewlineDelimited = !shouldPreserveNewLines\n\n // Export only uses text formats that are responsible for single format\n // e.g. it will filter out *** (bold, italic) and instead use separate ** and *\n const textFormatTransformers = byType.textFormat\n .filter((transformer) => transformer.format.length === 1)\n // Make sure all text transformers that contain 'code' in their format are at the end of the array. Otherwise, formatted code like\n // <strong><code>code</code></strong> will be exported as `**Bold Code**`, as the code format will be applied first, and the bold format\n // will be applied second and thus skipped entirely, as the code format will prevent any further formatting.\n .sort((a, b) => {\n if (a.format.includes('code') && !b.format.includes('code')) {\n return 1\n } else if (!a.format.includes('code') && b.format.includes('code')) {\n return -1\n } else {\n return 0\n }\n })\n\n return (node) => {\n const output: string[] = []\n const children = (node || $getRoot()).getChildren()\n\n children.forEach((child, i) => {\n const result = exportTopLevelElements(\n child,\n elementTransformers,\n textFormatTransformers,\n byType.textMatch,\n )\n\n if (result != null) {\n output.push(\n // separate consecutive group of texts with a line break: eg. [\"hello\", \"world\"] -> [\"hello\", \"/nworld\"]\n isNewlineDelimited &&\n i > 0 &&\n !isEmptyParagraph(child) &&\n !isEmptyParagraph(children[i - 1]!)\n ? '\\n'.concat(result)\n : result,\n )\n }\n })\n // Ensure consecutive groups of texts are at least \\n\\n apart while each empty paragraph render as a newline.\n // Eg. [\"hello\", \"\", \"\", \"hi\", \"\\nworld\"] -> \"hello\\n\\n\\nhi\\n\\nworld\"\n return output.join('\\n')\n }\n}\n\nfunction exportTopLevelElements(\n node: LexicalNode,\n elementTransformers: Array<ElementTransformer | MultilineElementTransformer>,\n textTransformersIndex: Array<TextFormatTransformer>,\n textMatchTransformers: Array<TextMatchTransformer>,\n): null | string {\n for (const transformer of elementTransformers) {\n if (!transformer.export) {\n continue\n }\n const result = transformer.export(node, (_node) =>\n exportChildren(_node, textTransformersIndex, textMatchTransformers),\n )\n\n if (result != null) {\n return result\n }\n }\n\n if ($isElementNode(node)) {\n return exportChildren(node, textTransformersIndex, textMatchTransformers)\n } else if ($isDecoratorNode(node)) {\n return node.getTextContent()\n } else {\n return null\n }\n}\n\nfunction exportChildren(\n node: ElementNode,\n textTransformersIndex: Array<TextFormatTransformer>,\n textMatchTransformers: Array<TextMatchTransformer>,\n unclosedTags?: Array<{ format: TextFormatType; tag: string }>,\n unclosableTags?: Array<{ format: TextFormatType; tag: string }>,\n): string {\n const output = []\n const children = node.getChildren()\n // keep track of unclosed tags from the very beginning\n if (!unclosedTags) {\n unclosedTags = []\n }\n if (!unclosableTags) {\n unclosableTags = []\n }\n\n mainLoop: for (const child of children) {\n for (const transformer of textMatchTransformers) {\n if (!transformer.export) {\n continue\n }\n\n const result = transformer.export(\n child,\n (parentNode) =>\n exportChildren(\n parentNode,\n textTransformersIndex,\n textMatchTransformers,\n unclosedTags,\n // Add current unclosed tags to the list of unclosable tags - we don't want nested tags from\n // textmatch transformers to close the outer ones, as that may result in invalid markdown.\n // E.g. **text [text**](https://lexical.io)\n // is invalid markdown, as the closing ** is inside the link.\n //\n [...unclosableTags, ...unclosedTags],\n ),\n (textNode, textContent) =>\n exportTextFormat(\n textNode,\n textContent,\n textTransformersIndex,\n unclosedTags,\n unclosableTags,\n ),\n )\n\n if (result != null) {\n output.push(result)\n continue mainLoop\n }\n }\n\n if ($isLineBreakNode(child)) {\n output.push('\\n')\n } else if ($isTextNode(child)) {\n output.push(\n exportTextFormat(\n child,\n child.getTextContent(),\n textTransformersIndex,\n unclosedTags,\n unclosableTags,\n ),\n )\n } else if ($isElementNode(child)) {\n // empty paragraph returns \"\"\n output.push(\n exportChildren(\n child,\n textTransformersIndex,\n textMatchTransformers,\n unclosedTags,\n unclosableTags,\n ),\n )\n } else if ($isDecoratorNode(child)) {\n output.push(child.getTextContent())\n }\n }\n\n return output.join('')\n}\n\nfunction exportTextFormat(\n node: TextNode,\n textContent: string,\n textTransformers: Array<TextFormatTransformer>,\n // unclosed tags include the markdown tags that haven't been closed yet, and their associated formats\n unclosedTags: Array<{ format: TextFormatType; tag: string }>,\n unclosableTags?: Array<{ format: TextFormatType; tag: string }>,\n): string {\n // This function handles the case of a string looking like this: \" foo \"\n // Where it would be invalid markdown to generate: \"** foo **\"\n // We instead want to trim the whitespace out, apply formatting, and then\n // bring the whitespace back. So our returned string looks like this: \" **foo** \"\n const frozenString = textContent.trim()\n let output = frozenString\n\n if (!node.hasFormat('code')) {\n // Escape any markdown characters in the text content\n output = output.replace(/([*_`~\\\\])/g, '\\\\$1')\n }\n\n // the opening tags to be added to the result\n let openingTags = ''\n // the closing tags to be added to the result\n let closingTagsBefore = ''\n let closingTagsAfter = ''\n\n const prevNode = getTextSibling(node, true)\n const nextNode = getTextSibling(node, false)\n\n const applied = new Set()\n\n for (const transformer of textTransformers) {\n const format = transformer.format[0]!\n const tag = transformer.tag\n\n // dedup applied formats\n if (hasFormat(node, format) && !applied.has(format)) {\n // Multiple tags might be used for the same format (*, _)\n applied.add(format)\n\n // append the tag to openningTags, if it's not applied to the previous nodes,\n // or the nodes before that (which would result in an unclosed tag)\n if (!hasFormat(prevNode, format) || !unclosedTags.find((element) => element.tag === tag)) {\n unclosedTags.push({ format, tag })\n openingTags += tag\n }\n }\n }\n\n // close any tags in the same order they were applied, if necessary\n for (let i = 0; i < unclosedTags.length; i++) {\n const unclosedTag = unclosedTags[i]!\n const nodeHasFormat = hasFormat(node, unclosedTag.format)\n const nextNodeHasFormat = hasFormat(nextNode, unclosedTag.format)\n\n // prevent adding closing tag if next sibling will do it\n if (nodeHasFormat && nextNodeHasFormat) {\n continue\n }\n\n const unhandledUnclosedTags = [...unclosedTags] // Shallow copy to avoid modifying the original array\n\n while (unhandledUnclosedTags.length > i) {\n const unclosedTag = unhandledUnclosedTags.pop()\n\n // If tag is unclosable, don't close it and leave it in the original array,\n // So that it can be closed when it's no longer unclosable\n if (\n unclosableTags &&\n unclosedTag &&\n unclosableTags.find((element) => element.tag === unclosedTag.tag)\n ) {\n continue\n }\n\n if (unclosedTag && typeof unclosedTag.tag === 'string') {\n if (!nodeHasFormat) {\n // Handles cases where the tag has not been closed before, e.g. if the previous node\n // was a text match transformer that did not account for closing tags of the next node (e.g. a link)\n closingTagsBefore += unclosedTag.tag\n } else if (!nextNodeHasFormat) {\n closingTagsAfter += unclosedTag.tag\n }\n }\n // Mutate the original array to remove the closed tag\n unclosedTags.pop()\n }\n break\n }\n\n output = openingTags + output + closingTagsAfter\n // Replace trimmed version of textContent ensuring surrounding whitespace is not modified\n return closingTagsBefore + textContent.replace(frozenString, () => output)\n}\n\n// Get next or previous text sibling a text node, including cases\n// when it's a child of inline element (e.g. link)\nfunction getTextSibling(node: TextNode, backward: boolean): null | TextNode {\n let sibling = backward ? node.getPreviousSibling() : node.getNextSibling()\n\n if (!sibling) {\n const parent = node.getParentOrThrow()\n\n if (parent.isInline()) {\n sibling = backward ? parent.getPreviousSibling() : parent.getNextSibling()\n }\n }\n\n while (sibling) {\n if ($isElementNode(sibling)) {\n if (!sibling.isInline()) {\n break\n }\n\n const descendant = backward ? sibling.getLastDescendant() : sibling.getFirstDescendant()\n\n if ($isTextNode(descendant)) {\n return descendant\n } else {\n sibling = backward ? sibling.getPreviousSibling() : sibling.getNextSibling()\n }\n }\n\n if ($isTextNode(sibling)) {\n return sibling\n }\n\n if (!$isElementNode(sibling)) {\n return null\n }\n }\n\n return null\n}\n\nfunction hasFormat(node: LexicalNode | null | undefined, format: TextFormatType): boolean {\n return $isTextNode(node) && node.hasFormat(format)\n}\n"],"mappings":"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","ignoreList":[]}