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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (821) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/cell/rscEntry.d.ts +12 -0
  3. package/dist/cell/rscEntry.d.ts.map +1 -0
  4. package/dist/cell/rscEntry.js +82 -0
  5. package/dist/cell/rscEntry.js.map +1 -0
  6. package/dist/exports/client/Field-KKSJXHR7.js +2 -0
  7. package/dist/exports/client/Field-KKSJXHR7.js.map +7 -0
  8. package/dist/exports/client/RelationshipComponent-2RT3YXUT.js +2 -0
  9. package/dist/exports/client/RelationshipComponent-2RT3YXUT.js.map +7 -0
  10. package/dist/exports/client/bundled.css +1 -1
  11. package/dist/exports/client/chunk-2CYU43GM.js +2 -0
  12. package/dist/exports/client/chunk-2CYU43GM.js.map +7 -0
  13. package/dist/exports/client/chunk-5PBXL4HT.js +2 -0
  14. package/dist/exports/client/chunk-5PBXL4HT.js.map +7 -0
  15. package/dist/exports/client/chunk-C7S3V4EB.js +2 -0
  16. package/dist/exports/client/chunk-C7S3V4EB.js.map +7 -0
  17. package/dist/exports/client/chunk-CUIBIFW2.js +2 -0
  18. package/dist/exports/client/chunk-CUIBIFW2.js.map +7 -0
  19. package/dist/exports/client/{chunk-UJDWBQ2K.js → chunk-MI5HS4QX.js} +2 -2
  20. package/dist/exports/client/{chunk-UJDWBQ2K.js.map → chunk-MI5HS4QX.js.map} +2 -2
  21. package/dist/exports/client/chunk-QPPOQTHD.js +2 -0
  22. package/dist/exports/client/chunk-QPPOQTHD.js.map +7 -0
  23. package/dist/exports/client/chunk-U7O7EYCP.js +2 -0
  24. package/dist/exports/client/chunk-U7O7EYCP.js.map +7 -0
  25. package/dist/exports/client/{chunk-V2LKLT2F.js → chunk-XCEM47RI.js} +3 -3
  26. package/dist/exports/client/{chunk-V2LKLT2F.js.map → chunk-XCEM47RI.js.map} +3 -3
  27. package/dist/exports/client/component-ANB7VZLA.js +2 -0
  28. package/dist/exports/client/component-ANB7VZLA.js.map +7 -0
  29. package/dist/exports/client/component-H3EYQ5KG.js +2 -0
  30. package/dist/exports/client/component-H3EYQ5KG.js.map +7 -0
  31. package/dist/exports/client/componentInline-ZGO3K4TA.js +2 -0
  32. package/dist/exports/client/componentInline-ZGO3K4TA.js.map +7 -0
  33. package/dist/exports/client/index.d.ts +10 -4
  34. package/dist/exports/client/index.d.ts.map +1 -1
  35. package/dist/exports/client/index.js +10 -8
  36. package/dist/exports/client/index.js.map +4 -4
  37. package/dist/exports/server/ast/mdx.d.ts +7 -0
  38. package/dist/exports/server/ast/mdx.d.ts.map +1 -0
  39. package/dist/exports/server/ast/mdx.js +37 -0
  40. package/dist/exports/server/ast/mdx.js.map +1 -0
  41. package/dist/exports/server/rsc.d.ts +3 -0
  42. package/dist/exports/server/rsc.d.ts.map +1 -0
  43. package/dist/exports/server/rsc.js +3 -0
  44. package/dist/exports/server/rsc.js.map +1 -0
  45. package/dist/exports/shared.d.ts +4 -0
  46. package/dist/exports/shared.d.ts.map +1 -0
  47. package/dist/exports/shared.js +4 -0
  48. package/dist/exports/shared.js.map +1 -0
  49. package/dist/features/align/client/index.d.ts +1 -4
  50. package/dist/features/align/client/index.d.ts.map +1 -1
  51. package/dist/features/blockquote/client/index.d.ts +1 -4
  52. package/dist/features/blockquote/client/index.d.ts.map +1 -1
  53. package/dist/features/blockquote/markdownTransformer.js.map +1 -1
  54. package/dist/features/blockquote/server/index.d.ts +1 -1
  55. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  56. package/dist/features/blockquote/server/index.js +5 -1
  57. package/dist/features/blockquote/server/index.js.map +1 -1
  58. package/dist/features/blocks/client/component/BlockContent.d.ts +34 -8
  59. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  60. package/dist/features/blocks/client/component/BlockContent.js +66 -170
  61. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  62. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts +11 -0
  63. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts.map +1 -0
  64. package/dist/features/blocks/client/component/components/BlockCollapsible.js +37 -0
  65. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -0
  66. package/dist/features/blocks/client/component/components/BlockEditButton.d.ts +3 -0
  67. package/dist/features/blocks/client/component/components/BlockEditButton.d.ts.map +1 -0
  68. package/dist/features/blocks/client/component/components/BlockEditButton.js +22 -0
  69. package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -0
  70. package/dist/features/blocks/client/component/components/BlockRemoveButton.d.ts +3 -0
  71. package/dist/features/blocks/client/component/components/BlockRemoveButton.d.ts.map +1 -0
  72. package/dist/features/blocks/client/component/components/BlockRemoveButton.js +22 -0
  73. package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -0
  74. package/dist/features/blocks/client/component/index.d.ts +1 -1
  75. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  76. package/dist/features/blocks/client/component/index.js +294 -93
  77. package/dist/features/blocks/client/component/index.js.map +1 -1
  78. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts +5 -0
  79. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -0
  80. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +28 -0
  81. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -0
  82. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.d.ts +3 -0
  83. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.d.ts.map +1 -0
  84. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +22 -0
  85. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -0
  86. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.d.ts +3 -0
  87. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.d.ts.map +1 -0
  88. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +22 -0
  89. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -0
  90. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.d.ts +3 -0
  91. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.d.ts.map +1 -0
  92. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +22 -0
  93. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -0
  94. package/dist/features/blocks/client/componentInline/index.d.ts +14 -2
  95. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  96. package/dist/features/blocks/client/componentInline/index.js +237 -63
  97. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  98. package/dist/features/blocks/client/index.d.ts +1 -8
  99. package/dist/features/blocks/client/index.d.ts.map +1 -1
  100. package/dist/features/blocks/client/index.js +140 -147
  101. package/dist/features/blocks/client/index.js.map +1 -1
  102. package/dist/features/blocks/client/markdownTransformer.d.ts +16 -0
  103. package/dist/features/blocks/client/markdownTransformer.d.ts.map +1 -0
  104. package/dist/features/blocks/client/markdownTransformer.js +144 -0
  105. package/dist/features/blocks/client/markdownTransformer.js.map +1 -0
  106. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  107. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  108. package/dist/features/blocks/client/nodes/BlocksNode.js +1 -3
  109. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  110. package/dist/features/blocks/client/plugin/commands.d.ts +0 -4
  111. package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -1
  112. package/dist/features/blocks/client/plugin/commands.js +0 -1
  113. package/dist/features/blocks/client/plugin/commands.js.map +1 -1
  114. package/dist/features/blocks/client/plugin/index.d.ts +3 -4
  115. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  116. package/dist/features/blocks/client/plugin/index.js +25 -129
  117. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  118. package/dist/features/blocks/server/index.d.ts +1 -2
  119. package/dist/features/blocks/server/index.d.ts.map +1 -1
  120. package/dist/features/blocks/server/index.js +72 -35
  121. package/dist/features/blocks/server/index.js.map +1 -1
  122. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts +22 -0
  123. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts.map +1 -0
  124. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js +136 -0
  125. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js.map +1 -0
  126. package/dist/features/blocks/server/markdownTransformer.d.ts +22 -0
  127. package/dist/features/blocks/server/markdownTransformer.d.ts.map +1 -0
  128. package/dist/features/blocks/server/markdownTransformer.js +400 -0
  129. package/dist/features/blocks/server/markdownTransformer.js.map +1 -0
  130. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +11 -5
  131. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  132. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  133. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +3 -3
  134. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  135. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  136. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  137. package/dist/features/blocks/server/validate.js +8 -5
  138. package/dist/features/blocks/server/validate.js.map +1 -1
  139. package/dist/features/converters/html/converter/converters/paragraph.d.ts.map +1 -1
  140. package/dist/features/converters/html/converter/converters/paragraph.js +4 -0
  141. package/dist/features/converters/html/converter/converters/paragraph.js.map +1 -1
  142. package/dist/features/converters/html/converter/converters/text.d.ts.map +1 -1
  143. package/dist/features/converters/html/converter/converters/text.js +2 -1
  144. package/dist/features/converters/html/converter/converters/text.js.map +1 -1
  145. package/dist/features/converters/html/converter/index.d.ts +11 -7
  146. package/dist/features/converters/html/converter/index.d.ts.map +1 -1
  147. package/dist/features/converters/html/converter/index.js +17 -1
  148. package/dist/features/converters/html/converter/index.js.map +1 -1
  149. package/dist/features/converters/html/converter/types.d.ts +3 -1
  150. package/dist/features/converters/html/converter/types.d.ts.map +1 -1
  151. package/dist/features/converters/html/converter/types.js.map +1 -1
  152. package/dist/features/converters/html/field/index.d.ts.map +1 -1
  153. package/dist/features/converters/html/field/index.js +7 -1
  154. package/dist/features/converters/html/field/index.js.map +1 -1
  155. package/dist/features/debug/testRecorder/client/index.d.ts +1 -4
  156. package/dist/features/debug/testRecorder/client/index.d.ts.map +1 -1
  157. package/dist/features/debug/testRecorder/client/plugin/index.js +25 -14
  158. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  159. package/dist/features/debug/treeView/client/index.d.ts +1 -4
  160. package/dist/features/debug/treeView/client/index.d.ts.map +1 -1
  161. package/dist/features/experimental_table/client/index.d.ts +1 -1
  162. package/dist/features/experimental_table/client/index.d.ts.map +1 -1
  163. package/dist/features/experimental_table/client/index.js +2 -0
  164. package/dist/features/experimental_table/client/index.js.map +1 -1
  165. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -1
  166. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +49 -51
  167. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  168. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -1
  169. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +55 -42
  170. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  171. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts +1 -1
  172. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
  173. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +58 -19
  174. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  175. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
  176. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +52 -50
  177. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  178. package/dist/features/experimental_table/client/utils/debounce.js +4 -4
  179. package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
  180. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
  181. package/dist/features/experimental_table/markdownTransformer.d.ts +5 -0
  182. package/dist/features/experimental_table/markdownTransformer.d.ts.map +1 -0
  183. package/dist/features/experimental_table/markdownTransformer.js +127 -0
  184. package/dist/features/experimental_table/markdownTransformer.js.map +1 -0
  185. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  186. package/dist/features/experimental_table/server/index.js +22 -4
  187. package/dist/features/experimental_table/server/index.js.map +1 -1
  188. package/dist/features/format/bold/feature.client.d.ts +1 -4
  189. package/dist/features/format/bold/feature.client.d.ts.map +1 -1
  190. package/dist/features/format/bold/feature.client.js +2 -1
  191. package/dist/features/format/bold/feature.client.js.map +1 -1
  192. package/dist/features/format/inlineCode/feature.client.d.ts +1 -4
  193. package/dist/features/format/inlineCode/feature.client.d.ts.map +1 -1
  194. package/dist/features/format/inlineCode/feature.client.js +2 -1
  195. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  196. package/dist/features/format/italic/feature.client.d.ts +1 -4
  197. package/dist/features/format/italic/feature.client.d.ts.map +1 -1
  198. package/dist/features/format/italic/feature.client.js +2 -1
  199. package/dist/features/format/italic/feature.client.js.map +1 -1
  200. package/dist/features/format/strikethrough/feature.client.d.ts +1 -4
  201. package/dist/features/format/strikethrough/feature.client.d.ts.map +1 -1
  202. package/dist/features/format/strikethrough/feature.client.js +2 -1
  203. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  204. package/dist/features/format/subscript/feature.client.d.ts +1 -4
  205. package/dist/features/format/subscript/feature.client.d.ts.map +1 -1
  206. package/dist/features/format/subscript/feature.client.js +2 -1
  207. package/dist/features/format/subscript/feature.client.js.map +1 -1
  208. package/dist/features/format/superscript/feature.client.d.ts +1 -4
  209. package/dist/features/format/superscript/feature.client.d.ts.map +1 -1
  210. package/dist/features/format/superscript/feature.client.js +2 -1
  211. package/dist/features/format/superscript/feature.client.js.map +1 -1
  212. package/dist/features/format/underline/feature.client.d.ts +1 -4
  213. package/dist/features/format/underline/feature.client.d.ts.map +1 -1
  214. package/dist/features/format/underline/feature.client.js +2 -1
  215. package/dist/features/format/underline/feature.client.js.map +1 -1
  216. package/dist/features/heading/client/index.d.ts +1 -4
  217. package/dist/features/heading/client/index.d.ts.map +1 -1
  218. package/dist/features/heading/server/index.d.ts.map +1 -1
  219. package/dist/features/heading/server/index.js +4 -0
  220. package/dist/features/heading/server/index.js.map +1 -1
  221. package/dist/features/horizontalRule/client/component/index.d.ts +1 -1
  222. package/dist/features/horizontalRule/client/component/index.d.ts.map +1 -1
  223. package/dist/features/horizontalRule/client/component/index.js +12 -9
  224. package/dist/features/horizontalRule/client/component/index.js.map +1 -1
  225. package/dist/features/horizontalRule/client/index.d.ts +1 -4
  226. package/dist/features/horizontalRule/client/index.d.ts.map +1 -1
  227. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +2 -2
  228. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  229. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
  230. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  231. package/dist/features/indent/client/index.d.ts +1 -4
  232. package/dist/features/indent/client/index.d.ts.map +1 -1
  233. package/dist/features/indent/client/index.js +2 -1
  234. package/dist/features/indent/client/index.js.map +1 -1
  235. package/dist/features/link/client/index.d.ts +1 -13
  236. package/dist/features/link/client/index.d.ts.map +1 -1
  237. package/dist/features/link/client/index.js +2 -2
  238. package/dist/features/link/client/index.js.map +1 -1
  239. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  240. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  241. package/dist/features/link/client/plugins/autoLink/index.js +3 -1
  242. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  243. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  244. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +78 -40
  245. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  246. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -1
  247. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +1 -1
  248. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  249. package/dist/features/link/nodes/AutoLinkNode.js +2 -2
  250. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  251. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  252. package/dist/features/link/nodes/LinkNode.js +12 -7
  253. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  254. package/dist/features/link/nodes/types.d.ts +3 -3
  255. package/dist/features/link/nodes/types.d.ts.map +1 -1
  256. package/dist/features/link/nodes/types.js.map +1 -1
  257. package/dist/features/link/server/baseFields.d.ts +1 -1
  258. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  259. package/dist/features/link/server/baseFields.js +15 -3
  260. package/dist/features/link/server/baseFields.js.map +1 -1
  261. package/dist/features/link/server/i18n.d.ts.map +1 -1
  262. package/dist/features/link/server/i18n.js +64 -32
  263. package/dist/features/link/server/i18n.js.map +1 -1
  264. package/dist/features/link/server/index.d.ts.map +1 -1
  265. package/dist/features/link/server/index.js +17 -4
  266. package/dist/features/link/server/index.js.map +1 -1
  267. package/dist/features/link/server/transformExtraFields.d.ts +1 -1
  268. package/dist/features/link/server/transformExtraFields.d.ts.map +1 -1
  269. package/dist/features/link/server/transformExtraFields.js.map +1 -1
  270. package/dist/features/link/server/validate.d.ts.map +1 -1
  271. package/dist/features/link/server/validate.js +8 -5
  272. package/dist/features/link/server/validate.js.map +1 -1
  273. package/dist/features/lists/checklist/client/index.d.ts +1 -4
  274. package/dist/features/lists/checklist/client/index.d.ts.map +1 -1
  275. package/dist/features/lists/htmlConverter.d.ts.map +1 -1
  276. package/dist/features/lists/htmlConverter.js +8 -0
  277. package/dist/features/lists/htmlConverter.js.map +1 -1
  278. package/dist/features/lists/orderedList/client/index.d.ts +1 -4
  279. package/dist/features/lists/orderedList/client/index.d.ts.map +1 -1
  280. package/dist/features/lists/shared/markdown.js.map +1 -1
  281. package/dist/features/lists/unorderedList/client/index.d.ts +1 -4
  282. package/dist/features/lists/unorderedList/client/index.d.ts.map +1 -1
  283. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -1
  284. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +1 -0
  285. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
  286. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts +1 -4
  287. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +1 -1
  288. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  289. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  290. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  291. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
  292. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
  293. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
  294. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
  295. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
  296. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
  297. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
  298. package/dist/features/migrations/slateToLexical/converter/index.d.ts.map +1 -1
  299. package/dist/features/migrations/slateToLexical/converter/index.js +1 -0
  300. package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
  301. package/dist/features/migrations/slateToLexical/feature.client.d.ts +1 -4
  302. package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +1 -1
  303. package/dist/features/migrations/slateToLexical/feature.client.js +1 -3
  304. package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
  305. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  306. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  307. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  308. package/dist/features/paragraph/client/index.d.ts +1 -4
  309. package/dist/features/paragraph/client/index.d.ts.map +1 -1
  310. package/dist/features/paragraph/server/index.d.ts +1 -1
  311. package/dist/features/paragraph/server/index.d.ts.map +1 -1
  312. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  313. package/dist/features/relationship/client/components/RelationshipComponent.js +34 -24
  314. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  315. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  316. package/dist/features/relationship/client/drawer/index.js +27 -26
  317. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  318. package/dist/features/relationship/client/index.d.ts +2 -17
  319. package/dist/features/relationship/client/index.d.ts.map +1 -1
  320. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  321. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  322. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  323. package/dist/features/relationship/client/plugins/index.js +1 -1
  324. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  325. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +1 -1
  326. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -1
  327. package/dist/features/relationship/server/index.d.ts +1 -1
  328. package/dist/features/relationship/server/index.d.ts.map +1 -1
  329. package/dist/features/relationship/server/index.js +50 -40
  330. package/dist/features/relationship/server/index.js.map +1 -1
  331. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +2 -2
  332. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  333. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  334. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  335. package/dist/features/toolbars/fixed/client/Toolbar/index.js +93 -66
  336. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  337. package/dist/features/toolbars/fixed/client/index.d.ts +1 -4
  338. package/dist/features/toolbars/fixed/client/index.d.ts.map +1 -1
  339. package/dist/features/toolbars/inline/client/Toolbar/index.js +135 -97
  340. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  341. package/dist/features/toolbars/inline/client/index.d.ts +1 -4
  342. package/dist/features/toolbars/inline/client/index.d.ts.map +1 -1
  343. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  344. package/dist/features/toolbars/shared/ToolbarButton/index.js +5 -2
  345. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  346. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts +5 -4
  347. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  348. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +24 -10
  349. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  350. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +4 -5
  351. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  352. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +127 -127
  353. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  354. package/dist/features/toolbars/types.d.ts +23 -11
  355. package/dist/features/toolbars/types.d.ts.map +1 -1
  356. package/dist/features/toolbars/types.js.map +1 -1
  357. package/dist/features/typesClient.d.ts +22 -30
  358. package/dist/features/typesClient.d.ts.map +1 -1
  359. package/dist/features/typesClient.js.map +1 -1
  360. package/dist/features/typesServer.d.ts +23 -28
  361. package/dist/features/typesServer.d.ts.map +1 -1
  362. package/dist/features/typesServer.js.map +1 -1
  363. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  364. package/dist/features/upload/client/component/index.js +66 -58
  365. package/dist/features/upload/client/component/index.js.map +1 -1
  366. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  367. package/dist/features/upload/client/drawer/index.js +34 -32
  368. package/dist/features/upload/client/drawer/index.js.map +1 -1
  369. package/dist/features/upload/client/feature.client.d.ts +1 -4
  370. package/dist/features/upload/client/feature.client.d.ts.map +1 -1
  371. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  372. package/dist/features/upload/client/nodes/UploadNode.js +1 -1
  373. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  374. package/dist/features/upload/client/plugin/index.js +1 -1
  375. package/dist/features/upload/client/plugin/index.js.map +1 -1
  376. package/dist/features/upload/server/feature.server.d.ts.map +1 -1
  377. package/dist/features/upload/server/feature.server.js +17 -8
  378. package/dist/features/upload/server/feature.server.js.map +1 -1
  379. package/dist/features/upload/server/validate.d.ts.map +1 -1
  380. package/dist/features/upload/server/validate.js +7 -4
  381. package/dist/features/upload/server/validate.js.map +1 -1
  382. package/dist/field/Field.d.ts.map +1 -1
  383. package/dist/field/Field.js +39 -65
  384. package/dist/field/Field.js.map +1 -1
  385. package/dist/field/bundled.css +1 -1
  386. package/dist/field/index.d.ts.map +1 -1
  387. package/dist/field/index.js +74 -74
  388. package/dist/field/index.js.map +1 -1
  389. package/dist/field/rscEntry.d.ts +9 -0
  390. package/dist/field/rscEntry.d.ts.map +1 -0
  391. package/dist/field/rscEntry.js +56 -0
  392. package/dist/field/rscEntry.js.map +1 -0
  393. package/dist/index.d.ts +8 -4
  394. package/dist/index.d.ts.map +1 -1
  395. package/dist/index.js +101 -105
  396. package/dist/index.js.map +1 -1
  397. package/dist/lexical/EditorPlugin.d.ts.map +1 -1
  398. package/dist/lexical/EditorPlugin.js +2 -1
  399. package/dist/lexical/EditorPlugin.js.map +1 -1
  400. package/dist/lexical/LexicalEditor.d.ts +1 -1
  401. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  402. package/dist/lexical/LexicalEditor.js +10 -10
  403. package/dist/lexical/LexicalEditor.js.map +1 -1
  404. package/dist/lexical/LexicalProvider.d.ts +2 -2
  405. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  406. package/dist/lexical/LexicalProvider.js +18 -25
  407. package/dist/lexical/LexicalProvider.js.map +1 -1
  408. package/dist/lexical/config/client/EditorConfigProvider.d.ts +6 -5
  409. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  410. package/dist/lexical/config/client/EditorConfigProvider.js +14 -13
  411. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  412. package/dist/lexical/config/client/loader.d.ts +5 -2
  413. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  414. package/dist/lexical/config/client/loader.js +12 -18
  415. package/dist/lexical/config/client/loader.js.map +1 -1
  416. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  417. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  418. package/dist/lexical/config/client/sanitize.js +19 -18
  419. package/dist/lexical/config/client/sanitize.js.map +1 -1
  420. package/dist/lexical/config/server/loader.d.ts +2 -1
  421. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  422. package/dist/lexical/config/server/loader.js +2 -0
  423. package/dist/lexical/config/server/loader.js.map +1 -1
  424. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  425. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  426. package/dist/lexical/config/server/sanitize.js +27 -13
  427. package/dist/lexical/config/server/sanitize.js.map +1 -1
  428. package/dist/lexical/config/types.d.ts +2 -2
  429. package/dist/lexical/config/types.d.ts.map +1 -1
  430. package/dist/lexical/config/types.js.map +1 -1
  431. package/dist/lexical/nodes/index.d.ts +4 -0
  432. package/dist/lexical/nodes/index.d.ts.map +1 -1
  433. package/dist/lexical/nodes/index.js +8 -1
  434. package/dist/lexical/nodes/index.js.map +1 -1
  435. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +6 -6
  436. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  437. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +19 -8
  438. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  439. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +2 -2
  440. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
  441. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +7 -7
  442. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  443. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +3 -2
  444. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  445. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  446. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  447. package/dist/lexical/plugins/SlashMenu/index.js +24 -30
  448. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  449. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  450. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +11 -9
  451. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  452. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts +1 -1
  453. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  454. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
  455. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
  456. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +1 -1
  457. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
  458. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  459. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +15 -8
  460. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  461. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +1 -1
  462. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +9 -7
  463. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  464. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.d.ts.map +1 -1
  465. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +3 -1
  466. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +1 -1
  467. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.d.ts.map +1 -1
  468. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +3 -4
  469. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
  470. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
  471. package/dist/lexical/theme/EditorTheme.js +1 -2
  472. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  473. package/dist/lexical/utils/nodeFormat.d.ts +2 -2
  474. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  475. package/dist/lexical/utils/nodeFormat.js.map +1 -1
  476. package/dist/lexical/utils/rect.d.ts +4 -4
  477. package/dist/lexical/utils/rect.d.ts.map +1 -1
  478. package/dist/lexical/utils/rect.js.map +1 -1
  479. package/dist/lexical/utils/setFloatingElemPosition.d.ts +1 -1
  480. package/dist/lexical/utils/setFloatingElemPosition.d.ts.map +1 -1
  481. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
  482. package/dist/lexical/utils/url.d.ts +5 -0
  483. package/dist/lexical/utils/url.d.ts.map +1 -1
  484. package/dist/lexical/utils/url.js +25 -5
  485. package/dist/lexical/utils/url.js.map +1 -1
  486. package/dist/lexical-proxy/@lexical-headless.d.ts +2 -0
  487. package/dist/lexical-proxy/@lexical-headless.d.ts.map +1 -0
  488. package/dist/lexical-proxy/@lexical-headless.js +2 -0
  489. package/dist/lexical-proxy/@lexical-headless.js.map +1 -0
  490. package/dist/lexical-proxy/@lexical-link.d.ts +2 -0
  491. package/dist/lexical-proxy/@lexical-link.d.ts.map +1 -0
  492. package/dist/lexical-proxy/@lexical-link.js +2 -0
  493. package/dist/lexical-proxy/@lexical-link.js.map +1 -0
  494. package/dist/lexical-proxy/@lexical-list.d.ts +2 -0
  495. package/dist/lexical-proxy/@lexical-list.d.ts.map +1 -0
  496. package/dist/lexical-proxy/@lexical-list.js +2 -0
  497. package/dist/lexical-proxy/@lexical-list.js.map +1 -0
  498. package/dist/lexical-proxy/@lexical-mark.d.ts +2 -0
  499. package/dist/lexical-proxy/@lexical-mark.d.ts.map +1 -0
  500. package/dist/lexical-proxy/@lexical-mark.js +2 -0
  501. package/dist/lexical-proxy/@lexical-mark.js.map +1 -0
  502. package/dist/lexical-proxy/@lexical-markdown.d.ts +2 -0
  503. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -0
  504. package/dist/lexical-proxy/@lexical-markdown.js +2 -0
  505. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -0
  506. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.d.ts +2 -0
  507. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.d.ts.map +1 -0
  508. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js +2 -0
  509. package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js.map +1 -0
  510. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.d.ts +2 -0
  511. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.d.ts.map +1 -0
  512. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js +2 -0
  513. package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js.map +1 -0
  514. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.d.ts +2 -0
  515. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.d.ts.map +1 -0
  516. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js +2 -0
  517. package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js.map +1 -0
  518. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.d.ts +2 -0
  519. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.d.ts.map +1 -0
  520. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js +2 -0
  521. package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js.map +1 -0
  522. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.d.ts +2 -0
  523. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.d.ts.map +1 -0
  524. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js +2 -0
  525. package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js.map +1 -0
  526. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.d.ts +2 -0
  527. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.d.ts.map +1 -0
  528. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js +2 -0
  529. package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js.map +1 -0
  530. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.d.ts +2 -0
  531. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.d.ts.map +1 -0
  532. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js +2 -0
  533. package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js.map +1 -0
  534. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.d.ts +2 -0
  535. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.d.ts.map +1 -0
  536. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js +2 -0
  537. package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js.map +1 -0
  538. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.d.ts +2 -0
  539. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.d.ts.map +1 -0
  540. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js +2 -0
  541. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js.map +1 -0
  542. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.d.ts +2 -0
  543. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.d.ts.map +1 -0
  544. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js +2 -0
  545. package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js.map +1 -0
  546. package/dist/lexical-proxy/@lexical-react/LexicalComposer.d.ts +2 -0
  547. package/dist/lexical-proxy/@lexical-react/LexicalComposer.d.ts.map +1 -0
  548. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js +2 -0
  549. package/dist/lexical-proxy/@lexical-react/LexicalComposer.js.map +1 -0
  550. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.d.ts +2 -0
  551. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.d.ts.map +1 -0
  552. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js +2 -0
  553. package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js.map +1 -0
  554. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.d.ts +2 -0
  555. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.d.ts.map +1 -0
  556. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js +2 -0
  557. package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js.map +1 -0
  558. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +2 -0
  559. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +1 -0
  560. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +2 -0
  561. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +1 -0
  562. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.d.ts +2 -0
  563. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.d.ts.map +1 -0
  564. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js +2 -0
  565. package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js.map +1 -0
  566. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.d.ts +2 -0
  567. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.d.ts.map +1 -0
  568. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js +2 -0
  569. package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js.map +1 -0
  570. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.d.ts +2 -0
  571. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.d.ts.map +1 -0
  572. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js +2 -0
  573. package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js.map +1 -0
  574. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.d.ts +2 -0
  575. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.d.ts.map +1 -0
  576. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js +2 -0
  577. package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js.map +1 -0
  578. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.d.ts +2 -0
  579. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.d.ts.map +1 -0
  580. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js +2 -0
  581. package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js.map +1 -0
  582. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.d.ts +2 -0
  583. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.d.ts.map +1 -0
  584. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js +2 -0
  585. package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js.map +1 -0
  586. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.d.ts +2 -0
  587. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.d.ts.map +1 -0
  588. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js +2 -0
  589. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js.map +1 -0
  590. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.d.ts +2 -0
  591. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.d.ts.map +1 -0
  592. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js +2 -0
  593. package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js.map +1 -0
  594. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.d.ts +2 -0
  595. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.d.ts.map +1 -0
  596. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js +2 -0
  597. package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js.map +1 -0
  598. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.d.ts +2 -0
  599. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.d.ts.map +1 -0
  600. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js +2 -0
  601. package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js.map +1 -0
  602. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.d.ts +2 -0
  603. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.d.ts.map +1 -0
  604. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js +2 -0
  605. package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js.map +1 -0
  606. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.d.ts +2 -0
  607. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.d.ts.map +1 -0
  608. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js +2 -0
  609. package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js.map +1 -0
  610. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.d.ts +2 -0
  611. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.d.ts.map +1 -0
  612. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js +2 -0
  613. package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js.map +1 -0
  614. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.d.ts +2 -0
  615. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.d.ts.map +1 -0
  616. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js +2 -0
  617. package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js.map +1 -0
  618. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.d.ts +2 -0
  619. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.d.ts.map +1 -0
  620. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js +2 -0
  621. package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js.map +1 -0
  622. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.d.ts +2 -0
  623. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.d.ts.map +1 -0
  624. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js +2 -0
  625. package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js.map +1 -0
  626. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.d.ts +2 -0
  627. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.d.ts.map +1 -0
  628. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js +2 -0
  629. package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js.map +1 -0
  630. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.d.ts +2 -0
  631. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.d.ts.map +1 -0
  632. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js +2 -0
  633. package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js.map +1 -0
  634. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.d.ts +2 -0
  635. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.d.ts.map +1 -0
  636. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.js +2 -0
  637. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContents.js.map +1 -0
  638. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.d.ts +2 -0
  639. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.d.ts.map +1 -0
  640. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js +2 -0
  641. package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js.map +1 -0
  642. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.d.ts +2 -0
  643. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.d.ts.map +1 -0
  644. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js +2 -0
  645. package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js.map +1 -0
  646. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.d.ts +2 -0
  647. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.d.ts.map +1 -0
  648. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js +2 -0
  649. package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js.map +1 -0
  650. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.d.ts +2 -0
  651. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.d.ts.map +1 -0
  652. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js +2 -0
  653. package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js.map +1 -0
  654. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.d.ts +2 -0
  655. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.d.ts.map +1 -0
  656. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js +2 -0
  657. package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js.map +1 -0
  658. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.d.ts +2 -0
  659. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.d.ts.map +1 -0
  660. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js +2 -0
  661. package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js.map +1 -0
  662. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.d.ts +2 -0
  663. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.d.ts.map +1 -0
  664. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js +2 -0
  665. package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js.map +1 -0
  666. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.d.ts +2 -0
  667. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.d.ts.map +1 -0
  668. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js +2 -0
  669. package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js.map +1 -0
  670. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.d.ts +2 -0
  671. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.d.ts.map +1 -0
  672. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js +2 -0
  673. package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js.map +1 -0
  674. package/dist/lexical-proxy/@lexical-rich-text.d.ts +2 -0
  675. package/dist/lexical-proxy/@lexical-rich-text.d.ts.map +1 -0
  676. package/dist/lexical-proxy/@lexical-rich-text.js +2 -0
  677. package/dist/lexical-proxy/@lexical-rich-text.js.map +1 -0
  678. package/dist/lexical-proxy/@lexical-selection.d.ts +2 -0
  679. package/dist/lexical-proxy/@lexical-selection.d.ts.map +1 -0
  680. package/dist/lexical-proxy/@lexical-selection.js +2 -0
  681. package/dist/lexical-proxy/@lexical-selection.js.map +1 -0
  682. package/dist/lexical-proxy/@lexical-utils.d.ts +2 -0
  683. package/dist/lexical-proxy/@lexical-utils.d.ts.map +1 -0
  684. package/dist/lexical-proxy/@lexical-utils.js +2 -0
  685. package/dist/lexical-proxy/@lexical-utils.js.map +1 -0
  686. package/dist/lexical-proxy/lexical.d.ts +2 -0
  687. package/dist/lexical-proxy/lexical.d.ts.map +1 -0
  688. package/dist/lexical-proxy/lexical.js +2 -0
  689. package/dist/lexical-proxy/lexical.js.map +1 -0
  690. package/dist/populateGraphQL/populate.d.ts +3 -2
  691. package/dist/populateGraphQL/populate.d.ts.map +1 -1
  692. package/dist/populateGraphQL/populate.js +3 -1
  693. package/dist/populateGraphQL/populate.js.map +1 -1
  694. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  695. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  696. package/dist/populateGraphQL/populateLexicalPopulationPromises.js +5 -4
  697. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  698. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
  699. package/dist/types.d.ts +23 -8
  700. package/dist/types.d.ts.map +1 -1
  701. package/dist/types.js.map +1 -1
  702. package/dist/utilities/buildInitialState.d.ts +27 -0
  703. package/dist/utilities/buildInitialState.d.ts.map +1 -0
  704. package/dist/utilities/buildInitialState.js +53 -0
  705. package/dist/utilities/buildInitialState.js.map +1 -0
  706. package/dist/utilities/createClientFeature.d.ts +8 -5
  707. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  708. package/dist/utilities/createClientFeature.js +7 -4
  709. package/dist/utilities/createClientFeature.js.map +1 -1
  710. package/dist/utilities/createServerFeature.d.ts +1 -0
  711. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  712. package/dist/utilities/createServerFeature.js +2 -0
  713. package/dist/utilities/createServerFeature.js.map +1 -1
  714. package/dist/utilities/fieldsDrawer/Drawer.d.ts +1 -0
  715. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  716. package/dist/utilities/fieldsDrawer/Drawer.js +68 -27
  717. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  718. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  719. package/dist/utilities/fieldsDrawer/DrawerContent.js +102 -138
  720. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  721. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts +13 -0
  722. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -0
  723. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +129 -0
  724. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -0
  725. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts +10 -0
  726. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -0
  727. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +136 -0
  728. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -0
  729. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts +16 -0
  730. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -0
  731. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +144 -0
  732. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -0
  733. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  734. package/dist/utilities/generateImportMap.js +2 -3
  735. package/dist/utilities/generateImportMap.js.map +1 -1
  736. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  737. package/dist/utilities/generateSchemaMap.js +13 -10
  738. package/dist/utilities/generateSchemaMap.js.map +1 -1
  739. package/dist/utilities/initLexicalFeatures.d.ts +18 -0
  740. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -0
  741. package/dist/utilities/initLexicalFeatures.js +96 -0
  742. package/dist/utilities/initLexicalFeatures.js.map +1 -0
  743. package/dist/utilities/jsx/collectTopLevelJSXInLines.d.ts +52 -0
  744. package/dist/utilities/jsx/collectTopLevelJSXInLines.d.ts.map +1 -0
  745. package/dist/utilities/jsx/collectTopLevelJSXInLines.js +79 -0
  746. package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -0
  747. package/dist/utilities/jsx/extractPropsFromJSXPropsString.d.ts +12 -0
  748. package/dist/utilities/jsx/extractPropsFromJSXPropsString.d.ts.map +1 -0
  749. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js +125 -0
  750. package/dist/utilities/jsx/extractPropsFromJSXPropsString.js.map +1 -0
  751. package/dist/utilities/jsx/jsx.d.ts +26 -0
  752. package/dist/utilities/jsx/jsx.d.ts.map +1 -0
  753. package/dist/utilities/jsx/jsx.js +105 -0
  754. package/dist/utilities/jsx/jsx.js.map +1 -0
  755. package/dist/utilities/jsx/jsx.spec.d.ts +2 -0
  756. package/dist/utilities/jsx/jsx.spec.d.ts.map +1 -0
  757. package/dist/utilities/jsx/jsx.spec.js +142 -0
  758. package/dist/utilities/jsx/jsx.spec.js.map +1 -0
  759. package/dist/utilities/jsx/lexicalMarkdownCopy.d.ts +11 -0
  760. package/dist/utilities/jsx/lexicalMarkdownCopy.d.ts.map +1 -0
  761. package/dist/utilities/jsx/lexicalMarkdownCopy.js +61 -0
  762. package/dist/utilities/jsx/lexicalMarkdownCopy.js.map +1 -0
  763. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +1 -1
  764. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +1 -1
  765. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +1 -1
  766. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  767. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts +1 -1
  768. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  769. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +5 -1
  770. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  771. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  772. package/dist/utilities/useLexicalFeature.js +12 -4
  773. package/dist/utilities/useLexicalFeature.js.map +1 -1
  774. package/dist/validate/index.d.ts.map +1 -1
  775. package/dist/validate/index.js +2 -2
  776. package/dist/validate/index.js.map +1 -1
  777. package/dist/validate/validateNodes.d.ts +2 -2
  778. package/dist/validate/validateNodes.d.ts.map +1 -1
  779. package/dist/validate/validateNodes.js +4 -4
  780. package/dist/validate/validateNodes.js.map +1 -1
  781. package/package.json +332 -46
  782. package/dist/cell/index.d.ts +0 -9
  783. package/dist/cell/index.d.ts.map +0 -1
  784. package/dist/cell/index.js +0 -135
  785. package/dist/cell/index.js.map +0 -1
  786. package/dist/exports/client/Field-SUWHJ4HF.js +0 -2
  787. package/dist/exports/client/Field-SUWHJ4HF.js.map +0 -7
  788. package/dist/exports/client/RelationshipComponent-EZORSGUZ.js +0 -2
  789. package/dist/exports/client/RelationshipComponent-EZORSGUZ.js.map +0 -7
  790. package/dist/exports/client/chunk-OLSILJA6.js +0 -2
  791. package/dist/exports/client/chunk-OLSILJA6.js.map +0 -7
  792. package/dist/exports/client/chunk-TD7O23AB.js +0 -2
  793. package/dist/exports/client/chunk-TD7O23AB.js.map +0 -7
  794. package/dist/exports/client/chunk-YL453UOS.js +0 -2
  795. package/dist/exports/client/chunk-YL453UOS.js.map +0 -7
  796. package/dist/exports/client/chunk-YSI2QILQ.js +0 -2
  797. package/dist/exports/client/chunk-YSI2QILQ.js.map +0 -7
  798. package/dist/exports/client/component-2YLEVOFH.js +0 -2
  799. package/dist/exports/client/component-2YLEVOFH.js.map +0 -7
  800. package/dist/exports/client/component-7RAP75FW.js +0 -2
  801. package/dist/exports/client/component-7RAP75FW.js.map +0 -7
  802. package/dist/exports/client/component-LLWMZU6K.js +0 -2
  803. package/dist/exports/client/component-LLWMZU6K.js.map +0 -7
  804. package/dist/exports/client/componentInline-YSHGRL2J.js +0 -2
  805. package/dist/exports/client/componentInline-YSHGRL2J.js.map +0 -7
  806. package/dist/features/blocks/client/component/FormSavePlugin.d.ts +0 -11
  807. package/dist/features/blocks/client/component/FormSavePlugin.d.ts.map +0 -1
  808. package/dist/features/blocks/client/component/FormSavePlugin.js +0 -53
  809. package/dist/features/blocks/client/component/FormSavePlugin.js.map +0 -1
  810. package/dist/features/createClientComponent.d.ts +0 -7
  811. package/dist/features/createClientComponent.d.ts.map +0 -1
  812. package/dist/features/createClientComponent.js +0 -13
  813. package/dist/features/createClientComponent.js.map +0 -1
  814. package/dist/features/createFeaturePropComponent.d.ts +0 -6
  815. package/dist/features/createFeaturePropComponent.d.ts.map +0 -1
  816. package/dist/features/createFeaturePropComponent.js +0 -19
  817. package/dist/features/createFeaturePropComponent.js.map +0 -1
  818. package/dist/utilities/generateComponentMap.d.ts +0 -6
  819. package/dist/utilities/generateComponentMap.d.ts.map +0 -1
  820. package/dist/utilities/generateComponentMap.js +0 -99
  821. package/dist/utilities/generateComponentMap.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { Button } from '@payloadcms/ui';
4
5
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
5
6
  import { createPortal } from 'react-dom';
6
7
  const baseClass = 'toolbar-popup__dropdown-item';
@@ -10,8 +11,9 @@ export function DropDownItem({
10
11
  children,
11
12
  editor,
12
13
  enabled,
14
+ Icon,
13
15
  item,
14
- title
16
+ tooltip
15
17
  }) {
16
18
  const [className, setClassName] = useState(baseClass);
17
19
  useEffect(() => {
@@ -30,15 +32,21 @@ export function DropDownItem({
30
32
  registerItem(ref);
31
33
  }
32
34
  }, [ref, registerItem]);
33
- return /*#__PURE__*/_jsx("button", {
35
+ return /*#__PURE__*/_jsx(Button, {
36
+ "aria-label": tooltip,
37
+ buttonStyle: "none",
34
38
  className: className,
39
+ disabled: enabled === false,
40
+ icon: Icon,
41
+ iconPosition: "left",
42
+ iconStyle: "none",
35
43
  onClick: () => {
36
44
  if (enabled !== false) {
37
- editor._updateTags = new Set([...editor._updateTags, 'toolbar']) // without setting the tags, our onSelect will not be able to trigger our onChange as focus onChanges are ignored.
45
+ editor._updateTags = new Set(['toolbar', ...editor._updateTags]) // without setting the tags, our onSelect will not be able to trigger our onChange as focus onChanges are ignored.
38
46
  ;
39
47
  editor.focus(() => {
40
48
  // We need to wrap the onSelect in the callback, so the editor is properly focused before the onSelect is called.
41
- item.onSelect({
49
+ item.onSelect?.({
42
50
  editor,
43
51
  isActive: active
44
52
  });
@@ -51,7 +59,7 @@ export function DropDownItem({
51
59
  e.preventDefault();
52
60
  },
53
61
  ref: ref,
54
- title: title,
62
+ tooltip: tooltip,
55
63
  type: "button",
56
64
  children: children
57
65
  });
@@ -68,7 +76,9 @@ function DropDownItems({
68
76
  setItems(prev => prev != null ? [...prev, itemRef] : [itemRef]);
69
77
  }, [setItems]);
70
78
  const handleKeyDown = event => {
71
- if (items == null) return;
79
+ if (items == null) {
80
+ return;
81
+ }
72
82
  const {
73
83
  key
74
84
  } = event;
@@ -79,13 +89,17 @@ function DropDownItems({
79
89
  onClose();
80
90
  } else if (key === 'ArrowUp') {
81
91
  setHighlightedItem(prev_0 => {
82
- if (prev_0 == null) return items[0];
92
+ if (prev_0 == null) {
93
+ return items[0];
94
+ }
83
95
  const index = items.indexOf(prev_0) - 1;
84
96
  return items[index === -1 ? items.length - 1 : index];
85
97
  });
86
98
  } else if (key === 'ArrowDown') {
87
99
  setHighlightedItem(prev_1 => {
88
- if (prev_1 == null) return items[0];
100
+ if (prev_1 == null) {
101
+ return items[0];
102
+ }
89
103
  return items[items.indexOf(prev_1) + 1];
90
104
  });
91
105
  }
@@ -112,11 +126,11 @@ function DropDownItems({
112
126
  });
113
127
  }
114
128
  export function DropDown({
115
- Icon,
116
129
  buttonAriaLabel,
117
130
  buttonClassName,
118
131
  children,
119
132
  disabled = false,
133
+ Icon,
120
134
  itemsContainerClassNames,
121
135
  label,
122
136
  stopCloseOnClickSelf
@@ -165,7 +179,7 @@ export function DropDown({
165
179
  };
166
180
  }
167
181
  }, [dropDownRef, buttonRef, showDropDown, stopCloseOnClickSelf]);
168
- const portal = /*#__PURE__*/createPortal( /*#__PURE__*/_jsx(DropDownItems, {
182
+ const portal = /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(DropDownItems, {
169
183
  dropDownRef: dropDownRef,
170
184
  itemsContainerClassNames: itemsContainerClassNames,
171
185
  onClose: handleClose,
@@ -1 +1 @@
1
- {"version":3,"file":"DropDown.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","createPortal","baseClass","DropDownContext","createContext","DropDownItem","active","children","editor","enabled","item","title","className","setClassName","key","filter","Boolean","join","ref","dropDownContext","useContext","Error","registerItem","current","_jsx","onClick","_updateTags","Set","focus","onSelect","isActive","onMouseDown","e","preventDefault","type","DropDownItems","dropDownRef","itemsContainerClassNames","onClose","items","setItems","highlightedItem","setHighlightedItem","itemRef","prev","handleKeyDown","event","includes","index","indexOf","length","contextValue","Provider","value","onKeyDown","DropDown","Icon","buttonAriaLabel","buttonClassName","disabled","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 type { LexicalEditor } from 'lexical'\n\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 item,\n title,\n}: {\n active?: boolean\n children: React.ReactNode\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n title?: string\n}): React.ReactNode {\n const [className, setClassName] = useState<string>(baseClass)\n\n useEffect(() => {\n setClassName(\n [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n )\n }, [enabled, active, className, item.key])\n\n const ref = useRef<HTMLButtonElement>(null)\n\n const dropDownContext = React.useContext(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 className={className}\n onClick={() => {\n if (enabled !== false) {\n editor._updateTags = new Set([...editor._updateTags, 'toolbar']) // without setting the tags, our onSelect will not be able to trigger our onChange as focus onChanges are ignored.\n\n editor.focus(() => {\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 title={title}\n type=\"button\"\n >\n {children}\n </button>\n )\n}\n\nfunction DropDownItems({\n children,\n dropDownRef,\n itemsContainerClassNames,\n onClose,\n}: {\n children: React.ReactNode\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) return\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) return items[0]\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) return items[0]\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.Provider value={contextValue}>\n <div\n className={(itemsContainerClassNames ?? ['toolbar-popup__dropdown-items']).join(' ')}\n onKeyDown={handleKeyDown}\n ref={dropDownRef}\n >\n {children}\n </div>\n </DropDownContext.Provider>\n )\n}\n\nexport function DropDown({\n Icon,\n buttonAriaLabel,\n buttonClassName,\n children,\n disabled = false,\n itemsContainerClassNames,\n label,\n stopCloseOnClickSelf,\n}: {\n Icon?: React.FC\n buttonAriaLabel?: string\n buttonClassName: string\n children: ReactNode\n disabled?: boolean\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\n if (stopCloseOnClickSelf != null) {\n if (dropDownRef.current != null && dropDownRef.current.contains(target as Node)) {\n return\n }\n }\n if (!button.contains(target as Node)) {\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 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 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","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","baseClass","DropDownContext","createContext","DropDownItem","active","children","editor","enabled","Icon","item","tooltip","className","setClassName","key","filter","Boolean","join","ref","dropDownContext","useContext","Error","registerItem","current","_jsx","buttonStyle","disabled","icon","iconPosition","iconStyle","onClick","_updateTags","Set","focus","onSelect","isActive","onMouseDown","e","preventDefault","type","DropDownItems","dropDownRef","itemsContainerClassNames","onClose","items","setItems","highlightedItem","setHighlightedItem","itemRef","prev","handleKeyDown","event","includes","index","indexOf","length","contextValue","Provider","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 type { LexicalEditor } from 'lexical'\n\nimport { Button } from '@payloadcms/ui'\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 tooltip,\n}: {\n active?: boolean\n children: React.ReactNode\n editor: LexicalEditor\n enabled?: boolean\n Icon: React.ReactNode\n item: ToolbarGroupItem\n tooltip?: string\n}): React.ReactNode {\n const [className, setClassName] = useState<string>(baseClass)\n\n useEffect(() => {\n setClassName(\n [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n )\n }, [enabled, active, className, item.key])\n\n const ref = useRef<HTMLButtonElement>(null)\n\n const dropDownContext = React.useContext(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 icon={Icon}\n iconPosition=\"left\"\n iconStyle=\"none\"\n onClick={() => {\n if (enabled !== false) {\n editor._updateTags = new Set(['toolbar', ...editor._updateTags]) // without setting the tags, our onSelect will not be able to trigger our onChange as focus onChanges are ignored.\n\n editor.focus(() => {\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 dropDownRef,\n itemsContainerClassNames,\n onClose,\n}: {\n children: React.ReactNode\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.Provider value={contextValue}>\n <div\n className={(itemsContainerClassNames ?? ['toolbar-popup__dropdown-items']).join(' ')}\n onKeyDown={handleKeyDown}\n ref={dropDownRef}\n >\n {children}\n </div>\n </DropDownContext.Provider>\n )\n}\n\nexport function DropDown({\n buttonAriaLabel,\n buttonClassName,\n children,\n disabled = false,\n Icon,\n itemsContainerClassNames,\n label,\n stopCloseOnClickSelf,\n}: {\n buttonAriaLabel?: string\n buttonClassName: string\n children: ReactNode\n disabled?: boolean\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\n if (stopCloseOnClickSelf != null) {\n if (dropDownRef.current != null && dropDownRef.current.contains(target as Node)) {\n return\n }\n }\n if (!button.contains(target as Node)) {\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 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 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,14 +1,13 @@
1
1
  import React from 'react';
2
2
  import type { LexicalEditor } from 'lexical';
3
- import type { ToolbarGroupItem } from '../../types.js';
3
+ import type { ToolbarDropdownGroup, ToolbarGroupItem } from '../../types.js';
4
4
  import './index.scss';
5
- export declare const ToolbarDropdown: ({ Icon, anchorElem, classNames, editor, groupKey, items, itemsContainerClassNames, label, maxActiveItems, onActiveChange, }: {
6
- Icon?: React.FC;
5
+ export declare const ToolbarDropdown: ({ anchorElem, classNames, editor, group, Icon, itemsContainerClassNames, label, maxActiveItems, onActiveChange, }: {
7
6
  anchorElem: HTMLElement;
8
7
  classNames?: string[];
9
8
  editor: LexicalEditor;
10
- groupKey: string;
11
- items: ToolbarGroupItem[];
9
+ group: ToolbarDropdownGroup;
10
+ Icon?: React.FC;
12
11
  itemsContainerClassNames?: string[];
13
12
  label?: string;
14
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAIrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAItD,OAAO,cAAc,CAAA;AAqDrB,eAAO,MAAM,eAAe,gIAWzB;IACD,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACf,UAAU,EAAE,WAAW,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,gBAAgB,EAAE,CAAA;KAAE,KAAK,IAAI,CAAA;CAChF,sBAoFA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAIrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAI5E,OAAO,cAAc,CAAA;AAiErB,eAAO,MAAM,eAAe,sHAUzB;IACD,UAAU,EAAE,WAAW,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,oBAAoB,CAAA;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACf,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,gBAAgB,EAAE,CAAA;KAAE,KAAK,IAAI,CAAA;CAChF,sBAsFA,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  import React, { useCallback, useEffect } from 'react';
6
6
  const baseClass = 'toolbar-popup__dropdown';
7
7
  import { mergeRegister } from '@lexical/utils';
@@ -10,7 +10,7 @@ import { $getSelection } from 'lexical';
10
10
  import { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js';
11
11
  import { DropDown, DropDownItem } from './DropDown.js';
12
12
  const ToolbarItem = t0 => {
13
- const $ = _c(19);
13
+ const $ = _c(18);
14
14
  const {
15
15
  active,
16
16
  anchorElem,
@@ -22,10 +22,11 @@ const ToolbarItem = t0 => {
22
22
  i18n
23
23
  } = useTranslation();
24
24
  const {
25
- field: t1
25
+ fieldProps: t1
26
26
  } = useEditorConfigContext();
27
27
  const {
28
- richTextComponentMap
28
+ featureClientSchemaMap,
29
+ schemaPath
29
30
  } = t1;
30
31
  if (item.Component) {
31
32
  let t2;
@@ -49,66 +50,64 @@ const ToolbarItem = t0 => {
49
50
  return t2;
50
51
  }
51
52
  let title = item.key;
53
+ let croppedTitle;
52
54
  if (item.label) {
53
55
  let t2;
54
- if ($[6] !== item || $[7] !== i18n || $[8] !== richTextComponentMap) {
56
+ if ($[6] !== item || $[7] !== featureClientSchemaMap || $[8] !== i18n || $[9] !== schemaPath) {
55
57
  t2 = typeof item.label === "function" ? item.label({
58
+ featureClientSchemaMap,
56
59
  i18n,
57
- richTextComponentMap
60
+ schemaPath
58
61
  }) : item.label;
59
62
  $[6] = item;
60
- $[7] = i18n;
61
- $[8] = richTextComponentMap;
62
- $[9] = t2;
63
+ $[7] = featureClientSchemaMap;
64
+ $[8] = i18n;
65
+ $[9] = schemaPath;
66
+ $[10] = t2;
63
67
  } else {
64
- t2 = $[9];
68
+ t2 = $[10];
65
69
  }
66
70
  title = t2;
67
71
  }
68
72
  if (title.length > 25) {
69
- title = title.substring(0, 25) + "...";
70
- }
71
- let t2;
72
- if ($[10] !== item) {
73
- t2 = item?.ChildComponent && _jsx(item.ChildComponent, {});
74
- $[10] = item;
75
- $[11] = t2;
73
+ croppedTitle = title.substring(0, 25) + "...";
76
74
  } else {
77
- t2 = $[11];
75
+ croppedTitle = title;
78
76
  }
79
- let t3;
80
- if ($[12] !== title || $[13] !== t2 || $[14] !== active || $[15] !== editor || $[16] !== enabled || $[17] !== item) {
81
- t3 = _jsxs(DropDownItem, {
77
+ let t2;
78
+ if ($[11] !== item || $[12] !== croppedTitle || $[13] !== active || $[14] !== editor || $[15] !== enabled || $[16] !== title) {
79
+ t2 = _jsx(DropDownItem, {
82
80
  active,
83
81
  editor,
84
82
  enabled,
83
+ Icon: item?.ChildComponent ? _jsx(item.ChildComponent, {}) : undefined,
85
84
  item,
86
- children: [t2, _jsx("span", {
85
+ tooltip: title,
86
+ children: _jsx("span", {
87
87
  className: "text",
88
- children: title
89
- })]
88
+ children: croppedTitle
89
+ })
90
90
  }, item.key);
91
- $[12] = title;
92
- $[13] = t2;
93
- $[14] = active;
94
- $[15] = editor;
95
- $[16] = enabled;
96
- $[17] = item;
97
- $[18] = t3;
91
+ $[11] = item;
92
+ $[12] = croppedTitle;
93
+ $[13] = active;
94
+ $[14] = editor;
95
+ $[15] = enabled;
96
+ $[16] = title;
97
+ $[17] = t2;
98
98
  } else {
99
- t3 = $[18];
99
+ t2 = $[17];
100
100
  }
101
- return t3;
101
+ return t2;
102
102
  };
103
103
  export const ToolbarDropdown = t0 => {
104
- const $ = _c(43);
104
+ const $ = _c(42);
105
105
  const {
106
- Icon,
107
106
  anchorElem,
108
107
  classNames,
109
108
  editor,
110
- groupKey,
111
- items,
109
+ group,
110
+ Icon,
112
111
  itemsContainerClassNames,
113
112
  label,
114
113
  maxActiveItems,
@@ -130,12 +129,20 @@ export const ToolbarDropdown = t0 => {
130
129
  t2 = $[1];
131
130
  }
132
131
  const [enabledItemKeys, setEnabledItemKeys] = React.useState(t2);
132
+ const [enabledGroup, setEnabledGroup] = React.useState(true);
133
133
  const editorConfigContext = useEditorConfigContext();
134
+ const {
135
+ items,
136
+ key: groupKey
137
+ } = group;
134
138
  let t3;
135
- if ($[2] !== editor || $[3] !== items || $[4] !== maxActiveItems || $[5] !== editorConfigContext || $[6] !== onActiveChange) {
139
+ if ($[2] !== editor || $[3] !== items || $[4] !== maxActiveItems || $[5] !== editorConfigContext || $[6] !== group || $[7] !== onActiveChange) {
136
140
  t3 = () => {
137
141
  editor.getEditorState().read(() => {
138
142
  const selection = $getSelection();
143
+ if (!selection) {
144
+ return;
145
+ }
139
146
  const _activeItemKeys = [];
140
147
  const _activeItems = [];
141
148
  const _enabledItemKeys = [];
@@ -164,6 +171,13 @@ export const ToolbarDropdown = t0 => {
164
171
  _enabledItemKeys.push(item.key);
165
172
  }
166
173
  }
174
+ if (group.isEnabled) {
175
+ setEnabledGroup(group.isEnabled({
176
+ editor,
177
+ editorConfigContext,
178
+ selection
179
+ }));
180
+ }
167
181
  setActiveItemKeys(_activeItemKeys);
168
182
  setEnabledItemKeys(_enabledItemKeys);
169
183
  if (onActiveChange) {
@@ -177,132 +191,118 @@ export const ToolbarDropdown = t0 => {
177
191
  $[3] = items;
178
192
  $[4] = maxActiveItems;
179
193
  $[5] = editorConfigContext;
180
- $[6] = onActiveChange;
181
- $[7] = t3;
194
+ $[6] = group;
195
+ $[7] = onActiveChange;
196
+ $[8] = t3;
182
197
  } else {
183
- t3 = $[7];
198
+ t3 = $[8];
184
199
  }
185
200
  const updateStates = t3;
186
201
  let t4;
187
202
  let t5;
188
- if ($[8] !== updateStates) {
203
+ if ($[9] !== updateStates) {
189
204
  t4 = () => {
190
205
  updateStates();
191
206
  };
192
207
  t5 = [updateStates];
193
- $[8] = updateStates;
194
- $[9] = t4;
195
- $[10] = t5;
208
+ $[9] = updateStates;
209
+ $[10] = t4;
210
+ $[11] = t5;
196
211
  } else {
197
- t4 = $[9];
198
- t5 = $[10];
212
+ t4 = $[10];
213
+ t5 = $[11];
199
214
  }
200
215
  useEffect(t4, t5);
201
216
  let t6;
202
217
  let t7;
203
- if ($[11] !== updateStates) {
204
- t6 = () => {
205
- document.addEventListener("mouseup", updateStates);
206
- return () => {
207
- document.removeEventListener("mouseup", updateStates);
208
- };
209
- };
210
- t7 = [updateStates];
211
- $[11] = updateStates;
212
- $[12] = t6;
213
- $[13] = t7;
214
- } else {
215
- t6 = $[12];
216
- t7 = $[13];
217
- }
218
- useEffect(t6, t7);
219
- let t8;
220
- let t9;
221
- if ($[14] !== editor || $[15] !== updateStates) {
222
- t8 = () => mergeRegister(editor.registerUpdateListener(() => {
218
+ if ($[12] !== editor || $[13] !== updateStates) {
219
+ t6 = () => mergeRegister(editor.registerUpdateListener(() => {
223
220
  updateStates();
224
221
  }));
225
- t9 = [editor, updateStates];
226
- $[14] = editor;
227
- $[15] = updateStates;
228
- $[16] = t8;
229
- $[17] = t9;
222
+ t7 = [editor, updateStates];
223
+ $[12] = editor;
224
+ $[13] = updateStates;
225
+ $[14] = t6;
226
+ $[15] = t7;
230
227
  } else {
231
- t8 = $[16];
232
- t9 = $[17];
228
+ t6 = $[14];
229
+ t7 = $[15];
233
230
  }
234
- useEffect(t8, t9);
235
- const t10 = `${groupKey} dropdown`;
236
- const t11 = `${baseClass}-${groupKey}`;
237
- let t12;
238
- if ($[18] !== classNames) {
239
- t12 = classNames || [];
240
- $[18] = classNames;
241
- $[19] = t12;
231
+ useEffect(t6, t7);
232
+ const t8 = `${groupKey} dropdown`;
233
+ const t9 = `${baseClass}-${groupKey}`;
234
+ let t10;
235
+ if ($[16] !== classNames) {
236
+ t10 = classNames || [];
237
+ $[16] = classNames;
238
+ $[17] = t10;
242
239
  } else {
243
- t12 = $[19];
240
+ t10 = $[17];
244
241
  }
245
- let t13;
246
- if ($[20] !== t11 || $[21] !== t12) {
247
- t13 = [baseClass, t11, ...t12].filter(Boolean);
242
+ let t11;
243
+ if ($[18] !== t9 || $[19] !== t10) {
244
+ t11 = [baseClass, t9, ...t10].filter(Boolean);
245
+ $[18] = t9;
246
+ $[19] = t10;
248
247
  $[20] = t11;
249
- $[21] = t12;
250
- $[22] = t13;
251
248
  } else {
252
- t13 = $[22];
249
+ t11 = $[20];
253
250
  }
254
- const t14 = t13.join(" ");
255
- let t15;
256
- if ($[23] !== itemsContainerClassNames) {
257
- t15 = itemsContainerClassNames || [];
258
- $[23] = itemsContainerClassNames;
259
- $[24] = t15;
251
+ const t12 = t11.join(" ");
252
+ const t13 = !enabledGroup;
253
+ let t14;
254
+ if ($[21] !== itemsContainerClassNames) {
255
+ t14 = itemsContainerClassNames || [];
256
+ $[21] = itemsContainerClassNames;
257
+ $[22] = t14;
260
258
  } else {
261
- t15 = $[24];
259
+ t14 = $[22];
262
260
  }
263
- let t16;
264
- if ($[25] !== t15 || $[26] !== items || $[27] !== activeItemKeys || $[28] !== anchorElem || $[29] !== editor || $[30] !== enabledItemKeys || $[31] !== Icon || $[32] !== t10 || $[33] !== t14 || $[34] !== label || $[35] !== groupKey) {
265
- let t17;
266
- if ($[37] !== items || $[38] !== activeItemKeys || $[39] !== anchorElem || $[40] !== editor || $[41] !== enabledItemKeys) {
267
- t17 = items.length && items.map(item_0 => _jsx(ToolbarItem, {
261
+ let t15;
262
+ if ($[23] !== t14 || $[24] !== items || $[25] !== activeItemKeys || $[26] !== anchorElem || $[27] !== editor || $[28] !== enabledItemKeys || $[29] !== t8 || $[30] !== t12 || $[31] !== t13 || $[32] !== Icon || $[33] !== label || $[34] !== groupKey) {
263
+ let t16;
264
+ if ($[36] !== items || $[37] !== activeItemKeys || $[38] !== anchorElem || $[39] !== editor || $[40] !== enabledItemKeys) {
265
+ t16 = items.length && items.map(item_0 => _jsx(ToolbarItem, {
268
266
  active: activeItemKeys.includes(item_0.key),
269
267
  anchorElem,
270
268
  editor,
271
269
  enabled: enabledItemKeys.includes(item_0.key),
272
270
  item: item_0
273
271
  }, item_0.key));
274
- $[37] = items;
275
- $[38] = activeItemKeys;
276
- $[39] = anchorElem;
277
- $[40] = editor;
278
- $[41] = enabledItemKeys;
279
- $[42] = t17;
272
+ $[36] = items;
273
+ $[37] = activeItemKeys;
274
+ $[38] = anchorElem;
275
+ $[39] = editor;
276
+ $[40] = enabledItemKeys;
277
+ $[41] = t16;
280
278
  } else {
281
- t17 = $[42];
279
+ t16 = $[41];
282
280
  }
283
- t16 = _jsx(DropDown, {
281
+ t15 = _jsx(DropDown, {
282
+ buttonAriaLabel: t8,
283
+ buttonClassName: t12,
284
+ disabled: t13,
284
285
  Icon,
285
- buttonAriaLabel: t10,
286
- buttonClassName: t14,
287
- itemsContainerClassNames: [`${baseClass}-items`, ...t15],
286
+ itemsContainerClassNames: [`${baseClass}-items`, ...t14],
288
287
  label,
289
- children: t17
288
+ children: t16
290
289
  }, groupKey);
291
- $[25] = t15;
292
- $[26] = items;
293
- $[27] = activeItemKeys;
294
- $[28] = anchorElem;
295
- $[29] = editor;
296
- $[30] = enabledItemKeys;
297
- $[31] = Icon;
298
- $[32] = t10;
299
- $[33] = t14;
300
- $[34] = label;
301
- $[35] = groupKey;
302
- $[36] = t16;
290
+ $[23] = t14;
291
+ $[24] = items;
292
+ $[25] = activeItemKeys;
293
+ $[26] = anchorElem;
294
+ $[27] = editor;
295
+ $[28] = enabledItemKeys;
296
+ $[29] = t8;
297
+ $[30] = t12;
298
+ $[31] = t13;
299
+ $[32] = Icon;
300
+ $[33] = label;
301
+ $[34] = groupKey;
302
+ $[35] = t15;
303
303
  } else {
304
- t16 = $[36];
304
+ t15 = $[35];
305
305
  }
306
- return t16;
306
+ return t15;
307
307
  };
308
308
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","baseClass","mergeRegister","useTranslation","$getSelection","useEditorConfigContext","DropDown","DropDownItem","ToolbarItem","t0","$","active","anchorElem","editor","enabled","item","i18n","field","t1","richTextComponentMap","Component","t2","_jsx","key","title","label","length","substring","ChildComponent","t3","_jsxs","children","className","ToolbarDropdown","Icon","classNames","groupKey","items","itemsContainerClassNames","maxActiveItems","onActiveChange","Symbol","for","activeItemKeys","setActiveItemKeys","useState","enabledItemKeys","setEnabledItemKeys","editorConfigContext","getEditorState","read","selection","_activeItemKeys","_activeItems","_enabledItemKeys","isActive","push","isEnabled","activeItems","updateStates","t4","t5","t6","t7","document","addEventListener","removeEventListener","t8","t9","registerUpdateListener","t10","t11","t12","t13","filter","Boolean","t14","join","t15","t16","t17","map","item_0","includes","buttonAriaLabel","buttonClassName"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect } from 'react'\n\nconst baseClass = 'toolbar-popup__dropdown'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { useTranslation } from '@payloadcms/ui'\nimport { $getSelection } from 'lexical'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { DropDown, DropDownItem } from './DropDown.js'\nimport './index.scss'\n\nconst ToolbarItem = ({\n active,\n anchorElem,\n editor,\n enabled,\n item,\n}: {\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n}) => {\n const { i18n } = useTranslation()\n const {\n field: { richTextComponentMap },\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 if (item.label) {\n title =\n typeof item.label === 'function' ? item.label({ i18n, richTextComponentMap }) : item.label\n }\n // Crop title to max. 25 characters\n if (title.length > 25) {\n title = title.substring(0, 25) + '...'\n }\n\n return (\n <DropDownItem active={active} editor={editor} enabled={enabled} item={item} key={item.key}>\n {item?.ChildComponent && <item.ChildComponent />}\n <span className=\"text\">{title}</span>\n </DropDownItem>\n )\n}\n\nexport const ToolbarDropdown = ({\n Icon,\n anchorElem,\n classNames,\n editor,\n groupKey,\n items,\n itemsContainerClassNames,\n label,\n maxActiveItems,\n onActiveChange,\n}: {\n Icon?: React.FC\n anchorElem: HTMLElement\n classNames?: string[]\n editor: LexicalEditor\n groupKey: string\n items: ToolbarGroupItem[]\n itemsContainerClassNames?: string[]\n label?: string\n /**\n * Maximum number of active items allowed. This is a performance optimization to prevent\n * unnecessary item active checks when the maximum number of active items is reached.\n */\n maxActiveItems?: number\n onActiveChange?: ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => void\n}) => {\n const [activeItemKeys, setActiveItemKeys] = React.useState<string[]>([])\n const [enabledItemKeys, setEnabledItemKeys] = React.useState<string[]>([])\n const editorConfigContext = useEditorConfigContext()\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n\n const _activeItemKeys: string[] = []\n const _activeItems: ToolbarGroupItem[] = []\n const _enabledItemKeys: string[] = []\n\n for (const item of items) {\n if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {\n const isActive = item.isActive({ editor, editorConfigContext, selection })\n if (isActive) {\n _activeItemKeys.push(item.key)\n _activeItems.push(item)\n }\n }\n if (item.isEnabled) {\n const isEnabled = item.isEnabled({ editor, editorConfigContext, selection })\n if (isEnabled) {\n _enabledItemKeys.push(item.key)\n }\n } else {\n _enabledItemKeys.push(item.key)\n }\n }\n setActiveItemKeys(_activeItemKeys)\n setEnabledItemKeys(_enabledItemKeys)\n\n if (onActiveChange) {\n onActiveChange({ activeItems: _activeItems })\n }\n })\n }, [editor, editorConfigContext, items, maxActiveItems, onActiveChange])\n\n useEffect(() => {\n updateStates()\n }, [updateStates])\n\n useEffect(() => {\n document.addEventListener('mouseup', updateStates)\n return () => {\n document.removeEventListener('mouseup', updateStates)\n }\n }, [updateStates])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updateStates()\n }),\n )\n }, [editor, updateStates])\n\n return (\n <DropDown\n Icon={Icon}\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {items.length &&\n items.map((item) => {\n return (\n <ToolbarItem\n active={activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabledItemKeys.includes(item.key)}\n item={item}\n key={item.key}\n />\n )\n })}\n </DropDown>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","baseClass","mergeRegister","useTranslation","$getSelection","useEditorConfigContext","DropDown","DropDownItem","ToolbarItem","t0","$","active","anchorElem","editor","enabled","item","i18n","fieldProps","t1","featureClientSchemaMap","schemaPath","Component","t2","_jsx","key","title","croppedTitle","label","length","substring","Icon","ChildComponent","undefined","tooltip","children","className","ToolbarDropdown","classNames","group","itemsContainerClassNames","maxActiveItems","onActiveChange","Symbol","for","activeItemKeys","setActiveItemKeys","useState","enabledItemKeys","setEnabledItemKeys","enabledGroup","setEnabledGroup","editorConfigContext","items","groupKey","t3","getEditorState","read","selection","_activeItemKeys","_activeItems","_enabledItemKeys","isActive","push","isEnabled","activeItems","updateStates","t4","t5","t6","t7","registerUpdateListener","t8","t9","t10","t11","filter","Boolean","t12","join","t13","t14","t15","t16","map","item_0","includes","buttonAriaLabel","buttonClassName","disabled"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect } from 'react'\n\nconst baseClass = 'toolbar-popup__dropdown'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { useTranslation } from '@payloadcms/ui'\nimport { $getSelection } from 'lexical'\n\nimport type { ToolbarDropdownGroup, ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { DropDown, DropDownItem } from './DropDown.js'\nimport './index.scss'\n\nconst ToolbarItem = ({\n active,\n anchorElem,\n editor,\n enabled,\n item,\n}: {\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n}) => {\n const { i18n } = useTranslation()\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 // Crop title to max. 25 characters\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 key={item.key}\n tooltip={title}\n >\n <span className=\"text\">{croppedTitle}</span>\n </DropDownItem>\n )\n}\n\nexport const ToolbarDropdown = ({\n anchorElem,\n classNames,\n editor,\n group,\n Icon,\n itemsContainerClassNames,\n label,\n maxActiveItems,\n onActiveChange,\n}: {\n anchorElem: HTMLElement\n classNames?: string[]\n editor: LexicalEditor\n group: ToolbarDropdownGroup\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n /**\n * Maximum number of active items allowed. This is a performance optimization to prevent\n * unnecessary item active checks when the maximum number of active items is reached.\n */\n maxActiveItems?: number\n onActiveChange?: ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => void\n}) => {\n const [activeItemKeys, setActiveItemKeys] = React.useState<string[]>([])\n const [enabledItemKeys, setEnabledItemKeys] = React.useState<string[]>([])\n const [enabledGroup, setEnabledGroup] = React.useState<boolean>(true)\n const editorConfigContext = useEditorConfigContext()\n const { items, key: groupKey } = group\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n\n const _activeItemKeys: string[] = []\n const _activeItems: ToolbarGroupItem[] = []\n const _enabledItemKeys: string[] = []\n\n for (const item of items) {\n if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {\n const isActive = item.isActive({ editor, editorConfigContext, selection })\n if (isActive) {\n _activeItemKeys.push(item.key)\n _activeItems.push(item)\n }\n }\n if (item.isEnabled) {\n const isEnabled = item.isEnabled({ editor, editorConfigContext, selection })\n if (isEnabled) {\n _enabledItemKeys.push(item.key)\n }\n } else {\n _enabledItemKeys.push(item.key)\n }\n }\n if (group.isEnabled) {\n setEnabledGroup(group.isEnabled({ editor, editorConfigContext, selection }))\n }\n setActiveItemKeys(_activeItemKeys)\n setEnabledItemKeys(_enabledItemKeys)\n\n if (onActiveChange) {\n onActiveChange({ activeItems: _activeItems })\n }\n })\n }, [editor, editorConfigContext, group, items, maxActiveItems, onActiveChange])\n\n useEffect(() => {\n updateStates()\n }, [updateStates])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updateStates()\n }),\n )\n }, [editor, updateStates])\n\n return (\n <DropDown\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n disabled={!enabledGroup}\n Icon={Icon}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {items.length &&\n items.map((item) => {\n return (\n <ToolbarItem\n active={activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabledItemKeys.includes(item.key)}\n item={item}\n key={item.key}\n />\n )\n })}\n </DropDown>\n )\n}\n"],"mappings":"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","ignoreList":[]}