@payloadcms/richtext-lexical 4.0.0-canary.2 → 4.0.0-canary.21

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 (552) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/cell/rscEntry.d.ts.map +1 -1
  3. package/dist/cell/rscEntry.js +5 -5
  4. package/dist/cell/rscEntry.js.map +1 -1
  5. package/dist/exports/client/Field-F22V5L4V.js +2 -0
  6. package/dist/exports/client/Field-F22V5L4V.js.map +7 -0
  7. package/dist/exports/client/bundled.css +1 -1
  8. package/dist/exports/client/chunk-43E5QYAA.js +2 -0
  9. package/dist/exports/client/chunk-43E5QYAA.js.map +7 -0
  10. package/dist/exports/client/{chunk-CUFJGFNW.js → chunk-ESITTE3C.js} +2 -2
  11. package/dist/exports/client/{chunk-CUFJGFNW.js.map → chunk-ESITTE3C.js.map} +2 -2
  12. package/dist/exports/client/chunk-LN6VX25I.js +2 -0
  13. package/dist/exports/client/chunk-LN6VX25I.js.map +7 -0
  14. package/dist/exports/client/component-D5QLYS7W.js +2 -0
  15. package/dist/exports/client/component-D5QLYS7W.js.map +7 -0
  16. package/dist/exports/client/componentInline-H24N7GUG.js +2 -0
  17. package/dist/exports/client/index.d.ts +1 -2
  18. package/dist/exports/client/index.d.ts.map +1 -1
  19. package/dist/exports/client/index.js +27 -28
  20. package/dist/exports/client/index.js.map +4 -4
  21. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  22. package/dist/features/blockquote/client/index.js +2 -2
  23. package/dist/features/blockquote/client/index.js.map +1 -1
  24. package/dist/features/blockquote/server/index.js +2 -2
  25. package/dist/features/blockquote/server/index.js.map +1 -1
  26. package/dist/features/blocks/client/component/index.css +2 -2
  27. package/dist/features/blocks/client/component/index.js.map +1 -1
  28. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
  29. package/dist/features/blocks/client/componentInline/index.css +8 -8
  30. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  31. package/dist/features/blocks/client/getBlockImageComponent.d.ts +1 -1
  32. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +1 -1
  33. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -1
  34. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +1 -1
  35. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
  36. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +1 -1
  37. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -1
  38. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +5 -2
  39. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
  40. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +1 -2
  41. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  42. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  43. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  44. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  45. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.css +1 -1
  46. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +2 -4
  47. package/dist/features/blocks/premade/CodeBlock/Component/index.css +5 -5
  48. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  49. package/dist/features/blocks/server/index.js +2 -2
  50. package/dist/features/blocks/server/index.js.map +1 -1
  51. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +1 -1
  52. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  53. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  54. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  55. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  56. package/dist/features/blocks/server/schema.d.ts.map +1 -1
  57. package/dist/features/blocks/server/schema.js +3 -2
  58. package/dist/features/blocks/server/schema.js.map +1 -1
  59. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  60. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  61. package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
  62. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  63. package/dist/features/converters/lexicalToMarkdown/index.js +1 -1
  64. package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
  65. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  66. package/dist/features/converters/markdownToLexical/index.js +5 -2
  67. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  68. package/dist/features/debug/jsxConverter/client/plugin/style.css +2 -2
  69. package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
  70. package/dist/features/format/bold/feature.client.js +1 -1
  71. package/dist/features/format/bold/feature.client.js.map +1 -1
  72. package/dist/features/format/bold/feature.server.d.ts.map +1 -1
  73. package/dist/features/format/bold/feature.server.js +1 -1
  74. package/dist/features/format/bold/feature.server.js.map +1 -1
  75. package/dist/features/format/inlineCode/feature.client.js +1 -1
  76. package/dist/features/format/inlineCode/feature.client.js.map +1 -1
  77. package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
  78. package/dist/features/format/inlineCode/feature.server.js +1 -1
  79. package/dist/features/format/inlineCode/feature.server.js.map +1 -1
  80. package/dist/features/format/italic/feature.client.js +1 -1
  81. package/dist/features/format/italic/feature.client.js.map +1 -1
  82. package/dist/features/format/italic/feature.server.d.ts.map +1 -1
  83. package/dist/features/format/italic/feature.server.js +1 -1
  84. package/dist/features/format/italic/feature.server.js.map +1 -1
  85. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  86. package/dist/features/format/strikethrough/feature.client.js +1 -1
  87. package/dist/features/format/strikethrough/feature.client.js.map +1 -1
  88. package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
  89. package/dist/features/format/strikethrough/feature.server.js +1 -1
  90. package/dist/features/format/strikethrough/feature.server.js.map +1 -1
  91. package/dist/features/heading/client/index.js +2 -2
  92. package/dist/features/heading/client/index.js.map +1 -1
  93. package/dist/features/heading/markdownTransformer.d.ts +2 -2
  94. package/dist/features/heading/markdownTransformer.d.ts.map +1 -1
  95. package/dist/features/heading/markdownTransformer.js +6 -19
  96. package/dist/features/heading/markdownTransformer.js.map +1 -1
  97. package/dist/features/heading/server/index.js +2 -2
  98. package/dist/features/heading/server/index.js.map +1 -1
  99. package/dist/features/heading/server/schema.d.ts.map +1 -1
  100. package/dist/features/horizontalRule/client/index.js +2 -2
  101. package/dist/features/horizontalRule/client/index.js.map +1 -1
  102. package/dist/features/horizontalRule/client/markdownTransformer.d.ts +2 -2
  103. package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -1
  104. package/dist/features/horizontalRule/client/markdownTransformer.js +1 -1
  105. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
  106. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
  107. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  108. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +1 -1
  109. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  110. package/dist/features/horizontalRule/client/plugin/index.css +2 -2
  111. package/dist/features/horizontalRule/server/index.js +2 -2
  112. package/dist/features/horizontalRule/server/index.js.map +1 -1
  113. package/dist/features/horizontalRule/server/markdownTransformer.d.ts +2 -2
  114. package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -1
  115. package/dist/features/horizontalRule/server/markdownTransformer.js +1 -1
  116. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
  117. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
  118. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  119. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
  120. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  121. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  122. package/dist/features/link/client/index.js +2 -2
  123. package/dist/features/link/client/index.js.map +1 -1
  124. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  125. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +3 -3
  126. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  127. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +7 -12
  128. package/dist/features/link/markdownTransformer.d.ts +4 -4
  129. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  130. package/dist/features/link/markdownTransformer.js +2 -2
  131. package/dist/features/link/markdownTransformer.js.map +1 -1
  132. package/dist/features/link/markdownTransformer.spec.js +10 -10
  133. package/dist/features/link/markdownTransformer.spec.js.map +1 -1
  134. package/dist/features/link/nodes/AutoLinkNode.d.ts +1 -1
  135. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  136. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  137. package/dist/features/link/nodes/LinkNode.d.ts +1 -1
  138. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  139. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  140. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  141. package/dist/features/link/server/baseFields.js.map +1 -1
  142. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  143. package/dist/features/link/server/index.js +4 -4
  144. package/dist/features/link/server/index.js.map +1 -1
  145. package/dist/features/link/server/schema.d.ts.map +1 -1
  146. package/dist/features/link/server/schema.js +4 -2
  147. package/dist/features/link/server/schema.js.map +1 -1
  148. package/dist/features/link/server/validate.d.ts.map +1 -1
  149. package/dist/features/lists/checklist/client/index.js +1 -1
  150. package/dist/features/lists/checklist/client/index.js.map +1 -1
  151. package/dist/features/lists/checklist/server/index.js +1 -1
  152. package/dist/features/lists/checklist/server/index.js.map +1 -1
  153. package/dist/features/lists/orderedList/client/index.js +1 -1
  154. package/dist/features/lists/orderedList/client/index.js.map +1 -1
  155. package/dist/features/lists/orderedList/server/index.js +1 -1
  156. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  157. package/dist/features/lists/unorderedList/client/index.js +1 -1
  158. package/dist/features/lists/unorderedList/client/index.js.map +1 -1
  159. package/dist/features/lists/unorderedList/server/index.js +1 -1
  160. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  161. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  162. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  163. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  164. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  165. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  166. package/dist/features/relationship/server/schema.d.ts +3 -3
  167. package/dist/features/relationship/server/schema.d.ts.map +1 -1
  168. package/dist/features/relationship/server/schema.js +22 -5
  169. package/dist/features/relationship/server/schema.js.map +1 -1
  170. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -1
  171. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
  172. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
  173. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
  174. package/dist/features/table/client/index.d.ts.map +1 -0
  175. package/dist/features/{experimental_table → table}/client/index.js +2 -2
  176. package/dist/features/table/client/index.js.map +1 -0
  177. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  178. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  179. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  180. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  181. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  182. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  183. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  184. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  185. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  186. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  187. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  188. package/dist/features/table/client/utils/debounce.js.map +1 -0
  189. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  190. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  191. package/dist/features/table/markdownTransformer.d.ts +5 -0
  192. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  193. package/dist/features/{experimental_table → table}/markdownTransformer.js +6 -3
  194. package/dist/features/table/markdownTransformer.js.map +1 -0
  195. package/dist/features/table/server/index.d.ts +3 -0
  196. package/dist/features/table/server/index.d.ts.map +1 -0
  197. package/dist/features/{experimental_table → table}/server/index.js +6 -6
  198. package/dist/features/table/server/index.js.map +1 -0
  199. package/dist/features/table/server/schema.d.ts.map +1 -0
  200. package/dist/features/table/server/schema.js.map +1 -0
  201. package/dist/features/textState/feature.client.js +1 -1
  202. package/dist/features/textState/feature.client.js.map +1 -1
  203. package/dist/features/toolbars/fixed/client/Toolbar/index.css +4 -6
  204. package/dist/features/toolbars/inline/client/Toolbar/index.css +2 -14
  205. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  206. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +8 -14
  207. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  208. package/dist/features/toolbars/shared/useToolbarStates.d.ts.map +1 -1
  209. package/dist/features/toolbars/shared/useToolbarStates.js +3 -1
  210. package/dist/features/toolbars/shared/useToolbarStates.js.map +1 -1
  211. package/dist/features/typesClient.d.ts +1 -1
  212. package/dist/features/typesClient.d.ts.map +1 -1
  213. package/dist/features/typesClient.js.map +1 -1
  214. package/dist/features/typesServer.d.ts +3 -3
  215. package/dist/features/typesServer.d.ts.map +1 -1
  216. package/dist/features/typesServer.js.map +1 -1
  217. package/dist/features/upload/client/component/index.css +9 -9
  218. package/dist/features/upload/client/component/index.js +2 -1
  219. package/dist/features/upload/client/component/index.js.map +1 -1
  220. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  221. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  222. package/dist/features/upload/client/plugin/index.js +5 -5
  223. package/dist/features/upload/client/plugin/index.js.map +1 -1
  224. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  225. package/dist/features/upload/server/index.js +4 -4
  226. package/dist/features/upload/server/index.js.map +1 -1
  227. package/dist/features/upload/server/markdownTransformer.d.ts +2 -2
  228. package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -1
  229. package/dist/features/upload/server/markdownTransformer.js +1 -1
  230. package/dist/features/upload/server/markdownTransformer.js.map +1 -1
  231. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  232. package/dist/features/upload/server/schema.d.ts +4 -4
  233. package/dist/features/upload/server/schema.d.ts.map +1 -1
  234. package/dist/features/upload/server/schema.js +26 -6
  235. package/dist/features/upload/server/schema.js.map +1 -1
  236. package/dist/features/upload/server/validate.d.ts.map +1 -1
  237. package/dist/field/Diff/converters/unknown/index.css +1 -1
  238. package/dist/field/Field.d.ts.map +1 -1
  239. package/dist/field/Field.js +18 -15
  240. package/dist/field/Field.js.map +1 -1
  241. package/dist/field/ViewSelector.css +1 -1
  242. package/dist/field/bundled.css +1 -1
  243. package/dist/field/index.css +5 -9
  244. package/dist/field/index.js +1 -1
  245. package/dist/field/index.js.map +1 -1
  246. package/dist/field/rscEntry.d.ts.map +1 -1
  247. package/dist/field/rscEntry.js +2 -0
  248. package/dist/field/rscEntry.js.map +1 -1
  249. package/dist/i18n.d.ts.map +1 -1
  250. package/dist/i18n.js +68 -0
  251. package/dist/i18n.js.map +1 -1
  252. package/dist/index.d.ts +3 -3
  253. package/dist/index.d.ts.map +1 -1
  254. package/dist/index.js +7 -7
  255. package/dist/index.js.map +1 -1
  256. package/dist/lexical/LexicalEditor.css +18 -18
  257. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  258. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  259. package/dist/lexical/config/client/loader.js +5 -1
  260. package/dist/lexical/config/client/loader.js.map +1 -1
  261. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  262. package/dist/lexical/config/server/loader.d.ts +1 -1
  263. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  264. package/dist/lexical/config/server/loader.js +2 -2
  265. package/dist/lexical/config/server/loader.js.map +1 -1
  266. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  267. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  268. package/dist/lexical/config/server/sanitize.js +2 -2
  269. package/dist/lexical/config/server/sanitize.js.map +1 -1
  270. package/dist/lexical/plugins/DecoratorPlugin/index.css +1 -1
  271. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +16 -24
  272. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  273. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +27 -14
  274. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  275. package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
  276. package/dist/lexical/plugins/MarkdownShortcut/index.js +1 -1
  277. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
  278. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -1
  279. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +21 -0
  280. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -1
  281. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  282. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  283. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +1 -20
  284. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  285. package/dist/lexical/plugins/SlashMenu/index.css +1 -6
  286. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +1 -1
  287. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  288. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +4 -3
  289. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -1
  290. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  291. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  292. package/dist/lexical/theme/EditorTheme.css +18 -19
  293. package/dist/lexical/ui/ContentEditable.css +22 -17
  294. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts +17 -0
  295. package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts.map +1 -0
  296. package/dist/lexical/utils/markdown/convertFromMarkdownString.js +27 -0
  297. package/dist/lexical/utils/markdown/convertFromMarkdownString.js.map +1 -0
  298. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js +88 -0
  299. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js.map +1 -0
  300. package/dist/lexical/utils/markdown/createBlockNode.d.ts +2 -2
  301. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  302. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
  303. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts +25 -0
  304. package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts.map +1 -0
  305. package/dist/lexical/utils/markdown/normalizeMarkdown.js +91 -0
  306. package/dist/lexical/utils/markdown/normalizeMarkdown.js.map +1 -0
  307. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  308. package/dist/lexical/utils/point.d.ts.map +1 -1
  309. package/dist/lexical/utils/rect.d.ts.map +1 -1
  310. package/dist/lexical-proxy/@lexical-markdown.d.ts +1 -1
  311. package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -1
  312. package/dist/lexical-proxy/@lexical-markdown.js +1 -1
  313. package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
  314. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts +2 -0
  315. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -0
  316. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js +2 -0
  317. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -0
  318. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts +2 -0
  319. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -0
  320. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js +2 -0
  321. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -0
  322. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts +2 -0
  323. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -0
  324. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js +2 -0
  325. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -0
  326. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts +2 -0
  327. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -0
  328. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js +2 -0
  329. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -0
  330. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts +2 -0
  331. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -0
  332. package/dist/lexical-proxy/@lexical-react/ReactExtension.js +2 -0
  333. package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -0
  334. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts +2 -0
  335. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -0
  336. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js +2 -0
  337. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -0
  338. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts +2 -0
  339. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -0
  340. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js +2 -0
  341. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -0
  342. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts +2 -0
  343. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -0
  344. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js +2 -0
  345. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -0
  346. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts +2 -0
  347. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -0
  348. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js +2 -0
  349. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -0
  350. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts +2 -0
  351. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts.map +1 -0
  352. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js +2 -0
  353. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js.map +1 -0
  354. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts +2 -0
  355. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts.map +1 -0
  356. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js +2 -0
  357. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js.map +1 -0
  358. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts +2 -0
  359. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts.map +1 -0
  360. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js +2 -0
  361. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js.map +1 -0
  362. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts +2 -0
  363. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts.map +1 -0
  364. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js +2 -0
  365. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js.map +1 -0
  366. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts +2 -0
  367. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts.map +1 -0
  368. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js +2 -0
  369. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js.map +1 -0
  370. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts +2 -0
  371. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts.map +1 -0
  372. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js +2 -0
  373. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js.map +1 -0
  374. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  375. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
  376. package/dist/types/index.d.ts +3 -3
  377. package/dist/types/index.d.ts.map +1 -1
  378. package/dist/types/index.js.map +1 -1
  379. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -1
  380. package/dist/types/nodeTypes.d.ts +1 -1
  381. package/dist/types/nodeTypes.d.ts.map +1 -1
  382. package/dist/types/nodeTypes.js.map +1 -1
  383. package/dist/types/schema.d.ts.map +1 -1
  384. package/dist/types/schema.js +12 -5
  385. package/dist/types/schema.js.map +1 -1
  386. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  387. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  388. package/dist/utilities/buildInitialState.d.ts +2 -1
  389. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  390. package/dist/utilities/buildInitialState.js.map +1 -1
  391. package/dist/utilities/createServerFeature.d.ts +1 -1
  392. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  393. package/dist/utilities/createServerFeature.js +2 -2
  394. package/dist/utilities/createServerFeature.js.map +1 -1
  395. package/dist/utilities/editorConfigFactory.d.ts +6 -6
  396. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  397. package/dist/utilities/editorConfigFactory.js +9 -9
  398. package/dist/utilities/editorConfigFactory.js.map +1 -1
  399. package/dist/utilities/fieldsDrawer/index.css +0 -4
  400. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +1 -1
  401. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -1
  402. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  403. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  404. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
  405. package/dist/utilities/generateImportMap.d.ts +1 -1
  406. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  407. package/dist/utilities/generateSchemaMap.d.ts +1 -1
  408. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  409. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  410. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  411. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  412. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  413. package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
  414. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  415. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  416. package/dist/validate/index.d.ts.map +1 -1
  417. package/package.json +96 -27
  418. package/dist/exports/client/Field-G5Z2HM5Y.js +0 -2
  419. package/dist/exports/client/Field-G5Z2HM5Y.js.map +0 -7
  420. package/dist/exports/client/chunk-LH634DPU.js +0 -12
  421. package/dist/exports/client/chunk-LH634DPU.js.map +0 -7
  422. package/dist/exports/client/chunk-UD4DQ4AK.js +0 -2
  423. package/dist/exports/client/chunk-UD4DQ4AK.js.map +0 -7
  424. package/dist/exports/client/component-PHZQBOJE.js +0 -2
  425. package/dist/exports/client/component-PHZQBOJE.js.map +0 -7
  426. package/dist/exports/client/componentInline-DV4EGOWU.js +0 -2
  427. package/dist/features/blockquote/markdownTransformer.d.ts +0 -3
  428. package/dist/features/blockquote/markdownTransformer.d.ts.map +0 -1
  429. package/dist/features/blockquote/markdownTransformer.js +0 -33
  430. package/dist/features/blockquote/markdownTransformer.js.map +0 -1
  431. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  432. package/dist/features/experimental_table/client/index.js.map +0 -1
  433. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  434. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  435. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  436. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  437. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  438. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  439. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
  440. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
  441. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  442. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  443. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  444. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  445. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  446. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  447. package/dist/features/experimental_table/markdownTransformer.d.ts +0 -5
  448. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  449. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  450. package/dist/features/experimental_table/server/index.d.ts +0 -3
  451. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  452. package/dist/features/experimental_table/server/index.js.map +0 -1
  453. package/dist/features/experimental_table/server/schema.d.ts.map +0 -1
  454. package/dist/features/experimental_table/server/schema.js.map +0 -1
  455. package/dist/features/format/bold/markdownTransformers.d.ts +0 -6
  456. package/dist/features/format/bold/markdownTransformers.d.ts.map +0 -1
  457. package/dist/features/format/bold/markdownTransformers.js +0 -23
  458. package/dist/features/format/bold/markdownTransformers.js.map +0 -1
  459. package/dist/features/format/inlineCode/markdownTransformers.d.ts +0 -3
  460. package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +0 -1
  461. package/dist/features/format/inlineCode/markdownTransformers.js +0 -6
  462. package/dist/features/format/inlineCode/markdownTransformers.js.map +0 -1
  463. package/dist/features/format/italic/markdownTransformers.d.ts +0 -4
  464. package/dist/features/format/italic/markdownTransformers.d.ts.map +0 -1
  465. package/dist/features/format/italic/markdownTransformers.js +0 -12
  466. package/dist/features/format/italic/markdownTransformers.js.map +0 -1
  467. package/dist/features/format/strikethrough/markdownTransformers.d.ts +0 -3
  468. package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +0 -1
  469. package/dist/features/format/strikethrough/markdownTransformers.js +0 -6
  470. package/dist/features/format/strikethrough/markdownTransformers.js.map +0 -1
  471. package/dist/features/lists/checklist/markdownTransformers.d.ts +0 -3
  472. package/dist/features/lists/checklist/markdownTransformers.d.ts.map +0 -1
  473. package/dist/features/lists/checklist/markdownTransformers.js +0 -12
  474. package/dist/features/lists/checklist/markdownTransformers.js.map +0 -1
  475. package/dist/features/lists/orderedList/markdownTransformer.d.ts +0 -3
  476. package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +0 -1
  477. package/dist/features/lists/orderedList/markdownTransformer.js +0 -12
  478. package/dist/features/lists/orderedList/markdownTransformer.js.map +0 -1
  479. package/dist/features/lists/shared/markdown.d.ts +0 -6
  480. package/dist/features/lists/shared/markdown.d.ts.map +0 -1
  481. package/dist/features/lists/shared/markdown.js +0 -57
  482. package/dist/features/lists/shared/markdown.js.map +0 -1
  483. package/dist/features/lists/unorderedList/markdownTransformer.d.ts +0 -3
  484. package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +0 -1
  485. package/dist/features/lists/unorderedList/markdownTransformer.js +0 -12
  486. package/dist/features/lists/unorderedList/markdownTransformer.js.map +0 -1
  487. package/dist/lexical/utils/guard.d.ts +0 -5
  488. package/dist/lexical/utils/guard.d.ts.map +0 -1
  489. package/dist/lexical/utils/guard.js +0 -9
  490. package/dist/lexical/utils/guard.js.map +0 -1
  491. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +0 -2
  492. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +0 -1
  493. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +0 -2
  494. package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +0 -1
  495. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts +0 -14
  496. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +0 -1
  497. package/dist/packages/@lexical/markdown/MarkdownExport.js +0 -213
  498. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +0 -1
  499. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts +0 -19
  500. package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +0 -1
  501. package/dist/packages/@lexical/markdown/MarkdownImport.js +0 -198
  502. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +0 -1
  503. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts +0 -11
  504. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +0 -1
  505. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +0 -304
  506. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +0 -1
  507. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +0 -147
  508. package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +0 -1
  509. package/dist/packages/@lexical/markdown/MarkdownTransformers.js +0 -268
  510. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +0 -1
  511. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts +0 -22
  512. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +0 -1
  513. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +0 -91
  514. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +0 -1
  515. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts +0 -21
  516. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +0 -1
  517. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +0 -54
  518. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +0 -1
  519. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts +0 -18
  520. package/dist/packages/@lexical/markdown/importTextTransformers.d.ts.map +0 -1
  521. package/dist/packages/@lexical/markdown/importTextTransformers.js +0 -54
  522. package/dist/packages/@lexical/markdown/importTextTransformers.js.map +0 -1
  523. package/dist/packages/@lexical/markdown/index.d.ts +0 -29
  524. package/dist/packages/@lexical/markdown/index.d.ts.map +0 -1
  525. package/dist/packages/@lexical/markdown/index.js +0 -39
  526. package/dist/packages/@lexical/markdown/index.js.map +0 -1
  527. package/dist/packages/@lexical/markdown/utils.d.ts +0 -34
  528. package/dist/packages/@lexical/markdown/utils.d.ts.map +0 -1
  529. package/dist/packages/@lexical/markdown/utils.js +0 -267
  530. package/dist/packages/@lexical/markdown/utils.js.map +0 -1
  531. /package/dist/exports/client/{componentInline-DV4EGOWU.js.map → componentInline-H24N7GUG.js.map} +0 -0
  532. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  533. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +0 -0
  534. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
  535. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +0 -0
  536. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
  537. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
  538. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +0 -0
  539. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  540. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
  541. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +0 -0
  542. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
  543. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
  544. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
  545. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
  546. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +0 -0
  547. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  548. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  549. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  550. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
  551. /package/dist/features/{experimental_table → table}/server/schema.d.ts +0 -0
  552. /package/dist/features/{experimental_table → table}/server/schema.js +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lexical/utils/canUseDOM.ts", "../../../src/utilities/useRunDeprioritized.ts", "../../../src/field/RichTextViewProvider.tsx", "../../../src/lexical/utils/point.ts", "../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.tsx", "../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx", "../../../src/lexical/utils/rect.ts", "../../../src/lexical/nodes/index.ts", "../../../src/lexical/ui/icons/Add/index.tsx"],
4
+ "sourcesContent": ["'use client'\nexport const CAN_USE_DOM: boolean =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined'\n", "'use client'\nimport { useCallback, useRef } from 'react'\n\n/**\n * Simple hook that lets you run any callback once the main thread is idle\n * (via `requestIdleCallback`) or when that API is missing (Safari) - after the\n * next animation frame (`interactionResponse`).\n *\n * This will help you to avoid blocking the main thread with heavy work.\n *\n * The latest invocation wins: if a new run is queued before the previous one\n * executes, the previous task is cancelled.\n *\n * Usage:\n * ```ts\n * const runDeprioritized = useRunDeprioritized();\n *\n * const onEditorChange = (state: EditorState) => {\n * runDeprioritized(() => {\n * // heavy work here …\n * });\n * };\n * ```\n *\n * @param timeout Optional timeout (ms) for `requestIdleCallback`; defaults to 500 ms.\n * @returns A `runDeprioritized(fn)` helper.\n */\n\nexport function useRunDeprioritized(timeout = 500) {\n const idleHandleRef = useRef<number>(undefined)\n\n /**\n * Schedule `fn` and resolve when it has executed.\n */\n const runDeprioritized = useCallback(\n (fn: () => void): Promise<void> => {\n return new Promise<void>((resolve) => {\n const exec = () => {\n fn()\n resolve()\n }\n\n if ('requestIdleCallback' in window) {\n // Cancel any previously queued task so only the latest runs.\n if ('cancelIdleCallback' in window && idleHandleRef.current !== undefined) {\n // Cancel earlier scheduled value updates,\n // so that a CPU-limited event loop isn't flooded with n callbacks for n keystrokes into the rich text field,\n // but that there's only ever the latest one state update\n // dispatch task, to be executed with the next idle time,\n // or the deadline of 500ms.\n cancelIdleCallback(idleHandleRef.current)\n }\n // Schedule the state update to happen the next time the browser has sufficient resources,\n // or the latest after 500ms.\n idleHandleRef.current = requestIdleCallback(exec, { timeout })\n } else {\n // Safari fallback: rAF + setTimeout shim.\n void interactionResponse().then(exec)\n }\n })\n },\n [timeout],\n )\n\n return runDeprioritized\n}\n\nfunction interactionResponse(): Promise<unknown> {\n // Taken from https://github.com/vercel-labs/await-interaction-response/tree/main/packages/await-interaction-response/src\n\n return new Promise((resolve) => {\n setTimeout(resolve, 100) // Fallback for the case where the animation frame never fires.\n requestAnimationFrame(() => {\n setTimeout(resolve, 0)\n })\n })\n}\n", "'use client'\nimport { useControllableState } from '@payloadcms/ui'\nimport React, { createContext, use, useMemo } from 'react'\n\nimport type { LexicalEditorNodeMap, LexicalEditorViewMap } from '../types/index.js'\n\n/**\n * Context for managing richtext editor view state and inheritance.\n */\ntype RichTextViewContextType = {\n /**\n * The currently active view name (e.g., 'default', 'frontend', 'debug').\n */\n currentView: string\n /**\n * The resolved node map for the current view, containing rendering overrides for each node type.\n */\n currentViewMap?: LexicalEditorNodeMap\n /**\n * True if the current view was explicitly set (via prop) by this provider or an ancestor.\n * Used to distinguish intentional view settings from automatic defaults.\n */\n hasExplicitCurrentView?: boolean\n /**\n * If true, nested richtext editors will inherit this provider's currentView and views.\n */\n inheritable?: boolean\n /**\n * True if this provider's view is controlled by an ancestor provider — either because the\n * ancestor has a views map (view-map inheritance) or an explicit `currentView` prop.\n * When true, the ViewSelector is hidden.\n */\n isControlledByParent?: boolean\n /**\n * Function to programmatically change the current view.\n */\n setCurrentView: (view: string) => void\n /**\n * Map of all available views for this editor. Each key is a view name, each value contains\n * admin config, node overrides, and lexical config for that view.\n */\n views?: LexicalEditorViewMap\n}\n\nconst RichTextViewContext = createContext<RichTextViewContextType>({\n currentView: 'default',\n inheritable: false,\n setCurrentView: () => {},\n})\n\n/**\n * Provider for managing richtext editor view state and its inheritance.\n *\n * Handles two key scenarios:\n * 1. **Explicit view setting**: Wrap with `currentView` and `inheritable={true}` to force nested editors to a specific view\n * 2. **View map inheritance**: Nested editors inherit `views` from parents, allowing view switching across the hierarchy\n *\n * When a nested editor inherits from a parent, its ViewSelector is hidden because the view is controlled by an ancestor.\n *\n * @example\n * Force all nested richtext editors to use \"frontend\" view:\n * ```tsx\n * <RichTextViewProvider currentView=\"frontend\" inheritable={true}>\n * <MyForm /> {/* All richtext fields inside will use \"frontend\" view }\n * </RichTextViewProvider>\n * ```\n */\nexport const RichTextViewProvider: React.FC<{\n children: React.ReactNode\n currentView?: string\n inheritable?: boolean\n views?: LexicalEditorViewMap\n}> = (args) => {\n const parentContext = useRichTextView()\n\n // Track if this provider explicitly sets currentView (not just using the default)\n const hasOwnExplicitView = args.currentView !== undefined\n\n const isControlledByParent =\n parentContext.inheritable &&\n (Boolean(parentContext.views) || Boolean(parentContext.hasExplicitCurrentView))\n\n // This provider has explicit currentView if it sets one OR inherits one from parent\n const hasExplicitCurrentView =\n hasOwnExplicitView ||\n (parentContext.inheritable && Boolean(parentContext.hasExplicitCurrentView))\n\n const {\n children,\n currentView: currentViewFromProps,\n inheritable,\n views,\n } = {\n children: args.children,\n currentView: isControlledByParent ? parentContext.currentView : args.currentView,\n // Propagate inheritable flag through the hierarchy\n inheritable: parentContext.inheritable || args.inheritable,\n // Only inherit views if parent has a views map\n views: isControlledByParent && parentContext.views ? parentContext.views : args.views,\n }\n\n const [currentViewRaw, setCurrentView] = useControllableState(currentViewFromProps, 'default')\n\n // Normalize currentView: if the requested view doesn't exist in this editor's\n // views map, fall back to 'default'. This ensures all consumers of useRichTextView()\n // see a consistent currentView that actually exists\n const currentView =\n views && currentViewRaw !== 'default' && !views[currentViewRaw] ? 'default' : currentViewRaw\n\n const value = useMemo(() => {\n const currentViewMap = views ? views[currentView] : undefined\n return {\n currentView,\n currentViewMap,\n hasExplicitCurrentView,\n inheritable,\n isControlledByParent,\n setCurrentView,\n views,\n }\n }, [\n currentView,\n inheritable,\n hasExplicitCurrentView,\n isControlledByParent,\n setCurrentView,\n views,\n ])\n\n return <RichTextViewContext value={value}>{children}</RichTextViewContext>\n}\n\n/**\n * Access the current richtext editor view context.\n *\n * Returns the active view name, node overrides, inheritance state, and a function to switch views.\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { currentView, currentViewMap, isControlledByParent, setCurrentView } = useRichTextView()\n *\n * return (\n * <div>\n * <p>Active view: {currentView}</p>\n * {isControlledByParent && <p>View controlled by parent</p>}\n * {currentViewMap?.heading && <p>Custom heading renderer active</p>}\n * <button onClick={() => setCurrentView('frontend')}>Switch to frontend</button>\n * </div>\n * )\n * }\n * ```\n */\nexport function useRichTextView(): RichTextViewContextType {\n return use(RichTextViewContext)\n}\n", "'use client'\nexport class Point {\n private readonly _x: number\n\n private readonly _y: number\n\n constructor(x: number, y: number) {\n this._x = x\n this._y = y\n }\n\n public calcDeltaXTo({ x }: Point): number {\n return this.x - x\n }\n\n public calcDeltaYTo({ y }: Point): number {\n return this.y - y\n }\n\n public calcDistanceTo(point: Point): number {\n return Math.sqrt(Math.pow(this.calcDeltaXTo(point), 2) + Math.pow(this.calcDeltaYTo(point), 2))\n }\n\n public calcHorizontalDistanceTo(point: Point): number {\n return Math.abs(this.calcDeltaXTo(point))\n }\n\n public calcVerticalDistance(point: Point): number {\n return Math.abs(this.calcDeltaYTo(point))\n }\n\n public equals({ x, y }: Point): boolean {\n return this.x === x && this.y === y\n }\n\n get x(): number {\n return this._x\n }\n\n get y(): number {\n return this._y\n }\n}\n\nexport function isPoint(x: unknown): x is Point {\n return x instanceof Point\n}\n", "'use client'\nimport type { LexicalCommand, LexicalEditor, ParagraphNode, RangeSelection } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $isTextNode,\n COMMAND_PRIORITY_LOW,\n createCommand,\n getDOMSelection,\n} from 'lexical'\nimport { type JSX, useCallback, useEffect, useState } from 'react'\nimport * as React from 'react'\n\nimport type { MenuTextMatch, TriggerFn } from '../useMenuTriggerMatch.js'\nimport type { MenuRenderFn, MenuResolution } from './LexicalMenu.js'\nimport type { SlashMenuGroupInternal } from './types.js'\n\nimport { LexicalMenu, useMenuAnchorRef } from './LexicalMenu.js'\n\nexport const PUNCTUATION = '\\\\.,\\\\+\\\\*\\\\?\\\\$\\\\@\\\\|#{}\\\\(\\\\)\\\\^\\\\-\\\\[\\\\]\\\\\\\\/!%\\'\"~=<>_:;'\n\nfunction getTextUpToAnchor(selection: RangeSelection): null | string {\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return null\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return null\n }\n const anchorOffset = anchor.offset\n return anchorNode.getTextContent().slice(0, anchorOffset)\n}\n\nfunction tryToPositionRange(leadOffset: number, range: Range, editorWindow: Window): boolean {\n const domSelection = getDOMSelection(editorWindow)\n if (domSelection === null || !domSelection.isCollapsed) {\n return false\n }\n\n const anchorNode = domSelection.anchorNode\n const startOffset = leadOffset\n const endOffset = domSelection.anchorOffset\n\n if (anchorNode == null || endOffset == null) {\n return false\n }\n\n try {\n range.setStart(anchorNode, startOffset)\n // if endOffset is 0, positioning the range for when you click the plus button to open the slash menu will fial\n range.setEnd(anchorNode, endOffset > 1 ? endOffset : 1)\n } catch (error) {\n return false\n }\n\n return true\n}\n\nfunction getQueryTextForSearch(editor: LexicalEditor): string | undefined {\n let text\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!$isRangeSelection(selection)) {\n return\n }\n text = getTextUpToAnchor(selection)\n })\n return text\n}\n\nfunction isSelectionOnEntityBoundary(editor: LexicalEditor, offset: number): boolean {\n if (offset !== 0) {\n return false\n }\n return editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor\n const anchorNode = anchor.getNode()\n const prevSibling = anchorNode.getPreviousSibling()\n return $isTextNode(prevSibling) && prevSibling.isTextEntity()\n }\n return false\n })\n}\n\nfunction startTransition(callback: () => void) {\n if (React.startTransition) {\n React.startTransition(callback)\n } else {\n callback()\n }\n}\n\nexport { useDynamicPositioning } from './LexicalMenu.js'\n\nexport type TypeaheadMenuPluginProps = {\n anchorClassName?: string\n anchorElem: HTMLElement\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n onClose?: () => void\n onOpen?: (resolution: MenuResolution) => void\n onQueryChange: (matchingString: null | string) => void\n triggerFn: TriggerFn\n}\n\nexport const ENABLE_SLASH_MENU_COMMAND: LexicalCommand<{\n node: ParagraphNode\n}> = createCommand('ENABLE_SLASH_MENU_COMMAND')\n\nexport function LexicalTypeaheadMenuPlugin({\n anchorClassName,\n anchorElem,\n groups,\n menuRenderFn,\n onClose,\n onOpen,\n onQueryChange,\n triggerFn,\n}: TypeaheadMenuPluginProps): JSX.Element | null {\n const [editor] = useLexicalComposerContext()\n const [resolution, setResolution] = useState<MenuResolution | null>(null)\n const anchorElementRef = useMenuAnchorRef(anchorElem, resolution, setResolution, anchorClassName)\n\n const closeTypeahead = useCallback(() => {\n setResolution(null)\n if (onClose != null && resolution !== null) {\n onClose()\n }\n }, [onClose, resolution])\n\n const openTypeahead = useCallback(\n (res: MenuResolution) => {\n setResolution(res)\n if (onOpen != null && resolution === null) {\n onOpen(res)\n }\n },\n [onOpen, resolution],\n )\n\n // This is mainly used for the AddBlockHandlePlugin, so that the slash menu can be opened from there\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n ENABLE_SLASH_MENU_COMMAND,\n ({ node }) => {\n editor.getEditorState().read(() => {\n const match: MenuTextMatch = {\n leadOffset: 0,\n matchingString: '',\n replaceableString: '',\n }\n if (!isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n if (node !== null) {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n }\n\n return\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, openTypeahead])\n\n useEffect(() => {\n const updateListener = () => {\n editor.getEditorState().read(() => {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n const selection = $getSelection()\n const text = getQueryTextForSearch(editor)\n\n if (\n !$isRangeSelection(selection) ||\n !selection.isCollapsed() ||\n text === undefined ||\n range === null\n ) {\n closeTypeahead()\n return\n }\n\n const match = triggerFn({ editor, query: text })\n onQueryChange(match ? match.matchingString : null)\n\n if (match !== null && !isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n return\n }\n }\n closeTypeahead()\n })\n }\n\n const removeUpdateListener = editor.registerUpdateListener(updateListener)\n\n return () => {\n removeUpdateListener()\n }\n }, [editor, triggerFn, onQueryChange, resolution, closeTypeahead, openTypeahead])\n\n return anchorElementRef.current === null || resolution === null || editor === null ? null : (\n <LexicalMenu\n anchorElementRef={anchorElementRef}\n close={closeTypeahead}\n editor={editor}\n groups={groups}\n menuRenderFn={menuRenderFn}\n resolution={resolution}\n shouldSplitNodeWithQuery\n />\n )\n}\n\nexport type { MenuRenderFn, MenuResolution, MenuTextMatch, TriggerFn }\n", "'use client'\nimport type { BaseSelection, LexicalCommand, LexicalEditor, TextNode } from 'lexical'\nimport type { JSX, ReactPortal, RefObject } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { getScrollParent, mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $setSelection,\n COMMAND_PRIORITY_LOW,\n COMMAND_PRIORITY_NORMAL,\n createCommand,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n KEY_TAB_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport type { MenuTextMatch } from '../useMenuTriggerMatch.js'\nimport type { SlashMenuGroupInternal, SlashMenuItem, SlashMenuItemInternal } from './types.js'\n\nimport { CAN_USE_DOM } from '../../../utils/canUseDOM.js'\n\nexport type MenuResolution = {\n getRect: () => DOMRect\n match?: MenuTextMatch\n}\n\nconst baseClass = 'slash-menu-popup'\n\nexport type MenuRenderFn = (\n anchorElementRef: RefObject<HTMLElement | null>,\n itemProps: {\n groups: Array<SlashMenuGroupInternal>\n selectedItemKey: null | string\n selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void\n setSelectedItemKey: (itemKey: string) => void\n },\n matchingString: null | string,\n) => JSX.Element | null | ReactPortal\n\nconst scrollIntoViewIfNeeded = (target: HTMLElement) => {\n const typeaheadContainerNode = document.getElementById('slash-menu')\n if (!typeaheadContainerNode) {\n return\n }\n\n const typeaheadRect = typeaheadContainerNode.getBoundingClientRect()\n\n if (typeaheadRect.top + typeaheadRect.height > window.innerHeight) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n if (typeaheadRect.top < 0) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n target.scrollIntoView({ block: 'nearest' })\n}\n\n/**\n * Walk backwards along user input and forward through entity title to try\n * and replace more of the user's text with entity.\n */\nfunction getFullMatchOffset(documentText: string, entryText: string, offset: number) {\n let triggerOffset = offset\n for (let i = triggerOffset; i <= entryText.length; i++) {\n if (documentText.substring(documentText.length - i) === entryText.substring(0, i)) {\n triggerOffset = i\n }\n }\n return triggerOffset\n}\n\n/**\n * Split Lexical TextNode and return a new TextNode only containing matched text.\n * Common use cases include: removing the node, replacing with a new node.\n */\nfunction $splitNodeContainingQuery(match: MenuTextMatch): TextNode | undefined {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) || !selection.isCollapsed()) {\n return\n }\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return\n }\n const selectionOffset = anchor.offset\n const textContent = anchorNode.getTextContent().slice(0, selectionOffset)\n const characterOffset = match.replaceableString.length\n const queryOffset = getFullMatchOffset(textContent, match.matchingString, characterOffset)\n const startOffset = selectionOffset - queryOffset\n if (startOffset < 0) {\n return\n }\n let newNode\n if (startOffset === 0) {\n ;[newNode] = anchorNode.splitText(selectionOffset)\n } else {\n ;[, newNode] = anchorNode.splitText(startOffset, selectionOffset)\n }\n\n return newNode\n}\n\nfunction isTriggerVisibleInNearestScrollContainer(\n targetElement: HTMLElement,\n containerElement: HTMLElement,\n): boolean {\n const tRect = targetElement.getBoundingClientRect()\n const cRect = containerElement.getBoundingClientRect()\n return tRect.top > cRect.top && tRect.top < cRect.bottom\n}\n\n// Reposition the menu on scroll, window resize, and element resize.\nexport function useDynamicPositioning(\n resolution: MenuResolution | null,\n targetElementRef: RefObject<HTMLElement | null>,\n onReposition: () => void,\n onVisibilityChange?: (isInView: boolean) => void,\n) {\n const [editor] = useLexicalComposerContext()\n useEffect(() => {\n const targetElement = targetElementRef.current\n if (targetElement != null && resolution != null) {\n const rootElement = editor.getRootElement()\n const rootScrollParent =\n rootElement != null ? getScrollParent(rootElement, false) : document.body\n let ticking = false\n let previousIsInView = isTriggerVisibleInNearestScrollContainer(\n targetElement,\n rootScrollParent,\n )\n const handleScroll = function () {\n if (!ticking) {\n window.requestAnimationFrame(function () {\n onReposition()\n ticking = false\n })\n ticking = true\n }\n const isInView = isTriggerVisibleInNearestScrollContainer(targetElement, rootScrollParent)\n if (isInView !== previousIsInView) {\n previousIsInView = isInView\n if (onVisibilityChange != null) {\n onVisibilityChange(isInView)\n }\n }\n }\n const resizeObserver = new ResizeObserver(onReposition)\n window.addEventListener('resize', onReposition)\n document.addEventListener('scroll', handleScroll, {\n capture: true,\n passive: true,\n })\n resizeObserver.observe(targetElement)\n return () => {\n resizeObserver.disconnect()\n window.removeEventListener('resize', onReposition)\n document.removeEventListener('scroll', handleScroll, true)\n }\n }\n }, [editor, onVisibilityChange, onReposition, resolution, targetElementRef])\n}\n\nexport const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{\n index: number\n item: SlashMenuItemInternal\n}> = createCommand('SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND')\n\nexport function LexicalMenu({\n anchorElementRef,\n close,\n editor,\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n groups,\n menuRenderFn,\n resolution,\n shouldSplitNodeWithQuery = false,\n}: {\n anchorElementRef: RefObject<HTMLElement | null>\n close: () => void\n editor: LexicalEditor\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n resolution: MenuResolution\n shouldSplitNodeWithQuery?: boolean\n}): JSX.Element | null {\n const [selectedItemKey, setSelectedItemKey] = useState<null | string>(null)\n\n const matchingString = (resolution.match && resolution.match.matchingString) || ''\n\n const updateSelectedItem = useCallback(\n (item: SlashMenuItem) => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.setAttribute('aria-activedescendant', `${baseClass}__item-${item.key}`)\n setSelectedItemKey(item.key)\n }\n },\n [editor],\n )\n\n const setSelectedItemKeyToFirstMatchingItem = useCallback(() => {\n // set selected item to the first of the matching ones\n if (groups !== null && matchingString != null) {\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n const allItems = groups.flatMap((group) => group.items)\n\n if (allItems.length) {\n const firstMatchingItem = allItems[0]!\n updateSelectedItem(firstMatchingItem)\n }\n }\n }, [groups, updateSelectedItem, matchingString])\n\n useEffect(() => {\n setSelectedItemKeyToFirstMatchingItem()\n }, [matchingString, setSelectedItemKeyToFirstMatchingItem])\n\n const selectItemAndCleanUp = useCallback(\n (selectedItem: SlashMenuItem) => {\n close()\n\n editor.update(() => {\n const textNodeContainingQuery =\n resolution.match != null && shouldSplitNodeWithQuery\n ? $splitNodeContainingQuery(resolution.match)\n : null\n\n if (textNodeContainingQuery) {\n textNodeContainingQuery.remove()\n }\n })\n\n setTimeout(() => {\n // Needed in Firefox. See https://github.com/payloadcms/payload/issues/10724\n let selection: BaseSelection | undefined\n editor.read(() => {\n selection = $getSelection()?.clone()\n })\n editor.update(() => {\n if (selection) {\n $setSelection(selection)\n }\n })\n\n selectedItem.onSelect({\n editor,\n queryString: resolution.match ? resolution.match.matchingString : '',\n })\n }, 0)\n },\n [editor, shouldSplitNodeWithQuery, resolution.match, close],\n )\n\n useEffect(() => {\n return () => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.removeAttribute('aria-activedescendant')\n }\n }\n }, [editor])\n\n useLayoutEffect(() => {\n if (groups === null) {\n setSelectedItemKey(null)\n } else if (selectedItemKey === null) {\n setSelectedItemKeyToFirstMatchingItem()\n }\n }, [groups, selectedItemKey, updateSelectedItem, setSelectedItemKeyToFirstMatchingItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND,\n ({ item }) => {\n if (item.ref && item.ref.current != null) {\n scrollIntoViewIfNeeded(item.ref.current)\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, updateSelectedItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_DOWN_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== allItems.length - 1 ? selectedIndex + 1 : 0\n\n const newSelectedItem = allItems[newSelectedIndex]\n if (!newSelectedItem) {\n return false\n }\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n editor.dispatchCommand(SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND, {\n index: newSelectedIndex,\n item: newSelectedItem,\n })\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_UP_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== 0 ? selectedIndex - 1 : allItems.length - 1\n\n const newSelectedItem = allItems[newSelectedIndex]\n if (!newSelectedItem) {\n return false\n }\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n scrollIntoViewIfNeeded(newSelectedItem.ref.current)\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ESCAPE_COMMAND,\n (payload) => {\n const event = payload\n event.preventDefault()\n event.stopImmediatePropagation()\n close()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_TAB_COMMAND,\n (payload) => {\n const event = payload\n\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n event.preventDefault()\n event.stopImmediatePropagation()\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand(\n KEY_ENTER_COMMAND,\n (event: KeyboardEvent | null) => {\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n if (event !== null) {\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n )\n }, [selectItemAndCleanUp, close, editor, groups, selectedItemKey, updateSelectedItem])\n\n const listItemProps = useMemo(\n () => ({\n groups,\n selectedItemKey,\n selectItemAndCleanUp,\n setSelectedItemKey,\n }),\n [selectItemAndCleanUp, selectedItemKey, groups],\n )\n\n return menuRenderFn(\n anchorElementRef,\n listItemProps,\n resolution.match ? resolution.match.matchingString : '',\n )\n}\n\nfunction setContainerDivAttributes(containerDiv: HTMLElement, className?: string) {\n if (className != null) {\n containerDiv.className = className\n }\n containerDiv.setAttribute('aria-label', 'Slash menu')\n containerDiv.setAttribute('role', 'listbox')\n containerDiv.style.display = 'block'\n containerDiv.style.position = 'absolute'\n}\n\nexport function useMenuAnchorRef(\n anchorElem: HTMLElement,\n resolution: MenuResolution | null,\n setResolution: (r: MenuResolution | null) => void,\n className?: string,\n): RefObject<HTMLElement | null> {\n const [editor] = useLexicalComposerContext()\n const anchorElementRef = useRef<HTMLElement | null>(\n CAN_USE_DOM ? document.createElement('div') : null,\n )\n const positionMenu = useCallback(() => {\n if (anchorElementRef.current === null || parent === undefined) {\n return\n }\n const rootElement = editor.getRootElement()\n const containerDiv = anchorElementRef.current\n\n const VERTICAL_OFFSET = 32\n\n const menuEle = containerDiv.firstChild as Element\n if (rootElement !== null && resolution !== null) {\n const { height, width } = resolution.getRect()\n let { left, top } = resolution.getRect()\n\n const rawTop = top\n top -= anchorElem.getBoundingClientRect().top + window.scrollY\n left -= anchorElem.getBoundingClientRect().left + window.scrollX\n containerDiv.style.left = `${left + window.scrollX}px`\n containerDiv.style.height = `${height}px`\n containerDiv.style.width = `${width}px`\n if (menuEle !== null) {\n const menuRect = menuEle.getBoundingClientRect()\n const menuHeight = menuRect.height\n const menuWidth = menuRect.width\n\n const rootElementRect = rootElement.getBoundingClientRect()\n\n const isRTL = document.dir === 'rtl' || document.documentElement.dir === 'rtl'\n const anchorRect = anchorElem.getBoundingClientRect()\n const leftBoundary = Math.max(0, rootElementRect.left)\n\n if (!isRTL && left + menuWidth > rootElementRect.right) {\n containerDiv.style.left = `${rootElementRect.right - menuWidth + window.scrollX}px`\n } else if (isRTL && menuRect.left < leftBoundary) {\n const newLeft = leftBoundary + menuWidth - anchorRect.left\n containerDiv.style.left = `${newLeft + window.scrollX}px`\n }\n\n const wouldGoOffBottomOfScreen = rawTop + menuHeight + VERTICAL_OFFSET > window.innerHeight\n //const wouldGoOffBottomOfContainer = top + menuHeight > rootElementRect.bottom\n const wouldGoOffTopOfScreen = rawTop < 0\n\n // Position slash menu above the cursor instead of below (default) if it would otherwise go off the bottom of the screen.\n if (wouldGoOffBottomOfScreen && !wouldGoOffTopOfScreen) {\n const margin = 24\n containerDiv.style.top = `${\n top + VERTICAL_OFFSET - menuHeight + window.scrollY - (height + margin)\n }px`\n } else {\n containerDiv.style.top = `${top + window.scrollY + VERTICAL_OFFSET}px`\n }\n }\n\n if (!containerDiv.isConnected) {\n setContainerDivAttributes(containerDiv, className)\n anchorElem.append(containerDiv)\n }\n containerDiv.setAttribute('id', 'slash-menu')\n anchorElementRef.current = containerDiv\n rootElement.setAttribute('aria-controls', 'slash-menu')\n }\n }, [editor, resolution, className, anchorElem])\n\n useEffect(() => {\n const rootElement = editor.getRootElement()\n if (resolution !== null) {\n positionMenu()\n return () => {\n if (rootElement !== null) {\n rootElement.removeAttribute('aria-controls')\n }\n\n const containerDiv = anchorElementRef.current\n if (containerDiv !== null && containerDiv.isConnected) {\n containerDiv.remove()\n containerDiv.removeAttribute('id')\n }\n }\n }\n }, [editor, positionMenu, resolution])\n\n const onVisibilityChange = useCallback(\n (isInView: boolean) => {\n if (resolution !== null) {\n if (!isInView) {\n setResolution(null)\n }\n }\n },\n [resolution, setResolution],\n )\n\n useDynamicPositioning(resolution, anchorElementRef, positionMenu, onVisibilityChange)\n\n return anchorElementRef\n}\n", "'use client'\nimport { isPoint, type Point } from './point.js'\n\ninterface ContainsPointReturn {\n reason: {\n isOnBottomSide: boolean\n isOnLeftSide: boolean\n isOnRightSide: boolean\n isOnTopSide: boolean\n }\n result: boolean\n}\n\nexport class Rect {\n private readonly _bottom: number\n\n private readonly _left: number\n\n private readonly _right: number\n\n private readonly _top: number\n\n constructor(left: number, top: number, right: number, bottom: number) {\n const [physicTop, physicBottom] = top <= bottom ? [top, bottom] : [bottom, top]\n\n const [physicLeft, physicRight] = left <= right ? [left, right] : [right, left]\n\n this._top = physicTop\n this._right = physicRight\n this._left = physicLeft\n this._bottom = physicBottom\n }\n\n static fromDOM(dom: HTMLElement): Rect {\n const { height, left, top, width } = dom.getBoundingClientRect()\n return Rect.fromLWTH(left, width, top, height)\n }\n\n static fromDOMRect(domRect: DOMRect): Rect {\n const { height, left, top, width } = domRect\n return Rect.fromLWTH(left, width, top, height)\n }\n\n static fromLTRB(left: number, top: number, right: number, bottom: number): Rect {\n return new Rect(left, top, right, bottom)\n }\n\n static fromLWTH(left: number, width: number, top: number, height: number): Rect {\n return new Rect(left, top, left + width, top + height)\n }\n\n static fromPoints(startPoint: Point, endPoint: Point): Rect {\n const { x: left, y: top } = startPoint\n const { x: right, y: bottom } = endPoint\n return Rect.fromLTRB(left, top, right, bottom)\n }\n\n public contains({ x, y }: Point): ContainsPointReturn\n\n public contains({ bottom, left, right, top }: Rect): boolean\n\n public contains(target: Point | Rect): boolean | ContainsPointReturn {\n if (isPoint(target)) {\n const { x, y } = target\n\n const isOnTopSide = y < this._top\n const isOnBottomSide = y > this._bottom\n const isOnLeftSide = x < this._left\n const isOnRightSide = x > this._right\n\n const result = !isOnTopSide && !isOnBottomSide && !isOnLeftSide && !isOnRightSide\n\n return {\n reason: {\n isOnBottomSide,\n isOnLeftSide,\n isOnRightSide,\n isOnTopSide,\n },\n result,\n }\n }\n const { bottom, left, right, top } = target\n\n return (\n top >= this._top &&\n top <= this._bottom &&\n bottom >= this._top &&\n bottom <= this._bottom &&\n left >= this._left &&\n left <= this._right &&\n right >= this._left &&\n right <= this._right\n )\n }\n\n public distanceFromPoint(point: Point): {\n distance: number\n isOnBottomSide: boolean\n isOnLeftSide: boolean\n isOnRightSide: boolean\n isOnTopSide: boolean\n } {\n const containsResult = this.contains(point)\n if (containsResult.result) {\n return {\n distance: 0,\n isOnBottomSide: containsResult.reason.isOnBottomSide,\n isOnLeftSide: containsResult.reason.isOnLeftSide,\n isOnRightSide: containsResult.reason.isOnRightSide,\n isOnTopSide: containsResult.reason.isOnTopSide,\n }\n }\n\n let dx = 0 // Horizontal distance to the closest edge\n let dy = 0 // Vertical distance to the closest edge\n\n // If the point is to the left of the rectangle\n if (point.x < this._left) {\n dx = this._left - point.x\n }\n // If the point is to the right of the rectangle\n else if (point.x > this._right) {\n dx = point.x - this._right\n }\n\n // If the point is above the rectangle\n if (point.y < this._top) {\n dy = this._top - point.y\n }\n // If the point is below the rectangle\n else if (point.y > this._bottom) {\n dy = point.y - this._bottom\n }\n\n // Use the Pythagorean theorem to calculate the distance\n return {\n distance: Math.sqrt(dx * dx + dy * dy),\n isOnBottomSide: point.y > this._bottom,\n isOnLeftSide: point.x < this._left,\n isOnRightSide: point.x > this._right,\n isOnTopSide: point.y < this._top,\n }\n }\n\n public equals({ bottom, left, right, top }: Rect): boolean {\n return (\n top === this._top && bottom === this._bottom && left === this._left && right === this._right\n )\n }\n\n public generateNewRect({\n bottom = this.bottom,\n left = this.left,\n right = this.right,\n top = this.top,\n }): Rect {\n return new Rect(left, top, right, bottom)\n }\n\n public intersectsWith(rect: Rect): boolean {\n const { height: h1, left: x1, top: y1, width: w1 } = rect\n const { height: h2, left: x2, top: y2, width: w2 } = this\n const maxX = x1 + w1 >= x2 + w2 ? x1 + w1 : x2 + w2\n const maxY = y1 + h1 >= y2 + h2 ? y1 + h1 : y2 + h2\n const minX = x1 <= x2 ? x1 : x2\n const minY = y1 <= y2 ? y1 : y2\n return maxX - minX <= w1 + w2 && maxY - minY <= h1 + h2\n }\n\n get bottom(): number {\n return this._bottom\n }\n\n get height(): number {\n return Math.abs(this._bottom - this._top)\n }\n\n get left(): number {\n return this._left\n }\n\n get right(): number {\n return this._right\n }\n\n get top(): number {\n return this._top\n }\n\n get width(): number {\n return Math.abs(this._left - this._right)\n }\n}\n", "import type {\n EditorConfig,\n Klass,\n LexicalEditor,\n LexicalNode,\n LexicalNodeReplacement,\n} from 'lexical'\n\nimport React from 'react'\n\nimport type { BlockDecorateFunction } from '../../features/blocks/client/nodes/BlocksNode.js'\nimport type { InlineBlockDecorateFunction } from '../../features/blocks/client/nodes/InlineBlocksNode.js'\nimport type { NodeWithHooks } from '../../features/typesServer.js'\nimport type {\n LexicalEditorNodeMap,\n NodeMapBlockValue,\n NodeMapInlineBlockValue,\n NodeMapValue,\n} from '../../types/index.js'\nimport type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js'\n\n// Store view definitions for each editor and node type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst editorNodeViews = new WeakMap<LexicalEditor, Map<string, NodeMapValue<any>>>()\n\n/**\n * Register view definitions for an editor\n */\nexport function registerEditorNodeViews(\n editor: LexicalEditor,\n nodeViews: LexicalEditorNodeMap,\n): void {\n if (!editorNodeViews.has(editor)) {\n editorNodeViews.set(editor, new Map())\n }\n const editorViews = editorNodeViews.get(editor)!\n\n // Register each node type's view\n for (const [nodeType, value] of Object.entries(nodeViews)) {\n if (!value || typeof value !== 'object') {\n continue\n }\n\n // Handle blocks specially - store each block type with key 'block:blockType'\n if (nodeType === 'blocks') {\n for (const [blockType, viewDef] of Object.entries(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value as Record<string, NodeMapValue<any>>,\n )) {\n editorViews.set(`block:${blockType}`, viewDef)\n }\n continue\n }\n\n // Handle inlineBlocks specially - store each block type with key 'inlineBlock:blockType'\n if (nodeType === 'inlineBlocks') {\n for (const [blockType, viewDef] of Object.entries(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value as Record<string, NodeMapValue<any>>,\n )) {\n editorViews.set(`inlineBlock:${blockType}`, viewDef)\n }\n continue\n }\n\n // Regular node types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n editorViews.set(nodeType, value as NodeMapValue<any>)\n }\n}\n\n/**\n * Clear all view overrides for an editor (restores default rendering)\n */\nexport function clearEditorNodeViews(editor: LexicalEditor): void {\n editorNodeViews.delete(editor)\n}\n\n/**\n * Get the view definition for a specific editor and node\n */\nfunction getEditorNodeView(\n editor: LexicalEditor,\n nodeType: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node?: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): NodeMapValue<any> | undefined {\n const editorViews = editorNodeViews.get(editor)\n\n // For block nodes, look up by blockType\n if (nodeType === 'block' && node?.['__fields']?.blockType) {\n const blockType = node['__fields'].blockType\n return editorViews?.get(`block:${blockType}`)\n }\n\n // For inlineBlock nodes, look up by blockType\n if (nodeType === 'inlineBlock' && node?.['__fields']?.blockType) {\n const blockType = node['__fields'].blockType\n return editorViews?.get(`inlineBlock:${blockType}`)\n }\n\n // Regular node types\n return editorViews?.get(nodeType)\n}\n\n/**\n * Apply view overrides to a specific node type by modifying its prototype\n * Uses WeakMap to check per-editor at runtime\n */\nfunction applyNodeOverride({\n node,\n nodeType,\n}: {\n node: Klass<LexicalNode>\n nodeType: string\n}): void {\n if (!('getType' in node) || node.getType() !== nodeType) {\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const NodeClass = node as any\n\n // Store original methods if not already stored\n if (!NodeClass.prototype._originalDecorate) {\n NodeClass.prototype._originalDecorate = NodeClass.prototype.decorate\n }\n if (!NodeClass.prototype._originalCreateDOM) {\n NodeClass.prototype._originalCreateDOM = NodeClass.prototype.createDOM\n }\n\n // Override decorate method (for DecoratorNodes)\n if (NodeClass.prototype.decorate && !NodeClass.prototype._decorateOverridden) {\n NodeClass.prototype._decorateOverridden = true\n const hasCreateDOM = !!NodeClass.prototype.createDOM\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n NodeClass.prototype.decorate = function (editor: LexicalEditor, config: EditorConfig): any {\n const viewDef = getEditorNodeView(editor, nodeType, this)\n\n if (viewDef) {\n // Priority 1: If Component is provided, use it\n if (viewDef.Component) {\n return viewDef.Component({\n config,\n editor,\n isEditor: true,\n isJSXConverter: false,\n node: this,\n })\n }\n\n // Priority 2: If custom createDOM is provided, use html in decorate\n if (viewDef.createDOM && viewDef.html) {\n const htmlContent =\n typeof viewDef.html === 'function'\n ? viewDef.html({ config, editor, isEditor: true, isJSXConverter: false, node: this })\n : viewDef.html\n return React.createElement('span', {\n dangerouslySetInnerHTML: { __html: htmlContent },\n })\n }\n\n // Priority 3: If only html is provided (no custom createDOM),\n // createDOM will handle it, so decorate returns empty fragment\n if (viewDef.html && hasCreateDOM && !viewDef.createDOM) {\n return React.createElement(React.Fragment)\n }\n\n if (nodeType === 'block') {\n const blockViewDef: NodeMapBlockValue = viewDef as NodeMapBlockValue\n if (blockViewDef.Block || blockViewDef.Label) {\n const originalDecorate: BlockDecorateFunction = NodeClass.prototype._originalDecorate\n\n // Pass Block FC to BlockContent for rendering\n // BlockContent will render with useBlockComponentContext hook (client-only)\n return originalDecorate.call(\n this,\n editor,\n config,\n blockViewDef.Block,\n blockViewDef.Label,\n )\n }\n } else if (nodeType === 'inlineBlock') {\n const blockViewDef: NodeMapInlineBlockValue = viewDef as NodeMapInlineBlockValue\n if (blockViewDef.Block || blockViewDef.Label) {\n const originalDecorate: InlineBlockDecorateFunction =\n NodeClass.prototype._originalDecorate\n\n // Pass Block FC to BlockContent for rendering\n // BlockContent will render with useBlockComponentContext hook (client-only)\n return originalDecorate.call(\n this,\n editor,\n config,\n blockViewDef.Block,\n blockViewDef.Label,\n )\n }\n }\n }\n\n const originalDecorate: BlockDecorateFunction | InlineBlockDecorateFunction =\n NodeClass.prototype._originalDecorate\n\n // Otherwise use original\n return originalDecorate.call(this, editor, config)\n }\n }\n\n // Override createDOM method (for ElementNodes)\n if (NodeClass.prototype.createDOM && !NodeClass.prototype._createDOMOverridden) {\n NodeClass.prototype._createDOMOverridden = true\n NodeClass.prototype.createDOM = function (\n config: EditorConfig,\n editor: LexicalEditor,\n ): HTMLElement {\n const viewDef = getEditorNodeView(editor, nodeType, this)\n\n if (viewDef) {\n // If createDOM is provided, use it\n if (viewDef.createDOM) {\n return viewDef.createDOM({ config, editor, node: this })\n }\n\n // If html is provided (as a function or string), create element from it\n if (viewDef.html) {\n const htmlContent =\n typeof viewDef.html === 'function'\n ? viewDef.html({ config, editor, isEditor: true, isJSXConverter: false, node: this })\n : viewDef.html\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = htmlContent\n return (tempDiv.firstElementChild as HTMLElement) || tempDiv\n }\n }\n\n // Otherwise use original\n return NodeClass.prototype._originalCreateDOM.call(this, config, editor)\n }\n }\n}\n\nexport function getEnabledNodes({\n editorConfig,\n nodeViews,\n}: {\n editorConfig: SanitizedClientEditorConfig | SanitizedServerEditorConfig\n nodeViews?: LexicalEditorNodeMap\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n const nodes = getEnabledNodesFromServerNodes({\n nodes: editorConfig.features.nodes,\n })\n\n if (nodeViews) {\n // Apply node overrides by modifying prototypes (once globally)\n // The overrides check per-editor at runtime using WeakMap\n const nodeTypesToOverride = new Set<string>()\n\n for (const [key, value] of Object.entries(nodeViews)) {\n if (!value || typeof value !== 'object') {\n continue\n }\n\n // If 'blocks' key exists with content, we need to override 'block' nodes\n if (key === 'blocks' && Object.keys(value).length > 0) {\n nodeTypesToOverride.add('block')\n }\n // If 'inlineBlocks' key exists with content, we need to override 'inlineBlock' nodes\n else if (key === 'inlineBlocks' && Object.keys(value).length > 0) {\n nodeTypesToOverride.add('inlineBlock')\n }\n // Regular node types\n else {\n nodeTypesToOverride.add(key)\n }\n }\n\n for (const node of nodes) {\n if ('getType' in node) {\n const nodeType = node.getType()\n\n if (nodeTypesToOverride.has(nodeType)) {\n applyNodeOverride({ node, nodeType })\n }\n }\n }\n }\n\n return nodes\n}\n\nexport function getEnabledNodesFromServerNodes({\n nodes,\n}: {\n nodes: Array<Klass<LexicalNode> | LexicalNodeReplacement> | Array<NodeWithHooks>\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n return nodes.map((node) => {\n if ('node' in node) {\n return node.node\n }\n return node\n })\n}\n", "'use client'\nimport React from 'react'\n\nconst paths = {\n 16: 'M8.5 3.5a.5.5 0 0 0-1 0v4h-4a.5.5 0 0 0 0 1h4v4a.5.5 0 0 0 1 0v-4h4a.5.5 0 0 0 0-1h-4z',\n 24: 'M12 6a.5.5 0 0 1 .5.5v5h5a.5.5 0 0 1 0 1h-5v5a.5.5 0 0 1-1 0v-5h-5a.5.5 0 0 1 0-1h5v-5A.5.5 0 0 1 12 6',\n}\n\nexport const AddIcon: React.FC<{\n readonly className?: string\n readonly size?: 16 | 24\n}> = ({ className, size = 24 }) => (\n <svg\n className={className}\n fill=\"none\"\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n width={size}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path clipRule=\"evenodd\" d={paths[size]} fill=\"currentColor\" fillRule=\"evenodd\" />\n </svg>\n)\n"],
5
+ "mappings": "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",
6
+ "names": ["CAN_USE_DOM", "window", "document", "createElement", "c", "_c", "useRef", "useRunDeprioritized", "t0", "$", "timeout", "undefined", "idleHandleRef", "t1", "fn", "Promise", "resolve", "exec", "window", "current", "cancelIdleCallback", "requestIdleCallback", "interactionResponse", "then", "setTimeout", "requestAnimationFrame", "useControllableState", "createContext", "use", "useMemo", "RichTextViewContext", "currentView", "inheritable", "setCurrentView", "RichTextViewProvider", "args", "parentContext", "useRichTextView", "hasOwnExplicitView", "undefined", "isControlledByParent", "Boolean", "views", "hasExplicitCurrentView", "children", "currentViewFromProps", "currentViewRaw", "value", "currentViewMap", "_jsx", "Point", "_x", "_y", "constructor", "x", "y", "calcDeltaXTo", "calcDeltaYTo", "calcDistanceTo", "point", "Math", "sqrt", "pow", "calcHorizontalDistanceTo", "abs", "calcVerticalDistance", "equals", "isPoint", "useLexicalComposerContext", "mergeRegister", "$getSelection", "$isRangeSelection", "$isTextNode", "COMMAND_PRIORITY_LOW", "createCommand", "getDOMSelection", "useCallback", "useEffect", "useState", "React", "c", "_c", "useLexicalComposerContext", "getScrollParent", "mergeRegister", "$getSelection", "$isRangeSelection", "$setSelection", "COMMAND_PRIORITY_LOW", "COMMAND_PRIORITY_NORMAL", "createCommand", "KEY_ARROW_DOWN_COMMAND", "KEY_ARROW_UP_COMMAND", "KEY_ENTER_COMMAND", "KEY_ESCAPE_COMMAND", "KEY_TAB_COMMAND", "useCallback", "useEffect", "useLayoutEffect", "useMemo", "useRef", "useState", "baseClass", "scrollIntoViewIfNeeded", "target", "typeaheadContainerNode", "document", "getElementById", "typeaheadRect", "getBoundingClientRect", "top", "height", "window", "innerHeight", "scrollIntoView", "block", "getFullMatchOffset", "documentText", "entryText", "offset", "triggerOffset", "i", "length", "substring", "$splitNodeContainingQuery", "match", "selection", "$getSelection", "$isRangeSelection", "isCollapsed", "anchor", "type", "anchorNode", "getNode", "isSimpleText", "selectionOffset", "textContent", "getTextContent", "slice", "characterOffset", "replaceableString", "queryOffset", "matchingString", "startOffset", "newNode", "splitText", "isTriggerVisibleInNearestScrollContainer", "targetElement", "containerElement", "tRect", "cRect", "bottom", "useDynamicPositioning", "resolution", "targetElementRef", "onReposition", "onVisibilityChange", "$", "_c", "editor", "useLexicalComposerContext", "t0", "t1", "current", "rootElement", "getRootElement", "rootScrollParent", "getScrollParent", "body", "ticking", "previousIsInView", "handleScroll", "requestAnimationFrame", "isInView", "resizeObserver", "ResizeObserver", "addEventListener", "capture", "passive", "observe", "disconnect", "removeEventListener", "useEffect", "SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND", "createCommand", "LexicalMenu", "anchorElementRef", "close", "groups", "menuRenderFn", "shouldSplitNodeWithQuery", "selectedItemKey", "setSelectedItemKey", "useState", "updateSelectedItem", "useCallback", "item", "rootElem", "setAttribute", "key", "setSelectedItemKeyToFirstMatchingItem", "allItems", "flatMap", "group", "items", "firstMatchingItem", "selectItemAndCleanUp", "selectedItem", "update", "textNodeContainingQuery", "remove", "setTimeout", "read", "clone", "$setSelection", "onSelect", "queryString", "removeAttribute", "useLayoutEffect", "mergeRegister", "registerCommand", "ref", "COMMAND_PRIORITY_LOW", "KEY_ARROW_DOWN_COMMAND", "payload", "event", "selectedIndex", "findIndex", "newSelectedIndex", "newSelectedItem", "dispatchCommand", "index", "preventDefault", "stopImmediatePropagation", "COMMAND_PRIORITY_NORMAL", "KEY_ARROW_UP_COMMAND", "KEY_ESCAPE_COMMAND", "KEY_TAB_COMMAND", "find", "KEY_ENTER_COMMAND", "listItemProps", "useMemo", "setContainerDivAttributes", "containerDiv", "className", "style", "display", "position", "useMenuAnchorRef", "anchorElem", "setResolution", "Symbol", "for", "CAN_USE_DOM", "createElement", "useRef", "parent", "undefined", "menuEle", "firstChild", "width", "getRect", "left", "rawTop", "scrollY", "scrollX", "menuRect", "menuHeight", "menuWidth", "rootElementRect", "isRTL", "dir", "documentElement", "anchorRect", "leftBoundary", "Math", "max", "right", "newLeft", "wouldGoOffBottomOfScreen", "wouldGoOffTopOfScreen", "isConnected", "append", "positionMenu", "t2", "t3", "rootElement_0", "containerDiv_0", "t4", "PUNCTUATION", "getTextUpToAnchor", "selection", "anchor", "type", "anchorNode", "getNode", "isSimpleText", "anchorOffset", "offset", "getTextContent", "slice", "tryToPositionRange", "leadOffset", "range", "editorWindow", "domSelection", "getDOMSelection", "isCollapsed", "startOffset", "endOffset", "setStart", "setEnd", "getQueryTextForSearch", "editor", "text", "getEditorState", "read", "$getSelection", "$isRangeSelection", "isSelectionOnEntityBoundary", "prevSibling", "getPreviousSibling", "$isTextNode", "isTextEntity", "startTransition", "callback", "ENABLE_SLASH_MENU_COMMAND", "createCommand", "LexicalTypeaheadMenuPlugin", "anchorClassName", "anchorElem", "groups", "menuRenderFn", "onClose", "onOpen", "onQueryChange", "triggerFn", "useLexicalComposerContext", "resolution", "setResolution", "useState", "anchorElementRef", "useMenuAnchorRef", "closeTypeahead", "useCallback", "openTypeahead", "res", "useEffect", "mergeRegister", "registerCommand", "node", "match", "matchingString", "replaceableString", "_window", "window", "document", "createRange", "getRect", "getBoundingClientRect", "COMMAND_PRIORITY_LOW", "updateListener", "undefined", "query", "removeUpdateListener", "registerUpdateListener", "current", "_jsx", "LexicalMenu", "close", "shouldSplitNodeWithQuery", "Rect", "_bottom", "_left", "_right", "_top", "constructor", "left", "top", "right", "bottom", "physicTop", "physicBottom", "physicLeft", "physicRight", "fromDOM", "dom", "height", "width", "getBoundingClientRect", "fromLWTH", "fromDOMRect", "domRect", "fromLTRB", "fromPoints", "startPoint", "endPoint", "x", "y", "contains", "target", "isPoint", "isOnTopSide", "isOnBottomSide", "isOnLeftSide", "isOnRightSide", "reason", "result", "distanceFromPoint", "point", "containsResult", "distance", "dx", "dy", "Math", "sqrt", "equals", "generateNewRect", "intersectsWith", "rect", "h1", "x1", "y1", "w1", "h2", "x2", "y2", "w2", "maxX", "maxY", "minX", "minY", "abs", "React", "editorNodeViews", "WeakMap", "registerEditorNodeViews", "editor", "nodeViews", "has", "set", "Map", "editorViews", "get", "nodeType", "value", "Object", "entries", "blockType", "viewDef", "clearEditorNodeViews", "delete", "getEditorNodeView", "node", "applyNodeOverride", "getType", "NodeClass", "prototype", "_originalDecorate", "decorate", "_originalCreateDOM", "createDOM", "_decorateOverridden", "hasCreateDOM", "config", "Component", "isEditor", "isJSXConverter", "html", "htmlContent", "createElement", "dangerouslySetInnerHTML", "__html", "Fragment", "blockViewDef", "Block", "Label", "call", "_createDOMOverridden", "tempDiv", "document", "innerHTML", "firstElementChild", "getEnabledNodes", "editorConfig", "nodes", "getEnabledNodesFromServerNodes", "features", "nodeTypesToOverride", "Set", "key", "keys", "length", "add", "map", "paths", "AddIcon", "className", "size", "_jsx", "fill", "height", "viewBox", "width", "xmlns", "clipRule", "d", "fillRule"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use client";import{a as E,b as U,e as P}from"./chunk-43E5QYAA.js";import{c as y}from"./chunk-5VIL27GI.js";import{a as L}from"./chunk-WSAPGI3Z.js";import{b as f}from"./chunk-RJ5MAOKZ.js";import{jsx as o,jsxs as g}from"react/jsx-runtime";import{useLexicalComposerContext as ae}from"@lexical/react/LexicalComposerContext.js";import{useLexicalEditable as le}from"@lexical/react/useLexicalEditable";import{getTranslation as T}from"@payloadcms/translations";import{Button as h,formatDrawerSlug as se,Pill as ie,Thumbnail as re,useConfig as ne,useEditDepth as de,usePayloadAPI as ce,useTranslation as ue}from"@payloadcms/ui";import{$getNodeByKey as F,$getSelection as me,$isNodeSelection as pe,$isRangeSelection as fe}from"lexical";import{formatAdminURL as ge,isImage as he}from"payload/shared";import{useCallback as _,useEffect as I,useId as _e,useReducer as we,useRef as be,useState as j}from"react";var k={depth:0},Ie=z=>{let{className:e,data:{fields:A,relationTo:w,value:c},format:B,nodeKey:l}=z;if(typeof c=="object")throw new Error("Upload value should be a string or number. The Lexical Upload component should not receive the populated value object.");let{config:{routes:{api:K},serverURL:M},getEntityConfig:O}=ne(),b=be(null),{uuid:W}=f(),H=de(),[s]=ae(),{editorConfig:q,fieldProps:{schemaPath:G}}=f(),u=le(),{i18n:D,t:n}=ue(),[S,m]=j(!1),[$,J]=we(a=>a+1,0),[i]=j(()=>O({collectionSlug:w})),Q=_e(),x=se({slug:"lexical-upload-drawer-"+W+Q,depth:H}),{toggleDrawer:V}=y(x,!0),{closeDocumentDrawer:C,DocumentDrawer:X,DocumentDrawerToggler:Y}=L({id:c,collectionSlug:i.slug}),[{data:t},{setParams:N}]=ce(ge({apiRoute:K,path:`/${i.slug}/${c}`,serverURL:M}),{initialParams:k}),v=t?.thumbnailURL||t?.url;I(()=>s.registerUpdateListener(({editorState:a})=>{a.read(()=>{let r=me();if(pe(r))m(r.has(l));else if(fe(r)){let d=r.getNodes();m(d.some(p=>p.getKey()===l))}else m(!1)})}),[s,l]),I(()=>{let a=b.current?.closest(`.${e}`);a&&a.classList.toggle(`${e}--selected`,S)},[S,e]);let Z=_(()=>{s.update(()=>{F(l)?.remove()})},[s,l]),ee=_(a=>{N({...k,cacheBust:$}),J(),C()},[N,$,C]),R=q?.resolvedFeatureMap?.get("upload")?.sanitizedClientFeatureProps.collections?.[i.slug]?.hasExtraFields,te=_((a,r)=>{s.update(()=>{let d=F(l);if(P(d)){let p={...d.getData(),fields:r};d.setData(p)}})},[s,l]),oe=v&&t?.width&&t?.height?t.width>t.height?"landscape":"portrait":"landscape";return g("div",{className:`${e}__contents ${e}__contents--${oe}`,"data-align":B||void 0,"data-filename":t?.filename,ref:b,children:[o("div",{className:`${e}__card`,children:g("div",{className:`${e}__media`,children:[o(re,{collectionSlug:w,fileSrc:he(t?.mimeType)?v:null,height:t?.height,size:"none",width:t?.width}),u&&g("div",{className:`${e}__floater`,"data-theme":"dark",children:[o(ie,{className:`${e}__collectionLabel`,pillStyle:"dark",size:"small",children:T(i.labels.singular,D)}),o(Y,{className:`${e}__doc-drawer-toggler`,children:o("span",{className:`${e}__filename`,children:t?.filename||n("general:untitled")})}),R?o(h,{buttonStyle:"ghost",className:`${e}__upload-drawer-toggler`,disabled:!u,el:"button",icon:"write",onClick:V,round:!0,size:"medium",tooltip:n("fields:editRelationship")}):null,o("div",{className:`${e}__divider`}),o(h,{buttonStyle:"ghost",className:`${e}__swap-drawer-toggler`,disabled:!u,el:"button",icon:"swap",onClick:()=>{s.dispatchCommand(U,{replace:{nodeKey:l}})},round:!0,size:"medium",tooltip:n("fields:swapUpload")}),o(h,{buttonStyle:"ghost",className:`${e}__removeButton`,disabled:!u,icon:"x",onClick:a=>{a.preventDefault(),Z()},round:!0,size:"medium",tooltip:n("fields:removeUpload")})]})]})}),c?o(X,{onSave:ee}):null,R?o(E,{data:A,drawerSlug:x,drawerTitle:n("general:editLabel",{label:T(i.labels.singular,D)}),featureKey:"upload",handleDrawerSubmit:te,schemaPath:G,schemaPathSuffix:i.slug}):null]})};export{Ie as UploadComponent};
2
+ //# sourceMappingURL=component-D5QLYS7W.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/features/upload/client/component/index.tsx"],
4
+ "sourcesContent": ["'use client'\nimport type { ClientCollectionConfig, Data, FormState, JsonObject } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n formatDrawerSlug,\n Pill,\n Thumbnail,\n useConfig,\n useEditDepth,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n $isRangeSelection,\n type ElementFormatType,\n} from 'lexical'\nimport { formatAdminURL, isImage } from 'payload/shared'\nimport React, { useCallback, useEffect, useId, useReducer, useRef, useState } from 'react'\n\nimport type { BaseClientFeatureProps } from '../../../typesClient.js'\nimport type { UploadData } from '../../server/schema.js'\nimport type { UploadFeaturePropsClient } from '../index.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDocumentDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDocumentDrawer.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from '../drawer/commands.js'\nimport { $isUploadNode } from '../nodes/UploadNode.js'\nimport './index.css'\n\nconst initialParams = {\n depth: 0,\n}\n\nexport type ElementProps = {\n className: string\n data: UploadData\n format?: ElementFormatType\n nodeKey: string\n}\n\nexport const UploadComponent: React.FC<ElementProps> = (props) => {\n const {\n className: baseClass,\n data: { fields, relationTo, value },\n format,\n nodeKey,\n } = props\n\n if (typeof value === 'object') {\n throw new Error(\n 'Upload value should be a string or number. The Lexical Upload component should not receive the populated value object.',\n )\n }\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n const uploadRef = useRef<HTMLDivElement | null>(null)\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n const [editor] = useLexicalComposerContext()\n\n const {\n editorConfig,\n fieldProps: { schemaPath },\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n const { i18n, t } = useTranslation()\n const [isSelected, setIsSelected] = useState(false)\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [relatedCollection] = useState<ClientCollectionConfig>(() =>\n getEntityConfig({ collectionSlug: relationTo }),\n )\n\n const componentID = useId()\n\n const extraFieldsDrawerSlug = formatDrawerSlug({\n slug: `lexical-upload-drawer-` + uuid + componentID, // There can be multiple upload components, each with their own drawer, in one single editor => separate them by componentID\n depth: editDepth,\n })\n\n // Need to use hook to initialize useEffect that restores cursor position\n const { toggleDrawer } = useLexicalDrawer(extraFieldsDrawerSlug, true)\n\n const { closeDocumentDrawer, DocumentDrawer, DocumentDrawerToggler } = useLexicalDocumentDrawer({\n id: value,\n collectionSlug: relatedCollection.slug,\n })\n\n // Get the referenced document\n const [{ data }, { setParams }] = usePayloadAPI(\n formatAdminURL({ apiRoute: api, path: `/${relatedCollection.slug}/${value}`, serverURL }),\n { initialParams },\n )\n\n const thumbnailSRC = data?.thumbnailURL || data?.url\n\n useEffect(() => {\n return editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n const selection = $getSelection()\n\n if ($isNodeSelection(selection)) {\n setIsSelected(selection.has(nodeKey))\n } else if ($isRangeSelection(selection)) {\n const nodes = selection.getNodes()\n setIsSelected(nodes.some((node) => node.getKey() === nodeKey))\n } else {\n setIsSelected(false)\n }\n })\n })\n }, [editor, nodeKey])\n\n useEffect(() => {\n const outerEl = uploadRef.current?.closest(`.${baseClass}`)\n\n if (outerEl) {\n outerEl.classList.toggle(`${baseClass}--selected`, isSelected)\n }\n }, [isSelected, baseClass])\n\n const removeUpload = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const updateUpload = useCallback(\n (_data: Data) => {\n setParams({\n ...initialParams,\n cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed\n })\n\n dispatchCacheBust()\n closeDocumentDrawer()\n },\n [setParams, cacheBust, closeDocumentDrawer],\n )\n\n const hasExtraFields = (\n editorConfig?.resolvedFeatureMap?.get('upload')\n ?.sanitizedClientFeatureProps as BaseClientFeatureProps<UploadFeaturePropsClient>\n ).collections?.[relatedCollection.slug]?.hasExtraFields\n\n const onExtraFieldsDrawerSubmit = useCallback(\n (_: FormState, data: JsonObject) => {\n // Update lexical node (with key nodeKey) with new data\n editor.update(() => {\n const uploadNode = $getNodeByKey(nodeKey)\n if ($isUploadNode(uploadNode)) {\n const newData: UploadData = {\n ...uploadNode.getData(),\n fields: data,\n }\n uploadNode.setData(newData)\n }\n })\n },\n [editor, nodeKey],\n )\n\n const aspectRatio =\n thumbnailSRC && data?.width && data?.height\n ? data.width > data.height\n ? 'landscape'\n : 'portrait'\n : 'landscape'\n\n return (\n <div\n className={`${baseClass}__contents ${baseClass}__contents--${aspectRatio}`}\n data-align={format || undefined}\n data-filename={data?.filename}\n ref={uploadRef}\n >\n <div className={`${baseClass}__card`}>\n <div className={`${baseClass}__media`}>\n <Thumbnail\n collectionSlug={relationTo}\n fileSrc={isImage(data?.mimeType) ? thumbnailSRC : null}\n height={data?.height}\n size=\"none\"\n width={data?.width}\n />\n\n {isEditable && (\n <div className={`${baseClass}__floater`} data-theme=\"dark\">\n <Pill className={`${baseClass}__collectionLabel`} pillStyle=\"dark\" size=\"small\">\n {getTranslation(relatedCollection.labels.singular, i18n)}\n </Pill>\n\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <span className={`${baseClass}__filename`}>\n {data?.filename || t('general:untitled')}\n </span>\n </DocumentDrawerToggler>\n\n {hasExtraFields ? (\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__upload-drawer-toggler`}\n disabled={!isEditable}\n el=\"button\"\n icon=\"write\"\n onClick={toggleDrawer}\n round\n size=\"medium\"\n tooltip={t('fields:editRelationship')}\n />\n ) : null}\n\n <div className={`${baseClass}__divider`} />\n\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__swap-drawer-toggler`}\n disabled={!isEditable}\n el=\"button\"\n icon=\"swap\"\n onClick={() => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }}\n round\n size=\"medium\"\n tooltip={t('fields:swapUpload')}\n />\n\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__removeButton`}\n disabled={!isEditable}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeUpload()\n }}\n round\n size=\"medium\"\n tooltip={t('fields:removeUpload')}\n />\n </div>\n )}\n </div>\n </div>\n\n {value ? <DocumentDrawer onSave={updateUpload} /> : null}\n {hasExtraFields ? (\n <FieldsDrawer\n data={fields}\n drawerSlug={extraFieldsDrawerSlug}\n drawerTitle={t('general:editLabel', {\n label: getTranslation(relatedCollection.labels.singular, i18n),\n })}\n featureKey=\"upload\"\n handleDrawerSubmit={onExtraFieldsDrawerSubmit}\n schemaPath={schemaPath}\n schemaPathSuffix={relatedCollection.slug}\n />\n ) : null}\n </div>\n )\n}\n"],
5
+ "mappings": "6OAGA,OAASA,6BAAAA,OAAiC,2CAC1C,OAASC,sBAAAA,OAA0B,oCACnC,OAASC,kBAAAA,MAAsB,2BAC/B,OACEC,UAAAA,EACAC,oBAAAA,GACAC,QAAAA,GACAC,aAAAA,GACAC,aAAAA,GACAC,gBAAAA,GACAC,iBAAAA,GACAC,kBAAAA,OACK,iBACP,OACEC,iBAAAA,EACAC,iBAAAA,GACAC,oBAAAA,GACAC,qBAAAA,OAEK,UACP,OAASC,kBAAAA,GAAgBC,WAAAA,OAAe,iBACxC,OAAgBC,eAAAA,EAAaC,aAAAA,EAAWC,SAAAA,GAAOC,cAAAA,GAAYC,UAAAA,GAAQC,YAAAA,MAAgB,QAYnF,IAAAC,EAAO,CAEP,MAAMA,GAENC,GAAAC,GAAA,CASA,GAAO,CACL,UAAMC,EACJC,KAAAA,CACAC,OAAAA,EAAQC,WAAAA,EAAQC,MAAAA,GAAiB,OAAAC,EACjCA,QAAAA,GACAC,EAAO,GACLP,OAAAQ,GAAA,SAEJ,MAAI,IAAOA,MAAA,wHAAoB,EAI/B,GAAA,CAEA,OAAM,CACJC,OAAQ,CACNC,IAAAA,GAAa,UAAAC,GACJ,gBAAAC,GAEXA,GAAAA,EACEC,EAAAC,GAAA,IAAA,EACEC,CACN,KAAAC,GAAQA,EAAAA,EAASC,EAAAA,GAAA,EACXC,CAAAA,CAAAA,EAAAC,GAAY,EACZ,CAEN,aAAAC,EACEA,WAAY,CACZC,WAAAA,IAAwBJ,EAAA,EACtBA,EAAAA,GAAA,EACEK,CACN,KAAAC,EAAQA,EAAAA,GAAMC,GAAAA,EAAMC,CAAAA,EAAAC,CAAA,EAAAC,EAAA,EAAA,EACd,CAACC,EAAAC,CAA0B,EAAGF,GAASG,GAAAA,EAAA,EAAA,CAAA,EACvC,CAACC,CAAWF,EAAAA,EAAkB,IAAGG,EAAsBF,CAC7D,eAAOG,GACaC,EAA2BC,EAAAC,GAAA,EAGzCD,EAAcE,GAAA,CAEpB,KAAMC,yBAAwBD,EAAAA,EAC5BE,MAAMrB,IAIR,CACA,aAAAsB,GAAQA,EAAAA,EAAAA,EAAAA,EAAiBC,CAEzB,oBAAAC,EAAQA,eAAAA,EAAqBC,sBAAAA,GAAgBC,EAAAA,CAAuB,GAAGC,EACrEC,eAAIb,EAAA,OAIN,CAAA,CACA,KAAA9B,GAASA,CAAM,UAAA4C,IAAIA,GAAAA,GAAAA,CAAY,SAAGC,EACfC,KAAAA,IAAUC,EAAA,IAAA,IAAA1C,CAAA,GAAK2C,UAAAA,IAA6CxC,CAAU,cAAAb,IACvEsD,EAAAjD,GAAA,cAAAA,GAAA,IAGlBkD,EAAMD,IAENE,EAAU,uBAAA,CAAA,CACR,YAAAC,KAAwCA,CAAaA,EAAA,KAAA,IAAA,CACnDA,IAAAA,EAAiBC,GAAA,EACf,GAAAC,GAAkBD,CAAAA,EAElB9B,EAAI+B,EAAiBC,IAAAnD,CAAY,CAAA,UAC/BmB,GAA2BgC,CAAC,EAAA,CAC9B,IAAOC,EAAIC,EAAAA,SAAkBF,EAC3BhC,EAAcgC,EAAAA,KAAUG,GAAQC,EAAA,OAAA,IAAAvD,CAAA,CAAA,OAElCmB,EAAO,EAAA,MAIX,CAAA4B,EAAA/C,CAAA,CAAA,EACF8C,EAAI,IAAQ9C,CAEZ8C,IAAAA,EAAUtC,EAAA,SAAA,QAAA,IAAAd,CAAA,EAAA,EACR8D,GAEAA,EAAIA,UAAS,OAAA,GAAA9D,CAAA,aAAA2B,CAAA,GAEb,CAAAA,EAAA3B,CAAA,CAAA,EACF,IAAI2B,EAAY3B,EAAU,IAAA,CAE1BqD,EAAMU,OAAAA,IAAeC,CACnBX,EAAc/C,CAAA,GAAA,OAAA,KAEd,CAAA+C,EAAA/C,CAAA,CAAA,EACE+C,GAAgBW,EAAAC,GAAA,CAEpBnB,EAAMoB,CAEFpB,GAAAA,EACE,UAAAhB,IAEFF,EAAA,EAEAA,EAAA,GACAa,CAAAA,EAAAA,EAAAA,CAAA,CAAA,EAEDK,EAAWhB,GAAWW,oBAAoB,IAAA,QAAA,GAAA,4BAAA,cAAAT,EAAA,IAAA,GAAA,eAGvCmC,GAAiBhD,EACPiD,CAAAA,EAAAA,IAAwB,CAMpCf,EAAA,OAAA,IAAA,CACAA,IAAOgB,EAAOC,EAAAhE,CAAA,EACZ,GAAAiE,EAAMC,CAAaF,EAAAA,CACnB,IAAIC,EAAcC,CAChB,GAAAA,EAA4B,QAAA,EAC1B,OAAGA,GAELA,EAAA,QAAAC,CAAA,MAGJ,CAAApB,EAAA/C,CAAA,CAAA,EAED+C,GAAgBF,GAAAjD,GAAA,OAAAA,GAAA,OAAAA,EAAA,MAAAA,EAAA,OAAA,YAAA,WAAA,YAGnB,OACEiD,EAAAA,MAAA,CAMF,UAAA,GAAAnD,CACE,cAACA,CAAA,eAAA0E,EAAA,GACCzE,aAAcD,GAAA,OACd,gBAAYK,GAAA,SACZ,IAAAS,EACA6D,SAAK7D,CAAA8D,EAAA,MAAA,eAELA,SAAK3E,SAAc4E,EAAA,MAAiB,WAClC,GAAA7E,CAAA6E,UAAK5E,SAAA,CAAc2E,EAAAE,GAAkB,kBAEjC7C,QAAAA,GAAgB7B,GAAAA,QAAA,EAAA+C,EAAA,KAChB4B,OAAA7E,GAAS8E,OACTC,KAAA,OACAC,MAAKhF,GAAA,QACLiF,GAAaA,EAAAA,MAAAA,WAGd9D,GAAArB,CAAA,YACMC,aAAcD,OAAsB,SAAA,CAAW4E,EAAAQ,GAAA,eAClDR,oBAAM3E,UAAW,OAAiCoF,KAAAA,QAAiBH,SAAKI,EAAAtD,EAAA,OAAA,SAAAV,CAAA,IACrEgE,EAAAA,EAAiCC,eAGnC5C,uBAAsB1C,SAAc2E,EAAA,OAAA,WACnC,GAAA5E,CAAA4E,aAAM3E,SAAAC,GAAcF,UAAAuB,EAAA,kBAAqB,yBAK1C4C,QAEGqB,UAAA,GAAYxF,CAAA,0BACZC,SAAA,CAAWoB,EACXoE,GAAAA,SACAC,KAAG,QACHC,QAAKpD,EACLqD,MAAA,GACAC,KAAK,SACLX,QAAK3D,EAAA,yBAAA,IACLuE,KAAWlB,EAAA,MAAA,WAEX,GAAA5E,CAEJ4E,cAAmB5E,EAAAA,EAAA,qBAGjBwF,UAAA,GAAYxF,CAAA,wBACZC,SAAA,CAAWoB,EACXoE,GAAAA,SACAC,KAAG,OACHC,QAAK,IAAA,CACLC,EAASA,gBAAAG,EAAA,CACP1C,QAAO2C,CACLC,QAAAA,MAEJ,MAAA,GACAJ,KAAK,SACLX,QAAK3D,EAAA,mBAAA,IACMqD,EAAAsB,EAAA,qBAIXV,UAAA,GAAYxF,CAAA,iBACZC,SAAA,CAAWoB,EACXoE,KAAAA,IACAE,QAAKQ,GAAA,CACLP,EAAAA,eAAU,EACRO,EAAEC,GAEJ,MAAA,GACAP,KAAK,SACLX,QAAK3D,EAAA,qBAAA,GACLuE,uBAOT5B,KAAwBmC,KAAQnC,EAAAA,EAAAA,EAAAA,MAAmB/D,EAGhDD,WAAMmC,EACNiE,YAAYjE,EAAAA,oBAAA,CACZkE,MAAAA,EAAevE,EAAqB,OAAA,SAAAV,CAAA,IAEpC,WAAA,SACAkF,mBAAWC,GACXC,WAAAA,EACAC,iBAAYA,EAAA,OACZC,IAAAA",
6
+ "names": ["useLexicalComposerContext", "useLexicalEditable", "getTranslation", "Button", "formatDrawerSlug", "Pill", "Thumbnail", "useConfig", "useEditDepth", "usePayloadAPI", "useTranslation", "$getNodeByKey", "$getSelection", "$isNodeSelection", "$isRangeSelection", "formatAdminURL", "isImage", "useCallback", "useEffect", "useId", "useReducer", "useRef", "useState", "initialParams", "UploadComponent", "props", "baseClass", "className", "data", "fields", "relationTo", "format", "nodeKey", "value", "config", "routes", "serverURL", "getEntityConfig", "useConfig", "useRef", "uploadRef", "uuid", "useEditorConfigContext", "editDepth", "useLexicalComposerContext", "editorConfig", "fieldProps", "isEditable", "i18n", "t", "useTranslation", "setIsSelected", "useState", "isSelected", "dispatchCacheBust", "state", "cacheBust", "useReducer", "relatedCollection", "collectionSlug", "componentID", "useId", "formatDrawerSlug", "extraFieldsDrawerSlug", "slug", "toggleDrawer", "useLexicalDrawer", "closeDocumentDrawer", "DocumentDrawer", "DocumentDrawerToggler", "useLexicalDocumentDrawer", "id", "setParams", "usePayloadAPI", "apiRoute", "api", "path", "thumbnailSRC", "useEffect", "editor", "editorState", "$getSelection", "$isNodeSelection", "selection", "nodes", "$isRangeSelection", "getNodes", "node", "outerEl", "removeUpload", "useCallback", "_data", "updateUpload", "hasExtraFields", "resolvedFeatureMap", "update", "$getNodeByKey", "$isUploadNode", "uploadNode", "newData", "aspectRatio", "ref", "_jsx", "_jsxs", "Thumbnail", "fileSrc", "isImage", "height", "size", "width", "Pill", "pillStyle", "getTranslation", "labels", "buttonStyle", "disabled", "el", "icon", "onClick", "round", "tooltip", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "dispatchCommand", "replace", "Button", "e", "preventDefault", "onSave", "drawerSlug", "drawerTitle", "featureKey", "onExtraFieldsDrawerSubmit", "handleDrawerSubmit", "schemaPath", "schemaPathSuffix"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use client";import{a,b}from"./chunk-ESITTE3C.js";import"./chunk-5VIL27GI.js";import"./chunk-RJ5MAOKZ.js";export{b as InlineBlockComponent,a as useInlineBlockComponentContext};
2
+ //# sourceMappingURL=componentInline-H24N7GUG.js.map
@@ -31,7 +31,7 @@ export { toolbarTextDropdownGroupWithItems } from '../../features/shared/toolbar
31
31
  export { FixedToolbarFeatureClient } from '../../features/toolbars/fixed/client/index.js';
32
32
  export { InlineToolbarFeatureClient } from '../../features/toolbars/inline/client/index.js';
33
33
  export { ToolbarButton } from '../../features/toolbars/shared/ToolbarButton/index.js';
34
- export { TableFeatureClient } from '../../features/experimental_table/client/index.js';
34
+ export { TableFeatureClient } from '../../features/table/client/index.js';
35
35
  export { ToolbarDropdown } from '../../features/toolbars/shared/ToolbarDropdown/index.js';
36
36
  export { UploadFeatureClient } from '../../features/upload/client/index.js';
37
37
  export { RichTextField } from '../../field/index.js';
@@ -41,7 +41,6 @@ export { sanitizeClientEditorConfig, sanitizeClientFeatures, } from '../../lexic
41
41
  export { CAN_USE_DOM } from '../../lexical/utils/canUseDOM.js';
42
42
  export { getDOMRangeRect } from '../../lexical/utils/getDOMRangeRect.js';
43
43
  export { getSelectedNode } from '../../lexical/utils/getSelectedNode.js';
44
- export { isHTMLElement } from '../../lexical/utils/guard.js';
45
44
  export { joinClasses } from '../../lexical/utils/joinClasses.js';
46
45
  export { createBlockNode } from '../../lexical/utils/markdown/createBlockNode.js';
47
46
  export { isPoint, Point } from '../../lexical/utils/point.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/client/index.ts"],"names":[],"mappings":"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"}