@payloadcms/richtext-lexical 4.0.0-internal.f851106 → 4.0.0-internal.f980c7c

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 (626) hide show
  1. package/dist/exports/client/Field-334JNLRF.js +2 -0
  2. package/dist/exports/client/Field-334JNLRF.js.map +7 -0
  3. package/dist/exports/client/{RelationshipComponent-YCPAKOL7.js → RelationshipComponent-TVK6I4W4.js} +2 -2
  4. package/dist/exports/client/chunk-BEKGION5.js +2 -0
  5. package/dist/exports/client/chunk-BEKGION5.js.map +7 -0
  6. package/dist/exports/client/{chunk-WSAPGI3Z.js → chunk-EA5BHQ2T.js} +1 -1
  7. package/dist/exports/client/{chunk-WSAPGI3Z.js.map → chunk-EA5BHQ2T.js.map} +1 -1
  8. package/dist/exports/client/chunk-FAJJXXCW.js +2 -0
  9. package/dist/exports/client/chunk-FAJJXXCW.js.map +7 -0
  10. package/dist/exports/client/{chunk-5VIL27GI.js → chunk-IYBYNEKX.js} +1 -1
  11. package/dist/exports/client/{chunk-5VIL27GI.js.map → chunk-IYBYNEKX.js.map} +1 -1
  12. package/dist/exports/client/chunk-SE5IITBK.js +2 -0
  13. package/dist/exports/client/chunk-SE5IITBK.js.map +7 -0
  14. package/dist/exports/client/component-QENB4QTS.js +2 -0
  15. package/dist/exports/client/component-QENB4QTS.js.map +7 -0
  16. package/dist/exports/client/componentInline-AU7IBNY7.js +2 -0
  17. package/dist/exports/client/index.d.ts +1 -1
  18. package/dist/exports/client/index.d.ts.map +1 -1
  19. package/dist/exports/client/index.js +26 -26
  20. package/dist/exports/client/index.js.map +4 -4
  21. package/dist/features/align/client/index.js.map +1 -1
  22. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  23. package/dist/features/blocks/client/component/BlockReordering/index.d.ts +11 -0
  24. package/dist/features/blocks/client/component/BlockReordering/index.d.ts.map +1 -0
  25. package/dist/features/blocks/client/component/BlockReordering/index.js +18 -0
  26. package/dist/features/blocks/client/component/BlockReordering/index.js.map +1 -0
  27. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
  28. package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -1
  29. package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -1
  30. package/dist/features/blocks/client/component/index.d.ts +0 -6
  31. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  32. package/dist/features/blocks/client/component/index.js +199 -109
  33. package/dist/features/blocks/client/component/index.js.map +1 -1
  34. package/dist/features/blocks/client/component/useBlockReordering.d.ts +16 -0
  35. package/dist/features/blocks/client/component/useBlockReordering.d.ts.map +1 -0
  36. package/dist/features/blocks/client/component/useBlockReordering.js +178 -0
  37. package/dist/features/blocks/client/component/useBlockReordering.js.map +1 -0
  38. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -1
  39. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -1
  40. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -1
  41. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -1
  42. package/dist/features/blocks/client/componentInline/index.css +0 -1
  43. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  44. package/dist/features/blocks/client/componentInline/index.js +32 -30
  45. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  46. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts +9 -0
  47. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts.map +1 -0
  48. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js +95 -0
  49. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js.map +1 -0
  50. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  51. package/dist/features/blocks/client/nodes/BlocksNode.js +0 -10
  52. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  53. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  54. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +121 -78
  55. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  56. package/dist/features/blocks/premade/CodeBlock/Component/Code.js +142 -87
  57. package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
  58. package/dist/features/blocks/server/index.js +2 -2
  59. package/dist/features/blocks/server/index.js.map +1 -1
  60. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  61. package/dist/features/blocks/server/nodes/BlocksNode.js +1 -12
  62. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  63. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +2 -2
  64. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  65. package/dist/features/blocks/server/schema.d.ts +2 -0
  66. package/dist/features/blocks/server/schema.d.ts.map +1 -1
  67. package/dist/features/blocks/server/schema.js +7 -9
  68. package/dist/features/blocks/server/schema.js.map +1 -1
  69. package/dist/features/blocks/server/validate.js +1 -1
  70. package/dist/features/blocks/server/validate.js.map +1 -1
  71. package/dist/features/converters/lexicalToHtml/async/converters/heading.js +1 -1
  72. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  73. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  74. package/dist/features/converters/lexicalToHtml/async/converters/list.js +4 -3
  75. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  76. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts.map +1 -1
  77. package/dist/features/converters/lexicalToHtml/async/converters/table.js +6 -4
  78. package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
  79. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts.map +1 -1
  80. package/dist/features/converters/lexicalToHtml/async/converters/upload.js +5 -4
  81. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  82. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.d.ts.map +1 -1
  83. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +3 -2
  84. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  85. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js +1 -1
  86. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  87. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  88. package/dist/features/converters/lexicalToHtml/sync/converters/list.js +4 -3
  89. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  90. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts.map +1 -1
  91. package/dist/features/converters/lexicalToHtml/sync/converters/table.js +6 -4
  92. package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
  93. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts.map +1 -1
  94. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js +5 -4
  95. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  96. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  97. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  98. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  99. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +2 -1
  100. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  101. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  102. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +2 -1
  103. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  104. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts.map +1 -1
  105. package/dist/features/converters/lexicalToJSX/converter/converters/table.js +3 -2
  106. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  107. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  108. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +4 -5
  109. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  110. package/dist/features/converters/utilities/payloadPopulateFn.d.ts.map +1 -1
  111. package/dist/features/converters/utilities/payloadPopulateFn.js +4 -2
  112. package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
  113. package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
  114. package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
  115. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  116. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
  117. package/dist/features/heading/client/index.js.map +1 -1
  118. package/dist/features/heading/constants.d.ts +2 -0
  119. package/dist/features/heading/constants.d.ts.map +1 -0
  120. package/dist/features/heading/constants.js +2 -0
  121. package/dist/features/heading/constants.js.map +1 -0
  122. package/dist/features/heading/server/index.d.ts.map +1 -1
  123. package/dist/features/heading/server/index.js +5 -1
  124. package/dist/features/heading/server/index.js.map +1 -1
  125. package/dist/features/heading/server/validate.d.ts +6 -0
  126. package/dist/features/heading/server/validate.d.ts.map +1 -0
  127. package/dist/features/heading/server/validate.js +15 -0
  128. package/dist/features/heading/server/validate.js.map +1 -0
  129. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +12 -2
  130. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  131. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +18 -1
  132. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  133. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  134. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
  135. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  136. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +3 -3
  137. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  138. package/dist/features/horizontalRule/server/schema.d.ts +1 -0
  139. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -1
  140. package/dist/features/horizontalRule/server/schema.js +6 -5
  141. package/dist/features/horizontalRule/server/schema.js.map +1 -1
  142. package/dist/features/indent/client/IndentPlugin.d.ts.map +1 -1
  143. package/dist/features/indent/client/IndentPlugin.js +122 -1
  144. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  145. package/dist/features/indent/client/index.d.ts.map +1 -1
  146. package/dist/features/indent/client/index.js +0 -2
  147. package/dist/features/indent/client/index.js.map +1 -1
  148. package/dist/features/indent/server/i18n.d.ts.map +1 -1
  149. package/dist/features/indent/server/i18n.js +74 -37
  150. package/dist/features/indent/server/i18n.js.map +1 -1
  151. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  152. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  153. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +20 -9
  154. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  155. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +0 -2
  156. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  157. package/dist/features/link/markdownTransformer.js +2 -2
  158. package/dist/features/link/markdownTransformer.js.map +1 -1
  159. package/dist/features/link/nodes/AutoLinkNode.d.ts +1 -1
  160. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  161. package/dist/features/link/nodes/AutoLinkNode.js +2 -10
  162. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  163. package/dist/features/link/nodes/LinkNode.d.ts +1 -1
  164. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  165. package/dist/features/link/nodes/LinkNode.js +2 -15
  166. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  167. package/dist/features/link/server/baseFields.js.map +1 -1
  168. package/dist/features/link/server/index.js +2 -2
  169. package/dist/features/link/server/index.js.map +1 -1
  170. package/dist/features/link/server/validate.js +1 -1
  171. package/dist/features/link/server/validate.js.map +1 -1
  172. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  173. package/dist/features/lists/checklist/server/index.js +5 -2
  174. package/dist/features/lists/checklist/server/index.js.map +1 -1
  175. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  176. package/dist/features/lists/orderedList/server/index.js +5 -2
  177. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  178. package/dist/features/lists/shared/constants.d.ts +2 -0
  179. package/dist/features/lists/shared/constants.d.ts.map +1 -0
  180. package/dist/features/lists/shared/constants.js +2 -0
  181. package/dist/features/lists/shared/constants.js.map +1 -0
  182. package/dist/features/lists/shared/schema.d.ts.map +1 -1
  183. package/dist/features/lists/shared/schema.js.map +1 -1
  184. package/dist/features/lists/shared/validate.d.ts +5 -0
  185. package/dist/features/lists/shared/validate.d.ts.map +1 -0
  186. package/dist/features/lists/shared/validate.js +15 -0
  187. package/dist/features/lists/shared/validate.js.map +1 -0
  188. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  189. package/dist/features/lists/unorderedList/server/index.js +5 -2
  190. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  191. package/dist/features/relationship/client/components/index.css +3 -6
  192. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  193. package/dist/features/relationship/client/index.d.ts +2 -2
  194. package/dist/features/relationship/client/index.d.ts.map +1 -1
  195. package/dist/features/relationship/client/index.js.map +1 -1
  196. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  197. package/dist/features/relationship/client/nodes/RelationshipNode.js +0 -3
  198. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  199. package/dist/features/relationship/client/plugins/index.d.ts +2 -2
  200. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  201. package/dist/features/relationship/client/plugins/index.js +27 -31
  202. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  203. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts +2 -4
  204. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  205. package/dist/features/relationship/client/utils/useEnabledRelationships.js +53 -20
  206. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  207. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +2 -2
  208. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  209. package/dist/features/relationship/server/graphQLPopulationPromise.js +2 -2
  210. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  211. package/dist/features/relationship/server/index.d.ts +8 -1
  212. package/dist/features/relationship/server/index.d.ts.map +1 -1
  213. package/dist/features/relationship/server/index.js +28 -11
  214. package/dist/features/relationship/server/index.js.map +1 -1
  215. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  216. package/dist/features/relationship/server/nodes/RelationshipNode.js +1 -5
  217. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  218. package/dist/features/relationship/server/schema.d.ts +3 -2
  219. package/dist/features/relationship/server/schema.d.ts.map +1 -1
  220. package/dist/features/relationship/server/schema.js +9 -12
  221. package/dist/features/relationship/server/schema.js.map +1 -1
  222. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +1 -6
  223. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -1
  224. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +1 -5
  225. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -1
  226. package/dist/features/table/client/index.d.ts.map +1 -0
  227. package/dist/features/table/client/index.js.map +1 -0
  228. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts +8 -0
  229. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts.map +1 -0
  230. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js +19 -0
  231. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js.map +1 -0
  232. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +1 -2
  233. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  234. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +17 -44
  235. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  236. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  237. package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +48 -25
  238. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  239. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  240. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  241. package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +0 -3
  242. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  243. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  244. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  245. package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +54 -18
  246. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  247. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  248. package/dist/features/table/client/utils/debounce.js.map +1 -0
  249. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  250. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  251. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  252. package/dist/features/table/markdownTransformer.js.map +1 -0
  253. package/dist/features/table/server/index.d.ts +3 -0
  254. package/dist/features/table/server/index.d.ts.map +1 -0
  255. package/dist/features/{experimental_table → table}/server/index.js +7 -5
  256. package/dist/features/table/server/index.js.map +1 -0
  257. package/dist/features/table/server/schema.d.ts.map +1 -0
  258. package/dist/features/table/server/schema.js.map +1 -0
  259. package/dist/features/table/server/validate.d.ts +4 -0
  260. package/dist/features/table/server/validate.d.ts.map +1 -0
  261. package/dist/features/table/server/validate.js +15 -0
  262. package/dist/features/table/server/validate.js.map +1 -0
  263. package/dist/features/textState/defaultColors.js +1 -1
  264. package/dist/features/textState/defaultColors.js.map +1 -1
  265. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts +8 -0
  266. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts.map +1 -0
  267. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js +80 -0
  268. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js.map +1 -0
  269. package/dist/features/toolbars/fixed/client/Toolbar/index.css +78 -6
  270. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  271. package/dist/features/toolbars/fixed/client/Toolbar/index.js +145 -71
  272. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  273. package/dist/features/toolbars/inline/client/Toolbar/index.css +0 -1
  274. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  275. package/dist/features/toolbars/inline/client/Toolbar/index.js +84 -37
  276. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  277. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  278. package/dist/features/toolbars/shared/ToolbarButton/index.js +27 -2
  279. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  280. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  281. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +199 -81
  282. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  283. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +16 -14
  284. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  285. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +22 -6
  286. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  287. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts +5 -0
  288. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts.map +1 -0
  289. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js +109 -0
  290. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js.map +1 -0
  291. package/dist/features/typesServer.d.ts +17 -12
  292. package/dist/features/typesServer.d.ts.map +1 -1
  293. package/dist/features/typesServer.js.map +1 -1
  294. package/dist/features/upload/client/component/index.css +0 -2
  295. package/dist/features/upload/client/component/index.js +2 -1
  296. package/dist/features/upload/client/component/index.js.map +1 -1
  297. package/dist/features/upload/client/drawer/index.js.map +1 -1
  298. package/dist/features/upload/client/index.d.ts +3 -2
  299. package/dist/features/upload/client/index.d.ts.map +1 -1
  300. package/dist/features/upload/client/index.js.map +1 -1
  301. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  302. package/dist/features/upload/client/nodes/UploadNode.js +0 -7
  303. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  304. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  305. package/dist/features/upload/client/plugin/index.js +50 -53
  306. package/dist/features/upload/client/plugin/index.js.map +1 -1
  307. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +2 -2
  308. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  309. package/dist/features/upload/server/graphQLPopulationPromise.js +1 -1
  310. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  311. package/dist/features/upload/server/index.d.ts +7 -3
  312. package/dist/features/upload/server/index.d.ts.map +1 -1
  313. package/dist/features/upload/server/index.js +20 -16
  314. package/dist/features/upload/server/index.js.map +1 -1
  315. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  316. package/dist/features/upload/server/nodes/UploadNode.js +1 -9
  317. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  318. package/dist/features/upload/server/schema.d.ts +4 -16
  319. package/dist/features/upload/server/schema.d.ts.map +1 -1
  320. package/dist/features/upload/server/schema.js +8 -10
  321. package/dist/features/upload/server/schema.js.map +1 -1
  322. package/dist/features/upload/server/validate.d.ts +2 -2
  323. package/dist/features/upload/server/validate.d.ts.map +1 -1
  324. package/dist/features/upload/server/validate.js +4 -1
  325. package/dist/features/upload/server/validate.js.map +1 -1
  326. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  327. package/dist/field/Diff/converters/listitem/index.js +2 -1
  328. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  329. package/dist/field/Diff/converters/relationship/index.css +0 -1
  330. package/dist/field/Diff/converters/unknown/index.css +0 -1
  331. package/dist/field/Diff/converters/upload/index.css +0 -1
  332. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  333. package/dist/field/Diff/index.css +0 -2
  334. package/dist/field/Diff/index.d.ts +3 -2
  335. package/dist/field/Diff/index.d.ts.map +1 -1
  336. package/dist/field/Diff/index.js +4 -2
  337. package/dist/field/Diff/index.js.map +1 -1
  338. package/dist/field/Field.d.ts.map +1 -1
  339. package/dist/field/Field.js +8 -1
  340. package/dist/field/Field.js.map +1 -1
  341. package/dist/field/RenderLexical/index.d.ts +3 -1
  342. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  343. package/dist/field/RenderLexical/index.js +23 -23
  344. package/dist/field/RenderLexical/index.js.map +1 -1
  345. package/dist/field/ViewSelector.d.ts.map +1 -1
  346. package/dist/field/ViewSelector.js +13 -4
  347. package/dist/field/ViewSelector.js.map +1 -1
  348. package/dist/field/bundled.css +1 -1
  349. package/dist/field/index.css +10 -11
  350. package/dist/field/index.js.map +1 -1
  351. package/dist/field/rscEntry.d.ts +2 -2
  352. package/dist/field/rscEntry.d.ts.map +1 -1
  353. package/dist/field/rscEntry.js.map +1 -1
  354. package/dist/i18n.d.ts.map +1 -1
  355. package/dist/i18n.js +112 -0
  356. package/dist/i18n.js.map +1 -1
  357. package/dist/index.d.ts +5 -5
  358. package/dist/index.d.ts.map +1 -1
  359. package/dist/index.js +27 -5
  360. package/dist/index.js.map +1 -1
  361. package/dist/lexical/LexicalEditor.css +30 -21
  362. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  363. package/dist/lexical/LexicalEditor.js +61 -64
  364. package/dist/lexical/LexicalEditor.js.map +1 -1
  365. package/dist/lexical/config/server/loader.d.ts +1 -1
  366. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  367. package/dist/lexical/config/server/loader.js +2 -2
  368. package/dist/lexical/config/server/loader.js.map +1 -1
  369. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  370. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  371. package/dist/lexical/config/server/sanitize.js +2 -2
  372. package/dist/lexical/config/server/sanitize.js.map +1 -1
  373. package/dist/lexical/plugins/ClipboardPlugin/index.js.map +1 -1
  374. package/dist/lexical/plugins/DecoratorPlugin/index.d.ts.map +1 -1
  375. package/dist/lexical/plugins/DecoratorPlugin/index.js +24 -21
  376. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  377. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +18 -25
  378. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  379. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +27 -14
  380. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  381. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  382. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -1
  383. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  384. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  385. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +236 -108
  386. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  387. package/dist/lexical/plugins/SlashMenu/index.css +0 -2
  388. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -1
  389. package/dist/lexical/plugins/TextPlugin/index.js.map +1 -1
  390. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +1 -0
  391. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +2 -2
  392. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  393. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +17 -0
  394. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  395. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +139 -37
  396. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  397. package/dist/lexical/plugins/handles/DraggableBlockPlugin/moveBlock.d.ts +7 -0
  398. package/dist/lexical/plugins/handles/DraggableBlockPlugin/moveBlock.d.ts.map +1 -0
  399. package/dist/lexical/plugins/handles/DraggableBlockPlugin/moveBlock.js +15 -0
  400. package/dist/lexical/plugins/handles/DraggableBlockPlugin/moveBlock.js.map +1 -0
  401. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts +7 -0
  402. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts.map +1 -0
  403. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js +62 -0
  404. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js.map +1 -0
  405. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
  406. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +2 -0
  407. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  408. package/dist/lexical/theme/EditorTheme.css +0 -2
  409. package/dist/lexical/ui/ContentEditable.css +16 -15
  410. package/dist/lexical/ui/ContentEditable.d.ts +2 -1
  411. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
  412. package/dist/lexical/ui/ContentEditable.js +32 -11
  413. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  414. package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
  415. package/dist/lexical/ui/icons/H3/index.js +13 -6
  416. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  417. package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
  418. package/dist/lexical/ui/icons/H4/index.js +13 -6
  419. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  420. package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
  421. package/dist/lexical/ui/icons/H5/index.js +13 -6
  422. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  423. package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
  424. package/dist/lexical/ui/icons/H6/index.js +13 -6
  425. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  426. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  427. package/dist/lexical/utils/nodeFormat.js +0 -2
  428. package/dist/lexical/utils/nodeFormat.js.map +1 -1
  429. package/dist/lexical/utils/url.d.ts.map +1 -1
  430. package/dist/lexical/utils/url.js +1 -1
  431. package/dist/lexical/utils/url.js.map +1 -1
  432. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts +2 -0
  433. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -0
  434. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js +2 -0
  435. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -0
  436. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts +2 -0
  437. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -0
  438. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js +2 -0
  439. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -0
  440. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts +2 -0
  441. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -0
  442. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js +2 -0
  443. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -0
  444. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts +2 -0
  445. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -0
  446. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js +2 -0
  447. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -0
  448. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts +2 -0
  449. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -0
  450. package/dist/lexical-proxy/@lexical-react/ReactExtension.js +2 -0
  451. package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -0
  452. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts +2 -0
  453. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -0
  454. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js +2 -0
  455. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -0
  456. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts +2 -0
  457. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -0
  458. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js +2 -0
  459. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -0
  460. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts +2 -0
  461. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -0
  462. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js +2 -0
  463. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -0
  464. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts +2 -0
  465. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -0
  466. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js +2 -0
  467. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -0
  468. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts +2 -0
  469. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts.map +1 -0
  470. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js +2 -0
  471. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js.map +1 -0
  472. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts +2 -0
  473. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts.map +1 -0
  474. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js +2 -0
  475. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js.map +1 -0
  476. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts +2 -0
  477. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts.map +1 -0
  478. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js +2 -0
  479. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js.map +1 -0
  480. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts +2 -0
  481. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts.map +1 -0
  482. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js +2 -0
  483. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js.map +1 -0
  484. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts +2 -0
  485. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts.map +1 -0
  486. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js +2 -0
  487. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js.map +1 -0
  488. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts +2 -0
  489. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts.map +1 -0
  490. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js +2 -0
  491. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js.map +1 -0
  492. package/dist/populateGraphQL/populate.js.map +1 -1
  493. package/dist/presets/llmInstructions.d.ts +2 -0
  494. package/dist/presets/llmInstructions.d.ts.map +1 -0
  495. package/dist/presets/llmInstructions.js +13 -0
  496. package/dist/presets/llmInstructions.js.map +1 -0
  497. package/dist/types/builtInNodes.d.ts +1 -1
  498. package/dist/types/builtInNodes.d.ts.map +1 -1
  499. package/dist/types/builtInNodes.js +8 -3
  500. package/dist/types/builtInNodes.js.map +1 -1
  501. package/dist/types/index.d.ts +4 -7
  502. package/dist/types/index.d.ts.map +1 -1
  503. package/dist/types/index.js.map +1 -1
  504. package/dist/types/jsonSchemaHelpers.d.ts +5 -1
  505. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -1
  506. package/dist/types/jsonSchemaHelpers.js +7 -2
  507. package/dist/types/jsonSchemaHelpers.js.map +1 -1
  508. package/dist/types/nodeTypes.d.ts +6 -1
  509. package/dist/types/nodeTypes.d.ts.map +1 -1
  510. package/dist/types/nodeTypes.js.map +1 -1
  511. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  512. package/dist/utilities/buildEditorState.js.map +1 -1
  513. package/dist/utilities/buildInitialState.d.ts +3 -2
  514. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  515. package/dist/utilities/buildInitialState.js +1 -0
  516. package/dist/utilities/buildInitialState.js.map +1 -1
  517. package/dist/utilities/createServerFeature.d.ts +1 -1
  518. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  519. package/dist/utilities/createServerFeature.js +2 -2
  520. package/dist/utilities/createServerFeature.js.map +1 -1
  521. package/dist/utilities/editorConfigFactory.d.ts +6 -6
  522. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  523. package/dist/utilities/editorConfigFactory.js +9 -9
  524. package/dist/utilities/editorConfigFactory.js.map +1 -1
  525. package/dist/utilities/fieldsDrawer/Drawer.js +36 -36
  526. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  527. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  528. package/dist/utilities/fieldsDrawer/DrawerContent.js +6 -9
  529. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  530. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -1
  531. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  532. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -1
  533. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
  534. package/dist/utilities/generateImportMap.d.ts +2 -2
  535. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  536. package/dist/utilities/generateImportMap.js.map +1 -1
  537. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  538. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  539. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  540. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  541. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
  542. package/dist/utilities/initLexicalFeatures.js +38 -4
  543. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  544. package/dist/utilities/upgradeLexicalData/index.js +6 -3
  545. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  546. package/dist/utilities/useLexicalFeature.js +15 -6
  547. package/dist/utilities/useLexicalFeature.js.map +1 -1
  548. package/dist/utilities/useRunDeprioritized.js.map +1 -1
  549. package/dist/validate/hasText.d.ts +2 -2
  550. package/dist/validate/hasText.d.ts.map +1 -1
  551. package/dist/validate/hasText.js.map +1 -1
  552. package/dist/validate/index.d.ts +1 -1
  553. package/dist/validate/index.d.ts.map +1 -1
  554. package/package.json +125 -54
  555. package/dist/dependencyChecker.spec.js +0 -16
  556. package/dist/dependencyChecker.spec.js.map +0 -1
  557. package/dist/exports/client/Field-QGSHF22S.js +0 -2
  558. package/dist/exports/client/Field-QGSHF22S.js.map +0 -7
  559. package/dist/exports/client/bundled.css +0 -1
  560. package/dist/exports/client/chunk-ESITTE3C.js +0 -2
  561. package/dist/exports/client/chunk-ESITTE3C.js.map +0 -7
  562. package/dist/exports/client/chunk-UD4DQ4AK.js +0 -2
  563. package/dist/exports/client/chunk-UD4DQ4AK.js.map +0 -7
  564. package/dist/exports/client/chunk-X3D4LZS7.js +0 -2
  565. package/dist/exports/client/chunk-X3D4LZS7.js.map +0 -7
  566. package/dist/exports/client/component-PHZQBOJE.js +0 -2
  567. package/dist/exports/client/component-PHZQBOJE.js.map +0 -7
  568. package/dist/exports/client/componentInline-H24N7GUG.js +0 -2
  569. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts +0 -11
  570. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +0 -1
  571. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +0 -20
  572. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +0 -1
  573. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +0 -180
  574. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +0 -1
  575. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  576. package/dist/features/experimental_table/client/index.js.map +0 -1
  577. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  578. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  579. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  580. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  581. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  582. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  583. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
  584. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
  585. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  586. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  587. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  588. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  589. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  590. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  591. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  592. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  593. package/dist/features/experimental_table/server/index.d.ts +0 -3
  594. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  595. package/dist/features/experimental_table/server/index.js.map +0 -1
  596. package/dist/features/experimental_table/server/schema.d.ts.map +0 -1
  597. package/dist/features/experimental_table/server/schema.js.map +0 -1
  598. package/dist/features/link/markdownTransformer.spec.js +0 -195
  599. package/dist/features/link/markdownTransformer.spec.js.map +0 -1
  600. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js +0 -88
  601. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js.map +0 -1
  602. package/dist/lexical/utils/url.spec.js +0 -114
  603. package/dist/lexical/utils/url.spec.js.map +0 -1
  604. package/dist/utilities/jsx/jsx.spec.js +0 -178
  605. package/dist/utilities/jsx/jsx.spec.js.map +0 -1
  606. /package/dist/exports/client/{RelationshipComponent-YCPAKOL7.js.map → RelationshipComponent-TVK6I4W4.js.map} +0 -0
  607. /package/dist/exports/client/{componentInline-H24N7GUG.js.map → componentInline-AU7IBNY7.js.map} +0 -0
  608. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  609. /package/dist/features/{experimental_table → table}/client/index.js +0 -0
  610. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
  611. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
  612. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
  613. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  614. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
  615. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
  616. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
  617. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
  618. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
  619. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  620. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  621. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  622. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
  623. /package/dist/features/{experimental_table → table}/markdownTransformer.d.ts +0 -0
  624. /package/dist/features/{experimental_table → table}/markdownTransformer.js +0 -0
  625. /package/dist/features/{experimental_table → table}/server/schema.d.ts +0 -0
  626. /package/dist/features/{experimental_table → table}/server/schema.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["sanitizeFields","applyBaseFilterToFields","createServerFeature","createNode","blockPopulationPromiseHOC","i18n","getBlockMarkdownTransformers","ServerBlockNode","ServerInlineBlockNode","createBlockNodeJSONSchema","createInlineBlockNodeJSONSchema","blockValidationHOC","BlocksFeature","feature","config","_config","isRoot","parentIsLocalized","props","_props","validRelationships","collections","map","c","slug","sanitized","fields","name","type","blocks","inlineBlocks","requireFieldLevelRichTextEditor","blockConfigs","_block","block","find","b","Error","push","inlineBlockConfigs","ClientFeature","generateSchemaMap","schemaMap","Map","length","blockFields","admin","components","unshift","Block","BlockLabel","Label","set","markdownTransformers","nodes","jsonSchema","undefined","getSubFields","node","blockType","getSubFieldsData","graphQLPopulationPromises","validations","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/blocks/server/index.ts"],"sourcesContent":["import type {\n Block,\n BlocksField,\n BlockSlug,\n Config,\n FieldSchemaMap,\n UIFieldClientProps,\n UIFieldServerProps,\n} from 'payload'\n\nimport { sanitizeFields } from 'payload'\n\nimport { applyBaseFilterToFields } from '../../../utilities/applyBaseFilterToFields.js'\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { getBlockMarkdownTransformers } from './markdown/markdownTransformer.js'\nimport { ServerBlockNode } from './nodes/BlocksNode.js'\nimport { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { createBlockNodeJSONSchema, createInlineBlockNodeJSONSchema } from './schema.js'\nimport { blockValidationHOC } from './validate.js'\n\nexport type {\n BlockFields,\n BlockFieldsOptionalID,\n InlineBlockFields,\n SerializedBlockNode,\n SerializedInlineBlockNode,\n} from './schema.js'\n\nexport type BlocksFeatureProps = {\n blocks?: (Block | BlockSlug)[] | Block[]\n inlineBlocks?: (Block | BlockSlug)[] | Block[]\n}\n\nexport const BlocksFeature = createServerFeature<BlocksFeatureProps, BlocksFeatureProps>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props: _props }) => {\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const sanitized = await sanitizeFields({\n config: _config as unknown as Config,\n fields: [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: _props.blocks ?? [],\n },\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: _props.inlineBlocks ?? [],\n },\n ],\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n\n const blockConfigs: Block[] = []\n for (const _block of (sanitized[0] as BlocksField).blocks) {\n const block =\n typeof _block === 'string' ? _config?.blocks?.find((b) => b.slug === _block) : _block\n if (!block) {\n throw new Error(\n `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`,\n )\n }\n // Apply baseFilter to relationship fields in the block\n blockConfigs.push({\n ...block,\n fields: applyBaseFilterToFields(block.fields, _config),\n })\n }\n\n const inlineBlockConfigs: Block[] = []\n for (const _block of (sanitized[1] as BlocksField).blocks) {\n const block =\n typeof _block === 'string' ? _config?.blocks?.find((b) => b.slug === _block) : _block\n if (!block) {\n throw new Error(\n `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`,\n )\n }\n // Apply baseFilter to relationship fields in the block\n inlineBlockConfigs.push({\n ...block,\n fields: applyBaseFilterToFields(block.fields, _config),\n })\n }\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient',\n generateSchemaMap: ({ config }) => {\n /**\n * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these\n * sub-fields from the component map. Thus, we need to put them in the component map here.\n */\n const schemaMap: FieldSchemaMap = new Map()\n\n if (blockConfigs?.length) {\n for (const block of blockConfigs) {\n const blockFields = [...block.fields]\n\n if (block?.admin?.components) {\n blockFields.unshift({\n name: `_components`,\n type: 'ui',\n admin: {\n components: {\n Block: block.admin?.components?.Block,\n BlockLabel: block.admin?.components?.Label,\n },\n },\n })\n }\n schemaMap.set(`lexical_blocks.${block.slug}.fields`, {\n fields: blockFields,\n })\n schemaMap.set(`lexical_blocks.${block.slug}`, {\n name: `lexical_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n if (inlineBlockConfigs?.length) {\n // To generate block schemaMap which generates things like the componentMap for admin.Label\n for (const block of inlineBlockConfigs) {\n const blockFields = [...block.fields]\n\n if (block?.admin?.components) {\n blockFields.unshift({\n name: `_components`,\n type: 'ui',\n admin: {\n components: {\n Block: block.admin?.components?.Block,\n BlockLabel: block.admin?.components?.Label,\n },\n },\n })\n }\n\n schemaMap.set(`lexical_inline_blocks.${block.slug}.fields`, {\n fields: blockFields,\n })\n\n schemaMap.set(`lexical_inline_blocks.${block.slug}`, {\n name: `lexical_inline_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n return schemaMap\n },\n i18n,\n markdownTransformers: getBlockMarkdownTransformers({\n blocks: blockConfigs,\n inlineBlocks: inlineBlockConfigs,\n }),\n\n nodes: [\n createNode({\n jsonSchema: blockConfigs.length ? createBlockNodeJSONSchema(blockConfigs) : undefined,\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (!blockConfigs.length) {\n return []\n }\n return [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: blockConfigs,\n },\n ]\n }\n\n const blockType = node.fields.blockType\n const block = blockConfigs.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(blockConfigs)],\n node: ServerBlockNode,\n validations: [blockValidationHOC(blockConfigs)],\n }),\n createNode({\n jsonSchema: inlineBlockConfigs.length\n ? createInlineBlockNodeJSONSchema(inlineBlockConfigs)\n : undefined,\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (!inlineBlockConfigs.length) {\n return []\n }\n return [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: inlineBlockConfigs,\n },\n ]\n }\n\n const blockType = node.fields.blockType\n const block = inlineBlockConfigs.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(inlineBlockConfigs)],\n node: ServerInlineBlockNode,\n validations: [blockValidationHOC(inlineBlockConfigs)],\n }),\n ],\n sanitizedServerFeatureProps: _props,\n }\n },\n key: 'blocks',\n})\n\n/**\n * Props for the client components provided to `admin.components.Block` of lexical blocks.\n */\nexport type LexicalBlockClientProps = UIFieldClientProps\n/**\n * Props for the server components provided to `admin.components.Block` of lexical blocks.\n */\nexport type LexicalBlockServerProps = UIFieldServerProps\n\n/**\n * Props for the client components provided to `admin.components.Label` of lexical blocks.\n */\nexport type LexicalBlockLabelClientProps = UIFieldClientProps\n/**\n * Props for the server components provided to `admin.components.Label` of lexical blocks.\n */\nexport type LexicalBlockLabelServerProps = UIFieldServerProps\n\n/**\n * Props for the client components provided to `admin.components.Block` of lexical inline blocks.\n */\nexport type LexicalInlineBlockClientProps = UIFieldClientProps\n/**\n * Props for the server components provided to `admin.components.Block` of lexical inline blocks.\n */\nexport type LexicalInlineBlockServerProps = UIFieldServerProps\n\n/**\n * Props for the client components provided to `admin.components.Label` of lexical inline blocks.\n */\nexport type LexicalInlineBlockLabelClientProps = UIFieldClientProps\n/**\n * Props for the server components provided to `admin.components.Label` of lexical inline blocks.\n */\nexport type LexicalInlineBlockLabelServerProps = UIFieldServerProps\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["sanitizeFields","applyBaseFilterToFields","createServerFeature","createNode","blockPopulationPromiseHOC","i18n","getBlockMarkdownTransformers","ServerBlockNode","ServerInlineBlockNode","createBlockNodeJSONSchema","createInlineBlockNodeJSONSchema","blockValidationHOC","BlocksFeature","feature","config","_config","isRoot","parentIsLocalized","props","_props","validRelationships","collections","map","c","slug","sanitized","fields","name","type","blocks","inlineBlocks","requireFieldLevelRichTextEditor","blockConfigs","_block","block","find","b","Error","push","inlineBlockConfigs","ClientFeature","generateSchemaMap","schemaMap","Map","length","blockFields","admin","components","unshift","Block","BlockLabel","Label","set","markdownTransformers","nodes","jsonSchema","undefined","getSubFields","node","blockType","getSubFieldsData","graphQLPopulationPromises","validations","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/blocks/server/index.ts"],"sourcesContent":["import type {\n Block,\n BlocksField,\n BlockSlug,\n Config,\n FieldSchemaMap,\n UIFieldClientProps,\n UIFieldServerProps,\n} from 'payload'\n\nimport { sanitizeFields } from 'payload'\n\nimport { applyBaseFilterToFields } from '../../../utilities/applyBaseFilterToFields.js'\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { getBlockMarkdownTransformers } from './markdown/markdownTransformer.js'\nimport { ServerBlockNode } from './nodes/BlocksNode.js'\nimport { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { createBlockNodeJSONSchema, createInlineBlockNodeJSONSchema } from './schema.js'\nimport { blockValidationHOC } from './validate.js'\n\nexport type {\n BlockFields,\n BlockFieldsOptionalID,\n InlineBlockFields,\n SerializedBlockNode,\n SerializedInlineBlockNode,\n} from './schema.js'\n\nexport type BlocksFeatureProps = {\n blocks?: (Block | BlockSlug)[] | Block[]\n inlineBlocks?: (Block | BlockSlug)[] | Block[]\n}\n\nexport const BlocksFeature = createServerFeature<BlocksFeatureProps, BlocksFeatureProps>({\n feature: ({ config: _config, isRoot, parentIsLocalized, props: _props }) => {\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const sanitized = sanitizeFields({\n config: _config as unknown as Config,\n fields: [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: _props.blocks ?? [],\n },\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: _props.inlineBlocks ?? [],\n },\n ],\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n\n const blockConfigs: Block[] = []\n for (const _block of (sanitized[0] as BlocksField).blocks) {\n const block =\n typeof _block === 'string' ? _config?.blocks?.find((b) => b.slug === _block) : _block\n if (!block) {\n throw new Error(\n `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`,\n )\n }\n // Apply baseFilter to relationship fields in the block\n blockConfigs.push({\n ...block,\n fields: applyBaseFilterToFields(block.fields, _config),\n })\n }\n\n const inlineBlockConfigs: Block[] = []\n for (const _block of (sanitized[1] as BlocksField).blocks) {\n const block =\n typeof _block === 'string' ? _config?.blocks?.find((b) => b.slug === _block) : _block\n if (!block) {\n throw new Error(\n `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`,\n )\n }\n // Apply baseFilter to relationship fields in the block\n inlineBlockConfigs.push({\n ...block,\n fields: applyBaseFilterToFields(block.fields, _config),\n })\n }\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient',\n generateSchemaMap: ({ config }) => {\n /**\n * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these\n * sub-fields from the component map. Thus, we need to put them in the component map here.\n */\n const schemaMap: FieldSchemaMap = new Map()\n\n if (blockConfigs?.length) {\n for (const block of blockConfigs) {\n const blockFields = [...block.fields]\n\n if (block?.admin?.components) {\n blockFields.unshift({\n name: `_components`,\n type: 'ui',\n admin: {\n components: {\n Block: block.admin?.components?.Block,\n BlockLabel: block.admin?.components?.Label,\n },\n },\n })\n }\n schemaMap.set(`lexical_blocks.${block.slug}.fields`, {\n fields: blockFields,\n })\n schemaMap.set(`lexical_blocks.${block.slug}`, {\n name: `lexical_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n if (inlineBlockConfigs?.length) {\n // To generate block schemaMap which generates things like the componentMap for admin.Label\n for (const block of inlineBlockConfigs) {\n const blockFields = [...block.fields]\n\n if (block?.admin?.components) {\n blockFields.unshift({\n name: `_components`,\n type: 'ui',\n admin: {\n components: {\n Block: block.admin?.components?.Block,\n BlockLabel: block.admin?.components?.Label,\n },\n },\n })\n }\n\n schemaMap.set(`lexical_inline_blocks.${block.slug}.fields`, {\n fields: blockFields,\n })\n\n schemaMap.set(`lexical_inline_blocks.${block.slug}`, {\n name: `lexical_inline_blocks_${block.slug}`,\n type: 'blocks',\n blocks: [block],\n })\n }\n }\n\n return schemaMap\n },\n i18n,\n markdownTransformers: getBlockMarkdownTransformers({\n blocks: blockConfigs,\n inlineBlocks: inlineBlockConfigs,\n }),\n\n nodes: [\n createNode({\n jsonSchema: blockConfigs.length ? createBlockNodeJSONSchema(blockConfigs) : undefined,\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (!blockConfigs.length) {\n return []\n }\n return [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: blockConfigs,\n },\n ]\n }\n\n const blockType = node.fields.blockType\n const block = blockConfigs.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(blockConfigs)],\n node: ServerBlockNode,\n validations: [blockValidationHOC(blockConfigs)],\n }),\n createNode({\n jsonSchema: inlineBlockConfigs.length\n ? createInlineBlockNodeJSONSchema(inlineBlockConfigs)\n : undefined,\n // @ts-expect-error - TODO: fix this\n getSubFields: ({ node }) => {\n if (!node) {\n if (!inlineBlockConfigs.length) {\n return []\n }\n return [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: inlineBlockConfigs,\n },\n ]\n }\n\n const blockType = node.fields.blockType\n const block = inlineBlockConfigs.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(inlineBlockConfigs)],\n node: ServerInlineBlockNode,\n validations: [blockValidationHOC(inlineBlockConfigs)],\n }),\n ],\n sanitizedServerFeatureProps: _props,\n }\n },\n key: 'blocks',\n})\n\n/**\n * Props for the client components provided to `admin.components.Block` of lexical blocks.\n */\nexport type LexicalBlockClientProps = UIFieldClientProps\n/**\n * Props for the server components provided to `admin.components.Block` of lexical blocks.\n */\nexport type LexicalBlockServerProps = UIFieldServerProps\n\n/**\n * Props for the client components provided to `admin.components.Label` of lexical blocks.\n */\nexport type LexicalBlockLabelClientProps = UIFieldClientProps\n/**\n * Props for the server components provided to `admin.components.Label` of lexical blocks.\n */\nexport type LexicalBlockLabelServerProps = UIFieldServerProps\n\n/**\n * Props for the client components provided to `admin.components.Block` of lexical inline blocks.\n */\nexport type LexicalInlineBlockClientProps = UIFieldClientProps\n/**\n * Props for the server components provided to `admin.components.Block` of lexical inline blocks.\n */\nexport type LexicalInlineBlockServerProps = UIFieldServerProps\n\n/**\n * Props for the client components provided to `admin.components.Label` of lexical inline blocks.\n */\nexport type LexicalInlineBlockLabelClientProps = UIFieldClientProps\n/**\n * Props for the server components provided to `admin.components.Label` of lexical inline blocks.\n */\nexport type LexicalInlineBlockLabelServerProps = UIFieldServerProps\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAGhF,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAE3F,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IAErB,YAAY,EACV,WAAW,EACX,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;KACd,EAIA;IAED,OAAgB,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAO5D;IAED,OAAgB,OAAO,IAAI,MAAM,CAEhC;IAED,OAAgB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI,CAEnE;IAED,OAAgB,UAAU,CAAC,cAAc,EAAE,mBAAmB,GAAG,eAAe,CAc/E;IAED,MAAM,CAAC,QAAQ,IAAI,KAAK,CAEvB;IAEQ,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,CAIrD;IAEQ,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAE1E;IAEQ,SAAS,IAAI,eAAe,CAMpC;IAEQ,UAAU,IAAI,mBAAmB,CAOzC;IAED,cAAc,IAAI,MAAM,CAEvB;IAED,SAAS,IAAI,WAAW,CAEvB;IAEQ,cAAc,IAAI,MAAM,CAEhC;IAED,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,sBAAsB,CAAC,EAAE,OAAO,GAAG,IAAI,CAMrE;CACF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CASrF;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,eAAe,GAAG,SAAS,GACrD,IAAI,IAAI,eAAe,CAEzB"}
1
+ {"version":3,"file":"BlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAGhF,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAE3F,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IAErB,YAAY,EACV,WAAW,EACX,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;KACd,EAIA;IAED,OAAgB,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAO5D;IAED,OAAgB,OAAO,IAAI,MAAM,CAEhC;IAED,OAAgB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI,CAEnE;IAED,OAAgB,UAAU,CAAC,cAAc,EAAE,mBAAmB,GAAG,eAAe,CAI/E;IAED,MAAM,CAAC,QAAQ,IAAI,KAAK,CAEvB;IAEQ,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,CAIrD;IAEQ,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAE1E;IAEQ,SAAS,IAAI,eAAe,CAMpC;IAEQ,UAAU,IAAI,mBAAmB,CAMzC;IAED,cAAc,IAAI,MAAM,CAEvB;IAED,SAAS,IAAI,WAAW,CAEvB;IAEQ,cAAc,IAAI,MAAM,CAEhC;IAED,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,sBAAsB,CAAC,EAAE,OAAO,GAAG,IAAI,CAMrE;CACF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CASrF;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,eAAe,GAAG,SAAS,GACrD,IAAI,IAAI,eAAe,CAEzB"}
@@ -30,16 +30,6 @@ export class ServerBlockNode extends DecoratorBlockNode {
30
30
  return {};
31
31
  }
32
32
  static importJSON(serializedNode) {
33
- if (serializedNode.version === 1) {
34
- // Convert (version 1 had the fields wrapped in another, unnecessary data property)
35
- serializedNode = {
36
- ...serializedNode,
37
- fields: {
38
- ...serializedNode.fields.data
39
- },
40
- version: 2
41
- };
42
- }
43
33
  const node = $createServerBlockNode(serializedNode.fields);
44
34
  node.setFormat(serializedNode.format);
45
35
  return node;
@@ -67,8 +57,7 @@ export class ServerBlockNode extends DecoratorBlockNode {
67
57
  return {
68
58
  ...super.exportJSON(),
69
59
  type: 'block',
70
- fields: this.getFields(),
71
- version: 2
60
+ fields: this.getFields()
72
61
  };
73
62
  }
74
63
  getCacheBuster() {
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksNode.js","names":["DecoratorBlockNode","addClassNamesToElement","ObjectID","$applyNodeReplacement","ServerBlockNode","__cacheBuster","__fields","constructor","cacheBuster","fields","format","key","clone","node","__format","__key","getType","importDOM","importJSON","serializedNode","version","data","$createServerBlockNode","setFormat","isInline","createDOM","config","element","document","createElement","theme","block","decorate","editor","exportDOM","text","createTextNode","getTextContent","append","exportJSON","type","getFields","getCacheBuster","getLatest","setFields","preventFormStateUpdate","writable","getWritable","id","default","toHexString","$isServerBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"sourcesContent":["import type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMExportOutput,\n type EditorConfig,\n type ElementFormatType,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n} from 'lexical'\n\nimport type { BlockFields, BlockFieldsOptionalID, SerializedBlockNode } from '../schema.js'\n\nexport class ServerBlockNode extends DecoratorBlockNode {\n __cacheBuster: number\n __fields: BlockFields\n\n constructor({\n cacheBuster,\n fields,\n format,\n key,\n }: {\n cacheBuster?: number\n fields: BlockFields\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__fields = fields\n this.__cacheBuster = cacheBuster || 0\n }\n\n static override clone(node: ServerBlockNode): ServerBlockNode {\n return new this({\n cacheBuster: node.__cacheBuster,\n fields: node.__fields,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'block'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static override importJSON(serializedNode: SerializedBlockNode): ServerBlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createServerBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.block)\n return element\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedBlockNode {\n return {\n ...super.exportJSON(),\n type: 'block',\n fields: this.getFields(),\n version: 2,\n }\n }\n\n getCacheBuster(): number {\n return this.getLatest().__cacheBuster\n }\n\n getFields(): BlockFields {\n return this.getLatest().__fields\n }\n\n override getTextContent(): string {\n return `Block Field`\n }\n\n setFields(fields: BlockFields, preventFormStateUpdate?: boolean): void {\n const writable = this.getWritable()\n writable.__fields = fields\n if (!preventFormStateUpdate) {\n writable.__cacheBuster++\n }\n }\n}\n\nexport function $createServerBlockNode(fields: BlockFieldsOptionalID): ServerBlockNode {\n return $applyNodeReplacement(\n new ServerBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isServerBlockNode(\n node: LexicalNode | null | ServerBlockNode | undefined,\n): node is ServerBlockNode {\n return node instanceof ServerBlockNode\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BlocksNode.js","names":["DecoratorBlockNode","addClassNamesToElement","ObjectID","$applyNodeReplacement","ServerBlockNode","__cacheBuster","__fields","constructor","cacheBuster","fields","format","key","clone","node","__format","__key","getType","importDOM","importJSON","serializedNode","$createServerBlockNode","setFormat","isInline","createDOM","config","element","document","createElement","theme","block","decorate","editor","exportDOM","text","createTextNode","getTextContent","append","exportJSON","type","getFields","getCacheBuster","getLatest","setFields","preventFormStateUpdate","writable","getWritable","id","default","toHexString","$isServerBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"sourcesContent":["import type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMExportOutput,\n type EditorConfig,\n type ElementFormatType,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n} from 'lexical'\n\nimport type { BlockFields, BlockFieldsOptionalID, SerializedBlockNode } from '../schema.js'\n\nexport class ServerBlockNode extends DecoratorBlockNode {\n __cacheBuster: number\n __fields: BlockFields\n\n constructor({\n cacheBuster,\n fields,\n format,\n key,\n }: {\n cacheBuster?: number\n fields: BlockFields\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__fields = fields\n this.__cacheBuster = cacheBuster || 0\n }\n\n static override clone(node: ServerBlockNode): ServerBlockNode {\n return new this({\n cacheBuster: node.__cacheBuster,\n fields: node.__fields,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'block'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static override importJSON(serializedNode: SerializedBlockNode): ServerBlockNode {\n const node = $createServerBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.block)\n return element\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedBlockNode {\n return {\n ...super.exportJSON(),\n type: 'block',\n fields: this.getFields(),\n }\n }\n\n getCacheBuster(): number {\n return this.getLatest().__cacheBuster\n }\n\n getFields(): BlockFields {\n return this.getLatest().__fields\n }\n\n override getTextContent(): string {\n return `Block Field`\n }\n\n setFields(fields: BlockFields, preventFormStateUpdate?: boolean): void {\n const writable = this.getWritable()\n writable.__fields = fields\n if (!preventFormStateUpdate) {\n writable.__cacheBuster++\n }\n }\n}\n\nexport function $createServerBlockNode(fields: BlockFieldsOptionalID): ServerBlockNode {\n return $applyNodeReplacement(\n new ServerBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isServerBlockNode(\n node: LexicalNode | null | ServerBlockNode | undefined,\n): node is ServerBlockNode {\n return node instanceof ServerBlockNode\n}\n"],"mappings":"AAEA,SAASA,kBAAkB,QAAQ;AACnC,SAASC,sBAAsB,QAAQ;AACvC,OAAOC,QAAA,MAAc;AACrB,SACEC,qBAAqB,QAQhB;AAIP,OAAO,MAAMC,eAAA,SAAwBJ,kBAAA;EACnCK,aAAA;EACAC,QAAA;EAEAC,YAAY;IACVC,WAAW;IACXC,MAAM;IACNC,MAAM;IACNC;EAAG,CAMJ,EAAE;IACD,KAAK,CAACD,MAAA,EAAQC,GAAA;IACd,IAAI,CAACL,QAAQ,GAAGG,MAAA;IAChB,IAAI,CAACJ,aAAa,GAAGG,WAAA,IAAe;EACtC;EAEA,OAAgBI,MAAMC,IAAqB,EAAmB;IAC5D,OAAO,IAAI,IAAI,CAAC;MACdL,WAAA,EAAaK,IAAA,CAAKR,aAAa;MAC/BI,MAAA,EAAQI,IAAA,CAAKP,QAAQ;MACrBI,MAAA,EAAQG,IAAA,CAAKC,QAAQ;MACrBH,GAAA,EAAKE,IAAA,CAAKE;IACZ;EACF;EAEA,OAAgBC,QAAA,EAAkB;IAChC,OAAO;EACT;EAEA,OAAgBC,UAAA,EAAqD;IACnE,OAAO,CAAC;EACV;EAEA,OAAgBC,WAAWC,cAAmC,EAAmB;IAC/E,MAAMN,IAAA,GAAOO,sBAAA,CAAuBD,cAAA,CAAeV,MAAM;IACzDI,IAAA,CAAKQ,SAAS,CAACF,cAAA,CAAeT,MAAM;IACpC,OAAOG,IAAA;EACT;EAEA,OAAOS,SAAA,EAAkB;IACvB,OAAO;EACT;EAESC,UAAUC,MAAqB,EAAe;IACrD,MAAMC,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvC1B,sBAAA,CAAuBwB,OAAA,EAASD,MAAA,EAAQI,KAAA,EAAOC,KAAA;IAC/C,OAAOJ,OAAA;EACT;EAESK,SAASC,MAAqB,EAAEP,MAAoB,EAAe;IAC1E,OAAO;EACT;EAESQ,UAAA,EAA6B;IACpC,MAAMP,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IAEvC,MAAMM,IAAA,GAAOP,QAAA,CAASQ,cAAc,CAAC,IAAI,CAACC,cAAc;IACxDV,OAAA,CAAQW,MAAM,CAACH,IAAA;IACf,OAAO;MAAER;IAAQ;EACnB;EAESY,WAAA,EAAkC;IACzC,OAAO;MACL,GAAG,KAAK,CAACA,UAAA,EAAY;MACrBC,IAAA,EAAM;MACN7B,MAAA,EAAQ,IAAI,CAAC8B,SAAS;IACxB;EACF;EAEAC,eAAA,EAAyB;IACvB,OAAO,IAAI,CAACC,SAAS,GAAGpC,aAAa;EACvC;EAEAkC,UAAA,EAAyB;IACvB,OAAO,IAAI,CAACE,SAAS,GAAGnC,QAAQ;EAClC;EAES6B,eAAA,EAAyB;IAChC,OAAO,aAAa;EACtB;EAEAO,UAAUjC,MAAmB,EAAEkC,sBAAgC,EAAQ;IACrE,MAAMC,QAAA,GAAW,IAAI,CAACC,WAAW;IACjCD,QAAA,CAAStC,QAAQ,GAAGG,MAAA;IACpB,IAAI,CAACkC,sBAAA,EAAwB;MAC3BC,QAAA,CAASvC,aAAa;IACxB;EACF;AACF;AAEA,OAAO,SAASe,uBAAuBX,MAA6B;EAClE,OAAON,qBAAA,CACL,IAAIC,eAAA,CAAgB;IAClBK,MAAA,EAAQ;MACN,GAAGA,MAAM;MACTqC,EAAA,EAAIrC,MAAA,EAAQqC,EAAA,IAAM,IAAI5C,QAAA,CAAS6C,OAAO,GAAGC,WAAW;IACtD;EACF;AAEJ;AAEA,OAAO,SAASC,mBACdpC,IAAsD;EAEtD,OAAOA,IAAA,YAAgBT,eAAA;AACzB","ignoreList":[]}
@@ -55,9 +55,9 @@ export class ServerInlineBlockNode extends DecoratorNode {
55
55
  }
56
56
  exportJSON() {
57
57
  return {
58
+ ...super.exportJSON(),
58
59
  type: 'inlineBlock',
59
- fields: this.getFields(),
60
- version: 1
60
+ fields: this.getFields()
61
61
  };
62
62
  }
63
63
  getCacheBuster() {
@@ -1 +1 @@
1
- {"version":3,"file":"InlineBlocksNode.js","names":["addClassNamesToElement","ObjectID","$applyNodeReplacement","DecoratorNode","ServerInlineBlockNode","__cacheBuster","__fields","constructor","cacheBuster","fields","key","clone","node","__key","getType","importDOM","importJSON","serializedNode","$createServerInlineBlockNode","isInline","canIndent","createDOM","config","element","document","createElement","theme","inlineBlock","decorate","editor","exportDOM","classList","add","text","createTextNode","getTextContent","append","exportJSON","type","getFields","version","getCacheBuster","getLatest","setFields","preventFormStateUpdate","writable","getWritable","updateDOM","id","default","toHexString","$isServerInlineBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"sourcesContent":["import type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n} from 'lexical'\nimport type React from 'react'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement, DecoratorNode } from 'lexical'\n\nimport type { InlineBlockFields, SerializedInlineBlockNode } from '../schema.js'\n\nexport class ServerInlineBlockNode extends DecoratorNode<null | React.ReactElement> {\n __cacheBuster: number\n __fields: InlineBlockFields\n\n constructor({\n cacheBuster,\n fields,\n key,\n }: {\n cacheBuster?: number\n fields: InlineBlockFields\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__cacheBuster = cacheBuster || 0\n }\n\n static override clone(node: ServerInlineBlockNode): ServerInlineBlockNode {\n return new this({\n cacheBuster: node.__cacheBuster,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'inlineBlock'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static override importJSON(serializedNode: SerializedInlineBlockNode): ServerInlineBlockNode {\n const node = $createServerInlineBlockNode(serializedNode.fields)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n canIndent() {\n return true\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, config?.theme?.inlineBlock)\n return element\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element | null {\n return null\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedInlineBlockNode {\n return {\n type: 'inlineBlock',\n fields: this.getFields(),\n version: 1,\n }\n }\n\n getCacheBuster(): number {\n return this.getLatest().__cacheBuster\n }\n\n getFields(): InlineBlockFields {\n return this.getLatest().__fields\n }\n\n override getTextContent(): string {\n return `Block Field`\n }\n\n override isInline() {\n return true\n }\n\n setFields(fields: InlineBlockFields, preventFormStateUpdate?: boolean): void {\n const writable = this.getWritable()\n writable.__fields = fields\n if (!preventFormStateUpdate) {\n writable.__cacheBuster++\n }\n }\n\n override updateDOM(): boolean {\n return false\n }\n}\n\nexport function $createServerInlineBlockNode(\n fields: Exclude<InlineBlockFields, 'id'>,\n): ServerInlineBlockNode {\n return $applyNodeReplacement(\n new ServerInlineBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isServerInlineBlockNode(\n node: LexicalNode | null | ServerInlineBlockNode | undefined,\n): node is ServerInlineBlockNode {\n return node instanceof ServerInlineBlockNode\n}\n"],"mappings":"AAWA,SAASA,sBAAsB,QAAQ;AACvC,OAAOC,QAAA,MAAc;AACrB,SAASC,qBAAqB,EAAEC,aAAa,QAAQ;AAIrD,OAAO,MAAMC,qBAAA,SAA8BD,aAAA;EACzCE,aAAA;EACAC,QAAA;EAEAC,YAAY;IACVC,WAAW;IACXC,MAAM;IACNC;EAAG,CAKJ,EAAE;IACD,KAAK,CAACA,GAAA;IACN,IAAI,CAACJ,QAAQ,GAAGG,MAAA;IAChB,IAAI,CAACJ,aAAa,GAAGG,WAAA,IAAe;EACtC;EAEA,OAAgBG,MAAMC,IAA2B,EAAyB;IACxE,OAAO,IAAI,IAAI,CAAC;MACdJ,WAAA,EAAaI,IAAA,CAAKP,aAAa;MAC/BI,MAAA,EAAQG,IAAA,CAAKN,QAAQ;MACrBI,GAAA,EAAKE,IAAA,CAAKC;IACZ;EACF;EAEA,OAAgBC,QAAA,EAAkB;IAChC,OAAO;EACT;EAEA,OAAgBC,UAAA,EAAqD;IACnE,OAAO,CAAC;EACV;EAEA,OAAgBC,WAAWC,cAAyC,EAAyB;IAC3F,MAAML,IAAA,GAAOM,4BAAA,CAA6BD,cAAA,CAAeR,MAAM;IAC/D,OAAOG,IAAA;EACT;EAEA,OAAOO,SAAA,EAAkB;IACvB,OAAO;EACT;EAEAC,UAAA,EAAY;IACV,OAAO;EACT;EAESC,UAAUC,MAAqB,EAAe;IACrD,MAAMC,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCzB,sBAAA,CAAuBuB,OAAA,EAASD,MAAA,EAAQI,KAAA,EAAOC,WAAA;IAC/C,OAAOJ,OAAA;EACT;EAESK,SAASC,MAAqB,EAAEP,MAAoB,EAAsB;IACjF,OAAO;EACT;EAESQ,UAAA,EAA6B;IACpC,MAAMP,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCF,OAAA,CAAQQ,SAAS,CAACC,GAAG,CAAC;IAEtB,MAAMC,IAAA,GAAOT,QAAA,CAASU,cAAc,CAAC,IAAI,CAACC,cAAc;IACxDZ,OAAA,CAAQa,MAAM,CAACH,IAAA;IACf,OAAO;MAAEV;IAAQ;EACnB;EAESc,WAAA,EAAwC;IAC/C,OAAO;MACLC,IAAA,EAAM;MACN7B,MAAA,EAAQ,IAAI,CAAC8B,SAAS;MACtBC,OAAA,EAAS;IACX;EACF;EAEAC,eAAA,EAAyB;IACvB,OAAO,IAAI,CAACC,SAAS,GAAGrC,aAAa;EACvC;EAEAkC,UAAA,EAA+B;IAC7B,OAAO,IAAI,CAACG,SAAS,GAAGpC,QAAQ;EAClC;EAES6B,eAAA,EAAyB;IAChC,OAAO,aAAa;EACtB;EAEShB,SAAA,EAAW;IAClB,OAAO;EACT;EAEAwB,UAAUlC,MAAyB,EAAEmC,sBAAgC,EAAQ;IAC3E,MAAMC,QAAA,GAAW,IAAI,CAACC,WAAW;IACjCD,QAAA,CAASvC,QAAQ,GAAGG,MAAA;IACpB,IAAI,CAACmC,sBAAA,EAAwB;MAC3BC,QAAA,CAASxC,aAAa;IACxB;EACF;EAES0C,UAAA,EAAqB;IAC5B,OAAO;EACT;AACF;AAEA,OAAO,SAAS7B,6BACdT,MAAwC;EAExC,OAAOP,qBAAA,CACL,IAAIE,qBAAA,CAAsB;IACxBK,MAAA,EAAQ;MACN,GAAGA,MAAM;MACTuC,EAAA,EAAIvC,MAAA,EAAQuC,EAAA,IAAM,IAAI/C,QAAA,CAASgD,OAAO,GAAGC,WAAW;IACtD;EACF;AAEJ;AAEA,OAAO,SAASC,yBACdvC,IAA4D;EAE5D,OAAOA,IAAA,YAAgBR,qBAAA;AACzB","ignoreList":[]}
1
+ {"version":3,"file":"InlineBlocksNode.js","names":["addClassNamesToElement","ObjectID","$applyNodeReplacement","DecoratorNode","ServerInlineBlockNode","__cacheBuster","__fields","constructor","cacheBuster","fields","key","clone","node","__key","getType","importDOM","importJSON","serializedNode","$createServerInlineBlockNode","isInline","canIndent","createDOM","config","element","document","createElement","theme","inlineBlock","decorate","editor","exportDOM","classList","add","text","createTextNode","getTextContent","append","exportJSON","type","getFields","getCacheBuster","getLatest","setFields","preventFormStateUpdate","writable","getWritable","updateDOM","id","default","toHexString","$isServerInlineBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"sourcesContent":["import type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n} from 'lexical'\nimport type React from 'react'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement, DecoratorNode } from 'lexical'\n\nimport type { InlineBlockFields, SerializedInlineBlockNode } from '../schema.js'\n\nexport class ServerInlineBlockNode extends DecoratorNode<null | React.ReactElement> {\n __cacheBuster: number\n __fields: InlineBlockFields\n\n constructor({\n cacheBuster,\n fields,\n key,\n }: {\n cacheBuster?: number\n fields: InlineBlockFields\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__cacheBuster = cacheBuster || 0\n }\n\n static override clone(node: ServerInlineBlockNode): ServerInlineBlockNode {\n return new this({\n cacheBuster: node.__cacheBuster,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'inlineBlock'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static override importJSON(serializedNode: SerializedInlineBlockNode): ServerInlineBlockNode {\n const node = $createServerInlineBlockNode(serializedNode.fields)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n canIndent() {\n return true\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, config?.theme?.inlineBlock)\n return element\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element | null {\n return null\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedInlineBlockNode {\n return {\n ...super.exportJSON(),\n type: 'inlineBlock',\n fields: this.getFields(),\n }\n }\n\n getCacheBuster(): number {\n return this.getLatest().__cacheBuster\n }\n\n getFields(): InlineBlockFields {\n return this.getLatest().__fields\n }\n\n override getTextContent(): string {\n return `Block Field`\n }\n\n override isInline() {\n return true\n }\n\n setFields(fields: InlineBlockFields, preventFormStateUpdate?: boolean): void {\n const writable = this.getWritable()\n writable.__fields = fields\n if (!preventFormStateUpdate) {\n writable.__cacheBuster++\n }\n }\n\n override updateDOM(): boolean {\n return false\n }\n}\n\nexport function $createServerInlineBlockNode(\n fields: Exclude<InlineBlockFields, 'id'>,\n): ServerInlineBlockNode {\n return $applyNodeReplacement(\n new ServerInlineBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isServerInlineBlockNode(\n node: LexicalNode | null | ServerInlineBlockNode | undefined,\n): node is ServerInlineBlockNode {\n return node instanceof ServerInlineBlockNode\n}\n"],"mappings":"AAWA,SAASA,sBAAsB,QAAQ;AACvC,OAAOC,QAAA,MAAc;AACrB,SAASC,qBAAqB,EAAEC,aAAa,QAAQ;AAIrD,OAAO,MAAMC,qBAAA,SAA8BD,aAAA;EACzCE,aAAA;EACAC,QAAA;EAEAC,YAAY;IACVC,WAAW;IACXC,MAAM;IACNC;EAAG,CAKJ,EAAE;IACD,KAAK,CAACA,GAAA;IACN,IAAI,CAACJ,QAAQ,GAAGG,MAAA;IAChB,IAAI,CAACJ,aAAa,GAAGG,WAAA,IAAe;EACtC;EAEA,OAAgBG,MAAMC,IAA2B,EAAyB;IACxE,OAAO,IAAI,IAAI,CAAC;MACdJ,WAAA,EAAaI,IAAA,CAAKP,aAAa;MAC/BI,MAAA,EAAQG,IAAA,CAAKN,QAAQ;MACrBI,GAAA,EAAKE,IAAA,CAAKC;IACZ;EACF;EAEA,OAAgBC,QAAA,EAAkB;IAChC,OAAO;EACT;EAEA,OAAgBC,UAAA,EAAqD;IACnE,OAAO,CAAC;EACV;EAEA,OAAgBC,WAAWC,cAAyC,EAAyB;IAC3F,MAAML,IAAA,GAAOM,4BAAA,CAA6BD,cAAA,CAAeR,MAAM;IAC/D,OAAOG,IAAA;EACT;EAEA,OAAOO,SAAA,EAAkB;IACvB,OAAO;EACT;EAEAC,UAAA,EAAY;IACV,OAAO;EACT;EAESC,UAAUC,MAAqB,EAAe;IACrD,MAAMC,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCzB,sBAAA,CAAuBuB,OAAA,EAASD,MAAA,EAAQI,KAAA,EAAOC,WAAA;IAC/C,OAAOJ,OAAA;EACT;EAESK,SAASC,MAAqB,EAAEP,MAAoB,EAAsB;IACjF,OAAO;EACT;EAESQ,UAAA,EAA6B;IACpC,MAAMP,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCF,OAAA,CAAQQ,SAAS,CAACC,GAAG,CAAC;IAEtB,MAAMC,IAAA,GAAOT,QAAA,CAASU,cAAc,CAAC,IAAI,CAACC,cAAc;IACxDZ,OAAA,CAAQa,MAAM,CAACH,IAAA;IACf,OAAO;MAAEV;IAAQ;EACnB;EAESc,WAAA,EAAwC;IAC/C,OAAO;MACL,GAAG,KAAK,CAACA,UAAA,EAAY;MACrBC,IAAA,EAAM;MACN7B,MAAA,EAAQ,IAAI,CAAC8B,SAAS;IACxB;EACF;EAEAC,eAAA,EAAyB;IACvB,OAAO,IAAI,CAACC,SAAS,GAAGpC,aAAa;EACvC;EAEAkC,UAAA,EAA+B;IAC7B,OAAO,IAAI,CAACE,SAAS,GAAGnC,QAAQ;EAClC;EAES6B,eAAA,EAAyB;IAChC,OAAO,aAAa;EACtB;EAEShB,SAAA,EAAW;IAClB,OAAO;EACT;EAEAuB,UAAUjC,MAAyB,EAAEkC,sBAAgC,EAAQ;IAC3E,MAAMC,QAAA,GAAW,IAAI,CAACC,WAAW;IACjCD,QAAA,CAAStC,QAAQ,GAAGG,MAAA;IACpB,IAAI,CAACkC,sBAAA,EAAwB;MAC3BC,QAAA,CAASvC,aAAa;IACxB;EACF;EAESyC,UAAA,EAAqB;IAC5B,OAAO;EACT;AACF;AAEA,OAAO,SAAS5B,6BACdT,MAAwC;EAExC,OAAOP,qBAAA,CACL,IAAIE,qBAAA,CAAsB;IACxBK,MAAA,EAAQ;MACN,GAAGA,MAAM;MACTsC,EAAA,EAAItC,MAAA,EAAQsC,EAAA,IAAM,IAAI9C,QAAA,CAAS+C,OAAO,GAAGC,WAAW;IACtD;EACF;AAEJ;AAEA,OAAO,SAASC,yBACdtC,IAA4D;EAE5D,OAAOA,IAAA,YAAgBR,qBAAA;AACzB","ignoreList":[]}
@@ -26,6 +26,7 @@ export type SerializedBlockNode<TFields extends {
26
26
  } & Omit<TFields, 'blockName' | 'id'>;
27
27
  format: LexicalElementFormat;
28
28
  type: 'block';
29
+ /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */
29
30
  version: number;
30
31
  } : never;
31
32
  export type SerializedInlineBlockNode<TFields extends {
@@ -37,6 +38,7 @@ export type SerializedInlineBlockNode<TFields extends {
37
38
  id: string;
38
39
  } & Omit<TFields, 'id'>;
39
40
  type: 'inlineBlock';
41
+ /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */
40
42
  version: number;
41
43
  } : never;
42
44
  export declare const createBlockNodeJSONSchema: (blockConfigs: Block[]) => JSONSchemaFn;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAIxE,KAAK,eAAe,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IAC9D,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAA;AAEX,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IACjE,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;AAE5B,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;AAE5B,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IACvE,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,OAAO,CAAA;AAMX,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,IAC3F,OAAO,SAAS,OAAO,GACnB;IACE,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,CAAA;IACrF,MAAM,EAAE,oBAAoB,CAAA;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,KAAK,CAAA;AAEX,MAAM,MAAM,yBAAyB,CACnC,OAAO,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,IAC3D,OAAO,SAAS,OAAO,GACvB;IACE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC5C,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,KAAK,CAAA;AAyET,eAAO,MAAM,yBAAyB,iBACrB,KAAK,EAAE,KAAG,YA+BxB,CAAA;AAEH,eAAO,MAAM,+BAA+B,uBACrB,KAAK,EAAE,KAAG,YA8B9B,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAIxE,KAAK,eAAe,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IAC9D,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAA;AAEX,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IACjE,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;AAE5B,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;AAE5B,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI;IACvE,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,OAAO,CAAA;AAMX,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,IAC3F,OAAO,SAAS,OAAO,GACnB;IACE,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,CAAA;IACrF,MAAM,EAAE,oBAAoB,CAAA;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,wJAAwJ;IACxJ,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,KAAK,CAAA;AAEX,MAAM,MAAM,yBAAyB,CACnC,OAAO,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,IAC3D,OAAO,SAAS,OAAO,GACvB;IACE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC5C,IAAI,EAAE,aAAa,CAAA;IACnB,wJAAwJ;IACxJ,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,KAAK,CAAA;AA2ET,eAAO,MAAM,yBAAyB,iBACrB,KAAK,EAAE,KAAG,YA+BxB,CAAA;AAEH,eAAO,MAAM,+BAA+B,uBACrB,KAAK,EAAE,KAAG,YA8B9B,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { fieldsToJSONSchema, flattenAllFields, registerBlockInterface } from 'payload';
2
- import { formatSchema } from '../../../types/jsonSchemaHelpers.js';
2
+ import { formatSchema, versionSchema } from '../../../types/jsonSchemaHelpers.js';
3
3
  /**
4
4
  * MUST stay byte-for-byte in sync with the runtime `SerializedBlockNode` and
5
5
  * `SerializedInlineBlockNode` declared above.
@@ -7,11 +7,13 @@ import { formatSchema } from '../../../types/jsonSchemaHelpers.js';
7
7
  const BLOCK_NODES_TS = `export type SerializedBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {
8
8
  type: 'block';
9
9
  format: LexicalElementFormat;
10
+ /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */
10
11
  version: number;
11
12
  fields: { id: string; blockName?: string | null } & Omit<TFields, 'id' | 'blockName'>;
12
13
  } : never;
13
14
  export type SerializedInlineBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {
14
15
  type: 'inlineBlock';
16
+ /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */
15
17
  version: number;
16
18
  fields: { id: string } & Omit<TFields, 'id'>;
17
19
  } : never;`;
@@ -96,11 +98,9 @@ export const createBlockNodeJSONSchema = blockConfigs => args => {
96
98
  },
97
99
  fields: fieldsSchema,
98
100
  format: formatSchema,
99
- version: {
100
- type: 'integer'
101
- }
101
+ version: versionSchema
102
102
  },
103
- required: ['fields', 'format', 'type', 'version'],
103
+ required: ['fields', 'format', 'type'],
104
104
  tsType
105
105
  };
106
106
  };
@@ -129,11 +129,9 @@ export const createInlineBlockNodeJSONSchema = inlineBlockConfigs => args => {
129
129
  const: 'inlineBlock'
130
130
  },
131
131
  fields: fieldsSchema,
132
- version: {
133
- type: 'integer'
134
- }
132
+ version: versionSchema
135
133
  },
136
- required: ['fields', 'type', 'version'],
134
+ required: ['fields', 'type'],
137
135
  tsType
138
136
  };
139
137
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":["fieldsToJSONSchema","flattenAllFields","registerBlockInterface","formatSchema","BLOCK_NODES_TS","buildBlockFieldsSchema","block","args","isInlineBlock","flattened","fields","userFieldsSchema","config","collectionIDFieldTypes","i18n","interfaceNameDefinitions","typeStringDefinitions","variant","properties","required","id","_stripId","blockName","_stripBlockName","userOnlyProperties","userOnlyRequired","filter","r","type","blockType","const","slug","fieldsSchema","additionalProperties","createBlockNodeJSONSchema","blockConfigs","add","definitionNames","map","length","$ref","oneOf","name","tsType","join","format","version","createInlineBlockNodeJSONSchema","inlineBlockConfigs"],"sources":["../../../../src/features/blocks/server/schema.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type { Block, JsonObject } from 'payload'\n\nimport { fieldsToJSONSchema, flattenAllFields, registerBlockInterface } from 'payload'\n\nimport type { LexicalElementFormat } from '../../../types/nodeTypes.js'\nimport type { JSONSchemaArgs, JSONSchemaFn } from '../../typesServer.js'\n\nimport { formatSchema } from '../../../types/jsonSchemaHelpers.js'\n\ntype BaseBlockFields<TFields extends JsonObject = JsonObject> = {\n blockName?: null | string\n blockType: string\n} & TFields\n\nexport type BlockFields<TFields extends JsonObject = JsonObject> = {\n id: string\n} & BaseBlockFields<TFields>\n\nexport type BlockFieldsOptionalID<TFields extends JsonObject = JsonObject> = {\n id?: string\n} & BaseBlockFields<TFields>\n\nexport type InlineBlockFields<TFields extends JsonObject = JsonObject> = {\n blockType: string\n id: string\n} & TFields\n\n// Distributive (`TFields extends unknown ?`) so `SerializedBlockNode<A | B>` expands to\n// `SerializedBlockNode<A> | SerializedBlockNode<B>` - i.e. a discriminated union where each block\n// keeps its own fields. Without this, `Omit<A | B, ...>` collapses to the blocks' common keys and\n// every block-specific field is lost. Lets users write either form interchangeably.\nexport type SerializedBlockNode<TFields extends { blockType: string } = { blockType: string }> =\n TFields extends unknown\n ? {\n fields: { blockName?: null | string; id: string } & Omit<TFields, 'blockName' | 'id'>\n format: LexicalElementFormat\n type: 'block'\n version: number\n }\n : never\n\nexport type SerializedInlineBlockNode<\n TFields extends { blockType: string } = { blockType: string },\n> = TFields extends unknown\n ? {\n fields: { id: string } & Omit<TFields, 'id'>\n type: 'inlineBlock'\n version: number\n }\n : never\n\n/**\n * MUST stay byte-for-byte in sync with the runtime `SerializedBlockNode` and\n * `SerializedInlineBlockNode` declared above.\n */\nconst BLOCK_NODES_TS = `export type SerializedBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {\n type: 'block';\n format: LexicalElementFormat;\n version: number;\n fields: { id: string; blockName?: string | null } & Omit<TFields, 'id' | 'blockName'>;\n} : never;\nexport type SerializedInlineBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {\n type: 'inlineBlock';\n version: number;\n fields: { id: string } & Omit<TFields, 'id'>;\n} : never;`\n\n/**\n * JSON Schema for one block's `fields:` payload. Strips Payload's auto-added\n * `id`/`blockName` and re-adds them with strict runtime types: required\n * non-null `id`, optional `blockName?: string | null` (omitted for inline\n * blocks). Registers the interface through `registerBlockInterface` (shared with\n * payload core) and returns its collision-safe name.\n */\nconst buildBlockFieldsSchema = (\n block: Block,\n args: JSONSchemaArgs,\n { isInlineBlock }: { isInlineBlock: boolean },\n): string => {\n const flattened = flattenAllFields({ fields: block.fields })\n const userFieldsSchema = args.config\n ? fieldsToJSONSchema({\n collectionIDFieldTypes: args.collectionIDFieldTypes,\n config: args.config,\n fields: flattened,\n i18n: args.i18n,\n interfaceNameDefinitions: args.interfaceNameDefinitions,\n typeStringDefinitions: args.typeStringDefinitions,\n variant: args.variant,\n })\n : { properties: {}, required: [] }\n\n const {\n id: _stripId,\n blockName: _stripBlockName,\n ...userOnlyProperties\n } = userFieldsSchema.properties ?? {}\n const userOnlyRequired = (userFieldsSchema.required ?? []).filter(\n (r) => r !== 'id' && r !== 'blockName',\n )\n\n const properties: { [k: string]: JSONSchema4 } = {\n id: { type: 'string' },\n blockType: { type: 'string', const: block.slug },\n ...userOnlyProperties,\n }\n const required = ['id', 'blockType', ...userOnlyRequired]\n\n if (!isInlineBlock) {\n properties.blockName = { type: ['string', 'null'] }\n }\n\n const fieldsSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties,\n required,\n }\n\n return registerBlockInterface(block, fieldsSchema, args.interfaceNameDefinitions, args.variant)\n}\n\nexport const createBlockNodeJSONSchema =\n (blockConfigs: Block[]): JSONSchemaFn =>\n (args) => {\n args.typeStringDefinitions.add(BLOCK_NODES_TS)\n const definitionNames = blockConfigs.map((block) =>\n buildBlockFieldsSchema(block, args, { isInlineBlock: false }),\n )\n\n const fieldsSchema: JSONSchema4 =\n definitionNames.length === 0\n ? { type: 'object', additionalProperties: true }\n : definitionNames.length === 1\n ? { $ref: `#/$defs/${definitionNames[0]!}` }\n : { oneOf: definitionNames.map((name) => ({ $ref: `#/$defs/${name}` })) }\n\n const tsType =\n definitionNames.length > 0\n ? `SerializedBlockNode<${definitionNames.join(' | ')}>`\n : `SerializedBlockNode<{ blockType: string }>`\n\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'block' },\n fields: fieldsSchema,\n format: formatSchema,\n version: { type: 'integer' },\n },\n required: ['fields', 'format', 'type', 'version'],\n tsType,\n }\n }\n\nexport const createInlineBlockNodeJSONSchema =\n (inlineBlockConfigs: Block[]): JSONSchemaFn =>\n (args) => {\n args.typeStringDefinitions.add(BLOCK_NODES_TS)\n const definitionNames = inlineBlockConfigs.map((block) =>\n buildBlockFieldsSchema(block, args, { isInlineBlock: true }),\n )\n\n const fieldsSchema: JSONSchema4 =\n definitionNames.length === 0\n ? { type: 'object', additionalProperties: true }\n : definitionNames.length === 1\n ? { $ref: `#/$defs/${definitionNames[0]!}` }\n : { oneOf: definitionNames.map((name) => ({ $ref: `#/$defs/${name}` })) }\n\n const tsType =\n definitionNames.length > 0\n ? `SerializedInlineBlockNode<${definitionNames.join(' | ')}>`\n : `SerializedInlineBlockNode<{ blockType: string }>`\n\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'inlineBlock' },\n fields: fieldsSchema,\n version: { type: 'integer' },\n },\n required: ['fields', 'type', 'version'],\n tsType,\n }\n }\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"schema.js","names":["fieldsToJSONSchema","flattenAllFields","registerBlockInterface","formatSchema","versionSchema","BLOCK_NODES_TS","buildBlockFieldsSchema","block","args","isInlineBlock","flattened","fields","userFieldsSchema","config","collectionIDFieldTypes","i18n","interfaceNameDefinitions","typeStringDefinitions","variant","properties","required","id","_stripId","blockName","_stripBlockName","userOnlyProperties","userOnlyRequired","filter","r","type","blockType","const","slug","fieldsSchema","additionalProperties","createBlockNodeJSONSchema","blockConfigs","add","definitionNames","map","length","$ref","oneOf","name","tsType","join","format","version","createInlineBlockNodeJSONSchema","inlineBlockConfigs"],"sources":["../../../../src/features/blocks/server/schema.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type { Block, JsonObject } from 'payload'\n\nimport { fieldsToJSONSchema, flattenAllFields, registerBlockInterface } from 'payload'\n\nimport type { LexicalElementFormat } from '../../../types/nodeTypes.js'\nimport type { JSONSchemaArgs, JSONSchemaFn } from '../../typesServer.js'\n\nimport { formatSchema, versionSchema } from '../../../types/jsonSchemaHelpers.js'\n\ntype BaseBlockFields<TFields extends JsonObject = JsonObject> = {\n blockName?: null | string\n blockType: string\n} & TFields\n\nexport type BlockFields<TFields extends JsonObject = JsonObject> = {\n id: string\n} & BaseBlockFields<TFields>\n\nexport type BlockFieldsOptionalID<TFields extends JsonObject = JsonObject> = {\n id?: string\n} & BaseBlockFields<TFields>\n\nexport type InlineBlockFields<TFields extends JsonObject = JsonObject> = {\n blockType: string\n id: string\n} & TFields\n\n// Distributive (`TFields extends unknown ?`) so `SerializedBlockNode<A | B>` expands to\n// `SerializedBlockNode<A> | SerializedBlockNode<B>` - i.e. a discriminated union where each block\n// keeps its own fields. Without this, `Omit<A | B, ...>` collapses to the blocks' common keys and\n// every block-specific field is lost. Lets users write either form interchangeably.\nexport type SerializedBlockNode<TFields extends { blockType: string } = { blockType: string }> =\n TFields extends unknown\n ? {\n fields: { blockName?: null | string; id: string } & Omit<TFields, 'blockName' | 'id'>\n format: LexicalElementFormat\n type: 'block'\n /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */\n version: number\n }\n : never\n\nexport type SerializedInlineBlockNode<\n TFields extends { blockType: string } = { blockType: string },\n> = TFields extends unknown\n ? {\n fields: { id: string } & Omit<TFields, 'id'>\n type: 'inlineBlock'\n /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */\n version: number\n }\n : never\n\n/**\n * MUST stay byte-for-byte in sync with the runtime `SerializedBlockNode` and\n * `SerializedInlineBlockNode` declared above.\n */\nconst BLOCK_NODES_TS = `export type SerializedBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {\n type: 'block';\n format: LexicalElementFormat;\n /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */\n version: number;\n fields: { id: string; blockName?: string | null } & Omit<TFields, 'id' | 'blockName'>;\n} : never;\nexport type SerializedInlineBlockNode<TFields extends { blockType: string }> = TFields extends unknown ? {\n type: 'inlineBlock';\n /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */\n version: number;\n fields: { id: string } & Omit<TFields, 'id'>;\n} : never;`\n\n/**\n * JSON Schema for one block's `fields:` payload. Strips Payload's auto-added\n * `id`/`blockName` and re-adds them with strict runtime types: required\n * non-null `id`, optional `blockName?: string | null` (omitted for inline\n * blocks). Registers the interface through `registerBlockInterface` (shared with\n * payload core) and returns its collision-safe name.\n */\nconst buildBlockFieldsSchema = (\n block: Block,\n args: JSONSchemaArgs,\n { isInlineBlock }: { isInlineBlock: boolean },\n): string => {\n const flattened = flattenAllFields({ fields: block.fields })\n const userFieldsSchema = args.config\n ? fieldsToJSONSchema({\n collectionIDFieldTypes: args.collectionIDFieldTypes,\n config: args.config,\n fields: flattened,\n i18n: args.i18n,\n interfaceNameDefinitions: args.interfaceNameDefinitions,\n typeStringDefinitions: args.typeStringDefinitions,\n variant: args.variant,\n })\n : { properties: {}, required: [] }\n\n const {\n id: _stripId,\n blockName: _stripBlockName,\n ...userOnlyProperties\n } = userFieldsSchema.properties ?? {}\n const userOnlyRequired = (userFieldsSchema.required ?? []).filter(\n (r) => r !== 'id' && r !== 'blockName',\n )\n\n const properties: { [k: string]: JSONSchema4 } = {\n id: { type: 'string' },\n blockType: { type: 'string', const: block.slug },\n ...userOnlyProperties,\n }\n const required = ['id', 'blockType', ...userOnlyRequired]\n\n if (!isInlineBlock) {\n properties.blockName = { type: ['string', 'null'] }\n }\n\n const fieldsSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties,\n required,\n }\n\n return registerBlockInterface(block, fieldsSchema, args.interfaceNameDefinitions, args.variant)\n}\n\nexport const createBlockNodeJSONSchema =\n (blockConfigs: Block[]): JSONSchemaFn =>\n (args) => {\n args.typeStringDefinitions.add(BLOCK_NODES_TS)\n const definitionNames = blockConfigs.map((block) =>\n buildBlockFieldsSchema(block, args, { isInlineBlock: false }),\n )\n\n const fieldsSchema: JSONSchema4 =\n definitionNames.length === 0\n ? { type: 'object', additionalProperties: true }\n : definitionNames.length === 1\n ? { $ref: `#/$defs/${definitionNames[0]!}` }\n : { oneOf: definitionNames.map((name) => ({ $ref: `#/$defs/${name}` })) }\n\n const tsType =\n definitionNames.length > 0\n ? `SerializedBlockNode<${definitionNames.join(' | ')}>`\n : `SerializedBlockNode<{ blockType: string }>`\n\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'block' },\n fields: fieldsSchema,\n format: formatSchema,\n version: versionSchema,\n },\n required: ['fields', 'format', 'type'],\n tsType,\n }\n }\n\nexport const createInlineBlockNodeJSONSchema =\n (inlineBlockConfigs: Block[]): JSONSchemaFn =>\n (args) => {\n args.typeStringDefinitions.add(BLOCK_NODES_TS)\n const definitionNames = inlineBlockConfigs.map((block) =>\n buildBlockFieldsSchema(block, args, { isInlineBlock: true }),\n )\n\n const fieldsSchema: JSONSchema4 =\n definitionNames.length === 0\n ? { type: 'object', additionalProperties: true }\n : definitionNames.length === 1\n ? { $ref: `#/$defs/${definitionNames[0]!}` }\n : { oneOf: definitionNames.map((name) => ({ $ref: `#/$defs/${name}` })) }\n\n const tsType =\n definitionNames.length > 0\n ? `SerializedInlineBlockNode<${definitionNames.join(' | ')}>`\n : `SerializedInlineBlockNode<{ blockType: string }>`\n\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'inlineBlock' },\n fields: fieldsSchema,\n version: versionSchema,\n },\n required: ['fields', 'type'],\n tsType,\n }\n }\n"],"mappings":"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","ignoreList":[]}
@@ -37,7 +37,7 @@ export const blockValidationHOC = blocks => {
37
37
  fields: block.fields,
38
38
  fieldSchemaMap: undefined,
39
39
  initialBlockData: blockFieldData,
40
- operation: operation === 'create' || operation === 'update' ? operation : 'update',
40
+ operation,
41
41
  permissions: {},
42
42
  preferences,
43
43
  renderAllFields: false,
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","names":["fieldSchemasToFormState","blockValidationHOC","blocks","node","validation","blockFieldData","fields","options","id","collectionSlug","data","operation","preferences","req","block","find","slug","blockType","result","documentData","fieldSchemaMap","undefined","initialBlockData","permissions","renderAllFields","schemaPath","errorPathsSet","Set","fieldKey","fieldState","errorPaths","length","errorPath","add","Array","from","join"],"sources":["../../../../src/features/blocks/server/validate.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { BlockFields, SerializedBlockNode, SerializedInlineBlockNode } from './schema.js'\n\n/**\n * Runs validation for blocks. This function will determine if the rich text field itself is valid. It does not handle\n * block field error paths - this is done by the `beforeChangeTraverseFields` call in the `beforeChange` hook, called from the\n * rich text adapter.\n */\nexport const blockValidationHOC = (\n blocks: Block[],\n): NodeValidation<SerializedBlockNode | SerializedInlineBlockNode> => {\n return async ({ node, validation }) => {\n const blockFieldData = node.fields ?? ({} as BlockFields)\n\n const {\n options: { id, collectionSlug, data, operation, preferences, req },\n } = validation\n\n // find block\n const block = blocks.find((block) => block.slug === blockFieldData.blockType)\n\n // validate block\n if (!block) {\n return `Block ${blockFieldData.blockType} not found`\n }\n\n /**\n * Run fieldSchemasToFormState as that properly validates block and block sub-fields\n */\n\n const result = await fieldSchemasToFormState({\n id,\n collectionSlug,\n data: blockFieldData,\n documentData: data,\n fields: block.fields,\n fieldSchemaMap: undefined,\n initialBlockData: blockFieldData,\n operation: operation === 'create' || operation === 'update' ? operation : 'update',\n permissions: {},\n preferences,\n renderAllFields: false,\n req,\n schemaPath: '',\n })\n\n const errorPathsSet = new Set<string>()\n for (const fieldKey in result) {\n const fieldState = result[fieldKey]\n if (fieldState?.errorPaths?.length) {\n for (const errorPath of fieldState.errorPaths) {\n errorPathsSet.add(errorPath)\n }\n }\n }\n const errorPaths = Array.from(errorPathsSet)\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAKxC;;;;;AAKA,OAAO,MAAMC,kBAAA,GACXC,MAAA;EAEA,OAAO,OAAO;IAAEC,IAAI;IAAEC;EAAU,CAAE;IAChC,MAAMC,cAAA,GAAiBF,IAAA,CAAKG,MAAM,IAAK,CAAC;IAExC,MAAM;MACJC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,IAAI;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE,CACnE,GAAGT,UAAA;IAEJ;IACA,MAAMU,KAAA,GAAQZ,MAAA,CAAOa,IAAI,CAAED,KAAA,IAAUA,KAAA,CAAME,IAAI,KAAKX,cAAA,CAAeY,SAAS;IAE5E;IACA,IAAI,CAACH,KAAA,EAAO;MACV,OAAO,SAAST,cAAA,CAAeY,SAAS,YAAY;IACtD;IAEA;;;IAIA,MAAMC,MAAA,GAAS,MAAMlB,uBAAA,CAAwB;MAC3CQ,EAAA;MACAC,cAAA;MACAC,IAAA,EAAML,cAAA;MACNc,YAAA,EAAcT,IAAA;MACdJ,MAAA,EAAQQ,KAAA,CAAMR,MAAM;MACpBc,cAAA,EAAgBC,SAAA;MAChBC,gBAAA,EAAkBjB,cAAA;MAClBM,SAAA,EAAWA,SAAA,KAAc,YAAYA,SAAA,KAAc,WAAWA,SAAA,GAAY;MAC1EY,WAAA,EAAa,CAAC;MACdX,WAAA;MACAY,eAAA,EAAiB;MACjBX,GAAA;MACAY,UAAA,EAAY;IACd;IAEA,MAAMC,aAAA,GAAgB,IAAIC,GAAA;IAC1B,KAAK,MAAMC,QAAA,IAAYV,MAAA,EAAQ;MAC7B,MAAMW,UAAA,GAAaX,MAAM,CAACU,QAAA,CAAS;MACnC,IAAIC,UAAA,EAAYC,UAAA,EAAYC,MAAA,EAAQ;QAClC,KAAK,MAAMC,SAAA,IAAaH,UAAA,CAAWC,UAAU,EAAE;UAC7CJ,aAAA,CAAcO,GAAG,CAACD,SAAA;QACpB;MACF;IACF;IACA,MAAMF,UAAA,GAAaI,KAAA,CAAMC,IAAI,CAACT,aAAA;IAE9B,IAAII,UAAA,CAAWC,MAAM,EAAE;MACrB,OAAO,uCAAuCD,UAAA,CAAWM,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"validate.js","names":["fieldSchemasToFormState","blockValidationHOC","blocks","node","validation","blockFieldData","fields","options","id","collectionSlug","data","operation","preferences","req","block","find","slug","blockType","result","documentData","fieldSchemaMap","undefined","initialBlockData","permissions","renderAllFields","schemaPath","errorPathsSet","Set","fieldKey","fieldState","errorPaths","length","errorPath","add","Array","from","join"],"sources":["../../../../src/features/blocks/server/validate.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { BlockFields, SerializedBlockNode, SerializedInlineBlockNode } from './schema.js'\n\n/**\n * Runs validation for blocks. This function will determine if the rich text field itself is valid. It does not handle\n * block field error paths - this is done by the `beforeChangeTraverseFields` call in the `beforeChange` hook, called from the\n * rich text adapter.\n */\nexport const blockValidationHOC = (\n blocks: Block[],\n): NodeValidation<SerializedBlockNode | SerializedInlineBlockNode> => {\n return async ({ node, validation }) => {\n const blockFieldData = node.fields ?? ({} as BlockFields)\n\n const {\n options: { id, collectionSlug, data, operation, preferences, req },\n } = validation\n\n // find block\n const block = blocks.find((block) => block.slug === blockFieldData.blockType)\n\n // validate block\n if (!block) {\n return `Block ${blockFieldData.blockType} not found`\n }\n\n /**\n * Run fieldSchemasToFormState as that properly validates block and block sub-fields\n */\n\n const result = await fieldSchemasToFormState({\n id,\n collectionSlug,\n data: blockFieldData,\n documentData: data,\n fields: block.fields,\n fieldSchemaMap: undefined,\n initialBlockData: blockFieldData,\n operation,\n permissions: {},\n preferences,\n renderAllFields: false,\n req,\n schemaPath: '',\n })\n\n const errorPathsSet = new Set<string>()\n for (const fieldKey in result) {\n const fieldState = result[fieldKey]\n if (fieldState?.errorPaths?.length) {\n for (const errorPath of fieldState.errorPaths) {\n errorPathsSet.add(errorPath)\n }\n }\n }\n const errorPaths = Array.from(errorPathsSet)\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAKxC;;;;;AAKA,OAAO,MAAMC,kBAAA,GACXC,MAAA;EAEA,OAAO,OAAO;IAAEC,IAAI;IAAEC;EAAU,CAAE;IAChC,MAAMC,cAAA,GAAiBF,IAAA,CAAKG,MAAM,IAAK,CAAC;IAExC,MAAM;MACJC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,IAAI;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE,CACnE,GAAGT,UAAA;IAEJ;IACA,MAAMU,KAAA,GAAQZ,MAAA,CAAOa,IAAI,CAAED,KAAA,IAAUA,KAAA,CAAME,IAAI,KAAKX,cAAA,CAAeY,SAAS;IAE5E;IACA,IAAI,CAACH,KAAA,EAAO;MACV,OAAO,SAAST,cAAA,CAAeY,SAAS,YAAY;IACtD;IAEA;;;IAIA,MAAMC,MAAA,GAAS,MAAMlB,uBAAA,CAAwB;MAC3CQ,EAAA;MACAC,cAAA;MACAC,IAAA,EAAML,cAAA;MACNc,YAAA,EAAcT,IAAA;MACdJ,MAAA,EAAQQ,KAAA,CAAMR,MAAM;MACpBc,cAAA,EAAgBC,SAAA;MAChBC,gBAAA,EAAkBjB,cAAA;MAClBM,SAAA;MACAY,WAAA,EAAa,CAAC;MACdX,WAAA;MACAY,eAAA,EAAiB;MACjBX,GAAA;MACAY,UAAA,EAAY;IACd;IAEA,MAAMC,aAAA,GAAgB,IAAIC,GAAA;IAC1B,KAAK,MAAMC,QAAA,IAAYV,MAAA,EAAQ;MAC7B,MAAMW,UAAA,GAAaX,MAAM,CAACU,QAAA,CAAS;MACnC,IAAIC,UAAA,EAAYC,UAAA,EAAYC,MAAA,EAAQ;QAClC,KAAK,MAAMC,SAAA,IAAaH,UAAA,CAAWC,UAAU,EAAE;UAC7CJ,aAAA,CAAcO,GAAG,CAACD,SAAA;QACpB;MACF;IACF;IACA,MAAMF,UAAA,GAAaI,KAAA,CAAMC,IAAI,CAACT,aAAA;IAE9B,IAAII,UAAA,CAAWC,MAAM,EAAE;MACrB,OAAO,uCAAuCD,UAAA,CAAWM,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- const ALLOWED_HEADING_TAGS = new Set(['h1', 'h2', 'h3', 'h4', 'h5', 'h6']);
1
+ import { ALLOWED_HEADING_TAGS } from '../../../../heading/constants.js';
2
2
  export const HeadingHTMLConverterAsync = {
3
3
  heading: async ({
4
4
  node,
@@ -1 +1 @@
1
- {"version":3,"file":"heading.js","names":["ALLOWED_HEADING_TAGS","Set","HeadingHTMLConverterAsync","heading","node","nodesToHTML","providedStyleTag","children","nodes","join","tag","has"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/heading.ts"],"sourcesContent":["import type { SerializedHeadingNode } from '../../../../../types/nodeTypes.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nconst ALLOWED_HEADING_TAGS = new Set(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])\n\nexport const HeadingHTMLConverterAsync: HTMLConvertersAsync<SerializedHeadingNode> = {\n heading: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n const tag = ALLOWED_HEADING_TAGS.has(node.tag) ? node.tag : 'h1'\n\n return `<${tag}${providedStyleTag}>${children}</${tag}>`\n },\n}\n"],"mappings":"AAGA,MAAMA,oBAAA,GAAuB,IAAIC,GAAA,CAAI,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK;AAEzE,OAAO,MAAMC,yBAAA,GAAwE;EACnFC,OAAA,EAAS,MAAAA,CAAO;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IACrD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,MAAMC,GAAA,GAAMV,oBAAA,CAAqBW,GAAG,CAACP,IAAA,CAAKM,GAAG,IAAIN,IAAA,CAAKM,GAAG,GAAG;IAE5D,OAAO,IAAIA,GAAA,GAAMJ,gBAAA,IAAoBC,QAAA,KAAaG,GAAA,GAAM;EAC1D;AACF","ignoreList":[]}
1
+ {"version":3,"file":"heading.js","names":["ALLOWED_HEADING_TAGS","HeadingHTMLConverterAsync","heading","node","nodesToHTML","providedStyleTag","children","nodes","join","tag","has"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/heading.ts"],"sourcesContent":["import type { SerializedHeadingNode } from '../../../../../types/nodeTypes.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nimport { ALLOWED_HEADING_TAGS } from '../../../../heading/constants.js'\n\nexport const HeadingHTMLConverterAsync: HTMLConvertersAsync<SerializedHeadingNode> = {\n heading: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n const tag = ALLOWED_HEADING_TAGS.has(node.tag) ? node.tag : 'h1'\n\n return `<${tag}${providedStyleTag}>${children}</${tag}>`\n },\n}\n"],"mappings":"AAGA,SAASA,oBAAoB,QAAQ;AAErC,OAAO,MAAMC,yBAAA,GAAwE;EACnFC,OAAA,EAAS,MAAAA,CAAO;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IACrD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,MAAMC,GAAA,GAAMT,oBAAA,CAAqBU,GAAG,CAACP,IAAA,CAAKM,GAAG,IAAIN,IAAA,CAAKM,GAAG,GAAG;IAE5D,OAAO,IAAIA,GAAA,GAAMJ,gBAAA,IAAoBC,QAAA,KAAaG,GAAA,GAAM;EAC1D;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACnG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAKtD,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,CACtD,sBAAsB,GAAG,kBAAkB,CAiD5C,CAAA"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/list.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACnG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMtD,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,CACtD,sBAAsB,GAAG,kBAAkB,CAiD5C,CAAA"}
@@ -1,5 +1,6 @@
1
+ import escapeHTML from 'escape-html';
1
2
  import { v4 as uuidv4 } from 'uuid';
2
- const ALLOWED_LIST_TAGS = new Set(['ol', 'ul']);
3
+ import { ALLOWED_LIST_TAGS } from '../../../../lists/shared/constants.js';
3
4
  const ALLOWED_LIST_TYPES = new Set(['bullet', 'check', 'number']);
4
5
  export const ListHTMLConverterAsync = {
5
6
  list: async ({
@@ -32,7 +33,7 @@ export const ListHTMLConverterAsync = {
32
33
  role="checkbox"
33
34
  style="list-style-type: none;${providedCSSString}"
34
35
  tabIndex="-1"
35
- value="${node.value}"
36
+ value="${escapeHTML(String(node.value))}"
36
37
  >
37
38
  ${hasSubLists ? children : `<input${node.checked ? ' checked' : ''} id="${uuid}" readOnly="true" type="checkbox" />
38
39
  <label htmlFor="${uuid}">${children}</label>
@@ -42,7 +43,7 @@ export const ListHTMLConverterAsync = {
42
43
  return `<li
43
44
  class="${hasSubLists ? 'nestedListItem' : ''}"
44
45
  style="${hasSubLists ? `list-style-type: none;${providedCSSString}` : providedCSSString}"
45
- value="${node.value}"
46
+ value="${escapeHTML(String(node.value))}"
46
47
  >${children}</li>`;
47
48
  }
48
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","names":["v4","uuidv4","ALLOWED_LIST_TAGS","Set","ALLOWED_LIST_TYPES","ListHTMLConverterAsync","list","node","nodesToHTML","providedStyleTag","children","nodes","join","tag","has","listType","listitem","parent","providedCSSString","hasSubLists","some","child","type","uuid","checked","value"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/list.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid'\n\nimport type { SerializedListItemNode, SerializedListNode } from '../../../../../types/nodeTypes.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nconst ALLOWED_LIST_TAGS = new Set(['ol', 'ul'])\nconst ALLOWED_LIST_TYPES = new Set(['bullet', 'check', 'number'])\n\nexport const ListHTMLConverterAsync: HTMLConvertersAsync<\n SerializedListItemNode | SerializedListNode\n> = {\n list: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n const tag = ALLOWED_LIST_TAGS.has(node.tag) ? node.tag : 'ul'\n const listType = ALLOWED_LIST_TYPES.has(node.listType) ? node.listType : 'bullet'\n\n return `<${tag}${providedStyleTag} class=\"list-${listType}\">${children}</${tag}>`\n },\n listitem: async ({ node, nodesToHTML, parent, providedCSSString }) => {\n const hasSubLists = node.children.some((child) => child.type === 'list')\n\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n if ('listType' in parent && parent?.listType === 'check') {\n const uuid = uuidv4()\n return `<li\n aria-checked=\"${node.checked ? 'true' : 'false'}\"\n class=\"list-item-checkbox${node.checked ? ' list-item-checkbox-checked' : ' list-item-checkbox-unchecked'}${hasSubLists ? ' nestedListItem' : ''}\"\n role=\"checkbox\"\n style=\"list-style-type: none;${providedCSSString}\"\n tabIndex=\"-1\"\n value=\"${node.value}\"\n >\n ${\n hasSubLists\n ? children\n : `<input${node.checked ? ' checked' : ''} id=\"${uuid}\" readOnly=\"true\" type=\"checkbox\" />\n <label htmlFor=\"${uuid}\">${children}</label>\n <br />`\n }\n </li>`\n } else {\n return `<li\n class=\"${hasSubLists ? 'nestedListItem' : ''}\"\n style=\"${hasSubLists ? `list-style-type: none;${providedCSSString}` : providedCSSString}\"\n value=\"${node.value}\"\n >${children}</li>`\n }\n },\n}\n"],"mappings":"AAAA,SAASA,EAAA,IAAMC,MAAM,QAAQ;AAK7B,MAAMC,iBAAA,GAAoB,IAAIC,GAAA,CAAI,CAAC,MAAM,KAAK;AAC9C,MAAMC,kBAAA,GAAqB,IAAID,GAAA,CAAI,CAAC,UAAU,SAAS,SAAS;AAEhE,OAAO,MAAME,sBAAA,GAET;EACFC,IAAA,EAAM,MAAAA,CAAO;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IAClD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,MAAMC,GAAA,GAAMX,iBAAA,CAAkBY,GAAG,CAACP,IAAA,CAAKM,GAAG,IAAIN,IAAA,CAAKM,GAAG,GAAG;IACzD,MAAME,QAAA,GAAWX,kBAAA,CAAmBU,GAAG,CAACP,IAAA,CAAKQ,QAAQ,IAAIR,IAAA,CAAKQ,QAAQ,GAAG;IAEzE,OAAO,IAAIF,GAAA,GAAMJ,gBAAA,gBAAgCM,QAAA,KAAaL,QAAA,KAAaG,GAAA,GAAM;EACnF;EACAG,QAAA,EAAU,MAAAA,CAAO;IAAET,IAAI;IAAEC,WAAW;IAAES,MAAM;IAAEC;EAAiB,CAAE;IAC/D,MAAMC,WAAA,GAAcZ,IAAA,CAAKG,QAAQ,CAACU,IAAI,CAAEC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAK;IAEjE,MAAMZ,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,IAAI,cAAcK,MAAA,IAAUA,MAAA,EAAQF,QAAA,KAAa,SAAS;MACxD,MAAMQ,IAAA,GAAOtB,MAAA;MACb,OAAO;0BACaM,IAAA,CAAKiB,OAAO,GAAG,SAAS;qCACbjB,IAAA,CAAKiB,OAAO,GAAG,gCAAgC,kCAAkCL,WAAA,GAAc,oBAAoB;;yCAE/GD,iBAAA;;mBAEtBX,IAAA,CAAKkB,KAAK;;YAGjBN,WAAA,GACIT,QAAA,GACA,SAASH,IAAA,CAAKiB,OAAO,GAAG,aAAa,UAAUD,IAAA;8BACjCA,IAAA,KAASb,QAAA;mBACpB;cAEL;IACV,OAAO;MACL,OAAO;mBACMS,WAAA,GAAc,mBAAmB;mBACjCA,WAAA,GAAc,yBAAyBD,iBAAA,EAAmB,GAAGA,iBAAA;mBAC7DX,IAAA,CAAKkB,KAAK;WAClBf,QAAA,OAAe;IACtB;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"list.js","names":["escapeHTML","v4","uuidv4","ALLOWED_LIST_TAGS","ALLOWED_LIST_TYPES","Set","ListHTMLConverterAsync","list","node","nodesToHTML","providedStyleTag","children","nodes","join","tag","has","listType","listitem","parent","providedCSSString","hasSubLists","some","child","type","uuid","checked","String","value"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/list.ts"],"sourcesContent":["import escapeHTML from 'escape-html'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport type { SerializedListItemNode, SerializedListNode } from '../../../../../types/nodeTypes.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nimport { ALLOWED_LIST_TAGS } from '../../../../lists/shared/constants.js'\n\nconst ALLOWED_LIST_TYPES = new Set(['bullet', 'check', 'number'])\n\nexport const ListHTMLConverterAsync: HTMLConvertersAsync<\n SerializedListItemNode | SerializedListNode\n> = {\n list: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n const tag = ALLOWED_LIST_TAGS.has(node.tag) ? node.tag : 'ul'\n const listType = ALLOWED_LIST_TYPES.has(node.listType) ? node.listType : 'bullet'\n\n return `<${tag}${providedStyleTag} class=\"list-${listType}\">${children}</${tag}>`\n },\n listitem: async ({ node, nodesToHTML, parent, providedCSSString }) => {\n const hasSubLists = node.children.some((child) => child.type === 'list')\n\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n if ('listType' in parent && parent?.listType === 'check') {\n const uuid = uuidv4()\n return `<li\n aria-checked=\"${node.checked ? 'true' : 'false'}\"\n class=\"list-item-checkbox${node.checked ? ' list-item-checkbox-checked' : ' list-item-checkbox-unchecked'}${hasSubLists ? ' nestedListItem' : ''}\"\n role=\"checkbox\"\n style=\"list-style-type: none;${providedCSSString}\"\n tabIndex=\"-1\"\n value=\"${escapeHTML(String(node.value))}\"\n >\n ${\n hasSubLists\n ? children\n : `<input${node.checked ? ' checked' : ''} id=\"${uuid}\" readOnly=\"true\" type=\"checkbox\" />\n <label htmlFor=\"${uuid}\">${children}</label>\n <br />`\n }\n </li>`\n } else {\n return `<li\n class=\"${hasSubLists ? 'nestedListItem' : ''}\"\n style=\"${hasSubLists ? `list-style-type: none;${providedCSSString}` : providedCSSString}\"\n value=\"${escapeHTML(String(node.value))}\"\n >${children}</li>`\n }\n },\n}\n"],"mappings":"AAAA,OAAOA,UAAA,MAAgB;AACvB,SAASC,EAAA,IAAMC,MAAM,QAAQ;AAK7B,SAASC,iBAAiB,QAAQ;AAElC,MAAMC,kBAAA,GAAqB,IAAIC,GAAA,CAAI,CAAC,UAAU,SAAS,SAAS;AAEhE,OAAO,MAAMC,sBAAA,GAET;EACFC,IAAA,EAAM,MAAAA,CAAO;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IAClD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,MAAMC,GAAA,GAAMX,iBAAA,CAAkBY,GAAG,CAACP,IAAA,CAAKM,GAAG,IAAIN,IAAA,CAAKM,GAAG,GAAG;IACzD,MAAME,QAAA,GAAWZ,kBAAA,CAAmBW,GAAG,CAACP,IAAA,CAAKQ,QAAQ,IAAIR,IAAA,CAAKQ,QAAQ,GAAG;IAEzE,OAAO,IAAIF,GAAA,GAAMJ,gBAAA,gBAAgCM,QAAA,KAAaL,QAAA,KAAaG,GAAA,GAAM;EACnF;EACAG,QAAA,EAAU,MAAAA,CAAO;IAAET,IAAI;IAAEC,WAAW;IAAES,MAAM;IAAEC;EAAiB,CAAE;IAC/D,MAAMC,WAAA,GAAcZ,IAAA,CAAKG,QAAQ,CAACU,IAAI,CAAEC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAK;IAEjE,MAAMZ,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,IAAI,cAAcK,MAAA,IAAUA,MAAA,EAAQF,QAAA,KAAa,SAAS;MACxD,MAAMQ,IAAA,GAAOtB,MAAA;MACb,OAAO;0BACaM,IAAA,CAAKiB,OAAO,GAAG,SAAS;qCACbjB,IAAA,CAAKiB,OAAO,GAAG,gCAAgC,kCAAkCL,WAAA,GAAc,oBAAoB;;yCAE/GD,iBAAA;;mBAEtBnB,UAAA,CAAW0B,MAAA,CAAOlB,IAAA,CAAKmB,KAAK;;YAGnCP,WAAA,GACIT,QAAA,GACA,SAASH,IAAA,CAAKiB,OAAO,GAAG,aAAa,UAAUD,IAAA;8BACjCA,IAAA,KAASb,QAAA;mBACpB;cAEL;IACV,OAAO;MACL,OAAO;mBACMS,WAAA,GAAc,mBAAmB;mBACjCA,WAAA,GAAc,yBAAyBD,iBAAA,EAAmB,GAAGA,iBAAA;mBAC7DnB,UAAA,CAAW0B,MAAA,CAAOlB,IAAA,CAAKmB,KAAK;WACpChB,QAAA,OAAe;IACtB;EACF;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAItD,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,CACvD,uBAAuB,GAAG,mBAAmB,GAAG,sBAAsB,CAwDvE,CAAA"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAItD,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,CACvD,uBAAuB,GAAG,mBAAmB,GAAG,sBAAsB,CA4DvE,CAAA"}
@@ -22,14 +22,16 @@ export const TableHTMLConverterAsync = {
22
22
  const children = (await nodesToHTML({
23
23
  nodes: node.children
24
24
  })).join('');
25
- const TagName = node.headerState > 0 ? 'th' : 'td';
26
- const headerStateClass = `lexical-table-cell-header-${node.headerState}`;
25
+ // Stored JSON is not type-checked, so only numbers may be interpolated into attributes
26
+ const headerState = typeof node.headerState === 'number' ? node.headerState : 0;
27
+ const TagName = headerState > 0 ? 'th' : 'td';
28
+ const headerStateClass = `lexical-table-cell-header-${headerState}`;
27
29
  let style = 'border: var(--stroke-width-small) solid #ccc; padding: 8px;' + providedCSSString;
28
30
  if (node.backgroundColor && isSafeCssColor(node.backgroundColor)) {
29
31
  style += ` background-color: ${node.backgroundColor};`;
30
32
  }
31
- const colSpanAttr = node.colSpan && node.colSpan > 1 ? ` colspan="${node.colSpan}"` : '';
32
- const rowSpanAttr = node.rowSpan && node.rowSpan > 1 ? ` rowspan="${node.rowSpan}"` : '';
33
+ const colSpanAttr = typeof node.colSpan === 'number' && node.colSpan > 1 ? ` colspan="${node.colSpan}"` : '';
34
+ const rowSpanAttr = typeof node.rowSpan === 'number' && node.rowSpan > 1 ? ` rowspan="${node.rowSpan}"` : '';
33
35
  return `<${TagName}
34
36
  class="lexical-table-cell ${headerStateClass}"
35
37
  ${colSpanAttr}
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","names":["isSafeCssColor","TableHTMLConverterAsync","table","node","nodesToHTML","providedStyleTag","children","nodes","join","tablecell","providedCSSString","TagName","headerState","headerStateClass","style","backgroundColor","colSpanAttr","colSpan","rowSpanAttr","rowSpan","tablerow"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/table.ts"],"sourcesContent":["import type {\n SerializedTableCellNode,\n SerializedTableNode,\n SerializedTableRowNode,\n} from '../../../../../types/nodeTypes.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nimport { isSafeCssColor } from '../../shared/cssColors.js'\n\nexport const TableHTMLConverterAsync: HTMLConvertersAsync<\n SerializedTableCellNode | SerializedTableNode | SerializedTableRowNode\n> = {\n table: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n return `<div${providedStyleTag} class=\"lexical-table-container\">\n <table class=\"lexical-table\" style=\"border-collapse: collapse;\">\n <tbody>${children}</tbody>\n </table>\n </div>`\n },\n\n tablecell: async ({ node, nodesToHTML, providedCSSString }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n const TagName = node.headerState > 0 ? 'th' : 'td'\n const headerStateClass = `lexical-table-cell-header-${node.headerState}`\n\n let style = 'border: var(--stroke-width-small) solid #ccc; padding: 8px;' + providedCSSString\n if (node.backgroundColor && isSafeCssColor(node.backgroundColor)) {\n style += ` background-color: ${node.backgroundColor};`\n }\n\n const colSpanAttr = node.colSpan && node.colSpan > 1 ? ` colspan=\"${node.colSpan}\"` : ''\n const rowSpanAttr = node.rowSpan && node.rowSpan > 1 ? ` rowspan=\"${node.rowSpan}\"` : ''\n\n return `<${TagName}\n class=\"lexical-table-cell ${headerStateClass}\"\n ${colSpanAttr}\n ${rowSpanAttr}\n style=\"${style}\"\n >\n ${children}\n </${TagName}>\n `\n },\n\n tablerow: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n return `<tr${providedStyleTag} class=\"lexical-table-row\">\n ${children}\n </tr>`\n },\n}\n"],"mappings":"AAOA,SAASA,cAAc,QAAQ;AAE/B,OAAO,MAAMC,uBAAA,GAET;EACFC,KAAA,EAAO,MAAAA,CAAO;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IACnD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,OAAO,OAAOH,gBAAA;;mBAECC,QAAA;;aAEN;EACX;EAEAG,SAAA,EAAW,MAAAA,CAAO;IAAEN,IAAI;IAAEC,WAAW;IAAEM;EAAiB,CAAE;IACxD,MAAMJ,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,MAAMG,OAAA,GAAUR,IAAA,CAAKS,WAAW,GAAG,IAAI,OAAO;IAC9C,MAAMC,gBAAA,GAAmB,6BAA6BV,IAAA,CAAKS,WAAW,EAAE;IAExE,IAAIE,KAAA,GAAQ,gEAAgEJ,iBAAA;IAC5E,IAAIP,IAAA,CAAKY,eAAe,IAAIf,cAAA,CAAeG,IAAA,CAAKY,eAAe,GAAG;MAChED,KAAA,IAAS,sBAAsBX,IAAA,CAAKY,eAAe,GAAG;IACxD;IAEA,MAAMC,WAAA,GAAcb,IAAA,CAAKc,OAAO,IAAId,IAAA,CAAKc,OAAO,GAAG,IAAI,aAAad,IAAA,CAAKc,OAAO,GAAG,GAAG;IACtF,MAAMC,WAAA,GAAcf,IAAA,CAAKgB,OAAO,IAAIhB,IAAA,CAAKgB,OAAO,GAAG,IAAI,aAAahB,IAAA,CAAKgB,OAAO,GAAG,GAAG;IAEtF,OAAO,IAAIR,OAAA;oCACqBE,gBAAA;UAC1BG,WAAA;UACAE,WAAA;iBACOJ,KAAA;;UAEPR,QAAA;UACAK,OAAA;KACL;EACH;EAEAS,QAAA,EAAU,MAAAA,CAAO;IAAEjB,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IACtD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,OAAO,MAAMH,gBAAA;UACPC,QAAA;YACE;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"table.js","names":["isSafeCssColor","TableHTMLConverterAsync","table","node","nodesToHTML","providedStyleTag","children","nodes","join","tablecell","providedCSSString","headerState","TagName","headerStateClass","style","backgroundColor","colSpanAttr","colSpan","rowSpanAttr","rowSpan","tablerow"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/table.ts"],"sourcesContent":["import type {\n SerializedTableCellNode,\n SerializedTableNode,\n SerializedTableRowNode,\n} from '../../../../../types/nodeTypes.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nimport { isSafeCssColor } from '../../shared/cssColors.js'\n\nexport const TableHTMLConverterAsync: HTMLConvertersAsync<\n SerializedTableCellNode | SerializedTableNode | SerializedTableRowNode\n> = {\n table: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n return `<div${providedStyleTag} class=\"lexical-table-container\">\n <table class=\"lexical-table\" style=\"border-collapse: collapse;\">\n <tbody>${children}</tbody>\n </table>\n </div>`\n },\n\n tablecell: async ({ node, nodesToHTML, providedCSSString }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n // Stored JSON is not type-checked, so only numbers may be interpolated into attributes\n const headerState = typeof node.headerState === 'number' ? node.headerState : 0\n const TagName = headerState > 0 ? 'th' : 'td'\n const headerStateClass = `lexical-table-cell-header-${headerState}`\n\n let style = 'border: var(--stroke-width-small) solid #ccc; padding: 8px;' + providedCSSString\n if (node.backgroundColor && isSafeCssColor(node.backgroundColor)) {\n style += ` background-color: ${node.backgroundColor};`\n }\n\n const colSpanAttr =\n typeof node.colSpan === 'number' && node.colSpan > 1 ? ` colspan=\"${node.colSpan}\"` : ''\n const rowSpanAttr =\n typeof node.rowSpan === 'number' && node.rowSpan > 1 ? ` rowspan=\"${node.rowSpan}\"` : ''\n\n return `<${TagName}\n class=\"lexical-table-cell ${headerStateClass}\"\n ${colSpanAttr}\n ${rowSpanAttr}\n style=\"${style}\"\n >\n ${children}\n </${TagName}>\n `\n },\n\n tablerow: async ({ node, nodesToHTML, providedStyleTag }) => {\n const children = (\n await nodesToHTML({\n nodes: node.children,\n })\n ).join('')\n\n return `<tr${providedStyleTag} class=\"lexical-table-row\">\n ${children}\n </tr>`\n },\n}\n"],"mappings":"AAOA,SAASA,cAAc,QAAQ;AAE/B,OAAO,MAAMC,uBAAA,GAET;EACFC,KAAA,EAAO,MAAAA,CAAO;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IACnD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,OAAO,OAAOH,gBAAA;;mBAECC,QAAA;;aAEN;EACX;EAEAG,SAAA,EAAW,MAAAA,CAAO;IAAEN,IAAI;IAAEC,WAAW;IAAEM;EAAiB,CAAE;IACxD,MAAMJ,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP;IACA,MAAMG,WAAA,GAAc,OAAOR,IAAA,CAAKQ,WAAW,KAAK,WAAWR,IAAA,CAAKQ,WAAW,GAAG;IAC9E,MAAMC,OAAA,GAAUD,WAAA,GAAc,IAAI,OAAO;IACzC,MAAME,gBAAA,GAAmB,6BAA6BF,WAAA,EAAa;IAEnE,IAAIG,KAAA,GAAQ,gEAAgEJ,iBAAA;IAC5E,IAAIP,IAAA,CAAKY,eAAe,IAAIf,cAAA,CAAeG,IAAA,CAAKY,eAAe,GAAG;MAChED,KAAA,IAAS,sBAAsBX,IAAA,CAAKY,eAAe,GAAG;IACxD;IAEA,MAAMC,WAAA,GACJ,OAAOb,IAAA,CAAKc,OAAO,KAAK,YAAYd,IAAA,CAAKc,OAAO,GAAG,IAAI,aAAad,IAAA,CAAKc,OAAO,GAAG,GAAG;IACxF,MAAMC,WAAA,GACJ,OAAOf,IAAA,CAAKgB,OAAO,KAAK,YAAYhB,IAAA,CAAKgB,OAAO,GAAG,IAAI,aAAahB,IAAA,CAAKgB,OAAO,GAAG,GAAG;IAExF,OAAO,IAAIP,OAAA;oCACqBC,gBAAA;UAC1BG,WAAA;UACAE,WAAA;iBACOJ,KAAA;;UAEPR,QAAA;UACAM,OAAA;KACL;EACH;EAEAQ,QAAA,EAAU,MAAAA,CAAO;IAAEjB,IAAI;IAAEC,WAAW;IAAEC;EAAgB,CAAE;IACtD,MAAMC,QAAA,GAAW,CACf,MAAMF,WAAA,CAAY;MAChBG,KAAA,EAAOJ,IAAA,CAAKG;IACd,EAAC,EACDE,IAAI,CAAC;IAEP,OAAO,MAAMH,gBAAA;UACPC,QAAA;YACE;EACV;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/upload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtD,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,CAAC,oBAAoB,CAoF9E,CAAA"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/upload.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtD,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,CAAC,oBAAoB,CAoF9E,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import escapeHTML from 'escape-html';
2
+ import { sanitizeUrl } from 'payload/shared';
2
3
  export const UploadHTMLConverterAsync = {
3
4
  upload: async ({
4
5
  node,
@@ -23,13 +24,13 @@ export const UploadHTMLConverterAsync = {
23
24
  return '';
24
25
  }
25
26
  const alt = escapeHTML(node.fields?.alt || uploadDoc?.alt || '');
26
- const url = escapeHTML(uploadDoc.url ?? '');
27
+ const url = escapeHTML(sanitizeUrl(uploadDoc.url ?? ''));
27
28
  // 1) If upload is NOT an image, return a link
28
29
  if (!uploadDoc.mimeType.startsWith('image')) {
29
30
  return `<a${providedStyleTag} href="${url}" rel="noopener noreferrer">${escapeHTML(uploadDoc.filename ?? '')}</a>`;
30
31
  }
31
32
  // 2) If image has no different sizes, return a simple <img />
32
- if (!uploadDoc.sizes || !Object.keys(uploadDoc.sizes).length) {
33
+ if (!uploadDoc.variants || !Object.keys(uploadDoc.variants).length) {
33
34
  return `
34
35
  <img${providedStyleTag}
35
36
  alt="${alt}"
@@ -41,8 +42,8 @@ export const UploadHTMLConverterAsync = {
41
42
  }
42
43
  // 3) If image has different sizes, build a <picture> element with <source> tags
43
44
  let pictureHTML = '';
44
- for (const size in uploadDoc.sizes) {
45
- const imageSize = uploadDoc.sizes[size];
45
+ for (const size in uploadDoc.variants) {
46
+ const imageSize = uploadDoc.variants[size];
46
47
  if (!imageSize || !imageSize.width || !imageSize.height || !imageSize.mimeType || !imageSize.filesize || !imageSize.filename || !imageSize.url) {
47
48
  continue;
48
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","names":["escapeHTML","UploadHTMLConverterAsync","upload","node","populate","providedStyleTag","uploadNode","uploadDoc","undefined","value","id","collectionSlug","relationTo","alt","fields","url","mimeType","startsWith","filename","sizes","Object","keys","length","String","height","width","pictureHTML","size","imageSize","filesize"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/upload.ts"],"sourcesContent":["import type { FileData, FileSize, TypeWithID } from 'payload'\n\nimport escapeHTML from 'escape-html'\n\nimport type { SerializedUploadNode } from '../../../../../types/nodeTypes.js'\nimport type { UploadDataImproved } from '../../../../upload/server/schema.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nexport const UploadHTMLConverterAsync: HTMLConvertersAsync<SerializedUploadNode> = {\n upload: async ({ node, populate, providedStyleTag }) => {\n const uploadNode = node as UploadDataImproved\n\n let uploadDoc: (FileData & TypeWithID) | undefined = undefined\n\n // If there's no valid upload data, populate return an empty string\n if (typeof uploadNode.value !== 'object') {\n if (!populate) {\n return ''\n }\n uploadDoc = await populate<FileData & TypeWithID>({\n id: uploadNode.value,\n collectionSlug: uploadNode.relationTo,\n })\n } else {\n uploadDoc = uploadNode.value as unknown as FileData & TypeWithID\n }\n\n if (!uploadDoc) {\n return ''\n }\n\n const alt = escapeHTML(\n (node.fields?.alt as string) || (uploadDoc as { alt?: string })?.alt || '',\n )\n\n const url = escapeHTML(uploadDoc.url ?? '')\n\n // 1) If upload is NOT an image, return a link\n if (!uploadDoc.mimeType.startsWith('image')) {\n return `<a${providedStyleTag} href=\"${url}\" rel=\"noopener noreferrer\">${escapeHTML(uploadDoc.filename ?? '')}</a>`\n }\n\n // 2) If image has no different sizes, return a simple <img />\n if (!uploadDoc.sizes || !Object.keys(uploadDoc.sizes).length) {\n return `\n <img${providedStyleTag}\n alt=\"${alt}\"\n height=\"${escapeHTML(String(uploadDoc.height ?? ''))}\"\n src=\"${url}\"\n width=\"${escapeHTML(String(uploadDoc.width ?? ''))}\"\n />\n `\n }\n\n // 3) If image has different sizes, build a <picture> element with <source> tags\n let pictureHTML = ''\n\n for (const size in uploadDoc.sizes) {\n const imageSize = uploadDoc.sizes[size] as FileSize\n\n if (\n !imageSize ||\n !imageSize.width ||\n !imageSize.height ||\n !imageSize.mimeType ||\n !imageSize.filesize ||\n !imageSize.filename ||\n !imageSize.url\n ) {\n continue\n }\n\n pictureHTML += `\n <source\n media=\"(max-width: ${escapeHTML(String(imageSize.width))}px)\"\n srcset=\"${escapeHTML(imageSize.url)}\"\n type=\"${escapeHTML(imageSize.mimeType)}\"\n />\n `\n }\n\n pictureHTML += `\n <img\n alt=\"${alt}\"\n height=\"${escapeHTML(String(uploadDoc.height ?? ''))}\"\n src=\"${url}\"\n width=\"${escapeHTML(String(uploadDoc.width ?? ''))}\"\n />\n `\n\n return `<picture${providedStyleTag}>${pictureHTML}</picture>`\n },\n}\n"],"mappings":"AAEA,OAAOA,UAAA,MAAgB;AAMvB,OAAO,MAAMC,wBAAA,GAAsE;EACjFC,MAAA,EAAQ,MAAAA,CAAO;IAAEC,IAAI;IAAEC,QAAQ;IAAEC;EAAgB,CAAE;IACjD,MAAMC,UAAA,GAAaH,IAAA;IAEnB,IAAII,SAAA,GAAiDC,SAAA;IAErD;IACA,IAAI,OAAOF,UAAA,CAAWG,KAAK,KAAK,UAAU;MACxC,IAAI,CAACL,QAAA,EAAU;QACb,OAAO;MACT;MACAG,SAAA,GAAY,MAAMH,QAAA,CAAgC;QAChDM,EAAA,EAAIJ,UAAA,CAAWG,KAAK;QACpBE,cAAA,EAAgBL,UAAA,CAAWM;MAC7B;IACF,OAAO;MACLL,SAAA,GAAYD,UAAA,CAAWG,KAAK;IAC9B;IAEA,IAAI,CAACF,SAAA,EAAW;MACd,OAAO;IACT;IAEA,MAAMM,GAAA,GAAMb,UAAA,CACVG,IAAC,CAAKW,MAAM,EAAED,GAAA,IAAmBN,SAAA,EAAgCM,GAAA,IAAO;IAG1E,MAAME,GAAA,GAAMf,UAAA,CAAWO,SAAA,CAAUQ,GAAG,IAAI;IAExC;IACA,IAAI,CAACR,SAAA,CAAUS,QAAQ,CAACC,UAAU,CAAC,UAAU;MAC3C,OAAO,KAAKZ,gBAAA,UAA0BU,GAAA,+BAAkCf,UAAA,CAAWO,SAAA,CAAUW,QAAQ,IAAI,SAAS;IACpH;IAEA;IACA,IAAI,CAACX,SAAA,CAAUY,KAAK,IAAI,CAACC,MAAA,CAAOC,IAAI,CAACd,SAAA,CAAUY,KAAK,EAAEG,MAAM,EAAE;MAC5D,OAAO;cACCjB,gBAAA;iBACGQ,GAAA;oBACGb,UAAA,CAAWuB,MAAA,CAAOhB,SAAA,CAAUiB,MAAM,IAAI;iBACzCT,GAAA;mBACEf,UAAA,CAAWuB,MAAA,CAAOhB,SAAA,CAAUkB,KAAK,IAAI;;OAEjD;IACH;IAEA;IACA,IAAIC,WAAA,GAAc;IAElB,KAAK,MAAMC,IAAA,IAAQpB,SAAA,CAAUY,KAAK,EAAE;MAClC,MAAMS,SAAA,GAAYrB,SAAA,CAAUY,KAAK,CAACQ,IAAA,CAAK;MAEvC,IACE,CAACC,SAAA,IACD,CAACA,SAAA,CAAUH,KAAK,IAChB,CAACG,SAAA,CAAUJ,MAAM,IACjB,CAACI,SAAA,CAAUZ,QAAQ,IACnB,CAACY,SAAA,CAAUC,QAAQ,IACnB,CAACD,SAAA,CAAUV,QAAQ,IACnB,CAACU,SAAA,CAAUb,GAAG,EACd;QACA;MACF;MAEAW,WAAA,IAAe;;+BAEU1B,UAAA,CAAWuB,MAAA,CAAOK,SAAA,CAAUH,KAAK;oBAC5CzB,UAAA,CAAW4B,SAAA,CAAUb,GAAG;kBAC1Bf,UAAA,CAAW4B,SAAA,CAAUZ,QAAQ;;OAExC;IACH;IAEAU,WAAA,IAAe;;eAEJb,GAAA;kBACGb,UAAA,CAAWuB,MAAA,CAAOhB,SAAA,CAAUiB,MAAM,IAAI;eACzCT,GAAA;iBACEf,UAAA,CAAWuB,MAAA,CAAOhB,SAAA,CAAUkB,KAAK,IAAI;;KAEjD;IAED,OAAO,WAAWpB,gBAAA,IAAoBqB,WAAA,YAAuB;EAC/D;AACF","ignoreList":[]}
1
+ {"version":3,"file":"upload.js","names":["escapeHTML","sanitizeUrl","UploadHTMLConverterAsync","upload","node","populate","providedStyleTag","uploadNode","uploadDoc","undefined","value","id","collectionSlug","relationTo","alt","fields","url","mimeType","startsWith","filename","variants","Object","keys","length","String","height","width","pictureHTML","size","imageSize","filesize"],"sources":["../../../../../../src/features/converters/lexicalToHtml/async/converters/upload.ts"],"sourcesContent":["import type { FileData, FileSize, TypeWithID } from 'payload'\n\nimport escapeHTML from 'escape-html'\nimport { sanitizeUrl } from 'payload/shared'\n\nimport type { SerializedUploadNode } from '../../../../../types/nodeTypes.js'\nimport type { UploadData } from '../../../../upload/server/schema.js'\nimport type { HTMLConvertersAsync } from '../types.js'\n\nexport const UploadHTMLConverterAsync: HTMLConvertersAsync<SerializedUploadNode> = {\n upload: async ({ node, populate, providedStyleTag }) => {\n const uploadNode = node as UploadData\n\n let uploadDoc: (FileData & TypeWithID) | undefined = undefined\n\n // If there's no valid upload data, populate return an empty string\n if (typeof uploadNode.value !== 'object') {\n if (!populate) {\n return ''\n }\n uploadDoc = await populate<FileData & TypeWithID>({\n id: uploadNode.value,\n collectionSlug: uploadNode.relationTo,\n })\n } else {\n uploadDoc = uploadNode.value as unknown as FileData & TypeWithID\n }\n\n if (!uploadDoc) {\n return ''\n }\n\n const alt = escapeHTML(\n (node.fields?.alt as string) || (uploadDoc as { alt?: string })?.alt || '',\n )\n\n const url = escapeHTML(sanitizeUrl(uploadDoc.url ?? ''))\n\n // 1) If upload is NOT an image, return a link\n if (!uploadDoc.mimeType.startsWith('image')) {\n return `<a${providedStyleTag} href=\"${url}\" rel=\"noopener noreferrer\">${escapeHTML(uploadDoc.filename ?? '')}</a>`\n }\n\n // 2) If image has no different sizes, return a simple <img />\n if (!uploadDoc.variants || !Object.keys(uploadDoc.variants).length) {\n return `\n <img${providedStyleTag}\n alt=\"${alt}\"\n height=\"${escapeHTML(String(uploadDoc.height ?? ''))}\"\n src=\"${url}\"\n width=\"${escapeHTML(String(uploadDoc.width ?? ''))}\"\n />\n `\n }\n\n // 3) If image has different sizes, build a <picture> element with <source> tags\n let pictureHTML = ''\n\n for (const size in uploadDoc.variants) {\n const imageSize = uploadDoc.variants[size] as FileSize\n\n if (\n !imageSize ||\n !imageSize.width ||\n !imageSize.height ||\n !imageSize.mimeType ||\n !imageSize.filesize ||\n !imageSize.filename ||\n !imageSize.url\n ) {\n continue\n }\n\n pictureHTML += `\n <source\n media=\"(max-width: ${escapeHTML(String(imageSize.width))}px)\"\n srcset=\"${escapeHTML(imageSize.url)}\"\n type=\"${escapeHTML(imageSize.mimeType)}\"\n />\n `\n }\n\n pictureHTML += `\n <img\n alt=\"${alt}\"\n height=\"${escapeHTML(String(uploadDoc.height ?? ''))}\"\n src=\"${url}\"\n width=\"${escapeHTML(String(uploadDoc.width ?? ''))}\"\n />\n `\n\n return `<picture${providedStyleTag}>${pictureHTML}</picture>`\n },\n}\n"],"mappings":"AAEA,OAAOA,UAAA,MAAgB;AACvB,SAASC,WAAW,QAAQ;AAM5B,OAAO,MAAMC,wBAAA,GAAsE;EACjFC,MAAA,EAAQ,MAAAA,CAAO;IAAEC,IAAI;IAAEC,QAAQ;IAAEC;EAAgB,CAAE;IACjD,MAAMC,UAAA,GAAaH,IAAA;IAEnB,IAAII,SAAA,GAAiDC,SAAA;IAErD;IACA,IAAI,OAAOF,UAAA,CAAWG,KAAK,KAAK,UAAU;MACxC,IAAI,CAACL,QAAA,EAAU;QACb,OAAO;MACT;MACAG,SAAA,GAAY,MAAMH,QAAA,CAAgC;QAChDM,EAAA,EAAIJ,UAAA,CAAWG,KAAK;QACpBE,cAAA,EAAgBL,UAAA,CAAWM;MAC7B;IACF,OAAO;MACLL,SAAA,GAAYD,UAAA,CAAWG,KAAK;IAC9B;IAEA,IAAI,CAACF,SAAA,EAAW;MACd,OAAO;IACT;IAEA,MAAMM,GAAA,GAAMd,UAAA,CACVI,IAAC,CAAKW,MAAM,EAAED,GAAA,IAAmBN,SAAA,EAAgCM,GAAA,IAAO;IAG1E,MAAME,GAAA,GAAMhB,UAAA,CAAWC,WAAA,CAAYO,SAAA,CAAUQ,GAAG,IAAI;IAEpD;IACA,IAAI,CAACR,SAAA,CAAUS,QAAQ,CAACC,UAAU,CAAC,UAAU;MAC3C,OAAO,KAAKZ,gBAAA,UAA0BU,GAAA,+BAAkChB,UAAA,CAAWQ,SAAA,CAAUW,QAAQ,IAAI,SAAS;IACpH;IAEA;IACA,IAAI,CAACX,SAAA,CAAUY,QAAQ,IAAI,CAACC,MAAA,CAAOC,IAAI,CAACd,SAAA,CAAUY,QAAQ,EAAEG,MAAM,EAAE;MAClE,OAAO;cACCjB,gBAAA;iBACGQ,GAAA;oBACGd,UAAA,CAAWwB,MAAA,CAAOhB,SAAA,CAAUiB,MAAM,IAAI;iBACzCT,GAAA;mBACEhB,UAAA,CAAWwB,MAAA,CAAOhB,SAAA,CAAUkB,KAAK,IAAI;;OAEjD;IACH;IAEA;IACA,IAAIC,WAAA,GAAc;IAElB,KAAK,MAAMC,IAAA,IAAQpB,SAAA,CAAUY,QAAQ,EAAE;MACrC,MAAMS,SAAA,GAAYrB,SAAA,CAAUY,QAAQ,CAACQ,IAAA,CAAK;MAE1C,IACE,CAACC,SAAA,IACD,CAACA,SAAA,CAAUH,KAAK,IAChB,CAACG,SAAA,CAAUJ,MAAM,IACjB,CAACI,SAAA,CAAUZ,QAAQ,IACnB,CAACY,SAAA,CAAUC,QAAQ,IACnB,CAACD,SAAA,CAAUV,QAAQ,IACnB,CAACU,SAAA,CAAUb,GAAG,EACd;QACA;MACF;MAEAW,WAAA,IAAe;;+BAEU3B,UAAA,CAAWwB,MAAA,CAAOK,SAAA,CAAUH,KAAK;oBAC5C1B,UAAA,CAAW6B,SAAA,CAAUb,GAAG;kBAC1BhB,UAAA,CAAW6B,SAAA,CAAUZ,QAAQ;;OAExC;IACH;IAEAU,WAAA,IAAe;;eAEJb,GAAA;kBACGd,UAAA,CAAWwB,MAAA,CAAOhB,SAAA,CAAUiB,MAAM,IAAI;eACzCT,GAAA;iBACEhB,UAAA,CAAWwB,MAAA,CAAOhB,SAAA,CAAUkB,KAAK,IAAI;;KAEjD;IAED,OAAO,WAAWpB,gBAAA,IAAoBqB,WAAA,YAAuB;EAC/D;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"findConverterForNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/converters/lexicalToHtml/shared/findConverterForNode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAGpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGrE,wBAAgB,oBAAoB,CAClC,WAAW,SAAS,cAAc,GAAG,mBAAmB,EACxD,UAAU,SAAS,aAAa,GAAG,kBAAkB,EACrD,EACA,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,gBAAgB,GACjB,EAAE;IACD,UAAU,EAAE,WAAW,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;IAClC,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;IACrC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,gBAAgB,EAAE,UAAU,CAAA;CAC7B,GAAG;IACF,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAA;IACxC,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;CACzB,CA8EA"}
1
+ {"version":3,"file":"findConverterForNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/converters/lexicalToHtml/shared/findConverterForNode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAGpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGrE,wBAAgB,oBAAoB,CAClC,WAAW,SAAS,cAAc,GAAG,mBAAmB,EACxD,UAAU,SAAS,aAAa,GAAG,kBAAkB,EACrD,EACA,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,gBAAgB,GACjB,EAAE;IACD,UAAU,EAAE,WAAW,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;IAClC,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;IACrC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,gBAAgB,EAAE,UAAU,CAAA;CAC7B,GAAG;IACF,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAA;IACxC,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;CACzB,CA6EA"}