@payloadcms/richtext-lexical 3.0.0-beta.133 → 3.0.0-beta.135

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 (406) hide show
  1. package/dist/exports/client/Field-KKSJXHR7.js +2 -0
  2. package/dist/exports/client/Field-KKSJXHR7.js.map +7 -0
  3. package/dist/exports/client/bundled.css +1 -1
  4. package/dist/exports/client/chunk-2CYU43GM.js +2 -0
  5. package/dist/exports/client/chunk-2CYU43GM.js.map +7 -0
  6. package/dist/exports/client/chunk-C7S3V4EB.js +2 -0
  7. package/dist/exports/client/chunk-C7S3V4EB.js.map +7 -0
  8. package/dist/exports/client/chunk-QPPOQTHD.js +2 -0
  9. package/dist/exports/client/{chunk-OOBB5GCO.js.map → chunk-QPPOQTHD.js.map} +3 -3
  10. package/dist/exports/client/chunk-U7O7EYCP.js +2 -0
  11. package/dist/exports/client/chunk-U7O7EYCP.js.map +7 -0
  12. package/dist/exports/client/component-H3EYQ5KG.js +2 -0
  13. package/dist/exports/client/{component-YICNYPTU.js.map → component-H3EYQ5KG.js.map} +1 -1
  14. package/dist/exports/client/componentInline-ZGO3K4TA.js +2 -0
  15. package/dist/exports/client/componentInline-ZGO3K4TA.js.map +7 -0
  16. package/dist/exports/client/index.d.ts +7 -0
  17. package/dist/exports/client/index.d.ts.map +1 -1
  18. package/dist/exports/client/index.js +15 -13
  19. package/dist/exports/client/index.js.map +4 -4
  20. package/dist/exports/server/ast/mdx.d.ts +7 -0
  21. package/dist/exports/server/ast/mdx.d.ts.map +1 -0
  22. package/dist/exports/server/ast/mdx.js +37 -0
  23. package/dist/exports/server/ast/mdx.js.map +1 -0
  24. package/dist/exports/shared.d.ts +4 -0
  25. package/dist/exports/shared.d.ts.map +1 -0
  26. package/dist/exports/shared.js +4 -0
  27. package/dist/exports/shared.js.map +1 -0
  28. package/dist/features/blocks/client/component/BlockContent.d.ts +34 -9
  29. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  30. package/dist/features/blocks/client/component/BlockContent.js +63 -158
  31. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  32. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts +11 -0
  33. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts.map +1 -0
  34. package/dist/features/blocks/client/component/components/BlockCollapsible.js +37 -0
  35. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -0
  36. package/dist/features/blocks/client/component/components/BlockEditButton.d.ts +3 -0
  37. package/dist/features/blocks/client/component/components/BlockEditButton.d.ts.map +1 -0
  38. package/dist/features/blocks/client/component/components/BlockEditButton.js +22 -0
  39. package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -0
  40. package/dist/features/blocks/client/component/components/BlockRemoveButton.d.ts +3 -0
  41. package/dist/features/blocks/client/component/components/BlockRemoveButton.d.ts.map +1 -0
  42. package/dist/features/blocks/client/component/components/BlockRemoveButton.js +22 -0
  43. package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -0
  44. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  45. package/dist/features/blocks/client/component/index.js +242 -63
  46. package/dist/features/blocks/client/component/index.js.map +1 -1
  47. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts +5 -0
  48. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -0
  49. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +28 -0
  50. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -0
  51. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.d.ts +3 -0
  52. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.d.ts.map +1 -0
  53. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +22 -0
  54. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -0
  55. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.d.ts +3 -0
  56. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.d.ts.map +1 -0
  57. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +22 -0
  58. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -0
  59. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.d.ts +3 -0
  60. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.d.ts.map +1 -0
  61. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +22 -0
  62. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -0
  63. package/dist/features/blocks/client/componentInline/index.d.ts +13 -1
  64. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  65. package/dist/features/blocks/client/componentInline/index.js +219 -43
  66. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  67. package/dist/features/blocks/client/index.d.ts +1 -5
  68. package/dist/features/blocks/client/index.d.ts.map +1 -1
  69. package/dist/features/blocks/client/index.js +138 -157
  70. package/dist/features/blocks/client/index.js.map +1 -1
  71. package/dist/features/blocks/client/markdownTransformer.d.ts +16 -0
  72. package/dist/features/blocks/client/markdownTransformer.d.ts.map +1 -0
  73. package/dist/features/blocks/client/markdownTransformer.js +144 -0
  74. package/dist/features/blocks/client/markdownTransformer.js.map +1 -0
  75. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  76. package/dist/features/blocks/client/nodes/BlocksNode.js +1 -3
  77. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  78. package/dist/features/blocks/client/plugin/commands.d.ts +0 -4
  79. package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -1
  80. package/dist/features/blocks/client/plugin/commands.js +0 -1
  81. package/dist/features/blocks/client/plugin/commands.js.map +1 -1
  82. package/dist/features/blocks/client/plugin/index.d.ts +1 -2
  83. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  84. package/dist/features/blocks/client/plugin/index.js +28 -135
  85. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  86. package/dist/features/blocks/server/index.d.ts +1 -2
  87. package/dist/features/blocks/server/index.d.ts.map +1 -1
  88. package/dist/features/blocks/server/index.js +33 -10
  89. package/dist/features/blocks/server/index.js.map +1 -1
  90. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts +22 -0
  91. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts.map +1 -0
  92. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js +136 -0
  93. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js.map +1 -0
  94. package/dist/features/blocks/server/markdownTransformer.d.ts +22 -0
  95. package/dist/features/blocks/server/markdownTransformer.d.ts.map +1 -0
  96. package/dist/features/blocks/server/markdownTransformer.js +400 -0
  97. package/dist/features/blocks/server/markdownTransformer.js.map +1 -0
  98. package/dist/features/experimental_table/client/index.d.ts.map +1 -1
  99. package/dist/features/experimental_table/client/index.js +2 -0
  100. package/dist/features/experimental_table/client/index.js.map +1 -1
  101. package/dist/features/experimental_table/markdownTransformer.d.ts +5 -0
  102. package/dist/features/experimental_table/markdownTransformer.d.ts.map +1 -0
  103. package/dist/features/experimental_table/markdownTransformer.js +127 -0
  104. package/dist/features/experimental_table/markdownTransformer.js.map +1 -0
  105. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  106. package/dist/features/experimental_table/server/index.js +2 -0
  107. package/dist/features/experimental_table/server/index.js.map +1 -1
  108. package/dist/features/typesClient.d.ts +12 -19
  109. package/dist/features/typesClient.d.ts.map +1 -1
  110. package/dist/features/typesClient.js.map +1 -1
  111. package/dist/features/typesServer.d.ts +6 -2
  112. package/dist/features/typesServer.d.ts.map +1 -1
  113. package/dist/features/typesServer.js.map +1 -1
  114. package/dist/field/Field.d.ts.map +1 -1
  115. package/dist/field/Field.js +10 -21
  116. package/dist/field/Field.js.map +1 -1
  117. package/dist/field/bundled.css +1 -1
  118. package/dist/field/index.d.ts.map +1 -1
  119. package/dist/field/index.js +23 -14
  120. package/dist/field/index.js.map +1 -1
  121. package/dist/field/rscEntry.d.ts.map +1 -1
  122. package/dist/field/rscEntry.js +23 -1
  123. package/dist/field/rscEntry.js.map +1 -1
  124. package/dist/index.d.ts +4 -1
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +4 -1
  127. package/dist/index.js.map +1 -1
  128. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  129. package/dist/lexical/LexicalProvider.js +9 -18
  130. package/dist/lexical/LexicalProvider.js.map +1 -1
  131. package/dist/lexical/config/client/loader.d.ts +6 -1
  132. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  133. package/dist/lexical/config/client/loader.js +6 -0
  134. package/dist/lexical/config/client/loader.js.map +1 -1
  135. package/dist/lexical/config/client/sanitize.js +15 -14
  136. package/dist/lexical/config/client/sanitize.js.map +1 -1
  137. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  138. package/dist/lexical/config/server/sanitize.js +15 -2
  139. package/dist/lexical/config/server/sanitize.js.map +1 -1
  140. package/dist/lexical/nodes/index.d.ts +4 -0
  141. package/dist/lexical/nodes/index.d.ts.map +1 -1
  142. package/dist/lexical/nodes/index.js +8 -1
  143. package/dist/lexical/nodes/index.js.map +1 -1
  144. package/dist/lexical-proxy/@lexical-headless.d.ts +2 -0
  145. package/dist/lexical-proxy/@lexical-headless.d.ts.map +1 -0
  146. package/dist/lexical-proxy/@lexical-headless.js +2 -0
  147. package/dist/lexical-proxy/@lexical-headless.js.map +1 -0
  148. package/dist/lexical-proxy/@lexical-link.d.ts +2 -0
  149. package/dist/lexical-proxy/@lexical-link.d.ts.map +1 -0
  150. package/dist/lexical-proxy/@lexical-link.js +2 -0
  151. package/dist/lexical-proxy/@lexical-link.js.map +1 -0
  152. package/dist/lexical-proxy/@lexical-list.d.ts +2 -0
  153. package/dist/lexical-proxy/@lexical-list.d.ts.map +1 -0
  154. package/dist/lexical-proxy/@lexical-list.js +2 -0
  155. package/dist/lexical-proxy/@lexical-list.js.map +1 -0
  156. package/dist/lexical-proxy/@lexical-mark.d.ts +2 -0
  157. package/dist/lexical-proxy/@lexical-mark.d.ts.map +1 -0
  158. package/dist/lexical-proxy/@lexical-mark.js +2 -0
  159. package/dist/lexical-proxy/@lexical-mark.js.map +1 -0
  160. package/dist/lexical-proxy/@lexical-markdown.d.ts +2 -0
  161. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -0
  162. package/dist/lexical-proxy/@lexical-markdown.js +2 -0
  163. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -0
  164. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.d.ts +2 -0
  165. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.d.ts.map +1 -0
  166. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js +2 -0
  167. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js.map +1 -0
  168. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.d.ts +2 -0
  169. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.d.ts.map +1 -0
  170. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js +2 -0
  171. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js.map +1 -0
  172. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.d.ts +2 -0
  173. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.d.ts.map +1 -0
  174. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js +2 -0
  175. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js.map +1 -0
  176. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.d.ts +2 -0
  177. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.d.ts.map +1 -0
  178. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js +2 -0
  179. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js.map +1 -0
  180. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.d.ts +2 -0
  181. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.d.ts.map +1 -0
  182. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js +2 -0
  183. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js.map +1 -0
  184. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.d.ts +2 -0
  185. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.d.ts.map +1 -0
  186. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js +2 -0
  187. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js.map +1 -0
  188. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.d.ts +2 -0
  189. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.d.ts.map +1 -0
  190. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js +2 -0
  191. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js.map +1 -0
  192. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.d.ts +2 -0
  193. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.d.ts.map +1 -0
  194. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js +2 -0
  195. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js.map +1 -0
  196. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.d.ts +2 -0
  197. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.d.ts.map +1 -0
  198. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js +2 -0
  199. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js.map +1 -0
  200. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.d.ts +2 -0
  201. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.d.ts.map +1 -0
  202. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js +2 -0
  203. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js.map +1 -0
  204. package/dist/lexical-proxy/@lexical-react/LexicalComposer.d.ts +2 -0
  205. package/dist/lexical-proxy/@lexical-react/LexicalComposer.d.ts.map +1 -0
  206. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js +2 -0
  207. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js.map +1 -0
  208. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.d.ts +2 -0
  209. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.d.ts.map +1 -0
  210. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js +2 -0
  211. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js.map +1 -0
  212. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.d.ts +2 -0
  213. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.d.ts.map +1 -0
  214. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js +2 -0
  215. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js.map +1 -0
  216. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +2 -0
  217. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +1 -0
  218. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +2 -0
  219. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +1 -0
  220. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.d.ts +2 -0
  221. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.d.ts.map +1 -0
  222. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js +2 -0
  223. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js.map +1 -0
  224. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.d.ts +2 -0
  225. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.d.ts.map +1 -0
  226. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js +2 -0
  227. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js.map +1 -0
  228. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.d.ts +2 -0
  229. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.d.ts.map +1 -0
  230. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js +2 -0
  231. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js.map +1 -0
  232. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.d.ts +2 -0
  233. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.d.ts.map +1 -0
  234. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js +2 -0
  235. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js.map +1 -0
  236. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.d.ts +2 -0
  237. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.d.ts.map +1 -0
  238. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js +2 -0
  239. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js.map +1 -0
  240. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.d.ts +2 -0
  241. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.d.ts.map +1 -0
  242. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js +2 -0
  243. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js.map +1 -0
  244. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.d.ts +2 -0
  245. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.d.ts.map +1 -0
  246. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js +2 -0
  247. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js.map +1 -0
  248. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.d.ts +2 -0
  249. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.d.ts.map +1 -0
  250. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js +2 -0
  251. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js.map +1 -0
  252. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.d.ts +2 -0
  253. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.d.ts.map +1 -0
  254. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js +2 -0
  255. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js.map +1 -0
  256. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.d.ts +2 -0
  257. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.d.ts.map +1 -0
  258. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js +2 -0
  259. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js.map +1 -0
  260. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.d.ts +2 -0
  261. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.d.ts.map +1 -0
  262. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js +2 -0
  263. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js.map +1 -0
  264. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.d.ts +2 -0
  265. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.d.ts.map +1 -0
  266. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js +2 -0
  267. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js.map +1 -0
  268. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.d.ts +2 -0
  269. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.d.ts.map +1 -0
  270. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js +2 -0
  271. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js.map +1 -0
  272. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.d.ts +2 -0
  273. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.d.ts.map +1 -0
  274. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js +2 -0
  275. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js.map +1 -0
  276. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.d.ts +2 -0
  277. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.d.ts.map +1 -0
  278. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js +2 -0
  279. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js.map +1 -0
  280. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.d.ts +2 -0
  281. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.d.ts.map +1 -0
  282. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js +2 -0
  283. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js.map +1 -0
  284. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.d.ts +2 -0
  285. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.d.ts.map +1 -0
  286. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js +2 -0
  287. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js.map +1 -0
  288. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.d.ts +2 -0
  289. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.d.ts.map +1 -0
  290. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js +2 -0
  291. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js.map +1 -0
  292. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.d.ts +2 -0
  293. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.d.ts.map +1 -0
  294. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.js +2 -0
  295. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.js.map +1 -0
  296. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.d.ts +2 -0
  297. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.d.ts.map +1 -0
  298. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js +2 -0
  299. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js.map +1 -0
  300. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.d.ts +2 -0
  301. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.d.ts.map +1 -0
  302. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js +2 -0
  303. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js.map +1 -0
  304. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.d.ts +2 -0
  305. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.d.ts.map +1 -0
  306. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js +2 -0
  307. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js.map +1 -0
  308. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.d.ts +2 -0
  309. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.d.ts.map +1 -0
  310. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js +2 -0
  311. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js.map +1 -0
  312. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.d.ts +2 -0
  313. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.d.ts.map +1 -0
  314. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js +2 -0
  315. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js.map +1 -0
  316. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.d.ts +2 -0
  317. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.d.ts.map +1 -0
  318. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js +2 -0
  319. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js.map +1 -0
  320. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.d.ts +2 -0
  321. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.d.ts.map +1 -0
  322. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js +2 -0
  323. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js.map +1 -0
  324. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.d.ts +2 -0
  325. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.d.ts.map +1 -0
  326. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js +2 -0
  327. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js.map +1 -0
  328. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.d.ts +2 -0
  329. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.d.ts.map +1 -0
  330. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js +2 -0
  331. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js.map +1 -0
  332. package/dist/lexical-proxy/@lexical-rich-text.d.ts +2 -0
  333. package/dist/lexical-proxy/@lexical-rich-text.d.ts.map +1 -0
  334. package/dist/lexical-proxy/@lexical-rich-text.js +2 -0
  335. package/dist/lexical-proxy/@lexical-rich-text.js.map +1 -0
  336. package/dist/lexical-proxy/@lexical-selection.d.ts +2 -0
  337. package/dist/lexical-proxy/@lexical-selection.d.ts.map +1 -0
  338. package/dist/lexical-proxy/@lexical-selection.js +2 -0
  339. package/dist/lexical-proxy/@lexical-selection.js.map +1 -0
  340. package/dist/lexical-proxy/@lexical-utils.d.ts +2 -0
  341. package/dist/lexical-proxy/@lexical-utils.d.ts.map +1 -0
  342. package/dist/lexical-proxy/@lexical-utils.js +2 -0
  343. package/dist/lexical-proxy/@lexical-utils.js.map +1 -0
  344. package/dist/lexical-proxy/lexical.d.ts +2 -0
  345. package/dist/lexical-proxy/lexical.d.ts.map +1 -0
  346. package/dist/lexical-proxy/lexical.js +2 -0
  347. package/dist/lexical-proxy/lexical.js.map +1 -0
  348. package/dist/types.d.ts +2 -0
  349. package/dist/types.d.ts.map +1 -1
  350. package/dist/types.js.map +1 -1
  351. package/dist/utilities/buildInitialState.d.ts +27 -0
  352. package/dist/utilities/buildInitialState.d.ts.map +1 -0
  353. package/dist/utilities/buildInitialState.js +53 -0
  354. package/dist/utilities/buildInitialState.js.map +1 -0
  355. package/dist/utilities/createClientFeature.d.ts +5 -0
  356. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  357. package/dist/utilities/createClientFeature.js +6 -0
  358. package/dist/utilities/createClientFeature.js.map +1 -1
  359. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  360. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -5
  361. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  362. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  363. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +8 -8
  364. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -1
  365. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
  366. package/dist/utilities/initLexicalFeatures.js +3 -2
  367. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  368. package/dist/utilities/jsx/collectTopLevelJSXInLines.d.ts +52 -0
  369. package/dist/utilities/jsx/collectTopLevelJSXInLines.d.ts.map +1 -0
  370. package/dist/utilities/jsx/collectTopLevelJSXInLines.js +79 -0
  371. package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -0
  372. package/dist/utilities/jsx/extractPropsFromJSXPropsString.d.ts +12 -0
  373. package/dist/utilities/jsx/extractPropsFromJSXPropsString.d.ts.map +1 -0
  374. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js +125 -0
  375. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js.map +1 -0
  376. package/dist/utilities/jsx/jsx.d.ts +26 -0
  377. package/dist/utilities/jsx/jsx.d.ts.map +1 -0
  378. package/dist/utilities/jsx/jsx.js +105 -0
  379. package/dist/utilities/jsx/jsx.js.map +1 -0
  380. package/dist/utilities/jsx/jsx.spec.d.ts +2 -0
  381. package/dist/utilities/jsx/jsx.spec.d.ts.map +1 -0
  382. package/dist/utilities/jsx/jsx.spec.js +142 -0
  383. package/dist/utilities/jsx/jsx.spec.js.map +1 -0
  384. package/dist/utilities/jsx/lexicalMarkdownCopy.d.ts +11 -0
  385. package/dist/utilities/jsx/lexicalMarkdownCopy.d.ts.map +1 -0
  386. package/dist/utilities/jsx/lexicalMarkdownCopy.js +61 -0
  387. package/dist/utilities/jsx/lexicalMarkdownCopy.js.map +1 -0
  388. package/package.json +284 -7
  389. package/dist/exports/client/Field-GWJ72IYP.js +0 -2
  390. package/dist/exports/client/Field-GWJ72IYP.js.map +0 -7
  391. package/dist/exports/client/chunk-D7PD5DUW.js +0 -2
  392. package/dist/exports/client/chunk-D7PD5DUW.js.map +0 -7
  393. package/dist/exports/client/chunk-OOBB5GCO.js +0 -2
  394. package/dist/exports/client/chunk-XDEGE6I5.js +0 -2
  395. package/dist/exports/client/chunk-XDEGE6I5.js.map +0 -7
  396. package/dist/exports/client/chunk-YGRKYSDC.js +0 -2
  397. package/dist/exports/client/chunk-YGRKYSDC.js.map +0 -7
  398. package/dist/exports/client/component-KLNTKKNE.js +0 -2
  399. package/dist/exports/client/component-KLNTKKNE.js.map +0 -7
  400. package/dist/exports/client/component-YICNYPTU.js +0 -2
  401. package/dist/exports/client/componentInline-6RPSMLNJ.js +0 -2
  402. package/dist/exports/client/componentInline-6RPSMLNJ.js.map +0 -7
  403. package/dist/features/blocks/client/component/FormSavePlugin.d.ts +0 -11
  404. package/dist/features/blocks/client/component/FormSavePlugin.d.ts.map +0 -1
  405. package/dist/features/blocks/client/component/FormSavePlugin.js +0 -53
  406. package/dist/features/blocks/client/component/FormSavePlugin.js.map +0 -1
@@ -38,31 +38,20 @@ export const LexicalProvider = props => {
38
38
  } = props;
39
39
  const parentContext = useEditorConfigContext();
40
40
  const editorContainerRef = React.useRef(null);
41
- const processedValue = useMemo(() => {
42
- let processed = value;
43
- if (editorConfig?.features?.hooks?.load?.length) {
44
- editorConfig.features.hooks.load.forEach(hook => {
45
- processed = hook({
46
- incomingEditorState: processed
47
- });
48
- });
49
- }
50
- return processed;
51
- }, [editorConfig, value]);
52
- // useMemo for the initialConfig that depends on readOnly and processedValue
41
+ // useMemo for the initialConfig that depends on readOnly and value
53
42
  const initialConfig = useMemo(() => {
54
- if (processedValue && typeof processedValue !== 'object') {
55
- throw new Error('The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' + JSON.stringify(processedValue));
43
+ if (value && typeof value !== 'object') {
44
+ throw new Error('The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' + JSON.stringify(value));
56
45
  }
57
- if (processedValue && Array.isArray(processedValue) && !('root' in processedValue)) {
46
+ if (value && Array.isArray(value) && !('root' in value)) {
58
47
  throw new Error('You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/beta/lexical/migration#migration-via-migration-script-recommended');
59
48
  }
60
- if (processedValue && 'jsonContent' in processedValue) {
49
+ if (value && 'jsonContent' in value) {
61
50
  throw new Error('You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/beta/lexical/migration#migrating-from-payload-plugin-lexical');
62
51
  }
63
52
  return {
64
53
  editable: readOnly !== true,
65
- editorState: processedValue != null ? JSON.stringify(processedValue) : undefined,
54
+ editorState: value != null ? JSON.stringify(value) : undefined,
66
55
  namespace: editorConfig.lexical.namespace,
67
56
  nodes: getEnabledNodes({
68
57
  editorConfig
@@ -72,7 +61,9 @@ export const LexicalProvider = props => {
72
61
  },
73
62
  theme: editorConfig.lexical.theme
74
63
  };
75
- }, [editorConfig, processedValue, readOnly]);
64
+ // Important: do not add readOnly and value to the dependencies array. This will cause the entire lexical editor to re-render if the document is saved, which will
65
+ // cause the editor to lose focus.
66
+ }, [editorConfig]);
76
67
  if (!initialConfig) {
77
68
  return /*#__PURE__*/_jsx("p", {
78
69
  children: "Loading..."
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalProvider.js","names":["LexicalComposer","React","useMemo","EditorConfigProvider","useEditorConfigContext","LexicalEditor","LexicalEditorComponent","getEnabledNodes","NestProviders","children","providers","length","Component","_jsx","slice","LexicalProvider","props","composerKey","editorConfig","fieldProps","onChange","readOnly","value","parentContext","editorContainerRef","useRef","processedValue","processed","features","hooks","load","forEach","hook","incomingEditorState","initialConfig","Error","JSON","stringify","Array","isArray","editable","editorState","undefined","namespace","lexical","nodes","onError","error","theme"],"sources":["../../src/lexical/LexicalProvider.tsx"],"sourcesContent":["'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\nimport type { ClientField } from 'payload'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n composerKey: string\n editorConfig: SanitizedClientEditorConfig\n fieldProps: LexicalRichTextFieldProps\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n readOnly: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({ children, providers }) => {\n if (!providers?.length) {\n return children\n }\n const Component = providers[0]\n if (providers.length > 1) {\n return (\n <Component>\n <NestProviders providers={providers.slice(1)}>{children}</NestProviders>\n </Component>\n )\n }\n return <Component>{children}</Component>\n}\n\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const { composerKey, editorConfig, fieldProps, onChange, readOnly, value } = props\n\n const parentContext = useEditorConfigContext()\n\n const editorContainerRef = React.useRef<HTMLDivElement>(null)\n\n const processedValue = useMemo(() => {\n let processed = value\n if (editorConfig?.features?.hooks?.load?.length) {\n editorConfig.features.hooks.load.forEach((hook) => {\n processed = hook({ incomingEditorState: processed })\n })\n }\n return processed\n }, [editorConfig, value])\n\n // useMemo for the initialConfig that depends on readOnly and processedValue\n const initialConfig = useMemo<InitialConfigType>(() => {\n if (processedValue && typeof processedValue !== 'object') {\n throw new Error(\n 'The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' +\n JSON.stringify(processedValue),\n )\n }\n\n if (processedValue && Array.isArray(processedValue) && !('root' in processedValue)) {\n throw new Error(\n 'You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/beta/lexical/migration#migration-via-migration-script-recommended',\n )\n }\n\n if (processedValue && 'jsonContent' in processedValue) {\n throw new Error(\n 'You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/beta/lexical/migration#migrating-from-payload-plugin-lexical',\n )\n }\n\n return {\n editable: readOnly !== true,\n editorState: processedValue != null ? JSON.stringify(processedValue) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: getEnabledNodes({ editorConfig }),\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n }, [editorConfig, processedValue, readOnly])\n\n if (!initialConfig) {\n return <p>Loading...</p>\n }\n\n // We need to add initialConfig.editable to the key to force a re-render when the readOnly prop changes.\n // Without it, there were cases where lexical editors inside drawers turn readOnly initially - a few miliseconds later they turn editable, but the editor does not re-render and stays readOnly.\n return (\n <LexicalComposer initialConfig={initialConfig} key={composerKey + initialConfig.editable}>\n <EditorConfigProvider\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n fieldProps={fieldProps}\n parentContext={parentContext}\n >\n <NestProviders providers={editorConfig.features.providers}>\n <LexicalEditorComponent\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n onChange={onChange}\n />\n </NestProviders>\n </EditorConfigProvider>\n </LexicalComposer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LexicalProvider.js","names":["LexicalComposer","React","useMemo","EditorConfigProvider","useEditorConfigContext","LexicalEditor","LexicalEditorComponent","getEnabledNodes","NestProviders","children","providers","length","Component","_jsx","slice","LexicalProvider","props","composerKey","editorConfig","fieldProps","onChange","readOnly","value","parentContext","editorContainerRef","useRef","initialConfig","Error","JSON","stringify","Array","isArray","editable","editorState","undefined","namespace","lexical","nodes","onError","error","theme","features"],"sources":["../../src/lexical/LexicalProvider.tsx"],"sourcesContent":["'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\nimport type { ClientField } from 'payload'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n composerKey: string\n editorConfig: SanitizedClientEditorConfig\n fieldProps: LexicalRichTextFieldProps\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n readOnly: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({ children, providers }) => {\n if (!providers?.length) {\n return children\n }\n const Component = providers[0]\n if (providers.length > 1) {\n return (\n <Component>\n <NestProviders providers={providers.slice(1)}>{children}</NestProviders>\n </Component>\n )\n }\n return <Component>{children}</Component>\n}\n\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const { composerKey, editorConfig, fieldProps, onChange, readOnly, value } = props\n\n const parentContext = useEditorConfigContext()\n\n const editorContainerRef = React.useRef<HTMLDivElement>(null)\n\n // useMemo for the initialConfig that depends on readOnly and value\n const initialConfig = useMemo<InitialConfigType>(() => {\n if (value && typeof value !== 'object') {\n throw new Error(\n 'The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' +\n JSON.stringify(value),\n )\n }\n\n if (value && Array.isArray(value) && !('root' in value)) {\n throw new Error(\n 'You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/beta/lexical/migration#migration-via-migration-script-recommended',\n )\n }\n\n if (value && 'jsonContent' in value) {\n throw new Error(\n 'You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/beta/lexical/migration#migrating-from-payload-plugin-lexical',\n )\n }\n\n return {\n editable: readOnly !== true,\n editorState: value != null ? JSON.stringify(value) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: getEnabledNodes({ editorConfig }),\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n // Important: do not add readOnly and value to the dependencies array. This will cause the entire lexical editor to re-render if the document is saved, which will\n // cause the editor to lose focus.\n }, [editorConfig])\n\n if (!initialConfig) {\n return <p>Loading...</p>\n }\n\n // We need to add initialConfig.editable to the key to force a re-render when the readOnly prop changes.\n // Without it, there were cases where lexical editors inside drawers turn readOnly initially - a few miliseconds later they turn editable, but the editor does not re-render and stays readOnly.\n return (\n <LexicalComposer initialConfig={initialConfig} key={composerKey + initialConfig.editable}>\n <EditorConfigProvider\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n fieldProps={fieldProps}\n parentContext={parentContext}\n >\n <NestProviders providers={editorConfig.features.providers}>\n <LexicalEditorComponent\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n onChange={onChange}\n />\n </NestProviders>\n </EditorConfigProvider>\n </LexicalComposer>\n )\n}\n"],"mappings":"AAAA;;;AAKA,SAASA,eAAe,QAAQ;AAChC,YAAYC,KAAA,MAAW;AACvB,SAASC,OAAO,QAAQ;AAKxB,SACEC,oBAAoB,EACpBC,sBAAsB,QACjB;AACP,SAASC,aAAA,IAAiBC,sBAAsB,QAAQ;AACxD,SAASC,eAAe,QAAQ;AAWhC,MAAMC,aAAA,GAAgBA,CAAC;EAAEC,QAAQ;EAAEC;AAAS,CAAE;EAC5C,IAAI,CAACA,SAAA,EAAWC,MAAA,EAAQ;IACtB,OAAOF,QAAA;EACT;EACA,MAAMG,SAAA,GAAYF,SAAS,CAAC,EAAE;EAC9B,IAAIA,SAAA,CAAUC,MAAM,GAAG,GAAG;IACxB,oBACEE,IAAA,CAACD,SAAA;gBACC,aAAAC,IAAA,CAACL,aAAA;QAAcE,SAAA,EAAWA,SAAA,CAAUI,KAAK,CAAC;kBAAKL;;;EAGrD;EACA,oBAAOI,IAAA,CAACD,SAAA;cAAWH;;AACrB;AAEA,OAAO,MAAMM,eAAA,GAAmDC,KAAA;EAC9D,MAAM;IAAEC,WAAW;IAAEC,YAAY;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAK,CAAE,GAAGN,KAAA;EAE7E,MAAMO,aAAA,GAAgBnB,sBAAA;EAEtB,MAAMoB,kBAAA,GAAqBvB,KAAA,CAAMwB,MAAM,CAAiB;EAExD;EACA,MAAMC,aAAA,GAAgBxB,OAAA,CAA2B;IAC/C,IAAIoB,KAAA,IAAS,OAAOA,KAAA,KAAU,UAAU;MACtC,MAAM,IAAIK,KAAA,CACR,kLACEC,IAAA,CAAKC,SAAS,CAACP,KAAA;IAErB;IAEA,IAAIA,KAAA,IAASQ,KAAA,CAAMC,OAAO,CAACT,KAAA,KAAU,EAAE,UAAUA,KAAI,GAAI;MACvD,MAAM,IAAIK,KAAA,CACR;IAEJ;IAEA,IAAIL,KAAA,IAAS,iBAAiBA,KAAA,EAAO;MACnC,MAAM,IAAIK,KAAA,CACR;IAEJ;IAEA,OAAO;MACLK,QAAA,EAAUX,QAAA,KAAa;MACvBY,WAAA,EAAaX,KAAA,IAAS,OAAOM,IAAA,CAAKC,SAAS,CAACP,KAAA,IAASY,SAAA;MACrDC,SAAA,EAAWjB,YAAA,CAAakB,OAAO,CAACD,SAAS;MACzCE,KAAA,EAAO9B,eAAA,CAAgB;QAAEW;MAAa;MACtCoB,OAAA,EAAUC,KAAA;QACR,MAAMA,KAAA;MACR;MACAC,KAAA,EAAOtB,YAAA,CAAakB,OAAO,CAACI;IAC9B;IACA;IACA;EACF,GAAG,CAACtB,YAAA,CAAa;EAEjB,IAAI,CAACQ,aAAA,EAAe;IAClB,oBAAOb,IAAA,CAAC;gBAAE;;EACZ;EAEA;EACA;EACA,oBACEA,IAAA,CAACb,eAAA;IAAgB0B,aAAA,EAAeA,aAAA;cAC9B,aAAAb,IAAA,CAACV,oBAAA;MACCe,YAAA,EAAcA,YAAA;MACdM,kBAAA,EAAoBA,kBAAA;MACpBL,UAAA,EAAYA,UAAA;MACZI,aAAA,EAAeA,aAAA;gBAEf,aAAAV,IAAA,CAACL,aAAA;QAAcE,SAAA,EAAWQ,YAAA,CAAauB,QAAQ,CAAC/B,SAAS;kBACvD,aAAAG,IAAA,CAACP,sBAAA;UACCY,YAAA,EAAcA,YAAA;UACdM,kBAAA,EAAoBA,kBAAA;UACpBJ,QAAA,EAAUA;;;;KAXkCH,WAAA,GAAcS,aAAA,CAAcM,QAAQ;AAiB5F","ignoreList":[]}
@@ -1,10 +1,15 @@
1
+ import type { RichTextFieldClient } from 'payload';
1
2
  import type { ResolvedClientFeatureMap } from '../../../features/typesClient.js';
3
+ import type { FeatureClientSchemaMap } from '../../../types.js';
2
4
  import type { ClientEditorConfig } from '../types.js';
3
5
  /**
4
6
  * This function expects client functions to ALREADY be ordered & dependencies checked on the server
5
7
  * @param unSanitizedEditorConfig
6
8
  */
7
- export declare function loadClientFeatures({ unSanitizedEditorConfig, }: {
9
+ export declare function loadClientFeatures({ featureClientSchemaMap, field, schemaPath, unSanitizedEditorConfig, }: {
10
+ featureClientSchemaMap: FeatureClientSchemaMap;
11
+ field?: RichTextFieldClient;
12
+ schemaPath: string;
8
13
  unSanitizedEditorConfig: ClientEditorConfig;
9
14
  }): ResolvedClientFeatureMap;
10
15
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/lexical/config/client/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,wBAAwB,EACzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,uBAAuB,GACxB,EAAE;IACD,uBAAuB,EAAE,kBAAkB,CAAA;CAC5C,GAAG,wBAAwB,CAiD3B"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/lexical/config/client/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElD,OAAO,KAAK,EAGV,wBAAwB,EACzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,sBAAsB,EACtB,KAAK,EACL,UAAU,EACV,uBAAuB,GACxB,EAAE;IACD,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,uBAAuB,EAAE,kBAAkB,CAAA;CAC5C,GAAG,wBAAwB,CAoD3B"}
@@ -5,6 +5,9 @@
5
5
  * @param unSanitizedEditorConfig
6
6
  */
7
7
  export function loadClientFeatures({
8
+ featureClientSchemaMap,
9
+ field,
10
+ schemaPath,
8
11
  unSanitizedEditorConfig
9
12
  }) {
10
13
  for (const featureProvider of unSanitizedEditorConfig.features) {
@@ -23,8 +26,11 @@ export function loadClientFeatures({
23
26
  let loaded = 0;
24
27
  for (const featureProvider of unSanitizedEditorConfig.features) {
25
28
  const feature = typeof featureProvider.feature === 'function' ? featureProvider.feature({
29
+ featureClientSchemaMap,
26
30
  featureProviderMap,
31
+ field,
27
32
  resolvedFeatures,
33
+ schemaPath,
28
34
  unSanitizedEditorConfig
29
35
  }) : featureProvider.feature;
30
36
  feature.key = featureProvider.clientFeatureProps.featureKey;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","names":["loadClientFeatures","unSanitizedEditorConfig","featureProvider","features","clientFeatureProps","featureKey","order","undefined","Error","sort","a","b","featureProviderMap","Map","feature","set","resolvedFeatures","loaded","key"],"sources":["../../../../src/lexical/config/client/loader.ts"],"sourcesContent":["'use client'\n\nimport type {\n ClientFeatureProviderMap,\n ResolvedClientFeature,\n ResolvedClientFeatureMap,\n} from '../../../features/typesClient.js'\nimport type { ClientEditorConfig } from '../types.js'\n\n/**\n * This function expects client functions to ALREADY be ordered & dependencies checked on the server\n * @param unSanitizedEditorConfig\n */\nexport function loadClientFeatures({\n unSanitizedEditorConfig,\n}: {\n unSanitizedEditorConfig: ClientEditorConfig\n}): ResolvedClientFeatureMap {\n for (const featureProvider of unSanitizedEditorConfig.features) {\n if (\n !featureProvider?.clientFeatureProps?.featureKey ||\n featureProvider?.clientFeatureProps?.order === undefined ||\n featureProvider?.clientFeatureProps?.order === null\n ) {\n throw new Error(\n 'A Feature you have installed does not return the client props as clientFeatureProps. Please make sure to always return those props, even if they are null, as other important props like order and featureKey are later on injected.',\n )\n }\n }\n\n // sort unSanitizedEditorConfig.features by order\n unSanitizedEditorConfig.features = unSanitizedEditorConfig.features.sort(\n (a, b) => a.clientFeatureProps.order - b.clientFeatureProps.order,\n )\n\n const featureProviderMap: ClientFeatureProviderMap = new Map()\n for (const feature of unSanitizedEditorConfig.features) {\n featureProviderMap.set(feature.clientFeatureProps.featureKey, feature)\n }\n\n const resolvedFeatures: ResolvedClientFeatureMap = new Map()\n\n // Make sure all dependencies declared in the respective features exist\n let loaded = 0\n for (const featureProvider of unSanitizedEditorConfig.features) {\n const feature: Partial<ResolvedClientFeature<any>> =\n typeof featureProvider.feature === 'function'\n ? featureProvider.feature({\n featureProviderMap,\n resolvedFeatures,\n unSanitizedEditorConfig,\n })\n : featureProvider.feature\n\n feature.key = featureProvider.clientFeatureProps.featureKey\n feature.order = loaded\n\n resolvedFeatures.set(\n featureProvider.clientFeatureProps.featureKey,\n feature as ResolvedClientFeature<any>,\n )\n\n loaded++\n }\n\n return resolvedFeatures\n}\n"],"mappings":"AAAA;;AASA;;;;AAIA,OAAO,SAASA,mBAAmB;EACjCC;AAAuB,CAGxB;EACC,KAAK,MAAMC,eAAA,IAAmBD,uBAAA,CAAwBE,QAAQ,EAAE;IAC9D,IACE,CAACD,eAAA,EAAiBE,kBAAA,EAAoBC,UAAA,IACtCH,eAAA,EAAiBE,kBAAA,EAAoBE,KAAA,KAAUC,SAAA,IAC/CL,eAAA,EAAiBE,kBAAA,EAAoBE,KAAA,KAAU,MAC/C;MACA,MAAM,IAAIE,KAAA,CACR;IAEJ;EACF;EAEA;EACAP,uBAAA,CAAwBE,QAAQ,GAAGF,uBAAA,CAAwBE,QAAQ,CAACM,IAAI,CACtE,CAACC,CAAA,EAAGC,CAAA,KAAMD,CAAA,CAAEN,kBAAkB,CAACE,KAAK,GAAGK,CAAA,CAAEP,kBAAkB,CAACE,KAAK;EAGnE,MAAMM,kBAAA,GAA+C,IAAIC,GAAA;EACzD,KAAK,MAAMC,OAAA,IAAWb,uBAAA,CAAwBE,QAAQ,EAAE;IACtDS,kBAAA,CAAmBG,GAAG,CAACD,OAAA,CAAQV,kBAAkB,CAACC,UAAU,EAAES,OAAA;EAChE;EAEA,MAAME,gBAAA,GAA6C,IAAIH,GAAA;EAEvD;EACA,IAAII,MAAA,GAAS;EACb,KAAK,MAAMf,eAAA,IAAmBD,uBAAA,CAAwBE,QAAQ,EAAE;IAC9D,MAAMW,OAAA,GACJ,OAAOZ,eAAA,CAAgBY,OAAO,KAAK,aAC/BZ,eAAA,CAAgBY,OAAO,CAAC;MACtBF,kBAAA;MACAI,gBAAA;MACAf;IACF,KACAC,eAAA,CAAgBY,OAAO;IAE7BA,OAAA,CAAQI,GAAG,GAAGhB,eAAA,CAAgBE,kBAAkB,CAACC,UAAU;IAC3DS,OAAA,CAAQR,KAAK,GAAGW,MAAA;IAEhBD,gBAAA,CAAiBD,GAAG,CAClBb,eAAA,CAAgBE,kBAAkB,CAACC,UAAU,EAC7CS,OAAA;IAGFG,MAAA;EACF;EAEA,OAAOD,gBAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"loader.js","names":["loadClientFeatures","featureClientSchemaMap","field","schemaPath","unSanitizedEditorConfig","featureProvider","features","clientFeatureProps","featureKey","order","undefined","Error","sort","a","b","featureProviderMap","Map","feature","set","resolvedFeatures","loaded","key"],"sources":["../../../../src/lexical/config/client/loader.ts"],"sourcesContent":["'use client'\n\nimport type { RichTextFieldClient } from 'payload'\n\nimport type {\n ClientFeatureProviderMap,\n ResolvedClientFeature,\n ResolvedClientFeatureMap,\n} from '../../../features/typesClient.js'\nimport type { FeatureClientSchemaMap } from '../../../types.js'\nimport type { ClientEditorConfig } from '../types.js'\n\n/**\n * This function expects client functions to ALREADY be ordered & dependencies checked on the server\n * @param unSanitizedEditorConfig\n */\nexport function loadClientFeatures({\n featureClientSchemaMap,\n field,\n schemaPath,\n unSanitizedEditorConfig,\n}: {\n featureClientSchemaMap: FeatureClientSchemaMap\n field?: RichTextFieldClient\n schemaPath: string\n unSanitizedEditorConfig: ClientEditorConfig\n}): ResolvedClientFeatureMap {\n for (const featureProvider of unSanitizedEditorConfig.features) {\n if (\n !featureProvider?.clientFeatureProps?.featureKey ||\n featureProvider?.clientFeatureProps?.order === undefined ||\n featureProvider?.clientFeatureProps?.order === null\n ) {\n throw new Error(\n 'A Feature you have installed does not return the client props as clientFeatureProps. Please make sure to always return those props, even if they are null, as other important props like order and featureKey are later on injected.',\n )\n }\n }\n\n // sort unSanitizedEditorConfig.features by order\n unSanitizedEditorConfig.features = unSanitizedEditorConfig.features.sort(\n (a, b) => a.clientFeatureProps.order - b.clientFeatureProps.order,\n )\n\n const featureProviderMap: ClientFeatureProviderMap = new Map()\n for (const feature of unSanitizedEditorConfig.features) {\n featureProviderMap.set(feature.clientFeatureProps.featureKey, feature)\n }\n\n const resolvedFeatures: ResolvedClientFeatureMap = new Map()\n\n // Make sure all dependencies declared in the respective features exist\n let loaded = 0\n for (const featureProvider of unSanitizedEditorConfig.features) {\n const feature: Partial<ResolvedClientFeature<any>> =\n typeof featureProvider.feature === 'function'\n ? featureProvider.feature({\n featureClientSchemaMap,\n featureProviderMap,\n field,\n resolvedFeatures,\n schemaPath,\n unSanitizedEditorConfig,\n })\n : featureProvider.feature\n\n feature.key = featureProvider.clientFeatureProps.featureKey\n feature.order = loaded\n\n resolvedFeatures.set(\n featureProvider.clientFeatureProps.featureKey,\n feature as ResolvedClientFeature<any>,\n )\n\n loaded++\n }\n\n return resolvedFeatures\n}\n"],"mappings":"AAAA;;AAYA;;;;AAIA,OAAO,SAASA,mBAAmB;EACjCC,sBAAsB;EACtBC,KAAK;EACLC,UAAU;EACVC;AAAuB,CAMxB;EACC,KAAK,MAAMC,eAAA,IAAmBD,uBAAA,CAAwBE,QAAQ,EAAE;IAC9D,IACE,CAACD,eAAA,EAAiBE,kBAAA,EAAoBC,UAAA,IACtCH,eAAA,EAAiBE,kBAAA,EAAoBE,KAAA,KAAUC,SAAA,IAC/CL,eAAA,EAAiBE,kBAAA,EAAoBE,KAAA,KAAU,MAC/C;MACA,MAAM,IAAIE,KAAA,CACR;IAEJ;EACF;EAEA;EACAP,uBAAA,CAAwBE,QAAQ,GAAGF,uBAAA,CAAwBE,QAAQ,CAACM,IAAI,CACtE,CAACC,CAAA,EAAGC,CAAA,KAAMD,CAAA,CAAEN,kBAAkB,CAACE,KAAK,GAAGK,CAAA,CAAEP,kBAAkB,CAACE,KAAK;EAGnE,MAAMM,kBAAA,GAA+C,IAAIC,GAAA;EACzD,KAAK,MAAMC,OAAA,IAAWb,uBAAA,CAAwBE,QAAQ,EAAE;IACtDS,kBAAA,CAAmBG,GAAG,CAACD,OAAA,CAAQV,kBAAkB,CAACC,UAAU,EAAES,OAAA;EAChE;EAEA,MAAME,gBAAA,GAA6C,IAAIH,GAAA;EAEvD;EACA,IAAII,MAAA,GAAS;EACb,KAAK,MAAMf,eAAA,IAAmBD,uBAAA,CAAwBE,QAAQ,EAAE;IAC9D,MAAMW,OAAA,GACJ,OAAOZ,eAAA,CAAgBY,OAAO,KAAK,aAC/BZ,eAAA,CAAgBY,OAAO,CAAC;MACtBhB,sBAAA;MACAc,kBAAA;MACAb,KAAA;MACAiB,gBAAA;MACAhB,UAAA;MACAC;IACF,KACAC,eAAA,CAAgBY,OAAO;IAE7BA,OAAA,CAAQI,GAAG,GAAGhB,eAAA,CAAgBE,kBAAkB,CAACC,UAAU;IAC3DS,OAAA,CAAQR,KAAK,GAAGW,MAAA;IAEhBD,gBAAA,CAAiBD,GAAG,CAClBb,eAAA,CAAgBE,kBAAkB,CAACC,UAAU,EAC7CS,OAAA;IAGFG,MAAA;EACF;EAEA,OAAOD,gBAAA;AACT","ignoreList":[]}
@@ -3,10 +3,6 @@
3
3
  export const sanitizeClientFeatures = features => {
4
4
  const sanitized = {
5
5
  enabledFeatures: [],
6
- hooks: {
7
- load: [],
8
- save: []
9
- },
10
6
  markdownTransformers: [],
11
7
  nodes: [],
12
8
  plugins: [],
@@ -26,19 +22,14 @@ export const sanitizeClientFeatures = features => {
26
22
  return sanitized;
27
23
  }
28
24
  features.forEach(feature => {
29
- if (feature.hooks) {
30
- if (feature.hooks?.load?.length) {
31
- sanitized.hooks.load = sanitized.hooks.load.concat(feature.hooks.load);
32
- }
33
- if (feature.hooks?.save?.length) {
34
- sanitized.hooks.save = sanitized.hooks.save.concat(feature.hooks.save);
35
- }
36
- }
37
25
  if (feature.providers?.length) {
38
26
  sanitized.providers = sanitized.providers.concat(feature.providers);
39
27
  }
40
28
  if (feature.nodes?.length) {
41
- sanitized.nodes = sanitized.nodes.concat(feature.nodes);
29
+ // Important: do not use concat
30
+ for (const node of feature.nodes) {
31
+ sanitized.nodes.push(node);
32
+ }
42
33
  }
43
34
  if (feature.plugins?.length) {
44
35
  feature.plugins.forEach((plugin, i) => {
@@ -111,7 +102,17 @@ export const sanitizeClientFeatures = features => {
111
102
  }
112
103
  }
113
104
  if (feature.markdownTransformers?.length) {
114
- sanitized.markdownTransformers = sanitized.markdownTransformers.concat(feature.markdownTransformers);
105
+ // Important: do not use concat
106
+ for (const transformer of feature.markdownTransformers) {
107
+ if (typeof transformer === 'function') {
108
+ sanitized.markdownTransformers.push(transformer({
109
+ allNodes: sanitized.nodes,
110
+ allTransformers: sanitized.markdownTransformers
111
+ }));
112
+ } else {
113
+ sanitized.markdownTransformers.push(transformer);
114
+ }
115
+ }
115
116
  }
116
117
  sanitized.enabledFeatures.push(feature.key);
117
118
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","names":["sanitizeClientFeatures","features","sanitized","enabledFeatures","hooks","load","save","markdownTransformers","nodes","plugins","providers","slashMenu","dynamicGroups","groups","toolbarFixed","toolbarInline","size","forEach","feature","length","concat","plugin","i","push","clientProps","sanitizedClientFeatureProps","Component","key","position","group","foundGroup","find","sanitizedGroup","items","filter","optionGroup","sort","a","b","order","sanitizeClientEditorConfig","resolvedClientFeatureMap","lexical","admin","resolvedFeatureMap"],"sources":["../../../../src/lexical/config/client/sanitize.ts"],"sourcesContent":["'use client'\n\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport type {\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n} from '../../../features/typesClient.js'\nimport type { LexicalFieldAdminProps } from '../../../types.js'\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\nexport const sanitizeClientFeatures = (\n features: ResolvedClientFeatureMap,\n): SanitizedClientFeatures => {\n const sanitized: SanitizedClientFeatures = {\n enabledFeatures: [],\n hooks: {\n load: [],\n save: [],\n },\n markdownTransformers: [],\n nodes: [],\n plugins: [],\n providers: [],\n slashMenu: {\n dynamicGroups: [],\n groups: [],\n },\n toolbarFixed: {\n groups: [],\n },\n toolbarInline: {\n groups: [],\n },\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature.hooks) {\n if (feature.hooks?.load?.length) {\n sanitized.hooks.load = sanitized.hooks.load.concat(feature.hooks.load)\n }\n if (feature.hooks?.save?.length) {\n sanitized.hooks.save = sanitized.hooks.save.concat(feature.hooks.save)\n }\n }\n\n if (feature.providers?.length) {\n sanitized.providers = sanitized.providers.concat(feature.providers)\n }\n\n if (feature.nodes?.length) {\n sanitized.nodes = sanitized.nodes.concat(feature.nodes)\n }\n if (feature.plugins?.length) {\n feature.plugins.forEach((plugin, i) => {\n sanitized.plugins?.push({\n clientProps: feature.sanitizedClientFeatureProps,\n Component: plugin.Component,\n key: feature.key + i,\n position: plugin.position,\n })\n })\n }\n\n if (feature.toolbarInline?.groups?.length) {\n for (const group of feature.toolbarInline.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarInline.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarInline.groups = sanitized.toolbarInline.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarInline?.groups.push(foundGroup)\n }\n }\n\n if (feature.toolbarFixed?.groups?.length) {\n for (const group of feature.toolbarFixed.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarFixed.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarFixed.groups = sanitized.toolbarFixed.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarFixed?.groups.push(foundGroup)\n }\n }\n\n if (feature.slashMenu?.groups) {\n if (feature.slashMenu.dynamicGroups?.length) {\n sanitized.slashMenu.dynamicGroups = sanitized.slashMenu.dynamicGroups.concat(\n feature.slashMenu.dynamicGroups,\n )\n }\n\n for (const optionGroup of feature.slashMenu.groups) {\n // 1. find the group with the same name or create new one\n let group = sanitized.slashMenu.groups.find((group) => group.key === optionGroup.key)\n if (!group) {\n group = {\n ...optionGroup,\n items: [],\n }\n } else {\n sanitized.slashMenu.groups = sanitized.slashMenu.groups.filter(\n (group) => group.key !== optionGroup.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (optionGroup?.items?.length) {\n group.items = group.items.concat(optionGroup.items)\n }\n sanitized.slashMenu.groups.push(group)\n }\n }\n\n if (feature.markdownTransformers?.length) {\n sanitized.markdownTransformers = sanitized.markdownTransformers.concat(\n feature.markdownTransformers,\n )\n }\n sanitized.enabledFeatures.push(feature.key)\n })\n\n // Sort sanitized.toolbarInline.groups by order property\n sanitized.toolbarInline.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n // Sort sanitized.toolbarFixed.groups by order property\n sanitized.toolbarFixed.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n\n // Sort sanitized.toolbarInline.groups.[group].entries by order property\n for (const group of sanitized.toolbarInline.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n // Sort sanitized.toolbarFixed.groups.[group].entries by order property\n for (const group of sanitized.toolbarFixed.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n return sanitized\n}\n\nexport function sanitizeClientEditorConfig(\n resolvedClientFeatureMap: ResolvedClientFeatureMap,\n lexical?: LexicalEditorConfig,\n admin?: LexicalFieldAdminProps,\n): SanitizedClientEditorConfig {\n return {\n admin,\n features: sanitizeClientFeatures(resolvedClientFeatureMap),\n lexical: lexical!,\n resolvedFeatureMap: resolvedClientFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sanitize.js","names":["sanitizeClientFeatures","features","sanitized","enabledFeatures","markdownTransformers","nodes","plugins","providers","slashMenu","dynamicGroups","groups","toolbarFixed","toolbarInline","size","forEach","feature","length","concat","node","push","plugin","i","clientProps","sanitizedClientFeatureProps","Component","key","position","group","foundGroup","find","sanitizedGroup","items","filter","optionGroup","transformer","allNodes","allTransformers","sort","a","b","order","sanitizeClientEditorConfig","resolvedClientFeatureMap","lexical","admin","resolvedFeatureMap"],"sources":["../../../../src/lexical/config/client/sanitize.ts"],"sourcesContent":["'use client'\n\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport type {\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n} from '../../../features/typesClient.js'\nimport type { LexicalFieldAdminProps } from '../../../types.js'\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\nexport const sanitizeClientFeatures = (\n features: ResolvedClientFeatureMap,\n): SanitizedClientFeatures => {\n const sanitized: SanitizedClientFeatures = {\n enabledFeatures: [],\n markdownTransformers: [],\n nodes: [],\n plugins: [],\n providers: [],\n slashMenu: {\n dynamicGroups: [],\n groups: [],\n },\n toolbarFixed: {\n groups: [],\n },\n toolbarInline: {\n groups: [],\n },\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature.providers?.length) {\n sanitized.providers = sanitized.providers.concat(feature.providers)\n }\n\n if (feature.nodes?.length) {\n // Important: do not use concat\n for (const node of feature.nodes) {\n sanitized.nodes.push(node)\n }\n }\n if (feature.plugins?.length) {\n feature.plugins.forEach((plugin, i) => {\n sanitized.plugins?.push({\n clientProps: feature.sanitizedClientFeatureProps,\n Component: plugin.Component,\n key: feature.key + i,\n position: plugin.position,\n })\n })\n }\n\n if (feature.toolbarInline?.groups?.length) {\n for (const group of feature.toolbarInline.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarInline.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarInline.groups = sanitized.toolbarInline.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarInline?.groups.push(foundGroup)\n }\n }\n\n if (feature.toolbarFixed?.groups?.length) {\n for (const group of feature.toolbarFixed.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarFixed.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarFixed.groups = sanitized.toolbarFixed.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarFixed?.groups.push(foundGroup)\n }\n }\n\n if (feature.slashMenu?.groups) {\n if (feature.slashMenu.dynamicGroups?.length) {\n sanitized.slashMenu.dynamicGroups = sanitized.slashMenu.dynamicGroups.concat(\n feature.slashMenu.dynamicGroups,\n )\n }\n\n for (const optionGroup of feature.slashMenu.groups) {\n // 1. find the group with the same name or create new one\n let group = sanitized.slashMenu.groups.find((group) => group.key === optionGroup.key)\n if (!group) {\n group = {\n ...optionGroup,\n items: [],\n }\n } else {\n sanitized.slashMenu.groups = sanitized.slashMenu.groups.filter(\n (group) => group.key !== optionGroup.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (optionGroup?.items?.length) {\n group.items = group.items.concat(optionGroup.items)\n }\n sanitized.slashMenu.groups.push(group)\n }\n }\n\n if (feature.markdownTransformers?.length) {\n // Important: do not use concat\n for (const transformer of feature.markdownTransformers) {\n if (typeof transformer === 'function') {\n sanitized.markdownTransformers.push(\n transformer({\n allNodes: sanitized.nodes,\n allTransformers: sanitized.markdownTransformers,\n }),\n )\n } else {\n sanitized.markdownTransformers.push(transformer)\n }\n }\n }\n sanitized.enabledFeatures.push(feature.key)\n })\n\n // Sort sanitized.toolbarInline.groups by order property\n sanitized.toolbarInline.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n // Sort sanitized.toolbarFixed.groups by order property\n sanitized.toolbarFixed.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n\n // Sort sanitized.toolbarInline.groups.[group].entries by order property\n for (const group of sanitized.toolbarInline.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n // Sort sanitized.toolbarFixed.groups.[group].entries by order property\n for (const group of sanitized.toolbarFixed.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n return sanitized\n}\n\nexport function sanitizeClientEditorConfig(\n resolvedClientFeatureMap: ResolvedClientFeatureMap,\n lexical?: LexicalEditorConfig,\n admin?: LexicalFieldAdminProps,\n): SanitizedClientEditorConfig {\n return {\n admin,\n features: sanitizeClientFeatures(resolvedClientFeatureMap),\n lexical: lexical!,\n resolvedFeatureMap: resolvedClientFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../../src/lexical/config/server/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIlF,eAAO,MAAM,sBAAsB,aACvB,wBAAwB,KACjC,uBAgHF,CAAA;AAED,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,eAAe,EACvB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,2BAA2B,CAAC,CAYtC"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../../src/lexical/config/server/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIlF,eAAO,MAAM,sBAAsB,aACvB,wBAAwB,KACjC,uBA8HF,CAAA;AAED,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,eAAe,EACvB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,2BAA2B,CAAC,CAYtC"}
@@ -58,7 +58,10 @@ export const sanitizeServerFeatures = features => {
58
58
  }
59
59
  }
60
60
  if (feature.nodes?.length) {
61
- sanitized.nodes = sanitized.nodes.concat(feature.nodes);
61
+ // Do not concat here. We need to keep the object reference of sanitized.nodes so that function markdown transformers of features automatically get the updated nodes
62
+ for (const node of feature.nodes) {
63
+ sanitized.nodes.push(node);
64
+ }
62
65
  feature.nodes.forEach(node => {
63
66
  const nodeType = 'with' in node.node ? node.node.replace.getType() : node.node.getType() // TODO: Idk if this works for node replacements
64
67
  ;
@@ -92,7 +95,17 @@ export const sanitizeServerFeatures = features => {
92
95
  });
93
96
  }
94
97
  if (feature.markdownTransformers?.length) {
95
- sanitized.markdownTransformers = sanitized.markdownTransformers.concat(feature.markdownTransformers);
98
+ // Do not concat here. We need to keep the object reference of feature.markdownTransformers
99
+ for (const transformer of feature.markdownTransformers) {
100
+ if (typeof transformer === 'function') {
101
+ sanitized.markdownTransformers.push(transformer({
102
+ allNodes: sanitized.nodes,
103
+ allTransformers: sanitized.markdownTransformers
104
+ }));
105
+ } else {
106
+ sanitized.markdownTransformers.push(transformer);
107
+ }
108
+ }
96
109
  }
97
110
  sanitized.enabledFeatures.push(feature.key);
98
111
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","names":["loadFeatures","sanitizeServerFeatures","features","sanitized","converters","html","enabledFeatures","generatedTypes","modifyOutputSchemas","getSubFields","Map","getSubFieldsData","graphQLPopulationPromises","hooks","afterChange","afterRead","beforeChange","beforeValidate","i18n","markdownTransformers","nodeHooks","nodes","validations","size","forEach","feature","modifyOutputSchema","push","length","concat","lang","lexical","key","node","nodeType","replace","getType","set","sanitizeServerEditorConfig","editorConfig","config","parentIsLocalized","resolvedFeatureMap","unSanitizedEditorConfig"],"sources":["../../../../src/lexical/config/server/sanitize.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport type {\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n} from '../../../features/typesServer.js'\nimport type { SanitizedServerEditorConfig, ServerEditorConfig } from '../types.js'\n\nimport { loadFeatures } from './loader.js'\n\nexport const sanitizeServerFeatures = (\n features: ResolvedServerFeatureMap,\n): SanitizedServerFeatures => {\n const sanitized: SanitizedServerFeatures = {\n converters: {\n html: [],\n },\n enabledFeatures: [],\n generatedTypes: {\n modifyOutputSchemas: [],\n },\n getSubFields: new Map(),\n getSubFieldsData: new Map(),\n graphQLPopulationPromises: new Map(),\n hooks: {\n afterChange: [],\n afterRead: [],\n beforeChange: [],\n beforeValidate: [],\n },\n i18n: {},\n markdownTransformers: [],\n nodeHooks: {\n afterChange: new Map(),\n afterRead: new Map(),\n beforeChange: new Map(),\n beforeValidate: new Map(),\n },\n nodes: [],\n\n validations: new Map(),\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature?.generatedTypes?.modifyOutputSchema) {\n sanitized.generatedTypes.modifyOutputSchemas.push(feature.generatedTypes.modifyOutputSchema)\n }\n\n if (feature?.hooks?.beforeValidate?.length) {\n sanitized.hooks.beforeValidate = sanitized.hooks.beforeValidate?.concat(\n feature.hooks.beforeValidate,\n )\n }\n if (feature?.hooks?.beforeChange?.length) {\n sanitized.hooks.beforeChange = sanitized.hooks.beforeChange?.concat(\n feature.hooks.beforeChange,\n )\n }\n if (feature?.hooks?.afterRead?.length) {\n sanitized.hooks.afterRead = sanitized.hooks.afterRead?.concat(feature.hooks.afterRead)\n }\n if (feature?.hooks?.afterChange?.length) {\n sanitized.hooks.afterChange = sanitized.hooks.afterChange?.concat(feature.hooks.afterChange)\n }\n\n if (feature?.i18n) {\n for (const lang in feature.i18n) {\n if (!sanitized.i18n[lang]) {\n sanitized.i18n[lang] = {\n lexical: {},\n }\n }\n sanitized.i18n[lang].lexical[feature.key] = feature.i18n[lang]\n }\n }\n\n if (feature.nodes?.length) {\n sanitized.nodes = sanitized.nodes.concat(feature.nodes)\n feature.nodes.forEach((node) => {\n const nodeType = 'with' in node.node ? node.node.replace.getType() : node.node.getType() // TODO: Idk if this works for node replacements\n if (node?.graphQLPopulationPromises?.length) {\n sanitized.graphQLPopulationPromises.set(nodeType, node.graphQLPopulationPromises)\n }\n if (node?.validations?.length) {\n sanitized.validations.set(nodeType, node.validations)\n }\n if (node?.converters?.html) {\n sanitized.converters.html.push(node.converters.html)\n }\n if (node?.hooks?.afterChange) {\n sanitized.nodeHooks?.afterChange?.set(nodeType, node.hooks.afterChange)\n }\n if (node?.hooks?.afterRead) {\n sanitized.nodeHooks?.afterRead?.set(nodeType, node.hooks.afterRead)\n }\n if (node?.hooks?.beforeChange) {\n sanitized.nodeHooks?.beforeChange?.set(nodeType, node.hooks.beforeChange)\n }\n if (node?.hooks?.beforeValidate) {\n sanitized.nodeHooks?.beforeValidate?.set(nodeType, node.hooks.beforeValidate)\n }\n if (node?.getSubFields) {\n sanitized.getSubFields?.set(nodeType, node.getSubFields)\n }\n if (node?.getSubFieldsData) {\n sanitized.getSubFieldsData?.set(nodeType, node.getSubFieldsData)\n }\n })\n }\n\n if (feature.markdownTransformers?.length) {\n sanitized.markdownTransformers = sanitized.markdownTransformers.concat(\n feature.markdownTransformers,\n )\n }\n\n sanitized.enabledFeatures.push(feature.key)\n })\n\n return sanitized\n}\n\nexport async function sanitizeServerEditorConfig(\n editorConfig: ServerEditorConfig,\n config: SanitizedConfig,\n parentIsLocalized?: boolean,\n): Promise<SanitizedServerEditorConfig> {\n const resolvedFeatureMap = await loadFeatures({\n config,\n parentIsLocalized: parentIsLocalized!,\n unSanitizedEditorConfig: editorConfig,\n })\n\n return {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: editorConfig.lexical!,\n resolvedFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sanitize.js","names":["loadFeatures","sanitizeServerFeatures","features","sanitized","converters","html","enabledFeatures","generatedTypes","modifyOutputSchemas","getSubFields","Map","getSubFieldsData","graphQLPopulationPromises","hooks","afterChange","afterRead","beforeChange","beforeValidate","i18n","markdownTransformers","nodeHooks","nodes","validations","size","forEach","feature","modifyOutputSchema","push","length","concat","lang","lexical","key","node","nodeType","replace","getType","set","transformer","allNodes","allTransformers","sanitizeServerEditorConfig","editorConfig","config","parentIsLocalized","resolvedFeatureMap","unSanitizedEditorConfig"],"sources":["../../../../src/lexical/config/server/sanitize.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport type {\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n} from '../../../features/typesServer.js'\nimport type { SanitizedServerEditorConfig, ServerEditorConfig } from '../types.js'\n\nimport { loadFeatures } from './loader.js'\n\nexport const sanitizeServerFeatures = (\n features: ResolvedServerFeatureMap,\n): SanitizedServerFeatures => {\n const sanitized: SanitizedServerFeatures = {\n converters: {\n html: [],\n },\n enabledFeatures: [],\n generatedTypes: {\n modifyOutputSchemas: [],\n },\n getSubFields: new Map(),\n getSubFieldsData: new Map(),\n graphQLPopulationPromises: new Map(),\n hooks: {\n afterChange: [],\n afterRead: [],\n beforeChange: [],\n beforeValidate: [],\n },\n i18n: {},\n markdownTransformers: [],\n nodeHooks: {\n afterChange: new Map(),\n afterRead: new Map(),\n beforeChange: new Map(),\n beforeValidate: new Map(),\n },\n nodes: [],\n\n validations: new Map(),\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature?.generatedTypes?.modifyOutputSchema) {\n sanitized.generatedTypes.modifyOutputSchemas.push(feature.generatedTypes.modifyOutputSchema)\n }\n\n if (feature?.hooks?.beforeValidate?.length) {\n sanitized.hooks.beforeValidate = sanitized.hooks.beforeValidate?.concat(\n feature.hooks.beforeValidate,\n )\n }\n if (feature?.hooks?.beforeChange?.length) {\n sanitized.hooks.beforeChange = sanitized.hooks.beforeChange?.concat(\n feature.hooks.beforeChange,\n )\n }\n if (feature?.hooks?.afterRead?.length) {\n sanitized.hooks.afterRead = sanitized.hooks.afterRead?.concat(feature.hooks.afterRead)\n }\n if (feature?.hooks?.afterChange?.length) {\n sanitized.hooks.afterChange = sanitized.hooks.afterChange?.concat(feature.hooks.afterChange)\n }\n\n if (feature?.i18n) {\n for (const lang in feature.i18n) {\n if (!sanitized.i18n[lang]) {\n sanitized.i18n[lang] = {\n lexical: {},\n }\n }\n sanitized.i18n[lang].lexical[feature.key] = feature.i18n[lang]\n }\n }\n\n if (feature.nodes?.length) {\n // Do not concat here. We need to keep the object reference of sanitized.nodes so that function markdown transformers of features automatically get the updated nodes\n for (const node of feature.nodes) {\n sanitized.nodes.push(node)\n }\n feature.nodes.forEach((node) => {\n const nodeType = 'with' in node.node ? node.node.replace.getType() : node.node.getType() // TODO: Idk if this works for node replacements\n if (node?.graphQLPopulationPromises?.length) {\n sanitized.graphQLPopulationPromises.set(nodeType, node.graphQLPopulationPromises)\n }\n if (node?.validations?.length) {\n sanitized.validations.set(nodeType, node.validations)\n }\n if (node?.converters?.html) {\n sanitized.converters.html.push(node.converters.html)\n }\n if (node?.hooks?.afterChange) {\n sanitized.nodeHooks?.afterChange?.set(nodeType, node.hooks.afterChange)\n }\n if (node?.hooks?.afterRead) {\n sanitized.nodeHooks?.afterRead?.set(nodeType, node.hooks.afterRead)\n }\n if (node?.hooks?.beforeChange) {\n sanitized.nodeHooks?.beforeChange?.set(nodeType, node.hooks.beforeChange)\n }\n if (node?.hooks?.beforeValidate) {\n sanitized.nodeHooks?.beforeValidate?.set(nodeType, node.hooks.beforeValidate)\n }\n if (node?.getSubFields) {\n sanitized.getSubFields?.set(nodeType, node.getSubFields)\n }\n if (node?.getSubFieldsData) {\n sanitized.getSubFieldsData?.set(nodeType, node.getSubFieldsData)\n }\n })\n }\n\n if (feature.markdownTransformers?.length) {\n // Do not concat here. We need to keep the object reference of feature.markdownTransformers\n\n for (const transformer of feature.markdownTransformers) {\n if (typeof transformer === 'function') {\n sanitized.markdownTransformers.push(\n transformer({\n allNodes: sanitized.nodes,\n allTransformers: sanitized.markdownTransformers,\n }),\n )\n } else {\n sanitized.markdownTransformers.push(transformer)\n }\n }\n }\n\n sanitized.enabledFeatures.push(feature.key)\n })\n\n return sanitized\n}\n\nexport async function sanitizeServerEditorConfig(\n editorConfig: ServerEditorConfig,\n config: SanitizedConfig,\n parentIsLocalized?: boolean,\n): Promise<SanitizedServerEditorConfig> {\n const resolvedFeatureMap = await loadFeatures({\n config,\n parentIsLocalized: parentIsLocalized!,\n unSanitizedEditorConfig: editorConfig,\n })\n\n return {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: editorConfig.lexical!,\n resolvedFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,10 @@
1
1
  import type { Klass, LexicalNode, LexicalNodeReplacement } from 'lexical';
2
+ import type { NodeWithHooks } from '../../features/typesServer.js';
2
3
  import type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js';
3
4
  export declare function getEnabledNodes({ editorConfig, }: {
4
5
  editorConfig: SanitizedClientEditorConfig | SanitizedServerEditorConfig;
5
6
  }): Array<Klass<LexicalNode> | LexicalNodeReplacement>;
7
+ export declare function getEnabledNodesFromServerNodes({ nodes, }: {
8
+ nodes: Array<Klass<LexicalNode> | LexicalNodeReplacement> | Array<NodeWithHooks>;
9
+ }): Array<Klass<LexicalNode> | LexicalNodeReplacement>;
6
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lexical/nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAEzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAElG,wBAAgB,eAAe,CAAC,EAC9B,YAAY,GACb,EAAE;IACD,YAAY,EAAE,2BAA2B,GAAG,2BAA2B,CAAA;CACxE,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,CAOrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lexical/nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAElG,wBAAgB,eAAe,CAAC,EAC9B,YAAY,GACb,EAAE;IACD,YAAY,EAAE,2BAA2B,GAAG,2BAA2B,CAAA;CACxE,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,CAIrD;AAED,wBAAgB,8BAA8B,CAAC,EAC7C,KAAK,GACN,EAAE;IACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAA;CACjF,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,CAOrD"}
@@ -1,7 +1,14 @@
1
1
  export function getEnabledNodes({
2
2
  editorConfig
3
3
  }) {
4
- return editorConfig.features.nodes.map(node => {
4
+ return getEnabledNodesFromServerNodes({
5
+ nodes: editorConfig.features.nodes
6
+ });
7
+ }
8
+ export function getEnabledNodesFromServerNodes({
9
+ nodes
10
+ }) {
11
+ return nodes.map(node => {
5
12
  if ('node' in node) {
6
13
  return node.node;
7
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getEnabledNodes","editorConfig","features","nodes","map","node"],"sources":["../../../src/lexical/nodes/index.ts"],"sourcesContent":["import type { Klass, LexicalNode, LexicalNodeReplacement } from 'lexical'\n\nimport type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js'\n\nexport function getEnabledNodes({\n editorConfig,\n}: {\n editorConfig: SanitizedClientEditorConfig | SanitizedServerEditorConfig\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n return editorConfig.features.nodes.map((node) => {\n if ('node' in node) {\n return node.node\n }\n return node\n })\n}\n"],"mappings":"AAIA,OAAO,SAASA,gBAAgB;EAC9BC;AAAY,CAGb;EACC,OAAOA,YAAA,CAAaC,QAAQ,CAACC,KAAK,CAACC,GAAG,CAAEC,IAAA;IACtC,IAAI,UAAUA,IAAA,EAAM;MAClB,OAAOA,IAAA,CAAKA,IAAI;IAClB;IACA,OAAOA,IAAA;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getEnabledNodes","editorConfig","getEnabledNodesFromServerNodes","nodes","features","map","node"],"sources":["../../../src/lexical/nodes/index.ts"],"sourcesContent":["import type { Klass, LexicalNode, LexicalNodeReplacement } from 'lexical'\n\nimport type { NodeWithHooks } from '../../features/typesServer.js'\nimport type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js'\n\nexport function getEnabledNodes({\n editorConfig,\n}: {\n editorConfig: SanitizedClientEditorConfig | SanitizedServerEditorConfig\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n return getEnabledNodesFromServerNodes({\n nodes: editorConfig.features.nodes,\n })\n}\n\nexport function getEnabledNodesFromServerNodes({\n nodes,\n}: {\n nodes: Array<Klass<LexicalNode> | LexicalNodeReplacement> | Array<NodeWithHooks>\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n return nodes.map((node) => {\n if ('node' in node) {\n return node.node\n }\n return node\n })\n}\n"],"mappings":"AAKA,OAAO,SAASA,gBAAgB;EAC9BC;AAAY,CAGb;EACC,OAAOC,8BAAA,CAA+B;IACpCC,KAAA,EAAOF,YAAA,CAAaG,QAAQ,CAACD;EAC/B;AACF;AAEA,OAAO,SAASD,+BAA+B;EAC7CC;AAAK,CAGN;EACC,OAAOA,KAAA,CAAME,GAAG,CAAEC,IAAA;IAChB,IAAI,UAAUA,IAAA,EAAM;MAClB,OAAOA,IAAA,CAAKA,IAAI;IAClB;IACA,OAAOA,IAAA;EACT;AACF","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/headless';
2
+ //# sourceMappingURL=@lexical-headless.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-headless.d.ts","sourceRoot":"","sources":["../../src/lexical-proxy/@lexical-headless.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/headless';
2
+ //# sourceMappingURL=@lexical-headless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-headless.js","names":[],"sources":["../../src/lexical-proxy/@lexical-headless.ts"],"sourcesContent":["export * from '@lexical/headless'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/link';
2
+ //# sourceMappingURL=@lexical-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-link.d.ts","sourceRoot":"","sources":["../../src/lexical-proxy/@lexical-link.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/link';
2
+ //# sourceMappingURL=@lexical-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-link.js","names":[],"sources":["../../src/lexical-proxy/@lexical-link.ts"],"sourcesContent":["export * from '@lexical/link'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/list';
2
+ //# sourceMappingURL=@lexical-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-list.d.ts","sourceRoot":"","sources":["../../src/lexical-proxy/@lexical-list.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/list';
2
+ //# sourceMappingURL=@lexical-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-list.js","names":[],"sources":["../../src/lexical-proxy/@lexical-list.ts"],"sourcesContent":["export * from '@lexical/list'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/mark';
2
+ //# sourceMappingURL=@lexical-mark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-mark.d.ts","sourceRoot":"","sources":["../../src/lexical-proxy/@lexical-mark.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/mark';
2
+ //# sourceMappingURL=@lexical-mark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-mark.js","names":[],"sources":["../../src/lexical-proxy/@lexical-mark.ts"],"sourcesContent":["export * from '@lexical/mark'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/markdown';
2
+ //# sourceMappingURL=@lexical-markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-markdown.d.ts","sourceRoot":"","sources":["../../src/lexical-proxy/@lexical-markdown.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/markdown';
2
+ //# sourceMappingURL=@lexical-markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@lexical-markdown.js","names":[],"sources":["../../src/lexical-proxy/@lexical-markdown.ts"],"sourcesContent":["export * from '@lexical/markdown'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalAutoEmbedPlugin';
2
+ //# sourceMappingURL=LexicalAutoEmbedPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalAutoEmbedPlugin.d.ts","sourceRoot":"","sources":["../../../src/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.tsx"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalAutoEmbedPlugin';
2
+ //# sourceMappingURL=LexicalAutoEmbedPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalAutoEmbedPlugin.js","names":[],"sources":["../../../src/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.tsx"],"sourcesContent":["export * from '@lexical/react/LexicalAutoEmbedPlugin'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalAutoFocusPlugin';
2
+ //# sourceMappingURL=LexicalAutoFocusPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalAutoFocusPlugin.d.ts","sourceRoot":"","sources":["../../../src/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalAutoFocusPlugin';
2
+ //# sourceMappingURL=LexicalAutoFocusPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalAutoFocusPlugin.js","names":[],"sources":["../../../src/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.ts"],"sourcesContent":["export * from '@lexical/react/LexicalAutoFocusPlugin'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalAutoLinkPlugin';
2
+ //# sourceMappingURL=LexicalAutoLinkPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalAutoLinkPlugin.d.ts","sourceRoot":"","sources":["../../../src/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalAutoLinkPlugin';
2
+ //# sourceMappingURL=LexicalAutoLinkPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalAutoLinkPlugin.js","names":[],"sources":["../../../src/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.ts"],"sourcesContent":["export * from '@lexical/react/LexicalAutoLinkPlugin'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalBlockWithAlignableContents';
2
+ //# sourceMappingURL=LexicalBlockWithAlignableContents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalBlockWithAlignableContents.d.ts","sourceRoot":"","sources":["../../../src/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.tsx"],"names":[],"mappings":"AAAA,cAAc,kDAAkD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalBlockWithAlignableContents';
2
+ //# sourceMappingURL=LexicalBlockWithAlignableContents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalBlockWithAlignableContents.js","names":[],"sources":["../../../src/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.tsx"],"sourcesContent":["export * from '@lexical/react/LexicalBlockWithAlignableContents'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalCharacterLimitPlugin';
2
+ //# sourceMappingURL=LexicalCharacterLimitPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalCharacterLimitPlugin.d.ts","sourceRoot":"","sources":["../../../src/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.tsx"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalCharacterLimitPlugin';
2
+ //# sourceMappingURL=LexicalCharacterLimitPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalCharacterLimitPlugin.js","names":[],"sources":["../../../src/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.tsx"],"sourcesContent":["export * from '@lexical/react/LexicalCharacterLimitPlugin'\n"],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalCheckListPlugin';
2
+ //# sourceMappingURL=LexicalCheckListPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalCheckListPlugin.d.ts","sourceRoot":"","sources":["../../../src/lexical-proxy/@lexical-react/LexicalCheckListPlugin.tsx"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@lexical/react/LexicalCheckListPlugin';
2
+ //# sourceMappingURL=LexicalCheckListPlugin.js.map