@payloadcms/richtext-lexical 3.68.0-internal-debug.185cc5f → 3.68.0-internal-debug.591ab42

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 (280) 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 +123 -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 +117 -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/nodes/BlocksNode.js +7 -3
  28. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  29. package/dist/features/blocks/client/nodes/InlineBlocksNode.js +7 -3
  30. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  31. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +87 -27
  32. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  33. package/dist/features/blocks/premade/CodeBlock/Component/Code.js +7 -3
  34. package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
  35. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +12 -4
  36. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
  37. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.scss +6 -0
  38. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +18 -6
  39. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
  40. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.scss +29 -0
  41. package/dist/features/blocks/premade/CodeBlock/Component/index.scss +97 -0
  42. package/dist/features/converters/lexicalToJSX/Component/index.js +9 -5
  43. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  44. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js +7 -3
  45. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  46. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +7 -3
  47. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  48. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js +6 -2
  49. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  50. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js +6 -2
  51. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  52. package/dist/features/converters/lexicalToJSX/converter/converters/link.js +13 -5
  53. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  54. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +38 -14
  55. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  56. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js +18 -6
  57. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  58. package/dist/features/converters/lexicalToJSX/converter/converters/table.js +31 -11
  59. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  60. package/dist/features/converters/lexicalToJSX/converter/converters/text.js +43 -15
  61. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  62. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +31 -11
  63. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  64. package/dist/features/converters/lexicalToJSX/converter/index.js +8 -4
  65. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  66. package/dist/features/debug/jsxConverter/client/plugin/index.js +13 -5
  67. package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
  68. package/dist/features/debug/jsxConverter/client/plugin/style.scss +12 -0
  69. package/dist/features/debug/testRecorder/client/plugin/index.js +61 -21
  70. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  71. package/dist/features/debug/testRecorder/client/plugin/index.scss +53 -0
  72. package/dist/features/debug/treeView/client/plugin/index.js +7 -3
  73. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
  74. package/dist/features/debug/treeView/client/plugin/index.scss +80 -0
  75. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +224 -72
  76. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  77. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.scss +87 -0
  78. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +31 -11
  79. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  80. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.scss +11 -0
  81. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +21 -9
  82. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  83. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +25 -9
  84. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  85. package/dist/features/experimental_table/client/plugins/TablePlugin/index.scss +233 -0
  86. package/dist/features/horizontalRule/client/plugin/index.scss +23 -0
  87. package/dist/features/indent/client/IndentPlugin.js +6 -2
  88. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  89. package/dist/features/link/client/plugins/clickableLink/index.js +6 -2
  90. package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
  91. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +76 -24
  92. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  93. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +7 -3
  94. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  95. package/dist/features/link/client/plugins/floatingLinkEditor/index.scss +92 -0
  96. package/dist/features/lists/checklist/client/plugin/index.js +6 -2
  97. package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
  98. package/dist/features/lists/plugin/index.js +6 -2
  99. package/dist/features/lists/plugin/index.js.map +1 -1
  100. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +13 -5
  101. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  102. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +7 -3
  103. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  104. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +16 -0
  105. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +13 -5
  106. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  107. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +7 -3
  108. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  109. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +16 -0
  110. package/dist/features/relationship/client/components/RelationshipComponent.js +55 -19
  111. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  112. package/dist/features/relationship/client/components/index.scss +95 -0
  113. package/dist/features/relationship/client/drawer/index.js +18 -6
  114. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  115. package/dist/features/relationship/client/nodes/RelationshipNode.js +7 -3
  116. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  117. package/dist/features/relationship/client/plugins/index.js +7 -3
  118. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  119. package/dist/features/textState/feature.client.js +18 -6
  120. package/dist/features/textState/feature.client.js.map +1 -1
  121. package/dist/features/toolbars/fixed/client/Toolbar/index.js +71 -23
  122. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  123. package/dist/features/toolbars/fixed/client/Toolbar/index.scss +113 -0
  124. package/dist/features/toolbars/inline/client/Toolbar/index.js +71 -23
  125. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  126. package/dist/features/toolbars/inline/client/Toolbar/index.scss +58 -0
  127. package/dist/features/toolbars/shared/ToolbarButton/index.js +7 -3
  128. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  129. package/dist/features/toolbars/shared/ToolbarButton/index.scss +46 -0
  130. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +60 -20
  131. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  132. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +36 -12
  133. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  134. package/dist/features/toolbars/shared/ToolbarDropdown/index.scss +129 -0
  135. package/dist/features/upload/client/component/index.js +91 -31
  136. package/dist/features/upload/client/component/index.js.map +1 -1
  137. package/dist/features/upload/client/component/index.scss +191 -0
  138. package/dist/features/upload/client/component/pending/index.js +13 -5
  139. package/dist/features/upload/client/component/pending/index.js.map +1 -1
  140. package/dist/features/upload/client/drawer/index.js +18 -6
  141. package/dist/features/upload/client/drawer/index.js.map +1 -1
  142. package/dist/features/upload/client/nodes/UploadNode.js +12 -4
  143. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  144. package/dist/features/upload/client/plugin/index.js +7 -3
  145. package/dist/features/upload/client/plugin/index.js.map +1 -1
  146. package/dist/field/Diff/converters/listitem/index.js +36 -12
  147. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  148. package/dist/field/Diff/converters/listitem/index.scss +47 -0
  149. package/dist/field/Diff/converters/relationship/index.js +36 -12
  150. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  151. package/dist/field/Diff/converters/relationship/index.scss +73 -0
  152. package/dist/field/Diff/converters/unknown/index.js +30 -10
  153. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  154. package/dist/field/Diff/converters/unknown/index.scss +40 -0
  155. package/dist/field/Diff/converters/upload/index.js +59 -19
  156. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  157. package/dist/field/Diff/converters/upload/index.scss +115 -0
  158. package/dist/field/Diff/index.js +7 -3
  159. package/dist/field/Diff/index.js.map +1 -1
  160. package/dist/field/Diff/index.scss +102 -0
  161. package/dist/field/Field.js +79 -27
  162. package/dist/field/Field.js.map +1 -1
  163. package/dist/field/RenderLexical/index.js +36 -12
  164. package/dist/field/RenderLexical/index.js.map +1 -1
  165. package/dist/field/index.js +19 -7
  166. package/dist/field/index.js.map +1 -1
  167. package/dist/field/index.scss +41 -0
  168. package/dist/field/rscEntry.js +7 -3
  169. package/dist/field/rscEntry.js.map +1 -1
  170. package/dist/lexical/EditorPlugin.js +13 -5
  171. package/dist/lexical/EditorPlugin.js.map +1 -1
  172. package/dist/lexical/LexicalEditor.js +162 -50
  173. package/dist/lexical/LexicalEditor.js.map +1 -1
  174. package/dist/lexical/LexicalEditor.scss +54 -0
  175. package/dist/lexical/LexicalProvider.js +49 -17
  176. package/dist/lexical/LexicalProvider.js.map +1 -1
  177. package/dist/lexical/config/client/EditorConfigProvider.js +7 -3
  178. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  179. package/dist/lexical/plugins/DecoratorPlugin/index.scss +13 -0
  180. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +19 -7
  181. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  182. package/dist/lexical/plugins/InsertParagraphAtEnd/index.scss +54 -0
  183. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +7 -3
  184. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  185. package/dist/lexical/plugins/SlashMenu/index.js +48 -16
  186. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  187. package/dist/lexical/plugins/SlashMenu/index.scss +68 -0
  188. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +19 -7
  189. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  190. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +35 -0
  191. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +31 -11
  192. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  193. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.scss +80 -0
  194. package/dist/lexical/theme/EditorTheme.scss +357 -0
  195. package/dist/lexical/ui/ContentEditable.js +13 -5
  196. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  197. package/dist/lexical/ui/ContentEditable.scss +105 -0
  198. package/dist/lexical/ui/icons/AI/index.js +37 -13
  199. package/dist/lexical/ui/icons/AI/index.js.map +1 -1
  200. package/dist/lexical/ui/icons/Add/index.js +19 -7
  201. package/dist/lexical/ui/icons/Add/index.js.map +1 -1
  202. package/dist/lexical/ui/icons/AlignCenter/index.js +25 -9
  203. package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
  204. package/dist/lexical/ui/icons/AlignJustify/index.js +25 -9
  205. package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
  206. package/dist/lexical/ui/icons/AlignLeft/index.js +25 -9
  207. package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
  208. package/dist/lexical/ui/icons/AlignRight/index.js +25 -9
  209. package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
  210. package/dist/lexical/ui/icons/Block/index.js +25 -9
  211. package/dist/lexical/ui/icons/Block/index.js.map +1 -1
  212. package/dist/lexical/ui/icons/Blockquote/index.js +13 -5
  213. package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
  214. package/dist/lexical/ui/icons/Bold/index.js +13 -5
  215. package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
  216. package/dist/lexical/ui/icons/Checklist/index.js +19 -7
  217. package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
  218. package/dist/lexical/ui/icons/Code/index.js +19 -7
  219. package/dist/lexical/ui/icons/Code/index.js.map +1 -1
  220. package/dist/lexical/ui/icons/CodeBlock/index.js +13 -5
  221. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
  222. package/dist/lexical/ui/icons/Collapse/index.js +13 -5
  223. package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
  224. package/dist/lexical/ui/icons/H1/index.js +13 -5
  225. package/dist/lexical/ui/icons/H1/index.js.map +1 -1
  226. package/dist/lexical/ui/icons/H2/index.js +13 -5
  227. package/dist/lexical/ui/icons/H2/index.js.map +1 -1
  228. package/dist/lexical/ui/icons/H3/index.js +13 -5
  229. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  230. package/dist/lexical/ui/icons/H4/index.js +13 -5
  231. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  232. package/dist/lexical/ui/icons/H5/index.js +13 -5
  233. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  234. package/dist/lexical/ui/icons/H6/index.js +13 -5
  235. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  236. package/dist/lexical/ui/icons/HorizontalRule/index.js +13 -5
  237. package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
  238. package/dist/lexical/ui/icons/IndentDecrease/index.js +31 -11
  239. package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
  240. package/dist/lexical/ui/icons/IndentIncrease/index.js +31 -11
  241. package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
  242. package/dist/lexical/ui/icons/InlineBlocks/index.js +13 -5
  243. package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
  244. package/dist/lexical/ui/icons/Italic/index.js +13 -5
  245. package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
  246. package/dist/lexical/ui/icons/Link/index.js +13 -5
  247. package/dist/lexical/ui/icons/Link/index.js.map +1 -1
  248. package/dist/lexical/ui/icons/Meatballs/index.js +25 -9
  249. package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
  250. package/dist/lexical/ui/icons/OrderedList/index.js +37 -13
  251. package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
  252. package/dist/lexical/ui/icons/Relationship/index.js +37 -13
  253. package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
  254. package/dist/lexical/ui/icons/Strikethrough/index.js +19 -7
  255. package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
  256. package/dist/lexical/ui/icons/Subscript/index.js +13 -5
  257. package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
  258. package/dist/lexical/ui/icons/Superscript/index.js +13 -5
  259. package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
  260. package/dist/lexical/ui/icons/Table/index.js +13 -5
  261. package/dist/lexical/ui/icons/Table/index.js.map +1 -1
  262. package/dist/lexical/ui/icons/Text/index.js +13 -5
  263. package/dist/lexical/ui/icons/Text/index.js.map +1 -1
  264. package/dist/lexical/ui/icons/TextState/index.js +7 -3
  265. package/dist/lexical/ui/icons/TextState/index.js.map +1 -1
  266. package/dist/lexical/ui/icons/Underline/index.js +19 -7
  267. package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
  268. package/dist/lexical/ui/icons/UnorderedList/index.js +43 -15
  269. package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
  270. package/dist/lexical/ui/icons/Upload/index.js +25 -9
  271. package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
  272. package/dist/utilities/fieldsDrawer/Drawer.js +19 -7
  273. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  274. package/dist/utilities/fieldsDrawer/DrawerContent.js +19 -7
  275. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  276. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +7 -3
  277. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  278. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +7 -3
  279. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
  280. package/package.json +9 -8
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
3
3
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
4
4
  import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
5
5
  import { $findMatchingParent, mergeRegister } from '@lexical/utils';
@@ -248,34 +248,50 @@ export function LinkEditor({ anchorElem }) {
248
248
  editor,
249
249
  $updateLinkEditor
250
250
  ]);
251
- return /*#__PURE__*/ _jsxs(React.Fragment, {
251
+ return /*#__PURE__*/ _jsxDEV(React.Fragment, {
252
252
  children: [
253
- /*#__PURE__*/ _jsx("div", {
253
+ /*#__PURE__*/ _jsxDEV("div", {
254
254
  className: "link-editor",
255
255
  ref: editorRef,
256
- children: /*#__PURE__*/ _jsxs("div", {
256
+ children: /*#__PURE__*/ _jsxDEV("div", {
257
257
  className: "link-input",
258
258
  children: [
259
- linkUrl && linkUrl.length > 0 ? /*#__PURE__*/ _jsxs("a", {
259
+ linkUrl && linkUrl.length > 0 ? /*#__PURE__*/ _jsxDEV("a", {
260
260
  href: linkUrl,
261
261
  rel: "noopener noreferrer",
262
262
  target: "_blank",
263
263
  children: [
264
- linkNode?.__fields.newTab ? /*#__PURE__*/ _jsx(ExternalLinkIcon, {}) : null,
264
+ linkNode?.__fields.newTab ? /*#__PURE__*/ _jsxDEV(ExternalLinkIcon, {}, void 0, false, {
265
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
266
+ lineNumber: 348,
267
+ columnNumber: 44
268
+ }, this) : null,
265
269
  linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl
266
270
  ]
267
- }) : linkLabel != null && linkLabel.length > 0 ? /*#__PURE__*/ _jsxs(_Fragment, {
271
+ }, void 0, true, {
272
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
273
+ lineNumber: 347,
274
+ columnNumber: 13
275
+ }, this) : linkLabel != null && linkLabel.length > 0 ? /*#__PURE__*/ _jsxDEV(_Fragment, {
268
276
  children: [
269
- linkNode?.__fields.newTab ? /*#__PURE__*/ _jsx(ExternalLinkIcon, {}) : null,
270
- /*#__PURE__*/ _jsx("span", {
277
+ linkNode?.__fields.newTab ? /*#__PURE__*/ _jsxDEV(ExternalLinkIcon, {}, void 0, false, {
278
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
279
+ lineNumber: 353,
280
+ columnNumber: 44
281
+ }, this) : null,
282
+ /*#__PURE__*/ _jsxDEV("span", {
271
283
  className: "link-input__label-pure",
272
284
  children: linkLabel
273
- })
285
+ }, void 0, false, {
286
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
287
+ lineNumber: 354,
288
+ columnNumber: 15
289
+ }, this)
274
290
  ]
275
- }) : null,
276
- isEditable && /*#__PURE__*/ _jsxs(React.Fragment, {
291
+ }, void 0, true) : null,
292
+ isEditable && /*#__PURE__*/ _jsxDEV(React.Fragment, {
277
293
  children: [
278
- /*#__PURE__*/ _jsx("button", {
294
+ /*#__PURE__*/ _jsxDEV("button", {
279
295
  "aria-label": "Edit link",
280
296
  className: "link-edit",
281
297
  onClick: (event)=>{
@@ -285,9 +301,17 @@ export function LinkEditor({ anchorElem }) {
285
301
  onMouseDown: preventDefault,
286
302
  tabIndex: 0,
287
303
  type: "button",
288
- children: /*#__PURE__*/ _jsx(EditIcon, {})
289
- }),
290
- !isAutoLink && /*#__PURE__*/ _jsx("button", {
304
+ children: /*#__PURE__*/ _jsxDEV(EditIcon, {}, void 0, false, {
305
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
306
+ lineNumber: 371,
307
+ columnNumber: 17
308
+ }, this)
309
+ }, void 0, false, {
310
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
311
+ lineNumber: 360,
312
+ columnNumber: 15
313
+ }, this),
314
+ !isAutoLink && /*#__PURE__*/ _jsxDEV("button", {
291
315
  "aria-label": "Remove link",
292
316
  className: "link-trash",
293
317
  onClick: ()=>{
@@ -296,14 +320,34 @@ export function LinkEditor({ anchorElem }) {
296
320
  onMouseDown: preventDefault,
297
321
  tabIndex: 0,
298
322
  type: "button",
299
- children: /*#__PURE__*/ _jsx(CloseMenuIcon, {})
300
- })
323
+ children: /*#__PURE__*/ _jsxDEV(CloseMenuIcon, {}, void 0, false, {
324
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
325
+ lineNumber: 384,
326
+ columnNumber: 19
327
+ }, this)
328
+ }, void 0, false, {
329
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
330
+ lineNumber: 374,
331
+ columnNumber: 17
332
+ }, this)
301
333
  ]
302
- })
334
+ }, void 0, true, {
335
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
336
+ lineNumber: 359,
337
+ columnNumber: 13
338
+ }, this)
303
339
  ]
304
- })
305
- }),
306
- /*#__PURE__*/ _jsx(FieldsDrawer, {
340
+ }, void 0, true, {
341
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
342
+ lineNumber: 345,
343
+ columnNumber: 9
344
+ }, this)
345
+ }, void 0, false, {
346
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
347
+ lineNumber: 344,
348
+ columnNumber: 7
349
+ }, this),
350
+ /*#__PURE__*/ _jsxDEV(FieldsDrawer, {
307
351
  className: "lexical-link-edit-drawer",
308
352
  data: stateData,
309
353
  drawerSlug: drawerSlug,
@@ -343,9 +387,17 @@ export function LinkEditor({ anchorElem }) {
343
387
  },
344
388
  schemaPath: schemaPath,
345
389
  schemaPathSuffix: "fields"
346
- })
390
+ }, void 0, false, {
391
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
392
+ lineNumber: 391,
393
+ columnNumber: 7
394
+ }, this)
347
395
  ]
348
- });
396
+ }, void 0, true, {
397
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx",
398
+ lineNumber: 343,
399
+ columnNumber: 5
400
+ }, this);
349
401
  }
350
402
 
351
403
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalNode } from 'lexical'\nimport type { Data, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CloseMenuIcon,\n EditIcon,\n ExternalLinkIcon,\n formatDrawerSlug,\n useConfig,\n useEditDepth,\n useLocale,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nfunction preventDefault(\n event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLElement>,\n): void {\n event.preventDefault()\n}\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n // TO-DO: There are several states that should not be state, because they\n // are derived from linkNode (linkUrl, linkLabel, stateData, isLink, isAutoLink...)\n const [linkNode, setLinkNode] = useState<LinkNode>()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [linkUrl, setLinkUrl] = useState<null | string>(null)\n const [linkLabel, setLinkLabel] = useState<null | string>(null)\n\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n\n const { config, getEntityConfig } = useConfig()\n\n const { i18n, t } = useTranslation<object, 'lexical:link:loadingWithEllipsis'>()\n\n const [stateData, setStateData] = useState<\n ({ id?: string; text: string } & LinkFields) | undefined\n >()\n\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n const locale = useLocale()\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(undefined)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n void setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n setLinkNode(focusLinkParent)\n\n const fields = focusLinkParent.getFields()\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n ...fields,\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (fields?.linkType === 'custom') {\n setLinkUrl(fields?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${fields?.doc?.relationTo}/${\n fields?.doc?.value\n }`,\n )\n\n const relatedField = fields?.doc?.relationTo\n ? getEntityConfig({ collectionSlug: fields?.doc?.relationTo })\n : undefined\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(fields?.label ? String(fields?.label) : null)\n setLinkUrl(fields?.url ? String(fields?.url) : null)\n } else {\n const id = typeof fields.doc?.value === 'object' ? fields.doc.value.id : fields.doc?.value\n const collection = fields.doc?.relationTo\n if (!id || !collection) {\n throw new Error(`Focus link parent is missing doc.value or doc.relationTo`)\n }\n\n const loadingLabel = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('lexical:link:loadingWithEllipsis', i18n)}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(loadingLabel)\n\n requests\n .get(`${config.serverURL}${config.routes.api}/${collection}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n params: {\n depth: 0,\n locale: locale?.code,\n },\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP error! Status: ${res.status}`)\n }\n const data = await res.json()\n const useAsTitle = relatedField?.admin?.useAsTitle || 'id'\n const title = data[useAsTitle]\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${title}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n .catch(() => {\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('general:untitled', i18n)} - ID: ${id}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\n }\n\n const editorElem = editorRef.current\n const nativeSelection = getDOMSelection(editor._window)\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem)\n }\n } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [\n editor,\n setNotLink,\n config.routes.admin,\n config.routes.api,\n config.serverURL,\n getEntityConfig,\n t,\n i18n,\n locale?.code,\n anchorElem,\n ])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <>\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n </>\n ) : null}\n\n {isEditable && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-edit\"\n onClick={(event) => {\n event.preventDefault()\n toggleDrawer()\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <EditIcon />\n </button>\n {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent: ElementNode | null = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0]?.getParent() ?? null\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n"],"names":["useLexicalComposerContext","useLexicalEditable","$findMatchingParent","mergeRegister","getTranslation","CloseMenuIcon","EditIcon","ExternalLinkIcon","formatDrawerSlug","useConfig","useEditDepth","useLocale","useTranslation","requests","$getSelection","$isLineBreakNode","$isRangeSelection","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","getDOMSelection","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","React","useCallback","useEffect","useRef","useState","useEditorConfigContext","getSelectedNode","setFloatingElemPositionForLinkEditor","FieldsDrawer","useLexicalDrawer","$isAutoLinkNode","$createLinkNode","$isLinkNode","TOGGLE_LINK_COMMAND","TOGGLE_LINK_WITH_MODAL_COMMAND","preventDefault","event","LinkEditor","anchorElem","editor","linkNode","setLinkNode","editorRef","linkUrl","setLinkUrl","linkLabel","setLinkLabel","fieldProps","schemaPath","uuid","isEditable","config","getEntityConfig","i18n","t","stateData","setStateData","editDepth","isLink","setIsLink","selectedNodes","setSelectedNodes","locale","isAutoLink","setIsAutoLink","drawerSlug","slug","depth","toggleDrawer","setNotLink","current","style","opacity","transform","undefined","$updateLinkEditor","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusLinkParent","badNode","getNodes","filter","node","find","is","fields","getFields","data","id","getID","text","getTextContent","linkType","url","routes","admin","doc","relationTo","value","relatedField","collectionSlug","label","String","collection","Error","loadingLabel","labels","singular","replace","get","serverURL","api","headers","language","params","code","then","res","ok","status","json","useAsTitle","title","catch","editorElem","nativeSelection","_window","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","window","addEventListener","removeEventListener","registerUpdateListener","editorState","Fragment","div","ref","length","a","href","rel","target","__fields","newTab","span","button","aria-label","onClick","onMouseDown","tabIndex","type","drawerTitle","featureKey","handleDrawerSubmit","newLinkPayload","bareLinkFields","linkParent","getParent","schemaPathSuffix"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalNode } from 'lexical'\nimport type { Data, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CloseMenuIcon,\n EditIcon,\n ExternalLinkIcon,\n formatDrawerSlug,\n useConfig,\n useEditDepth,\n useLocale,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nfunction preventDefault(\n event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLElement>,\n): void {\n event.preventDefault()\n}\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n // TO-DO: There are several states that should not be state, because they\n // are derived from linkNode (linkUrl, linkLabel, stateData, isLink, isAutoLink...)\n const [linkNode, setLinkNode] = useState<LinkNode>()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [linkUrl, setLinkUrl] = useState<null | string>(null)\n const [linkLabel, setLinkLabel] = useState<null | string>(null)\n\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n\n const { config, getEntityConfig } = useConfig()\n\n const { i18n, t } = useTranslation<object, 'lexical:link:loadingWithEllipsis'>()\n\n const [stateData, setStateData] = useState<\n ({ id?: string; text: string } & LinkFields) | undefined\n >()\n\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n const locale = useLocale()\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(undefined)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n void setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n setLinkNode(focusLinkParent)\n\n const fields = focusLinkParent.getFields()\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n ...fields,\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (fields?.linkType === 'custom') {\n setLinkUrl(fields?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${fields?.doc?.relationTo}/${\n fields?.doc?.value\n }`,\n )\n\n const relatedField = fields?.doc?.relationTo\n ? getEntityConfig({ collectionSlug: fields?.doc?.relationTo })\n : undefined\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(fields?.label ? String(fields?.label) : null)\n setLinkUrl(fields?.url ? String(fields?.url) : null)\n } else {\n const id = typeof fields.doc?.value === 'object' ? fields.doc.value.id : fields.doc?.value\n const collection = fields.doc?.relationTo\n if (!id || !collection) {\n throw new Error(`Focus link parent is missing doc.value or doc.relationTo`)\n }\n\n const loadingLabel = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('lexical:link:loadingWithEllipsis', i18n)}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(loadingLabel)\n\n requests\n .get(`${config.serverURL}${config.routes.api}/${collection}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n params: {\n depth: 0,\n locale: locale?.code,\n },\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP error! Status: ${res.status}`)\n }\n const data = await res.json()\n const useAsTitle = relatedField?.admin?.useAsTitle || 'id'\n const title = data[useAsTitle]\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${title}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n .catch(() => {\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('general:untitled', i18n)} - ID: ${id}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\n }\n\n const editorElem = editorRef.current\n const nativeSelection = getDOMSelection(editor._window)\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem)\n }\n } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [\n editor,\n setNotLink,\n config.routes.admin,\n config.routes.api,\n config.serverURL,\n getEntityConfig,\n t,\n i18n,\n locale?.code,\n anchorElem,\n ])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <>\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n </>\n ) : null}\n\n {isEditable && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-edit\"\n onClick={(event) => {\n event.preventDefault()\n toggleDrawer()\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <EditIcon />\n </button>\n {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent: ElementNode | null = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0]?.getParent() ?? null\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n"],"names":["useLexicalComposerContext","useLexicalEditable","$findMatchingParent","mergeRegister","getTranslation","CloseMenuIcon","EditIcon","ExternalLinkIcon","formatDrawerSlug","useConfig","useEditDepth","useLocale","useTranslation","requests","$getSelection","$isLineBreakNode","$isRangeSelection","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","getDOMSelection","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","React","useCallback","useEffect","useRef","useState","useEditorConfigContext","getSelectedNode","setFloatingElemPositionForLinkEditor","FieldsDrawer","useLexicalDrawer","$isAutoLinkNode","$createLinkNode","$isLinkNode","TOGGLE_LINK_COMMAND","TOGGLE_LINK_WITH_MODAL_COMMAND","preventDefault","event","LinkEditor","anchorElem","editor","linkNode","setLinkNode","editorRef","linkUrl","setLinkUrl","linkLabel","setLinkLabel","fieldProps","schemaPath","uuid","isEditable","config","getEntityConfig","i18n","t","stateData","setStateData","editDepth","isLink","setIsLink","selectedNodes","setSelectedNodes","locale","isAutoLink","setIsAutoLink","drawerSlug","slug","depth","toggleDrawer","setNotLink","current","style","opacity","transform","undefined","$updateLinkEditor","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusLinkParent","badNode","getNodes","filter","node","find","is","fields","getFields","data","id","getID","text","getTextContent","linkType","url","routes","admin","doc","relationTo","value","relatedField","collectionSlug","label","String","collection","Error","loadingLabel","labels","singular","replace","get","serverURL","api","headers","language","params","code","then","res","ok","status","json","useAsTitle","title","catch","editorElem","nativeSelection","_window","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","window","addEventListener","removeEventListener","registerUpdateListener","editorState","Fragment","div","ref","length","a","href","rel","target","__fields","newTab","span","button","aria-label","onClick","onMouseDown","tabIndex","type","drawerTitle","featureKey","handleDrawerSubmit","newLinkPayload","bareLinkFields","linkParent","getParent","schemaPathSuffix"],"mappings":"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"}
@@ -1,14 +1,18 @@
1
1
  'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import * as React from 'react';
4
4
  import { createPortal } from 'react-dom';
5
5
  import './index.scss';
6
6
  import { LinkEditor } from './LinkEditor/index.js';
7
7
  export const FloatingLinkEditorPlugin = (props)=>{
8
8
  const { anchorElem = document.body } = props;
9
- return /*#__PURE__*/ createPortal(/*#__PURE__*/ _jsx(LinkEditor, {
9
+ return /*#__PURE__*/ createPortal(/*#__PURE__*/ _jsxDEV(LinkEditor, {
10
10
  anchorElem: anchorElem
11
- }), anchorElem);
11
+ }, void 0, false, {
12
+ fileName: "src/features/link/client/plugins/floatingLinkEditor/index.tsx",
13
+ lineNumber: 14,
14
+ columnNumber: 23
15
+ }, this), anchorElem);
12
16
  };
13
17
 
14
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nimport './index.scss'\nimport { LinkEditor } from './LinkEditor/index.js'\n\nexport const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps> = (props) => {\n const { anchorElem = document.body } = props\n\n return createPortal(<LinkEditor anchorElem={anchorElem} />, anchorElem)\n}\n"],"names":["React","createPortal","LinkEditor","FloatingLinkEditorPlugin","props","anchorElem","document","body"],"mappings":"AAAA;;AACA,YAAYA,WAAW,QAAO;AAC9B,SAASC,YAAY,QAAQ,YAAW;AAKxC,OAAO,eAAc;AACrB,SAASC,UAAU,QAAQ,wBAAuB;AAElD,OAAO,MAAMC,2BAAmE,CAACC;IAC/E,MAAM,EAAEC,aAAaC,SAASC,IAAI,EAAE,GAAGH;IAEvC,qBAAOH,2BAAa,KAACC;QAAWG,YAAYA;QAAgBA;AAC9D,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nimport './index.scss'\nimport { LinkEditor } from './LinkEditor/index.js'\n\nexport const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps> = (props) => {\n const { anchorElem = document.body } = props\n\n return createPortal(<LinkEditor anchorElem={anchorElem} />, anchorElem)\n}\n"],"names":["React","createPortal","LinkEditor","FloatingLinkEditorPlugin","props","anchorElem","document","body"],"mappings":"AAAA;;AACA,YAAYA,WAAW,QAAO;AAC9B,SAASC,YAAY,QAAQ,YAAW;AAKxC,OAAO,eAAc;AACrB,SAASC,UAAU,QAAQ,wBAAuB;AAElD,OAAO,MAAMC,2BAAmE,CAACC;IAC/E,MAAM,EAAEC,aAAaC,SAASC,IAAI,EAAE,GAAGH;IAEvC,qBAAOH,2BAAa,QAACC;QAAWG,YAAYA;;;;;cAAgBA;AAC9D,EAAC"}
@@ -0,0 +1,92 @@
1
+ @import '~@payloadcms/ui/scss';
2
+
3
+ @layer payload-default {
4
+ .link-editor {
5
+ z-index: 1;
6
+ display: flex;
7
+ align-items: center;
8
+ background: var(--theme-input-bg);
9
+ padding: 4px 4px 4px 12px;
10
+ vertical-align: middle;
11
+ position: absolute;
12
+ top: 0;
13
+ left: 0;
14
+ opacity: 0;
15
+ border-radius: $style-radius-m;
16
+ transition: opacity 0.2s;
17
+ will-change: transform;
18
+ box-shadow:
19
+ 0px 1px 2px 1px rgba(0, 0, 0, 0.1),
20
+ 0px 4px 16px 0px rgba(0, 0, 0, 0.1),
21
+ 0px -4px 16px 0px rgba(0, 0, 0, 0.1);
22
+
23
+ .link-input {
24
+ display: flex;
25
+ align-items: center;
26
+ flex-direction: row;
27
+ flex-wrap: nowrap;
28
+ min-height: 28px;
29
+ box-sizing: border-box;
30
+ @extend %body;
31
+ border: 0;
32
+ outline: 0;
33
+ position: relative;
34
+ font-family: var(--font-body);
35
+
36
+ .icon--externalLink {
37
+ margin-right: 5px;
38
+ }
39
+
40
+ &__label-pure {
41
+ color: var(--theme-elevation-1000);
42
+ margin-right: 15px;
43
+ display: block;
44
+ white-space: nowrap;
45
+ overflow: hidden;
46
+ }
47
+
48
+ a {
49
+ text-decoration: underline;
50
+ display: block;
51
+ white-space: nowrap;
52
+ overflow: hidden;
53
+ margin-right: base(0.4);
54
+ text-overflow: ellipsis;
55
+ color: var(--theme-success-750);
56
+
57
+ &:hover {
58
+ color: var(--theme-success-850);
59
+ }
60
+ }
61
+ }
62
+
63
+ button {
64
+ all: unset;
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ background-size: 16px;
69
+ background-position: center;
70
+ background-repeat: no-repeat;
71
+ width: 30px;
72
+ height: 30px;
73
+ cursor: pointer;
74
+ color: var(--theme-elevation-600);
75
+ border-radius: $style-radius-m;
76
+
77
+ &:hover:not([disabled]) {
78
+ color: var(--theme-elevation-800);
79
+ background-color: var(--theme-elevation-100);
80
+ }
81
+ }
82
+ }
83
+
84
+ html[data-theme='light'] {
85
+ .link-editor {
86
+ box-shadow:
87
+ 0px 1px 2px 1px rgba(0, 0, 0, 0.05),
88
+ 0px 4px 8px 0px rgba(0, 0, 0, 0.05),
89
+ 0px -4px 16px 0px rgba(0, 0, 0, 0.05);
90
+ }
91
+ }
92
+ }
@@ -1,9 +1,13 @@
1
1
  'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin.js';
4
4
  import React from 'react';
5
5
  export const LexicalCheckListPlugin = ()=>{
6
- return /*#__PURE__*/ _jsx(CheckListPlugin, {});
6
+ return /*#__PURE__*/ _jsxDEV(CheckListPlugin, {}, void 0, false, {
7
+ fileName: "src/features/lists/checklist/client/plugin/index.tsx",
8
+ lineNumber: 8,
9
+ columnNumber: 10
10
+ }, this);
7
11
  };
8
12
 
9
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/lists/checklist/client/plugin/index.tsx"],"sourcesContent":["'use client'\nimport { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin.js'\nimport React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nexport const LexicalCheckListPlugin: PluginComponent<undefined> = () => {\n return <CheckListPlugin />\n}\n"],"names":["CheckListPlugin","React","LexicalCheckListPlugin"],"mappings":"AAAA;;AACA,SAASA,eAAe,QAAQ,2CAA0C;AAC1E,OAAOC,WAAW,QAAO;AAIzB,OAAO,MAAMC,yBAAqD;IAChE,qBAAO,KAACF;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/features/lists/checklist/client/plugin/index.tsx"],"sourcesContent":["'use client'\nimport { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin.js'\nimport React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nexport const LexicalCheckListPlugin: PluginComponent<undefined> = () => {\n return <CheckListPlugin />\n}\n"],"names":["CheckListPlugin","React","LexicalCheckListPlugin"],"mappings":"AAAA;;AACA,SAASA,eAAe,QAAQ,2CAA0C;AAC1E,OAAOC,WAAW,QAAO;AAIzB,OAAO,MAAMC,yBAAqD;IAChE,qBAAO,QAACF;;;;;AACV,EAAC"}
@@ -1,9 +1,13 @@
1
1
  'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import { ListPlugin } from '@lexical/react/LexicalListPlugin.js';
4
4
  import React from 'react';
5
5
  export const LexicalListPlugin = ()=>{
6
- return /*#__PURE__*/ _jsx(ListPlugin, {});
6
+ return /*#__PURE__*/ _jsxDEV(ListPlugin, {}, void 0, false, {
7
+ fileName: "src/features/lists/plugin/index.tsx",
8
+ lineNumber: 23,
9
+ columnNumber: 10
10
+ }, this);
7
11
  };
8
12
 
9
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/lists/plugin/index.tsx"],"sourcesContent":["'use client'\nimport type {\n SerializedListItemNode as _SerializedListItemNode,\n SerializedListNode as _SerializedListNode,\n} from '@lexical/list'\nimport type { SerializedLexicalNode } from 'lexical'\n\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin.js'\nimport React from 'react'\n\nimport type { StronglyTypedElementNode } from '../../../nodeTypes.js'\nimport type { PluginComponent } from '../../typesClient.js'\n\nexport type SerializedListItemNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n checked?: boolean\n} & StronglyTypedElementNode<_SerializedListItemNode, 'listitem', T>\n\nexport type SerializedListNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n checked?: boolean\n} & StronglyTypedElementNode<_SerializedListNode, 'list', T>\n\nexport const LexicalListPlugin: PluginComponent<undefined> = () => {\n return <ListPlugin />\n}\n"],"names":["ListPlugin","React","LexicalListPlugin"],"mappings":"AAAA;;AAOA,SAASA,UAAU,QAAQ,sCAAqC;AAChE,OAAOC,WAAW,QAAO;AAazB,OAAO,MAAMC,oBAAgD;IAC3D,qBAAO,KAACF;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../../src/features/lists/plugin/index.tsx"],"sourcesContent":["'use client'\nimport type {\n SerializedListItemNode as _SerializedListItemNode,\n SerializedListNode as _SerializedListNode,\n} from '@lexical/list'\nimport type { SerializedLexicalNode } from 'lexical'\n\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin.js'\nimport React from 'react'\n\nimport type { StronglyTypedElementNode } from '../../../nodeTypes.js'\nimport type { PluginComponent } from '../../typesClient.js'\n\nexport type SerializedListItemNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n checked?: boolean\n} & StronglyTypedElementNode<_SerializedListItemNode, 'listitem', T>\n\nexport type SerializedListNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n checked?: boolean\n} & StronglyTypedElementNode<_SerializedListNode, 'list', T>\n\nexport const LexicalListPlugin: PluginComponent<undefined> = () => {\n return <ListPlugin />\n}\n"],"names":["ListPlugin","React","LexicalListPlugin"],"mappings":"AAAA;;AAOA,SAASA,UAAU,QAAQ,sCAAqC;AAChE,OAAOC,WAAW,QAAO;AAazB,OAAO,MAAMC,oBAAgD;IAC3D,qBAAO,QAACF;;;;;AACV,EAAC"}
@@ -1,17 +1,25 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import React from 'react';
4
4
  import './index.scss';
5
5
  export const UnknownConvertedNodeComponent = (props)=>{
6
6
  const { data } = props;
7
- return /*#__PURE__*/ _jsxs("div", {
7
+ return /*#__PURE__*/ _jsxDEV("div", {
8
8
  children: [
9
9
  "Unknown converted payload-plugin-lexical node: ",
10
- /*#__PURE__*/ _jsx("strong", {
10
+ /*#__PURE__*/ _jsxDEV("strong", {
11
11
  children: data?.nodeType
12
- })
12
+ }, void 0, false, {
13
+ fileName: "src/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.tsx",
14
+ lineNumber: 17,
15
+ columnNumber: 54
16
+ }, this)
13
17
  ]
14
- });
18
+ }, void 0, true, {
19
+ fileName: "src/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.tsx",
20
+ lineNumber: 16,
21
+ columnNumber: 5
22
+ }, this);
15
23
  };
16
24
 
17
25
  //# sourceMappingURL=Component.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { UnknownConvertedNodeData } from './index.js'\n\nimport './index.scss'\n\ntype Props = {\n data: UnknownConvertedNodeData\n}\n\nexport const UnknownConvertedNodeComponent: React.FC<Props> = (props) => {\n const { data } = props\n\n return (\n <div>\n Unknown converted payload-plugin-lexical node: <strong>{data?.nodeType}</strong>\n </div>\n )\n}\n"],"names":["React","UnknownConvertedNodeComponent","props","data","div","strong","nodeType"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAIzB,OAAO,eAAc;AAMrB,OAAO,MAAMC,gCAAiD,CAACC;IAC7D,MAAM,EAAEC,IAAI,EAAE,GAAGD;IAEjB,qBACE,MAACE;;YAAI;0BAC4C,KAACC;0BAAQF,MAAMG;;;;AAGpE,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { UnknownConvertedNodeData } from './index.js'\n\nimport './index.scss'\n\ntype Props = {\n data: UnknownConvertedNodeData\n}\n\nexport const UnknownConvertedNodeComponent: React.FC<Props> = (props) => {\n const { data } = props\n\n return (\n <div>\n Unknown converted payload-plugin-lexical node: <strong>{data?.nodeType}</strong>\n </div>\n )\n}\n"],"names":["React","UnknownConvertedNodeComponent","props","data","div","strong","nodeType"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAIzB,OAAO,eAAc;AAMrB,OAAO,MAAMC,gCAAiD,CAACC;IAC7D,MAAM,EAAEC,IAAI,EAAE,GAAGD;IAEjB,qBACE,QAACE;;YAAI;0BAC4C,QAACC;0BAAQF,MAAMG;;;;;;;;;;;;AAGpE,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
  import { addClassNamesToElement } from '@lexical/utils';
3
3
  import { $applyNodeReplacement, DecoratorNode } from 'lexical';
4
4
  import * as React from 'react';
@@ -38,9 +38,13 @@ const Component = /*#__PURE__*/ React.lazy(()=>import('./Component.js').then((mo
38
38
  return element;
39
39
  }
40
40
  decorate() {
41
- return /*#__PURE__*/ _jsx(Component, {
41
+ return /*#__PURE__*/ _jsxDEV(Component, {
42
42
  data: this.__data
43
- });
43
+ }, void 0, false, {
44
+ fileName: "src/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.tsx",
45
+ lineNumber: 66,
46
+ columnNumber: 12
47
+ }, this);
44
48
  }
45
49
  exportJSON() {
46
50
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.tsx"],"sourcesContent":["import type { EditorConfig, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, DecoratorNode } from 'lexical'\nimport * as React from 'react'\n\nexport type UnknownConvertedNodeData = {\n nodeData: unknown\n nodeType: string\n}\n\nexport type SerializedUnknownConvertedNode = Spread<\n {\n data: UnknownConvertedNodeData\n },\n SerializedLexicalNode\n>\n\nconst Component = React.lazy(() =>\n import('./Component.js').then((module) => ({\n default: module.UnknownConvertedNodeComponent,\n })),\n)\n\n/** @noInheritDoc */\nexport class UnknownConvertedNode extends DecoratorNode<JSX.Element> {\n __data: UnknownConvertedNodeData\n\n constructor({ data, key }: { data: UnknownConvertedNodeData; key?: NodeKey }) {\n super(key)\n this.__data = data\n }\n\n static override clone(node: UnknownConvertedNode): UnknownConvertedNode {\n return new this({\n data: node.__data,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'unknownConverted'\n }\n\n static override importJSON(serializedNode: SerializedUnknownConvertedNode): UnknownConvertedNode {\n const node = $createUnknownConvertedNode({ data: serializedNode.data })\n return node\n }\n\n canInsertTextAfter(): true {\n return true\n }\n\n canInsertTextBefore(): true {\n return true\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, 'unknownConverted')\n return element\n }\n\n override decorate(): JSX.Element {\n return <Component data={this.__data} />\n }\n\n override exportJSON(): SerializedUnknownConvertedNode {\n return {\n type: this.getType(),\n data: this.__data,\n version: 1,\n }\n }\n\n // Mutation\n\n override isInline(): boolean {\n return true\n }\n\n override updateDOM(prevNode: this, dom: HTMLElement): boolean {\n return false\n }\n}\n\nexport function $createUnknownConvertedNode({\n data,\n}: {\n data: UnknownConvertedNodeData\n}): UnknownConvertedNode {\n return $applyNodeReplacement(\n new UnknownConvertedNode({\n data,\n }),\n )\n}\n\nexport function $isUnknownConvertedNode(\n node: LexicalNode | null | undefined,\n): node is UnknownConvertedNode {\n return node instanceof UnknownConvertedNode\n}\n"],"names":["addClassNamesToElement","$applyNodeReplacement","DecoratorNode","React","Component","lazy","then","module","default","UnknownConvertedNodeComponent","UnknownConvertedNode","__data","constructor","data","key","clone","node","__key","getType","importJSON","serializedNode","$createUnknownConvertedNode","canInsertTextAfter","canInsertTextBefore","createDOM","config","element","document","createElement","decorate","exportJSON","type","version","isInline","updateDOM","prevNode","dom","$isUnknownConvertedNode"],"mappings":";AAGA,SAASA,sBAAsB,QAAQ,iBAAgB;AACvD,SAASC,qBAAqB,EAAEC,aAAa,QAAQ,UAAS;AAC9D,YAAYC,WAAW,QAAO;AAc9B,MAAMC,0BAAYD,MAAME,IAAI,CAAC,IAC3B,MAAM,CAAC,kBAAkBC,IAAI,CAAC,CAACC,SAAY,CAAA;YACzCC,SAASD,OAAOE,6BAA6B;QAC/C,CAAA;AAGF,kBAAkB,GAClB,OAAO,MAAMC,6BAA6BR;IACxCS,OAAgC;IAEhCC,YAAY,EAAEC,IAAI,EAAEC,GAAG,EAAqD,CAAE;QAC5E,KAAK,CAACA;QACN,IAAI,CAACH,MAAM,GAAGE;IAChB;IAEA,OAAgBE,MAAMC,IAA0B,EAAwB;QACtE,OAAO,IAAI,IAAI,CAAC;YACdH,MAAMG,KAAKL,MAAM;YACjBG,KAAKE,KAAKC,KAAK;QACjB;IACF;IAEA,OAAgBC,UAAkB;QAChC,OAAO;IACT;IAEA,OAAgBC,WAAWC,cAA8C,EAAwB;QAC/F,MAAMJ,OAAOK,4BAA4B;YAAER,MAAMO,eAAeP,IAAI;QAAC;QACrE,OAAOG;IACT;IAEAM,qBAA2B;QACzB,OAAO;IACT;IAEAC,sBAA4B;QAC1B,OAAO;IACT;IAESC,UAAUC,MAAoB,EAAe;QACpD,MAAMC,UAAUC,SAASC,aAAa,CAAC;QACvC5B,uBAAuB0B,SAAS;QAChC,OAAOA;IACT;IAESG,WAAwB;QAC/B,qBAAO,KAACzB;YAAUS,MAAM,IAAI,CAACF,MAAM;;IACrC;IAESmB,aAA6C;QACpD,OAAO;YACLC,MAAM,IAAI,CAACb,OAAO;YAClBL,MAAM,IAAI,CAACF,MAAM;YACjBqB,SAAS;QACX;IACF;IAEA,WAAW;IAEFC,WAAoB;QAC3B,OAAO;IACT;IAESC,UAAUC,QAAc,EAAEC,GAAgB,EAAW;QAC5D,OAAO;IACT;AACF;AAEA,OAAO,SAASf,4BAA4B,EAC1CR,IAAI,EAGL;IACC,OAAOZ,sBACL,IAAIS,qBAAqB;QACvBG;IACF;AAEJ;AAEA,OAAO,SAASwB,wBACdrB,IAAoC;IAEpC,OAAOA,gBAAgBN;AACzB"}
1
+ {"version":3,"sources":["../../../../../../src/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.tsx"],"sourcesContent":["import type { EditorConfig, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, DecoratorNode } from 'lexical'\nimport * as React from 'react'\n\nexport type UnknownConvertedNodeData = {\n nodeData: unknown\n nodeType: string\n}\n\nexport type SerializedUnknownConvertedNode = Spread<\n {\n data: UnknownConvertedNodeData\n },\n SerializedLexicalNode\n>\n\nconst Component = React.lazy(() =>\n import('./Component.js').then((module) => ({\n default: module.UnknownConvertedNodeComponent,\n })),\n)\n\n/** @noInheritDoc */\nexport class UnknownConvertedNode extends DecoratorNode<JSX.Element> {\n __data: UnknownConvertedNodeData\n\n constructor({ data, key }: { data: UnknownConvertedNodeData; key?: NodeKey }) {\n super(key)\n this.__data = data\n }\n\n static override clone(node: UnknownConvertedNode): UnknownConvertedNode {\n return new this({\n data: node.__data,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'unknownConverted'\n }\n\n static override importJSON(serializedNode: SerializedUnknownConvertedNode): UnknownConvertedNode {\n const node = $createUnknownConvertedNode({ data: serializedNode.data })\n return node\n }\n\n canInsertTextAfter(): true {\n return true\n }\n\n canInsertTextBefore(): true {\n return true\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, 'unknownConverted')\n return element\n }\n\n override decorate(): JSX.Element {\n return <Component data={this.__data} />\n }\n\n override exportJSON(): SerializedUnknownConvertedNode {\n return {\n type: this.getType(),\n data: this.__data,\n version: 1,\n }\n }\n\n // Mutation\n\n override isInline(): boolean {\n return true\n }\n\n override updateDOM(prevNode: this, dom: HTMLElement): boolean {\n return false\n }\n}\n\nexport function $createUnknownConvertedNode({\n data,\n}: {\n data: UnknownConvertedNodeData\n}): UnknownConvertedNode {\n return $applyNodeReplacement(\n new UnknownConvertedNode({\n data,\n }),\n )\n}\n\nexport function $isUnknownConvertedNode(\n node: LexicalNode | null | undefined,\n): node is UnknownConvertedNode {\n return node instanceof UnknownConvertedNode\n}\n"],"names":["addClassNamesToElement","$applyNodeReplacement","DecoratorNode","React","Component","lazy","then","module","default","UnknownConvertedNodeComponent","UnknownConvertedNode","__data","constructor","data","key","clone","node","__key","getType","importJSON","serializedNode","$createUnknownConvertedNode","canInsertTextAfter","canInsertTextBefore","createDOM","config","element","document","createElement","decorate","exportJSON","type","version","isInline","updateDOM","prevNode","dom","$isUnknownConvertedNode"],"mappings":";AAGA,SAASA,sBAAsB,QAAQ,iBAAgB;AACvD,SAASC,qBAAqB,EAAEC,aAAa,QAAQ,UAAS;AAC9D,YAAYC,WAAW,QAAO;AAc9B,MAAMC,0BAAYD,MAAME,IAAI,CAAC,IAC3B,MAAM,CAAC,kBAAkBC,IAAI,CAAC,CAACC,SAAY,CAAA;YACzCC,SAASD,OAAOE,6BAA6B;QAC/C,CAAA;AAGF,kBAAkB,GAClB,OAAO,MAAMC,6BAA6BR;IACxCS,OAAgC;IAEhCC,YAAY,EAAEC,IAAI,EAAEC,GAAG,EAAqD,CAAE;QAC5E,KAAK,CAACA;QACN,IAAI,CAACH,MAAM,GAAGE;IAChB;IAEA,OAAgBE,MAAMC,IAA0B,EAAwB;QACtE,OAAO,IAAI,IAAI,CAAC;YACdH,MAAMG,KAAKL,MAAM;YACjBG,KAAKE,KAAKC,KAAK;QACjB;IACF;IAEA,OAAgBC,UAAkB;QAChC,OAAO;IACT;IAEA,OAAgBC,WAAWC,cAA8C,EAAwB;QAC/F,MAAMJ,OAAOK,4BAA4B;YAAER,MAAMO,eAAeP,IAAI;QAAC;QACrE,OAAOG;IACT;IAEAM,qBAA2B;QACzB,OAAO;IACT;IAEAC,sBAA4B;QAC1B,OAAO;IACT;IAESC,UAAUC,MAAoB,EAAe;QACpD,MAAMC,UAAUC,SAASC,aAAa,CAAC;QACvC5B,uBAAuB0B,SAAS;QAChC,OAAOA;IACT;IAESG,WAAwB;QAC/B,qBAAO,QAACzB;YAAUS,MAAM,IAAI,CAACF,MAAM;;;;;;IACrC;IAESmB,aAA6C;QACpD,OAAO;YACLC,MAAM,IAAI,CAACb,OAAO;YAClBL,MAAM,IAAI,CAACF,MAAM;YACjBqB,SAAS;QACX;IACF;IAEA,WAAW;IAEFC,WAAoB;QAC3B,OAAO;IACT;IAESC,UAAUC,QAAc,EAAEC,GAAgB,EAAW;QAC5D,OAAO;IACT;AACF;AAEA,OAAO,SAASf,4BAA4B,EAC1CR,IAAI,EAGL;IACC,OAAOZ,sBACL,IAAIS,qBAAqB;QACvBG;IACF;AAEJ;AAEA,OAAO,SAASwB,wBACdrB,IAAoC;IAEpC,OAAOA,gBAAgBN;AACzB"}
@@ -0,0 +1,16 @@
1
+ @layer payload-default {
2
+ span.unknownConverted {
3
+ text-transform: uppercase;
4
+ font-family: 'Roboto Mono', monospace;
5
+ letter-spacing: 2px;
6
+ font-size: calc(var(--base) * 0.5);
7
+ margin: 0 0 var(--base);
8
+ background: red;
9
+ color: white;
10
+ display: inline-block;
11
+
12
+ div {
13
+ background: red;
14
+ }
15
+ }
16
+ }
@@ -1,17 +1,25 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import React from 'react';
4
4
  import './index.scss';
5
5
  export const UnknownConvertedNodeComponent = (props)=>{
6
6
  const { data } = props;
7
- return /*#__PURE__*/ _jsxs("div", {
7
+ return /*#__PURE__*/ _jsxDEV("div", {
8
8
  children: [
9
9
  "Unknown converted Slate node: ",
10
- /*#__PURE__*/ _jsx("strong", {
10
+ /*#__PURE__*/ _jsxDEV("strong", {
11
11
  children: data?.nodeType
12
- })
12
+ }, void 0, false, {
13
+ fileName: "src/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.tsx",
14
+ lineNumber: 17,
15
+ columnNumber: 37
16
+ }, this)
13
17
  ]
14
- });
18
+ }, void 0, true, {
19
+ fileName: "src/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.tsx",
20
+ lineNumber: 16,
21
+ columnNumber: 5
22
+ }, this);
15
23
  };
16
24
 
17
25
  //# sourceMappingURL=Component.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { UnknownConvertedNodeData } from './index.js'\n\nimport './index.scss'\n\ntype Props = {\n data: UnknownConvertedNodeData\n}\n\nexport const UnknownConvertedNodeComponent: React.FC<Props> = (props) => {\n const { data } = props\n\n return (\n <div>\n Unknown converted Slate node: <strong>{data?.nodeType}</strong>\n </div>\n )\n}\n"],"names":["React","UnknownConvertedNodeComponent","props","data","div","strong","nodeType"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAIzB,OAAO,eAAc;AAMrB,OAAO,MAAMC,gCAAiD,CAACC;IAC7D,MAAM,EAAEC,IAAI,EAAE,GAAGD;IAEjB,qBACE,MAACE;;YAAI;0BAC2B,KAACC;0BAAQF,MAAMG;;;;AAGnD,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { UnknownConvertedNodeData } from './index.js'\n\nimport './index.scss'\n\ntype Props = {\n data: UnknownConvertedNodeData\n}\n\nexport const UnknownConvertedNodeComponent: React.FC<Props> = (props) => {\n const { data } = props\n\n return (\n <div>\n Unknown converted Slate node: <strong>{data?.nodeType}</strong>\n </div>\n )\n}\n"],"names":["React","UnknownConvertedNodeComponent","props","data","div","strong","nodeType"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAIzB,OAAO,eAAc;AAMrB,OAAO,MAAMC,gCAAiD,CAACC;IAC7D,MAAM,EAAEC,IAAI,EAAE,GAAGD;IAEjB,qBACE,QAACE;;YAAI;0BAC2B,QAACC;0BAAQF,MAAMG;;;;;;;;;;;;AAGnD,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
  import { addClassNamesToElement } from '@lexical/utils';
3
3
  import { $applyNodeReplacement, DecoratorNode } from 'lexical';
4
4
  import * as React from 'react';
@@ -38,9 +38,13 @@ const Component = /*#__PURE__*/ React.lazy(()=>import('./Component.js').then((mo
38
38
  return element;
39
39
  }
40
40
  decorate() {
41
- return /*#__PURE__*/ _jsx(Component, {
41
+ return /*#__PURE__*/ _jsxDEV(Component, {
42
42
  data: this.__data
43
- });
43
+ }, void 0, false, {
44
+ fileName: "src/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.tsx",
45
+ lineNumber: 66,
46
+ columnNumber: 12
47
+ }, this);
44
48
  }
45
49
  exportJSON() {
46
50
  return {