@payloadcms/richtext-lexical 3.0.0-canary.ff8c8fd → 3.0.0

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 (821) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/cell/rscEntry.d.ts +12 -0
  3. package/dist/cell/rscEntry.d.ts.map +1 -0
  4. package/dist/cell/rscEntry.js +82 -0
  5. package/dist/cell/rscEntry.js.map +1 -0
  6. package/dist/exports/client/Field-KKSJXHR7.js +2 -0
  7. package/dist/exports/client/Field-KKSJXHR7.js.map +7 -0
  8. package/dist/exports/client/RelationshipComponent-2RT3YXUT.js +2 -0
  9. package/dist/exports/client/RelationshipComponent-2RT3YXUT.js.map +7 -0
  10. package/dist/exports/client/bundled.css +1 -1
  11. package/dist/exports/client/chunk-2CYU43GM.js +2 -0
  12. package/dist/exports/client/chunk-2CYU43GM.js.map +7 -0
  13. package/dist/exports/client/chunk-5PBXL4HT.js +2 -0
  14. package/dist/exports/client/chunk-5PBXL4HT.js.map +7 -0
  15. package/dist/exports/client/chunk-C7S3V4EB.js +2 -0
  16. package/dist/exports/client/chunk-C7S3V4EB.js.map +7 -0
  17. package/dist/exports/client/chunk-CUIBIFW2.js +2 -0
  18. package/dist/exports/client/chunk-CUIBIFW2.js.map +7 -0
  19. package/dist/exports/client/{chunk-UJDWBQ2K.js → chunk-MI5HS4QX.js} +2 -2
  20. package/dist/exports/client/{chunk-UJDWBQ2K.js.map → chunk-MI5HS4QX.js.map} +2 -2
  21. package/dist/exports/client/chunk-QPPOQTHD.js +2 -0
  22. package/dist/exports/client/chunk-QPPOQTHD.js.map +7 -0
  23. package/dist/exports/client/chunk-U7O7EYCP.js +2 -0
  24. package/dist/exports/client/chunk-U7O7EYCP.js.map +7 -0
  25. package/dist/exports/client/{chunk-V2LKLT2F.js → chunk-XCEM47RI.js} +3 -3
  26. package/dist/exports/client/{chunk-V2LKLT2F.js.map → chunk-XCEM47RI.js.map} +3 -3
  27. package/dist/exports/client/component-ANB7VZLA.js +2 -0
  28. package/dist/exports/client/component-ANB7VZLA.js.map +7 -0
  29. package/dist/exports/client/component-H3EYQ5KG.js +2 -0
  30. package/dist/exports/client/component-H3EYQ5KG.js.map +7 -0
  31. package/dist/exports/client/componentInline-ZGO3K4TA.js +2 -0
  32. package/dist/exports/client/componentInline-ZGO3K4TA.js.map +7 -0
  33. package/dist/exports/client/index.d.ts +10 -4
  34. package/dist/exports/client/index.d.ts.map +1 -1
  35. package/dist/exports/client/index.js +10 -8
  36. package/dist/exports/client/index.js.map +4 -4
  37. package/dist/exports/server/ast/mdx.d.ts +7 -0
  38. package/dist/exports/server/ast/mdx.d.ts.map +1 -0
  39. package/dist/exports/server/ast/mdx.js +37 -0
  40. package/dist/exports/server/ast/mdx.js.map +1 -0
  41. package/dist/exports/server/rsc.d.ts +3 -0
  42. package/dist/exports/server/rsc.d.ts.map +1 -0
  43. package/dist/exports/server/rsc.js +3 -0
  44. package/dist/exports/server/rsc.js.map +1 -0
  45. package/dist/exports/shared.d.ts +4 -0
  46. package/dist/exports/shared.d.ts.map +1 -0
  47. package/dist/exports/shared.js +4 -0
  48. package/dist/exports/shared.js.map +1 -0
  49. package/dist/features/align/client/index.d.ts +1 -4
  50. package/dist/features/align/client/index.d.ts.map +1 -1
  51. package/dist/features/blockquote/client/index.d.ts +1 -4
  52. package/dist/features/blockquote/client/index.d.ts.map +1 -1
  53. package/dist/features/blockquote/markdownTransformer.js.map +1 -1
  54. package/dist/features/blockquote/server/index.d.ts +1 -1
  55. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  56. package/dist/features/blockquote/server/index.js +5 -1
  57. package/dist/features/blockquote/server/index.js.map +1 -1
  58. package/dist/features/blocks/client/component/BlockContent.d.ts +34 -8
  59. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  60. package/dist/features/blocks/client/component/BlockContent.js +66 -170
  61. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  62. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts +11 -0
  63. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts.map +1 -0
  64. package/dist/features/blocks/client/component/components/BlockCollapsible.js +37 -0
  65. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -0
  66. package/dist/features/blocks/client/component/components/BlockEditButton.d.ts +3 -0
  67. package/dist/features/blocks/client/component/components/BlockEditButton.d.ts.map +1 -0
  68. package/dist/features/blocks/client/component/components/BlockEditButton.js +22 -0
  69. package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -0
  70. package/dist/features/blocks/client/component/components/BlockRemoveButton.d.ts +3 -0
  71. package/dist/features/blocks/client/component/components/BlockRemoveButton.d.ts.map +1 -0
  72. package/dist/features/blocks/client/component/components/BlockRemoveButton.js +22 -0
  73. package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -0
  74. package/dist/features/blocks/client/component/index.d.ts +1 -1
  75. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  76. package/dist/features/blocks/client/component/index.js +294 -93
  77. package/dist/features/blocks/client/component/index.js.map +1 -1
  78. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts +5 -0
  79. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -0
  80. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +28 -0
  81. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -0
  82. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.d.ts +3 -0
  83. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.d.ts.map +1 -0
  84. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +22 -0
  85. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -0
  86. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.d.ts +3 -0
  87. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.d.ts.map +1 -0
  88. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +22 -0
  89. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -0
  90. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.d.ts +3 -0
  91. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.d.ts.map +1 -0
  92. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +22 -0
  93. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -0
  94. package/dist/features/blocks/client/componentInline/index.d.ts +14 -2
  95. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  96. package/dist/features/blocks/client/componentInline/index.js +237 -63
  97. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  98. package/dist/features/blocks/client/index.d.ts +1 -8
  99. package/dist/features/blocks/client/index.d.ts.map +1 -1
  100. package/dist/features/blocks/client/index.js +140 -147
  101. package/dist/features/blocks/client/index.js.map +1 -1
  102. package/dist/features/blocks/client/markdownTransformer.d.ts +16 -0
  103. package/dist/features/blocks/client/markdownTransformer.d.ts.map +1 -0
  104. package/dist/features/blocks/client/markdownTransformer.js +144 -0
  105. package/dist/features/blocks/client/markdownTransformer.js.map +1 -0
  106. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  107. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  108. package/dist/features/blocks/client/nodes/BlocksNode.js +1 -3
  109. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  110. package/dist/features/blocks/client/plugin/commands.d.ts +0 -4
  111. package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -1
  112. package/dist/features/blocks/client/plugin/commands.js +0 -1
  113. package/dist/features/blocks/client/plugin/commands.js.map +1 -1
  114. package/dist/features/blocks/client/plugin/index.d.ts +3 -4
  115. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  116. package/dist/features/blocks/client/plugin/index.js +25 -129
  117. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  118. package/dist/features/blocks/server/index.d.ts +1 -2
  119. package/dist/features/blocks/server/index.d.ts.map +1 -1
  120. package/dist/features/blocks/server/index.js +72 -35
  121. package/dist/features/blocks/server/index.js.map +1 -1
  122. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts +22 -0
  123. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts.map +1 -0
  124. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js +136 -0
  125. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js.map +1 -0
  126. package/dist/features/blocks/server/markdownTransformer.d.ts +22 -0
  127. package/dist/features/blocks/server/markdownTransformer.d.ts.map +1 -0
  128. package/dist/features/blocks/server/markdownTransformer.js +400 -0
  129. package/dist/features/blocks/server/markdownTransformer.js.map +1 -0
  130. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +11 -5
  131. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  132. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  133. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +3 -3
  134. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  135. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  136. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  137. package/dist/features/blocks/server/validate.js +8 -5
  138. package/dist/features/blocks/server/validate.js.map +1 -1
  139. package/dist/features/converters/html/converter/converters/paragraph.d.ts.map +1 -1
  140. package/dist/features/converters/html/converter/converters/paragraph.js +4 -0
  141. package/dist/features/converters/html/converter/converters/paragraph.js.map +1 -1
  142. package/dist/features/converters/html/converter/converters/text.d.ts.map +1 -1
  143. package/dist/features/converters/html/converter/converters/text.js +2 -1
  144. package/dist/features/converters/html/converter/converters/text.js.map +1 -1
  145. package/dist/features/converters/html/converter/index.d.ts +11 -7
  146. package/dist/features/converters/html/converter/index.d.ts.map +1 -1
  147. package/dist/features/converters/html/converter/index.js +17 -1
  148. package/dist/features/converters/html/converter/index.js.map +1 -1
  149. package/dist/features/converters/html/converter/types.d.ts +3 -1
  150. package/dist/features/converters/html/converter/types.d.ts.map +1 -1
  151. package/dist/features/converters/html/converter/types.js.map +1 -1
  152. package/dist/features/converters/html/field/index.d.ts.map +1 -1
  153. package/dist/features/converters/html/field/index.js +7 -1
  154. package/dist/features/converters/html/field/index.js.map +1 -1
  155. package/dist/features/debug/testRecorder/client/index.d.ts +1 -4
  156. package/dist/features/debug/testRecorder/client/index.d.ts.map +1 -1
  157. package/dist/features/debug/testRecorder/client/plugin/index.js +25 -14
  158. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  159. package/dist/features/debug/treeView/client/index.d.ts +1 -4
  160. package/dist/features/debug/treeView/client/index.d.ts.map +1 -1
  161. package/dist/features/experimental_table/client/index.d.ts +1 -1
  162. package/dist/features/experimental_table/client/index.d.ts.map +1 -1
  163. package/dist/features/experimental_table/client/index.js +2 -0
  164. package/dist/features/experimental_table/client/index.js.map +1 -1
  165. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -1
  166. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +49 -51
  167. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  168. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -1
  169. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +55 -42
  170. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  171. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts +1 -1
  172. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
  173. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +58 -19
  174. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  175. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
  176. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +52 -50
  177. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  178. package/dist/features/experimental_table/client/utils/debounce.js +4 -4
  179. package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
  180. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
  181. package/dist/features/experimental_table/markdownTransformer.d.ts +5 -0
  182. package/dist/features/experimental_table/markdownTransformer.d.ts.map +1 -0
  183. package/dist/features/experimental_table/markdownTransformer.js +127 -0
  184. package/dist/features/experimental_table/markdownTransformer.js.map +1 -0
  185. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  186. package/dist/features/experimental_table/server/index.js +22 -4
  187. package/dist/features/experimental_table/server/index.js.map +1 -1
  188. package/dist/features/format/bold/feature.client.d.ts +1 -4
  189. package/dist/features/format/bold/feature.client.d.ts.map +1 -1
  190. package/dist/features/format/bold/feature.client.js +2 -1
  191. package/dist/features/format/bold/feature.client.js.map +1 -1
  192. package/dist/features/format/inlineCode/feature.client.d.ts +1 -4
  193. package/dist/features/format/inlineCode/feature.client.d.ts.map +1 -1
  194. package/dist/features/format/inlineCode/feature.client.js +2 -1
  195. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  196. package/dist/features/format/italic/feature.client.d.ts +1 -4
  197. package/dist/features/format/italic/feature.client.d.ts.map +1 -1
  198. package/dist/features/format/italic/feature.client.js +2 -1
  199. package/dist/features/format/italic/feature.client.js.map +1 -1
  200. package/dist/features/format/strikethrough/feature.client.d.ts +1 -4
  201. package/dist/features/format/strikethrough/feature.client.d.ts.map +1 -1
  202. package/dist/features/format/strikethrough/feature.client.js +2 -1
  203. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  204. package/dist/features/format/subscript/feature.client.d.ts +1 -4
  205. package/dist/features/format/subscript/feature.client.d.ts.map +1 -1
  206. package/dist/features/format/subscript/feature.client.js +2 -1
  207. package/dist/features/format/subscript/feature.client.js.map +1 -1
  208. package/dist/features/format/superscript/feature.client.d.ts +1 -4
  209. package/dist/features/format/superscript/feature.client.d.ts.map +1 -1
  210. package/dist/features/format/superscript/feature.client.js +2 -1
  211. package/dist/features/format/superscript/feature.client.js.map +1 -1
  212. package/dist/features/format/underline/feature.client.d.ts +1 -4
  213. package/dist/features/format/underline/feature.client.d.ts.map +1 -1
  214. package/dist/features/format/underline/feature.client.js +2 -1
  215. package/dist/features/format/underline/feature.client.js.map +1 -1
  216. package/dist/features/heading/client/index.d.ts +1 -4
  217. package/dist/features/heading/client/index.d.ts.map +1 -1
  218. package/dist/features/heading/server/index.d.ts.map +1 -1
  219. package/dist/features/heading/server/index.js +4 -0
  220. package/dist/features/heading/server/index.js.map +1 -1
  221. package/dist/features/horizontalRule/client/component/index.d.ts +1 -1
  222. package/dist/features/horizontalRule/client/component/index.d.ts.map +1 -1
  223. package/dist/features/horizontalRule/client/component/index.js +12 -9
  224. package/dist/features/horizontalRule/client/component/index.js.map +1 -1
  225. package/dist/features/horizontalRule/client/index.d.ts +1 -4
  226. package/dist/features/horizontalRule/client/index.d.ts.map +1 -1
  227. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +2 -2
  228. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  229. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
  230. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  231. package/dist/features/indent/client/index.d.ts +1 -4
  232. package/dist/features/indent/client/index.d.ts.map +1 -1
  233. package/dist/features/indent/client/index.js +2 -1
  234. package/dist/features/indent/client/index.js.map +1 -1
  235. package/dist/features/link/client/index.d.ts +1 -13
  236. package/dist/features/link/client/index.d.ts.map +1 -1
  237. package/dist/features/link/client/index.js +2 -2
  238. package/dist/features/link/client/index.js.map +1 -1
  239. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  240. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  241. package/dist/features/link/client/plugins/autoLink/index.js +3 -1
  242. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  243. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  244. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +78 -40
  245. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  246. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -1
  247. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +1 -1
  248. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  249. package/dist/features/link/nodes/AutoLinkNode.js +2 -2
  250. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  251. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  252. package/dist/features/link/nodes/LinkNode.js +12 -7
  253. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  254. package/dist/features/link/nodes/types.d.ts +3 -3
  255. package/dist/features/link/nodes/types.d.ts.map +1 -1
  256. package/dist/features/link/nodes/types.js.map +1 -1
  257. package/dist/features/link/server/baseFields.d.ts +1 -1
  258. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  259. package/dist/features/link/server/baseFields.js +15 -3
  260. package/dist/features/link/server/baseFields.js.map +1 -1
  261. package/dist/features/link/server/i18n.d.ts.map +1 -1
  262. package/dist/features/link/server/i18n.js +64 -32
  263. package/dist/features/link/server/i18n.js.map +1 -1
  264. package/dist/features/link/server/index.d.ts.map +1 -1
  265. package/dist/features/link/server/index.js +17 -4
  266. package/dist/features/link/server/index.js.map +1 -1
  267. package/dist/features/link/server/transformExtraFields.d.ts +1 -1
  268. package/dist/features/link/server/transformExtraFields.d.ts.map +1 -1
  269. package/dist/features/link/server/transformExtraFields.js.map +1 -1
  270. package/dist/features/link/server/validate.d.ts.map +1 -1
  271. package/dist/features/link/server/validate.js +8 -5
  272. package/dist/features/link/server/validate.js.map +1 -1
  273. package/dist/features/lists/checklist/client/index.d.ts +1 -4
  274. package/dist/features/lists/checklist/client/index.d.ts.map +1 -1
  275. package/dist/features/lists/htmlConverter.d.ts.map +1 -1
  276. package/dist/features/lists/htmlConverter.js +8 -0
  277. package/dist/features/lists/htmlConverter.js.map +1 -1
  278. package/dist/features/lists/orderedList/client/index.d.ts +1 -4
  279. package/dist/features/lists/orderedList/client/index.d.ts.map +1 -1
  280. package/dist/features/lists/shared/markdown.js.map +1 -1
  281. package/dist/features/lists/unorderedList/client/index.d.ts +1 -4
  282. package/dist/features/lists/unorderedList/client/index.d.ts.map +1 -1
  283. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -1
  284. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +1 -0
  285. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
  286. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts +1 -4
  287. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +1 -1
  288. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  289. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  290. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  291. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
  292. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
  293. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
  294. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
  295. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
  296. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
  297. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
  298. package/dist/features/migrations/slateToLexical/converter/index.d.ts.map +1 -1
  299. package/dist/features/migrations/slateToLexical/converter/index.js +1 -0
  300. package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
  301. package/dist/features/migrations/slateToLexical/feature.client.d.ts +1 -4
  302. package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +1 -1
  303. package/dist/features/migrations/slateToLexical/feature.client.js +1 -3
  304. package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
  305. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  306. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  307. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  308. package/dist/features/paragraph/client/index.d.ts +1 -4
  309. package/dist/features/paragraph/client/index.d.ts.map +1 -1
  310. package/dist/features/paragraph/server/index.d.ts +1 -1
  311. package/dist/features/paragraph/server/index.d.ts.map +1 -1
  312. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  313. package/dist/features/relationship/client/components/RelationshipComponent.js +34 -24
  314. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  315. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  316. package/dist/features/relationship/client/drawer/index.js +27 -26
  317. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  318. package/dist/features/relationship/client/index.d.ts +2 -17
  319. package/dist/features/relationship/client/index.d.ts.map +1 -1
  320. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  321. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  322. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  323. package/dist/features/relationship/client/plugins/index.js +1 -1
  324. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  325. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +1 -1
  326. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -1
  327. package/dist/features/relationship/server/index.d.ts +1 -1
  328. package/dist/features/relationship/server/index.d.ts.map +1 -1
  329. package/dist/features/relationship/server/index.js +50 -40
  330. package/dist/features/relationship/server/index.js.map +1 -1
  331. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +2 -2
  332. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  333. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  334. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  335. package/dist/features/toolbars/fixed/client/Toolbar/index.js +93 -66
  336. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  337. package/dist/features/toolbars/fixed/client/index.d.ts +1 -4
  338. package/dist/features/toolbars/fixed/client/index.d.ts.map +1 -1
  339. package/dist/features/toolbars/inline/client/Toolbar/index.js +135 -97
  340. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  341. package/dist/features/toolbars/inline/client/index.d.ts +1 -4
  342. package/dist/features/toolbars/inline/client/index.d.ts.map +1 -1
  343. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  344. package/dist/features/toolbars/shared/ToolbarButton/index.js +5 -2
  345. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  346. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts +5 -4
  347. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  348. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +24 -10
  349. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  350. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +4 -5
  351. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  352. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +127 -127
  353. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  354. package/dist/features/toolbars/types.d.ts +23 -11
  355. package/dist/features/toolbars/types.d.ts.map +1 -1
  356. package/dist/features/toolbars/types.js.map +1 -1
  357. package/dist/features/typesClient.d.ts +22 -30
  358. package/dist/features/typesClient.d.ts.map +1 -1
  359. package/dist/features/typesClient.js.map +1 -1
  360. package/dist/features/typesServer.d.ts +23 -28
  361. package/dist/features/typesServer.d.ts.map +1 -1
  362. package/dist/features/typesServer.js.map +1 -1
  363. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  364. package/dist/features/upload/client/component/index.js +66 -58
  365. package/dist/features/upload/client/component/index.js.map +1 -1
  366. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  367. package/dist/features/upload/client/drawer/index.js +34 -32
  368. package/dist/features/upload/client/drawer/index.js.map +1 -1
  369. package/dist/features/upload/client/feature.client.d.ts +1 -4
  370. package/dist/features/upload/client/feature.client.d.ts.map +1 -1
  371. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  372. package/dist/features/upload/client/nodes/UploadNode.js +1 -1
  373. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  374. package/dist/features/upload/client/plugin/index.js +1 -1
  375. package/dist/features/upload/client/plugin/index.js.map +1 -1
  376. package/dist/features/upload/server/feature.server.d.ts.map +1 -1
  377. package/dist/features/upload/server/feature.server.js +17 -8
  378. package/dist/features/upload/server/feature.server.js.map +1 -1
  379. package/dist/features/upload/server/validate.d.ts.map +1 -1
  380. package/dist/features/upload/server/validate.js +7 -4
  381. package/dist/features/upload/server/validate.js.map +1 -1
  382. package/dist/field/Field.d.ts.map +1 -1
  383. package/dist/field/Field.js +39 -65
  384. package/dist/field/Field.js.map +1 -1
  385. package/dist/field/bundled.css +1 -1
  386. package/dist/field/index.d.ts.map +1 -1
  387. package/dist/field/index.js +74 -74
  388. package/dist/field/index.js.map +1 -1
  389. package/dist/field/rscEntry.d.ts +9 -0
  390. package/dist/field/rscEntry.d.ts.map +1 -0
  391. package/dist/field/rscEntry.js +56 -0
  392. package/dist/field/rscEntry.js.map +1 -0
  393. package/dist/index.d.ts +8 -4
  394. package/dist/index.d.ts.map +1 -1
  395. package/dist/index.js +101 -105
  396. package/dist/index.js.map +1 -1
  397. package/dist/lexical/EditorPlugin.d.ts.map +1 -1
  398. package/dist/lexical/EditorPlugin.js +2 -1
  399. package/dist/lexical/EditorPlugin.js.map +1 -1
  400. package/dist/lexical/LexicalEditor.d.ts +1 -1
  401. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  402. package/dist/lexical/LexicalEditor.js +10 -10
  403. package/dist/lexical/LexicalEditor.js.map +1 -1
  404. package/dist/lexical/LexicalProvider.d.ts +2 -2
  405. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  406. package/dist/lexical/LexicalProvider.js +18 -25
  407. package/dist/lexical/LexicalProvider.js.map +1 -1
  408. package/dist/lexical/config/client/EditorConfigProvider.d.ts +6 -5
  409. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  410. package/dist/lexical/config/client/EditorConfigProvider.js +14 -13
  411. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  412. package/dist/lexical/config/client/loader.d.ts +5 -2
  413. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  414. package/dist/lexical/config/client/loader.js +12 -18
  415. package/dist/lexical/config/client/loader.js.map +1 -1
  416. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  417. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  418. package/dist/lexical/config/client/sanitize.js +19 -18
  419. package/dist/lexical/config/client/sanitize.js.map +1 -1
  420. package/dist/lexical/config/server/loader.d.ts +2 -1
  421. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  422. package/dist/lexical/config/server/loader.js +2 -0
  423. package/dist/lexical/config/server/loader.js.map +1 -1
  424. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  425. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  426. package/dist/lexical/config/server/sanitize.js +27 -13
  427. package/dist/lexical/config/server/sanitize.js.map +1 -1
  428. package/dist/lexical/config/types.d.ts +2 -2
  429. package/dist/lexical/config/types.d.ts.map +1 -1
  430. package/dist/lexical/config/types.js.map +1 -1
  431. package/dist/lexical/nodes/index.d.ts +4 -0
  432. package/dist/lexical/nodes/index.d.ts.map +1 -1
  433. package/dist/lexical/nodes/index.js +8 -1
  434. package/dist/lexical/nodes/index.js.map +1 -1
  435. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +6 -6
  436. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  437. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +19 -8
  438. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  439. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +2 -2
  440. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
  441. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +7 -7
  442. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  443. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +3 -2
  444. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  445. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  446. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  447. package/dist/lexical/plugins/SlashMenu/index.js +24 -30
  448. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  449. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  450. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +11 -9
  451. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  452. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts +1 -1
  453. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  454. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
  455. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
  456. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +1 -1
  457. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
  458. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  459. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +15 -8
  460. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  461. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +1 -1
  462. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +9 -7
  463. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  464. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.d.ts.map +1 -1
  465. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +3 -1
  466. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +1 -1
  467. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.d.ts.map +1 -1
  468. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +3 -4
  469. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
  470. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
  471. package/dist/lexical/theme/EditorTheme.js +1 -2
  472. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  473. package/dist/lexical/utils/nodeFormat.d.ts +2 -2
  474. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  475. package/dist/lexical/utils/nodeFormat.js.map +1 -1
  476. package/dist/lexical/utils/rect.d.ts +4 -4
  477. package/dist/lexical/utils/rect.d.ts.map +1 -1
  478. package/dist/lexical/utils/rect.js.map +1 -1
  479. package/dist/lexical/utils/setFloatingElemPosition.d.ts +1 -1
  480. package/dist/lexical/utils/setFloatingElemPosition.d.ts.map +1 -1
  481. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
  482. package/dist/lexical/utils/url.d.ts +5 -0
  483. package/dist/lexical/utils/url.d.ts.map +1 -1
  484. package/dist/lexical/utils/url.js +25 -5
  485. package/dist/lexical/utils/url.js.map +1 -1
  486. package/dist/lexical-proxy/@lexical-headless.d.ts +2 -0
  487. package/dist/lexical-proxy/@lexical-headless.d.ts.map +1 -0
  488. package/dist/lexical-proxy/@lexical-headless.js +2 -0
  489. package/dist/lexical-proxy/@lexical-headless.js.map +1 -0
  490. package/dist/lexical-proxy/@lexical-link.d.ts +2 -0
  491. package/dist/lexical-proxy/@lexical-link.d.ts.map +1 -0
  492. package/dist/lexical-proxy/@lexical-link.js +2 -0
  493. package/dist/lexical-proxy/@lexical-link.js.map +1 -0
  494. package/dist/lexical-proxy/@lexical-list.d.ts +2 -0
  495. package/dist/lexical-proxy/@lexical-list.d.ts.map +1 -0
  496. package/dist/lexical-proxy/@lexical-list.js +2 -0
  497. package/dist/lexical-proxy/@lexical-list.js.map +1 -0
  498. package/dist/lexical-proxy/@lexical-mark.d.ts +2 -0
  499. package/dist/lexical-proxy/@lexical-mark.d.ts.map +1 -0
  500. package/dist/lexical-proxy/@lexical-mark.js +2 -0
  501. package/dist/lexical-proxy/@lexical-mark.js.map +1 -0
  502. package/dist/lexical-proxy/@lexical-markdown.d.ts +2 -0
  503. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -0
  504. package/dist/lexical-proxy/@lexical-markdown.js +2 -0
  505. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -0
  506. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.d.ts +2 -0
  507. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.d.ts.map +1 -0
  508. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js +2 -0
  509. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js.map +1 -0
  510. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.d.ts +2 -0
  511. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.d.ts.map +1 -0
  512. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js +2 -0
  513. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js.map +1 -0
  514. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.d.ts +2 -0
  515. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.d.ts.map +1 -0
  516. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js +2 -0
  517. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js.map +1 -0
  518. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.d.ts +2 -0
  519. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.d.ts.map +1 -0
  520. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js +2 -0
  521. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js.map +1 -0
  522. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.d.ts +2 -0
  523. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.d.ts.map +1 -0
  524. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js +2 -0
  525. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js.map +1 -0
  526. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.d.ts +2 -0
  527. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.d.ts.map +1 -0
  528. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js +2 -0
  529. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js.map +1 -0
  530. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.d.ts +2 -0
  531. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.d.ts.map +1 -0
  532. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js +2 -0
  533. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js.map +1 -0
  534. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.d.ts +2 -0
  535. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.d.ts.map +1 -0
  536. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js +2 -0
  537. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js.map +1 -0
  538. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.d.ts +2 -0
  539. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.d.ts.map +1 -0
  540. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js +2 -0
  541. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js.map +1 -0
  542. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.d.ts +2 -0
  543. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.d.ts.map +1 -0
  544. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js +2 -0
  545. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js.map +1 -0
  546. package/dist/lexical-proxy/@lexical-react/LexicalComposer.d.ts +2 -0
  547. package/dist/lexical-proxy/@lexical-react/LexicalComposer.d.ts.map +1 -0
  548. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js +2 -0
  549. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js.map +1 -0
  550. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.d.ts +2 -0
  551. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.d.ts.map +1 -0
  552. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js +2 -0
  553. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js.map +1 -0
  554. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.d.ts +2 -0
  555. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.d.ts.map +1 -0
  556. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js +2 -0
  557. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js.map +1 -0
  558. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +2 -0
  559. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +1 -0
  560. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +2 -0
  561. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +1 -0
  562. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.d.ts +2 -0
  563. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.d.ts.map +1 -0
  564. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js +2 -0
  565. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js.map +1 -0
  566. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.d.ts +2 -0
  567. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.d.ts.map +1 -0
  568. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js +2 -0
  569. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js.map +1 -0
  570. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.d.ts +2 -0
  571. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.d.ts.map +1 -0
  572. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js +2 -0
  573. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js.map +1 -0
  574. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.d.ts +2 -0
  575. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.d.ts.map +1 -0
  576. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js +2 -0
  577. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js.map +1 -0
  578. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.d.ts +2 -0
  579. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.d.ts.map +1 -0
  580. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js +2 -0
  581. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js.map +1 -0
  582. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.d.ts +2 -0
  583. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.d.ts.map +1 -0
  584. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js +2 -0
  585. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js.map +1 -0
  586. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.d.ts +2 -0
  587. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.d.ts.map +1 -0
  588. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js +2 -0
  589. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js.map +1 -0
  590. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.d.ts +2 -0
  591. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.d.ts.map +1 -0
  592. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js +2 -0
  593. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js.map +1 -0
  594. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.d.ts +2 -0
  595. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.d.ts.map +1 -0
  596. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js +2 -0
  597. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js.map +1 -0
  598. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.d.ts +2 -0
  599. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.d.ts.map +1 -0
  600. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js +2 -0
  601. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js.map +1 -0
  602. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.d.ts +2 -0
  603. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.d.ts.map +1 -0
  604. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js +2 -0
  605. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js.map +1 -0
  606. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.d.ts +2 -0
  607. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.d.ts.map +1 -0
  608. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js +2 -0
  609. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js.map +1 -0
  610. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.d.ts +2 -0
  611. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.d.ts.map +1 -0
  612. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js +2 -0
  613. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js.map +1 -0
  614. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.d.ts +2 -0
  615. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.d.ts.map +1 -0
  616. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js +2 -0
  617. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js.map +1 -0
  618. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.d.ts +2 -0
  619. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.d.ts.map +1 -0
  620. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js +2 -0
  621. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js.map +1 -0
  622. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.d.ts +2 -0
  623. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.d.ts.map +1 -0
  624. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js +2 -0
  625. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js.map +1 -0
  626. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.d.ts +2 -0
  627. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.d.ts.map +1 -0
  628. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js +2 -0
  629. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js.map +1 -0
  630. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.d.ts +2 -0
  631. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.d.ts.map +1 -0
  632. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js +2 -0
  633. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js.map +1 -0
  634. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.d.ts +2 -0
  635. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.d.ts.map +1 -0
  636. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.js +2 -0
  637. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.js.map +1 -0
  638. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.d.ts +2 -0
  639. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.d.ts.map +1 -0
  640. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js +2 -0
  641. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js.map +1 -0
  642. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.d.ts +2 -0
  643. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.d.ts.map +1 -0
  644. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js +2 -0
  645. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js.map +1 -0
  646. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.d.ts +2 -0
  647. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.d.ts.map +1 -0
  648. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js +2 -0
  649. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js.map +1 -0
  650. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.d.ts +2 -0
  651. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.d.ts.map +1 -0
  652. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js +2 -0
  653. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js.map +1 -0
  654. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.d.ts +2 -0
  655. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.d.ts.map +1 -0
  656. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js +2 -0
  657. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js.map +1 -0
  658. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.d.ts +2 -0
  659. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.d.ts.map +1 -0
  660. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js +2 -0
  661. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js.map +1 -0
  662. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.d.ts +2 -0
  663. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.d.ts.map +1 -0
  664. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js +2 -0
  665. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js.map +1 -0
  666. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.d.ts +2 -0
  667. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.d.ts.map +1 -0
  668. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js +2 -0
  669. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js.map +1 -0
  670. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.d.ts +2 -0
  671. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.d.ts.map +1 -0
  672. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js +2 -0
  673. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js.map +1 -0
  674. package/dist/lexical-proxy/@lexical-rich-text.d.ts +2 -0
  675. package/dist/lexical-proxy/@lexical-rich-text.d.ts.map +1 -0
  676. package/dist/lexical-proxy/@lexical-rich-text.js +2 -0
  677. package/dist/lexical-proxy/@lexical-rich-text.js.map +1 -0
  678. package/dist/lexical-proxy/@lexical-selection.d.ts +2 -0
  679. package/dist/lexical-proxy/@lexical-selection.d.ts.map +1 -0
  680. package/dist/lexical-proxy/@lexical-selection.js +2 -0
  681. package/dist/lexical-proxy/@lexical-selection.js.map +1 -0
  682. package/dist/lexical-proxy/@lexical-utils.d.ts +2 -0
  683. package/dist/lexical-proxy/@lexical-utils.d.ts.map +1 -0
  684. package/dist/lexical-proxy/@lexical-utils.js +2 -0
  685. package/dist/lexical-proxy/@lexical-utils.js.map +1 -0
  686. package/dist/lexical-proxy/lexical.d.ts +2 -0
  687. package/dist/lexical-proxy/lexical.d.ts.map +1 -0
  688. package/dist/lexical-proxy/lexical.js +2 -0
  689. package/dist/lexical-proxy/lexical.js.map +1 -0
  690. package/dist/populateGraphQL/populate.d.ts +3 -2
  691. package/dist/populateGraphQL/populate.d.ts.map +1 -1
  692. package/dist/populateGraphQL/populate.js +3 -1
  693. package/dist/populateGraphQL/populate.js.map +1 -1
  694. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  695. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  696. package/dist/populateGraphQL/populateLexicalPopulationPromises.js +5 -4
  697. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  698. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
  699. package/dist/types.d.ts +23 -8
  700. package/dist/types.d.ts.map +1 -1
  701. package/dist/types.js.map +1 -1
  702. package/dist/utilities/buildInitialState.d.ts +27 -0
  703. package/dist/utilities/buildInitialState.d.ts.map +1 -0
  704. package/dist/utilities/buildInitialState.js +53 -0
  705. package/dist/utilities/buildInitialState.js.map +1 -0
  706. package/dist/utilities/createClientFeature.d.ts +8 -5
  707. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  708. package/dist/utilities/createClientFeature.js +7 -4
  709. package/dist/utilities/createClientFeature.js.map +1 -1
  710. package/dist/utilities/createServerFeature.d.ts +1 -0
  711. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  712. package/dist/utilities/createServerFeature.js +2 -0
  713. package/dist/utilities/createServerFeature.js.map +1 -1
  714. package/dist/utilities/fieldsDrawer/Drawer.d.ts +1 -0
  715. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  716. package/dist/utilities/fieldsDrawer/Drawer.js +68 -27
  717. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  718. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  719. package/dist/utilities/fieldsDrawer/DrawerContent.js +102 -138
  720. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  721. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts +13 -0
  722. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -0
  723. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +129 -0
  724. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -0
  725. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts +10 -0
  726. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -0
  727. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +136 -0
  728. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -0
  729. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts +16 -0
  730. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -0
  731. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +144 -0
  732. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -0
  733. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  734. package/dist/utilities/generateImportMap.js +2 -3
  735. package/dist/utilities/generateImportMap.js.map +1 -1
  736. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  737. package/dist/utilities/generateSchemaMap.js +13 -10
  738. package/dist/utilities/generateSchemaMap.js.map +1 -1
  739. package/dist/utilities/initLexicalFeatures.d.ts +18 -0
  740. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -0
  741. package/dist/utilities/initLexicalFeatures.js +96 -0
  742. package/dist/utilities/initLexicalFeatures.js.map +1 -0
  743. package/dist/utilities/jsx/collectTopLevelJSXInLines.d.ts +52 -0
  744. package/dist/utilities/jsx/collectTopLevelJSXInLines.d.ts.map +1 -0
  745. package/dist/utilities/jsx/collectTopLevelJSXInLines.js +79 -0
  746. package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -0
  747. package/dist/utilities/jsx/extractPropsFromJSXPropsString.d.ts +12 -0
  748. package/dist/utilities/jsx/extractPropsFromJSXPropsString.d.ts.map +1 -0
  749. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js +125 -0
  750. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js.map +1 -0
  751. package/dist/utilities/jsx/jsx.d.ts +26 -0
  752. package/dist/utilities/jsx/jsx.d.ts.map +1 -0
  753. package/dist/utilities/jsx/jsx.js +105 -0
  754. package/dist/utilities/jsx/jsx.js.map +1 -0
  755. package/dist/utilities/jsx/jsx.spec.d.ts +2 -0
  756. package/dist/utilities/jsx/jsx.spec.d.ts.map +1 -0
  757. package/dist/utilities/jsx/jsx.spec.js +142 -0
  758. package/dist/utilities/jsx/jsx.spec.js.map +1 -0
  759. package/dist/utilities/jsx/lexicalMarkdownCopy.d.ts +11 -0
  760. package/dist/utilities/jsx/lexicalMarkdownCopy.d.ts.map +1 -0
  761. package/dist/utilities/jsx/lexicalMarkdownCopy.js +61 -0
  762. package/dist/utilities/jsx/lexicalMarkdownCopy.js.map +1 -0
  763. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +1 -1
  764. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +1 -1
  765. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +1 -1
  766. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  767. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts +1 -1
  768. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  769. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +5 -1
  770. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  771. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  772. package/dist/utilities/useLexicalFeature.js +12 -4
  773. package/dist/utilities/useLexicalFeature.js.map +1 -1
  774. package/dist/validate/index.d.ts.map +1 -1
  775. package/dist/validate/index.js +2 -2
  776. package/dist/validate/index.js.map +1 -1
  777. package/dist/validate/validateNodes.d.ts +2 -2
  778. package/dist/validate/validateNodes.d.ts.map +1 -1
  779. package/dist/validate/validateNodes.js +4 -4
  780. package/dist/validate/validateNodes.js.map +1 -1
  781. package/package.json +332 -46
  782. package/dist/cell/index.d.ts +0 -9
  783. package/dist/cell/index.d.ts.map +0 -1
  784. package/dist/cell/index.js +0 -135
  785. package/dist/cell/index.js.map +0 -1
  786. package/dist/exports/client/Field-SUWHJ4HF.js +0 -2
  787. package/dist/exports/client/Field-SUWHJ4HF.js.map +0 -7
  788. package/dist/exports/client/RelationshipComponent-EZORSGUZ.js +0 -2
  789. package/dist/exports/client/RelationshipComponent-EZORSGUZ.js.map +0 -7
  790. package/dist/exports/client/chunk-OLSILJA6.js +0 -2
  791. package/dist/exports/client/chunk-OLSILJA6.js.map +0 -7
  792. package/dist/exports/client/chunk-TD7O23AB.js +0 -2
  793. package/dist/exports/client/chunk-TD7O23AB.js.map +0 -7
  794. package/dist/exports/client/chunk-YL453UOS.js +0 -2
  795. package/dist/exports/client/chunk-YL453UOS.js.map +0 -7
  796. package/dist/exports/client/chunk-YSI2QILQ.js +0 -2
  797. package/dist/exports/client/chunk-YSI2QILQ.js.map +0 -7
  798. package/dist/exports/client/component-2YLEVOFH.js +0 -2
  799. package/dist/exports/client/component-2YLEVOFH.js.map +0 -7
  800. package/dist/exports/client/component-7RAP75FW.js +0 -2
  801. package/dist/exports/client/component-7RAP75FW.js.map +0 -7
  802. package/dist/exports/client/component-LLWMZU6K.js +0 -2
  803. package/dist/exports/client/component-LLWMZU6K.js.map +0 -7
  804. package/dist/exports/client/componentInline-YSHGRL2J.js +0 -2
  805. package/dist/exports/client/componentInline-YSHGRL2J.js.map +0 -7
  806. package/dist/features/blocks/client/component/FormSavePlugin.d.ts +0 -11
  807. package/dist/features/blocks/client/component/FormSavePlugin.d.ts.map +0 -1
  808. package/dist/features/blocks/client/component/FormSavePlugin.js +0 -53
  809. package/dist/features/blocks/client/component/FormSavePlugin.js.map +0 -1
  810. package/dist/features/createClientComponent.d.ts +0 -7
  811. package/dist/features/createClientComponent.d.ts.map +0 -1
  812. package/dist/features/createClientComponent.js +0 -13
  813. package/dist/features/createClientComponent.js.map +0 -1
  814. package/dist/features/createFeaturePropComponent.d.ts +0 -6
  815. package/dist/features/createFeaturePropComponent.d.ts.map +0 -1
  816. package/dist/features/createFeaturePropComponent.js +0 -19
  817. package/dist/features/createFeaturePropComponent.js.map +0 -1
  818. package/dist/utilities/generateComponentMap.d.ts +0 -6
  819. package/dist/utilities/generateComponentMap.d.ts.map +0 -1
  820. package/dist/utilities/generateComponentMap.js +0 -99
  821. package/dist/utilities/generateComponentMap.js.map +0 -1
@@ -36,16 +36,16 @@ export const sanitizeServerFeatures = features => {
36
36
  sanitized.generatedTypes.modifyOutputSchemas.push(feature.generatedTypes.modifyOutputSchema);
37
37
  }
38
38
  if (feature?.hooks?.beforeValidate?.length) {
39
- sanitized.hooks.beforeValidate = sanitized.hooks.beforeValidate.concat(feature.hooks.beforeValidate);
39
+ sanitized.hooks.beforeValidate = sanitized.hooks.beforeValidate?.concat(feature.hooks.beforeValidate);
40
40
  }
41
41
  if (feature?.hooks?.beforeChange?.length) {
42
- sanitized.hooks.beforeChange = sanitized.hooks.beforeChange.concat(feature.hooks.beforeChange);
42
+ sanitized.hooks.beforeChange = sanitized.hooks.beforeChange?.concat(feature.hooks.beforeChange);
43
43
  }
44
44
  if (feature?.hooks?.afterRead?.length) {
45
- sanitized.hooks.afterRead = sanitized.hooks.afterRead.concat(feature.hooks.afterRead);
45
+ sanitized.hooks.afterRead = sanitized.hooks.afterRead?.concat(feature.hooks.afterRead);
46
46
  }
47
47
  if (feature?.hooks?.afterChange?.length) {
48
- sanitized.hooks.afterChange = sanitized.hooks.afterChange.concat(feature.hooks.afterChange);
48
+ sanitized.hooks.afterChange = sanitized.hooks.afterChange?.concat(feature.hooks.afterChange);
49
49
  }
50
50
  if (feature?.i18n) {
51
51
  for (const lang in feature.i18n) {
@@ -58,7 +58,10 @@ export const sanitizeServerFeatures = features => {
58
58
  }
59
59
  }
60
60
  if (feature.nodes?.length) {
61
- sanitized.nodes = sanitized.nodes.concat(feature.nodes);
61
+ // Do not concat here. We need to keep the object reference of sanitized.nodes so that function markdown transformers of features automatically get the updated nodes
62
+ for (const node of feature.nodes) {
63
+ sanitized.nodes.push(node);
64
+ }
62
65
  feature.nodes.forEach(node => {
63
66
  const nodeType = 'with' in node.node ? node.node.replace.getType() : node.node.getType() // TODO: Idk if this works for node replacements
64
67
  ;
@@ -72,35 +75,46 @@ export const sanitizeServerFeatures = features => {
72
75
  sanitized.converters.html.push(node.converters.html);
73
76
  }
74
77
  if (node?.hooks?.afterChange) {
75
- sanitized.nodeHooks.afterChange.set(nodeType, node.hooks.afterChange);
78
+ sanitized.nodeHooks?.afterChange?.set(nodeType, node.hooks.afterChange);
76
79
  }
77
80
  if (node?.hooks?.afterRead) {
78
- sanitized.nodeHooks.afterRead.set(nodeType, node.hooks.afterRead);
81
+ sanitized.nodeHooks?.afterRead?.set(nodeType, node.hooks.afterRead);
79
82
  }
80
83
  if (node?.hooks?.beforeChange) {
81
- sanitized.nodeHooks.beforeChange.set(nodeType, node.hooks.beforeChange);
84
+ sanitized.nodeHooks?.beforeChange?.set(nodeType, node.hooks.beforeChange);
82
85
  }
83
86
  if (node?.hooks?.beforeValidate) {
84
- sanitized.nodeHooks.beforeValidate.set(nodeType, node.hooks.beforeValidate);
87
+ sanitized.nodeHooks?.beforeValidate?.set(nodeType, node.hooks.beforeValidate);
85
88
  }
86
89
  if (node?.getSubFields) {
87
- sanitized.getSubFields.set(nodeType, node.getSubFields);
90
+ sanitized.getSubFields?.set(nodeType, node.getSubFields);
88
91
  }
89
92
  if (node?.getSubFieldsData) {
90
- sanitized.getSubFieldsData.set(nodeType, node.getSubFieldsData);
93
+ sanitized.getSubFieldsData?.set(nodeType, node.getSubFieldsData);
91
94
  }
92
95
  });
93
96
  }
94
97
  if (feature.markdownTransformers?.length) {
95
- sanitized.markdownTransformers = sanitized.markdownTransformers.concat(feature.markdownTransformers);
98
+ // Do not concat here. We need to keep the object reference of feature.markdownTransformers
99
+ for (const transformer of feature.markdownTransformers) {
100
+ if (typeof transformer === 'function') {
101
+ sanitized.markdownTransformers.push(transformer({
102
+ allNodes: sanitized.nodes,
103
+ allTransformers: sanitized.markdownTransformers
104
+ }));
105
+ } else {
106
+ sanitized.markdownTransformers.push(transformer);
107
+ }
108
+ }
96
109
  }
97
110
  sanitized.enabledFeatures.push(feature.key);
98
111
  });
99
112
  return sanitized;
100
113
  };
101
- export async function sanitizeServerEditorConfig(editorConfig, config) {
114
+ export async function sanitizeServerEditorConfig(editorConfig, config, parentIsLocalized) {
102
115
  const resolvedFeatureMap = await loadFeatures({
103
116
  config,
117
+ parentIsLocalized: parentIsLocalized,
104
118
  unSanitizedEditorConfig: editorConfig
105
119
  });
106
120
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","names":["loadFeatures","sanitizeServerFeatures","features","sanitized","converters","html","enabledFeatures","generatedTypes","modifyOutputSchemas","getSubFields","Map","getSubFieldsData","graphQLPopulationPromises","hooks","afterChange","afterRead","beforeChange","beforeValidate","i18n","markdownTransformers","nodeHooks","nodes","validations","size","forEach","feature","modifyOutputSchema","push","length","concat","lang","lexical","key","node","nodeType","replace","getType","set","sanitizeServerEditorConfig","editorConfig","config","resolvedFeatureMap","unSanitizedEditorConfig"],"sources":["../../../../src/lexical/config/server/sanitize.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport type {\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n} from '../../../features/typesServer.js'\nimport type { SanitizedServerEditorConfig, ServerEditorConfig } from '../types.js'\n\nimport { loadFeatures } from './loader.js'\n\nexport const sanitizeServerFeatures = (\n features: ResolvedServerFeatureMap,\n): SanitizedServerFeatures => {\n const sanitized: SanitizedServerFeatures = {\n converters: {\n html: [],\n },\n enabledFeatures: [],\n generatedTypes: {\n modifyOutputSchemas: [],\n },\n getSubFields: new Map(),\n getSubFieldsData: new Map(),\n graphQLPopulationPromises: new Map(),\n hooks: {\n afterChange: [],\n afterRead: [],\n beforeChange: [],\n beforeValidate: [],\n },\n i18n: {},\n markdownTransformers: [],\n nodeHooks: {\n afterChange: new Map(),\n afterRead: new Map(),\n beforeChange: new Map(),\n beforeValidate: new Map(),\n },\n nodes: [],\n\n validations: new Map(),\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature?.generatedTypes?.modifyOutputSchema) {\n sanitized.generatedTypes.modifyOutputSchemas.push(feature.generatedTypes.modifyOutputSchema)\n }\n\n if (feature?.hooks?.beforeValidate?.length) {\n sanitized.hooks.beforeValidate = sanitized.hooks.beforeValidate.concat(\n feature.hooks.beforeValidate,\n )\n }\n if (feature?.hooks?.beforeChange?.length) {\n sanitized.hooks.beforeChange = sanitized.hooks.beforeChange.concat(feature.hooks.beforeChange)\n }\n if (feature?.hooks?.afterRead?.length) {\n sanitized.hooks.afterRead = sanitized.hooks.afterRead.concat(feature.hooks.afterRead)\n }\n if (feature?.hooks?.afterChange?.length) {\n sanitized.hooks.afterChange = sanitized.hooks.afterChange.concat(feature.hooks.afterChange)\n }\n\n if (feature?.i18n) {\n for (const lang in feature.i18n) {\n if (!sanitized.i18n[lang]) {\n sanitized.i18n[lang] = {\n lexical: {},\n }\n }\n sanitized.i18n[lang].lexical[feature.key] = feature.i18n[lang]\n }\n }\n\n if (feature.nodes?.length) {\n sanitized.nodes = sanitized.nodes.concat(feature.nodes)\n feature.nodes.forEach((node) => {\n const nodeType = 'with' in node.node ? node.node.replace.getType() : node.node.getType() // TODO: Idk if this works for node replacements\n if (node?.graphQLPopulationPromises?.length) {\n sanitized.graphQLPopulationPromises.set(nodeType, node.graphQLPopulationPromises)\n }\n if (node?.validations?.length) {\n sanitized.validations.set(nodeType, node.validations)\n }\n if (node?.converters?.html) {\n sanitized.converters.html.push(node.converters.html)\n }\n if (node?.hooks?.afterChange) {\n sanitized.nodeHooks.afterChange.set(nodeType, node.hooks.afterChange)\n }\n if (node?.hooks?.afterRead) {\n sanitized.nodeHooks.afterRead.set(nodeType, node.hooks.afterRead)\n }\n if (node?.hooks?.beforeChange) {\n sanitized.nodeHooks.beforeChange.set(nodeType, node.hooks.beforeChange)\n }\n if (node?.hooks?.beforeValidate) {\n sanitized.nodeHooks.beforeValidate.set(nodeType, node.hooks.beforeValidate)\n }\n if (node?.getSubFields) {\n sanitized.getSubFields.set(nodeType, node.getSubFields)\n }\n if (node?.getSubFieldsData) {\n sanitized.getSubFieldsData.set(nodeType, node.getSubFieldsData)\n }\n })\n }\n\n if (feature.markdownTransformers?.length) {\n sanitized.markdownTransformers = sanitized.markdownTransformers.concat(\n feature.markdownTransformers,\n )\n }\n\n sanitized.enabledFeatures.push(feature.key)\n })\n\n return sanitized\n}\n\nexport async function sanitizeServerEditorConfig(\n editorConfig: ServerEditorConfig,\n config: SanitizedConfig,\n): Promise<SanitizedServerEditorConfig> {\n const resolvedFeatureMap = await loadFeatures({\n config,\n unSanitizedEditorConfig: editorConfig,\n })\n\n return {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: editorConfig.lexical,\n resolvedFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sanitize.js","names":["loadFeatures","sanitizeServerFeatures","features","sanitized","converters","html","enabledFeatures","generatedTypes","modifyOutputSchemas","getSubFields","Map","getSubFieldsData","graphQLPopulationPromises","hooks","afterChange","afterRead","beforeChange","beforeValidate","i18n","markdownTransformers","nodeHooks","nodes","validations","size","forEach","feature","modifyOutputSchema","push","length","concat","lang","lexical","key","node","nodeType","replace","getType","set","transformer","allNodes","allTransformers","sanitizeServerEditorConfig","editorConfig","config","parentIsLocalized","resolvedFeatureMap","unSanitizedEditorConfig"],"sources":["../../../../src/lexical/config/server/sanitize.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport type {\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n} from '../../../features/typesServer.js'\nimport type { SanitizedServerEditorConfig, ServerEditorConfig } from '../types.js'\n\nimport { loadFeatures } from './loader.js'\n\nexport const sanitizeServerFeatures = (\n features: ResolvedServerFeatureMap,\n): SanitizedServerFeatures => {\n const sanitized: SanitizedServerFeatures = {\n converters: {\n html: [],\n },\n enabledFeatures: [],\n generatedTypes: {\n modifyOutputSchemas: [],\n },\n getSubFields: new Map(),\n getSubFieldsData: new Map(),\n graphQLPopulationPromises: new Map(),\n hooks: {\n afterChange: [],\n afterRead: [],\n beforeChange: [],\n beforeValidate: [],\n },\n i18n: {},\n markdownTransformers: [],\n nodeHooks: {\n afterChange: new Map(),\n afterRead: new Map(),\n beforeChange: new Map(),\n beforeValidate: new Map(),\n },\n nodes: [],\n\n validations: new Map(),\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature?.generatedTypes?.modifyOutputSchema) {\n sanitized.generatedTypes.modifyOutputSchemas.push(feature.generatedTypes.modifyOutputSchema)\n }\n\n if (feature?.hooks?.beforeValidate?.length) {\n sanitized.hooks.beforeValidate = sanitized.hooks.beforeValidate?.concat(\n feature.hooks.beforeValidate,\n )\n }\n if (feature?.hooks?.beforeChange?.length) {\n sanitized.hooks.beforeChange = sanitized.hooks.beforeChange?.concat(\n feature.hooks.beforeChange,\n )\n }\n if (feature?.hooks?.afterRead?.length) {\n sanitized.hooks.afterRead = sanitized.hooks.afterRead?.concat(feature.hooks.afterRead)\n }\n if (feature?.hooks?.afterChange?.length) {\n sanitized.hooks.afterChange = sanitized.hooks.afterChange?.concat(feature.hooks.afterChange)\n }\n\n if (feature?.i18n) {\n for (const lang in feature.i18n) {\n if (!sanitized.i18n[lang]) {\n sanitized.i18n[lang] = {\n lexical: {},\n }\n }\n sanitized.i18n[lang].lexical[feature.key] = feature.i18n[lang]\n }\n }\n\n if (feature.nodes?.length) {\n // Do not concat here. We need to keep the object reference of sanitized.nodes so that function markdown transformers of features automatically get the updated nodes\n for (const node of feature.nodes) {\n sanitized.nodes.push(node)\n }\n feature.nodes.forEach((node) => {\n const nodeType = 'with' in node.node ? node.node.replace.getType() : node.node.getType() // TODO: Idk if this works for node replacements\n if (node?.graphQLPopulationPromises?.length) {\n sanitized.graphQLPopulationPromises.set(nodeType, node.graphQLPopulationPromises)\n }\n if (node?.validations?.length) {\n sanitized.validations.set(nodeType, node.validations)\n }\n if (node?.converters?.html) {\n sanitized.converters.html.push(node.converters.html)\n }\n if (node?.hooks?.afterChange) {\n sanitized.nodeHooks?.afterChange?.set(nodeType, node.hooks.afterChange)\n }\n if (node?.hooks?.afterRead) {\n sanitized.nodeHooks?.afterRead?.set(nodeType, node.hooks.afterRead)\n }\n if (node?.hooks?.beforeChange) {\n sanitized.nodeHooks?.beforeChange?.set(nodeType, node.hooks.beforeChange)\n }\n if (node?.hooks?.beforeValidate) {\n sanitized.nodeHooks?.beforeValidate?.set(nodeType, node.hooks.beforeValidate)\n }\n if (node?.getSubFields) {\n sanitized.getSubFields?.set(nodeType, node.getSubFields)\n }\n if (node?.getSubFieldsData) {\n sanitized.getSubFieldsData?.set(nodeType, node.getSubFieldsData)\n }\n })\n }\n\n if (feature.markdownTransformers?.length) {\n // Do not concat here. We need to keep the object reference of feature.markdownTransformers\n\n for (const transformer of feature.markdownTransformers) {\n if (typeof transformer === 'function') {\n sanitized.markdownTransformers.push(\n transformer({\n allNodes: sanitized.nodes,\n allTransformers: sanitized.markdownTransformers,\n }),\n )\n } else {\n sanitized.markdownTransformers.push(transformer)\n }\n }\n }\n\n sanitized.enabledFeatures.push(feature.key)\n })\n\n return sanitized\n}\n\nexport async function sanitizeServerEditorConfig(\n editorConfig: ServerEditorConfig,\n config: SanitizedConfig,\n parentIsLocalized?: boolean,\n): Promise<SanitizedServerEditorConfig> {\n const resolvedFeatureMap = await loadFeatures({\n config,\n parentIsLocalized: parentIsLocalized!,\n unSanitizedEditorConfig: editorConfig,\n })\n\n return {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: editorConfig.lexical!,\n resolvedFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,11 +4,11 @@ import type { FeatureProviderServer, ResolvedServerFeatureMap, SanitizedServerFe
4
4
  import type { LexicalFieldAdminProps } from '../../types.js';
5
5
  export type ServerEditorConfig = {
6
6
  features: FeatureProviderServer<any, any, any>[];
7
- lexical?: LexicalEditorConfig;
7
+ lexical?: LexicalEditorConfig | undefined;
8
8
  };
9
9
  export type SanitizedServerEditorConfig = {
10
10
  features: SanitizedServerFeatures;
11
- lexical: LexicalEditorConfig;
11
+ lexical: LexicalEditorConfig | undefined;
12
12
  resolvedFeatureMap: ResolvedServerFeatureMap;
13
13
  };
14
14
  export type ClientEditorConfig = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lexical/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElE,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IAChD,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,uBAAuB,CAAA;IACjC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,kBAAkB,EAAE,wBAAwB,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IAC3C,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,CAAC,EAAE,sBAAsB,CAAA;IAC9B,QAAQ,EAAE,uBAAuB,CAAA;IACjC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,kBAAkB,EAAE,wBAAwB,CAAA;CAC7C,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lexical/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElE,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IAChD,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,uBAAuB,CAAA;IACjC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAA;IACxC,kBAAkB,EAAE,wBAAwB,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IAC3C,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,CAAC,EAAE,sBAAsB,CAAA;IAC9B,QAAQ,EAAE,uBAAuB,CAAA;IACjC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,kBAAkB,EAAE,wBAAwB,CAAA;CAC7C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/lexical/config/types.ts"],"sourcesContent":["import type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport type {\n FeatureProviderClient,\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n} from '../../features/typesClient.js'\nimport type {\n FeatureProviderServer,\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n} from '../../features/typesServer.js'\nimport type { LexicalFieldAdminProps } from '../../types.js'\n\nexport type ServerEditorConfig = {\n features: FeatureProviderServer<any, any, any>[]\n lexical?: LexicalEditorConfig\n}\n\nexport type SanitizedServerEditorConfig = {\n features: SanitizedServerFeatures\n lexical: LexicalEditorConfig\n resolvedFeatureMap: ResolvedServerFeatureMap\n}\n\nexport type ClientEditorConfig = {\n features: FeatureProviderClient<any, any>[]\n lexical?: LexicalEditorConfig\n}\n\nexport type SanitizedClientEditorConfig = {\n admin?: LexicalFieldAdminProps\n features: SanitizedClientFeatures\n lexical: LexicalEditorConfig\n resolvedFeatureMap: ResolvedClientFeatureMap\n}\n"],"mappings":"AA8BA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/lexical/config/types.ts"],"sourcesContent":["import type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport type {\n FeatureProviderClient,\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n} from '../../features/typesClient.js'\nimport type {\n FeatureProviderServer,\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n} from '../../features/typesServer.js'\nimport type { LexicalFieldAdminProps } from '../../types.js'\n\nexport type ServerEditorConfig = {\n features: FeatureProviderServer<any, any, any>[]\n lexical?: LexicalEditorConfig | undefined // If undefined, the default lexical editor config will be used. This can be undefined so that we do not send the default lexical editor config to the client.\n}\n\nexport type SanitizedServerEditorConfig = {\n features: SanitizedServerFeatures\n lexical: LexicalEditorConfig | undefined // If undefined, the default lexical editor config will be used. This can be undefined so that we do not send the default lexical editor config to the client.\n resolvedFeatureMap: ResolvedServerFeatureMap\n}\n\nexport type ClientEditorConfig = {\n features: FeatureProviderClient<any, any>[]\n lexical?: LexicalEditorConfig\n}\n\nexport type SanitizedClientEditorConfig = {\n admin?: LexicalFieldAdminProps\n features: SanitizedClientFeatures\n lexical: LexicalEditorConfig\n resolvedFeatureMap: ResolvedClientFeatureMap\n}\n"],"mappings":"AA8BA","ignoreList":[]}
@@ -1,6 +1,10 @@
1
1
  import type { Klass, LexicalNode, LexicalNodeReplacement } from 'lexical';
2
+ import type { NodeWithHooks } from '../../features/typesServer.js';
2
3
  import type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js';
3
4
  export declare function getEnabledNodes({ editorConfig, }: {
4
5
  editorConfig: SanitizedClientEditorConfig | SanitizedServerEditorConfig;
5
6
  }): Array<Klass<LexicalNode> | LexicalNodeReplacement>;
7
+ export declare function getEnabledNodesFromServerNodes({ nodes, }: {
8
+ nodes: Array<Klass<LexicalNode> | LexicalNodeReplacement> | Array<NodeWithHooks>;
9
+ }): Array<Klass<LexicalNode> | LexicalNodeReplacement>;
6
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lexical/nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAEzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAElG,wBAAgB,eAAe,CAAC,EAC9B,YAAY,GACb,EAAE;IACD,YAAY,EAAE,2BAA2B,GAAG,2BAA2B,CAAA;CACxE,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,CAOrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lexical/nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAElG,wBAAgB,eAAe,CAAC,EAC9B,YAAY,GACb,EAAE;IACD,YAAY,EAAE,2BAA2B,GAAG,2BAA2B,CAAA;CACxE,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,CAIrD;AAED,wBAAgB,8BAA8B,CAAC,EAC7C,KAAK,GACN,EAAE;IACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAA;CACjF,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,CAOrD"}
@@ -1,7 +1,14 @@
1
1
  export function getEnabledNodes({
2
2
  editorConfig
3
3
  }) {
4
- return editorConfig.features.nodes.map(node => {
4
+ return getEnabledNodesFromServerNodes({
5
+ nodes: editorConfig.features.nodes
6
+ });
7
+ }
8
+ export function getEnabledNodesFromServerNodes({
9
+ nodes
10
+ }) {
11
+ return nodes.map(node => {
5
12
  if ('node' in node) {
6
13
  return node.node;
7
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getEnabledNodes","editorConfig","features","nodes","map","node"],"sources":["../../../src/lexical/nodes/index.ts"],"sourcesContent":["import type { Klass, LexicalNode, LexicalNodeReplacement } from 'lexical'\n\nimport type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js'\n\nexport function getEnabledNodes({\n editorConfig,\n}: {\n editorConfig: SanitizedClientEditorConfig | SanitizedServerEditorConfig\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n return editorConfig.features.nodes.map((node) => {\n if ('node' in node) {\n return node.node\n }\n return node\n })\n}\n"],"mappings":"AAIA,OAAO,SAASA,gBAAgB;EAC9BC;AAAY,CAGb;EACC,OAAOA,YAAA,CAAaC,QAAQ,CAACC,KAAK,CAACC,GAAG,CAAEC,IAAA;IACtC,IAAI,UAAUA,IAAA,EAAM;MAClB,OAAOA,IAAA,CAAKA,IAAI;IAClB;IACA,OAAOA,IAAA;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getEnabledNodes","editorConfig","getEnabledNodesFromServerNodes","nodes","features","map","node"],"sources":["../../../src/lexical/nodes/index.ts"],"sourcesContent":["import type { Klass, LexicalNode, LexicalNodeReplacement } from 'lexical'\n\nimport type { NodeWithHooks } from '../../features/typesServer.js'\nimport type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js'\n\nexport function getEnabledNodes({\n editorConfig,\n}: {\n editorConfig: SanitizedClientEditorConfig | SanitizedServerEditorConfig\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n return getEnabledNodesFromServerNodes({\n nodes: editorConfig.features.nodes,\n })\n}\n\nexport function getEnabledNodesFromServerNodes({\n nodes,\n}: {\n nodes: Array<Klass<LexicalNode> | LexicalNodeReplacement> | Array<NodeWithHooks>\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n return nodes.map((node) => {\n if ('node' in node) {\n return node.node\n }\n return node\n })\n}\n"],"mappings":"AAKA,OAAO,SAASA,gBAAgB;EAC9BC;AAAY,CAGb;EACC,OAAOC,8BAAA,CAA+B;IACpCC,KAAA,EAAOF,YAAA,CAAaG,QAAQ,CAACD;EAC/B;AACF;AAEA,OAAO,SAASD,+BAA+B;EAC7CC;AAAK,CAGN;EACC,OAAOA,KAAA,CAAME,GAAG,CAAEC,IAAA;IAChB,IAAI,UAAUA,IAAA,EAAM;MAClB,OAAOA,IAAA,CAAKA,IAAI;IAClB;IACA,OAAOA,IAAA;EACT;AACF","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { LexicalCommand, LexicalEditor, TextNode } from 'lexical';
1
+ import type { LexicalCommand, LexicalEditor } from 'lexical';
2
2
  import type { JSX, ReactPortal, RefObject } from 'react';
3
3
  import type { MenuTextMatch } from '../useMenuTriggerMatch.js';
4
4
  import type { SlashMenuGroupInternal, SlashMenuItem, SlashMenuItemInternal } from './types.js';
@@ -8,10 +8,10 @@ export type MenuResolution = {
8
8
  };
9
9
  export type MenuRenderFn = (anchorElementRef: RefObject<HTMLElement | null>, itemProps: {
10
10
  groups: Array<SlashMenuGroupInternal>;
11
- selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void;
12
11
  selectedItemKey: null | string;
12
+ selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void;
13
13
  setSelectedItemKey: (itemKey: string) => void;
14
- }, matchingString: null | string) => JSX.Element | ReactPortal | null;
14
+ }, matchingString: null | string) => JSX.Element | null | ReactPortal;
15
15
  export declare function getScrollParent(element: HTMLElement, includeHidden: boolean): HTMLBodyElement | HTMLElement;
16
16
  export declare function useDynamicPositioning(resolution: MenuResolution | null, targetElement: HTMLElement | null, onReposition: () => void, onVisibilityChange?: (isInView: boolean) => void): void;
17
17
  export declare const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{
@@ -19,14 +19,14 @@ export declare const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{
19
19
  item: SlashMenuItemInternal;
20
20
  }>;
21
21
  export declare function LexicalMenu({ anchorElementRef, close, editor, groups, menuRenderFn, onSelectItem, resolution, shouldSplitNodeWithQuery, }: {
22
- anchorElementRef: RefObject<HTMLElement>;
22
+ anchorElementRef: RefObject<HTMLElement | null>;
23
23
  close: () => void;
24
24
  editor: LexicalEditor;
25
25
  groups: Array<SlashMenuGroupInternal>;
26
26
  menuRenderFn: MenuRenderFn;
27
- onSelectItem: (item: SlashMenuItem, textNodeContainingQuery: TextNode | null, closeMenu: () => void, matchingString: string) => void;
27
+ onSelectItem: (item: SlashMenuItem, closeMenu: () => void, matchingString: string) => void;
28
28
  resolution: MenuResolution;
29
29
  shouldSplitNodeWithQuery?: boolean;
30
30
  }): JSX.Element | null;
31
- export declare function useMenuAnchorRef(anchorElem: HTMLElement, resolution: MenuResolution | null, setResolution: (r: MenuResolution | null) => void, className?: string): RefObject<HTMLElement>;
31
+ export declare function useMenuAnchorRef(anchorElem: HTMLElement, resolution: MenuResolution | null, setResolution: (r: MenuResolution | null) => void, className?: string): RefObject<HTMLElement | null>;
32
32
  //# sourceMappingURL=LexicalMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalMenu.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAiBxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAE9F,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,oBAAoB,EAAE,CAAC,YAAY,EAAE,aAAa,KAAK,IAAI,CAAA;IAC3D,eAAe,EAAE,IAAI,GAAG,MAAM,CAAA;IAC9B,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C,EACD,cAAc,EAAE,IAAI,GAAG,MAAM,KAC1B,GAAG,CAAC,OAAO,GAAG,WAAW,GAAG,IAAI,CAAA;AAyErC,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,aAAa,EAAE,WAAW,GAAG,IAAI,EACjC,YAAY,EAAE,MAAM,IAAI,EACxB,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,QA2CjD;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,YAAY,EACZ,UAAU,EACV,wBAAgC,GACjC,EAAE;IACD,gBAAgB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;IACxC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,aAAa,CAAA;IACrB,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,CACZ,IAAI,EAAE,aAAa,EACnB,uBAAuB,EAAE,QAAQ,GAAG,IAAI,EACxC,SAAS,EAAE,MAAM,IAAI,EACrB,cAAc,EAAE,MAAM,KACnB,IAAI,CAAA;IACT,UAAU,EAAE,cAAc,CAAA;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAgNrB;AAED,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,CAAC,CA6FxB"}
1
+ {"version":3,"file":"LexicalMenu.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAY,MAAM,SAAS,CAAA;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAiBxD,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,aAAa,EAAE,WAAW,GAAG,IAAI,EACjC,YAAY,EAAE,MAAM,IAAI,EACxB,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,QA2CjD;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,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,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1F,UAAU,EAAE,cAAc,CAAA;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAiNrB;AAED,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,CAkG/B"}
@@ -3,12 +3,15 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
5
5
  import { mergeRegister } from '@lexical/utils';
6
- import { $getSelection, $isRangeSelection, COMMAND_PRIORITY_LOW, KEY_ARROW_DOWN_COMMAND, KEY_ARROW_UP_COMMAND, KEY_ENTER_COMMAND, KEY_ESCAPE_COMMAND, KEY_TAB_COMMAND, createCommand } from 'lexical';
6
+ import { $getSelection, $isRangeSelection, COMMAND_PRIORITY_LOW, 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
+ import { CAN_USE_DOM } from '../../../utils/canUseDOM.js';
8
9
  const baseClass = 'slash-menu-popup';
9
10
  const scrollIntoViewIfNeeded = target => {
10
11
  const typeaheadContainerNode = document.getElementById('slash-menu');
11
- if (!typeaheadContainerNode) return;
12
+ if (!typeaheadContainerNode) {
13
+ return;
14
+ }
12
15
  const typeaheadRect = typeaheadContainerNode.getBoundingClientRect();
13
16
  if (typeaheadRect.top + typeaheadRect.height > window.innerHeight) {
14
17
  typeaheadContainerNode.scrollIntoView({
@@ -78,13 +81,13 @@ export function getScrollParent(element, includeHidden) {
78
81
  if (style.position === 'fixed') {
79
82
  return document.body;
80
83
  }
81
- for (let parent = element; parent = parent.parentElement;) {
82
- style = getComputedStyle(parent);
84
+ for (let parent1 = element; parent1 = parent1.parentElement;) {
85
+ style = getComputedStyle(parent1);
83
86
  if (excludeStaticParent && style.position === 'static') {
84
87
  continue;
85
88
  }
86
89
  if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) {
87
- return parent;
90
+ return parent1;
88
91
  }
89
92
  }
90
93
  return document.body;
@@ -191,8 +194,13 @@ export function LexicalMenu({
191
194
  const selectItemAndCleanUp = useCallback(selectedItem => {
192
195
  editor.update(() => {
193
196
  const textNodeContainingQuery = resolution.match != null && shouldSplitNodeWithQuery ? $splitNodeContainingQuery(resolution.match) : null;
194
- onSelectItem(selectedItem, textNodeContainingQuery, close, resolution.match ? resolution.match.matchingString : '');
197
+ if (textNodeContainingQuery) {
198
+ textNodeContainingQuery.remove();
199
+ }
200
+ }, {
201
+ discrete: true
195
202
  });
203
+ onSelectItem(selectedItem, close, resolution.match ? resolution.match.matchingString : '');
196
204
  }, [editor, shouldSplitNodeWithQuery, resolution.match, onSelectItem, close]);
197
205
  useEffect(() => {
198
206
  return () => {
@@ -293,16 +301,19 @@ export function LexicalMenu({
293
301
  }, [selectItemAndCleanUp, close, editor, groups, selectedItemKey, updateSelectedItem]);
294
302
  const listItemProps = useMemo(() => ({
295
303
  groups,
296
- selectItemAndCleanUp,
297
304
  selectedItemKey,
305
+ selectItemAndCleanUp,
298
306
  setSelectedItemKey
299
307
  }), [selectItemAndCleanUp, selectedItemKey, groups]);
300
308
  return menuRenderFn(anchorElementRef, listItemProps, resolution.match ? resolution.match.matchingString : '');
301
309
  }
302
310
  export function useMenuAnchorRef(anchorElem, resolution, setResolution, className) {
303
311
  const [editor] = useLexicalComposerContext();
304
- const anchorElementRef = useRef(document.createElement('div'));
312
+ const anchorElementRef = useRef(CAN_USE_DOM ? document.createElement('div') : null);
305
313
  const positionMenu = useCallback(() => {
314
+ if (anchorElementRef.current === null || parent === undefined) {
315
+ return;
316
+ }
306
317
  const rootElement = editor.getRootElement();
307
318
  const containerDiv = anchorElementRef.current;
308
319
  const VERTICAL_OFFSET = 32;
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalMenu.js","names":["c","_c","useLexicalComposerContext","mergeRegister","$getSelection","$isRangeSelection","COMMAND_PRIORITY_LOW","KEY_ARROW_DOWN_COMMAND","KEY_ARROW_UP_COMMAND","KEY_ENTER_COMMAND","KEY_ESCAPE_COMMAND","KEY_TAB_COMMAND","createCommand","useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","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","parent","parentElement","test","overflow","overflowY","overflowX","isTriggerVisibleInNearestScrollContainer","targetElement","containerElement","tRect","cRect","bottom","useDynamicPositioning","resolution","onReposition","onVisibilityChange","$","editor","t0","t1","rootElement","getRootElement","rootScrollParent","ticking","previousIsInView","handleScroll","requestAnimationFrame","isInView","resizeObserver","ResizeObserver","addEventListener","capture","passive","observe","unobserve","removeEventListener","SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND","LexicalMenu","anchorElementRef","close","groups","menuRenderFn","onSelectItem","shouldSplitNodeWithQuery","selectedItemKey","setSelectedItemKey","updateSelectedItem","item","rootElem","setAttribute","key","setSelectedItemKeyToFirstMatchingItem","allItems","flatMap","group","items","firstMatchingItem","selectItemAndCleanUp","selectedItem","update","textNodeContainingQuery","removeAttribute","registerCommand","ref","current","payload","event","selectedIndex","findIndex","newSelectedIndex","newSelectedItem","dispatchCommand","index","preventDefault","stopImmediatePropagation","find","listItemProps","useMenuAnchorRef","anchorElem","setResolution","className","createElement","positionMenu","containerDiv","VERTICAL_OFFSET","menuEle","firstChild","width","getRect","left","rawTop","scrollY","scrollX","menuRect","menuHeight","menuWidth","rootElementRect","right","wouldGoOffBottomOfScreen","wouldGoOffTopOfScreen","margin","isConnected","display","append","remove"],"sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"sourcesContent":["'use client'\nimport type { 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 COMMAND_PRIORITY_LOW,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n KEY_TAB_COMMAND,\n createCommand,\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\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 selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void\n selectedItemKey: null | string\n setSelectedItemKey: (itemKey: string) => void\n },\n matchingString: null | string,\n) => JSX.Element | ReactPortal | null\n\nconst scrollIntoViewIfNeeded = (target: HTMLElement) => {\n const typeaheadContainerNode = document.getElementById('slash-menu')\n if (!typeaheadContainerNode) return\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 | null {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) || !selection.isCollapsed()) {\n return null\n }\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return null\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return null\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 null\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 targetElement: HTMLElement | null,\n onReposition: () => void,\n onVisibilityChange?: (isInView: boolean) => void,\n) {\n const [editor] = useLexicalComposerContext()\n useEffect(() => {\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.unobserve(targetElement)\n window.removeEventListener('resize', onReposition)\n document.removeEventListener('scroll', handleScroll, true)\n }\n }\n }, [targetElement, editor, onVisibilityChange, onReposition, resolution])\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 onSelectItem,\n resolution,\n shouldSplitNodeWithQuery = false,\n}: {\n anchorElementRef: RefObject<HTMLElement>\n close: () => void\n editor: LexicalEditor\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n onSelectItem: (\n item: SlashMenuItem,\n textNodeContainingQuery: TextNode | null,\n closeMenu: () => void,\n matchingString: string,\n ) => void\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 editor.update(() => {\n const textNodeContainingQuery =\n resolution.match != null && shouldSplitNodeWithQuery\n ? $splitNodeContainingQuery(resolution.match)\n : null\n\n onSelectItem(\n selectedItem,\n textNodeContainingQuery,\n close,\n resolution.match ? resolution.match.matchingString : '',\n )\n })\n },\n [editor, shouldSplitNodeWithQuery, resolution.match, onSelectItem, 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\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_LOW,\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\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_LOW,\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_LOW,\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_LOW,\n ),\n )\n }, [selectItemAndCleanUp, close, editor, groups, selectedItemKey, updateSelectedItem])\n\n const listItemProps = useMemo(\n () => ({\n groups,\n selectItemAndCleanUp,\n selectedItemKey,\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\nexport function useMenuAnchorRef(\n anchorElem: HTMLElement,\n resolution: MenuResolution | null,\n setResolution: (r: MenuResolution | null) => void,\n className?: string,\n): RefObject<HTMLElement> {\n const [editor] = useLexicalComposerContext()\n const anchorElementRef = useRef<HTMLElement>(document.createElement('div'))\n const positionMenu = useCallback(() => {\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 if (left + menuWidth > rootElementRect.right) {\n containerDiv.style.left = `${rootElementRect.right - menuWidth + 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 if (className != null) {\n containerDiv.className = className\n }\n containerDiv.setAttribute('aria-label', 'Slash menu')\n containerDiv.setAttribute('id', 'slash-menu')\n containerDiv.setAttribute('role', 'listbox')\n containerDiv.style.display = 'block'\n containerDiv.style.position = 'absolute'\n anchorElem.append(containerDiv)\n }\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 }\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.current, positionMenu, onVisibilityChange)\n\n return anchorElementRef\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LexicalMenu.js","names":["c","_c","useLexicalComposerContext","mergeRegister","$getSelection","$isRangeSelection","COMMAND_PRIORITY_LOW","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","onReposition","onVisibilityChange","$","editor","t0","t1","rootElement","getRootElement","rootScrollParent","ticking","previousIsInView","handleScroll","requestAnimationFrame","isInView","resizeObserver","ResizeObserver","addEventListener","capture","passive","observe","unobserve","removeEventListener","SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND","LexicalMenu","anchorElementRef","close","groups","menuRenderFn","onSelectItem","shouldSplitNodeWithQuery","selectedItemKey","setSelectedItemKey","updateSelectedItem","item","rootElem","setAttribute","key","setSelectedItemKeyToFirstMatchingItem","allItems","flatMap","group","items","firstMatchingItem","selectItemAndCleanUp","selectedItem","update","textNodeContainingQuery","remove","discrete","removeAttribute","registerCommand","ref","current","payload","event","selectedIndex","findIndex","newSelectedIndex","newSelectedItem","dispatchCommand","index","preventDefault","stopImmediatePropagation","find","listItemProps","useMenuAnchorRef","anchorElem","setResolution","className","createElement","positionMenu","parent","undefined","containerDiv","VERTICAL_OFFSET","menuEle","firstChild","width","getRect","left","rawTop","scrollY","scrollX","menuRect","menuHeight","menuWidth","rootElementRect","right","wouldGoOffBottomOfScreen","wouldGoOffTopOfScreen","margin","isConnected","display","append"],"sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"sourcesContent":["'use client'\nimport type { 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 COMMAND_PRIORITY_LOW,\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): null | TextNode {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) || !selection.isCollapsed()) {\n return null\n }\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return null\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return null\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 null\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 targetElement: HTMLElement | null,\n onReposition: () => void,\n onVisibilityChange?: (isInView: boolean) => void,\n) {\n const [editor] = useLexicalComposerContext()\n useEffect(() => {\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.unobserve(targetElement)\n window.removeEventListener('resize', onReposition)\n document.removeEventListener('scroll', handleScroll, true)\n }\n }\n }, [targetElement, editor, onVisibilityChange, onReposition, resolution])\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 onSelectItem,\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 onSelectItem: (item: SlashMenuItem, closeMenu: () => void, matchingString: string) => void\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 editor.update(\n () => {\n const textNodeContainingQuery =\n resolution.match != null && shouldSplitNodeWithQuery\n ? $splitNodeContainingQuery(resolution.match)\n : null\n\n if (textNodeContainingQuery) {\n textNodeContainingQuery.remove()\n }\n },\n { discrete: true },\n )\n onSelectItem(selectedItem, close, resolution.match ? resolution.match.matchingString : '')\n },\n [editor, shouldSplitNodeWithQuery, resolution.match, onSelectItem, 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\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_LOW,\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\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_LOW,\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_LOW,\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_LOW,\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\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 if (left + menuWidth > rootElementRect.right) {\n containerDiv.style.left = `${rootElementRect.right - menuWidth + 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 if (className != null) {\n containerDiv.className = className\n }\n containerDiv.setAttribute('aria-label', 'Slash menu')\n containerDiv.setAttribute('id', 'slash-menu')\n containerDiv.setAttribute('role', 'listbox')\n containerDiv.style.display = 'block'\n containerDiv.style.position = 'absolute'\n anchorElem.append(containerDiv)\n }\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 }\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.current, positionMenu, onVisibilityChange)\n\n return anchorElementRef\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { LexicalCommand, ParagraphNode, TextNode } from 'lexical';
1
+ import type { LexicalCommand, ParagraphNode } from 'lexical';
2
2
  import { type JSX } from 'react';
3
3
  import type { MenuTextMatch, TriggerFn } from '../useMenuTriggerMatch.js';
4
4
  import type { MenuRenderFn, MenuResolution } from './LexicalMenu.js';
@@ -13,7 +13,7 @@ export type TypeaheadMenuPluginProps = {
13
13
  onClose?: () => void;
14
14
  onOpen?: (resolution: MenuResolution) => void;
15
15
  onQueryChange: (matchingString: null | string) => void;
16
- onSelectItem: (item: SlashMenuItem, textNodeContainingQuery: TextNode | null, closeMenu: () => void, matchingString: string) => void;
16
+ onSelectItem: (item: SlashMenuItem, closeMenu: () => void, matchingString: string) => void;
17
17
  triggerFn: TriggerFn;
18
18
  };
19
19
  export declare const ENABLE_SLASH_MENU_COMMAND: LexicalCommand<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EAEb,QAAQ,EACT,MAAM,SAAS,CAAA;AAWhB,OAAO,EAAE,KAAK,GAAG,EAAoC,MAAM,OAAO,CAAA;AAGlE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAIvE,eAAO,MAAM,WAAW,iEAAiE,CAAA;AA2EzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,WAAW,CAAA;IACvB,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAA;IAC7C,aAAa,EAAE,CAAC,cAAc,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAA;IACtD,YAAY,EAAE,CACZ,IAAI,EAAE,aAAa,EACnB,uBAAuB,EAAE,QAAQ,GAAG,IAAI,EACxC,SAAS,EAAE,MAAM,IAAI,EACrB,cAAc,EAAE,MAAM,KACnB,IAAI,CAAA;IACT,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,cAAc,CAAC;IACrD,IAAI,EAAE,aAAa,CAAA;CACpB,CAA8C,CAAA;AAE/C,wBAAgB,0BAA0B,CAAC,EACzC,eAAe,EACf,UAAU,EACV,MAAM,EACN,YAAY,EACZ,OAAO,EACP,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,GACV,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAyH/C;AAED,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EAGd,MAAM,SAAS,CAAA;AAWhB,OAAO,EAAE,KAAK,GAAG,EAAoC,MAAM,OAAO,CAAA;AAGlE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAIvE,eAAO,MAAM,WAAW,iEAAiE,CAAA;AA2EzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,WAAW,CAAA;IACvB,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAA;IAC7C,aAAa,EAAE,CAAC,cAAc,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAA;IACtD,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1F,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,cAAc,CAAC;IACrD,IAAI,EAAE,aAAa,CAAA;CACpB,CAA8C,CAAA;AAE/C,wBAAgB,0BAA0B,CAAC,EACzC,eAAe,EACf,UAAU,EACV,MAAM,EACN,YAAY,EACZ,OAAO,EACP,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,GACV,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAyH/C;AAED,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
@@ -42,7 +42,7 @@ function tryToPositionRange(leadOffset, range, editorWindow) {
42
42
  return true;
43
43
  }
44
44
  function getQueryTextForSearch(editor) {
45
- let text = null;
45
+ let text;
46
46
  editor.getEditorState().read(() => {
47
47
  const selection = $getSelection();
48
48
  if (!$isRangeSelection(selection)) {
@@ -171,7 +171,7 @@ export function LexicalTypeaheadMenuPlugin(t0) {
171
171
  const range_0 = editorWindow_0.document.createRange();
172
172
  const selection = $getSelection();
173
173
  const text = getQueryTextForSearch(editor);
174
- if (!$isRangeSelection(selection) || !selection.isCollapsed() || text === null || range_0 === null) {
174
+ if (!$isRangeSelection(selection) || !selection.isCollapsed() || text === undefined || range_0 === null) {
175
175
  closeTypeahead();
176
176
  return;
177
177
  }
@@ -222,8 +222,8 @@ export function LexicalTypeaheadMenuPlugin(t0) {
222
222
  }
223
223
  useEffect(t5, t6);
224
224
  let t7;
225
- if ($[23] !== resolution || $[24] !== editor || $[25] !== anchorElementRef || $[26] !== closeTypeahead || $[27] !== groups || $[28] !== menuRenderFn || $[29] !== onSelectItem) {
226
- t7 = resolution === null || editor === null ? null : _jsx(LexicalMenu, {
225
+ if ($[23] !== anchorElementRef || $[24] !== resolution || $[25] !== editor || $[26] !== closeTypeahead || $[27] !== groups || $[28] !== menuRenderFn || $[29] !== onSelectItem) {
226
+ t7 = anchorElementRef.current === null || resolution === null || editor === null ? null : _jsx(LexicalMenu, {
227
227
  anchorElementRef,
228
228
  close: closeTypeahead,
229
229
  editor,
@@ -233,9 +233,9 @@ export function LexicalTypeaheadMenuPlugin(t0) {
233
233
  resolution,
234
234
  shouldSplitNodeWithQuery: true
235
235
  });
236
- $[23] = resolution;
237
- $[24] = editor;
238
- $[25] = anchorElementRef;
236
+ $[23] = anchorElementRef;
237
+ $[24] = resolution;
238
+ $[25] = editor;
239
239
  $[26] = closeTypeahead;
240
240
  $[27] = groups;
241
241
  $[28] = menuRenderFn;