@payloadcms/richtext-lexical 3.80.0-canary.3 → 3.80.0-internal-debug.daef79f

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 (1109) hide show
  1. package/dist/cell/rscEntry.js +74 -72
  2. package/dist/cell/rscEntry.js.map +1 -1
  3. package/dist/dependencyChecker.spec.js +8 -7
  4. package/dist/dependencyChecker.spec.js.map +1 -1
  5. package/dist/exports/client/index.d.ts +1 -0
  6. package/dist/exports/client/index.d.ts.map +1 -1
  7. package/dist/exports/client/index.js +86 -65
  8. package/dist/exports/client/index.js.map +1 -7
  9. package/dist/exports/client/internal-client.d.ts +3 -0
  10. package/dist/exports/client/internal-client.d.ts.map +1 -0
  11. package/dist/exports/client/internal-client.js +4 -0
  12. package/dist/exports/client/internal-client.js.map +1 -0
  13. package/dist/exports/cssEntry.js +1 -0
  14. package/dist/exports/cssEntry.js.map +1 -1
  15. package/dist/exports/html/index.js +1 -0
  16. package/dist/exports/html/index.js.map +1 -1
  17. package/dist/exports/html-async/index.js +1 -0
  18. package/dist/exports/html-async/index.js.map +1 -1
  19. package/dist/exports/plaintext/index.js +1 -0
  20. package/dist/exports/plaintext/index.js.map +1 -1
  21. package/dist/exports/react/index.d.ts +3 -1
  22. package/dist/exports/react/index.d.ts.map +1 -1
  23. package/dist/exports/react/index.js +3 -1
  24. package/dist/exports/react/index.js.map +1 -1
  25. package/dist/exports/server/ast/mdx.js +36 -34
  26. package/dist/exports/server/ast/mdx.js.map +1 -1
  27. package/dist/exports/server/migrate.js +1 -0
  28. package/dist/exports/server/migrate.js.map +1 -1
  29. package/dist/exports/server/rsc.js +1 -0
  30. package/dist/exports/server/rsc.js.map +1 -1
  31. package/dist/exports/shared.js +1 -0
  32. package/dist/exports/shared.js.map +1 -1
  33. package/dist/features/align/client/index.js +168 -195
  34. package/dist/features/align/client/index.js.map +1 -1
  35. package/dist/features/align/client/toolbarAlignGroup.js +9 -9
  36. package/dist/features/align/client/toolbarAlignGroup.js.map +1 -1
  37. package/dist/features/align/server/i18n.js +223 -222
  38. package/dist/features/align/server/i18n.js.map +1 -1
  39. package/dist/features/align/server/index.js +6 -5
  40. package/dist/features/align/server/index.js.map +1 -1
  41. package/dist/features/blockquote/client/index.js +65 -60
  42. package/dist/features/blockquote/client/index.js.map +1 -1
  43. package/dist/features/blockquote/markdownTransformer.js +33 -28
  44. package/dist/features/blockquote/markdownTransformer.js.map +1 -1
  45. package/dist/features/blockquote/server/i18n.js +112 -111
  46. package/dist/features/blockquote/server/i18n.js.map +1 -1
  47. package/dist/features/blockquote/server/index.js +47 -48
  48. package/dist/features/blockquote/server/index.js.map +1 -1
  49. package/dist/features/blocks/client/component/BlockContent.d.ts +7 -4
  50. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  51. package/dist/features/blocks/client/component/BlockContent.js +97 -68
  52. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  53. package/dist/features/blocks/client/component/components/BlockCollapsible.js +13 -14
  54. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
  55. package/dist/features/blocks/client/component/components/BlockEditButton.js +9 -17
  56. package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -1
  57. package/dist/features/blocks/client/component/components/BlockRemoveButton.js +9 -17
  58. package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -1
  59. package/dist/features/blocks/client/component/index.d.ts +20 -4
  60. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  61. package/dist/features/blocks/client/component/index.js +622 -418
  62. package/dist/features/blocks/client/component/index.js.map +1 -1
  63. package/dist/features/blocks/client/component/index.scss +188 -0
  64. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +8 -11
  65. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +1 -1
  66. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +11 -23
  67. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -1
  68. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +9 -17
  69. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -1
  70. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +9 -17
  71. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -1
  72. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +9 -17
  73. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -1
  74. package/dist/features/blocks/client/componentInline/index.d.ts +8 -14
  75. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  76. package/dist/features/blocks/client/componentInline/index.js +509 -346
  77. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  78. package/dist/features/blocks/client/componentInline/index.scss +100 -0
  79. package/dist/features/blocks/client/getBlockImageComponent.js +34 -34
  80. package/dist/features/blocks/client/getBlockImageComponent.js.map +1 -1
  81. package/dist/features/blocks/client/index.js +141 -146
  82. package/dist/features/blocks/client/index.js.map +1 -1
  83. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +18 -18
  84. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
  85. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +14 -15
  86. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
  87. package/dist/features/blocks/client/markdown/markdownTransformer.js +328 -330
  88. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  89. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +4 -2
  90. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  91. package/dist/features/blocks/client/nodes/BlocksNode.js +46 -40
  92. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  93. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +4 -2
  94. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  95. package/dist/features/blocks/client/nodes/InlineBlocksNode.js +39 -33
  96. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  97. package/dist/features/blocks/client/plugin/commands.js +1 -1
  98. package/dist/features/blocks/client/plugin/commands.js.map +1 -1
  99. package/dist/features/blocks/client/plugin/index.js +59 -87
  100. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  101. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +158 -101
  102. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  103. package/dist/features/blocks/premade/CodeBlock/Component/Code.js +119 -93
  104. package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
  105. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +19 -11
  106. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
  107. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.scss +6 -0
  108. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +32 -20
  109. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
  110. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.scss +29 -0
  111. package/dist/features/blocks/premade/CodeBlock/Component/defaultLanguages.js +84 -83
  112. package/dist/features/blocks/premade/CodeBlock/Component/defaultLanguages.js.map +1 -1
  113. package/dist/features/blocks/premade/CodeBlock/Component/index.scss +97 -0
  114. package/dist/features/blocks/premade/CodeBlock/converter.js +36 -40
  115. package/dist/features/blocks/premade/CodeBlock/converter.js.map +1 -1
  116. package/dist/features/blocks/premade/CodeBlock/converterClient.js +1 -1
  117. package/dist/features/blocks/premade/CodeBlock/converterClient.js.map +1 -1
  118. package/dist/features/blocks/premade/CodeBlock/index.js +49 -49
  119. package/dist/features/blocks/premade/CodeBlock/index.js.map +1 -1
  120. package/dist/features/blocks/server/graphQLPopulationPromise.js +29 -44
  121. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  122. package/dist/features/blocks/server/i18n.js +334 -333
  123. package/dist/features/blocks/server/i18n.js.map +1 -1
  124. package/dist/features/blocks/server/index.js +238 -218
  125. package/dist/features/blocks/server/index.js.map +1 -1
  126. package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.js +123 -122
  127. package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.js.map +1 -1
  128. package/dist/features/blocks/server/markdown/markdownTransformer.js +347 -349
  129. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  130. package/dist/features/blocks/server/nodes/BlocksNode.js +86 -90
  131. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  132. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +84 -87
  133. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  134. package/dist/features/blocks/server/validate.js +42 -55
  135. package/dist/features/blocks/server/validate.js.map +1 -1
  136. package/dist/features/converters/htmlToLexical/index.js +21 -24
  137. package/dist/features/converters/htmlToLexical/index.js.map +1 -1
  138. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js +7 -10
  139. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
  140. package/dist/features/converters/lexicalToHtml/async/converters/heading.js +7 -10
  141. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  142. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js +2 -1
  143. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
  144. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js +2 -1
  145. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
  146. package/dist/features/converters/lexicalToHtml/async/converters/link.js +28 -37
  147. package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
  148. package/dist/features/converters/lexicalToHtml/async/converters/list.js +18 -26
  149. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  150. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js +9 -12
  151. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
  152. package/dist/features/converters/lexicalToHtml/async/converters/tab.js +2 -1
  153. package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
  154. package/dist/features/converters/lexicalToHtml/async/converters/table.js +27 -38
  155. package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
  156. package/dist/features/converters/lexicalToHtml/async/converters/text.js +25 -26
  157. package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
  158. package/dist/features/converters/lexicalToHtml/async/converters/upload.js +41 -44
  159. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  160. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js +12 -11
  161. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
  162. package/dist/features/converters/lexicalToHtml/async/field/index.js +56 -56
  163. package/dist/features/converters/lexicalToHtml/async/field/index.js.map +1 -1
  164. package/dist/features/converters/lexicalToHtml/async/index.js +87 -97
  165. package/dist/features/converters/lexicalToHtml/async/index.js.map +1 -1
  166. package/dist/features/converters/lexicalToHtml/async/types.js +4 -1
  167. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  168. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +57 -62
  169. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  170. package/dist/features/converters/lexicalToHtml/shared/types.js +2 -1
  171. package/dist/features/converters/lexicalToHtml/shared/types.js.map +1 -1
  172. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js +7 -10
  173. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
  174. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js +7 -10
  175. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  176. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js +2 -1
  177. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
  178. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js +2 -1
  179. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
  180. package/dist/features/converters/lexicalToHtml/sync/converters/link.js +27 -35
  181. package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
  182. package/dist/features/converters/lexicalToHtml/sync/converters/list.js +18 -26
  183. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  184. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js +9 -12
  185. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
  186. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js +2 -1
  187. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
  188. package/dist/features/converters/lexicalToHtml/sync/converters/table.js +27 -38
  189. package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
  190. package/dist/features/converters/lexicalToHtml/sync/converters/text.js +25 -26
  191. package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
  192. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js +35 -37
  193. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  194. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js +12 -11
  195. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
  196. package/dist/features/converters/lexicalToHtml/sync/index.js +84 -92
  197. package/dist/features/converters/lexicalToHtml/sync/index.js.map +1 -1
  198. package/dist/features/converters/lexicalToHtml/sync/types.js +4 -1
  199. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  200. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js +7 -4
  201. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js.map +1 -1
  202. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js +29 -34
  203. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js.map +1 -1
  204. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js +7 -6
  205. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js.map +1 -1
  206. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js +29 -28
  207. package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js.map +1 -1
  208. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js +7 -2
  209. package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js.map +1 -1
  210. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js +84 -84
  211. package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js.map +1 -1
  212. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js +6 -1
  213. package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js.map +1 -1
  214. package/dist/features/converters/lexicalToHtml_deprecated/field/index.js +107 -107
  215. package/dist/features/converters/lexicalToHtml_deprecated/field/index.js.map +1 -1
  216. package/dist/features/converters/lexicalToHtml_deprecated/index.js +4 -4
  217. package/dist/features/converters/lexicalToHtml_deprecated/index.js.map +1 -1
  218. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +6 -20
  219. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  220. package/dist/features/converters/lexicalToJSX/Component/index.js +42 -37
  221. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  222. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js +14 -12
  223. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  224. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +15 -13
  225. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  226. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js +7 -2
  227. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  228. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js +7 -2
  229. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  230. package/dist/features/converters/lexicalToJSX/converter/converters/link.js +49 -47
  231. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  232. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +78 -56
  233. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  234. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js +26 -16
  235. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  236. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js +2 -1
  237. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
  238. package/dist/features/converters/lexicalToJSX/converter/converters/table.js +73 -59
  239. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  240. package/dist/features/converters/lexicalToJSX/converter/converters/text.js +74 -47
  241. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  242. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +77 -61
  243. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  244. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js +12 -11
  245. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
  246. package/dist/features/converters/lexicalToJSX/converter/index.d.ts +17 -2
  247. package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
  248. package/dist/features/converters/lexicalToJSX/converter/index.js +253 -125
  249. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  250. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +14 -10
  251. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  252. package/dist/features/converters/lexicalToJSX/converter/types.js +4 -1
  253. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  254. package/dist/features/converters/lexicalToMarkdown/index.js +17 -19
  255. package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
  256. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +223 -146
  257. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +1 -1
  258. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js +11 -13
  259. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
  260. package/dist/features/converters/lexicalToPlaintext/shared/types.js +2 -1
  261. package/dist/features/converters/lexicalToPlaintext/shared/types.js.map +1 -1
  262. package/dist/features/converters/lexicalToPlaintext/sync/index.js +83 -82
  263. package/dist/features/converters/lexicalToPlaintext/sync/index.js.map +1 -1
  264. package/dist/features/converters/lexicalToPlaintext/sync/types.js +3 -1
  265. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  266. package/dist/features/converters/markdownToLexical/index.js +14 -16
  267. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  268. package/dist/features/converters/utilities/payloadPopulateFn.js +37 -38
  269. package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
  270. package/dist/features/converters/utilities/restPopulateFn.js +24 -30
  271. package/dist/features/converters/utilities/restPopulateFn.js.map +1 -1
  272. package/dist/features/debug/jsxConverter/client/index.js +7 -5
  273. package/dist/features/debug/jsxConverter/client/index.js.map +1 -1
  274. package/dist/features/debug/jsxConverter/client/plugin/index.js +27 -47
  275. package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
  276. package/dist/features/debug/jsxConverter/client/plugin/style.scss +12 -0
  277. package/dist/features/debug/jsxConverter/server/index.js +5 -4
  278. package/dist/features/debug/jsxConverter/server/index.js.map +1 -1
  279. package/dist/features/debug/testRecorder/client/index.js +7 -5
  280. package/dist/features/debug/testRecorder/client/index.js.map +1 -1
  281. package/dist/features/debug/testRecorder/client/plugin/index.js +456 -365
  282. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  283. package/dist/features/debug/testRecorder/client/plugin/index.scss +53 -0
  284. package/dist/features/debug/testRecorder/server/index.js +5 -4
  285. package/dist/features/debug/testRecorder/server/index.js.map +1 -1
  286. package/dist/features/debug/treeView/client/index.js +7 -5
  287. package/dist/features/debug/treeView/client/index.js.map +1 -1
  288. package/dist/features/debug/treeView/client/plugin/index.js +18 -23
  289. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
  290. package/dist/features/debug/treeView/client/plugin/index.scss +80 -0
  291. package/dist/features/debug/treeView/server/index.js +5 -4
  292. package/dist/features/debug/treeView/server/index.js.map +1 -1
  293. package/dist/features/experimental_table/client/index.js +61 -42
  294. package/dist/features/experimental_table/client/index.js.map +1 -1
  295. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +752 -517
  296. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  297. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.scss +87 -0
  298. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +350 -316
  299. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  300. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.scss +11 -0
  301. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +215 -225
  302. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  303. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +104 -133
  304. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  305. package/dist/features/experimental_table/client/plugins/TablePlugin/index.scss +233 -0
  306. package/dist/features/experimental_table/client/utils/debounce.js +89 -107
  307. package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
  308. package/dist/features/experimental_table/client/utils/useDebounce.js +21 -39
  309. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
  310. package/dist/features/experimental_table/markdownTransformer.js +123 -118
  311. package/dist/features/experimental_table/markdownTransformer.js.map +1 -1
  312. package/dist/features/experimental_table/server/index.js +125 -143
  313. package/dist/features/experimental_table/server/index.js.map +1 -1
  314. package/dist/features/format/bold/feature.client.js +38 -35
  315. package/dist/features/format/bold/feature.client.js.map +1 -1
  316. package/dist/features/format/bold/feature.server.js +18 -14
  317. package/dist/features/format/bold/feature.server.js.map +1 -1
  318. package/dist/features/format/bold/markdownTransformers.js +25 -14
  319. package/dist/features/format/bold/markdownTransformers.js.map +1 -1
  320. package/dist/features/format/inlineCode/feature.client.js +31 -27
  321. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  322. package/dist/features/format/inlineCode/feature.server.js +8 -5
  323. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  324. package/dist/features/format/inlineCode/markdownTransformers.js +6 -3
  325. package/dist/features/format/inlineCode/markdownTransformers.js.map +1 -1
  326. package/dist/features/format/italic/feature.client.js +32 -27
  327. package/dist/features/format/italic/feature.client.js.map +1 -1
  328. package/dist/features/format/italic/feature.server.js +9 -5
  329. package/dist/features/format/italic/feature.server.js.map +1 -1
  330. package/dist/features/format/italic/markdownTransformers.js +12 -7
  331. package/dist/features/format/italic/markdownTransformers.js.map +1 -1
  332. package/dist/features/format/shared/toolbarFormatGroup.js +8 -8
  333. package/dist/features/format/shared/toolbarFormatGroup.js.map +1 -1
  334. package/dist/features/format/strikethrough/feature.client.js +31 -27
  335. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  336. package/dist/features/format/strikethrough/feature.server.js +8 -5
  337. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  338. package/dist/features/format/strikethrough/markdownTransformers.js +6 -3
  339. package/dist/features/format/strikethrough/markdownTransformers.js.map +1 -1
  340. package/dist/features/format/subscript/feature.client.js +28 -26
  341. package/dist/features/format/subscript/feature.client.js.map +1 -1
  342. package/dist/features/format/subscript/feature.server.js +5 -4
  343. package/dist/features/format/subscript/feature.server.js.map +1 -1
  344. package/dist/features/format/superscript/feature.client.js +28 -26
  345. package/dist/features/format/superscript/feature.client.js.map +1 -1
  346. package/dist/features/format/superscript/feature.server.js +5 -4
  347. package/dist/features/format/superscript/feature.server.js.map +1 -1
  348. package/dist/features/format/underline/feature.client.js +28 -26
  349. package/dist/features/format/underline/feature.client.js.map +1 -1
  350. package/dist/features/format/underline/feature.server.js +5 -4
  351. package/dist/features/format/underline/feature.server.js.map +1 -1
  352. package/dist/features/heading/client/index.js +121 -142
  353. package/dist/features/heading/client/index.js.map +1 -1
  354. package/dist/features/heading/markdownTransformer.js +25 -22
  355. package/dist/features/heading/markdownTransformer.js.map +1 -1
  356. package/dist/features/heading/server/i18n.js +112 -111
  357. package/dist/features/heading/server/i18n.js.map +1 -1
  358. package/dist/features/heading/server/index.js +62 -60
  359. package/dist/features/heading/server/index.js.map +1 -1
  360. package/dist/features/horizontalRule/client/index.js +57 -48
  361. package/dist/features/horizontalRule/client/index.js.map +1 -1
  362. package/dist/features/horizontalRule/client/markdownTransformer.js +18 -15
  363. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  364. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +25 -27
  365. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  366. package/dist/features/horizontalRule/client/plugin/index.js +21 -32
  367. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  368. package/dist/features/horizontalRule/client/plugin/index.scss +23 -0
  369. package/dist/features/horizontalRule/server/i18n.js +112 -111
  370. package/dist/features/horizontalRule/server/i18n.js.map +1 -1
  371. package/dist/features/horizontalRule/server/index.js +24 -17
  372. package/dist/features/horizontalRule/server/index.js.map +1 -1
  373. package/dist/features/horizontalRule/server/markdownTransformer.js +18 -15
  374. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  375. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +69 -72
  376. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  377. package/dist/features/indent/client/IndentPlugin.js +78 -78
  378. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  379. package/dist/features/indent/client/index.js +68 -77
  380. package/dist/features/indent/client/index.js.map +1 -1
  381. package/dist/features/indent/client/toolbarIndentGroup.js +8 -8
  382. package/dist/features/indent/client/toolbarIndentGroup.js.map +1 -1
  383. package/dist/features/indent/server/i18n.js +149 -148
  384. package/dist/features/indent/server/i18n.js.map +1 -1
  385. package/dist/features/indent/server/index.js +18 -11
  386. package/dist/features/indent/server/index.js.map +1 -1
  387. package/dist/features/link/client/index.js +83 -80
  388. package/dist/features/link/client/index.js.map +1 -1
  389. package/dist/features/link/client/plugins/autoLink/index.js +280 -273
  390. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  391. package/dist/features/link/client/plugins/clickableLink/index.js +8 -4
  392. package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
  393. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -1
  394. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -1
  395. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +395 -308
  396. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  397. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +12 -9
  398. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  399. package/dist/features/link/client/plugins/floatingLinkEditor/index.scss +95 -0
  400. package/dist/features/link/client/plugins/floatingLinkEditor/types.js +6 -1
  401. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
  402. package/dist/features/link/client/plugins/link/index.js +53 -68
  403. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  404. package/dist/features/link/markdownTransformer.js +34 -33
  405. package/dist/features/link/markdownTransformer.js.map +1 -1
  406. package/dist/features/link/nodes/AutoLinkNode.js +56 -58
  407. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  408. package/dist/features/link/nodes/LinkNode.js +286 -288
  409. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  410. package/dist/features/link/nodes/types.js +6 -1
  411. package/dist/features/link/nodes/types.js.map +1 -1
  412. package/dist/features/link/server/baseFields.js +115 -140
  413. package/dist/features/link/server/baseFields.js.map +1 -1
  414. package/dist/features/link/server/graphQLPopulationPromise.js +29 -45
  415. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
  416. package/dist/features/link/server/i18n.js +149 -148
  417. package/dist/features/link/server/i18n.js.map +1 -1
  418. package/dist/features/link/server/index.js +156 -143
  419. package/dist/features/link/server/index.js.map +1 -1
  420. package/dist/features/link/server/transformExtraFields.js +15 -15
  421. package/dist/features/link/server/transformExtraFields.js.map +1 -1
  422. package/dist/features/link/server/validate.js +35 -46
  423. package/dist/features/link/server/validate.js.map +1 -1
  424. package/dist/features/lists/checklist/client/index.js +86 -78
  425. package/dist/features/lists/checklist/client/index.js.map +1 -1
  426. package/dist/features/lists/checklist/client/plugin/index.js +8 -4
  427. package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
  428. package/dist/features/lists/checklist/markdownTransformers.js +11 -7
  429. package/dist/features/lists/checklist/markdownTransformers.js.map +1 -1
  430. package/dist/features/lists/checklist/server/i18n.js +112 -111
  431. package/dist/features/lists/checklist/server/i18n.js.map +1 -1
  432. package/dist/features/lists/checklist/server/index.js +26 -21
  433. package/dist/features/lists/checklist/server/index.js.map +1 -1
  434. package/dist/features/lists/htmlConverter.js +47 -62
  435. package/dist/features/lists/htmlConverter.js.map +1 -1
  436. package/dist/features/lists/orderedList/client/index.js +78 -72
  437. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  438. package/dist/features/lists/orderedList/markdownTransformer.js +11 -7
  439. package/dist/features/lists/orderedList/markdownTransformer.js.map +1 -1
  440. package/dist/features/lists/orderedList/server/i18n.js +112 -111
  441. package/dist/features/lists/orderedList/server/i18n.js.map +1 -1
  442. package/dist/features/lists/orderedList/server/index.js +26 -21
  443. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  444. package/dist/features/lists/plugin/index.js +8 -4
  445. package/dist/features/lists/plugin/index.js.map +1 -1
  446. package/dist/features/lists/shared/markdown.js +49 -48
  447. package/dist/features/lists/shared/markdown.js.map +1 -1
  448. package/dist/features/lists/shared/shouldRegisterListBaseNodes.js +10 -9
  449. package/dist/features/lists/shared/shouldRegisterListBaseNodes.js.map +1 -1
  450. package/dist/features/lists/shared/slashMenuListGroup.js +8 -9
  451. package/dist/features/lists/shared/slashMenuListGroup.js.map +1 -1
  452. package/dist/features/lists/unorderedList/client/index.js +76 -68
  453. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  454. package/dist/features/lists/unorderedList/markdownTransformer.js +11 -7
  455. package/dist/features/lists/unorderedList/markdownTransformer.js.map +1 -1
  456. package/dist/features/lists/unorderedList/server/i18n.js +112 -111
  457. package/dist/features/lists/unorderedList/server/i18n.js.map +1 -1
  458. package/dist/features/lists/unorderedList/server/index.js +24 -17
  459. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  460. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +17 -18
  461. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -1
  462. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +29 -30
  463. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -1
  464. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +20 -21
  465. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -1
  466. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +19 -21
  467. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -1
  468. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +17 -18
  469. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -1
  470. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +23 -24
  471. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -1
  472. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +21 -20
  473. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -1
  474. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +10 -1
  475. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -1
  476. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +64 -70
  477. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
  478. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js +2 -1
  479. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -1
  480. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +7 -5
  481. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -1
  482. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +43 -42
  483. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -1
  484. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +21 -11
  485. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  486. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +65 -66
  487. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  488. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +16 -0
  489. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +19 -19
  490. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
  491. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +26 -20
  492. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
  493. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +30 -28
  494. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -1
  495. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +27 -26
  496. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
  497. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +21 -22
  498. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
  499. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +22 -22
  500. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
  501. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +13 -12
  502. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -1
  503. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +23 -23
  504. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
  505. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +22 -22
  506. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
  507. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +16 -15
  508. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -1
  509. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +13 -1
  510. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -1
  511. package/dist/features/migrations/slateToLexical/converter/index.js +110 -117
  512. package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
  513. package/dist/features/migrations/slateToLexical/converter/types.js +2 -1
  514. package/dist/features/migrations/slateToLexical/converter/types.js.map +1 -1
  515. package/dist/features/migrations/slateToLexical/feature.client.js +7 -5
  516. package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
  517. package/dist/features/migrations/slateToLexical/feature.server.js +54 -45
  518. package/dist/features/migrations/slateToLexical/feature.server.js.map +1 -1
  519. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +21 -11
  520. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
  521. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +65 -66
  522. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  523. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +16 -0
  524. package/dist/features/paragraph/client/index.js +61 -58
  525. package/dist/features/paragraph/client/index.js.map +1 -1
  526. package/dist/features/paragraph/server/i18n.js +149 -148
  527. package/dist/features/paragraph/server/i18n.js.map +1 -1
  528. package/dist/features/paragraph/server/index.js +7 -6
  529. package/dist/features/paragraph/server/index.js.map +1 -1
  530. package/dist/features/relationship/client/components/RelationshipComponent.js +147 -118
  531. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  532. package/dist/features/relationship/client/components/index.scss +95 -0
  533. package/dist/features/relationship/client/drawer/commands.js +1 -0
  534. package/dist/features/relationship/client/drawer/commands.js.map +1 -1
  535. package/dist/features/relationship/client/drawer/index.js +81 -132
  536. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  537. package/dist/features/relationship/client/index.js +59 -53
  538. package/dist/features/relationship/client/index.js.map +1 -1
  539. package/dist/features/relationship/client/nodes/RelationshipNode.js +64 -60
  540. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  541. package/dist/features/relationship/client/plugins/index.js +39 -69
  542. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  543. package/dist/features/relationship/client/utils/useEnabledRelationships.js +48 -58
  544. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  545. package/dist/features/relationship/server/graphQLPopulationPromise.js +26 -34
  546. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  547. package/dist/features/relationship/server/i18n.js +112 -111
  548. package/dist/features/relationship/server/i18n.js.map +1 -1
  549. package/dist/features/relationship/server/index.js +64 -59
  550. package/dist/features/relationship/server/index.js.map +1 -1
  551. package/dist/features/relationship/server/nodes/RelationshipNode.js +92 -95
  552. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  553. package/dist/features/shared/slashMenu/basicGroup.js +8 -9
  554. package/dist/features/shared/slashMenu/basicGroup.js.map +1 -1
  555. package/dist/features/shared/toolbar/addDropdownGroup.js +9 -8
  556. package/dist/features/shared/toolbar/addDropdownGroup.js.map +1 -1
  557. package/dist/features/shared/toolbar/featureButtonsGroup.js +8 -7
  558. package/dist/features/shared/toolbar/featureButtonsGroup.js.map +1 -1
  559. package/dist/features/shared/toolbar/textDropdownGroup.js +9 -8
  560. package/dist/features/shared/toolbar/textDropdownGroup.js.map +1 -1
  561. package/dist/features/textState/defaultColors.js +370 -370
  562. package/dist/features/textState/defaultColors.js.map +1 -1
  563. package/dist/features/textState/feature.client.js +77 -64
  564. package/dist/features/textState/feature.client.js.map +1 -1
  565. package/dist/features/textState/feature.server.js +46 -14
  566. package/dist/features/textState/feature.server.js.map +1 -1
  567. package/dist/features/textState/i18n.js +112 -111
  568. package/dist/features/textState/i18n.js.map +1 -1
  569. package/dist/features/textState/textState.js +64 -62
  570. package/dist/features/textState/textState.js.map +1 -1
  571. package/dist/features/toolbars/fixed/client/Toolbar/index.js +251 -241
  572. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  573. package/dist/features/toolbars/fixed/client/Toolbar/index.scss +113 -0
  574. package/dist/features/toolbars/fixed/client/index.js +7 -5
  575. package/dist/features/toolbars/fixed/client/index.js.map +1 -1
  576. package/dist/features/toolbars/fixed/server/index.js +32 -16
  577. package/dist/features/toolbars/fixed/server/index.js.map +1 -1
  578. package/dist/features/toolbars/inline/client/Toolbar/index.js +326 -310
  579. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  580. package/dist/features/toolbars/inline/client/Toolbar/index.scss +58 -0
  581. package/dist/features/toolbars/inline/client/index.js +7 -5
  582. package/dist/features/toolbars/inline/client/index.js.map +1 -1
  583. package/dist/features/toolbars/inline/server/index.js +5 -4
  584. package/dist/features/toolbars/inline/server/index.js.map +1 -1
  585. package/dist/features/toolbars/shared/ToolbarButton/index.js +53 -76
  586. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  587. package/dist/features/toolbars/shared/ToolbarButton/index.scss +46 -0
  588. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +264 -208
  589. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  590. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +94 -111
  591. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  592. package/dist/features/toolbars/shared/ToolbarDropdown/index.scss +129 -0
  593. package/dist/features/toolbars/shared/useToolbarStates.js +112 -108
  594. package/dist/features/toolbars/shared/useToolbarStates.js.map +1 -1
  595. package/dist/features/toolbars/types.js +29 -1
  596. package/dist/features/toolbars/types.js.map +1 -1
  597. package/dist/features/typeUtilities.js +3 -2
  598. package/dist/features/typeUtilities.js.map +1 -1
  599. package/dist/features/typesClient.js +61 -1
  600. package/dist/features/typesClient.js.map +1 -1
  601. package/dist/features/typesServer.js +90 -1
  602. package/dist/features/typesServer.js.map +1 -1
  603. package/dist/features/upload/client/component/index.js +242 -189
  604. package/dist/features/upload/client/component/index.js.map +1 -1
  605. package/dist/features/upload/client/component/index.scss +191 -0
  606. package/dist/features/upload/client/component/pending/index.js +19 -10
  607. package/dist/features/upload/client/component/pending/index.js.map +1 -1
  608. package/dist/features/upload/client/drawer/commands.js +1 -1
  609. package/dist/features/upload/client/drawer/commands.js.map +1 -1
  610. package/dist/features/upload/client/drawer/index.js +83 -132
  611. package/dist/features/upload/client/drawer/index.js.map +1 -1
  612. package/dist/features/upload/client/index.js +61 -51
  613. package/dist/features/upload/client/index.js.map +1 -1
  614. package/dist/features/upload/client/nodes/UploadNode.js +67 -61
  615. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  616. package/dist/features/upload/client/plugin/index.js +290 -331
  617. package/dist/features/upload/client/plugin/index.js.map +1 -1
  618. package/dist/features/upload/server/graphQLPopulationPromise.js +48 -63
  619. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  620. package/dist/features/upload/server/i18n.js +112 -111
  621. package/dist/features/upload/server/i18n.js.map +1 -1
  622. package/dist/features/upload/server/index.js +200 -208
  623. package/dist/features/upload/server/index.js.map +1 -1
  624. package/dist/features/upload/server/markdownTransformer.js +48 -46
  625. package/dist/features/upload/server/markdownTransformer.js.map +1 -1
  626. package/dist/features/upload/server/nodes/UploadNode.js +115 -99
  627. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  628. package/dist/features/upload/server/nodes/conversions.js +41 -40
  629. package/dist/features/upload/server/nodes/conversions.js.map +1 -1
  630. package/dist/features/upload/server/validate.js +48 -62
  631. package/dist/features/upload/server/validate.js.map +1 -1
  632. package/dist/field/Diff/converters/link.js +32 -41
  633. package/dist/field/Diff/converters/link.js.map +1 -1
  634. package/dist/field/Diff/converters/listitem/index.js +75 -55
  635. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  636. package/dist/field/Diff/converters/listitem/index.scss +47 -0
  637. package/dist/field/Diff/converters/relationship/index.js +85 -63
  638. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  639. package/dist/field/Diff/converters/relationship/index.scss +73 -0
  640. package/dist/field/Diff/converters/unknown/index.js +64 -41
  641. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  642. package/dist/field/Diff/converters/unknown/index.scss +40 -0
  643. package/dist/field/Diff/converters/upload/index.js +122 -66
  644. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  645. package/dist/field/Diff/converters/upload/index.scss +115 -0
  646. package/dist/field/Diff/index.js +86 -99
  647. package/dist/field/Diff/index.js.map +1 -1
  648. package/dist/field/Diff/index.scss +102 -0
  649. package/dist/field/Field.d.ts.map +1 -1
  650. package/dist/field/Field.js +246 -167
  651. package/dist/field/Field.js.map +1 -1
  652. package/dist/field/RenderLexical/index.js +123 -119
  653. package/dist/field/RenderLexical/index.js.map +1 -1
  654. package/dist/field/RichTextViewProvider.d.ts +86 -0
  655. package/dist/field/RichTextViewProvider.d.ts.map +1 -0
  656. package/dist/field/RichTextViewProvider.js +114 -0
  657. package/dist/field/RichTextViewProvider.js.map +1 -0
  658. package/dist/field/ViewSelector.d.ts +4 -0
  659. package/dist/field/ViewSelector.d.ts.map +1 -0
  660. package/dist/field/ViewSelector.js +90 -0
  661. package/dist/field/ViewSelector.js.map +1 -0
  662. package/dist/field/ViewSelector.scss +34 -0
  663. package/dist/field/bundled.css +0 -1
  664. package/dist/field/index.d.ts +1 -0
  665. package/dist/field/index.d.ts.map +1 -1
  666. package/dist/field/index.js +89 -97
  667. package/dist/field/index.js.map +1 -1
  668. package/dist/field/index.scss +53 -0
  669. package/dist/field/rscEntry.d.ts +1 -1
  670. package/dist/field/rscEntry.d.ts.map +1 -1
  671. package/dist/field/rscEntry.js +98 -84
  672. package/dist/field/rscEntry.js.map +1 -1
  673. package/dist/i18n.js +223 -222
  674. package/dist/i18n.js.map +1 -1
  675. package/dist/index.d.ts +1 -1
  676. package/dist/index.d.ts.map +1 -1
  677. package/dist/index.js +641 -704
  678. package/dist/index.js.map +1 -1
  679. package/dist/lexical/EditorPlugin.js +21 -17
  680. package/dist/lexical/EditorPlugin.js.map +1 -1
  681. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  682. package/dist/lexical/LexicalEditor.js +280 -171
  683. package/dist/lexical/LexicalEditor.js.map +1 -1
  684. package/dist/lexical/LexicalEditor.scss +54 -0
  685. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  686. package/dist/lexical/LexicalProvider.js +117 -86
  687. package/dist/lexical/LexicalProvider.js.map +1 -1
  688. package/dist/lexical/config/client/EditorConfigProvider.js +94 -81
  689. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  690. package/dist/lexical/config/client/default.js +3 -3
  691. package/dist/lexical/config/client/default.js.map +1 -1
  692. package/dist/lexical/config/client/loader.js +30 -38
  693. package/dist/lexical/config/client/loader.js.map +1 -1
  694. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  695. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  696. package/dist/lexical/config/client/sanitize.js +190 -188
  697. package/dist/lexical/config/client/sanitize.js.map +1 -1
  698. package/dist/lexical/config/server/default.js +27 -5
  699. package/dist/lexical/config/server/default.js.map +1 -1
  700. package/dist/lexical/config/server/loader.js +105 -106
  701. package/dist/lexical/config/server/loader.js.map +1 -1
  702. package/dist/lexical/config/server/sanitize.js +114 -113
  703. package/dist/lexical/config/server/sanitize.js.map +1 -1
  704. package/dist/lexical/config/types.d.ts +4 -0
  705. package/dist/lexical/config/types.d.ts.map +1 -1
  706. package/dist/lexical/config/types.js +6 -1
  707. package/dist/lexical/config/types.js.map +1 -1
  708. package/dist/lexical/nodes/index.d.ts +12 -2
  709. package/dist/lexical/nodes/index.d.ts.map +1 -1
  710. package/dist/lexical/nodes/index.js +215 -15
  711. package/dist/lexical/nodes/index.js.map +1 -1
  712. package/dist/lexical/plugins/ClipboardPlugin/index.js +66 -70
  713. package/dist/lexical/plugins/ClipboardPlugin/index.js.map +1 -1
  714. package/dist/lexical/plugins/DecoratorPlugin/index.js +208 -225
  715. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  716. package/dist/lexical/plugins/DecoratorPlugin/index.scss +13 -0
  717. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +42 -41
  718. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  719. package/dist/lexical/plugins/InsertParagraphAtEnd/index.scss +54 -0
  720. package/dist/lexical/plugins/MarkdownShortcut/index.js +11 -23
  721. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  722. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts +2 -0
  723. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -0
  724. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +31 -0
  725. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -0
  726. package/dist/lexical/plugins/NormalizeSelection/index.js +21 -19
  727. package/dist/lexical/plugins/NormalizeSelection/index.js.map +1 -1
  728. package/dist/lexical/plugins/SelectAllPlugin/index.js +19 -17
  729. package/dist/lexical/plugins/SelectAllPlugin/index.js.map +1 -1
  730. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +399 -420
  731. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  732. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +164 -155
  733. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  734. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +10 -1
  735. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  736. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  737. package/dist/lexical/plugins/SlashMenu/index.js +217 -181
  738. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  739. package/dist/lexical/plugins/SlashMenu/index.scss +68 -0
  740. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +28 -41
  741. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -1
  742. package/dist/lexical/plugins/TextPlugin/index.js +27 -42
  743. package/dist/lexical/plugins/TextPlugin/index.js.map +1 -1
  744. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +145 -130
  745. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  746. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +35 -0
  747. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +10 -10
  748. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
  749. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +10 -10
  750. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
  751. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +23 -26
  752. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +1 -1
  753. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +325 -317
  754. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  755. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.scss +80 -0
  756. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +86 -98
  757. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  758. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js +16 -22
  759. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js.map +1 -1
  760. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +29 -19
  761. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +1 -1
  762. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js +11 -14
  763. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js.map +1 -1
  764. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +122 -133
  765. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
  766. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +2 -2
  767. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -1
  768. package/dist/lexical/plugins/handles/utils/isOnHandleElement.js +2 -2
  769. package/dist/lexical/plugins/handles/utils/isOnHandleElement.js.map +1 -1
  770. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +29 -24
  771. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  772. package/dist/lexical/theme/EditorTheme.js +72 -65
  773. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  774. package/dist/lexical/theme/EditorTheme.scss +361 -0
  775. package/dist/lexical/ui/ContentEditable.js +22 -35
  776. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  777. package/dist/lexical/ui/ContentEditable.scss +105 -0
  778. package/dist/lexical/ui/icons/AI/index.js +58 -31
  779. package/dist/lexical/ui/icons/AI/index.js.map +1 -1
  780. package/dist/lexical/ui/icons/Add/index.js +31 -16
  781. package/dist/lexical/ui/icons/Add/index.js.map +1 -1
  782. package/dist/lexical/ui/icons/AlignCenter/index.js +45 -25
  783. package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
  784. package/dist/lexical/ui/icons/AlignJustify/index.js +45 -25
  785. package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
  786. package/dist/lexical/ui/icons/AlignLeft/index.js +45 -25
  787. package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
  788. package/dist/lexical/ui/icons/AlignRight/index.js +45 -25
  789. package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
  790. package/dist/lexical/ui/icons/Block/index.js +54 -34
  791. package/dist/lexical/ui/icons/Block/index.js.map +1 -1
  792. package/dist/lexical/ui/icons/Blockquote/index.js +24 -16
  793. package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
  794. package/dist/lexical/ui/icons/Bold/index.js +24 -16
  795. package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
  796. package/dist/lexical/ui/icons/Checklist/index.js +39 -24
  797. package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
  798. package/dist/lexical/ui/icons/Code/index.js +34 -19
  799. package/dist/lexical/ui/icons/Code/index.js.map +1 -1
  800. package/dist/lexical/ui/icons/CodeBlock/index.js +22 -14
  801. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
  802. package/dist/lexical/ui/icons/Collapse/index.js +23 -15
  803. package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
  804. package/dist/lexical/ui/icons/H1/index.js +24 -16
  805. package/dist/lexical/ui/icons/H1/index.js.map +1 -1
  806. package/dist/lexical/ui/icons/H2/index.js +24 -16
  807. package/dist/lexical/ui/icons/H2/index.js.map +1 -1
  808. package/dist/lexical/ui/icons/H3/index.js +24 -16
  809. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  810. package/dist/lexical/ui/icons/H4/index.js +24 -16
  811. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  812. package/dist/lexical/ui/icons/H5/index.js +24 -16
  813. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  814. package/dist/lexical/ui/icons/H6/index.js +24 -16
  815. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  816. package/dist/lexical/ui/icons/HorizontalRule/index.js +27 -19
  817. package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
  818. package/dist/lexical/ui/icons/IndentDecrease/index.js +53 -28
  819. package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
  820. package/dist/lexical/ui/icons/IndentIncrease/index.js +53 -28
  821. package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
  822. package/dist/lexical/ui/icons/InlineBlocks/index.js +26 -18
  823. package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
  824. package/dist/lexical/ui/icons/Italic/index.js +24 -16
  825. package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
  826. package/dist/lexical/ui/icons/Link/index.js +25 -17
  827. package/dist/lexical/ui/icons/Link/index.js.map +1 -1
  828. package/dist/lexical/ui/icons/Meatballs/index.js +39 -19
  829. package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
  830. package/dist/lexical/ui/icons/OrderedList/index.js +61 -31
  831. package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
  832. package/dist/lexical/ui/icons/Relationship/index.js +58 -31
  833. package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
  834. package/dist/lexical/ui/icons/Strikethrough/index.js +34 -19
  835. package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
  836. package/dist/lexical/ui/icons/Subscript/index.js +24 -16
  837. package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
  838. package/dist/lexical/ui/icons/Superscript/index.js +24 -16
  839. package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
  840. package/dist/lexical/ui/icons/Table/index.js +25 -17
  841. package/dist/lexical/ui/icons/Table/index.js.map +1 -1
  842. package/dist/lexical/ui/icons/Text/index.js +24 -16
  843. package/dist/lexical/ui/icons/Text/index.js.map +1 -1
  844. package/dist/lexical/ui/icons/TextState/index.js +25 -19
  845. package/dist/lexical/ui/icons/TextState/index.js.map +1 -1
  846. package/dist/lexical/ui/icons/Underline/index.js +34 -19
  847. package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
  848. package/dist/lexical/ui/icons/UnorderedList/index.js +81 -46
  849. package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
  850. package/dist/lexical/ui/icons/Upload/index.js +48 -28
  851. package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
  852. package/dist/lexical/utils/canUseDOM.js +1 -1
  853. package/dist/lexical/utils/canUseDOM.js.map +1 -1
  854. package/dist/lexical/utils/environment.js +1 -1
  855. package/dist/lexical/utils/environment.js.map +1 -1
  856. package/dist/lexical/utils/getDOMRangeRect.js +12 -12
  857. package/dist/lexical/utils/getDOMRangeRect.js.map +1 -1
  858. package/dist/lexical/utils/getSelectedNode.js +13 -17
  859. package/dist/lexical/utils/getSelectedNode.js.map +1 -1
  860. package/dist/lexical/utils/guard.js +3 -4
  861. package/dist/lexical/utils/guard.js.map +1 -1
  862. package/dist/lexical/utils/joinClasses.js +2 -2
  863. package/dist/lexical/utils/joinClasses.js.map +1 -1
  864. package/dist/lexical/utils/markdown/createBlockNode.js +10 -9
  865. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  866. package/dist/lexical/utils/nodeFormat.js +59 -58
  867. package/dist/lexical/utils/nodeFormat.js.map +1 -1
  868. package/dist/lexical/utils/point.js +32 -39
  869. package/dist/lexical/utils/point.js.map +1 -1
  870. package/dist/lexical/utils/rect.js +136 -166
  871. package/dist/lexical/utils/rect.js.map +1 -1
  872. package/dist/lexical/utils/setFloatingElemPosition.js +48 -56
  873. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
  874. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js +49 -49
  875. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +1 -1
  876. package/dist/lexical/utils/swipe.js +83 -81
  877. package/dist/lexical/utils/swipe.js.map +1 -1
  878. package/dist/lexical/utils/url.js +53 -53
  879. package/dist/lexical/utils/url.js.map +1 -1
  880. package/dist/lexical/utils/url.spec.js +214 -98
  881. package/dist/lexical/utils/url.spec.js.map +1 -1
  882. package/dist/lexical-proxy/@lexical-headless.js +1 -0
  883. package/dist/lexical-proxy/@lexical-headless.js.map +1 -1
  884. package/dist/lexical-proxy/@lexical-html.js +1 -0
  885. package/dist/lexical-proxy/@lexical-html.js.map +1 -1
  886. package/dist/lexical-proxy/@lexical-link.js +1 -0
  887. package/dist/lexical-proxy/@lexical-link.js.map +1 -1
  888. package/dist/lexical-proxy/@lexical-list.js +1 -0
  889. package/dist/lexical-proxy/@lexical-list.js.map +1 -1
  890. package/dist/lexical-proxy/@lexical-mark.js +1 -0
  891. package/dist/lexical-proxy/@lexical-mark.js.map +1 -1
  892. package/dist/lexical-proxy/@lexical-markdown.js +1 -0
  893. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
  894. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js +1 -0
  895. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js.map +1 -1
  896. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js +1 -0
  897. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js.map +1 -1
  898. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js +1 -0
  899. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js.map +1 -1
  900. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js +1 -0
  901. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js.map +1 -1
  902. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js +1 -0
  903. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js.map +1 -1
  904. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js +1 -0
  905. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js.map +1 -1
  906. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js +1 -0
  907. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js.map +1 -1
  908. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js +1 -0
  909. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js.map +1 -1
  910. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js +1 -0
  911. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js.map +1 -1
  912. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js +1 -0
  913. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js.map +1 -1
  914. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js +1 -0
  915. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js.map +1 -1
  916. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js +1 -0
  917. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js.map +1 -1
  918. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js +1 -0
  919. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js.map +1 -1
  920. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +1 -0
  921. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +1 -1
  922. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js +1 -0
  923. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js.map +1 -1
  924. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js +1 -0
  925. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js.map +1 -1
  926. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js +1 -0
  927. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js.map +1 -1
  928. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js +1 -0
  929. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js.map +1 -1
  930. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js +1 -0
  931. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js.map +1 -1
  932. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js +1 -0
  933. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js.map +1 -1
  934. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js +1 -0
  935. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js.map +1 -1
  936. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js +1 -0
  937. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js.map +1 -1
  938. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js +1 -0
  939. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js.map +1 -1
  940. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js +1 -0
  941. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js.map +1 -1
  942. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js +1 -0
  943. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js.map +1 -1
  944. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js +1 -0
  945. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js.map +1 -1
  946. package/dist/lexical-proxy/@lexical-react/LexicalNodeContextMenuPlugin.js +1 -0
  947. package/dist/lexical-proxy/@lexical-react/LexicalNodeContextMenuPlugin.js.map +1 -1
  948. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js +1 -0
  949. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js.map +1 -1
  950. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js +1 -0
  951. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js.map +1 -1
  952. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js +1 -0
  953. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js.map +1 -1
  954. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js +1 -0
  955. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js.map +1 -1
  956. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js +1 -0
  957. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js.map +1 -1
  958. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js +1 -0
  959. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js.map +1 -1
  960. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js +1 -0
  961. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js.map +1 -1
  962. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js +1 -0
  963. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js.map +1 -1
  964. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js +1 -0
  965. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js.map +1 -1
  966. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js +1 -0
  967. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js.map +1 -1
  968. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js +1 -0
  969. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js.map +1 -1
  970. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js +1 -0
  971. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js.map +1 -1
  972. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js +1 -0
  973. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js.map +1 -1
  974. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js +1 -0
  975. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js.map +1 -1
  976. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js +1 -0
  977. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js.map +1 -1
  978. package/dist/lexical-proxy/@lexical-rich-text.js +1 -0
  979. package/dist/lexical-proxy/@lexical-rich-text.js.map +1 -1
  980. package/dist/lexical-proxy/@lexical-selection.js +1 -0
  981. package/dist/lexical-proxy/@lexical-selection.js.map +1 -1
  982. package/dist/lexical-proxy/@lexical-utils.js +1 -0
  983. package/dist/lexical-proxy/@lexical-utils.js.map +1 -1
  984. package/dist/lexical-proxy/lexical.js +1 -0
  985. package/dist/lexical-proxy/lexical.js.map +1 -1
  986. package/dist/nodeTypes.js +35 -1
  987. package/dist/nodeTypes.js.map +1 -1
  988. package/dist/packages/@lexical/markdown/MarkdownExport.js +184 -179
  989. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +1 -1
  990. package/dist/packages/@lexical/markdown/MarkdownImport.js +173 -168
  991. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +1 -1
  992. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +258 -268
  993. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +1 -1
  994. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +305 -209
  995. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +1 -1
  996. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +76 -73
  997. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +1 -1
  998. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +59 -48
  999. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +1 -1
  1000. package/dist/packages/@lexical/markdown/importTextTransformers.js +51 -45
  1001. package/dist/packages/@lexical/markdown/importTextTransformers.js.map +1 -1
  1002. package/dist/packages/@lexical/markdown/index.js +33 -14
  1003. package/dist/packages/@lexical/markdown/index.js.map +1 -1
  1004. package/dist/packages/@lexical/markdown/utils.js +217 -185
  1005. package/dist/packages/@lexical/markdown/utils.js.map +1 -1
  1006. package/dist/populateGraphQL/defaultValue.js +29 -24
  1007. package/dist/populateGraphQL/defaultValue.js.map +1 -1
  1008. package/dist/populateGraphQL/populate.js +26 -37
  1009. package/dist/populateGraphQL/populate.js.map +1 -1
  1010. package/dist/populateGraphQL/populateLexicalPopulationPromises.js +34 -50
  1011. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  1012. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js +35 -42
  1013. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
  1014. package/dist/types.d.ts +329 -2
  1015. package/dist/types.d.ts.map +1 -1
  1016. package/dist/types.js +219 -1
  1017. package/dist/types.js.map +1 -1
  1018. package/dist/utilities/applyBaseFilterToFields.js +81 -84
  1019. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  1020. package/dist/utilities/buildEditorState.js +39 -40
  1021. package/dist/utilities/buildEditorState.js.map +1 -1
  1022. package/dist/utilities/buildInitialState.js +51 -52
  1023. package/dist/utilities/buildInitialState.js.map +1 -1
  1024. package/dist/utilities/createClientFeature.js +42 -48
  1025. package/dist/utilities/createClientFeature.js.map +1 -1
  1026. package/dist/utilities/createServerFeature.js +38 -48
  1027. package/dist/utilities/createServerFeature.js.map +1 -1
  1028. package/dist/utilities/editorConfigFactory.js +78 -79
  1029. package/dist/utilities/editorConfigFactory.js.map +1 -1
  1030. package/dist/utilities/fieldsDrawer/Drawer.js +45 -70
  1031. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  1032. package/dist/utilities/fieldsDrawer/DrawerContent.js +134 -124
  1033. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  1034. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +64 -115
  1035. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  1036. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +76 -121
  1037. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -1
  1038. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +79 -141
  1039. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
  1040. package/dist/utilities/forEachNodeRecursively.js +19 -24
  1041. package/dist/utilities/forEachNodeRecursively.js.map +1 -1
  1042. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  1043. package/dist/utilities/generateImportMap.js +44 -49
  1044. package/dist/utilities/generateImportMap.js.map +1 -1
  1045. package/dist/utilities/generateSchemaMap.js +32 -37
  1046. package/dist/utilities/generateSchemaMap.js.map +1 -1
  1047. package/dist/utilities/getDefaultSanitizedEditorConfig.js +12 -14
  1048. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  1049. package/dist/utilities/initLexicalFeatures.js +68 -65
  1050. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  1051. package/dist/utilities/jsx/collectTopLevelJSXInLines.js +26 -29
  1052. package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -1
  1053. package/dist/utilities/jsx/declare.d.js.map +1 -1
  1054. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js +100 -102
  1055. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js.map +1 -1
  1056. package/dist/utilities/jsx/jsx.js +76 -80
  1057. package/dist/utilities/jsx/jsx.js.map +1 -1
  1058. package/dist/utilities/jsx/jsx.spec.js +225 -171
  1059. package/dist/utilities/jsx/jsx.spec.js.map +1 -1
  1060. package/dist/utilities/migrateSlateToLexical/index.js +111 -127
  1061. package/dist/utilities/migrateSlateToLexical/index.js.map +1 -1
  1062. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +74 -78
  1063. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  1064. package/dist/utilities/recurseNodeTree.js +22 -25
  1065. package/dist/utilities/recurseNodeTree.js.map +1 -1
  1066. package/dist/utilities/upgradeLexicalData/index.js +87 -101
  1067. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  1068. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +78 -80
  1069. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  1070. package/dist/utilities/useLexicalFeature.js +14 -16
  1071. package/dist/utilities/useLexicalFeature.js.map +1 -1
  1072. package/dist/utilities/useRunDeprioritized.js +41 -37
  1073. package/dist/utilities/useRunDeprioritized.js.map +1 -1
  1074. package/dist/validate/hasText.d.ts +6 -1
  1075. package/dist/validate/hasText.d.ts.map +1 -1
  1076. package/dist/validate/hasText.js +27 -20
  1077. package/dist/validate/hasText.js.map +1 -1
  1078. package/dist/validate/index.js +22 -28
  1079. package/dist/validate/index.js.map +1 -1
  1080. package/dist/validate/validateNodes.js +28 -31
  1081. package/dist/validate/validateNodes.js.map +1 -1
  1082. package/package.json +11 -6
  1083. package/dist/exports/client/Component-DOSSWC76.js +0 -2
  1084. package/dist/exports/client/Component-DOSSWC76.js.map +0 -7
  1085. package/dist/exports/client/Component-MBLHTKDK.js +0 -2
  1086. package/dist/exports/client/Component-MBLHTKDK.js.map +0 -7
  1087. package/dist/exports/client/Field-HJGV32KA.js +0 -2
  1088. package/dist/exports/client/Field-HJGV32KA.js.map +0 -7
  1089. package/dist/exports/client/RelationshipComponent-BG3DPV3T.js +0 -2
  1090. package/dist/exports/client/RelationshipComponent-BG3DPV3T.js.map +0 -7
  1091. package/dist/exports/client/bundled.css +0 -1
  1092. package/dist/exports/client/chunk-2S5Q7QYO.js +0 -2
  1093. package/dist/exports/client/chunk-2S5Q7QYO.js.map +0 -7
  1094. package/dist/exports/client/chunk-BZZVLW4U.js +0 -2
  1095. package/dist/exports/client/chunk-BZZVLW4U.js.map +0 -7
  1096. package/dist/exports/client/chunk-DBWINSQN.js +0 -2
  1097. package/dist/exports/client/chunk-DBWINSQN.js.map +0 -7
  1098. package/dist/exports/client/chunk-EZX4YW7S.js +0 -12
  1099. package/dist/exports/client/chunk-EZX4YW7S.js.map +0 -7
  1100. package/dist/exports/client/chunk-F26IQ5RE.js +0 -2
  1101. package/dist/exports/client/chunk-F26IQ5RE.js.map +0 -7
  1102. package/dist/exports/client/chunk-INBEEENE.js +0 -2
  1103. package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
  1104. package/dist/exports/client/chunk-QJ5EETIB.js +0 -2
  1105. package/dist/exports/client/chunk-QJ5EETIB.js.map +0 -7
  1106. package/dist/exports/client/component-XIHC3W6W.js +0 -2
  1107. package/dist/exports/client/component-XIHC3W6W.js.map +0 -7
  1108. package/dist/exports/client/componentInline-NL25DNZ5.js +0 -2
  1109. package/dist/exports/client/componentInline-NL25DNZ5.js.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"useToolbarStates.js","names":["mergeRegister","$getSelection","useCallback","useDeferredValue","useEffect","useRef","useState","useEditorConfigContext","useRunDeprioritized","buildDefaultStates","groups","itemStates","Map","groupStates","length","group","enabledItemKeys","item","items","set","key","active","enabled","push","activeItemKeys","activeItems","enabledGroup","useToolbarStates","editor","states","setStates","deferredStates","editorConfigContext","editorConfigContextRef","current","groupsRef","runDeprioritized","updateStates","getEditorState","read","selection","currentGroups","ctx","newItemStates","newGroupStates","maxActive","type","maxActiveItems","undefined","isActive","isEnabled","listener","cleanup","registerUpdateListener","document","addEventListener","removeEventListener"],"sources":["../../../../src/features/toolbars/shared/useToolbarStates.ts"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { $getSelection } from 'lexical'\nimport { useCallback, useDeferredValue, useEffect, useRef, useState } from 'react'\n\nimport type { ToolbarGroup, ToolbarGroupItem } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../lexical/config/client/EditorConfigProvider.js'\nimport { useRunDeprioritized } from '../../../utilities/useRunDeprioritized.js'\n\nexport interface ToolbarItemState {\n active: boolean\n enabled: boolean\n}\n\nexport interface ToolbarGroupState {\n activeItemKeys: string[]\n activeItems: ToolbarGroupItem[]\n enabledGroup: boolean\n enabledItemKeys: string[]\n}\n\nexport interface ToolbarStates {\n groupStates: Map<string, ToolbarGroupState>\n itemStates: Map<string, ToolbarItemState>\n}\n\n/**\n * Build default states where every item is enabled and nothing is active.\n * Used as the initial value so toolbar groups render immediately on mount\n * instead of waiting for the first updateStates call.\n */\nfunction buildDefaultStates(groups: ToolbarGroup[] | undefined): ToolbarStates {\n const itemStates = new Map<string, ToolbarItemState>()\n const groupStates = new Map<string, ToolbarGroupState>()\n\n if (!groups?.length) {\n return { groupStates, itemStates }\n }\n\n for (const group of groups) {\n const enabledItemKeys: string[] = []\n for (const item of group.items) {\n itemStates.set(item.key, { active: false, enabled: true })\n enabledItemKeys.push(item.key)\n }\n groupStates.set(group.key, {\n activeItemKeys: [],\n activeItems: [],\n enabledGroup: true,\n enabledItemKeys,\n })\n }\n\n return { groupStates, itemStates }\n}\n\n/**\n * Subscribes once to `editor.registerUpdateListener` and computes\n * isActive / isEnabled for every toolbar item in a read.\n */\nexport function useToolbarStates(\n editor: LexicalEditor,\n groups: ToolbarGroup[] | undefined,\n): ToolbarStates {\n const [states, setStates] = useState<ToolbarStates>(() => buildDefaultStates(groups))\n const deferredStates = useDeferredValue(states)\n\n const editorConfigContext = useEditorConfigContext()\n const editorConfigContextRef = useRef(editorConfigContext)\n editorConfigContextRef.current = editorConfigContext\n\n const groupsRef = useRef(groups)\n groupsRef.current = groups\n\n const runDeprioritized = useRunDeprioritized()\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n\n const currentGroups = groupsRef.current\n if (!currentGroups?.length) {\n return\n }\n\n const ctx = editorConfigContextRef.current\n const newItemStates = new Map<string, ToolbarItemState>()\n const newGroupStates = new Map<string, ToolbarGroupState>()\n\n for (const group of currentGroups) {\n const activeItemKeys: string[] = []\n const activeItems: ToolbarGroupItem[] = []\n const enabledItemKeys: string[] = []\n\n const maxActive = group.type === 'dropdown' ? (group.maxActiveItems ?? 1) : undefined\n\n for (const item of group.items) {\n const isActive = item.isActive\n ? (!maxActive || activeItemKeys.length < maxActive) &&\n item.isActive({ editor, editorConfigContext: ctx, selection })\n : false\n\n const isEnabled = item.isEnabled\n ? item.isEnabled({ editor, editorConfigContext: ctx, selection })\n : true\n\n if (isActive) {\n activeItemKeys.push(item.key)\n activeItems.push(item)\n }\n if (isEnabled) {\n enabledItemKeys.push(item.key)\n }\n\n newItemStates.set(item.key, { active: isActive, enabled: isEnabled })\n }\n\n const enabledGroup =\n group.type === 'dropdown' && group.isEnabled\n ? group.isEnabled({ editor, editorConfigContext: ctx, selection })\n : true\n\n newGroupStates.set(group.key, {\n activeItemKeys,\n activeItems,\n enabledGroup,\n enabledItemKeys,\n })\n }\n\n setStates({ groupStates: newGroupStates, itemStates: newItemStates })\n })\n }, [editor])\n\n useEffect(() => {\n void runDeprioritized(updateStates)\n\n const listener = () => runDeprioritized(updateStates)\n\n const cleanup = mergeRegister(editor.registerUpdateListener(listener))\n document.addEventListener('mouseup', listener)\n\n return () => {\n cleanup()\n document.removeEventListener('mouseup', listener)\n }\n }, [editor, runDeprioritized, updateStates])\n\n return deferredStates\n}\n"],"mappings":"AAAA;;AAGA,SAASA,aAAa,QAAQ;AAC9B,SAASC,aAAa,QAAQ;AAC9B,SAASC,WAAW,EAAEC,gBAAgB,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAI3E,SAASC,sBAAsB,QAAQ;AACvC,SAASC,mBAAmB,QAAQ;AAmBpC;;;;;AAKA,SAASC,mBAAmBC,MAAkC;EAC5D,MAAMC,UAAA,GAAa,IAAIC,GAAA;EACvB,MAAMC,WAAA,GAAc,IAAID,GAAA;EAExB,IAAI,CAACF,MAAA,EAAQI,MAAA,EAAQ;IACnB,OAAO;MAAED,WAAA;MAAaF;IAAW;EACnC;EAEA,KAAK,MAAMI,KAAA,IAASL,MAAA,EAAQ;IAC1B,MAAMM,eAAA,GAA4B,EAAE;IACpC,KAAK,MAAMC,IAAA,IAAQF,KAAA,CAAMG,KAAK,EAAE;MAC9BP,UAAA,CAAWQ,GAAG,CAACF,IAAA,CAAKG,GAAG,EAAE;QAAEC,MAAA,EAAQ;QAAOC,OAAA,EAAS;MAAK;MACxDN,eAAA,CAAgBO,IAAI,CAACN,IAAA,CAAKG,GAAG;IAC/B;IACAP,WAAA,CAAYM,GAAG,CAACJ,KAAA,CAAMK,GAAG,EAAE;MACzBI,cAAA,EAAgB,EAAE;MAClBC,WAAA,EAAa,EAAE;MACfC,YAAA,EAAc;MACdV;IACF;EACF;EAEA,OAAO;IAAEH,WAAA;IAAaF;EAAW;AACnC;AAEA;;;;AAIA,OAAO,SAASgB,iBACdC,MAAqB,EACrBlB,MAAkC;EAElC,MAAM,CAACmB,MAAA,EAAQC,SAAA,CAAU,GAAGxB,QAAA,CAAwB,MAAMG,kBAAA,CAAmBC,MAAA;EAC7E,MAAMqB,cAAA,GAAiB5B,gBAAA,CAAiB0B,MAAA;EAExC,MAAMG,mBAAA,GAAsBzB,sBAAA;EAC5B,MAAM0B,sBAAA,GAAyB5B,MAAA,CAAO2B,mBAAA;EACtCC,sBAAA,CAAuBC,OAAO,GAAGF,mBAAA;EAEjC,MAAMG,SAAA,GAAY9B,MAAA,CAAOK,MAAA;EACzByB,SAAA,CAAUD,OAAO,GAAGxB,MAAA;EAEpB,MAAM0B,gBAAA,GAAmB5B,mBAAA;EAEzB,MAAM6B,YAAA,GAAenC,WAAA,CAAY;IAC/B0B,MAAA,CAAOU,cAAc,GAAGC,IAAI,CAAC;MAC3B,MAAMC,SAAA,GAAYvC,aAAA;MAClB,IAAI,CAACuC,SAAA,EAAW;QACd;MACF;MAEA,MAAMC,aAAA,GAAgBN,SAAA,CAAUD,OAAO;MACvC,IAAI,CAACO,aAAA,EAAe3B,MAAA,EAAQ;QAC1B;MACF;MAEA,MAAM4B,GAAA,GAAMT,sBAAA,CAAuBC,OAAO;MAC1C,MAAMS,aAAA,GAAgB,IAAI/B,GAAA;MAC1B,MAAMgC,cAAA,GAAiB,IAAIhC,GAAA;MAE3B,KAAK,MAAMG,KAAA,IAAS0B,aAAA,EAAe;QACjC,MAAMjB,cAAA,GAA2B,EAAE;QACnC,MAAMC,WAAA,GAAkC,EAAE;QAC1C,MAAMT,eAAA,GAA4B,EAAE;QAEpC,MAAM6B,SAAA,GAAY9B,KAAA,CAAM+B,IAAI,KAAK,aAAc/B,KAAA,CAAMgC,cAAc,IAAI,IAAKC,SAAA;QAE5E,KAAK,MAAM/B,IAAA,IAAQF,KAAA,CAAMG,KAAK,EAAE;UAC9B,MAAM+B,QAAA,GAAWhC,IAAA,CAAKgC,QAAQ,GAC1B,CAAC,CAACJ,SAAA,IAAarB,cAAA,CAAeV,MAAM,GAAG+B,SAAQ,KAC/C5B,IAAA,CAAKgC,QAAQ,CAAC;YAAErB,MAAA;YAAQI,mBAAA,EAAqBU,GAAA;YAAKF;UAAU,KAC5D;UAEJ,MAAMU,SAAA,GAAYjC,IAAA,CAAKiC,SAAS,GAC5BjC,IAAA,CAAKiC,SAAS,CAAC;YAAEtB,MAAA;YAAQI,mBAAA,EAAqBU,GAAA;YAAKF;UAAU,KAC7D;UAEJ,IAAIS,QAAA,EAAU;YACZzB,cAAA,CAAeD,IAAI,CAACN,IAAA,CAAKG,GAAG;YAC5BK,WAAA,CAAYF,IAAI,CAACN,IAAA;UACnB;UACA,IAAIiC,SAAA,EAAW;YACblC,eAAA,CAAgBO,IAAI,CAACN,IAAA,CAAKG,GAAG;UAC/B;UAEAuB,aAAA,CAAcxB,GAAG,CAACF,IAAA,CAAKG,GAAG,EAAE;YAAEC,MAAA,EAAQ4B,QAAA;YAAU3B,OAAA,EAAS4B;UAAU;QACrE;QAEA,MAAMxB,YAAA,GACJX,KAAA,CAAM+B,IAAI,KAAK,cAAc/B,KAAA,CAAMmC,SAAS,GACxCnC,KAAA,CAAMmC,SAAS,CAAC;UAAEtB,MAAA;UAAQI,mBAAA,EAAqBU,GAAA;UAAKF;QAAU,KAC9D;QAENI,cAAA,CAAezB,GAAG,CAACJ,KAAA,CAAMK,GAAG,EAAE;UAC5BI,cAAA;UACAC,WAAA;UACAC,YAAA;UACAV;QACF;MACF;MAEAc,SAAA,CAAU;QAAEjB,WAAA,EAAa+B,cAAA;QAAgBjC,UAAA,EAAYgC;MAAc;IACrE;EACF,GAAG,CAACf,MAAA,CAAO;EAEXxB,SAAA,CAAU;IACR,KAAKgC,gBAAA,CAAiBC,YAAA;IAEtB,MAAMc,QAAA,GAAWA,CAAA,KAAMf,gBAAA,CAAiBC,YAAA;IAExC,MAAMe,OAAA,GAAUpD,aAAA,CAAc4B,MAAA,CAAOyB,sBAAsB,CAACF,QAAA;IAC5DG,QAAA,CAASC,gBAAgB,CAAC,WAAWJ,QAAA;IAErC,OAAO;MACLC,OAAA;MACAE,QAAA,CAASE,mBAAmB,CAAC,WAAWL,QAAA;IAC1C;EACF,GAAG,CAACvB,MAAA,EAAQQ,gBAAA,EAAkBC,YAAA,CAAa;EAE3C,OAAON,cAAA;AACT","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../src/features/toolbars/shared/useToolbarStates.ts"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { $getSelection } from 'lexical'\nimport { useCallback, useDeferredValue, useEffect, useRef, useState } from 'react'\n\nimport type { ToolbarGroup, ToolbarGroupItem } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../lexical/config/client/EditorConfigProvider.js'\nimport { useRunDeprioritized } from '../../../utilities/useRunDeprioritized.js'\n\nexport interface ToolbarItemState {\n active: boolean\n enabled: boolean\n}\n\nexport interface ToolbarGroupState {\n activeItemKeys: string[]\n activeItems: ToolbarGroupItem[]\n enabledGroup: boolean\n enabledItemKeys: string[]\n}\n\nexport interface ToolbarStates {\n groupStates: Map<string, ToolbarGroupState>\n itemStates: Map<string, ToolbarItemState>\n}\n\n/**\n * Build default states where every item is enabled and nothing is active.\n * Used as the initial value so toolbar groups render immediately on mount\n * instead of waiting for the first updateStates call.\n */\nfunction buildDefaultStates(groups: ToolbarGroup[] | undefined): ToolbarStates {\n const itemStates = new Map<string, ToolbarItemState>()\n const groupStates = new Map<string, ToolbarGroupState>()\n\n if (!groups?.length) {\n return { groupStates, itemStates }\n }\n\n for (const group of groups) {\n const enabledItemKeys: string[] = []\n for (const item of group.items) {\n itemStates.set(item.key, { active: false, enabled: true })\n enabledItemKeys.push(item.key)\n }\n groupStates.set(group.key, {\n activeItemKeys: [],\n activeItems: [],\n enabledGroup: true,\n enabledItemKeys,\n })\n }\n\n return { groupStates, itemStates }\n}\n\n/**\n * Subscribes once to `editor.registerUpdateListener` and computes\n * isActive / isEnabled for every toolbar item in a read.\n */\nexport function useToolbarStates(\n editor: LexicalEditor,\n groups: ToolbarGroup[] | undefined,\n): ToolbarStates {\n const [states, setStates] = useState<ToolbarStates>(() => buildDefaultStates(groups))\n const deferredStates = useDeferredValue(states)\n\n const editorConfigContext = useEditorConfigContext()\n const editorConfigContextRef = useRef(editorConfigContext)\n editorConfigContextRef.current = editorConfigContext\n\n const groupsRef = useRef(groups)\n groupsRef.current = groups\n\n const runDeprioritized = useRunDeprioritized()\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n\n const currentGroups = groupsRef.current\n if (!currentGroups?.length) {\n return\n }\n\n const ctx = editorConfigContextRef.current\n const newItemStates = new Map<string, ToolbarItemState>()\n const newGroupStates = new Map<string, ToolbarGroupState>()\n\n for (const group of currentGroups) {\n const activeItemKeys: string[] = []\n const activeItems: ToolbarGroupItem[] = []\n const enabledItemKeys: string[] = []\n\n const maxActive = group.type === 'dropdown' ? (group.maxActiveItems ?? 1) : undefined\n\n for (const item of group.items) {\n const isActive = item.isActive\n ? (!maxActive || activeItemKeys.length < maxActive) &&\n item.isActive({ editor, editorConfigContext: ctx, selection })\n : false\n\n const isEnabled = item.isEnabled\n ? item.isEnabled({ editor, editorConfigContext: ctx, selection })\n : true\n\n if (isActive) {\n activeItemKeys.push(item.key)\n activeItems.push(item)\n }\n if (isEnabled) {\n enabledItemKeys.push(item.key)\n }\n\n newItemStates.set(item.key, { active: isActive, enabled: isEnabled })\n }\n\n const enabledGroup =\n group.type === 'dropdown' && group.isEnabled\n ? group.isEnabled({ editor, editorConfigContext: ctx, selection })\n : true\n\n newGroupStates.set(group.key, {\n activeItemKeys,\n activeItems,\n enabledGroup,\n enabledItemKeys,\n })\n }\n\n setStates({ groupStates: newGroupStates, itemStates: newItemStates })\n })\n }, [editor])\n\n useEffect(() => {\n void runDeprioritized(updateStates)\n\n const listener = () => runDeprioritized(updateStates)\n\n const cleanup = mergeRegister(editor.registerUpdateListener(listener))\n document.addEventListener('mouseup', listener)\n\n return () => {\n cleanup()\n document.removeEventListener('mouseup', listener)\n }\n }, [editor, runDeprioritized, updateStates])\n\n return deferredStates\n}\n"],"names":["mergeRegister","$getSelection","useCallback","useDeferredValue","useEffect","useRef","useState","useEditorConfigContext","useRunDeprioritized","buildDefaultStates","groups","itemStates","Map","groupStates","length","group","enabledItemKeys","item","items","set","key","active","enabled","push","activeItemKeys","activeItems","enabledGroup","useToolbarStates","editor","states","setStates","deferredStates","editorConfigContext","editorConfigContextRef","current","groupsRef","runDeprioritized","updateStates","getEditorState","read","selection","currentGroups","ctx","newItemStates","newGroupStates","maxActive","type","maxActiveItems","undefined","isActive","isEnabled","listener","cleanup","registerUpdateListener","document","addEventListener","removeEventListener"],"mappings":"AAAA;AAGA,SAASA,aAAa,QAAQ,iBAAgB;AAC9C,SAASC,aAAa,QAAQ,UAAS;AACvC,SAASC,WAAW,EAAEC,gBAAgB,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAIlF,SAASC,sBAAsB,QAAQ,yDAAwD;AAC/F,SAASC,mBAAmB,QAAQ,4CAA2C;AAmB/E;;;;CAIC,GACD,SAASC,mBAAmBC,MAAkC;IAC5D,MAAMC,aAAa,IAAIC;IACvB,MAAMC,cAAc,IAAID;IAExB,IAAI,CAACF,QAAQI,QAAQ;QACnB,OAAO;YAAED;YAAaF;QAAW;IACnC;IAEA,KAAK,MAAMI,SAASL,OAAQ;QAC1B,MAAMM,kBAA4B,EAAE;QACpC,KAAK,MAAMC,QAAQF,MAAMG,KAAK,CAAE;YAC9BP,WAAWQ,GAAG,CAACF,KAAKG,GAAG,EAAE;gBAAEC,QAAQ;gBAAOC,SAAS;YAAK;YACxDN,gBAAgBO,IAAI,CAACN,KAAKG,GAAG;QAC/B;QACAP,YAAYM,GAAG,CAACJ,MAAMK,GAAG,EAAE;YACzBI,gBAAgB,EAAE;YAClBC,aAAa,EAAE;YACfC,cAAc;YACdV;QACF;IACF;IAEA,OAAO;QAAEH;QAAaF;IAAW;AACnC;AAEA;;;CAGC,GACD,OAAO,SAASgB,iBACdC,MAAqB,EACrBlB,MAAkC;IAElC,MAAM,CAACmB,QAAQC,UAAU,GAAGxB,SAAwB,IAAMG,mBAAmBC;IAC7E,MAAMqB,iBAAiB5B,iBAAiB0B;IAExC,MAAMG,sBAAsBzB;IAC5B,MAAM0B,yBAAyB5B,OAAO2B;IACtCC,uBAAuBC,OAAO,GAAGF;IAEjC,MAAMG,YAAY9B,OAAOK;IACzByB,UAAUD,OAAO,GAAGxB;IAEpB,MAAM0B,mBAAmB5B;IAEzB,MAAM6B,eAAenC,YAAY;QAC/B0B,OAAOU,cAAc,GAAGC,IAAI,CAAC;YAC3B,MAAMC,YAAYvC;YAClB,IAAI,CAACuC,WAAW;gBACd;YACF;YAEA,MAAMC,gBAAgBN,UAAUD,OAAO;YACvC,IAAI,CAACO,eAAe3B,QAAQ;gBAC1B;YACF;YAEA,MAAM4B,MAAMT,uBAAuBC,OAAO;YAC1C,MAAMS,gBAAgB,IAAI/B;YAC1B,MAAMgC,iBAAiB,IAAIhC;YAE3B,KAAK,MAAMG,SAAS0B,cAAe;gBACjC,MAAMjB,iBAA2B,EAAE;gBACnC,MAAMC,cAAkC,EAAE;gBAC1C,MAAMT,kBAA4B,EAAE;gBAEpC,MAAM6B,YAAY9B,MAAM+B,IAAI,KAAK,aAAc/B,MAAMgC,cAAc,IAAI,IAAKC;gBAE5E,KAAK,MAAM/B,QAAQF,MAAMG,KAAK,CAAE;oBAC9B,MAAM+B,WAAWhC,KAAKgC,QAAQ,GAC1B,AAAC,CAAA,CAACJ,aAAarB,eAAeV,MAAM,GAAG+B,SAAQ,KAC/C5B,KAAKgC,QAAQ,CAAC;wBAAErB;wBAAQI,qBAAqBU;wBAAKF;oBAAU,KAC5D;oBAEJ,MAAMU,YAAYjC,KAAKiC,SAAS,GAC5BjC,KAAKiC,SAAS,CAAC;wBAAEtB;wBAAQI,qBAAqBU;wBAAKF;oBAAU,KAC7D;oBAEJ,IAAIS,UAAU;wBACZzB,eAAeD,IAAI,CAACN,KAAKG,GAAG;wBAC5BK,YAAYF,IAAI,CAACN;oBACnB;oBACA,IAAIiC,WAAW;wBACblC,gBAAgBO,IAAI,CAACN,KAAKG,GAAG;oBAC/B;oBAEAuB,cAAcxB,GAAG,CAACF,KAAKG,GAAG,EAAE;wBAAEC,QAAQ4B;wBAAU3B,SAAS4B;oBAAU;gBACrE;gBAEA,MAAMxB,eACJX,MAAM+B,IAAI,KAAK,cAAc/B,MAAMmC,SAAS,GACxCnC,MAAMmC,SAAS,CAAC;oBAAEtB;oBAAQI,qBAAqBU;oBAAKF;gBAAU,KAC9D;gBAENI,eAAezB,GAAG,CAACJ,MAAMK,GAAG,EAAE;oBAC5BI;oBACAC;oBACAC;oBACAV;gBACF;YACF;YAEAc,UAAU;gBAAEjB,aAAa+B;gBAAgBjC,YAAYgC;YAAc;QACrE;IACF,GAAG;QAACf;KAAO;IAEXxB,UAAU;QACR,KAAKgC,iBAAiBC;QAEtB,MAAMc,WAAW,IAAMf,iBAAiBC;QAExC,MAAMe,UAAUpD,cAAc4B,OAAOyB,sBAAsB,CAACF;QAC5DG,SAASC,gBAAgB,CAAC,WAAWJ;QAErC,OAAO;YACLC;YACAE,SAASE,mBAAmB,CAAC,WAAWL;QAC1C;IACF,GAAG;QAACvB;QAAQQ;QAAkBC;KAAa;IAE3C,OAAON;AACT"}
@@ -1,2 +1,30 @@
1
- export {};
1
+ /**
2
+ * The dropdown toolbar ChildComponent allows you to pass in a React Component which will be displayed within the dropdown button.
3
+ */ /**
4
+ * This is optional and controls if the toolbar group is highlighted or not.
5
+ */ /**
6
+ * All toolbar items part of this toolbar group need to be added here.
7
+ */ /**
8
+ * Each toolbar group needs to have a unique key. Groups with the same keys will have their items merged together.
9
+ */ /**
10
+ * The maximum number of active items that can be selected at once.
11
+ * Increasing this will hurt performance, as more nodes need to be checked for their active state.
12
+ *
13
+ * E.g. if this is 1, we can stop checking nodes once we find an active node.
14
+ *
15
+ * @default 1
16
+ */ /**
17
+ * Determines where the toolbar group will be.
18
+ */ /**
19
+ * Controls the toolbar group type. Set to `dropdown` to create a buttons toolbar group, which displays toolbar items vertically using their icons and labels, if the dropdown is open.
20
+ */ /**
21
+ * All toolbar items part of this toolbar group need to be added here.
22
+ */ /**
23
+ * Each toolbar group needs to have a unique key. Groups with the same keys will have their items merged together.
24
+ */ /**
25
+ * Determines where the toolbar group will be.
26
+ */ /**
27
+ * Controls the toolbar group type. Set to `buttons` to create a buttons toolbar group, which displays toolbar items horizontally using only their icons.
28
+ */ /** A React component which is rendered within your toolbar item's default button component. Usually, you want this to be an icon. */ /** A React component which is rendered in place of the toolbar item's default button component, thus completely replacing it. The `ChildComponent` and `onSelect` properties will be ignored. */ /** This is optional and controls if the toolbar item is highlighted or not. */ /** This is optional and controls if the toolbar item is clickable or not. If `false` is returned here, it will be grayed out and unclickable. */ /** Each toolbar item needs to have a unique key. */ /** The label will be displayed in your toolbar item, if it's within a dropdown group. In order to make use of i18n, this can be a function. */ /** Each toolbar item needs to have a unique key. */ export { };
29
+
2
30
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/features/toolbars/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { BaseSelection, LexicalEditor } from 'lexical'\nimport type React from 'react'\n\nimport type { EditorConfigContextType } from '../../lexical/config/client/EditorConfigProvider.js'\nimport type { FeatureClientSchemaMap } from '../../types.js'\n\nexport type ToolbarGroup = ToolbarButtonsGroup | ToolbarDropdownGroup\n\nexport type ToolbarDropdownGroup = {\n /**\n * The dropdown toolbar ChildComponent allows you to pass in a React Component which will be displayed within the dropdown button.\n */\n ChildComponent?: React.FC\n /**\n * This is optional and controls if the toolbar group is highlighted or not.\n */\n isEnabled?: ({\n editor,\n editorConfigContext,\n selection,\n }: {\n editor: LexicalEditor\n editorConfigContext: EditorConfigContextType\n selection: BaseSelection\n }) => boolean\n /**\n * All toolbar items part of this toolbar group need to be added here.\n */\n items: Array<ToolbarGroupItem>\n /**\n * Each toolbar group needs to have a unique key. Groups with the same keys will have their items merged together.\n */\n key: string\n /**\n * The maximum number of active items that can be selected at once.\n * Increasing this will hurt performance, as more nodes need to be checked for their active state.\n *\n * E.g. if this is 1, we can stop checking nodes once we find an active node.\n *\n * @default 1\n */\n maxActiveItems?: number\n /**\n * Determines where the toolbar group will be.\n */\n order?: number\n /**\n * Controls the toolbar group type. Set to `dropdown` to create a buttons toolbar group, which displays toolbar items vertically using their icons and labels, if the dropdown is open.\n */\n type: 'dropdown'\n}\n\nexport type ToolbarButtonsGroup = {\n /**\n * All toolbar items part of this toolbar group need to be added here.\n */\n items: Array<ToolbarGroupItem>\n /**\n * Each toolbar group needs to have a unique key. Groups with the same keys will have their items merged together.\n */\n key: string\n /**\n * Determines where the toolbar group will be.\n */\n order?: number\n /**\n * Controls the toolbar group type. Set to `buttons` to create a buttons toolbar group, which displays toolbar items horizontally using only their icons.\n */\n type: 'buttons'\n}\n\nexport type ToolbarGroupItem = {\n /** A React component which is rendered within your toolbar item's default button component. Usually, you want this to be an icon. */\n ChildComponent?: React.FC\n /** A React component which is rendered in place of the toolbar item's default button component, thus completely replacing it. The `ChildComponent` and `onSelect` properties will be ignored. */\n Component?: React.FC<{\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n }>\n /** This is optional and controls if the toolbar item is highlighted or not. */\n isActive?: ({\n editor,\n editorConfigContext,\n selection,\n }: {\n editor: LexicalEditor\n editorConfigContext: EditorConfigContextType\n selection: BaseSelection\n }) => boolean\n /** This is optional and controls if the toolbar item is clickable or not. If `false` is returned here, it will be grayed out and unclickable. */\n isEnabled?: ({\n editor,\n editorConfigContext,\n selection,\n }: {\n editor: LexicalEditor\n editorConfigContext: EditorConfigContextType\n selection: BaseSelection\n }) => boolean\n /** Each toolbar item needs to have a unique key. */\n key: string\n /** The label will be displayed in your toolbar item, if it's within a dropdown group. In order to make use of i18n, this can be a function. */\n label?:\n | ((args: {\n featureClientSchemaMap: FeatureClientSchemaMap\n i18n: I18nClient<{}, string>\n schemaPath: string\n }) => string)\n | string\n /** Each toolbar item needs to have a unique key. */\n onSelect?: ({ editor, isActive }: { editor: LexicalEditor; isActive: boolean }) => void\n order?: number\n}\n\nexport type CustomGroups = Record<\n string,\n | Partial<Omit<ToolbarButtonsGroup, 'items' | 'key'>>\n | Partial<Omit<ToolbarDropdownGroup, 'isEnabled' | 'items' | 'key'>>\n>\n"],"mappings":"AAsHA","ignoreList":[]}
1
+ {"version":3,"sources":["../../../src/features/toolbars/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { BaseSelection, LexicalEditor } from 'lexical'\nimport type React from 'react'\n\nimport type { EditorConfigContextType } from '../../lexical/config/client/EditorConfigProvider.js'\nimport type { FeatureClientSchemaMap } from '../../types.js'\n\nexport type ToolbarGroup = ToolbarButtonsGroup | ToolbarDropdownGroup\n\nexport type ToolbarDropdownGroup = {\n /**\n * The dropdown toolbar ChildComponent allows you to pass in a React Component which will be displayed within the dropdown button.\n */\n ChildComponent?: React.FC\n /**\n * This is optional and controls if the toolbar group is highlighted or not.\n */\n isEnabled?: ({\n editor,\n editorConfigContext,\n selection,\n }: {\n editor: LexicalEditor\n editorConfigContext: EditorConfigContextType\n selection: BaseSelection\n }) => boolean\n /**\n * All toolbar items part of this toolbar group need to be added here.\n */\n items: Array<ToolbarGroupItem>\n /**\n * Each toolbar group needs to have a unique key. Groups with the same keys will have their items merged together.\n */\n key: string\n /**\n * The maximum number of active items that can be selected at once.\n * Increasing this will hurt performance, as more nodes need to be checked for their active state.\n *\n * E.g. if this is 1, we can stop checking nodes once we find an active node.\n *\n * @default 1\n */\n maxActiveItems?: number\n /**\n * Determines where the toolbar group will be.\n */\n order?: number\n /**\n * Controls the toolbar group type. Set to `dropdown` to create a buttons toolbar group, which displays toolbar items vertically using their icons and labels, if the dropdown is open.\n */\n type: 'dropdown'\n}\n\nexport type ToolbarButtonsGroup = {\n /**\n * All toolbar items part of this toolbar group need to be added here.\n */\n items: Array<ToolbarGroupItem>\n /**\n * Each toolbar group needs to have a unique key. Groups with the same keys will have their items merged together.\n */\n key: string\n /**\n * Determines where the toolbar group will be.\n */\n order?: number\n /**\n * Controls the toolbar group type. Set to `buttons` to create a buttons toolbar group, which displays toolbar items horizontally using only their icons.\n */\n type: 'buttons'\n}\n\nexport type ToolbarGroupItem = {\n /** A React component which is rendered within your toolbar item's default button component. Usually, you want this to be an icon. */\n ChildComponent?: React.FC\n /** A React component which is rendered in place of the toolbar item's default button component, thus completely replacing it. The `ChildComponent` and `onSelect` properties will be ignored. */\n Component?: React.FC<{\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n }>\n /** This is optional and controls if the toolbar item is highlighted or not. */\n isActive?: ({\n editor,\n editorConfigContext,\n selection,\n }: {\n editor: LexicalEditor\n editorConfigContext: EditorConfigContextType\n selection: BaseSelection\n }) => boolean\n /** This is optional and controls if the toolbar item is clickable or not. If `false` is returned here, it will be grayed out and unclickable. */\n isEnabled?: ({\n editor,\n editorConfigContext,\n selection,\n }: {\n editor: LexicalEditor\n editorConfigContext: EditorConfigContextType\n selection: BaseSelection\n }) => boolean\n /** Each toolbar item needs to have a unique key. */\n key: string\n /** The label will be displayed in your toolbar item, if it's within a dropdown group. In order to make use of i18n, this can be a function. */\n label?:\n | ((args: {\n featureClientSchemaMap: FeatureClientSchemaMap\n i18n: I18nClient<{}, string>\n schemaPath: string\n }) => string)\n | string\n /** Each toolbar item needs to have a unique key. */\n onSelect?: ({ editor, isActive }: { editor: LexicalEditor; isActive: boolean }) => void\n order?: number\n}\n\nexport type CustomGroups = Record<\n string,\n | Partial<Omit<ToolbarButtonsGroup, 'items' | 'key'>>\n | Partial<Omit<ToolbarDropdownGroup, 'isEnabled' | 'items' | 'key'>>\n>\n"],"names":[],"mappings":"AAUE;;GAEC,GAED;;GAEC,GAUD;;GAEC,GAED;;GAEC,GAED;;;;;;;GAOC,GAED;;GAEC,GAED;;GAEC,GAKD;;GAEC,GAED;;GAEC,GAED;;GAEC,GAED;;GAEC,GAKD,mIAAmI,GAEnI,+LAA+L,GAQ/L,6EAA6E,GAU7E,+IAA+I,GAU/I,kDAAkD,GAElD,6IAA6I,GAQ7I,kDAAkD,GAKpD,WAIC"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Utility function to create a node with hooks. You don't have to use this utility, but it improves type inference
3
3
  * @param node the node
4
- */export function createNode(node) {
5
- return node;
4
+ */ export function createNode(node) {
5
+ return node;
6
6
  }
7
+
7
8
  //# sourceMappingURL=typeUtilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeUtilities.js","names":["createNode","node"],"sources":["../../src/features/typeUtilities.ts"],"sourcesContent":["import type { LexicalNode } from 'lexical'\n\nimport type { NodeWithHooks } from './typesServer.js'\n\n/**\n * Utility function to create a node with hooks. You don't have to use this utility, but it improves type inference\n * @param node the node\n */\nexport function createNode<Node extends LexicalNode>(\n node: NodeWithHooks<Node>,\n): NodeWithHooks<Node> {\n return node\n}\n"],"mappings":"AAIA;;;GAIA,OAAO,SAASA,WACdC,IAAyB;EAEzB,OAAOA,IAAA;AACT","ignoreList":[]}
1
+ {"version":3,"sources":["../../src/features/typeUtilities.ts"],"sourcesContent":["import type { LexicalNode } from 'lexical'\n\nimport type { NodeWithHooks } from './typesServer.js'\n\n/**\n * Utility function to create a node with hooks. You don't have to use this utility, but it improves type inference\n * @param node the node\n */\nexport function createNode<Node extends LexicalNode>(\n node: NodeWithHooks<Node>,\n): NodeWithHooks<Node> {\n return node\n}\n"],"names":["createNode","node"],"mappings":"AAIA;;;CAGC,GACD,OAAO,SAASA,WACdC,IAAyB;IAEzB,OAAOA;AACT"}
@@ -1,2 +1,62 @@
1
- export {};
1
+ /**
2
+ * No dependencies => Features need to be sorted on the server first, then sent to client in right order
3
+ */ /**
4
+ * Return props, to make it easy to retrieve passed in props to this Feature for the client if anyone wants to
5
+ */ /** unSanitizedEditorConfig.features, but mapped */ // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here
6
+ // unSanitized EditorConfig,
7
+ /**
8
+ * Plugins are react components which get added to the editor. You can use them to interact with lexical, e.g. to create a command which creates a node, or opens a modal, or some other more "outside" functionality
9
+ */ // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more "outside" functionality
10
+ // Determines at which position the Component will be added.
11
+ // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more "outside" functionality
12
+ // Determines at which position the Component will be added.
13
+ // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more "outside" functionality
14
+ // Determines at which position the Component will be added.
15
+ // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more "outside" functionality
16
+ // Determines at which position the Component will be added.
17
+ /**
18
+ * The text formats which are enabled by this feature.
19
+ */ /**
20
+ * Plugins are react components which get added to the editor. You can use them to interact with lexical, e.g. to create a command which creates a node, or opens a modal, or some other more "outside" functionality
21
+ */ // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more "outside" functionality
22
+ // Determines at which position the Component will be added.
23
+ // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more "outside" functionality
24
+ // Determines at which position the Component will be added.
25
+ // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more "outside" functionality
26
+ // Determines at which position the Component will be added.
27
+ // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more "outside" functionality
28
+ // Determines at which position the Component will be added.
29
+ // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more "outside" functionality
30
+ // Determines at which position the Component will be added.
31
+ // Determines at which position the Component will be added.
32
+ /**
33
+ * Client Features can register their own providers, which will be nested below the EditorConfigProvider
34
+ */ /**
35
+ * Return props, to make it easy to retrieve passed in props to this Feature for the client if anyone wants to
36
+ */ /**
37
+ * Dynamic groups allow you to add different groups depending on the query string (so, the text after the slash).
38
+ * Thus, to re-calculate the available groups, this function will be called every time you type after the /.
39
+ *
40
+ * The groups provided by dynamicGroups will be merged with the static groups provided by the groups property.
41
+ */ /**
42
+ * Static array of groups together with the items in them. These will always be present.
43
+ * While typing after the /, they will be filtered by the query string and the keywords, key and display name of the items.
44
+ */ /**
45
+ * An opt-in, classic fixed toolbar which stays at the top of the editor
46
+ */ /**
47
+ * The default, floating toolbar which appears when you select text.
48
+ */ /**
49
+ * Array of toolbar groups / sections. Each section can contain multiple toolbar items.
50
+ */ export { }; /** The keys of all enabled features */ /**
51
+ * Plugins are react components which get added to the editor. You can use them to interact with lexical, e.g. to create a command which creates a node, or opens a modal, or some other more "outside" functionality
52
+ */ /**
53
+ * Dynamic groups allow you to add different groups depending on the query string (so, the text after the slash).
54
+ * Thus, to re-calculate the available groups, this function will be called every time you type after the /.
55
+ *
56
+ * The groups provided by dynamicGroups will be merged with the static groups provided by the groups property.
57
+ */ /**
58
+ * Static array of groups together with the items in them. These will always be present.
59
+ * While typing after the /, they will be filtered by the query string and the keywords, key and display name of the items.
60
+ */
61
+
2
62
  //# sourceMappingURL=typesClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typesClient.js","names":[],"sources":["../../src/features/typesClient.ts"],"sourcesContent":["import type {\n Klass,\n LexicalEditor,\n LexicalNode,\n LexicalNodeReplacement,\n TextFormatType,\n} from 'lexical'\nimport type { ClientConfig, RichTextFieldClient } from 'payload'\nimport type React from 'react'\nimport type { JSX } from 'react'\n\nimport type { ClientEditorConfig } from '../lexical/config/types.js'\nimport type { SlashMenuGroup } from '../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport type { Transformer } from '../packages/@lexical/markdown/index.js'\nimport type { FeatureClientSchemaMap } from '../types.js'\nimport type { ToolbarGroup } from './toolbars/types.js'\n\nexport type FeatureProviderProviderClient<\n UnSanitizedClientFeatureProps = undefined,\n ClientFeatureProps = UnSanitizedClientFeatureProps,\n> = (props: BaseClientFeatureProps<ClientFeatureProps>) => FeatureProviderClient<ClientFeatureProps>\n\n/**\n * No dependencies => Features need to be sorted on the server first, then sent to client in right order\n */\nexport type FeatureProviderClient<\n UnSanitizedClientFeatureProps = undefined,\n ClientFeatureProps = UnSanitizedClientFeatureProps,\n> = {\n /**\n * Return props, to make it easy to retrieve passed in props to this Feature for the client if anyone wants to\n */\n clientFeatureProps: BaseClientFeatureProps<UnSanitizedClientFeatureProps>\n feature:\n | ((props: {\n config: ClientConfig\n featureClientImportMap: Record<string, any>\n featureClientSchemaMap: FeatureClientSchemaMap\n /** unSanitizedEditorConfig.features, but mapped */\n featureProviderMap: ClientFeatureProviderMap\n field?: RichTextFieldClient\n // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here\n resolvedFeatures: ResolvedClientFeatureMap\n schemaPath: string\n // unSanitized EditorConfig,\n unSanitizedEditorConfig: ClientEditorConfig\n }) => ClientFeature<ClientFeatureProps>)\n | ClientFeature<ClientFeatureProps>\n}\n\nexport type PluginComponent<ClientFeatureProps = any> = React.FC<{\n clientProps: ClientFeatureProps\n}>\nexport type PluginComponentWithAnchor<ClientFeatureProps = any> = React.FC<{\n anchorElem: HTMLElement\n clientProps: ClientFeatureProps\n}>\n\n/**\n * Plugins are react components which get added to the editor. You can use them to interact with lexical, e.g. to create a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n */\nexport type SanitizedPlugin =\n | {\n clientProps: any\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent\n key: string\n position: 'bottom' // Determines at which position the Component will be added.\n }\n | {\n clientProps: any\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent\n key: string\n position: 'normal' // Determines at which position the Component will be added.\n }\n | {\n clientProps: any\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent\n key: string\n position: 'top' // Determines at which position the Component will be added.\n }\n | {\n clientProps: any\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponentWithAnchor\n desktopOnly?: boolean\n key: string\n position: 'floatingAnchorElem' // Determines at which position the Component will be added.\n }\n | {\n clientProps: any\n Component: PluginComponent\n key: string\n position: 'aboveContainer'\n }\n | {\n clientProps: any\n Component: PluginComponent\n key: string\n position: 'belowContainer'\n }\n\nexport type ClientFeature<ClientFeatureProps> = {\n /**\n * The text formats which are enabled by this feature.\n */\n enableFormats?: TextFormatType[]\n markdownTransformers?: (\n | ((props: {\n allNodes: Array<Klass<LexicalNode> | LexicalNodeReplacement>\n allTransformers: Transformer[]\n }) => Transformer)\n | Transformer\n )[]\n nodes?: Array<Klass<LexicalNode> | LexicalNodeReplacement>\n /**\n * Plugins are react components which get added to the editor. You can use them to interact with lexical, e.g. to create a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n */\n plugins?: Array<\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent<ClientFeatureProps>\n position: 'aboveContainer' // Determines at which position the Component will be added.\n }\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent<ClientFeatureProps>\n position: 'bottom' // Determines at which position the Component will be added.\n }\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent<ClientFeatureProps>\n position: 'normal' // Determines at which position the Component will be added.\n }\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent<ClientFeatureProps>\n position: 'top' // Determines at which position the Component will be added.\n }\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponentWithAnchor<ClientFeatureProps>\n position: 'floatingAnchorElem' // Determines at which position the Component will be added.\n }\n | {\n Component: PluginComponent<ClientFeatureProps>\n position: 'belowContainer' // Determines at which position the Component will be added.\n }\n >\n /**\n * Client Features can register their own providers, which will be nested below the EditorConfigProvider\n */\n providers?: Array<React.FC<{ children: JSX.Element }>>\n /**\n * Return props, to make it easy to retrieve passed in props to this Feature for the client if anyone wants to\n */\n sanitizedClientFeatureProps?: BaseClientFeatureProps<ClientFeatureProps>\n slashMenu?: {\n /**\n * Dynamic groups allow you to add different groups depending on the query string (so, the text after the slash).\n * Thus, to re-calculate the available groups, this function will be called every time you type after the /.\n *\n * The groups provided by dynamicGroups will be merged with the static groups provided by the groups property.\n */\n dynamicGroups?: ({\n editor,\n queryString,\n }: {\n editor: LexicalEditor\n queryString: string\n }) => SlashMenuGroup[]\n /**\n * Static array of groups together with the items in them. These will always be present.\n * While typing after the /, they will be filtered by the query string and the keywords, key and display name of the items.\n */\n groups?: SlashMenuGroup[]\n }\n /**\n * An opt-in, classic fixed toolbar which stays at the top of the editor\n */\n toolbarFixed?: {\n groups: ToolbarGroup[]\n }\n /**\n * The default, floating toolbar which appears when you select text.\n */\n toolbarInline?: {\n /**\n * Array of toolbar groups / sections. Each section can contain multiple toolbar items.\n */\n groups: ToolbarGroup[]\n }\n}\n\nexport type BaseClientFeatureProps<ClientFeatureProps> = ClientFeatureProps extends undefined\n ? {\n featureKey: string\n order: number\n }\n : {\n featureKey: string\n order: number\n } & ClientFeatureProps\n\nexport type ResolvedClientFeature<ClientFeatureProps> = {\n key: string\n order: number\n} & ClientFeature<ClientFeatureProps>\n\nexport type ResolvedClientFeatureMap = Map<string, ResolvedClientFeature<any>>\n\nexport type ClientFeatureProviderMap = Map<string, FeatureProviderClient<any, any>>\n\nexport type SanitizedClientFeatures = {\n /** The keys of all enabled features */\n enabledFeatures: string[]\n enabledFormats: TextFormatType[]\n markdownTransformers: Transformer[]\n\n /**\n * Plugins are react components which get added to the editor. You can use them to interact with lexical, e.g. to create a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n */\n plugins?: Array<SanitizedPlugin>\n slashMenu: {\n /**\n * Dynamic groups allow you to add different groups depending on the query string (so, the text after the slash).\n * Thus, to re-calculate the available groups, this function will be called every time you type after the /.\n *\n * The groups provided by dynamicGroups will be merged with the static groups provided by the groups property.\n */\n dynamicGroups: Array<\n ({ editor, queryString }: { editor: LexicalEditor; queryString: string }) => SlashMenuGroup[]\n >\n /**\n * Static array of groups together with the items in them. These will always be present.\n * While typing after the /, they will be filtered by the query string and the keywords, key and display name of the items.\n */\n groups: SlashMenuGroup[]\n }\n} & Required<\n Pick<ResolvedClientFeature<unknown>, 'nodes' | 'providers' | 'toolbarFixed' | 'toolbarInline'>\n>\n"],"mappings":"AAuNA","ignoreList":[]}
1
+ {"version":3,"sources":["../../src/features/typesClient.ts"],"sourcesContent":["import type {\n Klass,\n LexicalEditor,\n LexicalNode,\n LexicalNodeReplacement,\n TextFormatType,\n} from 'lexical'\nimport type { ClientConfig, RichTextFieldClient } from 'payload'\nimport type React from 'react'\nimport type { JSX } from 'react'\n\nimport type { ClientEditorConfig } from '../lexical/config/types.js'\nimport type { SlashMenuGroup } from '../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport type { Transformer } from '../packages/@lexical/markdown/index.js'\nimport type { FeatureClientSchemaMap } from '../types.js'\nimport type { ToolbarGroup } from './toolbars/types.js'\n\nexport type FeatureProviderProviderClient<\n UnSanitizedClientFeatureProps = undefined,\n ClientFeatureProps = UnSanitizedClientFeatureProps,\n> = (props: BaseClientFeatureProps<ClientFeatureProps>) => FeatureProviderClient<ClientFeatureProps>\n\n/**\n * No dependencies => Features need to be sorted on the server first, then sent to client in right order\n */\nexport type FeatureProviderClient<\n UnSanitizedClientFeatureProps = undefined,\n ClientFeatureProps = UnSanitizedClientFeatureProps,\n> = {\n /**\n * Return props, to make it easy to retrieve passed in props to this Feature for the client if anyone wants to\n */\n clientFeatureProps: BaseClientFeatureProps<UnSanitizedClientFeatureProps>\n feature:\n | ((props: {\n config: ClientConfig\n featureClientImportMap: Record<string, any>\n featureClientSchemaMap: FeatureClientSchemaMap\n /** unSanitizedEditorConfig.features, but mapped */\n featureProviderMap: ClientFeatureProviderMap\n field?: RichTextFieldClient\n // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here\n resolvedFeatures: ResolvedClientFeatureMap\n schemaPath: string\n // unSanitized EditorConfig,\n unSanitizedEditorConfig: ClientEditorConfig\n }) => ClientFeature<ClientFeatureProps>)\n | ClientFeature<ClientFeatureProps>\n}\n\nexport type PluginComponent<ClientFeatureProps = any> = React.FC<{\n clientProps: ClientFeatureProps\n}>\nexport type PluginComponentWithAnchor<ClientFeatureProps = any> = React.FC<{\n anchorElem: HTMLElement\n clientProps: ClientFeatureProps\n}>\n\n/**\n * Plugins are react components which get added to the editor. You can use them to interact with lexical, e.g. to create a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n */\nexport type SanitizedPlugin =\n | {\n clientProps: any\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent\n key: string\n position: 'bottom' // Determines at which position the Component will be added.\n }\n | {\n clientProps: any\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent\n key: string\n position: 'normal' // Determines at which position the Component will be added.\n }\n | {\n clientProps: any\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent\n key: string\n position: 'top' // Determines at which position the Component will be added.\n }\n | {\n clientProps: any\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponentWithAnchor\n desktopOnly?: boolean\n key: string\n position: 'floatingAnchorElem' // Determines at which position the Component will be added.\n }\n | {\n clientProps: any\n Component: PluginComponent\n key: string\n position: 'aboveContainer'\n }\n | {\n clientProps: any\n Component: PluginComponent\n key: string\n position: 'belowContainer'\n }\n\nexport type ClientFeature<ClientFeatureProps> = {\n /**\n * The text formats which are enabled by this feature.\n */\n enableFormats?: TextFormatType[]\n markdownTransformers?: (\n | ((props: {\n allNodes: Array<Klass<LexicalNode> | LexicalNodeReplacement>\n allTransformers: Transformer[]\n }) => Transformer)\n | Transformer\n )[]\n nodes?: Array<Klass<LexicalNode> | LexicalNodeReplacement>\n /**\n * Plugins are react components which get added to the editor. You can use them to interact with lexical, e.g. to create a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n */\n plugins?: Array<\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent<ClientFeatureProps>\n position: 'aboveContainer' // Determines at which position the Component will be added.\n }\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent<ClientFeatureProps>\n position: 'bottom' // Determines at which position the Component will be added.\n }\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent<ClientFeatureProps>\n position: 'normal' // Determines at which position the Component will be added.\n }\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponent<ClientFeatureProps>\n position: 'top' // Determines at which position the Component will be added.\n }\n | {\n // plugins are anything which is not directly part of the editor. Like, creating a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n Component: PluginComponentWithAnchor<ClientFeatureProps>\n position: 'floatingAnchorElem' // Determines at which position the Component will be added.\n }\n | {\n Component: PluginComponent<ClientFeatureProps>\n position: 'belowContainer' // Determines at which position the Component will be added.\n }\n >\n /**\n * Client Features can register their own providers, which will be nested below the EditorConfigProvider\n */\n providers?: Array<React.FC<{ children: JSX.Element }>>\n /**\n * Return props, to make it easy to retrieve passed in props to this Feature for the client if anyone wants to\n */\n sanitizedClientFeatureProps?: BaseClientFeatureProps<ClientFeatureProps>\n slashMenu?: {\n /**\n * Dynamic groups allow you to add different groups depending on the query string (so, the text after the slash).\n * Thus, to re-calculate the available groups, this function will be called every time you type after the /.\n *\n * The groups provided by dynamicGroups will be merged with the static groups provided by the groups property.\n */\n dynamicGroups?: ({\n editor,\n queryString,\n }: {\n editor: LexicalEditor\n queryString: string\n }) => SlashMenuGroup[]\n /**\n * Static array of groups together with the items in them. These will always be present.\n * While typing after the /, they will be filtered by the query string and the keywords, key and display name of the items.\n */\n groups?: SlashMenuGroup[]\n }\n /**\n * An opt-in, classic fixed toolbar which stays at the top of the editor\n */\n toolbarFixed?: {\n groups: ToolbarGroup[]\n }\n /**\n * The default, floating toolbar which appears when you select text.\n */\n toolbarInline?: {\n /**\n * Array of toolbar groups / sections. Each section can contain multiple toolbar items.\n */\n groups: ToolbarGroup[]\n }\n}\n\nexport type BaseClientFeatureProps<ClientFeatureProps> = ClientFeatureProps extends undefined\n ? {\n featureKey: string\n order: number\n }\n : {\n featureKey: string\n order: number\n } & ClientFeatureProps\n\nexport type ResolvedClientFeature<ClientFeatureProps> = {\n key: string\n order: number\n} & ClientFeature<ClientFeatureProps>\n\nexport type ResolvedClientFeatureMap = Map<string, ResolvedClientFeature<any>>\n\nexport type ClientFeatureProviderMap = Map<string, FeatureProviderClient<any, any>>\n\nexport type SanitizedClientFeatures = {\n /** The keys of all enabled features */\n enabledFeatures: string[]\n enabledFormats: TextFormatType[]\n markdownTransformers: Transformer[]\n\n /**\n * Plugins are react components which get added to the editor. You can use them to interact with lexical, e.g. to create a command which creates a node, or opens a modal, or some other more \"outside\" functionality\n */\n plugins?: Array<SanitizedPlugin>\n slashMenu: {\n /**\n * Dynamic groups allow you to add different groups depending on the query string (so, the text after the slash).\n * Thus, to re-calculate the available groups, this function will be called every time you type after the /.\n *\n * The groups provided by dynamicGroups will be merged with the static groups provided by the groups property.\n */\n dynamicGroups: Array<\n ({ editor, queryString }: { editor: LexicalEditor; queryString: string }) => SlashMenuGroup[]\n >\n /**\n * Static array of groups together with the items in them. These will always be present.\n * While typing after the /, they will be filtered by the query string and the keywords, key and display name of the items.\n */\n groups: SlashMenuGroup[]\n }\n} & Required<\n Pick<ResolvedClientFeature<unknown>, 'nodes' | 'providers' | 'toolbarFixed' | 'toolbarInline'>\n>\n"],"names":[],"mappings":"AAsBA;;CAEC,GAKC;;GAEC,GAOK,iDAAiD,GAGjD,oIAAoI;AAGpI,4BAA4B;AAcpC;;CAEC,GAIK,6KAA6K;AAG1J,4DAA4D;AAI/E,6KAA6K;AAG1J,4DAA4D;AAI/E,6KAA6K;AAG7J,4DAA4D;AAI5E,6KAA6K;AAI9I,4DAA4D;AAgB/F;;GAEC,GAUD;;GAEC,GAGK,6KAA6K;AAElJ,4DAA4D;AAGvF,6KAA6K;AAE1J,4DAA4D;AAG/E,6KAA6K;AAE1J,4DAA4D;AAG/E,6KAA6K;AAE7J,4DAA4D;AAG5E,6KAA6K;AAE9I,4DAA4D;AAIhE,4DAA4D;AAG7F;;GAEC,GAED;;GAEC,GAGC;;;;;KAKC,GAQD;;;KAGC,GAGH;;GAEC,GAID;;GAEC,GAEC;;KAEC,GAwBL,WA4BC,CA3BC,qCAAqC,IAKrC;;GAEC,IAGC;;;;;KAKC,IAID;;;KAGC"}
@@ -1,2 +1,91 @@
1
- export {};
1
+ /**
2
+ * This maps all population promises to the node type
3
+ */ /**
4
+ * fieldPromises are used for things like field hooks. They will be awaited before awaiting populationPromises
5
+ */ /** Keys of dependencies needed for this feature. These dependencies do not have to be loaded first, but they have to exist, otherwise an error will be thrown. */ /** Keys of priority dependencies needed for this feature. These dependencies have to be loaded first AND have to exist, otherwise an error will be thrown. They will be available in the `feature` property. */ /** Keys of soft-dependencies needed for this feature. These are optional. Payload will attempt to load them before this feature, but doesn't throw an error if that's not possible. */ /**
6
+ * This is being called during the payload sanitization process
7
+ */ /** unSanitizedEditorConfig.features, but mapped */ // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here
8
+ // unSanitized EditorConfig,
9
+ /** Props which were passed into your feature will have to be passed here. This will allow them to be used / read in other places of the code, e.g. wherever you can use useEditorConfigContext */ /**
10
+ * Only available in `afterRead` hooks.
11
+ */ /**
12
+ * Only available in `afterRead` hooks.
13
+ */ /**
14
+ * Only available in `afterRead` field hooks.
15
+ */ /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */ /**
16
+ * The requested locale.
17
+ */ /**
18
+ * Only available in `afterRead` hooks.
19
+ */ /**
20
+ * Only available in `afterRead` field hooks.
21
+ */ /**
22
+ * Only available in `afterRead` hooks.
23
+ */ /**
24
+ * Only available in `afterRead` hooks.
25
+ */ /**
26
+ * Only available in `afterRead` hooks.
27
+ */ /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */ /** The value of the node before any changes. Not available in afterRead hooks */ /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */ /** The value of the node before any changes. Not available in afterRead hooks */ /**
28
+ * Only available in `beforeChange` hooks.
29
+ */ /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */ /** The value of the node before any changes. Not available in afterRead hooks */ /**
30
+ * The original node with locales (not modified by any hooks).
31
+ */ /** The value of the node. */ /** The payload request object. It is mocked for Local API operations. */ // Define the node with hooks that use the node's exportJSON return type
32
+ /**
33
+ * Allows you to define how a node can be serialized into different formats. Currently, only supports html.
34
+ * Markdown converters are defined in `markdownTransformers` and not here.
35
+ *
36
+ * @deprecated - will be removed in 4.0
37
+ */ /**
38
+ * @deprecated - will be removed in 4.0
39
+ */ /**
40
+ * If a node includes sub-fields (e.g. block and link nodes), passing those subFields here will make payload
41
+ * automatically populate, run hooks, and generate component import maps for them
42
+ */ /**
43
+ * Optional. If not provided, all possible sub-fields should be returned.
44
+ */ /**
45
+ * If a node includes sub-fields, the sub-fields data needs to be returned here, alongside `getSubFields` which returns their schema.
46
+ */ /**
47
+ * Allows you to run population logic when a node's data was requested from graphQL.
48
+ * While `getSubFields` and `getSubFieldsData` automatically handle populating sub-fields (since they run hooks on them), those are only populated in the Rest API.
49
+ * This is because the Rest API hooks do not have access to the 'depth' property provided by graphQL.
50
+ * In order for them to be populated correctly in graphQL, the population logic needs to be provided here.
51
+ */ /**
52
+ * Just like payload fields, you can provide hooks which are run for this specific node. These are called Node Hooks.
53
+ */ /**
54
+ * The actual lexical node needs to be provided here. This also supports [lexical node replacements](https://lexical.dev/docs/concepts/node-replacement).
55
+ */ /**
56
+ * This allows you to provide node validations, which are run when your document is being validated, alongside other payload fields.
57
+ * You can use it to throw a validation error for a specific node in case its data is incorrect.
58
+ */ /**
59
+ * This determines what props will be available on the Client.
60
+ */ /**
61
+ * Adds payload components to the importMap.
62
+ *
63
+ * If an object is provided, the imported components will automatically be made available to the client feature, keyed by the object's keys.
64
+ */ /**
65
+ * Current schema which will be modified by this function.
66
+ */ /**
67
+ * Allows you to define new top-level interfaces that can be re-used in the output schema.
68
+ */ /**
69
+ * Here you can provide i18n translations for your feature. These will only be available on the server and client.
70
+ *
71
+ * Translations here are automatically scoped to `lexical.featureKey.yourKey`
72
+ *
73
+ * @Example
74
+ * ```ts
75
+ * i18n: {
76
+ * en: {
77
+ * label: 'Horizontal Rule',
78
+ * },
79
+ * de: {
80
+ * label: 'Trennlinie',
81
+ * },
82
+ * }
83
+ * ```
84
+ * In order to access these translations, you would use `i18n.t('lexical:horizontalRule:label')`.
85
+ */ /** Props which were passed into your feature will have to be passed here. This will allow them to be used / read in other places of the code, e.g. wherever you can use useEditorConfigContext */ export { }; /** The node types mapped to their converters */ /** The keys of all enabled features */ /**
86
+ * Current schema which will be modified by this function.
87
+ */ /**
88
+ * Allows you to define new top-level interfaces that can be re-used in the output schema.
89
+ */ /** The node types mapped to their hooks */ /** The node types mapped to their populationPromises */ /** The node types mapped to their validations */
90
+
2
91
  //# sourceMappingURL=typesServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typesServer.js","names":[],"sources":["../../src/features/typesServer.ts"],"sourcesContent":["import type { GenericLanguages, I18n, I18nClient } from '@payloadcms/translations'\nimport type { JSONSchema4 } from 'json-schema'\nimport type {\n Klass,\n LexicalNode,\n LexicalNodeReplacement,\n SerializedEditorState,\n SerializedLexicalNode,\n} from 'lexical'\nimport type {\n Field,\n FieldSchemaMap,\n ImportMapGenerators,\n JsonObject,\n PayloadComponent,\n PayloadRequest,\n PopulateType,\n ReplaceAny,\n RequestContext,\n RichTextField,\n RichTextHooks,\n SanitizedConfig,\n TypedFallbackLocale,\n ValidateOptions,\n ValidationFieldError,\n} from 'payload'\n\nimport type { ServerEditorConfig } from '../lexical/config/types.js'\nimport type { Transformer } from '../packages/@lexical/markdown/index.js'\nimport type { LexicalRichTextField } from '../types.js'\nimport type { HTMLConverter } from './converters/lexicalToHtml_deprecated/converter/types.js'\nimport type { BaseClientFeatureProps } from './typesClient.js'\n\nexport type PopulationPromise<T extends SerializedLexicalNode = SerializedLexicalNode> = (args: {\n context: RequestContext\n currentDepth: number\n depth: number\n draft: boolean\n /**\n * This maps all population promises to the node type\n */\n editorPopulationPromises: Map<string, Array<PopulationPromise>>\n field: LexicalRichTextField\n /**\n * fieldPromises are used for things like field hooks. They will be awaited before awaiting populationPromises\n */\n fieldPromises: Promise<void>[]\n findMany: boolean\n flattenLocales: boolean\n node: T\n overrideAccess: boolean\n parentIsLocalized: boolean\n populationPromises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: JsonObject\n}) => void\n\nexport type NodeValidation<T extends SerializedLexicalNode = SerializedLexicalNode> = ({\n node,\n nodeValidations,\n validation,\n}: {\n node: T\n nodeValidations: Map<string, Array<NodeValidation>>\n validation: {\n options: ValidateOptions<unknown, unknown, RichTextField, SerializedEditorState>\n value: SerializedEditorState\n }\n}) => Promise<string | true> | string | true\n\nexport type FeatureProviderProviderServer<\n UnSanitizedServerFeatureProps = undefined,\n ServerFeatureProps = UnSanitizedServerFeatureProps,\n ClientFeatureProps = undefined,\n> = (\n props?: UnSanitizedServerFeatureProps,\n) => FeatureProviderServer<UnSanitizedServerFeatureProps, ServerFeatureProps, ClientFeatureProps>\n\nexport type FeatureProviderServer<\n UnSanitizedServerFeatureProps = undefined,\n ServerFeatureProps = UnSanitizedServerFeatureProps,\n ClientFeatureProps = undefined,\n> = {\n /** Keys of dependencies needed for this feature. These dependencies do not have to be loaded first, but they have to exist, otherwise an error will be thrown. */\n dependencies?: string[]\n /** Keys of priority dependencies needed for this feature. These dependencies have to be loaded first AND have to exist, otherwise an error will be thrown. They will be available in the `feature` property. */\n dependenciesPriority?: string[]\n /** Keys of soft-dependencies needed for this feature. These are optional. Payload will attempt to load them before this feature, but doesn't throw an error if that's not possible. */\n dependenciesSoft?: string[]\n\n /**\n * This is being called during the payload sanitization process\n */\n feature:\n | ((props: {\n config: SanitizedConfig\n /** unSanitizedEditorConfig.features, but mapped */\n featureProviderMap: ServerFeatureProviderMap\n isRoot?: boolean\n parentIsLocalized: boolean\n // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here\n resolvedFeatures: ResolvedServerFeatureMap\n // unSanitized EditorConfig,\n unSanitizedEditorConfig: ServerEditorConfig\n }) =>\n | Promise<ServerFeature<ServerFeatureProps, ClientFeatureProps>>\n | ServerFeature<ServerFeatureProps, ClientFeatureProps>)\n | ServerFeature<ServerFeatureProps, ClientFeatureProps>\n key: string\n /** Props which were passed into your feature will have to be passed here. This will allow them to be used / read in other places of the code, e.g. wherever you can use useEditorConfigContext */\n serverFeatureProps: UnSanitizedServerFeatureProps\n}\n\nexport type AfterReadNodeHookArgs<T extends SerializedLexicalNode> = {\n /**\n * Only available in `afterRead` hooks.\n */\n currentDepth: number\n /**\n * Only available in `afterRead` hooks.\n */\n depth: number\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n /**\n * Only available in `afterRead` field hooks.\n */\n fieldPromises: Promise<void>[]\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany: boolean\n flattenLocales: boolean\n /**\n * The requested locale.\n */\n locale: string\n overrideAccess: boolean\n /**\n * Only available in `afterRead` hooks.\n */\n populateArg?: PopulateType\n /**\n * Only available in `afterRead` field hooks.\n */\n populationPromises: Promise<void>[]\n /**\n * Only available in `afterRead` hooks.\n */\n showHiddenFields: boolean\n /**\n * Only available in `afterRead` hooks.\n */\n triggerAccessControl: boolean\n /**\n * Only available in `afterRead` hooks.\n */\n triggerHooks: boolean\n}\n\nexport type AfterChangeNodeHookArgs<T extends SerializedLexicalNode> = {\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation: 'create' | 'delete' | 'read' | 'update'\n /** The value of the node before any changes. Not available in afterRead hooks */\n originalNode: T\n previousNode: T\n}\nexport type BeforeValidateNodeHookArgs<T extends SerializedLexicalNode> = {\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation: 'create' | 'delete' | 'read' | 'update'\n /** The value of the node before any changes. Not available in afterRead hooks */\n originalNode: T\n overrideAccess: boolean\n}\n\nexport type BeforeChangeNodeHookArgs<T extends SerializedLexicalNode> = {\n /**\n * Only available in `beforeChange` hooks.\n */\n errors: ValidationFieldError[]\n mergeLocaleActions: (() => Promise<void> | void)[]\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation: 'create' | 'delete' | 'read' | 'update'\n /** The value of the node before any changes. Not available in afterRead hooks */\n originalNode: T\n /**\n * The original node with locales (not modified by any hooks).\n */\n originalNodeWithLocales?: T\n previousNode: T\n\n skipValidation: boolean\n}\n\nexport type BaseNodeHookArgs<T extends SerializedLexicalNode> = {\n context: RequestContext\n /** The value of the node. */\n node: T\n parentRichTextFieldPath: (number | string)[]\n parentRichTextFieldSchemaPath: string[]\n /** The payload request object. It is mocked for Local API operations. */\n req: PayloadRequest\n}\n\nexport type AfterReadNodeHook<T extends SerializedLexicalNode> = (\n args: AfterReadNodeHookArgs<T> & BaseNodeHookArgs<T>,\n) => Promise<T> | T\n\nexport type AfterChangeNodeHook<T extends SerializedLexicalNode> = (\n args: AfterChangeNodeHookArgs<T> & BaseNodeHookArgs<T>,\n) => Promise<T> | T\n\nexport type BeforeChangeNodeHook<T extends SerializedLexicalNode> = (\n args: BaseNodeHookArgs<T> & BeforeChangeNodeHookArgs<T>,\n) => Promise<T> | T\n\nexport type BeforeValidateNodeHook<T extends SerializedLexicalNode> = (\n args: BaseNodeHookArgs<T> & BeforeValidateNodeHookArgs<T>,\n) => Promise<T> | T\n\n// Define the node with hooks that use the node's exportJSON return type\nexport type NodeWithHooks<T extends LexicalNode = any> = {\n /**\n * Allows you to define how a node can be serialized into different formats. Currently, only supports html.\n * Markdown converters are defined in `markdownTransformers` and not here.\n *\n * @deprecated - will be removed in 4.0\n */\n converters?: {\n /**\n * @deprecated - will be removed in 4.0\n */\n html?: HTMLConverter<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>\n }\n /**\n * If a node includes sub-fields (e.g. block and link nodes), passing those subFields here will make payload\n * automatically populate, run hooks, and generate component import maps for them\n */\n getSubFields?: (args: {\n /**\n * Optional. If not provided, all possible sub-fields should be returned.\n */\n node?: ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>\n req?: PayloadRequest\n }) => Field[] | null\n /**\n * If a node includes sub-fields, the sub-fields data needs to be returned here, alongside `getSubFields` which returns their schema.\n */\n getSubFieldsData?: (args: {\n node: ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>\n req: PayloadRequest\n }) => JsonObject\n /**\n * Allows you to run population logic when a node's data was requested from graphQL.\n * While `getSubFields` and `getSubFieldsData` automatically handle populating sub-fields (since they run hooks on them), those are only populated in the Rest API.\n * This is because the Rest API hooks do not have access to the 'depth' property provided by graphQL.\n * In order for them to be populated correctly in graphQL, the population logic needs to be provided here.\n */\n graphQLPopulationPromises?: Array<\n PopulationPromise<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>\n >\n /**\n * Just like payload fields, you can provide hooks which are run for this specific node. These are called Node Hooks.\n */\n hooks?: {\n afterChange?: Array<AfterChangeNodeHook<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>>\n afterRead?: Array<AfterReadNodeHook<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>>\n beforeChange?: Array<BeforeChangeNodeHook<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>>\n beforeValidate?: Array<\n BeforeValidateNodeHook<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>\n >\n }\n /**\n * The actual lexical node needs to be provided here. This also supports [lexical node replacements](https://lexical.dev/docs/concepts/node-replacement).\n */\n node: Klass<T> | LexicalNodeReplacement\n /**\n * This allows you to provide node validations, which are run when your document is being validated, alongside other payload fields.\n * You can use it to throw a validation error for a specific node in case its data is incorrect.\n */\n validations?: Array<NodeValidation<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>>\n}\n\nexport type ServerFeature<ServerProps, ClientFeatureProps> = {\n ClientFeature?: PayloadComponent<never, BaseClientFeatureProps<ClientFeatureProps>>\n /**\n * This determines what props will be available on the Client.\n */\n clientFeatureProps?: ClientFeatureProps\n /**\n * Adds payload components to the importMap.\n *\n * If an object is provided, the imported components will automatically be made available to the client feature, keyed by the object's keys.\n */\n componentImports?:\n | {\n [key: string]: PayloadComponent\n }\n | ImportMapGenerators[0]\n | PayloadComponent[]\n generatedTypes?: {\n modifyOutputSchema: (args: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n /**\n * Current schema which will be modified by this function.\n */\n currentSchema: JSONSchema4\n field: LexicalRichTextField\n i18n?: I18n\n /**\n * Allows you to define new top-level interfaces that can be re-used in the output schema.\n */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n isRequired: boolean\n }) => JSONSchema4\n }\n generateSchemaMap?: (args: {\n config: SanitizedConfig\n field: RichTextField\n i18n: I18nClient\n props: ServerProps\n schemaMap: FieldSchemaMap\n schemaPath: string\n }) => FieldSchemaMap | null\n hooks?: RichTextHooks\n /**\n * Here you can provide i18n translations for your feature. These will only be available on the server and client.\n *\n * Translations here are automatically scoped to `lexical.featureKey.yourKey`\n *\n * @Example\n * ```ts\n * i18n: {\n * en: {\n * label: 'Horizontal Rule',\n * },\n * de: {\n * label: 'Trennlinie',\n * },\n * }\n * ```\n * In order to access these translations, you would use `i18n.t('lexical:horizontalRule:label')`.\n */\n i18n?: Partial<GenericLanguages>\n markdownTransformers?: (\n | ((props: { allNodes: Array<NodeWithHooks>; allTransformers: Transformer[] }) => Transformer)\n | Transformer\n )[]\n nodes?: Array<NodeWithHooks>\n\n /** Props which were passed into your feature will have to be passed here. This will allow them to be used / read in other places of the code, e.g. wherever you can use useEditorConfigContext */\n sanitizedServerFeatureProps?: ServerProps\n}\n\nexport type ResolvedServerFeature<ServerProps, ClientFeatureProps> = {\n order: number\n} & Required<\n Pick<\n FeatureProviderServer<ServerProps, ClientFeatureProps>,\n 'dependencies' | 'dependenciesPriority' | 'dependenciesSoft' | 'key'\n >\n> &\n ServerFeature<ServerProps, ClientFeatureProps>\n\nexport type ResolvedServerFeatureMap = Map<string, ResolvedServerFeature<any, any>>\n\nexport type ServerFeatureProviderMap = Map<string, FeatureProviderServer<any, any, any>>\n\nexport type SanitizedServerFeatures = {\n /** The node types mapped to their converters */\n converters: {\n html: HTMLConverter[]\n }\n /** The keys of all enabled features */\n enabledFeatures: string[]\n generatedTypes: {\n modifyOutputSchemas: Array<\n (args: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n /**\n * Current schema which will be modified by this function.\n */\n currentSchema: JSONSchema4\n field: LexicalRichTextField\n i18n?: I18n\n /**\n * Allows you to define new top-level interfaces that can be re-used in the output schema.\n */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n isRequired: boolean\n }) => JSONSchema4\n >\n }\n /** The node types mapped to their hooks */\n\n getSubFields?: Map<\n string,\n (args: { node: SerializedLexicalNode; req: PayloadRequest }) => Field[] | null\n >\n getSubFieldsData?: Map<\n string,\n (args: { node: SerializedLexicalNode; req: PayloadRequest }) => JsonObject\n >\n graphQLPopulationPromises: Map<string, Array<PopulationPromise>>\n hooks: RichTextHooks\n markdownTransformers: Transformer[]\n nodeHooks?: {\n afterChange?: Map<string, Array<AfterChangeNodeHook<SerializedLexicalNode>>>\n afterRead?: Map<string, Array<AfterReadNodeHook<SerializedLexicalNode>>>\n beforeChange?: Map<string, Array<BeforeChangeNodeHook<SerializedLexicalNode>>>\n beforeValidate?: Map<string, Array<BeforeValidateNodeHook<SerializedLexicalNode>>>\n } /** The node types mapped to their populationPromises */\n /** The node types mapped to their validations */\n validations: Map<string, Array<NodeValidation>>\n} & Required<Pick<ResolvedServerFeature<any, any>, 'i18n' | 'nodes'>>\n"],"mappings":"AAgXA","ignoreList":[]}
1
+ {"version":3,"sources":["../../src/features/typesServer.ts"],"sourcesContent":["import type { GenericLanguages, I18n, I18nClient } from '@payloadcms/translations'\nimport type { JSONSchema4 } from 'json-schema'\nimport type {\n Klass,\n LexicalNode,\n LexicalNodeReplacement,\n SerializedEditorState,\n SerializedLexicalNode,\n} from 'lexical'\nimport type {\n Field,\n FieldSchemaMap,\n ImportMapGenerators,\n JsonObject,\n PayloadComponent,\n PayloadRequest,\n PopulateType,\n ReplaceAny,\n RequestContext,\n RichTextField,\n RichTextHooks,\n SanitizedConfig,\n TypedFallbackLocale,\n ValidateOptions,\n ValidationFieldError,\n} from 'payload'\n\nimport type { ServerEditorConfig } from '../lexical/config/types.js'\nimport type { Transformer } from '../packages/@lexical/markdown/index.js'\nimport type { LexicalRichTextField } from '../types.js'\nimport type { HTMLConverter } from './converters/lexicalToHtml_deprecated/converter/types.js'\nimport type { BaseClientFeatureProps } from './typesClient.js'\n\nexport type PopulationPromise<T extends SerializedLexicalNode = SerializedLexicalNode> = (args: {\n context: RequestContext\n currentDepth: number\n depth: number\n draft: boolean\n /**\n * This maps all population promises to the node type\n */\n editorPopulationPromises: Map<string, Array<PopulationPromise>>\n field: LexicalRichTextField\n /**\n * fieldPromises are used for things like field hooks. They will be awaited before awaiting populationPromises\n */\n fieldPromises: Promise<void>[]\n findMany: boolean\n flattenLocales: boolean\n node: T\n overrideAccess: boolean\n parentIsLocalized: boolean\n populationPromises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: JsonObject\n}) => void\n\nexport type NodeValidation<T extends SerializedLexicalNode = SerializedLexicalNode> = ({\n node,\n nodeValidations,\n validation,\n}: {\n node: T\n nodeValidations: Map<string, Array<NodeValidation>>\n validation: {\n options: ValidateOptions<unknown, unknown, RichTextField, SerializedEditorState>\n value: SerializedEditorState\n }\n}) => Promise<string | true> | string | true\n\nexport type FeatureProviderProviderServer<\n UnSanitizedServerFeatureProps = undefined,\n ServerFeatureProps = UnSanitizedServerFeatureProps,\n ClientFeatureProps = undefined,\n> = (\n props?: UnSanitizedServerFeatureProps,\n) => FeatureProviderServer<UnSanitizedServerFeatureProps, ServerFeatureProps, ClientFeatureProps>\n\nexport type FeatureProviderServer<\n UnSanitizedServerFeatureProps = undefined,\n ServerFeatureProps = UnSanitizedServerFeatureProps,\n ClientFeatureProps = undefined,\n> = {\n /** Keys of dependencies needed for this feature. These dependencies do not have to be loaded first, but they have to exist, otherwise an error will be thrown. */\n dependencies?: string[]\n /** Keys of priority dependencies needed for this feature. These dependencies have to be loaded first AND have to exist, otherwise an error will be thrown. They will be available in the `feature` property. */\n dependenciesPriority?: string[]\n /** Keys of soft-dependencies needed for this feature. These are optional. Payload will attempt to load them before this feature, but doesn't throw an error if that's not possible. */\n dependenciesSoft?: string[]\n\n /**\n * This is being called during the payload sanitization process\n */\n feature:\n | ((props: {\n config: SanitizedConfig\n /** unSanitizedEditorConfig.features, but mapped */\n featureProviderMap: ServerFeatureProviderMap\n isRoot?: boolean\n parentIsLocalized: boolean\n // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here\n resolvedFeatures: ResolvedServerFeatureMap\n // unSanitized EditorConfig,\n unSanitizedEditorConfig: ServerEditorConfig\n }) =>\n | Promise<ServerFeature<ServerFeatureProps, ClientFeatureProps>>\n | ServerFeature<ServerFeatureProps, ClientFeatureProps>)\n | ServerFeature<ServerFeatureProps, ClientFeatureProps>\n key: string\n /** Props which were passed into your feature will have to be passed here. This will allow them to be used / read in other places of the code, e.g. wherever you can use useEditorConfigContext */\n serverFeatureProps: UnSanitizedServerFeatureProps\n}\n\nexport type AfterReadNodeHookArgs<T extends SerializedLexicalNode> = {\n /**\n * Only available in `afterRead` hooks.\n */\n currentDepth: number\n /**\n * Only available in `afterRead` hooks.\n */\n depth: number\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n /**\n * Only available in `afterRead` field hooks.\n */\n fieldPromises: Promise<void>[]\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany: boolean\n flattenLocales: boolean\n /**\n * The requested locale.\n */\n locale: string\n overrideAccess: boolean\n /**\n * Only available in `afterRead` hooks.\n */\n populateArg?: PopulateType\n /**\n * Only available in `afterRead` field hooks.\n */\n populationPromises: Promise<void>[]\n /**\n * Only available in `afterRead` hooks.\n */\n showHiddenFields: boolean\n /**\n * Only available in `afterRead` hooks.\n */\n triggerAccessControl: boolean\n /**\n * Only available in `afterRead` hooks.\n */\n triggerHooks: boolean\n}\n\nexport type AfterChangeNodeHookArgs<T extends SerializedLexicalNode> = {\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation: 'create' | 'delete' | 'read' | 'update'\n /** The value of the node before any changes. Not available in afterRead hooks */\n originalNode: T\n previousNode: T\n}\nexport type BeforeValidateNodeHookArgs<T extends SerializedLexicalNode> = {\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation: 'create' | 'delete' | 'read' | 'update'\n /** The value of the node before any changes. Not available in afterRead hooks */\n originalNode: T\n overrideAccess: boolean\n}\n\nexport type BeforeChangeNodeHookArgs<T extends SerializedLexicalNode> = {\n /**\n * Only available in `beforeChange` hooks.\n */\n errors: ValidationFieldError[]\n mergeLocaleActions: (() => Promise<void> | void)[]\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation: 'create' | 'delete' | 'read' | 'update'\n /** The value of the node before any changes. Not available in afterRead hooks */\n originalNode: T\n /**\n * The original node with locales (not modified by any hooks).\n */\n originalNodeWithLocales?: T\n previousNode: T\n\n skipValidation: boolean\n}\n\nexport type BaseNodeHookArgs<T extends SerializedLexicalNode> = {\n context: RequestContext\n /** The value of the node. */\n node: T\n parentRichTextFieldPath: (number | string)[]\n parentRichTextFieldSchemaPath: string[]\n /** The payload request object. It is mocked for Local API operations. */\n req: PayloadRequest\n}\n\nexport type AfterReadNodeHook<T extends SerializedLexicalNode> = (\n args: AfterReadNodeHookArgs<T> & BaseNodeHookArgs<T>,\n) => Promise<T> | T\n\nexport type AfterChangeNodeHook<T extends SerializedLexicalNode> = (\n args: AfterChangeNodeHookArgs<T> & BaseNodeHookArgs<T>,\n) => Promise<T> | T\n\nexport type BeforeChangeNodeHook<T extends SerializedLexicalNode> = (\n args: BaseNodeHookArgs<T> & BeforeChangeNodeHookArgs<T>,\n) => Promise<T> | T\n\nexport type BeforeValidateNodeHook<T extends SerializedLexicalNode> = (\n args: BaseNodeHookArgs<T> & BeforeValidateNodeHookArgs<T>,\n) => Promise<T> | T\n\n// Define the node with hooks that use the node's exportJSON return type\nexport type NodeWithHooks<T extends LexicalNode = any> = {\n /**\n * Allows you to define how a node can be serialized into different formats. Currently, only supports html.\n * Markdown converters are defined in `markdownTransformers` and not here.\n *\n * @deprecated - will be removed in 4.0\n */\n converters?: {\n /**\n * @deprecated - will be removed in 4.0\n */\n html?: HTMLConverter<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>\n }\n /**\n * If a node includes sub-fields (e.g. block and link nodes), passing those subFields here will make payload\n * automatically populate, run hooks, and generate component import maps for them\n */\n getSubFields?: (args: {\n /**\n * Optional. If not provided, all possible sub-fields should be returned.\n */\n node?: ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>\n req?: PayloadRequest\n }) => Field[] | null\n /**\n * If a node includes sub-fields, the sub-fields data needs to be returned here, alongside `getSubFields` which returns their schema.\n */\n getSubFieldsData?: (args: {\n node: ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>\n req: PayloadRequest\n }) => JsonObject\n /**\n * Allows you to run population logic when a node's data was requested from graphQL.\n * While `getSubFields` and `getSubFieldsData` automatically handle populating sub-fields (since they run hooks on them), those are only populated in the Rest API.\n * This is because the Rest API hooks do not have access to the 'depth' property provided by graphQL.\n * In order for them to be populated correctly in graphQL, the population logic needs to be provided here.\n */\n graphQLPopulationPromises?: Array<\n PopulationPromise<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>\n >\n /**\n * Just like payload fields, you can provide hooks which are run for this specific node. These are called Node Hooks.\n */\n hooks?: {\n afterChange?: Array<AfterChangeNodeHook<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>>\n afterRead?: Array<AfterReadNodeHook<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>>\n beforeChange?: Array<BeforeChangeNodeHook<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>>\n beforeValidate?: Array<\n BeforeValidateNodeHook<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>\n >\n }\n /**\n * The actual lexical node needs to be provided here. This also supports [lexical node replacements](https://lexical.dev/docs/concepts/node-replacement).\n */\n node: Klass<T> | LexicalNodeReplacement\n /**\n * This allows you to provide node validations, which are run when your document is being validated, alongside other payload fields.\n * You can use it to throw a validation error for a specific node in case its data is incorrect.\n */\n validations?: Array<NodeValidation<ReturnType<ReplaceAny<T, LexicalNode>['exportJSON']>>>\n}\n\nexport type ServerFeature<ServerProps, ClientFeatureProps> = {\n ClientFeature?: PayloadComponent<never, BaseClientFeatureProps<ClientFeatureProps>>\n /**\n * This determines what props will be available on the Client.\n */\n clientFeatureProps?: ClientFeatureProps\n /**\n * Adds payload components to the importMap.\n *\n * If an object is provided, the imported components will automatically be made available to the client feature, keyed by the object's keys.\n */\n componentImports?:\n | {\n [key: string]: PayloadComponent\n }\n | ImportMapGenerators[0]\n | PayloadComponent[]\n generatedTypes?: {\n modifyOutputSchema: (args: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n /**\n * Current schema which will be modified by this function.\n */\n currentSchema: JSONSchema4\n field: LexicalRichTextField\n i18n?: I18n\n /**\n * Allows you to define new top-level interfaces that can be re-used in the output schema.\n */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n isRequired: boolean\n }) => JSONSchema4\n }\n generateSchemaMap?: (args: {\n config: SanitizedConfig\n field: RichTextField\n i18n: I18nClient\n props: ServerProps\n schemaMap: FieldSchemaMap\n schemaPath: string\n }) => FieldSchemaMap | null\n hooks?: RichTextHooks\n /**\n * Here you can provide i18n translations for your feature. These will only be available on the server and client.\n *\n * Translations here are automatically scoped to `lexical.featureKey.yourKey`\n *\n * @Example\n * ```ts\n * i18n: {\n * en: {\n * label: 'Horizontal Rule',\n * },\n * de: {\n * label: 'Trennlinie',\n * },\n * }\n * ```\n * In order to access these translations, you would use `i18n.t('lexical:horizontalRule:label')`.\n */\n i18n?: Partial<GenericLanguages>\n markdownTransformers?: (\n | ((props: { allNodes: Array<NodeWithHooks>; allTransformers: Transformer[] }) => Transformer)\n | Transformer\n )[]\n nodes?: Array<NodeWithHooks>\n\n /** Props which were passed into your feature will have to be passed here. This will allow them to be used / read in other places of the code, e.g. wherever you can use useEditorConfigContext */\n sanitizedServerFeatureProps?: ServerProps\n}\n\nexport type ResolvedServerFeature<ServerProps, ClientFeatureProps> = {\n order: number\n} & Required<\n Pick<\n FeatureProviderServer<ServerProps, ClientFeatureProps>,\n 'dependencies' | 'dependenciesPriority' | 'dependenciesSoft' | 'key'\n >\n> &\n ServerFeature<ServerProps, ClientFeatureProps>\n\nexport type ResolvedServerFeatureMap = Map<string, ResolvedServerFeature<any, any>>\n\nexport type ServerFeatureProviderMap = Map<string, FeatureProviderServer<any, any, any>>\n\nexport type SanitizedServerFeatures = {\n /** The node types mapped to their converters */\n converters: {\n html: HTMLConverter[]\n }\n /** The keys of all enabled features */\n enabledFeatures: string[]\n generatedTypes: {\n modifyOutputSchemas: Array<\n (args: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n /**\n * Current schema which will be modified by this function.\n */\n currentSchema: JSONSchema4\n field: LexicalRichTextField\n i18n?: I18n\n /**\n * Allows you to define new top-level interfaces that can be re-used in the output schema.\n */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n isRequired: boolean\n }) => JSONSchema4\n >\n }\n /** The node types mapped to their hooks */\n\n getSubFields?: Map<\n string,\n (args: { node: SerializedLexicalNode; req: PayloadRequest }) => Field[] | null\n >\n getSubFieldsData?: Map<\n string,\n (args: { node: SerializedLexicalNode; req: PayloadRequest }) => JsonObject\n >\n graphQLPopulationPromises: Map<string, Array<PopulationPromise>>\n hooks: RichTextHooks\n markdownTransformers: Transformer[]\n nodeHooks?: {\n afterChange?: Map<string, Array<AfterChangeNodeHook<SerializedLexicalNode>>>\n afterRead?: Map<string, Array<AfterReadNodeHook<SerializedLexicalNode>>>\n beforeChange?: Map<string, Array<BeforeChangeNodeHook<SerializedLexicalNode>>>\n beforeValidate?: Map<string, Array<BeforeValidateNodeHook<SerializedLexicalNode>>>\n } /** The node types mapped to their populationPromises */\n /** The node types mapped to their validations */\n validations: Map<string, Array<NodeValidation>>\n} & Required<Pick<ResolvedServerFeature<any, any>, 'i18n' | 'nodes'>>\n"],"names":[],"mappings":"AAsCE;;GAEC,GAGD;;GAEC,GAuCD,gKAAgK,GAEhK,+MAA+M,GAE/M,qLAAqL,GAGrL;;GAEC,GAIK,iDAAiD,GAIjD,oIAAoI;AAEpI,4BAA4B;AAOlC,gMAAgM,GAKhM;;GAEC,GAED;;GAEC,GAID;;GAEC,GAED,8GAA8G,GAG9G;;GAEC,GAGD;;GAEC,GAED;;GAEC,GAED;;GAEC,GAED;;GAEC,GAED;;GAEC,GAKD,gNAAgN,GAEhN,+EAA+E,GAK/E,gNAAgN,GAEhN,+EAA+E,GAM/E;;GAEC,GAGD,gNAAgN,GAEhN,+EAA+E,GAE/E;;GAEC,GASD,2BAA2B,GAI3B,uEAAuE,GAoBzE,wEAAwE;AAEtE;;;;;GAKC,GAEC;;KAEC,GAGH;;;GAGC,GAEC;;KAEC,GAIH;;GAEC,GAKD;;;;;GAKC,GAID;;GAEC,GASD;;GAEC,GAED;;;GAGC,GAMD;;GAEC,GAED;;;;GAIC,GAWG;;OAEC,GAID;;OAEC,GAcL;;;;;;;;;;;;;;;;;GAiBC,GAQD,gMAAgM,GAkBlM,WA+CqE,CA9CnE,+CAA+C,IAI/C,qCAAqC,IAO/B;;SAEC,IAID;;SAEC,IAMP,0CAA0C,IAkBxC,uDAAuD,IACzD,gDAAgD"}