@payloadcms/richtext-lexical 4.0.0-internal.38b7f1d → 4.0.0-internal.4c792ad

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 (603) hide show
  1. package/dist/@types/assets.d.js +2 -0
  2. package/dist/@types/assets.d.js.map +1 -0
  3. package/dist/cell/rscEntry.d.ts +1 -1
  4. package/dist/cell/rscEntry.d.ts.map +1 -1
  5. package/dist/cell/rscEntry.js +5 -5
  6. package/dist/cell/rscEntry.js.map +1 -1
  7. package/dist/exports/client/Field-VW7ZGT6K.js +2 -0
  8. package/dist/exports/client/Field-VW7ZGT6K.js.map +7 -0
  9. package/dist/exports/client/{RelationshipComponent-5RONAYJM.js → RelationshipComponent-YCPAKOL7.js} +2 -2
  10. package/dist/exports/client/RelationshipComponent-YCPAKOL7.js.map +7 -0
  11. package/dist/exports/client/bundled.css +1 -1
  12. package/dist/exports/client/chunk-4EIYXZ6H.js +12 -0
  13. package/dist/exports/client/chunk-4EIYXZ6H.js.map +7 -0
  14. package/dist/exports/client/chunk-5VIL27GI.js +2 -0
  15. package/dist/exports/client/chunk-5VIL27GI.js.map +7 -0
  16. package/dist/exports/client/chunk-ESITTE3C.js +2 -0
  17. package/dist/exports/client/chunk-ESITTE3C.js.map +7 -0
  18. package/dist/exports/client/{chunk-BZZVLW4U.js → chunk-RJ5MAOKZ.js} +1 -1
  19. package/dist/exports/client/chunk-RJ5MAOKZ.js.map +7 -0
  20. package/dist/exports/client/chunk-UD4DQ4AK.js +2 -0
  21. package/dist/exports/client/chunk-UD4DQ4AK.js.map +7 -0
  22. package/dist/exports/client/component-PHZQBOJE.js +2 -0
  23. package/dist/exports/client/component-PHZQBOJE.js.map +7 -0
  24. package/dist/exports/client/componentInline-H24N7GUG.js +2 -0
  25. package/dist/exports/client/index.d.ts +1 -0
  26. package/dist/exports/client/index.d.ts.map +1 -1
  27. package/dist/exports/client/index.js +25 -25
  28. package/dist/exports/client/index.js.map +4 -4
  29. package/dist/exports/react/index.d.ts +1 -1
  30. package/dist/exports/react/index.d.ts.map +1 -1
  31. package/dist/exports/react/index.js.map +1 -1
  32. package/dist/exports/server/rsc.browser.d.ts +11 -0
  33. package/dist/exports/server/rsc.browser.d.ts.map +1 -0
  34. package/dist/exports/server/rsc.browser.js +10 -0
  35. package/dist/exports/server/rsc.browser.js.map +1 -0
  36. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  37. package/dist/features/blockquote/server/index.d.ts +1 -4
  38. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  39. package/dist/features/blockquote/server/index.js +2 -0
  40. package/dist/features/blockquote/server/index.js.map +1 -1
  41. package/dist/features/blockquote/server/schema.d.ts +8 -0
  42. package/dist/features/blockquote/server/schema.d.ts.map +1 -0
  43. package/dist/features/blockquote/server/schema.js +15 -0
  44. package/dist/features/blockquote/server/schema.js.map +1 -0
  45. package/dist/features/blocks/client/component/index.d.ts +3 -2
  46. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  47. package/dist/features/blocks/client/component/index.js +18 -10
  48. package/dist/features/blocks/client/component/index.js.map +1 -1
  49. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
  50. package/dist/features/blocks/client/componentInline/index.d.ts +3 -2
  51. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  52. package/dist/features/blocks/client/componentInline/index.js +17 -9
  53. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  54. package/dist/features/blocks/client/index.d.ts.map +1 -1
  55. package/dist/features/blocks/client/index.js +4 -2
  56. package/dist/features/blocks/client/index.js.map +1 -1
  57. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  58. package/dist/features/blocks/client/markdown/markdownTransformer.js +4 -4
  59. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  60. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  61. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  62. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  63. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +2 -2
  64. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  65. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  66. package/dist/features/blocks/client/plugin/index.d.ts +1 -1
  67. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  68. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  69. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
  70. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +1 -0
  71. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  72. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +1 -2
  73. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  74. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  75. package/dist/features/blocks/server/index.d.ts +1 -0
  76. package/dist/features/blocks/server/index.d.ts.map +1 -1
  77. package/dist/features/blocks/server/index.js +24 -72
  78. package/dist/features/blocks/server/index.js.map +1 -1
  79. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  80. package/dist/features/blocks/server/markdown/markdownTransformer.js +4 -4
  81. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  82. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -18
  83. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  84. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  85. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +2 -10
  86. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  87. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  88. package/dist/features/blocks/server/schema.d.ts +45 -0
  89. package/dist/features/blocks/server/schema.d.ts.map +1 -0
  90. package/dist/features/blocks/server/schema.js +139 -0
  91. package/dist/features/blocks/server/schema.js.map +1 -0
  92. package/dist/features/blocks/server/validate.d.ts +1 -2
  93. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  94. package/dist/features/blocks/server/validate.js.map +1 -1
  95. package/dist/features/converters/htmlToLexical/index.d.ts +1 -1
  96. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  97. package/dist/features/converters/htmlToLexical/index.js.map +1 -1
  98. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts +1 -1
  99. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts.map +1 -1
  100. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
  101. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts +1 -1
  102. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts.map +1 -1
  103. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  104. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts +1 -1
  105. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts.map +1 -1
  106. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
  107. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts +1 -1
  108. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts.map +1 -1
  109. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
  110. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts +1 -1
  111. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts.map +1 -1
  112. package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
  113. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts +1 -1
  114. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  115. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  116. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts +1 -1
  117. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts.map +1 -1
  118. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
  119. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts +1 -1
  120. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts.map +1 -1
  121. package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
  122. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts +1 -1
  123. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts.map +1 -1
  124. package/dist/features/converters/lexicalToHtml/async/converters/table.js +1 -1
  125. package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
  126. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts +1 -1
  127. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts.map +1 -1
  128. package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
  129. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts +1 -1
  130. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts.map +1 -1
  131. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  132. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts +1 -1
  133. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts.map +1 -1
  134. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
  135. package/dist/features/converters/lexicalToHtml/async/types.d.ts +15 -16
  136. package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -1
  137. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  138. package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
  139. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  140. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts +1 -1
  141. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts.map +1 -1
  142. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
  143. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts +1 -1
  144. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts.map +1 -1
  145. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  146. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts +1 -1
  147. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts.map +1 -1
  148. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
  149. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts +1 -1
  150. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts.map +1 -1
  151. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
  152. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts +1 -1
  153. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts.map +1 -1
  154. package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
  155. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts +1 -1
  156. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  157. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  158. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts +1 -1
  159. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts.map +1 -1
  160. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
  161. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts +1 -1
  162. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts.map +1 -1
  163. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
  164. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts +1 -1
  165. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts.map +1 -1
  166. package/dist/features/converters/lexicalToHtml/sync/converters/table.js +1 -1
  167. package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
  168. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts +1 -1
  169. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts.map +1 -1
  170. package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
  171. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts +1 -1
  172. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts.map +1 -1
  173. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  174. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts +1 -1
  175. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts.map +1 -1
  176. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
  177. package/dist/features/converters/lexicalToHtml/sync/types.d.ts +15 -16
  178. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  179. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  180. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +6 -4
  181. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  182. package/dist/features/converters/lexicalToJSX/Component/index.js +5 -4
  183. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  184. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts +1 -1
  185. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts.map +1 -1
  186. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  187. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts +1 -1
  188. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  189. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  190. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts +1 -1
  191. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts.map +1 -1
  192. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  193. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts +1 -1
  194. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts.map +1 -1
  195. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  196. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts +1 -1
  197. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts.map +1 -1
  198. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  199. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts +1 -1
  200. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  201. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  202. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts +1 -1
  203. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts.map +1 -1
  204. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  205. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts +1 -1
  206. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts.map +1 -1
  207. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
  208. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts +1 -1
  209. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts.map +1 -1
  210. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  211. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts +1 -1
  212. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts.map +1 -1
  213. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  214. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts +1 -1
  215. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  216. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  217. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts +1 -1
  218. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts.map +1 -1
  219. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
  220. package/dist/features/converters/lexicalToJSX/converter/index.d.ts +1 -1
  221. package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
  222. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  223. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +13 -15
  224. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  225. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  226. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  227. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +1 -1
  228. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
  229. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +13 -15
  230. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -1
  231. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  232. package/dist/features/converters/markdownToLexical/index.d.ts +1 -1
  233. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  234. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  235. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.css +4 -4
  236. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.css +1 -1
  237. package/dist/features/experimental_table/server/index.d.ts +1 -6
  238. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  239. package/dist/features/experimental_table/server/index.js +4 -0
  240. package/dist/features/experimental_table/server/index.js.map +1 -1
  241. package/dist/features/experimental_table/server/schema.d.ts +27 -0
  242. package/dist/features/experimental_table/server/schema.d.ts.map +1 -0
  243. package/dist/features/experimental_table/server/schema.js +107 -0
  244. package/dist/features/experimental_table/server/schema.js.map +1 -0
  245. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  246. package/dist/features/heading/server/index.d.ts +2 -4
  247. package/dist/features/heading/server/index.d.ts.map +1 -1
  248. package/dist/features/heading/server/index.js +2 -0
  249. package/dist/features/heading/server/index.js.map +1 -1
  250. package/dist/features/heading/server/schema.d.ts +10 -0
  251. package/dist/features/heading/server/schema.d.ts.map +1 -0
  252. package/dist/features/heading/server/schema.js +37 -0
  253. package/dist/features/heading/server/schema.js.map +1 -0
  254. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
  255. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  256. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  257. package/dist/features/horizontalRule/server/index.d.ts +1 -0
  258. package/dist/features/horizontalRule/server/index.d.ts.map +1 -1
  259. package/dist/features/horizontalRule/server/index.js +2 -0
  260. package/dist/features/horizontalRule/server/index.js.map +1 -1
  261. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -5
  262. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  263. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  264. package/dist/features/horizontalRule/server/schema.d.ts +7 -0
  265. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -0
  266. package/dist/features/horizontalRule/server/schema.js +25 -0
  267. package/dist/features/horizontalRule/server/schema.js.map +1 -0
  268. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  269. package/dist/features/link/client/index.d.ts.map +1 -1
  270. package/dist/features/link/client/index.js.map +1 -1
  271. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  272. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  273. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  274. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  275. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +2 -2
  276. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +1 -1
  277. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -1
  278. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
  279. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  280. package/dist/features/link/markdownTransformer.d.ts +1 -1
  281. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  282. package/dist/features/link/markdownTransformer.js.map +1 -1
  283. package/dist/features/link/markdownTransformer.spec.js.map +1 -1
  284. package/dist/features/link/nodes/AutoLinkNode.d.ts +3 -3
  285. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  286. package/dist/features/link/nodes/AutoLinkNode.js +2 -1
  287. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  288. package/dist/features/link/nodes/LinkNode.d.ts +3 -3
  289. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  290. package/dist/features/link/nodes/LinkNode.js +2 -1
  291. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  292. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  293. package/dist/features/link/server/baseFields.js.map +1 -1
  294. package/dist/features/link/server/graphQLPopulationPromise.d.ts +1 -1
  295. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  296. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
  297. package/dist/features/link/server/index.d.ts +2 -1
  298. package/dist/features/link/server/index.d.ts.map +1 -1
  299. package/dist/features/link/server/index.js +3 -0
  300. package/dist/features/link/server/index.js.map +1 -1
  301. package/dist/features/link/server/schema.d.ts +32 -0
  302. package/dist/features/link/server/schema.d.ts.map +1 -0
  303. package/dist/features/link/server/schema.js +169 -0
  304. package/dist/features/link/server/schema.js.map +1 -0
  305. package/dist/features/link/server/validate.d.ts +1 -1
  306. package/dist/features/link/server/validate.d.ts.map +1 -1
  307. package/dist/features/link/server/validate.js.map +1 -1
  308. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  309. package/dist/features/lists/checklist/server/index.js +3 -0
  310. package/dist/features/lists/checklist/server/index.js.map +1 -1
  311. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  312. package/dist/features/lists/orderedList/server/index.js +3 -0
  313. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  314. package/dist/features/lists/plugin/index.d.ts +0 -9
  315. package/dist/features/lists/plugin/index.d.ts.map +1 -1
  316. package/dist/features/lists/plugin/index.js.map +1 -1
  317. package/dist/features/lists/shared/markdown.d.ts.map +1 -1
  318. package/dist/features/lists/shared/schema.d.ts +18 -0
  319. package/dist/features/lists/shared/schema.d.ts.map +1 -0
  320. package/dist/features/lists/shared/schema.js +62 -0
  321. package/dist/features/lists/shared/schema.js.map +1 -0
  322. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  323. package/dist/features/lists/unorderedList/server/index.js +3 -0
  324. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  325. package/dist/features/relationship/client/components/RelationshipComponent.d.ts +1 -1
  326. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  327. package/dist/features/relationship/client/components/RelationshipComponent.js +2 -2
  328. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  329. package/dist/features/relationship/client/components/index.css +2 -2
  330. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  331. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  332. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  333. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  334. package/dist/features/relationship/client/plugins/index.d.ts +1 -1
  335. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  336. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  337. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  338. package/dist/features/relationship/client/utils/useEnabledRelationships.js +9 -40
  339. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  340. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +1 -1
  341. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  342. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  343. package/dist/features/relationship/server/index.d.ts +1 -0
  344. package/dist/features/relationship/server/index.d.ts.map +1 -1
  345. package/dist/features/relationship/server/index.js +2 -0
  346. package/dist/features/relationship/server/index.js.map +1 -1
  347. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -10
  348. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  349. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  350. package/dist/features/relationship/server/schema.d.ts +28 -0
  351. package/dist/features/relationship/server/schema.d.ts.map +1 -0
  352. package/dist/features/relationship/server/schema.js +80 -0
  353. package/dist/features/relationship/server/schema.js.map +1 -0
  354. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +23 -0
  355. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -0
  356. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +34 -0
  357. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -0
  358. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
  359. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
  360. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
  361. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  362. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  363. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +1 -2
  364. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  365. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +4 -4
  366. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  367. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  368. package/dist/features/toolbars/types.d.ts +1 -1
  369. package/dist/features/toolbars/types.d.ts.map +1 -1
  370. package/dist/features/toolbars/types.js.map +1 -1
  371. package/dist/features/typesClient.d.ts +1 -1
  372. package/dist/features/typesClient.d.ts.map +1 -1
  373. package/dist/features/typesClient.js.map +1 -1
  374. package/dist/features/typesServer.d.ts +18 -41
  375. package/dist/features/typesServer.d.ts.map +1 -1
  376. package/dist/features/typesServer.js.map +1 -1
  377. package/dist/features/upload/client/component/index.css +13 -17
  378. package/dist/features/upload/client/component/index.d.ts +1 -1
  379. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  380. package/dist/features/upload/client/component/index.js +4 -4
  381. package/dist/features/upload/client/component/index.js.map +1 -1
  382. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  383. package/dist/features/upload/client/nodes/UploadNode.d.ts +1 -1
  384. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  385. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  386. package/dist/features/upload/client/plugin/index.d.ts +1 -1
  387. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  388. package/dist/features/upload/client/plugin/index.js.map +1 -1
  389. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +1 -1
  390. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  391. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  392. package/dist/features/upload/server/index.d.ts +1 -0
  393. package/dist/features/upload/server/index.d.ts.map +1 -1
  394. package/dist/features/upload/server/index.js +3 -2
  395. package/dist/features/upload/server/index.js.map +1 -1
  396. package/dist/features/upload/server/nodes/UploadNode.d.ts +1 -55
  397. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  398. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  399. package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -1
  400. package/dist/features/upload/server/nodes/conversions.js.map +1 -1
  401. package/dist/features/upload/server/schema.d.ts +52 -0
  402. package/dist/features/upload/server/schema.d.ts.map +1 -0
  403. package/dist/features/upload/server/schema.js +129 -0
  404. package/dist/features/upload/server/schema.js.map +1 -0
  405. package/dist/features/upload/server/validate.d.ts +1 -1
  406. package/dist/features/upload/server/validate.d.ts.map +1 -1
  407. package/dist/features/upload/server/validate.js.map +1 -1
  408. package/dist/field/Diff/converters/link.d.ts +1 -1
  409. package/dist/field/Diff/converters/link.d.ts.map +1 -1
  410. package/dist/field/Diff/converters/link.js.map +1 -1
  411. package/dist/field/Diff/converters/listitem/index.css +44 -8
  412. package/dist/field/Diff/converters/listitem/index.d.ts +1 -1
  413. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  414. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  415. package/dist/field/Diff/converters/relationship/index.css +76 -36
  416. package/dist/field/Diff/converters/relationship/index.d.ts +1 -1
  417. package/dist/field/Diff/converters/relationship/index.d.ts.map +1 -1
  418. package/dist/field/Diff/converters/relationship/index.js +10 -28
  419. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  420. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  421. package/dist/field/Diff/converters/upload/index.css +106 -43
  422. package/dist/field/Diff/converters/upload/index.d.ts +1 -1
  423. package/dist/field/Diff/converters/upload/index.d.ts.map +1 -1
  424. package/dist/field/Diff/converters/upload/index.js +6 -2
  425. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  426. package/dist/field/Diff/index.css +116 -61
  427. package/dist/field/Diff/index.js.map +1 -1
  428. package/dist/field/Field.d.ts +1 -1
  429. package/dist/field/Field.d.ts.map +1 -1
  430. package/dist/field/Field.js +3 -4
  431. package/dist/field/Field.js.map +1 -1
  432. package/dist/field/RenderLexical/index.d.ts +2 -2
  433. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  434. package/dist/field/RenderLexical/index.js.map +1 -1
  435. package/dist/field/RichTextViewProvider.d.ts +1 -1
  436. package/dist/field/RichTextViewProvider.d.ts.map +1 -1
  437. package/dist/field/RichTextViewProvider.js.map +1 -1
  438. package/dist/field/bundled.css +1 -1
  439. package/dist/field/clientEntry.d.ts +29 -0
  440. package/dist/field/clientEntry.d.ts.map +1 -0
  441. package/dist/field/clientEntry.js +86 -0
  442. package/dist/field/clientEntry.js.map +1 -0
  443. package/dist/field/index.css +12 -12
  444. package/dist/field/index.d.ts +1 -1
  445. package/dist/field/index.d.ts.map +1 -1
  446. package/dist/field/index.js +1 -1
  447. package/dist/field/index.js.map +1 -1
  448. package/dist/field/rscEntry.d.ts +1 -1
  449. package/dist/field/rscEntry.d.ts.map +1 -1
  450. package/dist/field/rscEntry.js +2 -0
  451. package/dist/field/rscEntry.js.map +1 -1
  452. package/dist/hooks.d.ts +6 -0
  453. package/dist/hooks.d.ts.map +1 -0
  454. package/dist/hooks.js +548 -0
  455. package/dist/hooks.js.map +1 -0
  456. package/dist/index.d.ts +11 -8
  457. package/dist/index.d.ts.map +1 -1
  458. package/dist/index.js +56 -622
  459. package/dist/index.js.map +1 -1
  460. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  461. package/dist/lexical/LexicalEditor.js +36 -2
  462. package/dist/lexical/LexicalEditor.js.map +1 -1
  463. package/dist/lexical/LexicalProvider.d.ts +1 -1
  464. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  465. package/dist/lexical/LexicalProvider.js +22 -7
  466. package/dist/lexical/LexicalProvider.js.map +1 -1
  467. package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  468. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  469. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  470. package/dist/lexical/config/client/loader.d.ts +1 -1
  471. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  472. package/dist/lexical/config/client/loader.js +5 -1
  473. package/dist/lexical/config/client/loader.js.map +1 -1
  474. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  475. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  476. package/dist/lexical/config/client/sanitize.js.map +1 -1
  477. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  478. package/dist/lexical/config/server/sanitize.js +9 -11
  479. package/dist/lexical/config/server/sanitize.js.map +1 -1
  480. package/dist/lexical/config/types.d.ts +1 -1
  481. package/dist/lexical/config/types.d.ts.map +1 -1
  482. package/dist/lexical/config/types.js.map +1 -1
  483. package/dist/lexical/nodes/index.d.ts +1 -1
  484. package/dist/lexical/nodes/index.d.ts.map +1 -1
  485. package/dist/lexical/nodes/index.js.map +1 -1
  486. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  487. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +1 -1
  488. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  489. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  490. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  491. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  492. package/dist/lexical/theme/EditorTheme.css +4 -4
  493. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  494. package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js +160 -0
  495. package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js.map +1 -0
  496. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +1 -1
  497. package/dist/packages/@lexical/markdown/MarkdownExport.js +9 -2
  498. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +1 -1
  499. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +1 -1
  500. package/dist/packages/@lexical/markdown/MarkdownImport.js +3 -2
  501. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +1 -1
  502. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +27 -1
  503. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +1 -1
  504. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +88 -4
  505. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +1 -1
  506. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  507. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  508. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  509. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
  510. package/dist/types/builtInNodes.d.ts +14 -0
  511. package/dist/types/builtInNodes.d.ts.map +1 -0
  512. package/dist/types/builtInNodes.js +203 -0
  513. package/dist/types/builtInNodes.js.map +1 -0
  514. package/dist/{types.d.ts → types/index.d.ts} +25 -26
  515. package/dist/types/index.d.ts.map +1 -0
  516. package/dist/types/index.js +2 -0
  517. package/dist/types/index.js.map +1 -0
  518. package/dist/types/jsonSchemaHelpers.d.ts +30 -0
  519. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -0
  520. package/dist/types/jsonSchemaHelpers.js +58 -0
  521. package/dist/types/jsonSchemaHelpers.js.map +1 -0
  522. package/dist/types/nodeTypes.d.ts +128 -0
  523. package/dist/types/nodeTypes.d.ts.map +1 -0
  524. package/dist/types/nodeTypes.js +6 -0
  525. package/dist/types/nodeTypes.js.map +1 -0
  526. package/dist/types/schema.d.ts +6 -0
  527. package/dist/types/schema.d.ts.map +1 -0
  528. package/dist/types/schema.js +83 -0
  529. package/dist/types/schema.js.map +1 -0
  530. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  531. package/dist/utilities/applyBaseFilterToFields.js +1 -2
  532. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  533. package/dist/utilities/buildEditorState.d.ts +18 -4
  534. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  535. package/dist/utilities/buildEditorState.js +8 -0
  536. package/dist/utilities/buildEditorState.js.map +1 -1
  537. package/dist/utilities/buildInitialState.d.ts +2 -1
  538. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  539. package/dist/utilities/buildInitialState.js.map +1 -1
  540. package/dist/utilities/createClientFeature.d.ts +1 -1
  541. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  542. package/dist/utilities/createClientFeature.js.map +1 -1
  543. package/dist/utilities/editorConfigFactory.d.ts +1 -1
  544. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  545. package/dist/utilities/editorConfigFactory.js.map +1 -1
  546. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  547. package/dist/utilities/fieldsDrawer/Drawer.js +19 -10
  548. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  549. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -1
  550. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  551. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -7
  552. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  553. package/dist/utilities/fieldsDrawer/index.css +12 -0
  554. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +29 -0
  555. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -0
  556. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js +97 -0
  557. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -0
  558. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  559. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  560. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
  561. package/dist/utilities/generateImportMap.d.ts +1 -1
  562. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  563. package/dist/utilities/generateImportMap.js +7 -3
  564. package/dist/utilities/generateImportMap.js.map +1 -1
  565. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  566. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  567. package/dist/utilities/initLexicalFeatures.d.ts +1 -1
  568. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
  569. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  570. package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
  571. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  572. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +1 -1
  573. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  574. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  575. package/dist/validate/index.d.ts.map +1 -1
  576. package/package.json +14 -13
  577. package/dist/exports/client/Field-PJW7KUJG.js +0 -2
  578. package/dist/exports/client/Field-PJW7KUJG.js.map +0 -7
  579. package/dist/exports/client/RelationshipComponent-5RONAYJM.js.map +0 -7
  580. package/dist/exports/client/chunk-44G3K3W7.js +0 -2
  581. package/dist/exports/client/chunk-44G3K3W7.js.map +0 -7
  582. package/dist/exports/client/chunk-BZZVLW4U.js.map +0 -7
  583. package/dist/exports/client/chunk-FTT5KJ6W.js +0 -12
  584. package/dist/exports/client/chunk-FTT5KJ6W.js.map +0 -7
  585. package/dist/exports/client/chunk-INBEEENE.js +0 -2
  586. package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
  587. package/dist/exports/client/chunk-QJ5EETIB.js +0 -2
  588. package/dist/exports/client/chunk-QJ5EETIB.js.map +0 -7
  589. package/dist/exports/client/component-53Y3RYR5.js +0 -2
  590. package/dist/exports/client/component-53Y3RYR5.js.map +0 -7
  591. package/dist/exports/client/componentInline-PM4PLNUK.js +0 -2
  592. package/dist/features/link/nodes/types.d.ts +0 -27
  593. package/dist/features/link/nodes/types.d.ts.map +0 -1
  594. package/dist/features/link/nodes/types.js +0 -2
  595. package/dist/features/link/nodes/types.js.map +0 -1
  596. package/dist/nodeTypes.d.ts +0 -74
  597. package/dist/nodeTypes.d.ts.map +0 -1
  598. package/dist/nodeTypes.js +0 -5
  599. package/dist/nodeTypes.js.map +0 -1
  600. package/dist/types.d.ts.map +0 -1
  601. package/dist/types.js +0 -2
  602. package/dist/types.js.map +0 -1
  603. /package/dist/exports/client/{componentInline-PM4PLNUK.js.map → componentInline-H24N7GUG.js.map} +0 -0
@@ -1,5 +1,10 @@
1
1
  import type { SerializedLexicalNode } from 'lexical';
2
- import type { DefaultNodeTypes, TypedEditorState } from '../nodeTypes.js';
2
+ import type { DefaultNodeTypes, TypedEditorState } from '../types/nodeTypes.js';
3
+ /**
4
+ * The node union to build with. Accepts either a node union directly (e.g. `DefaultNodeTypes`) or a
5
+ * generated `richText` field type (e.g. `Post['richText']`), whose nodes are extracted automatically.
6
+ */
7
+ type BuildNodes<T> = NonNullable<T> extends TypedEditorState<infer TNode extends SerializedLexicalNode> ? TNode : Extract<NonNullable<T>, SerializedLexicalNode>;
3
8
  /**
4
9
  * Helper to build lexical editor state JSON from text and/or nodes.
5
10
  *
@@ -36,11 +41,19 @@ import type { DefaultNodeTypes, TypedEditorState } from '../nodeTypes.js';
36
41
  * ],
37
42
  * })
38
43
  * ```
44
+ *
45
+ * @example
46
+ *
47
+ * passing a generated `richText` field type — the result is exactly that field's type:
48
+ *
49
+ * ```ts
50
+ * post.richText = buildEditorState<Post['richText']>({ text: 'Hello world' })
51
+ * ```
39
52
  */
40
- export declare function buildEditorState<T extends SerializedLexicalNode>({ nodes, text, }: {
41
- nodes?: TypedEditorState<T>['root']['children'];
53
+ export declare function buildEditorState<T extends null | SerializedLexicalNode | TypedEditorState<SerializedLexicalNode> | undefined = DefaultNodeTypes>({ nodes, text, }: {
54
+ nodes?: TypedEditorState<BuildNodes<T>>['root']['children'];
42
55
  text?: string;
43
- }): TypedEditorState<T>;
56
+ }): TypedEditorState<BuildNodes<T>>;
44
57
  /**
45
58
  *
46
59
  * Alias for `buildEditorState<DefaultNodeTypes>`
@@ -49,4 +62,5 @@ export declare function buildEditorState<T extends SerializedLexicalNode>({ node
49
62
  * @internal
50
63
  */
51
64
  export declare const buildDefaultEditorState: typeof buildEditorState<DefaultNodeTypes>;
65
+ export {};
52
66
  //# sourceMappingURL=buildEditorState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildEditorState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildEditorState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAA2B,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,EAAE,EAChE,KAAK,EACL,IAAI,GACL,EAAE;IACD,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAA;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAuDtB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAO,gBAAgB,CAAC,gBAAgB,CAC1C,CAAA"}
1
+ {"version":3,"file":"buildEditorState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildEditorState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,OAAO,KAAK,EACV,gBAAgB,EAEhB,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAE9B;;;GAGG;AACH,KAAK,UAAU,CAAC,CAAC,IACf,WAAW,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,MAAM,KAAK,SAAS,qBAAqB,CAAC,GAC9E,KAAK,GACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SACG,IAAI,GACJ,qBAAqB,GACrB,gBAAgB,CAAC,qBAAqB,CAAC,GACvC,SAAS,GAAG,gBAAgB,EAChC,EACA,KAAK,EACL,IAAI,GACL,EAAE;IACD,KAAK,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAA;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAuDlC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAO,gBAAgB,CAAC,gBAAgB,CAC1C,CAAA"}
@@ -34,6 +34,14 @@
34
34
  * ],
35
35
  * })
36
36
  * ```
37
+ *
38
+ * @example
39
+ *
40
+ * passing a generated `richText` field type — the result is exactly that field's type:
41
+ *
42
+ * ```ts
43
+ * post.richText = buildEditorState<Post['richText']>({ text: 'Hello world' })
44
+ * ```
37
45
  */export function buildEditorState({
38
46
  nodes,
39
47
  text
@@ -1 +1 @@
1
- {"version":3,"file":"buildEditorState.js","names":["buildEditorState","nodes","text","editorJSON","root","type","children","direction","format","indent","version","push","detail","mode","style","textFormat","textStyle","length","buildDefaultEditorState"],"sources":["../../src/utilities/buildEditorState.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\n\nimport type { DefaultNodeTypes, DefaultTypedEditorState, TypedEditorState } from '../nodeTypes.js'\n\n/**\n * Helper to build lexical editor state JSON from text and/or nodes.\n *\n * @param nodes - The nodes to include in the editor state. If you pass the `text` argument, this will append your nodes after the first paragraph node.\n * @param text - The text content to include in the editor state. This will create a paragraph node with a text node for you and set that as the first node.\n * @returns The constructed editor state JSON.\n *\n * @example\n *\n * just passing text:\n *\n * ```ts\n * const editorState = buildEditorState<DefaultNodeTypes>({ text: 'Hello world' }) // result typed as DefaultTypedEditorState\n * ```\n *\n * @example\n *\n * passing nodes:\n *\n * ```ts\n * const editorState = // result typed as TypedEditorState<DefaultNodeTypes | SerializedBlockNode> (or TypedEditorState<SerializedBlockNode>)\n * buildEditorState<DefaultNodeTypes | SerializedBlockNode>({ // or just buildEditorState<SerializedBlockNode> if you *only* want to allow block nodes\n * nodes: [\n * {\n * type: 'block',\n * fields: {\n * id: 'id',\n * blockName: 'Cool block',\n * blockType: 'myBlock',\n * },\n * format: 'left',\n * version: 1,\n * }\n * ],\n * })\n * ```\n */\nexport function buildEditorState<T extends SerializedLexicalNode>({\n nodes,\n text,\n}: {\n nodes?: TypedEditorState<T>['root']['children']\n text?: string\n}): TypedEditorState<T> {\n const editorJSON: DefaultTypedEditorState = {\n root: {\n type: 'root',\n children: [],\n direction: 'ltr',\n format: '',\n indent: 0,\n version: 1,\n },\n }\n\n if (text) {\n editorJSON.root.children.push({\n type: 'paragraph',\n children: [\n {\n type: 'text',\n detail: 0,\n format: 0,\n mode: 'normal',\n style: '',\n text,\n version: 1,\n },\n ],\n direction: 'ltr',\n format: '',\n indent: 0,\n textFormat: 0,\n textStyle: '',\n version: 1,\n })\n }\n\n if (nodes?.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n editorJSON.root.children.push(...(nodes as any))\n }\n\n if (editorJSON.root.children.length === 0) {\n // An error will be thrown if the root node has no children\n editorJSON.root.children.push({\n type: 'paragraph',\n children: [],\n direction: 'ltr',\n format: '',\n indent: 0,\n textFormat: 0,\n textStyle: '',\n version: 1,\n })\n }\n\n return editorJSON as TypedEditorState<T>\n}\n\n/**\n *\n * Alias for `buildEditorState<DefaultNodeTypes>`\n *\n * @experimental this API may change or be removed in a minor release\n * @internal\n */\nexport const buildDefaultEditorState: typeof buildEditorState<DefaultNodeTypes> =\n buildEditorState<DefaultNodeTypes>\n"],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCA,OAAO,SAASA,iBAAkD;EAChEC,KAAK;EACLC;AAAI,CAIL;EACC,MAAMC,UAAA,GAAsC;IAC1CC,IAAA,EAAM;MACJC,IAAA,EAAM;MACNC,QAAA,EAAU,EAAE;MACZC,SAAA,EAAW;MACXC,MAAA,EAAQ;MACRC,MAAA,EAAQ;MACRC,OAAA,EAAS;IACX;EACF;EAEA,IAAIR,IAAA,EAAM;IACRC,UAAA,CAAWC,IAAI,CAACE,QAAQ,CAACK,IAAI,CAAC;MAC5BN,IAAA,EAAM;MACNC,QAAA,EAAU,CACR;QACED,IAAA,EAAM;QACNO,MAAA,EAAQ;QACRJ,MAAA,EAAQ;QACRK,IAAA,EAAM;QACNC,KAAA,EAAO;QACPZ,IAAA;QACAQ,OAAA,EAAS;MACX,EACD;MACDH,SAAA,EAAW;MACXC,MAAA,EAAQ;MACRC,MAAA,EAAQ;MACRM,UAAA,EAAY;MACZC,SAAA,EAAW;MACXN,OAAA,EAAS;IACX;EACF;EAEA,IAAIT,KAAA,EAAOgB,MAAA,EAAQ;IACjB;IACAd,UAAA,CAAWC,IAAI,CAACE,QAAQ,CAACK,IAAI,IAAKV,KAAA;EACpC;EAEA,IAAIE,UAAA,CAAWC,IAAI,CAACE,QAAQ,CAACW,MAAM,KAAK,GAAG;IACzC;IACAd,UAAA,CAAWC,IAAI,CAACE,QAAQ,CAACK,IAAI,CAAC;MAC5BN,IAAA,EAAM;MACNC,QAAA,EAAU,EAAE;MACZC,SAAA,EAAW;MACXC,MAAA,EAAQ;MACRC,MAAA,EAAQ;MACRM,UAAA,EAAY;MACZC,SAAA,EAAW;MACXN,OAAA,EAAS;IACX;EACF;EAEA,OAAOP,UAAA;AACT;AAEA;;;;;;;AAOA,OAAO,MAAMe,uBAAA,GACXlB,gBAAA","ignoreList":[]}
1
+ {"version":3,"file":"buildEditorState.js","names":["buildEditorState","nodes","text","editorJSON","root","type","children","direction","format","indent","version","push","detail","mode","style","textFormat","textStyle","length","buildDefaultEditorState"],"sources":["../../src/utilities/buildEditorState.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\n\nimport type {\n DefaultNodeTypes,\n DefaultTypedEditorState,\n TypedEditorState,\n} from '../types/nodeTypes.js'\n\n/**\n * The node union to build with. Accepts either a node union directly (e.g. `DefaultNodeTypes`) or a\n * generated `richText` field type (e.g. `Post['richText']`), whose nodes are extracted automatically.\n */\ntype BuildNodes<T> =\n NonNullable<T> extends TypedEditorState<infer TNode extends SerializedLexicalNode>\n ? TNode\n : Extract<NonNullable<T>, SerializedLexicalNode>\n\n/**\n * Helper to build lexical editor state JSON from text and/or nodes.\n *\n * @param nodes - The nodes to include in the editor state. If you pass the `text` argument, this will append your nodes after the first paragraph node.\n * @param text - The text content to include in the editor state. This will create a paragraph node with a text node for you and set that as the first node.\n * @returns The constructed editor state JSON.\n *\n * @example\n *\n * just passing text:\n *\n * ```ts\n * const editorState = buildEditorState<DefaultNodeTypes>({ text: 'Hello world' }) // result typed as DefaultTypedEditorState\n * ```\n *\n * @example\n *\n * passing nodes:\n *\n * ```ts\n * const editorState = // result typed as TypedEditorState<DefaultNodeTypes | SerializedBlockNode> (or TypedEditorState<SerializedBlockNode>)\n * buildEditorState<DefaultNodeTypes | SerializedBlockNode>({ // or just buildEditorState<SerializedBlockNode> if you *only* want to allow block nodes\n * nodes: [\n * {\n * type: 'block',\n * fields: {\n * id: 'id',\n * blockName: 'Cool block',\n * blockType: 'myBlock',\n * },\n * format: 'left',\n * version: 1,\n * }\n * ],\n * })\n * ```\n *\n * @example\n *\n * passing a generated `richText` field type — the result is exactly that field's type:\n *\n * ```ts\n * post.richText = buildEditorState<Post['richText']>({ text: 'Hello world' })\n * ```\n */\nexport function buildEditorState<\n T extends\n | null\n | SerializedLexicalNode\n | TypedEditorState<SerializedLexicalNode>\n | undefined = DefaultNodeTypes,\n>({\n nodes,\n text,\n}: {\n nodes?: TypedEditorState<BuildNodes<T>>['root']['children']\n text?: string\n}): TypedEditorState<BuildNodes<T>> {\n const editorJSON: DefaultTypedEditorState = {\n root: {\n type: 'root',\n children: [],\n direction: 'ltr',\n format: '',\n indent: 0,\n version: 1,\n },\n }\n\n if (text) {\n editorJSON.root.children.push({\n type: 'paragraph',\n children: [\n {\n type: 'text',\n detail: 0,\n format: 0,\n mode: 'normal',\n style: '',\n text,\n version: 1,\n },\n ],\n direction: 'ltr',\n format: '',\n indent: 0,\n textFormat: 0,\n textStyle: '',\n version: 1,\n })\n }\n\n if (nodes?.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n editorJSON.root.children.push(...(nodes as any))\n }\n\n if (editorJSON.root.children.length === 0) {\n // An error will be thrown if the root node has no children\n editorJSON.root.children.push({\n type: 'paragraph',\n children: [],\n direction: 'ltr',\n format: '',\n indent: 0,\n textFormat: 0,\n textStyle: '',\n version: 1,\n })\n }\n\n return editorJSON as TypedEditorState<BuildNodes<T>>\n}\n\n/**\n *\n * Alias for `buildEditorState<DefaultNodeTypes>`\n *\n * @experimental this API may change or be removed in a minor release\n * @internal\n */\nexport const buildDefaultEditorState: typeof buildEditorState<DefaultNodeTypes> =\n buildEditorState<DefaultNodeTypes>\n"],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CA,OAAO,SAASA,iBAMd;EACAC,KAAK;EACLC;AAAI,CAIL;EACC,MAAMC,UAAA,GAAsC;IAC1CC,IAAA,EAAM;MACJC,IAAA,EAAM;MACNC,QAAA,EAAU,EAAE;MACZC,SAAA,EAAW;MACXC,MAAA,EAAQ;MACRC,MAAA,EAAQ;MACRC,OAAA,EAAS;IACX;EACF;EAEA,IAAIR,IAAA,EAAM;IACRC,UAAA,CAAWC,IAAI,CAACE,QAAQ,CAACK,IAAI,CAAC;MAC5BN,IAAA,EAAM;MACNC,QAAA,EAAU,CACR;QACED,IAAA,EAAM;QACNO,MAAA,EAAQ;QACRJ,MAAA,EAAQ;QACRK,IAAA,EAAM;QACNC,KAAA,EAAO;QACPZ,IAAA;QACAQ,OAAA,EAAS;MACX,EACD;MACDH,SAAA,EAAW;MACXC,MAAA,EAAQ;MACRC,MAAA,EAAQ;MACRM,UAAA,EAAY;MACZC,SAAA,EAAW;MACXN,OAAA,EAAS;IACX;EACF;EAEA,IAAIT,KAAA,EAAOgB,MAAA,EAAQ;IACjB;IACAd,UAAA,CAAWC,IAAI,CAACE,QAAQ,CAACK,IAAI,IAAKV,KAAA;EACpC;EAEA,IAAIE,UAAA,CAAWC,IAAI,CAACE,QAAQ,CAACW,MAAM,KAAK,GAAG;IACzC;IACAd,UAAA,CAAWC,IAAI,CAACE,QAAQ,CAACK,IAAI,CAAC;MAC5BN,IAAA,EAAM;MACNC,QAAA,EAAU,EAAE;MACZC,SAAA,EAAW;MACXC,MAAA,EAAQ;MACRC,MAAA,EAAQ;MACRM,UAAA,EAAY;MACZC,SAAA,EAAW;MACXN,OAAA,EAAS;IACX;EACF;EAEA,OAAOP,UAAA;AACT;AAEA;;;;;;;AAOA,OAAO,MAAMe,uBAAA,GACXlB,gBAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { SerializedLexicalNode } from 'lexical';
2
- import type { ClientFieldSchemaMap, DocumentPreferences, FieldSchemaMap, FormState, Operation, PayloadRequest, RichTextField, SanitizedFieldPermissions } from 'payload';
2
+ import type { ClientFieldSchemaMap, ComponentRenderer, DocumentPreferences, FieldSchemaMap, FormState, Operation, PayloadRequest, RichTextField, SanitizedFieldPermissions } from 'payload';
3
3
  export type InitialLexicalFormState = {
4
4
  [nodeID: string]: {
5
5
  [key: string]: any;
@@ -19,6 +19,7 @@ type Props = {
19
19
  operation: Operation;
20
20
  permissions?: SanitizedFieldPermissions;
21
21
  preferences: DocumentPreferences;
22
+ renderComponent: ComponentRenderer;
22
23
  renderFieldFn: any;
23
24
  req: PayloadRequest;
24
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"buildInitialState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildInitialState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,SAAS,EACT,cAAc,EACd,aAAa,EACb,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;QAClB,SAAS,CAAC,EAAE,SAAS,CAAA;KACtB,CAAA;CACF,CAAA;AAED,KAAK,KAAK,GAAG;IACX,OAAO,EAAE;QACP,oBAAoB,EAAE,oBAAoB,CAAA;QAC1C,cAAc,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,YAAY,CAAC,EAAE,GAAG,CAAA;QAClB,KAAK,EAAE,aAAa,CAAA;QACpB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACpB,sBAAsB,EAAE,MAAM,CAAA;QAC9B,SAAS,EAAE,SAAS,CAAA;QACpB,WAAW,CAAC,EAAE,yBAAyB,CAAA;QACvC,WAAW,EAAE,mBAAmB,CAAA;QAChC,aAAa,EAAE,GAAG,CAAA;QAClB,GAAG,EAAE,cAAc,CAAA;KACpB,CAAA;IACD,YAAY,CAAC,EAAE,uBAAuB,CAAA;IACtC,QAAQ,EAAE,qBAAqB,EAAE,CAAA;CAClC,CAAA;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,YAAY,EAAE,oBAAoB,EAClC,QAAQ,GACT,EAAE,KAAK,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA4D1C"}
1
+ {"version":3,"file":"buildInitialState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildInitialState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,SAAS,EACT,cAAc,EACd,aAAa,EACb,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;QAClB,SAAS,CAAC,EAAE,SAAS,CAAA;KACtB,CAAA;CACF,CAAA;AAED,KAAK,KAAK,GAAG;IACX,OAAO,EAAE;QACP,oBAAoB,EAAE,oBAAoB,CAAA;QAC1C,cAAc,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,YAAY,CAAC,EAAE,GAAG,CAAA;QAClB,KAAK,EAAE,aAAa,CAAA;QACpB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACpB,sBAAsB,EAAE,MAAM,CAAA;QAC9B,SAAS,EAAE,SAAS,CAAA;QACpB,WAAW,CAAC,EAAE,yBAAyB,CAAA;QACvC,WAAW,EAAE,mBAAmB,CAAA;QAChC,eAAe,EAAE,iBAAiB,CAAA;QAClC,aAAa,EAAE,GAAG,CAAA;QAClB,GAAG,EAAE,cAAc,CAAA;KACpB,CAAA;IACD,YAAY,CAAC,EAAE,uBAAuB,CAAA;IACtC,QAAQ,EAAE,qBAAqB,EAAE,CAAA;CAClC,CAAA;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,YAAY,EAAE,oBAAoB,EAClC,QAAQ,GACT,EAAE,KAAK,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA4D1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildInitialState.js","names":["fieldSchemasToFormState","buildInitialState","context","initialState","initialStateFromArgs","nodeData","node","children","type","blockNode","id","fields","schemaFieldsPath","lexicalFieldSchemaPath","blockType","formStateResult","clientFieldSchemaMap","collectionSlug","data","documentData","fieldSchemaMap","get","initialBlockData","operation","permissions","preferences","readOnly","disabled","renderAllFields","renderFieldFn","req","schemaPath","formState","currentFieldPreferences","field","name","collapsedArray","collapsed","Array","isArray","includes"],"sources":["../../src/utilities/buildInitialState.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\nimport type {\n ClientFieldSchemaMap,\n DocumentPreferences,\n FieldSchemaMap,\n FormState,\n Operation,\n PayloadRequest,\n RichTextField,\n SanitizedFieldPermissions,\n} from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { SerializedBlockNode } from '../nodeTypes.js'\n\nexport type InitialLexicalFormState = {\n [nodeID: string]: {\n [key: string]: any\n formState?: FormState\n }\n}\n\ntype Props = {\n context: {\n clientFieldSchemaMap: ClientFieldSchemaMap\n collectionSlug: string\n disabled?: boolean\n documentData?: any\n field: RichTextField\n fieldSchemaMap: FieldSchemaMap\n id?: number | string\n lexicalFieldSchemaPath: string\n operation: Operation\n permissions?: SanitizedFieldPermissions\n preferences: DocumentPreferences\n renderFieldFn: any\n req: PayloadRequest\n }\n initialState?: InitialLexicalFormState\n nodeData: SerializedLexicalNode[]\n}\n\nexport async function buildInitialState({\n context,\n initialState: initialStateFromArgs,\n nodeData,\n}: Props): Promise<InitialLexicalFormState> {\n let initialState: InitialLexicalFormState = initialStateFromArgs ?? {}\n for (const node of nodeData) {\n if ('children' in node) {\n initialState = await buildInitialState({\n context,\n initialState,\n nodeData: node.children as SerializedLexicalNode[],\n })\n }\n\n if (node.type === 'block' || node.type === 'inlineBlock') {\n const blockNode = node as SerializedBlockNode\n const id = blockNode?.fields?.id\n if (!id) {\n continue\n }\n\n const schemaFieldsPath =\n node.type === 'block'\n ? `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockNode.fields.blockType}.fields`\n : `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${blockNode.fields.blockType}.fields`\n\n // Build form state for the block\n\n const formStateResult = await fieldSchemasToFormState({\n id: context.id,\n clientFieldSchemaMap: context.clientFieldSchemaMap,\n collectionSlug: context.collectionSlug,\n data: blockNode.fields,\n documentData: context.documentData,\n fields: (context.fieldSchemaMap.get(schemaFieldsPath) as any)?.fields,\n fieldSchemaMap: context.fieldSchemaMap,\n initialBlockData: blockNode.fields,\n operation: context.operation as any, // TODO: Type\n permissions: true,\n preferences: context.preferences,\n readOnly: context.disabled,\n renderAllFields: true, // If this function runs, the parent lexical field is being re-rendered => thus we can assume all its sub-fields need to be re-rendered\n renderFieldFn: context.renderFieldFn,\n req: context.req,\n schemaPath: schemaFieldsPath,\n })\n\n if (!initialState[id]) {\n initialState[id] = {}\n }\n\n initialState[id].formState = formStateResult\n\n if (node.type === 'block') {\n const currentFieldPreferences = context.preferences?.fields?.[context.field.name]\n const collapsedArray = currentFieldPreferences?.collapsed\n if (Array.isArray(collapsedArray) && collapsedArray.includes(id)) {\n initialState[id].collapsed = true\n }\n }\n }\n }\n return initialState\n}\n"],"mappings":"AAYA,SAASA,uBAAuB,QAAQ;AA+BxC,OAAO,eAAeC,kBAAkB;EACtCC,OAAO;EACPC,YAAA,EAAcC,oBAAoB;EAClCC;AAAQ,CACF;EACN,IAAIF,YAAA,GAAwCC,oBAAA,IAAwB,CAAC;EACrE,KAAK,MAAME,IAAA,IAAQD,QAAA,EAAU;IAC3B,IAAI,cAAcC,IAAA,EAAM;MACtBH,YAAA,GAAe,MAAMF,iBAAA,CAAkB;QACrCC,OAAA;QACAC,YAAA;QACAE,QAAA,EAAUC,IAAA,CAAKC;MACjB;IACF;IAEA,IAAID,IAAA,CAAKE,IAAI,KAAK,WAAWF,IAAA,CAAKE,IAAI,KAAK,eAAe;MACxD,MAAMC,SAAA,GAAYH,IAAA;MAClB,MAAMI,EAAA,GAAKD,SAAA,EAAWE,MAAA,EAAQD,EAAA;MAC9B,IAAI,CAACA,EAAA,EAAI;QACP;MACF;MAEA,MAAME,gBAAA,GACJN,IAAA,CAAKE,IAAI,KAAK,UACV,GAAGN,OAAA,CAAQW,sBAAsB,mDAAmDJ,SAAA,CAAUE,MAAM,CAACG,SAAS,SAAS,GACvH,GAAGZ,OAAA,CAAQW,sBAAsB,0DAA0DJ,SAAA,CAAUE,MAAM,CAACG,SAAS,SAAS;MAEpI;MAEA,MAAMC,eAAA,GAAkB,MAAMf,uBAAA,CAAwB;QACpDU,EAAA,EAAIR,OAAA,CAAQQ,EAAE;QACdM,oBAAA,EAAsBd,OAAA,CAAQc,oBAAoB;QAClDC,cAAA,EAAgBf,OAAA,CAAQe,cAAc;QACtCC,IAAA,EAAMT,SAAA,CAAUE,MAAM;QACtBQ,YAAA,EAAcjB,OAAA,CAAQiB,YAAY;QAClCR,MAAA,EAAST,OAAA,CAAQkB,cAAc,CAACC,GAAG,CAACT,gBAAA,GAA2BD,MAAA;QAC/DS,cAAA,EAAgBlB,OAAA,CAAQkB,cAAc;QACtCE,gBAAA,EAAkBb,SAAA,CAAUE,MAAM;QAClCY,SAAA,EAAWrB,OAAA,CAAQqB,SAAS;QAC5BC,WAAA,EAAa;QACbC,WAAA,EAAavB,OAAA,CAAQuB,WAAW;QAChCC,QAAA,EAAUxB,OAAA,CAAQyB,QAAQ;QAC1BC,eAAA,EAAiB;QACjBC,aAAA,EAAe3B,OAAA,CAAQ2B,aAAa;QACpCC,GAAA,EAAK5B,OAAA,CAAQ4B,GAAG;QAChBC,UAAA,EAAYnB;MACd;MAEA,IAAI,CAACT,YAAY,CAACO,EAAA,CAAG,EAAE;QACrBP,YAAY,CAACO,EAAA,CAAG,GAAG,CAAC;MACtB;MAEAP,YAAY,CAACO,EAAA,CAAG,CAACsB,SAAS,GAAGjB,eAAA;MAE7B,IAAIT,IAAA,CAAKE,IAAI,KAAK,SAAS;QACzB,MAAMyB,uBAAA,GAA0B/B,OAAA,CAAQuB,WAAW,EAAEd,MAAA,GAAST,OAAA,CAAQgC,KAAK,CAACC,IAAI,CAAC;QACjF,MAAMC,cAAA,GAAiBH,uBAAA,EAAyBI,SAAA;QAChD,IAAIC,KAAA,CAAMC,OAAO,CAACH,cAAA,KAAmBA,cAAA,CAAeI,QAAQ,CAAC9B,EAAA,GAAK;UAChEP,YAAY,CAACO,EAAA,CAAG,CAAC2B,SAAS,GAAG;QAC/B;MACF;IACF;EACF;EACA,OAAOlC,YAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"buildInitialState.js","names":["fieldSchemasToFormState","buildInitialState","context","initialState","initialStateFromArgs","nodeData","node","children","type","blockNode","id","fields","schemaFieldsPath","lexicalFieldSchemaPath","blockType","formStateResult","clientFieldSchemaMap","collectionSlug","data","documentData","fieldSchemaMap","get","initialBlockData","operation","permissions","preferences","readOnly","disabled","renderAllFields","renderFieldFn","req","schemaPath","formState","currentFieldPreferences","field","name","collapsedArray","collapsed","Array","isArray","includes"],"sources":["../../src/utilities/buildInitialState.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\nimport type {\n ClientFieldSchemaMap,\n ComponentRenderer,\n DocumentPreferences,\n FieldSchemaMap,\n FormState,\n Operation,\n PayloadRequest,\n RichTextField,\n SanitizedFieldPermissions,\n} from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { SerializedBlockNode } from '../types/nodeTypes.js'\n\nexport type InitialLexicalFormState = {\n [nodeID: string]: {\n [key: string]: any\n formState?: FormState\n }\n}\n\ntype Props = {\n context: {\n clientFieldSchemaMap: ClientFieldSchemaMap\n collectionSlug: string\n disabled?: boolean\n documentData?: any\n field: RichTextField\n fieldSchemaMap: FieldSchemaMap\n id?: number | string\n lexicalFieldSchemaPath: string\n operation: Operation\n permissions?: SanitizedFieldPermissions\n preferences: DocumentPreferences\n renderComponent: ComponentRenderer\n renderFieldFn: any\n req: PayloadRequest\n }\n initialState?: InitialLexicalFormState\n nodeData: SerializedLexicalNode[]\n}\n\nexport async function buildInitialState({\n context,\n initialState: initialStateFromArgs,\n nodeData,\n}: Props): Promise<InitialLexicalFormState> {\n let initialState: InitialLexicalFormState = initialStateFromArgs ?? {}\n for (const node of nodeData) {\n if ('children' in node) {\n initialState = await buildInitialState({\n context,\n initialState,\n nodeData: node.children as SerializedLexicalNode[],\n })\n }\n\n if (node.type === 'block' || node.type === 'inlineBlock') {\n const blockNode = node as SerializedBlockNode\n const id = blockNode?.fields?.id\n if (!id) {\n continue\n }\n\n const schemaFieldsPath =\n node.type === 'block'\n ? `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockNode.fields.blockType}.fields`\n : `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${blockNode.fields.blockType}.fields`\n\n // Build form state for the block\n\n const formStateResult = await fieldSchemasToFormState({\n id: context.id,\n clientFieldSchemaMap: context.clientFieldSchemaMap,\n collectionSlug: context.collectionSlug,\n data: blockNode.fields,\n documentData: context.documentData,\n fields: (context.fieldSchemaMap.get(schemaFieldsPath) as any)?.fields,\n fieldSchemaMap: context.fieldSchemaMap,\n initialBlockData: blockNode.fields,\n operation: context.operation as any, // TODO: Type\n permissions: true,\n preferences: context.preferences,\n readOnly: context.disabled,\n renderAllFields: true, // If this function runs, the parent lexical field is being re-rendered => thus we can assume all its sub-fields need to be re-rendered\n renderFieldFn: context.renderFieldFn,\n req: context.req,\n schemaPath: schemaFieldsPath,\n })\n\n if (!initialState[id]) {\n initialState[id] = {}\n }\n\n initialState[id].formState = formStateResult\n\n if (node.type === 'block') {\n const currentFieldPreferences = context.preferences?.fields?.[context.field.name]\n const collapsedArray = currentFieldPreferences?.collapsed\n if (Array.isArray(collapsedArray) && collapsedArray.includes(id)) {\n initialState[id].collapsed = true\n }\n }\n }\n }\n return initialState\n}\n"],"mappings":"AAaA,SAASA,uBAAuB,QAAQ;AAgCxC,OAAO,eAAeC,kBAAkB;EACtCC,OAAO;EACPC,YAAA,EAAcC,oBAAoB;EAClCC;AAAQ,CACF;EACN,IAAIF,YAAA,GAAwCC,oBAAA,IAAwB,CAAC;EACrE,KAAK,MAAME,IAAA,IAAQD,QAAA,EAAU;IAC3B,IAAI,cAAcC,IAAA,EAAM;MACtBH,YAAA,GAAe,MAAMF,iBAAA,CAAkB;QACrCC,OAAA;QACAC,YAAA;QACAE,QAAA,EAAUC,IAAA,CAAKC;MACjB;IACF;IAEA,IAAID,IAAA,CAAKE,IAAI,KAAK,WAAWF,IAAA,CAAKE,IAAI,KAAK,eAAe;MACxD,MAAMC,SAAA,GAAYH,IAAA;MAClB,MAAMI,EAAA,GAAKD,SAAA,EAAWE,MAAA,EAAQD,EAAA;MAC9B,IAAI,CAACA,EAAA,EAAI;QACP;MACF;MAEA,MAAME,gBAAA,GACJN,IAAA,CAAKE,IAAI,KAAK,UACV,GAAGN,OAAA,CAAQW,sBAAsB,mDAAmDJ,SAAA,CAAUE,MAAM,CAACG,SAAS,SAAS,GACvH,GAAGZ,OAAA,CAAQW,sBAAsB,0DAA0DJ,SAAA,CAAUE,MAAM,CAACG,SAAS,SAAS;MAEpI;MAEA,MAAMC,eAAA,GAAkB,MAAMf,uBAAA,CAAwB;QACpDU,EAAA,EAAIR,OAAA,CAAQQ,EAAE;QACdM,oBAAA,EAAsBd,OAAA,CAAQc,oBAAoB;QAClDC,cAAA,EAAgBf,OAAA,CAAQe,cAAc;QACtCC,IAAA,EAAMT,SAAA,CAAUE,MAAM;QACtBQ,YAAA,EAAcjB,OAAA,CAAQiB,YAAY;QAClCR,MAAA,EAAST,OAAA,CAAQkB,cAAc,CAACC,GAAG,CAACT,gBAAA,GAA2BD,MAAA;QAC/DS,cAAA,EAAgBlB,OAAA,CAAQkB,cAAc;QACtCE,gBAAA,EAAkBb,SAAA,CAAUE,MAAM;QAClCY,SAAA,EAAWrB,OAAA,CAAQqB,SAAS;QAC5BC,WAAA,EAAa;QACbC,WAAA,EAAavB,OAAA,CAAQuB,WAAW;QAChCC,QAAA,EAAUxB,OAAA,CAAQyB,QAAQ;QAC1BC,eAAA,EAAiB;QACjBC,aAAA,EAAe3B,OAAA,CAAQ2B,aAAa;QACpCC,GAAA,EAAK5B,OAAA,CAAQ4B,GAAG;QAChBC,UAAA,EAAYnB;MACd;MAEA,IAAI,CAACT,YAAY,CAACO,EAAA,CAAG,EAAE;QACrBP,YAAY,CAACO,EAAA,CAAG,GAAG,CAAC;MACtB;MAEAP,YAAY,CAACO,EAAA,CAAG,CAACsB,SAAS,GAAGjB,eAAA;MAE7B,IAAIT,IAAA,CAAKE,IAAI,KAAK,SAAS;QACzB,MAAMyB,uBAAA,GAA0B/B,OAAA,CAAQuB,WAAW,EAAEd,MAAA,GAAST,OAAA,CAAQgC,KAAK,CAACC,IAAI,CAAC;QACjF,MAAMC,cAAA,GAAiBH,uBAAA,EAAyBI,SAAA;QAChD,IAAIC,KAAA,CAAMC,OAAO,CAACH,cAAA,KAAmBA,cAAA,CAAeI,QAAQ,CAAC9B,EAAA,GAAK;UAChEP,YAAY,CAACO,EAAA,CAAG,CAAC2B,SAAS,GAAG;QAC/B;MACF;IACF;EACF;EACA,OAAOlC,YAAA;AACT","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import type { ClientConfig, RichTextFieldClient } from 'payload';
2
2
  import type { BaseClientFeatureProps, ClientFeature, ClientFeatureProviderMap, FeatureProviderProviderClient, ResolvedClientFeatureMap } from '../features/typesClient.js';
3
3
  import type { ClientEditorConfig } from '../lexical/config/types.js';
4
- import type { FeatureClientSchemaMap } from '../types.js';
4
+ import type { FeatureClientSchemaMap } from '../types/index.js';
5
5
  export type CreateClientFeatureArgs<UnSanitizedClientProps, ClientProps> = ((props: {
6
6
  config: ClientConfig;
7
7
  featureClientImportMap: Record<string, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"createClientFeature.d.ts","sourceRoot":"","sources":["../../src/utilities/createClientFeature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAEhE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,wBAAwB,EAExB,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,MAAM,MAAM,uBAAuB,CAAC,sBAAsB,EAAE,WAAW,IACnE,CAAC,CAAC,KAAK,EAAE;IACP,MAAM,EAAE,YAAY,CAAA;IACpB,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3C,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,mDAAmD;IACnD,kBAAkB,EAAE,wBAAwB,CAAA;IAC5C,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,KAAK,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAA;IAErD,gBAAgB,EAAE,wBAAwB,CAAA;IAC1C,UAAU,EAAE,MAAM,CAAA;IAElB,uBAAuB,EAAE,kBAAkB,CAAA;CAC5C,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC,GACjC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,6BAA6B,CAAC,CAAA;AAEnE,eAAO,MAAM,mBAAmB,EAAE,CAChC,sBAAsB,GAAG,SAAS,EAClC,WAAW,GAAG,sBAAsB,EAEpC,IAAI,EAAE,uBAAuB,CAAC,sBAAsB,EAAE,WAAW,CAAC,KAC/D,6BAA6B,CAAC,sBAAsB,EAAE,WAAW,CAmDrE,CAAA"}
1
+ {"version":3,"file":"createClientFeature.d.ts","sourceRoot":"","sources":["../../src/utilities/createClientFeature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAEhE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,wBAAwB,EAExB,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,MAAM,MAAM,uBAAuB,CAAC,sBAAsB,EAAE,WAAW,IACnE,CAAC,CAAC,KAAK,EAAE;IACP,MAAM,EAAE,YAAY,CAAA;IACpB,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3C,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,mDAAmD;IACnD,kBAAkB,EAAE,wBAAwB,CAAA;IAC5C,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,KAAK,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAA;IAErD,gBAAgB,EAAE,wBAAwB,CAAA;IAC1C,UAAU,EAAE,MAAM,CAAA;IAElB,uBAAuB,EAAE,kBAAkB,CAAA;CAC5C,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC,GACjC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,6BAA6B,CAAC,CAAA;AAEnE,eAAO,MAAM,mBAAmB,EAAE,CAChC,sBAAsB,GAAG,SAAS,EAClC,WAAW,GAAG,sBAAsB,EAEpC,IAAI,EAAE,uBAAuB,CAAC,sBAAsB,EAAE,WAAW,CAAC,KAC/D,6BAA6B,CAAC,sBAAsB,EAAE,WAAW,CAmDrE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createClientFeature.js","names":["createClientFeature","feature","featureProviderProvideClient","props","featureProviderClient","clientFeatureProps","config","featureClientImportMap","featureClientSchemaMap","featureProviderMap","field","resolvedFeatures","schemaPath","unSanitizedEditorConfig","toReturn","sanitizedClientFeatureProps","newFeature"],"sources":["../../src/utilities/createClientFeature.ts"],"sourcesContent":["import type { ClientConfig, RichTextFieldClient } from 'payload'\n\nimport type {\n BaseClientFeatureProps,\n ClientFeature,\n ClientFeatureProviderMap,\n FeatureProviderClient,\n FeatureProviderProviderClient,\n ResolvedClientFeatureMap,\n} from '../features/typesClient.js'\nimport type { ClientEditorConfig } from '../lexical/config/types.js'\nimport type { FeatureClientSchemaMap } from '../types.js'\n\nexport type CreateClientFeatureArgs<UnSanitizedClientProps, ClientProps> =\n | ((props: {\n config: ClientConfig\n featureClientImportMap: Record<string, any>\n featureClientSchemaMap: FeatureClientSchemaMap\n /** unSanitizedEditorConfig.features, but mapped */\n featureProviderMap: ClientFeatureProviderMap\n field?: RichTextFieldClient\n props: BaseClientFeatureProps<UnSanitizedClientProps>\n // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here\n resolvedFeatures: ResolvedClientFeatureMap\n schemaPath: string\n // unSanitized EditorConfig,\n unSanitizedEditorConfig: ClientEditorConfig\n }) => ClientFeature<ClientProps>)\n | Omit<ClientFeature<ClientProps>, 'sanitizedClientFeatureProps'>\n\nexport const createClientFeature: <\n UnSanitizedClientProps = undefined,\n ClientProps = UnSanitizedClientProps,\n>(\n args: CreateClientFeatureArgs<UnSanitizedClientProps, ClientProps>,\n) => FeatureProviderProviderClient<UnSanitizedClientProps, ClientProps> = (feature) => {\n const featureProviderProvideClient: FeatureProviderProviderClient<any, any> = (props) => {\n const featureProviderClient: Partial<FeatureProviderClient<any, any>> = {\n clientFeatureProps: props,\n }\n\n if (typeof feature === 'function') {\n featureProviderClient.feature = ({\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n featureProviderMap,\n field,\n resolvedFeatures,\n schemaPath,\n unSanitizedEditorConfig,\n }) => {\n const toReturn = feature({\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n featureProviderMap,\n field,\n props,\n resolvedFeatures,\n schemaPath,\n unSanitizedEditorConfig,\n })\n\n if (toReturn.sanitizedClientFeatureProps === null) {\n toReturn.sanitizedClientFeatureProps = props\n }\n\n return toReturn\n }\n } else {\n // We have to spread feature here! Otherwise, if the arg of createClientFeature is not a function, and 2\n // richText editors have the same feature (even if both call it, e.g. both call UploadFeature()),\n // the second richText editor here will override sanitizedClientFeatureProps of the first feature, as both richText\n // editor features share the same reference to the feature object.\n // Example: richText editor 1 and 2 both have UploadFeature. richText editor 1 calls UploadFeature() with custom fields,\n // richText editor 2 calls UploadFeature() with NO custom fields. If we don't spread feature here, richText editor 1\n // will not have any custom fields, as richText editor 2 will override the feature object.\n const newFeature: ClientFeature<any> = { ...feature }\n newFeature.sanitizedClientFeatureProps = props\n featureProviderClient.feature = newFeature\n }\n return featureProviderClient as FeatureProviderClient<any, any>\n }\n\n return featureProviderProvideClient\n}\n"],"mappings":"AA8BA,OAAO,MAAMA,mBAAA,GAK8DC,OAAA;EACzE,MAAMC,4BAAA,GAAyEC,KAAA;IAC7E,MAAMC,qBAAA,GAAkE;MACtEC,kBAAA,EAAoBF;IACtB;IAEA,IAAI,OAAOF,OAAA,KAAY,YAAY;MACjCG,qBAAA,CAAsBH,OAAO,GAAG,CAAC;QAC/BK,MAAM;QACNC,sBAAsB;QACtBC,sBAAsB;QACtBC,kBAAkB;QAClBC,KAAK;QACLC,gBAAgB;QAChBC,UAAU;QACVC;MAAuB,CACxB;QACC,MAAMC,QAAA,GAAWb,OAAA,CAAQ;UACvBK,MAAA;UACAC,sBAAA;UACAC,sBAAA;UACAC,kBAAA;UACAC,KAAA;UACAP,KAAA;UACAQ,gBAAA;UACAC,UAAA;UACAC;QACF;QAEA,IAAIC,QAAA,CAASC,2BAA2B,KAAK,MAAM;UACjDD,QAAA,CAASC,2BAA2B,GAAGZ,KAAA;QACzC;QAEA,OAAOW,QAAA;MACT;IACF,OAAO;MACL;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAME,UAAA,GAAiC;QAAE,GAAGf;MAAQ;MACpDe,UAAA,CAAWD,2BAA2B,GAAGZ,KAAA;MACzCC,qBAAA,CAAsBH,OAAO,GAAGe,UAAA;IAClC;IACA,OAAOZ,qBAAA;EACT;EAEA,OAAOF,4BAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"createClientFeature.js","names":["createClientFeature","feature","featureProviderProvideClient","props","featureProviderClient","clientFeatureProps","config","featureClientImportMap","featureClientSchemaMap","featureProviderMap","field","resolvedFeatures","schemaPath","unSanitizedEditorConfig","toReturn","sanitizedClientFeatureProps","newFeature"],"sources":["../../src/utilities/createClientFeature.ts"],"sourcesContent":["import type { ClientConfig, RichTextFieldClient } from 'payload'\n\nimport type {\n BaseClientFeatureProps,\n ClientFeature,\n ClientFeatureProviderMap,\n FeatureProviderClient,\n FeatureProviderProviderClient,\n ResolvedClientFeatureMap,\n} from '../features/typesClient.js'\nimport type { ClientEditorConfig } from '../lexical/config/types.js'\nimport type { FeatureClientSchemaMap } from '../types/index.js'\n\nexport type CreateClientFeatureArgs<UnSanitizedClientProps, ClientProps> =\n | ((props: {\n config: ClientConfig\n featureClientImportMap: Record<string, any>\n featureClientSchemaMap: FeatureClientSchemaMap\n /** unSanitizedEditorConfig.features, but mapped */\n featureProviderMap: ClientFeatureProviderMap\n field?: RichTextFieldClient\n props: BaseClientFeatureProps<UnSanitizedClientProps>\n // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here\n resolvedFeatures: ResolvedClientFeatureMap\n schemaPath: string\n // unSanitized EditorConfig,\n unSanitizedEditorConfig: ClientEditorConfig\n }) => ClientFeature<ClientProps>)\n | Omit<ClientFeature<ClientProps>, 'sanitizedClientFeatureProps'>\n\nexport const createClientFeature: <\n UnSanitizedClientProps = undefined,\n ClientProps = UnSanitizedClientProps,\n>(\n args: CreateClientFeatureArgs<UnSanitizedClientProps, ClientProps>,\n) => FeatureProviderProviderClient<UnSanitizedClientProps, ClientProps> = (feature) => {\n const featureProviderProvideClient: FeatureProviderProviderClient<any, any> = (props) => {\n const featureProviderClient: Partial<FeatureProviderClient<any, any>> = {\n clientFeatureProps: props,\n }\n\n if (typeof feature === 'function') {\n featureProviderClient.feature = ({\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n featureProviderMap,\n field,\n resolvedFeatures,\n schemaPath,\n unSanitizedEditorConfig,\n }) => {\n const toReturn = feature({\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n featureProviderMap,\n field,\n props,\n resolvedFeatures,\n schemaPath,\n unSanitizedEditorConfig,\n })\n\n if (toReturn.sanitizedClientFeatureProps === null) {\n toReturn.sanitizedClientFeatureProps = props\n }\n\n return toReturn\n }\n } else {\n // We have to spread feature here! Otherwise, if the arg of createClientFeature is not a function, and 2\n // richText editors have the same feature (even if both call it, e.g. both call UploadFeature()),\n // the second richText editor here will override sanitizedClientFeatureProps of the first feature, as both richText\n // editor features share the same reference to the feature object.\n // Example: richText editor 1 and 2 both have UploadFeature. richText editor 1 calls UploadFeature() with custom fields,\n // richText editor 2 calls UploadFeature() with NO custom fields. If we don't spread feature here, richText editor 1\n // will not have any custom fields, as richText editor 2 will override the feature object.\n const newFeature: ClientFeature<any> = { ...feature }\n newFeature.sanitizedClientFeatureProps = props\n featureProviderClient.feature = newFeature\n }\n return featureProviderClient as FeatureProviderClient<any, any>\n }\n\n return featureProviderProvideClient\n}\n"],"mappings":"AA8BA,OAAO,MAAMA,mBAAA,GAK8DC,OAAA;EACzE,MAAMC,4BAAA,GAAyEC,KAAA;IAC7E,MAAMC,qBAAA,GAAkE;MACtEC,kBAAA,EAAoBF;IACtB;IAEA,IAAI,OAAOF,OAAA,KAAY,YAAY;MACjCG,qBAAA,CAAsBH,OAAO,GAAG,CAAC;QAC/BK,MAAM;QACNC,sBAAsB;QACtBC,sBAAsB;QACtBC,kBAAkB;QAClBC,KAAK;QACLC,gBAAgB;QAChBC,UAAU;QACVC;MAAuB,CACxB;QACC,MAAMC,QAAA,GAAWb,OAAA,CAAQ;UACvBK,MAAA;UACAC,sBAAA;UACAC,sBAAA;UACAC,kBAAA;UACAC,KAAA;UACAP,KAAA;UACAQ,gBAAA;UACAC,UAAA;UACAC;QACF;QAEA,IAAIC,QAAA,CAASC,2BAA2B,KAAK,MAAM;UACjDD,QAAA,CAASC,2BAA2B,GAAGZ,KAAA;QACzC;QAEA,OAAOW,QAAA;MACT;IACF,OAAO;MACL;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAME,UAAA,GAAiC;QAAE,GAAGf;MAAQ;MACpDe,UAAA,CAAWD,2BAA2B,GAAGZ,KAAA;MACzCC,qBAAA,CAAsBH,OAAO,GAAGe,UAAA;IAClC;IACA,OAAOZ,qBAAA;EACT;EAEA,OAAOF,4BAAA;AACT","ignoreList":[]}
@@ -2,7 +2,7 @@ import type { EditorConfig as LexicalEditorConfig } from 'lexical';
2
2
  import type { RichTextField, SanitizedConfig } from 'payload';
3
3
  import type { FeatureProviderServer, ResolvedServerFeatureMap } from '../features/typesServer.js';
4
4
  import type { SanitizedServerEditorConfig } from '../lexical/config/types.js';
5
- import type { FeaturesInput, LexicalRichTextAdapterProvider } from '../types.js';
5
+ import type { FeaturesInput, LexicalRichTextAdapterProvider } from '../types/index.js';
6
6
  export declare const editorConfigFactory: {
7
7
  default: (args: {
8
8
  config: SanitizedConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"editorConfigFactory.d.ts","sourceRoot":"","sources":["../../src/utilities/editorConfigFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAClE,OAAO,KAAK,EAA2B,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACjG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,KAAK,EACV,aAAa,EAEb,8BAA8B,EAC/B,MAAM,aAAa,CAAA;AAOpB,eAAO,MAAM,mBAAmB;oBACR;QACpB,MAAM,EAAE,eAAe,CAAA;QACvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAG,OAAO,CAAC,2BAA2B,CAAC;IAMxC;;;;;;;OAOG;uBACsB;QACvB,MAAM,EAAE,eAAe,CAAA;QACvB,MAAM,EAAE,8BAA8B,CAAA;QACtC,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,OAAO,CAAC,EAAE,mBAAmB,CAAA;QAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAG,OAAO,CAAC,2BAA2B,CAAC;IAUxC;;OAEG;yBACwB;QACzB,MAAM,EAAE,eAAe,CAAA;QACvB,QAAQ,CAAC,EAAE,aAAa,CAAA;QACxB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,OAAO,CAAC,EAAE,mBAAmB,CAAA;QAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAG,OAAO,CAAC,2BAA2B,CAAC;sBAGtB;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,KAAG,2BAA2B;iCAMrC;QACjC,MAAM,EAAE,eAAe,CAAA;QACvB,KAAK,EAAE,aAAa,CAAA;QACpB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAG,OAAO,CAAC,2BAA2B,CAAC;CAazC,CAAA;AAED,eAAO,MAAM,2BAA2B,SAAgB;IACtD,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,KAAG,OAAO,CAAC;IACV,QAAQ,EAAE,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAA;IAC5D,kBAAkB,EAAE,wBAAwB,CAAA;IAC5C,eAAe,EAAE,2BAA2B,CAAA;CAC7C,CAyCA,CAAA"}
1
+ {"version":3,"file":"editorConfigFactory.d.ts","sourceRoot":"","sources":["../../src/utilities/editorConfigFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAClE,OAAO,KAAK,EAA2B,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACjG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,KAAK,EACV,aAAa,EAEb,8BAA8B,EAC/B,MAAM,mBAAmB,CAAA;AAO1B,eAAO,MAAM,mBAAmB;oBACR;QACpB,MAAM,EAAE,eAAe,CAAA;QACvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAG,OAAO,CAAC,2BAA2B,CAAC;IAMxC;;;;;;;OAOG;uBACsB;QACvB,MAAM,EAAE,eAAe,CAAA;QACvB,MAAM,EAAE,8BAA8B,CAAA;QACtC,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,OAAO,CAAC,EAAE,mBAAmB,CAAA;QAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAG,OAAO,CAAC,2BAA2B,CAAC;IAUxC;;OAEG;yBACwB;QACzB,MAAM,EAAE,eAAe,CAAA;QACvB,QAAQ,CAAC,EAAE,aAAa,CAAA;QACxB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,OAAO,CAAC,EAAE,mBAAmB,CAAA;QAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAG,OAAO,CAAC,2BAA2B,CAAC;sBAGtB;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,KAAG,2BAA2B;iCAMrC;QACjC,MAAM,EAAE,eAAe,CAAA;QACvB,KAAK,EAAE,aAAa,CAAA;QACpB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAG,OAAO,CAAC,2BAA2B,CAAC;CAazC,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAU,MAAM;IACtD,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,KAAG,OAAO,CAAC;IACV,QAAQ,EAAE,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAA;IAC5D,kBAAkB,EAAE,wBAAwB,CAAA;IAC5C,eAAe,EAAE,2BAA2B,CAAA;CAC7C,CAyCA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"editorConfigFactory.js","names":["defaultEditorConfig","defaultEditorFeatures","loadFeatures","sanitizeServerFeatures","getDefaultSanitizedEditorConfig","editorConfigFactory","default","args","config","parentIsLocalized","fromEditor","lexicalAdapter","editor","isRoot","sanitizedServerEditorConfig","editorConfig","fromFeatures","featuresInputToEditorConfig","sanitizedConfig","fromField","field","fromUnsanitizedField","lexicalAdapterProvider","features","rootEditor","rootEditorFeatures","defaultFeatures","rootFeatures","lexical","resolvedFeatureMap","unSanitizedEditorConfig"],"sources":["../../src/utilities/editorConfigFactory.ts"],"sourcesContent":["import type { EditorConfig as LexicalEditorConfig } from 'lexical'\nimport type { RichTextAdapterProvider, RichTextField, SanitizedConfig } from 'payload'\n\nimport type { FeatureProviderServer, ResolvedServerFeatureMap } from '../features/typesServer.js'\nimport type { SanitizedServerEditorConfig } from '../lexical/config/types.js'\nimport type {\n FeaturesInput,\n LexicalRichTextAdapter,\n LexicalRichTextAdapterProvider,\n} from '../types.js'\n\nimport { defaultEditorConfig, defaultEditorFeatures } from '../lexical/config/server/default.js'\nimport { loadFeatures } from '../lexical/config/server/loader.js'\nimport { sanitizeServerFeatures } from '../lexical/config/server/sanitize.js'\nimport { getDefaultSanitizedEditorConfig } from './getDefaultSanitizedEditorConfig.js'\n\nexport const editorConfigFactory = {\n default: async (args: {\n config: SanitizedConfig\n parentIsLocalized?: boolean\n }): Promise<SanitizedServerEditorConfig> => {\n return getDefaultSanitizedEditorConfig({\n config: args.config,\n parentIsLocalized: args.parentIsLocalized ?? false,\n })\n },\n /**\n * If you have instantiated a lexical editor and are accessing it outside a field (=> this is the unsanitized editor),\n * you can extract the editor config from it.\n * This is common if you define the editor in a re-usable module scope variable and pass it to the richText field.\n *\n * This is the least efficient way to get the editor config, and not recommended. It is recommended to extract the `features` arg\n * into a separate variable and use `fromFeatures` instead.\n */\n fromEditor: async (args: {\n config: SanitizedConfig\n editor: LexicalRichTextAdapterProvider\n isRoot?: boolean\n lexical?: LexicalEditorConfig\n parentIsLocalized?: boolean\n }): Promise<SanitizedServerEditorConfig> => {\n const lexicalAdapter: LexicalRichTextAdapter = await args.editor({\n config: args.config,\n isRoot: args.isRoot ?? false,\n parentIsLocalized: args.parentIsLocalized ?? false,\n })\n\n const sanitizedServerEditorConfig: SanitizedServerEditorConfig = lexicalAdapter.editorConfig\n return sanitizedServerEditorConfig\n },\n /**\n * Create a new editor config - behaves just like instantiating a new `lexicalEditor`\n */\n fromFeatures: async (args: {\n config: SanitizedConfig\n features?: FeaturesInput\n isRoot?: boolean\n lexical?: LexicalEditorConfig\n parentIsLocalized?: boolean\n }): Promise<SanitizedServerEditorConfig> => {\n return (await featuresInputToEditorConfig(args)).sanitizedConfig\n },\n fromField: (args: { field: RichTextField }): SanitizedServerEditorConfig => {\n const lexicalAdapter: LexicalRichTextAdapter = args.field.editor as LexicalRichTextAdapter\n\n const sanitizedServerEditorConfig: SanitizedServerEditorConfig = lexicalAdapter.editorConfig\n return sanitizedServerEditorConfig\n },\n fromUnsanitizedField: async (args: {\n config: SanitizedConfig\n field: RichTextField\n isRoot?: boolean\n parentIsLocalized?: boolean\n }): Promise<SanitizedServerEditorConfig> => {\n const lexicalAdapterProvider: RichTextAdapterProvider = args.field\n .editor as RichTextAdapterProvider\n\n const lexicalAdapter: LexicalRichTextAdapter = (await lexicalAdapterProvider({\n config: args.config,\n isRoot: args.isRoot ?? false,\n parentIsLocalized: args.parentIsLocalized ?? false,\n })) as LexicalRichTextAdapter\n\n const sanitizedServerEditorConfig: SanitizedServerEditorConfig = lexicalAdapter.editorConfig\n return sanitizedServerEditorConfig\n },\n}\n\nexport const featuresInputToEditorConfig = async (args: {\n config: SanitizedConfig\n features?: FeaturesInput\n isRoot?: boolean\n lexical?: LexicalEditorConfig\n parentIsLocalized?: boolean\n}): Promise<{\n features: FeatureProviderServer<unknown, unknown, unknown>[]\n resolvedFeatureMap: ResolvedServerFeatureMap\n sanitizedConfig: SanitizedServerEditorConfig\n}> => {\n let features: FeatureProviderServer<unknown, unknown, unknown>[] = []\n if (args.features && typeof args.features === 'function') {\n const rootEditor = args.config.editor\n let rootEditorFeatures: FeatureProviderServer<unknown, unknown, unknown>[] = []\n if (typeof rootEditor === 'object' && 'features' in rootEditor) {\n rootEditorFeatures = (rootEditor as LexicalRichTextAdapter).features\n }\n features = args.features({\n defaultFeatures: defaultEditorFeatures,\n rootFeatures: rootEditorFeatures,\n })\n } else {\n features = args.features as FeatureProviderServer<unknown, unknown, unknown>[]\n }\n\n if (!features) {\n features = defaultEditorFeatures\n }\n\n const lexical = args.lexical ?? defaultEditorConfig.lexical\n\n const resolvedFeatureMap = await loadFeatures({\n config: args.config,\n isRoot: args.isRoot ?? false,\n parentIsLocalized: args.parentIsLocalized ?? false,\n unSanitizedEditorConfig: {\n features,\n lexical,\n },\n })\n\n return {\n features,\n resolvedFeatureMap,\n sanitizedConfig: {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: args.lexical,\n resolvedFeatureMap,\n },\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"editorConfigFactory.js","names":["defaultEditorConfig","defaultEditorFeatures","loadFeatures","sanitizeServerFeatures","getDefaultSanitizedEditorConfig","editorConfigFactory","default","args","config","parentIsLocalized","fromEditor","lexicalAdapter","editor","isRoot","sanitizedServerEditorConfig","editorConfig","fromFeatures","featuresInputToEditorConfig","sanitizedConfig","fromField","field","fromUnsanitizedField","lexicalAdapterProvider","features","rootEditor","rootEditorFeatures","defaultFeatures","rootFeatures","lexical","resolvedFeatureMap","unSanitizedEditorConfig"],"sources":["../../src/utilities/editorConfigFactory.ts"],"sourcesContent":["import type { EditorConfig as LexicalEditorConfig } from 'lexical'\nimport type { RichTextAdapterProvider, RichTextField, SanitizedConfig } from 'payload'\n\nimport type { FeatureProviderServer, ResolvedServerFeatureMap } from '../features/typesServer.js'\nimport type { SanitizedServerEditorConfig } from '../lexical/config/types.js'\nimport type {\n FeaturesInput,\n LexicalRichTextAdapter,\n LexicalRichTextAdapterProvider,\n} from '../types/index.js'\n\nimport { defaultEditorConfig, defaultEditorFeatures } from '../lexical/config/server/default.js'\nimport { loadFeatures } from '../lexical/config/server/loader.js'\nimport { sanitizeServerFeatures } from '../lexical/config/server/sanitize.js'\nimport { getDefaultSanitizedEditorConfig } from './getDefaultSanitizedEditorConfig.js'\n\nexport const editorConfigFactory = {\n default: async (args: {\n config: SanitizedConfig\n parentIsLocalized?: boolean\n }): Promise<SanitizedServerEditorConfig> => {\n return getDefaultSanitizedEditorConfig({\n config: args.config,\n parentIsLocalized: args.parentIsLocalized ?? false,\n })\n },\n /**\n * If you have instantiated a lexical editor and are accessing it outside a field (=> this is the unsanitized editor),\n * you can extract the editor config from it.\n * This is common if you define the editor in a re-usable module scope variable and pass it to the richText field.\n *\n * This is the least efficient way to get the editor config, and not recommended. It is recommended to extract the `features` arg\n * into a separate variable and use `fromFeatures` instead.\n */\n fromEditor: async (args: {\n config: SanitizedConfig\n editor: LexicalRichTextAdapterProvider\n isRoot?: boolean\n lexical?: LexicalEditorConfig\n parentIsLocalized?: boolean\n }): Promise<SanitizedServerEditorConfig> => {\n const lexicalAdapter: LexicalRichTextAdapter = await args.editor({\n config: args.config,\n isRoot: args.isRoot ?? false,\n parentIsLocalized: args.parentIsLocalized ?? false,\n })\n\n const sanitizedServerEditorConfig: SanitizedServerEditorConfig = lexicalAdapter.editorConfig\n return sanitizedServerEditorConfig\n },\n /**\n * Create a new editor config - behaves just like instantiating a new `lexicalEditor`\n */\n fromFeatures: async (args: {\n config: SanitizedConfig\n features?: FeaturesInput\n isRoot?: boolean\n lexical?: LexicalEditorConfig\n parentIsLocalized?: boolean\n }): Promise<SanitizedServerEditorConfig> => {\n return (await featuresInputToEditorConfig(args)).sanitizedConfig\n },\n fromField: (args: { field: RichTextField }): SanitizedServerEditorConfig => {\n const lexicalAdapter: LexicalRichTextAdapter = args.field.editor as LexicalRichTextAdapter\n\n const sanitizedServerEditorConfig: SanitizedServerEditorConfig = lexicalAdapter.editorConfig\n return sanitizedServerEditorConfig\n },\n fromUnsanitizedField: async (args: {\n config: SanitizedConfig\n field: RichTextField\n isRoot?: boolean\n parentIsLocalized?: boolean\n }): Promise<SanitizedServerEditorConfig> => {\n const lexicalAdapterProvider: RichTextAdapterProvider = args.field\n .editor as RichTextAdapterProvider\n\n const lexicalAdapter: LexicalRichTextAdapter = (await lexicalAdapterProvider({\n config: args.config,\n isRoot: args.isRoot ?? false,\n parentIsLocalized: args.parentIsLocalized ?? false,\n })) as LexicalRichTextAdapter\n\n const sanitizedServerEditorConfig: SanitizedServerEditorConfig = lexicalAdapter.editorConfig\n return sanitizedServerEditorConfig\n },\n}\n\nexport const featuresInputToEditorConfig = async (args: {\n config: SanitizedConfig\n features?: FeaturesInput\n isRoot?: boolean\n lexical?: LexicalEditorConfig\n parentIsLocalized?: boolean\n}): Promise<{\n features: FeatureProviderServer<unknown, unknown, unknown>[]\n resolvedFeatureMap: ResolvedServerFeatureMap\n sanitizedConfig: SanitizedServerEditorConfig\n}> => {\n let features: FeatureProviderServer<unknown, unknown, unknown>[] = []\n if (args.features && typeof args.features === 'function') {\n const rootEditor = args.config.editor\n let rootEditorFeatures: FeatureProviderServer<unknown, unknown, unknown>[] = []\n if (typeof rootEditor === 'object' && 'features' in rootEditor) {\n rootEditorFeatures = (rootEditor as LexicalRichTextAdapter).features\n }\n features = args.features({\n defaultFeatures: defaultEditorFeatures,\n rootFeatures: rootEditorFeatures,\n })\n } else {\n features = args.features as FeatureProviderServer<unknown, unknown, unknown>[]\n }\n\n if (!features) {\n features = defaultEditorFeatures\n }\n\n const lexical = args.lexical ?? defaultEditorConfig.lexical\n\n const resolvedFeatureMap = await loadFeatures({\n config: args.config,\n isRoot: args.isRoot ?? false,\n parentIsLocalized: args.parentIsLocalized ?? false,\n unSanitizedEditorConfig: {\n features,\n lexical,\n },\n })\n\n return {\n features,\n resolvedFeatureMap,\n sanitizedConfig: {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: args.lexical,\n resolvedFeatureMap,\n },\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/Drawer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAA;IACzC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0CpD,CAAA"}
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/Drawer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAA;IACzC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkDpD,CAAA"}
@@ -5,13 +5,14 @@ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  import { Drawer, EditDepthProvider, useModal } from '@payloadcms/ui';
6
6
  import React from 'react';
7
7
  import { DrawerContent } from './DrawerContent.js';
8
+ import { useDrawerSubmit } from './useDrawerSubmit.js';
8
9
  /**
9
10
  * This FieldsDrawer component can be used to easily create a Drawer that contains a form with fields within your feature.
10
11
  * The fields are taken directly from the schema map based on your `featureKey` and `schemaPathSuffix`. Thus, this can only
11
12
  * be used if you provide your field schema inside the `generateSchemaMap` prop of your feature.server.ts.
12
13
  */
13
14
  export const FieldsDrawer = t0 => {
14
- const $ = _c(15);
15
+ const $ = _c(17);
15
16
  const {
16
17
  className,
17
18
  data,
@@ -27,6 +28,10 @@ export const FieldsDrawer = t0 => {
27
28
  const {
28
29
  closeModal
29
30
  } = useModal();
31
+ const {
32
+ headerActions,
33
+ submitRef
34
+ } = useDrawerSubmit();
30
35
  const t1 = drawerTitle ?? "";
31
36
  let t2;
32
37
  if ($[0] !== closeModal || $[1] !== drawerSlug || $[2] !== handleDrawerSubmit) {
@@ -44,10 +49,11 @@ export const FieldsDrawer = t0 => {
44
49
  t2 = $[3];
45
50
  }
46
51
  let t3;
47
- if ($[4] !== className || $[5] !== data || $[6] !== drawerSlug || $[7] !== featureKey || $[8] !== fieldMapOverride || $[9] !== schemaFieldsPathOverride || $[10] !== schemaPath || $[11] !== schemaPathSuffix || $[12] !== t1 || $[13] !== t2) {
52
+ if ($[4] !== className || $[5] !== data || $[6] !== drawerSlug || $[7] !== featureKey || $[8] !== fieldMapOverride || $[9] !== headerActions || $[10] !== schemaFieldsPathOverride || $[11] !== schemaPath || $[12] !== schemaPathSuffix || $[13] !== submitRef || $[14] !== t1 || $[15] !== t2) {
48
53
  t3 = _jsx(EditDepthProvider, {
49
54
  children: _jsx(Drawer, {
50
55
  className,
56
+ headerActions,
51
57
  slug: drawerSlug,
52
58
  title: t1,
53
59
  children: _jsx(DrawerContent, {
@@ -57,7 +63,8 @@ export const FieldsDrawer = t0 => {
57
63
  handleDrawerSubmit: t2,
58
64
  schemaFieldsPathOverride,
59
65
  schemaPath,
60
- schemaPathSuffix
66
+ schemaPathSuffix,
67
+ submitRef
61
68
  })
62
69
  })
63
70
  });
@@ -66,14 +73,16 @@ export const FieldsDrawer = t0 => {
66
73
  $[6] = drawerSlug;
67
74
  $[7] = featureKey;
68
75
  $[8] = fieldMapOverride;
69
- $[9] = schemaFieldsPathOverride;
70
- $[10] = schemaPath;
71
- $[11] = schemaPathSuffix;
72
- $[12] = t1;
73
- $[13] = t2;
74
- $[14] = t3;
76
+ $[9] = headerActions;
77
+ $[10] = schemaFieldsPathOverride;
78
+ $[11] = schemaPath;
79
+ $[12] = schemaPathSuffix;
80
+ $[13] = submitRef;
81
+ $[14] = t1;
82
+ $[15] = t2;
83
+ $[16] = t3;
75
84
  } else {
76
- t3 = $[14];
85
+ t3 = $[16];
77
86
  }
78
87
  return t3;
79
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.js","names":["c","_c","Drawer","EditDepthProvider","useModal","React","DrawerContent","FieldsDrawer","t0","$","className","data","drawerSlug","drawerTitle","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPath","schemaPathSuffix","closeModal","t1","t2","args","args2","setTimeout","t3","_jsx","children","slug","title"],"sources":["../../../src/utilities/fieldsDrawer/Drawer.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, Data, FormState, JsonObject } from 'payload'\n\nimport { Drawer, EditDepthProvider, useModal } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { DrawerContent } from './DrawerContent.js'\n\nexport type FieldsDrawerProps = {\n readonly className?: string\n readonly data?: Data\n readonly drawerSlug: string\n readonly drawerTitle?: string\n readonly featureKey: string\n readonly fieldMapOverride?: ClientField[]\n readonly handleDrawerSubmit: (fields: FormState, data: JsonObject) => void\n readonly schemaFieldsPathOverride?: string\n readonly schemaPath: string\n readonly schemaPathSuffix?: string\n}\n\n/**\n * This FieldsDrawer component can be used to easily create a Drawer that contains a form with fields within your feature.\n * The fields are taken directly from the schema map based on your `featureKey` and `schemaPathSuffix`. Thus, this can only\n * be used if you provide your field schema inside the `generateSchemaMap` prop of your feature.server.ts.\n */\nexport const FieldsDrawer: React.FC<FieldsDrawerProps> = ({\n className,\n data,\n drawerSlug,\n drawerTitle,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n}) => {\n const { closeModal } = useModal()\n // The Drawer only renders its children (and itself) if it's open. Thus, by extracting the main content\n // to DrawerContent, this should be faster\n return (\n <EditDepthProvider>\n <Drawer className={className} slug={drawerSlug} title={drawerTitle ?? ''}>\n <DrawerContent\n data={data}\n featureKey={featureKey}\n fieldMapOverride={fieldMapOverride}\n handleDrawerSubmit={(args, args2) => {\n // Simply close drawer - no need for useLexicalDrawer here as at this point,\n // we don't need to restore the cursor position. This is handled by the useEffect in useLexicalDrawer.\n closeModal(drawerSlug)\n\n // Actual drawer submit logic needs to be triggered after the drawer is closed.\n // That's because the lexical selection / cursor restore logic that is striggerer by\n // `useLexicalDrawer` neeeds to be triggered before any editor.update calls that may happen\n // in the `handleDrawerSubmit` function.\n setTimeout(() => {\n handleDrawerSubmit(args, args2)\n }, 1)\n }}\n schemaFieldsPathOverride={schemaFieldsPathOverride}\n schemaPath={schemaPath}\n schemaPathSuffix={schemaPathSuffix}\n />\n </Drawer>\n </EditDepthProvider>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,MAAM,EAAEC,iBAAiB,EAAEC,QAAQ,QAAQ;AACpD,OAAOC,KAAA,MAAW;AAElB,SAASC,aAAa,QAAQ;AAe9B;;;;;AAKA,OAAO,MAAMC,YAAA,GAA4CC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,SAAA;IAAAC,IAAA;IAAAC,UAAA;IAAAC,WAAA;IAAAC,UAAA;IAAAC,gBAAA;IAAAC,kBAAA;IAAAC,wBAAA;IAAAC,UAAA;IAAAC;EAAA,IAAAX,EAWzD;EACC;IAAAY;EAAA,IAAuBhB,QAAA;EAKoC,MAAAiB,EAAA,GAAAR,WAAA,IAAe;EAAA,IAAAS,EAAA;EAAA,IAAAb,CAAA,QAAAW,UAAA,IAAAX,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAO,kBAAA;IAK9CM,EAAA,GAAAA,CAAAC,IAAA,EAAAC,KAAA;MAGlBJ,UAAA,CAAWR,UAAA;MAMXa,UAAA;QACET,kBAAA,CAAmBO,IAAA,EAAMC,KAAA;MAAA,IACxB;IAAA;IACLf,CAAA,MAAAW,UAAA;IAAAX,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAO,kBAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAjB,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAE,IAAA,IAAAF,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAK,UAAA,IAAAL,CAAA,QAAAM,gBAAA,IAAAN,CAAA,QAAAQ,wBAAA,IAAAR,CAAA,SAAAS,UAAA,IAAAT,CAAA,SAAAU,gBAAA,IAAAV,CAAA,SAAAY,EAAA,IAAAZ,CAAA,SAAAa,EAAA;IAlBNI,EAAA,GAAAC,IAAA,CAAAxB,iBAAA;MAAAyB,QAAA,EACED,IAAA,CAAAzB,MAAA;QAAAQ,SAAA;QAAAmB,IAAA,EAAoCjB,UAAA;QAAAkB,KAAA,EAAmBT,EAAe;QAAAO,QAAA,EACpED,IAAA,CAAArB,aAAA;UAAAK,IAAA;UAAAG,UAAA;UAAAC,gBAAA;UAAAC,kBAAA,EAIsBM,EAYpB;UAAAL,wBAAA;UAAAC,UAAA;UAAAC;QAAA,C;;;;;;;;;;;;;;;;;SAlBNO,E;CA0BJ","ignoreList":[]}
1
+ {"version":3,"file":"Drawer.js","names":["c","_c","Drawer","EditDepthProvider","useModal","React","DrawerContent","useDrawerSubmit","FieldsDrawer","t0","$","className","data","drawerSlug","drawerTitle","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPath","schemaPathSuffix","closeModal","headerActions","submitRef","t1","t2","args","args2","setTimeout","t3","_jsx","children","slug","title"],"sources":["../../../src/utilities/fieldsDrawer/Drawer.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, Data, FormState, JsonObject } from 'payload'\n\nimport { Drawer, EditDepthProvider, useModal } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { DrawerContent } from './DrawerContent.js'\nimport { useDrawerSubmit } from './useDrawerSubmit.js'\n\nexport type FieldsDrawerProps = {\n readonly className?: string\n readonly data?: Data\n readonly drawerSlug: string\n readonly drawerTitle?: string\n readonly featureKey: string\n readonly fieldMapOverride?: ClientField[]\n readonly handleDrawerSubmit: (fields: FormState, data: JsonObject) => void\n readonly schemaFieldsPathOverride?: string\n readonly schemaPath: string\n readonly schemaPathSuffix?: string\n}\n\n/**\n * This FieldsDrawer component can be used to easily create a Drawer that contains a form with fields within your feature.\n * The fields are taken directly from the schema map based on your `featureKey` and `schemaPathSuffix`. Thus, this can only\n * be used if you provide your field schema inside the `generateSchemaMap` prop of your feature.server.ts.\n */\nexport const FieldsDrawer: React.FC<FieldsDrawerProps> = ({\n className,\n data,\n drawerSlug,\n drawerTitle,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n}) => {\n const { closeModal } = useModal()\n const { headerActions, submitRef } = useDrawerSubmit()\n\n // The Drawer only renders its children (and itself) if it's open. Thus, by extracting the main content\n // to DrawerContent, this should be faster\n return (\n <EditDepthProvider>\n <Drawer\n className={className}\n headerActions={headerActions}\n slug={drawerSlug}\n title={drawerTitle ?? ''}\n >\n <DrawerContent\n data={data}\n featureKey={featureKey}\n fieldMapOverride={fieldMapOverride}\n handleDrawerSubmit={(args, args2) => {\n // Simply close drawer - no need for useLexicalDrawer here as at this point,\n // we don't need to restore the cursor position. This is handled by the useEffect in useLexicalDrawer.\n closeModal(drawerSlug)\n\n // Actual drawer submit logic needs to be triggered after the drawer is closed.\n // That's because the lexical selection / cursor restore logic that is striggerer by\n // `useLexicalDrawer` neeeds to be triggered before any editor.update calls that may happen\n // in the `handleDrawerSubmit` function.\n setTimeout(() => {\n handleDrawerSubmit(args, args2)\n }, 1)\n }}\n schemaFieldsPathOverride={schemaFieldsPathOverride}\n schemaPath={schemaPath}\n schemaPathSuffix={schemaPathSuffix}\n submitRef={submitRef}\n />\n </Drawer>\n </EditDepthProvider>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,MAAM,EAAEC,iBAAiB,EAAEC,QAAQ,QAAQ;AACpD,OAAOC,KAAA,MAAW;AAElB,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAehC;;;;;AAKA,OAAO,MAAMC,YAAA,GAA4CC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,SAAA;IAAAC,IAAA;IAAAC,UAAA;IAAAC,WAAA;IAAAC,UAAA;IAAAC,gBAAA;IAAAC,kBAAA;IAAAC,wBAAA;IAAAC,UAAA;IAAAC;EAAA,IAAAX,EAWzD;EACC;IAAAY;EAAA,IAAuBjB,QAAA;EACvB;IAAAkB,aAAA;IAAAC;EAAA,IAAqChB,eAAA;EAUxB,MAAAiB,EAAA,GAAAV,WAAA,IAAe;EAAA,IAAAW,EAAA;EAAA,IAAAf,CAAA,QAAAW,UAAA,IAAAX,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAO,kBAAA;IAMAQ,EAAA,GAAAA,CAAAC,IAAA,EAAAC,KAAA;MAGlBN,UAAA,CAAWR,UAAA;MAMXe,UAAA;QACEX,kBAAA,CAAmBS,IAAA,EAAMC,KAAA;MAAA,IACxB;IAAA;IACLjB,CAAA,MAAAW,UAAA;IAAAX,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAO,kBAAA;IAAAP,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,IAAAmB,EAAA;EAAA,IAAAnB,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAE,IAAA,IAAAF,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAK,UAAA,IAAAL,CAAA,QAAAM,gBAAA,IAAAN,CAAA,QAAAY,aAAA,IAAAZ,CAAA,SAAAQ,wBAAA,IAAAR,CAAA,SAAAS,UAAA,IAAAT,CAAA,SAAAU,gBAAA,IAAAV,CAAA,SAAAa,SAAA,IAAAb,CAAA,SAAAc,EAAA,IAAAd,CAAA,SAAAe,EAAA;IAvBNI,EAAA,GAAAC,IAAA,CAAA3B,iBAAA;MAAA4B,QAAA,EACED,IAAA,CAAA5B,MAAA;QAAAS,SAAA;QAAAW,aAAA;QAAAU,IAAA,EAGQnB,UAAA;QAAAoB,KAAA,EACCT,EAAe;QAAAO,QAAA,EAEtBD,IAAA,CAAAxB,aAAA;UAAAM,IAAA;UAAAG,UAAA;UAAAC,gBAAA;UAAAC,kBAAA,EAIsBQ,EAYpB;UAAAP,wBAAA;UAAAC,UAAA;UAAAC,gBAAA;UAAAG;QAAA,C;;;;;;;;;;;;;;;;;;;SAvBNM,E;CAgCJ","ignoreList":[]}
@@ -1,4 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { FieldsDrawerProps } from './Drawer.js';
3
- export declare const DrawerContent: React.FC<Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>>;
3
+ import './index.css';
4
+ export declare const DrawerContent: React.FC<{
5
+ submitRef: React.RefObject<(() => void) | null>;
6
+ } & Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>>;
4
7
  //# sourceMappingURL=DrawerContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,aAAa,CAAC,CAuJzF,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,OAAO,aAAa,CAAA;AAEpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAClC;IACE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;CAChD,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,aAAa,CAAC,CAyJ1D,CAAA"}
@@ -2,12 +2,14 @@
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
5
- import { Form, FormSubmit, RenderFields, useDocumentForm, useDocumentInfo, useServerFunctions, useTranslation } from '@payloadcms/ui';
5
+ import { Form, RenderFields, useDocumentForm, useDocumentInfo, useServerFunctions } from '@payloadcms/ui';
6
6
  import { abortAndIgnore } from '@payloadcms/ui/shared';
7
7
  import { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared';
8
8
  import React, { useCallback, useEffect, useRef, useState } from 'react';
9
9
  import { v4 as uuid } from 'uuid';
10
10
  import { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js';
11
+ import { RegisterFormSubmit } from './useDrawerSubmit.js';
12
+ import './index.css';
11
13
  export const DrawerContent = ({
12
14
  data,
13
15
  featureKey,
@@ -15,11 +17,9 @@ export const DrawerContent = ({
15
17
  handleDrawerSubmit,
16
18
  schemaFieldsPathOverride,
17
19
  schemaPath,
18
- schemaPathSuffix
20
+ schemaPathSuffix,
21
+ submitRef
19
22
  }) => {
20
- const {
21
- t
22
- } = useTranslation();
23
23
  const {
24
24
  id,
25
25
  collectionSlug,
@@ -116,6 +116,7 @@ export const DrawerContent = ({
116
116
  }
117
117
  return /*#__PURE__*/_jsxs(Form, {
118
118
  beforeSubmit: [onChange],
119
+ className: "fields-drawer",
119
120
  disableValidationOnSubmit: true,
120
121
  fields: Array.isArray(fields) ? fields : [],
121
122
  initialState: initialState,
@@ -130,8 +131,8 @@ export const DrawerContent = ({
130
131
  parentSchemaPath: schemaFieldsPath,
131
132
  permissions: true,
132
133
  readOnly: !isEditable
133
- }), /*#__PURE__*/_jsx(FormSubmit, {
134
- children: t('fields:saveChanges')
134
+ }), /*#__PURE__*/_jsx(RegisterFormSubmit, {
135
+ submitRef: submitRef
135
136
  })]
136
137
  });
137
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useLexicalEditable","Form","FormSubmit","RenderFields","useDocumentForm","useDocumentInfo","useServerFunctions","useTranslation","abortAndIgnore","deepCopyObjectSimpleWithoutReactComponents","React","useCallback","useEffect","useRef","useState","v4","uuid","useEditorConfigContext","DrawerContent","data","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPath","schemaPathSuffix","t","id","collectionSlug","getDocPreferences","globalSlug","fields","parentDocumentFields","isEditable","onChangeAbortControllerRef","AbortController","initialState","setInitialState","fieldProps","featureClientSchemaMap","getFormState","schemaFieldsPath","controller","awaitInitialState","state","docPermissions","docPreferences","documentFormState","excludeFiles","initialBlockData","operation","readOnly","renderAllFields","signal","onChange","formState","prevFormState","current","initialBlockFormState","_jsxs","beforeSubmit","disableValidationOnSubmit","Array","isArray","onSubmit","_jsx","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions"],"sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n Form,\n FormSubmit,\n RenderFields,\n useDocumentForm,\n useDocumentInfo,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\n\nexport const DrawerContent: React.FC<Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n}) => {\n const { t } = useTranslation()\n const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo()\n const { fields: parentDocumentFields } = useDocumentForm()\n const isEditable = useLexicalEditable()\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const {\n fieldProps: { featureClientSchemaMap },\n } = useEditorConfigContext()\n\n const { getFormState } = useServerFunctions()\n\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any = fieldMapOverride ?? featureClientSchemaMap[featureKey]?.[schemaFieldsPath] // Field Schema\n\n useEffect(() => {\n const controller = new AbortController()\n\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: data ?? {},\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n globalSlug,\n initialBlockData: data,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [\n schemaFieldsPath,\n id,\n data,\n getFormState,\n collectionSlug,\n isEditable,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\n ])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }: { formState: FormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\n readOnly: !isEditable,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [\n getFormState,\n id,\n isEditable,\n collectionSlug,\n getDocPreferences,\n parentDocumentFields,\n globalSlug,\n schemaFieldsPath,\n ],\n )\n\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n disableValidationOnSubmit\n fields={Array.isArray(fields) ? fields : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fields={Array.isArray(fields) ? fields : []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={true}\n readOnly={!isEditable}\n />\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useLexicalEditable","Form","RenderFields","useDocumentForm","useDocumentInfo","useServerFunctions","abortAndIgnore","deepCopyObjectSimpleWithoutReactComponents","React","useCallback","useEffect","useRef","useState","v4","uuid","useEditorConfigContext","RegisterFormSubmit","DrawerContent","data","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPath","schemaPathSuffix","submitRef","id","collectionSlug","getDocPreferences","globalSlug","fields","parentDocumentFields","isEditable","onChangeAbortControllerRef","AbortController","initialState","setInitialState","fieldProps","featureClientSchemaMap","getFormState","schemaFieldsPath","controller","awaitInitialState","state","docPermissions","docPreferences","documentFormState","excludeFiles","initialBlockData","operation","readOnly","renderAllFields","signal","onChange","formState","prevFormState","current","initialBlockFormState","_jsxs","beforeSubmit","className","disableValidationOnSubmit","Array","isArray","onSubmit","_jsx","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions"],"sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n Form,\n RenderFields,\n useDocumentForm,\n useDocumentInfo,\n useServerFunctions,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\nimport { RegisterFormSubmit } from './useDrawerSubmit.js'\nimport './index.css'\n\nexport const DrawerContent: React.FC<\n {\n submitRef: React.RefObject<(() => void) | null>\n } & Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>\n> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n submitRef,\n}) => {\n const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo()\n const { fields: parentDocumentFields } = useDocumentForm()\n const isEditable = useLexicalEditable()\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const {\n fieldProps: { featureClientSchemaMap },\n } = useEditorConfigContext()\n\n const { getFormState } = useServerFunctions()\n\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any = fieldMapOverride ?? featureClientSchemaMap[featureKey]?.[schemaFieldsPath] // Field Schema\n\n useEffect(() => {\n const controller = new AbortController()\n\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: data ?? {},\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n globalSlug,\n initialBlockData: data,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [\n schemaFieldsPath,\n id,\n data,\n getFormState,\n collectionSlug,\n isEditable,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\n ])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }: { formState: FormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\n readOnly: !isEditable,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [\n getFormState,\n id,\n isEditable,\n collectionSlug,\n getDocPreferences,\n parentDocumentFields,\n globalSlug,\n schemaFieldsPath,\n ],\n )\n\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n className=\"fields-drawer\"\n disableValidationOnSubmit\n fields={Array.isArray(fields) ? fields : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fields={Array.isArray(fields) ? fields : []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={true}\n readOnly={!isEditable}\n />\n <RegisterFormSubmit submitRef={submitRef} />\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ @layer payload-default {
2
+ .fields-drawer {
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: var(--spacer-3);
6
+ padding: var(--spacer-4);
7
+
8
+ @media (max-width: 768px) {
9
+ padding: var(--spacer-3);
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,29 @@
1
+ import type { FC } from 'react';
2
+ import type React from 'react';
3
+ /**
4
+ * Shared logic for drawers that render their submit button in the drawer header.
5
+ *
6
+ * The header's `onClick` is defined outside the `Form` provider, so it cannot call
7
+ * `useForm().submit()` directly. This hook owns a ref to the form's `submit` function,
8
+ * which is populated from inside the form via `<RegisterFormSubmit submitRef={submitRef} />`.
9
+ *
10
+ * Returns the `headerActions` array to spread onto a `Drawer` and the `submitRef`
11
+ * to pass to `RegisterFormSubmit`.
12
+ */
13
+ export declare const useDrawerSubmit: () => {
14
+ headerActions: {
15
+ label: string;
16
+ onClick: () => void | undefined;
17
+ style: "primary";
18
+ }[];
19
+ submitRef: React.RefObject<(() => void) | null>;
20
+ };
21
+ /**
22
+ * Mounts inside a `<Form>` to populate `submitRef` (from `useDrawerSubmit`) with the form's
23
+ * `submit` function, allowing drawer header actions rendered outside the form's React tree
24
+ * to trigger submission.
25
+ */
26
+ export declare const RegisterFormSubmit: FC<{
27
+ submitRef: React.RefObject<(() => void) | null>;
28
+ }>;
29
+ //# sourceMappingURL=useDrawerSubmit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDrawerSubmit.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/useDrawerSubmit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;sCAEM,IAAI;CAcrC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC;IAClC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;CAChD,CAWA,CAAA"}