@payloadcms/richtext-lexical 4.0.0-internal.cd69eef → 4.0.0-internal.ce66a41

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 (478) hide show
  1. package/dist/exports/client/Field-MT4FK3IP.js +2 -0
  2. package/dist/exports/client/Field-MT4FK3IP.js.map +7 -0
  3. package/dist/exports/client/chunk-3LRZDIIG.js +2 -0
  4. package/dist/exports/client/{chunk-X3D4LZS7.js.map → chunk-3LRZDIIG.js.map} +4 -4
  5. package/dist/exports/client/chunk-43E5QYAA.js +2 -0
  6. package/dist/exports/client/chunk-43E5QYAA.js.map +7 -0
  7. package/dist/exports/client/chunk-ATPSL6IX.js +2 -0
  8. package/dist/exports/client/chunk-ATPSL6IX.js.map +7 -0
  9. package/dist/exports/client/component-D5QLYS7W.js +2 -0
  10. package/dist/exports/client/component-D5QLYS7W.js.map +7 -0
  11. package/dist/exports/client/componentInline-ZEP5JPTC.js +2 -0
  12. package/dist/exports/client/index.d.ts +1 -1
  13. package/dist/exports/client/index.d.ts.map +1 -1
  14. package/dist/exports/client/index.js +26 -26
  15. package/dist/exports/client/index.js.map +4 -4
  16. package/dist/features/blocks/client/component/BlockReordering/index.d.ts +11 -0
  17. package/dist/features/blocks/client/component/BlockReordering/index.d.ts.map +1 -0
  18. package/dist/features/blocks/client/component/BlockReordering/index.js +18 -0
  19. package/dist/features/blocks/client/component/BlockReordering/index.js.map +1 -0
  20. package/dist/features/blocks/client/component/index.d.ts +0 -6
  21. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  22. package/dist/features/blocks/client/component/index.js +168 -101
  23. package/dist/features/blocks/client/component/index.js.map +1 -1
  24. package/dist/features/blocks/client/component/useBlockReordering.d.ts +16 -0
  25. package/dist/features/blocks/client/component/useBlockReordering.d.ts.map +1 -0
  26. package/dist/features/blocks/client/component/useBlockReordering.js +178 -0
  27. package/dist/features/blocks/client/component/useBlockReordering.js.map +1 -0
  28. package/dist/features/blocks/client/componentInline/index.css +0 -1
  29. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  30. package/dist/features/blocks/client/componentInline/index.js +30 -22
  31. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  32. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts +9 -0
  33. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts.map +1 -0
  34. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js +95 -0
  35. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js.map +1 -0
  36. package/dist/features/blocks/server/index.js +2 -2
  37. package/dist/features/blocks/server/index.js.map +1 -1
  38. package/dist/features/converters/lexicalToHtml/async/converters/heading.js +1 -1
  39. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  40. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  41. package/dist/features/converters/lexicalToHtml/async/converters/list.js +4 -3
  42. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  43. package/dist/features/converters/lexicalToHtml/async/converters/upload.js +3 -3
  44. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  45. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.d.ts.map +1 -1
  46. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +3 -2
  47. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  48. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js +1 -1
  49. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  50. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  51. package/dist/features/converters/lexicalToHtml/sync/converters/list.js +4 -3
  52. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  53. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js +3 -3
  54. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  55. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  56. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +2 -1
  57. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  58. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  59. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +2 -1
  60. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  61. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +4 -4
  62. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  63. package/dist/features/converters/utilities/payloadPopulateFn.d.ts.map +1 -1
  64. package/dist/features/converters/utilities/payloadPopulateFn.js +4 -2
  65. package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
  66. package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
  67. package/dist/features/heading/constants.d.ts +2 -0
  68. package/dist/features/heading/constants.d.ts.map +1 -0
  69. package/dist/features/heading/constants.js +2 -0
  70. package/dist/features/heading/constants.js.map +1 -0
  71. package/dist/features/heading/server/index.d.ts.map +1 -1
  72. package/dist/features/heading/server/index.js +5 -1
  73. package/dist/features/heading/server/index.js.map +1 -1
  74. package/dist/features/heading/server/validate.d.ts +6 -0
  75. package/dist/features/heading/server/validate.d.ts.map +1 -0
  76. package/dist/features/heading/server/validate.js +15 -0
  77. package/dist/features/heading/server/validate.js.map +1 -0
  78. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
  79. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  80. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +1 -1
  81. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  82. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
  83. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  84. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
  85. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  86. package/dist/features/indent/client/IndentPlugin.d.ts.map +1 -1
  87. package/dist/features/indent/client/IndentPlugin.js +122 -1
  88. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  89. package/dist/features/indent/server/i18n.d.ts.map +1 -1
  90. package/dist/features/indent/server/i18n.js +74 -37
  91. package/dist/features/indent/server/i18n.js.map +1 -1
  92. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  93. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +8 -5
  94. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  95. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +0 -2
  96. package/dist/features/link/nodes/AutoLinkNode.d.ts +1 -1
  97. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  98. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  99. package/dist/features/link/nodes/LinkNode.d.ts +1 -1
  100. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  101. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  102. package/dist/features/link/server/index.js +2 -2
  103. package/dist/features/link/server/index.js.map +1 -1
  104. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  105. package/dist/features/lists/checklist/server/index.js +5 -2
  106. package/dist/features/lists/checklist/server/index.js.map +1 -1
  107. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  108. package/dist/features/lists/orderedList/server/index.js +5 -2
  109. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  110. package/dist/features/lists/shared/constants.d.ts +2 -0
  111. package/dist/features/lists/shared/constants.d.ts.map +1 -0
  112. package/dist/features/lists/shared/constants.js +2 -0
  113. package/dist/features/lists/shared/constants.js.map +1 -0
  114. package/dist/features/lists/shared/validate.d.ts +5 -0
  115. package/dist/features/lists/shared/validate.d.ts.map +1 -0
  116. package/dist/features/lists/shared/validate.js +15 -0
  117. package/dist/features/lists/shared/validate.js.map +1 -0
  118. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  119. package/dist/features/lists/unorderedList/server/index.js +5 -2
  120. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  121. package/dist/features/relationship/client/components/index.css +3 -6
  122. package/dist/features/relationship/client/index.d.ts +2 -2
  123. package/dist/features/relationship/client/index.d.ts.map +1 -1
  124. package/dist/features/relationship/client/index.js.map +1 -1
  125. package/dist/features/relationship/client/plugins/index.d.ts +2 -2
  126. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  127. package/dist/features/relationship/client/plugins/index.js +27 -31
  128. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  129. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts +2 -4
  130. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  131. package/dist/features/relationship/client/utils/useEnabledRelationships.js +53 -20
  132. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  133. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +2 -2
  134. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  135. package/dist/features/relationship/server/graphQLPopulationPromise.js +2 -2
  136. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  137. package/dist/features/relationship/server/index.d.ts +8 -1
  138. package/dist/features/relationship/server/index.d.ts.map +1 -1
  139. package/dist/features/relationship/server/index.js +28 -11
  140. package/dist/features/relationship/server/index.js.map +1 -1
  141. package/dist/features/relationship/server/schema.d.ts +2 -2
  142. package/dist/features/relationship/server/schema.d.ts.map +1 -1
  143. package/dist/features/relationship/server/schema.js +5 -10
  144. package/dist/features/relationship/server/schema.js.map +1 -1
  145. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +1 -6
  146. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -1
  147. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +1 -5
  148. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -1
  149. package/dist/features/table/client/index.d.ts.map +1 -0
  150. package/dist/features/table/client/index.js.map +1 -0
  151. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts +8 -0
  152. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts.map +1 -0
  153. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js +19 -0
  154. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js.map +1 -0
  155. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +0 -1
  156. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  157. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +17 -44
  158. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  159. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  160. package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +41 -18
  161. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  162. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  163. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  164. package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +0 -3
  165. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  166. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  167. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  168. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  169. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  170. package/dist/features/table/client/utils/debounce.js.map +1 -0
  171. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  172. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  173. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  174. package/dist/features/table/markdownTransformer.js.map +1 -0
  175. package/dist/features/table/server/index.d.ts +3 -0
  176. package/dist/features/table/server/index.d.ts.map +1 -0
  177. package/dist/features/{experimental_table → table}/server/index.js +4 -4
  178. package/dist/features/table/server/index.js.map +1 -0
  179. package/dist/features/table/server/schema.d.ts.map +1 -0
  180. package/dist/features/table/server/schema.js.map +1 -0
  181. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts +8 -0
  182. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts.map +1 -0
  183. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js +80 -0
  184. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js.map +1 -0
  185. package/dist/features/toolbars/fixed/client/Toolbar/index.css +78 -6
  186. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  187. package/dist/features/toolbars/fixed/client/Toolbar/index.js +4 -1
  188. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  189. package/dist/features/toolbars/inline/client/Toolbar/index.css +0 -1
  190. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  191. package/dist/features/toolbars/inline/client/Toolbar/index.js +2 -2
  192. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  193. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  194. package/dist/features/toolbars/shared/ToolbarButton/index.js +1 -0
  195. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  196. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  197. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +85 -32
  198. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  199. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +16 -14
  200. package/dist/features/typesServer.d.ts +14 -9
  201. package/dist/features/typesServer.d.ts.map +1 -1
  202. package/dist/features/typesServer.js.map +1 -1
  203. package/dist/features/upload/client/component/index.css +0 -2
  204. package/dist/features/upload/client/component/index.js +2 -1
  205. package/dist/features/upload/client/component/index.js.map +1 -1
  206. package/dist/features/upload/client/index.d.ts +3 -2
  207. package/dist/features/upload/client/index.d.ts.map +1 -1
  208. package/dist/features/upload/client/index.js.map +1 -1
  209. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  210. package/dist/features/upload/client/plugin/index.js +50 -53
  211. package/dist/features/upload/client/plugin/index.js.map +1 -1
  212. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +2 -2
  213. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  214. package/dist/features/upload/server/graphQLPopulationPromise.js +1 -1
  215. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  216. package/dist/features/upload/server/index.d.ts +6 -2
  217. package/dist/features/upload/server/index.d.ts.map +1 -1
  218. package/dist/features/upload/server/index.js +20 -16
  219. package/dist/features/upload/server/index.js.map +1 -1
  220. package/dist/features/upload/server/schema.d.ts +2 -2
  221. package/dist/features/upload/server/schema.d.ts.map +1 -1
  222. package/dist/features/upload/server/schema.js +4 -8
  223. package/dist/features/upload/server/schema.js.map +1 -1
  224. package/dist/features/upload/server/validate.d.ts +2 -2
  225. package/dist/features/upload/server/validate.d.ts.map +1 -1
  226. package/dist/features/upload/server/validate.js +3 -0
  227. package/dist/features/upload/server/validate.js.map +1 -1
  228. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  229. package/dist/field/Diff/converters/listitem/index.js +2 -1
  230. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  231. package/dist/field/Diff/converters/relationship/index.css +0 -1
  232. package/dist/field/Diff/converters/unknown/index.css +0 -1
  233. package/dist/field/Diff/converters/upload/index.css +0 -1
  234. package/dist/field/Diff/index.css +0 -2
  235. package/dist/field/Diff/index.d.ts +3 -2
  236. package/dist/field/Diff/index.d.ts.map +1 -1
  237. package/dist/field/Diff/index.js +1 -0
  238. package/dist/field/Diff/index.js.map +1 -1
  239. package/dist/field/Field.d.ts.map +1 -1
  240. package/dist/field/Field.js +8 -1
  241. package/dist/field/Field.js.map +1 -1
  242. package/dist/field/RenderLexical/index.d.ts +3 -1
  243. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  244. package/dist/field/RenderLexical/index.js +23 -23
  245. package/dist/field/RenderLexical/index.js.map +1 -1
  246. package/dist/field/ViewSelector.d.ts.map +1 -1
  247. package/dist/field/ViewSelector.js +1 -0
  248. package/dist/field/ViewSelector.js.map +1 -1
  249. package/dist/field/bundled.css +1 -1
  250. package/dist/field/index.css +10 -11
  251. package/dist/i18n.d.ts.map +1 -1
  252. package/dist/i18n.js +68 -0
  253. package/dist/i18n.js.map +1 -1
  254. package/dist/index.d.ts +2 -2
  255. package/dist/index.d.ts.map +1 -1
  256. package/dist/index.js +27 -5
  257. package/dist/index.js.map +1 -1
  258. package/dist/lexical/LexicalEditor.css +30 -21
  259. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  260. package/dist/lexical/LexicalEditor.js +61 -64
  261. package/dist/lexical/LexicalEditor.js.map +1 -1
  262. package/dist/lexical/config/server/loader.d.ts +1 -1
  263. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  264. package/dist/lexical/config/server/loader.js +2 -2
  265. package/dist/lexical/config/server/loader.js.map +1 -1
  266. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  267. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  268. package/dist/lexical/config/server/sanitize.js +2 -2
  269. package/dist/lexical/config/server/sanitize.js.map +1 -1
  270. package/dist/lexical/plugins/DecoratorPlugin/index.d.ts.map +1 -1
  271. package/dist/lexical/plugins/DecoratorPlugin/index.js +24 -21
  272. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  273. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +18 -25
  274. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  275. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +27 -14
  276. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  277. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  278. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  279. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -21
  280. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  281. package/dist/lexical/plugins/SlashMenu/index.css +0 -2
  282. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +1 -0
  283. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +2 -2
  284. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  285. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +1 -0
  286. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  287. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +16 -2
  288. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  289. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts +7 -0
  290. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts.map +1 -0
  291. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js +65 -0
  292. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js.map +1 -0
  293. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
  294. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +2 -0
  295. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  296. package/dist/lexical/theme/EditorTheme.css +0 -2
  297. package/dist/lexical/ui/ContentEditable.css +16 -15
  298. package/dist/lexical/ui/ContentEditable.d.ts +2 -1
  299. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
  300. package/dist/lexical/ui/ContentEditable.js +21 -7
  301. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  302. package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
  303. package/dist/lexical/ui/icons/H3/index.js +13 -6
  304. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  305. package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
  306. package/dist/lexical/ui/icons/H4/index.js +13 -6
  307. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  308. package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
  309. package/dist/lexical/ui/icons/H5/index.js +13 -6
  310. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  311. package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
  312. package/dist/lexical/ui/icons/H6/index.js +13 -6
  313. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  314. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts +2 -0
  315. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -0
  316. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js +2 -0
  317. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -0
  318. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts +2 -0
  319. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -0
  320. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js +2 -0
  321. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -0
  322. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts +2 -0
  323. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -0
  324. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js +2 -0
  325. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -0
  326. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts +2 -0
  327. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -0
  328. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js +2 -0
  329. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -0
  330. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts +2 -0
  331. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -0
  332. package/dist/lexical-proxy/@lexical-react/ReactExtension.js +2 -0
  333. package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -0
  334. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts +2 -0
  335. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -0
  336. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js +2 -0
  337. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -0
  338. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts +2 -0
  339. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -0
  340. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js +2 -0
  341. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -0
  342. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts +2 -0
  343. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -0
  344. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js +2 -0
  345. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -0
  346. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts +2 -0
  347. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -0
  348. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js +2 -0
  349. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -0
  350. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts +2 -0
  351. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts.map +1 -0
  352. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js +2 -0
  353. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js.map +1 -0
  354. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts +2 -0
  355. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts.map +1 -0
  356. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js +2 -0
  357. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js.map +1 -0
  358. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts +2 -0
  359. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts.map +1 -0
  360. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js +2 -0
  361. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js.map +1 -0
  362. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts +2 -0
  363. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts.map +1 -0
  364. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js +2 -0
  365. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js.map +1 -0
  366. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts +2 -0
  367. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts.map +1 -0
  368. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js +2 -0
  369. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js.map +1 -0
  370. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts +2 -0
  371. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts.map +1 -0
  372. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js +2 -0
  373. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js.map +1 -0
  374. package/dist/presets/llmInstructions.d.ts +2 -0
  375. package/dist/presets/llmInstructions.d.ts.map +1 -0
  376. package/dist/presets/llmInstructions.js +13 -0
  377. package/dist/presets/llmInstructions.js.map +1 -0
  378. package/dist/types/index.d.ts +3 -3
  379. package/dist/types/index.d.ts.map +1 -1
  380. package/dist/types/index.js.map +1 -1
  381. package/dist/types/nodeTypes.d.ts +1 -1
  382. package/dist/types/nodeTypes.d.ts.map +1 -1
  383. package/dist/types/nodeTypes.js.map +1 -1
  384. package/dist/utilities/buildInitialState.d.ts +1 -0
  385. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  386. package/dist/utilities/buildInitialState.js +1 -0
  387. package/dist/utilities/buildInitialState.js.map +1 -1
  388. package/dist/utilities/createServerFeature.d.ts +1 -1
  389. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  390. package/dist/utilities/createServerFeature.js +2 -2
  391. package/dist/utilities/createServerFeature.js.map +1 -1
  392. package/dist/utilities/editorConfigFactory.d.ts +6 -6
  393. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  394. package/dist/utilities/editorConfigFactory.js +9 -9
  395. package/dist/utilities/editorConfigFactory.js.map +1 -1
  396. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  397. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  398. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  399. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  400. package/dist/utilities/upgradeLexicalData/index.js +6 -3
  401. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  402. package/dist/validate/hasText.d.ts +2 -2
  403. package/dist/validate/hasText.d.ts.map +1 -1
  404. package/dist/validate/hasText.js.map +1 -1
  405. package/dist/validate/index.d.ts +1 -1
  406. package/dist/validate/index.d.ts.map +1 -1
  407. package/package.json +100 -27
  408. package/dist/dependencyChecker.spec.js +0 -16
  409. package/dist/dependencyChecker.spec.js.map +0 -1
  410. package/dist/exports/client/Field-QGSHF22S.js +0 -2
  411. package/dist/exports/client/Field-QGSHF22S.js.map +0 -7
  412. package/dist/exports/client/bundled.css +0 -1
  413. package/dist/exports/client/chunk-ESITTE3C.js +0 -2
  414. package/dist/exports/client/chunk-ESITTE3C.js.map +0 -7
  415. package/dist/exports/client/chunk-UD4DQ4AK.js +0 -2
  416. package/dist/exports/client/chunk-UD4DQ4AK.js.map +0 -7
  417. package/dist/exports/client/chunk-X3D4LZS7.js +0 -2
  418. package/dist/exports/client/component-PHZQBOJE.js +0 -2
  419. package/dist/exports/client/component-PHZQBOJE.js.map +0 -7
  420. package/dist/exports/client/componentInline-H24N7GUG.js +0 -2
  421. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts +0 -11
  422. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +0 -1
  423. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +0 -20
  424. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +0 -1
  425. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +0 -180
  426. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +0 -1
  427. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  428. package/dist/features/experimental_table/client/index.js.map +0 -1
  429. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  430. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  431. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  432. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  433. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  434. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  435. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
  436. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
  437. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  438. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  439. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  440. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  441. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  442. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  443. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  444. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  445. package/dist/features/experimental_table/server/index.d.ts +0 -3
  446. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  447. package/dist/features/experimental_table/server/index.js.map +0 -1
  448. package/dist/features/experimental_table/server/schema.d.ts.map +0 -1
  449. package/dist/features/experimental_table/server/schema.js.map +0 -1
  450. package/dist/features/link/markdownTransformer.spec.js +0 -195
  451. package/dist/features/link/markdownTransformer.spec.js.map +0 -1
  452. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js +0 -88
  453. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js.map +0 -1
  454. package/dist/lexical/utils/url.spec.js +0 -114
  455. package/dist/lexical/utils/url.spec.js.map +0 -1
  456. package/dist/utilities/jsx/jsx.spec.js +0 -178
  457. package/dist/utilities/jsx/jsx.spec.js.map +0 -1
  458. /package/dist/exports/client/{componentInline-H24N7GUG.js.map → componentInline-ZEP5JPTC.js.map} +0 -0
  459. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  460. /package/dist/features/{experimental_table → table}/client/index.js +0 -0
  461. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
  462. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
  463. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
  464. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  465. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
  466. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
  467. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
  468. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
  469. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
  470. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +0 -0
  471. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  472. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  473. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  474. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
  475. /package/dist/features/{experimental_table → table}/markdownTransformer.d.ts +0 -0
  476. /package/dist/features/{experimental_table → table}/markdownTransformer.js +0 -0
  477. /package/dist/features/{experimental_table → table}/server/schema.d.ts +0 -0
  478. /package/dist/features/{experimental_table → table}/server/schema.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","names":["loadFeatures","sanitizeServerFeatures","features","sanitized","enabledFeatures","getSubFields","Map","getSubFieldsData","graphQLPopulationPromises","hooks","afterChange","afterRead","beforeChange","beforeValidate","i18n","markdownTransformers","nodeHooks","nodes","validations","size","forEach","feature","length","concat","lang","lexical","key","node","nodeType","replace","getType","alreadyRegistered","some","existing","existingType","Error","push","set","transformer","allNodes","allTransformers","sanitizeServerEditorConfig","editorConfig","config","parentIsLocalized","resolvedFeatureMap","unSanitizedEditorConfig"],"sources":["../../../../src/lexical/config/server/sanitize.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport type {\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n} from '../../../features/typesServer.js'\nimport type { SanitizedServerEditorConfig, ServerEditorConfig } from '../types.js'\n\nimport { loadFeatures } from './loader.js'\n\nexport const sanitizeServerFeatures = (\n features: ResolvedServerFeatureMap,\n): SanitizedServerFeatures => {\n const sanitized: SanitizedServerFeatures = {\n enabledFeatures: [],\n getSubFields: new Map(),\n getSubFieldsData: new Map(),\n graphQLPopulationPromises: new Map(),\n hooks: {\n afterChange: [],\n afterRead: [],\n beforeChange: [],\n beforeValidate: [],\n },\n i18n: {},\n markdownTransformers: [],\n nodeHooks: {\n afterChange: new Map(),\n afterRead: new Map(),\n beforeChange: new Map(),\n beforeValidate: new Map(),\n },\n nodes: [],\n\n validations: new Map(),\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature?.hooks?.beforeValidate?.length) {\n sanitized.hooks.beforeValidate = sanitized.hooks.beforeValidate?.concat(\n feature.hooks.beforeValidate,\n )\n }\n if (feature?.hooks?.beforeChange?.length) {\n sanitized.hooks.beforeChange = sanitized.hooks.beforeChange?.concat(\n feature.hooks.beforeChange,\n )\n }\n if (feature?.hooks?.afterRead?.length) {\n sanitized.hooks.afterRead = sanitized.hooks.afterRead?.concat(feature.hooks.afterRead)\n }\n if (feature?.hooks?.afterChange?.length) {\n sanitized.hooks.afterChange = sanitized.hooks.afterChange?.concat(feature.hooks.afterChange)\n }\n\n if (feature?.i18n) {\n for (const lang in feature.i18n) {\n if (!sanitized.i18n[lang as keyof typeof sanitized.i18n]) {\n sanitized.i18n[lang as keyof typeof sanitized.i18n] = {\n lexical: {},\n }\n }\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n sanitized.i18n[lang].lexical[feature.key] = feature.i18n[lang]\n }\n }\n\n if (feature.nodes?.length) {\n // Do not concat here. We need to keep the object reference of sanitized.nodes so that function markdown transformers of features automatically get the updated nodes\n for (const node of feature.nodes) {\n const nodeType = 'with' in node.node ? node.node.replace.getType() : node.node.getType()\n const alreadyRegistered = sanitized.nodes.some((existing) => {\n const existingType =\n 'with' in existing.node ? existing.node.replace.getType() : existing.node.getType()\n return existingType === nodeType\n })\n if (alreadyRegistered) {\n throw new Error(\n `Lexical editor config: node type \"${nodeType}\" was registered more than once (feature \"${feature.key}\"). Each lexical node type may only be registered by a single feature.`,\n )\n }\n sanitized.nodes.push(node)\n if (node?.graphQLPopulationPromises?.length) {\n sanitized.graphQLPopulationPromises.set(nodeType, node.graphQLPopulationPromises)\n }\n if (node?.validations?.length) {\n sanitized.validations.set(nodeType, node.validations)\n }\n if (node?.hooks?.afterChange) {\n sanitized.nodeHooks?.afterChange?.set(nodeType, node.hooks.afterChange)\n }\n if (node?.hooks?.afterRead) {\n sanitized.nodeHooks?.afterRead?.set(nodeType, node.hooks.afterRead)\n }\n if (node?.hooks?.beforeChange) {\n sanitized.nodeHooks?.beforeChange?.set(nodeType, node.hooks.beforeChange)\n }\n if (node?.hooks?.beforeValidate) {\n sanitized.nodeHooks?.beforeValidate?.set(nodeType, node.hooks.beforeValidate)\n }\n if (node?.getSubFields) {\n sanitized.getSubFields?.set(nodeType, node.getSubFields)\n }\n if (node?.getSubFieldsData) {\n sanitized.getSubFieldsData?.set(nodeType, node.getSubFieldsData)\n }\n }\n }\n\n if (feature.markdownTransformers?.length) {\n // Do not concat here. We need to keep the object reference of feature.markdownTransformers\n\n for (const transformer of feature.markdownTransformers) {\n if (typeof transformer === 'function') {\n sanitized.markdownTransformers.push(\n transformer({\n allNodes: sanitized.nodes,\n allTransformers: sanitized.markdownTransformers,\n }),\n )\n } else {\n sanitized.markdownTransformers.push(transformer)\n }\n }\n }\n\n sanitized.enabledFeatures.push(feature.key)\n })\n\n return sanitized\n}\n\nexport async function sanitizeServerEditorConfig(\n editorConfig: ServerEditorConfig,\n config: SanitizedConfig,\n parentIsLocalized?: boolean,\n): Promise<SanitizedServerEditorConfig> {\n const resolvedFeatureMap = await loadFeatures({\n config,\n parentIsLocalized: parentIsLocalized!,\n unSanitizedEditorConfig: editorConfig,\n })\n\n return {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: editorConfig.lexical!,\n resolvedFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sanitize.js","names":["loadFeatures","sanitizeServerFeatures","features","sanitized","enabledFeatures","getSubFields","Map","getSubFieldsData","graphQLPopulationPromises","hooks","afterChange","afterRead","beforeChange","beforeValidate","i18n","markdownTransformers","nodeHooks","nodes","validations","size","forEach","feature","length","concat","lang","lexical","key","node","nodeType","replace","getType","alreadyRegistered","some","existing","existingType","Error","push","set","transformer","allNodes","allTransformers","sanitizeServerEditorConfig","editorConfig","config","parentIsLocalized","resolvedFeatureMap","unSanitizedEditorConfig"],"sources":["../../../../src/lexical/config/server/sanitize.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport type {\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n} from '../../../features/typesServer.js'\nimport type { SanitizedServerEditorConfig, ServerEditorConfig } from '../types.js'\n\nimport { loadFeatures } from './loader.js'\n\nexport const sanitizeServerFeatures = (\n features: ResolvedServerFeatureMap,\n): SanitizedServerFeatures => {\n const sanitized: SanitizedServerFeatures = {\n enabledFeatures: [],\n getSubFields: new Map(),\n getSubFieldsData: new Map(),\n graphQLPopulationPromises: new Map(),\n hooks: {\n afterChange: [],\n afterRead: [],\n beforeChange: [],\n beforeValidate: [],\n },\n i18n: {},\n markdownTransformers: [],\n nodeHooks: {\n afterChange: new Map(),\n afterRead: new Map(),\n beforeChange: new Map(),\n beforeValidate: new Map(),\n },\n nodes: [],\n\n validations: new Map(),\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature?.hooks?.beforeValidate?.length) {\n sanitized.hooks.beforeValidate = sanitized.hooks.beforeValidate?.concat(\n feature.hooks.beforeValidate,\n )\n }\n if (feature?.hooks?.beforeChange?.length) {\n sanitized.hooks.beforeChange = sanitized.hooks.beforeChange?.concat(\n feature.hooks.beforeChange,\n )\n }\n if (feature?.hooks?.afterRead?.length) {\n sanitized.hooks.afterRead = sanitized.hooks.afterRead?.concat(feature.hooks.afterRead)\n }\n if (feature?.hooks?.afterChange?.length) {\n sanitized.hooks.afterChange = sanitized.hooks.afterChange?.concat(feature.hooks.afterChange)\n }\n\n if (feature?.i18n) {\n for (const lang in feature.i18n) {\n if (!sanitized.i18n[lang as keyof typeof sanitized.i18n]) {\n sanitized.i18n[lang as keyof typeof sanitized.i18n] = {\n lexical: {},\n }\n }\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n sanitized.i18n[lang].lexical[feature.key] = feature.i18n[lang]\n }\n }\n\n if (feature.nodes?.length) {\n // Do not concat here. We need to keep the object reference of sanitized.nodes so that function markdown transformers of features automatically get the updated nodes\n for (const node of feature.nodes) {\n const nodeType = 'with' in node.node ? node.node.replace.getType() : node.node.getType()\n const alreadyRegistered = sanitized.nodes.some((existing) => {\n const existingType =\n 'with' in existing.node ? existing.node.replace.getType() : existing.node.getType()\n return existingType === nodeType\n })\n if (alreadyRegistered) {\n throw new Error(\n `Lexical editor config: node type \"${nodeType}\" was registered more than once (feature \"${feature.key}\"). Each lexical node type may only be registered by a single feature.`,\n )\n }\n sanitized.nodes.push(node)\n if (node?.graphQLPopulationPromises?.length) {\n sanitized.graphQLPopulationPromises.set(nodeType, node.graphQLPopulationPromises)\n }\n if (node?.validations?.length) {\n sanitized.validations.set(nodeType, node.validations)\n }\n if (node?.hooks?.afterChange) {\n sanitized.nodeHooks?.afterChange?.set(nodeType, node.hooks.afterChange)\n }\n if (node?.hooks?.afterRead) {\n sanitized.nodeHooks?.afterRead?.set(nodeType, node.hooks.afterRead)\n }\n if (node?.hooks?.beforeChange) {\n sanitized.nodeHooks?.beforeChange?.set(nodeType, node.hooks.beforeChange)\n }\n if (node?.hooks?.beforeValidate) {\n sanitized.nodeHooks?.beforeValidate?.set(nodeType, node.hooks.beforeValidate)\n }\n if (node?.getSubFields) {\n sanitized.getSubFields?.set(nodeType, node.getSubFields)\n }\n if (node?.getSubFieldsData) {\n sanitized.getSubFieldsData?.set(nodeType, node.getSubFieldsData)\n }\n }\n }\n\n if (feature.markdownTransformers?.length) {\n // Do not concat here. We need to keep the object reference of feature.markdownTransformers\n\n for (const transformer of feature.markdownTransformers) {\n if (typeof transformer === 'function') {\n sanitized.markdownTransformers.push(\n transformer({\n allNodes: sanitized.nodes,\n allTransformers: sanitized.markdownTransformers,\n }),\n )\n } else {\n sanitized.markdownTransformers.push(transformer)\n }\n }\n }\n\n sanitized.enabledFeatures.push(feature.key)\n })\n\n return sanitized\n}\n\nexport function sanitizeServerEditorConfig(\n editorConfig: ServerEditorConfig,\n config: SanitizedConfig,\n parentIsLocalized?: boolean,\n): SanitizedServerEditorConfig {\n const resolvedFeatureMap = loadFeatures({\n config,\n parentIsLocalized: parentIsLocalized!,\n unSanitizedEditorConfig: editorConfig,\n })\n\n return {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: editorConfig.lexical!,\n resolvedFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lexical/plugins/DecoratorPlugin/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA2BtE,OAAO,aAAa,CAAA;AAIpB,wBAAgB,eAAe,SA6K9B;AAiDD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,WAAW,CAgBjG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lexical/plugins/DecoratorPlugin/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA4BtE,OAAO,aAAa,CAAA;AAIpB,wBAAgB,eAAe,SAuL9B;AA4CD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,WAAW,CAgBjG"}
@@ -3,7 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
5
5
  import { $findMatchingParent, mergeRegister } from '@lexical/utils';
6
- import { $createNodeSelection, $getEditor, $getNearestNodeFromDOMNode, $getSelection, $isDecoratorNode, $isElementNode, $isLineBreakNode, $isNodeSelection, $isRangeSelection, $isRootOrShadowRoot, $isTextNode, $setSelection, CLICK_COMMAND, COMMAND_PRIORITY_LOW, KEY_ARROW_DOWN_COMMAND, KEY_ARROW_UP_COMMAND, KEY_BACKSPACE_COMMAND, KEY_DELETE_COMMAND, SELECTION_CHANGE_COMMAND } from 'lexical';
6
+ import { $createNodeSelection, $getEditor, $getNearestNodeFromDOMNode, $getSelection, $isDecoratorNode, $isElementNode, $isLineBreakNode, $isNodeSelection, $isRangeSelection, $isRootOrShadowRoot, $isTextNode, $onUpdate, $setSelection, CLICK_COMMAND, COMMAND_PRIORITY_LOW, KEY_ARROW_DOWN_COMMAND, KEY_ARROW_UP_COMMAND, KEY_BACKSPACE_COMMAND, KEY_DELETE_COMMAND, SELECTION_CHANGE_COMMAND } from 'lexical';
7
7
  import { useEffect } from 'react';
8
8
  import './index.css';
9
9
  // TODO: This should ideally be fixed in Lexical. See
@@ -15,7 +15,22 @@ export function DecoratorPlugin() {
15
15
  let t0;
16
16
  let t1;
17
17
  if ($[0] !== editor) {
18
- t0 = () => mergeRegister(editor.registerCommand(CLICK_COMMAND, _temp3, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW), editor.registerCommand(SELECTION_CHANGE_COMMAND, _temp4, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ARROW_UP_COMMAND, _temp6, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ARROW_DOWN_COMMAND, _temp8, COMMAND_PRIORITY_LOW));
18
+ t0 = () => mergeRegister(editor.registerCommand(CLICK_COMMAND, _temp3, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW), editor.registerCommand(SELECTION_CHANGE_COMMAND, (_, activeEditor) => {
19
+ if (activeEditor !== editor) {
20
+ return false;
21
+ }
22
+ const hasSelectedDecorator = Boolean($getSelectedDecorator());
23
+ $onUpdate(() => {
24
+ activeEditor.read("latest", () => {
25
+ const decorator_0 = $getSelectedDecorator();
26
+ document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");
27
+ if (decorator_0) {
28
+ activeEditor.getElementByKey(decorator_0.getKey())?.classList.add("decorator-selected");
29
+ }
30
+ });
31
+ });
32
+ return hasSelectedDecorator;
33
+ }, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ARROW_UP_COMMAND, _temp5, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ARROW_DOWN_COMMAND, _temp7, COMMAND_PRIORITY_LOW));
19
34
  t1 = [editor];
20
35
  $[0] = editor;
21
36
  $[1] = t0;
@@ -27,7 +42,7 @@ export function DecoratorPlugin() {
27
42
  useEffect(t0, t1);
28
43
  return null;
29
44
  }
30
- function _temp8(event_2) {
45
+ function _temp7(event_2) {
31
46
  const selection_1 = $getSelection();
32
47
  if ($isNodeSelection(selection_1)) {
33
48
  event_2.preventDefault();
@@ -59,7 +74,7 @@ function _temp8(event_2) {
59
74
  }
60
75
  const lastPoint = selection_1.isBackward() ? selection_1.anchor : selection_1.focus;
61
76
  const lastNode = lastPoint.getNode();
62
- const lastSelectedBlock = $findMatchingParent(lastNode, _temp7);
77
+ const lastSelectedBlock = $findMatchingParent(lastNode, _temp6);
63
78
  const nextBlock = lastSelectedBlock?.getNextSibling();
64
79
  if (!lastSelectedBlock || nextBlock !== findLaterSiblingBlock(lastSelectedBlock)) {
65
80
  return false;
@@ -77,10 +92,10 @@ function _temp8(event_2) {
77
92
  }
78
93
  return false;
79
94
  }
80
- function _temp7(node_1) {
95
+ function _temp6(node_1) {
81
96
  return findLaterSiblingBlock(node_1) !== null;
82
97
  }
83
- function _temp6(event_1) {
98
+ function _temp5(event_1) {
84
99
  const selection_0 = $getSelection();
85
100
  if ($isNodeSelection(selection_0)) {
86
101
  const prevSibling = selection_0.getNodes()[0]?.getPreviousSibling();
@@ -113,7 +128,7 @@ function _temp6(event_1) {
113
128
  }
114
129
  const firstPoint = selection_0.isBackward() ? selection_0.anchor : selection_0.focus;
115
130
  const firstNode = firstPoint.getNode();
116
- const firstSelectedBlock = $findMatchingParent(firstNode, _temp5);
131
+ const firstSelectedBlock = $findMatchingParent(firstNode, _temp4);
117
132
  const prevBlock = firstSelectedBlock?.getPreviousSibling();
118
133
  if (!firstSelectedBlock || prevBlock !== findFirstSiblingBlock(firstSelectedBlock)) {
119
134
  return false;
@@ -131,18 +146,9 @@ function _temp6(event_1) {
131
146
  }
132
147
  return false;
133
148
  }
134
- function _temp5(node_0) {
149
+ function _temp4(node_0) {
135
150
  return findFirstSiblingBlock(node_0) !== null;
136
151
  }
137
- function _temp4() {
138
- const decorator_0 = $getSelectedDecorator();
139
- document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");
140
- if (decorator_0) {
141
- decorator_0.element?.classList.add("decorator-selected");
142
- return true;
143
- }
144
- return false;
145
- }
146
152
  function _temp3(event_0) {
147
153
  document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");
148
154
  const decorator = $getDecoratorByMouseEvent(event_0);
@@ -196,10 +202,7 @@ function $getSelectedDecorator() {
196
202
  return undefined;
197
203
  }
198
204
  const node = nodes[0];
199
- return $isDecoratorNode(node) ? {
200
- decorator: node,
201
- element: $getEditor().getElementByKey(node.getKey())
202
- } : undefined;
205
+ return $isDecoratorNode(node) ? node : undefined;
203
206
  }
204
207
  function $selectDecorator({
205
208
  element,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$findMatchingParent","mergeRegister","$createNodeSelection","$getEditor","$getNearestNodeFromDOMNode","$getSelection","$isDecoratorNode","$isElementNode","$isLineBreakNode","$isNodeSelection","$isRangeSelection","$isRootOrShadowRoot","$isTextNode","$setSelection","CLICK_COMMAND","COMMAND_PRIORITY_LOW","KEY_ARROW_DOWN_COMMAND","KEY_ARROW_UP_COMMAND","KEY_BACKSPACE_COMMAND","KEY_DELETE_COMMAND","SELECTION_CHANGE_COMMAND","useEffect","DecoratorPlugin","$","editor","$onDelete","_temp2","t0","t1","registerCommand","_temp3","_temp4","_temp6","_temp8","event_2","selection_1","selection","event","preventDefault","nextSibling","getNodes","getNextSibling","element_0","getElementByKey","getKey","element","$selectDecorator","firstDescendant","getFirstDescendant","block_0","INTERNAL_$isBlock","block","selectEnd","lastPoint","isBackward","anchor","focus","lastNode","getNode","lastSelectedBlock","_temp7","nextBlock","findLaterSiblingBlock","nextBlockElement","node","node_1","event_1","selection_0","prevSibling","getPreviousSibling","lastDescendant","getLastDescendant","selectStart","firstPoint","firstNode","firstSelectedBlock","_temp5","prevBlock","findFirstSiblingBlock","prevBlockElement","node_0","decorator_0","$getSelectedDecorator","document","querySelector","classList","remove","decorator","add","event_0","$getDecoratorByMouseEvent","target","isInteractive","HTMLElement","isContentEditable","closest","forEach","_temp","undefined","nodes","length","scrollIntoView","behavior","isInline","firstChild","getFirstChild","isLeafElement","canBeEmpty","current"],"sources":["../../../../src/lexical/plugins/DecoratorPlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { DecoratorNode, ElementNode, LexicalNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport {\n $createNodeSelection,\n $getEditor,\n $getNearestNodeFromDOMNode,\n $getSelection,\n $isDecoratorNode,\n $isElementNode,\n $isLineBreakNode,\n $isNodeSelection,\n $isRangeSelection,\n $isRootOrShadowRoot,\n $isTextNode,\n $setSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport './index.css'\n\n// TODO: This should ideally be fixed in Lexical. See\n// https://github.com/facebook/lexical/pull/7072\nexport function DecoratorPlugin() {\n const [editor] = useLexicalComposerContext()\n\n const $onDelete = (event: KeyboardEvent) => {\n const selection = $getSelection()\n if (!$isNodeSelection(selection)) {\n return false\n }\n event.preventDefault()\n selection.getNodes().forEach((node) => {\n node.remove()\n })\n return true\n }\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n CLICK_COMMAND,\n (event) => {\n document.querySelector('.decorator-selected')?.classList.remove('decorator-selected')\n const decorator = $getDecoratorByMouseEvent(event)\n if (!decorator) {\n return true\n }\n const { target } = event\n const isInteractive =\n !(target instanceof HTMLElement) ||\n target.isContentEditable ||\n target.closest(\n 'button, textarea, input, .react-select, .code-editor, .no-select-decorator, [role=\"button\"]',\n )\n if (isInteractive) {\n $setSelection(null)\n } else {\n $selectDecorator(decorator)\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n const decorator = $getSelectedDecorator()\n document.querySelector('.decorator-selected')?.classList.remove('decorator-selected')\n if (decorator) {\n decorator.element?.classList.add('decorator-selected')\n return true\n }\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ARROW_UP_COMMAND,\n (event) => {\n // CASE 1: Node selection\n const selection = $getSelection()\n if ($isNodeSelection(selection)) {\n const prevSibling = selection.getNodes()[0]?.getPreviousSibling()\n if ($isDecoratorNode(prevSibling)) {\n const element = $getEditor().getElementByKey(prevSibling.getKey())\n if (element) {\n $selectDecorator({ element, node: prevSibling })\n event.preventDefault()\n return true\n }\n return false\n }\n if (!$isElementNode(prevSibling)) {\n return false\n }\n const lastDescendant = prevSibling.getLastDescendant() ?? prevSibling\n if (!lastDescendant) {\n return false\n }\n const block = $findMatchingParent(lastDescendant, INTERNAL_$isBlock)\n block?.selectStart()\n event.preventDefault()\n return true\n }\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n // CASE 2: Range selection\n // Get first selected block\n const firstPoint = selection.isBackward() ? selection.anchor : selection.focus\n const firstNode = firstPoint.getNode()\n const firstSelectedBlock = $findMatchingParent(firstNode, (node) => {\n return findFirstSiblingBlock(node) !== null\n })\n const prevBlock = firstSelectedBlock?.getPreviousSibling()\n if (!firstSelectedBlock || prevBlock !== findFirstSiblingBlock(firstSelectedBlock)) {\n return false\n }\n\n if ($isDecoratorNode(prevBlock)) {\n const prevBlockElement = $getEditor().getElementByKey(prevBlock.getKey())\n if (prevBlockElement) {\n $selectDecorator({ element: prevBlockElement, node: prevBlock })\n event.preventDefault()\n return true\n }\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ARROW_DOWN_COMMAND,\n (event) => {\n // CASE 1: Node selection\n const selection = $getSelection()\n if ($isNodeSelection(selection)) {\n event.preventDefault()\n const nextSibling = selection.getNodes()[0]?.getNextSibling()\n if ($isDecoratorNode(nextSibling)) {\n const element = $getEditor().getElementByKey(nextSibling.getKey())\n if (element) {\n $selectDecorator({ element, node: nextSibling })\n }\n return true\n }\n if (!$isElementNode(nextSibling)) {\n return true\n }\n const firstDescendant = nextSibling.getFirstDescendant() ?? nextSibling\n if (!firstDescendant) {\n return true\n }\n const block = $findMatchingParent(firstDescendant, INTERNAL_$isBlock)\n block?.selectEnd()\n event.preventDefault()\n return true\n }\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n // CASE 2: Range selection\n // Get last selected block\n const lastPoint = selection.isBackward() ? selection.anchor : selection.focus\n const lastNode = lastPoint.getNode()\n const lastSelectedBlock = $findMatchingParent(lastNode, (node) => {\n return findLaterSiblingBlock(node) !== null\n })\n const nextBlock = lastSelectedBlock?.getNextSibling()\n if (!lastSelectedBlock || nextBlock !== findLaterSiblingBlock(lastSelectedBlock)) {\n return false\n }\n\n if ($isDecoratorNode(nextBlock)) {\n const nextBlockElement = $getEditor().getElementByKey(nextBlock.getKey())\n if (nextBlockElement) {\n $selectDecorator({ element: nextBlockElement, node: nextBlock })\n event.preventDefault()\n return true\n }\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor])\n\n return null\n}\n\nfunction $getDecoratorByMouseEvent(\n event: MouseEvent,\n): { element: HTMLElement; node: DecoratorNode<unknown> } | undefined {\n if (!(event.target instanceof HTMLElement)) {\n return undefined\n }\n const element = event.target.closest('[data-lexical-decorator=\"true\"]')\n if (!(element instanceof HTMLElement)) {\n return undefined\n }\n const node = $getNearestNodeFromDOMNode(element)\n return $isDecoratorNode(node) ? { element, node } : undefined\n}\n\nfunction $getSelectedDecorator() {\n const selection = $getSelection()\n if (!$isNodeSelection(selection)) {\n return undefined\n }\n const nodes = selection.getNodes()\n if (nodes.length !== 1) {\n return undefined\n }\n const node = nodes[0]\n return $isDecoratorNode(node)\n ? {\n decorator: node,\n element: $getEditor().getElementByKey(node.getKey()),\n }\n : undefined\n}\n\nfunction $selectDecorator({\n element,\n node,\n}: {\n element: HTMLElement\n node: DecoratorNode<unknown>\n}) {\n document.querySelector('.decorator-selected')?.classList.remove('decorator-selected')\n const selection = $createNodeSelection()\n selection.add(node.getKey())\n $setSelection(selection)\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' })\n element.classList.add('decorator-selected')\n}\n\n/**\n * Copied from https://github.com/facebook/lexical/blob/main/packages/lexical/src/LexicalUtils.ts\n *\n * This function returns true for a DecoratorNode that is not inline OR\n * an ElementNode that is:\n * - not a root or shadow root\n * - not inline\n * - can't be empty\n * - has no children or an inline first child\n */\nexport function INTERNAL_$isBlock(node: LexicalNode): node is DecoratorNode<unknown> | ElementNode {\n if ($isDecoratorNode(node) && !node.isInline()) {\n return true\n }\n if (!$isElementNode(node) || $isRootOrShadowRoot(node)) {\n return false\n }\n\n const firstChild = node.getFirstChild()\n const isLeafElement =\n firstChild === null ||\n $isLineBreakNode(firstChild) ||\n $isTextNode(firstChild) ||\n firstChild.isInline()\n\n return !node.isInline() && node.canBeEmpty() !== false && isLeafElement\n}\n\nfunction findLaterSiblingBlock(node: LexicalNode): LexicalNode | null {\n let current = node.getNextSibling()\n while (current !== null) {\n if (INTERNAL_$isBlock(current)) {\n return current\n }\n current = current.getNextSibling()\n }\n return null\n}\n\nfunction findFirstSiblingBlock(node: LexicalNode): LexicalNode | null {\n let current = node.getPreviousSibling()\n while (current !== null) {\n if (INTERNAL_$isBlock(current)) {\n return current\n }\n current = current.getPreviousSibling()\n }\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$findMatchingParent","mergeRegister","$createNodeSelection","$getEditor","$getNearestNodeFromDOMNode","$getSelection","$isDecoratorNode","$isElementNode","$isLineBreakNode","$isNodeSelection","$isRangeSelection","$isRootOrShadowRoot","$isTextNode","$onUpdate","$setSelection","CLICK_COMMAND","COMMAND_PRIORITY_LOW","KEY_ARROW_DOWN_COMMAND","KEY_ARROW_UP_COMMAND","KEY_BACKSPACE_COMMAND","KEY_DELETE_COMMAND","SELECTION_CHANGE_COMMAND","useEffect","DecoratorPlugin","$","editor","$onDelete","_temp2","t0","t1","registerCommand","_temp3","_","activeEditor","hasSelectedDecorator","Boolean","$getSelectedDecorator","read","decorator_0","document","querySelector","classList","remove","decorator","getElementByKey","getKey","add","_temp5","_temp7","event_2","selection_1","selection","event","preventDefault","nextSibling","getNodes","getNextSibling","element_0","element","$selectDecorator","firstDescendant","getFirstDescendant","block_0","INTERNAL_$isBlock","block","selectEnd","lastPoint","isBackward","anchor","focus","lastNode","getNode","lastSelectedBlock","_temp6","nextBlock","findLaterSiblingBlock","nextBlockElement","node","node_1","event_1","selection_0","prevSibling","getPreviousSibling","lastDescendant","getLastDescendant","selectStart","firstPoint","firstNode","firstSelectedBlock","_temp4","prevBlock","findFirstSiblingBlock","prevBlockElement","node_0","event_0","$getDecoratorByMouseEvent","target","isInteractive","HTMLElement","isContentEditable","closest","forEach","_temp","undefined","nodes","length","scrollIntoView","behavior","isInline","firstChild","getFirstChild","isLeafElement","canBeEmpty","current"],"sources":["../../../../src/lexical/plugins/DecoratorPlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { DecoratorNode, ElementNode, LexicalNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport {\n $createNodeSelection,\n $getEditor,\n $getNearestNodeFromDOMNode,\n $getSelection,\n $isDecoratorNode,\n $isElementNode,\n $isLineBreakNode,\n $isNodeSelection,\n $isRangeSelection,\n $isRootOrShadowRoot,\n $isTextNode,\n $onUpdate,\n $setSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport './index.css'\n\n// TODO: This should ideally be fixed in Lexical. See\n// https://github.com/facebook/lexical/pull/7072\nexport function DecoratorPlugin() {\n const [editor] = useLexicalComposerContext()\n\n const $onDelete = (event: KeyboardEvent) => {\n const selection = $getSelection()\n if (!$isNodeSelection(selection)) {\n return false\n }\n event.preventDefault()\n selection.getNodes().forEach((node) => {\n node.remove()\n })\n return true\n }\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n CLICK_COMMAND,\n (event) => {\n document.querySelector('.decorator-selected')?.classList.remove('decorator-selected')\n const decorator = $getDecoratorByMouseEvent(event)\n if (!decorator) {\n return true\n }\n const { target } = event\n const isInteractive =\n !(target instanceof HTMLElement) ||\n target.isContentEditable ||\n target.closest(\n 'button, textarea, input, .react-select, .code-editor, .no-select-decorator, [role=\"button\"]',\n )\n if (isInteractive) {\n $setSelection(null)\n } else {\n $selectDecorator(decorator)\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n (_, activeEditor) => {\n // Nested editors reconcile independently and update their own highlight.\n if (activeEditor !== editor) {\n return false\n }\n const hasSelectedDecorator = Boolean($getSelectedDecorator())\n $onUpdate(() => {\n activeEditor.read('latest', () => {\n const decorator = $getSelectedDecorator()\n document.querySelector('.decorator-selected')?.classList.remove('decorator-selected')\n if (decorator) {\n activeEditor\n .getElementByKey(decorator.getKey())\n ?.classList.add('decorator-selected')\n }\n })\n })\n return hasSelectedDecorator\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ARROW_UP_COMMAND,\n (event) => {\n // CASE 1: Node selection\n const selection = $getSelection()\n if ($isNodeSelection(selection)) {\n const prevSibling = selection.getNodes()[0]?.getPreviousSibling()\n if ($isDecoratorNode(prevSibling)) {\n const element = $getEditor().getElementByKey(prevSibling.getKey())\n if (element) {\n $selectDecorator({ element, node: prevSibling })\n event.preventDefault()\n return true\n }\n return false\n }\n if (!$isElementNode(prevSibling)) {\n return false\n }\n const lastDescendant = prevSibling.getLastDescendant() ?? prevSibling\n if (!lastDescendant) {\n return false\n }\n const block = $findMatchingParent(lastDescendant, INTERNAL_$isBlock)\n block?.selectStart()\n event.preventDefault()\n return true\n }\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n // CASE 2: Range selection\n // Get first selected block\n const firstPoint = selection.isBackward() ? selection.anchor : selection.focus\n const firstNode = firstPoint.getNode()\n const firstSelectedBlock = $findMatchingParent(firstNode, (node) => {\n return findFirstSiblingBlock(node) !== null\n })\n const prevBlock = firstSelectedBlock?.getPreviousSibling()\n if (!firstSelectedBlock || prevBlock !== findFirstSiblingBlock(firstSelectedBlock)) {\n return false\n }\n\n if ($isDecoratorNode(prevBlock)) {\n const prevBlockElement = $getEditor().getElementByKey(prevBlock.getKey())\n if (prevBlockElement) {\n $selectDecorator({ element: prevBlockElement, node: prevBlock })\n event.preventDefault()\n return true\n }\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ARROW_DOWN_COMMAND,\n (event) => {\n // CASE 1: Node selection\n const selection = $getSelection()\n if ($isNodeSelection(selection)) {\n event.preventDefault()\n const nextSibling = selection.getNodes()[0]?.getNextSibling()\n if ($isDecoratorNode(nextSibling)) {\n const element = $getEditor().getElementByKey(nextSibling.getKey())\n if (element) {\n $selectDecorator({ element, node: nextSibling })\n }\n return true\n }\n if (!$isElementNode(nextSibling)) {\n return true\n }\n const firstDescendant = nextSibling.getFirstDescendant() ?? nextSibling\n if (!firstDescendant) {\n return true\n }\n const block = $findMatchingParent(firstDescendant, INTERNAL_$isBlock)\n block?.selectEnd()\n event.preventDefault()\n return true\n }\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n // CASE 2: Range selection\n // Get last selected block\n const lastPoint = selection.isBackward() ? selection.anchor : selection.focus\n const lastNode = lastPoint.getNode()\n const lastSelectedBlock = $findMatchingParent(lastNode, (node) => {\n return findLaterSiblingBlock(node) !== null\n })\n const nextBlock = lastSelectedBlock?.getNextSibling()\n if (!lastSelectedBlock || nextBlock !== findLaterSiblingBlock(lastSelectedBlock)) {\n return false\n }\n\n if ($isDecoratorNode(nextBlock)) {\n const nextBlockElement = $getEditor().getElementByKey(nextBlock.getKey())\n if (nextBlockElement) {\n $selectDecorator({ element: nextBlockElement, node: nextBlock })\n event.preventDefault()\n return true\n }\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor])\n\n return null\n}\n\nfunction $getDecoratorByMouseEvent(\n event: MouseEvent,\n): { element: HTMLElement; node: DecoratorNode<unknown> } | undefined {\n if (!(event.target instanceof HTMLElement)) {\n return undefined\n }\n const element = event.target.closest('[data-lexical-decorator=\"true\"]')\n if (!(element instanceof HTMLElement)) {\n return undefined\n }\n const node = $getNearestNodeFromDOMNode(element)\n return $isDecoratorNode(node) ? { element, node } : undefined\n}\n\nfunction $getSelectedDecorator() {\n const selection = $getSelection()\n if (!$isNodeSelection(selection)) {\n return undefined\n }\n const nodes = selection.getNodes()\n if (nodes.length !== 1) {\n return undefined\n }\n const node = nodes[0]\n return $isDecoratorNode(node) ? node : undefined\n}\n\nfunction $selectDecorator({\n element,\n node,\n}: {\n element: HTMLElement\n node: DecoratorNode<unknown>\n}) {\n document.querySelector('.decorator-selected')?.classList.remove('decorator-selected')\n const selection = $createNodeSelection()\n selection.add(node.getKey())\n $setSelection(selection)\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' })\n element.classList.add('decorator-selected')\n}\n\n/**\n * Copied from https://github.com/facebook/lexical/blob/main/packages/lexical/src/LexicalUtils.ts\n *\n * This function returns true for a DecoratorNode that is not inline OR\n * an ElementNode that is:\n * - not a root or shadow root\n * - not inline\n * - can't be empty\n * - has no children or an inline first child\n */\nexport function INTERNAL_$isBlock(node: LexicalNode): node is DecoratorNode<unknown> | ElementNode {\n if ($isDecoratorNode(node) && !node.isInline()) {\n return true\n }\n if (!$isElementNode(node) || $isRootOrShadowRoot(node)) {\n return false\n }\n\n const firstChild = node.getFirstChild()\n const isLeafElement =\n firstChild === null ||\n $isLineBreakNode(firstChild) ||\n $isTextNode(firstChild) ||\n firstChild.isInline()\n\n return !node.isInline() && node.canBeEmpty() !== false && isLeafElement\n}\n\nfunction findLaterSiblingBlock(node: LexicalNode): LexicalNode | null {\n let current = node.getNextSibling()\n while (current !== null) {\n if (INTERNAL_$isBlock(current)) {\n return current\n }\n current = current.getNextSibling()\n }\n return null\n}\n\nfunction findFirstSiblingBlock(node: LexicalNode): LexicalNode | null {\n let current = node.getPreviousSibling()\n while (current !== null) {\n if (INTERNAL_$isBlock(current)) {\n return current\n }\n current = current.getPreviousSibling()\n }\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,52 +1,45 @@
1
1
  @layer payload-default {
2
2
  .rich-text-lexical--show-gutter {
3
3
  .insert-paragraph-at-end {
4
- padding: var(--spacer-1) 0 calc(var(--spacer-1) / 2) var(--spacer-6);
4
+ padding: var(--spacer-3) var(--spacer-5) var(--spacer-4) var(--spacer-5);
5
5
  }
6
6
  }
7
+
7
8
  .insert-paragraph-at-end {
8
9
  height: var(--spacer-4);
9
10
  margin-top: calc(var(--spacer-4) * -1);
10
11
  width: 100%;
11
12
  z-index: 0;
12
13
  position: relative;
13
- padding: var(--spacer-1) 0 calc(var(--spacer-1) / 2) 0;
14
+ padding: var(--spacer-1) var(--spacer-2) var(--spacer-1) 0;
14
15
 
15
- &:hover {
16
+ &:hover,
17
+ &:focus-visible {
16
18
  cursor: pointer;
17
19
 
18
20
  .insert-paragraph-at-end-inside {
19
- background-color: var(--color-bg-hover);
21
+ opacity: 1;
22
+ background-color: var(--color-bg-transparent-hover);
23
+ }
24
+ }
20
25
 
21
- span {
22
- display: flex;
23
- }
26
+ &:active {
27
+ .insert-paragraph-at-end-inside {
28
+ background-color: var(--color-bg-transparent-pressed);
24
29
  }
25
30
  }
26
31
  }
27
32
 
28
33
  .insert-paragraph-at-end-inside {
29
34
  width: 100%;
30
- height: 100%;
31
- background-color: transparent;
32
- transition: background-color 0.1s ease-in-out;
35
+ height: var(--spacer-3);
36
+ margin: 0 auto;
37
+ padding: 0 var(--spacer-2);
33
38
  display: flex;
39
+ align-items: center;
34
40
  justify-content: center;
35
41
  border-radius: var(--radius-medium);
36
- color: var(--color-text-secondary);
37
-
38
- span {
39
- display: none;
40
- justify-content: center;
41
- align-items: center;
42
- }
43
- }
44
-
45
- html[data-theme='dark'] {
46
- .insert-paragraph-at-end:hover {
47
- .insert-paragraph-at-end-inside {
48
- background-color: var(--color-bg-secondary);
49
- }
50
- }
42
+ color: var(--color-icon-secondary);
43
+ opacity: 0;
51
44
  }
52
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lexical/plugins/InsertParagraphAtEnd/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EA8B9C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lexical/plugins/InsertParagraphAtEnd/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,aAAa,CAAA;AAKpB,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EA6B9C,CAAA"}
@@ -1,46 +1,59 @@
1
- /* eslint-disable jsx-a11y/click-events-have-key-events */'use client';
1
+ 'use client';
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
6
+ import { useTranslation } from '@payloadcms/ui';
6
7
  import { $createParagraphNode, $getRoot } from 'lexical';
7
8
  import React from 'react';
8
9
  import './index.css';
9
10
  import { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js';
11
+ import { AddIcon } from '../../ui/icons/Add/index.js';
10
12
  const baseClass = 'insert-paragraph-at-end';
11
13
  export const InsertParagraphAtEndPlugin = () => {
12
- const $ = _c(2);
14
+ const $ = _c(5);
13
15
  const [editor] = useLexicalComposerContext();
14
16
  const {
15
17
  editorConfig
16
18
  } = useEditorConfigContext();
19
+ const {
20
+ t
21
+ } = useTranslation();
17
22
  if (editorConfig?.admin?.hideInsertParagraphAtEnd) {
18
23
  return null;
19
24
  }
20
25
  let t0;
21
26
  if ($[0] !== editor) {
22
- const onClick = () => {
27
+ t0 = () => {
23
28
  editor.update(_temp);
24
29
  };
25
- t0 = _jsx("div", {
26
- "aria-label": "Insert Paragraph",
30
+ $[0] = editor;
31
+ $[1] = t0;
32
+ } else {
33
+ t0 = $[1];
34
+ }
35
+ const onClick = t0;
36
+ let t1;
37
+ if ($[2] !== onClick || $[3] !== t) {
38
+ t1 = _jsx("button", {
39
+ "aria-label": t("lexical:general:insertParagraph"),
27
40
  className: baseClass,
28
41
  onClick,
29
- role: "button",
30
- tabIndex: 0,
31
- children: _jsx("div", {
42
+ type: "button",
43
+ children: _jsx("span", {
32
44
  className: `${baseClass}-inside`,
33
- children: _jsx("span", {
34
- children: "+"
45
+ children: _jsx(AddIcon, {
46
+ size: 16
35
47
  })
36
48
  })
37
49
  });
38
- $[0] = editor;
39
- $[1] = t0;
50
+ $[2] = onClick;
51
+ $[3] = t;
52
+ $[4] = t1;
40
53
  } else {
41
- t0 = $[1];
54
+ t1 = $[4];
42
55
  }
43
- return t0;
56
+ return t1;
44
57
  };
45
58
  function _temp() {
46
59
  const paragraphNode = $createParagraphNode();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$createParagraphNode","$getRoot","React","useEditorConfigContext","baseClass","InsertParagraphAtEndPlugin","$","editor","editorConfig","admin","hideInsertParagraphAtEnd","t0","onClick","update","_temp","_jsx","className","role","tabIndex","children","paragraphNode","append","select"],"sources":["../../../../src/lexical/plugins/InsertParagraphAtEnd/index.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $createParagraphNode, $getRoot } from 'lexical'\nimport React from 'react'\n\nimport './index.css'\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\nconst baseClass = 'insert-paragraph-at-end'\n\nexport const InsertParagraphAtEndPlugin: React.FC = () => {\n const [editor] = useLexicalComposerContext()\n const { editorConfig } = useEditorConfigContext()\n\n if (editorConfig?.admin?.hideInsertParagraphAtEnd) {\n return null\n }\n\n const onClick = () => {\n editor.update(() => {\n const paragraphNode = $createParagraphNode()\n $getRoot().append(paragraphNode)\n paragraphNode.select()\n })\n }\n\n return (\n // TODO: convert to button\n <div\n aria-label=\"Insert Paragraph\"\n className={baseClass}\n onClick={onClick}\n role=\"button\"\n tabIndex={0}\n >\n <div className={`${baseClass}-inside`}>\n <span>+</span>\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA,0DACA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,oBAAoB,EAAEC,QAAQ,QAAQ;AAC/C,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,sBAAsB,QAAQ;AACvC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,0BAAA,GAAuCA,CAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAClD,OAAAS,MAAA,IAAiBR,yBAAA;EACjB;IAAAS;EAAA,IAAyBL,sBAAA;EAAA,IAErBK,YAAA,EAAAC,KAAA,EAAAC,wBAAA;IAAA;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAL,CAAA,QAAAC,MAAA;IAIJ,MAAAK,OAAA,GAAAA,CAAA;MACEL,MAAA,CAAAM,MAAA,CAAAC,KAIA;IAAA;IAKAH,EAAA,GAAAI,IAAA,CAAC;MAAA,cACY;MAAAC,SAAA,EAAAZ,SAAA;MAAAQ,OAAA;MAAAK,IAAA,EAGN;MAAAC,QAAA;MAAAC,QAAA,EAGLJ,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAAZ,SAAA,SAAqB;QAAAe,QAAA,EACnCJ,IAAA,CAAC;UAAAI,QAAA,EAAK;QAAA,C;;;;;;;;SARVR,E;CAYJ;AA9BoD,SAAAG,MAAA;EAU9C,MAAAM,aAAA,GAAsBpB,oBAAA;EACtBC,QAAA,GAAAoB,MAAA,CAAkBD,aAAA;EAClBA,aAAA,CAAAE,MAAA,CAAoB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useTranslation","$createParagraphNode","$getRoot","React","useEditorConfigContext","AddIcon","baseClass","InsertParagraphAtEndPlugin","$","editor","editorConfig","t","admin","hideInsertParagraphAtEnd","t0","update","_temp","onClick","t1","_jsx","className","type","children","size","paragraphNode","append","select"],"sources":["../../../../src/lexical/plugins/InsertParagraphAtEnd/index.tsx"],"sourcesContent":["'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useTranslation } from '@payloadcms/ui'\nimport { $createParagraphNode, $getRoot } from 'lexical'\nimport React from 'react'\n\nimport './index.css'\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\nimport { AddIcon } from '../../ui/icons/Add/index.js'\nconst baseClass = 'insert-paragraph-at-end'\n\nexport const InsertParagraphAtEndPlugin: React.FC = () => {\n const [editor] = useLexicalComposerContext()\n const { editorConfig } = useEditorConfigContext()\n const { t } = useTranslation<{}, string>()\n\n if (editorConfig?.admin?.hideInsertParagraphAtEnd) {\n return null\n }\n\n const onClick = () => {\n editor.update(() => {\n const paragraphNode = $createParagraphNode()\n $getRoot().append(paragraphNode)\n paragraphNode.select()\n })\n }\n\n return (\n <button\n aria-label={t('lexical:general:insertParagraph')}\n className={baseClass}\n onClick={onClick}\n type=\"button\"\n >\n <span className={`${baseClass}-inside`}>\n <AddIcon size={16} />\n </span>\n </button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,EAAEC,QAAQ,QAAQ;AAC/C,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,sBAAsB,QAAQ;AACvC,SAASC,OAAO,QAAQ;AACxB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,0BAAA,GAAuCA,CAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAClD,OAAAW,MAAA,IAAiBV,yBAAA;EACjB;IAAAW;EAAA,IAAyBN,sBAAA;EACzB;IAAAO;EAAA,IAAcX,cAAA;EAAA,IAEVU,YAAA,EAAAE,KAAA,EAAAC,wBAAA;IAAA;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAN,CAAA,QAAAC,MAAA;IAIYK,EAAA,GAAAA,CAAA;MACdL,MAAA,CAAAM,MAAA,CAAAC,KAIA;IAAA;IACFR,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EANA,MAAAS,OAAA,GAAgBH,EAMhB;EAAA,IAAAI,EAAA;EAAA,IAAAV,CAAA,QAAAS,OAAA,IAAAT,CAAA,QAAAG,CAAA;IAGEO,EAAA,GAAAC,IAAA,CAAC;MAAA,cACaR,CAAA,CAAE;MAAAS,SAAA,EAAAd,SAAA;MAAAW,OAAA;MAAAI,IAAA,EAGT;MAAAC,QAAA,EAELH,IAAA,CAAC;QAAAC,SAAA,EAAgB,GAAAd,SAAA,SAAqB;QAAAgB,QAAA,EACpCH,IAAA,CAAAd,OAAA;UAAAkB,IAAA;QAAA,C;;;;;;;;;SAPJL,E;CAWJ;AA7BoD,SAAAF,MAAA;EAW9C,MAAAQ,aAAA,GAAsBvB,oBAAA;EACtBC,QAAA,GAAAuB,MAAA,CAAkBD,aAAA;EAClBA,aAAA,CAAAE,MAAA,CAAoB;AAAA","ignoreList":[]}
@@ -12,7 +12,6 @@ export type MenuRenderFn = (anchorElementRef: RefObject<HTMLElement | null>, ite
12
12
  selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void;
13
13
  setSelectedItemKey: (itemKey: string) => void;
14
14
  }, matchingString: null | string) => JSX.Element | null | ReactPortal;
15
- export declare function getScrollParent(element: HTMLElement, includeHidden: boolean): HTMLBodyElement | HTMLElement;
16
15
  export declare function useDynamicPositioning(resolution: MenuResolution | null, targetElementRef: RefObject<HTMLElement | null>, onReposition: () => void, onVisibilityChange?: (isInView: boolean) => void): void;
17
16
  export declare const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{
18
17
  index: number;
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalMenu.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAE,aAAa,EAAY,MAAM,SAAS,CAAA;AACrF,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAmBxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAI9F,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAA;AAID,MAAM,MAAM,YAAY,GAAG,CACzB,gBAAgB,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAC/C,SAAS,EAAE;IACT,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAA;IAC9B,oBAAoB,EAAE,CAAC,YAAY,EAAE,aAAa,KAAK,IAAI,CAAA;IAC3D,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C,EACD,cAAc,EAAE,IAAI,GAAG,MAAM,KAC1B,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,WAAW,CAAA;AA2ErC,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,OAAO,GACrB,eAAe,GAAG,WAAW,CAiB/B;AAYD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,gBAAgB,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAC/C,YAAY,EAAE,MAAM,IAAI,EACxB,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,QA4CjD;AAED,eAAO,MAAM,yCAAyC,EAAE,cAAc,CAAC;IACrE,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,qBAAqB,CAAA;CAC5B,CAA8D,CAAA;AAE/D,wBAAgB,WAAW,CAAC,EAC1B,gBAAgB,EAChB,KAAK,EACL,MAAM,EAEN,MAAM,EACN,YAAY,EACZ,UAAU,EACV,wBAAgC,GACjC,EAAE;IACD,gBAAgB,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC/C,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,aAAa,CAAA;IACrB,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,EAAE,cAAc,CAAA;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAuOrB;AAYD,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,aAAa,EAAE,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,EACjD,SAAS,CAAC,EAAE,MAAM,GACjB,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAoG/B"}
1
+ {"version":3,"file":"LexicalMenu.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAE,aAAa,EAAY,MAAM,SAAS,CAAA;AACrF,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAmBxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAI9F,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAA;AAID,MAAM,MAAM,YAAY,GAAG,CACzB,gBAAgB,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAC/C,SAAS,EAAE;IACT,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAA;IAC9B,oBAAoB,EAAE,CAAC,YAAY,EAAE,aAAa,KAAK,IAAI,CAAA;IAC3D,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C,EACD,cAAc,EAAE,IAAI,GAAG,MAAM,KAC1B,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,WAAW,CAAA;AAoFrC,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,gBAAgB,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAC/C,YAAY,EAAE,MAAM,IAAI,EACxB,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,QA4CjD;AAED,eAAO,MAAM,yCAAyC,EAAE,cAAc,CAAC;IACrE,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,qBAAqB,CAAA;CAC5B,CAA8D,CAAA;AAE/D,wBAAgB,WAAW,CAAC,EAC1B,gBAAgB,EAChB,KAAK,EACL,MAAM,EAEN,MAAM,EACN,YAAY,EACZ,UAAU,EACV,wBAAgC,GACjC,EAAE;IACD,gBAAgB,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC/C,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,aAAa,CAAA;IACrB,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,EAAE,cAAc,CAAA;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAuOrB;AAYD,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,aAAa,EAAE,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,EACjD,SAAS,CAAC,EAAE,MAAM,GACjB,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAoG/B"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
5
- import { mergeRegister } from '@lexical/utils';
5
+ import { getScrollParent, mergeRegister } from '@lexical/utils';
6
6
  import { $getSelection, $isRangeSelection, $setSelection, COMMAND_PRIORITY_LOW, COMMAND_PRIORITY_NORMAL, createCommand, KEY_ARROW_DOWN_COMMAND, KEY_ARROW_UP_COMMAND, KEY_ENTER_COMMAND, KEY_ESCAPE_COMMAND, KEY_TAB_COMMAND } from 'lexical';
7
7
  import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
8
8
  import { CAN_USE_DOM } from '../../../utils/canUseDOM.js';
@@ -73,25 +73,6 @@ function $splitNodeContainingQuery(match) {
73
73
  }
74
74
  return newNode;
75
75
  }
76
- // Got from https://stackoverflow.com/a/42543908/2013580
77
- export function getScrollParent(element, includeHidden) {
78
- let style = getComputedStyle(element);
79
- const excludeStaticParent = style.position === 'absolute';
80
- const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;
81
- if (style.position === 'fixed') {
82
- return document.body;
83
- }
84
- for (let parent1 = element; parent1 = parent1.parentElement;) {
85
- style = getComputedStyle(parent1);
86
- if (excludeStaticParent && style.position === 'static') {
87
- continue;
88
- }
89
- if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) {
90
- return parent1;
91
- }
92
- }
93
- return document.body;
94
- }
95
76
  function isTriggerVisibleInNearestScrollContainer(targetElement, containerElement) {
96
77
  const tRect = targetElement.getBoundingClientRect();
97
78
  const cRect = containerElement.getBoundingClientRect();
@@ -286,7 +267,7 @@ export function LexicalMenu({
286
267
  event_1.stopImmediatePropagation();
287
268
  close();
288
269
  return true;
289
- }, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_TAB_COMMAND, payload_2 => {
270
+ }, COMMAND_PRIORITY_NORMAL), editor.registerCommand(KEY_TAB_COMMAND, payload_2 => {
290
271
  const event_2 = payload_2;
291
272
  if (groups === null || selectedItemKey === null) {
292
273
  return false;