@payloadcms/richtext-lexical 4.0.0-internal.38b7f1d → 4.0.0-internal.3b50481

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 (1046) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/cell/rscEntry.d.ts +1 -1
  3. package/dist/cell/rscEntry.d.ts.map +1 -1
  4. package/dist/cell/rscEntry.js +5 -5
  5. package/dist/cell/rscEntry.js.map +1 -1
  6. package/dist/exports/client/Field-MT4FK3IP.js +2 -0
  7. package/dist/exports/client/Field-MT4FK3IP.js.map +7 -0
  8. package/dist/exports/client/{RelationshipComponent-5RONAYJM.js → RelationshipComponent-YCPAKOL7.js} +2 -2
  9. package/dist/exports/client/RelationshipComponent-YCPAKOL7.js.map +7 -0
  10. package/dist/exports/client/chunk-3LRZDIIG.js +2 -0
  11. package/dist/exports/client/chunk-3LRZDIIG.js.map +7 -0
  12. package/dist/exports/client/chunk-5VIL27GI.js +2 -0
  13. package/dist/exports/client/chunk-5VIL27GI.js.map +7 -0
  14. package/dist/exports/client/chunk-E6LSRRP2.js +2 -0
  15. package/dist/exports/client/chunk-E6LSRRP2.js.map +7 -0
  16. package/dist/exports/client/{chunk-BZZVLW4U.js → chunk-RJ5MAOKZ.js} +1 -1
  17. package/dist/exports/client/chunk-RJ5MAOKZ.js.map +7 -0
  18. package/dist/exports/client/chunk-ZQX5HXUL.js +2 -0
  19. package/dist/exports/client/chunk-ZQX5HXUL.js.map +7 -0
  20. package/dist/exports/client/component-6DQLENIE.js +2 -0
  21. package/dist/exports/client/component-6DQLENIE.js.map +7 -0
  22. package/dist/exports/client/componentInline-HNE5G4TE.js +2 -0
  23. package/dist/exports/client/index.d.ts +1 -2
  24. package/dist/exports/client/index.d.ts.map +1 -1
  25. package/dist/exports/client/index.js +28 -29
  26. package/dist/exports/client/index.js.map +4 -4
  27. package/dist/exports/react/index.d.ts +1 -1
  28. package/dist/exports/react/index.d.ts.map +1 -1
  29. package/dist/exports/react/index.js.map +1 -1
  30. package/dist/features/blockquote/client/index.js +2 -2
  31. package/dist/features/blockquote/client/index.js.map +1 -1
  32. package/dist/features/blockquote/server/index.d.ts +1 -4
  33. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  34. package/dist/features/blockquote/server/index.js +4 -2
  35. package/dist/features/blockquote/server/index.js.map +1 -1
  36. package/dist/features/blockquote/server/schema.d.ts +8 -0
  37. package/dist/features/blockquote/server/schema.d.ts.map +1 -0
  38. package/dist/features/blockquote/server/schema.js +15 -0
  39. package/dist/features/blockquote/server/schema.js.map +1 -0
  40. package/dist/features/blocks/client/component/BlockReordering/index.d.ts +11 -0
  41. package/dist/features/blocks/client/component/BlockReordering/index.d.ts.map +1 -0
  42. package/dist/features/blocks/client/component/BlockReordering/index.js +18 -0
  43. package/dist/features/blocks/client/component/BlockReordering/index.js.map +1 -0
  44. package/dist/features/blocks/client/component/index.css +2 -2
  45. package/dist/features/blocks/client/component/index.d.ts +3 -8
  46. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  47. package/dist/features/blocks/client/component/index.js +183 -107
  48. package/dist/features/blocks/client/component/index.js.map +1 -1
  49. package/dist/features/blocks/client/component/useBlockReordering.d.ts +16 -0
  50. package/dist/features/blocks/client/component/useBlockReordering.d.ts.map +1 -0
  51. package/dist/features/blocks/client/component/useBlockReordering.js +178 -0
  52. package/dist/features/blocks/client/component/useBlockReordering.js.map +1 -0
  53. package/dist/features/blocks/client/componentInline/index.css +8 -9
  54. package/dist/features/blocks/client/componentInline/index.d.ts +3 -2
  55. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  56. package/dist/features/blocks/client/componentInline/index.js +47 -31
  57. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  58. package/dist/features/blocks/client/getBlockImageComponent.d.ts +1 -1
  59. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts +9 -0
  60. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts.map +1 -0
  61. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js +95 -0
  62. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js.map +1 -0
  63. package/dist/features/blocks/client/index.d.ts.map +1 -1
  64. package/dist/features/blocks/client/index.js +4 -2
  65. package/dist/features/blocks/client/index.js.map +1 -1
  66. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +1 -1
  67. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -1
  68. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +1 -1
  69. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
  70. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +1 -1
  71. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -1
  72. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +5 -2
  73. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
  74. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +1 -2
  75. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  76. package/dist/features/blocks/client/markdown/markdownTransformer.js +4 -4
  77. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  78. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  79. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  80. package/dist/features/blocks/client/nodes/BlocksNode.js +0 -10
  81. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  82. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +2 -2
  83. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  84. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  85. package/dist/features/blocks/client/plugin/index.d.ts +1 -1
  86. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  87. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  88. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
  89. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +1 -0
  90. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  91. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.css +1 -1
  92. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +2 -4
  93. package/dist/features/blocks/premade/CodeBlock/Component/index.css +5 -5
  94. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +1 -2
  95. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  96. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  97. package/dist/features/blocks/server/index.d.ts +1 -0
  98. package/dist/features/blocks/server/index.d.ts.map +1 -1
  99. package/dist/features/blocks/server/index.js +26 -74
  100. package/dist/features/blocks/server/index.js.map +1 -1
  101. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +1 -1
  102. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  103. package/dist/features/blocks/server/markdown/markdownTransformer.js +4 -4
  104. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  105. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -18
  106. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  107. package/dist/features/blocks/server/nodes/BlocksNode.js +1 -12
  108. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  109. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +2 -10
  110. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  111. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +2 -2
  112. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  113. package/dist/features/blocks/server/schema.d.ts +47 -0
  114. package/dist/features/blocks/server/schema.d.ts.map +1 -0
  115. package/dist/features/blocks/server/schema.js +138 -0
  116. package/dist/features/blocks/server/schema.js.map +1 -0
  117. package/dist/features/blocks/server/validate.d.ts +1 -2
  118. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  119. package/dist/features/blocks/server/validate.js +1 -1
  120. package/dist/features/blocks/server/validate.js.map +1 -1
  121. package/dist/features/converters/htmlToLexical/index.d.ts +1 -1
  122. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  123. package/dist/features/converters/htmlToLexical/index.js.map +1 -1
  124. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts +1 -1
  125. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts.map +1 -1
  126. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
  127. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts +1 -1
  128. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts.map +1 -1
  129. package/dist/features/converters/lexicalToHtml/async/converters/heading.js +1 -1
  130. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  131. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts +1 -1
  132. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts.map +1 -1
  133. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
  134. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts +1 -1
  135. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts.map +1 -1
  136. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
  137. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts +1 -1
  138. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts.map +1 -1
  139. package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
  140. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts +1 -1
  141. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  142. package/dist/features/converters/lexicalToHtml/async/converters/list.js +4 -3
  143. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  144. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts +1 -1
  145. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts.map +1 -1
  146. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
  147. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts +1 -1
  148. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts.map +1 -1
  149. package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
  150. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts +1 -1
  151. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts.map +1 -1
  152. package/dist/features/converters/lexicalToHtml/async/converters/table.js +1 -1
  153. package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
  154. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts +1 -1
  155. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts.map +1 -1
  156. package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
  157. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts +1 -1
  158. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts.map +1 -1
  159. package/dist/features/converters/lexicalToHtml/async/converters/upload.js +3 -3
  160. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  161. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts +1 -1
  162. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts.map +1 -1
  163. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
  164. package/dist/features/converters/lexicalToHtml/async/types.d.ts +15 -16
  165. package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -1
  166. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  167. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.d.ts.map +1 -1
  168. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +3 -2
  169. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  170. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts +1 -1
  171. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts.map +1 -1
  172. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
  173. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts +1 -1
  174. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts.map +1 -1
  175. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js +1 -1
  176. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  177. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts +1 -1
  178. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts.map +1 -1
  179. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
  180. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts +1 -1
  181. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts.map +1 -1
  182. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
  183. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts +1 -1
  184. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts.map +1 -1
  185. package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
  186. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts +1 -1
  187. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  188. package/dist/features/converters/lexicalToHtml/sync/converters/list.js +4 -3
  189. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  190. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts +1 -1
  191. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts.map +1 -1
  192. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
  193. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts +1 -1
  194. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts.map +1 -1
  195. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
  196. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts +1 -1
  197. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts.map +1 -1
  198. package/dist/features/converters/lexicalToHtml/sync/converters/table.js +1 -1
  199. package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
  200. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts +1 -1
  201. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts.map +1 -1
  202. package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
  203. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts +1 -1
  204. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts.map +1 -1
  205. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js +3 -3
  206. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  207. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts +1 -1
  208. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts.map +1 -1
  209. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
  210. package/dist/features/converters/lexicalToHtml/sync/types.d.ts +15 -16
  211. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  212. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  213. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +6 -4
  214. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  215. package/dist/features/converters/lexicalToJSX/Component/index.js +5 -4
  216. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  217. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts +1 -1
  218. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts.map +1 -1
  219. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  220. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts +1 -1
  221. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  222. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +2 -1
  223. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  224. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts +1 -1
  225. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts.map +1 -1
  226. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  227. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts +1 -1
  228. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts.map +1 -1
  229. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  230. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts +1 -1
  231. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts.map +1 -1
  232. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  233. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts +1 -1
  234. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  235. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +2 -1
  236. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  237. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts +1 -1
  238. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts.map +1 -1
  239. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  240. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts +1 -1
  241. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts.map +1 -1
  242. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
  243. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts +1 -1
  244. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts.map +1 -1
  245. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  246. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts +1 -1
  247. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts.map +1 -1
  248. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  249. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts +1 -1
  250. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  251. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +4 -5
  252. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  253. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts +1 -1
  254. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts.map +1 -1
  255. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
  256. package/dist/features/converters/lexicalToJSX/converter/index.d.ts +1 -1
  257. package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
  258. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  259. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +13 -15
  260. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  261. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  262. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  263. package/dist/features/converters/lexicalToMarkdown/index.js +1 -1
  264. package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
  265. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
  266. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +13 -15
  267. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -1
  268. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  269. package/dist/features/converters/markdownToLexical/index.d.ts +1 -1
  270. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  271. package/dist/features/converters/markdownToLexical/index.js +5 -2
  272. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  273. package/dist/features/converters/utilities/payloadPopulateFn.d.ts.map +1 -1
  274. package/dist/features/converters/utilities/payloadPopulateFn.js +4 -2
  275. package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
  276. package/dist/features/debug/jsxConverter/client/plugin/style.css +2 -2
  277. package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
  278. package/dist/features/format/bold/feature.client.js +1 -1
  279. package/dist/features/format/bold/feature.client.js.map +1 -1
  280. package/dist/features/format/bold/feature.server.d.ts.map +1 -1
  281. package/dist/features/format/bold/feature.server.js +1 -1
  282. package/dist/features/format/bold/feature.server.js.map +1 -1
  283. package/dist/features/format/inlineCode/feature.client.js +1 -1
  284. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  285. package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
  286. package/dist/features/format/inlineCode/feature.server.js +1 -1
  287. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  288. package/dist/features/format/italic/feature.client.js +1 -1
  289. package/dist/features/format/italic/feature.client.js.map +1 -1
  290. package/dist/features/format/italic/feature.server.d.ts.map +1 -1
  291. package/dist/features/format/italic/feature.server.js +1 -1
  292. package/dist/features/format/italic/feature.server.js.map +1 -1
  293. package/dist/features/format/strikethrough/feature.client.js +1 -1
  294. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  295. package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
  296. package/dist/features/format/strikethrough/feature.server.js +1 -1
  297. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  298. package/dist/features/heading/client/index.js +2 -2
  299. package/dist/features/heading/client/index.js.map +1 -1
  300. package/dist/features/heading/constants.d.ts +2 -0
  301. package/dist/features/heading/constants.d.ts.map +1 -0
  302. package/dist/features/heading/constants.js +2 -0
  303. package/dist/features/heading/constants.js.map +1 -0
  304. package/dist/features/heading/markdownTransformer.d.ts +2 -2
  305. package/dist/features/heading/markdownTransformer.d.ts.map +1 -1
  306. package/dist/features/heading/markdownTransformer.js +6 -19
  307. package/dist/features/heading/markdownTransformer.js.map +1 -1
  308. package/dist/features/heading/server/index.d.ts +2 -4
  309. package/dist/features/heading/server/index.d.ts.map +1 -1
  310. package/dist/features/heading/server/index.js +9 -3
  311. package/dist/features/heading/server/index.js.map +1 -1
  312. package/dist/features/heading/server/schema.d.ts +10 -0
  313. package/dist/features/heading/server/schema.d.ts.map +1 -0
  314. package/dist/features/heading/server/schema.js +37 -0
  315. package/dist/features/heading/server/schema.js.map +1 -0
  316. package/dist/features/heading/server/validate.d.ts +6 -0
  317. package/dist/features/heading/server/validate.d.ts.map +1 -0
  318. package/dist/features/heading/server/validate.js +15 -0
  319. package/dist/features/heading/server/validate.js.map +1 -0
  320. package/dist/features/horizontalRule/client/index.js +2 -2
  321. package/dist/features/horizontalRule/client/index.js.map +1 -1
  322. package/dist/features/horizontalRule/client/markdownTransformer.d.ts +2 -2
  323. package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -1
  324. package/dist/features/horizontalRule/client/markdownTransformer.js +1 -1
  325. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  326. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +13 -3
  327. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  328. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +18 -1
  329. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  330. package/dist/features/horizontalRule/client/plugin/index.css +2 -2
  331. package/dist/features/horizontalRule/server/index.d.ts +1 -0
  332. package/dist/features/horizontalRule/server/index.d.ts.map +1 -1
  333. package/dist/features/horizontalRule/server/index.js +4 -2
  334. package/dist/features/horizontalRule/server/index.js.map +1 -1
  335. package/dist/features/horizontalRule/server/markdownTransformer.d.ts +2 -2
  336. package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -1
  337. package/dist/features/horizontalRule/server/markdownTransformer.js +1 -1
  338. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  339. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +2 -6
  340. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  341. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +3 -3
  342. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  343. package/dist/features/horizontalRule/server/schema.d.ts +8 -0
  344. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -0
  345. package/dist/features/horizontalRule/server/schema.js +26 -0
  346. package/dist/features/horizontalRule/server/schema.js.map +1 -0
  347. package/dist/features/indent/client/IndentPlugin.d.ts.map +1 -1
  348. package/dist/features/indent/client/IndentPlugin.js +122 -1
  349. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  350. package/dist/features/indent/server/i18n.d.ts.map +1 -1
  351. package/dist/features/indent/server/i18n.js +74 -37
  352. package/dist/features/indent/server/i18n.js.map +1 -1
  353. package/dist/features/link/client/index.d.ts.map +1 -1
  354. package/dist/features/link/client/index.js +2 -2
  355. package/dist/features/link/client/index.js.map +1 -1
  356. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  357. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  358. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  359. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  360. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +11 -8
  361. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  362. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +7 -13
  363. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +1 -1
  364. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -1
  365. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
  366. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  367. package/dist/features/link/markdownTransformer.d.ts +5 -5
  368. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  369. package/dist/features/link/markdownTransformer.js +2 -2
  370. package/dist/features/link/markdownTransformer.js.map +1 -1
  371. package/dist/features/link/nodes/AutoLinkNode.d.ts +4 -4
  372. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  373. package/dist/features/link/nodes/AutoLinkNode.js +4 -11
  374. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  375. package/dist/features/link/nodes/LinkNode.d.ts +4 -4
  376. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  377. package/dist/features/link/nodes/LinkNode.js +4 -16
  378. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  379. package/dist/features/link/server/baseFields.js.map +1 -1
  380. package/dist/features/link/server/graphQLPopulationPromise.d.ts +1 -1
  381. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  382. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
  383. package/dist/features/link/server/index.d.ts +2 -1
  384. package/dist/features/link/server/index.d.ts.map +1 -1
  385. package/dist/features/link/server/index.js +7 -4
  386. package/dist/features/link/server/index.js.map +1 -1
  387. package/dist/features/link/server/schema.d.ts +32 -0
  388. package/dist/features/link/server/schema.d.ts.map +1 -0
  389. package/dist/features/link/server/schema.js +171 -0
  390. package/dist/features/link/server/schema.js.map +1 -0
  391. package/dist/features/link/server/validate.d.ts +1 -1
  392. package/dist/features/link/server/validate.d.ts.map +1 -1
  393. package/dist/features/link/server/validate.js +1 -1
  394. package/dist/features/link/server/validate.js.map +1 -1
  395. package/dist/features/lists/checklist/client/index.js +1 -1
  396. package/dist/features/lists/checklist/client/index.js.map +1 -1
  397. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  398. package/dist/features/lists/checklist/server/index.js +9 -3
  399. package/dist/features/lists/checklist/server/index.js.map +1 -1
  400. package/dist/features/lists/orderedList/client/index.js +1 -1
  401. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  402. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  403. package/dist/features/lists/orderedList/server/index.js +9 -3
  404. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  405. package/dist/features/lists/plugin/index.d.ts +0 -9
  406. package/dist/features/lists/plugin/index.d.ts.map +1 -1
  407. package/dist/features/lists/plugin/index.js.map +1 -1
  408. package/dist/features/lists/shared/constants.d.ts +2 -0
  409. package/dist/features/lists/shared/constants.d.ts.map +1 -0
  410. package/dist/features/lists/shared/constants.js +2 -0
  411. package/dist/features/lists/shared/constants.js.map +1 -0
  412. package/dist/features/lists/shared/schema.d.ts +18 -0
  413. package/dist/features/lists/shared/schema.d.ts.map +1 -0
  414. package/dist/features/lists/shared/schema.js +62 -0
  415. package/dist/features/lists/shared/schema.js.map +1 -0
  416. package/dist/features/lists/shared/validate.d.ts +5 -0
  417. package/dist/features/lists/shared/validate.d.ts.map +1 -0
  418. package/dist/features/lists/shared/validate.js +15 -0
  419. package/dist/features/lists/shared/validate.js.map +1 -0
  420. package/dist/features/lists/unorderedList/client/index.js +1 -1
  421. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  422. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  423. package/dist/features/lists/unorderedList/server/index.js +9 -3
  424. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  425. package/dist/features/relationship/client/components/RelationshipComponent.d.ts +1 -1
  426. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  427. package/dist/features/relationship/client/components/RelationshipComponent.js +2 -2
  428. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  429. package/dist/features/relationship/client/components/index.css +4 -7
  430. package/dist/features/relationship/client/index.d.ts +2 -2
  431. package/dist/features/relationship/client/index.d.ts.map +1 -1
  432. package/dist/features/relationship/client/index.js.map +1 -1
  433. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  434. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  435. package/dist/features/relationship/client/nodes/RelationshipNode.js +0 -3
  436. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  437. package/dist/features/relationship/client/plugins/index.d.ts +3 -3
  438. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  439. package/dist/features/relationship/client/plugins/index.js +27 -31
  440. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  441. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts +2 -4
  442. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  443. package/dist/features/relationship/client/utils/useEnabledRelationships.js +52 -50
  444. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  445. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +3 -3
  446. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  447. package/dist/features/relationship/server/graphQLPopulationPromise.js +2 -2
  448. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  449. package/dist/features/relationship/server/index.d.ts +9 -1
  450. package/dist/features/relationship/server/index.d.ts.map +1 -1
  451. package/dist/features/relationship/server/index.js +30 -11
  452. package/dist/features/relationship/server/index.js.map +1 -1
  453. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -10
  454. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  455. package/dist/features/relationship/server/nodes/RelationshipNode.js +1 -5
  456. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  457. package/dist/features/relationship/server/schema.d.ts +29 -0
  458. package/dist/features/relationship/server/schema.d.ts.map +1 -0
  459. package/dist/features/relationship/server/schema.js +94 -0
  460. package/dist/features/relationship/server/schema.js.map +1 -0
  461. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +18 -0
  462. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -0
  463. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +30 -0
  464. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -0
  465. package/dist/features/table/client/index.d.ts.map +1 -0
  466. package/dist/features/{experimental_table → table}/client/index.js +2 -2
  467. package/dist/features/table/client/index.js.map +1 -0
  468. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts +8 -0
  469. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts.map +1 -0
  470. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js +19 -0
  471. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js.map +1 -0
  472. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +4 -5
  473. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  474. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +17 -44
  475. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  476. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  477. package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +41 -18
  478. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  479. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  480. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  481. package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +1 -4
  482. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  483. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  484. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  485. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  486. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  487. package/dist/features/table/client/utils/debounce.js.map +1 -0
  488. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  489. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  490. package/dist/features/table/markdownTransformer.d.ts +5 -0
  491. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  492. package/dist/features/{experimental_table → table}/markdownTransformer.js +6 -3
  493. package/dist/features/table/markdownTransformer.js.map +1 -0
  494. package/dist/features/table/server/index.d.ts +3 -0
  495. package/dist/features/table/server/index.d.ts.map +1 -0
  496. package/dist/features/{experimental_table → table}/server/index.js +10 -6
  497. package/dist/features/table/server/index.js.map +1 -0
  498. package/dist/features/table/server/schema.d.ts +27 -0
  499. package/dist/features/table/server/schema.d.ts.map +1 -0
  500. package/dist/features/table/server/schema.js +107 -0
  501. package/dist/features/table/server/schema.js.map +1 -0
  502. package/dist/features/textState/feature.client.js +1 -1
  503. package/dist/features/textState/feature.client.js.map +1 -1
  504. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts +8 -0
  505. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts.map +1 -0
  506. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js +80 -0
  507. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js.map +1 -0
  508. package/dist/features/toolbars/fixed/client/Toolbar/index.css +80 -8
  509. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  510. package/dist/features/toolbars/fixed/client/Toolbar/index.js +19 -1
  511. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  512. package/dist/features/toolbars/inline/client/Toolbar/index.css +2 -14
  513. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  514. package/dist/features/toolbars/inline/client/Toolbar/index.js +17 -2
  515. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  516. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  517. package/dist/features/toolbars/shared/ToolbarButton/index.js +1 -0
  518. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  519. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  520. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +86 -34
  521. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  522. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +23 -25
  523. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  524. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts +5 -0
  525. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts.map +1 -0
  526. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js +79 -0
  527. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js.map +1 -0
  528. package/dist/features/toolbars/shared/useToolbarStates.d.ts.map +1 -1
  529. package/dist/features/toolbars/shared/useToolbarStates.js +3 -1
  530. package/dist/features/toolbars/shared/useToolbarStates.js.map +1 -1
  531. package/dist/features/toolbars/types.d.ts +1 -1
  532. package/dist/features/toolbars/types.d.ts.map +1 -1
  533. package/dist/features/toolbars/types.js.map +1 -1
  534. package/dist/features/typesClient.d.ts +2 -2
  535. package/dist/features/typesClient.d.ts.map +1 -1
  536. package/dist/features/typesClient.js.map +1 -1
  537. package/dist/features/typesServer.d.ts +35 -53
  538. package/dist/features/typesServer.d.ts.map +1 -1
  539. package/dist/features/typesServer.js.map +1 -1
  540. package/dist/features/upload/client/component/index.css +22 -28
  541. package/dist/features/upload/client/component/index.d.ts +1 -1
  542. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  543. package/dist/features/upload/client/component/index.js +6 -5
  544. package/dist/features/upload/client/component/index.js.map +1 -1
  545. package/dist/features/upload/client/index.d.ts +3 -2
  546. package/dist/features/upload/client/index.d.ts.map +1 -1
  547. package/dist/features/upload/client/index.js.map +1 -1
  548. package/dist/features/upload/client/nodes/UploadNode.d.ts +1 -1
  549. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  550. package/dist/features/upload/client/nodes/UploadNode.js +0 -7
  551. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  552. package/dist/features/upload/client/plugin/index.d.ts +1 -1
  553. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  554. package/dist/features/upload/client/plugin/index.js +53 -56
  555. package/dist/features/upload/client/plugin/index.js.map +1 -1
  556. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +3 -3
  557. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  558. package/dist/features/upload/server/graphQLPopulationPromise.js +1 -1
  559. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  560. package/dist/features/upload/server/index.d.ts +7 -2
  561. package/dist/features/upload/server/index.d.ts.map +1 -1
  562. package/dist/features/upload/server/index.js +25 -20
  563. package/dist/features/upload/server/index.js.map +1 -1
  564. package/dist/features/upload/server/markdownTransformer.d.ts +2 -2
  565. package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -1
  566. package/dist/features/upload/server/markdownTransformer.js +1 -1
  567. package/dist/features/upload/server/markdownTransformer.js.map +1 -1
  568. package/dist/features/upload/server/nodes/UploadNode.d.ts +1 -55
  569. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  570. package/dist/features/upload/server/nodes/UploadNode.js +1 -9
  571. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  572. package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -1
  573. package/dist/features/upload/server/nodes/conversions.js.map +1 -1
  574. package/dist/features/upload/server/schema.d.ts +40 -0
  575. package/dist/features/upload/server/schema.d.ts.map +1 -0
  576. package/dist/features/upload/server/schema.js +147 -0
  577. package/dist/features/upload/server/schema.js.map +1 -0
  578. package/dist/features/upload/server/validate.d.ts +3 -3
  579. package/dist/features/upload/server/validate.d.ts.map +1 -1
  580. package/dist/features/upload/server/validate.js +4 -1
  581. package/dist/features/upload/server/validate.js.map +1 -1
  582. package/dist/field/Diff/converters/link.d.ts +1 -1
  583. package/dist/field/Diff/converters/link.d.ts.map +1 -1
  584. package/dist/field/Diff/converters/link.js.map +1 -1
  585. package/dist/field/Diff/converters/listitem/index.css +44 -8
  586. package/dist/field/Diff/converters/listitem/index.d.ts +1 -1
  587. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  588. package/dist/field/Diff/converters/listitem/index.js +2 -1
  589. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  590. package/dist/field/Diff/converters/relationship/index.css +75 -36
  591. package/dist/field/Diff/converters/relationship/index.d.ts +1 -1
  592. package/dist/field/Diff/converters/relationship/index.d.ts.map +1 -1
  593. package/dist/field/Diff/converters/relationship/index.js +10 -28
  594. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  595. package/dist/field/Diff/converters/unknown/index.css +1 -2
  596. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  597. package/dist/field/Diff/converters/upload/index.css +105 -43
  598. package/dist/field/Diff/converters/upload/index.d.ts +1 -1
  599. package/dist/field/Diff/converters/upload/index.d.ts.map +1 -1
  600. package/dist/field/Diff/converters/upload/index.js +6 -2
  601. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  602. package/dist/field/Diff/index.css +114 -61
  603. package/dist/field/Diff/index.d.ts +3 -2
  604. package/dist/field/Diff/index.d.ts.map +1 -1
  605. package/dist/field/Diff/index.js +3 -2
  606. package/dist/field/Diff/index.js.map +1 -1
  607. package/dist/field/Field.d.ts +1 -1
  608. package/dist/field/Field.d.ts.map +1 -1
  609. package/dist/field/Field.js +29 -20
  610. package/dist/field/Field.js.map +1 -1
  611. package/dist/field/RenderLexical/index.d.ts +5 -3
  612. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  613. package/dist/field/RenderLexical/index.js +23 -23
  614. package/dist/field/RenderLexical/index.js.map +1 -1
  615. package/dist/field/RichTextViewProvider.d.ts +1 -1
  616. package/dist/field/RichTextViewProvider.d.ts.map +1 -1
  617. package/dist/field/RichTextViewProvider.js.map +1 -1
  618. package/dist/field/ViewSelector.css +1 -1
  619. package/dist/field/ViewSelector.d.ts.map +1 -1
  620. package/dist/field/ViewSelector.js +1 -0
  621. package/dist/field/ViewSelector.js.map +1 -1
  622. package/dist/field/bundled.css +1 -1
  623. package/dist/field/index.css +15 -16
  624. package/dist/field/index.d.ts +1 -1
  625. package/dist/field/index.d.ts.map +1 -1
  626. package/dist/field/index.js +1 -1
  627. package/dist/field/index.js.map +1 -1
  628. package/dist/field/rscEntry.d.ts +2 -2
  629. package/dist/field/rscEntry.d.ts.map +1 -1
  630. package/dist/field/rscEntry.js +2 -0
  631. package/dist/field/rscEntry.js.map +1 -1
  632. package/dist/hooks.d.ts +6 -0
  633. package/dist/hooks.d.ts.map +1 -0
  634. package/dist/hooks.js +548 -0
  635. package/dist/hooks.js.map +1 -0
  636. package/dist/i18n.d.ts.map +1 -1
  637. package/dist/i18n.js +68 -0
  638. package/dist/i18n.js.map +1 -1
  639. package/dist/index.d.ts +15 -12
  640. package/dist/index.d.ts.map +1 -1
  641. package/dist/index.js +37 -624
  642. package/dist/index.js.map +1 -1
  643. package/dist/lexical/LexicalEditor.css +30 -19
  644. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  645. package/dist/lexical/LexicalEditor.js +61 -64
  646. package/dist/lexical/LexicalEditor.js.map +1 -1
  647. package/dist/lexical/LexicalProvider.d.ts +1 -1
  648. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  649. package/dist/lexical/LexicalProvider.js.map +1 -1
  650. package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  651. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  652. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  653. package/dist/lexical/config/client/loader.d.ts +1 -1
  654. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  655. package/dist/lexical/config/client/loader.js +5 -1
  656. package/dist/lexical/config/client/loader.js.map +1 -1
  657. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  658. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  659. package/dist/lexical/config/client/sanitize.js.map +1 -1
  660. package/dist/lexical/config/server/loader.d.ts +1 -1
  661. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  662. package/dist/lexical/config/server/loader.js +2 -2
  663. package/dist/lexical/config/server/loader.js.map +1 -1
  664. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  665. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  666. package/dist/lexical/config/server/sanitize.js +11 -13
  667. package/dist/lexical/config/server/sanitize.js.map +1 -1
  668. package/dist/lexical/config/types.d.ts +1 -1
  669. package/dist/lexical/config/types.d.ts.map +1 -1
  670. package/dist/lexical/config/types.js.map +1 -1
  671. package/dist/lexical/nodes/index.d.ts +1 -1
  672. package/dist/lexical/nodes/index.d.ts.map +1 -1
  673. package/dist/lexical/nodes/index.js.map +1 -1
  674. package/dist/lexical/plugins/DecoratorPlugin/index.css +1 -1
  675. package/dist/lexical/plugins/DecoratorPlugin/index.d.ts.map +1 -1
  676. package/dist/lexical/plugins/DecoratorPlugin/index.js +24 -21
  677. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  678. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +18 -25
  679. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  680. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +27 -14
  681. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  682. package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
  683. package/dist/lexical/plugins/MarkdownShortcut/index.js +1 -1
  684. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  685. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -1
  686. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +21 -0
  687. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -1
  688. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  689. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  690. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -21
  691. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  692. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +1 -1
  693. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  694. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  695. package/dist/lexical/plugins/SlashMenu/index.css +1 -7
  696. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +2 -1
  697. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +2 -2
  698. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  699. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +5 -3
  700. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  701. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +17 -3
  702. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  703. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts +7 -0
  704. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts.map +1 -0
  705. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js +65 -0
  706. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js.map +1 -0
  707. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
  708. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +2 -0
  709. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  710. package/dist/lexical/theme/EditorTheme.css +20 -23
  711. package/dist/lexical/ui/ContentEditable.css +22 -17
  712. package/dist/lexical/ui/ContentEditable.d.ts +2 -1
  713. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
  714. package/dist/lexical/ui/ContentEditable.js +21 -7
  715. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  716. package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
  717. package/dist/lexical/ui/icons/H3/index.js +13 -6
  718. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  719. package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
  720. package/dist/lexical/ui/icons/H4/index.js +13 -6
  721. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  722. package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
  723. package/dist/lexical/ui/icons/H5/index.js +13 -6
  724. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  725. package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
  726. package/dist/lexical/ui/icons/H6/index.js +13 -6
  727. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  728. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts +17 -0
  729. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts.map +1 -0
  730. package/dist/lexical/utils/markdown/convertFromMarkdownString.js +27 -0
  731. package/dist/lexical/utils/markdown/convertFromMarkdownString.js.map +1 -0
  732. package/dist/lexical/utils/markdown/createBlockNode.d.ts +2 -2
  733. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  734. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  735. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts +25 -0
  736. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts.map +1 -0
  737. package/dist/lexical/utils/markdown/normalizeMarkdown.js +91 -0
  738. package/dist/lexical/utils/markdown/normalizeMarkdown.js.map +1 -0
  739. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  740. package/dist/lexical/utils/point.d.ts.map +1 -1
  741. package/dist/lexical/utils/rect.d.ts.map +1 -1
  742. package/dist/lexical-proxy/@lexical-markdown.d.ts +1 -1
  743. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -1
  744. package/dist/lexical-proxy/@lexical-markdown.js +1 -1
  745. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
  746. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts +2 -0
  747. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -0
  748. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js +2 -0
  749. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -0
  750. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts +2 -0
  751. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -0
  752. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js +2 -0
  753. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -0
  754. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts +2 -0
  755. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -0
  756. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js +2 -0
  757. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -0
  758. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts +2 -0
  759. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -0
  760. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js +2 -0
  761. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -0
  762. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts +2 -0
  763. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -0
  764. package/dist/lexical-proxy/@lexical-react/ReactExtension.js +2 -0
  765. package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -0
  766. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts +2 -0
  767. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -0
  768. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js +2 -0
  769. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -0
  770. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts +2 -0
  771. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -0
  772. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js +2 -0
  773. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -0
  774. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts +2 -0
  775. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -0
  776. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js +2 -0
  777. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -0
  778. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts +2 -0
  779. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -0
  780. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js +2 -0
  781. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -0
  782. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts +2 -0
  783. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts.map +1 -0
  784. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js +2 -0
  785. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js.map +1 -0
  786. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts +2 -0
  787. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts.map +1 -0
  788. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js +2 -0
  789. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js.map +1 -0
  790. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts +2 -0
  791. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts.map +1 -0
  792. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js +2 -0
  793. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js.map +1 -0
  794. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts +2 -0
  795. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts.map +1 -0
  796. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js +2 -0
  797. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js.map +1 -0
  798. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts +2 -0
  799. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts.map +1 -0
  800. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js +2 -0
  801. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js.map +1 -0
  802. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts +2 -0
  803. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts.map +1 -0
  804. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js +2 -0
  805. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js.map +1 -0
  806. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  807. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  808. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  809. package/dist/presets/llmInstructions.d.ts +2 -0
  810. package/dist/presets/llmInstructions.d.ts.map +1 -0
  811. package/dist/presets/llmInstructions.js +13 -0
  812. package/dist/presets/llmInstructions.js.map +1 -0
  813. package/dist/types/builtInNodes.d.ts +14 -0
  814. package/dist/types/builtInNodes.d.ts.map +1 -0
  815. package/dist/types/builtInNodes.js +208 -0
  816. package/dist/types/builtInNodes.js.map +1 -0
  817. package/dist/{types.d.ts → types/index.d.ts} +29 -33
  818. package/dist/types/index.d.ts.map +1 -0
  819. package/dist/types/index.js +2 -0
  820. package/dist/types/index.js.map +1 -0
  821. package/dist/types/jsonSchemaHelpers.d.ts +34 -0
  822. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -0
  823. package/dist/types/jsonSchemaHelpers.js +63 -0
  824. package/dist/types/jsonSchemaHelpers.js.map +1 -0
  825. package/dist/types/nodeTypes.d.ts +133 -0
  826. package/dist/types/nodeTypes.d.ts.map +1 -0
  827. package/dist/types/nodeTypes.js +6 -0
  828. package/dist/types/nodeTypes.js.map +1 -0
  829. package/dist/types/schema.d.ts +6 -0
  830. package/dist/types/schema.d.ts.map +1 -0
  831. package/dist/types/schema.js +90 -0
  832. package/dist/types/schema.js.map +1 -0
  833. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  834. package/dist/utilities/applyBaseFilterToFields.js +1 -2
  835. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  836. package/dist/utilities/buildEditorState.d.ts +18 -4
  837. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  838. package/dist/utilities/buildEditorState.js +8 -0
  839. package/dist/utilities/buildEditorState.js.map +1 -1
  840. package/dist/utilities/buildInitialState.d.ts +4 -2
  841. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  842. package/dist/utilities/buildInitialState.js +1 -0
  843. package/dist/utilities/buildInitialState.js.map +1 -1
  844. package/dist/utilities/createClientFeature.d.ts +1 -1
  845. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  846. package/dist/utilities/createClientFeature.js.map +1 -1
  847. package/dist/utilities/createServerFeature.d.ts +1 -1
  848. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  849. package/dist/utilities/createServerFeature.js +2 -2
  850. package/dist/utilities/createServerFeature.js.map +1 -1
  851. package/dist/utilities/editorConfigFactory.d.ts +7 -7
  852. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  853. package/dist/utilities/editorConfigFactory.js +9 -9
  854. package/dist/utilities/editorConfigFactory.js.map +1 -1
  855. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  856. package/dist/utilities/fieldsDrawer/Drawer.js +19 -10
  857. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  858. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -1
  859. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  860. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -7
  861. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  862. package/dist/utilities/fieldsDrawer/index.css +12 -0
  863. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +29 -0
  864. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -0
  865. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js +97 -0
  866. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -0
  867. package/dist/utilities/generateImportMap.d.ts +3 -3
  868. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  869. package/dist/utilities/generateImportMap.js.map +1 -1
  870. package/dist/utilities/generateSchemaMap.d.ts +1 -1
  871. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  872. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  873. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  874. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  875. package/dist/utilities/initLexicalFeatures.d.ts +1 -1
  876. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
  877. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  878. package/dist/utilities/upgradeLexicalData/index.js +6 -3
  879. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  880. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +1 -1
  881. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  882. package/dist/validate/hasText.d.ts +2 -2
  883. package/dist/validate/hasText.d.ts.map +1 -1
  884. package/dist/validate/hasText.js.map +1 -1
  885. package/dist/validate/index.d.ts +1 -1
  886. package/dist/validate/index.d.ts.map +1 -1
  887. package/package.json +105 -36
  888. package/dist/dependencyChecker.spec.js +0 -16
  889. package/dist/dependencyChecker.spec.js.map +0 -1
  890. package/dist/exports/client/Field-PJW7KUJG.js +0 -2
  891. package/dist/exports/client/Field-PJW7KUJG.js.map +0 -7
  892. package/dist/exports/client/RelationshipComponent-5RONAYJM.js.map +0 -7
  893. package/dist/exports/client/bundled.css +0 -1
  894. package/dist/exports/client/chunk-44G3K3W7.js +0 -2
  895. package/dist/exports/client/chunk-44G3K3W7.js.map +0 -7
  896. package/dist/exports/client/chunk-BZZVLW4U.js.map +0 -7
  897. package/dist/exports/client/chunk-FTT5KJ6W.js +0 -12
  898. package/dist/exports/client/chunk-FTT5KJ6W.js.map +0 -7
  899. package/dist/exports/client/chunk-INBEEENE.js +0 -2
  900. package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
  901. package/dist/exports/client/chunk-QJ5EETIB.js +0 -2
  902. package/dist/exports/client/chunk-QJ5EETIB.js.map +0 -7
  903. package/dist/exports/client/component-53Y3RYR5.js +0 -2
  904. package/dist/exports/client/component-53Y3RYR5.js.map +0 -7
  905. package/dist/exports/client/componentInline-PM4PLNUK.js +0 -2
  906. package/dist/features/blockquote/markdownTransformer.d.ts +0 -3
  907. package/dist/features/blockquote/markdownTransformer.d.ts.map +0 -1
  908. package/dist/features/blockquote/markdownTransformer.js +0 -33
  909. package/dist/features/blockquote/markdownTransformer.js.map +0 -1
  910. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts +0 -11
  911. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +0 -1
  912. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +0 -20
  913. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +0 -1
  914. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +0 -180
  915. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +0 -1
  916. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  917. package/dist/features/experimental_table/client/index.js.map +0 -1
  918. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  919. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  920. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  921. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  922. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  923. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  924. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
  925. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
  926. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  927. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  928. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  929. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  930. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  931. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  932. package/dist/features/experimental_table/markdownTransformer.d.ts +0 -5
  933. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  934. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  935. package/dist/features/experimental_table/server/index.d.ts +0 -8
  936. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  937. package/dist/features/experimental_table/server/index.js.map +0 -1
  938. package/dist/features/format/bold/markdownTransformers.d.ts +0 -6
  939. package/dist/features/format/bold/markdownTransformers.d.ts.map +0 -1
  940. package/dist/features/format/bold/markdownTransformers.js +0 -23
  941. package/dist/features/format/bold/markdownTransformers.js.map +0 -1
  942. package/dist/features/format/inlineCode/markdownTransformers.d.ts +0 -3
  943. package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +0 -1
  944. package/dist/features/format/inlineCode/markdownTransformers.js +0 -6
  945. package/dist/features/format/inlineCode/markdownTransformers.js.map +0 -1
  946. package/dist/features/format/italic/markdownTransformers.d.ts +0 -4
  947. package/dist/features/format/italic/markdownTransformers.d.ts.map +0 -1
  948. package/dist/features/format/italic/markdownTransformers.js +0 -12
  949. package/dist/features/format/italic/markdownTransformers.js.map +0 -1
  950. package/dist/features/format/strikethrough/markdownTransformers.d.ts +0 -3
  951. package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +0 -1
  952. package/dist/features/format/strikethrough/markdownTransformers.js +0 -6
  953. package/dist/features/format/strikethrough/markdownTransformers.js.map +0 -1
  954. package/dist/features/link/markdownTransformer.spec.js +0 -195
  955. package/dist/features/link/markdownTransformer.spec.js.map +0 -1
  956. package/dist/features/link/nodes/types.d.ts +0 -27
  957. package/dist/features/link/nodes/types.d.ts.map +0 -1
  958. package/dist/features/link/nodes/types.js +0 -2
  959. package/dist/features/link/nodes/types.js.map +0 -1
  960. package/dist/features/lists/checklist/markdownTransformers.d.ts +0 -3
  961. package/dist/features/lists/checklist/markdownTransformers.d.ts.map +0 -1
  962. package/dist/features/lists/checklist/markdownTransformers.js +0 -12
  963. package/dist/features/lists/checklist/markdownTransformers.js.map +0 -1
  964. package/dist/features/lists/orderedList/markdownTransformer.d.ts +0 -3
  965. package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +0 -1
  966. package/dist/features/lists/orderedList/markdownTransformer.js +0 -12
  967. package/dist/features/lists/orderedList/markdownTransformer.js.map +0 -1
  968. package/dist/features/lists/shared/markdown.d.ts +0 -6
  969. package/dist/features/lists/shared/markdown.d.ts.map +0 -1
  970. package/dist/features/lists/shared/markdown.js +0 -57
  971. package/dist/features/lists/shared/markdown.js.map +0 -1
  972. package/dist/features/lists/unorderedList/markdownTransformer.d.ts +0 -3
  973. package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +0 -1
  974. package/dist/features/lists/unorderedList/markdownTransformer.js +0 -12
  975. package/dist/features/lists/unorderedList/markdownTransformer.js.map +0 -1
  976. package/dist/lexical/utils/guard.d.ts +0 -5
  977. package/dist/lexical/utils/guard.d.ts.map +0 -1
  978. package/dist/lexical/utils/guard.js +0 -9
  979. package/dist/lexical/utils/guard.js.map +0 -1
  980. package/dist/lexical/utils/url.spec.js +0 -114
  981. package/dist/lexical/utils/url.spec.js.map +0 -1
  982. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +0 -2
  983. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +0 -1
  984. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +0 -2
  985. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +0 -1
  986. package/dist/nodeTypes.d.ts +0 -74
  987. package/dist/nodeTypes.d.ts.map +0 -1
  988. package/dist/nodeTypes.js +0 -5
  989. package/dist/nodeTypes.js.map +0 -1
  990. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts +0 -14
  991. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +0 -1
  992. package/dist/packages/@lexical/markdown/MarkdownExport.js +0 -213
  993. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +0 -1
  994. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts +0 -19
  995. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +0 -1
  996. package/dist/packages/@lexical/markdown/MarkdownImport.js +0 -198
  997. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +0 -1
  998. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts +0 -11
  999. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +0 -1
  1000. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +0 -304
  1001. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +0 -1
  1002. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +0 -147
  1003. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +0 -1
  1004. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +0 -268
  1005. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +0 -1
  1006. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts +0 -22
  1007. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +0 -1
  1008. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +0 -91
  1009. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +0 -1
  1010. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts +0 -21
  1011. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +0 -1
  1012. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +0 -54
  1013. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +0 -1
  1014. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts +0 -18
  1015. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts.map +0 -1
  1016. package/dist/packages/@lexical/markdown/importTextTransformers.js +0 -54
  1017. package/dist/packages/@lexical/markdown/importTextTransformers.js.map +0 -1
  1018. package/dist/packages/@lexical/markdown/index.d.ts +0 -29
  1019. package/dist/packages/@lexical/markdown/index.d.ts.map +0 -1
  1020. package/dist/packages/@lexical/markdown/index.js +0 -39
  1021. package/dist/packages/@lexical/markdown/index.js.map +0 -1
  1022. package/dist/packages/@lexical/markdown/utils.d.ts +0 -34
  1023. package/dist/packages/@lexical/markdown/utils.d.ts.map +0 -1
  1024. package/dist/packages/@lexical/markdown/utils.js +0 -267
  1025. package/dist/packages/@lexical/markdown/utils.js.map +0 -1
  1026. package/dist/types.d.ts.map +0 -1
  1027. package/dist/types.js +0 -2
  1028. package/dist/types.js.map +0 -1
  1029. package/dist/utilities/jsx/jsx.spec.js +0 -178
  1030. package/dist/utilities/jsx/jsx.spec.js.map +0 -1
  1031. /package/dist/exports/client/{componentInline-PM4PLNUK.js.map → componentInline-HNE5G4TE.js.map} +0 -0
  1032. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  1033. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
  1034. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
  1035. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
  1036. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  1037. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
  1038. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
  1039. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
  1040. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
  1041. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
  1042. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +0 -0
  1043. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  1044. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  1045. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  1046. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DropDown.js","names":["Button","$addUpdateTag","isDOMNode","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","baseClass","DropDownContext","createContext","DropDownItem","active","children","editor","enabled","Icon","item","itemKey","tooltip","className","key","filter","Boolean","join","ref","dropDownContext","use","Error","registerItem","current","_jsx","buttonStyle","disabled","extraButtonProps","icon","iconPosition","iconStyle","onClick","focus","update","onSelect","isActive","onMouseDown","e","preventDefault","type","DropDownItems","dropdownKey","dropDownRef","itemsContainerClassNames","onClose","items","setItems","highlightedItem","setHighlightedItem","itemRef","prev","handleKeyDown","event","includes","index","indexOf","length","contextValue","value","onKeyDown","DropDown","buttonAriaLabel","buttonClassName","label","stopCloseOnClickSelf","buttonRef","showDropDown","setShowDropDown","handleClose","button","dropDown","left","top","getBoundingClientRect","scrollTopOffset","window","scrollY","document","documentElement","scrollTop","style","offsetHeight","Math","min","innerWidth","offsetWidth","handle","target","contains","addEventListener","removeEventListener","portal","body","_jsxs","Fragment"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx"],"sourcesContent":["'use client'\nimport { Button } from '@payloadcms/ui'\nimport { $addUpdateTag, isDOMNode, type LexicalEditor } from 'lexical'\nimport React, { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nconst baseClass = 'toolbar-popup__dropdown-item'\n\ninterface DropDownContextType {\n registerItem: (ref: React.RefObject<HTMLButtonElement | null>) => void\n}\n\nconst DropDownContext = React.createContext<DropDownContextType | null>(null)\n\nexport function DropDownItem({\n active,\n children,\n editor,\n enabled,\n Icon,\n item,\n itemKey,\n tooltip,\n}: {\n active?: boolean\n children: React.ReactNode\n editor: LexicalEditor\n enabled?: boolean\n Icon: React.ReactNode\n item: ToolbarGroupItem\n itemKey: string\n tooltip?: string\n}): React.ReactNode {\n const className = useMemo(() => {\n return [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' ')\n }, [enabled, active, item.key])\n\n const ref = useRef<HTMLButtonElement>(null)\n\n const dropDownContext = React.use(DropDownContext)\n\n if (dropDownContext === null) {\n throw new Error('DropDownItem must be used within a DropDown')\n }\n\n const { registerItem } = dropDownContext\n\n useEffect(() => {\n if (ref?.current != null) {\n registerItem(ref)\n }\n }, [ref, registerItem])\n\n return (\n <Button\n aria-label={tooltip}\n buttonStyle=\"none\"\n className={className}\n disabled={enabled === false}\n extraButtonProps={{\n 'data-item-key': itemKey,\n }}\n icon={Icon}\n iconPosition=\"left\"\n iconStyle=\"none\"\n onClick={() => {\n if (enabled !== false) {\n editor.focus(() => {\n editor.update(() => {\n $addUpdateTag('toolbar')\n })\n // We need to wrap the onSelect in the callback, so the editor is properly focused before the onSelect is called.\n item.onSelect?.({\n editor,\n isActive: active!,\n })\n })\n }\n }}\n onMouseDown={(e) => {\n // This is required for Firefox compatibility. Without it, the dropdown will disappear without the onClick being called.\n // This only happens in Firefox. Must be something about how Firefox handles focus events differently.\n e.preventDefault()\n }}\n ref={ref}\n tooltip={tooltip}\n type=\"button\"\n >\n {children}\n </Button>\n )\n}\n\nfunction DropDownItems({\n children,\n dropdownKey,\n dropDownRef,\n itemsContainerClassNames,\n onClose,\n}: {\n children: React.ReactNode\n dropdownKey?: string\n dropDownRef: React.Ref<HTMLDivElement>\n itemsContainerClassNames?: string[]\n onClose: () => void\n}): React.ReactElement {\n const [items, setItems] = useState<Array<React.RefObject<HTMLButtonElement | null>>>()\n const [highlightedItem, setHighlightedItem] =\n useState<React.RefObject<HTMLButtonElement | null>>()\n\n const registerItem = useCallback(\n (itemRef: React.RefObject<HTMLButtonElement | null>) => {\n setItems((prev) => (prev != null ? [...prev, itemRef] : [itemRef]))\n },\n [setItems],\n )\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (items == null) {\n return\n }\n\n const { key } = event\n\n if (['ArrowDown', 'ArrowUp', 'Escape', 'Tab'].includes(key)) {\n event.preventDefault()\n }\n\n if (key === 'Escape' || key === 'Tab') {\n onClose()\n } else if (key === 'ArrowUp') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return items[0]\n }\n const index = items.indexOf(prev) - 1\n return items[index === -1 ? items.length - 1 : index]\n })\n } else if (key === 'ArrowDown') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return items[0]\n }\n return items[items.indexOf(prev) + 1]\n })\n }\n }\n\n const contextValue = useMemo(\n () => ({\n registerItem,\n }),\n [registerItem],\n )\n\n useEffect(() => {\n if (items != null && highlightedItem == null) {\n setHighlightedItem(items[0])\n }\n\n if (highlightedItem != null && highlightedItem?.current != null) {\n highlightedItem.current.focus()\n }\n }, [items, highlightedItem])\n\n return (\n <DropDownContext value={contextValue}>\n <div\n className={(itemsContainerClassNames ?? ['toolbar-popup__dropdown-items']).join(' ')}\n data-dropdown-key={dropdownKey}\n data-theme=\"dark\"\n onKeyDown={handleKeyDown}\n ref={dropDownRef}\n >\n {children}\n </div>\n </DropDownContext>\n )\n}\n\nexport function DropDown({\n buttonAriaLabel,\n buttonClassName,\n children,\n disabled = false,\n dropdownKey,\n Icon,\n itemsContainerClassNames,\n label,\n stopCloseOnClickSelf,\n}: {\n buttonAriaLabel?: string\n buttonClassName: string\n children: ReactNode\n disabled?: boolean\n dropdownKey: string\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n stopCloseOnClickSelf?: boolean\n}): React.ReactNode {\n const dropDownRef = useRef<HTMLDivElement>(null)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const [showDropDown, setShowDropDown] = useState(false)\n\n const handleClose = (): void => {\n setShowDropDown(false)\n if (buttonRef?.current != null) {\n buttonRef.current.focus()\n }\n }\n\n useEffect(() => {\n const button = buttonRef.current\n const dropDown = dropDownRef.current\n\n if (showDropDown && button !== null && dropDown !== null) {\n const { left, top } = button.getBoundingClientRect()\n const scrollTopOffset = window.scrollY || document.documentElement.scrollTop\n dropDown.style.top = `${top + scrollTopOffset + button.offsetHeight + 5}px`\n dropDown.style.left = `${Math.min(left - 5, window.innerWidth - dropDown.offsetWidth - 20)}px`\n }\n }, [dropDownRef, buttonRef, showDropDown])\n\n useEffect(() => {\n const button = buttonRef.current\n\n if (button !== null && showDropDown) {\n const handle = (event: MouseEvent): void => {\n const target = event.target\n if (!isDOMNode(target)) {\n return\n }\n if (stopCloseOnClickSelf) {\n if (dropDownRef.current && dropDownRef.current.contains(target)) {\n return\n }\n }\n if (!button.contains(target)) {\n setShowDropDown(false)\n }\n }\n document.addEventListener('click', handle)\n\n return () => {\n document.removeEventListener('click', handle)\n }\n }\n }, [dropDownRef, buttonRef, showDropDown, stopCloseOnClickSelf])\n\n const portal = createPortal(\n <DropDownItems\n dropdownKey={dropdownKey}\n dropDownRef={dropDownRef}\n itemsContainerClassNames={itemsContainerClassNames}\n onClose={handleClose}\n >\n {children}\n </DropDownItems>,\n document.body,\n )\n\n return (\n <React.Fragment>\n <button\n aria-label={buttonAriaLabel}\n className={buttonClassName + (showDropDown ? ' active' : '')}\n data-dropdown-key={dropdownKey}\n disabled={disabled}\n onClick={(event) => {\n event.preventDefault()\n setShowDropDown(!showDropDown)\n }}\n onMouseDown={(e) => {\n // This fixes a bug where you are unable to click the button if you are in a NESTED editor (editor in blocks field in editor).\n // Thus only happens if you click on the SVG of the button. Clicking on the outside works. Related issue: https://github.com/payloadcms/payload/issues/4025\n // TODO: Find out why exactly it happens and why e.preventDefault() on the mouseDown fixes it. Write that down here, or potentially fix a root cause, if there is any.\n e.preventDefault()\n }}\n ref={buttonRef}\n type=\"button\"\n >\n {Icon && <Icon />}\n {label && <span className=\"toolbar-popup__dropdown-label\">{label}</span>}\n <i className=\"toolbar-popup__dropdown-caret\" />\n </button>\n\n {showDropDown && <React.Fragment>{portal}</React.Fragment>}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DropDown.js","names":["Button","$addUpdateTag","isDOMNode","React","useCallback","useEffect","useId","useMemo","useRef","useState","baseClass","DropDownContext","createContext","DropDownItem","active","children","editor","enabled","Icon","item","itemKey","tooltip","className","key","filter","Boolean","join","ref","dropDownContext","use","Error","registerItem","current","_jsx","buttonStyle","disabled","extraButtonProps","isActive","undefined","role","tabIndex","icon","iconPosition","onClick","focus","update","onSelect","onMouseDown","e","preventDefault","type","DropDownItems","id","dropdownKey","dropDownRef","itemsContainerClassNames","onClose","shouldAutoFocus","items","setItems","highlightedItem","setHighlightedItem","itemRef","prev","handleKeyDown","event","enabledItems","includes","setTimeout","restoreFocus","index","indexOf","length","contextValue","find","value","onKeyDown","popover","DropDown","buttonAriaLabel","buttonClassName","label","stopCloseOnClickSelf","buttonRef","openedViaKeyboardRef","generatedId","menuId","showDropDown","setShowDropDown","handleClose","button","dropDown","matches","showPopover","updatePosition","bottom","left","top","getBoundingClientRect","offset","gap","below","above","offsetHeight","maxTop","Math","max","window","innerHeight","preferredTop","style","position","min","innerWidth","offsetWidth","addEventListener","capture","passive","removeEventListener","handle","target","contains","document","_jsxs","Fragment"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx"],"sourcesContent":["'use client'\nimport { Button } from '@payloadcms/ui'\nimport { $addUpdateTag, isDOMNode, type LexicalEditor } from 'lexical'\nimport React, {\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nconst baseClass = 'toolbar-popup__dropdown-item'\n\ninterface DropDownContextType {\n registerItem: (ref: React.RefObject<HTMLButtonElement | null>) => void\n}\n\nconst DropDownContext = React.createContext<DropDownContextType | null>(null)\n\nexport function DropDownItem({\n active,\n children,\n editor,\n enabled,\n Icon,\n item,\n itemKey,\n tooltip,\n}: {\n active?: boolean\n children: React.ReactNode\n editor: LexicalEditor\n enabled?: boolean\n Icon: React.ReactNode\n item: ToolbarGroupItem\n itemKey: string\n tooltip?: string\n}): React.ReactNode {\n const className = useMemo(() => {\n return [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' ')\n }, [enabled, active, item.key])\n\n const ref = useRef<HTMLButtonElement>(null)\n\n const dropDownContext = React.use(DropDownContext)\n\n if (dropDownContext === null) {\n throw new Error('DropDownItem must be used within a DropDown')\n }\n\n const { registerItem } = dropDownContext\n\n useEffect(() => {\n if (ref?.current != null) {\n registerItem(ref)\n }\n }, [ref, registerItem])\n\n return (\n <Button\n aria-label={tooltip}\n buttonStyle=\"ghost\"\n className={className}\n disabled={enabled === false}\n extraButtonProps={{\n 'aria-checked': item.isActive ? Boolean(active) : undefined,\n 'data-item-key': itemKey,\n role: item.isActive ? 'menuitemcheckbox' : 'menuitem',\n tabIndex: -1,\n }}\n icon={Icon}\n iconPosition=\"left\"\n onClick={() => {\n if (enabled !== false) {\n editor.focus(() => {\n editor.update(() => {\n $addUpdateTag('toolbar')\n })\n // We need to wrap the onSelect in the callback, so the editor is properly focused before the onSelect is called.\n item.onSelect?.({\n editor,\n isActive: active!,\n })\n })\n }\n }}\n onMouseDown={(e: React.MouseEvent) => {\n // This is required for Firefox compatibility. Without it, the dropdown will disappear without the onClick being called.\n // This only happens in Firefox. Must be something about how Firefox handles focus events differently.\n e.preventDefault()\n }}\n ref={ref}\n tooltip={tooltip}\n type=\"button\"\n >\n {children}\n </Button>\n )\n}\n\nfunction DropDownItems({\n id,\n children,\n dropdownKey,\n dropDownRef,\n itemsContainerClassNames,\n onClose,\n shouldAutoFocus,\n}: {\n children: React.ReactNode\n dropdownKey?: string\n dropDownRef: React.Ref<HTMLDivElement>\n id: string\n itemsContainerClassNames?: string[]\n onClose: (options?: { restoreFocus?: boolean }) => void\n shouldAutoFocus: boolean\n}): React.ReactElement {\n const [items, setItems] = useState<Array<React.RefObject<HTMLButtonElement | null>>>()\n const [highlightedItem, setHighlightedItem] =\n useState<React.RefObject<HTMLButtonElement | null>>()\n\n const registerItem = useCallback(\n (itemRef: React.RefObject<HTMLButtonElement | null>) => {\n setItems((prev) => (prev != null ? [...prev, itemRef] : [itemRef]))\n },\n [setItems],\n )\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (items == null) {\n return\n }\n\n const { key } = event\n const enabledItems = items.filter((item) => !item.current?.disabled)\n\n if (['ArrowDown', 'ArrowUp', 'Escape'].includes(key)) {\n event.preventDefault()\n }\n\n if (key === 'Escape') {\n onClose()\n } else if (key === 'Tab') {\n setTimeout(() => onClose({ restoreFocus: false }))\n } else if (key === 'ArrowUp') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return enabledItems[0]\n }\n const index = enabledItems.indexOf(prev) - 1\n return enabledItems[index === -1 ? enabledItems.length - 1 : index]\n })\n } else if (key === 'ArrowDown') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return enabledItems[0]\n }\n const index = enabledItems.indexOf(prev)\n return enabledItems[index === enabledItems.length - 1 ? 0 : index + 1]\n })\n }\n }\n\n const contextValue = useMemo(\n () => ({\n registerItem,\n }),\n [registerItem],\n )\n\n useEffect(() => {\n if (shouldAutoFocus && items != null && highlightedItem == null) {\n setHighlightedItem(items.find((item) => !item.current?.disabled))\n }\n\n if (highlightedItem != null && highlightedItem?.current != null) {\n highlightedItem.current.focus()\n }\n }, [items, highlightedItem, shouldAutoFocus])\n\n return (\n <DropDownContext value={contextValue}>\n <div\n className={(itemsContainerClassNames ?? ['toolbar-popup__dropdown-items']).join(' ')}\n data-dropdown-key={dropdownKey}\n data-theme=\"dark\"\n id={id}\n onKeyDown={handleKeyDown}\n popover=\"manual\"\n ref={dropDownRef}\n role=\"menu\"\n tabIndex={-1}\n >\n {children}\n </div>\n </DropDownContext>\n )\n}\n\nexport function DropDown({\n buttonAriaLabel,\n buttonClassName,\n children,\n disabled = false,\n dropdownKey,\n Icon,\n itemsContainerClassNames,\n label,\n stopCloseOnClickSelf,\n}: {\n buttonAriaLabel?: string\n buttonClassName: string\n children: ReactNode\n disabled?: boolean\n dropdownKey: string\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n stopCloseOnClickSelf?: boolean\n}): React.ReactNode {\n const dropDownRef = useRef<HTMLDivElement>(null)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const openedViaKeyboardRef = useRef(false)\n const generatedId = useId()\n const menuId = `toolbar-dropdown-${dropdownKey}-${generatedId}`\n const [showDropDown, setShowDropDown] = useState(false)\n\n const handleClose = ({ restoreFocus = true }: { restoreFocus?: boolean } = {}): void => {\n setShowDropDown(false)\n if (restoreFocus && buttonRef?.current != null) {\n buttonRef.current.focus()\n }\n }\n\n useEffect(() => {\n const button = buttonRef.current\n const dropDown = dropDownRef.current\n\n if (showDropDown && button !== null && dropDown !== null) {\n if (!dropDown.matches(':popover-open')) {\n dropDown.showPopover()\n }\n\n const updatePosition = (): void => {\n const { bottom, left, top } = button.getBoundingClientRect()\n const offset = 8\n const gap = 5\n const below = bottom + gap\n const above = top - dropDown.offsetHeight - gap\n const maxTop = Math.max(offset, window.innerHeight - dropDown.offsetHeight - offset)\n const preferredTop =\n below + dropDown.offsetHeight + offset <= window.innerHeight\n ? below\n : above >= offset\n ? above\n : below\n\n dropDown.style.position = 'fixed'\n dropDown.style.top = `${Math.max(offset, Math.min(preferredTop, maxTop))}px`\n dropDown.style.left = `${Math.max(8, Math.min(left - 5, window.innerWidth - dropDown.offsetWidth - 20))}px`\n }\n\n updatePosition()\n window.addEventListener('resize', updatePosition)\n window.addEventListener('scroll', updatePosition, { capture: true, passive: true })\n\n return () => {\n window.removeEventListener('resize', updatePosition)\n window.removeEventListener('scroll', updatePosition, { capture: true })\n }\n }\n }, [dropDownRef, buttonRef, showDropDown])\n\n useEffect(() => {\n const button = buttonRef.current\n\n if (button !== null && showDropDown) {\n const handle = (event: MouseEvent): void => {\n const target = event.target\n if (!isDOMNode(target)) {\n return\n }\n if (stopCloseOnClickSelf) {\n if (dropDownRef.current && dropDownRef.current.contains(target)) {\n return\n }\n }\n if (!button.contains(target)) {\n setShowDropDown(false)\n }\n }\n document.addEventListener('click', handle)\n\n return () => {\n document.removeEventListener('click', handle)\n }\n }\n }, [dropDownRef, buttonRef, showDropDown, stopCloseOnClickSelf])\n\n return (\n <React.Fragment>\n <button\n aria-controls={menuId}\n aria-expanded={showDropDown}\n aria-haspopup=\"menu\"\n aria-label={buttonAriaLabel}\n className={buttonClassName + (showDropDown ? ' active' : '')}\n data-dropdown-key={dropdownKey}\n disabled={disabled}\n onClick={(event) => {\n event.preventDefault()\n openedViaKeyboardRef.current = false\n setShowDropDown(!showDropDown)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n openedViaKeyboardRef.current = true\n setShowDropDown(!showDropDown)\n }\n }}\n onMouseDown={(e) => {\n // This fixes a bug where you are unable to click the button if you are in a NESTED editor (editor in blocks field in editor).\n // Thus only happens if you click on the SVG of the button. Clicking on the outside works. Related issue: https://github.com/payloadcms/payload/issues/4025\n // TODO: Find out why exactly it happens and why e.preventDefault() on the mouseDown fixes it. Write that down here, or potentially fix a root cause, if there is any.\n e.preventDefault()\n }}\n ref={buttonRef}\n type=\"button\"\n >\n {Icon && <Icon />}\n {label && <span className=\"toolbar-popup__dropdown-label\">{label}</span>}\n <i className=\"toolbar-popup__dropdown-caret\" />\n </button>\n\n {showDropDown && (\n <DropDownItems\n dropdownKey={dropdownKey}\n dropDownRef={dropDownRef}\n id={menuId}\n itemsContainerClassNames={itemsContainerClassNames}\n onClose={handleClose}\n shouldAutoFocus={openedViaKeyboardRef.current}\n >\n {children}\n </DropDownItems>\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,6 @@
19
19
  border-radius: var(--radius-medium);
20
20
  cursor: pointer;
21
21
  position: relative;
22
- transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
23
22
  min-width: calc(var(--spacer-4) + var(--spacer-2-5));
24
23
 
25
24
  &:disabled {
@@ -60,7 +59,7 @@
60
59
  align-items: center;
61
60
  justify-content: center;
62
61
  width: 6px;
63
- margin: 0 4px 0 2px;
62
+ margin: 0 var(--spacer-1) 0 calc(var(--spacer-1) / 2);
64
63
  height: 4px;
65
64
  background-color: var(--color-icon);
66
65
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='4' viewBox='0 0 6 4' fill='none'%3E%3Cpath d='M4.38921 0.146406C4.58445 -0.0488286 4.90098 -0.0487744 5.09624 0.146406C5.29151 0.341668 5.29151 0.658175 5.09624 0.853437L2.97515 2.97453C2.77987 3.16959 2.46332 3.16972 2.26812 2.97453L0.146049 0.853437C-0.0487219 0.6583 -0.0486443 0.341591 0.146049 0.146406C0.341285 -0.0488288 0.658788 -0.0487749 0.854057 0.146406L2.62164 1.91398L4.38921 0.146406Z' fill='black'/%3E%3C/svg%3E");
@@ -71,25 +70,23 @@
71
70
  .toolbar-popup__dropdown-items {
72
71
  --dropdown-min-width: 5rem;
73
72
  position: absolute;
73
+ inset: auto;
74
+ margin: 0;
74
75
  background: var(--color-bg-elevated);
75
76
  color: var(--color-text);
76
77
  border-radius: var(--radius-large);
77
78
  padding: var(--spacer-2);
78
79
  min-width: var(--dropdown-min-width);
80
+ max-height: calc(100vh - var(--spacer-3));
81
+ overflow-y: auto;
79
82
  z-index: 100;
80
- box-shadow:
81
- 0 2px 6px 0 rgba(0, 0, 0, 0.12),
82
- 0 10px 16px 0 rgba(0, 0, 0, 0.08),
83
- 0 0 0.5px 0 rgba(0, 0, 0, 0.12),
84
- 0 0 0 1px rgba(0, 0, 0, 0.04);
83
+ box-shadow: var(--elevation-300-tooltip);
85
84
 
86
85
  .toolbar-popup__dropdown-item {
87
86
  all: unset;
88
87
  cursor: pointer;
89
88
  color: var(--color-text);
90
- transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
91
89
  position: relative;
92
- font-family: var(--text-body-medium-font-family);
93
90
  font-size: var(--text-body-medium-font-size);
94
91
  font-weight: var(--text-body-medium-font-weight);
95
92
  line-height: var(--text-body-medium-line-height);
@@ -101,7 +98,7 @@
101
98
  display: flex;
102
99
  align-items: center;
103
100
  gap: var(--spacer-1);
104
- margin-right: -var(--spacer-3);
101
+ margin-inline-end: -var(--spacer-3);
105
102
 
106
103
  .text {
107
104
  overflow: hidden;
@@ -168,15 +165,15 @@
168
165
  }
169
166
 
170
167
  .btn__tooltip {
171
- background-color: var(--color-grey-900);
172
- color: var(--color-grey-100);
168
+ background-color: var(--color-bg-tooltip);
169
+ color: var(--color-text-ontooltip);
173
170
 
174
171
  &.tooltip--position-top::after {
175
- border-top-color: var(--color-grey-900);
172
+ border-top-color: var(--color-bg-tooltip);
176
173
  }
177
174
 
178
175
  &.tooltip--position-bottom::after {
179
- border-bottom-color: var(--color-grey-900);
176
+ border-bottom-color: var(--color-bg-tooltip);
180
177
  }
181
178
  }
182
179
  }
@@ -191,20 +188,21 @@
191
188
  }
192
189
 
193
190
  [data-dropdown-key='text'] {
194
- & .toolbar-popup__dropdown-item {
195
- padding: 0 var(--spacer-4);
191
+ /* Reserved on every item, not just the active one, so the checkmark never overlaps the item icon. */
192
+ & .toolbar-popup__dropdown-item::before {
193
+ content: '';
194
+ flex-shrink: 0;
195
+ width: var(--spacer-3);
196
+ height: var(--spacer-3);
197
+ background-color: currentColor;
198
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M12.277 3.584a.5.5 0 0 1 .139.693l-5 7.5a.5.5 0 0 1-.77.077l-3-3a.5.5 0 0 1 .708-.708l2.568 2.57 4.662-6.993a.5.5 0 0 1 .693-.139' fill='black'/%3E%3C/svg%3E");
199
+ mask-size: contain;
200
+ mask-repeat: no-repeat;
201
+ visibility: hidden;
196
202
  }
197
203
 
198
204
  & .toolbar-popup__dropdown-item.active::before {
199
- content: '';
200
- position: absolute;
201
- left: var(--spacer-2-5);
202
- top: 50%;
203
- width: var(--spacer-1);
204
- height: var(--spacer-2);
205
- border: solid var(--color-text-onselected-strong);
206
- border-width: 0 1px 1px 0;
207
- transform: translateY(-60%) rotate(45deg);
205
+ visibility: visible;
208
206
  }
209
207
 
210
208
  .btn__icon {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useMemo","baseClass","useTranslation","useEditorConfigContext","DropDown","DropDownItem","ToolbarItem","t0","$","active","anchorElem","editor","enabled","iconOnly","item","i18n","fieldProps","t1","featureClientSchemaMap","schemaPath","Component","t2","_jsx","key","title","croppedTitle","label","length","substring","Icon","ChildComponent","undefined","itemKey","tooltip","children","className","MemoToolbarItem","memo","ToolbarDropdown","classNames","group","groupState","itemsContainerClassNames","items","groupKey","renderedItems","map","activeItemKeys","includes","enabledItemKeys","buttonAriaLabel","buttonClassName","filter","Boolean","join","disabled","enabledGroup","dropdownKey"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"sourcesContent":["'use client'\nimport React, { useMemo } from 'react'\n\nconst baseClass = 'toolbar-popup__dropdown'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { useTranslation } from '@payloadcms/ui'\n\nimport type { ToolbarDropdownGroup, ToolbarGroupItem } from '../../types.js'\nimport type { ToolbarGroupState } from '../useToolbarStates.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport './index.css'\nimport { DropDown, DropDownItem } from './DropDown.js'\n\nconst ToolbarItem = ({\n active,\n anchorElem,\n editor,\n enabled,\n iconOnly,\n item,\n}: {\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n iconOnly?: boolean\n item: ToolbarGroupItem\n}) => {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component\n active={active}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabled}\n item={item}\n key={item.key}\n />\n )\n )\n }\n\n let title = item.key\n let croppedTitle = item.key\n if (item.label) {\n title =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n if (title.length > 25) {\n croppedTitle = title.substring(0, 25) + '...'\n } else {\n croppedTitle = title\n }\n\n return (\n <DropDownItem\n active={active}\n editor={editor}\n enabled={enabled}\n Icon={item?.ChildComponent ? <item.ChildComponent /> : undefined}\n item={item}\n itemKey={item.key}\n key={item.key}\n tooltip={iconOnly ? title : undefined}\n >\n <span className=\"text\">{croppedTitle}</span>\n </DropDownItem>\n )\n}\n\nconst MemoToolbarItem = React.memo(ToolbarItem)\n\nexport const ToolbarDropdown = ({\n anchorElem,\n classNames,\n editor,\n group,\n groupState,\n Icon,\n itemsContainerClassNames,\n label,\n}: {\n anchorElem: HTMLElement\n classNames?: string[]\n editor: LexicalEditor\n group: ToolbarDropdownGroup\n groupState: ToolbarGroupState\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n}) => {\n const { items, key: groupKey } = group\n\n const renderedItems = useMemo(() => {\n return items?.length\n ? items.map((item) => (\n <MemoToolbarItem\n active={groupState.activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={groupState.enabledItemKeys.includes(item.key)}\n iconOnly={group.iconOnly}\n item={item}\n key={item.key}\n />\n ))\n : null\n }, [items, groupState.activeItemKeys, groupState.enabledItemKeys, anchorElem, editor])\n\n return (\n <DropDown\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n disabled={!groupState.enabledGroup}\n dropdownKey={groupKey}\n Icon={Icon}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {renderedItems}\n </DropDown>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useMemo","baseClass","useTranslation","useEditorConfigContext","DropDown","DropDownItem","ToolbarItem","t0","$","active","anchorElem","editor","enabled","iconOnly","item","i18n","fieldProps","t1","featureClientSchemaMap","schemaPath","Component","t2","_jsx","title","key","croppedTitle","label","length","substring","Icon","ChildComponent","undefined","itemKey","tooltip","children","className","MemoToolbarItem","memo","ToolbarDropdown","classNames","group","groupState","itemsContainerClassNames","items","groupKey","renderedItems","map","activeItemKeys","includes","enabledItemKeys","buttonAriaLabel","buttonClassName","filter","Boolean","join","disabled","enabledGroup","dropdownKey"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"sourcesContent":["'use client'\nimport React, { useMemo } from 'react'\n\nconst baseClass = 'toolbar-popup__dropdown'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { useTranslation } from '@payloadcms/ui'\n\nimport type { ToolbarDropdownGroup, ToolbarGroupItem } from '../../types.js'\nimport type { ToolbarGroupState } from '../useToolbarStates.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport './index.css'\nimport { DropDown, DropDownItem } from './DropDown.js'\n\nconst ToolbarItem = ({\n active,\n anchorElem,\n editor,\n enabled,\n iconOnly,\n item,\n}: {\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n iconOnly?: boolean\n item: ToolbarGroupItem\n}) => {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component\n active={active}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabled}\n item={item}\n key={item.key}\n />\n )\n )\n }\n\n let title = item.key\n let croppedTitle = item.key\n if (item.label) {\n title =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n if (title.length > 25) {\n croppedTitle = title.substring(0, 25) + '...'\n } else {\n croppedTitle = title\n }\n\n return (\n <DropDownItem\n active={active}\n editor={editor}\n enabled={enabled}\n Icon={item?.ChildComponent ? <item.ChildComponent /> : undefined}\n item={item}\n itemKey={item.key}\n key={item.key}\n tooltip={iconOnly ? title : undefined}\n >\n <span className=\"text\">{croppedTitle}</span>\n </DropDownItem>\n )\n}\n\nconst MemoToolbarItem = React.memo(ToolbarItem)\n\nexport const ToolbarDropdown = ({\n anchorElem,\n classNames,\n editor,\n group,\n groupState,\n Icon,\n itemsContainerClassNames,\n label,\n}: {\n anchorElem: HTMLElement\n classNames?: string[]\n editor: LexicalEditor\n group: ToolbarDropdownGroup\n groupState: ToolbarGroupState\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n}) => {\n const { items, key: groupKey } = group\n\n const renderedItems = useMemo(() => {\n return items?.length\n ? items.map((item) => (\n <MemoToolbarItem\n active={groupState.activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={groupState.enabledItemKeys.includes(item.key)}\n iconOnly={group.iconOnly}\n item={item}\n key={item.key}\n />\n ))\n : null\n }, [items, groupState.activeItemKeys, groupState.enabledItemKeys, anchorElem, editor])\n\n return (\n <DropDown\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n disabled={!groupState.enabledGroup}\n dropdownKey={groupKey}\n Icon={Icon}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {renderedItems}\n </DropDown>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { RefObject } from 'react';
2
+ export declare function useToolbarKeyboardNavigation({ toolbarRef, }: {
3
+ toolbarRef: RefObject<HTMLDivElement | null>;
4
+ }): void;
5
+ //# sourceMappingURL=useToolbarKeyboardNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToolbarKeyboardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/features/toolbars/shared/useToolbarKeyboardNavigation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,wBAAgB,4BAA4B,CAAC,EAC3C,UAAU,GACX,EAAE;IACD,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;CAC7C,QAwFA"}
@@ -0,0 +1,79 @@
1
+ 'use client';
2
+
3
+ import { useEffect } from 'react';
4
+ export function useToolbarKeyboardNavigation({
5
+ toolbarRef
6
+ }) {
7
+ useEffect(() => {
8
+ const toolbar = toolbarRef.current;
9
+ if (!toolbar) {
10
+ return;
11
+ }
12
+ let activeButton;
13
+ const getButtons = () => Array.from(toolbar.querySelectorAll('button')).filter(button => !button.closest('[role="menu"]') && button.closest('[role="toolbar"]') === toolbar);
14
+ const updateTabStops = () => {
15
+ const buttons = getButtons();
16
+ const enabledButtons = buttons.filter(button_0 => !button_0.disabled);
17
+ if (!activeButton || !enabledButtons.includes(activeButton)) {
18
+ activeButton = enabledButtons[0];
19
+ }
20
+ for (const button_1 of buttons) {
21
+ button_1.tabIndex = button_1 === activeButton ? 0 : -1;
22
+ }
23
+ };
24
+ const handleFocus = event => {
25
+ const button_3 = getButtons().find(button_2 => button_2 === event.target);
26
+ if (button_3) {
27
+ activeButton = button_3;
28
+ updateTabStops();
29
+ }
30
+ };
31
+ const handleKeyDown = event_0 => {
32
+ if (event_0.altKey || event_0.ctrlKey || event_0.metaKey || event_0.shiftKey) {
33
+ return;
34
+ }
35
+ const buttons_0 = getButtons().filter(button_4 => !button_4.disabled);
36
+ const index = buttons_0.findIndex(button_5 => button_5 === event_0.target);
37
+ // Dropdown menus and custom inputs retain their own keyboard behavior.
38
+ if (index === -1) {
39
+ return;
40
+ }
41
+ const isRTL = getComputedStyle(toolbar).direction === 'rtl';
42
+ let nextIndex;
43
+ switch (event_0.key) {
44
+ case 'ArrowLeft':
45
+ nextIndex = index + (isRTL ? 1 : -1);
46
+ break;
47
+ case 'ArrowRight':
48
+ nextIndex = index + (isRTL ? -1 : 1);
49
+ break;
50
+ case 'End':
51
+ nextIndex = buttons_0.length - 1;
52
+ break;
53
+ case 'Home':
54
+ nextIndex = 0;
55
+ break;
56
+ default:
57
+ return;
58
+ }
59
+ event_0.preventDefault();
60
+ event_0.stopPropagation();
61
+ buttons_0[(nextIndex + buttons_0.length) % buttons_0.length]?.focus();
62
+ };
63
+ updateTabStops();
64
+ const observer = new MutationObserver(updateTabStops);
65
+ observer.observe(toolbar, {
66
+ attributeFilter: ['disabled'],
67
+ childList: true,
68
+ subtree: true
69
+ });
70
+ toolbar.addEventListener('focusin', handleFocus);
71
+ toolbar.addEventListener('keydown', handleKeyDown);
72
+ return () => {
73
+ observer.disconnect();
74
+ toolbar.removeEventListener('focusin', handleFocus);
75
+ toolbar.removeEventListener('keydown', handleKeyDown);
76
+ };
77
+ }, [toolbarRef]);
78
+ }
79
+ //# sourceMappingURL=useToolbarKeyboardNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToolbarKeyboardNavigation.js","names":["useEffect","useToolbarKeyboardNavigation","toolbarRef","toolbar","current","activeButton","getButtons","Array","from","querySelectorAll","filter","button","closest","updateTabStops","buttons","enabledButtons","disabled","includes","tabIndex","handleFocus","event","find","target","handleKeyDown","altKey","ctrlKey","metaKey","shiftKey","index","findIndex","isRTL","getComputedStyle","direction","nextIndex","key","length","preventDefault","stopPropagation","focus","observer","MutationObserver","observe","attributeFilter","childList","subtree","addEventListener","disconnect","removeEventListener"],"sources":["../../../../src/features/toolbars/shared/useToolbarKeyboardNavigation.ts"],"sourcesContent":["'use client'\n\nimport type { RefObject } from 'react'\n\nimport { useEffect } from 'react'\n\nexport function useToolbarKeyboardNavigation({\n toolbarRef,\n}: {\n toolbarRef: RefObject<HTMLDivElement | null>\n}) {\n useEffect(() => {\n const toolbar = toolbarRef.current\n\n if (!toolbar) {\n return\n }\n\n let activeButton: HTMLButtonElement | undefined\n const getButtons = () =>\n Array.from(toolbar.querySelectorAll<HTMLButtonElement>('button')).filter(\n (button) =>\n !button.closest('[role=\"menu\"]') && button.closest('[role=\"toolbar\"]') === toolbar,\n )\n\n const updateTabStops = () => {\n const buttons = getButtons()\n const enabledButtons = buttons.filter((button) => !button.disabled)\n\n if (!activeButton || !enabledButtons.includes(activeButton)) {\n activeButton = enabledButtons[0]\n }\n\n for (const button of buttons) {\n button.tabIndex = button === activeButton ? 0 : -1\n }\n }\n\n const handleFocus = (event: FocusEvent) => {\n const button = getButtons().find((button) => button === event.target)\n\n if (button) {\n activeButton = button\n updateTabStops()\n }\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {\n return\n }\n\n const buttons = getButtons().filter((button) => !button.disabled)\n const index = buttons.findIndex((button) => button === event.target)\n\n // Dropdown menus and custom inputs retain their own keyboard behavior.\n if (index === -1) {\n return\n }\n\n const isRTL = getComputedStyle(toolbar).direction === 'rtl'\n let nextIndex: number\n\n switch (event.key) {\n case 'ArrowLeft':\n nextIndex = index + (isRTL ? 1 : -1)\n break\n case 'ArrowRight':\n nextIndex = index + (isRTL ? -1 : 1)\n break\n case 'End':\n nextIndex = buttons.length - 1\n break\n case 'Home':\n nextIndex = 0\n break\n default:\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n buttons[(nextIndex + buttons.length) % buttons.length]?.focus()\n }\n\n updateTabStops()\n const observer = new MutationObserver(updateTabStops)\n\n observer.observe(toolbar, { attributeFilter: ['disabled'], childList: true, subtree: true })\n toolbar.addEventListener('focusin', handleFocus)\n toolbar.addEventListener('keydown', handleKeyDown)\n\n return () => {\n observer.disconnect()\n toolbar.removeEventListener('focusin', handleFocus)\n toolbar.removeEventListener('keydown', handleKeyDown)\n }\n }, [toolbarRef])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useToolbarStates.d.ts","sourceRoot":"","sources":["../../../../src/features/toolbars/shared/useToolbarStates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC3C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC1C;AAgCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,GACjC,aAAa,CAyFf"}
1
+ {"version":3,"file":"useToolbarStates.d.ts","sourceRoot":"","sources":["../../../../src/features/toolbars/shared/useToolbarStates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC3C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC1C;AAgCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,GACjC,aAAa,CA2Ff"}
@@ -114,7 +114,9 @@ export function useToolbarStates(editor, groups) {
114
114
  }, [editor]);
115
115
  useEffect(() => {
116
116
  void runDeprioritized(updateStates);
117
- const listener = () => runDeprioritized(updateStates);
117
+ const listener = () => {
118
+ void runDeprioritized(updateStates);
119
+ };
118
120
  const cleanup = mergeRegister(editor.registerUpdateListener(listener));
119
121
  document.addEventListener('mouseup', listener);
120
122
  return () => {
@@ -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":"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","ignoreList":[]}
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 = () => {\n void runDeprioritized(updateStates)\n }\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":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import type { I18nClient } from '@payloadcms/translations';
2
2
  import type { BaseSelection, LexicalEditor } from 'lexical';
3
3
  import type React from 'react';
4
4
  import type { EditorConfigContextType } from '../../lexical/config/client/EditorConfigProvider.js';
5
- import type { FeatureClientSchemaMap } from '../../types.js';
5
+ import type { FeatureClientSchemaMap } from '../../types/index.js';
6
6
  export type ToolbarGroup = ToolbarButtonsGroup | ToolbarDropdownGroup;
7
7
  export type ToolbarDropdownGroup = {
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/toolbars/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAClG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,oBAAoB,CAAA;AAErE,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,EACX,MAAM,EACN,mBAAmB,EACnB,SAAS,GACV,EAAE;QACD,MAAM,EAAE,aAAa,CAAA;QACrB,mBAAmB,EAAE,uBAAuB,CAAA;QAC5C,SAAS,EAAE,aAAa,CAAA;KACzB,KAAK,OAAO,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAC9B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAC9B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qIAAqI;IACrI,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACzB,iMAAiM;IACjM,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,UAAU,EAAE,WAAW,CAAA;QACvB,MAAM,EAAE,aAAa,CAAA;QACrB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,EAAE,gBAAgB,CAAA;KACvB,CAAC,CAAA;IACF,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,CAAC,EACV,MAAM,EACN,mBAAmB,EACnB,SAAS,GACV,EAAE;QACD,MAAM,EAAE,aAAa,CAAA;QACrB,mBAAmB,EAAE,uBAAuB,CAAA;QAC5C,SAAS,EAAE,aAAa,CAAA;KACzB,KAAK,OAAO,CAAA;IACb,iJAAiJ;IACjJ,SAAS,CAAC,EAAE,CAAC,EACX,MAAM,EACN,mBAAmB,EACnB,SAAS,GACV,EAAE;QACD,MAAM,EAAE,aAAa,CAAA;QACrB,mBAAmB,EAAE,uBAAuB,CAAA;QAC5C,SAAS,EAAE,aAAa,CAAA;KACzB,KAAK,OAAO,CAAA;IACb,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,+IAA+I;IAC/I,KAAK,CAAC,EACF,CAAC,CAAC,IAAI,EAAE;QACN,sBAAsB,EAAE,sBAAsB,CAAA;QAC9C,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC5B,UAAU,EAAE,MAAM,CAAA;KACnB,KAAK,MAAM,CAAC,GACb,MAAM,CAAA;IACV,oDAAoD;IACpD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACvF,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,MAAM,EACJ,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,GACnD,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CACrE,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/toolbars/types.ts"],"names":[],"mappings":"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"}
@@ -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 * If true, the dropdown items will only show icons (text labels are hidden via CSS) and tooltips will be displayed on hover.\n */\n iconOnly?: boolean\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":"AA0HA","ignoreList":[]}
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/index.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 * If true, the dropdown items will only show icons (text labels are hidden via CSS) and tooltips will be displayed on hover.\n */\n iconOnly?: boolean\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":"AA0HA","ignoreList":[]}
@@ -1,11 +1,11 @@
1
+ import type { Transformer } from '@lexical/markdown';
1
2
  import type { Klass, LexicalEditor, LexicalNode, LexicalNodeReplacement, TextFormatType } from 'lexical';
2
3
  import type { ClientConfig, RichTextFieldClient } from 'payload';
3
4
  import type React from 'react';
4
5
  import type { JSX } from 'react';
5
6
  import type { ClientEditorConfig } from '../lexical/config/types.js';
6
7
  import type { SlashMenuGroup } from '../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js';
7
- import type { Transformer } from '../packages/@lexical/markdown/index.js';
8
- import type { FeatureClientSchemaMap } from '../types.js';
8
+ import type { FeatureClientSchemaMap } from '../types/index.js';
9
9
  import type { ToolbarGroup } from './toolbars/types.js';
10
10
  export type FeatureProviderProviderClient<UnSanitizedClientFeatureProps = undefined, ClientFeatureProps = UnSanitizedClientFeatureProps> = (props: BaseClientFeatureProps<ClientFeatureProps>) => FeatureProviderClient<ClientFeatureProps>;
11
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"typesClient.d.ts","sourceRoot":"","sources":["../../src/features/typesClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typesClient.d.ts","sourceRoot":"","sources":["../../src/features/typesClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,cAAc,EACf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAA;AACtG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,MAAM,6BAA6B,CACvC,6BAA6B,GAAG,SAAS,EACzC,kBAAkB,GAAG,6BAA6B,IAChD,CAAC,KAAK,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,KAAK,qBAAqB,CAAC,kBAAkB,CAAC,CAAA;AAEpG;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAC/B,6BAA6B,GAAG,SAAS,EACzC,kBAAkB,GAAG,6BAA6B,IAChD;IACF;;OAEG;IACH,kBAAkB,EAAE,sBAAsB,CAAC,6BAA6B,CAAC,CAAA;IACzE,OAAO,EACH,CAAC,CAAC,KAAK,EAAE;QACP,MAAM,EAAE,YAAY,CAAA;QACpB,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC3C,sBAAsB,EAAE,sBAAsB,CAAA;QAC9C,mDAAmD;QACnD,kBAAkB,EAAE,wBAAwB,CAAA;QAC5C,KAAK,CAAC,EAAE,mBAAmB,CAAA;QAE3B,gBAAgB,EAAE,wBAAwB,CAAA;QAC1C,UAAU,EAAE,MAAM,CAAA;QAElB,uBAAuB,EAAE,kBAAkB,CAAA;KAC5C,KAAK,aAAa,CAAC,kBAAkB,CAAC,CAAC,GACxC,aAAa,CAAC,kBAAkB,CAAC,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,kBAAkB,GAAG,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;IAC/D,WAAW,EAAE,kBAAkB,CAAA;CAChC,CAAC,CAAA;AACF,MAAM,MAAM,yBAAyB,CAAC,kBAAkB,GAAG,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;IACzE,UAAU,EAAE,WAAW,CAAA;IACvB,WAAW,EAAE,kBAAkB,CAAA;CAChC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,WAAW,EAAE,GAAG,CAAA;IAEhB,SAAS,EAAE,eAAe,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,QAAQ,CAAA;CACnB,GACD;IACE,WAAW,EAAE,GAAG,CAAA;IAEhB,SAAS,EAAE,eAAe,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,QAAQ,CAAA;CACnB,GACD;IACE,WAAW,EAAE,GAAG,CAAA;IAEhB,SAAS,EAAE,eAAe,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,KAAK,CAAA;CAChB,GACD;IACE,WAAW,EAAE,GAAG,CAAA;IAEhB,SAAS,EAAE,yBAAyB,CAAA;IACpC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,oBAAoB,CAAA;CAC/B,GACD;IACE,WAAW,EAAE,GAAG,CAAA;IAChB,SAAS,EAAE,eAAe,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,gBAAgB,CAAA;CAC3B,GACD;IACE,WAAW,EAAE,GAAG,CAAA;IAChB,SAAS,EAAE,eAAe,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,gBAAgB,CAAA;CAC3B,CAAA;AAEL,MAAM,MAAM,aAAa,CAAC,kBAAkB,IAAI;IAC9C;;OAEG;IACH,aAAa,CAAC,EAAE,cAAc,EAAE,CAAA;IAChC,oBAAoB,CAAC,EAAE,CACnB,CAAC,CAAC,KAAK,EAAE;QACP,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,CAAA;QAC5D,eAAe,EAAE,WAAW,EAAE,CAAA;KAC/B,KAAK,WAAW,CAAC,GAClB,WAAW,CACd,EAAE,CAAA;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,CAAA;IAC1D;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CACX;QAEE,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAA;QAC9C,QAAQ,EAAE,gBAAgB,CAAA;KAC3B,GACD;QAEE,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAA;QAC9C,QAAQ,EAAE,QAAQ,CAAA;KACnB,GACD;QAEE,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAA;QAC9C,QAAQ,EAAE,QAAQ,CAAA;KACnB,GACD;QAEE,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAA;QAC9C,QAAQ,EAAE,KAAK,CAAA;KAChB,GACD;QAEE,SAAS,EAAE,yBAAyB,CAAC,kBAAkB,CAAC,CAAA;QACxD,QAAQ,EAAE,oBAAoB,CAAA;KAC/B,GACD;QACE,SAAS,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAA;QAC9C,QAAQ,EAAE,gBAAgB,CAAA;KAC3B,CACJ,CAAA;IACD;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;KAAE,CAAC,CAAC,CAAA;IACtD;;OAEG;IACH,2BAA2B,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;IACxE,SAAS,CAAC,EAAE;QACV;;;;;WAKG;QACH,aAAa,CAAC,EAAE,CAAC,EACf,MAAM,EACN,WAAW,GACZ,EAAE;YACD,MAAM,EAAE,aAAa,CAAA;YACrB,WAAW,EAAE,MAAM,CAAA;SACpB,KAAK,cAAc,EAAE,CAAA;QACtB;;;WAGG;QACH,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;KAC1B,CAAA;IACD;;OAEG;IACH,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,YAAY,EAAE,CAAA;KACvB,CAAA;IACD;;OAEG;IACH,aAAa,CAAC,EAAE;QACd;;WAEG;QACH,MAAM,EAAE,YAAY,EAAE,CAAA;KACvB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,kBAAkB,IAAI,kBAAkB,SAAS,SAAS,GACzF;IACE,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,kBAAkB,CAAA;AAE1B,MAAM,MAAM,qBAAqB,CAAC,kBAAkB,IAAI;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAA;AAErC,MAAM,MAAM,wBAAwB,GAAG,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9E,MAAM,MAAM,wBAAwB,GAAG,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAEnF,MAAM,MAAM,uBAAuB,GAAG;IACpC,uCAAuC;IACvC,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,cAAc,EAAE,cAAc,EAAE,CAAA;IAChC,oBAAoB,EAAE,WAAW,EAAE,CAAA;IAEnC;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;IAChC,SAAS,EAAE;QACT;;;;;WAKG;QACH,aAAa,EAAE,KAAK,CAClB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;YAAE,MAAM,EAAE,aAAa,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,KAAK,cAAc,EAAE,CAC9F,CAAA;QACD;;;WAGG;QACH,MAAM,EAAE,cAAc,EAAE,CAAA;KACzB,CAAA;CACF,GAAG,QAAQ,CACV,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,eAAe,CAAC,CAC/F,CAAA"}
@@ -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,"file":"typesClient.js","names":[],"sources":["../../src/features/typesClient.ts"],"sourcesContent":["import type { Transformer } from '@lexical/markdown'\nimport 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 { FeatureClientSchemaMap } from '../types/index.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":[]}