@payloadcms/richtext-lexical 3.68.0-internal-debug.2eb12b9 → 3.68.0-internal-debug.dafc24d

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 (306) hide show
  1. package/dist/cell/rscEntry.js +13 -5
  2. package/dist/cell/rscEntry.js.map +1 -1
  3. package/dist/features/blocks/client/component/BlockContent.js +29 -9
  4. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  5. package/dist/features/blocks/client/component/components/BlockCollapsible.js +7 -3
  6. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
  7. package/dist/features/blocks/client/component/components/BlockEditButton.js +6 -2
  8. package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -1
  9. package/dist/features/blocks/client/component/components/BlockRemoveButton.js +6 -2
  10. package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -1
  11. package/dist/features/blocks/client/component/index.js +124 -43
  12. package/dist/features/blocks/client/component/index.js.map +1 -1
  13. package/dist/features/blocks/client/component/index.scss +188 -0
  14. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +7 -3
  15. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -1
  16. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +6 -2
  17. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -1
  18. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +6 -2
  19. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -1
  20. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +6 -2
  21. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -1
  22. package/dist/features/blocks/client/componentInline/index.js +118 -37
  23. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  24. package/dist/features/blocks/client/componentInline/index.scss +90 -0
  25. package/dist/features/blocks/client/getBlockImageComponent.js +7 -3
  26. package/dist/features/blocks/client/getBlockImageComponent.js.map +1 -1
  27. package/dist/features/blocks/client/markdown/markdownTransformer.js +1 -0
  28. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  29. package/dist/features/blocks/client/nodes/BlocksNode.js +7 -3
  30. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  31. package/dist/features/blocks/client/nodes/InlineBlocksNode.js +7 -3
  32. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  33. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +88 -27
  34. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  35. package/dist/features/blocks/premade/CodeBlock/Component/Code.js +7 -3
  36. package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
  37. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +13 -4
  38. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
  39. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.scss +6 -0
  40. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +19 -6
  41. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
  42. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.scss +29 -0
  43. package/dist/features/blocks/premade/CodeBlock/Component/index.scss +97 -0
  44. package/dist/features/blocks/server/markdown/markdownTransformer.js +1 -0
  45. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  46. package/dist/features/converters/lexicalToJSX/Component/index.js +9 -5
  47. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  48. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js +7 -3
  49. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  50. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +7 -3
  51. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  52. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js +6 -2
  53. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  54. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js +6 -2
  55. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  56. package/dist/features/converters/lexicalToJSX/converter/converters/link.js +13 -5
  57. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  58. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +38 -14
  59. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  60. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js +18 -6
  61. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  62. package/dist/features/converters/lexicalToJSX/converter/converters/table.js +31 -11
  63. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  64. package/dist/features/converters/lexicalToJSX/converter/converters/text.js +43 -15
  65. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  66. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +31 -11
  67. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  68. package/dist/features/converters/lexicalToJSX/converter/index.js +8 -4
  69. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  70. package/dist/features/debug/jsxConverter/client/plugin/index.js +14 -5
  71. package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
  72. package/dist/features/debug/jsxConverter/client/plugin/style.scss +12 -0
  73. package/dist/features/debug/testRecorder/client/plugin/index.js +62 -21
  74. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  75. package/dist/features/debug/testRecorder/client/plugin/index.scss +53 -0
  76. package/dist/features/debug/treeView/client/plugin/index.js +8 -3
  77. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
  78. package/dist/features/debug/treeView/client/plugin/index.scss +80 -0
  79. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +225 -72
  80. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  81. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.scss +87 -0
  82. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +32 -11
  83. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  84. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.scss +11 -0
  85. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +21 -9
  86. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  87. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +26 -9
  88. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  89. package/dist/features/experimental_table/client/plugins/TablePlugin/index.scss +233 -0
  90. package/dist/features/horizontalRule/client/plugin/index.js +1 -0
  91. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  92. package/dist/features/horizontalRule/client/plugin/index.scss +23 -0
  93. package/dist/features/indent/client/IndentPlugin.js +6 -2
  94. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  95. package/dist/features/link/client/plugins/autoLink/index.js +3 -0
  96. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  97. package/dist/features/link/client/plugins/clickableLink/index.js +6 -2
  98. package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
  99. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +76 -24
  100. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  101. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +8 -3
  102. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  103. package/dist/features/link/client/plugins/floatingLinkEditor/index.scss +92 -0
  104. package/dist/features/link/server/baseFields.js +1 -0
  105. package/dist/features/link/server/baseFields.js.map +1 -1
  106. package/dist/features/lists/checklist/client/plugin/index.js +6 -2
  107. package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
  108. package/dist/features/lists/plugin/index.js +6 -2
  109. package/dist/features/lists/plugin/index.js.map +1 -1
  110. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +14 -5
  111. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  112. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +7 -3
  113. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  114. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +16 -0
  115. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +14 -5
  116. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  117. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +7 -3
  118. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  119. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +16 -0
  120. package/dist/features/relationship/client/components/RelationshipComponent.js +56 -19
  121. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  122. package/dist/features/relationship/client/components/index.scss +95 -0
  123. package/dist/features/relationship/client/drawer/index.js +18 -6
  124. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  125. package/dist/features/relationship/client/nodes/RelationshipNode.js +7 -3
  126. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  127. package/dist/features/relationship/client/plugins/index.js +7 -3
  128. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  129. package/dist/features/textState/feature.client.js +18 -6
  130. package/dist/features/textState/feature.client.js.map +1 -1
  131. package/dist/features/toolbars/fixed/client/Toolbar/index.js +72 -23
  132. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  133. package/dist/features/toolbars/fixed/client/Toolbar/index.scss +113 -0
  134. package/dist/features/toolbars/inline/client/Toolbar/index.js +72 -23
  135. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  136. package/dist/features/toolbars/inline/client/Toolbar/index.scss +58 -0
  137. package/dist/features/toolbars/shared/ToolbarButton/index.js +8 -3
  138. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  139. package/dist/features/toolbars/shared/ToolbarButton/index.scss +46 -0
  140. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +60 -20
  141. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  142. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +37 -12
  143. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  144. package/dist/features/toolbars/shared/ToolbarDropdown/index.scss +129 -0
  145. package/dist/features/upload/client/component/index.js +92 -31
  146. package/dist/features/upload/client/component/index.js.map +1 -1
  147. package/dist/features/upload/client/component/index.scss +191 -0
  148. package/dist/features/upload/client/component/pending/index.js +14 -5
  149. package/dist/features/upload/client/component/pending/index.js.map +1 -1
  150. package/dist/features/upload/client/drawer/index.js +18 -6
  151. package/dist/features/upload/client/drawer/index.js.map +1 -1
  152. package/dist/features/upload/client/nodes/UploadNode.js +12 -4
  153. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  154. package/dist/features/upload/client/plugin/index.js +7 -3
  155. package/dist/features/upload/client/plugin/index.js.map +1 -1
  156. package/dist/field/Diff/converters/listitem/index.js +37 -12
  157. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  158. package/dist/field/Diff/converters/listitem/index.scss +47 -0
  159. package/dist/field/Diff/converters/relationship/index.js +37 -12
  160. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  161. package/dist/field/Diff/converters/relationship/index.scss +73 -0
  162. package/dist/field/Diff/converters/unknown/index.js +31 -10
  163. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  164. package/dist/field/Diff/converters/unknown/index.scss +40 -0
  165. package/dist/field/Diff/converters/upload/index.js +60 -19
  166. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  167. package/dist/field/Diff/converters/upload/index.scss +115 -0
  168. package/dist/field/Diff/index.js +8 -3
  169. package/dist/field/Diff/index.js.map +1 -1
  170. package/dist/field/Diff/index.scss +102 -0
  171. package/dist/field/Field.js +81 -27
  172. package/dist/field/Field.js.map +1 -1
  173. package/dist/field/RenderLexical/index.js +36 -12
  174. package/dist/field/RenderLexical/index.js.map +1 -1
  175. package/dist/field/index.js +19 -7
  176. package/dist/field/index.js.map +1 -1
  177. package/dist/field/index.scss +41 -0
  178. package/dist/field/rscEntry.js +7 -3
  179. package/dist/field/rscEntry.js.map +1 -1
  180. package/dist/index.js +2 -0
  181. package/dist/index.js.map +1 -1
  182. package/dist/lexical/EditorPlugin.js +13 -5
  183. package/dist/lexical/EditorPlugin.js.map +1 -1
  184. package/dist/lexical/LexicalEditor.js +163 -50
  185. package/dist/lexical/LexicalEditor.js.map +1 -1
  186. package/dist/lexical/LexicalEditor.scss +54 -0
  187. package/dist/lexical/LexicalProvider.js +49 -17
  188. package/dist/lexical/LexicalProvider.js.map +1 -1
  189. package/dist/lexical/config/client/EditorConfigProvider.js +7 -3
  190. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  191. package/dist/lexical/plugins/DecoratorPlugin/index.js +1 -0
  192. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  193. package/dist/lexical/plugins/DecoratorPlugin/index.scss +13 -0
  194. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +20 -7
  195. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  196. package/dist/lexical/plugins/InsertParagraphAtEnd/index.scss +54 -0
  197. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -0
  198. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  199. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +7 -3
  200. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  201. package/dist/lexical/plugins/SlashMenu/index.js +50 -16
  202. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  203. package/dist/lexical/plugins/SlashMenu/index.scss +68 -0
  204. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +20 -7
  205. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  206. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +35 -0
  207. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +32 -11
  208. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  209. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.scss +80 -0
  210. package/dist/lexical/theme/EditorTheme.scss +357 -0
  211. package/dist/lexical/ui/ContentEditable.js +14 -5
  212. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  213. package/dist/lexical/ui/ContentEditable.scss +105 -0
  214. package/dist/lexical/ui/icons/AI/index.js +37 -13
  215. package/dist/lexical/ui/icons/AI/index.js.map +1 -1
  216. package/dist/lexical/ui/icons/Add/index.js +19 -7
  217. package/dist/lexical/ui/icons/Add/index.js.map +1 -1
  218. package/dist/lexical/ui/icons/AlignCenter/index.js +25 -9
  219. package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
  220. package/dist/lexical/ui/icons/AlignJustify/index.js +25 -9
  221. package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
  222. package/dist/lexical/ui/icons/AlignLeft/index.js +25 -9
  223. package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
  224. package/dist/lexical/ui/icons/AlignRight/index.js +25 -9
  225. package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
  226. package/dist/lexical/ui/icons/Block/index.js +25 -9
  227. package/dist/lexical/ui/icons/Block/index.js.map +1 -1
  228. package/dist/lexical/ui/icons/Blockquote/index.js +13 -5
  229. package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
  230. package/dist/lexical/ui/icons/Bold/index.js +13 -5
  231. package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
  232. package/dist/lexical/ui/icons/Checklist/index.js +19 -7
  233. package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
  234. package/dist/lexical/ui/icons/Code/index.js +19 -7
  235. package/dist/lexical/ui/icons/Code/index.js.map +1 -1
  236. package/dist/lexical/ui/icons/CodeBlock/index.js +13 -5
  237. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
  238. package/dist/lexical/ui/icons/Collapse/index.js +13 -5
  239. package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
  240. package/dist/lexical/ui/icons/H1/index.js +13 -5
  241. package/dist/lexical/ui/icons/H1/index.js.map +1 -1
  242. package/dist/lexical/ui/icons/H2/index.js +13 -5
  243. package/dist/lexical/ui/icons/H2/index.js.map +1 -1
  244. package/dist/lexical/ui/icons/H3/index.js +13 -5
  245. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  246. package/dist/lexical/ui/icons/H4/index.js +13 -5
  247. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  248. package/dist/lexical/ui/icons/H5/index.js +13 -5
  249. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  250. package/dist/lexical/ui/icons/H6/index.js +13 -5
  251. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  252. package/dist/lexical/ui/icons/HorizontalRule/index.js +13 -5
  253. package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
  254. package/dist/lexical/ui/icons/IndentDecrease/index.js +31 -11
  255. package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
  256. package/dist/lexical/ui/icons/IndentIncrease/index.js +31 -11
  257. package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
  258. package/dist/lexical/ui/icons/InlineBlocks/index.js +13 -5
  259. package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
  260. package/dist/lexical/ui/icons/Italic/index.js +13 -5
  261. package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
  262. package/dist/lexical/ui/icons/Link/index.js +13 -5
  263. package/dist/lexical/ui/icons/Link/index.js.map +1 -1
  264. package/dist/lexical/ui/icons/Meatballs/index.js +25 -9
  265. package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
  266. package/dist/lexical/ui/icons/OrderedList/index.js +37 -13
  267. package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
  268. package/dist/lexical/ui/icons/Relationship/index.js +37 -13
  269. package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
  270. package/dist/lexical/ui/icons/Strikethrough/index.js +19 -7
  271. package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
  272. package/dist/lexical/ui/icons/Subscript/index.js +13 -5
  273. package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
  274. package/dist/lexical/ui/icons/Superscript/index.js +13 -5
  275. package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
  276. package/dist/lexical/ui/icons/Table/index.js +13 -5
  277. package/dist/lexical/ui/icons/Table/index.js.map +1 -1
  278. package/dist/lexical/ui/icons/Text/index.js +13 -5
  279. package/dist/lexical/ui/icons/Text/index.js.map +1 -1
  280. package/dist/lexical/ui/icons/TextState/index.js +7 -3
  281. package/dist/lexical/ui/icons/TextState/index.js.map +1 -1
  282. package/dist/lexical/ui/icons/Underline/index.js +19 -7
  283. package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
  284. package/dist/lexical/ui/icons/UnorderedList/index.js +43 -15
  285. package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
  286. package/dist/lexical/ui/icons/Upload/index.js +25 -9
  287. package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
  288. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +2 -0
  289. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +1 -1
  290. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +2 -0
  291. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +1 -1
  292. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +2 -0
  293. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +1 -1
  294. package/dist/utilities/fieldsDrawer/Drawer.js +19 -7
  295. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  296. package/dist/utilities/fieldsDrawer/DrawerContent.js +19 -7
  297. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  298. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +7 -3
  299. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  300. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +7 -3
  301. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
  302. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +2 -0
  303. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  304. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +2 -0
  305. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  306. package/package.json +8 -7
@@ -0,0 +1,29 @@
1
+ @import '~@payloadcms/ui/scss';
2
+
3
+ .code-block-floating-collapse-button {
4
+ all: unset;
5
+ cursor: pointer;
6
+
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ box-sizing: border-box;
11
+ gap: base(0.5);
12
+
13
+ position: absolute;
14
+ left: 50%;
15
+ transform: translateX(-50%);
16
+ height: 24px;
17
+ bottom: -12px;
18
+
19
+ padding: base(0.2) base(0.4);
20
+ border-radius: $style-radius-s;
21
+
22
+ background: var(--theme-elevation-150);
23
+ color: var(--theme-elevation-600);
24
+
25
+ &:hover {
26
+ background: var(--theme-elevation-200);
27
+ color: var(--theme-elevation-800);
28
+ }
29
+ }
@@ -0,0 +1,97 @@
1
+ @import '~@payloadcms/ui/scss';
2
+
3
+ .payload-richtext-code-block.collapsible--collapsed {
4
+ .rah-static {
5
+ height: unset !important;
6
+ max-height: 150px !important;
7
+ position: relative;
8
+
9
+ &::after {
10
+ content: '';
11
+ pointer-events: none;
12
+ background: linear-gradient(
13
+ to bottom,
14
+ rgb(0 0 0 / 0%) 0%,
15
+ var(--theme-elevation-50) 90%,
16
+ var(--theme-elevation-50) 100%
17
+ );
18
+ position: absolute;
19
+ height: 100px;
20
+ top: 50px;
21
+ left: 0;
22
+ right: 0;
23
+ }
24
+
25
+ > div {
26
+ display: unset !important;
27
+ }
28
+ }
29
+ }
30
+
31
+ .payload-richtext-code-block {
32
+ &__pill {
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ margin-right: base(0.4);
37
+ margin-left: base(0.4);
38
+ color: var(--theme-elevation-500);
39
+ }
40
+
41
+ .collapsible__header-wrap {
42
+ overflow: visible;
43
+ }
44
+ .collapsible__content {
45
+ padding: 0;
46
+ }
47
+
48
+ .LexicalEditorTheme__block {
49
+ &__block-header {
50
+ overflow: visible;
51
+ }
52
+ }
53
+
54
+ .code-editor,
55
+ .monaco-editor,
56
+ .overflow-guard {
57
+ border-width: 0;
58
+ border-radius: 0 0 $style-radius-s $style-radius-s;
59
+ }
60
+
61
+ &__actions {
62
+ display: flex;
63
+ flex-direction: row;
64
+ gap: calc(var(--base) * 0.4);
65
+ }
66
+
67
+ .popup-button {
68
+ padding: 0 0 0 calc(var(--base) * 0.2);
69
+ }
70
+
71
+ .copy-to-clipboard,
72
+ .code-block-collapse-button,
73
+ .popup-button {
74
+ border-radius: $style-radius-s;
75
+ color: var(--theme-elevation-500);
76
+ min-width: 24px;
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+
81
+ &:hover {
82
+ color: var(--theme-elevation-800);
83
+ background-color: var(--theme-elevation-200);
84
+ }
85
+ }
86
+
87
+ &__language-selector {
88
+ pointer-events: all;
89
+
90
+ &-button {
91
+ display: flex;
92
+ flex-direction: row;
93
+ width: max-content;
94
+ align-items: center;
95
+ }
96
+ }
97
+ }
@@ -294,6 +294,7 @@ function getMarkdownTransformerForBlock(block, isInlineBlock) {
294
294
  const children = $parseSerializedNode(nextNodes[0])?.getChildren();
295
295
  if (children?.length) {
296
296
  for (const child of children){
297
+ ;
297
298
  lastChild.append(child);
298
299
  }
299
300
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/features/blocks/server/markdown/markdownTransformer.ts"],"sourcesContent":["import type { ElementNode, SerializedLexicalNode } from 'lexical'\nimport type { Block } from 'payload'\n\nimport { $parseSerializedNode } from 'lexical'\n\nimport type { NodeWithHooks } from '../../../typesServer.js'\n\nimport { getEnabledNodesFromServerNodes } from '../../../../lexical/nodes/index.js'\nimport {\n type MultilineElementTransformer,\n type TextMatchTransformer,\n type Transformer,\n} from '../../../../packages/@lexical/markdown/index.js'\nimport { extractPropsFromJSXPropsString } from '../../../../utilities/jsx/extractPropsFromJSXPropsString.js'\nimport { propsToJSXString } from '../../../../utilities/jsx/jsx.js'\nimport { getLexicalToMarkdown } from '../../client/markdown/getLexicalToMarkdown.js'\nimport { getMarkdownToLexical } from '../../client/markdown/getMarkdownToLexical.js'\nimport { $createServerBlockNode, $isServerBlockNode, ServerBlockNode } from '../nodes/BlocksNode.js'\nimport {\n $createServerInlineBlockNode,\n $isServerInlineBlockNode,\n ServerInlineBlockNode,\n} from '../nodes/InlineBlocksNode.js'\nimport { linesFromStartToContentAndPropsString } from './linesFromMatchToContentAndPropsString.js'\n\nexport function createTagRegexes(tagName: string) {\n const escapedTagName = tagName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n // Regex components\n const openingTag = `<${escapedTagName}`\n const closingTag = `</${escapedTagName}`\n const optionalWhitespace = `\\\\s*`\n const mandatoryClosingBracket = `>`\n\n // Assembled regex patterns\n const startPattern = `${openingTag}(?=\\\\s|>|$)` // Only match the tag name\n const endPattern = `${closingTag}${optionalWhitespace}${mandatoryClosingBracket}`\n\n return {\n regExpEnd: new RegExp(endPattern, 'i'),\n regExpStart: new RegExp(startPattern, 'i'),\n }\n}\nexport const getBlockMarkdownTransformers = ({\n blocks,\n inlineBlocks,\n}: {\n blocks: Block[]\n inlineBlocks: Block[]\n}): ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n}) => MultilineElementTransformer | TextMatchTransformer)[] => {\n if (!blocks?.length && !inlineBlocks?.length) {\n return []\n }\n\n let transformers: ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer)[] = []\n\n if (blocks?.length) {\n for (const block of blocks) {\n const transformer = getMarkdownTransformerForBlock(block, false)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n if (inlineBlocks?.length) {\n for (const block of inlineBlocks) {\n const transformer = getMarkdownTransformerForBlock(block, true)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n return transformers\n}\n\nfunction getMarkdownTransformerForBlock(\n block: Block,\n isInlineBlock: boolean,\n): Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n> | null {\n if (!block.jsx) {\n return null\n }\n\n const regex = createTagRegexes(block.slug)\n const toReturn: Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n > = []\n\n if (isInlineBlock) {\n toReturn.push(({ allNodes, allTransformers }) => ({\n type: 'text-match',\n dependencies: [ServerInlineBlockNode],\n export: (node) => {\n if (!$isServerInlineBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>${exportResult.children}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n getEndIndex: (node, match) => {\n const { endlineLastCharIndex } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: match,\n trimChildren: false,\n })\n\n return endlineLastCharIndex\n },\n importRegExp: block.jsx?.customStartRegex ?? regex.regExpStart,\n regExp: /___ignoreignoreignore___/g,\n replace(node, match) {\n const { content, propsString } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: {\n ...match,\n index: 0,\n },\n trimChildren: false,\n })\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return\n }\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: match,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return\n }\n\n const inlineBlockNode = $createServerInlineBlockNode({\n blockType: block.slug,\n ...(blockFields as any),\n })\n\n node.replace(inlineBlockNode)\n },\n }))\n\n return toReturn\n }\n\n toReturn.push(({ allNodes, allTransformers }) => ({\n dependencies: [ServerBlockNode],\n export: (node) => {\n if (!$isServerBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n const children = exportResult.children\n let sanitizedChildren = ''\n\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (children.includes('\\n')) {\n for (const child of children.split('\\n')) {\n let sanitizedChild = ''\n if (!block?.jsx?.doNotTrimChildren && child !== '') {\n sanitizedChild = ' '\n }\n sanitizedChild += child + '\\n'\n\n sanitizedChildren += sanitizedChild\n }\n } else {\n sanitizedChildren = (block?.jsx?.doNotTrimChildren ? '' : ' ') + children + '\\n'\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>\\n${sanitizedChildren}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n handleImportAfterStartMatch: block.jsx?.customEndRegex\n ? undefined\n : ({ lines, rootNode, startLineIndex, startMatch, transformer }) => {\n const regexpEndRegex: RegExp | undefined =\n typeof transformer.regExpEnd === 'object' && 'regExp' in transformer.regExpEnd\n ? transformer.regExpEnd.regExp\n : transformer.regExpEnd\n\n const isEndOptional =\n transformer.regExpEnd &&\n typeof transformer.regExpEnd === 'object' &&\n 'optional' in transformer.regExpEnd\n ? transformer.regExpEnd.optional\n : !transformer.regExpEnd\n\n const {\n afterEndLine,\n beforeStartLine,\n content: unsanitizedContent,\n endLineIndex,\n propsString,\n } = linesFromStartToContentAndPropsString({\n isEndOptional,\n lines,\n regexpEndRegex,\n startLineIndex,\n startMatch,\n trimChildren: false,\n })\n\n let content = ''\n\n if (block?.jsx?.doNotTrimChildren) {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n } else {\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (unsanitizedContent.includes('\\n')) {\n const split = unsanitizedContent.split('\\n')\n let index = 0\n for (const child of split) {\n index++\n\n if (child.startsWith(' ')) {\n content += child.slice(2)\n } else {\n // If one child is misaligned, skip aligning completely, unless it's just empty\n if (child === '') {\n content += child\n } else {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n break\n }\n }\n\n content += index === split.length ? '' : '\\n'\n }\n } else {\n content =\n (!unsanitizedContent.startsWith(' ')\n ? unsanitizedContent\n : unsanitizedContent.slice(2)) + '\\n'\n }\n }\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return [false, startLineIndex]\n }\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: startMatch,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return [false, startLineIndex]\n }\n\n const node = $createServerBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n // Now handle beforeStartLine and afterEndLine. If those are not empty, we need to add them as text nodes before and after the block node.\n // However, those themselves can contain other markdown matches, so we need to parse them as well.\n // Example where this is needed: \"Hello <InlineCode>inline code</InlineCode> test.\"\n let prevNodes: null | SerializedLexicalNode[] = null\n let nextNodes: null | SerializedLexicalNode[] = null\n // TODO: Might not need this prevNodes and nextNodes handling if inline nodes are handled by textmatch transformers\n\n if (beforeStartLine?.length) {\n prevNodes = markdownToLexical({ markdown: beforeStartLine })?.root?.children ?? []\n\n const firstPrevNode = prevNodes?.[0]\n if (firstPrevNode) {\n rootNode.append($parseSerializedNode(firstPrevNode))\n }\n }\n\n rootNode.append(node)\n\n if (afterEndLine?.length) {\n nextNodes = markdownToLexical({ markdown: afterEndLine })?.root?.children\n const lastChild = rootNode.getChildren()[rootNode.getChildren().length - 1]\n\n const children = ($parseSerializedNode(nextNodes[0]!) as ElementNode)?.getChildren()\n if (children?.length) {\n for (const child of children) {\n ;(lastChild as ElementNode).append(child)\n }\n }\n }\n }\n\n return [true, endLineIndex]\n },\n regExpEnd: block.jsx?.customEndRegex ?? regex.regExpEnd,\n regExpStart: block.jsx?.customStartRegex ?? regex.regExpStart,\n // This replace is ONLY run for ``` code blocks (so any blocks with custom start and end regexes). For others, we use the special JSX handling above:\n type: 'multiline-element',\n replace: (rootNode, children, openMatch, closeMatch, linesInBetween) => {\n if (block?.jsx?.import) {\n if (!linesInBetween) {\n // convert children to linesInBetween\n let line = ''\n if (children) {\n for (const child of children) {\n line += child.getTextContent()\n }\n }\n\n linesInBetween = [line]\n }\n\n let childrenString = ''\n if (block?.jsx?.doNotTrimChildren) {\n childrenString = linesInBetween.join('\\n')\n } else {\n childrenString = linesInBetween.join('\\n').trim()\n }\n\n const propsString = openMatch[1]?.trim()\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: childrenString,\n closeMatch: closeMatch as RegExpMatchArray,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: openMatch as RegExpMatchArray,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return false\n }\n\n const node = $createServerBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n rootNode.append(node)\n }\n\n return\n }\n return false // Run next transformer\n },\n }))\n\n return toReturn\n}\n"],"names":["$parseSerializedNode","getEnabledNodesFromServerNodes","extractPropsFromJSXPropsString","propsToJSXString","getLexicalToMarkdown","getMarkdownToLexical","$createServerBlockNode","$isServerBlockNode","ServerBlockNode","$createServerInlineBlockNode","$isServerInlineBlockNode","ServerInlineBlockNode","linesFromStartToContentAndPropsString","createTagRegexes","tagName","escapedTagName","replace","openingTag","closingTag","optionalWhitespace","mandatoryClosingBracket","startPattern","endPattern","regExpEnd","RegExp","regExpStart","getBlockMarkdownTransformers","blocks","inlineBlocks","length","transformers","block","transformer","getMarkdownTransformerForBlock","concat","isInlineBlock","jsx","regex","slug","toReturn","push","allNodes","allTransformers","type","dependencies","export","node","getFields","blockType","toLowerCase","nodeFields","lexicalToMarkdown","nodes","exportResult","fields","hasProps","props","Object","keys","children","getEndIndex","match","endlineLastCharIndex","isEndOptional","lines","getTextContent","regexpEndRegex","startLineIndex","startMatch","trimChildren","importRegExp","customStartRegex","regExp","content","propsString","index","import","markdownToLexical","blockFields","closeMatch","htmlToLexical","openMatch","inlineBlockNode","sanitizedChildren","includes","child","split","sanitizedChild","doNotTrimChildren","handleImportAfterStartMatch","customEndRegex","undefined","rootNode","optional","afterEndLine","beforeStartLine","unsanitizedContent","endLineIndex","endsWith","slice","startsWith","prevNodes","nextNodes","markdown","root","firstPrevNode","append","lastChild","getChildren","linesInBetween","line","childrenString","join","trim"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/features/blocks/server/markdown/markdownTransformer.ts"],"sourcesContent":["import type { ElementNode, SerializedLexicalNode } from 'lexical'\nimport type { Block } from 'payload'\n\nimport { $parseSerializedNode } from 'lexical'\n\nimport type { NodeWithHooks } from '../../../typesServer.js'\n\nimport { getEnabledNodesFromServerNodes } from '../../../../lexical/nodes/index.js'\nimport {\n type MultilineElementTransformer,\n type TextMatchTransformer,\n type Transformer,\n} from '../../../../packages/@lexical/markdown/index.js'\nimport { extractPropsFromJSXPropsString } from '../../../../utilities/jsx/extractPropsFromJSXPropsString.js'\nimport { propsToJSXString } from '../../../../utilities/jsx/jsx.js'\nimport { getLexicalToMarkdown } from '../../client/markdown/getLexicalToMarkdown.js'\nimport { getMarkdownToLexical } from '../../client/markdown/getMarkdownToLexical.js'\nimport { $createServerBlockNode, $isServerBlockNode, ServerBlockNode } from '../nodes/BlocksNode.js'\nimport {\n $createServerInlineBlockNode,\n $isServerInlineBlockNode,\n ServerInlineBlockNode,\n} from '../nodes/InlineBlocksNode.js'\nimport { linesFromStartToContentAndPropsString } from './linesFromMatchToContentAndPropsString.js'\n\nexport function createTagRegexes(tagName: string) {\n const escapedTagName = tagName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n // Regex components\n const openingTag = `<${escapedTagName}`\n const closingTag = `</${escapedTagName}`\n const optionalWhitespace = `\\\\s*`\n const mandatoryClosingBracket = `>`\n\n // Assembled regex patterns\n const startPattern = `${openingTag}(?=\\\\s|>|$)` // Only match the tag name\n const endPattern = `${closingTag}${optionalWhitespace}${mandatoryClosingBracket}`\n\n return {\n regExpEnd: new RegExp(endPattern, 'i'),\n regExpStart: new RegExp(startPattern, 'i'),\n }\n}\nexport const getBlockMarkdownTransformers = ({\n blocks,\n inlineBlocks,\n}: {\n blocks: Block[]\n inlineBlocks: Block[]\n}): ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n}) => MultilineElementTransformer | TextMatchTransformer)[] => {\n if (!blocks?.length && !inlineBlocks?.length) {\n return []\n }\n\n let transformers: ((props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer)[] = []\n\n if (blocks?.length) {\n for (const block of blocks) {\n const transformer = getMarkdownTransformerForBlock(block, false)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n if (inlineBlocks?.length) {\n for (const block of inlineBlocks) {\n const transformer = getMarkdownTransformerForBlock(block, true)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n return transformers\n}\n\nfunction getMarkdownTransformerForBlock(\n block: Block,\n isInlineBlock: boolean,\n): Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n> | null {\n if (!block.jsx) {\n return null\n }\n\n const regex = createTagRegexes(block.slug)\n const toReturn: Array<\n (props: {\n allNodes: Array<NodeWithHooks>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n > = []\n\n if (isInlineBlock) {\n toReturn.push(({ allNodes, allTransformers }) => ({\n type: 'text-match',\n dependencies: [ServerInlineBlockNode],\n export: (node) => {\n if (!$isServerInlineBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>${exportResult.children}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n getEndIndex: (node, match) => {\n const { endlineLastCharIndex } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: match,\n trimChildren: false,\n })\n\n return endlineLastCharIndex\n },\n importRegExp: block.jsx?.customStartRegex ?? regex.regExpStart,\n regExp: /___ignoreignoreignore___/g,\n replace(node, match) {\n const { content, propsString } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: {\n ...match,\n index: 0,\n },\n trimChildren: false,\n })\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return\n }\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: match,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return\n }\n\n const inlineBlockNode = $createServerInlineBlockNode({\n blockType: block.slug,\n ...(blockFields as any),\n })\n\n node.replace(inlineBlockNode)\n },\n }))\n\n return toReturn\n }\n\n toReturn.push(({ allNodes, allTransformers }) => ({\n dependencies: [ServerBlockNode],\n export: (node) => {\n if (!$isServerBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n const children = exportResult.children\n let sanitizedChildren = ''\n\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (children.includes('\\n')) {\n for (const child of children.split('\\n')) {\n let sanitizedChild = ''\n if (!block?.jsx?.doNotTrimChildren && child !== '') {\n sanitizedChild = ' '\n }\n sanitizedChild += child + '\\n'\n\n sanitizedChildren += sanitizedChild\n }\n } else {\n sanitizedChildren = (block?.jsx?.doNotTrimChildren ? '' : ' ') + children + '\\n'\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>\\n${sanitizedChildren}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n handleImportAfterStartMatch: block.jsx?.customEndRegex\n ? undefined\n : ({ lines, rootNode, startLineIndex, startMatch, transformer }) => {\n const regexpEndRegex: RegExp | undefined =\n typeof transformer.regExpEnd === 'object' && 'regExp' in transformer.regExpEnd\n ? transformer.regExpEnd.regExp\n : transformer.regExpEnd\n\n const isEndOptional =\n transformer.regExpEnd &&\n typeof transformer.regExpEnd === 'object' &&\n 'optional' in transformer.regExpEnd\n ? transformer.regExpEnd.optional\n : !transformer.regExpEnd\n\n const {\n afterEndLine,\n beforeStartLine,\n content: unsanitizedContent,\n endLineIndex,\n propsString,\n } = linesFromStartToContentAndPropsString({\n isEndOptional,\n lines,\n regexpEndRegex,\n startLineIndex,\n startMatch,\n trimChildren: false,\n })\n\n let content = ''\n\n if (block?.jsx?.doNotTrimChildren) {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n } else {\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (unsanitizedContent.includes('\\n')) {\n const split = unsanitizedContent.split('\\n')\n let index = 0\n for (const child of split) {\n index++\n\n if (child.startsWith(' ')) {\n content += child.slice(2)\n } else {\n // If one child is misaligned, skip aligning completely, unless it's just empty\n if (child === '') {\n content += child\n } else {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n break\n }\n }\n\n content += index === split.length ? '' : '\\n'\n }\n } else {\n content =\n (!unsanitizedContent.startsWith(' ')\n ? unsanitizedContent\n : unsanitizedContent.slice(2)) + '\\n'\n }\n }\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return [false, startLineIndex]\n }\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: startMatch,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return [false, startLineIndex]\n }\n\n const node = $createServerBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n // Now handle beforeStartLine and afterEndLine. If those are not empty, we need to add them as text nodes before and after the block node.\n // However, those themselves can contain other markdown matches, so we need to parse them as well.\n // Example where this is needed: \"Hello <InlineCode>inline code</InlineCode> test.\"\n let prevNodes: null | SerializedLexicalNode[] = null\n let nextNodes: null | SerializedLexicalNode[] = null\n // TODO: Might not need this prevNodes and nextNodes handling if inline nodes are handled by textmatch transformers\n\n if (beforeStartLine?.length) {\n prevNodes = markdownToLexical({ markdown: beforeStartLine })?.root?.children ?? []\n\n const firstPrevNode = prevNodes?.[0]\n if (firstPrevNode) {\n rootNode.append($parseSerializedNode(firstPrevNode))\n }\n }\n\n rootNode.append(node)\n\n if (afterEndLine?.length) {\n nextNodes = markdownToLexical({ markdown: afterEndLine })?.root?.children\n const lastChild = rootNode.getChildren()[rootNode.getChildren().length - 1]\n\n const children = ($parseSerializedNode(nextNodes[0]!) as ElementNode)?.getChildren()\n if (children?.length) {\n for (const child of children) {\n ;(lastChild as ElementNode).append(child)\n }\n }\n }\n }\n\n return [true, endLineIndex]\n },\n regExpEnd: block.jsx?.customEndRegex ?? regex.regExpEnd,\n regExpStart: block.jsx?.customStartRegex ?? regex.regExpStart,\n // This replace is ONLY run for ``` code blocks (so any blocks with custom start and end regexes). For others, we use the special JSX handling above:\n type: 'multiline-element',\n replace: (rootNode, children, openMatch, closeMatch, linesInBetween) => {\n if (block?.jsx?.import) {\n if (!linesInBetween) {\n // convert children to linesInBetween\n let line = ''\n if (children) {\n for (const child of children) {\n line += child.getTextContent()\n }\n }\n\n linesInBetween = [line]\n }\n\n let childrenString = ''\n if (block?.jsx?.doNotTrimChildren) {\n childrenString = linesInBetween.join('\\n')\n } else {\n childrenString = linesInBetween.join('\\n').trim()\n }\n\n const propsString = openMatch[1]?.trim()\n\n const markdownToLexical = getMarkdownToLexical(\n getEnabledNodesFromServerNodes({\n nodes: allNodes,\n }),\n allTransformers,\n )\n\n const blockFields = block.jsx.import({\n children: childrenString,\n closeMatch: closeMatch as RegExpMatchArray,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: openMatch as RegExpMatchArray,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return false\n }\n\n const node = $createServerBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n rootNode.append(node)\n }\n\n return\n }\n return false // Run next transformer\n },\n }))\n\n return toReturn\n}\n"],"names":["$parseSerializedNode","getEnabledNodesFromServerNodes","extractPropsFromJSXPropsString","propsToJSXString","getLexicalToMarkdown","getMarkdownToLexical","$createServerBlockNode","$isServerBlockNode","ServerBlockNode","$createServerInlineBlockNode","$isServerInlineBlockNode","ServerInlineBlockNode","linesFromStartToContentAndPropsString","createTagRegexes","tagName","escapedTagName","replace","openingTag","closingTag","optionalWhitespace","mandatoryClosingBracket","startPattern","endPattern","regExpEnd","RegExp","regExpStart","getBlockMarkdownTransformers","blocks","inlineBlocks","length","transformers","block","transformer","getMarkdownTransformerForBlock","concat","isInlineBlock","jsx","regex","slug","toReturn","push","allNodes","allTransformers","type","dependencies","export","node","getFields","blockType","toLowerCase","nodeFields","lexicalToMarkdown","nodes","exportResult","fields","hasProps","props","Object","keys","children","getEndIndex","match","endlineLastCharIndex","isEndOptional","lines","getTextContent","regexpEndRegex","startLineIndex","startMatch","trimChildren","importRegExp","customStartRegex","regExp","content","propsString","index","import","markdownToLexical","blockFields","closeMatch","htmlToLexical","openMatch","inlineBlockNode","sanitizedChildren","includes","child","split","sanitizedChild","doNotTrimChildren","handleImportAfterStartMatch","customEndRegex","undefined","rootNode","optional","afterEndLine","beforeStartLine","unsanitizedContent","endLineIndex","endsWith","slice","startsWith","prevNodes","nextNodes","markdown","root","firstPrevNode","append","lastChild","getChildren","linesInBetween","line","childrenString","join","trim"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
2
2
  import React from 'react';
3
3
  import { defaultJSXConverters } from '../converter/defaultConverters.js';
4
4
  import { convertLexicalToJSX } from '../converter/index.js';
@@ -37,14 +37,18 @@ import { convertLexicalToJSX } from '../converter/index.js';
37
37
  disableTextAlign
38
38
  });
39
39
  if (disableContainer) {
40
- return /*#__PURE__*/ _jsx(_Fragment, {
40
+ return /*#__PURE__*/ _jsxDEV(_Fragment, {
41
41
  children: content
42
- });
42
+ }, void 0, false);
43
43
  }
44
- return /*#__PURE__*/ _jsx("div", {
44
+ return /*#__PURE__*/ _jsxDEV("div", {
45
45
  className: className ?? 'payload-richtext',
46
46
  children: content
47
- });
47
+ }, void 0, false, {
48
+ fileName: "src/features/converters/lexicalToJSX/Component/index.tsx",
49
+ lineNumber: 88,
50
+ columnNumber: 10
51
+ }, this);
48
52
  };
49
53
 
50
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/features/converters/lexicalToJSX/Component/index.tsx"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\n\nimport React from 'react'\n\nimport type {\n DefaultNodeTypes,\n SerializedBlockNode,\n SerializedInlineBlockNode,\n} from '../../../../nodeTypes.js'\nimport type { JSXConverters } from '../converter/types.js'\n\nimport { defaultJSXConverters } from '../converter/defaultConverters.js'\nimport { convertLexicalToJSX } from '../converter/index.js'\n\nexport type JSXConvertersFunction<\n T extends { [key: string]: any; type?: string } =\n | DefaultNodeTypes\n | SerializedBlockNode<{ blockName?: null | string }>\n | SerializedInlineBlockNode<{ blockName?: null | string }>,\n> = (args: { defaultConverters: JSXConverters<DefaultNodeTypes> }) => JSXConverters<T>\n\ntype RichTextProps = {\n /**\n * Override class names for the container.\n */\n className?: string\n /**\n * Custom converters to transform your nodes to JSX. Can be an object or a function that receives the default converters.\n */\n converters?: JSXConverters | JSXConvertersFunction\n /**\n * Serialized editor state to render.\n */\n data: SerializedEditorState\n /**\n * If true, removes the container div wrapper.\n */\n disableContainer?: boolean\n /**\n * If true, disables indentation globally. If an array, disables for specific node `type` values.\n */\n disableIndent?: boolean | string[]\n /**\n * If true, disables text alignment globally. If an array, disables for specific node `type` values.\n */\n disableTextAlign?: boolean | string[]\n}\n\nexport const RichText: React.FC<RichTextProps> = ({\n className,\n converters,\n data: editorState,\n disableContainer,\n disableIndent,\n disableTextAlign,\n}) => {\n if (!editorState) {\n return null\n }\n\n let finalConverters: JSXConverters = {}\n if (converters) {\n if (typeof converters === 'function') {\n finalConverters = converters({ defaultConverters: defaultJSXConverters })\n } else {\n finalConverters = converters\n }\n } else {\n finalConverters = defaultJSXConverters\n }\n\n const content =\n editorState &&\n !Array.isArray(editorState) &&\n typeof editorState === 'object' &&\n 'root' in editorState &&\n convertLexicalToJSX({\n converters: finalConverters,\n data: editorState,\n disableIndent,\n disableTextAlign,\n })\n\n if (disableContainer) {\n return <>{content}</>\n }\n\n return <div className={className ?? 'payload-richtext'}>{content}</div>\n}\n"],"names":["React","defaultJSXConverters","convertLexicalToJSX","RichText","className","converters","data","editorState","disableContainer","disableIndent","disableTextAlign","finalConverters","defaultConverters","content","Array","isArray","div"],"mappings":";AAEA,OAAOA,WAAW,QAAO;AASzB,SAASC,oBAAoB,QAAQ,oCAAmC;AACxE,SAASC,mBAAmB,QAAQ,wBAAuB;AAUzD;;GAEC,GAED;;GAEC,GAED;;GAEC,GAED;;GAEC,GAED;;GAEC,GAED;;GAEC,GAIH,OAAO,MAAMC,WAAoC,CAAC,EAChDC,SAAS,EACTC,UAAU,EACVC,MAAMC,WAAW,EACjBC,gBAAgB,EAChBC,aAAa,EACbC,gBAAgB,EACjB;IACC,IAAI,CAACH,aAAa;QAChB,OAAO;IACT;IAEA,IAAII,kBAAiC,CAAC;IACtC,IAAIN,YAAY;QACd,IAAI,OAAOA,eAAe,YAAY;YACpCM,kBAAkBN,WAAW;gBAAEO,mBAAmBX;YAAqB;QACzE,OAAO;YACLU,kBAAkBN;QACpB;IACF,OAAO;QACLM,kBAAkBV;IACpB;IAEA,MAAMY,UACJN,eACA,CAACO,MAAMC,OAAO,CAACR,gBACf,OAAOA,gBAAgB,YACvB,UAAUA,eACVL,oBAAoB;QAClBG,YAAYM;QACZL,MAAMC;QACNE;QACAC;IACF;IAEF,IAAIF,kBAAkB;QACpB,qBAAO;sBAAGK;;IACZ;IAEA,qBAAO,KAACG;QAAIZ,WAAWA,aAAa;kBAAqBS;;AAC3D,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/features/converters/lexicalToJSX/Component/index.tsx"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\n\nimport React from 'react'\n\nimport type {\n DefaultNodeTypes,\n SerializedBlockNode,\n SerializedInlineBlockNode,\n} from '../../../../nodeTypes.js'\nimport type { JSXConverters } from '../converter/types.js'\n\nimport { defaultJSXConverters } from '../converter/defaultConverters.js'\nimport { convertLexicalToJSX } from '../converter/index.js'\n\nexport type JSXConvertersFunction<\n T extends { [key: string]: any; type?: string } =\n | DefaultNodeTypes\n | SerializedBlockNode<{ blockName?: null | string }>\n | SerializedInlineBlockNode<{ blockName?: null | string }>,\n> = (args: { defaultConverters: JSXConverters<DefaultNodeTypes> }) => JSXConverters<T>\n\ntype RichTextProps = {\n /**\n * Override class names for the container.\n */\n className?: string\n /**\n * Custom converters to transform your nodes to JSX. Can be an object or a function that receives the default converters.\n */\n converters?: JSXConverters | JSXConvertersFunction\n /**\n * Serialized editor state to render.\n */\n data: SerializedEditorState\n /**\n * If true, removes the container div wrapper.\n */\n disableContainer?: boolean\n /**\n * If true, disables indentation globally. If an array, disables for specific node `type` values.\n */\n disableIndent?: boolean | string[]\n /**\n * If true, disables text alignment globally. If an array, disables for specific node `type` values.\n */\n disableTextAlign?: boolean | string[]\n}\n\nexport const RichText: React.FC<RichTextProps> = ({\n className,\n converters,\n data: editorState,\n disableContainer,\n disableIndent,\n disableTextAlign,\n}) => {\n if (!editorState) {\n return null\n }\n\n let finalConverters: JSXConverters = {}\n if (converters) {\n if (typeof converters === 'function') {\n finalConverters = converters({ defaultConverters: defaultJSXConverters })\n } else {\n finalConverters = converters\n }\n } else {\n finalConverters = defaultJSXConverters\n }\n\n const content =\n editorState &&\n !Array.isArray(editorState) &&\n typeof editorState === 'object' &&\n 'root' in editorState &&\n convertLexicalToJSX({\n converters: finalConverters,\n data: editorState,\n disableIndent,\n disableTextAlign,\n })\n\n if (disableContainer) {\n return <>{content}</>\n }\n\n return <div className={className ?? 'payload-richtext'}>{content}</div>\n}\n"],"names":["React","defaultJSXConverters","convertLexicalToJSX","RichText","className","converters","data","editorState","disableContainer","disableIndent","disableTextAlign","finalConverters","defaultConverters","content","Array","isArray","div"],"mappings":";AAEA,OAAOA,WAAW,QAAO;AASzB,SAASC,oBAAoB,QAAQ,oCAAmC;AACxE,SAASC,mBAAmB,QAAQ,wBAAuB;AAUzD;;GAEC,GAED;;GAEC,GAED;;GAEC,GAED;;GAEC,GAED;;GAEC,GAED;;GAEC,GAIH,OAAO,MAAMC,WAAoC,CAAC,EAChDC,SAAS,EACTC,UAAU,EACVC,MAAMC,WAAW,EACjBC,gBAAgB,EAChBC,aAAa,EACbC,gBAAgB,EACjB;IACC,IAAI,CAACH,aAAa;QAChB,OAAO;IACT;IAEA,IAAII,kBAAiC,CAAC;IACtC,IAAIN,YAAY;QACd,IAAI,OAAOA,eAAe,YAAY;YACpCM,kBAAkBN,WAAW;gBAAEO,mBAAmBX;YAAqB;QACzE,OAAO;YACLU,kBAAkBN;QACpB;IACF,OAAO;QACLM,kBAAkBV;IACpB;IAEA,MAAMY,UACJN,eACA,CAACO,MAAMC,OAAO,CAACR,gBACf,OAAOA,gBAAgB,YACvB,UAAUA,eACVL,oBAAoB;QAClBG,YAAYM;QACZL,MAAMC;QACNE;QACAC;IACF;IAEF,IAAIF,kBAAkB;QACpB,qBAAO;sBAAGK;;IACZ;IAEA,qBAAO,QAACG;QAAIZ,WAAWA,aAAa;kBAAqBS;;;;;;AAC3D,EAAC"}
@@ -1,12 +1,16 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
2
2
  export const BlockquoteJSXConverter = {
3
3
  quote: ({ node, nodesToJSX })=>{
4
4
  const children = nodesToJSX({
5
5
  nodes: node.children
6
6
  });
7
- return /*#__PURE__*/ _jsx("blockquote", {
7
+ return /*#__PURE__*/ _jsxDEV("blockquote", {
8
8
  children: children
9
- });
9
+ }, void 0, false, {
10
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/blockquote.tsx",
11
+ lineNumber: 10,
12
+ columnNumber: 12
13
+ }, this);
10
14
  }
11
15
  };
12
16
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/blockquote.tsx"],"sourcesContent":["import type { SerializedQuoteNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const BlockquoteJSXConverter: JSXConverters<SerializedQuoteNode> = {\n quote: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n return <blockquote>{children}</blockquote>\n },\n}\n"],"names":["BlockquoteJSXConverter","quote","node","nodesToJSX","children","nodes","blockquote"],"mappings":";AAGA,OAAO,MAAMA,yBAA6D;IACxEC,OAAO,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QAC1B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,qBAAO,KAACE;sBAAYF;;IACtB;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/blockquote.tsx"],"sourcesContent":["import type { SerializedQuoteNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const BlockquoteJSXConverter: JSXConverters<SerializedQuoteNode> = {\n quote: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n return <blockquote>{children}</blockquote>\n },\n}\n"],"names":["BlockquoteJSXConverter","quote","node","nodesToJSX","children","nodes","blockquote"],"mappings":";AAGA,OAAO,MAAMA,yBAA6D;IACxEC,OAAO,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QAC1B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,qBAAO,QAACE;sBAAYF;;;;;;IACtB;AACF,EAAC"}
@@ -1,13 +1,17 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
2
2
  export const HeadingJSXConverter = {
3
3
  heading: ({ node, nodesToJSX })=>{
4
4
  const children = nodesToJSX({
5
5
  nodes: node.children
6
6
  });
7
7
  const NodeTag = node.tag;
8
- return /*#__PURE__*/ _jsx(NodeTag, {
8
+ return /*#__PURE__*/ _jsxDEV(NodeTag, {
9
9
  children: children
10
- });
10
+ }, void 0, false, {
11
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/heading.tsx",
12
+ lineNumber: 12,
13
+ columnNumber: 12
14
+ }, this);
11
15
  }
12
16
  };
13
17
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/heading.tsx"],"sourcesContent":["import type { SerializedHeadingNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const HeadingJSXConverter: JSXConverters<SerializedHeadingNode> = {\n heading: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const NodeTag = node.tag\n\n return <NodeTag>{children}</NodeTag>\n },\n}\n"],"names":["HeadingJSXConverter","heading","node","nodesToJSX","children","nodes","NodeTag","tag"],"mappings":";AAGA,OAAO,MAAMA,sBAA4D;IACvEC,SAAS,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QAC5B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,MAAME,UAAUJ,KAAKK,GAAG;QAExB,qBAAO,KAACD;sBAASF;;IACnB;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/heading.tsx"],"sourcesContent":["import type { SerializedHeadingNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const HeadingJSXConverter: JSXConverters<SerializedHeadingNode> = {\n heading: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const NodeTag = node.tag\n\n return <NodeTag>{children}</NodeTag>\n },\n}\n"],"names":["HeadingJSXConverter","heading","node","nodesToJSX","children","nodes","NodeTag","tag"],"mappings":";AAGA,OAAO,MAAMA,sBAA4D;IACvEC,SAAS,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QAC5B,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,MAAME,UAAUJ,KAAKK,GAAG;QAExB,qBAAO,QAACD;sBAASF;;;;;;IACnB;AACF,EAAC"}
@@ -1,6 +1,10 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
2
2
  export const HorizontalRuleJSXConverter = {
3
- horizontalrule: /*#__PURE__*/ _jsx("hr", {})
3
+ horizontalrule: /*#__PURE__*/ _jsxDEV("hr", {}, void 0, false, {
4
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/horizontalRule.tsx",
5
+ lineNumber: 4,
6
+ columnNumber: 19
7
+ }, this)
4
8
  };
5
9
 
6
10
  //# sourceMappingURL=horizontalRule.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/horizontalRule.tsx"],"sourcesContent":["import type { SerializedHorizontalRuleNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\nexport const HorizontalRuleJSXConverter: JSXConverters<SerializedHorizontalRuleNode> = {\n horizontalrule: <hr />,\n}\n"],"names":["HorizontalRuleJSXConverter","horizontalrule","hr"],"mappings":";AAEA,OAAO,MAAMA,6BAA0E;IACrFC,8BAAgB,KAACC;AACnB,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/horizontalRule.tsx"],"sourcesContent":["import type { SerializedHorizontalRuleNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\nexport const HorizontalRuleJSXConverter: JSXConverters<SerializedHorizontalRuleNode> = {\n horizontalrule: <hr />,\n}\n"],"names":["HorizontalRuleJSXConverter","horizontalrule","hr"],"mappings":";AAEA,OAAO,MAAMA,6BAA0E;IACrFC,8BAAgB,QAACC;;;;;AACnB,EAAC"}
@@ -1,6 +1,10 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
2
2
  export const LinebreakJSXConverter = {
3
- linebreak: /*#__PURE__*/ _jsx("br", {})
3
+ linebreak: /*#__PURE__*/ _jsxDEV("br", {}, void 0, false, {
4
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/linebreak.tsx",
5
+ lineNumber: 5,
6
+ columnNumber: 14
7
+ }, this)
4
8
  };
5
9
 
6
10
  //# sourceMappingURL=linebreak.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/linebreak.tsx"],"sourcesContent":["import type { SerializedLineBreakNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const LinebreakJSXConverter: JSXConverters<SerializedLineBreakNode> = {\n linebreak: <br />,\n}\n"],"names":["LinebreakJSXConverter","linebreak","br"],"mappings":";AAGA,OAAO,MAAMA,wBAAgE;IAC3EC,yBAAW,KAACC;AACd,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/linebreak.tsx"],"sourcesContent":["import type { SerializedLineBreakNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const LinebreakJSXConverter: JSXConverters<SerializedLineBreakNode> = {\n linebreak: <br />,\n}\n"],"names":["LinebreakJSXConverter","linebreak","br"],"mappings":";AAGA,OAAO,MAAMA,wBAAgE;IAC3EC,yBAAW,QAACC;;;;;AACd,EAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
2
2
  export const LinkJSXConverter = ({ internalDocToHref })=>({
3
3
  autolink: ({ node, nodesToJSX })=>{
4
4
  const children = nodesToJSX({
@@ -6,12 +6,16 @@ export const LinkJSXConverter = ({ internalDocToHref })=>({
6
6
  });
7
7
  const rel = node.fields.newTab ? 'noopener noreferrer' : undefined;
8
8
  const target = node.fields.newTab ? '_blank' : undefined;
9
- return /*#__PURE__*/ _jsx("a", {
9
+ return /*#__PURE__*/ _jsxDEV("a", {
10
10
  href: node.fields.url,
11
11
  rel,
12
12
  target,
13
13
  children: children
14
- });
14
+ }, void 0, false, {
15
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/link.tsx",
16
+ lineNumber: 16,
17
+ columnNumber: 7
18
+ }, this);
15
19
  },
16
20
  link: ({ node, nodesToJSX })=>{
17
21
  const children = nodesToJSX({
@@ -31,12 +35,16 @@ export const LinkJSXConverter = ({ internalDocToHref })=>({
31
35
  }
32
36
  }
33
37
  // fallback
34
- return /*#__PURE__*/ _jsx("a", {
38
+ return /*#__PURE__*/ _jsxDEV("a", {
35
39
  href: href,
36
40
  rel,
37
41
  target,
38
42
  children: children
39
- });
43
+ }, void 0, false, {
44
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/link.tsx",
45
+ lineNumber: 42,
46
+ columnNumber: 7
47
+ }, this);
40
48
  }
41
49
  });
42
50
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/link.tsx"],"sourcesContent":["import type { SerializedAutoLinkNode, SerializedLinkNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const LinkJSXConverter: (args: {\n internalDocToHref?: (args: { linkNode: SerializedLinkNode }) => string\n}) => JSXConverters<SerializedAutoLinkNode | SerializedLinkNode> = ({ internalDocToHref }) => ({\n autolink: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const rel: string | undefined = node.fields.newTab ? 'noopener noreferrer' : undefined\n const target: string | undefined = node.fields.newTab ? '_blank' : undefined\n\n return (\n <a href={node.fields.url} {...{ rel, target }}>\n {children}\n </a>\n )\n },\n link: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const rel: string | undefined = node.fields.newTab ? 'noopener noreferrer' : undefined\n const target: string | undefined = node.fields.newTab ? '_blank' : undefined\n\n let href: string = node.fields.url ?? ''\n if (node.fields.linkType === 'internal') {\n if (internalDocToHref) {\n href = internalDocToHref({ linkNode: node })\n } else {\n console.error(\n 'Lexical => JSX converter: Link converter: found internal link, but internalDocToHref is not provided',\n )\n href = '#' // fallback\n }\n }\n\n return (\n <a href={href} {...{ rel, target }}>\n {children}\n </a>\n )\n },\n})\n"],"names":["LinkJSXConverter","internalDocToHref","autolink","node","nodesToJSX","children","nodes","rel","fields","newTab","undefined","target","a","href","url","link","linkType","linkNode","console","error"],"mappings":";AAGA,OAAO,MAAMA,mBAEsD,CAAC,EAAEC,iBAAiB,EAAE,GAAM,CAAA;QAC7FC,UAAU,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;YAC7B,MAAMC,WAAWD,WAAW;gBAC1BE,OAAOH,KAAKE,QAAQ;YACtB;YAEA,MAAME,MAA0BJ,KAAKK,MAAM,CAACC,MAAM,GAAG,wBAAwBC;YAC7E,MAAMC,SAA6BR,KAAKK,MAAM,CAACC,MAAM,GAAG,WAAWC;YAEnE,qBACE,KAACE;gBAAEC,MAAMV,KAAKK,MAAM,CAACM,GAAG;gBAAQP;gBAAKI;0BAClCN;;QAGP;QACAU,MAAM,CAAC,EAAEZ,IAAI,EAAEC,UAAU,EAAE;YACzB,MAAMC,WAAWD,WAAW;gBAC1BE,OAAOH,KAAKE,QAAQ;YACtB;YAEA,MAAME,MAA0BJ,KAAKK,MAAM,CAACC,MAAM,GAAG,wBAAwBC;YAC7E,MAAMC,SAA6BR,KAAKK,MAAM,CAACC,MAAM,GAAG,WAAWC;YAEnE,IAAIG,OAAeV,KAAKK,MAAM,CAACM,GAAG,IAAI;YACtC,IAAIX,KAAKK,MAAM,CAACQ,QAAQ,KAAK,YAAY;gBACvC,IAAIf,mBAAmB;oBACrBY,OAAOZ,kBAAkB;wBAAEgB,UAAUd;oBAAK;gBAC5C,OAAO;oBACLe,QAAQC,KAAK,CACX;oBAEFN,OAAO;gBACT;YACF;YAFe,WAAW;YAI1B,qBACE,KAACD;gBAAEC,MAAMA;gBAAYN;gBAAKI;0BACvBN;;QAGP;IACF,CAAA,EAAE"}
1
+ {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/link.tsx"],"sourcesContent":["import type { SerializedAutoLinkNode, SerializedLinkNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const LinkJSXConverter: (args: {\n internalDocToHref?: (args: { linkNode: SerializedLinkNode }) => string\n}) => JSXConverters<SerializedAutoLinkNode | SerializedLinkNode> = ({ internalDocToHref }) => ({\n autolink: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const rel: string | undefined = node.fields.newTab ? 'noopener noreferrer' : undefined\n const target: string | undefined = node.fields.newTab ? '_blank' : undefined\n\n return (\n <a href={node.fields.url} {...{ rel, target }}>\n {children}\n </a>\n )\n },\n link: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const rel: string | undefined = node.fields.newTab ? 'noopener noreferrer' : undefined\n const target: string | undefined = node.fields.newTab ? '_blank' : undefined\n\n let href: string = node.fields.url ?? ''\n if (node.fields.linkType === 'internal') {\n if (internalDocToHref) {\n href = internalDocToHref({ linkNode: node })\n } else {\n console.error(\n 'Lexical => JSX converter: Link converter: found internal link, but internalDocToHref is not provided',\n )\n href = '#' // fallback\n }\n }\n\n return (\n <a href={href} {...{ rel, target }}>\n {children}\n </a>\n )\n },\n})\n"],"names":["LinkJSXConverter","internalDocToHref","autolink","node","nodesToJSX","children","nodes","rel","fields","newTab","undefined","target","a","href","url","link","linkType","linkNode","console","error"],"mappings":";AAGA,OAAO,MAAMA,mBAEsD,CAAC,EAAEC,iBAAiB,EAAE,GAAM,CAAA;QAC7FC,UAAU,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;YAC7B,MAAMC,WAAWD,WAAW;gBAC1BE,OAAOH,KAAKE,QAAQ;YACtB;YAEA,MAAME,MAA0BJ,KAAKK,MAAM,CAACC,MAAM,GAAG,wBAAwBC;YAC7E,MAAMC,SAA6BR,KAAKK,MAAM,CAACC,MAAM,GAAG,WAAWC;YAEnE,qBACE,QAACE;gBAAEC,MAAMV,KAAKK,MAAM,CAACM,GAAG;gBAAQP;gBAAKI;0BAClCN;;;;;;QAGP;QACAU,MAAM,CAAC,EAAEZ,IAAI,EAAEC,UAAU,EAAE;YACzB,MAAMC,WAAWD,WAAW;gBAC1BE,OAAOH,KAAKE,QAAQ;YACtB;YAEA,MAAME,MAA0BJ,KAAKK,MAAM,CAACC,MAAM,GAAG,wBAAwBC;YAC7E,MAAMC,SAA6BR,KAAKK,MAAM,CAACC,MAAM,GAAG,WAAWC;YAEnE,IAAIG,OAAeV,KAAKK,MAAM,CAACM,GAAG,IAAI;YACtC,IAAIX,KAAKK,MAAM,CAACQ,QAAQ,KAAK,YAAY;gBACvC,IAAIf,mBAAmB;oBACrBY,OAAOZ,kBAAkB;wBAAEgB,UAAUd;oBAAK;gBAC5C,OAAO;oBACLe,QAAQC,KAAK,CACX;oBAEFN,OAAO;gBACT;YACF;YAFe,WAAW;YAI1B,qBACE,QAACD;gBAAEC,MAAMA;gBAAYN;gBAAKI;0BACvBN;;;;;;QAGP;IACF,CAAA,EAAE"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
2
2
  import { v4 as uuidv4 } from 'uuid';
3
3
  export const ListJSXConverter = {
4
4
  list: ({ node, nodesToJSX })=>{
@@ -6,10 +6,14 @@ export const ListJSXConverter = {
6
6
  nodes: node.children
7
7
  });
8
8
  const NodeTag = node.tag;
9
- return /*#__PURE__*/ _jsx(NodeTag, {
9
+ return /*#__PURE__*/ _jsxDEV(NodeTag, {
10
10
  className: `list-${node?.listType}`,
11
11
  children: children
12
- });
12
+ }, void 0, false, {
13
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/list.tsx",
14
+ lineNumber: 14,
15
+ columnNumber: 12
16
+ }, this);
13
17
  },
14
18
  listitem: ({ node, nodesToJSX, parent })=>{
15
19
  const hasSubLists = node.children.some((child)=>child.type === 'list');
@@ -18,7 +22,7 @@ export const ListJSXConverter = {
18
22
  });
19
23
  if ('listType' in parent && parent?.listType === 'check') {
20
24
  const uuid = uuidv4();
21
- return /*#__PURE__*/ _jsx("li", {
25
+ return /*#__PURE__*/ _jsxDEV("li", {
22
26
  "aria-checked": node.checked ? 'true' : 'false',
23
27
  className: `list-item-checkbox${node.checked ? ' list-item-checkbox-checked' : ' list-item-checkbox-unchecked'}${hasSubLists ? ' nestedListItem' : ''}`,
24
28
  // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
@@ -28,31 +32,51 @@ export const ListJSXConverter = {
28
32
  },
29
33
  tabIndex: -1,
30
34
  value: node?.value,
31
- children: hasSubLists ? children : /*#__PURE__*/ _jsxs(_Fragment, {
35
+ children: hasSubLists ? children : /*#__PURE__*/ _jsxDEV(_Fragment, {
32
36
  children: [
33
- /*#__PURE__*/ _jsx("input", {
37
+ /*#__PURE__*/ _jsxDEV("input", {
34
38
  checked: node.checked,
35
39
  id: uuid,
36
40
  readOnly: true,
37
41
  type: "checkbox"
38
- }),
39
- /*#__PURE__*/ _jsx("label", {
42
+ }, void 0, false, {
43
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/list.tsx",
44
+ lineNumber: 40,
45
+ columnNumber: 15
46
+ }, this),
47
+ /*#__PURE__*/ _jsxDEV("label", {
40
48
  htmlFor: uuid,
41
49
  children: children
42
- }),
43
- /*#__PURE__*/ _jsx("br", {})
50
+ }, void 0, false, {
51
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/list.tsx",
52
+ lineNumber: 41,
53
+ columnNumber: 15
54
+ }, this),
55
+ /*#__PURE__*/ _jsxDEV("br", {}, void 0, false, {
56
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/list.tsx",
57
+ lineNumber: 42,
58
+ columnNumber: 15
59
+ }, this)
44
60
  ]
45
- })
46
- });
61
+ }, void 0, true)
62
+ }, void 0, false, {
63
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/list.tsx",
64
+ lineNumber: 27,
65
+ columnNumber: 9
66
+ }, this);
47
67
  } else {
48
- return /*#__PURE__*/ _jsx("li", {
68
+ return /*#__PURE__*/ _jsxDEV("li", {
49
69
  className: `${hasSubLists ? 'nestedListItem' : ''}`,
50
70
  style: hasSubLists ? {
51
71
  listStyleType: 'none'
52
72
  } : undefined,
53
73
  value: node?.value,
54
74
  children: children
55
- });
75
+ }, void 0, false, {
76
+ fileName: "src/features/converters/lexicalToJSX/converter/converters/list.tsx",
77
+ lineNumber: 49,
78
+ columnNumber: 9
79
+ }, this);
56
80
  }
57
81
  }
58
82
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/list.tsx"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid'\n\nimport type { SerializedListItemNode, SerializedListNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const ListJSXConverter: JSXConverters<SerializedListItemNode | SerializedListNode> = {\n list: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const NodeTag = node.tag\n\n return <NodeTag className={`list-${node?.listType}`}>{children}</NodeTag>\n },\n listitem: ({ node, nodesToJSX, parent }) => {\n const hasSubLists = node.children.some((child) => child.type === 'list')\n\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n if ('listType' in parent && parent?.listType === 'check') {\n const uuid = uuidv4()\n\n return (\n <li\n aria-checked={node.checked ? 'true' : 'false'}\n className={`list-item-checkbox${node.checked ? ' list-item-checkbox-checked' : ' list-item-checkbox-unchecked'}${hasSubLists ? ' nestedListItem' : ''}`}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n role=\"checkbox\"\n style={{ listStyleType: 'none' }}\n tabIndex={-1}\n value={node?.value}\n >\n {hasSubLists ? (\n children\n ) : (\n <>\n <input checked={node.checked} id={uuid} readOnly={true} type=\"checkbox\" />\n <label htmlFor={uuid}>{children}</label>\n <br />\n </>\n )}\n </li>\n )\n } else {\n return (\n <li\n className={`${hasSubLists ? 'nestedListItem' : ''}`}\n style={hasSubLists ? { listStyleType: 'none' } : undefined}\n value={node?.value}\n >\n {children}\n </li>\n )\n }\n },\n}\n"],"names":["v4","uuidv4","ListJSXConverter","list","node","nodesToJSX","children","nodes","NodeTag","tag","className","listType","listitem","parent","hasSubLists","some","child","type","uuid","li","aria-checked","checked","role","style","listStyleType","tabIndex","value","input","id","readOnly","label","htmlFor","br","undefined"],"mappings":";AAAA,SAASA,MAAMC,MAAM,QAAQ,OAAM;AAKnC,OAAO,MAAMC,mBAA+E;IAC1FC,MAAM,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QACzB,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,MAAME,UAAUJ,KAAKK,GAAG;QAExB,qBAAO,KAACD;YAAQE,WAAW,CAAC,KAAK,EAAEN,MAAMO,UAAU;sBAAGL;;IACxD;IACAM,UAAU,CAAC,EAAER,IAAI,EAAEC,UAAU,EAAEQ,MAAM,EAAE;QACrC,MAAMC,cAAcV,KAAKE,QAAQ,CAACS,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAK;QAEjE,MAAMX,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,IAAI,cAAcO,UAAUA,QAAQF,aAAa,SAAS;YACxD,MAAMO,OAAOjB;YAEb,qBACE,KAACkB;gBACCC,gBAAchB,KAAKiB,OAAO,GAAG,SAAS;gBACtCX,WAAW,CAAC,kBAAkB,EAAEN,KAAKiB,OAAO,GAAG,gCAAgC,kCAAkCP,cAAc,oBAAoB,IAAI;gBACvJ,kFAAkF;gBAClFQ,MAAK;gBACLC,OAAO;oBAAEC,eAAe;gBAAO;gBAC/BC,UAAU,CAAC;gBACXC,OAAOtB,MAAMsB;0BAEZZ,cACCR,yBAEA;;sCACE,KAACqB;4BAAMN,SAASjB,KAAKiB,OAAO;4BAAEO,IAAIV;4BAAMW,UAAU;4BAAMZ,MAAK;;sCAC7D,KAACa;4BAAMC,SAASb;sCAAOZ;;sCACvB,KAAC0B;;;;QAKX,OAAO;YACL,qBACE,KAACb;gBACCT,WAAW,GAAGI,cAAc,mBAAmB,IAAI;gBACnDS,OAAOT,cAAc;oBAAEU,eAAe;gBAAO,IAAIS;gBACjDP,OAAOtB,MAAMsB;0BAEZpB;;QAGP;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/features/converters/lexicalToJSX/converter/converters/list.tsx"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid'\n\nimport type { SerializedListItemNode, SerializedListNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const ListJSXConverter: JSXConverters<SerializedListItemNode | SerializedListNode> = {\n list: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const NodeTag = node.tag\n\n return <NodeTag className={`list-${node?.listType}`}>{children}</NodeTag>\n },\n listitem: ({ node, nodesToJSX, parent }) => {\n const hasSubLists = node.children.some((child) => child.type === 'list')\n\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n if ('listType' in parent && parent?.listType === 'check') {\n const uuid = uuidv4()\n\n return (\n <li\n aria-checked={node.checked ? 'true' : 'false'}\n className={`list-item-checkbox${node.checked ? ' list-item-checkbox-checked' : ' list-item-checkbox-unchecked'}${hasSubLists ? ' nestedListItem' : ''}`}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n role=\"checkbox\"\n style={{ listStyleType: 'none' }}\n tabIndex={-1}\n value={node?.value}\n >\n {hasSubLists ? (\n children\n ) : (\n <>\n <input checked={node.checked} id={uuid} readOnly={true} type=\"checkbox\" />\n <label htmlFor={uuid}>{children}</label>\n <br />\n </>\n )}\n </li>\n )\n } else {\n return (\n <li\n className={`${hasSubLists ? 'nestedListItem' : ''}`}\n style={hasSubLists ? { listStyleType: 'none' } : undefined}\n value={node?.value}\n >\n {children}\n </li>\n )\n }\n },\n}\n"],"names":["v4","uuidv4","ListJSXConverter","list","node","nodesToJSX","children","nodes","NodeTag","tag","className","listType","listitem","parent","hasSubLists","some","child","type","uuid","li","aria-checked","checked","role","style","listStyleType","tabIndex","value","input","id","readOnly","label","htmlFor","br","undefined"],"mappings":";AAAA,SAASA,MAAMC,MAAM,QAAQ,OAAM;AAKnC,OAAO,MAAMC,mBAA+E;IAC1FC,MAAM,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE;QACzB,MAAMC,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,MAAME,UAAUJ,KAAKK,GAAG;QAExB,qBAAO,QAACD;YAAQE,WAAW,CAAC,KAAK,EAAEN,MAAMO,UAAU;sBAAGL;;;;;;IACxD;IACAM,UAAU,CAAC,EAAER,IAAI,EAAEC,UAAU,EAAEQ,MAAM,EAAE;QACrC,MAAMC,cAAcV,KAAKE,QAAQ,CAACS,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAK;QAEjE,MAAMX,WAAWD,WAAW;YAC1BE,OAAOH,KAAKE,QAAQ;QACtB;QAEA,IAAI,cAAcO,UAAUA,QAAQF,aAAa,SAAS;YACxD,MAAMO,OAAOjB;YAEb,qBACE,QAACkB;gBACCC,gBAAchB,KAAKiB,OAAO,GAAG,SAAS;gBACtCX,WAAW,CAAC,kBAAkB,EAAEN,KAAKiB,OAAO,GAAG,gCAAgC,kCAAkCP,cAAc,oBAAoB,IAAI;gBACvJ,kFAAkF;gBAClFQ,MAAK;gBACLC,OAAO;oBAAEC,eAAe;gBAAO;gBAC/BC,UAAU,CAAC;gBACXC,OAAOtB,MAAMsB;0BAEZZ,cACCR,yBAEA;;sCACE,QAACqB;4BAAMN,SAASjB,KAAKiB,OAAO;4BAAEO,IAAIV;4BAAMW,UAAU;4BAAMZ,MAAK;;;;;;sCAC7D,QAACa;4BAAMC,SAASb;sCAAOZ;;;;;;sCACvB,QAAC0B;;;;;;;;;;;;QAKX,OAAO;YACL,qBACE,QAACb;gBACCT,WAAW,GAAGI,cAAc,mBAAmB,IAAI;gBACnDS,OAAOT,cAAc;oBAAEU,eAAe;gBAAO,IAAIS;gBACjDP,OAAOtB,MAAMsB;0BAEZpB;;;;;;QAGP;IACF;AACF,EAAC"}