@payloadcms/richtext-lexical 4.0.0-internal.38b7f1d → 4.0.0-internal.40de3ec

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 (588) hide show
  1. package/dist/@types/assets.d.js +2 -0
  2. package/dist/@types/assets.d.js.map +1 -0
  3. package/dist/cell/rscEntry.d.ts +1 -1
  4. package/dist/cell/rscEntry.d.ts.map +1 -1
  5. package/dist/cell/rscEntry.js +5 -5
  6. package/dist/cell/rscEntry.js.map +1 -1
  7. package/dist/exports/client/Field-VYBSMSRY.js +2 -0
  8. package/dist/exports/client/Field-VYBSMSRY.js.map +7 -0
  9. package/dist/exports/client/{RelationshipComponent-5RONAYJM.js → RelationshipComponent-YCPAKOL7.js} +2 -2
  10. package/dist/exports/client/RelationshipComponent-YCPAKOL7.js.map +7 -0
  11. package/dist/exports/client/bundled.css +1 -1
  12. package/dist/exports/client/chunk-5VIL27GI.js +2 -0
  13. package/dist/exports/client/chunk-5VIL27GI.js.map +7 -0
  14. package/dist/exports/client/chunk-ESITTE3C.js +2 -0
  15. package/dist/exports/client/chunk-ESITTE3C.js.map +7 -0
  16. package/dist/exports/client/{chunk-FTT5KJ6W.js → chunk-LH634DPU.js} +1 -1
  17. package/dist/exports/client/chunk-LH634DPU.js.map +7 -0
  18. package/dist/exports/client/{chunk-BZZVLW4U.js → chunk-RJ5MAOKZ.js} +1 -1
  19. package/dist/exports/client/chunk-RJ5MAOKZ.js.map +7 -0
  20. package/dist/exports/client/chunk-UD4DQ4AK.js +2 -0
  21. package/dist/exports/client/chunk-UD4DQ4AK.js.map +7 -0
  22. package/dist/exports/client/component-PHZQBOJE.js +2 -0
  23. package/dist/exports/client/component-PHZQBOJE.js.map +7 -0
  24. package/dist/exports/client/componentInline-H24N7GUG.js +2 -0
  25. package/dist/exports/client/index.d.ts +1 -0
  26. package/dist/exports/client/index.d.ts.map +1 -1
  27. package/dist/exports/client/index.js +25 -25
  28. package/dist/exports/client/index.js.map +4 -4
  29. package/dist/exports/react/index.d.ts +1 -1
  30. package/dist/exports/react/index.d.ts.map +1 -1
  31. package/dist/exports/react/index.js.map +1 -1
  32. package/dist/exports/server/rsc.browser.d.ts +11 -0
  33. package/dist/exports/server/rsc.browser.d.ts.map +1 -0
  34. package/dist/exports/server/rsc.browser.js +10 -0
  35. package/dist/exports/server/rsc.browser.js.map +1 -0
  36. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  37. package/dist/features/blockquote/server/index.d.ts +1 -4
  38. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  39. package/dist/features/blockquote/server/index.js +2 -0
  40. package/dist/features/blockquote/server/index.js.map +1 -1
  41. package/dist/features/blockquote/server/schema.d.ts +8 -0
  42. package/dist/features/blockquote/server/schema.d.ts.map +1 -0
  43. package/dist/features/blockquote/server/schema.js +15 -0
  44. package/dist/features/blockquote/server/schema.js.map +1 -0
  45. package/dist/features/blocks/client/component/index.d.ts +3 -2
  46. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  47. package/dist/features/blocks/client/component/index.js +18 -10
  48. package/dist/features/blocks/client/component/index.js.map +1 -1
  49. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
  50. package/dist/features/blocks/client/componentInline/index.d.ts +3 -2
  51. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  52. package/dist/features/blocks/client/componentInline/index.js +17 -9
  53. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  54. package/dist/features/blocks/client/index.d.ts.map +1 -1
  55. package/dist/features/blocks/client/index.js +4 -2
  56. package/dist/features/blocks/client/index.js.map +1 -1
  57. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  58. package/dist/features/blocks/client/markdown/markdownTransformer.js +4 -4
  59. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  60. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  61. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  62. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  63. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +2 -2
  64. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  65. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  66. package/dist/features/blocks/client/plugin/index.d.ts +1 -1
  67. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  68. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  69. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
  70. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +1 -0
  71. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  72. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +1 -2
  73. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  74. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  75. package/dist/features/blocks/server/index.d.ts +1 -0
  76. package/dist/features/blocks/server/index.d.ts.map +1 -1
  77. package/dist/features/blocks/server/index.js +24 -72
  78. package/dist/features/blocks/server/index.js.map +1 -1
  79. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  80. package/dist/features/blocks/server/markdown/markdownTransformer.js +4 -4
  81. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  82. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -18
  83. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  84. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  85. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +2 -10
  86. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  87. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  88. package/dist/features/blocks/server/schema.d.ts +45 -0
  89. package/dist/features/blocks/server/schema.d.ts.map +1 -0
  90. package/dist/features/blocks/server/schema.js +139 -0
  91. package/dist/features/blocks/server/schema.js.map +1 -0
  92. package/dist/features/blocks/server/validate.d.ts +1 -2
  93. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  94. package/dist/features/blocks/server/validate.js.map +1 -1
  95. package/dist/features/converters/htmlToLexical/index.d.ts +1 -1
  96. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  97. package/dist/features/converters/htmlToLexical/index.js.map +1 -1
  98. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts +1 -1
  99. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts.map +1 -1
  100. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
  101. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts +1 -1
  102. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts.map +1 -1
  103. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  104. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts +1 -1
  105. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts.map +1 -1
  106. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
  107. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts +1 -1
  108. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts.map +1 -1
  109. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
  110. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts +1 -1
  111. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts.map +1 -1
  112. package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
  113. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts +1 -1
  114. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  115. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  116. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts +1 -1
  117. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts.map +1 -1
  118. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
  119. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts +1 -1
  120. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts.map +1 -1
  121. package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
  122. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts +1 -1
  123. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts.map +1 -1
  124. package/dist/features/converters/lexicalToHtml/async/converters/table.js +1 -1
  125. package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
  126. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts +1 -1
  127. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts.map +1 -1
  128. package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
  129. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts +1 -1
  130. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts.map +1 -1
  131. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  132. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts +1 -1
  133. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts.map +1 -1
  134. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
  135. package/dist/features/converters/lexicalToHtml/async/types.d.ts +15 -16
  136. package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -1
  137. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  138. package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
  139. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  140. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts +1 -1
  141. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts.map +1 -1
  142. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
  143. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts +1 -1
  144. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts.map +1 -1
  145. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  146. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts +1 -1
  147. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts.map +1 -1
  148. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
  149. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts +1 -1
  150. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts.map +1 -1
  151. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
  152. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts +1 -1
  153. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts.map +1 -1
  154. package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
  155. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts +1 -1
  156. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  157. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  158. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts +1 -1
  159. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts.map +1 -1
  160. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
  161. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts +1 -1
  162. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts.map +1 -1
  163. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
  164. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts +1 -1
  165. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts.map +1 -1
  166. package/dist/features/converters/lexicalToHtml/sync/converters/table.js +1 -1
  167. package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
  168. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts +1 -1
  169. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts.map +1 -1
  170. package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
  171. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts +1 -1
  172. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts.map +1 -1
  173. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  174. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts +1 -1
  175. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts.map +1 -1
  176. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
  177. package/dist/features/converters/lexicalToHtml/sync/types.d.ts +15 -16
  178. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  179. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  180. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +6 -4
  181. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  182. package/dist/features/converters/lexicalToJSX/Component/index.js +5 -4
  183. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  184. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts +1 -1
  185. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts.map +1 -1
  186. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  187. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts +1 -1
  188. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  189. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  190. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts +1 -1
  191. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts.map +1 -1
  192. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  193. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts +1 -1
  194. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts.map +1 -1
  195. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  196. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts +1 -1
  197. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts.map +1 -1
  198. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  199. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts +1 -1
  200. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  201. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  202. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts +1 -1
  203. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts.map +1 -1
  204. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  205. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts +1 -1
  206. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts.map +1 -1
  207. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
  208. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts +1 -1
  209. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts.map +1 -1
  210. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  211. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts +1 -1
  212. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts.map +1 -1
  213. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  214. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts +1 -1
  215. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  216. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  217. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts +1 -1
  218. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts.map +1 -1
  219. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
  220. package/dist/features/converters/lexicalToJSX/converter/index.d.ts +1 -1
  221. package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
  222. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  223. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +13 -15
  224. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  225. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  226. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  227. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +1 -1
  228. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
  229. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +13 -15
  230. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -1
  231. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  232. package/dist/features/converters/markdownToLexical/index.d.ts +1 -1
  233. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  234. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  235. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.css +4 -4
  236. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.css +1 -1
  237. package/dist/features/experimental_table/server/index.d.ts +1 -6
  238. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  239. package/dist/features/experimental_table/server/index.js +4 -0
  240. package/dist/features/experimental_table/server/index.js.map +1 -1
  241. package/dist/features/experimental_table/server/schema.d.ts +27 -0
  242. package/dist/features/experimental_table/server/schema.d.ts.map +1 -0
  243. package/dist/features/experimental_table/server/schema.js +107 -0
  244. package/dist/features/experimental_table/server/schema.js.map +1 -0
  245. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  246. package/dist/features/heading/server/index.d.ts +2 -4
  247. package/dist/features/heading/server/index.d.ts.map +1 -1
  248. package/dist/features/heading/server/index.js +2 -0
  249. package/dist/features/heading/server/index.js.map +1 -1
  250. package/dist/features/heading/server/schema.d.ts +10 -0
  251. package/dist/features/heading/server/schema.d.ts.map +1 -0
  252. package/dist/features/heading/server/schema.js +37 -0
  253. package/dist/features/heading/server/schema.js.map +1 -0
  254. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
  255. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  256. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  257. package/dist/features/horizontalRule/server/index.d.ts +1 -0
  258. package/dist/features/horizontalRule/server/index.d.ts.map +1 -1
  259. package/dist/features/horizontalRule/server/index.js +2 -0
  260. package/dist/features/horizontalRule/server/index.js.map +1 -1
  261. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -5
  262. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  263. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  264. package/dist/features/horizontalRule/server/schema.d.ts +7 -0
  265. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -0
  266. package/dist/features/horizontalRule/server/schema.js +25 -0
  267. package/dist/features/horizontalRule/server/schema.js.map +1 -0
  268. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  269. package/dist/features/link/client/index.d.ts.map +1 -1
  270. package/dist/features/link/client/index.js.map +1 -1
  271. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  272. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  273. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  274. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  275. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +2 -2
  276. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +1 -1
  277. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -1
  278. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
  279. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  280. package/dist/features/link/markdownTransformer.d.ts +1 -1
  281. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  282. package/dist/features/link/markdownTransformer.js.map +1 -1
  283. package/dist/features/link/markdownTransformer.spec.js.map +1 -1
  284. package/dist/features/link/nodes/AutoLinkNode.d.ts +3 -3
  285. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  286. package/dist/features/link/nodes/AutoLinkNode.js +2 -1
  287. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  288. package/dist/features/link/nodes/LinkNode.d.ts +3 -3
  289. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  290. package/dist/features/link/nodes/LinkNode.js +2 -1
  291. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  292. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  293. package/dist/features/link/server/baseFields.js.map +1 -1
  294. package/dist/features/link/server/graphQLPopulationPromise.d.ts +1 -1
  295. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  296. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
  297. package/dist/features/link/server/index.d.ts +2 -1
  298. package/dist/features/link/server/index.d.ts.map +1 -1
  299. package/dist/features/link/server/index.js +3 -0
  300. package/dist/features/link/server/index.js.map +1 -1
  301. package/dist/features/link/server/schema.d.ts +32 -0
  302. package/dist/features/link/server/schema.d.ts.map +1 -0
  303. package/dist/features/link/server/schema.js +169 -0
  304. package/dist/features/link/server/schema.js.map +1 -0
  305. package/dist/features/link/server/validate.d.ts +1 -1
  306. package/dist/features/link/server/validate.d.ts.map +1 -1
  307. package/dist/features/link/server/validate.js.map +1 -1
  308. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  309. package/dist/features/lists/checklist/server/index.js +3 -0
  310. package/dist/features/lists/checklist/server/index.js.map +1 -1
  311. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  312. package/dist/features/lists/orderedList/server/index.js +3 -0
  313. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  314. package/dist/features/lists/plugin/index.d.ts +0 -9
  315. package/dist/features/lists/plugin/index.d.ts.map +1 -1
  316. package/dist/features/lists/plugin/index.js.map +1 -1
  317. package/dist/features/lists/shared/markdown.d.ts.map +1 -1
  318. package/dist/features/lists/shared/schema.d.ts +18 -0
  319. package/dist/features/lists/shared/schema.d.ts.map +1 -0
  320. package/dist/features/lists/shared/schema.js +62 -0
  321. package/dist/features/lists/shared/schema.js.map +1 -0
  322. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  323. package/dist/features/lists/unorderedList/server/index.js +3 -0
  324. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  325. package/dist/features/relationship/client/components/RelationshipComponent.d.ts +1 -1
  326. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  327. package/dist/features/relationship/client/components/RelationshipComponent.js +2 -2
  328. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  329. package/dist/features/relationship/client/components/index.css +2 -2
  330. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  331. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  332. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  333. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  334. package/dist/features/relationship/client/plugins/index.d.ts +1 -1
  335. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  336. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  337. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  338. package/dist/features/relationship/client/utils/useEnabledRelationships.js +9 -40
  339. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  340. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +1 -1
  341. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  342. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  343. package/dist/features/relationship/server/index.d.ts +1 -0
  344. package/dist/features/relationship/server/index.d.ts.map +1 -1
  345. package/dist/features/relationship/server/index.js +2 -0
  346. package/dist/features/relationship/server/index.js.map +1 -1
  347. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -10
  348. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  349. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  350. package/dist/features/relationship/server/schema.d.ts +28 -0
  351. package/dist/features/relationship/server/schema.d.ts.map +1 -0
  352. package/dist/features/relationship/server/schema.js +80 -0
  353. package/dist/features/relationship/server/schema.js.map +1 -0
  354. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +23 -0
  355. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -0
  356. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +34 -0
  357. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -0
  358. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
  359. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
  360. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
  361. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  362. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  363. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +1 -2
  364. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  365. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +4 -4
  366. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  367. package/dist/features/toolbars/types.d.ts +1 -1
  368. package/dist/features/toolbars/types.d.ts.map +1 -1
  369. package/dist/features/toolbars/types.js.map +1 -1
  370. package/dist/features/typesClient.d.ts +1 -1
  371. package/dist/features/typesClient.d.ts.map +1 -1
  372. package/dist/features/typesClient.js.map +1 -1
  373. package/dist/features/typesServer.d.ts +18 -41
  374. package/dist/features/typesServer.d.ts.map +1 -1
  375. package/dist/features/typesServer.js.map +1 -1
  376. package/dist/features/upload/client/component/index.css +13 -17
  377. package/dist/features/upload/client/component/index.d.ts +1 -1
  378. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  379. package/dist/features/upload/client/component/index.js +4 -4
  380. package/dist/features/upload/client/component/index.js.map +1 -1
  381. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  382. package/dist/features/upload/client/nodes/UploadNode.d.ts +1 -1
  383. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  384. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  385. package/dist/features/upload/client/plugin/index.d.ts +1 -1
  386. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  387. package/dist/features/upload/client/plugin/index.js.map +1 -1
  388. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +1 -1
  389. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  390. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  391. package/dist/features/upload/server/index.d.ts +1 -0
  392. package/dist/features/upload/server/index.d.ts.map +1 -1
  393. package/dist/features/upload/server/index.js +3 -2
  394. package/dist/features/upload/server/index.js.map +1 -1
  395. package/dist/features/upload/server/nodes/UploadNode.d.ts +1 -55
  396. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  397. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  398. package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -1
  399. package/dist/features/upload/server/nodes/conversions.js.map +1 -1
  400. package/dist/features/upload/server/schema.d.ts +52 -0
  401. package/dist/features/upload/server/schema.d.ts.map +1 -0
  402. package/dist/features/upload/server/schema.js +129 -0
  403. package/dist/features/upload/server/schema.js.map +1 -0
  404. package/dist/features/upload/server/validate.d.ts +1 -1
  405. package/dist/features/upload/server/validate.d.ts.map +1 -1
  406. package/dist/features/upload/server/validate.js.map +1 -1
  407. package/dist/field/Diff/converters/link.d.ts +1 -1
  408. package/dist/field/Diff/converters/link.d.ts.map +1 -1
  409. package/dist/field/Diff/converters/link.js.map +1 -1
  410. package/dist/field/Diff/converters/listitem/index.css +44 -8
  411. package/dist/field/Diff/converters/listitem/index.d.ts +1 -1
  412. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  413. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  414. package/dist/field/Diff/converters/relationship/index.css +76 -36
  415. package/dist/field/Diff/converters/relationship/index.d.ts +1 -1
  416. package/dist/field/Diff/converters/relationship/index.d.ts.map +1 -1
  417. package/dist/field/Diff/converters/relationship/index.js +10 -28
  418. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  419. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  420. package/dist/field/Diff/converters/upload/index.css +106 -43
  421. package/dist/field/Diff/converters/upload/index.d.ts +1 -1
  422. package/dist/field/Diff/converters/upload/index.d.ts.map +1 -1
  423. package/dist/field/Diff/converters/upload/index.js +6 -2
  424. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  425. package/dist/field/Diff/index.css +116 -61
  426. package/dist/field/Diff/index.js.map +1 -1
  427. package/dist/field/Field.d.ts +1 -1
  428. package/dist/field/Field.d.ts.map +1 -1
  429. package/dist/field/Field.js +3 -4
  430. package/dist/field/Field.js.map +1 -1
  431. package/dist/field/RenderLexical/index.d.ts +2 -2
  432. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  433. package/dist/field/RenderLexical/index.js.map +1 -1
  434. package/dist/field/RichTextViewProvider.d.ts +1 -1
  435. package/dist/field/RichTextViewProvider.d.ts.map +1 -1
  436. package/dist/field/RichTextViewProvider.js.map +1 -1
  437. package/dist/field/bundled.css +1 -1
  438. package/dist/field/clientEntry.d.ts +29 -0
  439. package/dist/field/clientEntry.d.ts.map +1 -0
  440. package/dist/field/clientEntry.js +86 -0
  441. package/dist/field/clientEntry.js.map +1 -0
  442. package/dist/field/index.css +9 -12
  443. package/dist/field/index.d.ts +1 -1
  444. package/dist/field/index.d.ts.map +1 -1
  445. package/dist/field/index.js +1 -1
  446. package/dist/field/index.js.map +1 -1
  447. package/dist/field/rscEntry.d.ts +1 -1
  448. package/dist/field/rscEntry.d.ts.map +1 -1
  449. package/dist/field/rscEntry.js +2 -0
  450. package/dist/field/rscEntry.js.map +1 -1
  451. package/dist/hooks.d.ts +6 -0
  452. package/dist/hooks.d.ts.map +1 -0
  453. package/dist/hooks.js +548 -0
  454. package/dist/hooks.js.map +1 -0
  455. package/dist/index.d.ts +11 -8
  456. package/dist/index.d.ts.map +1 -1
  457. package/dist/index.js +56 -622
  458. package/dist/index.js.map +1 -1
  459. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  460. package/dist/lexical/LexicalEditor.js +36 -2
  461. package/dist/lexical/LexicalEditor.js.map +1 -1
  462. package/dist/lexical/LexicalProvider.d.ts +1 -1
  463. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  464. package/dist/lexical/LexicalProvider.js +22 -7
  465. package/dist/lexical/LexicalProvider.js.map +1 -1
  466. package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  467. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  468. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  469. package/dist/lexical/config/client/loader.d.ts +1 -1
  470. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  471. package/dist/lexical/config/client/loader.js +5 -1
  472. package/dist/lexical/config/client/loader.js.map +1 -1
  473. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  474. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  475. package/dist/lexical/config/client/sanitize.js.map +1 -1
  476. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  477. package/dist/lexical/config/server/sanitize.js +9 -11
  478. package/dist/lexical/config/server/sanitize.js.map +1 -1
  479. package/dist/lexical/config/types.d.ts +1 -1
  480. package/dist/lexical/config/types.d.ts.map +1 -1
  481. package/dist/lexical/config/types.js.map +1 -1
  482. package/dist/lexical/nodes/index.d.ts +1 -1
  483. package/dist/lexical/nodes/index.d.ts.map +1 -1
  484. package/dist/lexical/nodes/index.js.map +1 -1
  485. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +1 -1
  486. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  487. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  488. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  489. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  490. package/dist/lexical/theme/EditorTheme.css +4 -4
  491. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  492. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  493. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  494. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  495. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
  496. package/dist/types/builtInNodes.d.ts +14 -0
  497. package/dist/types/builtInNodes.d.ts.map +1 -0
  498. package/dist/types/builtInNodes.js +203 -0
  499. package/dist/types/builtInNodes.js.map +1 -0
  500. package/dist/{types.d.ts → types/index.d.ts} +25 -26
  501. package/dist/types/index.d.ts.map +1 -0
  502. package/dist/types/index.js +2 -0
  503. package/dist/types/index.js.map +1 -0
  504. package/dist/types/jsonSchemaHelpers.d.ts +30 -0
  505. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -0
  506. package/dist/types/jsonSchemaHelpers.js +58 -0
  507. package/dist/types/jsonSchemaHelpers.js.map +1 -0
  508. package/dist/types/nodeTypes.d.ts +128 -0
  509. package/dist/types/nodeTypes.d.ts.map +1 -0
  510. package/dist/types/nodeTypes.js +6 -0
  511. package/dist/types/nodeTypes.js.map +1 -0
  512. package/dist/types/schema.d.ts +6 -0
  513. package/dist/types/schema.d.ts.map +1 -0
  514. package/dist/types/schema.js +83 -0
  515. package/dist/types/schema.js.map +1 -0
  516. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  517. package/dist/utilities/applyBaseFilterToFields.js +1 -2
  518. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  519. package/dist/utilities/buildEditorState.d.ts +18 -4
  520. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  521. package/dist/utilities/buildEditorState.js +8 -0
  522. package/dist/utilities/buildEditorState.js.map +1 -1
  523. package/dist/utilities/buildInitialState.d.ts +2 -1
  524. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  525. package/dist/utilities/buildInitialState.js.map +1 -1
  526. package/dist/utilities/createClientFeature.d.ts +1 -1
  527. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  528. package/dist/utilities/createClientFeature.js.map +1 -1
  529. package/dist/utilities/editorConfigFactory.d.ts +1 -1
  530. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  531. package/dist/utilities/editorConfigFactory.js.map +1 -1
  532. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  533. package/dist/utilities/fieldsDrawer/Drawer.js +19 -10
  534. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  535. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -1
  536. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  537. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -7
  538. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  539. package/dist/utilities/fieldsDrawer/index.css +12 -0
  540. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +29 -0
  541. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -0
  542. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js +97 -0
  543. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -0
  544. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  545. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  546. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
  547. package/dist/utilities/generateImportMap.d.ts +1 -1
  548. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  549. package/dist/utilities/generateImportMap.js +7 -3
  550. package/dist/utilities/generateImportMap.js.map +1 -1
  551. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  552. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  553. package/dist/utilities/initLexicalFeatures.d.ts +1 -1
  554. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
  555. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  556. package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
  557. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  558. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +1 -1
  559. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  560. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  561. package/dist/validate/index.d.ts.map +1 -1
  562. package/package.json +14 -13
  563. package/dist/exports/client/Field-PJW7KUJG.js +0 -2
  564. package/dist/exports/client/Field-PJW7KUJG.js.map +0 -7
  565. package/dist/exports/client/RelationshipComponent-5RONAYJM.js.map +0 -7
  566. package/dist/exports/client/chunk-44G3K3W7.js +0 -2
  567. package/dist/exports/client/chunk-44G3K3W7.js.map +0 -7
  568. package/dist/exports/client/chunk-BZZVLW4U.js.map +0 -7
  569. package/dist/exports/client/chunk-FTT5KJ6W.js.map +0 -7
  570. package/dist/exports/client/chunk-INBEEENE.js +0 -2
  571. package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
  572. package/dist/exports/client/chunk-QJ5EETIB.js +0 -2
  573. package/dist/exports/client/chunk-QJ5EETIB.js.map +0 -7
  574. package/dist/exports/client/component-53Y3RYR5.js +0 -2
  575. package/dist/exports/client/component-53Y3RYR5.js.map +0 -7
  576. package/dist/exports/client/componentInline-PM4PLNUK.js +0 -2
  577. package/dist/features/link/nodes/types.d.ts +0 -27
  578. package/dist/features/link/nodes/types.d.ts.map +0 -1
  579. package/dist/features/link/nodes/types.js +0 -2
  580. package/dist/features/link/nodes/types.js.map +0 -1
  581. package/dist/nodeTypes.d.ts +0 -74
  582. package/dist/nodeTypes.d.ts.map +0 -1
  583. package/dist/nodeTypes.js +0 -5
  584. package/dist/nodeTypes.js.map +0 -1
  585. package/dist/types.d.ts.map +0 -1
  586. package/dist/types.js +0 -2
  587. package/dist/types.js.map +0 -1
  588. /package/dist/exports/client/{componentInline-PM4PLNUK.js.map → componentInline-H24N7GUG.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"markdownTransformer.js","names":["$parseSerializedNode","getEnabledNodesFromServerNodes","extractPropsFromJSXPropsString","propsToJSXString","getLexicalToMarkdown","getMarkdownToLexical","$createServerBlockNode","$isServerBlockNode","ServerBlockNode","$createServerInlineBlockNode","$isServerInlineBlockNode","ServerInlineBlockNode","linesFromStartToContentAndPropsString","createTagRegexes","tagName","escapedTagName","replace","openingTag","closingTag","optionalWhitespace","mandatoryClosingBracket","startPattern","endPattern","regExpEnd","RegExp","regExpStart","getBlockMarkdownTransformers","blocks","inlineBlocks","length","transformers","block","transformer","getMarkdownTransformerForBlock","concat","isInlineBlock","jsx","regex","slug","toReturn","push","allNodes","allTransformers","type","dependencies","export","node","getFields","blockType","toLowerCase","nodeFields","lexicalToMarkdown","nodes","exportResult","fields","hasProps","props","Object","keys","children","getEndIndex","match","endlineLastCharIndex","isEndOptional","lines","getTextContent","regexpEndRegex","startLineIndex","startMatch","trimChildren","importRegExp","customStartRegex","regExp","content","propsString","index","import","markdownToLexical","blockFields","closeMatch","htmlToLexical","openMatch","inlineBlockNode","sanitizedChildren","includes","child","split","sanitizedChild","doNotTrimChildren","handleImportAfterStartMatch","customEndRegex","undefined","rootNode","optional","afterEndLine","beforeStartLine","unsanitizedContent","endLineIndex","endsWith","slice","startsWith","prevNodes","nextNodes","markdown","root","firstPrevNode","append","lastChild","getChildren","linesInBetween","line","childrenString","join","trim"],"sources":["../../../../../src/features/blocks/server/markdown/markdownTransformer.ts"],"sourcesContent":["import type { ElementNode, SerializedLexicalNode } from 'lexical'\nimport type { Block } from 'payload'\n\nimport { $parseSerializedNode } from 'lexical'\n\nimport type { NodeWithHooks } from '../../../typesServer.js'\n\nimport { getEnabledNodesFromServerNodes } from '../../../../lexical/nodes/index.js'\nimport {\n type MultilineElementTransformer,\n type TextMatchTransformer,\n type Transformer,\n} from '../../../../packages/@lexical/markdown/index.js'\nimport { extractPropsFromJSXPropsString } from '../../../../utilities/jsx/extractPropsFromJSXPropsString.js'\nimport { propsToJSXString } from '../../../../utilities/jsx/jsx.js'\nimport { getLexicalToMarkdown } from '../../client/markdown/getLexicalToMarkdown.js'\nimport { getMarkdownToLexical } from '../../client/markdown/getMarkdownToLexical.js'\nimport { $createServerBlockNode, $isServerBlockNode, ServerBlockNode } from '../nodes/BlocksNode.js'\nimport {\n $createServerInlineBlockNode,\n $isServerInlineBlockNode,\n ServerInlineBlockNode,\n} from '../nodes/InlineBlocksNode.js'\nimport { linesFromStartToContentAndPropsString } from './linesFromMatchToContentAndPropsString.js'\n\nexport function createTagRegexes(tagName: string) {\n const escapedTagName = tagName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n // Regex components\n const openingTag = `<${escapedTagName}`\n const closingTag = `</${escapedTagName}`\n const optionalWhitespace = `\\\\s*`\n const mandatoryClosingBracket = `>`\n\n // Assembled regex patterns\n const startPattern = `${openingTag}(?=\\\\s|>|$)` // Only match the tag name\n const endPattern = `${closingTag}${optionalWhitespace}${mandatoryClosingBracket}`\n\n return {\n regExpEnd: new RegExp(endPattern, 'i'),\n regExpStart: new RegExp(startPattern, 'i'),\n }\n}\nexport const getBlockMarkdownTransformers = ({\n blocks,\n inlineBlocks,\n}: {\n blocks: Block[]\n inlineBlocks: Block[]\n}): ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n}) => MultilineElementTransformer | TextMatchTransformer)[] => {\n if (!blocks?.length && !inlineBlocks?.length) {\n return []\n }\n\n let transformers: ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer)[] = []\n\n if (blocks?.length) {\n for (const block of blocks) {\n const transformer = getMarkdownTransformerForBlock(block, false)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n if (inlineBlocks?.length) {\n for (const block of inlineBlocks) {\n const transformer = getMarkdownTransformerForBlock(block, true)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n return transformers\n}\n\nfunction getMarkdownTransformerForBlock(\n block: Block,\n isInlineBlock: boolean,\n): Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n> | null {\n if (!block.jsx) {\n return null\n }\n\n const regex = createTagRegexes(block.slug)\n const toReturn: Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n > = []\n\n if (isInlineBlock) {\n toReturn.push(({ allNodes, allTransformers }) => ({\n type: 'text-match',\n dependencies: [ServerInlineBlockNode],\n export: (node) => {\n if (!$isServerInlineBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>${exportResult.children}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n getEndIndex: (node, match) => {\n const { endlineLastCharIndex } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: match,\n trimChildren: false,\n })\n\n return endlineLastCharIndex\n },\n importRegExp: block.jsx?.customStartRegex ?? regex.regExpStart,\n regExp: /___ignoreignoreignore___/g,\n replace(node, match) {\n const { content, propsString } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: {\n ...match,\n index: 0,\n },\n trimChildren: false,\n })\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return\n }\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: match,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return\n }\n\n const inlineBlockNode = $createServerInlineBlockNode({\n blockType: block.slug,\n ...(blockFields as any),\n })\n\n node.replace(inlineBlockNode)\n },\n }))\n\n return toReturn\n }\n\n toReturn.push(({ allNodes, allTransformers }) => ({\n dependencies: [ServerBlockNode],\n export: (node) => {\n if (!$isServerBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n const children = exportResult.children\n let sanitizedChildren = ''\n\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (children.includes('\\n')) {\n for (const child of children.split('\\n')) {\n let sanitizedChild = ''\n if (!block?.jsx?.doNotTrimChildren && child !== '') {\n sanitizedChild = ' '\n }\n sanitizedChild += child + '\\n'\n\n sanitizedChildren += sanitizedChild\n }\n } else {\n sanitizedChildren = (block?.jsx?.doNotTrimChildren ? '' : ' ') + children + '\\n'\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>\\n${sanitizedChildren}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n handleImportAfterStartMatch: block.jsx?.customEndRegex\n ? undefined\n : ({ lines, rootNode, startLineIndex, startMatch, transformer }) => {\n const regexpEndRegex: RegExp | undefined =\n typeof transformer.regExpEnd === 'object' && 'regExp' in transformer.regExpEnd\n ? transformer.regExpEnd.regExp\n : transformer.regExpEnd\n\n const isEndOptional =\n transformer.regExpEnd &&\n typeof transformer.regExpEnd === 'object' &&\n 'optional' in transformer.regExpEnd\n ? transformer.regExpEnd.optional\n : !transformer.regExpEnd\n\n const {\n afterEndLine,\n beforeStartLine,\n content: unsanitizedContent,\n endLineIndex,\n propsString,\n } = linesFromStartToContentAndPropsString({\n isEndOptional,\n lines,\n regexpEndRegex,\n startLineIndex,\n startMatch,\n trimChildren: false,\n })\n\n let content = ''\n\n if (block?.jsx?.doNotTrimChildren) {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n } else {\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (unsanitizedContent.includes('\\n')) {\n const split = unsanitizedContent.split('\\n')\n let index = 0\n for (const child of split) {\n index++\n\n if (child.startsWith(' ')) {\n content += child.slice(2)\n } else {\n // If one child is misaligned, skip aligning completely, unless it's just empty\n if (child === '') {\n content += child\n } else {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n break\n }\n }\n\n content += index === split.length ? '' : '\\n'\n }\n } else {\n content =\n (!unsanitizedContent.startsWith(' ')\n ? unsanitizedContent\n : unsanitizedContent.slice(2)) + '\\n'\n }\n }\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return [false, startLineIndex]\n }\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: startMatch,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return [false, startLineIndex]\n }\n\n const node = $createServerBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n // Now handle beforeStartLine and afterEndLine. If those are not empty, we need to add them as text nodes before and after the block node.\n // However, those themselves can contain other markdown matches, so we need to parse them as well.\n // Example where this is needed: \"Hello <InlineCode>inline code</InlineCode> test.\"\n let prevNodes: null | SerializedLexicalNode[] = null\n let nextNodes: null | SerializedLexicalNode[] = null\n // TODO: Might not need this prevNodes and nextNodes handling if inline nodes are handled by textmatch transformers\n\n if (beforeStartLine?.length) {\n prevNodes = markdownToLexical({ markdown: beforeStartLine })?.root?.children ?? []\n\n const firstPrevNode = prevNodes?.[0]\n if (firstPrevNode) {\n rootNode.append($parseSerializedNode(firstPrevNode))\n }\n }\n\n rootNode.append(node)\n\n if (afterEndLine?.length) {\n nextNodes = markdownToLexical({ markdown: afterEndLine })?.root?.children\n const lastChild = rootNode.getChildren()[rootNode.getChildren().length - 1]\n\n const children = ($parseSerializedNode(nextNodes[0]!) as ElementNode)?.getChildren()\n if (children?.length) {\n for (const child of children) {\n ;(lastChild as ElementNode).append(child)\n }\n }\n }\n }\n\n return [true, endLineIndex]\n },\n regExpEnd: block.jsx?.customEndRegex ?? regex.regExpEnd,\n regExpStart: block.jsx?.customStartRegex ?? regex.regExpStart,\n // This replace is ONLY run for ``` code blocks (so any blocks with custom start and end regexes). For others, we use the special JSX handling above:\n type: 'multiline-element',\n replace: (rootNode, children, openMatch, closeMatch, linesInBetween) => {\n if (block?.jsx?.import) {\n if (!linesInBetween) {\n // convert children to linesInBetween\n let line = ''\n if (children) {\n for (const child of children) {\n line += child.getTextContent()\n }\n }\n\n linesInBetween = [line]\n }\n\n let childrenString = ''\n if (block?.jsx?.doNotTrimChildren) {\n childrenString = linesInBetween.join('\\n')\n } else {\n childrenString = linesInBetween.join('\\n').trim()\n }\n\n const propsString = openMatch[1]?.trim()\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: childrenString,\n closeMatch: closeMatch as RegExpMatchArray,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: openMatch as RegExpMatchArray,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return false\n }\n\n const node = $createServerBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n rootNode.append(node)\n }\n\n return\n }\n return false // Run next transformer\n },\n }))\n\n return toReturn\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"markdownTransformer.js","names":["$parseSerializedNode","getEnabledNodesFromServerNodes","extractPropsFromJSXPropsString","propsToJSXString","getLexicalToMarkdown","getMarkdownToLexical","$createServerBlockNode","$isServerBlockNode","ServerBlockNode","$createServerInlineBlockNode","$isServerInlineBlockNode","ServerInlineBlockNode","linesFromStartToContentAndPropsString","createTagRegexes","tagName","escapedTagName","replace","openingTag","closingTag","optionalWhitespace","mandatoryClosingBracket","startPattern","endPattern","regExpEnd","RegExp","regExpStart","getBlockMarkdownTransformers","blocks","inlineBlocks","length","transformers","block","transformer","getMarkdownTransformerForBlock","concat","isInlineBlock","jsx","regex","slug","toReturn","push","allNodes","allTransformers","type","dependencies","export","node","getFields","blockType","toLowerCase","nodeFields","lexicalToMarkdown","nodes","exportResult","fields","hasProps","props","Object","keys","children","getEndIndex","match","endlineLastCharIndex","isEndOptional","lines","getTextContent","regexpEndRegex","startLineIndex","startMatch","trimChildren","importRegExp","customStartRegex","regExp","content","propsString","index","import","markdownToLexical","blockFields","closeMatch","htmlToLexical","openMatch","inlineBlockNode","sanitizedChildren","includes","child","split","sanitizedChild","doNotTrimChildren","handleImportAfterStartMatch","customEndRegex","undefined","rootNode","optional","afterEndLine","beforeStartLine","unsanitizedContent","endLineIndex","endsWith","slice","startsWith","prevNodes","nextNodes","markdown","root","firstPrevNode","append","lastChild","getChildren","linesInBetween","line","childrenString","join","trim"],"sources":["../../../../../src/features/blocks/server/markdown/markdownTransformer.ts"],"sourcesContent":["import type { ElementNode, SerializedLexicalNode } from 'lexical'\nimport type { Block } from 'payload'\n\nimport { $parseSerializedNode } from 'lexical'\n\nimport type { NodeWithHooks } from '../../../typesServer.js'\n\nimport { getEnabledNodesFromServerNodes } from '../../../../lexical/nodes/index.js'\nimport {\n type MultilineElementTransformer,\n type TextMatchTransformer,\n type Transformer,\n} from '../../../../packages/@lexical/markdown/index.js'\nimport { extractPropsFromJSXPropsString } from '../../../../utilities/jsx/extractPropsFromJSXPropsString.js'\nimport { propsToJSXString } from '../../../../utilities/jsx/jsx.js'\nimport { getLexicalToMarkdown } from '../../client/markdown/getLexicalToMarkdown.js'\nimport { getMarkdownToLexical } from '../../client/markdown/getMarkdownToLexical.js'\nimport { $createServerBlockNode, $isServerBlockNode, ServerBlockNode } from '../nodes/BlocksNode.js'\nimport {\n $createServerInlineBlockNode,\n $isServerInlineBlockNode,\n ServerInlineBlockNode,\n} from '../nodes/InlineBlocksNode.js'\nimport { linesFromStartToContentAndPropsString } from './linesFromMatchToContentAndPropsString.js'\n\nexport function createTagRegexes(tagName: string) {\n const escapedTagName = tagName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n // Regex components\n const openingTag = `<${escapedTagName}`\n const closingTag = `</${escapedTagName}`\n const optionalWhitespace = `\\\\s*`\n const mandatoryClosingBracket = `>`\n\n // Assembled regex patterns\n const startPattern = `${openingTag}(?=\\\\s|>|$)` // Only match the tag name\n const endPattern = `${closingTag}${optionalWhitespace}${mandatoryClosingBracket}`\n\n return {\n regExpEnd: new RegExp(endPattern, 'i'),\n regExpStart: new RegExp(startPattern, 'i'),\n }\n}\nexport const getBlockMarkdownTransformers = ({\n blocks,\n inlineBlocks,\n}: {\n blocks: Block[]\n inlineBlocks: Block[]\n}): ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n}) => MultilineElementTransformer | TextMatchTransformer)[] => {\n if (!blocks?.length && !inlineBlocks?.length) {\n return []\n }\n\n let transformers: ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer)[] = []\n\n if (blocks?.length) {\n for (const block of blocks) {\n const transformer = getMarkdownTransformerForBlock(block, false)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n if (inlineBlocks?.length) {\n for (const block of inlineBlocks) {\n const transformer = getMarkdownTransformerForBlock(block, true)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n return transformers\n}\n\nfunction getMarkdownTransformerForBlock(\n block: Block,\n isInlineBlock: boolean,\n): Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n> | null {\n if (!block.jsx) {\n return null\n }\n\n const regex = createTagRegexes(block.slug)\n const toReturn: Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n > = []\n\n if (isInlineBlock) {\n toReturn.push(({ allNodes, allTransformers }) => ({\n type: 'text-match',\n dependencies: [ServerInlineBlockNode],\n export: (node) => {\n if (!$isServerInlineBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>${exportResult.children}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n getEndIndex: (node, match) => {\n const { endlineLastCharIndex } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: match,\n trimChildren: false,\n })\n\n return endlineLastCharIndex\n },\n importRegExp: block.jsx?.customStartRegex ?? regex.regExpStart,\n regExp: /___ignoreignoreignore___/g,\n replace(node, match) {\n const { content, propsString } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: {\n ...match,\n index: 0,\n },\n trimChildren: false,\n })\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return\n }\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: match,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return\n }\n\n const inlineBlockNode = $createServerInlineBlockNode({\n blockType: block.slug,\n ...(blockFields as any),\n })\n\n node.replace(inlineBlockNode)\n },\n }))\n\n return toReturn\n }\n\n toReturn.push(({ allNodes, allTransformers }) => ({\n dependencies: [ServerBlockNode],\n export: (node) => {\n if (!$isServerBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n const children = exportResult.children\n let sanitizedChildren = ''\n\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (children.includes('\\n')) {\n for (const child of children.split('\\n')) {\n let sanitizedChild = ''\n if (!block?.jsx?.doNotTrimChildren && child !== '') {\n sanitizedChild = ' '\n }\n sanitizedChild += child + '\\n'\n\n sanitizedChildren += sanitizedChild\n }\n } else {\n sanitizedChildren = (block?.jsx?.doNotTrimChildren ? '' : ' ') + children + '\\n'\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>\\n${sanitizedChildren}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n handleImportAfterStartMatch: block.jsx?.customEndRegex\n ? undefined\n : ({ lines, rootNode, startLineIndex, startMatch, transformer }) => {\n const regexpEndRegex: RegExp | undefined =\n typeof transformer.regExpEnd === 'object' && 'regExp' in transformer.regExpEnd\n ? transformer.regExpEnd.regExp\n : transformer.regExpEnd\n\n const isEndOptional =\n transformer.regExpEnd &&\n typeof transformer.regExpEnd === 'object' &&\n 'optional' in transformer.regExpEnd\n ? transformer.regExpEnd.optional\n : !transformer.regExpEnd\n\n const {\n afterEndLine,\n beforeStartLine,\n content: unsanitizedContent,\n endLineIndex,\n propsString,\n } = linesFromStartToContentAndPropsString({\n isEndOptional,\n lines,\n regexpEndRegex,\n startLineIndex,\n startMatch,\n trimChildren: false,\n })\n\n let content = ''\n\n if (block?.jsx?.doNotTrimChildren) {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n } else {\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (unsanitizedContent.includes('\\n')) {\n const split = unsanitizedContent.split('\\n')\n let index = 0\n for (const child of split) {\n index++\n\n if (child.startsWith(' ')) {\n content += child.slice(2)\n } else {\n // If one child is misaligned, skip aligning completely, unless it's just empty\n if (child === '') {\n content += child\n } else {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n break\n }\n }\n\n content += index === split.length ? '' : '\\n'\n }\n } else {\n content =\n (!unsanitizedContent.startsWith(' ')\n ? unsanitizedContent\n : unsanitizedContent.slice(2)) + '\\n'\n }\n }\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return [false, startLineIndex]\n }\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: startMatch,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return [false, startLineIndex]\n }\n\n const node = $createServerBlockNode({\n ...blockFields,\n blockType: block.slug,\n })\n\n if (node) {\n // Now handle beforeStartLine and afterEndLine. If those are not empty, we need to add them as text nodes before and after the block node.\n // However, those themselves can contain other markdown matches, so we need to parse them as well.\n // Example where this is needed: \"Hello <InlineCode>inline code</InlineCode> test.\"\n let prevNodes: null | SerializedLexicalNode[] = null\n let nextNodes: null | SerializedLexicalNode[] = null\n // TODO: Might not need this prevNodes and nextNodes handling if inline nodes are handled by textmatch transformers\n\n if (beforeStartLine?.length) {\n prevNodes = markdownToLexical({ markdown: beforeStartLine })?.root?.children ?? []\n\n const firstPrevNode = prevNodes?.[0]\n if (firstPrevNode) {\n rootNode.append($parseSerializedNode(firstPrevNode))\n }\n }\n\n rootNode.append(node)\n\n if (afterEndLine?.length) {\n nextNodes = markdownToLexical({ markdown: afterEndLine })?.root?.children\n const lastChild = rootNode.getChildren()[rootNode.getChildren().length - 1]\n\n const children = ($parseSerializedNode(nextNodes[0]!) as ElementNode)?.getChildren()\n if (children?.length) {\n for (const child of children) {\n ;(lastChild as ElementNode).append(child)\n }\n }\n }\n }\n\n return [true, endLineIndex]\n },\n regExpEnd: block.jsx?.customEndRegex ?? regex.regExpEnd,\n regExpStart: block.jsx?.customStartRegex ?? regex.regExpStart,\n // This replace is ONLY run for ``` code blocks (so any blocks with custom start and end regexes). For others, we use the special JSX handling above:\n type: 'multiline-element',\n replace: (rootNode, children, openMatch, closeMatch, linesInBetween) => {\n if (block?.jsx?.import) {\n if (!linesInBetween) {\n // convert children to linesInBetween\n let line = ''\n if (children) {\n for (const child of children) {\n line += child.getTextContent()\n }\n }\n\n linesInBetween = [line]\n }\n\n let childrenString = ''\n if (block?.jsx?.doNotTrimChildren) {\n childrenString = linesInBetween.join('\\n')\n } else {\n childrenString = linesInBetween.join('\\n').trim()\n }\n\n const propsString = openMatch[1]?.trim()\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: childrenString,\n closeMatch: closeMatch as RegExpMatchArray,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: openMatch as RegExpMatchArray,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return false\n }\n\n const node = $createServerBlockNode({\n ...blockFields,\n blockType: block.slug,\n })\n\n if (node) {\n rootNode.append(node)\n }\n\n return\n }\n return false // Run next transformer\n },\n }))\n\n return toReturn\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,23 +1,7 @@
1
- import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js';
2
- import type { JsonObject } from 'payload';
3
1
  import type { JSX } from 'react';
4
2
  import { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js';
5
3
  import { type DOMConversionMap, type DOMExportOutput, type EditorConfig, type ElementFormatType, type LexicalEditor, type LexicalNode, type NodeKey } from 'lexical';
6
- import type { StronglyTypedLeafNode } from '../../../../nodeTypes.js';
7
- type BaseBlockFields<TBlockFields extends JsonObject = JsonObject> = {
8
- /** Block form data */
9
- blockName: string;
10
- blockType: string;
11
- } & TBlockFields;
12
- export type BlockFields<TBlockFields extends JsonObject = JsonObject> = {
13
- id: string;
14
- } & BaseBlockFields<TBlockFields>;
15
- export type BlockFieldsOptionalID<TBlockFields extends JsonObject = JsonObject> = {
16
- id?: string;
17
- } & BaseBlockFields<TBlockFields>;
18
- export type SerializedBlockNode<TBlockFields extends JsonObject = JsonObject> = {
19
- fields: BlockFields<TBlockFields>;
20
- } & StronglyTypedLeafNode<SerializedDecoratorBlockNode, 'block'>;
4
+ import type { BlockFields, BlockFieldsOptionalID, SerializedBlockNode } from '../schema.js';
21
5
  export declare class ServerBlockNode extends DecoratorBlockNode {
22
6
  __cacheBuster: number;
23
7
  __fields: BlockFields;
@@ -43,5 +27,4 @@ export declare class ServerBlockNode extends DecoratorBlockNode {
43
27
  }
44
28
  export declare function $createServerBlockNode(fields: BlockFieldsOptionalID): ServerBlockNode;
45
29
  export declare function $isServerBlockNode(node: LexicalNode | null | ServerBlockNode | undefined): node is ServerBlockNode;
46
- export {};
47
30
  //# sourceMappingURL=BlocksNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAGhF,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAErE,KAAK,eAAe,CAAC,YAAY,SAAS,UAAU,GAAG,UAAU,IAAI;IACnE,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,YAAY,CAAA;AAEhB,MAAM,MAAM,WAAW,CAAC,YAAY,SAAS,UAAU,GAAG,UAAU,IAAI;IACtE,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;AAEjC,MAAM,MAAM,qBAAqB,CAAC,YAAY,SAAS,UAAU,GAAG,UAAU,IAAI;IAChF,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;AAEjC,MAAM,MAAM,mBAAmB,CAAC,YAAY,SAAS,UAAU,GAAG,UAAU,IAAI;IAC9E,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;CAClC,GAAG,qBAAqB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAA;AAEhE,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;gBAET,EACV,WAAW,EACX,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;WAMe,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe;WAS7C,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI;WAIpD,UAAU,CAAC,cAAc,EAAE,mBAAmB,GAAG,eAAe;IAgBhF,MAAM,CAAC,QAAQ,IAAI,KAAK;IAIf,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW;IAM7C,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO;IAIlE,SAAS,IAAI,eAAe;IAQ5B,UAAU,IAAI,mBAAmB;IAS1C,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,WAAW;IAIf,cAAc,IAAI,MAAM;IAIjC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,sBAAsB,CAAC,EAAE,OAAO,GAAG,IAAI;CAOvE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CASrF;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,eAAe,GAAG,SAAS,GACrD,IAAI,IAAI,eAAe,CAEzB"}
1
+ {"version":3,"file":"BlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAGhF,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAE3F,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;gBAET,EACV,WAAW,EACX,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;WAMe,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe;WAS7C,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI;WAIpD,UAAU,CAAC,cAAc,EAAE,mBAAmB,GAAG,eAAe;IAgBhF,MAAM,CAAC,QAAQ,IAAI,KAAK;IAIf,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW;IAM7C,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO;IAIlE,SAAS,IAAI,eAAe;IAQ5B,UAAU,IAAI,mBAAmB;IAS1C,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,WAAW;IAIf,cAAc,IAAI,MAAM;IAIjC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,sBAAsB,CAAC,EAAE,OAAO,GAAG,IAAI;CAOvE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CASrF;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,eAAe,GAAG,SAAS,GACrD,IAAI,IAAI,eAAe,CAEzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksNode.js","names":["DecoratorBlockNode","addClassNamesToElement","ObjectID","$applyNodeReplacement","ServerBlockNode","__cacheBuster","__fields","constructor","cacheBuster","fields","format","key","clone","node","__format","__key","getType","importDOM","importJSON","serializedNode","version","data","$createServerBlockNode","setFormat","isInline","createDOM","config","element","document","createElement","theme","block","decorate","editor","exportDOM","text","createTextNode","getTextContent","append","exportJSON","type","getFields","getCacheBuster","getLatest","setFields","preventFormStateUpdate","writable","getWritable","id","default","toHexString","$isServerBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"sourcesContent":["import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type { JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMExportOutput,\n type EditorConfig,\n type ElementFormatType,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n} from 'lexical'\n\nimport type { StronglyTypedLeafNode } from '../../../../nodeTypes.js'\n\ntype BaseBlockFields<TBlockFields extends JsonObject = JsonObject> = {\n /** Block form data */\n blockName: string\n blockType: string\n} & TBlockFields\n\nexport type BlockFields<TBlockFields extends JsonObject = JsonObject> = {\n id: string\n} & BaseBlockFields<TBlockFields>\n\nexport type BlockFieldsOptionalID<TBlockFields extends JsonObject = JsonObject> = {\n id?: string\n} & BaseBlockFields<TBlockFields>\n\nexport type SerializedBlockNode<TBlockFields extends JsonObject = JsonObject> = {\n fields: BlockFields<TBlockFields>\n} & StronglyTypedLeafNode<SerializedDecoratorBlockNode, 'block'>\n\nexport class ServerBlockNode extends DecoratorBlockNode {\n __cacheBuster: number\n __fields: BlockFields\n\n constructor({\n cacheBuster,\n fields,\n format,\n key,\n }: {\n cacheBuster?: number\n fields: BlockFields\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__fields = fields\n this.__cacheBuster = cacheBuster || 0\n }\n\n static override clone(node: ServerBlockNode): ServerBlockNode {\n return new this({\n cacheBuster: node.__cacheBuster,\n fields: node.__fields,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'block'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static override importJSON(serializedNode: SerializedBlockNode): ServerBlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createServerBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.block)\n return element\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedBlockNode {\n return {\n ...super.exportJSON(),\n type: 'block',\n fields: this.getFields(),\n version: 2,\n }\n }\n\n getCacheBuster(): number {\n return this.getLatest().__cacheBuster\n }\n\n getFields(): BlockFields {\n return this.getLatest().__fields\n }\n\n override getTextContent(): string {\n return `Block Field`\n }\n\n setFields(fields: BlockFields, preventFormStateUpdate?: boolean): void {\n const writable = this.getWritable()\n writable.__fields = fields\n if (!preventFormStateUpdate) {\n writable.__cacheBuster++\n }\n }\n}\n\nexport function $createServerBlockNode(fields: BlockFieldsOptionalID): ServerBlockNode {\n return $applyNodeReplacement(\n new ServerBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isServerBlockNode(\n node: LexicalNode | null | ServerBlockNode | undefined,\n): node is ServerBlockNode {\n return node instanceof ServerBlockNode\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BlocksNode.js","names":["DecoratorBlockNode","addClassNamesToElement","ObjectID","$applyNodeReplacement","ServerBlockNode","__cacheBuster","__fields","constructor","cacheBuster","fields","format","key","clone","node","__format","__key","getType","importDOM","importJSON","serializedNode","version","data","$createServerBlockNode","setFormat","isInline","createDOM","config","element","document","createElement","theme","block","decorate","editor","exportDOM","text","createTextNode","getTextContent","append","exportJSON","type","getFields","getCacheBuster","getLatest","setFields","preventFormStateUpdate","writable","getWritable","id","default","toHexString","$isServerBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"sourcesContent":["import type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMExportOutput,\n type EditorConfig,\n type ElementFormatType,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n} from 'lexical'\n\nimport type { BlockFields, BlockFieldsOptionalID, SerializedBlockNode } from '../schema.js'\n\nexport class ServerBlockNode extends DecoratorBlockNode {\n __cacheBuster: number\n __fields: BlockFields\n\n constructor({\n cacheBuster,\n fields,\n format,\n key,\n }: {\n cacheBuster?: number\n fields: BlockFields\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__fields = fields\n this.__cacheBuster = cacheBuster || 0\n }\n\n static override clone(node: ServerBlockNode): ServerBlockNode {\n return new this({\n cacheBuster: node.__cacheBuster,\n fields: node.__fields,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'block'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static override importJSON(serializedNode: SerializedBlockNode): ServerBlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createServerBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.block)\n return element\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedBlockNode {\n return {\n ...super.exportJSON(),\n type: 'block',\n fields: this.getFields(),\n version: 2,\n }\n }\n\n getCacheBuster(): number {\n return this.getLatest().__cacheBuster\n }\n\n getFields(): BlockFields {\n return this.getLatest().__fields\n }\n\n override getTextContent(): string {\n return `Block Field`\n }\n\n setFields(fields: BlockFields, preventFormStateUpdate?: boolean): void {\n const writable = this.getWritable()\n writable.__fields = fields\n if (!preventFormStateUpdate) {\n writable.__cacheBuster++\n }\n }\n}\n\nexport function $createServerBlockNode(fields: BlockFieldsOptionalID): ServerBlockNode {\n return $applyNodeReplacement(\n new ServerBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isServerBlockNode(\n node: LexicalNode | null | ServerBlockNode | undefined,\n): node is ServerBlockNode {\n return node instanceof ServerBlockNode\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,8 @@
1
- import type { DOMConversionMap, DOMExportOutput, EditorConfig, LexicalEditor, LexicalNode, NodeKey, SerializedLexicalNode } from 'lexical';
2
- import type { JsonObject } from 'payload';
1
+ import type { DOMConversionMap, DOMExportOutput, EditorConfig, LexicalEditor, LexicalNode, NodeKey } from 'lexical';
3
2
  import type React from 'react';
4
3
  import type { JSX } from 'react';
5
4
  import { DecoratorNode } from 'lexical';
6
- import type { StronglyTypedLeafNode } from '../../../../nodeTypes.js';
7
- export type InlineBlockFields<TInlineBlockFields extends JsonObject = JsonObject> = {
8
- blockType: string;
9
- id: string;
10
- } & TInlineBlockFields;
11
- export type SerializedInlineBlockNode<TBlockFields extends JsonObject = JsonObject> = {
12
- fields: InlineBlockFields<TBlockFields>;
13
- } & StronglyTypedLeafNode<SerializedLexicalNode, 'inlineBlock'>;
5
+ import type { InlineBlockFields, SerializedInlineBlockNode } from '../schema.js';
14
6
  export declare class ServerInlineBlockNode extends DecoratorNode<null | React.ReactElement> {
15
7
  __cacheBuster: number;
16
8
  __fields: InlineBlockFields;
@@ -1 +1 @@
1
- {"version":3,"file":"InlineBlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACP,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAIhC,OAAO,EAAyB,aAAa,EAAE,MAAM,SAAS,CAAA;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAErE,MAAM,MAAM,iBAAiB,CAAC,kBAAkB,SAAS,UAAU,GAAG,UAAU,IAAI;IAClF,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,kBAAkB,CAAA;AAEtB,MAAM,MAAM,yBAAyB,CAAC,YAAY,SAAS,UAAU,GAAG,UAAU,IAAI;IACpF,MAAM,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAA;CACxC,GAAG,qBAAqB,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAA;AAE/D,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC;IACjF,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,iBAAiB,CAAA;gBAEf,EACV,WAAW,EACX,MAAM,EACN,GAAG,GACJ,EAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,iBAAiB,CAAA;QACzB,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;WAMe,KAAK,CAAC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB;WAQzD,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI;WAIpD,UAAU,CAAC,cAAc,EAAE,yBAAyB,GAAG,qBAAqB;IAK5F,MAAM,CAAC,QAAQ,IAAI,KAAK;IAIxB,SAAS;IAIA,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW;IAM7C,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI;IAIzE,SAAS,IAAI,eAAe;IAS5B,UAAU,IAAI,yBAAyB;IAQhD,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,iBAAiB;IAIrB,cAAc,IAAI,MAAM;IAIxB,QAAQ;IAIjB,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,EAAE,OAAO,GAAG,IAAI;IAQnE,SAAS,IAAI,OAAO;CAG9B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,GACvC,qBAAqB,CASvB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,qBAAqB,GAAG,SAAS,GAC3D,IAAI,IAAI,qBAAqB,CAE/B"}
1
+ {"version":3,"file":"InlineBlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACR,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAIhC,OAAO,EAAyB,aAAa,EAAE,MAAM,SAAS,CAAA;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAEhF,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC;IACjF,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,iBAAiB,CAAA;gBAEf,EACV,WAAW,EACX,MAAM,EACN,GAAG,GACJ,EAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,iBAAiB,CAAA;QACzB,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;WAMe,KAAK,CAAC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB;WAQzD,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI;WAIpD,UAAU,CAAC,cAAc,EAAE,yBAAyB,GAAG,qBAAqB;IAK5F,MAAM,CAAC,QAAQ,IAAI,KAAK;IAIxB,SAAS;IAIA,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW;IAM7C,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI;IAIzE,SAAS,IAAI,eAAe;IAS5B,UAAU,IAAI,yBAAyB;IAQhD,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,iBAAiB;IAIrB,cAAc,IAAI,MAAM;IAIxB,QAAQ;IAIjB,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,EAAE,OAAO,GAAG,IAAI;IAQnE,SAAS,IAAI,OAAO;CAG9B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,GACvC,qBAAqB,CASvB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,qBAAqB,GAAG,SAAS,GAC3D,IAAI,IAAI,qBAAqB,CAE/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"InlineBlocksNode.js","names":["addClassNamesToElement","ObjectID","$applyNodeReplacement","DecoratorNode","ServerInlineBlockNode","__cacheBuster","__fields","constructor","cacheBuster","fields","key","clone","node","__key","getType","importDOM","importJSON","serializedNode","$createServerInlineBlockNode","isInline","canIndent","createDOM","config","element","document","createElement","theme","inlineBlock","decorate","editor","exportDOM","classList","add","text","createTextNode","getTextContent","append","exportJSON","type","getFields","version","getCacheBuster","getLatest","setFields","preventFormStateUpdate","writable","getWritable","updateDOM","id","default","toHexString","$isServerInlineBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"sourcesContent":["import type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedLexicalNode,\n} from 'lexical'\nimport type { JsonObject } from 'payload'\nimport type React from 'react'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement, DecoratorNode } from 'lexical'\n\nimport type { StronglyTypedLeafNode } from '../../../../nodeTypes.js'\n\nexport type InlineBlockFields<TInlineBlockFields extends JsonObject = JsonObject> = {\n blockType: string\n id: string\n} & TInlineBlockFields\n\nexport type SerializedInlineBlockNode<TBlockFields extends JsonObject = JsonObject> = {\n fields: InlineBlockFields<TBlockFields>\n} & StronglyTypedLeafNode<SerializedLexicalNode, 'inlineBlock'>\n\nexport class ServerInlineBlockNode extends DecoratorNode<null | React.ReactElement> {\n __cacheBuster: number\n __fields: InlineBlockFields\n\n constructor({\n cacheBuster,\n fields,\n key,\n }: {\n cacheBuster?: number\n fields: InlineBlockFields\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__cacheBuster = cacheBuster || 0\n }\n\n static override clone(node: ServerInlineBlockNode): ServerInlineBlockNode {\n return new this({\n cacheBuster: node.__cacheBuster,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'inlineBlock'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static override importJSON(serializedNode: SerializedInlineBlockNode): ServerInlineBlockNode {\n const node = $createServerInlineBlockNode(serializedNode.fields)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n canIndent() {\n return true\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, config?.theme?.inlineBlock)\n return element\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element | null {\n return null\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedInlineBlockNode {\n return {\n type: 'inlineBlock',\n fields: this.getFields(),\n version: 1,\n }\n }\n\n getCacheBuster(): number {\n return this.getLatest().__cacheBuster\n }\n\n getFields(): InlineBlockFields {\n return this.getLatest().__fields\n }\n\n override getTextContent(): string {\n return `Block Field`\n }\n\n override isInline() {\n return true\n }\n\n setFields(fields: InlineBlockFields, preventFormStateUpdate?: boolean): void {\n const writable = this.getWritable()\n writable.__fields = fields\n if (!preventFormStateUpdate) {\n writable.__cacheBuster++\n }\n }\n\n override updateDOM(): boolean {\n return false\n }\n}\n\nexport function $createServerInlineBlockNode(\n fields: Exclude<InlineBlockFields, 'id'>,\n): ServerInlineBlockNode {\n return $applyNodeReplacement(\n new ServerInlineBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isServerInlineBlockNode(\n node: LexicalNode | null | ServerInlineBlockNode | undefined,\n): node is ServerInlineBlockNode {\n return node instanceof ServerInlineBlockNode\n}\n"],"mappings":"AAaA,SAASA,sBAAsB,QAAQ;AACvC,OAAOC,QAAA,MAAc;AACrB,SAASC,qBAAqB,EAAEC,aAAa,QAAQ;AAarD,OAAO,MAAMC,qBAAA,SAA8BD,aAAA;EACzCE,aAAA;EACAC,QAAA;EAEAC,YAAY;IACVC,WAAW;IACXC,MAAM;IACNC;EAAG,CAKJ,EAAE;IACD,KAAK,CAACA,GAAA;IACN,IAAI,CAACJ,QAAQ,GAAGG,MAAA;IAChB,IAAI,CAACJ,aAAa,GAAGG,WAAA,IAAe;EACtC;EAEA,OAAgBG,MAAMC,IAA2B,EAAyB;IACxE,OAAO,IAAI,IAAI,CAAC;MACdJ,WAAA,EAAaI,IAAA,CAAKP,aAAa;MAC/BI,MAAA,EAAQG,IAAA,CAAKN,QAAQ;MACrBI,GAAA,EAAKE,IAAA,CAAKC;IACZ;EACF;EAEA,OAAgBC,QAAA,EAAkB;IAChC,OAAO;EACT;EAEA,OAAgBC,UAAA,EAAqD;IACnE,OAAO,CAAC;EACV;EAEA,OAAgBC,WAAWC,cAAyC,EAAyB;IAC3F,MAAML,IAAA,GAAOM,4BAAA,CAA6BD,cAAA,CAAeR,MAAM;IAC/D,OAAOG,IAAA;EACT;EAEA,OAAOO,SAAA,EAAkB;IACvB,OAAO;EACT;EAEAC,UAAA,EAAY;IACV,OAAO;EACT;EAESC,UAAUC,MAAqB,EAAe;IACrD,MAAMC,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCzB,sBAAA,CAAuBuB,OAAA,EAASD,MAAA,EAAQI,KAAA,EAAOC,WAAA;IAC/C,OAAOJ,OAAA;EACT;EAESK,SAASC,MAAqB,EAAEP,MAAoB,EAAsB;IACjF,OAAO;EACT;EAESQ,UAAA,EAA6B;IACpC,MAAMP,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCF,OAAA,CAAQQ,SAAS,CAACC,GAAG,CAAC;IAEtB,MAAMC,IAAA,GAAOT,QAAA,CAASU,cAAc,CAAC,IAAI,CAACC,cAAc;IACxDZ,OAAA,CAAQa,MAAM,CAACH,IAAA;IACf,OAAO;MAAEV;IAAQ;EACnB;EAESc,WAAA,EAAwC;IAC/C,OAAO;MACLC,IAAA,EAAM;MACN7B,MAAA,EAAQ,IAAI,CAAC8B,SAAS;MACtBC,OAAA,EAAS;IACX;EACF;EAEAC,eAAA,EAAyB;IACvB,OAAO,IAAI,CAACC,SAAS,GAAGrC,aAAa;EACvC;EAEAkC,UAAA,EAA+B;IAC7B,OAAO,IAAI,CAACG,SAAS,GAAGpC,QAAQ;EAClC;EAES6B,eAAA,EAAyB;IAChC,OAAO,aAAa;EACtB;EAEShB,SAAA,EAAW;IAClB,OAAO;EACT;EAEAwB,UAAUlC,MAAyB,EAAEmC,sBAAgC,EAAQ;IAC3E,MAAMC,QAAA,GAAW,IAAI,CAACC,WAAW;IACjCD,QAAA,CAASvC,QAAQ,GAAGG,MAAA;IACpB,IAAI,CAACmC,sBAAA,EAAwB;MAC3BC,QAAA,CAASxC,aAAa;IACxB;EACF;EAES0C,UAAA,EAAqB;IAC5B,OAAO;EACT;AACF;AAEA,OAAO,SAAS7B,6BACdT,MAAwC;EAExC,OAAOP,qBAAA,CACL,IAAIE,qBAAA,CAAsB;IACxBK,MAAA,EAAQ;MACN,GAAGA,MAAM;MACTuC,EAAA,EAAIvC,MAAA,EAAQuC,EAAA,IAAM,IAAI/C,QAAA,CAASgD,OAAO,GAAGC,WAAW;IACtD;EACF;AAEJ;AAEA,OAAO,SAASC,yBACdvC,IAA4D;EAE5D,OAAOA,IAAA,YAAgBR,qBAAA;AACzB","ignoreList":[]}
1
+ {"version":3,"file":"InlineBlocksNode.js","names":["addClassNamesToElement","ObjectID","$applyNodeReplacement","DecoratorNode","ServerInlineBlockNode","__cacheBuster","__fields","constructor","cacheBuster","fields","key","clone","node","__key","getType","importDOM","importJSON","serializedNode","$createServerInlineBlockNode","isInline","canIndent","createDOM","config","element","document","createElement","theme","inlineBlock","decorate","editor","exportDOM","classList","add","text","createTextNode","getTextContent","append","exportJSON","type","getFields","version","getCacheBuster","getLatest","setFields","preventFormStateUpdate","writable","getWritable","updateDOM","id","default","toHexString","$isServerInlineBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"sourcesContent":["import type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n} from 'lexical'\nimport type React from 'react'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement, DecoratorNode } from 'lexical'\n\nimport type { InlineBlockFields, SerializedInlineBlockNode } from '../schema.js'\n\nexport class ServerInlineBlockNode extends DecoratorNode<null | React.ReactElement> {\n __cacheBuster: number\n __fields: InlineBlockFields\n\n constructor({\n cacheBuster,\n fields,\n key,\n }: {\n cacheBuster?: number\n fields: InlineBlockFields\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__cacheBuster = cacheBuster || 0\n }\n\n static override clone(node: ServerInlineBlockNode): ServerInlineBlockNode {\n return new this({\n cacheBuster: node.__cacheBuster,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'inlineBlock'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static override importJSON(serializedNode: SerializedInlineBlockNode): ServerInlineBlockNode {\n const node = $createServerInlineBlockNode(serializedNode.fields)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n canIndent() {\n return true\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, config?.theme?.inlineBlock)\n return element\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element | null {\n return null\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedInlineBlockNode {\n return {\n type: 'inlineBlock',\n fields: this.getFields(),\n version: 1,\n }\n }\n\n getCacheBuster(): number {\n return this.getLatest().__cacheBuster\n }\n\n getFields(): InlineBlockFields {\n return this.getLatest().__fields\n }\n\n override getTextContent(): string {\n return `Block Field`\n }\n\n override isInline() {\n return true\n }\n\n setFields(fields: InlineBlockFields, preventFormStateUpdate?: boolean): void {\n const writable = this.getWritable()\n writable.__fields = fields\n if (!preventFormStateUpdate) {\n writable.__cacheBuster++\n }\n }\n\n override updateDOM(): boolean {\n return false\n }\n}\n\nexport function $createServerInlineBlockNode(\n fields: Exclude<InlineBlockFields, 'id'>,\n): ServerInlineBlockNode {\n return $applyNodeReplacement(\n new ServerInlineBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isServerInlineBlockNode(\n node: LexicalNode | null | ServerInlineBlockNode | undefined,\n): node is ServerInlineBlockNode {\n return node instanceof ServerInlineBlockNode\n}\n"],"mappings":"AAWA,SAASA,sBAAsB,QAAQ;AACvC,OAAOC,QAAA,MAAc;AACrB,SAASC,qBAAqB,EAAEC,aAAa,QAAQ;AAIrD,OAAO,MAAMC,qBAAA,SAA8BD,aAAA;EACzCE,aAAA;EACAC,QAAA;EAEAC,YAAY;IACVC,WAAW;IACXC,MAAM;IACNC;EAAG,CAKJ,EAAE;IACD,KAAK,CAACA,GAAA;IACN,IAAI,CAACJ,QAAQ,GAAGG,MAAA;IAChB,IAAI,CAACJ,aAAa,GAAGG,WAAA,IAAe;EACtC;EAEA,OAAgBG,MAAMC,IAA2B,EAAyB;IACxE,OAAO,IAAI,IAAI,CAAC;MACdJ,WAAA,EAAaI,IAAA,CAAKP,aAAa;MAC/BI,MAAA,EAAQG,IAAA,CAAKN,QAAQ;MACrBI,GAAA,EAAKE,IAAA,CAAKC;IACZ;EACF;EAEA,OAAgBC,QAAA,EAAkB;IAChC,OAAO;EACT;EAEA,OAAgBC,UAAA,EAAqD;IACnE,OAAO,CAAC;EACV;EAEA,OAAgBC,WAAWC,cAAyC,EAAyB;IAC3F,MAAML,IAAA,GAAOM,4BAAA,CAA6BD,cAAA,CAAeR,MAAM;IAC/D,OAAOG,IAAA;EACT;EAEA,OAAOO,SAAA,EAAkB;IACvB,OAAO;EACT;EAEAC,UAAA,EAAY;IACV,OAAO;EACT;EAESC,UAAUC,MAAqB,EAAe;IACrD,MAAMC,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCzB,sBAAA,CAAuBuB,OAAA,EAASD,MAAA,EAAQI,KAAA,EAAOC,WAAA;IAC/C,OAAOJ,OAAA;EACT;EAESK,SAASC,MAAqB,EAAEP,MAAoB,EAAsB;IACjF,OAAO;EACT;EAESQ,UAAA,EAA6B;IACpC,MAAMP,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCF,OAAA,CAAQQ,SAAS,CAACC,GAAG,CAAC;IAEtB,MAAMC,IAAA,GAAOT,QAAA,CAASU,cAAc,CAAC,IAAI,CAACC,cAAc;IACxDZ,OAAA,CAAQa,MAAM,CAACH,IAAA;IACf,OAAO;MAAEV;IAAQ;EACnB;EAESc,WAAA,EAAwC;IAC/C,OAAO;MACLC,IAAA,EAAM;MACN7B,MAAA,EAAQ,IAAI,CAAC8B,SAAS;MACtBC,OAAA,EAAS;IACX;EACF;EAEAC,eAAA,EAAyB;IACvB,OAAO,IAAI,CAACC,SAAS,GAAGrC,aAAa;EACvC;EAEAkC,UAAA,EAA+B;IAC7B,OAAO,IAAI,CAACG,SAAS,GAAGpC,QAAQ;EAClC;EAES6B,eAAA,EAAyB;IAChC,OAAO,aAAa;EACtB;EAEShB,SAAA,EAAW;IAClB,OAAO;EACT;EAEAwB,UAAUlC,MAAyB,EAAEmC,sBAAgC,EAAQ;IAC3E,MAAMC,QAAA,GAAW,IAAI,CAACC,WAAW;IACjCD,QAAA,CAASvC,QAAQ,GAAGG,MAAA;IACpB,IAAI,CAACmC,sBAAA,EAAwB;MAC3BC,QAAA,CAASxC,aAAa;IACxB;EACF;EAES0C,UAAA,EAAqB;IAC5B,OAAO;EACT;AACF;AAEA,OAAO,SAAS7B,6BACdT,MAAwC;EAExC,OAAOP,qBAAA,CACL,IAAIE,qBAAA,CAAsB;IACxBK,MAAA,EAAQ;MACN,GAAGA,MAAM;MACTuC,EAAA,EAAIvC,MAAA,EAAQuC,EAAA,IAAM,IAAI/C,QAAA,CAASgD,OAAO,GAAGC,WAAW;IACtD;EACF;AAEJ;AAEA,OAAO,SAASC,yBACdvC,IAA4D;EAE5D,OAAOA,IAAA,YAAgBR,qBAAA;AACzB","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ import type { Block, JsonObject } from 'payload';
2
+ import type { LexicalElementFormat } from '../../../types/nodeTypes.js';
3
+ import type { JSONSchemaFn } from '../../typesServer.js';
4
+ type BaseBlockFields<TFields extends JsonObject = JsonObject> = {
5
+ blockName?: null | string;
6
+ blockType: string;
7
+ } & TFields;
8
+ export type BlockFields<TFields extends JsonObject = JsonObject> = {
9
+ id: string;
10
+ } & BaseBlockFields<TFields>;
11
+ export type BlockFieldsOptionalID<TFields extends JsonObject = JsonObject> = {
12
+ id?: string;
13
+ } & BaseBlockFields<TFields>;
14
+ export type InlineBlockFields<TFields extends JsonObject = JsonObject> = {
15
+ blockType: string;
16
+ id: string;
17
+ } & TFields;
18
+ export type SerializedBlockNode<TFields extends {
19
+ blockType: string;
20
+ } = {
21
+ blockType: string;
22
+ }> = TFields extends unknown ? {
23
+ fields: {
24
+ blockName?: null | string;
25
+ id: string;
26
+ } & Omit<TFields, 'blockName' | 'id'>;
27
+ format: LexicalElementFormat;
28
+ type: 'block';
29
+ version: number;
30
+ } : never;
31
+ export type SerializedInlineBlockNode<TFields extends {
32
+ blockType: string;
33
+ } = {
34
+ blockType: string;
35
+ }> = TFields extends unknown ? {
36
+ fields: {
37
+ id: string;
38
+ } & Omit<TFields, 'id'>;
39
+ type: 'inlineBlock';
40
+ version: number;
41
+ } : never;
42
+ export declare const createBlockNodeJSONSchema: (blockConfigs: Block[]) => JSONSchemaFn;
43
+ export declare const createInlineBlockNodeJSONSchema: (inlineBlockConfigs: Block[]) => JSONSchemaFn;
44
+ export {};
45
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAIxE,KAAK,eAAe,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IAC9D,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAA;AAEX,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IACjE,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;AAE5B,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;AAE5B,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IACvE,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,OAAO,CAAA;AAMX,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,IAC3F,OAAO,SAAS,OAAO,GACnB;IACE,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,CAAA;IACrF,MAAM,EAAE,oBAAoB,CAAA;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,KAAK,CAAA;AAEX,MAAM,MAAM,yBAAyB,CACnC,OAAO,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,IAC3D,OAAO,SAAS,OAAO,GACvB;IACE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC5C,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,KAAK,CAAA;AAwET,eAAO,MAAM,yBAAyB,GACnC,cAAc,KAAK,EAAE,KAAG,YA+BxB,CAAA;AAEH,eAAO,MAAM,+BAA+B,GACzC,oBAAoB,KAAK,EAAE,KAAG,YA8B9B,CAAA"}
@@ -0,0 +1,139 @@
1
+ import { fieldsToJSONSchema, flattenAllFields, registerBlockInterface } from 'payload';
2
+ import { formatSchema } from '../../../types/jsonSchemaHelpers.js';
3
+ /**
4
+ * MUST stay byte-for-byte in sync with the runtime `SerializedBlockNode` and
5
+ * `SerializedInlineBlockNode` declared above.
6
+ */
7
+ const BLOCK_NODES_TS = `export type SerializedBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {
8
+ type: 'block';
9
+ format: LexicalElementFormat;
10
+ version: number;
11
+ fields: { id: string; blockName?: string | null } & Omit<TFields, 'id' | 'blockName'>;
12
+ } : never;
13
+ export type SerializedInlineBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {
14
+ type: 'inlineBlock';
15
+ version: number;
16
+ fields: { id: string } & Omit<TFields, 'id'>;
17
+ } : never;`;
18
+ /**
19
+ * JSON Schema for one block's `fields:` payload. Strips Payload's auto-added
20
+ * `id`/`blockName` and re-adds them with strict runtime types: required
21
+ * non-null `id`, optional `blockName?: string | null` (omitted for inline
22
+ * blocks). Registers the interface through `registerBlockInterface` (shared with
23
+ * payload core) and returns its collision-safe name.
24
+ */
25
+ const buildBlockFieldsSchema = (block, args, {
26
+ isInlineBlock
27
+ }) => {
28
+ const flattened = flattenAllFields({
29
+ fields: block.fields
30
+ });
31
+ const userFieldsSchema = args.config ? fieldsToJSONSchema({
32
+ collectionIDFieldTypes: args.collectionIDFieldTypes,
33
+ config: args.config,
34
+ fields: flattened,
35
+ i18n: args.i18n,
36
+ interfaceNameDefinitions: args.interfaceNameDefinitions,
37
+ typeStringDefinitions: args.typeStringDefinitions
38
+ }) : {
39
+ properties: {},
40
+ required: []
41
+ };
42
+ const {
43
+ id: _stripId,
44
+ blockName: _stripBlockName,
45
+ ...userOnlyProperties
46
+ } = userFieldsSchema.properties ?? {};
47
+ const userOnlyRequired = (userFieldsSchema.required ?? []).filter(r => r !== 'id' && r !== 'blockName');
48
+ const properties = {
49
+ id: {
50
+ type: 'string'
51
+ },
52
+ blockType: {
53
+ type: 'string',
54
+ const: block.slug
55
+ },
56
+ ...userOnlyProperties
57
+ };
58
+ const required = ['id', 'blockType', ...userOnlyRequired];
59
+ if (!isInlineBlock) {
60
+ properties.blockName = {
61
+ type: ['string', 'null']
62
+ };
63
+ }
64
+ const fieldsSchema = {
65
+ type: 'object',
66
+ additionalProperties: false,
67
+ properties,
68
+ required
69
+ };
70
+ return registerBlockInterface(block, fieldsSchema, args.interfaceNameDefinitions);
71
+ };
72
+ export const createBlockNodeJSONSchema = blockConfigs => args => {
73
+ args.typeStringDefinitions.add(BLOCK_NODES_TS);
74
+ const definitionNames = blockConfigs.map(block => buildBlockFieldsSchema(block, args, {
75
+ isInlineBlock: false
76
+ }));
77
+ const fieldsSchema = definitionNames.length === 0 ? {
78
+ type: 'object',
79
+ additionalProperties: true
80
+ } : definitionNames.length === 1 ? {
81
+ $ref: `#/$defs/${definitionNames[0]}`
82
+ } : {
83
+ oneOf: definitionNames.map(name => ({
84
+ $ref: `#/$defs/${name}`
85
+ }))
86
+ };
87
+ const tsType = definitionNames.length > 0 ? `SerializedBlockNode<${definitionNames.join(' | ')}>` : `SerializedBlockNode<{ blockType: string }>`;
88
+ return {
89
+ type: 'object',
90
+ additionalProperties: false,
91
+ properties: {
92
+ type: {
93
+ type: 'string',
94
+ const: 'block'
95
+ },
96
+ fields: fieldsSchema,
97
+ format: formatSchema,
98
+ version: {
99
+ type: 'integer'
100
+ }
101
+ },
102
+ required: ['fields', 'format', 'type', 'version'],
103
+ tsType
104
+ };
105
+ };
106
+ export const createInlineBlockNodeJSONSchema = inlineBlockConfigs => args => {
107
+ args.typeStringDefinitions.add(BLOCK_NODES_TS);
108
+ const definitionNames = inlineBlockConfigs.map(block => buildBlockFieldsSchema(block, args, {
109
+ isInlineBlock: true
110
+ }));
111
+ const fieldsSchema = definitionNames.length === 0 ? {
112
+ type: 'object',
113
+ additionalProperties: true
114
+ } : definitionNames.length === 1 ? {
115
+ $ref: `#/$defs/${definitionNames[0]}`
116
+ } : {
117
+ oneOf: definitionNames.map(name => ({
118
+ $ref: `#/$defs/${name}`
119
+ }))
120
+ };
121
+ const tsType = definitionNames.length > 0 ? `SerializedInlineBlockNode<${definitionNames.join(' | ')}>` : `SerializedInlineBlockNode<{ blockType: string }>`;
122
+ return {
123
+ type: 'object',
124
+ additionalProperties: false,
125
+ properties: {
126
+ type: {
127
+ type: 'string',
128
+ const: 'inlineBlock'
129
+ },
130
+ fields: fieldsSchema,
131
+ version: {
132
+ type: 'integer'
133
+ }
134
+ },
135
+ required: ['fields', 'type', 'version'],
136
+ tsType
137
+ };
138
+ };
139
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":["fieldsToJSONSchema","flattenAllFields","registerBlockInterface","formatSchema","BLOCK_NODES_TS","buildBlockFieldsSchema","block","args","isInlineBlock","flattened","fields","userFieldsSchema","config","collectionIDFieldTypes","i18n","interfaceNameDefinitions","typeStringDefinitions","properties","required","id","_stripId","blockName","_stripBlockName","userOnlyProperties","userOnlyRequired","filter","r","type","blockType","const","slug","fieldsSchema","additionalProperties","createBlockNodeJSONSchema","blockConfigs","add","definitionNames","map","length","$ref","oneOf","name","tsType","join","format","version","createInlineBlockNodeJSONSchema","inlineBlockConfigs"],"sources":["../../../../src/features/blocks/server/schema.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type { Block, JsonObject } from 'payload'\n\nimport { fieldsToJSONSchema, flattenAllFields, registerBlockInterface } from 'payload'\n\nimport type { LexicalElementFormat } from '../../../types/nodeTypes.js'\nimport type { JSONSchemaArgs, JSONSchemaFn } from '../../typesServer.js'\n\nimport { formatSchema } from '../../../types/jsonSchemaHelpers.js'\n\ntype BaseBlockFields<TFields extends JsonObject = JsonObject> = {\n blockName?: null | string\n blockType: string\n} & TFields\n\nexport type BlockFields<TFields extends JsonObject = JsonObject> = {\n id: string\n} & BaseBlockFields<TFields>\n\nexport type BlockFieldsOptionalID<TFields extends JsonObject = JsonObject> = {\n id?: string\n} & BaseBlockFields<TFields>\n\nexport type InlineBlockFields<TFields extends JsonObject = JsonObject> = {\n blockType: string\n id: string\n} & TFields\n\n// Distributive (`TFields extends unknown ?`) so `SerializedBlockNode<A | B>` expands to\n// `SerializedBlockNode<A> | SerializedBlockNode<B>` - i.e. a discriminated union where each block\n// keeps its own fields. Without this, `Omit<A | B, ...>` collapses to the blocks' common keys and\n// every block-specific field is lost. Lets users write either form interchangeably.\nexport type SerializedBlockNode<TFields extends { blockType: string } = { blockType: string }> =\n TFields extends unknown\n ? {\n fields: { blockName?: null | string; id: string } & Omit<TFields, 'blockName' | 'id'>\n format: LexicalElementFormat\n type: 'block'\n version: number\n }\n : never\n\nexport type SerializedInlineBlockNode<\n TFields extends { blockType: string } = { blockType: string },\n> = TFields extends unknown\n ? {\n fields: { id: string } & Omit<TFields, 'id'>\n type: 'inlineBlock'\n version: number\n }\n : never\n\n/**\n * MUST stay byte-for-byte in sync with the runtime `SerializedBlockNode` and\n * `SerializedInlineBlockNode` declared above.\n */\nconst BLOCK_NODES_TS = `export type SerializedBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {\n type: 'block';\n format: LexicalElementFormat;\n version: number;\n fields: { id: string; blockName?: string | null } & Omit<TFields, 'id' | 'blockName'>;\n} : never;\nexport type SerializedInlineBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {\n type: 'inlineBlock';\n version: number;\n fields: { id: string } & Omit<TFields, 'id'>;\n} : never;`\n\n/**\n * JSON Schema for one block's `fields:` payload. Strips Payload's auto-added\n * `id`/`blockName` and re-adds them with strict runtime types: required\n * non-null `id`, optional `blockName?: string | null` (omitted for inline\n * blocks). Registers the interface through `registerBlockInterface` (shared with\n * payload core) and returns its collision-safe name.\n */\nconst buildBlockFieldsSchema = (\n block: Block,\n args: JSONSchemaArgs,\n { isInlineBlock }: { isInlineBlock: boolean },\n): string => {\n const flattened = flattenAllFields({ fields: block.fields })\n const userFieldsSchema = args.config\n ? fieldsToJSONSchema({\n collectionIDFieldTypes: args.collectionIDFieldTypes,\n config: args.config,\n fields: flattened,\n i18n: args.i18n,\n interfaceNameDefinitions: args.interfaceNameDefinitions,\n typeStringDefinitions: args.typeStringDefinitions,\n })\n : { properties: {}, required: [] }\n\n const {\n id: _stripId,\n blockName: _stripBlockName,\n ...userOnlyProperties\n } = (userFieldsSchema.properties ?? {}) as { [k: string]: JSONSchema4 }\n const userOnlyRequired = (userFieldsSchema.required ?? []).filter(\n (r) => r !== 'id' && r !== 'blockName',\n )\n\n const properties: { [k: string]: JSONSchema4 } = {\n id: { type: 'string' },\n blockType: { type: 'string', const: block.slug },\n ...userOnlyProperties,\n }\n const required = ['id', 'blockType', ...userOnlyRequired]\n\n if (!isInlineBlock) {\n properties.blockName = { type: ['string', 'null'] }\n }\n\n const fieldsSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties,\n required,\n }\n\n return registerBlockInterface(block, fieldsSchema, args.interfaceNameDefinitions)\n}\n\nexport const createBlockNodeJSONSchema =\n (blockConfigs: Block[]): JSONSchemaFn =>\n (args) => {\n args.typeStringDefinitions.add(BLOCK_NODES_TS)\n const definitionNames = blockConfigs.map((block) =>\n buildBlockFieldsSchema(block, args, { isInlineBlock: false }),\n )\n\n const fieldsSchema: JSONSchema4 =\n definitionNames.length === 0\n ? { type: 'object', additionalProperties: true }\n : definitionNames.length === 1\n ? { $ref: `#/$defs/${definitionNames[0]!}` }\n : { oneOf: definitionNames.map((name) => ({ $ref: `#/$defs/${name}` })) }\n\n const tsType =\n definitionNames.length > 0\n ? `SerializedBlockNode<${definitionNames.join(' | ')}>`\n : `SerializedBlockNode<{ blockType: string }>`\n\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'block' },\n fields: fieldsSchema,\n format: formatSchema,\n version: { type: 'integer' },\n },\n required: ['fields', 'format', 'type', 'version'],\n tsType,\n }\n }\n\nexport const createInlineBlockNodeJSONSchema =\n (inlineBlockConfigs: Block[]): JSONSchemaFn =>\n (args) => {\n args.typeStringDefinitions.add(BLOCK_NODES_TS)\n const definitionNames = inlineBlockConfigs.map((block) =>\n buildBlockFieldsSchema(block, args, { isInlineBlock: true }),\n )\n\n const fieldsSchema: JSONSchema4 =\n definitionNames.length === 0\n ? { type: 'object', additionalProperties: true }\n : definitionNames.length === 1\n ? { $ref: `#/$defs/${definitionNames[0]!}` }\n : { oneOf: definitionNames.map((name) => ({ $ref: `#/$defs/${name}` })) }\n\n const tsType =\n definitionNames.length > 0\n ? `SerializedInlineBlockNode<${definitionNames.join(' | ')}>`\n : `SerializedInlineBlockNode<{ blockType: string }>`\n\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'inlineBlock' },\n fields: fieldsSchema,\n version: { type: 'integer' },\n },\n required: ['fields', 'type', 'version'],\n tsType,\n }\n }\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import type { Block } from 'payload';
2
2
  import type { NodeValidation } from '../../typesServer.js';
3
- import type { SerializedBlockNode } from './nodes/BlocksNode.js';
4
- import type { SerializedInlineBlockNode } from './nodes/InlineBlocksNode.js';
3
+ import type { SerializedBlockNode, SerializedInlineBlockNode } from './schema.js';
5
4
  /**
6
5
  * Runs validation for blocks. This function will determine if the rich text field itself is valid. It does not handle
7
6
  * block field error paths - this is done by the `beforeChangeTraverseFields` call in the `beforeChange` hook, called from the
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAe,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAE5E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,WACrB,KAAK,EAAE,KACd,cAAc,CAAC,mBAAmB,GAAG,yBAAyB,CAqDhE,CAAA"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAe,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAE9F;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,KAAK,EAAE,KACd,cAAc,CAAC,mBAAmB,GAAG,yBAAyB,CAqDhE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","names":["fieldSchemasToFormState","blockValidationHOC","blocks","node","validation","blockFieldData","fields","options","id","collectionSlug","data","operation","preferences","req","block","find","slug","blockType","result","documentData","fieldSchemaMap","undefined","initialBlockData","permissions","renderAllFields","schemaPath","errorPathsSet","Set","fieldKey","fieldState","errorPaths","length","errorPath","add","Array","from","join"],"sources":["../../../../src/features/blocks/server/validate.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { BlockFields, SerializedBlockNode } from './nodes/BlocksNode.js'\nimport type { SerializedInlineBlockNode } from './nodes/InlineBlocksNode.js'\n\n/**\n * Runs validation for blocks. This function will determine if the rich text field itself is valid. It does not handle\n * block field error paths - this is done by the `beforeChangeTraverseFields` call in the `beforeChange` hook, called from the\n * rich text adapter.\n */\nexport const blockValidationHOC = (\n blocks: Block[],\n): NodeValidation<SerializedBlockNode | SerializedInlineBlockNode> => {\n return async ({ node, validation }) => {\n const blockFieldData = node.fields ?? ({} as BlockFields)\n\n const {\n options: { id, collectionSlug, data, operation, preferences, req },\n } = validation\n\n // find block\n const block = blocks.find((block) => block.slug === blockFieldData.blockType)\n\n // validate block\n if (!block) {\n return `Block ${blockFieldData.blockType} not found`\n }\n\n /**\n * Run fieldSchemasToFormState as that properly validates block and block sub-fields\n */\n\n const result = await fieldSchemasToFormState({\n id,\n collectionSlug,\n data: blockFieldData,\n documentData: data,\n fields: block.fields,\n fieldSchemaMap: undefined,\n initialBlockData: blockFieldData,\n operation: operation === 'create' || operation === 'update' ? operation : 'update',\n permissions: {},\n preferences,\n renderAllFields: false,\n req,\n schemaPath: '',\n })\n\n const errorPathsSet = new Set<string>()\n for (const fieldKey in result) {\n const fieldState = result[fieldKey]\n if (fieldState?.errorPaths?.length) {\n for (const errorPath of fieldState.errorPaths) {\n errorPathsSet.add(errorPath)\n }\n }\n }\n const errorPaths = Array.from(errorPathsSet)\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAMxC;;;;;AAKA,OAAO,MAAMC,kBAAA,GACXC,MAAA;EAEA,OAAO,OAAO;IAAEC,IAAI;IAAEC;EAAU,CAAE;IAChC,MAAMC,cAAA,GAAiBF,IAAA,CAAKG,MAAM,IAAK,CAAC;IAExC,MAAM;MACJC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,IAAI;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE,CACnE,GAAGT,UAAA;IAEJ;IACA,MAAMU,KAAA,GAAQZ,MAAA,CAAOa,IAAI,CAAED,KAAA,IAAUA,KAAA,CAAME,IAAI,KAAKX,cAAA,CAAeY,SAAS;IAE5E;IACA,IAAI,CAACH,KAAA,EAAO;MACV,OAAO,SAAST,cAAA,CAAeY,SAAS,YAAY;IACtD;IAEA;;;IAIA,MAAMC,MAAA,GAAS,MAAMlB,uBAAA,CAAwB;MAC3CQ,EAAA;MACAC,cAAA;MACAC,IAAA,EAAML,cAAA;MACNc,YAAA,EAAcT,IAAA;MACdJ,MAAA,EAAQQ,KAAA,CAAMR,MAAM;MACpBc,cAAA,EAAgBC,SAAA;MAChBC,gBAAA,EAAkBjB,cAAA;MAClBM,SAAA,EAAWA,SAAA,KAAc,YAAYA,SAAA,KAAc,WAAWA,SAAA,GAAY;MAC1EY,WAAA,EAAa,CAAC;MACdX,WAAA;MACAY,eAAA,EAAiB;MACjBX,GAAA;MACAY,UAAA,EAAY;IACd;IAEA,MAAMC,aAAA,GAAgB,IAAIC,GAAA;IAC1B,KAAK,MAAMC,QAAA,IAAYV,MAAA,EAAQ;MAC7B,MAAMW,UAAA,GAAaX,MAAM,CAACU,QAAA,CAAS;MACnC,IAAIC,UAAA,EAAYC,UAAA,EAAYC,MAAA,EAAQ;QAClC,KAAK,MAAMC,SAAA,IAAaH,UAAA,CAAWC,UAAU,EAAE;UAC7CJ,aAAA,CAAcO,GAAG,CAACD,SAAA;QACpB;MACF;IACF;IACA,MAAMF,UAAA,GAAaI,KAAA,CAAMC,IAAI,CAACT,aAAA;IAE9B,IAAII,UAAA,CAAWC,MAAM,EAAE;MACrB,OAAO,uCAAuCD,UAAA,CAAWM,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"validate.js","names":["fieldSchemasToFormState","blockValidationHOC","blocks","node","validation","blockFieldData","fields","options","id","collectionSlug","data","operation","preferences","req","block","find","slug","blockType","result","documentData","fieldSchemaMap","undefined","initialBlockData","permissions","renderAllFields","schemaPath","errorPathsSet","Set","fieldKey","fieldState","errorPaths","length","errorPath","add","Array","from","join"],"sources":["../../../../src/features/blocks/server/validate.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { BlockFields, SerializedBlockNode, SerializedInlineBlockNode } from './schema.js'\n\n/**\n * Runs validation for blocks. This function will determine if the rich text field itself is valid. It does not handle\n * block field error paths - this is done by the `beforeChangeTraverseFields` call in the `beforeChange` hook, called from the\n * rich text adapter.\n */\nexport const blockValidationHOC = (\n blocks: Block[],\n): NodeValidation<SerializedBlockNode | SerializedInlineBlockNode> => {\n return async ({ node, validation }) => {\n const blockFieldData = node.fields ?? ({} as BlockFields)\n\n const {\n options: { id, collectionSlug, data, operation, preferences, req },\n } = validation\n\n // find block\n const block = blocks.find((block) => block.slug === blockFieldData.blockType)\n\n // validate block\n if (!block) {\n return `Block ${blockFieldData.blockType} not found`\n }\n\n /**\n * Run fieldSchemasToFormState as that properly validates block and block sub-fields\n */\n\n const result = await fieldSchemasToFormState({\n id,\n collectionSlug,\n data: blockFieldData,\n documentData: data,\n fields: block.fields,\n fieldSchemaMap: undefined,\n initialBlockData: blockFieldData,\n operation: operation === 'create' || operation === 'update' ? operation : 'update',\n permissions: {},\n preferences,\n renderAllFields: false,\n req,\n schemaPath: '',\n })\n\n const errorPathsSet = new Set<string>()\n for (const fieldKey in result) {\n const fieldState = result[fieldKey]\n if (fieldState?.errorPaths?.length) {\n for (const errorPath of fieldState.errorPaths) {\n errorPathsSet.add(errorPath)\n }\n }\n }\n const errorPaths = Array.from(errorPathsSet)\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAKxC;;;;;AAKA,OAAO,MAAMC,kBAAA,GACXC,MAAA;EAEA,OAAO,OAAO;IAAEC,IAAI;IAAEC;EAAU,CAAE;IAChC,MAAMC,cAAA,GAAiBF,IAAA,CAAKG,MAAM,IAAK,CAAC;IAExC,MAAM;MACJC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,IAAI;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE,CACnE,GAAGT,UAAA;IAEJ;IACA,MAAMU,KAAA,GAAQZ,MAAA,CAAOa,IAAI,CAAED,KAAA,IAAUA,KAAA,CAAME,IAAI,KAAKX,cAAA,CAAeY,SAAS;IAE5E;IACA,IAAI,CAACH,KAAA,EAAO;MACV,OAAO,SAAST,cAAA,CAAeY,SAAS,YAAY;IACtD;IAEA;;;IAIA,MAAMC,MAAA,GAAS,MAAMlB,uBAAA,CAAwB;MAC3CQ,EAAA;MACAC,cAAA;MACAC,IAAA,EAAML,cAAA;MACNc,YAAA,EAAcT,IAAA;MACdJ,MAAA,EAAQQ,KAAA,CAAMR,MAAM;MACpBc,cAAA,EAAgBC,SAAA;MAChBC,gBAAA,EAAkBjB,cAAA;MAClBM,SAAA,EAAWA,SAAA,KAAc,YAAYA,SAAA,KAAc,WAAWA,SAAA,GAAY;MAC1EY,WAAA,EAAa,CAAC;MACdX,WAAA;MACAY,eAAA,EAAiB;MACjBX,GAAA;MACAY,UAAA,EAAY;IACd;IAEA,MAAMC,aAAA,GAAgB,IAAIC,GAAA;IAC1B,KAAK,MAAMC,QAAA,IAAYV,MAAA,EAAQ;MAC7B,MAAMW,UAAA,GAAaX,MAAM,CAACU,QAAA,CAAS;MACnC,IAAIC,UAAA,EAAYC,UAAA,EAAYC,MAAA,EAAQ;QAClC,KAAK,MAAMC,SAAA,IAAaH,UAAA,CAAWC,UAAU,EAAE;UAC7CJ,aAAA,CAAcO,GAAG,CAACD,SAAA;QACpB;MACF;IACF;IACA,MAAMF,UAAA,GAAaI,KAAA,CAAMC,IAAI,CAACT,aAAA;IAE9B,IAAII,UAAA,CAAWC,MAAM,EAAE;MACrB,OAAO,uCAAuCD,UAAA,CAAWM,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { type SerializedLexicalNode } from 'lexical';
2
2
  import type { SanitizedServerEditorConfig } from '../../../lexical/config/types.js';
3
- import type { DefaultNodeTypes, TypedEditorState } from '../../../nodeTypes.js';
3
+ import type { DefaultNodeTypes, TypedEditorState } from '../../../types/nodeTypes.js';
4
4
  export declare const convertHTMLToLexical: <TNodeTypes extends SerializedLexicalNode = DefaultNodeTypes>({ editorConfig, html, JSDOM, }: {
5
5
  editorConfig: SanitizedServerEditorConfig;
6
6
  html: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/converters/htmlToLexical/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE7E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAK/E,eAAO,MAAM,oBAAoB,GAAI,UAAU,SAAS,qBAAqB,qDAI1E;IACD,YAAY,EAAE,2BAA2B,CAAA;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,KAAK;QAC3B,MAAM,EAAE;YACN,QAAQ,EAAE,QAAQ,CAAA;SACnB,CAAA;KACF,CAAA;CACF,KAAG,gBAAgB,CAAC,UAAU,CA2B9B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/converters/htmlToLexical/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE7E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAKrF,eAAO,MAAM,oBAAoB,GAAI,UAAU,SAAS,qBAAqB,GAAG,gBAAgB,EAAE,gCAI/F;IACD,YAAY,EAAE,2BAA2B,CAAA;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,KAAK;QAC3B,MAAM,EAAE;YACN,QAAQ,EAAE,QAAQ,CAAA;SACnB,CAAA;KACF,CAAA;CACF,KAAG,gBAAgB,CAAC,UAAU,CA2B9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createHeadlessEditor","$getRoot","$getSelection","getEnabledNodes","$generateNodesFromDOM","convertHTMLToLexical","editorConfig","html","JSDOM","headlessEditor","nodes","update","dom","window","document","select","selection","Error","insertNodes","discrete","editorJSON","getEditorState","toJSON"],"sources":["../../../../src/features/converters/htmlToLexical/index.ts"],"sourcesContent":["import { createHeadlessEditor } from '@lexical/headless'\nimport { $getRoot, $getSelection, type SerializedLexicalNode } from 'lexical'\n\nimport type { SanitizedServerEditorConfig } from '../../../lexical/config/types.js'\nimport type { DefaultNodeTypes, TypedEditorState } from '../../../nodeTypes.js'\n\nimport { getEnabledNodes } from '../../../lexical/nodes/index.js'\nimport { $generateNodesFromDOM } from '../../../lexical-proxy/@lexical-html.js'\n\nexport const convertHTMLToLexical = <TNodeTypes extends SerializedLexicalNode = DefaultNodeTypes>({\n editorConfig,\n html,\n JSDOM,\n}: {\n editorConfig: SanitizedServerEditorConfig\n html: string\n JSDOM: new (html: string) => {\n window: {\n document: Document\n }\n }\n}): TypedEditorState<TNodeTypes> => {\n const headlessEditor = createHeadlessEditor({\n nodes: getEnabledNodes({\n editorConfig,\n }),\n })\n\n headlessEditor.update(\n () => {\n const dom = new JSDOM(html)\n\n const nodes = $generateNodesFromDOM(headlessEditor, dom.window.document)\n\n $getRoot().select()\n\n const selection = $getSelection()\n if (selection === null) {\n throw new Error('Selection is null')\n }\n selection.insertNodes(nodes)\n },\n { discrete: true },\n )\n\n const editorJSON = headlessEditor.getEditorState().toJSON()\n\n return editorJSON as TypedEditorState<TNodeTypes>\n}\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ;AACrC,SAASC,QAAQ,EAAEC,aAAa,QAAoC;AAKpE,SAASC,eAAe,QAAQ;AAChC,SAASC,qBAAqB,QAAQ;AAEtC,OAAO,MAAMC,oBAAA,GAAuBA,CAA8D;EAChGC,YAAY;EACZC,IAAI;EACJC;AAAK,CASN;EACC,MAAMC,cAAA,GAAiBT,oBAAA,CAAqB;IAC1CU,KAAA,EAAOP,eAAA,CAAgB;MACrBG;IACF;EACF;EAEAG,cAAA,CAAeE,MAAM,CACnB;IACE,MAAMC,GAAA,GAAM,IAAIJ,KAAA,CAAMD,IAAA;IAEtB,MAAMG,KAAA,GAAQN,qBAAA,CAAsBK,cAAA,EAAgBG,GAAA,CAAIC,MAAM,CAACC,QAAQ;IAEvEb,QAAA,GAAWc,MAAM;IAEjB,MAAMC,SAAA,GAAYd,aAAA;IAClB,IAAIc,SAAA,KAAc,MAAM;MACtB,MAAM,IAAIC,KAAA,CAAM;IAClB;IACAD,SAAA,CAAUE,WAAW,CAACR,KAAA;EACxB,GACA;IAAES,QAAA,EAAU;EAAK;EAGnB,MAAMC,UAAA,GAAaX,cAAA,CAAeY,cAAc,GAAGC,MAAM;EAEzD,OAAOF,UAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["createHeadlessEditor","$getRoot","$getSelection","getEnabledNodes","$generateNodesFromDOM","convertHTMLToLexical","editorConfig","html","JSDOM","headlessEditor","nodes","update","dom","window","document","select","selection","Error","insertNodes","discrete","editorJSON","getEditorState","toJSON"],"sources":["../../../../src/features/converters/htmlToLexical/index.ts"],"sourcesContent":["import { createHeadlessEditor } from '@lexical/headless'\nimport { $getRoot, $getSelection, type SerializedLexicalNode } from 'lexical'\n\nimport type { SanitizedServerEditorConfig } from '../../../lexical/config/types.js'\nimport type { DefaultNodeTypes, TypedEditorState } from '../../../types/nodeTypes.js'\n\nimport { getEnabledNodes } from '../../../lexical/nodes/index.js'\nimport { $generateNodesFromDOM } from '../../../lexical-proxy/@lexical-html.js'\n\nexport const convertHTMLToLexical = <TNodeTypes extends SerializedLexicalNode = DefaultNodeTypes>({\n editorConfig,\n html,\n JSDOM,\n}: {\n editorConfig: SanitizedServerEditorConfig\n html: string\n JSDOM: new (html: string) => {\n window: {\n document: Document\n }\n }\n}): TypedEditorState<TNodeTypes> => {\n const headlessEditor = createHeadlessEditor({\n nodes: getEnabledNodes({\n editorConfig,\n }),\n })\n\n headlessEditor.update(\n () => {\n const dom = new JSDOM(html)\n\n const nodes = $generateNodesFromDOM(headlessEditor, dom.window.document)\n\n $getRoot().select()\n\n const selection = $getSelection()\n if (selection === null) {\n throw new Error('Selection is null')\n }\n selection.insertNodes(nodes)\n },\n { discrete: true },\n )\n\n const editorJSON = headlessEditor.getEditorState().toJSON()\n\n return editorJSON as TypedEditorState<TNodeTypes>\n}\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ;AACrC,SAASC,QAAQ,EAAEC,aAAa,QAAoC;AAKpE,SAASC,eAAe,QAAQ;AAChC,SAASC,qBAAqB,QAAQ;AAEtC,OAAO,MAAMC,oBAAA,GAAuBA,CAA8D;EAChGC,YAAY;EACZC,IAAI;EACJC;AAAK,CASN;EACC,MAAMC,cAAA,GAAiBT,oBAAA,CAAqB;IAC1CU,KAAA,EAAOP,eAAA,CAAgB;MACrBG;IACF;EACF;EAEAG,cAAA,CAAeE,MAAM,CACnB;IACE,MAAMC,GAAA,GAAM,IAAIJ,KAAA,CAAMD,IAAA;IAEtB,MAAMG,KAAA,GAAQN,qBAAA,CAAsBK,cAAA,EAAgBG,GAAA,CAAIC,MAAM,CAACC,QAAQ;IAEvEb,QAAA,GAAWc,MAAM;IAEjB,MAAMC,SAAA,GAAYd,aAAA;IAClB,IAAIc,SAAA,KAAc,MAAM;MACtB,MAAM,IAAIC,KAAA,CAAM;IAClB;IACAD,SAAA,CAAUE,WAAW,CAACR,KAAA;EACxB,GACA;IAAES,QAAA,EAAU;EAAK;EAGnB,MAAMC,UAAA,GAAaX,cAAA,CAAeY,cAAc,GAAGC,MAAM;EAEzD,OAAOF,UAAA;AACT","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { SerializedQuoteNode } from '../../../../../nodeTypes.js';
1
+ import type { SerializedQuoteNode } from '../../../../../types/nodeTypes.js';
2
2
  import type { HTMLConvertersAsync } from '../types.js';
3
3
  export declare const BlockquoteHTMLConverterAsync: HTMLConvertersAsync<SerializedQuoteNode>;
4
4
  //# sourceMappingURL=blockquote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blockquote.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/blockquote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtD,eAAO,MAAM,4BAA4B,EAAE,mBAAmB,CAAC,mBAAmB,CAUjF,CAAA"}
1
+ {"version":3,"file":"blockquote.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/blockquote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtD,eAAO,MAAM,4BAA4B,EAAE,mBAAmB,CAAC,mBAAmB,CAUjF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"blockquote.js","names":["BlockquoteHTMLConverterAsync","quote","node","nodesToHTML","providedStyleTag","children","nodes","join"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/blockquote.ts"],"sourcesContent":["import type { SerializedQuoteNode } from '../../../../../nodeTypes.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nexport const BlockquoteHTMLConverterAsync: HTMLConvertersAsync<SerializedQuoteNode> = {\n quote: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n return `<blockquote${providedStyleTag}>${children}</blockquote>`\n },\n}\n"],"mappings":"AAGA,OAAO,MAAMA,4BAAA,GAAyE;EACpFC,KAAA,EAAO,MAAAA,CAAO;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IACnD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,OAAO,cAAcH,gBAAA,IAAoBC,QAAA,eAAuB;EAClE;AACF","ignoreList":[]}
1
+ {"version":3,"file":"blockquote.js","names":["BlockquoteHTMLConverterAsync","quote","node","nodesToHTML","providedStyleTag","children","nodes","join"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/blockquote.ts"],"sourcesContent":["import type { SerializedQuoteNode } from '../../../../../types/nodeTypes.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nexport const BlockquoteHTMLConverterAsync: HTMLConvertersAsync<SerializedQuoteNode> = {\n quote: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n return `<blockquote${providedStyleTag}>${children}</blockquote>`\n },\n}\n"],"mappings":"AAGA,OAAO,MAAMA,4BAAA,GAAyE;EACpFC,KAAA,EAAO,MAAAA,CAAO;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IACnD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,OAAO,cAAcH,gBAAA,IAAoBC,QAAA,eAAuB;EAClE;AACF","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { SerializedHeadingNode } from '../../../../../nodeTypes.js';
1
+ import type { SerializedHeadingNode } from '../../../../../types/nodeTypes.js';
2
2
  import type { HTMLConvertersAsync } from '../types.js';
3
3
  export declare const HeadingHTMLConverterAsync: HTMLConvertersAsync<SerializedHeadingNode>;
4
4
  //# sourceMappingURL=heading.d.ts.map