@payloadcms/richtext-lexical 3.0.0-beta.9 → 3.0.0-canary.f6e77b8

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 (640) hide show
  1. package/dist/cell/index.d.ts +1 -1
  2. package/dist/cell/index.d.ts.map +1 -1
  3. package/dist/cell/index.js +2 -4
  4. package/dist/cell/index.js.map +1 -1
  5. package/dist/exports/components.d.ts +8 -2
  6. package/dist/exports/components.d.ts.map +1 -1
  7. package/dist/exports/components.js +8 -2
  8. package/dist/exports/components.js.map +1 -1
  9. package/dist/field/Field.d.ts +0 -2
  10. package/dist/field/Field.d.ts.map +1 -1
  11. package/dist/field/Field.js.map +1 -1
  12. package/dist/field/features/align/feature.client.d.ts.map +1 -1
  13. package/dist/field/features/align/feature.client.js +127 -54
  14. package/dist/field/features/align/feature.client.js.map +1 -1
  15. package/dist/field/features/align/toolbarAlignGroup.d.ts +3 -0
  16. package/dist/field/features/align/toolbarAlignGroup.d.ts.map +1 -0
  17. package/dist/field/features/align/toolbarAlignGroup.js +12 -0
  18. package/dist/field/features/align/toolbarAlignGroup.js.map +1 -0
  19. package/dist/field/features/blockquote/feature.client.d.ts +1 -1
  20. package/dist/field/features/blockquote/feature.client.d.ts.map +1 -1
  21. package/dist/field/features/blockquote/feature.client.js +53 -40
  22. package/dist/field/features/blockquote/feature.client.js.map +1 -1
  23. package/dist/field/features/blockquote/feature.server.d.ts +1 -1
  24. package/dist/field/features/blockquote/feature.server.d.ts.map +1 -1
  25. package/dist/field/features/blockquote/feature.server.js +7 -7
  26. package/dist/field/features/blockquote/feature.server.js.map +1 -1
  27. package/dist/field/features/blockquote/markdownTransformer.d.ts.map +1 -1
  28. package/dist/field/features/blockquote/markdownTransformer.js +2 -4
  29. package/dist/field/features/blockquote/markdownTransformer.js.map +1 -1
  30. package/dist/field/features/blocks/component/BlockContent.d.ts.map +1 -1
  31. package/dist/field/features/blocks/component/BlockContent.js +3 -5
  32. package/dist/field/features/blocks/component/BlockContent.js.map +1 -1
  33. package/dist/field/features/blocks/component/index.d.ts.map +1 -1
  34. package/dist/field/features/blocks/component/index.js +37 -4
  35. package/dist/field/features/blocks/component/index.js.map +1 -1
  36. package/dist/field/features/blocks/drawer/index.d.ts.map +1 -1
  37. package/dist/field/features/blocks/drawer/index.js +2 -4
  38. package/dist/field/features/blocks/drawer/index.js.map +1 -1
  39. package/dist/field/features/blocks/feature.client.d.ts.map +1 -1
  40. package/dist/field/features/blocks/feature.client.js +56 -27
  41. package/dist/field/features/blocks/feature.client.js.map +1 -1
  42. package/dist/field/features/blocks/feature.server.d.ts +2 -5
  43. package/dist/field/features/blocks/feature.server.d.ts.map +1 -1
  44. package/dist/field/features/blocks/feature.server.js +109 -77
  45. package/dist/field/features/blocks/feature.server.js.map +1 -1
  46. package/dist/field/features/blocks/nodes/BlocksNode.d.ts +1 -3
  47. package/dist/field/features/blocks/nodes/BlocksNode.d.ts.map +1 -1
  48. package/dist/field/features/blocks/nodes/BlocksNode.js +1 -2
  49. package/dist/field/features/blocks/nodes/BlocksNode.js.map +1 -1
  50. package/dist/field/features/blocks/plugin/commands.d.ts.map +1 -1
  51. package/dist/field/features/blocks/plugin/commands.js +1 -2
  52. package/dist/field/features/blocks/plugin/commands.js.map +1 -1
  53. package/dist/field/features/blocks/plugin/index.d.ts +3 -2
  54. package/dist/field/features/blocks/plugin/index.d.ts.map +1 -1
  55. package/dist/field/features/blocks/plugin/index.js +5 -8
  56. package/dist/field/features/blocks/plugin/index.js.map +1 -1
  57. package/dist/field/features/blocks/populationPromise.d.ts.map +1 -1
  58. package/dist/field/features/blocks/populationPromise.js +4 -18
  59. package/dist/field/features/blocks/populationPromise.js.map +1 -1
  60. package/dist/field/features/blocks/validate.d.ts.map +1 -1
  61. package/dist/field/features/blocks/validate.js +22 -36
  62. package/dist/field/features/blocks/validate.js.map +1 -1
  63. package/dist/field/features/converters/html/field/index.d.ts +8 -2
  64. package/dist/field/features/converters/html/field/index.d.ts.map +1 -1
  65. package/dist/field/features/converters/html/field/index.js +6 -3
  66. package/dist/field/features/converters/html/field/index.js.map +1 -1
  67. package/dist/field/features/debug/{testrecorder → testRecorder}/feature.client.d.ts.map +1 -1
  68. package/dist/field/features/debug/{testrecorder → testRecorder}/feature.client.js.map +1 -1
  69. package/dist/field/features/debug/{testrecorder → testRecorder}/feature.server.d.ts.map +1 -1
  70. package/dist/field/features/debug/{testrecorder → testRecorder}/feature.server.js +1 -1
  71. package/dist/field/features/debug/{testrecorder → testRecorder}/feature.server.js.map +1 -1
  72. package/dist/field/features/debug/testRecorder/plugin/index.d.ts +5 -0
  73. package/dist/field/features/debug/testRecorder/plugin/index.d.ts.map +1 -0
  74. package/dist/field/features/debug/{testrecorder → testRecorder}/plugin/index.js +2 -4
  75. package/dist/field/features/debug/testRecorder/plugin/index.js.map +1 -0
  76. package/dist/field/features/debug/{treeview → treeView}/feature.client.d.ts.map +1 -1
  77. package/dist/field/features/debug/{treeview → treeView}/feature.client.js.map +1 -1
  78. package/dist/field/features/debug/{treeview → treeView}/feature.server.d.ts.map +1 -1
  79. package/dist/field/features/debug/{treeview → treeView}/feature.server.js +1 -1
  80. package/dist/field/features/debug/{treeview → treeView}/feature.server.js.map +1 -1
  81. package/dist/field/features/debug/treeView/plugin/index.d.ts +4 -0
  82. package/dist/field/features/debug/treeView/plugin/index.d.ts.map +1 -0
  83. package/dist/field/features/debug/{treeview → treeView}/plugin/index.js +4 -6
  84. package/dist/field/features/debug/treeView/plugin/index.js.map +1 -0
  85. package/dist/field/features/format/bold/feature.client.d.ts.map +1 -1
  86. package/dist/field/features/format/bold/feature.client.js +26 -23
  87. package/dist/field/features/format/bold/feature.client.js.map +1 -1
  88. package/dist/field/features/format/inlineCode/feature.client.d.ts.map +1 -0
  89. package/dist/field/features/format/inlineCode/feature.client.js +46 -0
  90. package/dist/field/features/format/inlineCode/feature.client.js.map +1 -0
  91. package/dist/field/features/format/{inlinecode → inlineCode}/feature.server.d.ts.map +1 -1
  92. package/dist/field/features/format/{inlinecode → inlineCode}/feature.server.js +1 -1
  93. package/dist/field/features/format/{inlinecode → inlineCode}/feature.server.js.map +1 -1
  94. package/dist/field/features/format/{inlinecode → inlineCode}/markdownTransformers.d.ts.map +1 -1
  95. package/dist/field/features/format/{inlinecode → inlineCode}/markdownTransformers.js.map +1 -1
  96. package/dist/field/features/format/italic/feature.client.d.ts.map +1 -1
  97. package/dist/field/features/format/italic/feature.client.js +27 -24
  98. package/dist/field/features/format/italic/feature.client.js.map +1 -1
  99. package/dist/field/features/format/shared/toolbarFormatGroup.d.ts +3 -0
  100. package/dist/field/features/format/shared/toolbarFormatGroup.d.ts.map +1 -0
  101. package/dist/field/features/format/shared/toolbarFormatGroup.js +10 -0
  102. package/dist/field/features/format/shared/toolbarFormatGroup.js.map +1 -0
  103. package/dist/field/features/format/strikethrough/feature.client.d.ts.map +1 -1
  104. package/dist/field/features/format/strikethrough/feature.client.js +27 -24
  105. package/dist/field/features/format/strikethrough/feature.client.js.map +1 -1
  106. package/dist/field/features/format/subscript/feature.client.d.ts.map +1 -1
  107. package/dist/field/features/format/subscript/feature.client.js +25 -22
  108. package/dist/field/features/format/subscript/feature.client.js.map +1 -1
  109. package/dist/field/features/format/superscript/feature.client.d.ts.map +1 -1
  110. package/dist/field/features/format/superscript/feature.client.js +25 -22
  111. package/dist/field/features/format/superscript/feature.client.js.map +1 -1
  112. package/dist/field/features/format/underline/feature.client.d.ts.map +1 -1
  113. package/dist/field/features/format/underline/feature.client.js +25 -22
  114. package/dist/field/features/format/underline/feature.client.js.map +1 -1
  115. package/dist/field/features/heading/feature.client.d.ts.map +1 -1
  116. package/dist/field/features/heading/feature.client.js +71 -54
  117. package/dist/field/features/heading/feature.client.js.map +1 -1
  118. package/dist/field/features/heading/feature.server.d.ts.map +1 -1
  119. package/dist/field/features/heading/feature.server.js +5 -5
  120. package/dist/field/features/heading/feature.server.js.map +1 -1
  121. package/dist/field/features/heading/markdownTransformer.d.ts.map +1 -1
  122. package/dist/field/features/heading/markdownTransformer.js +1 -2
  123. package/dist/field/features/heading/markdownTransformer.js.map +1 -1
  124. package/dist/field/features/horizontalRule/component/index.d.ts.map +1 -0
  125. package/dist/field/features/{horizontalrule → horizontalRule}/component/index.js +2 -4
  126. package/dist/field/features/horizontalRule/component/index.js.map +1 -0
  127. package/dist/field/features/horizontalRule/feature.client.d.ts.map +1 -0
  128. package/dist/field/features/horizontalRule/feature.client.js +76 -0
  129. package/dist/field/features/horizontalRule/feature.client.js.map +1 -0
  130. package/dist/field/features/horizontalRule/feature.server.d.ts.map +1 -0
  131. package/dist/field/features/{horizontalrule → horizontalRule}/feature.server.js +4 -3
  132. package/dist/field/features/horizontalRule/feature.server.js.map +1 -0
  133. package/dist/field/features/{horizontalrule → horizontalRule}/markdownTransformer.d.ts.map +1 -1
  134. package/dist/field/features/{horizontalrule → horizontalRule}/markdownTransformer.js.map +1 -1
  135. package/dist/field/features/{horizontalrule → horizontalRule}/nodes/HorizontalRuleNode.d.ts +1 -3
  136. package/dist/field/features/horizontalRule/nodes/HorizontalRuleNode.d.ts.map +1 -0
  137. package/dist/field/features/{horizontalrule → horizontalRule}/nodes/HorizontalRuleNode.js +1 -2
  138. package/dist/field/features/horizontalRule/nodes/HorizontalRuleNode.js.map +1 -0
  139. package/dist/field/features/horizontalRule/plugin/index.d.ts +7 -0
  140. package/dist/field/features/horizontalRule/plugin/index.d.ts.map +1 -0
  141. package/dist/field/features/{horizontalrule → horizontalRule}/plugin/index.js +5 -8
  142. package/dist/field/features/horizontalRule/plugin/index.js.map +1 -0
  143. package/dist/field/features/indent/feature.client.d.ts.map +1 -1
  144. package/dist/field/features/indent/feature.client.js +43 -42
  145. package/dist/field/features/indent/feature.client.js.map +1 -1
  146. package/dist/field/features/indent/toolbarIndentGroup.d.ts +3 -0
  147. package/dist/field/features/indent/toolbarIndentGroup.d.ts.map +1 -0
  148. package/dist/field/features/indent/toolbarIndentGroup.js +10 -0
  149. package/dist/field/features/indent/toolbarIndentGroup.js.map +1 -0
  150. package/dist/field/features/link/drawer/baseFields.d.ts +2 -2
  151. package/dist/field/features/link/drawer/baseFields.d.ts.map +1 -1
  152. package/dist/field/features/link/drawer/baseFields.js +30 -43
  153. package/dist/field/features/link/drawer/baseFields.js.map +1 -1
  154. package/dist/field/features/link/drawer/index.js +3 -2
  155. package/dist/field/features/link/drawer/index.js.map +1 -1
  156. package/dist/field/features/link/drawer/types.d.ts +4 -2
  157. package/dist/field/features/link/drawer/types.d.ts.map +1 -1
  158. package/dist/field/features/link/drawer/types.js.map +1 -1
  159. package/dist/field/features/link/feature.client.d.ts.map +1 -1
  160. package/dist/field/features/link/feature.client.js +59 -47
  161. package/dist/field/features/link/feature.client.js.map +1 -1
  162. package/dist/field/features/link/feature.server.d.ts +10 -5
  163. package/dist/field/features/link/feature.server.d.ts.map +1 -1
  164. package/dist/field/features/link/feature.server.js +48 -9
  165. package/dist/field/features/link/feature.server.js.map +1 -1
  166. package/dist/field/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  167. package/dist/field/features/link/nodes/AutoLinkNode.js +1 -2
  168. package/dist/field/features/link/nodes/AutoLinkNode.js.map +1 -1
  169. package/dist/field/features/link/nodes/LinkNode.d.ts +1 -3
  170. package/dist/field/features/link/nodes/LinkNode.d.ts.map +1 -1
  171. package/dist/field/features/link/nodes/LinkNode.js +2 -4
  172. package/dist/field/features/link/nodes/LinkNode.js.map +1 -1
  173. package/dist/field/features/link/plugins/autoLink/index.d.ts +3 -2
  174. package/dist/field/features/link/plugins/autoLink/index.d.ts.map +1 -1
  175. package/dist/field/features/link/plugins/autoLink/index.js +5 -8
  176. package/dist/field/features/link/plugins/autoLink/index.js.map +1 -1
  177. package/dist/field/features/link/plugins/clickableLink/index.d.ts +3 -2
  178. package/dist/field/features/link/plugins/clickableLink/index.d.ts.map +1 -1
  179. package/dist/field/features/link/plugins/clickableLink/index.js +2 -2
  180. package/dist/field/features/link/plugins/clickableLink/index.js.map +1 -1
  181. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -1
  182. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -2
  183. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -1
  184. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  185. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +93 -69
  186. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  187. package/dist/field/features/link/plugins/floatingLinkEditor/index.d.ts +3 -4
  188. package/dist/field/features/link/plugins/floatingLinkEditor/index.d.ts.map +1 -1
  189. package/dist/field/features/link/plugins/floatingLinkEditor/index.js.map +1 -1
  190. package/dist/field/features/link/plugins/floatingLinkEditor/index.scss +11 -3
  191. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.d.ts +1 -3
  192. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.d.ts.map +1 -1
  193. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +12 -30
  194. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js.map +1 -1
  195. package/dist/field/features/link/plugins/link/index.d.ts +3 -1
  196. package/dist/field/features/link/plugins/link/index.d.ts.map +1 -1
  197. package/dist/field/features/link/plugins/link/index.js +5 -14
  198. package/dist/field/features/link/plugins/link/index.js.map +1 -1
  199. package/dist/field/features/link/populationPromise.d.ts.map +1 -1
  200. package/dist/field/features/link/populationPromise.js +10 -25
  201. package/dist/field/features/link/populationPromise.js.map +1 -1
  202. package/dist/field/features/link/validate.d.ts +5 -0
  203. package/dist/field/features/link/validate.d.ts.map +1 -0
  204. package/dist/field/features/link/validate.js +32 -0
  205. package/dist/field/features/link/validate.js.map +1 -0
  206. package/dist/field/features/lists/checklist/feature.client.d.ts +1 -1
  207. package/dist/field/features/lists/checklist/feature.client.d.ts.map +1 -1
  208. package/dist/field/features/lists/checklist/feature.client.js +56 -32
  209. package/dist/field/features/lists/checklist/feature.client.js.map +1 -1
  210. package/dist/field/features/lists/checklist/feature.server.d.ts +1 -1
  211. package/dist/field/features/lists/checklist/feature.server.d.ts.map +1 -1
  212. package/dist/field/features/lists/checklist/feature.server.js +10 -10
  213. package/dist/field/features/lists/checklist/feature.server.js.map +1 -1
  214. package/dist/field/features/lists/checklist/markdownTransformers.d.ts.map +1 -1
  215. package/dist/field/features/lists/checklist/markdownTransformers.js +2 -3
  216. package/dist/field/features/lists/checklist/markdownTransformers.js.map +1 -1
  217. package/dist/field/features/lists/checklist/plugin/index.d.ts +2 -2
  218. package/dist/field/features/lists/checklist/plugin/index.d.ts.map +1 -1
  219. package/dist/field/features/lists/checklist/plugin/index.js +3 -4
  220. package/dist/field/features/lists/checklist/plugin/index.js.map +1 -1
  221. package/dist/field/features/lists/htmlConverter.d.ts.map +1 -1
  222. package/dist/field/features/lists/htmlConverter.js +13 -6
  223. package/dist/field/features/lists/htmlConverter.js.map +1 -1
  224. package/dist/field/features/lists/orderedList/feature.client.d.ts.map +1 -0
  225. package/dist/field/features/lists/orderedList/feature.client.js +96 -0
  226. package/dist/field/features/lists/orderedList/feature.client.js.map +1 -0
  227. package/dist/field/features/lists/orderedList/feature.server.d.ts.map +1 -0
  228. package/dist/field/features/lists/{orderedlist → orderedList}/feature.server.js +7 -7
  229. package/dist/field/features/lists/orderedList/feature.server.js.map +1 -0
  230. package/dist/field/features/lists/orderedList/markdownTransformer.d.ts.map +1 -0
  231. package/dist/field/features/lists/{orderedlist → orderedList}/markdownTransformer.js +2 -3
  232. package/dist/field/features/lists/orderedList/markdownTransformer.js.map +1 -0
  233. package/dist/field/features/lists/plugin/index.d.ts +2 -2
  234. package/dist/field/features/lists/plugin/index.d.ts.map +1 -1
  235. package/dist/field/features/lists/plugin/index.js +3 -4
  236. package/dist/field/features/lists/plugin/index.js.map +1 -1
  237. package/dist/field/features/lists/{common → shared}/markdown.d.ts.map +1 -1
  238. package/dist/field/features/lists/{common → shared}/markdown.js +1 -2
  239. package/dist/field/features/lists/shared/markdown.js.map +1 -0
  240. package/dist/field/features/lists/unorderedList/feature.client.d.ts.map +1 -0
  241. package/dist/field/features/lists/unorderedList/feature.client.js +96 -0
  242. package/dist/field/features/lists/unorderedList/feature.client.js.map +1 -0
  243. package/dist/field/features/lists/unorderedList/feature.server.d.ts.map +1 -0
  244. package/dist/field/features/lists/{unorderedlist → unorderedList}/feature.server.js +7 -7
  245. package/dist/field/features/lists/unorderedList/feature.server.js.map +1 -0
  246. package/dist/field/features/lists/unorderedList/markdownTransformer.d.ts.map +1 -0
  247. package/dist/field/features/lists/{unorderedlist → unorderedList}/markdownTransformer.js +2 -3
  248. package/dist/field/features/lists/unorderedList/markdownTransformer.js.map +1 -0
  249. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +1 -1
  250. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +2 -4
  251. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -1
  252. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +1 -3
  253. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  254. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +2 -4
  255. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  256. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.d.ts +1 -1
  257. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +1 -1
  258. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js.map +1 -1
  259. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +2 -2
  260. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js.map +1 -1
  261. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +1 -1
  262. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +2 -4
  263. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -1
  264. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +1 -1
  265. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +2 -4
  266. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -1
  267. package/dist/field/features/migrations/slateToLexical/converter/index.d.ts.map +1 -1
  268. package/dist/field/features/migrations/slateToLexical/converter/index.js +2 -1
  269. package/dist/field/features/migrations/slateToLexical/converter/index.js.map +1 -1
  270. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +1 -3
  271. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  272. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +2 -4
  273. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  274. package/dist/field/features/paragraph/feature.client.d.ts.map +1 -1
  275. package/dist/field/features/paragraph/feature.client.js +45 -33
  276. package/dist/field/features/paragraph/feature.client.js.map +1 -1
  277. package/dist/field/features/relationship/drawer/commands.d.ts.map +1 -1
  278. package/dist/field/features/relationship/drawer/commands.js +1 -2
  279. package/dist/field/features/relationship/drawer/commands.js.map +1 -1
  280. package/dist/field/features/relationship/drawer/index.d.ts.map +1 -1
  281. package/dist/field/features/relationship/drawer/index.js +7 -13
  282. package/dist/field/features/relationship/drawer/index.js.map +1 -1
  283. package/dist/field/features/relationship/feature.client.d.ts.map +1 -1
  284. package/dist/field/features/relationship/feature.client.js +37 -15
  285. package/dist/field/features/relationship/feature.client.js.map +1 -1
  286. package/dist/field/features/relationship/feature.server.d.ts +10 -1
  287. package/dist/field/features/relationship/feature.server.d.ts.map +1 -1
  288. package/dist/field/features/relationship/feature.server.js +5 -4
  289. package/dist/field/features/relationship/feature.server.js.map +1 -1
  290. package/dist/field/features/relationship/nodes/RelationshipNode.d.ts +3 -8
  291. package/dist/field/features/relationship/nodes/RelationshipNode.d.ts.map +1 -1
  292. package/dist/field/features/relationship/nodes/RelationshipNode.js +8 -8
  293. package/dist/field/features/relationship/nodes/RelationshipNode.js.map +1 -1
  294. package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts.map +1 -1
  295. package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +56 -7
  296. package/dist/field/features/relationship/nodes/components/RelationshipComponent.js.map +1 -1
  297. package/dist/field/features/relationship/plugins/index.d.ts +2 -2
  298. package/dist/field/features/relationship/plugins/index.d.ts.map +1 -1
  299. package/dist/field/features/relationship/plugins/index.js +9 -12
  300. package/dist/field/features/relationship/plugins/index.js.map +1 -1
  301. package/dist/field/features/relationship/populationPromise.d.ts +2 -1
  302. package/dist/field/features/relationship/populationPromise.d.ts.map +1 -1
  303. package/dist/field/features/relationship/populationPromise.js +25 -19
  304. package/dist/field/features/relationship/populationPromise.js.map +1 -1
  305. package/dist/field/features/shared/toolbar/addDropdownGroup.d.ts +3 -0
  306. package/dist/field/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -0
  307. package/dist/field/features/shared/toolbar/addDropdownGroup.js +12 -0
  308. package/dist/field/features/shared/toolbar/addDropdownGroup.js.map +1 -0
  309. package/dist/field/features/shared/toolbar/featureButtonsGroup.d.ts +3 -0
  310. package/dist/field/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -0
  311. package/dist/field/features/shared/toolbar/featureButtonsGroup.js +10 -0
  312. package/dist/field/features/shared/toolbar/featureButtonsGroup.js.map +1 -0
  313. package/dist/field/features/shared/toolbar/textDropdownGroup.d.ts +3 -0
  314. package/dist/field/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -0
  315. package/dist/field/features/shared/toolbar/textDropdownGroup.js +12 -0
  316. package/dist/field/features/shared/toolbar/textDropdownGroup.js.map +1 -0
  317. package/dist/field/features/toolbars/fixed/Toolbar/index.d.ts +4 -0
  318. package/dist/field/features/toolbars/fixed/Toolbar/index.d.ts.map +1 -0
  319. package/dist/field/features/toolbars/fixed/Toolbar/index.js +152 -0
  320. package/dist/field/features/toolbars/fixed/Toolbar/index.js.map +1 -0
  321. package/dist/field/features/toolbars/fixed/Toolbar/index.scss +81 -0
  322. package/dist/field/features/toolbars/fixed/feature.client.d.ts +3 -0
  323. package/dist/field/features/toolbars/fixed/feature.client.d.ts.map +1 -0
  324. package/dist/field/features/toolbars/fixed/feature.client.js +20 -0
  325. package/dist/field/features/toolbars/fixed/feature.client.js.map +1 -0
  326. package/dist/field/features/toolbars/fixed/feature.server.d.ts +3 -0
  327. package/dist/field/features/toolbars/fixed/feature.server.d.ts.map +1 -0
  328. package/dist/field/features/toolbars/fixed/feature.server.js +16 -0
  329. package/dist/field/features/toolbars/fixed/feature.server.js.map +1 -0
  330. package/dist/field/features/toolbars/inline/Toolbar/index.d.ts +4 -0
  331. package/dist/field/features/toolbars/inline/Toolbar/index.d.ts.map +1 -0
  332. package/dist/field/{lexical/plugins/FloatingSelectToolbar → features/toolbars/inline/Toolbar}/index.js +112 -70
  333. package/dist/field/features/toolbars/inline/Toolbar/index.js.map +1 -0
  334. package/dist/field/{lexical/plugins/FloatingSelectToolbar → features/toolbars/inline/Toolbar}/index.scss +7 -11
  335. package/dist/field/features/toolbars/inline/feature.client.d.ts +3 -0
  336. package/dist/field/features/toolbars/inline/feature.client.d.ts.map +1 -0
  337. package/dist/field/features/toolbars/inline/feature.client.js +20 -0
  338. package/dist/field/features/toolbars/inline/feature.client.js.map +1 -0
  339. package/dist/field/features/toolbars/inline/feature.server.d.ts +3 -0
  340. package/dist/field/features/toolbars/inline/feature.server.d.ts.map +1 -0
  341. package/dist/field/features/toolbars/inline/feature.server.js +16 -0
  342. package/dist/field/features/toolbars/inline/feature.server.js.map +1 -0
  343. package/dist/field/features/toolbars/shared/ToolbarButton/index.d.ts +10 -0
  344. package/dist/field/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -0
  345. package/dist/field/{lexical/plugins/FloatingSelectToolbar → features/toolbars/shared}/ToolbarButton/index.js +29 -19
  346. package/dist/field/features/toolbars/shared/ToolbarButton/index.js.map +1 -0
  347. package/dist/field/{lexical/plugins/FloatingSelectToolbar → features/toolbars/shared}/ToolbarButton/index.scss +3 -1
  348. package/dist/field/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts +23 -0
  349. package/dist/field/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -0
  350. package/dist/field/{lexical/plugins/FloatingSelectToolbar → features/toolbars/shared}/ToolbarDropdown/DropDown.js +27 -72
  351. package/dist/field/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -0
  352. package/dist/field/features/toolbars/shared/ToolbarDropdown/index.d.ts +23 -0
  353. package/dist/field/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -0
  354. package/dist/field/features/toolbars/shared/ToolbarDropdown/index.js +139 -0
  355. package/dist/field/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -0
  356. package/dist/field/{lexical/plugins/FloatingSelectToolbar → features/toolbars/shared}/ToolbarDropdown/index.scss +25 -13
  357. package/dist/field/features/toolbars/types.d.ts +48 -0
  358. package/dist/field/features/toolbars/types.d.ts.map +1 -0
  359. package/dist/field/features/toolbars/types.js.map +1 -0
  360. package/dist/field/features/typeUtilities.d.ts +8 -0
  361. package/dist/field/features/typeUtilities.d.ts.map +1 -0
  362. package/dist/field/features/typeUtilities.js +8 -0
  363. package/dist/field/features/typeUtilities.js.map +1 -0
  364. package/dist/field/features/types.d.ts +128 -57
  365. package/dist/field/features/types.d.ts.map +1 -1
  366. package/dist/field/features/types.js.map +1 -1
  367. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -1
  368. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +5 -6
  369. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js.map +1 -1
  370. package/dist/field/features/upload/component/index.d.ts.map +1 -1
  371. package/dist/field/features/upload/component/index.js +59 -9
  372. package/dist/field/features/upload/component/index.js.map +1 -1
  373. package/dist/field/features/upload/drawer/commands.d.ts.map +1 -1
  374. package/dist/field/features/upload/drawer/commands.js +1 -2
  375. package/dist/field/features/upload/drawer/commands.js.map +1 -1
  376. package/dist/field/features/upload/drawer/index.d.ts.map +1 -1
  377. package/dist/field/features/upload/drawer/index.js +8 -12
  378. package/dist/field/features/upload/drawer/index.js.map +1 -1
  379. package/dist/field/features/upload/feature.client.d.ts.map +1 -1
  380. package/dist/field/features/upload/feature.client.js +35 -10
  381. package/dist/field/features/upload/feature.client.js.map +1 -1
  382. package/dist/field/features/upload/feature.server.d.ts +10 -3
  383. package/dist/field/features/upload/feature.server.d.ts.map +1 -1
  384. package/dist/field/features/upload/feature.server.js +39 -11
  385. package/dist/field/features/upload/feature.server.js.map +1 -1
  386. package/dist/field/features/upload/nodes/UploadNode.d.ts +2 -14
  387. package/dist/field/features/upload/nodes/UploadNode.d.ts.map +1 -1
  388. package/dist/field/features/upload/nodes/UploadNode.js +24 -11
  389. package/dist/field/features/upload/nodes/UploadNode.js.map +1 -1
  390. package/dist/field/features/upload/plugin/index.d.ts +5 -4
  391. package/dist/field/features/upload/plugin/index.d.ts.map +1 -1
  392. package/dist/field/features/upload/plugin/index.js +6 -11
  393. package/dist/field/features/upload/plugin/index.js.map +1 -1
  394. package/dist/field/features/upload/populationPromise.d.ts.map +1 -1
  395. package/dist/field/features/upload/populationPromise.js +15 -9
  396. package/dist/field/features/upload/populationPromise.js.map +1 -1
  397. package/dist/field/features/upload/validate.d.ts +2 -1
  398. package/dist/field/features/upload/validate.d.ts.map +1 -1
  399. package/dist/field/features/upload/validate.js +36 -9
  400. package/dist/field/features/upload/validate.js.map +1 -1
  401. package/dist/field/index.d.ts +1 -1
  402. package/dist/field/index.d.ts.map +1 -1
  403. package/dist/field/index.js.map +1 -1
  404. package/dist/field/lexical/EditorFocusProvider.d.ts +20 -0
  405. package/dist/field/lexical/EditorFocusProvider.d.ts.map +1 -0
  406. package/dist/field/lexical/EditorFocusProvider.js +78 -0
  407. package/dist/field/lexical/EditorFocusProvider.js.map +1 -0
  408. package/dist/field/lexical/EditorPlugin.d.ts +1 -0
  409. package/dist/field/lexical/EditorPlugin.d.ts.map +1 -1
  410. package/dist/field/lexical/EditorPlugin.js +6 -3
  411. package/dist/field/lexical/EditorPlugin.js.map +1 -1
  412. package/dist/field/lexical/LexicalEditor.d.ts.map +1 -1
  413. package/dist/field/lexical/LexicalEditor.js +31 -15
  414. package/dist/field/lexical/LexicalEditor.js.map +1 -1
  415. package/dist/field/lexical/LexicalEditor.scss +3 -19
  416. package/dist/field/lexical/LexicalProvider.d.ts +1 -1
  417. package/dist/field/lexical/LexicalProvider.d.ts.map +1 -1
  418. package/dist/field/lexical/LexicalProvider.js +4 -4
  419. package/dist/field/lexical/LexicalProvider.js.map +1 -1
  420. package/dist/field/lexical/config/client/EditorConfigProvider.d.ts +2 -3
  421. package/dist/field/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  422. package/dist/field/lexical/config/client/EditorConfigProvider.js.map +1 -1
  423. package/dist/field/lexical/config/client/default.d.ts +1 -1
  424. package/dist/field/lexical/config/client/default.d.ts.map +1 -1
  425. package/dist/field/lexical/config/client/default.js.map +1 -1
  426. package/dist/field/lexical/config/client/sanitize.d.ts +1 -1
  427. package/dist/field/lexical/config/client/sanitize.d.ts.map +1 -1
  428. package/dist/field/lexical/config/client/sanitize.js +81 -32
  429. package/dist/field/lexical/config/client/sanitize.js.map +1 -1
  430. package/dist/field/lexical/config/server/default.d.ts +2 -3
  431. package/dist/field/lexical/config/server/default.d.ts.map +1 -1
  432. package/dist/field/lexical/config/server/default.js +11 -11
  433. package/dist/field/lexical/config/server/default.js.map +1 -1
  434. package/dist/field/lexical/config/server/loader.d.ts +5 -2
  435. package/dist/field/lexical/config/server/loader.d.ts.map +1 -1
  436. package/dist/field/lexical/config/server/loader.js +4 -2
  437. package/dist/field/lexical/config/server/loader.js.map +1 -1
  438. package/dist/field/lexical/config/server/sanitize.d.ts +2 -1
  439. package/dist/field/lexical/config/server/sanitize.d.ts.map +1 -1
  440. package/dist/field/lexical/config/server/sanitize.js +23 -8
  441. package/dist/field/lexical/config/server/sanitize.js.map +1 -1
  442. package/dist/field/lexical/config/types.d.ts +1 -1
  443. package/dist/field/lexical/config/types.d.ts.map +1 -1
  444. package/dist/field/lexical/config/types.js.map +1 -1
  445. package/dist/field/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
  446. package/dist/field/lexical/plugins/MarkdownShortcut/index.js +1 -2
  447. package/dist/field/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  448. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +9 -9
  449. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  450. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +74 -77
  451. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  452. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +4 -4
  453. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
  454. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +6 -9
  455. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  456. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +17 -25
  457. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  458. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -37
  459. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  460. package/dist/field/lexical/plugins/SlashMenu/index.d.ts +2 -2
  461. package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  462. package/dist/field/lexical/plugins/SlashMenu/index.js +72 -67
  463. package/dist/field/lexical/plugins/SlashMenu/index.js.map +1 -1
  464. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  465. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +2 -4
  466. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  467. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts +1 -1
  468. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts.map +1 -1
  469. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +3 -4
  470. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js.map +1 -1
  471. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  472. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +8 -7
  473. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  474. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.scss +8 -0
  475. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +1 -1
  476. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +25 -6
  477. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  478. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts.map +1 -1
  479. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +1 -2
  480. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -1
  481. package/dist/field/lexical/theme/EditorTheme.scss +13 -14
  482. package/dist/field/lexical/ui/ContentEditable.d.ts.map +1 -1
  483. package/dist/field/lexical/ui/ContentEditable.js +1 -2
  484. package/dist/field/lexical/ui/ContentEditable.js.map +1 -1
  485. package/dist/field/lexical/ui/icons/Add/index.d.ts +3 -0
  486. package/dist/field/lexical/ui/icons/Add/index.d.ts.map +1 -0
  487. package/dist/field/lexical/ui/icons/Add/index.js +16 -0
  488. package/dist/field/lexical/ui/icons/Add/index.js.map +1 -0
  489. package/dist/field/lexical/utils/getSelectedNode.d.ts.map +1 -1
  490. package/dist/field/lexical/utils/getSelectedNode.js +1 -2
  491. package/dist/field/lexical/utils/getSelectedNode.js.map +1 -1
  492. package/dist/field/lexical/utils/nodeFormat.d.ts +2 -1
  493. package/dist/field/lexical/utils/nodeFormat.d.ts.map +1 -1
  494. package/dist/field/lexical/utils/nodeFormat.js.map +1 -1
  495. package/dist/field/lexical/utils/setFloatingElemPosition.d.ts +11 -1
  496. package/dist/field/lexical/utils/setFloatingElemPosition.d.ts.map +1 -1
  497. package/dist/field/lexical/utils/setFloatingElemPosition.js +16 -13
  498. package/dist/field/lexical/utils/setFloatingElemPosition.js.map +1 -1
  499. package/dist/field/lexical/utils/url.d.ts.map +1 -1
  500. package/dist/field/lexical/utils/url.js +3 -0
  501. package/dist/field/lexical/utils/url.js.map +1 -1
  502. package/dist/forEachNodeRecursively.d.ts +10 -0
  503. package/dist/forEachNodeRecursively.d.ts.map +1 -0
  504. package/dist/forEachNodeRecursively.js +24 -0
  505. package/dist/forEachNodeRecursively.js.map +1 -0
  506. package/dist/generateComponentMap.d.ts.map +1 -1
  507. package/dist/generateComponentMap.js +13 -21
  508. package/dist/generateComponentMap.js.map +1 -1
  509. package/dist/generateSchemaMap.d.ts.map +1 -1
  510. package/dist/generateSchemaMap.js +4 -12
  511. package/dist/generateSchemaMap.js.map +1 -1
  512. package/dist/index.d.ts +24 -20
  513. package/dist/index.d.ts.map +1 -1
  514. package/dist/index.js +275 -184
  515. package/dist/index.js.map +1 -1
  516. package/dist/populate/defaultValue.d.ts.map +1 -1
  517. package/dist/populate/defaultValue.js +1 -0
  518. package/dist/populate/defaultValue.js.map +1 -1
  519. package/dist/populate/populate.d.ts +5 -4
  520. package/dist/populate/populate.d.ts.map +1 -1
  521. package/dist/populate/populate.js +13 -11
  522. package/dist/populate/populate.js.map +1 -1
  523. package/dist/populate/populateLexicalPopulationPromises.d.ts +12 -0
  524. package/dist/populate/populateLexicalPopulationPromises.d.ts.map +1 -0
  525. package/dist/populate/populateLexicalPopulationPromises.js +36 -0
  526. package/dist/populate/populateLexicalPopulationPromises.js.map +1 -0
  527. package/dist/populate/recurseNestedFields.d.ts +8 -4
  528. package/dist/populate/recurseNestedFields.d.ts.map +1 -1
  529. package/dist/populate/recurseNestedFields.js +4 -5
  530. package/dist/populate/recurseNestedFields.js.map +1 -1
  531. package/dist/types.d.ts +12 -5
  532. package/dist/types.d.ts.map +1 -1
  533. package/dist/types.js.map +1 -1
  534. package/dist/validate/index.d.ts +1 -1
  535. package/dist/validate/index.d.ts.map +1 -1
  536. package/package.json +47 -46
  537. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts +0 -3
  538. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts.map +0 -1
  539. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +0 -12
  540. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js.map +0 -1
  541. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts +0 -3
  542. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts.map +0 -1
  543. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +0 -10
  544. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js.map +0 -1
  545. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts +0 -3
  546. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts.map +0 -1
  547. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +0 -12
  548. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js.map +0 -1
  549. package/dist/field/features/debug/testrecorder/plugin/index.d.ts +0 -5
  550. package/dist/field/features/debug/testrecorder/plugin/index.d.ts.map +0 -1
  551. package/dist/field/features/debug/testrecorder/plugin/index.js.map +0 -1
  552. package/dist/field/features/debug/treeview/plugin/index.d.ts +0 -4
  553. package/dist/field/features/debug/treeview/plugin/index.d.ts.map +0 -1
  554. package/dist/field/features/debug/treeview/plugin/index.js.map +0 -1
  555. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts +0 -3
  556. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts.map +0 -1
  557. package/dist/field/features/format/common/floatingSelectToolbarSection.js +0 -10
  558. package/dist/field/features/format/common/floatingSelectToolbarSection.js.map +0 -1
  559. package/dist/field/features/format/inlinecode/feature.client.d.ts.map +0 -1
  560. package/dist/field/features/format/inlinecode/feature.client.js +0 -43
  561. package/dist/field/features/format/inlinecode/feature.client.js.map +0 -1
  562. package/dist/field/features/horizontalrule/component/index.d.ts.map +0 -1
  563. package/dist/field/features/horizontalrule/component/index.js.map +0 -1
  564. package/dist/field/features/horizontalrule/feature.client.d.ts.map +0 -1
  565. package/dist/field/features/horizontalrule/feature.client.js +0 -53
  566. package/dist/field/features/horizontalrule/feature.client.js.map +0 -1
  567. package/dist/field/features/horizontalrule/feature.server.d.ts.map +0 -1
  568. package/dist/field/features/horizontalrule/feature.server.js.map +0 -1
  569. package/dist/field/features/horizontalrule/nodes/HorizontalRuleNode.d.ts.map +0 -1
  570. package/dist/field/features/horizontalrule/nodes/HorizontalRuleNode.js.map +0 -1
  571. package/dist/field/features/horizontalrule/plugin/index.d.ts +0 -6
  572. package/dist/field/features/horizontalrule/plugin/index.d.ts.map +0 -1
  573. package/dist/field/features/horizontalrule/plugin/index.js.map +0 -1
  574. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts +0 -3
  575. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts.map +0 -1
  576. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +0 -10
  577. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js.map +0 -1
  578. package/dist/field/features/indent/index.scss +0 -4
  579. package/dist/field/features/lists/common/markdown.js.map +0 -1
  580. package/dist/field/features/lists/orderedlist/feature.client.d.ts.map +0 -1
  581. package/dist/field/features/lists/orderedlist/feature.client.js +0 -72
  582. package/dist/field/features/lists/orderedlist/feature.client.js.map +0 -1
  583. package/dist/field/features/lists/orderedlist/feature.server.d.ts.map +0 -1
  584. package/dist/field/features/lists/orderedlist/feature.server.js.map +0 -1
  585. package/dist/field/features/lists/orderedlist/markdownTransformer.d.ts.map +0 -1
  586. package/dist/field/features/lists/orderedlist/markdownTransformer.js.map +0 -1
  587. package/dist/field/features/lists/unorderedlist/feature.client.d.ts.map +0 -1
  588. package/dist/field/features/lists/unorderedlist/feature.client.js +0 -72
  589. package/dist/field/features/lists/unorderedlist/feature.client.js.map +0 -1
  590. package/dist/field/features/lists/unorderedlist/feature.server.d.ts.map +0 -1
  591. package/dist/field/features/lists/unorderedlist/feature.server.js.map +0 -1
  592. package/dist/field/features/lists/unorderedlist/markdownTransformer.d.ts.map +0 -1
  593. package/dist/field/features/lists/unorderedlist/markdownTransformer.js.map +0 -1
  594. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts +0 -8
  595. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts.map +0 -1
  596. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js.map +0 -1
  597. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts +0 -17
  598. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts.map +0 -1
  599. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js.map +0 -1
  600. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts +0 -18
  601. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +0 -1
  602. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +0 -42
  603. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js.map +0 -1
  604. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts +0 -6
  605. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts.map +0 -1
  606. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js.map +0 -1
  607. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts +0 -40
  608. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts.map +0 -1
  609. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js.map +0 -1
  610. package/dist/populate/richTextRelationshipPromise.d.ts +0 -23
  611. package/dist/populate/richTextRelationshipPromise.d.ts.map +0 -1
  612. package/dist/populate/richTextRelationshipPromise.js +0 -68
  613. package/dist/populate/richTextRelationshipPromise.js.map +0 -1
  614. package/src/index.ts +0 -423
  615. /package/dist/field/features/debug/{testrecorder → testRecorder}/feature.client.d.ts +0 -0
  616. /package/dist/field/features/debug/{testrecorder → testRecorder}/feature.client.js +0 -0
  617. /package/dist/field/features/debug/{testrecorder → testRecorder}/feature.server.d.ts +0 -0
  618. /package/dist/field/features/debug/{testrecorder → testRecorder}/plugin/index.scss +0 -0
  619. /package/dist/field/features/debug/{treeview → treeView}/feature.client.d.ts +0 -0
  620. /package/dist/field/features/debug/{treeview → treeView}/feature.client.js +0 -0
  621. /package/dist/field/features/debug/{treeview → treeView}/feature.server.d.ts +0 -0
  622. /package/dist/field/features/debug/{treeview → treeView}/plugin/index.scss +0 -0
  623. /package/dist/field/features/format/{inlinecode → inlineCode}/feature.client.d.ts +0 -0
  624. /package/dist/field/features/format/{inlinecode → inlineCode}/feature.server.d.ts +0 -0
  625. /package/dist/field/features/format/{inlinecode → inlineCode}/markdownTransformers.d.ts +0 -0
  626. /package/dist/field/features/format/{inlinecode → inlineCode}/markdownTransformers.js +0 -0
  627. /package/dist/field/features/{horizontalrule → horizontalRule}/component/index.d.ts +0 -0
  628. /package/dist/field/features/{horizontalrule → horizontalRule}/feature.client.d.ts +0 -0
  629. /package/dist/field/features/{horizontalrule → horizontalRule}/feature.server.d.ts +0 -0
  630. /package/dist/field/features/{horizontalrule → horizontalRule}/markdownTransformer.d.ts +0 -0
  631. /package/dist/field/features/{horizontalrule → horizontalRule}/markdownTransformer.js +0 -0
  632. /package/dist/field/features/{horizontalrule → horizontalRule}/plugin/index.scss +0 -0
  633. /package/dist/field/features/lists/{orderedlist → orderedList}/feature.client.d.ts +0 -0
  634. /package/dist/field/features/lists/{orderedlist → orderedList}/feature.server.d.ts +0 -0
  635. /package/dist/field/features/lists/{orderedlist → orderedList}/markdownTransformer.d.ts +0 -0
  636. /package/dist/field/features/lists/{common → shared}/markdown.d.ts +0 -0
  637. /package/dist/field/features/lists/{unorderedlist → unorderedList}/feature.client.d.ts +0 -0
  638. /package/dist/field/features/lists/{unorderedlist → unorderedList}/feature.server.d.ts +0 -0
  639. /package/dist/field/features/lists/{unorderedlist → unorderedList}/markdownTransformer.d.ts +0 -0
  640. /package/dist/field/{lexical/plugins/FloatingSelectToolbar → features/toolbars}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.tsx"],"sourcesContent":["'use client'\nimport type {\n LexicalCommand,\n LexicalEditor,\n ParagraphNode,\n RangeSelection,\n TextNode,\n} from 'lexical'\n\nimport lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'\nconst { useLexicalComposerContext } = lexicalComposerContextImport\n\nimport lexicalUtilsImport from '@lexical/utils'\nconst { mergeRegister } = lexicalUtilsImport\n\nimport lexicalImport from 'lexical'\nconst { $getSelection, $isRangeSelection, $isTextNode, COMMAND_PRIORITY_LOW, createCommand } =\n lexicalImport\n\nimport { useCallback, useEffect, useState } from 'react'\nimport * as React from 'react'\n\nimport type { MenuTextMatch, TriggerFn } from '../useMenuTriggerMatch.js'\nimport type { MenuRenderFn, MenuResolution } from './LexicalMenu.js'\nimport type { SlashMenuGroup, SlashMenuOption } from './types.js'\n\nimport { LexicalMenu, useMenuAnchorRef } from './LexicalMenu.js'\n\nexport const PUNCTUATION = '\\\\.,\\\\+\\\\*\\\\?\\\\$\\\\@\\\\|#{}\\\\(\\\\)\\\\^\\\\-\\\\[\\\\]\\\\\\\\/!%\\'\"~=<>_:;'\n\nfunction getTextUpToAnchor(selection: RangeSelection): null | string {\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 anchorOffset = anchor.offset\n return anchorNode.getTextContent().slice(0, anchorOffset)\n}\n\nfunction tryToPositionRange(leadOffset: number, range: Range, editorWindow: Window): boolean {\n const domSelection = editorWindow.getSelection()\n if (domSelection === null || !domSelection.isCollapsed) {\n return false\n }\n const anchorNode = domSelection.anchorNode\n const startOffset = leadOffset\n const endOffset = domSelection.anchorOffset\n\n if (anchorNode == null || endOffset == null) {\n return false\n }\n\n try {\n range.setStart(anchorNode, startOffset)\n // if endOffset is 0, positioning the range for when you click the plus button to open the slash menu will fial\n range.setEnd(anchorNode, endOffset > 1 ? endOffset : 1)\n } catch (error) {\n return false\n }\n\n return true\n}\n\nfunction getQueryTextForSearch(editor: LexicalEditor): null | string {\n let text = null\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!$isRangeSelection(selection)) {\n return\n }\n text = getTextUpToAnchor(selection)\n })\n return text\n}\n\nfunction isSelectionOnEntityBoundary(editor: LexicalEditor, offset: number): boolean {\n if (offset !== 0) {\n return false\n }\n return editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor\n const anchorNode = anchor.getNode()\n const prevSibling = anchorNode.getPreviousSibling()\n return $isTextNode(prevSibling) && prevSibling.isTextEntity()\n }\n return false\n })\n}\n\nfunction startTransition(callback: () => void) {\n if (React.startTransition) {\n React.startTransition(callback)\n } else {\n callback()\n }\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\nexport { useDynamicPositioning } from './LexicalMenu.js'\n\nexport type TypeaheadMenuPluginProps = {\n anchorClassName?: string\n anchorElem: HTMLElement\n groupsWithOptions: Array<SlashMenuGroup>\n menuRenderFn: MenuRenderFn\n onClose?: () => void\n onOpen?: (resolution: MenuResolution) => void\n onQueryChange: (matchingString: null | string) => void\n onSelectOption: (\n option: SlashMenuOption,\n textNodeContainingQuery: TextNode | null,\n closeMenu: () => void,\n matchingString: string,\n ) => void\n triggerFn: TriggerFn\n}\n\nexport const ENABLE_SLASH_MENU_COMMAND: LexicalCommand<{\n node: ParagraphNode\n}> = createCommand('ENABLE_SLASH_MENU_COMMAND')\n\nexport function LexicalTypeaheadMenuPlugin({\n anchorClassName,\n anchorElem,\n groupsWithOptions,\n menuRenderFn,\n onClose,\n onOpen,\n onQueryChange,\n onSelectOption,\n triggerFn,\n}: TypeaheadMenuPluginProps): JSX.Element | null {\n const [editor] = useLexicalComposerContext()\n const [resolution, setResolution] = useState<MenuResolution | null>(null)\n const anchorElementRef = useMenuAnchorRef(anchorElem, resolution, setResolution, anchorClassName)\n\n const closeTypeahead = useCallback(() => {\n setResolution(null)\n if (onClose != null && resolution !== null) {\n onClose()\n }\n }, [onClose, resolution])\n\n const openTypeahead = useCallback(\n (res: MenuResolution) => {\n setResolution(res)\n if (onOpen != null && resolution === null) {\n onOpen(res)\n }\n },\n [onOpen, resolution],\n )\n\n // This is mainly used for the AddBlockHandlePlugin, so that the slash menu can be opened from there\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n ENABLE_SLASH_MENU_COMMAND,\n ({ node }) => {\n editor.getEditorState().read(() => {\n const match: MenuTextMatch = {\n leadOffset: 0,\n matchingString: '',\n replaceableString: '',\n }\n if (match !== null && !isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n if (node !== null) {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n }\n\n return\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, openTypeahead])\n\n useEffect(() => {\n const updateListener = () => {\n editor.getEditorState().read(() => {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n const selection = $getSelection()\n const text = getQueryTextForSearch(editor)\n\n if (\n !$isRangeSelection(selection) ||\n !selection.isCollapsed() ||\n text === null ||\n range === null\n ) {\n closeTypeahead()\n return\n }\n\n const match = triggerFn({ editor, query: text })\n onQueryChange(match ? match.matchingString : null)\n\n if (match !== null && !isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n return\n }\n }\n closeTypeahead()\n })\n }\n\n const removeUpdateListener = editor.registerUpdateListener(updateListener)\n\n return () => {\n removeUpdateListener()\n }\n }, [editor, triggerFn, onQueryChange, resolution, closeTypeahead, openTypeahead])\n\n return resolution === null || editor === null ? null : (\n <LexicalMenu\n anchorElementRef={anchorElementRef}\n close={closeTypeahead}\n editor={editor}\n groupsWithOptions={groupsWithOptions}\n menuRenderFn={menuRenderFn}\n onSelectOption={onSelectOption}\n resolution={resolution}\n shouldSplitNodeWithQuery\n />\n )\n}\n\nexport type { MenuRenderFn, MenuResolution, MenuTextMatch, TriggerFn }\n"],"names":["lexicalComposerContextImport","useLexicalComposerContext","lexicalUtilsImport","mergeRegister","lexicalImport","$getSelection","$isRangeSelection","$isTextNode","COMMAND_PRIORITY_LOW","createCommand","useCallback","useEffect","useState","React","LexicalMenu","useMenuAnchorRef","PUNCTUATION","getTextUpToAnchor","selection","anchor","type","anchorNode","getNode","isSimpleText","anchorOffset","offset","getTextContent","slice","tryToPositionRange","leadOffset","range","editorWindow","domSelection","getSelection","isCollapsed","startOffset","endOffset","setStart","setEnd","error","getQueryTextForSearch","editor","text","getEditorState","read","isSelectionOnEntityBoundary","prevSibling","getPreviousSibling","isTextEntity","startTransition","callback","getScrollParent","element","includeHidden","style","getComputedStyle","excludeStaticParent","position","overflowRegex","document","body","parent","parentElement","test","overflow","overflowY","overflowX","useDynamicPositioning","ENABLE_SLASH_MENU_COMMAND","LexicalTypeaheadMenuPlugin","anchorClassName","anchorElem","groupsWithOptions","menuRenderFn","onClose","onOpen","onQueryChange","onSelectOption","triggerFn","resolution","setResolution","anchorElementRef","closeTypeahead","openTypeahead","res","registerCommand","node","match","matchingString","replaceableString","_window","window","createRange","isRangePositioned","getRect","getBoundingClientRect","updateListener","query","removeUpdateListener","registerUpdateListener","close","shouldSplitNodeWithQuery"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.tsx"],"sourcesContent":["'use client'\nimport type {\n LexicalCommand,\n LexicalEditor,\n ParagraphNode,\n RangeSelection,\n TextNode,\n} from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $isTextNode,\n COMMAND_PRIORITY_LOW,\n createCommand,\n} from 'lexical'\nimport { useCallback, useEffect, useState } from 'react'\nimport * as React from 'react'\n\nimport type { MenuTextMatch, TriggerFn } from '../useMenuTriggerMatch.js'\nimport type { MenuRenderFn, MenuResolution } from './LexicalMenu.js'\nimport type { SlashMenuGroup, SlashMenuGroupInternal, SlashMenuItem } from './types.js'\n\nimport { LexicalMenu, useMenuAnchorRef } from './LexicalMenu.js'\n\nexport const PUNCTUATION = '\\\\.,\\\\+\\\\*\\\\?\\\\$\\\\@\\\\|#{}\\\\(\\\\)\\\\^\\\\-\\\\[\\\\]\\\\\\\\/!%\\'\"~=<>_:;'\n\nfunction getTextUpToAnchor(selection: RangeSelection): null | string {\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 anchorOffset = anchor.offset\n return anchorNode.getTextContent().slice(0, anchorOffset)\n}\n\nfunction tryToPositionRange(leadOffset: number, range: Range, editorWindow: Window): boolean {\n const domSelection = editorWindow.getSelection()\n if (domSelection === null || !domSelection.isCollapsed) {\n return false\n }\n const anchorNode = domSelection.anchorNode\n const startOffset = leadOffset\n const endOffset = domSelection.anchorOffset\n\n if (anchorNode == null || endOffset == null) {\n return false\n }\n\n try {\n range.setStart(anchorNode, startOffset)\n // if endOffset is 0, positioning the range for when you click the plus button to open the slash menu will fial\n range.setEnd(anchorNode, endOffset > 1 ? endOffset : 1)\n } catch (error) {\n return false\n }\n\n return true\n}\n\nfunction getQueryTextForSearch(editor: LexicalEditor): null | string {\n let text = null\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!$isRangeSelection(selection)) {\n return\n }\n text = getTextUpToAnchor(selection)\n })\n return text\n}\n\nfunction isSelectionOnEntityBoundary(editor: LexicalEditor, offset: number): boolean {\n if (offset !== 0) {\n return false\n }\n return editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor\n const anchorNode = anchor.getNode()\n const prevSibling = anchorNode.getPreviousSibling()\n return $isTextNode(prevSibling) && prevSibling.isTextEntity()\n }\n return false\n })\n}\n\nfunction startTransition(callback: () => void) {\n if (React.startTransition) {\n React.startTransition(callback)\n } else {\n callback()\n }\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\nexport { useDynamicPositioning } from './LexicalMenu.js'\n\nexport type TypeaheadMenuPluginProps = {\n anchorClassName?: string\n anchorElem: HTMLElement\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n onClose?: () => void\n onOpen?: (resolution: MenuResolution) => void\n onQueryChange: (matchingString: null | string) => void\n onSelectItem: (\n item: SlashMenuItem,\n textNodeContainingQuery: TextNode | null,\n closeMenu: () => void,\n matchingString: string,\n ) => void\n triggerFn: TriggerFn\n}\n\nexport const ENABLE_SLASH_MENU_COMMAND: LexicalCommand<{\n node: ParagraphNode\n}> = createCommand('ENABLE_SLASH_MENU_COMMAND')\n\nexport function LexicalTypeaheadMenuPlugin({\n anchorClassName,\n anchorElem,\n groups,\n menuRenderFn,\n onClose,\n onOpen,\n onQueryChange,\n onSelectItem,\n triggerFn,\n}: TypeaheadMenuPluginProps): JSX.Element | null {\n const [editor] = useLexicalComposerContext()\n const [resolution, setResolution] = useState<MenuResolution | null>(null)\n const anchorElementRef = useMenuAnchorRef(anchorElem, resolution, setResolution, anchorClassName)\n\n const closeTypeahead = useCallback(() => {\n setResolution(null)\n if (onClose != null && resolution !== null) {\n onClose()\n }\n }, [onClose, resolution])\n\n const openTypeahead = useCallback(\n (res: MenuResolution) => {\n setResolution(res)\n if (onOpen != null && resolution === null) {\n onOpen(res)\n }\n },\n [onOpen, resolution],\n )\n\n // This is mainly used for the AddBlockHandlePlugin, so that the slash menu can be opened from there\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n ENABLE_SLASH_MENU_COMMAND,\n ({ node }) => {\n editor.getEditorState().read(() => {\n const match: MenuTextMatch = {\n leadOffset: 0,\n matchingString: '',\n replaceableString: '',\n }\n if (match !== null && !isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n if (node !== null) {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n }\n\n return\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, openTypeahead])\n\n useEffect(() => {\n const updateListener = () => {\n editor.getEditorState().read(() => {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n const selection = $getSelection()\n const text = getQueryTextForSearch(editor)\n\n if (\n !$isRangeSelection(selection) ||\n !selection.isCollapsed() ||\n text === null ||\n range === null\n ) {\n closeTypeahead()\n return\n }\n\n const match = triggerFn({ editor, query: text })\n onQueryChange(match ? match.matchingString : null)\n\n if (match !== null && !isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n return\n }\n }\n closeTypeahead()\n })\n }\n\n const removeUpdateListener = editor.registerUpdateListener(updateListener)\n\n return () => {\n removeUpdateListener()\n }\n }, [editor, triggerFn, onQueryChange, resolution, closeTypeahead, openTypeahead])\n\n return resolution === null || editor === null ? null : (\n <LexicalMenu\n anchorElementRef={anchorElementRef}\n close={closeTypeahead}\n editor={editor}\n groups={groups}\n menuRenderFn={menuRenderFn}\n onSelectItem={onSelectItem}\n resolution={resolution}\n shouldSplitNodeWithQuery\n />\n )\n}\n\nexport type { MenuRenderFn, MenuResolution, MenuTextMatch, TriggerFn }\n"],"names":["useLexicalComposerContext","mergeRegister","$getSelection","$isRangeSelection","$isTextNode","COMMAND_PRIORITY_LOW","createCommand","useCallback","useEffect","useState","React","LexicalMenu","useMenuAnchorRef","PUNCTUATION","getTextUpToAnchor","selection","anchor","type","anchorNode","getNode","isSimpleText","anchorOffset","offset","getTextContent","slice","tryToPositionRange","leadOffset","range","editorWindow","domSelection","getSelection","isCollapsed","startOffset","endOffset","setStart","setEnd","error","getQueryTextForSearch","editor","text","getEditorState","read","isSelectionOnEntityBoundary","prevSibling","getPreviousSibling","isTextEntity","startTransition","callback","getScrollParent","element","includeHidden","style","getComputedStyle","excludeStaticParent","position","overflowRegex","document","body","parent","parentElement","test","overflow","overflowY","overflowX","useDynamicPositioning","ENABLE_SLASH_MENU_COMMAND","LexicalTypeaheadMenuPlugin","anchorClassName","anchorElem","groups","menuRenderFn","onClose","onOpen","onQueryChange","onSelectItem","triggerFn","resolution","setResolution","anchorElementRef","closeTypeahead","openTypeahead","res","registerCommand","node","match","matchingString","replaceableString","_window","window","createRange","isRangePositioned","getRect","getBoundingClientRect","updateListener","query","removeUpdateListener","registerUpdateListener","close","shouldSplitNodeWithQuery"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -2,38 +2,30 @@ import type { I18n } from '@payloadcms/translations';
2
2
  import type { LexicalEditor } from 'lexical';
3
3
  import type { MutableRefObject } from 'react';
4
4
  import type React from 'react';
5
- export declare class SlashMenuOption {
5
+ export type SlashMenuItem = {
6
6
  Icon: React.FC;
7
- displayName?: (({ i18n }: {
8
- i18n: I18n;
9
- }) => string) | string;
10
7
  key: string;
11
8
  keyboardShortcut?: string;
12
- keywords: Array<string>;
9
+ keywords?: Array<string>;
10
+ label?: (({ i18n }: {
11
+ i18n: I18n;
12
+ }) => string) | string;
13
13
  onSelect: ({ editor, queryString }: {
14
14
  editor: LexicalEditor;
15
15
  queryString: string;
16
16
  }) => void;
17
- ref?: MutableRefObject<HTMLElement | null>;
18
- constructor(key: string, options: {
19
- Icon: React.FC;
20
- displayName?: (({ i18n }: {
21
- i18n: I18n;
22
- }) => string) | string;
23
- keyboardShortcut?: string;
24
- keywords?: Array<string>;
25
- onSelect: ({ editor, queryString }: {
26
- editor: LexicalEditor;
27
- queryString: string;
28
- }) => void;
29
- });
30
- setRefElement(element: HTMLElement | null): void;
31
- }
32
- export declare class SlashMenuGroup {
33
- displayName?: (({ i18n }: {
17
+ };
18
+ export type SlashMenuGroup = {
19
+ items: Array<SlashMenuItem>;
20
+ key: string;
21
+ label?: (({ i18n }: {
34
22
  i18n: I18n;
35
23
  }) => string) | string;
36
- key: string;
37
- options: Array<SlashMenuOption>;
38
- }
24
+ };
25
+ export type SlashMenuItemInternal = SlashMenuItem & {
26
+ ref: MutableRefObject<HTMLButtonElement | null>;
27
+ };
28
+ export type SlashMenuGroupInternal = SlashMenuGroup & {
29
+ items: Array<SlashMenuItemInternal>;
30
+ };
39
31
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,qBAAa,eAAe;IAE1B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAA;IAEd,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;IAE7D,GAAG,EAAE,MAAM,CAAA;IAEX,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAEvB,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAE3F,GAAG,CAAC,EAAE,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;gBAGxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QACP,IAAI,EAAE,KAAK,CAAC,EAAE,CAAA;QACd,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YAAE,IAAI,EAAE,IAAI,CAAA;SAAE,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;QAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACxB,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;YAAE,MAAM,EAAE,aAAa,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAA;KAC5F;IAaH,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAG1C;AAED,qBAAa,cAAc;IAEzB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;IAC7D,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;CAChC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,MAAM,aAAa,GAAG;IAE1B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAA;IAGd,GAAG,EAAE,MAAM,CAAA;IAEX,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACxB,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;IAEvD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5F,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IAEX,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG;IAClD,GAAG,EAAE,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CAChD,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG;IACpD,KAAK,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;CACpC,CAAA"}
@@ -1,39 +1,3 @@
1
- export class SlashMenuOption {
2
- // Icon for display
3
- Icon;
4
- displayName;
5
- // Used for class names and, if displayName is not provided, for display.
6
- key;
7
- // TBD
8
- keyboardShortcut;
9
- // For extra searching.
10
- keywords;
11
- // What happens when you select this option?
12
- onSelect;
13
- ref;
14
- constructor(key, options){
15
- this.key = key;
16
- this.ref = {
17
- current: null
18
- };
19
- this.setRefElement = this.setRefElement.bind(this);
20
- this.displayName = options.displayName;
21
- this.keywords = options.keywords || [];
22
- this.Icon = options.Icon;
23
- this.keyboardShortcut = options.keyboardShortcut;
24
- this.onSelect = options.onSelect.bind(this);
25
- }
26
- setRefElement(element) {
27
- this.ref = {
28
- current: element
29
- };
30
- }
31
- }
32
- export class SlashMenuGroup {
33
- // Used for class names and, if displayName is not provided, for display.
34
- displayName;
35
- key;
36
- options;
37
- }
1
+ export { };
38
2
 
39
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { LexicalEditor } from 'lexical'\nimport type { MutableRefObject } from 'react'\nimport type React from 'react'\n\nexport class SlashMenuOption {\n // Icon for display\n Icon: React.FC\n\n displayName?: (({ i18n }: { i18n: I18n }) => string) | string\n // Used for class names and, if displayName is not provided, for display.\n key: string\n // TBD\n keyboardShortcut?: string\n // For extra searching.\n keywords: Array<string>\n // What happens when you select this option?\n onSelect: ({ editor, queryString }: { editor: LexicalEditor; queryString: string }) => void\n\n ref?: MutableRefObject<HTMLElement | null>\n\n constructor(\n key: string,\n options: {\n Icon: React.FC\n displayName?: (({ i18n }: { i18n: I18n }) => string) | string\n keyboardShortcut?: string\n keywords?: Array<string>\n onSelect: ({ editor, queryString }: { editor: LexicalEditor; queryString: string }) => void\n },\n ) {\n this.key = key\n this.ref = { current: null }\n this.setRefElement = this.setRefElement.bind(this)\n\n this.displayName = options.displayName\n this.keywords = options.keywords || []\n this.Icon = options.Icon\n this.keyboardShortcut = options.keyboardShortcut\n this.onSelect = options.onSelect.bind(this)\n }\n\n setRefElement(element: HTMLElement | null) {\n this.ref = { current: element }\n }\n}\n\nexport class SlashMenuGroup {\n // Used for class names and, if displayName is not provided, for display.\n displayName?: (({ i18n }: { i18n: I18n }) => string) | string\n key: string\n options: Array<SlashMenuOption>\n}\n"],"names":["SlashMenuOption","Icon","displayName","key","keyboardShortcut","keywords","onSelect","ref","constructor","options","current","setRefElement","bind","element","SlashMenuGroup"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAKA,OAAO,MAAMA;IACX,mBAAmB;IACnBC,KAAc;IAEdC,YAA6D;IAC7D,yEAAyE;IACzEC,IAAW;IACX,MAAM;IACNC,iBAAyB;IACzB,uBAAuB;IACvBC,SAAuB;IACvB,4CAA4C;IAC5CC,SAA2F;IAE3FC,IAA0C;IAE1CC,YACEL,GAAW,EACXM,OAMC,CACD;QACA,IAAI,CAACN,GAAG,GAAGA;QACX,IAAI,CAACI,GAAG,GAAG;YAAEG,SAAS;QAAK;QAC3B,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACC,IAAI,CAAC,IAAI;QAEjD,IAAI,CAACV,WAAW,GAAGO,QAAQP,WAAW;QACtC,IAAI,CAACG,QAAQ,GAAGI,QAAQJ,QAAQ,IAAI,EAAE;QACtC,IAAI,CAACJ,IAAI,GAAGQ,QAAQR,IAAI;QACxB,IAAI,CAACG,gBAAgB,GAAGK,QAAQL,gBAAgB;QAChD,IAAI,CAACE,QAAQ,GAAGG,QAAQH,QAAQ,CAACM,IAAI,CAAC,IAAI;IAC5C;IAEAD,cAAcE,OAA2B,EAAE;QACzC,IAAI,CAACN,GAAG,GAAG;YAAEG,SAASG;QAAQ;IAChC;AACF;AAEA,OAAO,MAAMC;IACX,yEAAyE;IACzEZ,YAA6D;IAC7DC,IAAW;IACXM,QAA+B;AACjC"}
1
+ {"version":3,"sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { LexicalEditor } from 'lexical'\nimport type { MutableRefObject } from 'react'\nimport type React from 'react'\n\nexport type SlashMenuItem = {\n // Icon for display\n Icon: React.FC\n\n // Used for class names and, if label is not provided, for display.\n key: string\n // TBD\n keyboardShortcut?: string\n // For extra searching.\n keywords?: Array<string>\n label?: (({ i18n }: { i18n: I18n }) => string) | string\n // What happens when you select this item?\n onSelect: ({ editor, queryString }: { editor: LexicalEditor; queryString: string }) => void\n}\n\nexport type SlashMenuGroup = {\n items: Array<SlashMenuItem>\n key: string\n // Used for class names and, if label is not provided, for display.\n label?: (({ i18n }: { i18n: I18n }) => string) | string\n}\n\nexport type SlashMenuItemInternal = SlashMenuItem & {\n ref: MutableRefObject<HTMLButtonElement | null>\n}\n\nexport type SlashMenuGroupInternal = SlashMenuGroup & {\n items: Array<SlashMenuItemInternal>\n}\n"],"names":[],"rangeMappings":"","mappings":"AA+BA,WAEC"}
@@ -1,6 +1,6 @@
1
- /// <reference types="react" resolution-mode="require"/>
1
+ import * as React from 'react';
2
2
  import './index.scss';
3
3
  export declare function SlashMenuPlugin({ anchorElem, }: {
4
4
  anchorElem?: HTMLElement;
5
- }): JSX.Element;
5
+ }): React.ReactElement;
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/field/lexical/plugins/SlashMenu/index.tsx"],"names":[],"mappings":";AAeA,OAAO,cAAc,CAAA;AAsDrB,wBAAgB,eAAe,CAAC,EAC9B,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,GAAG,CAAC,OAAO,CA8Jd"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/field/lexical/plugins/SlashMenu/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAY9B,OAAO,cAAc,CAAA;AAqDrB,wBAAgB,eAAe,CAAC,EAC9B,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,KAAK,CAAC,YAAY,CA8JrB"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
- import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js';
3
- const { useLexicalComposerContext } = lexicalComposerContextImport;
2
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
4
3
  import { useTranslation } from '@payloadcms/ui/providers/Translation';
5
4
  import { useCallback, useMemo, useState } from 'react';
6
5
  import * as React from 'react';
@@ -10,34 +9,34 @@ import { LexicalTypeaheadMenuPlugin } from './LexicalTypeaheadMenuPlugin/index.j
10
9
  import './index.scss';
11
10
  import { useMenuTriggerMatch } from './useMenuTriggerMatch.js';
12
11
  const baseClass = 'slash-menu-popup';
13
- function SlashMenuItem({ isSelected, onClick, onMouseEnter, option }) {
12
+ function SlashMenuItem({ isSelected, item, onClick, onMouseEnter }) {
14
13
  const { i18n } = useTranslation();
15
- let className = `${baseClass}__item ${baseClass}__item-${option.key}`;
14
+ let className = `${baseClass}__item ${baseClass}__item-${item.key}`;
16
15
  if (isSelected) {
17
16
  className += ` ${baseClass}__item--selected`;
18
17
  }
19
- let title = option.key;
20
- if (option.displayName) {
21
- title = typeof option.displayName === 'function' ? option.displayName({
18
+ let title = item.key;
19
+ if (item.label) {
20
+ title = typeof item.label === 'function' ? item.label({
22
21
  i18n
23
- }) : option.displayName;
22
+ }) : item.label;
24
23
  }
25
- // Crop title to max. 50 characters
24
+ // Crop title to max. 25 characters
26
25
  if (title.length > 25) {
27
26
  title = title.substring(0, 25) + '...';
28
27
  }
29
28
  return /*#__PURE__*/ React.createElement("button", {
30
29
  "aria-selected": isSelected,
31
30
  className: className,
32
- id: baseClass + '__item-' + option.key,
33
- key: option.key,
31
+ id: baseClass + '__item-' + item.key,
32
+ key: item.key,
34
33
  onClick: onClick,
35
34
  onMouseEnter: onMouseEnter,
36
- ref: option.setRefElement,
37
- role: "option",
35
+ ref: item.ref,
36
+ role: "item",
38
37
  tabIndex: -1,
39
38
  type: "button"
40
- }, option?.Icon && /*#__PURE__*/ React.createElement(option.Icon, null), /*#__PURE__*/ React.createElement("span", {
39
+ }, item?.Icon && /*#__PURE__*/ React.createElement(item.Icon, null), /*#__PURE__*/ React.createElement("span", {
41
40
  className: `${baseClass}__item-text`
42
41
  }, title));
43
42
  }
@@ -49,122 +48,128 @@ export function SlashMenuPlugin({ anchorElem = document.body }) {
49
48
  const checkForTriggerMatch = useMenuTriggerMatch('/', {
50
49
  minLength: 0
51
50
  });
52
- const getDynamicOptions = useCallback(()=>{
53
- let groupWithOptions = [];
54
- for (const dynamicOption of editorConfig.features.slashMenu.dynamicOptions){
55
- const dynamicGroupWithOptions = dynamicOption({
51
+ const getDynamicItems = useCallback(()=>{
52
+ let groupWithItems = [];
53
+ for (const dynamicItem of editorConfig.features.slashMenu.dynamicGroups){
54
+ const dynamicGroupWithItems = dynamicItem({
56
55
  editor,
57
56
  queryString
58
57
  });
59
- groupWithOptions = groupWithOptions.concat(dynamicGroupWithOptions);
58
+ groupWithItems = groupWithItems.concat(dynamicGroupWithItems);
60
59
  }
61
- return groupWithOptions;
60
+ return groupWithItems;
62
61
  }, [
63
62
  editor,
64
63
  queryString,
65
64
  editorConfig?.features
66
65
  ]);
67
66
  const groups = useMemo(()=>{
68
- let groupsWithOptions = [];
69
- for (const groupWithOption of editorConfig?.features.slashMenu.groupsWithOptions ?? []){
70
- groupsWithOptions.push(groupWithOption);
67
+ let groupsWithItems = [];
68
+ for (const groupWithItem of editorConfig?.features.slashMenu.groups ?? []){
69
+ groupsWithItems.push(groupWithItem);
71
70
  }
72
71
  if (queryString) {
73
72
  // Filter current groups first
74
- groupsWithOptions = groupsWithOptions.map((group)=>{
75
- const filteredOptions = group.options.filter((option)=>{
76
- let optionTitle = option.key;
77
- if (option.displayName) {
78
- optionTitle = typeof option.displayName === 'function' ? option.displayName({
73
+ groupsWithItems = groupsWithItems.map((group)=>{
74
+ const filteredItems = group.items.filter((item)=>{
75
+ let itemTitle = item.key;
76
+ if (item.label) {
77
+ itemTitle = typeof item.label === 'function' ? item.label({
79
78
  i18n
80
- }) : option.displayName;
79
+ }) : item.label;
81
80
  }
82
- return new RegExp(queryString, 'gi').exec(optionTitle) || option.keywords != null ? option.keywords.some((keyword)=>new RegExp(queryString, 'gi').exec(keyword)) : false;
81
+ if (new RegExp(queryString, 'gi').exec(itemTitle)) {
82
+ return true;
83
+ }
84
+ if (item.keywords != null) {
85
+ return item.keywords.some((keyword)=>new RegExp(queryString, 'gi').exec(keyword));
86
+ }
87
+ return false;
83
88
  });
84
- if (filteredOptions.length) {
89
+ if (filteredItems.length) {
85
90
  return {
86
91
  ...group,
87
- options: filteredOptions
92
+ items: filteredItems
88
93
  };
89
94
  }
90
95
  return null;
91
96
  });
92
- groupsWithOptions = groupsWithOptions.filter((group)=>group != null);
97
+ groupsWithItems = groupsWithItems.filter((group)=>group != null);
93
98
  // Now add dynamic groups
94
- const dynamicOptionGroups = getDynamicOptions();
95
- // merge dynamic options into groups
96
- for (const dynamicGroup of dynamicOptionGroups){
99
+ const dynamicItemGroups = getDynamicItems();
100
+ // merge dynamic items into groups
101
+ for (const dynamicGroup of dynamicItemGroups){
97
102
  // 1. find the group with the same name or create new one
98
- let group = groupsWithOptions.find((group)=>group.key === dynamicGroup.key);
103
+ let group = groupsWithItems.find((group)=>group.key === dynamicGroup.key);
99
104
  if (!group) {
100
105
  group = {
101
106
  ...dynamicGroup,
102
- options: []
107
+ items: []
103
108
  };
104
109
  } else {
105
- groupsWithOptions = groupsWithOptions.filter((group)=>group.key !== dynamicGroup.key);
110
+ groupsWithItems = groupsWithItems.filter((group)=>group.key !== dynamicGroup.key);
106
111
  }
107
- // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions
108
- if (group?.options?.length) {
109
- group.options = group.options.concat(group.options);
112
+ // 2. Add items to group items array and add to sanitized.slashMenu.groupsWithItems
113
+ if (group?.items?.length) {
114
+ group.items = group.items.concat(group.items);
110
115
  }
111
- groupsWithOptions.push(group);
116
+ groupsWithItems.push(group);
112
117
  }
113
118
  }
114
- return groupsWithOptions;
119
+ return groupsWithItems;
115
120
  }, [
116
- getDynamicOptions,
121
+ getDynamicItems,
117
122
  queryString,
118
123
  editorConfig?.features,
119
124
  i18n
120
125
  ]);
121
- const onSelectOption = useCallback((selectedOption, nodeToRemove, closeMenu, matchingString)=>{
122
- editor.update(()=>{
123
- if (nodeToRemove) {
126
+ const onSelectItem = useCallback((selectedItem, nodeToRemove, closeMenu, matchingString)=>{
127
+ if (nodeToRemove) {
128
+ editor.update(()=>{
124
129
  nodeToRemove.remove();
125
- }
126
- selectedOption.onSelect({
127
- editor,
128
- queryString: matchingString
129
130
  });
130
- closeMenu();
131
+ }
132
+ selectedItem.onSelect({
133
+ editor,
134
+ queryString: matchingString
131
135
  });
136
+ closeMenu();
132
137
  }, [
133
138
  editor
134
139
  ]);
135
140
  return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(LexicalTypeaheadMenuPlugin, {
136
141
  anchorElem: anchorElem,
137
- groupsWithOptions: groups,
138
- menuRenderFn: (anchorElementRef, { selectOptionAndCleanUp, selectedOptionKey, setSelectedOptionKey })=>anchorElementRef.current && groups.length ? /*#__PURE__*/ ReactDOM.createPortal(/*#__PURE__*/ React.createElement("div", {
142
+ groups: groups,
143
+ menuRenderFn: (anchorElementRef, { selectItemAndCleanUp, selectedItemKey, setSelectedItemKey })=>anchorElementRef.current && groups.length ? /*#__PURE__*/ ReactDOM.createPortal(/*#__PURE__*/ React.createElement("div", {
139
144
  className: baseClass
140
145
  }, groups.map((group)=>{
141
146
  let groupTitle = group.key;
142
- if (group.displayName) {
143
- groupTitle = typeof group.displayName === 'function' ? group.displayName({
147
+ if (group.label) {
148
+ groupTitle = typeof group.label === 'function' ? group.label({
144
149
  i18n
145
- }) : group.displayName;
150
+ }) : group.label;
146
151
  }
147
152
  return /*#__PURE__*/ React.createElement("div", {
148
153
  className: `${baseClass}__group ${baseClass}__group-${group.key}`,
149
154
  key: group.key
150
155
  }, /*#__PURE__*/ React.createElement("div", {
151
156
  className: `${baseClass}__group-title`
152
- }, groupTitle), group.options.map((option, oi)=>/*#__PURE__*/ React.createElement(SlashMenuItem, {
157
+ }, groupTitle), group.items.map((item, oi)=>/*#__PURE__*/ React.createElement(SlashMenuItem, {
153
158
  index: oi,
154
- isSelected: selectedOptionKey === option.key,
155
- key: option.key,
159
+ isSelected: selectedItemKey === item.key,
160
+ item: item,
161
+ key: item.key,
156
162
  onClick: ()=>{
157
- setSelectedOptionKey(option.key);
158
- selectOptionAndCleanUp(option);
163
+ setSelectedItemKey(item.key);
164
+ selectItemAndCleanUp(item);
159
165
  },
160
166
  onMouseEnter: ()=>{
161
- setSelectedOptionKey(option.key);
162
- },
163
- option: option
167
+ setSelectedItemKey(item.key);
168
+ }
164
169
  })));
165
170
  })), anchorElementRef.current) : null,
166
171
  onQueryChange: setQueryString,
167
- onSelectOption: onSelectOption,
172
+ onSelectItem: onSelectItem,
168
173
  triggerFn: checkForTriggerMatch
169
174
  }));
170
175
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/field/lexical/plugins/SlashMenu/index.tsx"],"sourcesContent":["'use client'\nimport type { TextNode } from 'lexical'\n\nimport lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'\nconst { useLexicalComposerContext } = lexicalComposerContextImport\n\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useCallback, useMemo, useState } from 'react'\nimport * as React from 'react'\nimport * as ReactDOM from 'react-dom'\n\nimport type { SlashMenuGroup, SlashMenuOption } from './LexicalTypeaheadMenuPlugin/types.js'\n\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\nimport { LexicalTypeaheadMenuPlugin } from './LexicalTypeaheadMenuPlugin/index.js'\nimport './index.scss'\nimport { useMenuTriggerMatch } from './useMenuTriggerMatch.js'\n\nconst baseClass = 'slash-menu-popup'\n\nfunction SlashMenuItem({\n isSelected,\n onClick,\n onMouseEnter,\n option,\n}: {\n index: number\n isSelected: boolean\n onClick: () => void\n onMouseEnter: () => void\n option: SlashMenuOption\n}) {\n const { i18n } = useTranslation()\n\n let className = `${baseClass}__item ${baseClass}__item-${option.key}`\n if (isSelected) {\n className += ` ${baseClass}__item--selected`\n }\n\n let title = option.key\n if (option.displayName) {\n title =\n typeof option.displayName === 'function' ? option.displayName({ i18n }) : option.displayName\n }\n // Crop title to max. 50 characters\n if (title.length > 25) {\n title = title.substring(0, 25) + '...'\n }\n\n return (\n <button\n aria-selected={isSelected}\n className={className}\n id={baseClass + '__item-' + option.key}\n key={option.key}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n ref={option.setRefElement}\n role=\"option\"\n tabIndex={-1}\n type=\"button\"\n >\n {option?.Icon && <option.Icon />}\n\n <span className={`${baseClass}__item-text`}>{title}</span>\n </button>\n )\n}\n\nexport function SlashMenuPlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): JSX.Element {\n const [editor] = useLexicalComposerContext()\n const [queryString, setQueryString] = useState<null | string>(null)\n const { editorConfig } = useEditorConfigContext()\n const { i18n } = useTranslation()\n\n const checkForTriggerMatch = useMenuTriggerMatch('/', {\n minLength: 0,\n })\n\n const getDynamicOptions = useCallback(() => {\n let groupWithOptions: Array<SlashMenuGroup> = []\n\n for (const dynamicOption of editorConfig.features.slashMenu.dynamicOptions) {\n const dynamicGroupWithOptions = dynamicOption({\n editor,\n queryString,\n })\n groupWithOptions = groupWithOptions.concat(dynamicGroupWithOptions)\n }\n\n return groupWithOptions\n }, [editor, queryString, editorConfig?.features])\n\n const groups: SlashMenuGroup[] = useMemo(() => {\n let groupsWithOptions: SlashMenuGroup[] = []\n for (const groupWithOption of editorConfig?.features.slashMenu.groupsWithOptions ?? []) {\n groupsWithOptions.push(groupWithOption)\n }\n\n if (queryString) {\n // Filter current groups first\n groupsWithOptions = groupsWithOptions.map((group) => {\n const filteredOptions = group.options.filter((option) => {\n let optionTitle = option.key\n if (option.displayName) {\n optionTitle =\n typeof option.displayName === 'function'\n ? option.displayName({ i18n })\n : option.displayName\n }\n\n return new RegExp(queryString, 'gi').exec(optionTitle) || option.keywords != null\n ? option.keywords.some((keyword) => new RegExp(queryString, 'gi').exec(keyword))\n : false\n })\n if (filteredOptions.length) {\n return {\n ...group,\n options: filteredOptions,\n }\n }\n return null\n })\n\n groupsWithOptions = groupsWithOptions.filter((group) => group != null)\n\n // Now add dynamic groups\n const dynamicOptionGroups = getDynamicOptions()\n\n // merge dynamic options into groups\n for (const dynamicGroup of dynamicOptionGroups) {\n // 1. find the group with the same name or create new one\n let group = groupsWithOptions.find((group) => group.key === dynamicGroup.key)\n if (!group) {\n group = {\n ...dynamicGroup,\n options: [],\n }\n } else {\n groupsWithOptions = groupsWithOptions.filter((group) => group.key !== dynamicGroup.key)\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.options?.length) {\n group.options = group.options.concat(group.options)\n }\n groupsWithOptions.push(group)\n }\n }\n\n return groupsWithOptions\n }, [getDynamicOptions, queryString, editorConfig?.features, i18n])\n\n const onSelectOption = useCallback(\n (\n selectedOption: SlashMenuOption,\n nodeToRemove: TextNode | null,\n closeMenu: () => void,\n matchingString: string,\n ) => {\n editor.update(() => {\n if (nodeToRemove) {\n nodeToRemove.remove()\n }\n selectedOption.onSelect({ editor, queryString: matchingString })\n closeMenu()\n })\n },\n [editor],\n )\n\n return (\n <React.Fragment>\n <LexicalTypeaheadMenuPlugin\n anchorElem={anchorElem}\n groupsWithOptions={groups}\n menuRenderFn={(\n anchorElementRef,\n { selectOptionAndCleanUp, selectedOptionKey, setSelectedOptionKey },\n ) =>\n anchorElementRef.current && groups.length\n ? ReactDOM.createPortal(\n <div className={baseClass}>\n {groups.map((group) => {\n let groupTitle = group.key\n if (group.displayName) {\n groupTitle =\n typeof group.displayName === 'function'\n ? group.displayName({ i18n })\n : group.displayName\n }\n\n return (\n <div\n className={`${baseClass}__group ${baseClass}__group-${group.key}`}\n key={group.key}\n >\n <div className={`${baseClass}__group-title`}>{groupTitle}</div>\n {group.options.map((option, oi: number) => (\n <SlashMenuItem\n index={oi}\n isSelected={selectedOptionKey === option.key}\n key={option.key}\n onClick={() => {\n setSelectedOptionKey(option.key)\n selectOptionAndCleanUp(option)\n }}\n onMouseEnter={() => {\n setSelectedOptionKey(option.key)\n }}\n option={option}\n />\n ))}\n </div>\n )\n })}\n </div>,\n anchorElementRef.current,\n )\n : null\n }\n onQueryChange={setQueryString}\n onSelectOption={onSelectOption}\n triggerFn={checkForTriggerMatch}\n />\n </React.Fragment>\n )\n}\n"],"names":["lexicalComposerContextImport","useLexicalComposerContext","useTranslation","useCallback","useMemo","useState","React","ReactDOM","useEditorConfigContext","LexicalTypeaheadMenuPlugin","useMenuTriggerMatch","baseClass","SlashMenuItem","isSelected","onClick","onMouseEnter","option","i18n","className","key","title","displayName","length","substring","button","aria-selected","id","ref","setRefElement","role","tabIndex","type","Icon","span","SlashMenuPlugin","anchorElem","document","body","editor","queryString","setQueryString","editorConfig","checkForTriggerMatch","minLength","getDynamicOptions","groupWithOptions","dynamicOption","features","slashMenu","dynamicOptions","dynamicGroupWithOptions","concat","groups","groupsWithOptions","groupWithOption","push","map","group","filteredOptions","options","filter","optionTitle","RegExp","exec","keywords","some","keyword","dynamicOptionGroups","dynamicGroup","find","onSelectOption","selectedOption","nodeToRemove","closeMenu","matchingString","update","remove","onSelect","Fragment","menuRenderFn","anchorElementRef","selectOptionAndCleanUp","selectedOptionKey","setSelectedOptionKey","current","createPortal","div","groupTitle","oi","index","onQueryChange","triggerFn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/field/lexical/plugins/SlashMenu/index.tsx"],"sourcesContent":["'use client'\nimport type { TextNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useCallback, useMemo, useState } from 'react'\nimport * as React from 'react'\nimport * as ReactDOM from 'react-dom'\n\nimport type {\n SlashMenuGroup,\n SlashMenuGroupInternal,\n SlashMenuItemInternal,\n SlashMenuItem as SlashMenuItemType,\n} from './LexicalTypeaheadMenuPlugin/types.js'\n\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\nimport { LexicalTypeaheadMenuPlugin } from './LexicalTypeaheadMenuPlugin/index.js'\nimport './index.scss'\nimport { useMenuTriggerMatch } from './useMenuTriggerMatch.js'\n\nconst baseClass = 'slash-menu-popup'\n\nfunction SlashMenuItem({\n isSelected,\n item,\n onClick,\n onMouseEnter,\n}: {\n index: number\n isSelected: boolean\n item: SlashMenuItemInternal\n onClick: () => void\n onMouseEnter: () => void\n}) {\n const { i18n } = useTranslation()\n\n let className = `${baseClass}__item ${baseClass}__item-${item.key}`\n if (isSelected) {\n className += ` ${baseClass}__item--selected`\n }\n\n let title = item.key\n if (item.label) {\n title = typeof item.label === 'function' ? item.label({ i18n }) : item.label\n }\n // Crop title to max. 25 characters\n if (title.length > 25) {\n title = title.substring(0, 25) + '...'\n }\n\n return (\n <button\n aria-selected={isSelected}\n className={className}\n id={baseClass + '__item-' + item.key}\n key={item.key}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n ref={item.ref}\n role=\"item\"\n tabIndex={-1}\n type=\"button\"\n >\n {item?.Icon && <item.Icon />}\n\n <span className={`${baseClass}__item-text`}>{title}</span>\n </button>\n )\n}\n\nexport function SlashMenuPlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): React.ReactElement {\n const [editor] = useLexicalComposerContext()\n const [queryString, setQueryString] = useState<null | string>(null)\n const { editorConfig } = useEditorConfigContext()\n const { i18n } = useTranslation()\n\n const checkForTriggerMatch = useMenuTriggerMatch('/', {\n minLength: 0,\n })\n\n const getDynamicItems = useCallback(() => {\n let groupWithItems: Array<SlashMenuGroup> = []\n\n for (const dynamicItem of editorConfig.features.slashMenu.dynamicGroups) {\n const dynamicGroupWithItems = dynamicItem({\n editor,\n queryString,\n })\n groupWithItems = groupWithItems.concat(dynamicGroupWithItems)\n }\n\n return groupWithItems\n }, [editor, queryString, editorConfig?.features])\n\n const groups: SlashMenuGroup[] = useMemo(() => {\n let groupsWithItems: SlashMenuGroup[] = []\n for (const groupWithItem of editorConfig?.features.slashMenu.groups ?? []) {\n groupsWithItems.push(groupWithItem)\n }\n\n if (queryString) {\n // Filter current groups first\n groupsWithItems = groupsWithItems.map((group) => {\n const filteredItems = group.items.filter((item) => {\n let itemTitle = item.key\n if (item.label) {\n itemTitle = typeof item.label === 'function' ? item.label({ i18n }) : item.label\n }\n\n if (new RegExp(queryString, 'gi').exec(itemTitle)) {\n return true\n }\n if (item.keywords != null) {\n return item.keywords.some((keyword) => new RegExp(queryString, 'gi').exec(keyword))\n }\n return false\n })\n if (filteredItems.length) {\n return {\n ...group,\n items: filteredItems,\n }\n }\n return null\n })\n\n groupsWithItems = groupsWithItems.filter((group) => group != null)\n\n // Now add dynamic groups\n const dynamicItemGroups = getDynamicItems()\n\n // merge dynamic items into groups\n for (const dynamicGroup of dynamicItemGroups) {\n // 1. find the group with the same name or create new one\n let group = groupsWithItems.find((group) => group.key === dynamicGroup.key)\n if (!group) {\n group = {\n ...dynamicGroup,\n items: [],\n }\n } else {\n groupsWithItems = groupsWithItems.filter((group) => group.key !== dynamicGroup.key)\n }\n\n // 2. Add items to group items array and add to sanitized.slashMenu.groupsWithItems\n if (group?.items?.length) {\n group.items = group.items.concat(group.items)\n }\n groupsWithItems.push(group)\n }\n }\n\n return groupsWithItems\n }, [getDynamicItems, queryString, editorConfig?.features, i18n])\n\n const onSelectItem = useCallback(\n (\n selectedItem: SlashMenuItemType,\n nodeToRemove: TextNode | null,\n closeMenu: () => void,\n matchingString: string,\n ) => {\n if (nodeToRemove) {\n editor.update(() => {\n nodeToRemove.remove()\n })\n }\n selectedItem.onSelect({ editor, queryString: matchingString })\n\n closeMenu()\n },\n [editor],\n )\n\n return (\n <React.Fragment>\n <LexicalTypeaheadMenuPlugin\n anchorElem={anchorElem}\n groups={groups as SlashMenuGroupInternal[]}\n menuRenderFn={(\n anchorElementRef,\n { selectItemAndCleanUp, selectedItemKey, setSelectedItemKey },\n ) =>\n anchorElementRef.current && groups.length\n ? ReactDOM.createPortal(\n <div className={baseClass}>\n {groups.map((group) => {\n let groupTitle = group.key\n if (group.label) {\n groupTitle =\n typeof group.label === 'function' ? group.label({ i18n }) : group.label\n }\n\n return (\n <div\n className={`${baseClass}__group ${baseClass}__group-${group.key}`}\n key={group.key}\n >\n <div className={`${baseClass}__group-title`}>{groupTitle}</div>\n {group.items.map((item, oi: number) => (\n <SlashMenuItem\n index={oi}\n isSelected={selectedItemKey === item.key}\n item={item as SlashMenuItemInternal}\n key={item.key}\n onClick={() => {\n setSelectedItemKey(item.key)\n selectItemAndCleanUp(item)\n }}\n onMouseEnter={() => {\n setSelectedItemKey(item.key)\n }}\n />\n ))}\n </div>\n )\n })}\n </div>,\n anchorElementRef.current,\n )\n : null\n }\n onQueryChange={setQueryString}\n onSelectItem={onSelectItem}\n triggerFn={checkForTriggerMatch}\n />\n </React.Fragment>\n )\n}\n"],"names":["useLexicalComposerContext","useTranslation","useCallback","useMemo","useState","React","ReactDOM","useEditorConfigContext","LexicalTypeaheadMenuPlugin","useMenuTriggerMatch","baseClass","SlashMenuItem","isSelected","item","onClick","onMouseEnter","i18n","className","key","title","label","length","substring","button","aria-selected","id","ref","role","tabIndex","type","Icon","span","SlashMenuPlugin","anchorElem","document","body","editor","queryString","setQueryString","editorConfig","checkForTriggerMatch","minLength","getDynamicItems","groupWithItems","dynamicItem","features","slashMenu","dynamicGroups","dynamicGroupWithItems","concat","groups","groupsWithItems","groupWithItem","push","map","group","filteredItems","items","filter","itemTitle","RegExp","exec","keywords","some","keyword","dynamicItemGroups","dynamicGroup","find","onSelectItem","selectedItem","nodeToRemove","closeMenu","matchingString","update","remove","onSelect","Fragment","menuRenderFn","anchorElementRef","selectItemAndCleanUp","selectedItemKey","setSelectedItemKey","current","createPortal","div","groupTitle","oi","index","onQueryChange","triggerFn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/AddBlockHandlePlugin/index.tsx"],"names":[],"mappings":";AAoBA,OAAO,cAAc,CAAA;AA4SrB,wBAAgB,oBAAoB,CAAC,EACnC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,GAAG,CAAC,OAAO,CAGd"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/AddBlockHandlePlugin/index.tsx"],"names":[],"mappings":";AAiBA,OAAO,cAAc,CAAA;AA4SrB,wBAAgB,oBAAoB,CAAC,EACnC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,GAAG,CAAC,OAAO,CAGd"}
@@ -1,8 +1,6 @@
1
1
  'use client';
2
- import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js';
3
- const { useLexicalComposerContext } = lexicalComposerContextImport;
4
- import lexicalImport from 'lexical';
5
- const { $createParagraphNode, $getNodeByKey } = lexicalImport;
2
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
3
+ import { $createParagraphNode, $getNodeByKey } from 'lexical';
6
4
  import * as React from 'react';
7
5
  import { useCallback, useEffect, useRef, useState } from 'react';
8
6
  import { createPortal } from 'react-dom';