@payloadcms/richtext-lexical 4.0.0-canary.2 → 4.0.0-canary.21

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 (552) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/cell/rscEntry.d.ts.map +1 -1
  3. package/dist/cell/rscEntry.js +5 -5
  4. package/dist/cell/rscEntry.js.map +1 -1
  5. package/dist/exports/client/Field-F22V5L4V.js +2 -0
  6. package/dist/exports/client/Field-F22V5L4V.js.map +7 -0
  7. package/dist/exports/client/bundled.css +1 -1
  8. package/dist/exports/client/chunk-43E5QYAA.js +2 -0
  9. package/dist/exports/client/chunk-43E5QYAA.js.map +7 -0
  10. package/dist/exports/client/{chunk-CUFJGFNW.js → chunk-ESITTE3C.js} +2 -2
  11. package/dist/exports/client/{chunk-CUFJGFNW.js.map → chunk-ESITTE3C.js.map} +2 -2
  12. package/dist/exports/client/chunk-LN6VX25I.js +2 -0
  13. package/dist/exports/client/chunk-LN6VX25I.js.map +7 -0
  14. package/dist/exports/client/component-D5QLYS7W.js +2 -0
  15. package/dist/exports/client/component-D5QLYS7W.js.map +7 -0
  16. package/dist/exports/client/componentInline-H24N7GUG.js +2 -0
  17. package/dist/exports/client/index.d.ts +1 -2
  18. package/dist/exports/client/index.d.ts.map +1 -1
  19. package/dist/exports/client/index.js +27 -28
  20. package/dist/exports/client/index.js.map +4 -4
  21. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  22. package/dist/features/blockquote/client/index.js +2 -2
  23. package/dist/features/blockquote/client/index.js.map +1 -1
  24. package/dist/features/blockquote/server/index.js +2 -2
  25. package/dist/features/blockquote/server/index.js.map +1 -1
  26. package/dist/features/blocks/client/component/index.css +2 -2
  27. package/dist/features/blocks/client/component/index.js.map +1 -1
  28. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
  29. package/dist/features/blocks/client/componentInline/index.css +8 -8
  30. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  31. package/dist/features/blocks/client/getBlockImageComponent.d.ts +1 -1
  32. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +1 -1
  33. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -1
  34. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +1 -1
  35. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
  36. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +1 -1
  37. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -1
  38. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +5 -2
  39. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
  40. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +1 -2
  41. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  42. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  43. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  44. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  45. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.css +1 -1
  46. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +2 -4
  47. package/dist/features/blocks/premade/CodeBlock/Component/index.css +5 -5
  48. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  49. package/dist/features/blocks/server/index.js +2 -2
  50. package/dist/features/blocks/server/index.js.map +1 -1
  51. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +1 -1
  52. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  53. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  54. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  55. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  56. package/dist/features/blocks/server/schema.d.ts.map +1 -1
  57. package/dist/features/blocks/server/schema.js +3 -2
  58. package/dist/features/blocks/server/schema.js.map +1 -1
  59. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  60. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  61. package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
  62. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  63. package/dist/features/converters/lexicalToMarkdown/index.js +1 -1
  64. package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
  65. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  66. package/dist/features/converters/markdownToLexical/index.js +5 -2
  67. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  68. package/dist/features/debug/jsxConverter/client/plugin/style.css +2 -2
  69. package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
  70. package/dist/features/format/bold/feature.client.js +1 -1
  71. package/dist/features/format/bold/feature.client.js.map +1 -1
  72. package/dist/features/format/bold/feature.server.d.ts.map +1 -1
  73. package/dist/features/format/bold/feature.server.js +1 -1
  74. package/dist/features/format/bold/feature.server.js.map +1 -1
  75. package/dist/features/format/inlineCode/feature.client.js +1 -1
  76. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  77. package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
  78. package/dist/features/format/inlineCode/feature.server.js +1 -1
  79. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  80. package/dist/features/format/italic/feature.client.js +1 -1
  81. package/dist/features/format/italic/feature.client.js.map +1 -1
  82. package/dist/features/format/italic/feature.server.d.ts.map +1 -1
  83. package/dist/features/format/italic/feature.server.js +1 -1
  84. package/dist/features/format/italic/feature.server.js.map +1 -1
  85. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  86. package/dist/features/format/strikethrough/feature.client.js +1 -1
  87. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  88. package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
  89. package/dist/features/format/strikethrough/feature.server.js +1 -1
  90. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  91. package/dist/features/heading/client/index.js +2 -2
  92. package/dist/features/heading/client/index.js.map +1 -1
  93. package/dist/features/heading/markdownTransformer.d.ts +2 -2
  94. package/dist/features/heading/markdownTransformer.d.ts.map +1 -1
  95. package/dist/features/heading/markdownTransformer.js +6 -19
  96. package/dist/features/heading/markdownTransformer.js.map +1 -1
  97. package/dist/features/heading/server/index.js +2 -2
  98. package/dist/features/heading/server/index.js.map +1 -1
  99. package/dist/features/heading/server/schema.d.ts.map +1 -1
  100. package/dist/features/horizontalRule/client/index.js +2 -2
  101. package/dist/features/horizontalRule/client/index.js.map +1 -1
  102. package/dist/features/horizontalRule/client/markdownTransformer.d.ts +2 -2
  103. package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -1
  104. package/dist/features/horizontalRule/client/markdownTransformer.js +1 -1
  105. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  106. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
  107. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  108. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +1 -1
  109. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  110. package/dist/features/horizontalRule/client/plugin/index.css +2 -2
  111. package/dist/features/horizontalRule/server/index.js +2 -2
  112. package/dist/features/horizontalRule/server/index.js.map +1 -1
  113. package/dist/features/horizontalRule/server/markdownTransformer.d.ts +2 -2
  114. package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -1
  115. package/dist/features/horizontalRule/server/markdownTransformer.js +1 -1
  116. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  117. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
  118. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  119. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
  120. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  121. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  122. package/dist/features/link/client/index.js +2 -2
  123. package/dist/features/link/client/index.js.map +1 -1
  124. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  125. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +3 -3
  126. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  127. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +7 -12
  128. package/dist/features/link/markdownTransformer.d.ts +4 -4
  129. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  130. package/dist/features/link/markdownTransformer.js +2 -2
  131. package/dist/features/link/markdownTransformer.js.map +1 -1
  132. package/dist/features/link/markdownTransformer.spec.js +10 -10
  133. package/dist/features/link/markdownTransformer.spec.js.map +1 -1
  134. package/dist/features/link/nodes/AutoLinkNode.d.ts +1 -1
  135. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  136. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  137. package/dist/features/link/nodes/LinkNode.d.ts +1 -1
  138. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  139. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  140. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  141. package/dist/features/link/server/baseFields.js.map +1 -1
  142. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  143. package/dist/features/link/server/index.js +4 -4
  144. package/dist/features/link/server/index.js.map +1 -1
  145. package/dist/features/link/server/schema.d.ts.map +1 -1
  146. package/dist/features/link/server/schema.js +4 -2
  147. package/dist/features/link/server/schema.js.map +1 -1
  148. package/dist/features/link/server/validate.d.ts.map +1 -1
  149. package/dist/features/lists/checklist/client/index.js +1 -1
  150. package/dist/features/lists/checklist/client/index.js.map +1 -1
  151. package/dist/features/lists/checklist/server/index.js +1 -1
  152. package/dist/features/lists/checklist/server/index.js.map +1 -1
  153. package/dist/features/lists/orderedList/client/index.js +1 -1
  154. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  155. package/dist/features/lists/orderedList/server/index.js +1 -1
  156. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  157. package/dist/features/lists/unorderedList/client/index.js +1 -1
  158. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  159. package/dist/features/lists/unorderedList/server/index.js +1 -1
  160. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  161. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  162. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  163. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  164. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  165. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  166. package/dist/features/relationship/server/schema.d.ts +3 -3
  167. package/dist/features/relationship/server/schema.d.ts.map +1 -1
  168. package/dist/features/relationship/server/schema.js +22 -5
  169. package/dist/features/relationship/server/schema.js.map +1 -1
  170. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -1
  171. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
  172. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
  173. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
  174. package/dist/features/table/client/index.d.ts.map +1 -0
  175. package/dist/features/{experimental_table → table}/client/index.js +2 -2
  176. package/dist/features/table/client/index.js.map +1 -0
  177. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  178. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  179. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  180. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  181. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  182. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  183. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  184. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  185. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  186. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  187. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  188. package/dist/features/table/client/utils/debounce.js.map +1 -0
  189. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  190. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  191. package/dist/features/table/markdownTransformer.d.ts +5 -0
  192. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  193. package/dist/features/{experimental_table → table}/markdownTransformer.js +6 -3
  194. package/dist/features/table/markdownTransformer.js.map +1 -0
  195. package/dist/features/table/server/index.d.ts +3 -0
  196. package/dist/features/table/server/index.d.ts.map +1 -0
  197. package/dist/features/{experimental_table → table}/server/index.js +6 -6
  198. package/dist/features/table/server/index.js.map +1 -0
  199. package/dist/features/table/server/schema.d.ts.map +1 -0
  200. package/dist/features/table/server/schema.js.map +1 -0
  201. package/dist/features/textState/feature.client.js +1 -1
  202. package/dist/features/textState/feature.client.js.map +1 -1
  203. package/dist/features/toolbars/fixed/client/Toolbar/index.css +4 -6
  204. package/dist/features/toolbars/inline/client/Toolbar/index.css +2 -14
  205. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  206. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +8 -14
  207. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  208. package/dist/features/toolbars/shared/useToolbarStates.d.ts.map +1 -1
  209. package/dist/features/toolbars/shared/useToolbarStates.js +3 -1
  210. package/dist/features/toolbars/shared/useToolbarStates.js.map +1 -1
  211. package/dist/features/typesClient.d.ts +1 -1
  212. package/dist/features/typesClient.d.ts.map +1 -1
  213. package/dist/features/typesClient.js.map +1 -1
  214. package/dist/features/typesServer.d.ts +3 -3
  215. package/dist/features/typesServer.d.ts.map +1 -1
  216. package/dist/features/typesServer.js.map +1 -1
  217. package/dist/features/upload/client/component/index.css +9 -9
  218. package/dist/features/upload/client/component/index.js +2 -1
  219. package/dist/features/upload/client/component/index.js.map +1 -1
  220. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  221. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  222. package/dist/features/upload/client/plugin/index.js +5 -5
  223. package/dist/features/upload/client/plugin/index.js.map +1 -1
  224. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  225. package/dist/features/upload/server/index.js +4 -4
  226. package/dist/features/upload/server/index.js.map +1 -1
  227. package/dist/features/upload/server/markdownTransformer.d.ts +2 -2
  228. package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -1
  229. package/dist/features/upload/server/markdownTransformer.js +1 -1
  230. package/dist/features/upload/server/markdownTransformer.js.map +1 -1
  231. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  232. package/dist/features/upload/server/schema.d.ts +4 -4
  233. package/dist/features/upload/server/schema.d.ts.map +1 -1
  234. package/dist/features/upload/server/schema.js +26 -6
  235. package/dist/features/upload/server/schema.js.map +1 -1
  236. package/dist/features/upload/server/validate.d.ts.map +1 -1
  237. package/dist/field/Diff/converters/unknown/index.css +1 -1
  238. package/dist/field/Field.d.ts.map +1 -1
  239. package/dist/field/Field.js +18 -15
  240. package/dist/field/Field.js.map +1 -1
  241. package/dist/field/ViewSelector.css +1 -1
  242. package/dist/field/bundled.css +1 -1
  243. package/dist/field/index.css +5 -9
  244. package/dist/field/index.js +1 -1
  245. package/dist/field/index.js.map +1 -1
  246. package/dist/field/rscEntry.d.ts.map +1 -1
  247. package/dist/field/rscEntry.js +2 -0
  248. package/dist/field/rscEntry.js.map +1 -1
  249. package/dist/i18n.d.ts.map +1 -1
  250. package/dist/i18n.js +68 -0
  251. package/dist/i18n.js.map +1 -1
  252. package/dist/index.d.ts +3 -3
  253. package/dist/index.d.ts.map +1 -1
  254. package/dist/index.js +7 -7
  255. package/dist/index.js.map +1 -1
  256. package/dist/lexical/LexicalEditor.css +18 -18
  257. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  258. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  259. package/dist/lexical/config/client/loader.js +5 -1
  260. package/dist/lexical/config/client/loader.js.map +1 -1
  261. package/dist/lexical/config/client/sanitize.d.ts.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.css +1 -1
  271. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +16 -24
  272. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  273. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +27 -14
  274. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  275. package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
  276. package/dist/lexical/plugins/MarkdownShortcut/index.js +1 -1
  277. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  278. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -1
  279. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +21 -0
  280. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -1
  281. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  282. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  283. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +1 -20
  284. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  285. package/dist/lexical/plugins/SlashMenu/index.css +1 -6
  286. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +1 -1
  287. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  288. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +4 -3
  289. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -1
  290. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  291. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  292. package/dist/lexical/theme/EditorTheme.css +18 -19
  293. package/dist/lexical/ui/ContentEditable.css +22 -17
  294. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts +17 -0
  295. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts.map +1 -0
  296. package/dist/lexical/utils/markdown/convertFromMarkdownString.js +27 -0
  297. package/dist/lexical/utils/markdown/convertFromMarkdownString.js.map +1 -0
  298. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js +88 -0
  299. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js.map +1 -0
  300. package/dist/lexical/utils/markdown/createBlockNode.d.ts +2 -2
  301. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  302. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  303. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts +25 -0
  304. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts.map +1 -0
  305. package/dist/lexical/utils/markdown/normalizeMarkdown.js +91 -0
  306. package/dist/lexical/utils/markdown/normalizeMarkdown.js.map +1 -0
  307. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  308. package/dist/lexical/utils/point.d.ts.map +1 -1
  309. package/dist/lexical/utils/rect.d.ts.map +1 -1
  310. package/dist/lexical-proxy/@lexical-markdown.d.ts +1 -1
  311. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -1
  312. package/dist/lexical-proxy/@lexical-markdown.js +1 -1
  313. package/dist/lexical-proxy/@lexical-markdown.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/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  375. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
  376. package/dist/types/index.d.ts +3 -3
  377. package/dist/types/index.d.ts.map +1 -1
  378. package/dist/types/index.js.map +1 -1
  379. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -1
  380. package/dist/types/nodeTypes.d.ts +1 -1
  381. package/dist/types/nodeTypes.d.ts.map +1 -1
  382. package/dist/types/nodeTypes.js.map +1 -1
  383. package/dist/types/schema.d.ts.map +1 -1
  384. package/dist/types/schema.js +12 -5
  385. package/dist/types/schema.js.map +1 -1
  386. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  387. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  388. package/dist/utilities/buildInitialState.d.ts +2 -1
  389. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  390. package/dist/utilities/buildInitialState.js.map +1 -1
  391. package/dist/utilities/createServerFeature.d.ts +1 -1
  392. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  393. package/dist/utilities/createServerFeature.js +2 -2
  394. package/dist/utilities/createServerFeature.js.map +1 -1
  395. package/dist/utilities/editorConfigFactory.d.ts +6 -6
  396. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  397. package/dist/utilities/editorConfigFactory.js +9 -9
  398. package/dist/utilities/editorConfigFactory.js.map +1 -1
  399. package/dist/utilities/fieldsDrawer/index.css +0 -4
  400. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +1 -1
  401. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -1
  402. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  403. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  404. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
  405. package/dist/utilities/generateImportMap.d.ts +1 -1
  406. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  407. package/dist/utilities/generateSchemaMap.d.ts +1 -1
  408. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  409. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  410. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  411. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  412. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  413. package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
  414. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  415. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  416. package/dist/validate/index.d.ts.map +1 -1
  417. package/package.json +96 -27
  418. package/dist/exports/client/Field-G5Z2HM5Y.js +0 -2
  419. package/dist/exports/client/Field-G5Z2HM5Y.js.map +0 -7
  420. package/dist/exports/client/chunk-LH634DPU.js +0 -12
  421. package/dist/exports/client/chunk-LH634DPU.js.map +0 -7
  422. package/dist/exports/client/chunk-UD4DQ4AK.js +0 -2
  423. package/dist/exports/client/chunk-UD4DQ4AK.js.map +0 -7
  424. package/dist/exports/client/component-PHZQBOJE.js +0 -2
  425. package/dist/exports/client/component-PHZQBOJE.js.map +0 -7
  426. package/dist/exports/client/componentInline-DV4EGOWU.js +0 -2
  427. package/dist/features/blockquote/markdownTransformer.d.ts +0 -3
  428. package/dist/features/blockquote/markdownTransformer.d.ts.map +0 -1
  429. package/dist/features/blockquote/markdownTransformer.js +0 -33
  430. package/dist/features/blockquote/markdownTransformer.js.map +0 -1
  431. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  432. package/dist/features/experimental_table/client/index.js.map +0 -1
  433. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  434. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  435. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  436. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  437. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  438. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  439. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
  440. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
  441. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  442. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  443. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  444. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  445. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  446. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  447. package/dist/features/experimental_table/markdownTransformer.d.ts +0 -5
  448. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  449. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  450. package/dist/features/experimental_table/server/index.d.ts +0 -3
  451. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  452. package/dist/features/experimental_table/server/index.js.map +0 -1
  453. package/dist/features/experimental_table/server/schema.d.ts.map +0 -1
  454. package/dist/features/experimental_table/server/schema.js.map +0 -1
  455. package/dist/features/format/bold/markdownTransformers.d.ts +0 -6
  456. package/dist/features/format/bold/markdownTransformers.d.ts.map +0 -1
  457. package/dist/features/format/bold/markdownTransformers.js +0 -23
  458. package/dist/features/format/bold/markdownTransformers.js.map +0 -1
  459. package/dist/features/format/inlineCode/markdownTransformers.d.ts +0 -3
  460. package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +0 -1
  461. package/dist/features/format/inlineCode/markdownTransformers.js +0 -6
  462. package/dist/features/format/inlineCode/markdownTransformers.js.map +0 -1
  463. package/dist/features/format/italic/markdownTransformers.d.ts +0 -4
  464. package/dist/features/format/italic/markdownTransformers.d.ts.map +0 -1
  465. package/dist/features/format/italic/markdownTransformers.js +0 -12
  466. package/dist/features/format/italic/markdownTransformers.js.map +0 -1
  467. package/dist/features/format/strikethrough/markdownTransformers.d.ts +0 -3
  468. package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +0 -1
  469. package/dist/features/format/strikethrough/markdownTransformers.js +0 -6
  470. package/dist/features/format/strikethrough/markdownTransformers.js.map +0 -1
  471. package/dist/features/lists/checklist/markdownTransformers.d.ts +0 -3
  472. package/dist/features/lists/checklist/markdownTransformers.d.ts.map +0 -1
  473. package/dist/features/lists/checklist/markdownTransformers.js +0 -12
  474. package/dist/features/lists/checklist/markdownTransformers.js.map +0 -1
  475. package/dist/features/lists/orderedList/markdownTransformer.d.ts +0 -3
  476. package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +0 -1
  477. package/dist/features/lists/orderedList/markdownTransformer.js +0 -12
  478. package/dist/features/lists/orderedList/markdownTransformer.js.map +0 -1
  479. package/dist/features/lists/shared/markdown.d.ts +0 -6
  480. package/dist/features/lists/shared/markdown.d.ts.map +0 -1
  481. package/dist/features/lists/shared/markdown.js +0 -57
  482. package/dist/features/lists/shared/markdown.js.map +0 -1
  483. package/dist/features/lists/unorderedList/markdownTransformer.d.ts +0 -3
  484. package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +0 -1
  485. package/dist/features/lists/unorderedList/markdownTransformer.js +0 -12
  486. package/dist/features/lists/unorderedList/markdownTransformer.js.map +0 -1
  487. package/dist/lexical/utils/guard.d.ts +0 -5
  488. package/dist/lexical/utils/guard.d.ts.map +0 -1
  489. package/dist/lexical/utils/guard.js +0 -9
  490. package/dist/lexical/utils/guard.js.map +0 -1
  491. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +0 -2
  492. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +0 -1
  493. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +0 -2
  494. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +0 -1
  495. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts +0 -14
  496. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +0 -1
  497. package/dist/packages/@lexical/markdown/MarkdownExport.js +0 -213
  498. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +0 -1
  499. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts +0 -19
  500. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +0 -1
  501. package/dist/packages/@lexical/markdown/MarkdownImport.js +0 -198
  502. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +0 -1
  503. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts +0 -11
  504. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +0 -1
  505. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +0 -304
  506. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +0 -1
  507. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +0 -147
  508. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +0 -1
  509. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +0 -268
  510. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +0 -1
  511. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts +0 -22
  512. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +0 -1
  513. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +0 -91
  514. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +0 -1
  515. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts +0 -21
  516. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +0 -1
  517. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +0 -54
  518. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +0 -1
  519. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts +0 -18
  520. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts.map +0 -1
  521. package/dist/packages/@lexical/markdown/importTextTransformers.js +0 -54
  522. package/dist/packages/@lexical/markdown/importTextTransformers.js.map +0 -1
  523. package/dist/packages/@lexical/markdown/index.d.ts +0 -29
  524. package/dist/packages/@lexical/markdown/index.d.ts.map +0 -1
  525. package/dist/packages/@lexical/markdown/index.js +0 -39
  526. package/dist/packages/@lexical/markdown/index.js.map +0 -1
  527. package/dist/packages/@lexical/markdown/utils.d.ts +0 -34
  528. package/dist/packages/@lexical/markdown/utils.d.ts.map +0 -1
  529. package/dist/packages/@lexical/markdown/utils.js +0 -267
  530. package/dist/packages/@lexical/markdown/utils.js.map +0 -1
  531. /package/dist/exports/client/{componentInline-DV4EGOWU.js.map → componentInline-H24N7GUG.js.map} +0 -0
  532. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  533. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +0 -0
  534. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
  535. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +0 -0
  536. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
  537. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
  538. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +0 -0
  539. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  540. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
  541. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +0 -0
  542. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
  543. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
  544. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
  545. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
  546. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +0 -0
  547. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  548. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  549. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  550. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
  551. /package/dist/features/{experimental_table → table}/server/schema.d.ts +0 -0
  552. /package/dist/features/{experimental_table → table}/server/schema.js +0 -0
@@ -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":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lexical/plugins/MarkdownShortcut/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAS1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lexical/plugins/MarkdownShortcut/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAS1C,CAAA"}
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
+ import { registerMarkdownShortcuts } from '@lexical/markdown';
4
5
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
5
6
  import * as React from 'react';
6
- import { registerMarkdownShortcuts } from '../../../packages/@lexical/markdown/MarkdownShortcuts.js';
7
7
  import { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js';
8
8
  export const MarkdownShortcutPlugin = () => {
9
9
  const $ = _c(4);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","React","registerMarkdownShortcuts","useEditorConfigContext","MarkdownShortcutPlugin","$","editorConfig","editor","t0","t1","features","markdownTransformers","useEffect"],"sources":["../../../../src/lexical/plugins/MarkdownShortcut/index.tsx"],"sourcesContent":["'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport * as React from 'react'\n\nimport { registerMarkdownShortcuts } from '../../../packages/@lexical/markdown/MarkdownShortcuts.js'\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\n\nexport const MarkdownShortcutPlugin: React.FC = () => {\n const { editorConfig } = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n\n React.useEffect(() => {\n return registerMarkdownShortcuts(editor, editorConfig.features.markdownTransformers ?? [])\n }, [editor, editorConfig.features.markdownTransformers])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAEA,SAASC,yBAAyB,QAAQ;AAC1C,YAAYC,KAAA,MAAW;AAEvB,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,sBAAsB,QAAQ;AAEvC,OAAO,MAAMC,sBAAA,GAAmCA,CAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAC9C;IAAAO;EAAA,IAAyBH,sBAAA;EACzB,OAAAI,MAAA,IAAiBP,yBAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAC,YAAA,CAAAI,QAAA,CAAAC,oBAAA;IAEDH,EAAA,GAAAA,CAAA,KACPN,yBAAA,CAA0BK,MAAA,EAAQD,YAAA,CAAAI,QAAA,CAAAC,oBAAA,MAAgD;IACxFF,EAAA,IAACF,MAAA,EAAQD,YAAA,CAAAI,QAAA,CAAAC,oBAAA;IAA2CN,CAAA,MAAAE,MAAA;IAAAF,CAAA,MAAAC,YAAA,CAAAI,QAAA,CAAAC,oBAAA;IAAAN,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EAFvDJ,KAAA,CAAAW,SAAA,CAAgBJ,EAEhB,EAAGC,EAAoD;EAAA;AAAA,CAGzD","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","registerMarkdownShortcuts","useLexicalComposerContext","React","useEditorConfigContext","MarkdownShortcutPlugin","$","editorConfig","editor","t0","t1","features","markdownTransformers","useEffect"],"sources":["../../../../src/lexical/plugins/MarkdownShortcut/index.tsx"],"sourcesContent":["'use client'\n\nimport { registerMarkdownShortcuts } from '@lexical/markdown'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport * as React from 'react'\n\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\n\nexport const MarkdownShortcutPlugin: React.FC = () => {\n const { editorConfig } = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n\n React.useEffect(() => {\n return registerMarkdownShortcuts(editor, editorConfig.features.markdownTransformers ?? [])\n }, [editor, editorConfig.features.markdownTransformers])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAEA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,yBAAyB,QAAQ;AAC1C,YAAYC,KAAA,MAAW;AAEvB,SAASC,sBAAsB,QAAQ;AAEvC,OAAO,MAAMC,sBAAA,GAAmCA,CAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAC9C;IAAAO;EAAA,IAAyBH,sBAAA;EACzB,OAAAI,MAAA,IAAiBN,yBAAA;EAAA,IAAAO,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAC,YAAA,CAAAI,QAAA,CAAAC,oBAAA;IAEDH,EAAA,GAAAA,CAAA,KACPR,yBAAA,CAA0BO,MAAA,EAAQD,YAAA,CAAAI,QAAA,CAAAC,oBAAA,MAAgD;IACxFF,EAAA,IAACF,MAAA,EAAQD,YAAA,CAAAI,QAAA,CAAAC,oBAAA;IAA2CN,CAAA,MAAAE,MAAA;IAAAF,CAAA,MAAAC,YAAA,CAAAI,QAAA,CAAAC,oBAAA;IAAAN,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EAFvDH,KAAA,CAAAU,SAAA,CAAgBJ,EAEhB,EAAGC,EAAoD;EAAA;AAAA,CAGzD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lexical/plugins/NodeViewOverridePlugin/index.tsx"],"names":[],"mappings":"AAOA,wBAAgB,sBAAsB,IAAI,IAAI,CAsB7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lexical/plugins/NodeViewOverridePlugin/index.tsx"],"names":[],"mappings":"AA4BA,wBAAgB,sBAAsB,IAAI,IAAI,CAwB7C"}
@@ -2,9 +2,29 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
5
+ import { $getRoot } from 'lexical';
5
6
  import { useEffect } from 'react';
6
7
  import { useRichTextView } from '../../../field/RichTextViewProvider.js';
7
8
  import { clearEditorNodeViews, registerEditorNodeViews } from '../../nodes/index.js';
9
+ // `LexicalComposer` re-mounts with a new `editor` whenever `currentView` changes,
10
+ // so decorator nodes run their initial `decorate()` before this effect registers the view's overrides.
11
+ // Mark existing block decorators dirty after registering so they re-decorate with the resolved custom `Block` component.
12
+ function refreshBlockDecorators(editor) {
13
+ editor.update(() => {
14
+ const walk = node => {
15
+ const type = node.getType();
16
+ if (type === 'block' || type === 'inlineBlock') {
17
+ node.markDirty();
18
+ }
19
+ if ('getChildren' in node && typeof node.getChildren === 'function') {
20
+ for (const child of node.getChildren()) {
21
+ walk(child);
22
+ }
23
+ }
24
+ };
25
+ walk($getRoot());
26
+ });
27
+ }
8
28
  export function NodeViewOverridePlugin() {
9
29
  const $ = _c(5);
10
30
  const [editor] = useLexicalComposerContext();
@@ -31,6 +51,7 @@ export function NodeViewOverridePlugin() {
31
51
  registerEditorNodeViews(editor, views[currentView]?.nodes);
32
52
  }
33
53
  }
54
+ refreshBlockDecorators(editor);
34
55
  };
35
56
  t1 = [editor, views, currentView];
36
57
  $[0] = currentView;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useEffect","useRichTextView","clearEditorNodeViews","registerEditorNodeViews","NodeViewOverridePlugin","$","editor","currentView","views","t0","t1","default","nodes"],"sources":["../../../../src/lexical/plugins/NodeViewOverridePlugin/index.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useEffect } from 'react'\n\nimport { useRichTextView } from '../../../field/RichTextViewProvider.js'\nimport { clearEditorNodeViews, registerEditorNodeViews } from '../../nodes/index.js'\n\nexport function NodeViewOverridePlugin(): null {\n const [editor] = useLexicalComposerContext()\n const { currentView, views } = useRichTextView()\n\n useEffect(() => {\n if (!views) {\n return\n }\n\n if (currentView === 'default') {\n if (views.default) {\n registerEditorNodeViews(editor, views.default?.nodes)\n } else {\n clearEditorNodeViews(editor)\n }\n } else if (views[currentView]) {\n clearEditorNodeViews(editor)\n registerEditorNodeViews(editor, views[currentView]?.nodes)\n }\n }, [editor, views, currentView])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,SAAS,QAAQ;AAE1B,SAASC,eAAe,QAAQ;AAChC,SAASC,oBAAoB,EAAEC,uBAAuB,QAAQ;AAE9D,OAAO,SAAAC,uBAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACL,OAAAQ,MAAA,IAAiBP,yBAAA;EACjB;IAAAQ,WAAA;IAAAC;EAAA,IAA+BP,eAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAL,CAAA,QAAAE,WAAA,IAAAF,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAG,KAAA;IAErBC,EAAA,GAAAA,CAAA;MAAA,KACHD,KAAA;QAAA;MAAA;MAAA,IAIDD,WAAA,KAAgB;QAAA,IACdC,KAAA,CAAAG,OAAA;UACFR,uBAAA,CAAwBG,MAAA,EAAQE,KAAA,CAAAG,OAAA,EAAAC,KAAe;QAAA;UAE/CV,oBAAA,CAAqBI,MAAA;QAAA;MAAA;QAAA,IAEdE,KAAK,CAACD,WAAA;UACfL,oBAAA,CAAqBI,MAAA;UACrBH,uBAAA,CAAwBG,MAAA,EAAQE,KAAK,CAACD,WAAA,GAAAK,KAAc;QAAA;MAAA;IAAA;IAErDF,EAAA,IAACJ,MAAA,EAAQE,KAAA,EAAOD,WAAA;IAAYF,CAAA,MAAAE,WAAA;IAAAF,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAG,KAAA;IAAAH,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAD,EAAA,GAAAJ,CAAA;IAAAK,EAAA,GAAAL,CAAA;EAAA;EAf/BL,SAAA,CAAUS,EAeV,EAAGC,EAA4B;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$getRoot","useEffect","useRichTextView","clearEditorNodeViews","registerEditorNodeViews","refreshBlockDecorators","editor","update","walk","node","type","getType","markDirty","getChildren","child","NodeViewOverridePlugin","$","currentView","views","t0","t1","default","nodes"],"sources":["../../../../src/lexical/plugins/NodeViewOverridePlugin/index.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $getRoot, type LexicalNode } from 'lexical'\nimport { useEffect } from 'react'\n\nimport { useRichTextView } from '../../../field/RichTextViewProvider.js'\nimport { clearEditorNodeViews, registerEditorNodeViews } from '../../nodes/index.js'\n\n// `LexicalComposer` re-mounts with a new `editor` whenever `currentView` changes,\n// so decorator nodes run their initial `decorate()` before this effect registers the view's overrides.\n// Mark existing block decorators dirty after registering so they re-decorate with the resolved custom `Block` component.\nfunction refreshBlockDecorators(editor: ReturnType<typeof useLexicalComposerContext>[0]): void {\n editor.update(() => {\n const walk = (node: LexicalNode): void => {\n const type = node.getType()\n if (type === 'block' || type === 'inlineBlock') {\n node.markDirty()\n }\n if ('getChildren' in node && typeof node.getChildren === 'function') {\n for (const child of node.getChildren() as LexicalNode[]) {\n walk(child)\n }\n }\n }\n walk($getRoot())\n })\n}\n\nexport function NodeViewOverridePlugin(): null {\n const [editor] = useLexicalComposerContext()\n const { currentView, views } = useRichTextView()\n\n useEffect(() => {\n if (!views) {\n return\n }\n\n if (currentView === 'default') {\n if (views.default) {\n registerEditorNodeViews(editor, views.default?.nodes)\n } else {\n clearEditorNodeViews(editor)\n }\n } else if (views[currentView]) {\n clearEditorNodeViews(editor)\n registerEditorNodeViews(editor, views[currentView]?.nodes)\n }\n\n refreshBlockDecorators(editor)\n }, [editor, views, currentView])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,QAAQ,QAA0B;AAC3C,SAASC,SAAS,QAAQ;AAE1B,SAASC,eAAe,QAAQ;AAChC,SAASC,oBAAoB,EAAEC,uBAAuB,QAAQ;AAE9D;AACA;AACA;AACA,SAASC,uBAAuBC,MAAuD;EACrFA,MAAA,CAAOC,MAAM,CAAC;IACZ,MAAMC,IAAA,GAAQC,IAAA;MACZ,MAAMC,IAAA,GAAOD,IAAA,CAAKE,OAAO;MACzB,IAAID,IAAA,KAAS,WAAWA,IAAA,KAAS,eAAe;QAC9CD,IAAA,CAAKG,SAAS;MAChB;MACA,IAAI,iBAAiBH,IAAA,IAAQ,OAAOA,IAAA,CAAKI,WAAW,KAAK,YAAY;QACnE,KAAK,MAAMC,KAAA,IAASL,IAAA,CAAKI,WAAW,IAAqB;UACvDL,IAAA,CAAKM,KAAA;QACP;MACF;IACF;IACAN,IAAA,CAAKR,QAAA;EACP;AACF;AAEA,OAAO,SAAAe,uBAAA;EAAA,MAAAC,CAAA,GAAAlB,EAAA;EACL,OAAAQ,MAAA,IAAiBP,yBAAA;EACjB;IAAAkB,WAAA;IAAAC;EAAA,IAA+BhB,eAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAV,MAAA,IAAAU,CAAA,QAAAE,KAAA;IAErBC,EAAA,GAAAA,CAAA;MAAA,KACHD,KAAA;QAAA;MAAA;MAAA,IAIDD,WAAA,KAAgB;QAAA,IACdC,KAAA,CAAAG,OAAA;UACFjB,uBAAA,CAAwBE,MAAA,EAAQY,KAAA,CAAAG,OAAA,EAAAC,KAAe;QAAA;UAE/CnB,oBAAA,CAAqBG,MAAA;QAAA;MAAA;QAAA,IAEdY,KAAK,CAACD,WAAA;UACfd,oBAAA,CAAqBG,MAAA;UACrBF,uBAAA,CAAwBE,MAAA,EAAQY,KAAK,CAACD,WAAA,GAAAK,KAAc;QAAA;MAAA;MAGtDjB,sBAAA,CAAuBC,MAAA;IAAA;IACtBc,EAAA,IAACd,MAAA,EAAQY,KAAA,EAAOD,WAAA;IAAYD,CAAA,MAAAC,WAAA;IAAAD,CAAA,MAAAV,MAAA;IAAAU,CAAA,MAAAE,KAAA;IAAAF,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EAjB/Bf,SAAA,CAAUkB,EAiBV,EAAGC,EAA4B;EAAA;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();
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalMenu.js","names":["c","_c","useLexicalComposerContext","mergeRegister","$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","useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","CAN_USE_DOM","baseClass","scrollIntoViewIfNeeded","target","typeaheadContainerNode","document","getElementById","typeaheadRect","getBoundingClientRect","top","height","window","innerHeight","scrollIntoView","block","getFullMatchOffset","documentText","entryText","offset","triggerOffset","i","length","substring","$splitNodeContainingQuery","match","selection","isCollapsed","anchor","type","anchorNode","getNode","isSimpleText","selectionOffset","textContent","getTextContent","slice","characterOffset","replaceableString","queryOffset","matchingString","startOffset","newNode","splitText","getScrollParent","element","includeHidden","style","getComputedStyle","excludeStaticParent","position","overflowRegex","body","parent1","parentElement","test","overflow","overflowY","overflowX","isTriggerVisibleInNearestScrollContainer","targetElement","containerElement","tRect","cRect","bottom","useDynamicPositioning","resolution","targetElementRef","onReposition","onVisibilityChange","$","editor","t0","t1","current","rootElement","getRootElement","rootScrollParent","ticking","previousIsInView","handleScroll","requestAnimationFrame","isInView","resizeObserver","ResizeObserver","addEventListener","capture","passive","observe","disconnect","removeEventListener","SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND","LexicalMenu","anchorElementRef","close","groups","menuRenderFn","shouldSplitNodeWithQuery","selectedItemKey","setSelectedItemKey","updateSelectedItem","item","rootElem","setAttribute","key","setSelectedItemKeyToFirstMatchingItem","allItems","flatMap","group","items","firstMatchingItem","selectItemAndCleanUp","selectedItem","update","textNodeContainingQuery","remove","setTimeout","read","clone","onSelect","queryString","removeAttribute","registerCommand","ref","payload","event","selectedIndex","findIndex","newSelectedIndex","newSelectedItem","dispatchCommand","index","preventDefault","stopImmediatePropagation","find","listItemProps","setContainerDivAttributes","containerDiv","className","display","useMenuAnchorRef","anchorElem","setResolution","Symbol","for","createElement","parent","undefined","menuEle","firstChild","width","getRect","left","rawTop","scrollY","scrollX","menuRect","menuHeight","menuWidth","rootElementRect","isRTL","dir","documentElement","anchorRect","leftBoundary","Math","max","right","newLeft","wouldGoOffBottomOfScreen","wouldGoOffTopOfScreen","isConnected","append","positionMenu","t2","t3","rootElement_0","containerDiv_0","t4"],"sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"sourcesContent":["'use client'\nimport type { BaseSelection, LexicalCommand, LexicalEditor, TextNode } from 'lexical'\nimport type { JSX, ReactPortal, RefObject } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $setSelection,\n COMMAND_PRIORITY_LOW,\n COMMAND_PRIORITY_NORMAL,\n createCommand,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n KEY_TAB_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport type { MenuTextMatch } from '../useMenuTriggerMatch.js'\nimport type { SlashMenuGroupInternal, SlashMenuItem, SlashMenuItemInternal } from './types.js'\n\nimport { CAN_USE_DOM } from '../../../utils/canUseDOM.js'\n\nexport type MenuResolution = {\n getRect: () => DOMRect\n match?: MenuTextMatch\n}\n\nconst baseClass = 'slash-menu-popup'\n\nexport type MenuRenderFn = (\n anchorElementRef: RefObject<HTMLElement | null>,\n itemProps: {\n groups: Array<SlashMenuGroupInternal>\n selectedItemKey: null | string\n selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void\n setSelectedItemKey: (itemKey: string) => void\n },\n matchingString: null | string,\n) => JSX.Element | null | ReactPortal\n\nconst scrollIntoViewIfNeeded = (target: HTMLElement) => {\n const typeaheadContainerNode = document.getElementById('slash-menu')\n if (!typeaheadContainerNode) {\n return\n }\n\n const typeaheadRect = typeaheadContainerNode.getBoundingClientRect()\n\n if (typeaheadRect.top + typeaheadRect.height > window.innerHeight) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n if (typeaheadRect.top < 0) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n target.scrollIntoView({ block: 'nearest' })\n}\n\n/**\n * Walk backwards along user input and forward through entity title to try\n * and replace more of the user's text with entity.\n */\nfunction getFullMatchOffset(documentText: string, entryText: string, offset: number) {\n let triggerOffset = offset\n for (let i = triggerOffset; i <= entryText.length; i++) {\n if (documentText.substring(documentText.length - i) === entryText.substring(0, i)) {\n triggerOffset = i\n }\n }\n return triggerOffset\n}\n\n/**\n * Split Lexical TextNode and return a new TextNode only containing matched text.\n * Common use cases include: removing the node, replacing with a new node.\n */\nfunction $splitNodeContainingQuery(match: MenuTextMatch): TextNode | undefined {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) || !selection.isCollapsed()) {\n return\n }\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return\n }\n const selectionOffset = anchor.offset\n const textContent = anchorNode.getTextContent().slice(0, selectionOffset)\n const characterOffset = match.replaceableString.length\n const queryOffset = getFullMatchOffset(textContent, match.matchingString, characterOffset)\n const startOffset = selectionOffset - queryOffset\n if (startOffset < 0) {\n return\n }\n let newNode\n if (startOffset === 0) {\n ;[newNode] = anchorNode.splitText(selectionOffset)\n } else {\n ;[, newNode] = anchorNode.splitText(startOffset, selectionOffset)\n }\n\n return newNode\n}\n\n// Got from https://stackoverflow.com/a/42543908/2013580\nexport function getScrollParent(\n element: HTMLElement,\n includeHidden: boolean,\n): HTMLBodyElement | HTMLElement {\n let style = getComputedStyle(element)\n const excludeStaticParent = style.position === 'absolute'\n const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/\n if (style.position === 'fixed') {\n return document.body\n }\n for (let parent: HTMLElement | null = element; (parent = parent.parentElement); ) {\n style = getComputedStyle(parent)\n if (excludeStaticParent && style.position === 'static') {\n continue\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent\n }\n }\n return document.body\n}\n\nfunction isTriggerVisibleInNearestScrollContainer(\n targetElement: HTMLElement,\n containerElement: HTMLElement,\n): boolean {\n const tRect = targetElement.getBoundingClientRect()\n const cRect = containerElement.getBoundingClientRect()\n return tRect.top > cRect.top && tRect.top < cRect.bottom\n}\n\n// Reposition the menu on scroll, window resize, and element resize.\nexport function useDynamicPositioning(\n resolution: MenuResolution | null,\n targetElementRef: RefObject<HTMLElement | null>,\n onReposition: () => void,\n onVisibilityChange?: (isInView: boolean) => void,\n) {\n const [editor] = useLexicalComposerContext()\n useEffect(() => {\n const targetElement = targetElementRef.current\n if (targetElement != null && resolution != null) {\n const rootElement = editor.getRootElement()\n const rootScrollParent =\n rootElement != null ? getScrollParent(rootElement, false) : document.body\n let ticking = false\n let previousIsInView = isTriggerVisibleInNearestScrollContainer(\n targetElement,\n rootScrollParent,\n )\n const handleScroll = function () {\n if (!ticking) {\n window.requestAnimationFrame(function () {\n onReposition()\n ticking = false\n })\n ticking = true\n }\n const isInView = isTriggerVisibleInNearestScrollContainer(targetElement, rootScrollParent)\n if (isInView !== previousIsInView) {\n previousIsInView = isInView\n if (onVisibilityChange != null) {\n onVisibilityChange(isInView)\n }\n }\n }\n const resizeObserver = new ResizeObserver(onReposition)\n window.addEventListener('resize', onReposition)\n document.addEventListener('scroll', handleScroll, {\n capture: true,\n passive: true,\n })\n resizeObserver.observe(targetElement)\n return () => {\n resizeObserver.disconnect()\n window.removeEventListener('resize', onReposition)\n document.removeEventListener('scroll', handleScroll, true)\n }\n }\n }, [editor, onVisibilityChange, onReposition, resolution, targetElementRef])\n}\n\nexport const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{\n index: number\n item: SlashMenuItemInternal\n}> = createCommand('SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND')\n\nexport function LexicalMenu({\n anchorElementRef,\n close,\n editor,\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n groups,\n menuRenderFn,\n resolution,\n shouldSplitNodeWithQuery = false,\n}: {\n anchorElementRef: RefObject<HTMLElement | null>\n close: () => void\n editor: LexicalEditor\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n resolution: MenuResolution\n shouldSplitNodeWithQuery?: boolean\n}): JSX.Element | null {\n const [selectedItemKey, setSelectedItemKey] = useState<null | string>(null)\n\n const matchingString = (resolution.match && resolution.match.matchingString) || ''\n\n const updateSelectedItem = useCallback(\n (item: SlashMenuItem) => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.setAttribute('aria-activedescendant', `${baseClass}__item-${item.key}`)\n setSelectedItemKey(item.key)\n }\n },\n [editor],\n )\n\n const setSelectedItemKeyToFirstMatchingItem = useCallback(() => {\n // set selected item to the first of the matching ones\n if (groups !== null && matchingString != null) {\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n const allItems = groups.flatMap((group) => group.items)\n\n if (allItems.length) {\n const firstMatchingItem = allItems[0]!\n updateSelectedItem(firstMatchingItem)\n }\n }\n }, [groups, updateSelectedItem, matchingString])\n\n useEffect(() => {\n setSelectedItemKeyToFirstMatchingItem()\n }, [matchingString, setSelectedItemKeyToFirstMatchingItem])\n\n const selectItemAndCleanUp = useCallback(\n (selectedItem: SlashMenuItem) => {\n close()\n\n editor.update(() => {\n const textNodeContainingQuery =\n resolution.match != null && shouldSplitNodeWithQuery\n ? $splitNodeContainingQuery(resolution.match)\n : null\n\n if (textNodeContainingQuery) {\n textNodeContainingQuery.remove()\n }\n })\n\n setTimeout(() => {\n // Needed in Firefox. See https://github.com/payloadcms/payload/issues/10724\n let selection: BaseSelection | undefined\n editor.read(() => {\n selection = $getSelection()?.clone()\n })\n editor.update(() => {\n if (selection) {\n $setSelection(selection)\n }\n })\n\n selectedItem.onSelect({\n editor,\n queryString: resolution.match ? resolution.match.matchingString : '',\n })\n }, 0)\n },\n [editor, shouldSplitNodeWithQuery, resolution.match, close],\n )\n\n useEffect(() => {\n return () => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.removeAttribute('aria-activedescendant')\n }\n }\n }, [editor])\n\n useLayoutEffect(() => {\n if (groups === null) {\n setSelectedItemKey(null)\n } else if (selectedItemKey === null) {\n setSelectedItemKeyToFirstMatchingItem()\n }\n }, [groups, selectedItemKey, updateSelectedItem, setSelectedItemKeyToFirstMatchingItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND,\n ({ item }) => {\n if (item.ref && item.ref.current != null) {\n scrollIntoViewIfNeeded(item.ref.current)\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, updateSelectedItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_DOWN_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== allItems.length - 1 ? selectedIndex + 1 : 0\n\n const newSelectedItem = allItems[newSelectedIndex]\n if (!newSelectedItem) {\n return false\n }\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n editor.dispatchCommand(SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND, {\n index: newSelectedIndex,\n item: newSelectedItem,\n })\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_UP_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== 0 ? selectedIndex - 1 : allItems.length - 1\n\n const newSelectedItem = allItems[newSelectedIndex]\n if (!newSelectedItem) {\n return false\n }\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n scrollIntoViewIfNeeded(newSelectedItem.ref.current)\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ESCAPE_COMMAND,\n (payload) => {\n const event = payload\n event.preventDefault()\n event.stopImmediatePropagation()\n close()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_TAB_COMMAND,\n (payload) => {\n const event = payload\n\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n event.preventDefault()\n event.stopImmediatePropagation()\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand(\n KEY_ENTER_COMMAND,\n (event: KeyboardEvent | null) => {\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n if (event !== null) {\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n )\n }, [selectItemAndCleanUp, close, editor, groups, selectedItemKey, updateSelectedItem])\n\n const listItemProps = useMemo(\n () => ({\n groups,\n selectedItemKey,\n selectItemAndCleanUp,\n setSelectedItemKey,\n }),\n [selectItemAndCleanUp, selectedItemKey, groups],\n )\n\n return menuRenderFn(\n anchorElementRef,\n listItemProps,\n resolution.match ? resolution.match.matchingString : '',\n )\n}\n\nfunction setContainerDivAttributes(containerDiv: HTMLElement, className?: string) {\n if (className != null) {\n containerDiv.className = className\n }\n containerDiv.setAttribute('aria-label', 'Slash menu')\n containerDiv.setAttribute('role', 'listbox')\n containerDiv.style.display = 'block'\n containerDiv.style.position = 'absolute'\n}\n\nexport function useMenuAnchorRef(\n anchorElem: HTMLElement,\n resolution: MenuResolution | null,\n setResolution: (r: MenuResolution | null) => void,\n className?: string,\n): RefObject<HTMLElement | null> {\n const [editor] = useLexicalComposerContext()\n const anchorElementRef = useRef<HTMLElement | null>(\n CAN_USE_DOM ? document.createElement('div') : null,\n )\n const positionMenu = useCallback(() => {\n if (anchorElementRef.current === null || parent === undefined) {\n return\n }\n const rootElement = editor.getRootElement()\n const containerDiv = anchorElementRef.current\n\n const VERTICAL_OFFSET = 32\n\n const menuEle = containerDiv.firstChild as Element\n if (rootElement !== null && resolution !== null) {\n const { height, width } = resolution.getRect()\n let { left, top } = resolution.getRect()\n\n const rawTop = top\n top -= anchorElem.getBoundingClientRect().top + window.scrollY\n left -= anchorElem.getBoundingClientRect().left + window.scrollX\n containerDiv.style.left = `${left + window.scrollX}px`\n containerDiv.style.height = `${height}px`\n containerDiv.style.width = `${width}px`\n if (menuEle !== null) {\n const menuRect = menuEle.getBoundingClientRect()\n const menuHeight = menuRect.height\n const menuWidth = menuRect.width\n\n const rootElementRect = rootElement.getBoundingClientRect()\n\n const isRTL = document.dir === 'rtl' || document.documentElement.dir === 'rtl'\n const anchorRect = anchorElem.getBoundingClientRect()\n const leftBoundary = Math.max(0, rootElementRect.left)\n\n if (!isRTL && left + menuWidth > rootElementRect.right) {\n containerDiv.style.left = `${rootElementRect.right - menuWidth + window.scrollX}px`\n } else if (isRTL && menuRect.left < leftBoundary) {\n const newLeft = leftBoundary + menuWidth - anchorRect.left\n containerDiv.style.left = `${newLeft + window.scrollX}px`\n }\n\n const wouldGoOffBottomOfScreen = rawTop + menuHeight + VERTICAL_OFFSET > window.innerHeight\n //const wouldGoOffBottomOfContainer = top + menuHeight > rootElementRect.bottom\n const wouldGoOffTopOfScreen = rawTop < 0\n\n // Position slash menu above the cursor instead of below (default) if it would otherwise go off the bottom of the screen.\n if (wouldGoOffBottomOfScreen && !wouldGoOffTopOfScreen) {\n const margin = 24\n containerDiv.style.top = `${\n top + VERTICAL_OFFSET - menuHeight + window.scrollY - (height + margin)\n }px`\n } else {\n containerDiv.style.top = `${top + window.scrollY + VERTICAL_OFFSET}px`\n }\n }\n\n if (!containerDiv.isConnected) {\n setContainerDivAttributes(containerDiv, className)\n anchorElem.append(containerDiv)\n }\n containerDiv.setAttribute('id', 'slash-menu')\n anchorElementRef.current = containerDiv\n rootElement.setAttribute('aria-controls', 'slash-menu')\n }\n }, [editor, resolution, className, anchorElem])\n\n useEffect(() => {\n const rootElement = editor.getRootElement()\n if (resolution !== null) {\n positionMenu()\n return () => {\n if (rootElement !== null) {\n rootElement.removeAttribute('aria-controls')\n }\n\n const containerDiv = anchorElementRef.current\n if (containerDiv !== null && containerDiv.isConnected) {\n containerDiv.remove()\n containerDiv.removeAttribute('id')\n }\n }\n }\n }, [editor, positionMenu, resolution])\n\n const onVisibilityChange = useCallback(\n (isInView: boolean) => {\n if (resolution !== null) {\n if (!isInView) {\n setResolution(null)\n }\n }\n },\n [resolution, setResolution],\n )\n\n useDynamicPositioning(resolution, anchorElementRef, positionMenu, onVisibilityChange)\n\n return anchorElementRef\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LexicalMenu.js","names":["c","_c","useLexicalComposerContext","getScrollParent","mergeRegister","$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","useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","CAN_USE_DOM","baseClass","scrollIntoViewIfNeeded","target","typeaheadContainerNode","document","getElementById","typeaheadRect","getBoundingClientRect","top","height","window","innerHeight","scrollIntoView","block","getFullMatchOffset","documentText","entryText","offset","triggerOffset","i","length","substring","$splitNodeContainingQuery","match","selection","isCollapsed","anchor","type","anchorNode","getNode","isSimpleText","selectionOffset","textContent","getTextContent","slice","characterOffset","replaceableString","queryOffset","matchingString","startOffset","newNode","splitText","isTriggerVisibleInNearestScrollContainer","targetElement","containerElement","tRect","cRect","bottom","useDynamicPositioning","resolution","targetElementRef","onReposition","onVisibilityChange","$","editor","t0","t1","current","rootElement","getRootElement","rootScrollParent","body","ticking","previousIsInView","handleScroll","requestAnimationFrame","isInView","resizeObserver","ResizeObserver","addEventListener","capture","passive","observe","disconnect","removeEventListener","SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND","LexicalMenu","anchorElementRef","close","groups","menuRenderFn","shouldSplitNodeWithQuery","selectedItemKey","setSelectedItemKey","updateSelectedItem","item","rootElem","setAttribute","key","setSelectedItemKeyToFirstMatchingItem","allItems","flatMap","group","items","firstMatchingItem","selectItemAndCleanUp","selectedItem","update","textNodeContainingQuery","remove","setTimeout","read","clone","onSelect","queryString","removeAttribute","registerCommand","ref","payload","event","selectedIndex","findIndex","newSelectedIndex","newSelectedItem","dispatchCommand","index","preventDefault","stopImmediatePropagation","find","listItemProps","setContainerDivAttributes","containerDiv","className","style","display","position","useMenuAnchorRef","anchorElem","setResolution","Symbol","for","createElement","parent","undefined","menuEle","firstChild","width","getRect","left","rawTop","scrollY","scrollX","menuRect","menuHeight","menuWidth","rootElementRect","isRTL","dir","documentElement","anchorRect","leftBoundary","Math","max","right","newLeft","wouldGoOffBottomOfScreen","wouldGoOffTopOfScreen","isConnected","append","positionMenu","t2","t3","rootElement_0","containerDiv_0","t4"],"sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"sourcesContent":["'use client'\nimport type { BaseSelection, LexicalCommand, LexicalEditor, TextNode } from 'lexical'\nimport type { JSX, ReactPortal, RefObject } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { getScrollParent, mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $setSelection,\n COMMAND_PRIORITY_LOW,\n COMMAND_PRIORITY_NORMAL,\n createCommand,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n KEY_TAB_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport type { MenuTextMatch } from '../useMenuTriggerMatch.js'\nimport type { SlashMenuGroupInternal, SlashMenuItem, SlashMenuItemInternal } from './types.js'\n\nimport { CAN_USE_DOM } from '../../../utils/canUseDOM.js'\n\nexport type MenuResolution = {\n getRect: () => DOMRect\n match?: MenuTextMatch\n}\n\nconst baseClass = 'slash-menu-popup'\n\nexport type MenuRenderFn = (\n anchorElementRef: RefObject<HTMLElement | null>,\n itemProps: {\n groups: Array<SlashMenuGroupInternal>\n selectedItemKey: null | string\n selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void\n setSelectedItemKey: (itemKey: string) => void\n },\n matchingString: null | string,\n) => JSX.Element | null | ReactPortal\n\nconst scrollIntoViewIfNeeded = (target: HTMLElement) => {\n const typeaheadContainerNode = document.getElementById('slash-menu')\n if (!typeaheadContainerNode) {\n return\n }\n\n const typeaheadRect = typeaheadContainerNode.getBoundingClientRect()\n\n if (typeaheadRect.top + typeaheadRect.height > window.innerHeight) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n if (typeaheadRect.top < 0) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n target.scrollIntoView({ block: 'nearest' })\n}\n\n/**\n * Walk backwards along user input and forward through entity title to try\n * and replace more of the user's text with entity.\n */\nfunction getFullMatchOffset(documentText: string, entryText: string, offset: number) {\n let triggerOffset = offset\n for (let i = triggerOffset; i <= entryText.length; i++) {\n if (documentText.substring(documentText.length - i) === entryText.substring(0, i)) {\n triggerOffset = i\n }\n }\n return triggerOffset\n}\n\n/**\n * Split Lexical TextNode and return a new TextNode only containing matched text.\n * Common use cases include: removing the node, replacing with a new node.\n */\nfunction $splitNodeContainingQuery(match: MenuTextMatch): TextNode | undefined {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) || !selection.isCollapsed()) {\n return\n }\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return\n }\n const selectionOffset = anchor.offset\n const textContent = anchorNode.getTextContent().slice(0, selectionOffset)\n const characterOffset = match.replaceableString.length\n const queryOffset = getFullMatchOffset(textContent, match.matchingString, characterOffset)\n const startOffset = selectionOffset - queryOffset\n if (startOffset < 0) {\n return\n }\n let newNode\n if (startOffset === 0) {\n ;[newNode] = anchorNode.splitText(selectionOffset)\n } else {\n ;[, newNode] = anchorNode.splitText(startOffset, selectionOffset)\n }\n\n return newNode\n}\n\nfunction isTriggerVisibleInNearestScrollContainer(\n targetElement: HTMLElement,\n containerElement: HTMLElement,\n): boolean {\n const tRect = targetElement.getBoundingClientRect()\n const cRect = containerElement.getBoundingClientRect()\n return tRect.top > cRect.top && tRect.top < cRect.bottom\n}\n\n// Reposition the menu on scroll, window resize, and element resize.\nexport function useDynamicPositioning(\n resolution: MenuResolution | null,\n targetElementRef: RefObject<HTMLElement | null>,\n onReposition: () => void,\n onVisibilityChange?: (isInView: boolean) => void,\n) {\n const [editor] = useLexicalComposerContext()\n useEffect(() => {\n const targetElement = targetElementRef.current\n if (targetElement != null && resolution != null) {\n const rootElement = editor.getRootElement()\n const rootScrollParent =\n rootElement != null ? getScrollParent(rootElement, false) : document.body\n let ticking = false\n let previousIsInView = isTriggerVisibleInNearestScrollContainer(\n targetElement,\n rootScrollParent,\n )\n const handleScroll = function () {\n if (!ticking) {\n window.requestAnimationFrame(function () {\n onReposition()\n ticking = false\n })\n ticking = true\n }\n const isInView = isTriggerVisibleInNearestScrollContainer(targetElement, rootScrollParent)\n if (isInView !== previousIsInView) {\n previousIsInView = isInView\n if (onVisibilityChange != null) {\n onVisibilityChange(isInView)\n }\n }\n }\n const resizeObserver = new ResizeObserver(onReposition)\n window.addEventListener('resize', onReposition)\n document.addEventListener('scroll', handleScroll, {\n capture: true,\n passive: true,\n })\n resizeObserver.observe(targetElement)\n return () => {\n resizeObserver.disconnect()\n window.removeEventListener('resize', onReposition)\n document.removeEventListener('scroll', handleScroll, true)\n }\n }\n }, [editor, onVisibilityChange, onReposition, resolution, targetElementRef])\n}\n\nexport const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{\n index: number\n item: SlashMenuItemInternal\n}> = createCommand('SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND')\n\nexport function LexicalMenu({\n anchorElementRef,\n close,\n editor,\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n groups,\n menuRenderFn,\n resolution,\n shouldSplitNodeWithQuery = false,\n}: {\n anchorElementRef: RefObject<HTMLElement | null>\n close: () => void\n editor: LexicalEditor\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n resolution: MenuResolution\n shouldSplitNodeWithQuery?: boolean\n}): JSX.Element | null {\n const [selectedItemKey, setSelectedItemKey] = useState<null | string>(null)\n\n const matchingString = (resolution.match && resolution.match.matchingString) || ''\n\n const updateSelectedItem = useCallback(\n (item: SlashMenuItem) => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.setAttribute('aria-activedescendant', `${baseClass}__item-${item.key}`)\n setSelectedItemKey(item.key)\n }\n },\n [editor],\n )\n\n const setSelectedItemKeyToFirstMatchingItem = useCallback(() => {\n // set selected item to the first of the matching ones\n if (groups !== null && matchingString != null) {\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n const allItems = groups.flatMap((group) => group.items)\n\n if (allItems.length) {\n const firstMatchingItem = allItems[0]!\n updateSelectedItem(firstMatchingItem)\n }\n }\n }, [groups, updateSelectedItem, matchingString])\n\n useEffect(() => {\n setSelectedItemKeyToFirstMatchingItem()\n }, [matchingString, setSelectedItemKeyToFirstMatchingItem])\n\n const selectItemAndCleanUp = useCallback(\n (selectedItem: SlashMenuItem) => {\n close()\n\n editor.update(() => {\n const textNodeContainingQuery =\n resolution.match != null && shouldSplitNodeWithQuery\n ? $splitNodeContainingQuery(resolution.match)\n : null\n\n if (textNodeContainingQuery) {\n textNodeContainingQuery.remove()\n }\n })\n\n setTimeout(() => {\n // Needed in Firefox. See https://github.com/payloadcms/payload/issues/10724\n let selection: BaseSelection | undefined\n editor.read(() => {\n selection = $getSelection()?.clone()\n })\n editor.update(() => {\n if (selection) {\n $setSelection(selection)\n }\n })\n\n selectedItem.onSelect({\n editor,\n queryString: resolution.match ? resolution.match.matchingString : '',\n })\n }, 0)\n },\n [editor, shouldSplitNodeWithQuery, resolution.match, close],\n )\n\n useEffect(() => {\n return () => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.removeAttribute('aria-activedescendant')\n }\n }\n }, [editor])\n\n useLayoutEffect(() => {\n if (groups === null) {\n setSelectedItemKey(null)\n } else if (selectedItemKey === null) {\n setSelectedItemKeyToFirstMatchingItem()\n }\n }, [groups, selectedItemKey, updateSelectedItem, setSelectedItemKeyToFirstMatchingItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND,\n ({ item }) => {\n if (item.ref && item.ref.current != null) {\n scrollIntoViewIfNeeded(item.ref.current)\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, updateSelectedItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_DOWN_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== allItems.length - 1 ? selectedIndex + 1 : 0\n\n const newSelectedItem = allItems[newSelectedIndex]\n if (!newSelectedItem) {\n return false\n }\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n editor.dispatchCommand(SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND, {\n index: newSelectedIndex,\n item: newSelectedItem,\n })\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_UP_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== 0 ? selectedIndex - 1 : allItems.length - 1\n\n const newSelectedItem = allItems[newSelectedIndex]\n if (!newSelectedItem) {\n return false\n }\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n scrollIntoViewIfNeeded(newSelectedItem.ref.current)\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ESCAPE_COMMAND,\n (payload) => {\n const event = payload\n event.preventDefault()\n event.stopImmediatePropagation()\n close()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_TAB_COMMAND,\n (payload) => {\n const event = payload\n\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n event.preventDefault()\n event.stopImmediatePropagation()\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand(\n KEY_ENTER_COMMAND,\n (event: KeyboardEvent | null) => {\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n if (event !== null) {\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n )\n }, [selectItemAndCleanUp, close, editor, groups, selectedItemKey, updateSelectedItem])\n\n const listItemProps = useMemo(\n () => ({\n groups,\n selectedItemKey,\n selectItemAndCleanUp,\n setSelectedItemKey,\n }),\n [selectItemAndCleanUp, selectedItemKey, groups],\n )\n\n return menuRenderFn(\n anchorElementRef,\n listItemProps,\n resolution.match ? resolution.match.matchingString : '',\n )\n}\n\nfunction setContainerDivAttributes(containerDiv: HTMLElement, className?: string) {\n if (className != null) {\n containerDiv.className = className\n }\n containerDiv.setAttribute('aria-label', 'Slash menu')\n containerDiv.setAttribute('role', 'listbox')\n containerDiv.style.display = 'block'\n containerDiv.style.position = 'absolute'\n}\n\nexport function useMenuAnchorRef(\n anchorElem: HTMLElement,\n resolution: MenuResolution | null,\n setResolution: (r: MenuResolution | null) => void,\n className?: string,\n): RefObject<HTMLElement | null> {\n const [editor] = useLexicalComposerContext()\n const anchorElementRef = useRef<HTMLElement | null>(\n CAN_USE_DOM ? document.createElement('div') : null,\n )\n const positionMenu = useCallback(() => {\n if (anchorElementRef.current === null || parent === undefined) {\n return\n }\n const rootElement = editor.getRootElement()\n const containerDiv = anchorElementRef.current\n\n const VERTICAL_OFFSET = 32\n\n const menuEle = containerDiv.firstChild as Element\n if (rootElement !== null && resolution !== null) {\n const { height, width } = resolution.getRect()\n let { left, top } = resolution.getRect()\n\n const rawTop = top\n top -= anchorElem.getBoundingClientRect().top + window.scrollY\n left -= anchorElem.getBoundingClientRect().left + window.scrollX\n containerDiv.style.left = `${left + window.scrollX}px`\n containerDiv.style.height = `${height}px`\n containerDiv.style.width = `${width}px`\n if (menuEle !== null) {\n const menuRect = menuEle.getBoundingClientRect()\n const menuHeight = menuRect.height\n const menuWidth = menuRect.width\n\n const rootElementRect = rootElement.getBoundingClientRect()\n\n const isRTL = document.dir === 'rtl' || document.documentElement.dir === 'rtl'\n const anchorRect = anchorElem.getBoundingClientRect()\n const leftBoundary = Math.max(0, rootElementRect.left)\n\n if (!isRTL && left + menuWidth > rootElementRect.right) {\n containerDiv.style.left = `${rootElementRect.right - menuWidth + window.scrollX}px`\n } else if (isRTL && menuRect.left < leftBoundary) {\n const newLeft = leftBoundary + menuWidth - anchorRect.left\n containerDiv.style.left = `${newLeft + window.scrollX}px`\n }\n\n const wouldGoOffBottomOfScreen = rawTop + menuHeight + VERTICAL_OFFSET > window.innerHeight\n //const wouldGoOffBottomOfContainer = top + menuHeight > rootElementRect.bottom\n const wouldGoOffTopOfScreen = rawTop < 0\n\n // Position slash menu above the cursor instead of below (default) if it would otherwise go off the bottom of the screen.\n if (wouldGoOffBottomOfScreen && !wouldGoOffTopOfScreen) {\n const margin = 24\n containerDiv.style.top = `${\n top + VERTICAL_OFFSET - menuHeight + window.scrollY - (height + margin)\n }px`\n } else {\n containerDiv.style.top = `${top + window.scrollY + VERTICAL_OFFSET}px`\n }\n }\n\n if (!containerDiv.isConnected) {\n setContainerDivAttributes(containerDiv, className)\n anchorElem.append(containerDiv)\n }\n containerDiv.setAttribute('id', 'slash-menu')\n anchorElementRef.current = containerDiv\n rootElement.setAttribute('aria-controls', 'slash-menu')\n }\n }, [editor, resolution, className, anchorElem])\n\n useEffect(() => {\n const rootElement = editor.getRootElement()\n if (resolution !== null) {\n positionMenu()\n return () => {\n if (rootElement !== null) {\n rootElement.removeAttribute('aria-controls')\n }\n\n const containerDiv = anchorElementRef.current\n if (containerDiv !== null && containerDiv.isConnected) {\n containerDiv.remove()\n containerDiv.removeAttribute('id')\n }\n }\n }\n }, [editor, positionMenu, resolution])\n\n const onVisibilityChange = useCallback(\n (isInView: boolean) => {\n if (resolution !== null) {\n if (!isInView) {\n setResolution(null)\n }\n }\n },\n [resolution, setResolution],\n )\n\n useDynamicPositioning(resolution, anchorElementRef, positionMenu, onVisibilityChange)\n\n return anchorElementRef\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,eAAe,EAAEC,aAAa,QAAQ;AAC/C,SACEC,aAAa,EACbC,iBAAiB,EACjBC,aAAa,EACbC,oBAAoB,EACpBC,uBAAuB,EACvBC,aAAa,EACbC,sBAAsB,EACtBC,oBAAoB,EACpBC,iBAAiB,EACjBC,kBAAkB,EAClBC,eAAe,QACV;AACP,SAASC,WAAW,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAKnF,SAASC,WAAW,QAAQ;AAO5B,MAAMC,SAAA,GAAY;AAalB,MAAMC,sBAAA,GAA0BC,MAAA;EAC9B,MAAMC,sBAAA,GAAyBC,QAAA,CAASC,cAAc,CAAC;EACvD,IAAI,CAACF,sBAAA,EAAwB;IAC3B;EACF;EAEA,MAAMG,aAAA,GAAgBH,sBAAA,CAAuBI,qBAAqB;EAElE,IAAID,aAAA,CAAcE,GAAG,GAAGF,aAAA,CAAcG,MAAM,GAAGC,MAAA,CAAOC,WAAW,EAAE;IACjER,sBAAA,CAAuBS,cAAc,CAAC;MACpCC,KAAA,EAAO;IACT;EACF;EAEA,IAAIP,aAAA,CAAcE,GAAG,GAAG,GAAG;IACzBL,sBAAA,CAAuBS,cAAc,CAAC;MACpCC,KAAA,EAAO;IACT;EACF;EAEAX,MAAA,CAAOU,cAAc,CAAC;IAAEC,KAAA,EAAO;EAAU;AAC3C;AAEA;;;;AAIA,SAASC,mBAAmBC,YAAoB,EAAEC,SAAiB,EAAEC,MAAc;EACjF,IAAIC,aAAA,GAAgBD,MAAA;EACpB,KAAK,IAAIE,CAAA,GAAID,aAAA,EAAeC,CAAA,IAAKH,SAAA,CAAUI,MAAM,EAAED,CAAA,IAAK;IACtD,IAAIJ,YAAA,CAAaM,SAAS,CAACN,YAAA,CAAaK,MAAM,GAAGD,CAAA,MAAOH,SAAA,CAAUK,SAAS,CAAC,GAAGF,CAAA,GAAI;MACjFD,aAAA,GAAgBC,CAAA;IAClB;EACF;EACA,OAAOD,aAAA;AACT;AAEA;;;;AAIA,SAASI,0BAA0BC,KAAoB;EACrD,MAAMC,SAAA,GAAY1C,aAAA;EAClB,IAAI,CAACC,iBAAA,CAAkByC,SAAA,KAAc,CAACA,SAAA,CAAUC,WAAW,IAAI;IAC7D;EACF;EACA,MAAMC,MAAA,GAASF,SAAA,CAAUE,MAAM;EAC/B,IAAIA,MAAA,CAAOC,IAAI,KAAK,QAAQ;IAC1B;EACF;EACA,MAAMC,UAAA,GAAaF,MAAA,CAAOG,OAAO;EACjC,IAAI,CAACD,UAAA,CAAWE,YAAY,IAAI;IAC9B;EACF;EACA,MAAMC,eAAA,GAAkBL,MAAA,CAAOT,MAAM;EACrC,MAAMe,WAAA,GAAcJ,UAAA,CAAWK,cAAc,GAAGC,KAAK,CAAC,GAAGH,eAAA;EACzD,MAAMI,eAAA,GAAkBZ,KAAA,CAAMa,iBAAiB,CAAChB,MAAM;EACtD,MAAMiB,WAAA,GAAcvB,kBAAA,CAAmBkB,WAAA,EAAaT,KAAA,CAAMe,cAAc,EAAEH,eAAA;EAC1E,MAAMI,WAAA,GAAcR,eAAA,GAAkBM,WAAA;EACtC,IAAIE,WAAA,GAAc,GAAG;IACnB;EACF;EACA,IAAIC,OAAA;EACJ,IAAID,WAAA,KAAgB,GAAG;IACpB,CAACC,OAAA,CAAQ,GAAGZ,UAAA,CAAWa,SAAS,CAACV,eAAA;EACpC,OAAO;IACJ,GAAGS,OAAA,CAAQ,GAAGZ,UAAA,CAAWa,SAAS,CAACF,WAAA,EAAaR,eAAA;EACnD;EAEA,OAAOS,OAAA;AACT;AAEA,SAASE,yCACPC,aAA0B,EAC1BC,gBAA6B;EAE7B,MAAMC,KAAA,GAAQF,aAAA,CAAcpC,qBAAqB;EACjD,MAAMuC,KAAA,GAAQF,gBAAA,CAAiBrC,qBAAqB;EACpD,OAAOsC,KAAA,CAAMrC,GAAG,GAAGsC,KAAA,CAAMtC,GAAG,IAAIqC,KAAA,CAAMrC,GAAG,GAAGsC,KAAA,CAAMC,MAAM;AAC1D;AAEA;AACA,OAAO,SAAAC,sBAAAC,UAAA,EAAAC,gBAAA,EAAAC,YAAA,EAAAC,kBAAA;EAAA,MAAAC,CAAA,GAAA3E,EAAA;EAML,OAAA4E,MAAA,IAAiB3E,yBAAA;EAAA,IAAA4E,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAH,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAF,YAAA,IAAAE,CAAA,QAAAD,kBAAA,IAAAC,CAAA,QAAAJ,UAAA,IAAAI,CAAA,QAAAH,gBAAA;IACPK,EAAA,GAAAA,CAAA;MACR,MAAAZ,aAAA,GAAsBO,gBAAA,CAAAO,OAAA;MAAwB,IAC1Cd,aAAA,QAAiB,IAAQM,UAAA,QAAc;QACzC,MAAAS,WAAA,GAAoBJ,MAAA,CAAAK,cAAA,CAAqB;QACzC,MAAAC,gBAAA,GACEF,WAAA,QAAe,GAAO9E,eAAA,CAAgB8E,WAAA,OAAa,IAAAtD,QAAA,CAAAyD,IAAsB;QAC3E,IAAAC,OAAA;QACA,IAAAC,gBAAA,GAAuBrB,wCAAA,CACrBC,aAAA,EACAiB,gBAAA;QAEF,MAAAI,YAAA,YAAAA,CAAA;UAAA,KACOF,OAAA;YACHpD,MAAA,CAAAuD,qBAAA;cACEd,YAAA;cACAW,OAAA,CAAAA,CAAA,CAAAA,KAAA;YAAA,CACF;YACAA,OAAA,CAAAA,CAAA,CAAAA,IAAA;UAAA;UAEF,MAAAI,QAAA,GAAiBxB,wCAAA,CAAyCC,aAAA,EAAeiB,gBAAA;UAAA,IACrEM,QAAA,KAAaH,gBAAA;YACfA,gBAAA,CAAAA,CAAA,CAAmBG,QAAA;YAAnB,IACId,kBAAA,QAAsB;cACxBA,kBAAA,CAAmBc,QAAA;YAAA;UAAA;QAAA;QAIzB,MAAAC,cAAA,OAAAC,cAAA,CAA0CjB,YAAA;QAC1CzC,MAAA,CAAA2D,gBAAA,CAAwB,UAAUlB,YAAA;QAClC/C,QAAA,CAAAiE,gBAAA,CAA0B,UAAUL,YAAA;UAAAM,OAAA;UAAAC,OAAA;QAAA,CAGpC;QACAJ,cAAA,CAAAK,OAAA,CAAuB7B,aAAA;QAAA;UAErBwB,cAAA,CAAAM,UAAA,CAAyB;UACzB/D,MAAA,CAAAgE,mBAAA,CAA2B,UAAUvB,YAAA;UACrC/C,QAAA,CAAAsE,mBAAA,CAA6B,UAAUV,YAAA,MAAc;QAAA;MAAA;IAAA;IAGxDR,EAAA,IAACF,MAAA,EAAQF,kBAAA,EAAoBD,YAAA,EAAcF,UAAA,EAAYC,gBAAA;IAAiBG,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAF,YAAA;IAAAE,CAAA,MAAAD,kBAAA;IAAAC,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAAH,gBAAA;IAAAG,CAAA,MAAAE,EAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAD,EAAA,GAAAF,CAAA;IAAAG,EAAA,GAAAH,CAAA;EAAA;EAxC3E3D,SAAA,CAAU6D,EAwCV,EAAGC,EAAwE;AAAA;AAG7E,OAAO,MAAMmB,yCAAA,GAGRxF,aAAA,CAAc;AAEnB,OAAO,SAASyF,YAAY;EAC1BC,gBAAgB;EAChBC,KAAK;EACLxB,MAAM;EACN;EACAyB,MAAM;EACNC,YAAY;EACZ/B,UAAU;EACVgC,wBAAA,GAA2B;AAAK,CASjC;EACC,MAAM,CAACC,eAAA,EAAiBC,kBAAA,CAAmB,GAAGrF,QAAA,CAAwB;EAEtE,MAAMwC,cAAA,GAAiBW,UAAC,CAAW1B,KAAK,IAAI0B,UAAA,CAAW1B,KAAK,CAACe,cAAc,IAAK;EAEhF,MAAM8C,kBAAA,GAAqB3F,WAAA,CACxB4F,IAAA;IACC,MAAMC,QAAA,GAAWhC,MAAA,CAAOK,cAAc;IACtC,IAAI2B,QAAA,KAAa,MAAM;MACrBA,QAAA,CAASC,YAAY,CAAC,yBAAyB,GAAGvF,SAAA,UAAmBqF,IAAA,CAAKG,GAAG,EAAE;MAC/EL,kBAAA,CAAmBE,IAAA,CAAKG,GAAG;IAC7B;EACF,GACA,CAAClC,MAAA,CAAO;EAGV,MAAMmC,qCAAA,GAAwChG,WAAA,CAAY;IACxD;IACA,IAAIsF,MAAA,KAAW,QAAQzC,cAAA,IAAkB,MAAM;MAC7C;MACA,MAAMoD,QAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,KAAA,IAAUA,KAAA,CAAMC,KAAK;MAEtD,IAAIH,QAAA,CAAStE,MAAM,EAAE;QACnB,MAAM0E,iBAAA,GAAoBJ,QAAQ,CAAC,EAAE;QACrCN,kBAAA,CAAmBU,iBAAA;MACrB;IACF;EACF,GAAG,CAACf,MAAA,EAAQK,kBAAA,EAAoB9C,cAAA,CAAe;EAE/C5C,SAAA,CAAU;IACR+F,qCAAA;EACF,GAAG,CAACnD,cAAA,EAAgBmD,qCAAA,CAAsC;EAE1D,MAAMM,oBAAA,GAAuBtG,WAAA,CAC1BuG,YAAA;IACClB,KAAA;IAEAxB,MAAA,CAAO2C,MAAM,CAAC;MACZ,MAAMC,uBAAA,GACJjD,UAAA,CAAW1B,KAAK,IAAI,QAAQ0D,wBAAA,GACxB3D,yBAAA,CAA0B2B,UAAA,CAAW1B,KAAK,IAC1C;MAEN,IAAI2E,uBAAA,EAAyB;QAC3BA,uBAAA,CAAwBC,MAAM;MAChC;IACF;IAEAC,UAAA,CAAW;MACT;MACA,IAAI5E,SAAA;MACJ8B,MAAA,CAAO+C,IAAI,CAAC;QACV7E,SAAA,GAAY1C,aAAA,IAAiBwH,KAAA;MAC/B;MACAhD,MAAA,CAAO2C,MAAM,CAAC;QACZ,IAAIzE,SAAA,EAAW;UACbxC,aAAA,CAAcwC,SAAA;QAChB;MACF;MAEAwE,YAAA,CAAaO,QAAQ,CAAC;QACpBjD,MAAA;QACAkD,WAAA,EAAavD,UAAA,CAAW1B,KAAK,GAAG0B,UAAA,CAAW1B,KAAK,CAACe,cAAc,GAAG;MACpE;IACF,GAAG;EACL,GACA,CAACgB,MAAA,EAAQ2B,wBAAA,EAA0BhC,UAAA,CAAW1B,KAAK,EAAEuD,KAAA,CAAM;EAG7DpF,SAAA,CAAU;IACR,OAAO;MACL,MAAM4F,UAAA,GAAWhC,MAAA,CAAOK,cAAc;MACtC,IAAI2B,UAAA,KAAa,MAAM;QACrBA,UAAA,CAASmB,eAAe,CAAC;MAC3B;IACF;EACF,GAAG,CAACnD,MAAA,CAAO;EAEX3D,eAAA,CAAgB;IACd,IAAIoF,MAAA,KAAW,MAAM;MACnBI,kBAAA,CAAmB;IACrB,OAAO,IAAID,eAAA,KAAoB,MAAM;MACnCO,qCAAA;IACF;EACF,GAAG,CAACV,MAAA,EAAQG,eAAA,EAAiBE,kBAAA,EAAoBK,qCAAA,CAAsC;EAEvF/F,SAAA,CAAU;IACR,OAAOb,aAAA,CACLyE,MAAA,CAAOoD,eAAe,CACpB/B,yCAAA,EACA,CAAC;MAAEU,IAAI,EAAJA;IAAI,CAAE;MACP,IAAIA,MAAA,CAAKsB,GAAG,IAAItB,MAAA,CAAKsB,GAAG,CAAClD,OAAO,IAAI,MAAM;QACxCxD,sBAAA,CAAuBoF,MAAA,CAAKsB,GAAG,CAAClD,OAAO;QACvC,OAAO;MACT;MAEA,OAAO;IACT,GACAxE,oBAAA;EAGN,GAAG,CAACqE,MAAA,EAAQ8B,kBAAA,CAAmB;EAE/B1F,SAAA,CAAU;IACR,OAAOb,aAAA,CACLyE,MAAA,CAAOoD,eAAe,CACpBtH,sBAAA,EACCwH,OAAA;MACC,MAAMC,KAAA,GAAQD,OAAA;MACd,IAAI7B,MAAA,KAAW,QAAQA,MAAA,CAAO3D,MAAM,IAAI8D,eAAA,KAAoB,MAAM;QAChE,MAAMQ,UAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,OAAA,IAAUA,OAAA,CAAMC,KAAK;QACtD,MAAMiB,aAAA,GAAgBpB,UAAA,CAASqB,SAAS,CAAE1B,MAAA,IAASA,MAAA,CAAKG,GAAG,KAAKN,eAAA;QAEhE,MAAM8B,gBAAA,GAAmBF,aAAA,KAAkBpB,UAAA,CAAStE,MAAM,GAAG,IAAI0F,aAAA,GAAgB,IAAI;QAErF,MAAMG,eAAA,GAAkBvB,UAAQ,CAACsB,gBAAA,CAAiB;QAClD,IAAI,CAACC,eAAA,EAAiB;UACpB,OAAO;QACT;QAEA7B,kBAAA,CAAmB6B,eAAA;QACnB,IAAIA,eAAA,CAAgBN,GAAG,IAAI,QAAQM,eAAA,CAAgBN,GAAG,CAAClD,OAAO,EAAE;UAC9DH,MAAA,CAAO4D,eAAe,CAACvC,yCAAA,EAA2C;YAChEwC,KAAA,EAAOH,gBAAA;YACP3B,IAAA,EAAM4B;UACR;QACF;QACAJ,KAAA,CAAMO,cAAc;QACpBP,KAAA,CAAMQ,wBAAwB;MAChC;MACA,OAAO;IACT,GACAnI,uBAAA,GAEFoE,MAAA,CAAOoD,eAAe,CACpBrH,oBAAA,EACCuH,SAAA;MACC,MAAMC,OAAA,GAAQD,SAAA;MACd,IAAI7B,MAAA,KAAW,QAAQA,MAAA,CAAO3D,MAAM,IAAI8D,eAAA,KAAoB,MAAM;QAChE,MAAMQ,UAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,OAAA,IAAUA,OAAA,CAAMC,KAAK;QACtD,MAAMiB,eAAA,GAAgBpB,UAAA,CAASqB,SAAS,CAAE1B,MAAA,IAASA,MAAA,CAAKG,GAAG,KAAKN,eAAA;QAEhE,MAAM8B,kBAAA,GAAmBF,eAAA,KAAkB,IAAIA,eAAA,GAAgB,IAAIpB,UAAA,CAAStE,MAAM,GAAG;QAErF,MAAM6F,iBAAA,GAAkBvB,UAAQ,CAACsB,kBAAA,CAAiB;QAClD,IAAI,CAACC,iBAAA,EAAiB;UACpB,OAAO;QACT;QAEA7B,kBAAA,CAAmB6B,iBAAA;QACnB,IAAIA,iBAAA,CAAgBN,GAAG,IAAI,QAAQM,iBAAA,CAAgBN,GAAG,CAAClD,OAAO,EAAE;UAC9DxD,sBAAA,CAAuBgH,iBAAA,CAAgBN,GAAG,CAAClD,OAAO;QACpD;QACAoD,OAAA,CAAMO,cAAc;QACpBP,OAAA,CAAMQ,wBAAwB;MAChC;MACA,OAAO;IACT,GACAnI,uBAAA,GAEFoE,MAAA,CAAOoD,eAAe,CACpBnH,kBAAA,EACCqH,SAAA;MACC,MAAMC,OAAA,GAAQD,SAAA;MACdC,OAAA,CAAMO,cAAc;MACpBP,OAAA,CAAMQ,wBAAwB;MAC9BvC,KAAA;MACA,OAAO;IACT,GACA7F,oBAAA,GAEFqE,MAAA,CAAOoD,eAAe,CACpBlH,eAAA,EACCoH,SAAA;MACC,MAAMC,OAAA,GAAQD,SAAA;MAEd,IAAI7B,MAAA,KAAW,QAAQG,eAAA,KAAoB,MAAM;QAC/C,OAAO;MACT;MACA,MAAMQ,UAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,OAAA,IAAUA,OAAA,CAAMC,KAAK;MACtD,MAAMG,cAAA,GAAeN,UAAA,CAAS4B,IAAI,CAAEjC,MAAA,IAASA,MAAA,CAAKG,GAAG,KAAKN,eAAA;MAC1D,IAAI,CAACc,cAAA,EAAc;QACjB,OAAO;MACT;MAEAa,OAAA,CAAMO,cAAc;MACpBP,OAAA,CAAMQ,wBAAwB;MAC9BtB,oBAAA,CAAqBC,cAAA;MACrB,OAAO;IACT,GACA9G,uBAAA,GAEFoE,MAAA,CAAOoD,eAAe,CACpBpH,iBAAA,EACCuH,OAAA;MACC,IAAI9B,MAAA,KAAW,QAAQG,eAAA,KAAoB,MAAM;QAC/C,OAAO;MACT;MACA,MAAMQ,UAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,OAAA,IAAUA,OAAA,CAAMC,KAAK;MACtD,MAAMG,cAAA,GAAeN,UAAA,CAAS4B,IAAI,CAAEjC,MAAA,IAASA,MAAA,CAAKG,GAAG,KAAKN,eAAA;MAC1D,IAAI,CAACc,cAAA,EAAc;QACjB,OAAO;MACT;MAEA,IAAIa,OAAA,KAAU,MAAM;QAClBA,OAAA,CAAMO,cAAc;QACpBP,OAAA,CAAMQ,wBAAwB;MAChC;MACAtB,oBAAA,CAAqBC,cAAA;MACrB,OAAO;IACT,GACA9G,uBAAA;EAGN,GAAG,CAAC6G,oBAAA,EAAsBjB,KAAA,EAAOxB,MAAA,EAAQyB,MAAA,EAAQG,eAAA,EAAiBE,kBAAA,CAAmB;EAErF,MAAMmC,aAAA,GAAgB3H,OAAA,CACpB,OAAO;IACLmF,MAAA;IACAG,eAAA;IACAa,oBAAA;IACAZ;EACF,IACA,CAACY,oBAAA,EAAsBb,eAAA,EAAiBH,MAAA,CAAO;EAGjD,OAAOC,YAAA,CACLH,gBAAA,EACA0C,aAAA,EACAtE,UAAA,CAAW1B,KAAK,GAAG0B,UAAA,CAAW1B,KAAK,CAACe,cAAc,GAAG;AAEzD;AAEA,SAASkF,0BAA0BC,YAAyB,EAAEC,SAAkB;EAC9E,IAAIA,SAAA,IAAa,MAAM;IACrBD,YAAA,CAAaC,SAAS,GAAGA,SAAA;EAC3B;EACAD,YAAA,CAAalC,YAAY,CAAC,cAAc;EACxCkC,YAAA,CAAalC,YAAY,CAAC,QAAQ;EAClCkC,YAAA,CAAaE,KAAK,CAACC,OAAO,GAAG;EAC7BH,YAAA,CAAaE,KAAK,CAACE,QAAQ,GAAG;AAChC;AAEA,OAAO,SAAAC,iBAAAC,UAAA,EAAA9E,UAAA,EAAA+E,aAAA,EAAAN,SAAA;EAAA,MAAArE,CAAA,GAAA3E,EAAA;EAML,OAAA4E,MAAA,IAAiB3E,yBAAA;EAAA,IAAA4E,EAAA;EAAA,IAAAF,CAAA,QAAA4E,MAAA,CAAAC,GAAA;IAEf3E,EAAA,GAAAxD,WAAA,GAAcK,QAAA,CAAA+H,aAAA,CAAuB,aAAS;IAAA9E,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EADhD,MAAAwB,gBAAA,GAAyBhF,MAAA,CACvB0D,EAA8C;EAAA,IAAAC,EAAA;EAAA,IAAAH,CAAA,QAAA0E,UAAA,IAAA1E,CAAA,QAAAqE,SAAA,IAAArE,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAJ,UAAA;IAEfO,EAAA,GAAAA,CAAA;MAAA,IAC3BqB,gBAAA,CAAApB,OAAA,SAA6B,IAAQ2E,MAAA,KAAAC,SAAW;QAAA;MAAA;MAGpD,MAAA3E,WAAA,GAAoBJ,MAAA,CAAAK,cAAA,CAAqB;MACzC,MAAA8D,YAAA,GAAqB5C,gBAAA,CAAApB,OAAA;MAIrB,MAAA6E,OAAA,GAAgBb,YAAA,CAAAc,UAAA;MAAuB,IACnC7E,WAAA,SAAgB,IAAQT,UAAA,SAAe;QACzC;UAAAxC,MAAA;UAAA+H;QAAA,IAA0BvF,UAAA,CAAAwF,OAAA,CAAkB;QAC5C;UAAAC,IAAA;UAAAlI;QAAA,IAAoByC,UAAA,CAAAwF,OAAA,CAAkB;QAEtC,MAAAE,MAAA,GAAenI,GAAA;QACfA,GAAA,GAAAA,GAAA,IAAOuH,UAAA,CAAAxH,qBAAA,CAAgC,EAAAC,GAAA,GAAAE,MAAA,CAAAkI,OAAuB;QAC9DF,IAAA,GAAAA,IAAA,IAAQX,UAAA,CAAAxH,qBAAA,CAAgC,EAAAmI,IAAA,GAAAhI,MAAA,CAAAmI,OAAwB;QAChEpB,YAAA,CAAAE,KAAA,CAAAe,IAAA,GAA0B,GAAGA,IAAA,GAAAhI,MAAA,CAAAmI,OAAqB,IAAI;QACtDpB,YAAA,CAAAE,KAAA,CAAAlH,MAAA,GAA4B,GAAGA,MAAA,IAAU;QACzCgH,YAAA,CAAAE,KAAA,CAAAa,KAAA,GAA2B,GAAGA,KAAA,IAAS;QAAA,IACnCF,OAAA,SAAY;UACd,MAAAQ,QAAA,GAAiBR,OAAA,CAAA/H,qBAAA,CAA6B;UAC9C,MAAAwI,UAAA,GAAmBD,QAAA,CAAArI,MAAA;UACnB,MAAAuI,SAAA,GAAkBF,QAAA,CAAAN,KAAA;UAElB,MAAAS,eAAA,GAAwBvF,WAAA,CAAAnD,qBAAA,CAAiC;UAEzD,MAAA2I,KAAA,GAAc9I,QAAA,CAAA+I,GAAA,KAAiB,SAAS/I,QAAA,CAAAgJ,eAAA,CAAAD,GAAA,KAAiC;UACzE,MAAAE,UAAA,GAAmBtB,UAAA,CAAAxH,qBAAA,CAAgC;UACnD,MAAA+I,YAAA,GAAqBC,IAAA,CAAAC,GAAA,IAAYP,eAAA,CAAAP,IAAoB;UAAA,IAEjD,CAACQ,KAAA,IAASR,IAAA,GAAOM,SAAA,GAAYC,eAAA,CAAAQ,KAAqB;YACpDhC,YAAA,CAAAE,KAAA,CAAAe,IAAA,GAA0B,GAAGO,eAAA,CAAAQ,KAAA,GAAwBT,SAAA,GAAAtI,MAAA,CAAAmI,OAA0B,IAAI;UAAA;YAAA,IAC1EK,KAAA,IAASJ,QAAA,CAAAJ,IAAA,GAAgBY,YAAA;cAClC,MAAAI,OAAA,GAAgBJ,YAAA,GAAeN,SAAA,GAAYK,UAAA,CAAAX,IAAe;cAC1DjB,YAAA,CAAAE,KAAA,CAAAe,IAAA,GAA0B,GAAGgB,OAAA,GAAAhJ,MAAA,CAAAmI,OAAwB,IAAI;YAAA;UAAA;UAG3D,MAAAc,wBAAA,GAAiChB,MAAA,GAASI,UAAA,KAAa,GAAArI,MAAA,CAAAC,WAAoC;UAE3F,MAAAiJ,qBAAA,GAA8BjB,MAAA,IAAS;UAAA,IAGnCgB,wBAAA,KAA6BC,qBAAA;YAE/BnC,YAAA,CAAAE,KAAA,CAAAnH,GAAA,GAAyB,GACvBA,GAAA,KAAM,GAAkBuI,UAAA,GAAArI,MAAA,CAAAkI,OAA2B,IAAInI,MAAA,KAAc,KACnE;UAAA;YAEJgH,YAAA,CAAAE,KAAA,CAAAnH,GAAA,GAAyB,GAAGA,GAAA,GAAAE,MAAA,CAAAkI,OAAoB,KAAG,IAAmB;UAAA;QAAA;QAAA,KAIrEnB,YAAA,CAAAoC,WAAA;UACHrC,yBAAA,CAA0BC,YAAA,EAAcC,SAAA;UACxCK,UAAA,CAAA+B,MAAA,CAAkBrC,YAAA;QAAA;QAEpBA,YAAA,CAAAlC,YAAA,CAA0B,MAAM;QAChCV,gBAAA,CAAApB,OAAA,GAA2BgE,YAAA;QAC3B/D,WAAA,CAAA6B,YAAA,CAAyB,iBAAiB;MAAA;IAAA;IAE9ClC,CAAA,MAAA0E,UAAA;IAAA1E,CAAA,MAAAqE,SAAA;IAAArE,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EA7DA,MAAA0G,YAAA,GAAqBvG,EA6DyB;EAAA,IAAAwG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA5G,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAA0G,YAAA,IAAA1G,CAAA,QAAAJ,UAAA;IAEpC+G,EAAA,GAAAA,CAAA;MACR,MAAAE,aAAA,GAAoB5G,MAAA,CAAAK,cAAA,CAAqB;MAAA,IACrCV,UAAA,SAAe;QACjB8G,YAAA;QAAA;UAAA,IAEMrG,aAAA,SAAgB;YAClBA,aAAA,CAAA+C,eAAA,CAA4B;UAAA;UAG9B,MAAA0D,cAAA,GAAqBtF,gBAAA,CAAApB,OAAA;UAAwB,IACzCgE,cAAA,SAAiB,IAAQA,cAAA,CAAAoC,WAAwB;YACnDpC,cAAA,CAAAtB,MAAA,CAAmB;YACnBsB,cAAA,CAAAhB,eAAA,CAA6B;UAAA;QAAA;MAAA;IAAA;IAIlCwD,EAAA,IAAC3G,MAAA,EAAQyG,YAAA,EAAc9G,UAAA;IAAWI,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAA0G,YAAA;IAAA1G,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAA2G,EAAA;IAAA3G,CAAA,OAAA4G,EAAA;EAAA;IAAAD,EAAA,GAAA3G,CAAA;IAAA4G,EAAA,GAAA5G,CAAA;EAAA;EAhBrC3D,SAAA,CAAUsK,EAgBV,EAAGC,EAAkC;EAAA,IAAAG,EAAA;EAAA,IAAA/G,CAAA,SAAAJ,UAAA,IAAAI,CAAA,SAAA2E,aAAA;IAGnCoC,EAAA,GAAAlG,QAAA;MAAA,IACMjB,UAAA,SAAe;QAAA,KACZiB,QAAA;UACH8D,aAAA,KAAc;QAAA;MAAA;IAAA;IAGpB3E,CAAA,OAAAJ,UAAA;IAAAI,CAAA,OAAA2E,aAAA;IAAA3E,CAAA,OAAA+G,EAAA;EAAA;IAAAA,EAAA,GAAA/G,CAAA;EAAA;EAPF,MAAAD,kBAAA,GAA2BgH,EAQE;EAG7BpH,qBAAA,CAAsBC,UAAA,EAAY4B,gBAAA,EAAkBkF,YAAA,EAAc3G,kBAAA;EAAA,OAE3DyB,gBAAA;AAAA","ignoreList":[]}
@@ -16,11 +16,7 @@
16
16
  overflow-y: auto;
17
17
  z-index: 10;
18
18
  position: absolute;
19
- box-shadow:
20
- 0 2px 6px 0 rgba(0, 0, 0, 0.12),
21
- 0 10px 16px 0 rgba(0, 0, 0, 0.08),
22
- 0 0 0.5px 0 rgba(0, 0, 0, 0.12),
23
- 0 0 0 1px rgba(0, 0, 0, 0.04);
19
+ box-shadow: var(--elevation-400-menu-panel);
24
20
  }
25
21
 
26
22
  .slash-menu-popup__group {
@@ -46,7 +42,6 @@
46
42
  border-radius: var(--radius-medium);
47
43
  cursor: pointer;
48
44
  gap: var(--spacer-1);
49
- transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
50
45
 
51
46
  .icon {
52
47
  color: var(--color-icon-secondary);
@@ -6,7 +6,7 @@
6
6
  cursor: pointer;
7
7
  opacity: 0;
8
8
  position: absolute;
9
- left: 0;
9
+ inset-inline-start: 0;
10
10
  top: 0;
11
11
  will-change: transform;
12
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/handles/DraggableBlockPlugin/debounce.ts"],"names":[],"mappings":"AACA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,MAAM,IAExD,GAAG,MAAM,SAAS,EAAE,UAUtC"}
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/handles/DraggableBlockPlugin/debounce.ts"],"names":[],"mappings":"AACA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,MAAM,aAE/C,SAAS,EAAE,UAUtC"}
@@ -6,7 +6,7 @@
6
6
  cursor: grab;
7
7
  opacity: 0;
8
8
  position: absolute;
9
- left: 0;
9
+ inset-inline-start: 0;
10
10
  top: 0;
11
11
  will-change: transform;
12
12
  background-color: var(--color-bg);
@@ -46,11 +46,12 @@
46
46
 
47
47
  .rich-text-lexical--show-gutter
48
48
  > .rich-text-lexical__wrap
49
+ > .rich-text-lexical__editor-content
49
50
  > .editor-container
50
51
  > .editor-scroller
51
52
  > .editor {
52
53
  > .draggable-block-target-line {
53
- left: var(--spacer-5);
54
+ inset-inline-start: var(--spacer-5);
54
55
  }
55
56
  }
56
57
 
@@ -60,7 +61,7 @@
60
61
  border-radius: var(--radius-small);
61
62
  height: var(--spacer-1);
62
63
  position: absolute;
63
- left: 0;
64
+ inset-inline-start: 0;
64
65
  top: 0;
65
66
  opacity: 0;
66
67
  will-change: transform;
@@ -271,7 +271,7 @@ function useDraggableBlockMenu(editor, anchorElem, isEditable) {
271
271
  }
272
272
  const highlightElem = document.createElement('div');
273
273
  highlightElem.className = 'lexical-block-highlighter';
274
- highlightElem.style.backgroundColor = 'var(--theme-elevation-1000';
274
+ highlightElem.style.backgroundColor = 'var(--color-bg-inverse)';
275
275
  highlightElem.style.transition = 'opacity 0.5s ease-in-out';
276
276
  highlightElem.style.zIndex = '1';
277
277
  highlightElem.style.pointerEvents = 'none';