@payloadcms/richtext-lexical 4.0.0-internal.1f9ae9a → 4.0.0-internal.21664f3

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 (573) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/cell/rscEntry.d.ts.map +1 -1
  3. package/dist/cell/rscEntry.js +5 -5
  4. package/dist/cell/rscEntry.js.map +1 -1
  5. package/dist/exports/client/Field-QGSHF22S.js +2 -0
  6. package/dist/exports/client/Field-QGSHF22S.js.map +7 -0
  7. package/dist/exports/client/{RelationshipComponent-RZL743CS.js → RelationshipComponent-YCPAKOL7.js} +1 -1
  8. package/dist/exports/client/RelationshipComponent-YCPAKOL7.js.map +7 -0
  9. package/dist/exports/client/bundled.css +1 -1
  10. package/dist/exports/client/chunk-5VIL27GI.js +2 -0
  11. package/dist/exports/client/chunk-5VIL27GI.js.map +7 -0
  12. package/dist/exports/client/chunk-ESITTE3C.js +2 -0
  13. package/dist/exports/client/chunk-ESITTE3C.js.map +7 -0
  14. package/dist/exports/client/chunk-UD4DQ4AK.js +2 -0
  15. package/dist/exports/client/chunk-UD4DQ4AK.js.map +7 -0
  16. package/dist/exports/client/chunk-X3D4LZS7.js +2 -0
  17. package/dist/exports/client/chunk-X3D4LZS7.js.map +7 -0
  18. package/dist/exports/client/{component-CVM4OESA.js → component-PHZQBOJE.js} +2 -2
  19. package/dist/exports/client/component-PHZQBOJE.js.map +7 -0
  20. package/dist/exports/client/componentInline-H24N7GUG.js +2 -0
  21. package/dist/exports/client/index.d.ts +0 -1
  22. package/dist/exports/client/index.d.ts.map +1 -1
  23. package/dist/exports/client/index.js +20 -21
  24. package/dist/exports/client/index.js.map +4 -4
  25. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  26. package/dist/features/blockquote/client/index.js +2 -2
  27. package/dist/features/blockquote/client/index.js.map +1 -1
  28. package/dist/features/blockquote/server/index.d.ts +1 -4
  29. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  30. package/dist/features/blockquote/server/index.js +4 -2
  31. package/dist/features/blockquote/server/index.js.map +1 -1
  32. package/dist/features/blockquote/server/schema.d.ts +8 -0
  33. package/dist/features/blockquote/server/schema.d.ts.map +1 -0
  34. package/dist/features/blockquote/server/schema.js +15 -0
  35. package/dist/features/blockquote/server/schema.js.map +1 -0
  36. package/dist/features/blocks/client/component/index.css +2 -2
  37. package/dist/features/blocks/client/component/index.d.ts +2 -1
  38. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  39. package/dist/features/blocks/client/component/index.js +16 -8
  40. package/dist/features/blocks/client/component/index.js.map +1 -1
  41. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
  42. package/dist/features/blocks/client/componentInline/index.css +8 -8
  43. package/dist/features/blocks/client/componentInline/index.d.ts +2 -1
  44. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  45. package/dist/features/blocks/client/componentInline/index.js +15 -7
  46. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  47. package/dist/features/blocks/client/getBlockImageComponent.d.ts +1 -1
  48. package/dist/features/blocks/client/index.d.ts.map +1 -1
  49. package/dist/features/blocks/client/index.js +4 -2
  50. package/dist/features/blocks/client/index.js.map +1 -1
  51. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +1 -1
  52. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -1
  53. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +1 -1
  54. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
  55. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +1 -1
  56. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -1
  57. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +5 -2
  58. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
  59. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +1 -2
  60. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  61. package/dist/features/blocks/client/markdown/markdownTransformer.js +4 -4
  62. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  63. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +1 -1
  64. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  65. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  66. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +1 -1
  67. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  68. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  69. package/dist/features/blocks/client/plugin/index.d.ts +1 -1
  70. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  71. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  72. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
  73. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +1 -0
  74. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  75. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.css +1 -1
  76. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +2 -4
  77. package/dist/features/blocks/premade/CodeBlock/Component/index.css +5 -5
  78. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +1 -2
  79. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  80. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  81. package/dist/features/blocks/server/index.d.ts +1 -0
  82. package/dist/features/blocks/server/index.d.ts.map +1 -1
  83. package/dist/features/blocks/server/index.js +24 -72
  84. package/dist/features/blocks/server/index.js.map +1 -1
  85. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +1 -1
  86. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  87. package/dist/features/blocks/server/markdown/markdownTransformer.js +4 -4
  88. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  89. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -18
  90. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  91. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  92. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +2 -10
  93. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  94. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  95. package/dist/features/blocks/server/schema.d.ts +45 -0
  96. package/dist/features/blocks/server/schema.d.ts.map +1 -0
  97. package/dist/features/blocks/server/schema.js +140 -0
  98. package/dist/features/blocks/server/schema.js.map +1 -0
  99. package/dist/features/blocks/server/validate.d.ts +1 -2
  100. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  101. package/dist/features/blocks/server/validate.js.map +1 -1
  102. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  103. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  104. package/dist/features/converters/lexicalToHtml/async/types.d.ts +14 -15
  105. package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -1
  106. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  107. package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
  108. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  109. package/dist/features/converters/lexicalToHtml/sync/types.d.ts +14 -15
  110. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  111. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  112. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +4 -2
  113. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  114. package/dist/features/converters/lexicalToJSX/Component/index.js +5 -4
  115. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  116. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  117. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +12 -14
  118. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  119. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  120. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  121. package/dist/features/converters/lexicalToMarkdown/index.js +1 -1
  122. package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
  123. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +12 -14
  124. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -1
  125. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  126. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  127. package/dist/features/converters/markdownToLexical/index.js +5 -2
  128. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  129. package/dist/features/debug/jsxConverter/client/plugin/style.css +2 -2
  130. package/dist/features/experimental_table/client/index.js +2 -2
  131. package/dist/features/experimental_table/client/index.js.map +1 -1
  132. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +1 -1
  133. package/dist/features/experimental_table/markdownTransformer.d.ts +2 -2
  134. package/dist/features/experimental_table/markdownTransformer.d.ts.map +1 -1
  135. package/dist/features/experimental_table/markdownTransformer.js +6 -3
  136. package/dist/features/experimental_table/markdownTransformer.js.map +1 -1
  137. package/dist/features/experimental_table/server/index.d.ts +1 -6
  138. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  139. package/dist/features/experimental_table/server/index.js +6 -2
  140. package/dist/features/experimental_table/server/index.js.map +1 -1
  141. package/dist/features/experimental_table/server/schema.d.ts +27 -0
  142. package/dist/features/experimental_table/server/schema.d.ts.map +1 -0
  143. package/dist/features/experimental_table/server/schema.js +107 -0
  144. package/dist/features/experimental_table/server/schema.js.map +1 -0
  145. package/dist/features/format/bold/feature.client.js +1 -1
  146. package/dist/features/format/bold/feature.client.js.map +1 -1
  147. package/dist/features/format/bold/feature.server.d.ts.map +1 -1
  148. package/dist/features/format/bold/feature.server.js +1 -1
  149. package/dist/features/format/bold/feature.server.js.map +1 -1
  150. package/dist/features/format/inlineCode/feature.client.js +1 -1
  151. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  152. package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
  153. package/dist/features/format/inlineCode/feature.server.js +1 -1
  154. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  155. package/dist/features/format/italic/feature.client.js +1 -1
  156. package/dist/features/format/italic/feature.client.js.map +1 -1
  157. package/dist/features/format/italic/feature.server.d.ts.map +1 -1
  158. package/dist/features/format/italic/feature.server.js +1 -1
  159. package/dist/features/format/italic/feature.server.js.map +1 -1
  160. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  161. package/dist/features/format/strikethrough/feature.client.js +1 -1
  162. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  163. package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
  164. package/dist/features/format/strikethrough/feature.server.js +1 -1
  165. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  166. package/dist/features/heading/client/index.js +2 -2
  167. package/dist/features/heading/client/index.js.map +1 -1
  168. package/dist/features/heading/markdownTransformer.d.ts +2 -2
  169. package/dist/features/heading/markdownTransformer.d.ts.map +1 -1
  170. package/dist/features/heading/markdownTransformer.js +6 -19
  171. package/dist/features/heading/markdownTransformer.js.map +1 -1
  172. package/dist/features/heading/server/index.d.ts +2 -4
  173. package/dist/features/heading/server/index.d.ts.map +1 -1
  174. package/dist/features/heading/server/index.js +4 -2
  175. package/dist/features/heading/server/index.js.map +1 -1
  176. package/dist/features/heading/server/schema.d.ts +10 -0
  177. package/dist/features/heading/server/schema.d.ts.map +1 -0
  178. package/dist/features/heading/server/schema.js +37 -0
  179. package/dist/features/heading/server/schema.js.map +1 -0
  180. package/dist/features/horizontalRule/client/index.js +2 -2
  181. package/dist/features/horizontalRule/client/index.js.map +1 -1
  182. package/dist/features/horizontalRule/client/markdownTransformer.d.ts +2 -2
  183. package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -1
  184. package/dist/features/horizontalRule/client/markdownTransformer.js +1 -1
  185. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  186. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
  187. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  188. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  189. package/dist/features/horizontalRule/client/plugin/index.css +2 -2
  190. package/dist/features/horizontalRule/server/index.d.ts +1 -0
  191. package/dist/features/horizontalRule/server/index.d.ts.map +1 -1
  192. package/dist/features/horizontalRule/server/index.js +4 -2
  193. package/dist/features/horizontalRule/server/index.js.map +1 -1
  194. package/dist/features/horizontalRule/server/markdownTransformer.d.ts +2 -2
  195. package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -1
  196. package/dist/features/horizontalRule/server/markdownTransformer.js +1 -1
  197. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  198. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -5
  199. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  200. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  201. package/dist/features/horizontalRule/server/schema.d.ts +7 -0
  202. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -0
  203. package/dist/features/horizontalRule/server/schema.js +25 -0
  204. package/dist/features/horizontalRule/server/schema.js.map +1 -0
  205. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  206. package/dist/features/link/client/index.d.ts.map +1 -1
  207. package/dist/features/link/client/index.js +2 -2
  208. package/dist/features/link/client/index.js.map +1 -1
  209. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  210. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  211. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  212. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +3 -3
  213. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  214. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +7 -11
  215. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +1 -1
  216. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -1
  217. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
  218. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  219. package/dist/features/link/markdownTransformer.d.ts +5 -5
  220. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  221. package/dist/features/link/markdownTransformer.js +2 -2
  222. package/dist/features/link/markdownTransformer.js.map +1 -1
  223. package/dist/features/link/markdownTransformer.spec.js +10 -10
  224. package/dist/features/link/markdownTransformer.spec.js.map +1 -1
  225. package/dist/features/link/nodes/AutoLinkNode.d.ts +3 -3
  226. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  227. package/dist/features/link/nodes/AutoLinkNode.js +2 -1
  228. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  229. package/dist/features/link/nodes/LinkNode.d.ts +3 -3
  230. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  231. package/dist/features/link/nodes/LinkNode.js +2 -1
  232. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  233. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  234. package/dist/features/link/server/baseFields.js.map +1 -1
  235. package/dist/features/link/server/graphQLPopulationPromise.d.ts +1 -1
  236. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  237. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
  238. package/dist/features/link/server/index.d.ts +2 -1
  239. package/dist/features/link/server/index.d.ts.map +1 -1
  240. package/dist/features/link/server/index.js +5 -2
  241. package/dist/features/link/server/index.js.map +1 -1
  242. package/dist/features/link/server/schema.d.ts +32 -0
  243. package/dist/features/link/server/schema.d.ts.map +1 -0
  244. package/dist/features/link/server/schema.js +171 -0
  245. package/dist/features/link/server/schema.js.map +1 -0
  246. package/dist/features/link/server/validate.d.ts +1 -1
  247. package/dist/features/link/server/validate.d.ts.map +1 -1
  248. package/dist/features/link/server/validate.js.map +1 -1
  249. package/dist/features/lists/checklist/client/index.js +1 -1
  250. package/dist/features/lists/checklist/client/index.js.map +1 -1
  251. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  252. package/dist/features/lists/checklist/server/index.js +4 -1
  253. package/dist/features/lists/checklist/server/index.js.map +1 -1
  254. package/dist/features/lists/orderedList/client/index.js +1 -1
  255. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  256. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  257. package/dist/features/lists/orderedList/server/index.js +4 -1
  258. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  259. package/dist/features/lists/plugin/index.d.ts +0 -9
  260. package/dist/features/lists/plugin/index.d.ts.map +1 -1
  261. package/dist/features/lists/plugin/index.js.map +1 -1
  262. package/dist/features/lists/shared/schema.d.ts +18 -0
  263. package/dist/features/lists/shared/schema.d.ts.map +1 -0
  264. package/dist/features/lists/shared/schema.js +62 -0
  265. package/dist/features/lists/shared/schema.js.map +1 -0
  266. package/dist/features/lists/unorderedList/client/index.js +1 -1
  267. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  268. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  269. package/dist/features/lists/unorderedList/server/index.js +4 -1
  270. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  271. package/dist/features/relationship/client/components/RelationshipComponent.d.ts +1 -1
  272. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  273. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  274. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  275. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  276. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  277. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  278. package/dist/features/relationship/client/plugins/index.d.ts +1 -1
  279. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  280. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  281. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  282. package/dist/features/relationship/client/utils/useEnabledRelationships.js +9 -40
  283. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  284. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +1 -1
  285. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  286. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  287. package/dist/features/relationship/server/index.d.ts +1 -0
  288. package/dist/features/relationship/server/index.d.ts.map +1 -1
  289. package/dist/features/relationship/server/index.js +2 -0
  290. package/dist/features/relationship/server/index.js.map +1 -1
  291. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -10
  292. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  293. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  294. package/dist/features/relationship/server/schema.d.ts +28 -0
  295. package/dist/features/relationship/server/schema.d.ts.map +1 -0
  296. package/dist/features/relationship/server/schema.js +97 -0
  297. package/dist/features/relationship/server/schema.js.map +1 -0
  298. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +23 -0
  299. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -0
  300. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +34 -0
  301. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -0
  302. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
  303. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
  304. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
  305. package/dist/features/textState/feature.client.js +1 -1
  306. package/dist/features/textState/feature.client.js.map +1 -1
  307. package/dist/features/toolbars/fixed/client/Toolbar/index.css +2 -2
  308. package/dist/features/toolbars/inline/client/Toolbar/index.css +2 -13
  309. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  310. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +8 -12
  311. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  312. package/dist/features/toolbars/shared/useToolbarStates.d.ts.map +1 -1
  313. package/dist/features/toolbars/shared/useToolbarStates.js +3 -1
  314. package/dist/features/toolbars/shared/useToolbarStates.js.map +1 -1
  315. package/dist/features/typesClient.d.ts +1 -1
  316. package/dist/features/typesClient.d.ts.map +1 -1
  317. package/dist/features/typesClient.js.map +1 -1
  318. package/dist/features/typesServer.d.ts +18 -41
  319. package/dist/features/typesServer.d.ts.map +1 -1
  320. package/dist/features/typesServer.js.map +1 -1
  321. package/dist/features/upload/client/component/index.css +11 -11
  322. package/dist/features/upload/client/component/index.d.ts +1 -1
  323. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  324. package/dist/features/upload/client/component/index.js.map +1 -1
  325. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  326. package/dist/features/upload/client/nodes/UploadNode.d.ts +1 -1
  327. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  328. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  329. package/dist/features/upload/client/plugin/index.d.ts +1 -1
  330. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  331. package/dist/features/upload/client/plugin/index.js +5 -5
  332. package/dist/features/upload/client/plugin/index.js.map +1 -1
  333. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +1 -1
  334. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  335. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  336. package/dist/features/upload/server/index.d.ts +1 -0
  337. package/dist/features/upload/server/index.d.ts.map +1 -1
  338. package/dist/features/upload/server/index.js +5 -4
  339. package/dist/features/upload/server/index.js.map +1 -1
  340. package/dist/features/upload/server/markdownTransformer.d.ts +2 -2
  341. package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -1
  342. package/dist/features/upload/server/markdownTransformer.js +1 -1
  343. package/dist/features/upload/server/markdownTransformer.js.map +1 -1
  344. package/dist/features/upload/server/nodes/UploadNode.d.ts +1 -55
  345. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  346. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  347. package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -1
  348. package/dist/features/upload/server/nodes/conversions.js.map +1 -1
  349. package/dist/features/upload/server/schema.d.ts +52 -0
  350. package/dist/features/upload/server/schema.d.ts.map +1 -0
  351. package/dist/features/upload/server/schema.js +149 -0
  352. package/dist/features/upload/server/schema.js.map +1 -0
  353. package/dist/features/upload/server/validate.d.ts +1 -1
  354. package/dist/features/upload/server/validate.d.ts.map +1 -1
  355. package/dist/features/upload/server/validate.js.map +1 -1
  356. package/dist/field/Diff/converters/unknown/index.css +1 -1
  357. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  358. package/dist/field/Field.d.ts.map +1 -1
  359. package/dist/field/Field.js +18 -15
  360. package/dist/field/Field.js.map +1 -1
  361. package/dist/field/ViewSelector.css +1 -1
  362. package/dist/field/bundled.css +1 -1
  363. package/dist/field/index.css +5 -5
  364. package/dist/field/index.js +1 -1
  365. package/dist/field/index.js.map +1 -1
  366. package/dist/field/rscEntry.d.ts.map +1 -1
  367. package/dist/field/rscEntry.js +2 -0
  368. package/dist/field/rscEntry.js.map +1 -1
  369. package/dist/index.d.ts +10 -7
  370. package/dist/index.d.ts.map +1 -1
  371. package/dist/index.js +3 -3
  372. package/dist/index.js.map +1 -1
  373. package/dist/lexical/LexicalEditor.css +4 -2
  374. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  375. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  376. package/dist/lexical/config/client/loader.js +5 -1
  377. package/dist/lexical/config/client/loader.js.map +1 -1
  378. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  379. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  380. package/dist/lexical/config/server/sanitize.js +9 -11
  381. package/dist/lexical/config/server/sanitize.js.map +1 -1
  382. package/dist/lexical/plugins/DecoratorPlugin/index.css +1 -1
  383. package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
  384. package/dist/lexical/plugins/MarkdownShortcut/index.js +1 -1
  385. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  386. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -1
  387. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +21 -0
  388. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -1
  389. package/dist/lexical/plugins/SlashMenu/index.css +1 -5
  390. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +1 -1
  391. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  392. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +4 -3
  393. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -1
  394. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  395. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  396. package/dist/lexical/theme/EditorTheme.css +18 -19
  397. package/dist/lexical/ui/ContentEditable.css +9 -5
  398. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts +17 -0
  399. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts.map +1 -0
  400. package/dist/lexical/utils/markdown/convertFromMarkdownString.js +27 -0
  401. package/dist/lexical/utils/markdown/convertFromMarkdownString.js.map +1 -0
  402. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js +88 -0
  403. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js.map +1 -0
  404. package/dist/lexical/utils/markdown/createBlockNode.d.ts +2 -2
  405. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  406. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  407. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts +25 -0
  408. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts.map +1 -0
  409. package/dist/lexical/utils/markdown/normalizeMarkdown.js +91 -0
  410. package/dist/lexical/utils/markdown/normalizeMarkdown.js.map +1 -0
  411. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  412. package/dist/lexical/utils/point.d.ts.map +1 -1
  413. package/dist/lexical/utils/rect.d.ts.map +1 -1
  414. package/dist/lexical-proxy/@lexical-markdown.d.ts +1 -1
  415. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -1
  416. package/dist/lexical-proxy/@lexical-markdown.js +1 -1
  417. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
  418. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  419. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
  420. package/dist/types/builtInNodes.d.ts +14 -0
  421. package/dist/types/builtInNodes.d.ts.map +1 -0
  422. package/dist/types/builtInNodes.js +203 -0
  423. package/dist/types/builtInNodes.js.map +1 -0
  424. package/dist/types/index.d.ts +16 -17
  425. package/dist/types/index.d.ts.map +1 -1
  426. package/dist/types/index.js.map +1 -1
  427. package/dist/types/jsonSchemaHelpers.d.ts +30 -0
  428. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -0
  429. package/dist/types/jsonSchemaHelpers.js +58 -0
  430. package/dist/types/jsonSchemaHelpers.js.map +1 -0
  431. package/dist/types/nodeTypes.d.ts +115 -61
  432. package/dist/types/nodeTypes.d.ts.map +1 -1
  433. package/dist/types/nodeTypes.js +3 -2
  434. package/dist/types/nodeTypes.js.map +1 -1
  435. package/dist/types/schema.d.ts.map +1 -1
  436. package/dist/types/schema.js +74 -65
  437. package/dist/types/schema.js.map +1 -1
  438. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  439. package/dist/utilities/applyBaseFilterToFields.js +1 -2
  440. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  441. package/dist/utilities/buildEditorState.d.ts +17 -3
  442. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  443. package/dist/utilities/buildEditorState.js +8 -0
  444. package/dist/utilities/buildEditorState.js.map +1 -1
  445. package/dist/utilities/buildInitialState.d.ts +2 -1
  446. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  447. package/dist/utilities/buildInitialState.js.map +1 -1
  448. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  449. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  450. package/dist/utilities/fieldsDrawer/Drawer.js +19 -10
  451. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  452. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -1
  453. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  454. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -7
  455. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  456. package/dist/utilities/fieldsDrawer/index.css +12 -0
  457. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +29 -0
  458. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -0
  459. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js +97 -0
  460. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -0
  461. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  462. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  463. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
  464. package/dist/utilities/generateImportMap.d.ts +1 -1
  465. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  466. package/dist/utilities/generateSchemaMap.d.ts +1 -1
  467. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  468. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  469. package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
  470. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  471. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +1 -1
  472. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  473. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  474. package/dist/validate/index.d.ts.map +1 -1
  475. package/package.json +22 -26
  476. package/dist/exports/client/Field-G5Z2HM5Y.js +0 -2
  477. package/dist/exports/client/Field-G5Z2HM5Y.js.map +0 -7
  478. package/dist/exports/client/RelationshipComponent-RZL743CS.js.map +0 -7
  479. package/dist/exports/client/chunk-6QWQ7JV4.js +0 -2
  480. package/dist/exports/client/chunk-6QWQ7JV4.js.map +0 -7
  481. package/dist/exports/client/chunk-FEJXFRL7.js +0 -2
  482. package/dist/exports/client/chunk-FEJXFRL7.js.map +0 -7
  483. package/dist/exports/client/chunk-INBEEENE.js +0 -2
  484. package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
  485. package/dist/exports/client/chunk-LH634DPU.js +0 -12
  486. package/dist/exports/client/chunk-LH634DPU.js.map +0 -7
  487. package/dist/exports/client/component-CVM4OESA.js.map +0 -7
  488. package/dist/exports/client/componentInline-JJZ2NKW2.js +0 -2
  489. package/dist/features/blockquote/markdownTransformer.d.ts +0 -3
  490. package/dist/features/blockquote/markdownTransformer.d.ts.map +0 -1
  491. package/dist/features/blockquote/markdownTransformer.js +0 -33
  492. package/dist/features/blockquote/markdownTransformer.js.map +0 -1
  493. package/dist/features/format/bold/markdownTransformers.d.ts +0 -6
  494. package/dist/features/format/bold/markdownTransformers.d.ts.map +0 -1
  495. package/dist/features/format/bold/markdownTransformers.js +0 -23
  496. package/dist/features/format/bold/markdownTransformers.js.map +0 -1
  497. package/dist/features/format/inlineCode/markdownTransformers.d.ts +0 -3
  498. package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +0 -1
  499. package/dist/features/format/inlineCode/markdownTransformers.js +0 -6
  500. package/dist/features/format/inlineCode/markdownTransformers.js.map +0 -1
  501. package/dist/features/format/italic/markdownTransformers.d.ts +0 -4
  502. package/dist/features/format/italic/markdownTransformers.d.ts.map +0 -1
  503. package/dist/features/format/italic/markdownTransformers.js +0 -12
  504. package/dist/features/format/italic/markdownTransformers.js.map +0 -1
  505. package/dist/features/format/strikethrough/markdownTransformers.d.ts +0 -3
  506. package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +0 -1
  507. package/dist/features/format/strikethrough/markdownTransformers.js +0 -6
  508. package/dist/features/format/strikethrough/markdownTransformers.js.map +0 -1
  509. package/dist/features/link/nodes/types.d.ts +0 -27
  510. package/dist/features/link/nodes/types.d.ts.map +0 -1
  511. package/dist/features/link/nodes/types.js +0 -2
  512. package/dist/features/link/nodes/types.js.map +0 -1
  513. package/dist/features/lists/checklist/markdownTransformers.d.ts +0 -3
  514. package/dist/features/lists/checklist/markdownTransformers.d.ts.map +0 -1
  515. package/dist/features/lists/checklist/markdownTransformers.js +0 -12
  516. package/dist/features/lists/checklist/markdownTransformers.js.map +0 -1
  517. package/dist/features/lists/orderedList/markdownTransformer.d.ts +0 -3
  518. package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +0 -1
  519. package/dist/features/lists/orderedList/markdownTransformer.js +0 -12
  520. package/dist/features/lists/orderedList/markdownTransformer.js.map +0 -1
  521. package/dist/features/lists/shared/markdown.d.ts +0 -6
  522. package/dist/features/lists/shared/markdown.d.ts.map +0 -1
  523. package/dist/features/lists/shared/markdown.js +0 -57
  524. package/dist/features/lists/shared/markdown.js.map +0 -1
  525. package/dist/features/lists/unorderedList/markdownTransformer.d.ts +0 -3
  526. package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +0 -1
  527. package/dist/features/lists/unorderedList/markdownTransformer.js +0 -12
  528. package/dist/features/lists/unorderedList/markdownTransformer.js.map +0 -1
  529. package/dist/lexical/utils/guard.d.ts +0 -5
  530. package/dist/lexical/utils/guard.d.ts.map +0 -1
  531. package/dist/lexical/utils/guard.js +0 -9
  532. package/dist/lexical/utils/guard.js.map +0 -1
  533. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +0 -2
  534. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +0 -1
  535. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +0 -2
  536. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +0 -1
  537. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts +0 -14
  538. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +0 -1
  539. package/dist/packages/@lexical/markdown/MarkdownExport.js +0 -213
  540. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +0 -1
  541. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts +0 -19
  542. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +0 -1
  543. package/dist/packages/@lexical/markdown/MarkdownImport.js +0 -198
  544. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +0 -1
  545. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts +0 -11
  546. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +0 -1
  547. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +0 -304
  548. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +0 -1
  549. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +0 -147
  550. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +0 -1
  551. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +0 -268
  552. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +0 -1
  553. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts +0 -22
  554. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +0 -1
  555. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +0 -91
  556. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +0 -1
  557. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts +0 -21
  558. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +0 -1
  559. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +0 -54
  560. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +0 -1
  561. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts +0 -18
  562. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts.map +0 -1
  563. package/dist/packages/@lexical/markdown/importTextTransformers.js +0 -54
  564. package/dist/packages/@lexical/markdown/importTextTransformers.js.map +0 -1
  565. package/dist/packages/@lexical/markdown/index.d.ts +0 -29
  566. package/dist/packages/@lexical/markdown/index.d.ts.map +0 -1
  567. package/dist/packages/@lexical/markdown/index.js +0 -39
  568. package/dist/packages/@lexical/markdown/index.js.map +0 -1
  569. package/dist/packages/@lexical/markdown/utils.d.ts +0 -34
  570. package/dist/packages/@lexical/markdown/utils.d.ts.map +0 -1
  571. package/dist/packages/@lexical/markdown/utils.js +0 -267
  572. package/dist/packages/@lexical/markdown/utils.js.map +0 -1
  573. /package/dist/exports/client/{componentInline-JJZ2NKW2.js.map → componentInline-H24N7GUG.js.map} +0 -0
@@ -0,0 +1,88 @@
1
+ import { createHeadlessEditor } from '@lexical/headless';
2
+ import { LinkNode } from '@lexical/link';
3
+ import { ListItemNode, ListNode } from '@lexical/list';
4
+ import { $convertToMarkdownString } from '@lexical/markdown';
5
+ import { HeadingNode, QuoteNode } from '@lexical/rich-text';
6
+ import { $getRoot, $isElementNode, $isLineBreakNode } from 'lexical';
7
+ import { describe, expect, it } from 'vitest';
8
+ import { $convertFromMarkdownString } from './convertFromMarkdownString.js';
9
+ function createEditor() {
10
+ return createHeadlessEditor({
11
+ nodes: [HeadingNode, QuoteNode, ListNode, ListItemNode, LinkNode]
12
+ });
13
+ }
14
+ // Payload's editor imports markdown with shouldMergeAdjacentLines = true, so the
15
+ // specs exercise that path: hard line breaks must survive even when adjacent lines
16
+ // are merged, while soft wraps collapse to a single space.
17
+ function importMarkdown(markdown) {
18
+ const editor = createEditor();
19
+ editor.update(() => $convertFromMarkdownString(markdown, undefined, undefined, false, true), {
20
+ discrete: true
21
+ });
22
+ let result = {
23
+ hasLineBreak: false,
24
+ textContent: ''
25
+ };
26
+ editor.getEditorState().read(() => {
27
+ const firstChild = $getRoot().getFirstChild();
28
+ if (!$isElementNode(firstChild)) {
29
+ throw new Error('Expected an element block');
30
+ }
31
+ result = {
32
+ hasLineBreak: firstChild.getChildren().some(child => $isLineBreakNode(child)),
33
+ textContent: firstChild.getTextContent()
34
+ };
35
+ });
36
+ return result;
37
+ }
38
+ function roundTrip(markdown) {
39
+ const editor = createEditor();
40
+ editor.update(() => $convertFromMarkdownString(markdown, undefined, undefined, false, true), {
41
+ discrete: true
42
+ });
43
+ let output = '';
44
+ editor.getEditorState().read(() => {
45
+ output = $convertToMarkdownString();
46
+ });
47
+ return output;
48
+ }
49
+ describe('markdown hard line break import', () => {
50
+ it('should import a trailing-space hard break as a line break node with the marker stripped', () => {
51
+ const {
52
+ hasLineBreak,
53
+ textContent
54
+ } = importMarkdown(['foo ', 'bar'].join('\n'));
55
+ expect(hasLineBreak).toBe(true);
56
+ expect(textContent).toBe('foo\nbar');
57
+ });
58
+ it('should import a backslash hard break as a line break node with the marker stripped', () => {
59
+ const {
60
+ hasLineBreak,
61
+ textContent
62
+ } = importMarkdown('foo\\\nbar');
63
+ expect(hasLineBreak).toBe(true);
64
+ expect(textContent).toBe('foo\nbar');
65
+ });
66
+ });
67
+ describe('markdown hard line break round trip', () => {
68
+ it('should round trip a trailing-space hard break', () => {
69
+ const md = ['foo ', 'bar'].join('\n');
70
+ expect(roundTrip(md)).toBe(md);
71
+ });
72
+ it('should round trip a backslash hard break', () => {
73
+ const md = 'foo\\\nbar';
74
+ expect(roundTrip(md)).toBe(md);
75
+ });
76
+ it('should not introduce a hard break for a soft wrap', () => {
77
+ expect(roundTrip(['foo', 'bar'].join('\n'))).toBe('foo bar');
78
+ });
79
+ it('should round trip a hard break after formatted text', () => {
80
+ const md = '**foo** \nbar';
81
+ expect(roundTrip(md)).toBe(md);
82
+ });
83
+ it('should round trip a hard break after a link', () => {
84
+ const md = '[foo](https://payloadcms.com) \nbar';
85
+ expect(roundTrip(md)).toBe(md);
86
+ });
87
+ });
88
+ //# sourceMappingURL=convertFromMarkdownString.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertFromMarkdownString.spec.js","names":["createHeadlessEditor","LinkNode","ListItemNode","ListNode","$convertToMarkdownString","HeadingNode","QuoteNode","$getRoot","$isElementNode","$isLineBreakNode","describe","expect","it","$convertFromMarkdownString","createEditor","nodes","importMarkdown","markdown","editor","update","undefined","discrete","result","hasLineBreak","textContent","getEditorState","read","firstChild","getFirstChild","Error","getChildren","some","child","getTextContent","roundTrip","output","join","toBe","md"],"sources":["../../../../src/lexical/utils/markdown/convertFromMarkdownString.spec.ts"],"sourcesContent":["import { createHeadlessEditor } from '@lexical/headless'\nimport { LinkNode } from '@lexical/link'\nimport { ListItemNode, ListNode } from '@lexical/list'\nimport { $convertToMarkdownString } from '@lexical/markdown'\nimport { HeadingNode, QuoteNode } from '@lexical/rich-text'\nimport { $getRoot, $isElementNode, $isLineBreakNode } from 'lexical'\nimport { describe, expect, it } from 'vitest'\n\nimport { $convertFromMarkdownString } from './convertFromMarkdownString.js'\n\nfunction createEditor() {\n return createHeadlessEditor({\n nodes: [HeadingNode, QuoteNode, ListNode, ListItemNode, LinkNode],\n })\n}\n\n// Payload's editor imports markdown with shouldMergeAdjacentLines = true, so the\n// specs exercise that path: hard line breaks must survive even when adjacent lines\n// are merged, while soft wraps collapse to a single space.\nfunction importMarkdown(markdown: string): { hasLineBreak: boolean; textContent: string } {\n const editor = createEditor()\n editor.update(() => $convertFromMarkdownString(markdown, undefined, undefined, false, true), {\n discrete: true,\n })\n let result = { hasLineBreak: false, textContent: '' }\n editor.getEditorState().read(() => {\n const firstChild = $getRoot().getFirstChild()\n if (!$isElementNode(firstChild)) {\n throw new Error('Expected an element block')\n }\n result = {\n hasLineBreak: firstChild.getChildren().some((child) => $isLineBreakNode(child)),\n textContent: firstChild.getTextContent(),\n }\n })\n return result\n}\n\nfunction roundTrip(markdown: string): string {\n const editor = createEditor()\n editor.update(() => $convertFromMarkdownString(markdown, undefined, undefined, false, true), {\n discrete: true,\n })\n let output = ''\n editor.getEditorState().read(() => {\n output = $convertToMarkdownString()\n })\n return output\n}\n\ndescribe('markdown hard line break import', () => {\n it('should import a trailing-space hard break as a line break node with the marker stripped', () => {\n const { hasLineBreak, textContent } = importMarkdown(['foo ', 'bar'].join('\\n'))\n\n expect(hasLineBreak).toBe(true)\n expect(textContent).toBe('foo\\nbar')\n })\n\n it('should import a backslash hard break as a line break node with the marker stripped', () => {\n const { hasLineBreak, textContent } = importMarkdown('foo\\\\\\nbar')\n\n expect(hasLineBreak).toBe(true)\n expect(textContent).toBe('foo\\nbar')\n })\n})\n\ndescribe('markdown hard line break round trip', () => {\n it('should round trip a trailing-space hard break', () => {\n const md = ['foo ', 'bar'].join('\\n')\n expect(roundTrip(md)).toBe(md)\n })\n\n it('should round trip a backslash hard break', () => {\n const md = 'foo\\\\\\nbar'\n expect(roundTrip(md)).toBe(md)\n })\n\n it('should not introduce a hard break for a soft wrap', () => {\n expect(roundTrip(['foo', 'bar'].join('\\n'))).toBe('foo bar')\n })\n\n it('should round trip a hard break after formatted text', () => {\n const md = '**foo** \\nbar'\n expect(roundTrip(md)).toBe(md)\n })\n\n it('should round trip a hard break after a link', () => {\n const md = '[foo](https://payloadcms.com) \\nbar'\n expect(roundTrip(md)).toBe(md)\n })\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
+ import type { ElementTransformer } from '@lexical/markdown';
1
2
  import type { ElementNode } from 'lexical';
2
- import type { ElementTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js';
3
- export declare const createBlockNode: (createNode: (match: Array<string>) => ElementNode) => ElementTransformer["replace"];
3
+ export declare const createBlockNode: (createNode: (match: Array<string>) => ElementNode) => ElementTransformer['replace'];
4
4
  //# sourceMappingURL=createBlockNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createBlockNode.d.ts","sourceRoot":"","sources":["../../../../src/lexical/utils/markdown/createBlockNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAA;AAErG,eAAO,MAAM,eAAe,GAC1B,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,KAChD,kBAAkB,CAAC,SAAS,CAS9B,CAAA"}
1
+ {"version":3,"file":"createBlockNode.d.ts","sourceRoot":"","sources":["../../../../src/lexical/utils/markdown/createBlockNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,eAAO,MAAM,eAAe,eACd,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,KAChD,kBAAkB,CAAC,SAAS,CAS9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createBlockNode.js","names":["createBlockNode","createNode","parentNode","children","match","node","append","replace","select"],"sources":["../../../../src/lexical/utils/markdown/createBlockNode.ts"],"sourcesContent":["import type { ElementNode } from 'lexical'\n\nimport type { ElementTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nexport const createBlockNode = (\n createNode: (match: Array<string>) => ElementNode,\n): ElementTransformer['replace'] => {\n return (parentNode, children, match) => {\n const node = createNode(match)\n if (node) {\n node.append(...children)\n parentNode.replace(node)\n node.select(0, 0)\n }\n }\n}\n"],"mappings":"AAIA,OAAO,MAAMA,eAAA,GACXC,UAAA;EAEA,OAAO,CAACC,UAAA,EAAYC,QAAA,EAAUC,KAAA;IAC5B,MAAMC,IAAA,GAAOJ,UAAA,CAAWG,KAAA;IACxB,IAAIC,IAAA,EAAM;MACRA,IAAA,CAAKC,MAAM,IAAIH,QAAA;MACfD,UAAA,CAAWK,OAAO,CAACF,IAAA;MACnBA,IAAA,CAAKG,MAAM,CAAC,GAAG;IACjB;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"createBlockNode.js","names":["createBlockNode","createNode","parentNode","children","match","node","append","replace","select"],"sources":["../../../../src/lexical/utils/markdown/createBlockNode.ts"],"sourcesContent":["import type { ElementTransformer } from '@lexical/markdown'\nimport type { ElementNode } from 'lexical'\n\nexport const createBlockNode = (\n createNode: (match: Array<string>) => ElementNode,\n): ElementTransformer['replace'] => {\n return (parentNode, children, match) => {\n const node = createNode(match)\n if (node) {\n node.append(...children)\n parentNode.replace(node)\n node.select(0, 0)\n }\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,eAAA,GACXC,UAAA;EAEA,OAAO,CAACC,UAAA,EAAYC,QAAA,EAAUC,KAAA;IAC5B,MAAMC,IAAA,GAAOJ,UAAA,CAAWG,KAAA;IACxB,IAAIC,IAAA,EAAM;MACRA,IAAA,CAAKC,MAAM,IAAIH,QAAA;MACfD,UAAA,CAAWK,OAAO,CAACF,IAAA;MACnBA,IAAA,CAAKG,MAAM,CAAC,GAAG;IACjB;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Payload-specific markdown normalization, run by `$convertFromMarkdownString`
3
+ * before delegating the import to `@lexical/markdown`. Handles nested code
4
+ * fences and preserves table-row whitespace.
5
+ *
6
+ * TODO: Remove this file once https://github.com/facebook/lexical/pull/8734 is
7
+ * merged and we upgrade to a release that includes it. That PR fixes the nested
8
+ * code fence handling upstream, so `$convertFromMarkdownString` can call
9
+ * `@lexical/markdown` directly instead of pre-normalizing here.
10
+ */
11
+ /**
12
+ * Represents a CommonMark hard line break marker: either a trailing backslash
13
+ * or two-or-more trailing spaces.
14
+ *
15
+ * See https://spec.commonmark.org/0.31.2/#hard-line-breaks
16
+ */
17
+ export type MarkdownHardLineBreak = string;
18
+ /**
19
+ * Detects a CommonMark hard line break marker at the end of a raw line.
20
+ *
21
+ * @returns a tuple of `[textWithoutMarker, marker]` when a marker is found, otherwise null.
22
+ */
23
+ export declare function parseMarkdownHardLineBreak(line: string): [string, MarkdownHardLineBreak] | null;
24
+ export declare function normalizeMarkdown(input: string, shouldMergeAdjacentLines: boolean): string;
25
+ //# sourceMappingURL=normalizeMarkdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeMarkdown.d.ts","sourceRoot":"","sources":["../../../../src/lexical/utils/markdown/normalizeMarkdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoBH;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAE1C;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAO/F;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,OAAO,GAAG,MAAM,CAgF1F"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Payload-specific markdown normalization, run by `$convertFromMarkdownString`
3
+ * before delegating the import to `@lexical/markdown`. Handles nested code
4
+ * fences and preserves table-row whitespace.
5
+ *
6
+ * TODO: Remove this file once https://github.com/facebook/lexical/pull/8734 is
7
+ * merged and we upgrade to a release that includes it. That PR fixes the nested
8
+ * code fence handling upstream, so `$convertFromMarkdownString` can call
9
+ * `@lexical/markdown` directly instead of pre-normalizing here.
10
+ */ // These regexes are only used with `.test()` here, so their capturing groups
11
+ // are unused in this module.
12
+ /* eslint-disable regexp/no-unused-capturing-group */const EMPTY_OR_WHITESPACE_ONLY = /^[\t ]*$/;
13
+ const ORDERED_LIST_REGEX = /^(\s*)(\d+)\.\s/;
14
+ const UNORDERED_LIST_REGEX = /^(\s*)[-*+]\s/;
15
+ const CHECK_LIST_REGEX = /^(\s*)(?:-\s)?\s?(\[(\s|x)?\])\s/i;
16
+ const HEADING_REGEX = /^(#{1,6})\s/;
17
+ const QUOTE_REGEX = /^>\s/;
18
+ const CODE_START_REGEX = /^[ \t]*(\\`\\`\\`|```)(\w+)?/;
19
+ const CODE_END_REGEX = /[ \t]*(\\`\\`\\`|```)$/;
20
+ const CODE_SINGLE_LINE_REGEX = /^[ \t]*```[^`]+(?:(?:`{1,2}|`{4,})[^`]+)*```(?:[^`]|$)/;
21
+ const TABLE_ROW_REG_EXP = /^\|(.+)\|\s?$/;
22
+ const TABLE_ROW_DIVIDER_REG_EXP = /^(\| ?:?-*:? ?)+\|\s?$/;
23
+ const TAG_START_REGEX = /^[ \t]*<[a-z_][\w-]*(?:\s[^<>]*)?\/?>/i;
24
+ const TAG_END_REGEX = /^[ \t]*<\/[a-z_][\w-]*\s*>/i;
25
+ /**
26
+ * Detects a CommonMark hard line break marker at the end of a raw line.
27
+ *
28
+ * @returns a tuple of `[textWithoutMarker, marker]` when a marker is found, otherwise null.
29
+ */
30
+ export function parseMarkdownHardLineBreak(line) {
31
+ if (line.endsWith('\\')) {
32
+ return [line.slice(0, -1), '\\'];
33
+ }
34
+ const spaces = line.match(/^(.*?\S)( {2,})$/);
35
+ return spaces ? [spaces[1], spaces[2]] : null;
36
+ }
37
+ export function normalizeMarkdown(input, shouldMergeAdjacentLines) {
38
+ const lines = input.split('\n');
39
+ let inCodeBlock = false;
40
+ const sanitizedLines = [];
41
+ let nestedDeepCodeBlock = 0;
42
+ for (let i = 0; i < lines.length; i++) {
43
+ const line = lines[i];
44
+ const lastLine = sanitizedLines[sanitizedLines.length - 1];
45
+ // A hard line break marker on the current line only matters if another line follows it.
46
+ const hardLineBreak = i < lines.length - 1 ? parseMarkdownHardLineBreak(line) : null;
47
+ const lastLineHasHardLineBreak = lastLine !== undefined && parseMarkdownHardLineBreak(lastLine) !== null;
48
+ // Code blocks of ```single line``` don't toggle the inCodeBlock flag
49
+ if (CODE_SINGLE_LINE_REGEX.test(line)) {
50
+ sanitizedLines.push(line);
51
+ continue;
52
+ }
53
+ if (CODE_END_REGEX.test(line)) {
54
+ if (nestedDeepCodeBlock === 0) {
55
+ inCodeBlock = true;
56
+ }
57
+ if (nestedDeepCodeBlock === 1) {
58
+ inCodeBlock = false;
59
+ }
60
+ if (nestedDeepCodeBlock > 0) {
61
+ nestedDeepCodeBlock--;
62
+ }
63
+ sanitizedLines.push(line);
64
+ continue;
65
+ }
66
+ // Toggle inCodeBlock state when encountering start or end of a code block
67
+ if (CODE_START_REGEX.test(line)) {
68
+ inCodeBlock = true;
69
+ nestedDeepCodeBlock++;
70
+ sanitizedLines.push(line);
71
+ continue;
72
+ }
73
+ // If we are inside a code block, keep the line unchanged
74
+ if (inCodeBlock) {
75
+ sanitizedLines.push(line);
76
+ continue;
77
+ }
78
+ // In markdown the concept of "empty paragraphs" does not exist.
79
+ // Blocks must be separated by an empty line. Non-empty adjacent lines must be merged.
80
+ if (EMPTY_OR_WHITESPACE_ONLY.test(line) || EMPTY_OR_WHITESPACE_ONLY.test(lastLine) || !lastLine || HEADING_REGEX.test(lastLine) || HEADING_REGEX.test(line) || QUOTE_REGEX.test(line) || ORDERED_LIST_REGEX.test(line) || UNORDERED_LIST_REGEX.test(line) || CHECK_LIST_REGEX.test(line) || TABLE_ROW_REG_EXP.test(line) || TABLE_ROW_DIVIDER_REG_EXP.test(line) ||
81
+ // Don't merge the next line into a line that ends with a hard line break marker.
82
+ lastLineHasHardLineBreak || !shouldMergeAdjacentLines || TAG_START_REGEX.test(line) || TAG_END_REGEX.test(line) || TAG_START_REGEX.test(lastLine) || TAG_END_REGEX.test(lastLine) || CODE_END_REGEX.test(lastLine)) {
83
+ sanitizedLines.push(line);
84
+ } else {
85
+ // Preserve a trailing hard line break marker on the merged line so it survives import.
86
+ sanitizedLines[sanitizedLines.length - 1] = lastLine + ' ' + (hardLineBreak === null ? line.trim() : line.trimStart());
87
+ }
88
+ }
89
+ return sanitizedLines.join('\n');
90
+ }
91
+ //# sourceMappingURL=normalizeMarkdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeMarkdown.js","names":["EMPTY_OR_WHITESPACE_ONLY","ORDERED_LIST_REGEX","UNORDERED_LIST_REGEX","CHECK_LIST_REGEX","HEADING_REGEX","QUOTE_REGEX","CODE_START_REGEX","CODE_END_REGEX","CODE_SINGLE_LINE_REGEX","TABLE_ROW_REG_EXP","TABLE_ROW_DIVIDER_REG_EXP","TAG_START_REGEX","TAG_END_REGEX","parseMarkdownHardLineBreak","line","endsWith","slice","spaces","match","normalizeMarkdown","input","shouldMergeAdjacentLines","lines","split","inCodeBlock","sanitizedLines","nestedDeepCodeBlock","i","length","lastLine","hardLineBreak","lastLineHasHardLineBreak","undefined","test","push","trim","trimStart","join"],"sources":["../../../../src/lexical/utils/markdown/normalizeMarkdown.ts"],"sourcesContent":["/**\n * Payload-specific markdown normalization, run by `$convertFromMarkdownString`\n * before delegating the import to `@lexical/markdown`. Handles nested code\n * fences and preserves table-row whitespace.\n *\n * TODO: Remove this file once https://github.com/facebook/lexical/pull/8734 is\n * merged and we upgrade to a release that includes it. That PR fixes the nested\n * code fence handling upstream, so `$convertFromMarkdownString` can call\n * `@lexical/markdown` directly instead of pre-normalizing here.\n */\n\n// These regexes are only used with `.test()` here, so their capturing groups\n// are unused in this module.\n/* eslint-disable regexp/no-unused-capturing-group */\n\nconst EMPTY_OR_WHITESPACE_ONLY = /^[\\t ]*$/\nconst ORDERED_LIST_REGEX = /^(\\s*)(\\d+)\\.\\s/\nconst UNORDERED_LIST_REGEX = /^(\\s*)[-*+]\\s/\nconst CHECK_LIST_REGEX = /^(\\s*)(?:-\\s)?\\s?(\\[(\\s|x)?\\])\\s/i\nconst HEADING_REGEX = /^(#{1,6})\\s/\nconst QUOTE_REGEX = /^>\\s/\nconst CODE_START_REGEX = /^[ \\t]*(\\\\`\\\\`\\\\`|```)(\\w+)?/\nconst CODE_END_REGEX = /[ \\t]*(\\\\`\\\\`\\\\`|```)$/\nconst CODE_SINGLE_LINE_REGEX = /^[ \\t]*```[^`]+(?:(?:`{1,2}|`{4,})[^`]+)*```(?:[^`]|$)/\nconst TABLE_ROW_REG_EXP = /^\\|(.+)\\|\\s?$/\nconst TABLE_ROW_DIVIDER_REG_EXP = /^(\\| ?:?-*:? ?)+\\|\\s?$/\nconst TAG_START_REGEX = /^[ \\t]*<[a-z_][\\w-]*(?:\\s[^<>]*)?\\/?>/i\nconst TAG_END_REGEX = /^[ \\t]*<\\/[a-z_][\\w-]*\\s*>/i\n\n/**\n * Represents a CommonMark hard line break marker: either a trailing backslash\n * or two-or-more trailing spaces.\n *\n * See https://spec.commonmark.org/0.31.2/#hard-line-breaks\n */\nexport type MarkdownHardLineBreak = string\n\n/**\n * Detects a CommonMark hard line break marker at the end of a raw line.\n *\n * @returns a tuple of `[textWithoutMarker, marker]` when a marker is found, otherwise null.\n */\nexport function parseMarkdownHardLineBreak(line: string): [string, MarkdownHardLineBreak] | null {\n if (line.endsWith('\\\\')) {\n return [line.slice(0, -1), '\\\\']\n }\n\n const spaces = line.match(/^(.*?\\S)( {2,})$/)\n return spaces ? [spaces[1]!, spaces[2]!] : null\n}\n\nexport function normalizeMarkdown(input: string, shouldMergeAdjacentLines: boolean): string {\n const lines = input.split('\\n')\n let inCodeBlock = false\n const sanitizedLines: string[] = []\n let nestedDeepCodeBlock = 0\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i]!\n const lastLine = sanitizedLines[sanitizedLines.length - 1]\n // A hard line break marker on the current line only matters if another line follows it.\n const hardLineBreak = i < lines.length - 1 ? parseMarkdownHardLineBreak(line) : null\n const lastLineHasHardLineBreak =\n lastLine !== undefined && parseMarkdownHardLineBreak(lastLine) !== null\n\n // Code blocks of ```single line``` don't toggle the inCodeBlock flag\n if (CODE_SINGLE_LINE_REGEX.test(line)) {\n sanitizedLines.push(line)\n continue\n }\n\n if (CODE_END_REGEX.test(line)) {\n if (nestedDeepCodeBlock === 0) {\n inCodeBlock = true\n }\n if (nestedDeepCodeBlock === 1) {\n inCodeBlock = false\n }\n if (nestedDeepCodeBlock > 0) {\n nestedDeepCodeBlock--\n }\n sanitizedLines.push(line)\n continue\n }\n\n // Toggle inCodeBlock state when encountering start or end of a code block\n if (CODE_START_REGEX.test(line)) {\n inCodeBlock = true\n nestedDeepCodeBlock++\n sanitizedLines.push(line)\n continue\n }\n\n // If we are inside a code block, keep the line unchanged\n if (inCodeBlock) {\n sanitizedLines.push(line)\n continue\n }\n\n // In markdown the concept of \"empty paragraphs\" does not exist.\n // Blocks must be separated by an empty line. Non-empty adjacent lines must be merged.\n if (\n EMPTY_OR_WHITESPACE_ONLY.test(line) ||\n EMPTY_OR_WHITESPACE_ONLY.test(lastLine!) ||\n !lastLine ||\n HEADING_REGEX.test(lastLine) ||\n HEADING_REGEX.test(line) ||\n QUOTE_REGEX.test(line) ||\n ORDERED_LIST_REGEX.test(line) ||\n UNORDERED_LIST_REGEX.test(line) ||\n CHECK_LIST_REGEX.test(line) ||\n TABLE_ROW_REG_EXP.test(line) ||\n TABLE_ROW_DIVIDER_REG_EXP.test(line) ||\n // Don't merge the next line into a line that ends with a hard line break marker.\n lastLineHasHardLineBreak ||\n !shouldMergeAdjacentLines ||\n TAG_START_REGEX.test(line) ||\n TAG_END_REGEX.test(line) ||\n TAG_START_REGEX.test(lastLine) ||\n TAG_END_REGEX.test(lastLine) ||\n CODE_END_REGEX.test(lastLine)\n ) {\n sanitizedLines.push(line)\n } else {\n // Preserve a trailing hard line break marker on the merged line so it survives import.\n sanitizedLines[sanitizedLines.length - 1] =\n lastLine + ' ' + (hardLineBreak === null ? line.trim() : line.trimStart())\n }\n }\n\n return sanitizedLines.join('\\n')\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeFormat.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/nodeFormat.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,YAAY,CAAA;AAG3D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Bb,CAAA;AAEV,eAAO,MAAM,iBAAiB,QAQL,CAAA;AAGzB,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAE1C,eAAO,MAAM,iBAAiB,SAAS,CAAA;AAYvC,eAAO,MAAM,SAAS,QAA8C,CAAA;AAEpE,eAAO,MAAM,SAAS,QAA8C,CAAA;AAEpE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,MAAM,CASvE,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,MAAM,CAGzE,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,MAAM,CAOjF,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAOpE,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAI7D,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAI1D,CAAA"}
1
+ {"version":3,"file":"nodeFormat.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/nodeFormat.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,YAAY,CAAA;AAG3D,eAAO,MAAM,UAAU;aACrB,gBAAgB,EAAE,CAAC;aACnB,aAAa,EAAE,CAAC;aAEhB,cAAc,EAAE,CAAC;aACjB,eAAe,EAAE,CAAC;aAClB,cAAc,EAAE,CAAC;aAEjB,SAAS,EAAE,CAAC;aACZ,QAAQ,EAAE,CAAC;aACX,YAAY,EAAE,CAAC;aACf,QAAQ,EAAE,CAAC;aAEX,OAAO,EAAE,CAAC;aACV,SAAS;aACT,gBAAgB;aAChB,YAAY;aACZ,OAAO;aACP,YAAY;aACZ,cAAc;aACd,YAAY;aAEZ,gBAAgB,EAAE,CAAC;aACnB,cAAc;aAEd,aAAa,EAAE,CAAC;aAChB,eAAe,EAAE,CAAC;aAClB,cAAc,EAAE,CAAC;aACjB,gBAAgB,EAAE,CAAC;aACnB,cAAc,EAAE,CAAC;aACjB,YAAY,EAAE,CAAC;CACP,CAAA;AAEV,eAAO,MAAM,iBAAiB,QAQL,CAAA;AAGzB,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAE1C,eAAO,MAAM,iBAAiB,SAAS,CAAA;AAYvC,eAAO,MAAM,SAAS,QAA8C,CAAA;AAEpE,eAAO,MAAM,SAAS,QAA8C,CAAA;AAEpE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,MAAM,CASvE,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,MAAM,CAGzE,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,MAAM,CAOjF,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAOpE,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAI7D,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAI1D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/point.ts"],"names":[],"mappings":"AACA,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAQ;IAE3B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAQ;gBAEf,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKzB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM;IAIlC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM;IAIlC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAIpC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAI9C,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAI1C,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO;IAIvC,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;CACF;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAE9C"}
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/point.ts"],"names":[],"mappings":"AACA,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAQ;IAE3B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAQ;IAE3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAG/B;IAEM,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,CAExC;IAEM,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,CAExC;IAEM,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE1C;IAEM,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEpD;IAEM,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEhD;IAEM,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO,CAEtC;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;CACF;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAE9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/rect.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAEhD,UAAU,mBAAmB;IAC3B,MAAM,EAAE;QACN,cAAc,EAAE,OAAO,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,WAAW,EAAE,OAAO,CAAA;KACrB,CAAA;IACD,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;gBAEjB,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAWpE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAKtC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/E,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IAMpD,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,mBAAmB;IAE9C,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO;IAqCrD,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG;QACtC,QAAQ,EAAE,MAAM,CAAA;QAChB,cAAc,EAAE,OAAO,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,WAAW,EAAE,OAAO,CAAA;KACrB;IA2CM,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO;IAMnD,eAAe,CAAC,EACrB,MAAoB,EACpB,IAAgB,EAChB,KAAkB,EAClB,GAAc,GACf;;;;;KAAA,GAAG,IAAI;IAID,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAU1C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;CACF"}
1
+ {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/rect.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAEhD,UAAU,mBAAmB;IAC3B,MAAM,EAAE;QACN,cAAc,EAAE,OAAO,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,WAAW,EAAE,OAAO,CAAA;KACrB,CAAA;IACD,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAE7B,YAAY,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EASnE;IAED,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAGrC;IAED,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGzC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9E;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9E;IAED,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,CAI1D;IAEM,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,mBAAmB,CAAA;IAE9C,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO,CAAA;IAqCrD,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG;QACtC,QAAQ,EAAE,MAAM,CAAA;QAChB,cAAc,EAAE,OAAO,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,WAAW,EAAE,OAAO,CAAA;KACrB,CAyCA;IAEM,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO,CAIzD;IAEM,eAAe,CAAC,EACrB,MAAoB,EACpB,IAAgB,EAChB,KAAkB,EAClB,GAAc,GACf;;;;;KAAA,GAAG,IAAI,CAEP;IAEM,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQzC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;CACF"}
@@ -1,2 +1,2 @@
1
- export * from '../packages/@lexical/markdown/index.js';
1
+ export * from '@lexical/markdown';
2
2
  //# sourceMappingURL=@lexical-markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"@lexical-markdown.d.ts","sourceRoot":"","sources":["../../src/lexical-proxy/@lexical-markdown.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAA"}
1
+ {"version":3,"file":"@lexical-markdown.d.ts","sourceRoot":"","sources":["../../src/lexical-proxy/@lexical-markdown.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -1,2 +1,2 @@
1
- export * from '../packages/@lexical/markdown/index.js';
1
+ export * from '@lexical/markdown';
2
2
  //# sourceMappingURL=@lexical-markdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"@lexical-markdown.js","names":[],"sources":["../../src/lexical-proxy/@lexical-markdown.ts"],"sourcesContent":["export * from '../packages/@lexical/markdown/index.js'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"@lexical-markdown.js","names":[],"sources":["../../src/lexical-proxy/@lexical-markdown.ts"],"sourcesContent":["export * from '@lexical/markdown'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"populateLexicalPopulationPromises.d.ts","sourceRoot":"","sources":["../../src/populateGraphQL/populateLexicalPopulationPromises.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIrD,MAAM,MAAM,IAAI,GAAG;IACjB,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC/D,iBAAiB,EAAE,OAAO,CAAA;CAC3B,GAAG,UAAU,CACZ,WAAW,CAAC,eAAe,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAC/F,CAAC,CAAC,CAAC,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,iCAAiC,GAAI,8MAgB/C,IAAI,SAoCN,CAAA"}
1
+ {"version":3,"file":"populateLexicalPopulationPromises.d.ts","sourceRoot":"","sources":["../../src/populateGraphQL/populateLexicalPopulationPromises.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIrD,MAAM,MAAM,IAAI,GAAG;IACjB,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC/D,iBAAiB,EAAE,OAAO,CAAA;CAC3B,GAAG,UAAU,CACZ,WAAW,CAAC,eAAe,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAC/F,CAAC,CAAC,CAAC,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,iCAAiC,iNAgB3C,IAAI,SAoCN,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"recursivelyPopulateFieldsForGraphQL.d.ts","sourceRoot":"","sources":["../../src/populateGraphQL/recursivelyPopulateFieldsForGraphQL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAIhF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAEnE,KAAK,wBAAwB,GAAG;IAC9B,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC/D;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACnC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,mCAAmC,GAAI,2LAgBjD,wBAAwB,KAAG,IA0B7B,CAAA"}
1
+ {"version":3,"file":"recursivelyPopulateFieldsForGraphQL.d.ts","sourceRoot":"","sources":["../../src/populateGraphQL/recursivelyPopulateFieldsForGraphQL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAIhF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAEnE,KAAK,wBAAwB,GAAG;IAC9B,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC/D;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACnC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,mCAAmC,8LAgB7C,wBAAwB,KAAG,IA0B7B,CAAA"}
@@ -0,0 +1,14 @@
1
+ import type { JSONSchemaFn } from '../features/typesServer.js';
2
+ /**
3
+ * Cross-cutting Lexical types shared by every element node. Inlined into
4
+ * `payload-types.ts`. Must stay byte-for-byte in sync with the runtime twins
5
+ * in `types/nodeTypes.ts` (`LexicalElementFormat`, `LexicalElementDirection`,
6
+ * `SerializedLexicalElementBase`) — cross-module assignability depends on it.
7
+ */
8
+ export declare const CORE_LEXICAL_TYPE_STRING = "/** @internal Core Lexical types \u2014 see @payloadcms/richtext-lexical. */\nexport type LexicalElementFormat = 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';\nexport type LexicalElementDirection = ('ltr' | 'rtl') | null;\n\nexport interface SerializedLexicalElementBase<TChildren> {\n children: TChildren[];\n direction: LexicalElementDirection;\n format: LexicalElementFormat;\n indent: number;\n textFormat?: number;\n textStyle?: string;\n version: number;\n}";
9
+ export declare const textNodeJSONSchema: JSONSchemaFn;
10
+ export declare const tabNodeJSONSchema: JSONSchemaFn;
11
+ export declare const lineBreakNodeJSONSchema: JSONSchemaFn;
12
+ export declare const paragraphNodeJSONSchema: JSONSchemaFn;
13
+ export declare const rootNodeJSONSchema: JSONSchemaFn;
14
+ //# sourceMappingURL=builtInNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtInNodes.d.ts","sourceRoot":"","sources":["../../src/types/builtInNodes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAI9D;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,6eAYnC,CAAA;AA4DF,eAAO,MAAM,kBAAkB,EAAE,YAkBhC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,YAoB/B,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,YAYrC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,YAerC,CAAA;AAeD,eAAO,MAAM,kBAAkB,EAAE,YAoBhC,CAAA"}
@@ -0,0 +1,203 @@
1
+ import { withNullableJSONSchemaType } from 'payload';
2
+ import { versionSchema } from './jsonSchemaHelpers.js';
3
+ /**
4
+ * Cross-cutting Lexical types shared by every element node. Inlined into
5
+ * `payload-types.ts`. Must stay byte-for-byte in sync with the runtime twins
6
+ * in `types/nodeTypes.ts` (`LexicalElementFormat`, `LexicalElementDirection`,
7
+ * `SerializedLexicalElementBase`) — cross-module assignability depends on it.
8
+ */
9
+ export const CORE_LEXICAL_TYPE_STRING = `/** @internal Core Lexical types — see @payloadcms/richtext-lexical. */
10
+ export type LexicalElementFormat = 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
11
+ export type LexicalElementDirection = ('ltr' | 'rtl') | null;
12
+
13
+ export interface SerializedLexicalElementBase<TChildren> {
14
+ children: TChildren[];
15
+ direction: LexicalElementDirection;
16
+ format: LexicalElementFormat;
17
+ indent: number;
18
+ textFormat?: number;
19
+ textStyle?: string;
20
+ version: number;
21
+ }`;
22
+ /**
23
+ * Built-in Lexical node schemas (always present regardless of feature config).
24
+ * Co-located with the TS source they reference — each `JSONSchemaFn` adds
25
+ * its helper interface(s) to `typeStringDefinitions` and returns the JSON
26
+ * schema for that node.
27
+ */ /** MUST stay byte-for-byte in sync with `LexicalTextMode` in `types/nodeTypes.ts`. */
28
+ const LEXICAL_TEXT_MODE_TS = `export type LexicalTextMode = 'normal' | 'token' | 'segmented';`;
29
+ /** MUST stay byte-for-byte in sync with `SerializedTextNode` in `types/nodeTypes.ts`. */
30
+ const SERIALIZED_TEXT_NODE_TS = `export interface SerializedTextNode {
31
+ type: 'text';
32
+ detail: number;
33
+ format: number;
34
+ mode: LexicalTextMode;
35
+ style: string;
36
+ text: string;
37
+ version: number;
38
+ }`;
39
+ /** MUST stay byte-for-byte in sync with `SerializedTabNode` in `types/nodeTypes.ts`. */
40
+ const SERIALIZED_TAB_NODE_TS = `export interface SerializedTabNode {
41
+ type: 'tab';
42
+ detail: number;
43
+ format: number;
44
+ mode: LexicalTextMode;
45
+ style: string;
46
+ text: string;
47
+ version: number;
48
+ }`;
49
+ /** MUST stay byte-for-byte in sync with `SerializedLineBreakNode` in `types/nodeTypes.ts`. */
50
+ const SERIALIZED_LINE_BREAK_NODE_TS = `export interface SerializedLineBreakNode {
51
+ type: 'linebreak';
52
+ version: number;
53
+ }`;
54
+ /** MUST stay byte-for-byte in sync with `SerializedParagraphNode` in `types/nodeTypes.ts`. */
55
+ const SERIALIZED_PARAGRAPH_NODE_TS = `export interface SerializedParagraphNode<TChildren> extends SerializedLexicalElementBase<TChildren> {
56
+ type: 'paragraph';
57
+ textFormat: number;
58
+ textStyle: string;
59
+ }`;
60
+ const textModeSchema = {
61
+ type: 'string',
62
+ enum: ['normal', 'token', 'segmented'],
63
+ tsType: 'LexicalTextMode'
64
+ };
65
+ /** Text-node `format` bitmask (Lexical text-format flags). */
66
+ const textFormatSchema = {
67
+ type: 'integer',
68
+ description: 'Active text formats as a bitmask, OR-ed together (0 = none): bold=1, italic=2, strikethrough=4, underline=8, code=16, subscript=32, superscript=64, highlight=128, lowercase=256, uppercase=512. e.g. bold + italic = 3.'
69
+ };
70
+ export const textNodeJSONSchema = ({
71
+ typeStringDefinitions
72
+ }) => {
73
+ typeStringDefinitions.add(LEXICAL_TEXT_MODE_TS);
74
+ typeStringDefinitions.add(SERIALIZED_TEXT_NODE_TS);
75
+ return {
76
+ type: 'object',
77
+ additionalProperties: false,
78
+ properties: {
79
+ type: {
80
+ type: 'string',
81
+ const: 'text'
82
+ },
83
+ detail: {
84
+ type: 'integer'
85
+ },
86
+ format: textFormatSchema,
87
+ mode: textModeSchema,
88
+ style: {
89
+ type: 'string'
90
+ },
91
+ text: {
92
+ type: 'string'
93
+ },
94
+ version: versionSchema
95
+ },
96
+ required: ['detail', 'format', 'mode', 'style', 'text', 'type', 'version'],
97
+ tsType: 'SerializedTextNode'
98
+ };
99
+ };
100
+ export const tabNodeJSONSchema = ({
101
+ typeStringDefinitions
102
+ }) => {
103
+ typeStringDefinitions.add(LEXICAL_TEXT_MODE_TS);
104
+ typeStringDefinitions.add(SERIALIZED_TAB_NODE_TS);
105
+ return {
106
+ type: 'object',
107
+ additionalProperties: false,
108
+ properties: {
109
+ type: {
110
+ type: 'string',
111
+ const: 'tab'
112
+ },
113
+ // A tab node is fully fixed: Lexical marks it unmergeable (`detail` = IS_UNMERGEABLE = 2) and
114
+ // its text is a single tab. Any other `detail` makes `TabNode.setDetail` throw on load.
115
+ detail: {
116
+ const: 2,
117
+ description: 'Always 2 (Lexical IS_UNMERGEABLE); other values throw.'
118
+ },
119
+ format: textFormatSchema,
120
+ mode: textModeSchema,
121
+ style: {
122
+ type: 'string'
123
+ },
124
+ text: {
125
+ const: '\t',
126
+ description: 'Always a single tab character.'
127
+ },
128
+ version: versionSchema
129
+ },
130
+ required: ['detail', 'format', 'mode', 'style', 'text', 'type', 'version'],
131
+ tsType: 'SerializedTabNode'
132
+ };
133
+ };
134
+ export const lineBreakNodeJSONSchema = ({
135
+ typeStringDefinitions
136
+ }) => {
137
+ typeStringDefinitions.add(SERIALIZED_LINE_BREAK_NODE_TS);
138
+ return {
139
+ type: 'object',
140
+ additionalProperties: false,
141
+ properties: {
142
+ type: {
143
+ type: 'string',
144
+ const: 'linebreak'
145
+ },
146
+ version: versionSchema
147
+ },
148
+ required: ['type', 'version'],
149
+ tsType: 'SerializedLineBreakNode'
150
+ };
151
+ };
152
+ export const paragraphNodeJSONSchema = ({
153
+ elementNodeSchema,
154
+ nodeUnionName,
155
+ typeStringDefinitions
156
+ }) => {
157
+ typeStringDefinitions.add(SERIALIZED_PARAGRAPH_NODE_TS);
158
+ return elementNodeSchema({
159
+ nodeType: 'paragraph',
160
+ properties: {
161
+ textFormat: {
162
+ type: 'integer'
163
+ },
164
+ textStyle: {
165
+ type: 'string'
166
+ }
167
+ },
168
+ required: ['textFormat', 'textStyle'],
169
+ tsType: `SerializedParagraphNode<${nodeUnionName}>`
170
+ });
171
+ };
172
+ /** MUST stay byte-for-byte in sync with `LexicalRichText` in `types/nodeTypes.ts`. */
173
+ const ROOT_NODE_TS = `/** Shape of a Lexical \`richText\` field. */
174
+ export interface LexicalRichText<TNode> {
175
+ root: {
176
+ children: TNode[];
177
+ direction: LexicalElementDirection;
178
+ format: LexicalElementFormat;
179
+ indent: number;
180
+ type: 'root';
181
+ version: number;
182
+ };
183
+ }`;
184
+ export const rootNodeJSONSchema = ({
185
+ elementNodeSchema,
186
+ field,
187
+ nodeUnionName,
188
+ typeStringDefinitions
189
+ }) => {
190
+ typeStringDefinitions.add(ROOT_NODE_TS);
191
+ return {
192
+ type: withNullableJSONSchemaType('object', !!field.required),
193
+ additionalProperties: false,
194
+ properties: {
195
+ root: elementNodeSchema({
196
+ nodeType: 'root'
197
+ })
198
+ },
199
+ required: ['root'],
200
+ tsType: field.required ? `LexicalRichText<${nodeUnionName}>` : `LexicalRichText<${nodeUnionName}> | null`
201
+ };
202
+ };
203
+ //# sourceMappingURL=builtInNodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtInNodes.js","names":["withNullableJSONSchemaType","versionSchema","CORE_LEXICAL_TYPE_STRING","LEXICAL_TEXT_MODE_TS","SERIALIZED_TEXT_NODE_TS","SERIALIZED_TAB_NODE_TS","SERIALIZED_LINE_BREAK_NODE_TS","SERIALIZED_PARAGRAPH_NODE_TS","textModeSchema","type","enum","tsType","textFormatSchema","description","textNodeJSONSchema","typeStringDefinitions","add","additionalProperties","properties","const","detail","format","mode","style","text","version","required","tabNodeJSONSchema","lineBreakNodeJSONSchema","paragraphNodeJSONSchema","elementNodeSchema","nodeUnionName","nodeType","textFormat","textStyle","ROOT_NODE_TS","rootNodeJSONSchema","field","root"],"sources":["../../src/types/builtInNodes.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\n\nimport { withNullableJSONSchemaType } from 'payload'\n\nimport type { JSONSchemaFn } from '../features/typesServer.js'\n\nimport { versionSchema } from './jsonSchemaHelpers.js'\n\n/**\n * Cross-cutting Lexical types shared by every element node. Inlined into\n * `payload-types.ts`. Must stay byte-for-byte in sync with the runtime twins\n * in `types/nodeTypes.ts` (`LexicalElementFormat`, `LexicalElementDirection`,\n * `SerializedLexicalElementBase`) — cross-module assignability depends on it.\n */\nexport const CORE_LEXICAL_TYPE_STRING = `/** @internal Core Lexical types — see @payloadcms/richtext-lexical. */\nexport type LexicalElementFormat = 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';\nexport type LexicalElementDirection = ('ltr' | 'rtl') | null;\n\nexport interface SerializedLexicalElementBase<TChildren> {\n children: TChildren[];\n direction: LexicalElementDirection;\n format: LexicalElementFormat;\n indent: number;\n textFormat?: number;\n textStyle?: string;\n version: number;\n}`\n\n/**\n * Built-in Lexical node schemas (always present regardless of feature config).\n * Co-located with the TS source they reference — each `JSONSchemaFn` adds\n * its helper interface(s) to `typeStringDefinitions` and returns the JSON\n * schema for that node.\n */\n\n/** MUST stay byte-for-byte in sync with `LexicalTextMode` in `types/nodeTypes.ts`. */\nconst LEXICAL_TEXT_MODE_TS = `export type LexicalTextMode = 'normal' | 'token' | 'segmented';`\n\n/** MUST stay byte-for-byte in sync with `SerializedTextNode` in `types/nodeTypes.ts`. */\nconst SERIALIZED_TEXT_NODE_TS = `export interface SerializedTextNode {\n type: 'text';\n detail: number;\n format: number;\n mode: LexicalTextMode;\n style: string;\n text: string;\n version: number;\n}`\n\n/** MUST stay byte-for-byte in sync with `SerializedTabNode` in `types/nodeTypes.ts`. */\nconst SERIALIZED_TAB_NODE_TS = `export interface SerializedTabNode {\n type: 'tab';\n detail: number;\n format: number;\n mode: LexicalTextMode;\n style: string;\n text: string;\n version: number;\n}`\n\n/** MUST stay byte-for-byte in sync with `SerializedLineBreakNode` in `types/nodeTypes.ts`. */\nconst SERIALIZED_LINE_BREAK_NODE_TS = `export interface SerializedLineBreakNode {\n type: 'linebreak';\n version: number;\n}`\n\n/** MUST stay byte-for-byte in sync with `SerializedParagraphNode` in `types/nodeTypes.ts`. */\nconst SERIALIZED_PARAGRAPH_NODE_TS = `export interface SerializedParagraphNode<TChildren> extends SerializedLexicalElementBase<TChildren> {\n type: 'paragraph';\n textFormat: number;\n textStyle: string;\n}`\n\nconst textModeSchema: JSONSchema4 = {\n type: 'string',\n enum: ['normal', 'token', 'segmented'],\n tsType: 'LexicalTextMode',\n}\n\n/** Text-node `format` bitmask (Lexical text-format flags). */\nconst textFormatSchema: JSONSchema4 = {\n type: 'integer',\n description:\n 'Active text formats as a bitmask, OR-ed together (0 = none): bold=1, italic=2, strikethrough=4, underline=8, code=16, subscript=32, superscript=64, highlight=128, lowercase=256, uppercase=512. e.g. bold + italic = 3.',\n}\n\nexport const textNodeJSONSchema: JSONSchemaFn = ({ typeStringDefinitions }) => {\n typeStringDefinitions.add(LEXICAL_TEXT_MODE_TS)\n typeStringDefinitions.add(SERIALIZED_TEXT_NODE_TS)\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'text' },\n detail: { type: 'integer' },\n format: textFormatSchema,\n mode: textModeSchema,\n style: { type: 'string' },\n text: { type: 'string' },\n version: versionSchema,\n },\n required: ['detail', 'format', 'mode', 'style', 'text', 'type', 'version'],\n tsType: 'SerializedTextNode',\n }\n}\n\nexport const tabNodeJSONSchema: JSONSchemaFn = ({ typeStringDefinitions }) => {\n typeStringDefinitions.add(LEXICAL_TEXT_MODE_TS)\n typeStringDefinitions.add(SERIALIZED_TAB_NODE_TS)\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'tab' },\n // A tab node is fully fixed: Lexical marks it unmergeable (`detail` = IS_UNMERGEABLE = 2) and\n // its text is a single tab. Any other `detail` makes `TabNode.setDetail` throw on load.\n detail: { const: 2, description: 'Always 2 (Lexical IS_UNMERGEABLE); other values throw.' },\n format: textFormatSchema,\n mode: textModeSchema,\n style: { type: 'string' },\n text: { const: '\\t', description: 'Always a single tab character.' },\n version: versionSchema,\n },\n required: ['detail', 'format', 'mode', 'style', 'text', 'type', 'version'],\n tsType: 'SerializedTabNode',\n }\n}\n\nexport const lineBreakNodeJSONSchema: JSONSchemaFn = ({ typeStringDefinitions }) => {\n typeStringDefinitions.add(SERIALIZED_LINE_BREAK_NODE_TS)\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'linebreak' },\n version: versionSchema,\n },\n required: ['type', 'version'],\n tsType: 'SerializedLineBreakNode',\n }\n}\n\nexport const paragraphNodeJSONSchema: JSONSchemaFn = ({\n elementNodeSchema,\n nodeUnionName,\n typeStringDefinitions,\n}) => {\n typeStringDefinitions.add(SERIALIZED_PARAGRAPH_NODE_TS)\n return elementNodeSchema({\n nodeType: 'paragraph',\n properties: {\n textFormat: { type: 'integer' },\n textStyle: { type: 'string' },\n },\n required: ['textFormat', 'textStyle'],\n tsType: `SerializedParagraphNode<${nodeUnionName}>`,\n })\n}\n\n/** MUST stay byte-for-byte in sync with `LexicalRichText` in `types/nodeTypes.ts`. */\nconst ROOT_NODE_TS = `/** Shape of a Lexical \\`richText\\` field. */\nexport interface LexicalRichText<TNode> {\n root: {\n children: TNode[];\n direction: LexicalElementDirection;\n format: LexicalElementFormat;\n indent: number;\n type: 'root';\n version: number;\n };\n}`\n\nexport const rootNodeJSONSchema: JSONSchemaFn = ({\n elementNodeSchema,\n field,\n nodeUnionName,\n typeStringDefinitions,\n}) => {\n typeStringDefinitions.add(ROOT_NODE_TS)\n return {\n type: withNullableJSONSchemaType('object', !!field.required),\n additionalProperties: false,\n properties: {\n root: elementNodeSchema({\n nodeType: 'root',\n }),\n },\n required: ['root'],\n tsType: field.required\n ? `LexicalRichText<${nodeUnionName}>`\n : `LexicalRichText<${nodeUnionName}> | null`,\n }\n}\n"],"mappings":"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","ignoreList":[]}