@payloadcms/richtext-lexical 4.0.0-internal.bc5cf8c → 4.0.0-internal.bf4bcce

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 (793) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/exports/client/Field-W2ABOM7M.js +2 -0
  3. package/dist/exports/client/Field-W2ABOM7M.js.map +7 -0
  4. package/dist/exports/client/chunk-3LRZDIIG.js +2 -0
  5. package/dist/exports/client/chunk-3LRZDIIG.js.map +7 -0
  6. package/dist/exports/client/chunk-E6LSRRP2.js +2 -0
  7. package/dist/exports/client/chunk-E6LSRRP2.js.map +7 -0
  8. package/dist/exports/client/chunk-ZQX5HXUL.js +2 -0
  9. package/dist/exports/client/chunk-ZQX5HXUL.js.map +7 -0
  10. package/dist/exports/client/component-6DQLENIE.js +2 -0
  11. package/dist/exports/client/component-6DQLENIE.js.map +7 -0
  12. package/dist/exports/client/componentInline-HNE5G4TE.js +2 -0
  13. package/dist/exports/client/index.d.ts +1 -3
  14. package/dist/exports/client/index.d.ts.map +1 -1
  15. package/dist/exports/client/index.js +28 -29
  16. package/dist/exports/client/index.js.map +4 -4
  17. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  18. package/dist/features/blockquote/client/index.js +2 -2
  19. package/dist/features/blockquote/client/index.js.map +1 -1
  20. package/dist/features/blockquote/server/index.js +2 -2
  21. package/dist/features/blockquote/server/index.js.map +1 -1
  22. package/dist/features/blocks/client/component/BlockReordering/index.d.ts +11 -0
  23. package/dist/features/blocks/client/component/BlockReordering/index.d.ts.map +1 -0
  24. package/dist/features/blocks/client/component/BlockReordering/index.js +18 -0
  25. package/dist/features/blocks/client/component/BlockReordering/index.js.map +1 -0
  26. package/dist/features/blocks/client/component/index.css +2 -2
  27. package/dist/features/blocks/client/component/index.d.ts +0 -6
  28. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  29. package/dist/features/blocks/client/component/index.js +169 -101
  30. package/dist/features/blocks/client/component/index.js.map +1 -1
  31. package/dist/features/blocks/client/component/useBlockReordering.d.ts +16 -0
  32. package/dist/features/blocks/client/component/useBlockReordering.d.ts.map +1 -0
  33. package/dist/features/blocks/client/component/useBlockReordering.js +178 -0
  34. package/dist/features/blocks/client/component/useBlockReordering.js.map +1 -0
  35. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
  36. package/dist/features/blocks/client/componentInline/index.css +8 -9
  37. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  38. package/dist/features/blocks/client/componentInline/index.js +30 -22
  39. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  40. package/dist/features/blocks/client/getBlockImageComponent.d.ts +1 -1
  41. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts +9 -0
  42. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts.map +1 -0
  43. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js +95 -0
  44. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js.map +1 -0
  45. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +1 -1
  46. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -1
  47. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +1 -1
  48. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
  49. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +1 -1
  50. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -1
  51. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +5 -2
  52. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
  53. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +1 -2
  54. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  55. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  56. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  57. package/dist/features/blocks/client/nodes/BlocksNode.js +0 -10
  58. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  59. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  60. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +2 -4
  61. package/dist/features/blocks/premade/CodeBlock/Component/index.css +5 -5
  62. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  63. package/dist/features/blocks/server/index.js +2 -2
  64. package/dist/features/blocks/server/index.js.map +1 -1
  65. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +1 -1
  66. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  67. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  68. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  69. package/dist/features/blocks/server/nodes/BlocksNode.js +1 -12
  70. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  71. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  72. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +2 -2
  73. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  74. package/dist/features/blocks/server/schema.d.ts +2 -0
  75. package/dist/features/blocks/server/schema.d.ts.map +1 -1
  76. package/dist/features/blocks/server/schema.js +10 -11
  77. package/dist/features/blocks/server/schema.js.map +1 -1
  78. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  79. package/dist/features/blocks/server/validate.js +1 -1
  80. package/dist/features/blocks/server/validate.js.map +1 -1
  81. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  82. package/dist/features/converters/lexicalToHtml/async/converters/heading.js +1 -1
  83. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  84. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  85. package/dist/features/converters/lexicalToHtml/async/converters/list.js +4 -3
  86. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  87. package/dist/features/converters/lexicalToHtml/async/converters/upload.js +3 -3
  88. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  89. package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
  90. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.d.ts.map +1 -1
  91. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +3 -2
  92. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  93. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js +1 -1
  94. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  95. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  96. package/dist/features/converters/lexicalToHtml/sync/converters/list.js +4 -3
  97. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  98. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js +3 -3
  99. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  100. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  101. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +2 -1
  102. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  103. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  104. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +2 -1
  105. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  106. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  107. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +4 -5
  108. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  109. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  110. package/dist/features/converters/lexicalToMarkdown/index.js +1 -1
  111. package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
  112. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  113. package/dist/features/converters/markdownToLexical/index.js +5 -2
  114. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  115. package/dist/features/converters/utilities/payloadPopulateFn.d.ts.map +1 -1
  116. package/dist/features/converters/utilities/payloadPopulateFn.js +4 -2
  117. package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
  118. package/dist/features/debug/jsxConverter/client/plugin/style.css +2 -2
  119. package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
  120. package/dist/features/format/bold/feature.client.js +1 -1
  121. package/dist/features/format/bold/feature.client.js.map +1 -1
  122. package/dist/features/format/bold/feature.server.d.ts.map +1 -1
  123. package/dist/features/format/bold/feature.server.js +1 -1
  124. package/dist/features/format/bold/feature.server.js.map +1 -1
  125. package/dist/features/format/inlineCode/feature.client.js +1 -1
  126. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  127. package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
  128. package/dist/features/format/inlineCode/feature.server.js +1 -1
  129. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  130. package/dist/features/format/italic/feature.client.js +1 -1
  131. package/dist/features/format/italic/feature.client.js.map +1 -1
  132. package/dist/features/format/italic/feature.server.d.ts.map +1 -1
  133. package/dist/features/format/italic/feature.server.js +1 -1
  134. package/dist/features/format/italic/feature.server.js.map +1 -1
  135. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  136. package/dist/features/format/strikethrough/feature.client.js +1 -1
  137. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  138. package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
  139. package/dist/features/format/strikethrough/feature.server.js +1 -1
  140. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  141. package/dist/features/heading/client/index.js +2 -2
  142. package/dist/features/heading/client/index.js.map +1 -1
  143. package/dist/features/heading/constants.d.ts +2 -0
  144. package/dist/features/heading/constants.d.ts.map +1 -0
  145. package/dist/features/heading/constants.js +2 -0
  146. package/dist/features/heading/constants.js.map +1 -0
  147. package/dist/features/heading/markdownTransformer.d.ts +2 -2
  148. package/dist/features/heading/markdownTransformer.d.ts.map +1 -1
  149. package/dist/features/heading/markdownTransformer.js +6 -19
  150. package/dist/features/heading/markdownTransformer.js.map +1 -1
  151. package/dist/features/heading/server/index.d.ts.map +1 -1
  152. package/dist/features/heading/server/index.js +7 -3
  153. package/dist/features/heading/server/index.js.map +1 -1
  154. package/dist/features/heading/server/schema.d.ts.map +1 -1
  155. package/dist/features/heading/server/validate.d.ts +6 -0
  156. package/dist/features/heading/server/validate.d.ts.map +1 -0
  157. package/dist/features/heading/server/validate.js +15 -0
  158. package/dist/features/heading/server/validate.js.map +1 -0
  159. package/dist/features/horizontalRule/client/index.js +2 -2
  160. package/dist/features/horizontalRule/client/index.js.map +1 -1
  161. package/dist/features/horizontalRule/client/markdownTransformer.d.ts +2 -2
  162. package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -1
  163. package/dist/features/horizontalRule/client/markdownTransformer.js +1 -1
  164. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  165. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +12 -2
  166. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  167. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +18 -1
  168. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  169. package/dist/features/horizontalRule/client/plugin/index.css +2 -2
  170. package/dist/features/horizontalRule/server/index.js +2 -2
  171. package/dist/features/horizontalRule/server/index.js.map +1 -1
  172. package/dist/features/horizontalRule/server/markdownTransformer.d.ts +2 -2
  173. package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -1
  174. package/dist/features/horizontalRule/server/markdownTransformer.js +1 -1
  175. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  176. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
  177. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  178. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +3 -3
  179. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  180. package/dist/features/horizontalRule/server/schema.d.ts +1 -0
  181. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -1
  182. package/dist/features/horizontalRule/server/schema.js +6 -5
  183. package/dist/features/horizontalRule/server/schema.js.map +1 -1
  184. package/dist/features/indent/client/IndentPlugin.d.ts.map +1 -1
  185. package/dist/features/indent/client/IndentPlugin.js +122 -1
  186. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  187. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  188. package/dist/features/indent/server/i18n.d.ts.map +1 -1
  189. package/dist/features/indent/server/i18n.js +74 -37
  190. package/dist/features/indent/server/i18n.js.map +1 -1
  191. package/dist/features/link/client/index.js +2 -2
  192. package/dist/features/link/client/index.js.map +1 -1
  193. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  194. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  195. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +8 -5
  196. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  197. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +7 -13
  198. package/dist/features/link/markdownTransformer.d.ts +4 -4
  199. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  200. package/dist/features/link/markdownTransformer.js +2 -2
  201. package/dist/features/link/markdownTransformer.js.map +1 -1
  202. package/dist/features/link/nodes/AutoLinkNode.d.ts +1 -1
  203. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  204. package/dist/features/link/nodes/AutoLinkNode.js +2 -10
  205. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  206. package/dist/features/link/nodes/LinkNode.d.ts +1 -1
  207. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  208. package/dist/features/link/nodes/LinkNode.js +2 -15
  209. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  210. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  211. package/dist/features/link/server/baseFields.js.map +1 -1
  212. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  213. package/dist/features/link/server/index.js +4 -4
  214. package/dist/features/link/server/index.js.map +1 -1
  215. package/dist/features/link/server/schema.d.ts.map +1 -1
  216. package/dist/features/link/server/schema.js +4 -2
  217. package/dist/features/link/server/schema.js.map +1 -1
  218. package/dist/features/link/server/validate.d.ts.map +1 -1
  219. package/dist/features/link/server/validate.js +1 -1
  220. package/dist/features/link/server/validate.js.map +1 -1
  221. package/dist/features/lists/checklist/client/index.js +1 -1
  222. package/dist/features/lists/checklist/client/index.js.map +1 -1
  223. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  224. package/dist/features/lists/checklist/server/index.js +6 -3
  225. package/dist/features/lists/checklist/server/index.js.map +1 -1
  226. package/dist/features/lists/orderedList/client/index.js +1 -1
  227. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  228. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  229. package/dist/features/lists/orderedList/server/index.js +6 -3
  230. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  231. package/dist/features/lists/shared/constants.d.ts +2 -0
  232. package/dist/features/lists/shared/constants.d.ts.map +1 -0
  233. package/dist/features/lists/shared/constants.js +2 -0
  234. package/dist/features/lists/shared/constants.js.map +1 -0
  235. package/dist/features/lists/shared/validate.d.ts +5 -0
  236. package/dist/features/lists/shared/validate.d.ts.map +1 -0
  237. package/dist/features/lists/shared/validate.js +15 -0
  238. package/dist/features/lists/shared/validate.js.map +1 -0
  239. package/dist/features/lists/unorderedList/client/index.js +1 -1
  240. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  241. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  242. package/dist/features/lists/unorderedList/server/index.js +6 -3
  243. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  244. package/dist/features/relationship/client/components/index.css +3 -6
  245. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  246. package/dist/features/relationship/client/index.d.ts +2 -2
  247. package/dist/features/relationship/client/index.d.ts.map +1 -1
  248. package/dist/features/relationship/client/index.js.map +1 -1
  249. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  250. package/dist/features/relationship/client/nodes/RelationshipNode.js +0 -3
  251. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  252. package/dist/features/relationship/client/plugins/index.d.ts +2 -2
  253. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  254. package/dist/features/relationship/client/plugins/index.js +27 -31
  255. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  256. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts +2 -4
  257. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  258. package/dist/features/relationship/client/utils/useEnabledRelationships.js +53 -20
  259. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  260. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +2 -2
  261. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  262. package/dist/features/relationship/server/graphQLPopulationPromise.js +2 -2
  263. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  264. package/dist/features/relationship/server/index.d.ts +8 -1
  265. package/dist/features/relationship/server/index.d.ts.map +1 -1
  266. package/dist/features/relationship/server/index.js +28 -11
  267. package/dist/features/relationship/server/index.js.map +1 -1
  268. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  269. package/dist/features/relationship/server/nodes/RelationshipNode.js +1 -5
  270. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  271. package/dist/features/relationship/server/schema.d.ts +6 -5
  272. package/dist/features/relationship/server/schema.d.ts.map +1 -1
  273. package/dist/features/relationship/server/schema.js +31 -17
  274. package/dist/features/relationship/server/schema.js.map +1 -1
  275. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +1 -6
  276. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -1
  277. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +1 -5
  278. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -1
  279. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
  280. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
  281. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
  282. package/dist/features/table/client/index.d.ts.map +1 -0
  283. package/dist/features/{experimental_table → table}/client/index.js +2 -2
  284. package/dist/features/table/client/index.js.map +1 -0
  285. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts +8 -0
  286. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts.map +1 -0
  287. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js +19 -0
  288. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js.map +1 -0
  289. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +0 -1
  290. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  291. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +17 -44
  292. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  293. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  294. package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +41 -18
  295. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  296. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  297. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  298. package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +0 -3
  299. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  300. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  301. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  302. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  303. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  304. package/dist/features/table/client/utils/debounce.js.map +1 -0
  305. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  306. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  307. package/dist/features/table/markdownTransformer.d.ts +5 -0
  308. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  309. package/dist/features/{experimental_table → table}/markdownTransformer.js +6 -3
  310. package/dist/features/table/markdownTransformer.js.map +1 -0
  311. package/dist/features/table/server/index.d.ts +3 -0
  312. package/dist/features/table/server/index.d.ts.map +1 -0
  313. package/dist/features/{experimental_table → table}/server/index.js +6 -6
  314. package/dist/features/table/server/index.js.map +1 -0
  315. package/dist/features/table/server/schema.d.ts.map +1 -0
  316. package/dist/features/table/server/schema.js.map +1 -0
  317. package/dist/features/textState/feature.client.js +1 -1
  318. package/dist/features/textState/feature.client.js.map +1 -1
  319. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts +8 -0
  320. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts.map +1 -0
  321. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js +80 -0
  322. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js.map +1 -0
  323. package/dist/features/toolbars/fixed/client/Toolbar/index.css +80 -8
  324. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  325. package/dist/features/toolbars/fixed/client/Toolbar/index.js +19 -1
  326. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  327. package/dist/features/toolbars/inline/client/Toolbar/index.css +2 -14
  328. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  329. package/dist/features/toolbars/inline/client/Toolbar/index.js +17 -2
  330. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  331. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  332. package/dist/features/toolbars/shared/ToolbarButton/index.js +1 -0
  333. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  334. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  335. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +85 -32
  336. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  337. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +23 -25
  338. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  339. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts +5 -0
  340. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts.map +1 -0
  341. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js +79 -0
  342. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js.map +1 -0
  343. package/dist/features/toolbars/shared/useToolbarStates.d.ts.map +1 -1
  344. package/dist/features/toolbars/shared/useToolbarStates.js +3 -1
  345. package/dist/features/toolbars/shared/useToolbarStates.js.map +1 -1
  346. package/dist/features/typesClient.d.ts +1 -1
  347. package/dist/features/typesClient.d.ts.map +1 -1
  348. package/dist/features/typesClient.js.map +1 -1
  349. package/dist/features/typesServer.d.ts +19 -14
  350. package/dist/features/typesServer.d.ts.map +1 -1
  351. package/dist/features/typesServer.js.map +1 -1
  352. package/dist/features/upload/client/component/index.css +9 -11
  353. package/dist/features/upload/client/component/index.js +2 -1
  354. package/dist/features/upload/client/component/index.js.map +1 -1
  355. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  356. package/dist/features/upload/client/index.d.ts +3 -2
  357. package/dist/features/upload/client/index.d.ts.map +1 -1
  358. package/dist/features/upload/client/index.js.map +1 -1
  359. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  360. package/dist/features/upload/client/nodes/UploadNode.js +0 -7
  361. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  362. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  363. package/dist/features/upload/client/plugin/index.js +50 -53
  364. package/dist/features/upload/client/plugin/index.js.map +1 -1
  365. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +2 -2
  366. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  367. package/dist/features/upload/server/graphQLPopulationPromise.js +1 -1
  368. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  369. package/dist/features/upload/server/index.d.ts +7 -3
  370. package/dist/features/upload/server/index.d.ts.map +1 -1
  371. package/dist/features/upload/server/index.js +22 -18
  372. package/dist/features/upload/server/index.js.map +1 -1
  373. package/dist/features/upload/server/markdownTransformer.d.ts +2 -2
  374. package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -1
  375. package/dist/features/upload/server/markdownTransformer.js +1 -1
  376. package/dist/features/upload/server/markdownTransformer.js.map +1 -1
  377. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  378. package/dist/features/upload/server/nodes/UploadNode.js +1 -9
  379. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  380. package/dist/features/upload/server/schema.d.ts +6 -18
  381. package/dist/features/upload/server/schema.d.ts.map +1 -1
  382. package/dist/features/upload/server/schema.js +34 -16
  383. package/dist/features/upload/server/schema.js.map +1 -1
  384. package/dist/features/upload/server/validate.d.ts +2 -2
  385. package/dist/features/upload/server/validate.d.ts.map +1 -1
  386. package/dist/features/upload/server/validate.js +4 -1
  387. package/dist/features/upload/server/validate.js.map +1 -1
  388. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  389. package/dist/field/Diff/converters/listitem/index.js +2 -1
  390. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  391. package/dist/field/Diff/converters/relationship/index.css +0 -1
  392. package/dist/field/Diff/converters/unknown/index.css +1 -2
  393. package/dist/field/Diff/converters/upload/index.css +0 -1
  394. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  395. package/dist/field/Diff/index.css +0 -2
  396. package/dist/field/Diff/index.d.ts +3 -2
  397. package/dist/field/Diff/index.d.ts.map +1 -1
  398. package/dist/field/Diff/index.js +3 -2
  399. package/dist/field/Diff/index.js.map +1 -1
  400. package/dist/field/Field.d.ts.map +1 -1
  401. package/dist/field/Field.js +26 -16
  402. package/dist/field/Field.js.map +1 -1
  403. package/dist/field/RenderLexical/index.d.ts +3 -1
  404. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  405. package/dist/field/RenderLexical/index.js +23 -23
  406. package/dist/field/RenderLexical/index.js.map +1 -1
  407. package/dist/field/ViewSelector.css +1 -1
  408. package/dist/field/ViewSelector.d.ts.map +1 -1
  409. package/dist/field/ViewSelector.js +1 -0
  410. package/dist/field/ViewSelector.js.map +1 -1
  411. package/dist/field/bundled.css +1 -1
  412. package/dist/field/index.css +4 -5
  413. package/dist/field/rscEntry.d.ts +2 -2
  414. package/dist/field/rscEntry.d.ts.map +1 -1
  415. package/dist/field/rscEntry.js.map +1 -1
  416. package/dist/i18n.d.ts.map +1 -1
  417. package/dist/i18n.js +68 -0
  418. package/dist/i18n.js.map +1 -1
  419. package/dist/index.d.ts +6 -6
  420. package/dist/index.d.ts.map +1 -1
  421. package/dist/index.js +33 -54
  422. package/dist/index.js.map +1 -1
  423. package/dist/lexical/LexicalEditor.css +30 -19
  424. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  425. package/dist/lexical/LexicalEditor.js +62 -99
  426. package/dist/lexical/LexicalEditor.js.map +1 -1
  427. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  428. package/dist/lexical/LexicalProvider.js +7 -22
  429. package/dist/lexical/LexicalProvider.js.map +1 -1
  430. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  431. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  432. package/dist/lexical/config/server/loader.d.ts +1 -1
  433. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  434. package/dist/lexical/config/server/loader.js +2 -2
  435. package/dist/lexical/config/server/loader.js.map +1 -1
  436. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  437. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  438. package/dist/lexical/config/server/sanitize.js +2 -2
  439. package/dist/lexical/config/server/sanitize.js.map +1 -1
  440. package/dist/lexical/plugins/DecoratorPlugin/index.css +1 -1
  441. package/dist/lexical/plugins/DecoratorPlugin/index.d.ts.map +1 -1
  442. package/dist/lexical/plugins/DecoratorPlugin/index.js +24 -21
  443. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  444. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +18 -25
  445. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  446. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +27 -14
  447. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  448. package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
  449. package/dist/lexical/plugins/MarkdownShortcut/index.js +1 -1
  450. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  451. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -1
  452. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +21 -0
  453. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -1
  454. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  455. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  456. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -21
  457. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  458. package/dist/lexical/plugins/SlashMenu/index.css +1 -7
  459. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +2 -1
  460. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +2 -2
  461. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  462. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  463. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +5 -3
  464. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  465. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +17 -3
  466. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  467. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts +7 -0
  468. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts.map +1 -0
  469. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js +65 -0
  470. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js.map +1 -0
  471. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  472. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
  473. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +2 -0
  474. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  475. package/dist/lexical/theme/EditorTheme.css +18 -21
  476. package/dist/lexical/ui/ContentEditable.css +22 -17
  477. package/dist/lexical/ui/ContentEditable.d.ts +2 -1
  478. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
  479. package/dist/lexical/ui/ContentEditable.js +32 -11
  480. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  481. package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
  482. package/dist/lexical/ui/icons/H3/index.js +13 -6
  483. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  484. package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
  485. package/dist/lexical/ui/icons/H4/index.js +13 -6
  486. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  487. package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
  488. package/dist/lexical/ui/icons/H5/index.js +13 -6
  489. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  490. package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
  491. package/dist/lexical/ui/icons/H6/index.js +13 -6
  492. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  493. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts +17 -0
  494. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts.map +1 -0
  495. package/dist/lexical/utils/markdown/convertFromMarkdownString.js +27 -0
  496. package/dist/lexical/utils/markdown/convertFromMarkdownString.js.map +1 -0
  497. package/dist/lexical/utils/markdown/createBlockNode.d.ts +2 -2
  498. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  499. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  500. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts +25 -0
  501. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts.map +1 -0
  502. package/dist/lexical/utils/markdown/normalizeMarkdown.js +91 -0
  503. package/dist/lexical/utils/markdown/normalizeMarkdown.js.map +1 -0
  504. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  505. package/dist/lexical/utils/point.d.ts.map +1 -1
  506. package/dist/lexical/utils/rect.d.ts.map +1 -1
  507. package/dist/lexical-proxy/@lexical-markdown.d.ts +1 -1
  508. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -1
  509. package/dist/lexical-proxy/@lexical-markdown.js +1 -1
  510. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
  511. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts +2 -0
  512. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -0
  513. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js +2 -0
  514. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -0
  515. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts +2 -0
  516. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -0
  517. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js +2 -0
  518. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -0
  519. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts +2 -0
  520. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -0
  521. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js +2 -0
  522. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -0
  523. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts +2 -0
  524. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -0
  525. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js +2 -0
  526. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -0
  527. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts +2 -0
  528. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -0
  529. package/dist/lexical-proxy/@lexical-react/ReactExtension.js +2 -0
  530. package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -0
  531. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts +2 -0
  532. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -0
  533. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js +2 -0
  534. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -0
  535. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts +2 -0
  536. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -0
  537. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js +2 -0
  538. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -0
  539. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts +2 -0
  540. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -0
  541. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js +2 -0
  542. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -0
  543. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts +2 -0
  544. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -0
  545. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js +2 -0
  546. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -0
  547. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts +2 -0
  548. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts.map +1 -0
  549. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js +2 -0
  550. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js.map +1 -0
  551. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts +2 -0
  552. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts.map +1 -0
  553. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js +2 -0
  554. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js.map +1 -0
  555. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts +2 -0
  556. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts.map +1 -0
  557. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js +2 -0
  558. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js.map +1 -0
  559. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts +2 -0
  560. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts.map +1 -0
  561. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js +2 -0
  562. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js.map +1 -0
  563. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts +2 -0
  564. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts.map +1 -0
  565. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js +2 -0
  566. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js.map +1 -0
  567. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts +2 -0
  568. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts.map +1 -0
  569. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js +2 -0
  570. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js.map +1 -0
  571. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  572. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
  573. package/dist/presets/llmInstructions.d.ts +2 -0
  574. package/dist/presets/llmInstructions.d.ts.map +1 -0
  575. package/dist/presets/llmInstructions.js +13 -0
  576. package/dist/presets/llmInstructions.js.map +1 -0
  577. package/dist/types/builtInNodes.d.ts +1 -1
  578. package/dist/types/builtInNodes.d.ts.map +1 -1
  579. package/dist/types/builtInNodes.js +8 -3
  580. package/dist/types/builtInNodes.js.map +1 -1
  581. package/dist/types/index.d.ts +4 -7
  582. package/dist/types/index.d.ts.map +1 -1
  583. package/dist/types/index.js.map +1 -1
  584. package/dist/types/jsonSchemaHelpers.d.ts +5 -1
  585. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -1
  586. package/dist/types/jsonSchemaHelpers.js +7 -2
  587. package/dist/types/jsonSchemaHelpers.js.map +1 -1
  588. package/dist/types/nodeTypes.d.ts +6 -1
  589. package/dist/types/nodeTypes.d.ts.map +1 -1
  590. package/dist/types/nodeTypes.js.map +1 -1
  591. package/dist/types/schema.d.ts.map +1 -1
  592. package/dist/types/schema.js +12 -5
  593. package/dist/types/schema.js.map +1 -1
  594. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  595. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  596. package/dist/utilities/buildInitialState.d.ts +3 -2
  597. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  598. package/dist/utilities/buildInitialState.js +1 -0
  599. package/dist/utilities/buildInitialState.js.map +1 -1
  600. package/dist/utilities/createServerFeature.d.ts +1 -1
  601. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  602. package/dist/utilities/createServerFeature.js +2 -2
  603. package/dist/utilities/createServerFeature.js.map +1 -1
  604. package/dist/utilities/editorConfigFactory.d.ts +6 -6
  605. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  606. package/dist/utilities/editorConfigFactory.js +9 -9
  607. package/dist/utilities/editorConfigFactory.js.map +1 -1
  608. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +1 -1
  609. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -1
  610. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  611. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  612. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
  613. package/dist/utilities/generateImportMap.d.ts +3 -3
  614. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  615. package/dist/utilities/generateImportMap.js +3 -7
  616. package/dist/utilities/generateImportMap.js.map +1 -1
  617. package/dist/utilities/generateSchemaMap.d.ts +1 -1
  618. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  619. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  620. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  621. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  622. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  623. package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
  624. package/dist/utilities/upgradeLexicalData/index.js +6 -3
  625. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  626. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  627. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  628. package/dist/validate/hasText.d.ts +2 -2
  629. package/dist/validate/hasText.d.ts.map +1 -1
  630. package/dist/validate/hasText.js.map +1 -1
  631. package/dist/validate/index.d.ts +1 -1
  632. package/dist/validate/index.d.ts.map +1 -1
  633. package/package.json +98 -30
  634. package/dist/@types/assets.d.js +0 -2
  635. package/dist/@types/assets.d.js.map +0 -1
  636. package/dist/dependencyChecker.spec.js +0 -16
  637. package/dist/dependencyChecker.spec.js.map +0 -1
  638. package/dist/exports/client/Field-JXXWHUE4.js +0 -2
  639. package/dist/exports/client/Field-JXXWHUE4.js.map +0 -7
  640. package/dist/exports/client/bundled.css +0 -1
  641. package/dist/exports/client/chunk-4EIYXZ6H.js +0 -12
  642. package/dist/exports/client/chunk-4EIYXZ6H.js.map +0 -7
  643. package/dist/exports/client/chunk-ESITTE3C.js +0 -2
  644. package/dist/exports/client/chunk-ESITTE3C.js.map +0 -7
  645. package/dist/exports/client/chunk-UD4DQ4AK.js +0 -2
  646. package/dist/exports/client/chunk-UD4DQ4AK.js.map +0 -7
  647. package/dist/exports/client/component-PHZQBOJE.js +0 -2
  648. package/dist/exports/client/component-PHZQBOJE.js.map +0 -7
  649. package/dist/exports/client/componentInline-H24N7GUG.js +0 -2
  650. package/dist/exports/server/rsc.browser.d.ts +0 -11
  651. package/dist/exports/server/rsc.browser.d.ts.map +0 -1
  652. package/dist/exports/server/rsc.browser.js +0 -10
  653. package/dist/exports/server/rsc.browser.js.map +0 -1
  654. package/dist/features/blockquote/markdownTransformer.d.ts +0 -3
  655. package/dist/features/blockquote/markdownTransformer.d.ts.map +0 -1
  656. package/dist/features/blockquote/markdownTransformer.js +0 -33
  657. package/dist/features/blockquote/markdownTransformer.js.map +0 -1
  658. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts +0 -11
  659. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +0 -1
  660. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +0 -20
  661. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +0 -1
  662. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +0 -180
  663. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +0 -1
  664. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  665. package/dist/features/experimental_table/client/index.js.map +0 -1
  666. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  667. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  668. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  669. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  670. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  671. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  672. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
  673. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
  674. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  675. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  676. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  677. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  678. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  679. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  680. package/dist/features/experimental_table/markdownTransformer.d.ts +0 -5
  681. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  682. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  683. package/dist/features/experimental_table/server/index.d.ts +0 -3
  684. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  685. package/dist/features/experimental_table/server/index.js.map +0 -1
  686. package/dist/features/experimental_table/server/schema.d.ts.map +0 -1
  687. package/dist/features/experimental_table/server/schema.js.map +0 -1
  688. package/dist/features/format/bold/markdownTransformers.d.ts +0 -6
  689. package/dist/features/format/bold/markdownTransformers.d.ts.map +0 -1
  690. package/dist/features/format/bold/markdownTransformers.js +0 -23
  691. package/dist/features/format/bold/markdownTransformers.js.map +0 -1
  692. package/dist/features/format/inlineCode/markdownTransformers.d.ts +0 -3
  693. package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +0 -1
  694. package/dist/features/format/inlineCode/markdownTransformers.js +0 -6
  695. package/dist/features/format/inlineCode/markdownTransformers.js.map +0 -1
  696. package/dist/features/format/italic/markdownTransformers.d.ts +0 -4
  697. package/dist/features/format/italic/markdownTransformers.d.ts.map +0 -1
  698. package/dist/features/format/italic/markdownTransformers.js +0 -12
  699. package/dist/features/format/italic/markdownTransformers.js.map +0 -1
  700. package/dist/features/format/strikethrough/markdownTransformers.d.ts +0 -3
  701. package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +0 -1
  702. package/dist/features/format/strikethrough/markdownTransformers.js +0 -6
  703. package/dist/features/format/strikethrough/markdownTransformers.js.map +0 -1
  704. package/dist/features/link/markdownTransformer.spec.js +0 -195
  705. package/dist/features/link/markdownTransformer.spec.js.map +0 -1
  706. package/dist/features/lists/checklist/markdownTransformers.d.ts +0 -3
  707. package/dist/features/lists/checklist/markdownTransformers.d.ts.map +0 -1
  708. package/dist/features/lists/checklist/markdownTransformers.js +0 -12
  709. package/dist/features/lists/checklist/markdownTransformers.js.map +0 -1
  710. package/dist/features/lists/orderedList/markdownTransformer.d.ts +0 -3
  711. package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +0 -1
  712. package/dist/features/lists/orderedList/markdownTransformer.js +0 -12
  713. package/dist/features/lists/orderedList/markdownTransformer.js.map +0 -1
  714. package/dist/features/lists/shared/markdown.d.ts +0 -6
  715. package/dist/features/lists/shared/markdown.d.ts.map +0 -1
  716. package/dist/features/lists/shared/markdown.js +0 -57
  717. package/dist/features/lists/shared/markdown.js.map +0 -1
  718. package/dist/features/lists/unorderedList/markdownTransformer.d.ts +0 -3
  719. package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +0 -1
  720. package/dist/features/lists/unorderedList/markdownTransformer.js +0 -12
  721. package/dist/features/lists/unorderedList/markdownTransformer.js.map +0 -1
  722. package/dist/field/clientEntry.d.ts +0 -29
  723. package/dist/field/clientEntry.d.ts.map +0 -1
  724. package/dist/field/clientEntry.js +0 -86
  725. package/dist/field/clientEntry.js.map +0 -1
  726. package/dist/lexical/utils/guard.d.ts +0 -5
  727. package/dist/lexical/utils/guard.d.ts.map +0 -1
  728. package/dist/lexical/utils/guard.js +0 -9
  729. package/dist/lexical/utils/guard.js.map +0 -1
  730. package/dist/lexical/utils/url.spec.js +0 -114
  731. package/dist/lexical/utils/url.spec.js.map +0 -1
  732. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +0 -2
  733. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +0 -1
  734. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +0 -2
  735. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +0 -1
  736. package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js +0 -160
  737. package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js.map +0 -1
  738. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts +0 -14
  739. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +0 -1
  740. package/dist/packages/@lexical/markdown/MarkdownExport.js +0 -220
  741. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +0 -1
  742. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts +0 -19
  743. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +0 -1
  744. package/dist/packages/@lexical/markdown/MarkdownImport.js +0 -199
  745. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +0 -1
  746. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts +0 -11
  747. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +0 -1
  748. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +0 -304
  749. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +0 -1
  750. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +0 -173
  751. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +0 -1
  752. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +0 -352
  753. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +0 -1
  754. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts +0 -22
  755. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +0 -1
  756. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +0 -91
  757. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +0 -1
  758. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts +0 -21
  759. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +0 -1
  760. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +0 -54
  761. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +0 -1
  762. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts +0 -18
  763. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts.map +0 -1
  764. package/dist/packages/@lexical/markdown/importTextTransformers.js +0 -54
  765. package/dist/packages/@lexical/markdown/importTextTransformers.js.map +0 -1
  766. package/dist/packages/@lexical/markdown/index.d.ts +0 -29
  767. package/dist/packages/@lexical/markdown/index.d.ts.map +0 -1
  768. package/dist/packages/@lexical/markdown/index.js +0 -39
  769. package/dist/packages/@lexical/markdown/index.js.map +0 -1
  770. package/dist/packages/@lexical/markdown/utils.d.ts +0 -34
  771. package/dist/packages/@lexical/markdown/utils.d.ts.map +0 -1
  772. package/dist/packages/@lexical/markdown/utils.js +0 -267
  773. package/dist/packages/@lexical/markdown/utils.js.map +0 -1
  774. package/dist/utilities/jsx/jsx.spec.js +0 -178
  775. package/dist/utilities/jsx/jsx.spec.js.map +0 -1
  776. /package/dist/exports/client/{componentInline-H24N7GUG.js.map → componentInline-HNE5G4TE.js.map} +0 -0
  777. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  778. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
  779. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
  780. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
  781. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  782. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
  783. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
  784. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
  785. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
  786. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
  787. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +0 -0
  788. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  789. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  790. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  791. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
  792. /package/dist/features/{experimental_table → table}/server/schema.d.ts +0 -0
  793. /package/dist/features/{experimental_table → table}/server/schema.js +0 -0
@@ -2,7 +2,7 @@ import { TableCellNode, TableNode, TableRowNode } from '@lexical/table';
2
2
  import { sanitizeFields } from 'payload';
3
3
  import { createServerFeature } from '../../../utilities/createServerFeature.js';
4
4
  import { createNode } from '../../typeUtilities.js';
5
- import { TableMarkdownTransformer } from '../markdownTransformer.js';
5
+ import { PAYLOAD_TABLE } from '../markdownTransformer.js';
6
6
  import { tableCellNodeJSONSchema, tableNodeJSONSchema, tableRowNodeJSONSchema } from './schema.js';
7
7
  const fields = [{
8
8
  name: 'rows',
@@ -15,14 +15,14 @@ const fields = [{
15
15
  defaultValue: 5,
16
16
  required: true
17
17
  }];
18
- export const EXPERIMENTAL_TableFeature = createServerFeature({
19
- feature: async ({
18
+ export const TableFeature = createServerFeature({
19
+ feature: ({
20
20
  config,
21
21
  isRoot,
22
22
  parentIsLocalized
23
23
  }) => {
24
24
  const validRelationships = config.collections.map(c => c.slug) || [];
25
- const sanitizedFields = await sanitizeFields({
25
+ const sanitizedFields = sanitizeFields({
26
26
  config: config,
27
27
  fields,
28
28
  parentIsLocalized,
@@ -38,7 +38,7 @@ export const EXPERIMENTAL_TableFeature = createServerFeature({
38
38
  });
39
39
  return schemaMap;
40
40
  },
41
- markdownTransformers: [TableMarkdownTransformer],
41
+ markdownTransformers: [PAYLOAD_TABLE],
42
42
  nodes: [createNode({
43
43
  jsonSchema: tableNodeJSONSchema,
44
44
  node: TableNode
@@ -51,6 +51,6 @@ export const EXPERIMENTAL_TableFeature = createServerFeature({
51
51
  })]
52
52
  };
53
53
  },
54
- key: 'experimental_table'
54
+ key: 'table'
55
55
  });
56
56
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["TableCellNode","TableNode","TableRowNode","sanitizeFields","createServerFeature","createNode","PAYLOAD_TABLE","tableCellNodeJSONSchema","tableNodeJSONSchema","tableRowNodeJSONSchema","fields","name","type","defaultValue","required","TableFeature","feature","config","isRoot","parentIsLocalized","validRelationships","collections","map","c","slug","sanitizedFields","requireFieldLevelRichTextEditor","ClientFeature","generateSchemaMap","schemaMap","Map","set","markdownTransformers","nodes","jsonSchema","node","key"],"sources":["../../../../src/features/table/server/index.ts"],"sourcesContent":["import type { Config, Field, FieldSchemaMap } from 'payload'\n\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table'\nimport { sanitizeFields } from 'payload'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { PAYLOAD_TABLE } from '../markdownTransformer.js'\nimport { tableCellNodeJSONSchema, tableNodeJSONSchema, tableRowNodeJSONSchema } from './schema.js'\n\nexport type {\n SerializedTableCellNode,\n SerializedTableNode,\n SerializedTableRowNode,\n} from './schema.js'\n\nconst fields: Field[] = [\n {\n name: 'rows',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n {\n name: 'columns',\n type: 'number',\n defaultValue: 5,\n required: true,\n },\n]\n\nexport const TableFeature = createServerFeature({\n feature: ({ config, isRoot, parentIsLocalized }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n const sanitizedFields = sanitizeFields({\n config: config as unknown as Config,\n fields,\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#TableFeatureClient',\n generateSchemaMap: () => {\n const schemaMap: FieldSchemaMap = new Map()\n\n schemaMap.set('fields', {\n fields: sanitizedFields,\n })\n\n return schemaMap\n },\n markdownTransformers: [PAYLOAD_TABLE],\n nodes: [\n createNode({\n jsonSchema: tableNodeJSONSchema,\n node: TableNode,\n }),\n createNode({\n jsonSchema: tableCellNodeJSONSchema,\n node: TableCellNode,\n }),\n createNode({\n jsonSchema: tableRowNodeJSONSchema,\n node: TableRowNode,\n }),\n ],\n }\n },\n key: 'table',\n})\n"],"mappings":"AAEA,SAASA,aAAa,EAAEC,SAAS,EAAEC,YAAY,QAAQ;AACvD,SAASC,cAAc,QAAQ;AAE/B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,UAAU,QAAQ;AAC3B,SAASC,aAAa,QAAQ;AAC9B,SAASC,uBAAuB,EAAEC,mBAAmB,EAAEC,sBAAsB,QAAQ;AAQrF,MAAMC,MAAA,GAAkB,CACtB;EACEC,IAAA,EAAM;EACNC,IAAA,EAAM;EACNC,YAAA,EAAc;EACdC,QAAA,EAAU;AACZ,GACA;EACEH,IAAA,EAAM;EACNC,IAAA,EAAM;EACNC,YAAA,EAAc;EACdC,QAAA,EAAU;AACZ,EACD;AAED,OAAO,MAAMC,YAAA,GAAeX,mBAAA,CAAoB;EAC9CY,OAAA,EAASA,CAAC;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAiB,CAAE;IAC7C,MAAMC,kBAAA,GAAqBH,MAAA,CAAOI,WAAW,CAACC,GAAG,CAAEC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAK,EAAE;IAEtE,MAAMC,eAAA,GAAkBtB,cAAA,CAAe;MACrCc,MAAA,EAAQA,MAAA;MACRP,MAAA;MACAS,iBAAA;MACAO,+BAAA,EAAiCR,MAAA;MACjCE;IACF;IACA,OAAO;MACLO,aAAA,EAAe;MACfC,iBAAA,EAAmBA,CAAA;QACjB,MAAMC,SAAA,GAA4B,IAAIC,GAAA;QAEtCD,SAAA,CAAUE,GAAG,CAAC,UAAU;UACtBrB,MAAA,EAAQe;QACV;QAEA,OAAOI,SAAA;MACT;MACAG,oBAAA,EAAsB,CAAC1B,aAAA,CAAc;MACrC2B,KAAA,EAAO,CACL5B,UAAA,CAAW;QACT6B,UAAA,EAAY1B,mBAAA;QACZ2B,IAAA,EAAMlC;MACR,IACAI,UAAA,CAAW;QACT6B,UAAA,EAAY3B,uBAAA;QACZ4B,IAAA,EAAMnC;MACR,IACAK,UAAA,CAAW;QACT6B,UAAA,EAAYzB,sBAAA;QACZ0B,IAAA,EAAMjC;MACR;IAEJ;EACF;EACAkC,GAAA,EAAK;AACP","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/table/server/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,MAAM,WAAW,uBAAuB,CACtC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,CAC/D,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,eAAe,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,WAAW,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB,CAClC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,CAC/D,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,sBAAsB,CACrC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,CAC/D,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;CACjB;AA2BD,eAAO,MAAM,mBAAmB,EAAE,YAgBjC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,YAuBrC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,YAWpC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":["TABLE_NODES_TS","tableNodeJSONSchema","elementNodeSchema","nodeUnionName","typeStringDefinitions","add","nodeType","properties","colWidths","type","items","frozenColumnCount","frozenRowCount","rowStriping","tsType","tableCellNodeJSONSchema","backgroundColor","oneOf","colSpan","description","headerState","rowSpan","verticalAlign","width","required","tableRowNodeJSONSchema","height"],"sources":["../../../../src/features/table/server/schema.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\n\nimport type { SerializedLexicalElementBase } from '../../../types/nodeTypes.js'\nimport type { JSONSchemaFn } from '../../typesServer.js'\n\nexport interface SerializedTableCellNode<\n TChildren extends SerializedLexicalNode = SerializedLexicalNode,\n> extends SerializedLexicalElementBase<TChildren> {\n backgroundColor?: null | string\n colSpan?: number\n headerState: number\n rowSpan?: number\n type: 'tablecell'\n verticalAlign?: string\n width?: number\n}\n\nexport interface SerializedTableNode<\n TChildren extends SerializedLexicalNode = SerializedLexicalNode,\n> extends SerializedLexicalElementBase<TChildren> {\n colWidths?: number[]\n frozenColumnCount?: number\n frozenRowCount?: number\n rowStriping?: boolean\n type: 'table'\n}\n\nexport interface SerializedTableRowNode<\n TChildren extends SerializedLexicalNode = SerializedLexicalNode,\n> extends SerializedLexicalElementBase<TChildren> {\n height?: number\n type: 'tablerow'\n}\n\n/**\n * MUST stay byte-for-byte in sync with the runtime `SerializedTableNode`,\n * `SerializedTableRowNode`, and `SerializedTableCellNode` declared above.\n */\nconst TABLE_NODES_TS = `export interface SerializedTableNode<TChildren> extends SerializedLexicalElementBase<TChildren> {\n type: 'table';\n colWidths?: number[];\n frozenColumnCount?: number;\n frozenRowCount?: number;\n rowStriping?: boolean;\n}\nexport interface SerializedTableRowNode<TChildren> extends SerializedLexicalElementBase<TChildren> {\n type: 'tablerow';\n height?: number;\n}\nexport interface SerializedTableCellNode<TChildren> extends SerializedLexicalElementBase<TChildren> {\n type: 'tablecell';\n backgroundColor?: string | null;\n colSpan?: number;\n headerState: number;\n rowSpan?: number;\n verticalAlign?: string;\n width?: number;\n}`\n\nexport const tableNodeJSONSchema: JSONSchemaFn = ({\n elementNodeSchema,\n nodeUnionName,\n typeStringDefinitions,\n}) => {\n typeStringDefinitions.add(TABLE_NODES_TS)\n return elementNodeSchema({\n nodeType: 'table',\n properties: {\n colWidths: { type: 'array', items: { type: 'number' } },\n frozenColumnCount: { type: 'integer' },\n frozenRowCount: { type: 'integer' },\n rowStriping: { type: 'boolean' },\n },\n tsType: `SerializedTableNode<${nodeUnionName}>`,\n })\n}\n\nexport const tableCellNodeJSONSchema: JSONSchemaFn = ({\n elementNodeSchema,\n nodeUnionName,\n typeStringDefinitions,\n}) => {\n typeStringDefinitions.add(TABLE_NODES_TS)\n return elementNodeSchema({\n nodeType: 'tablecell',\n properties: {\n backgroundColor: { oneOf: [{ type: 'string' }, { type: 'null' }] },\n colSpan: { type: 'integer', description: 'How many columns this cell spans (default 1).' },\n headerState: {\n type: 'integer',\n description:\n 'Header bitmask: 0 = normal cell, 1 = row header, 2 = column header, 3 = both.',\n },\n rowSpan: { type: 'integer', description: 'How many rows this cell spans (default 1).' },\n verticalAlign: { type: 'string' },\n width: { type: 'integer' },\n },\n required: ['headerState'],\n tsType: `SerializedTableCellNode<${nodeUnionName}>`,\n })\n}\n\nexport const tableRowNodeJSONSchema: JSONSchemaFn = ({\n elementNodeSchema,\n nodeUnionName,\n typeStringDefinitions,\n}) => {\n typeStringDefinitions.add(TABLE_NODES_TS)\n return elementNodeSchema({\n nodeType: 'tablerow',\n properties: { height: { type: 'integer' } },\n tsType: `SerializedTableRowNode<${nodeUnionName}>`,\n })\n}\n"],"mappings":"AAkCA;;;GAIA,MAAMA,cAAA,GAAiB;;;;;;;;;;;;;;;;;;;EAmBrB;AAEF,OAAO,MAAMC,mBAAA,GAAoCA,CAAC;EAChDC,iBAAiB;EACjBC,aAAa;EACbC;AAAqB,CACtB;EACCA,qBAAA,CAAsBC,GAAG,CAACL,cAAA;EAC1B,OAAOE,iBAAA,CAAkB;IACvBI,QAAA,EAAU;IACVC,UAAA,EAAY;MACVC,SAAA,EAAW;QAAEC,IAAA,EAAM;QAASC,KAAA,EAAO;UAAED,IAAA,EAAM;QAAS;MAAE;MACtDE,iBAAA,EAAmB;QAAEF,IAAA,EAAM;MAAU;MACrCG,cAAA,EAAgB;QAAEH,IAAA,EAAM;MAAU;MAClCI,WAAA,EAAa;QAAEJ,IAAA,EAAM;MAAU;IACjC;IACAK,MAAA,EAAQ,uBAAuBX,aAAA;EACjC;AACF;AAEA,OAAO,MAAMY,uBAAA,GAAwCA,CAAC;EACpDb,iBAAiB;EACjBC,aAAa;EACbC;AAAqB,CACtB;EACCA,qBAAA,CAAsBC,GAAG,CAACL,cAAA;EAC1B,OAAOE,iBAAA,CAAkB;IACvBI,QAAA,EAAU;IACVC,UAAA,EAAY;MACVS,eAAA,EAAiB;QAAEC,KAAA,EAAO,CAAC;UAAER,IAAA,EAAM;QAAS,GAAG;UAAEA,IAAA,EAAM;QAAO;MAAG;MACjES,OAAA,EAAS;QAAET,IAAA,EAAM;QAAWU,WAAA,EAAa;MAAgD;MACzFC,WAAA,EAAa;QACXX,IAAA,EAAM;QACNU,WAAA,EACE;MACJ;MACAE,OAAA,EAAS;QAAEZ,IAAA,EAAM;QAAWU,WAAA,EAAa;MAA6C;MACtFG,aAAA,EAAe;QAAEb,IAAA,EAAM;MAAS;MAChCc,KAAA,EAAO;QAAEd,IAAA,EAAM;MAAU;IAC3B;IACAe,QAAA,EAAU,CAAC,cAAc;IACzBV,MAAA,EAAQ,2BAA2BX,aAAA;EACrC;AACF;AAEA,OAAO,MAAMsB,sBAAA,GAAuCA,CAAC;EACnDvB,iBAAiB;EACjBC,aAAa;EACbC;AAAqB,CACtB;EACCA,qBAAA,CAAsBC,GAAG,CAACL,cAAA;EAC1B,OAAOE,iBAAA,CAAkB;IACvBI,QAAA,EAAU;IACVC,UAAA,EAAY;MAAEmB,MAAA,EAAQ;QAAEjB,IAAA,EAAM;MAAU;IAAE;IAC1CK,MAAA,EAAQ,0BAA0BX,aAAA;EACpC;AACF","ignoreList":[]}
@@ -43,7 +43,7 @@ const toolbarGroups = (props, stateMap) => {
43
43
  type: 'dropdown',
44
44
  ChildComponent: () => /*#__PURE__*/_jsx(TextStateIcon, {
45
45
  css: {
46
- color: 'var(--theme-elevation-600)'
46
+ color: 'var(--color-icon-secondary)'
47
47
  }
48
48
  }),
49
49
  items: [...clearStyle, ...items],
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.js","names":["TextStateIcon","createClientFeature","registerTextStates","setTextState","StatePlugin","toolbarGroups","props","stateMap","items","stateKey","state","key","stateValue","meta","push","ChildComponent","_jsx","css","label","onSelect","editor","clearStyle","i18n","t","undefined","order","type","color","TextStateFeatureClient","plugins","Component","position","toolbarFixed","groups","toolbarInline"],"sources":["../../../src/features/textState/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport type { ToolbarDropdownGroup, ToolbarGroup } from '../toolbars/types.js'\nimport type { TextStateFeatureProps } from './feature.server.js'\n\nimport { TextStateIcon } from '../../lexical/ui/icons/TextState/index.js'\nimport { createClientFeature } from '../../utilities/createClientFeature.js'\nimport { registerTextStates, setTextState, type StateMap, StatePlugin } from './textState.js'\n\nconst toolbarGroups = (props: TextStateFeatureProps, stateMap: StateMap): ToolbarGroup[] => {\n const items: ToolbarDropdownGroup['items'] = []\n\n for (const stateKey in props.state) {\n const key = props.state[stateKey]!\n for (const stateValue in key) {\n const meta = key[stateValue]!\n items.push({\n ChildComponent: () => <TextStateIcon css={meta.css} />,\n key: stateValue,\n label: meta.label,\n onSelect: ({ editor }) => {\n setTextState(editor, stateMap, stateKey, stateValue)\n },\n })\n }\n }\n\n const clearStyle: ToolbarDropdownGroup['items'] = [\n {\n ChildComponent: () => <TextStateIcon />,\n key: `clear-style`,\n label: ({ i18n }) => i18n.t('lexical:textState:defaultStyle'),\n onSelect: ({ editor }) => {\n for (const stateKey in props.state) {\n setTextState(editor, stateMap, stateKey, undefined)\n }\n },\n order: 1,\n },\n ]\n\n return [\n {\n type: 'dropdown',\n ChildComponent: () => <TextStateIcon css={{ color: 'var(--theme-elevation-600)' }} />,\n items: [...clearStyle, ...items],\n key: 'textState',\n order: 30,\n },\n ]\n}\n\nexport const TextStateFeatureClient = createClientFeature<TextStateFeatureProps>(({ props }) => {\n const stateMap = registerTextStates(props.state)\n return {\n plugins: [\n {\n Component: () => StatePlugin({ stateMap }),\n position: 'normal',\n },\n ],\n toolbarFixed: {\n groups: toolbarGroups(props, stateMap),\n },\n toolbarInline: {\n groups: toolbarGroups(props, stateMap),\n },\n }\n})\n"],"mappings":"AAAA;;;AAKA,SAASA,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,kBAAkB,EAAEC,YAAY,EAAiBC,WAAW,QAAQ;AAE7E,MAAMC,aAAA,GAAgBA,CAACC,KAAA,EAA8BC,QAAA;EACnD,MAAMC,KAAA,GAAuC,EAAE;EAE/C,KAAK,MAAMC,QAAA,IAAYH,KAAA,CAAMI,KAAK,EAAE;IAClC,MAAMC,GAAA,GAAML,KAAA,CAAMI,KAAK,CAACD,QAAA,CAAS;IACjC,KAAK,MAAMG,UAAA,IAAcD,GAAA,EAAK;MAC5B,MAAME,IAAA,GAAOF,GAAG,CAACC,UAAA,CAAW;MAC5BJ,KAAA,CAAMM,IAAI,CAAC;QACTC,cAAA,EAAgBA,CAAA,kBAAMC,IAAA,CAAChB,aAAA;UAAciB,GAAA,EAAKJ,IAAA,CAAKI;;QAC/CN,GAAA,EAAKC,UAAA;QACLM,KAAA,EAAOL,IAAA,CAAKK,KAAK;QACjBC,QAAA,EAAUA,CAAC;UAAEC;QAAM,CAAE;UACnBjB,YAAA,CAAaiB,MAAA,EAAQb,QAAA,EAAUE,QAAA,EAAUG,UAAA;QAC3C;MACF;IACF;EACF;EAEA,MAAMS,UAAA,GAA4C,CAChD;IACEN,cAAA,EAAgBA,CAAA,kBAAMC,IAAA,CAAChB,aAAA;IACvBW,GAAA,EAAK,aAAa;IAClBO,KAAA,EAAOA,CAAC;MAAEI;IAAI,CAAE,KAAKA,IAAA,CAAKC,CAAC,CAAC;IAC5BJ,QAAA,EAAUA,CAAC;MAAEC;IAAM,CAAE;MACnB,KAAK,MAAMX,QAAA,IAAYH,KAAA,CAAMI,KAAK,EAAE;QAClCP,YAAA,CAAaiB,MAAA,EAAQb,QAAA,EAAUE,QAAA,EAAUe,SAAA;MAC3C;IACF;IACAC,KAAA,EAAO;EACT,EACD;EAED,OAAO,CACL;IACEC,IAAA,EAAM;IACNX,cAAA,EAAgBA,CAAA,kBAAMC,IAAA,CAAChB,aAAA;MAAciB,GAAA,EAAK;QAAEU,KAAA,EAAO;MAA6B;;IAChFnB,KAAA,EAAO,C,GAAIa,UAAA,E,GAAeb,KAAA,CAAM;IAChCG,GAAA,EAAK;IACLc,KAAA,EAAO;EACT,EACD;AACH;AAEA,OAAO,MAAMG,sBAAA,GAAyB3B,mBAAA,CAA2C,CAAC;EAAEK;AAAK,CAAE;EACzF,MAAMC,QAAA,GAAWL,kBAAA,CAAmBI,KAAA,CAAMI,KAAK;EAC/C,OAAO;IACLmB,OAAA,EAAS,CACP;MACEC,SAAA,EAAWA,CAAA,KAAM1B,WAAA,CAAY;QAAEG;MAAS;MACxCwB,QAAA,EAAU;IACZ,EACD;IACDC,YAAA,EAAc;MACZC,MAAA,EAAQ5B,aAAA,CAAcC,KAAA,EAAOC,QAAA;IAC/B;IACA2B,aAAA,EAAe;MACbD,MAAA,EAAQ5B,aAAA,CAAcC,KAAA,EAAOC,QAAA;IAC/B;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"feature.client.js","names":["TextStateIcon","createClientFeature","registerTextStates","setTextState","StatePlugin","toolbarGroups","props","stateMap","items","stateKey","state","key","stateValue","meta","push","ChildComponent","_jsx","css","label","onSelect","editor","clearStyle","i18n","t","undefined","order","type","color","TextStateFeatureClient","plugins","Component","position","toolbarFixed","groups","toolbarInline"],"sources":["../../../src/features/textState/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport type { ToolbarDropdownGroup, ToolbarGroup } from '../toolbars/types.js'\nimport type { TextStateFeatureProps } from './feature.server.js'\n\nimport { TextStateIcon } from '../../lexical/ui/icons/TextState/index.js'\nimport { createClientFeature } from '../../utilities/createClientFeature.js'\nimport { registerTextStates, setTextState, type StateMap, StatePlugin } from './textState.js'\n\nconst toolbarGroups = (props: TextStateFeatureProps, stateMap: StateMap): ToolbarGroup[] => {\n const items: ToolbarDropdownGroup['items'] = []\n\n for (const stateKey in props.state) {\n const key = props.state[stateKey]!\n for (const stateValue in key) {\n const meta = key[stateValue]!\n items.push({\n ChildComponent: () => <TextStateIcon css={meta.css} />,\n key: stateValue,\n label: meta.label,\n onSelect: ({ editor }) => {\n setTextState(editor, stateMap, stateKey, stateValue)\n },\n })\n }\n }\n\n const clearStyle: ToolbarDropdownGroup['items'] = [\n {\n ChildComponent: () => <TextStateIcon />,\n key: `clear-style`,\n label: ({ i18n }) => i18n.t('lexical:textState:defaultStyle'),\n onSelect: ({ editor }) => {\n for (const stateKey in props.state) {\n setTextState(editor, stateMap, stateKey, undefined)\n }\n },\n order: 1,\n },\n ]\n\n return [\n {\n type: 'dropdown',\n ChildComponent: () => <TextStateIcon css={{ color: 'var(--color-icon-secondary)' }} />,\n items: [...clearStyle, ...items],\n key: 'textState',\n order: 30,\n },\n ]\n}\n\nexport const TextStateFeatureClient = createClientFeature<TextStateFeatureProps>(({ props }) => {\n const stateMap = registerTextStates(props.state)\n return {\n plugins: [\n {\n Component: () => StatePlugin({ stateMap }),\n position: 'normal',\n },\n ],\n toolbarFixed: {\n groups: toolbarGroups(props, stateMap),\n },\n toolbarInline: {\n groups: toolbarGroups(props, stateMap),\n },\n }\n})\n"],"mappings":"AAAA;;;AAKA,SAASA,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,kBAAkB,EAAEC,YAAY,EAAiBC,WAAW,QAAQ;AAE7E,MAAMC,aAAA,GAAgBA,CAACC,KAAA,EAA8BC,QAAA;EACnD,MAAMC,KAAA,GAAuC,EAAE;EAE/C,KAAK,MAAMC,QAAA,IAAYH,KAAA,CAAMI,KAAK,EAAE;IAClC,MAAMC,GAAA,GAAML,KAAA,CAAMI,KAAK,CAACD,QAAA,CAAS;IACjC,KAAK,MAAMG,UAAA,IAAcD,GAAA,EAAK;MAC5B,MAAME,IAAA,GAAOF,GAAG,CAACC,UAAA,CAAW;MAC5BJ,KAAA,CAAMM,IAAI,CAAC;QACTC,cAAA,EAAgBA,CAAA,kBAAMC,IAAA,CAAChB,aAAA;UAAciB,GAAA,EAAKJ,IAAA,CAAKI;;QAC/CN,GAAA,EAAKC,UAAA;QACLM,KAAA,EAAOL,IAAA,CAAKK,KAAK;QACjBC,QAAA,EAAUA,CAAC;UAAEC;QAAM,CAAE;UACnBjB,YAAA,CAAaiB,MAAA,EAAQb,QAAA,EAAUE,QAAA,EAAUG,UAAA;QAC3C;MACF;IACF;EACF;EAEA,MAAMS,UAAA,GAA4C,CAChD;IACEN,cAAA,EAAgBA,CAAA,kBAAMC,IAAA,CAAChB,aAAA;IACvBW,GAAA,EAAK,aAAa;IAClBO,KAAA,EAAOA,CAAC;MAAEI;IAAI,CAAE,KAAKA,IAAA,CAAKC,CAAC,CAAC;IAC5BJ,QAAA,EAAUA,CAAC;MAAEC;IAAM,CAAE;MACnB,KAAK,MAAMX,QAAA,IAAYH,KAAA,CAAMI,KAAK,EAAE;QAClCP,YAAA,CAAaiB,MAAA,EAAQb,QAAA,EAAUE,QAAA,EAAUe,SAAA;MAC3C;IACF;IACAC,KAAA,EAAO;EACT,EACD;EAED,OAAO,CACL;IACEC,IAAA,EAAM;IACNX,cAAA,EAAgBA,CAAA,kBAAMC,IAAA,CAAChB,aAAA;MAAciB,GAAA,EAAK;QAAEU,KAAA,EAAO;MAA8B;;IACjFnB,KAAA,EAAO,C,GAAIa,UAAA,E,GAAeb,KAAA,CAAM;IAChCG,GAAA,EAAK;IACLc,KAAA,EAAO;EACT,EACD;AACH;AAEA,OAAO,MAAMG,sBAAA,GAAyB3B,mBAAA,CAA2C,CAAC;EAAEK;AAAK,CAAE;EACzF,MAAMC,QAAA,GAAWL,kBAAA,CAAmBI,KAAA,CAAMI,KAAK;EAC/C,OAAO;IACLmB,OAAA,EAAS,CACP;MACEC,SAAA,EAAWA,CAAA,KAAM1B,WAAA,CAAY;QAAEG;MAAS;MACxCwB,QAAA,EAAU;IACZ,EACD;IACDC,YAAA,EAAc;MACZC,MAAA,EAAQ5B,aAAA,CAAcC,KAAA,EAAOC,QAAA;IAC/B;IACA2B,aAAA,EAAe;MACbD,MAAA,EAAQ5B,aAAA,CAAcC,KAAA,EAAOC,QAAA;IAC/B;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ export declare function getHorizontalScrollDelta({ clientWidth, deltaMode, deltaY, isRightToLeft, }: {
2
+ clientWidth: number;
3
+ deltaMode: number;
4
+ deltaY: number;
5
+ isRightToLeft: boolean;
6
+ }): number;
7
+ export declare function useRedirectVerticalWheelToHorizontalScroll(): void;
8
+ //# sourceMappingURL=horizontalWheelScroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizontalWheelScroll.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.ts"],"names":[],"mappings":"AASA,wBAAgB,wBAAwB,CAAC,EACvC,WAAW,EACX,SAAS,EACT,MAAM,EACN,aAAa,GACd,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,OAAO,CAAA;CACvB,GAAG,MAAM,CAOT;AA0CD,wBAAgB,0CAA0C,IAAI,IAAI,CAgBjE"}
@@ -0,0 +1,80 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { useEffect } from 'react';
5
+ const scrollContainerSelector = '.fixed-toolbar__scroll';
6
+ // A single notch on a classic (non-trackpad) wheel mouse reports deltaMode 1 with a
7
+ // deltaY of only 1-3, so it must be scaled up to a pixel value that actually moves the scroll.
8
+ const PIXELS_PER_LINE = 40;
9
+ export function getHorizontalScrollDelta({
10
+ clientWidth,
11
+ deltaMode,
12
+ deltaY,
13
+ isRightToLeft
14
+ }) {
15
+ const deltaInPixels = deltaMode === 1 ? deltaY * PIXELS_PER_LINE : deltaMode === 2 ? deltaY * clientWidth : deltaY;
16
+ // scrollLeft moves toward the inline-start edge for a given positive delta in RTL,
17
+ // the opposite of LTR, so the delta must be negated to keep the scroll direction consistent.
18
+ return isRightToLeft ? -deltaInPixels : deltaInPixels;
19
+ }
20
+ function redirectVerticalWheelToHorizontalScroll(event) {
21
+ const isPrimarilyVerticalWheelInput = Math.abs(event.deltaY) > Math.abs(event.deltaX);
22
+ if (!isPrimarilyVerticalWheelInput) {
23
+ return;
24
+ }
25
+ const target = event.target;
26
+ if (!(target instanceof Element)) {
27
+ return;
28
+ }
29
+ const scrollContainer = target.closest(scrollContainerSelector);
30
+ if (!scrollContainer) {
31
+ return;
32
+ }
33
+ const canScrollHorizontally = scrollContainer.scrollWidth > scrollContainer.clientWidth;
34
+ if (!canScrollHorizontally) {
35
+ return;
36
+ }
37
+ event.preventDefault();
38
+ scrollContainer.scrollLeft += getHorizontalScrollDelta({
39
+ clientWidth: scrollContainer.clientWidth,
40
+ deltaMode: event.deltaMode,
41
+ deltaY: event.deltaY,
42
+ isRightToLeft: getComputedStyle(scrollContainer).direction === 'rtl'
43
+ });
44
+ }
45
+ // A single page can render many fixed toolbars at once (e.g. rich text nested several
46
+ // layers deep inside blocks), so this listener is delegated to `document` and shared
47
+ // across every toolbar instance instead of being attached per instance. A wheel listener
48
+ // that can call preventDefault() must be non-passive, and non-passive listeners make the
49
+ // browser treat their element as a "non-fast-scrollable region" that every scroll gesture
50
+ // on the page has to be checked against, even ones nowhere near it. Attaching one instance
51
+ // per toolbar would multiply that bookkeeping by however many toolbars happen to be on the
52
+ // page; a single delegated listener keeps that cost constant no matter how many there are.
53
+ let toolbarsListeningForWheelEvents = 0;
54
+ export function useRedirectVerticalWheelToHorizontalScroll() {
55
+ const $ = _c(1);
56
+ let t0;
57
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
58
+ t0 = [];
59
+ $[0] = t0;
60
+ } else {
61
+ t0 = $[0];
62
+ }
63
+ useEffect(_temp2, t0);
64
+ }
65
+ function _temp2() {
66
+ if (toolbarsListeningForWheelEvents === 0) {
67
+ document.addEventListener("wheel", redirectVerticalWheelToHorizontalScroll, {
68
+ passive: false
69
+ });
70
+ }
71
+ toolbarsListeningForWheelEvents = toolbarsListeningForWheelEvents + 1;
72
+ return _temp;
73
+ }
74
+ function _temp() {
75
+ toolbarsListeningForWheelEvents = toolbarsListeningForWheelEvents - 1;
76
+ if (toolbarsListeningForWheelEvents === 0) {
77
+ document.removeEventListener("wheel", redirectVerticalWheelToHorizontalScroll);
78
+ }
79
+ }
80
+ //# sourceMappingURL=horizontalWheelScroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizontalWheelScroll.js","names":["c","_c","useEffect","scrollContainerSelector","PIXELS_PER_LINE","getHorizontalScrollDelta","clientWidth","deltaMode","deltaY","isRightToLeft","deltaInPixels","redirectVerticalWheelToHorizontalScroll","event","isPrimarilyVerticalWheelInput","Math","abs","deltaX","target","Element","scrollContainer","closest","canScrollHorizontally","scrollWidth","preventDefault","scrollLeft","getComputedStyle","direction","toolbarsListeningForWheelEvents","useRedirectVerticalWheelToHorizontalScroll","$","t0","Symbol","for","_temp2","document","addEventListener","passive","_temp","removeEventListener"],"sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.ts"],"sourcesContent":["'use client'\nimport { useEffect } from 'react'\n\nconst scrollContainerSelector = '.fixed-toolbar__scroll'\n\n// A single notch on a classic (non-trackpad) wheel mouse reports deltaMode 1 with a\n// deltaY of only 1-3, so it must be scaled up to a pixel value that actually moves the scroll.\nconst PIXELS_PER_LINE = 40\n\nexport function getHorizontalScrollDelta({\n clientWidth,\n deltaMode,\n deltaY,\n isRightToLeft,\n}: {\n clientWidth: number\n deltaMode: number\n deltaY: number\n isRightToLeft: boolean\n}): number {\n const deltaInPixels =\n deltaMode === 1 ? deltaY * PIXELS_PER_LINE : deltaMode === 2 ? deltaY * clientWidth : deltaY\n\n // scrollLeft moves toward the inline-start edge for a given positive delta in RTL,\n // the opposite of LTR, so the delta must be negated to keep the scroll direction consistent.\n return isRightToLeft ? -deltaInPixels : deltaInPixels\n}\n\nfunction redirectVerticalWheelToHorizontalScroll(event: WheelEvent): void {\n const isPrimarilyVerticalWheelInput = Math.abs(event.deltaY) > Math.abs(event.deltaX)\n if (!isPrimarilyVerticalWheelInput) {\n return\n }\n\n const target = event.target\n if (!(target instanceof Element)) {\n return\n }\n\n const scrollContainer = target.closest<HTMLElement>(scrollContainerSelector)\n if (!scrollContainer) {\n return\n }\n\n const canScrollHorizontally = scrollContainer.scrollWidth > scrollContainer.clientWidth\n if (!canScrollHorizontally) {\n return\n }\n\n event.preventDefault()\n scrollContainer.scrollLeft += getHorizontalScrollDelta({\n clientWidth: scrollContainer.clientWidth,\n deltaMode: event.deltaMode,\n deltaY: event.deltaY,\n isRightToLeft: getComputedStyle(scrollContainer).direction === 'rtl',\n })\n}\n\n// A single page can render many fixed toolbars at once (e.g. rich text nested several\n// layers deep inside blocks), so this listener is delegated to `document` and shared\n// across every toolbar instance instead of being attached per instance. A wheel listener\n// that can call preventDefault() must be non-passive, and non-passive listeners make the\n// browser treat their element as a \"non-fast-scrollable region\" that every scroll gesture\n// on the page has to be checked against, even ones nowhere near it. Attaching one instance\n// per toolbar would multiply that bookkeeping by however many toolbars happen to be on the\n// page; a single delegated listener keeps that cost constant no matter how many there are.\nlet toolbarsListeningForWheelEvents = 0\n\nexport function useRedirectVerticalWheelToHorizontalScroll(): void {\n useEffect(() => {\n if (toolbarsListeningForWheelEvents === 0) {\n document.addEventListener('wheel', redirectVerticalWheelToHorizontalScroll, {\n passive: false,\n })\n }\n toolbarsListeningForWheelEvents += 1\n\n return () => {\n toolbarsListeningForWheelEvents -= 1\n if (toolbarsListeningForWheelEvents === 0) {\n document.removeEventListener('wheel', redirectVerticalWheelToHorizontalScroll)\n }\n }\n }, [])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,QAAQ;AAE1B,MAAMC,uBAAA,GAA0B;AAEhC;AACA;AACA,MAAMC,eAAA,GAAkB;AAExB,OAAO,SAASC,yBAAyB;EACvCC,WAAW;EACXC,SAAS;EACTC,MAAM;EACNC;AAAa,CAMd;EACC,MAAMC,aAAA,GACJH,SAAA,KAAc,IAAIC,MAAA,GAASJ,eAAA,GAAkBG,SAAA,KAAc,IAAIC,MAAA,GAASF,WAAA,GAAcE,MAAA;EAExF;EACA;EACA,OAAOC,aAAA,GAAgB,CAACC,aAAA,GAAgBA,aAAA;AAC1C;AAEA,SAASC,wCAAwCC,KAAiB;EAChE,MAAMC,6BAAA,GAAgCC,IAAA,CAAKC,GAAG,CAACH,KAAA,CAAMJ,MAAM,IAAIM,IAAA,CAAKC,GAAG,CAACH,KAAA,CAAMI,MAAM;EACpF,IAAI,CAACH,6BAAA,EAA+B;IAClC;EACF;EAEA,MAAMI,MAAA,GAASL,KAAA,CAAMK,MAAM;EAC3B,IAAI,EAAEA,MAAA,YAAkBC,OAAM,GAAI;IAChC;EACF;EAEA,MAAMC,eAAA,GAAkBF,MAAA,CAAOG,OAAO,CAAcjB,uBAAA;EACpD,IAAI,CAACgB,eAAA,EAAiB;IACpB;EACF;EAEA,MAAME,qBAAA,GAAwBF,eAAA,CAAgBG,WAAW,GAAGH,eAAA,CAAgBb,WAAW;EACvF,IAAI,CAACe,qBAAA,EAAuB;IAC1B;EACF;EAEAT,KAAA,CAAMW,cAAc;EACpBJ,eAAA,CAAgBK,UAAU,IAAInB,wBAAA,CAAyB;IACrDC,WAAA,EAAaa,eAAA,CAAgBb,WAAW;IACxCC,SAAA,EAAWK,KAAA,CAAML,SAAS;IAC1BC,MAAA,EAAQI,KAAA,CAAMJ,MAAM;IACpBC,aAAA,EAAegB,gBAAA,CAAiBN,eAAA,EAAiBO,SAAS,KAAK;EACjE;AACF;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,+BAAA,GAAkC;AAEtC,OAAO,SAAAC,2CAAA;EAAA,MAAAC,CAAA,GAAA5B,EAAA;EAAA,IAAA6B,EAAA;EAAA,IAAAD,CAAA,QAAAE,MAAA,CAAAC,GAAA;IAeFF,EAAA;IAAED,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAdL3B,SAAA,CAAA+B,MAAA,EAcGH,EAAE;AAAA;AAfA,SAAAG,OAAA;EAAA,IAECN,+BAAA,MAAoC;IACtCO,QAAA,CAAAC,gBAAA,CAA0B,SAAAxB,uCAAA;MAAAyB,OAAA;IAAA,CAE1B;EAAA;EAAAT,+BAAA,GAEFA,+BAAA,IAAmC;EAAA,OAAAU,KAAA;AAAA;AAPhC,SAAAA,MAAA;EAAAV,+BAAA,GAUDA,+BAAA,IAAmC;EAAA,IAC/BA,+BAAA,MAAoC;IACtCO,QAAA,CAAAI,mBAAA,CAA6B,SAAA3B,uCAAS;EAAA;AAAA","ignoreList":[]}
@@ -1,3 +1,37 @@
1
+ @property --fixed-toolbar-fade-start {
2
+ syntax: '<length>';
3
+ inherits: false;
4
+ initial-value: 0px;
5
+ }
6
+
7
+ @property --fixed-toolbar-fade-end {
8
+ syntax: '<length>';
9
+ inherits: false;
10
+ initial-value: 0px;
11
+ }
12
+
13
+ /*
14
+ * Drives the fade widths off the toolbar's own scroll position: fully opaque at rest,
15
+ * fading in on whichever edge still has scrolled-off content once it overflows.
16
+ * Unsupported browsers (no animation-timeline) simply keep the initial 0px fade, i.e. no fade at all.
17
+ */
18
+ @keyframes fixed-toolbar-scroll-fade {
19
+ 0% {
20
+ --fixed-toolbar-fade-start: 0px;
21
+ }
22
+ 10%,
23
+ 100% {
24
+ --fixed-toolbar-fade-start: var(--spacer-5);
25
+ }
26
+ 0%,
27
+ 90% {
28
+ --fixed-toolbar-fade-end: var(--spacer-5);
29
+ }
30
+ 100% {
31
+ --fixed-toolbar-fade-end: 0px;
32
+ }
33
+ }
34
+
1
35
  @layer payload-default {
2
36
  .fixed-toolbar.fixed-toolbar--hide {
3
37
  visibility: hidden;
@@ -7,10 +41,8 @@
7
41
 
8
42
  .fixed-toolbar {
9
43
  display: flex;
10
- flex-wrap: wrap;
11
44
  align-items: center;
12
45
  padding: 0 var(--spacer-2);
13
- gap: var(--spacer-2);
14
46
  vertical-align: middle;
15
47
  position: sticky;
16
48
  z-index: 2;
@@ -27,9 +59,9 @@
27
59
  content: ' ';
28
60
  position: absolute;
29
61
  top: 0;
30
- right: 0;
62
+ inset-inline-end: 0;
31
63
  bottom: 0;
32
- left: 0;
64
+ inset-inline-start: 0;
33
65
  border-radius: inherit;
34
66
  }
35
67
 
@@ -46,24 +78,64 @@
46
78
  border-radius: 0 0 var(--radius-medium) var(--radius-medium) !important;
47
79
 
48
80
  > .editor-scroller > .editor {
81
+ --content-editable-padding-block-start: var(--spacer-2);
82
+
49
83
  > .ContentEditable__root {
50
84
  padding-top: var(--spacer-2);
51
85
  }
52
86
  }
87
+ }
88
+ }
53
89
 
54
- > .editor-scroller > .editor > div > .LexicalEditorTheme__placeholder {
55
- top: var(--spacer-4);
56
- }
90
+ .fixed-toolbar__scroll {
91
+ display: flex;
92
+ flex: 1 1 auto;
93
+ flex-wrap: nowrap;
94
+ align-items: center;
95
+ gap: var(--spacer-2);
96
+ min-width: 0;
97
+ overflow-x: auto;
98
+ scrollbar-width: none;
99
+ -ms-overflow-style: none;
100
+ position: relative;
101
+ z-index: 1;
102
+ animation: fixed-toolbar-scroll-fade linear;
103
+ animation-timeline: scroll(self inline);
104
+ mask: linear-gradient(
105
+ to right,
106
+ transparent,
107
+ black var(--fixed-toolbar-fade-start),
108
+ black calc(100% - var(--fixed-toolbar-fade-end)),
109
+ transparent
110
+ );
111
+
112
+ &::-webkit-scrollbar {
113
+ display: none;
57
114
  }
58
115
  }
59
116
 
117
+ [dir='rtl'] .fixed-toolbar__scroll {
118
+ mask: linear-gradient(
119
+ to left,
120
+ transparent,
121
+ black var(--fixed-toolbar-fade-start),
122
+ black calc(100% - var(--fixed-toolbar-fade-end)),
123
+ transparent
124
+ );
125
+ }
126
+
60
127
  .fixed-toolbar__group {
61
128
  display: flex;
62
- flex-wrap: wrap;
129
+ flex-wrap: nowrap;
63
130
  align-items: center;
64
131
  gap: var(--spacer-2);
65
132
  align-self: stretch;
66
133
  z-index: 1;
134
+ flex-shrink: 0;
135
+
136
+ > * {
137
+ flex-shrink: 0;
138
+ }
67
139
 
68
140
  .divider {
69
141
  width: var(--stroke-width-small);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAMrE,OAAO,aAAa,CAAA;AA2PpB,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAAC,wBAAwB,CAuCxE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAQrE,OAAO,aAAa,CAAA;AAuQpB,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAAC,wBAAwB,CAuCxE,CAAA"}
@@ -4,13 +4,16 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
6
6
  import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
7
+ import { getTranslation } from '@payloadcms/translations';
7
8
  import { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui';
8
9
  import * as React from 'react';
9
10
  import { useMemo } from 'react';
10
11
  import { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js';
11
12
  import { ToolbarButton } from '../../../shared/ToolbarButton/index.js';
12
13
  import { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js';
14
+ import { useToolbarKeyboardNavigation } from '../../../shared/useToolbarKeyboardNavigation.js';
13
15
  import { useToolbarStates } from '../../../shared/useToolbarStates.js';
16
+ import { useRedirectVerticalWheelToHorizontalScroll } from './horizontalWheelScroll.js';
14
17
  import './index.css';
15
18
  function ButtonGroupItem({
16
19
  active,
@@ -125,10 +128,21 @@ function FixedToolbar({
125
128
  parentWithFixedToolbar
126
129
  }) {
127
130
  const currentToolbarRef = React.useRef(null);
131
+ const keyboardNavigationOptions = useMemo(() => ({
132
+ toolbarRef: currentToolbarRef
133
+ }), []);
134
+ const {
135
+ fieldProps
136
+ } = useEditorConfigContext();
137
+ const {
138
+ i18n
139
+ } = useTranslation();
140
+ useToolbarKeyboardNavigation(keyboardNavigationOptions);
128
141
  const isEditable = useLexicalEditable();
129
142
  const {
130
143
  y
131
144
  } = useScrollInfo();
145
+ useRedirectVerticalWheelToHorizontalScroll();
132
146
  const toolbarStates = useToolbarStates(editor, editorConfig?.features?.toolbarFixed?.groups);
133
147
  // Memoize the parent toolbar element
134
148
  const parentToolbarElem = useMemo(() => {
@@ -174,6 +188,7 @@ function FixedToolbar({
174
188
  }
175
189
  }, 50, [currentToolbarRef, parentToolbarElem, y]);
176
190
  return /*#__PURE__*/_jsx("div", {
191
+ "aria-label": getTranslation(fieldProps.field.label || fieldProps.path, i18n) || fieldProps.path,
177
192
  className: "fixed-toolbar",
178
193
  onFocus: event => {
179
194
  // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,
@@ -181,7 +196,10 @@ function FixedToolbar({
181
196
  event.stopPropagation();
182
197
  },
183
198
  ref: currentToolbarRef,
184
- children: isEditable && /*#__PURE__*/_jsx(React.Fragment, {
199
+ role: "toolbar",
200
+ children: isEditable && /*#__PURE__*/_jsx("div", {
201
+ className: "fixed-toolbar__scroll",
202
+ tabIndex: -1,
185
203
  children: editorConfig?.features && editorConfig.features?.toolbarFixed?.groups.map((group, i) => {
186
204
  return /*#__PURE__*/_jsx(ToolbarGroupComponent, {
187
205
  anchorElem: anchorElem,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","useScrollInfo","useThrottledEffect","useTranslation","React","useMemo","useEditorConfigContext","ToolbarButton","ToolbarDropdown","useToolbarStates","ButtonGroupItem","active","anchorElem","editor","enabled","item","Component","_jsx","key","ChildComponent","ToolbarGroupComponent","editorConfig","group","index","toolbarStates","i18n","fieldProps","featureClientSchemaMap","schemaPath","groupState","groupStates","get","DropdownIcon","type","undefined","activeItem","activeItems","dropdownLabel","length","t","count","label","substring","_jsxs","className","items","Icon","itemsContainerClassNames","map","itemState","itemStates","features","toolbarFixed","groups","FixedToolbar","clientProps","parentWithFixedToolbar","currentToolbarRef","useRef","isEditable","y","parentToolbarElem","disableIfParentHasFixedToolbar","parentEditorElem","editorContainerRef","current","sibling","previousElementSibling","classList","contains","currentToolbarElem","currentRect","getBoundingClientRect","parentRect","overlapping","bottom","top","remove","add","onFocus","event","stopPropagation","ref","Fragment","i","getParentEditorWithFixedToolbar","editorConfigContext","parentEditor","resolvedFeatureMap","has","FixedToolbarPlugin","t0","$","currentEditor","currentEditorConfig","applyToFocusedEditor","focusedEditor","t1","t2","Symbol","for","bb0","document","body"],"sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { EditorConfigContextType } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport type { SanitizedClientEditorConfig } from '../../../../../lexical/config/types.js'\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { ToolbarStates } from '../../../shared/useToolbarStates.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\nimport type { FixedToolbarFeatureProps } from '../../server/index.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport { useToolbarStates } from '../../../shared/useToolbarStates.js'\nimport './index.css'\n\nfunction ButtonGroupItem({\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}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton active={active} editor={editor} enabled={enabled} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n editorConfig,\n group,\n index,\n toolbarStates,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n group: ToolbarGroup\n index: number\n toolbarStates: ToolbarStates\n}): React.ReactNode {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n const groupState = toolbarStates.groupStates.get(group.key)\n\n const DropdownIcon = useMemo(() => {\n if (group.type !== 'dropdown') {\n return undefined\n }\n const activeItem = groupState?.activeItems?.[0]\n if (activeItem) {\n return activeItem.ChildComponent\n }\n return group.ChildComponent\n }, [group, groupState?.activeItems])\n\n const dropdownLabel = useMemo(() => {\n if (group.type !== 'dropdown') {\n return undefined\n }\n const activeItems = groupState?.activeItems\n if (!activeItems?.length) {\n return undefined\n }\n if (activeItems.length > 1) {\n return i18n.t('lexical:general:toolbarItemsActive', { count: activeItems.length })\n }\n const item = activeItems[0]!\n let label = item.key\n if (item.label) {\n label =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n if (label.length > 25) {\n label = label.substring(0, 25) + '...'\n }\n return label\n }, [group, groupState?.activeItems, i18n, featureClientSchemaMap, schemaPath])\n\n return (\n <div\n className={`fixed-toolbar__group fixed-toolbar__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length && groupState ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n groupState={groupState}\n Icon={DropdownIcon}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n />\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n const itemState = toolbarStates.itemStates.get(item.key)\n return (\n <ButtonGroupItem\n active={itemState?.active ?? false}\n anchorElem={anchorElem}\n editor={editor}\n enabled={itemState?.enabled ?? true}\n item={item}\n key={item.key}\n />\n )\n })\n : null}\n {index < editorConfig.features.toolbarFixed?.groups.length - 1 && <div className=\"divider\" />}\n </div>\n )\n}\n\nfunction FixedToolbar({\n anchorElem,\n clientProps,\n editor,\n editorConfig,\n parentWithFixedToolbar,\n}: {\n anchorElem: HTMLElement\n clientProps?: FixedToolbarFeatureProps\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n parentWithFixedToolbar: EditorConfigContextType | false\n}): React.ReactNode {\n const currentToolbarRef = React.useRef<HTMLDivElement>(null)\n const isEditable = useLexicalEditable()\n\n const { y } = useScrollInfo()\n\n const toolbarStates = useToolbarStates(editor, editorConfig?.features?.toolbarFixed?.groups)\n\n // Memoize the parent toolbar element\n const parentToolbarElem = useMemo(() => {\n if (!parentWithFixedToolbar || clientProps?.disableIfParentHasFixedToolbar) {\n return null\n }\n\n const parentEditorElem = parentWithFixedToolbar.editorContainerRef.current\n let sibling = parentEditorElem.previousElementSibling\n while (sibling) {\n if (sibling.classList.contains('fixed-toolbar')) {\n return sibling\n }\n sibling = sibling.previousElementSibling\n }\n return null\n }, [clientProps?.disableIfParentHasFixedToolbar, parentWithFixedToolbar])\n\n useThrottledEffect(\n () => {\n if (!parentToolbarElem) {\n // this also checks for clientProps?.disableIfParentHasFixedToolbar indirectly, see the parentToolbarElem useMemo\n return\n }\n const currentToolbarElem = currentToolbarRef.current\n if (!currentToolbarElem) {\n return\n }\n\n const currentRect = currentToolbarElem.getBoundingClientRect()\n const parentRect = parentToolbarElem.getBoundingClientRect()\n\n // we only need to check for vertical overlap\n const overlapping = !(\n currentRect.bottom < parentRect.top || currentRect.top > parentRect.bottom\n )\n\n if (overlapping) {\n currentToolbarElem.classList.remove('fixed-toolbar')\n currentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--overlapping')\n parentToolbarElem.classList.remove('fixed-toolbar')\n parentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--hide')\n } else {\n if (!currentToolbarElem.classList.contains('fixed-toolbar--overlapping')) {\n return\n }\n currentToolbarElem.classList.remove('fixed-toolbar--overlapping')\n currentToolbarElem.classList.add('fixed-toolbar')\n parentToolbarElem.classList.remove('fixed-toolbar--hide')\n parentToolbarElem.classList.add('fixed-toolbar')\n }\n },\n 50,\n [currentToolbarRef, parentToolbarElem, y],\n )\n\n return (\n <div\n className=\"fixed-toolbar\"\n onFocus={(event) => {\n // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,\n // the parent editor will be focused, and the child editor will lose focus.\n event.stopPropagation()\n }}\n ref={currentToolbarRef}\n >\n {isEditable && (\n <React.Fragment>\n {editorConfig?.features &&\n editorConfig.features?.toolbarFixed?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n editorConfig={editorConfig}\n group={group}\n index={i}\n key={group.key}\n toolbarStates={toolbarStates}\n />\n )\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n\nconst getParentEditorWithFixedToolbar = (\n editorConfigContext: EditorConfigContextType,\n): EditorConfigContextType | false => {\n if (editorConfigContext.parentEditor?.editorConfig) {\n if (editorConfigContext.parentEditor?.editorConfig.resolvedFeatureMap.has('toolbarFixed')) {\n return editorConfigContext.parentEditor\n } else {\n if (editorConfigContext.parentEditor) {\n return getParentEditorWithFixedToolbar(editorConfigContext.parentEditor)\n }\n }\n }\n return false\n}\n\nexport const FixedToolbarPlugin: PluginComponent<FixedToolbarFeatureProps> = ({ clientProps }) => {\n const [currentEditor] = useLexicalComposerContext()\n const editorConfigContext = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n if (!isEditable) {\n return null\n }\n\n const { editorConfig: currentEditorConfig } = editorConfigContext\n\n const editor = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editor || currentEditor\n : currentEditor\n\n const editorConfig = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editorConfig || currentEditorConfig\n : currentEditorConfig\n\n const parentWithFixedToolbar = getParentEditorWithFixedToolbar(editorConfigContext)\n\n if (clientProps?.disableIfParentHasFixedToolbar) {\n if (parentWithFixedToolbar) {\n return null\n }\n }\n\n if (!editorConfig?.features?.toolbarFixed?.groups?.length) {\n return null\n }\n\n return (\n <FixedToolbar\n anchorElem={document.body}\n clientProps={clientProps}\n editor={editor}\n editorConfig={editorConfig}\n parentWithFixedToolbar={parentWithFixedToolbar}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","getTranslation","useScrollInfo","useThrottledEffect","useTranslation","React","useMemo","useEditorConfigContext","ToolbarButton","ToolbarDropdown","useToolbarKeyboardNavigation","useToolbarStates","useRedirectVerticalWheelToHorizontalScroll","ButtonGroupItem","active","anchorElem","editor","enabled","item","Component","_jsx","key","ChildComponent","ToolbarGroupComponent","editorConfig","group","index","toolbarStates","i18n","fieldProps","featureClientSchemaMap","schemaPath","groupState","groupStates","get","DropdownIcon","type","undefined","activeItem","activeItems","dropdownLabel","length","t","count","label","substring","_jsxs","className","items","Icon","itemsContainerClassNames","map","itemState","itemStates","features","toolbarFixed","groups","FixedToolbar","clientProps","parentWithFixedToolbar","currentToolbarRef","useRef","keyboardNavigationOptions","toolbarRef","isEditable","y","parentToolbarElem","disableIfParentHasFixedToolbar","parentEditorElem","editorContainerRef","current","sibling","previousElementSibling","classList","contains","currentToolbarElem","currentRect","getBoundingClientRect","parentRect","overlapping","bottom","top","remove","add","field","path","onFocus","event","stopPropagation","ref","role","tabIndex","i","getParentEditorWithFixedToolbar","editorConfigContext","parentEditor","resolvedFeatureMap","has","FixedToolbarPlugin","t0","$","currentEditor","currentEditorConfig","applyToFocusedEditor","focusedEditor","t1","t2","Symbol","for","bb0","document","body"],"sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { EditorConfigContextType } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport type { SanitizedClientEditorConfig } from '../../../../../lexical/config/types.js'\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { ToolbarStates } from '../../../shared/useToolbarStates.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\nimport type { FixedToolbarFeatureProps } from '../../server/index.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport { useToolbarKeyboardNavigation } from '../../../shared/useToolbarKeyboardNavigation.js'\nimport { useToolbarStates } from '../../../shared/useToolbarStates.js'\nimport { useRedirectVerticalWheelToHorizontalScroll } from './horizontalWheelScroll.js'\nimport './index.css'\n\nfunction ButtonGroupItem({\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}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton active={active} editor={editor} enabled={enabled} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n editorConfig,\n group,\n index,\n toolbarStates,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n group: ToolbarGroup\n index: number\n toolbarStates: ToolbarStates\n}): React.ReactNode {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n const groupState = toolbarStates.groupStates.get(group.key)\n\n const DropdownIcon = useMemo(() => {\n if (group.type !== 'dropdown') {\n return undefined\n }\n const activeItem = groupState?.activeItems?.[0]\n if (activeItem) {\n return activeItem.ChildComponent\n }\n return group.ChildComponent\n }, [group, groupState?.activeItems])\n\n const dropdownLabel = useMemo(() => {\n if (group.type !== 'dropdown') {\n return undefined\n }\n const activeItems = groupState?.activeItems\n if (!activeItems?.length) {\n return undefined\n }\n if (activeItems.length > 1) {\n return i18n.t('lexical:general:toolbarItemsActive', { count: activeItems.length })\n }\n const item = activeItems[0]!\n let label = item.key\n if (item.label) {\n label =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n if (label.length > 25) {\n label = label.substring(0, 25) + '...'\n }\n return label\n }, [group, groupState?.activeItems, i18n, featureClientSchemaMap, schemaPath])\n\n return (\n <div\n className={`fixed-toolbar__group fixed-toolbar__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length && groupState ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n groupState={groupState}\n Icon={DropdownIcon}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n />\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n const itemState = toolbarStates.itemStates.get(item.key)\n return (\n <ButtonGroupItem\n active={itemState?.active ?? false}\n anchorElem={anchorElem}\n editor={editor}\n enabled={itemState?.enabled ?? true}\n item={item}\n key={item.key}\n />\n )\n })\n : null}\n {index < editorConfig.features.toolbarFixed?.groups.length - 1 && <div className=\"divider\" />}\n </div>\n )\n}\n\nfunction FixedToolbar({\n anchorElem,\n clientProps,\n editor,\n editorConfig,\n parentWithFixedToolbar,\n}: {\n anchorElem: HTMLElement\n clientProps?: FixedToolbarFeatureProps\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n parentWithFixedToolbar: EditorConfigContextType | false\n}): React.ReactNode {\n const currentToolbarRef = React.useRef<HTMLDivElement>(null)\n const keyboardNavigationOptions = useMemo(() => ({ toolbarRef: currentToolbarRef }), [])\n const { fieldProps } = useEditorConfigContext()\n const { i18n } = useTranslation()\n\n useToolbarKeyboardNavigation(keyboardNavigationOptions)\n\n const isEditable = useLexicalEditable()\n\n const { y } = useScrollInfo()\n\n useRedirectVerticalWheelToHorizontalScroll()\n\n const toolbarStates = useToolbarStates(editor, editorConfig?.features?.toolbarFixed?.groups)\n\n // Memoize the parent toolbar element\n const parentToolbarElem = useMemo(() => {\n if (!parentWithFixedToolbar || clientProps?.disableIfParentHasFixedToolbar) {\n return null\n }\n\n const parentEditorElem = parentWithFixedToolbar.editorContainerRef.current\n let sibling = parentEditorElem.previousElementSibling\n while (sibling) {\n if (sibling.classList.contains('fixed-toolbar')) {\n return sibling\n }\n sibling = sibling.previousElementSibling\n }\n return null\n }, [clientProps?.disableIfParentHasFixedToolbar, parentWithFixedToolbar])\n\n useThrottledEffect(\n () => {\n if (!parentToolbarElem) {\n // this also checks for clientProps?.disableIfParentHasFixedToolbar indirectly, see the parentToolbarElem useMemo\n return\n }\n const currentToolbarElem = currentToolbarRef.current\n if (!currentToolbarElem) {\n return\n }\n\n const currentRect = currentToolbarElem.getBoundingClientRect()\n const parentRect = parentToolbarElem.getBoundingClientRect()\n\n // we only need to check for vertical overlap\n const overlapping = !(\n currentRect.bottom < parentRect.top || currentRect.top > parentRect.bottom\n )\n\n if (overlapping) {\n currentToolbarElem.classList.remove('fixed-toolbar')\n currentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--overlapping')\n parentToolbarElem.classList.remove('fixed-toolbar')\n parentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--hide')\n } else {\n if (!currentToolbarElem.classList.contains('fixed-toolbar--overlapping')) {\n return\n }\n currentToolbarElem.classList.remove('fixed-toolbar--overlapping')\n currentToolbarElem.classList.add('fixed-toolbar')\n parentToolbarElem.classList.remove('fixed-toolbar--hide')\n parentToolbarElem.classList.add('fixed-toolbar')\n }\n },\n 50,\n [currentToolbarRef, parentToolbarElem, y],\n )\n\n return (\n <div\n aria-label={\n getTranslation(fieldProps.field.label || fieldProps.path, i18n) || fieldProps.path\n }\n className=\"fixed-toolbar\"\n onFocus={(event) => {\n // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,\n // the parent editor will be focused, and the child editor will lose focus.\n event.stopPropagation()\n }}\n ref={currentToolbarRef}\n role=\"toolbar\"\n >\n {isEditable && (\n <div className=\"fixed-toolbar__scroll\" tabIndex={-1}>\n {editorConfig?.features &&\n editorConfig.features?.toolbarFixed?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n editorConfig={editorConfig}\n group={group}\n index={i}\n key={group.key}\n toolbarStates={toolbarStates}\n />\n )\n })}\n </div>\n )}\n </div>\n )\n}\n\nconst getParentEditorWithFixedToolbar = (\n editorConfigContext: EditorConfigContextType,\n): EditorConfigContextType | false => {\n if (editorConfigContext.parentEditor?.editorConfig) {\n if (editorConfigContext.parentEditor?.editorConfig.resolvedFeatureMap.has('toolbarFixed')) {\n return editorConfigContext.parentEditor\n } else {\n if (editorConfigContext.parentEditor) {\n return getParentEditorWithFixedToolbar(editorConfigContext.parentEditor)\n }\n }\n }\n return false\n}\n\nexport const FixedToolbarPlugin: PluginComponent<FixedToolbarFeatureProps> = ({ clientProps }) => {\n const [currentEditor] = useLexicalComposerContext()\n const editorConfigContext = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n if (!isEditable) {\n return null\n }\n\n const { editorConfig: currentEditorConfig } = editorConfigContext\n\n const editor = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editor || currentEditor\n : currentEditor\n\n const editorConfig = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editorConfig || currentEditorConfig\n : currentEditorConfig\n\n const parentWithFixedToolbar = getParentEditorWithFixedToolbar(editorConfigContext)\n\n if (clientProps?.disableIfParentHasFixedToolbar) {\n if (parentWithFixedToolbar) {\n return null\n }\n }\n\n if (!editorConfig?.features?.toolbarFixed?.groups?.length) {\n return null\n }\n\n return (\n <FixedToolbar\n anchorElem={document.body}\n clientProps={clientProps}\n editor={editor}\n editorConfig={editorConfig}\n parentWithFixedToolbar={parentWithFixedToolbar}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,16 +8,12 @@
8
8
  vertical-align: middle;
9
9
  position: absolute;
10
10
  top: 0;
11
- left: 0;
11
+ inset-inline-start: 0;
12
12
  z-index: 2;
13
13
  opacity: 0;
14
14
  border-radius: var(--radius-medium);
15
- transition: opacity 0.2s;
16
15
  will-change: transform;
17
- box-shadow:
18
- 0px 1px 2px 1px rgba(0, 0, 0, 0.1),
19
- 0px 4px 16px 0px rgba(0, 0, 0, 0.2),
20
- 0px -4px 8px 0px rgba(0, 0, 0, 0.1);
16
+ box-shadow: var(--elevation-300-tooltip);
21
17
  }
22
18
 
23
19
  .inline-toolbar-popup__group {
@@ -32,12 +28,4 @@
32
28
  background-color: var(--lexical-border-color);
33
29
  }
34
30
  }
35
-
36
- html[data-theme='light'] {
37
- .inline-toolbar-popup {
38
- box-shadow:
39
- 0px 1px 2px 1px rgba(0, 0, 0, 0.05),
40
- 0px 4px 8px 0px rgba(0, 0, 0, 0.1);
41
- }
42
- }
43
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/inline/client/Toolbar/index.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAU3E,OAAO,aAAa,CAAA;AA6WpB,eAAO,MAAM,mBAAmB,EAAE,yBAAyB,CAAC,SAAS,CAIpE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/inline/client/Toolbar/index.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAW3E,OAAO,aAAa,CAAA;AA0XpB,eAAO,MAAM,mBAAmB,EAAE,yBAAyB,CAAC,SAAS,CAIpE,CAAA"}
@@ -5,7 +5,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
6
6
  import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
7
7
  import { mergeRegister } from '@lexical/utils';
8
- import { $getSelection, $isRangeSelection, $isTextNode, COMMAND_PRIORITY_LOW, getDOMSelection, SELECTION_CHANGE_COMMAND } from 'lexical';
8
+ import { getTranslation } from '@payloadcms/translations';
9
+ import { useTranslation } from '@payloadcms/ui';
10
+ import { $getSelection, $isRangeSelection, $isTextNode, $onUpdate, COMMAND_PRIORITY_LOW, getDOMSelection, SELECTION_CHANGE_COMMAND } from 'lexical';
9
11
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
10
12
  import * as React from 'react';
11
13
  import { createPortal } from 'react-dom';
@@ -14,6 +16,7 @@ import { getDOMRangeRect } from '../../../../../lexical/utils/getDOMRangeRect.js
14
16
  import { setFloatingElemPosition } from '../../../../../lexical/utils/setFloatingElemPosition.js';
15
17
  import { ToolbarButton } from '../../../shared/ToolbarButton/index.js';
16
18
  import { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js';
19
+ import { useToolbarKeyboardNavigation } from '../../../shared/useToolbarKeyboardNavigation.js';
17
20
  import { useToolbarStates } from '../../../shared/useToolbarStates.js';
18
21
  import './index.css';
19
22
  function ButtonGroupItem({
@@ -87,6 +90,16 @@ function InlineToolbar({
87
90
  editor
88
91
  }) {
89
92
  const floatingToolbarRef = useRef(null);
93
+ const keyboardNavigationOptions = useMemo(() => ({
94
+ toolbarRef: floatingToolbarRef
95
+ }), []);
96
+ const {
97
+ fieldProps
98
+ } = useEditorConfigContext();
99
+ const {
100
+ i18n
101
+ } = useTranslation();
102
+ useToolbarKeyboardNavigation(keyboardNavigationOptions);
90
103
  const caretRef = useRef(null);
91
104
  const {
92
105
  editorConfig
@@ -203,13 +216,15 @@ function InlineToolbar({
203
216
  $updateTextFormatFloatingToolbar();
204
217
  });
205
218
  }), editor.registerCommand(SELECTION_CHANGE_COMMAND, () => {
206
- $updateTextFormatFloatingToolbar();
219
+ $onUpdate(() => editor.read('latest', $updateTextFormatFloatingToolbar));
207
220
  return false;
208
221
  }, COMMAND_PRIORITY_LOW));
209
222
  }, [editor, $updateTextFormatFloatingToolbar]);
210
223
  return /*#__PURE__*/_jsxs("div", {
224
+ "aria-label": getTranslation(fieldProps.field.label || fieldProps.path, i18n) || fieldProps.path,
211
225
  className: "inline-toolbar-popup",
212
226
  ref: floatingToolbarRef,
227
+ role: "toolbar",
213
228
  children: [/*#__PURE__*/_jsx("div", {
214
229
  className: "caret",
215
230
  ref: caretRef