@payloadcms/richtext-lexical 4.0.0-internal.e7d4ebc → 4.0.0-internal.f05c47f

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 (236) hide show
  1. package/dist/exports/client/Field-F22V5L4V.js +2 -0
  2. package/dist/exports/client/{Field-QGSHF22S.js.map → Field-F22V5L4V.js.map} +3 -3
  3. package/dist/exports/client/bundled.css +1 -1
  4. package/dist/exports/client/chunk-43E5QYAA.js +2 -0
  5. package/dist/exports/client/chunk-43E5QYAA.js.map +7 -0
  6. package/dist/exports/client/chunk-LN6VX25I.js +2 -0
  7. package/dist/exports/client/chunk-LN6VX25I.js.map +7 -0
  8. package/dist/exports/client/component-D5QLYS7W.js +2 -0
  9. package/dist/exports/client/component-D5QLYS7W.js.map +7 -0
  10. package/dist/exports/client/index.d.ts +1 -1
  11. package/dist/exports/client/index.d.ts.map +1 -1
  12. package/dist/exports/client/index.js +26 -26
  13. package/dist/exports/client/index.js.map +4 -4
  14. package/dist/features/blocks/server/index.js +2 -2
  15. package/dist/features/blocks/server/index.js.map +1 -1
  16. package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
  17. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
  18. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  19. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +1 -1
  20. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  21. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
  22. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  23. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
  24. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  25. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +0 -1
  26. package/dist/features/link/nodes/AutoLinkNode.d.ts +1 -1
  27. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  28. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  29. package/dist/features/link/nodes/LinkNode.d.ts +1 -1
  30. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  31. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  32. package/dist/features/link/server/index.js +2 -2
  33. package/dist/features/link/server/index.js.map +1 -1
  34. package/dist/features/table/client/index.d.ts.map +1 -0
  35. package/dist/features/table/client/index.js.map +1 -0
  36. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  37. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  38. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  39. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  40. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  41. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  42. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  43. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  44. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  45. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  46. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  47. package/dist/features/table/client/utils/debounce.js.map +1 -0
  48. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  49. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  50. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  51. package/dist/features/table/markdownTransformer.js.map +1 -0
  52. package/dist/features/table/server/index.d.ts +3 -0
  53. package/dist/features/table/server/index.d.ts.map +1 -0
  54. package/dist/features/{experimental_table → table}/server/index.js +4 -4
  55. package/dist/features/table/server/index.js.map +1 -0
  56. package/dist/features/table/server/schema.d.ts.map +1 -0
  57. package/dist/features/table/server/schema.js.map +1 -0
  58. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts +8 -0
  59. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts.map +1 -0
  60. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js +80 -0
  61. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js.map +1 -0
  62. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.spec.js +65 -0
  63. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.spec.js.map +1 -0
  64. package/dist/features/toolbars/fixed/client/Toolbar/index.css +77 -3
  65. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  66. package/dist/features/toolbars/fixed/client/Toolbar/index.js +4 -1
  67. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  68. package/dist/features/toolbars/inline/client/Toolbar/index.css +0 -1
  69. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +0 -2
  70. package/dist/features/typesServer.d.ts +1 -1
  71. package/dist/features/typesServer.d.ts.map +1 -1
  72. package/dist/features/typesServer.js.map +1 -1
  73. package/dist/features/upload/client/component/index.js +2 -1
  74. package/dist/features/upload/client/component/index.js.map +1 -1
  75. package/dist/features/upload/server/index.js +2 -2
  76. package/dist/features/upload/server/index.js.map +1 -1
  77. package/dist/field/bundled.css +1 -1
  78. package/dist/field/index.css +10 -10
  79. package/dist/i18n.d.ts.map +1 -1
  80. package/dist/i18n.js +68 -0
  81. package/dist/i18n.js.map +1 -1
  82. package/dist/index.d.ts +2 -2
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +5 -5
  85. package/dist/index.js.map +1 -1
  86. package/dist/lexical/config/server/loader.d.ts +1 -1
  87. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  88. package/dist/lexical/config/server/loader.js +2 -2
  89. package/dist/lexical/config/server/loader.js.map +1 -1
  90. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  91. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  92. package/dist/lexical/config/server/sanitize.js +2 -2
  93. package/dist/lexical/config/server/sanitize.js.map +1 -1
  94. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +16 -24
  95. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  96. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +27 -14
  97. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  98. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  99. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  100. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +1 -20
  101. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  102. package/dist/lexical/plugins/SlashMenu/index.css +0 -1
  103. package/dist/lexical/ui/ContentEditable.css +0 -4
  104. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts +2 -0
  105. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -0
  106. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js +2 -0
  107. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -0
  108. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts +2 -0
  109. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -0
  110. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js +2 -0
  111. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -0
  112. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts +2 -0
  113. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -0
  114. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js +2 -0
  115. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -0
  116. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts +2 -0
  117. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -0
  118. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js +2 -0
  119. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -0
  120. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts +2 -0
  121. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -0
  122. package/dist/lexical-proxy/@lexical-react/ReactExtension.js +2 -0
  123. package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -0
  124. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts +2 -0
  125. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -0
  126. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js +2 -0
  127. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -0
  128. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts +2 -0
  129. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -0
  130. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js +2 -0
  131. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -0
  132. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts +2 -0
  133. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -0
  134. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js +2 -0
  135. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -0
  136. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts +2 -0
  137. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -0
  138. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js +2 -0
  139. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -0
  140. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts +2 -0
  141. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts.map +1 -0
  142. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js +2 -0
  143. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js.map +1 -0
  144. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts +2 -0
  145. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts.map +1 -0
  146. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js +2 -0
  147. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js.map +1 -0
  148. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts +2 -0
  149. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts.map +1 -0
  150. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js +2 -0
  151. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js.map +1 -0
  152. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts +2 -0
  153. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts.map +1 -0
  154. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js +2 -0
  155. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js.map +1 -0
  156. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts +2 -0
  157. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts.map +1 -0
  158. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js +2 -0
  159. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js.map +1 -0
  160. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts +2 -0
  161. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts.map +1 -0
  162. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js +2 -0
  163. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js.map +1 -0
  164. package/dist/types/index.d.ts +1 -1
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/dist/types/index.js.map +1 -1
  167. package/dist/types/nodeTypes.d.ts +1 -1
  168. package/dist/types/nodeTypes.d.ts.map +1 -1
  169. package/dist/types/nodeTypes.js.map +1 -1
  170. package/dist/utilities/createServerFeature.d.ts +1 -1
  171. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  172. package/dist/utilities/createServerFeature.js +2 -2
  173. package/dist/utilities/createServerFeature.js.map +1 -1
  174. package/dist/utilities/editorConfigFactory.d.ts +6 -6
  175. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  176. package/dist/utilities/editorConfigFactory.js +9 -9
  177. package/dist/utilities/editorConfigFactory.js.map +1 -1
  178. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  179. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  180. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  181. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  182. package/package.json +94 -20
  183. package/dist/exports/client/Field-QGSHF22S.js +0 -2
  184. package/dist/exports/client/chunk-UD4DQ4AK.js +0 -2
  185. package/dist/exports/client/chunk-UD4DQ4AK.js.map +0 -7
  186. package/dist/exports/client/chunk-X3D4LZS7.js +0 -2
  187. package/dist/exports/client/chunk-X3D4LZS7.js.map +0 -7
  188. package/dist/exports/client/component-PHZQBOJE.js +0 -2
  189. package/dist/exports/client/component-PHZQBOJE.js.map +0 -7
  190. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  191. package/dist/features/experimental_table/client/index.js.map +0 -1
  192. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  193. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  194. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  195. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  196. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  197. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  198. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
  199. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
  200. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  201. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  202. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  203. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  204. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  205. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  206. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  207. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  208. package/dist/features/experimental_table/server/index.d.ts +0 -3
  209. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  210. package/dist/features/experimental_table/server/index.js.map +0 -1
  211. package/dist/features/experimental_table/server/schema.d.ts.map +0 -1
  212. package/dist/features/experimental_table/server/schema.js.map +0 -1
  213. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  214. /package/dist/features/{experimental_table → table}/client/index.js +0 -0
  215. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +0 -0
  216. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
  217. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +0 -0
  218. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
  219. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
  220. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +0 -0
  221. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  222. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
  223. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +0 -0
  224. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
  225. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
  226. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
  227. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
  228. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +0 -0
  229. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  230. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  231. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  232. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
  233. /package/dist/features/{experimental_table → table}/markdownTransformer.d.ts +0 -0
  234. /package/dist/features/{experimental_table → table}/markdownTransformer.js +0 -0
  235. /package/dist/features/{experimental_table → table}/server/schema.d.ts +0 -0
  236. /package/dist/features/{experimental_table → table}/server/schema.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/richtext-lexical",
3
- "version": "4.0.0-internal.e7d4ebc",
3
+ "version": "4.0.0-internal.f05c47f",
4
4
  "description": "The officially supported Lexical richtext adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -18,7 +18,6 @@
18
18
  }
19
19
  ],
20
20
  "sideEffects": [
21
- "*.scss",
22
21
  "*.css"
23
22
  ],
24
23
  "type": "module",
@@ -113,6 +112,11 @@
113
112
  "types": "./dist/lexical-proxy/@lexical-utils.d.ts",
114
113
  "default": "./dist/lexical-proxy/@lexical-utils.js"
115
114
  },
115
+ "./lexical/react/ExtensionComponent": {
116
+ "import": "./dist/lexical-proxy/@lexical-react/ExtensionComponent.js",
117
+ "types": "./dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts",
118
+ "default": "./dist/lexical-proxy/@lexical-react/ExtensionComponent.js"
119
+ },
116
120
  "./lexical/react/LexicalAutoEmbedPlugin": {
117
121
  "import": "./dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js",
118
122
  "types": "./dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.d.ts",
@@ -178,6 +182,16 @@
178
182
  "types": "./dist/lexical-proxy/@lexical-react/LexicalContentEditable.d.ts",
179
183
  "default": "./dist/lexical-proxy/@lexical-react/LexicalContentEditable.js"
180
184
  },
185
+ "./lexical/react/LexicalExtensionComposer": {
186
+ "import": "./dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js",
187
+ "types": "./dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts",
188
+ "default": "./dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js"
189
+ },
190
+ "./lexical/react/LexicalExtensionEditorComposer": {
191
+ "import": "./dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js",
192
+ "types": "./dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts",
193
+ "default": "./dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js"
194
+ },
181
195
  "./lexical/react/LexicalNodeContextMenuPlugin": {
182
196
  "import": "./dist/lexical-proxy/@lexical-react/LexicalNodeContextMenuPlugin.js",
183
197
  "types": "./dist/lexical-proxy/@lexical-react/LexicalNodeContextMenuPlugin.d.ts",
@@ -268,6 +282,11 @@
268
282
  "types": "./dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.d.ts",
269
283
  "default": "./dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js"
270
284
  },
285
+ "./lexical/react/LexicalSelectionAlwaysOnDisplay": {
286
+ "import": "./dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js",
287
+ "types": "./dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts",
288
+ "default": "./dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js"
289
+ },
271
290
  "./lexical/react/LexicalTabIndentationPlugin": {
272
291
  "import": "./dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js",
273
292
  "types": "./dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.d.ts",
@@ -293,11 +312,56 @@
293
312
  "types": "./dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.d.ts",
294
313
  "default": "./dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js"
295
314
  },
315
+ "./lexical/react/ReactExtension": {
316
+ "import": "./dist/lexical-proxy/@lexical-react/ReactExtension.js",
317
+ "types": "./dist/lexical-proxy/@lexical-react/ReactExtension.d.ts",
318
+ "default": "./dist/lexical-proxy/@lexical-react/ReactExtension.js"
319
+ },
320
+ "./lexical/react/ReactPluginHostExtension": {
321
+ "import": "./dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js",
322
+ "types": "./dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts",
323
+ "default": "./dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js"
324
+ },
325
+ "./lexical/react/ReactProviderExtension": {
326
+ "import": "./dist/lexical-proxy/@lexical-react/ReactProviderExtension.js",
327
+ "types": "./dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts",
328
+ "default": "./dist/lexical-proxy/@lexical-react/ReactProviderExtension.js"
329
+ },
330
+ "./lexical/react/TreeViewExtension": {
331
+ "import": "./dist/lexical-proxy/@lexical-react/TreeViewExtension.js",
332
+ "types": "./dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts",
333
+ "default": "./dist/lexical-proxy/@lexical-react/TreeViewExtension.js"
334
+ },
335
+ "./lexical/react/useExtensionComponent": {
336
+ "import": "./dist/lexical-proxy/@lexical-react/useExtensionComponent.js",
337
+ "types": "./dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts",
338
+ "default": "./dist/lexical-proxy/@lexical-react/useExtensionComponent.js"
339
+ },
340
+ "./lexical/react/useExtensionSignalValue": {
341
+ "import": "./dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js",
342
+ "types": "./dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts",
343
+ "default": "./dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js"
344
+ },
345
+ "./lexical/react/useLexicalAriaLiveRegion": {
346
+ "import": "./dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js",
347
+ "types": "./dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts",
348
+ "default": "./dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js"
349
+ },
296
350
  "./lexical/react/useLexicalEditable": {
297
351
  "import": "./dist/lexical-proxy/@lexical-react/useLexicalEditable.js",
298
352
  "types": "./dist/lexical-proxy/@lexical-react/useLexicalEditable.d.ts",
299
353
  "default": "./dist/lexical-proxy/@lexical-react/useLexicalEditable.js"
300
354
  },
355
+ "./lexical/react/useLexicalFocusManagerRef": {
356
+ "import": "./dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js",
357
+ "types": "./dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts",
358
+ "default": "./dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js"
359
+ },
360
+ "./lexical/react/useLexicalFocusTrapRef": {
361
+ "import": "./dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js",
362
+ "types": "./dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts",
363
+ "default": "./dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js"
364
+ },
301
365
  "./lexical/react/useLexicalIsTextContentEmpty": {
302
366
  "import": "./dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js",
303
367
  "types": "./dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.d.ts",
@@ -308,6 +372,16 @@
308
372
  "types": "./dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.d.ts",
309
373
  "default": "./dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js"
310
374
  },
375
+ "./lexical/react/useLexicalRovingTabIndexRef": {
376
+ "import": "./dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js",
377
+ "types": "./dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts",
378
+ "default": "./dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js"
379
+ },
380
+ "./lexical/react/useLexicalSlotRef": {
381
+ "import": "./dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js",
382
+ "types": "./dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts",
383
+ "default": "./dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js"
384
+ },
311
385
  "./lexical/react/useLexicalSubscription": {
312
386
  "import": "./dist/lexical-proxy/@lexical-react/useLexicalSubscription.js",
313
387
  "types": "./dist/lexical-proxy/@lexical-react/useLexicalSubscription.d.ts",
@@ -343,25 +417,25 @@
343
417
  ]
344
418
  },
345
419
  "dependencies": {
346
- "@lexical/clipboard": "0.45.0",
347
- "@lexical/headless": "0.45.0",
348
- "@lexical/html": "0.45.0",
349
- "@lexical/link": "0.45.0",
350
- "@lexical/list": "0.45.0",
351
- "@lexical/mark": "0.45.0",
352
- "@lexical/markdown": "0.45.0",
353
- "@lexical/react": "0.45.0",
354
- "@lexical/rich-text": "0.45.0",
355
- "@lexical/selection": "0.45.0",
356
- "@lexical/table": "0.45.0",
357
- "@lexical/utils": "0.45.0",
420
+ "@lexical/clipboard": "0.48.0",
421
+ "@lexical/headless": "0.48.0",
422
+ "@lexical/html": "0.48.0",
423
+ "@lexical/link": "0.48.0",
424
+ "@lexical/list": "0.48.0",
425
+ "@lexical/mark": "0.48.0",
426
+ "@lexical/markdown": "0.48.0",
427
+ "@lexical/react": "0.48.0",
428
+ "@lexical/rich-text": "0.48.0",
429
+ "@lexical/selection": "0.48.0",
430
+ "@lexical/table": "0.48.0",
431
+ "@lexical/utils": "0.48.0",
358
432
  "acorn": "8.16.0",
359
433
  "bson-objectid": "2.0.4",
360
434
  "csstype": "3.2.3",
361
435
  "dequal": "2.0.3",
362
436
  "escape-html": "1.0.3",
363
437
  "jsox": "1.2.125",
364
- "lexical": "0.45.0",
438
+ "lexical": "0.48.0",
365
439
  "mdast-util-from-markdown": "2.0.3",
366
440
  "mdast-util-mdx-jsx": "3.2.0",
367
441
  "micromark-extension-mdx-jsx": "3.0.2",
@@ -369,8 +443,8 @@
369
443
  "react-error-boundary": "6.1.1",
370
444
  "ts-essentials": "10.0.3",
371
445
  "uuid": "14.0.0",
372
- "@payloadcms/ui": "4.0.0-internal.e7d4ebc",
373
- "@payloadcms/translations": "4.0.0-internal.e7d4ebc"
446
+ "@payloadcms/translations": "4.0.0-internal.f05c47f",
447
+ "@payloadcms/ui": "4.0.0-internal.f05c47f"
374
448
  },
375
449
  "devDependencies": {
376
450
  "@babel/cli": "7.27.2",
@@ -378,7 +452,7 @@
378
452
  "@babel/preset-env": "7.27.2",
379
453
  "@babel/preset-react": "7.27.1",
380
454
  "@babel/preset-typescript": "7.27.1",
381
- "@lexical/eslint-plugin": "0.45.0",
455
+ "@lexical/eslint-plugin": "0.48.0",
382
456
  "@types/escape-html": "1.0.4",
383
457
  "@types/json-schema": "7.0.15",
384
458
  "@types/node": "24.12.3",
@@ -390,14 +464,14 @@
390
464
  "esbuild-sass-plugin": "3.3.1",
391
465
  "swc-plugin-transform-remove-imports": "8.3.0",
392
466
  "@payloadcms/eslint-config": "3.28.0",
393
- "payload": "4.0.0-internal.e7d4ebc"
467
+ "payload": "4.0.0-internal.f05c47f"
394
468
  },
395
469
  "peerDependencies": {
396
470
  "@faceless-ui/modal": "3.0.1",
397
471
  "@faceless-ui/scroll-info": "2.0.0",
398
472
  "react": "^19.0.1 || ^19.1.2 || ^19.2.1",
399
473
  "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
400
- "payload": "4.0.0-internal.e7d4ebc"
474
+ "payload": "4.0.0-internal.f05c47f"
401
475
  },
402
476
  "engines": {
403
477
  "node": ">=24.15.0"
@@ -1,2 +0,0 @@
1
- "use client";import{b as Be,d as $,e as K,g as Oe,h as Ie,i as Fe,j as $e,k as Se,l as Pe,m as Ke}from"./chunk-X3D4LZS7.js";import{a as Ae,b as P}from"./chunk-RJ5MAOKZ.js";import{jsx as D,jsxs as le}from"react/jsx-runtime";import{BulkUploadProvider as tn,FieldDescription as on,FieldError as rn,FieldLabel as nn,isFieldRTL as sn,RenderCustomComponent as Mt,useConfig as ln,useEditDepth as an,useEffectEvent as cn,useField as un,useLocale as dn}from"@payloadcms/ui";import{mergeFieldStyles as fn}from"@payloadcms/ui/shared";import{dequal as mn}from"dequal/lite";import At,{useCallback as Bt,useEffect as Ot,useMemo as pn,useState as It}from"react";import{ErrorBoundary as gn}from"react-error-boundary";import"./bundled.css";import{jsx as j}from"react/jsx-runtime";import{LexicalComposer as Yr}from"@lexical/react/LexicalComposer.js";import{useEditDepth as Gr}from"@payloadcms/ui";import*as kt from"react";import{useMemo as Ur}from"react";import{c as _r}from"react/compiler-runtime";import{jsx as E,jsxs as se}from"react/jsx-runtime";import{useLexicalComposerContext as Dr}from"@lexical/react/LexicalComposerContext.js";import{LexicalErrorBoundary as Lr}from"@lexical/react/LexicalErrorBoundary.js";import{HistoryPlugin as Mr}from"@lexical/react/LexicalHistoryPlugin.js";import{OnChangePlugin as Ar}from"@lexical/react/LexicalOnChangePlugin.js";import{RichTextPlugin as Br}from"@lexical/react/LexicalRichTextPlugin.js";import{useLexicalEditable as Or}from"@lexical/react/useLexicalEditable";import{BLUR_COMMAND as Ir,COMMAND_PRIORITY_LOW as Tt,FOCUS_COMMAND as Fr}from"lexical";import*as Q from"react";import{useEffect as $r,useState as Kr}from"react";import{jsx as je}from"react/jsx-runtime";import"react";var z=({anchorElem:e,clientProps:t,plugin:o})=>o.position==="floatingAnchorElem"&&e?o.Component&&je(o.Component,{anchorElem:e,clientProps:t}):o.Component&&je(o.Component,{clientProps:t});import{c as jt}from"react/compiler-runtime";import{copyToClipboard as ze}from"@lexical/clipboard";import{useLexicalComposerContext as zt}from"@lexical/react/LexicalComposerContext.js";import{objectKlassEquals as Ht}from"@lexical/utils";import He from"bson-objectid";import{$getSelection as Vt,$isNodeSelection as Wt,COMMAND_PRIORITY_LOW as Yt,COPY_COMMAND as Gt}from"lexical";import{useEffect as Ut}from"react";var Te=e=>{if("fields"in e&&typeof e.fields=="object"&&e.fields!==null&&"id"in e.fields?e.fields.id=new He.default().toHexString():"id"in e&&(e.id=new He.default().toHexString()),e.children)for(let t of e.children)Te(t)};function Ve(){let e=jt(3),[t]=zt(),o,r;return e[0]!==t?(o=()=>t.registerCommand(Gt,n=>{let c=Vt();if(Wt(c)){let s=c.getNodes()[0]?.exportJSON(),u=JSON.parse(JSON.stringify(s));Te(u);let d={namespace:t._config.namespace,nodes:[u]},m=JSON.stringify(d);return ze(t,null,{"application/x-lexical-editor":m,"text/plain":""}).catch(Jt),!0}return ze(t,Ht(n,ClipboardEvent)?n:null).then(()=>{if(!(n instanceof ClipboardEvent)||!n.clipboardData)throw new Error("No clipboard event");let l=n.clipboardData.getData("application/x-lexical-editor");if(!l)return!0;let s=JSON.parse(l);for(let d of s.nodes)Te(d);let u=JSON.stringify(s);n.clipboardData.setData("application/x-lexical-editor",u)}).catch(l=>{throw n instanceof ClipboardEvent&&n.clipboardData?.setData("application/x-lexical-editor",""),l}),!0},Yt),r=[t],e[0]=t,e[1]=o,e[2]=r):(o=e[1],r=e[2]),Ut(o,r),null}function Jt(e){throw e}import{c as qt}from"react/compiler-runtime";import{useLexicalComposerContext as Qt}from"@lexical/react/LexicalComposerContext";import{$findMatchingParent as fe,mergeRegister as Xt}from"@lexical/utils";import{$createNodeSelection as Zt,$getEditor as oe,$getNearestNodeFromDOMNode as eo,$getSelection as me,$isDecoratorNode as H,$isElementNode as Re,$isLineBreakNode as to,$isNodeSelection as pe,$isRangeSelection as We,$isRootOrShadowRoot as oo,$isTextNode as ro,$setSelection as Ye,CLICK_COMMAND as no,COMMAND_PRIORITY_LOW as Y,KEY_ARROW_DOWN_COMMAND as io,KEY_ARROW_UP_COMMAND as so,KEY_BACKSPACE_COMMAND as lo,KEY_DELETE_COMMAND as ao,SELECTION_CHANGE_COMMAND as co}from"lexical";import{useEffect as uo}from"react";function Ge(){let e=qt(3),[t]=Qt(),o=xo,r,n;return e[0]!==t?(r=()=>Xt(t.registerCommand(no,yo,Y),t.registerCommand(ao,o,Y),t.registerCommand(lo,o,Y),t.registerCommand(co,ho,Y),t.registerCommand(so,po,Y),t.registerCommand(io,fo,Y)),n=[t],e[0]=t,e[1]=r,e[2]=n):(r=e[1],n=e[2]),uo(r,n),null}function fo(e){let t=me();if(pe(t)){e.preventDefault();let l=t.getNodes()[0]?.getNextSibling();if(H(l)){let d=oe().getElementByKey(l.getKey());return d&&re({element:d,node:l}),!0}if(!Re(l))return!0;let s=l.getFirstDescendant()??l;return s&&(fe(s,ge)?.selectEnd(),e.preventDefault()),!0}if(!We(t))return!1;let r=(t.isBackward()?t.anchor:t.focus).getNode(),n=fe(r,mo),c=n?.getNextSibling();if(!n||c!==Ue(n))return!1;if(H(c)){let l=oe().getElementByKey(c.getKey());if(l)return re({element:l,node:c}),e.preventDefault(),!0}return!1}function mo(e){return Ue(e)!==null}function po(e){let t=me();if(pe(t)){let l=t.getNodes()[0]?.getPreviousSibling();if(H(l)){let d=oe().getElementByKey(l.getKey());return d?(re({element:d,node:l}),e.preventDefault(),!0):!1}if(!Re(l))return!1;let s=l.getLastDescendant()??l;return s?(fe(s,ge)?.selectStart(),e.preventDefault(),!0):!1}if(!We(t))return!1;let r=(t.isBackward()?t.anchor:t.focus).getNode(),n=fe(r,go),c=n?.getPreviousSibling();if(!n||c!==Je(n))return!1;if(H(c)){let l=oe().getElementByKey(c.getKey());if(l)return re({element:l,node:c}),e.preventDefault(),!0}return!1}function go(e){return Je(e)!==null}function ho(){let e=bo();return document.querySelector(".decorator-selected")?.classList.remove("decorator-selected"),e?(e.element?.classList.add("decorator-selected"),!0):!1}function yo(e){document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");let t=Eo(e);if(!t)return!0;let{target:o}=e;return!(o instanceof HTMLElement)||o.isContentEditable||o.closest('button, textarea, input, .react-select, .code-editor, .no-select-decorator, [role="button"]')?Ye(null):re(t),!0}function xo(e){let t=me();return pe(t)?(e.preventDefault(),t.getNodes().forEach(Co),!0):!1}function Co(e){e.remove()}function Eo(e){if(!(e.target instanceof HTMLElement))return;let t=e.target.closest('[data-lexical-decorator="true"]');if(!(t instanceof HTMLElement))return;let o=eo(t);return H(o)?{element:t,node:o}:void 0}function bo(){let e=me();if(!pe(e))return;let t=e.getNodes();if(t.length!==1)return;let o=t[0];return H(o)?{decorator:o,element:oe().getElementByKey(o.getKey())}:void 0}function re({element:e,node:t}){document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");let o=Zt();o.add(t.getKey()),Ye(o),e.scrollIntoView({behavior:"smooth",block:"nearest"}),e.classList.add("decorator-selected")}function ge(e){if(H(e)&&!e.isInline())return!0;if(!Re(e)||oo(e))return!1;let t=e.getFirstChild(),o=t===null||to(t)||ro(t)||t.isInline();return!e.isInline()&&e.canBeEmpty()!==!1&&o}function Ue(e){let t=e.getNextSibling();for(;t!==null;){if(ge(t))return t;t=t.getNextSibling()}return null}function Je(e){let t=e.getPreviousSibling();for(;t!==null;){if(ge(t))return t;t=t.getPreviousSibling()}return null}import{jsx as ke}from"react/jsx-runtime";import{useLexicalComposerContext as Ro}from"@lexical/react/LexicalComposerContext.js";import{$createParagraphNode as ko,isHTMLElement as vo}from"lexical";import*as Ze from"react";import{useCallback as _o,useEffect as Xe,useRef as Do,useState as Lo}from"react";import{createPortal as Mo}from"react-dom";var G=(e,t,o,r,n=50,c=25)=>{let l=0;if(e&&!e.contains(r)){let{bottom:s,left:u,right:d,top:m}=e.getBoundingClientRect(),a=m+window.scrollY,i=s+window.scrollY;if(o<a-c||o>i+c||t<u-n||t>d+n)return-1;(t<u||t>d)&&(l=t<u?t-u:t-d)}return l};import{$getNodeByKey as ye}from"lexical";function U(e){let t=e.getBoundingClientRect(),o=getComputedStyle(e).getPropertyValue("transform");if(!o||o==="none")return t;let r=o.split(",").pop();return t.y=t.y-Number(r?.replace(")","")),t}function he(e){let t=(u,d)=>u?parseFloat(window.getComputedStyle(u)[d]):0,{marginBottom:o,marginTop:r}=window.getComputedStyle(e),n=t(e.previousElementSibling,"marginBottom"),c=t(e.nextElementSibling,"marginTop"),l=Math.max(parseFloat(r),n);return{marginBottom:Math.max(parseFloat(o),c),marginTop:l}}import{$getRoot as No}from"lexical";function V(e){return e.getEditorState().read(()=>No().getChildrenKeys())}var wo=1,So=-1,qe=0,B={props:null,result:null};function Po(e,t,o=20){let r=e.x-t.x,n=e.y-t.y;return r*r+n*n<=o*o}function J(e){let{anchorElem:t,cache_threshold:o=20,editor:r,fuzzy:n=!1,horizontalOffset:c=0,point:{x:l,y:s},startIndex:u=0,useEdgeAsDefault:d=!1}=e;if(o>0&&B.props&&B.result&&B.props.fuzzy===e.fuzzy&&B.props.horizontalOffset===e.horizontalOffset&&B.props.useEdgeAsDefault===e.useEdgeAsDefault&&Po(B.props.point,e.point,o))return B.result;let m=t.getBoundingClientRect(),a=V(r),i={blockElem:null,blockNode:null,distance:1/0,foundAtIndex:-1,isFoundNodeEmptyParagraph:!1};return r.getEditorState().read(()=>{if(d){let p=r.getElementByKey(a[0]),g=r.getElementByKey(a[a.length-1]);if(p&&g){let[f,C]=[U(p),U(g)];if(s<f.top?(i.blockElem=p,i.distance=f.top-s,i.blockNode=ye(a[0]),i.foundAtIndex=0):s>C.bottom&&(i.distance=s-C.bottom,i.blockNode=ye(a[a.length-1]),i.blockElem=g,i.foundAtIndex=a.length-1),i?.blockElem)return{blockElem:null,isFoundNodeEmptyParagraph:!1}}}let x=u,y=qe;for(;x>=0&&x<a.length;){let p=a[x],g=r.getElementByKey(p);if(g===null)break;let f=new K(l+c,s),C=$e.fromDOMRect(U(g)),{marginBottom:h,marginTop:b}=he(g),v=C.generateNewRect({bottom:C.bottom+h,left:m.left,right:m.right,top:C.top-b}),{distance:w,isOnBottomSide:k,isOnTopSide:L}=v.distanceFromPoint(f);if(w===0){i.blockElem=g,i.blockNode=ye(p),i.foundAtIndex=x,i.distance=w,i.blockNode&&i.blockNode.getType()==="paragraph"&&i.blockNode.getTextContent()===""&&(!n&&!e.returnEmptyParagraphs&&(i.blockElem=null,i.blockNode=null),i.isFoundNodeEmptyParagraph=!0);break}else n&&w<i.distance&&(i.blockElem=g,i.blockNode=ye(p),i.distance=w,i.foundAtIndex=x);y===qe&&(L?y=So:k?y=wo:y=1/0),x+=y}}),B.props=e,B.result={blockElem:i.blockElem,blockNode:i.blockNode,foundAtIndex:i.foundAtIndex,isFoundNodeEmptyParagraph:i.isFoundNodeEmptyParagraph},{blockElem:i.blockElem,blockNode:i.blockNode,foundAtIndex:i.foundAtIndex,isFoundNodeEmptyParagraph:i.isFoundNodeEmptyParagraph}}function xe(e,t){return!!e.closest(`.${t}`)}var To=["IMG","INPUT","TEXTAREA","SELECT","BUTTON","VIDEO","OBJECT","EMBED","IFRAME","HR"];function Qe(e){if(!e||To.includes(e.tagName)||e.offsetHeight===0||e.offsetWidth===0)return!1;let t=window.getComputedStyle(e);return!(t.display==="table-cell"||t.position==="absolute"||t.visibility==="hidden"||t.opacity==="0")}function Ce(e,t,o,r=0){if(!e){t.style.opacity="0",t.style.transform="translate(-10000px, -10000px)";return}let n=e.getBoundingClientRect(),c=window.getComputedStyle(e),l=t.getBoundingClientRect(),s=o.getBoundingClientRect(),u;if(["LexicalEditorTheme__block","LexicalEditorTheme__upload","LexicalEditorTheme__relationship"].some(a=>e.classList.contains(a)||e.firstElementChild?.classList.contains(a)))u=n.top+8-s.top;else{let a=Qe(e)?parseInt(c.lineHeight,10):0;u=n.top+(a-l.height)/2-s.top}let m=r;t.style.opacity="1",t.style.transform=`translate(${m}px, ${u}px)`}var Ao="add-block-menu",Ee=1/0;function Bo(e){return e===0?1/0:Ee>=0&&Ee<e?Ee:Math.floor(e/2)}function Oo(e,t,o){let r=t.parentElement,{editorConfig:n}=P(),c=n?.admin?.hideGutter?-24:12,l=Do(null),[s,u]=Lo(null);Xe(()=>{function m(a){let i=a.target;if(!vo(i))return;let x=G(r,a.pageX,a.pageY,i);if(x===-1){u(null);return}if(xe(i,Ao))return;let y=V(e),{blockElem:p,blockNode:g,foundAtIndex:f}=J({anchorElem:t,cache_threshold:0,editor:e,horizontalOffset:-x,point:new K(a.x,a.y),returnEmptyParagraphs:!0,startIndex:Bo(y.length),useEdgeAsDefault:!1});Ee=f,p&&g&&(s?.node!==g||s?.elem!==p)&&u({elem:p,node:g})}return document?.addEventListener("mousemove",m),()=>{document?.removeEventListener("mousemove",m)}},[r,t,e,s]),Xe(()=>{l.current&&s?.node&&Ce(s?.elem,l.current,t,c)},[t,s,c]);let d=_o(m=>{let a=s;a?.node&&(e.update(()=>{let i=!0;if((a?.node.getType()!=="paragraph"||a.node.getTextContent()!=="")&&(i=!1),!i){let x=ko();a?.node.insertAfter(x),setTimeout(()=>{a={elem:e.getElementByKey(x.getKey()),node:x},u(a)},0)}}),setTimeout(()=>{e.update(()=>{e.focus(),a?.node&&"select"in a.node&&typeof a.node.select=="function"&&a.node.select()})},1),setTimeout(()=>{e.dispatchCommand(Ie,{node:a?.node})},2),m.stopPropagation(),m.preventDefault())},[e,s]);return Mo(ke(Ze.Fragment,{children:ke("button",{"aria-label":"Add block",className:"icon add-block-menu",onClick:m=>{d(m)},ref:l,type:"button",children:ke("div",{className:o?"icon":""})})}),t)}function et(e){let{anchorElem:t}=e,o=t===void 0?document.body:t,[r]=Ro();return Oo(r,o,r._editable)}import{jsx as be,jsxs as Fo}from"react/jsx-runtime";import{useLexicalComposerContext as $o}from"@lexical/react/LexicalComposerContext.js";import{eventFiles as rt}from"@lexical/rich-text";import{$getNearestNodeFromDOMNode as nt,$getNodeByKey as Ko,isHTMLElement as ve}from"lexical";import*as ct from"react";import{useEffect as _e,useRef as ne,useState as it}from"react";import{createPortal as jo}from"react-dom";var tt=0,Io=-24;var W=0;function ot(e,t,o,r,n,c,l,s,u,d=!1){let{height:m,top:a}=r.getBoundingClientRect(),{top:i,width:x}=l.getBoundingClientRect(),{marginBottom:y,marginTop:p}=he(r),g=a,f=c>=a+m/2+window.scrollY,C=!1;if(n?.elem)if(r!==n?.elem)(f&&n?.elem&&n?.elem===r.nextElementSibling||!f&&n?.elem&&n?.elem===r.previousElementSibling)&&(W++,W<200&&(C=!0));else{W++;let w=n?.boundingBox?.y,k=r.getBoundingClientRect().y;(f===n?.isBelow&&w===k||W<200)&&(C=!1)}if(C)return{isBelow:f,willStayInSamePosition:C};d?g+=m/2:f?g+=m+y/2:g-=p/2;let h=0;d||(f?h=-tt:h=tt);let b=g-i+h,v=Io-t;return o.style.width=`calc(${x}px - ${e} - var(--spacer-5))`,o.style.opacity=".8",o.style.transform=`translate(${v}px, calc(${b}px - 2px))`,n?.elem&&(n.elem.style.opacity="",n?.elem===r?f?n.elem.style.marginTop="":n.elem.style.marginBottom="":(n.elem.style.marginBottom="",n.elem.style.marginTop="")),W=0,{isBelow:f,willStayInSamePosition:C}}var zo="draggable-block-menu",st="application/x-lexical-drag-block",ie=1/0;function lt(e){return e===0?1/0:ie>=0&&ie<e?ie:Math.floor(e/2)}function Ho(e,t){let{transform:o}=t.style;e.setDragImage(t,0,0),setTimeout(()=>{t.style.transform=o})}function at(e,t){e&&(e.style.opacity="0"),t&&(t.style.opacity="",t.style.marginBottom="",t.style.marginTop="")}function Vo(e,t,o){let r=t.parentElement,n=ne(null),c=ne(null),l=ne(null),s=ne(!1),u=ne([]),[d,m]=it(null),[a,i]=it(null),{editorConfig:x}=P(),y=x?.admin?.hideGutter?-44:-8;_e(()=>{function f(C){let h=C.target;if(!ve(h))return;let b=G(r,C.pageX,C.pageY,h);if(b===-1){m(null);return}if(xe(h,zo))return;let v=V(e),{blockElem:w,foundAtIndex:k,isFoundNodeEmptyParagraph:L}=J({anchorElem:t,cache_threshold:0,editor:e,horizontalOffset:-b,point:new K(C.x,C.y),startIndex:lt(v.length),useEdgeAsDefault:!1,verbose:!1});ie=k,!(!w&&!L)&&d!==w&&m(w)}return document?.addEventListener("mousemove",f),()=>{document?.removeEventListener("mousemove",f)}},[r,t,e,d]),_e(()=>{n.current&&Ce(d,n.current,t,y)},[t,d,y]),_e(()=>{function f(h){if(!s.current)return!1;let[b]=rt(h);if(b)return!1;let{pageY:v,target:w}=h;if(!ve(w))return!1;let k=G(r,h.pageX,h.pageY,w,100,50),L=V(e),{blockElem:S,foundAtIndex:I,isFoundNodeEmptyParagraph:R}=J({anchorElem:t,editor:e,fuzzy:!0,horizontalOffset:-k,point:new K(h.x,h.y),startIndex:lt(L.length),useEdgeAsDefault:!0,verbose:!0});ie=I;let F=c.current;if(S===null||F===null)return!1;if(h.preventDefault(),h.dataTransfer.dropEffect="move",d!==S){let{isBelow:_,willStayInSamePosition:M}=ot(x?.admin?.hideGutter?"0px":"var(--spacer-5)",y+(x?.admin?.hideGutter?n?.current?.getBoundingClientRect()?.width??0:-(n?.current?.getBoundingClientRect()?.width??0)),F,S,a,v,t,h,l,R);M||i({boundingBox:S.getBoundingClientRect(),elem:S,isBelow:_})}else a?.elem&&(at(F,a.elem),i({boundingBox:S.getBoundingClientRect(),elem:S,isBelow:!1}));return!0}function C(h){if(!s.current)return!1;let[b]=rt(h);if(b)return!1;let{dataTransfer:v,pageY:w,target:k}=h,L=v?.getData(st)||"";return e.update(()=>{let S=Ko(L);if(!S||!ve(k))return!1;let I=G(r,h.pageX,h.pageY,k,100,50),{blockElem:R,isFoundNodeEmptyParagraph:F}=J({anchorElem:t,editor:e,fuzzy:!0,horizontalOffset:-I,point:new K(h.x,h.y),useEdgeAsDefault:!0});if(!R)return!1;let _=nt(R);if(!_)return!1;if(_===S)return!0;let{height:M,top:ae}=U(R),Ne=w>=ae+M/2+window.scrollY;F?(_.insertBefore(S),_.remove()):Ne?_.insertAfter(S):_.insertBefore(S),d!==null&&m(null),document.querySelectorAll(".lexical-block-highlighter").forEach(T=>{T.remove()});let we=e.getElementByKey(S.getKey()),ce=setTimeout(()=>{let T=we?.getBoundingClientRect();if(!T)return;let N=document.createElement("div");N.className="lexical-block-highlighter",N.style.backgroundColor="var(--color-bg-inverse)",N.style.transition="opacity 0.5s ease-in-out",N.style.zIndex="1",N.style.pointerEvents="none",N.style.boxSizing="border-box",N.style.borderRadius="4px",N.style.position="absolute",document.body.appendChild(N),N.style.opacity="0.1",N.style.height=`${T.height+8}px`,N.style.width=`${T.width+8}px`,N.style.top=`${T.top+window.scrollY-4}px`,N.style.left=`${T.left-4}px`;let ue=setTimeout(()=>{N.style.opacity="0";let de=setTimeout(()=>{N.remove()},500);u.current.push(de)},1e3);u.current.push(ue)},120);u.current.push(ce)}),!0}return document.addEventListener("dragover",f),document.addEventListener("drop",C),()=>{document.removeEventListener("dragover",f),document.removeEventListener("drop",C),u.current.forEach(clearTimeout),u.current=[]}},[r,y,t,e,a,d,x?.admin?.hideGutter]);function p(f){let C=f.dataTransfer;if(!C||!d)return;Ho(C,d),C.effectAllowed="move";let h="";e.update(()=>{let b=nt(d);b&&(h=b.getKey())}),s.current=!0,C.setData(st,h)}function g(){s.current=!1,a?.elem&&at(c.current,a?.elem)}return jo(Fo(ct.Fragment,{children:[be("button",{"aria-label":"Drag to move",className:"icon draggable-block-menu",draggable:!0,onDragEnd:g,onDragStart:p,ref:n,type:"button",children:be("div",{className:o?"icon":""})}),be("div",{className:"draggable-block-target-line",ref:c}),be("div",{className:"debug-highlight",ref:l})]}),t)}function ut(e){let{anchorElem:t}=e,o=t===void 0?document.body:t,[r]=$o();return Vo(r,o,r._editable)}import{c as Wo}from"react/compiler-runtime";import{jsx as De}from"react/jsx-runtime";import{useLexicalComposerContext as Yo}from"@lexical/react/LexicalComposerContext";import{$createParagraphNode as Go,$getRoot as Uo}from"lexical";import"react";var dt="insert-paragraph-at-end",ft=()=>{let e=Wo(2),[t]=Yo(),{editorConfig:o}=P();if(o?.admin?.hideInsertParagraphAtEnd)return null;let r;return e[0]!==t?(r=De("div",{"aria-label":"Insert Paragraph",className:dt,onClick:()=>{t.update(Jo)},role:"button",tabIndex:0,children:De("div",{className:`${dt}-inside`,children:De("span",{children:"+"})})}),e[0]=t,e[1]=r):r=e[1],r};function Jo(){let e=Go();Uo().append(e),e.select()}import{c as qo}from"react/compiler-runtime";import{registerMarkdownShortcuts as Qo}from"@lexical/markdown";import{useLexicalComposerContext as Xo}from"@lexical/react/LexicalComposerContext";import*as mt from"react";var pt=()=>{let e=qo(4),{editorConfig:t}=P(),[o]=Xo(),r,n;return e[0]!==o||e[1]!==t.features.markdownTransformers?(r=()=>Qo(o,t.features.markdownTransformers??[]),n=[o,t.features.markdownTransformers],e[0]=o,e[1]=t.features.markdownTransformers,e[2]=r,e[3]=n):(r=e[2],n=e[3]),mt.useEffect(r,n),null};import{c as Zo}from"react/compiler-runtime";import{useLexicalComposerContext as er}from"@lexical/react/LexicalComposerContext.js";import{$getRoot as tr}from"lexical";import{useEffect as or}from"react";function rr(e){e.update(()=>{let t=o=>{let r=o.getType();if((r==="block"||r==="inlineBlock")&&o.markDirty(),"getChildren"in o&&typeof o.getChildren=="function")for(let n of o.getChildren())t(n)};t(tr())})}function gt(){let e=Zo(5),[t]=er(),{currentView:o,views:r}=$(),n,c;return e[0]!==o||e[1]!==t||e[2]!==r?(n=()=>{r&&(o==="default"?r.default?Se(t,r.default?.nodes):Pe(t):r[o]&&(Pe(t),Se(t,r[o]?.nodes)),rr(t))},c=[t,r,o],e[0]=o,e[1]=t,e[2]=r,e[3]=n,e[4]=c):(n=e[3],c=e[4]),or(n,c),null}import{useLexicalComposerContext as nr}from"@lexical/react/LexicalComposerContext";import{$getSelection as ir,$isRangeSelection as sr,RootNode as lr}from"lexical";import{useEffect as ar}from"react";function ht(){let[e]=nr();return ar(()=>e.registerNodeTransform(lr,t=>{let o=ir();if(sr(o)){let r=o.anchor.getNode(),n=o.focus.getNode();(!r.isAttached()||!n.isAttached())&&(t.selectEnd(),console.warn("updateEditor: selection has been moved to the end of the editor because the previously selected nodes have been removed and selection wasn't moved to another node. Ensure selection changes after removing/replacing a selected node."))}return!1}),[e]),null}import{useLexicalComposerContext as cr}from"@lexical/react/LexicalComposerContext";import{$getSelection as ur,COMMAND_PRIORITY_LOW as dr,SELECT_ALL_COMMAND as fr}from"lexical";import{useEffect as mr}from"react";function yt(){let[e]=cr();return mr(()=>e.registerCommand(fr,()=>{if(ur())return!1;let o=document.activeElement;return o instanceof HTMLInputElement&&o.select(),!0},dr),[e]),null}import{jsx as q,jsxs as Ct}from"react/jsx-runtime";import{useLexicalComposerContext as gr}from"@lexical/react/LexicalComposerContext.js";import{useTranslation as Et}from"@payloadcms/ui";import{useCallback as hr,useMemo as yr,useState as xr}from"react";import"react";import*as bt from"react-dom";import{c as pr}from"react/compiler-runtime";import"react";function xt(e,t){let o=pr(4),{maxLength:r,minLength:n}=t,c=r===void 0?75:r,l=n===void 0?1:n,s;return o[0]!==c||o[1]!==l||o[2]!==e?(s=u=>{let{query:d}=u,m="[^"+e+Oe+"\\s]",i=new RegExp("(^|\\s|\\()(["+e+"]((?:"+m+"){0,"+c+"}))$").exec(d);if(i!==null){let x=i[1],y=i[3];if(y.length>=l)return{leadOffset:i.index+x.length,matchingString:y,replaceableString:i[2]}}return null},o[0]=c,o[1]=l,o[2]=e,o[3]=s):s=o[3],s}var O="slash-menu-popup";function Cr({isSelected:e,item:t,onClick:o,onMouseEnter:r,ref:n}){let{fieldProps:{featureClientSchemaMap:c,schemaPath:l}}=P(),{i18n:s}=Et(),u=`${O}__item ${O}__item-${t.key}`;e&&(u+=` ${O}__item--selected`);let d=t.key;return t.label&&(d=typeof t.label=="function"?t.label({featureClientSchemaMap:c,i18n:s,schemaPath:l}):t.label),d.length>25&&(d=d.substring(0,25)+"..."),Ct("button",{"aria-selected":e,className:u,id:O+"__item-"+t.key,onClick:o,onMouseEnter:r,ref:n,role:"option",tabIndex:-1,type:"button",children:[t?.Icon&&q(t.Icon,{}),q("span",{className:`${O}__item-text`,children:d})]},t.key)}function Nt({anchorElem:e=document.body}){let[t]=gr(),[o,r]=xr(null),{editorConfig:n}=P(),{i18n:c}=Et(),{fieldProps:{featureClientSchemaMap:l,schemaPath:s}}=P(),u=xt("/",{minLength:0}),d=hr(()=>{let a=[];for(let i of n.features.slashMenu.dynamicGroups)if(o){let x=i({editor:t,queryString:o});a=a.concat(x)}return a},[t,o,n?.features]),m=yr(()=>{let a=[];for(let i of n?.features.slashMenu.groups??[])a.push(i);if(o){let i=o.toLowerCase().replace(/[\s\-_]/g,"");a=a.map(y=>{let p=y.items.filter(g=>{let f=g.key;return g.label&&(f=typeof g.label=="function"?g.label({featureClientSchemaMap:l,i18n:c,schemaPath:s}):g.label),new RegExp(o,"gi").exec(f)||f.toLowerCase().replace(/[\s\-_]/g,"").includes(i)?!0:g.keywords!=null?g.keywords.some(h=>new RegExp(o,"gi").exec(h)?!0:h.toLowerCase().replace(/[\s\-_]/g,"").includes(i)):!1});return p.length?{...y,items:p}:null}),a=a.filter(y=>y!=null);let x=d();for(let y of x){let p=a.find(g=>g.key===y.key);p?a=a.filter(g=>g.key!==y.key):p={...y,items:[]},p?.items?.length&&(p.items=p.items.concat(p.items)),a.push(p)}}return a},[o,n?.features.slashMenu.groups,d,l,c,s]);return q(Fe,{anchorElem:e,groups:m,menuRenderFn:(a,{selectedItemKey:i,selectItemAndCleanUp:x,setSelectedItemKey:y})=>a.current&&m.length?bt.createPortal(q("div",{className:O,"data-theme":"dark",children:m.map(p=>{let g=p.key;return p.label&&l&&(g=typeof p.label=="function"?p.label({featureClientSchemaMap:l,i18n:c,schemaPath:s}):p.label),Ct("div",{className:`${O}__group ${O}__group-${p.key}`,children:[q("div",{className:`${O}__group-title`,children:g}),p.items.map((f,C)=>q(Cr,{index:C,isSelected:i===f.key,item:f,onClick:()=>{y(f.key),x(f)},onMouseEnter:()=>{y(f.key)},ref:h=>{f.ref={current:h}}},f.key))]},p.key)})}),a.current):null,onQueryChange:r,triggerFn:u})}import{c as Er}from"react/compiler-runtime";import{useLexicalComposerContext as br}from"@lexical/react/LexicalComposerContext";import{TEXT_TYPE_TO_FORMAT as Nr,TextNode as wr}from"lexical";import{useEffect as Sr}from"react";function wt(e){let t=Er(6),{features:o}=e,[r]=br(),n;t[0]!==r||t[1]!==o.enabledFormats?(n=()=>{let l=Pr(o.enabledFormats);if(l.length!==0)return r.registerNodeTransform(wr,s=>{l.forEach(u=>{s.hasFormat(u)&&s.toggleFormat(u)})})},t[0]=r,t[1]=o.enabledFormats,t[2]=n):n=t[2];let c;return t[3]!==r||t[4]!==o?(c=[r,o],t[3]=r,t[4]=o,t[5]=c):c=t[5],Sr(n,c),null}function Pr(e){let t=Object.keys(Nr),o=new Set(e);return t.filter(r=>!o.has(r))}import{c as Tr}from"react/compiler-runtime";import{jsx as St}from"react/jsx-runtime";import{useLexicalComposerContext as Rr}from"@lexical/react/LexicalComposerContext";import{ContentEditable as kr}from"@lexical/react/LexicalContentEditable.js";import{useTranslation as vr}from"@payloadcms/ui";import"react";function Pt(e){let t=Tr(5),{className:o,editorConfig:r}=e,{t:n}=vr(),[,c]=Rr(),{getTheme:l}=c,s;if(t[0]!==o||t[1]!==r?.admin?.placeholder||t[2]!==l||t[3]!==n){let u=l();s=St(kr,{"aria-placeholder":n("lexical:general:placeholder"),className:o??"ContentEditable__root",placeholder:St("p",{className:u?.placeholder,children:r?.admin?.placeholder??n("lexical:general:placeholder")})}),t[0]=o,t[1]=r?.admin?.placeholder,t[2]=l,t[3]=n,t[4]=s}else s=t[4];return s}var Rt=e=>{let t=_r(13),{editorConfig:o,editorContainerRef:r,isSmallWidthViewport:n,onChange:c,rtl:l}=e,s=P(),[u]=Dr(),d=Or(),[m,a]=Kr(null),i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=f=>{f!==null&&a(f)},t[0]=i):i=t[0];let x=i,y,p;t[1]!==u||t[2]!==s?(y=()=>{if(!s?.uuid){console.error("Lexical Editor must be used within an EditorConfigProvider");return}s?.parentEditor?.uuid&&s.parentEditor?.registerChild(s.uuid,s);let f=()=>{s.focusEditor(s)},C=()=>{s.blurEditor(s)},h=u.registerCommand(Fr,()=>(f(),!0),Tt),b=u.registerCommand(Ir,()=>(C(),!0),Tt);return()=>{h(),b(),s.parentEditor?.unregisterChild?.(s.uuid)}},p=[u,s],t[1]=u,t[2]=s,t[3]=y,t[4]=p):(y=t[3],p=t[4]),$r(y,p);let g;return t[5]!==o||t[6]!==r||t[7]!==m||t[8]!==d||t[9]!==n||t[10]!==c||t[11]!==l?(g=se(Q.Fragment,{children:[o.features.plugins?.map(jr),se("div",{className:"editor-container",dir:l?"rtl":void 0,ref:r,children:[o.features.plugins?.map(zr),E(Br,{contentEditable:E("div",{className:"editor-scroller",children:E("div",{className:"editor",ref:x,children:E(Pt,{editorConfig:o})})}),ErrorBoundary:Lr}),E(ht,{}),d&&E(ft,{}),E(Ge,{}),E(Ve,{}),E(wt,{features:o.features}),E(yt,{}),E(gt,{}),d&&E(Ar,{ignoreSelectionChange:!0,onChange:(f,C,h)=>{(!h.has("focus")||h.size>1)&&c?.(f,C,h)}}),m&&se(Q.Fragment,{children:[!n&&d&&se(Q.Fragment,{children:[o.admin?.hideDraggableBlockElement?null:E(ut,{anchorElem:m}),o.admin?.hideAddBlockButton?null:E(et,{anchorElem:m})]}),o.features.plugins?.map(f=>{if(f.position==="floatingAnchorElem"&&!(f.desktopOnly===!0&&n))return E(z,{anchorElem:m,clientProps:f.clientProps,plugin:f},f.key)}),d&&E(Q.Fragment,{children:E(Nt,{anchorElem:m})})]}),d&&se(Q.Fragment,{children:[E(Mr,{}),o?.features?.markdownTransformers?.length>0&&E(pt,{})]}),o.features.plugins?.map(Hr),o.features.plugins?.map(Vr)]}),o.features.plugins?.map(Wr)]}),t[5]=o,t[6]=r,t[7]=m,t[8]=d,t[9]=n,t[10]=c,t[11]=l,t[12]=g):g=t[12],g};function jr(e){if(e.position==="aboveContainer")return E(z,{clientProps:e.clientProps,plugin:e},e.key)}function zr(e){if(e.position==="top")return E(z,{clientProps:e.clientProps,plugin:e},e.key)}function Hr(e){if(e.position==="normal")return E(z,{clientProps:e.clientProps,plugin:e},e.key)}function Vr(e){if(e.position==="bottom")return E(z,{clientProps:e.clientProps,plugin:e},e.key)}function Wr(e){if(e.position==="belowContainer")return E(z,{clientProps:e.clientProps,plugin:e},e.key)}var vt=({children:e,providers:t})=>{if(!t?.length)return e;let o=t[0];return t.length>1?j(o,{children:j(vt,{providers:t.slice(1),children:e})}):j(o,{children:e})},_t=e=>{let{composerKey:t,editorConfig:o,fieldProps:r,isSmallWidthViewport:n,onChange:c,readOnly:l,rtl:s,value:u}=e,{currentView:d,views:m}=$(),a=P(),i=Gr(),x=kt.useRef(null),y=Ur(()=>{if(u&&typeof u!="object")throw new Error("The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: "+JSON.stringify(u));if(u&&Array.isArray(u)&&!("root"in u))throw new Error("You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/lexical/migration#migration-via-migration-script-recommended");if(u&&"jsonContent"in u)throw new Error("You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/lexical/migration#migrating-from-payload-plugin-lexical");let p=m?.[d]?.nodes;return{editable:l!==!0,editorState:u!=null?JSON.stringify(u):void 0,namespace:o.lexical.namespace,nodes:Ke({editorConfig:o,nodeViews:p}),onError:g=>{throw g},theme:o.lexical.theme}},[o,m,d]);return y?j(Yr,{initialConfig:y,children:j(Ae,{editorConfig:o,editorContainerRef:x,fieldProps:r,parentContext:a?.editDepth===i?a:void 0,children:j(vt,{providers:o.features.providers,children:j(Rt,{editorConfig:o,editorContainerRef:x,isSmallWidthViewport:n,onChange:c,rtl:s})})})},t+y.editable+d):j("p",{children:"Loading..."})};import{c as Jr}from"react/compiler-runtime";import{jsx as X,jsxs as qr}from"react/jsx-runtime";import{ChevronIcon as Qr,Popup as Xr,PopupList as Dt}from"@payloadcms/ui";import"react";function Lt(){let e=Jr(5),{currentView:t,setCurrentView:o,views:r}=$();if(!r||Object.keys(r).length===0)return null;let n,c;if(e[0]!==t||e[1]!==o||e[2]!==r){c=Symbol.for("react.early_return_sentinel");e:{let l=Object.keys(r);if(!l.some(en)){c=null;break e}let u=["default",...l.filter(Zr)],d=t.charAt(0).toUpperCase()+t.slice(1);n=X("div",{className:"lexical-view-selector",children:X(Xr,{button:qr("button",{className:"lexical-view-selector__button",type:"button",children:[X("span",{className:"lexical-view-selector__label",children:d}),X(Qr,{className:"lexical-view-selector__icon"})]}),buttonType:"custom",horizontalAlign:"left",render:m=>{let{close:a}=m;return X(Dt.ButtonGroup,{children:u.map(i=>{let x=i.charAt(0).toUpperCase()+i.slice(1);return X(Dt.Button,{active:i===t,disabled:i===t,onClick:()=>{o?.(i),a()},children:x},i)})})},size:"large"})})}e[0]=t,e[1]=o,e[2]=r,e[3]=n,e[4]=c}else n=e[3],c=e[4];return c!==Symbol.for("react.early_return_sentinel")?c:n}function Zr(e){return e!=="default"}function en(e){return e!=="default"}var Z="rich-text-lexical",hn=e=>{let{editorConfig:t,field:o,field:{admin:{className:r,description:n,readOnly:c}={},label:l,localized:s,required:u},path:d,readOnly:m,schemaPath:a,validate:i}=e,x=m||c,y=dn(),{config:{localization:p}}=ln(),g=sn({fieldLocalized:s,locale:y,localizationConfig:p||void 0}),f=an(),{isControlledByParent:C}=$(),h=Bt((A,te)=>typeof i=="function"?i(A,{...te,required:u}):!0,[i,u]),{customComponents:{AfterInput:b,BeforeInput:v,Description:w,Error:k,Label:L}={},disabled:S,initialValue:I,path:R,setValue:F,showError:_,value:M}=un({potentiallyStalePath:d,validate:h}),ae=x||S,[ee,Ne]=It(!1),[Le,we]=It(),ce=At.useRef(I),T=At.useRef(M);Ot(()=>{let A=()=>{let te=window.matchMedia("(max-width: 768px)").matches;te!==ee&&Ne(te)};return A(),window.addEventListener("resize",A),()=>{window.removeEventListener("resize",A)}},[ee]);let N=["field-type",Z,r,_&&"error",ae&&`${Z}--read-only`,t?.admin?.hideGutter!==!0&&!ee?`${Z}--show-gutter`:null].filter(Boolean).join(" "),ue=`${R}.${f}`,de=Be(),Ft=Bt(A=>{de(()=>{let Me=A.toJSON();T.current=Me,F(Me)})},[F,de]),$t=pn(()=>fn(o),[o]),Kt=cn(A=>{T.current!==M&&!mn(T.current!=null?JSON.parse(JSON.stringify(T.current)):T.current,M)&&(ce.current=A,T.current=M,we(new Date))});return Ot(()=>{Object.is(I,ce.current)||Kt(I)},[I]),le("div",{className:N,"data-field-path":R,"data-field-schemapath":a,"data-lexical-view":t?.view,style:$t,children:[le("div",{className:`${Z}__label-row`,children:[L||D(nn,{label:l,localized:s,path:R,required:u}),!C&&D(Lt,{})]}),le("div",{className:`${Z}__wrap`,children:[D(Mt,{CustomComponent:k,Fallback:D(rn,{path:R,showError:_})}),le(gn,{fallbackRender:yn,onReset:()=>{},children:[v,D("div",{className:`${Z}__editor-content`,children:D(tn,{modalSlugPrefix:`lexical-${R}`,children:D(_t,{composerKey:ue,editorConfig:t,fieldProps:e,isSmallWidthViewport:ee,onChange:Ft,readOnly:ae,rtl:g,value:M},JSON.stringify({path:R,rerenderProviderKey:Le}))})}),b]}),D(Mt,{CustomComponent:w,Fallback:D(on,{description:n,path:R})})]})]},ue)};function yn({error:e}){return le("div",{className:"errorBoundary",role:"alert",children:[D("p",{children:"Something went wrong:"}),D("pre",{style:{color:"red"},children:e instanceof Error?e.message:String(e)})]})}var kl=hn;export{kl as RichText};
2
- //# sourceMappingURL=Field-QGSHF22S.js.map
@@ -1,2 +0,0 @@
1
- import{a as O,b as y}from"./chunk-5VIL27GI.js";import{b as F}from"./chunk-RJ5MAOKZ.js";import{c as q}from"react/compiler-runtime";import{jsx as _}from"react/jsx-runtime";import{Drawer as z,EditDepthProvider as G,useModal as J}from"@payloadcms/ui";import"react";import{jsx as I,jsxs as N}from"react/jsx-runtime";import{useLexicalEditable as T}from"@lexical/react/useLexicalEditable";import{Form as W,RenderFields as $,useDocumentForm as v,useDocumentInfo as k,useServerFunctions as L}from"@payloadcms/ui";import{abortAndIgnore as R}from"@payloadcms/ui/shared";import{deepCopyObjectSimpleWithoutReactComponents as E}from"payload/shared";import{useCallback as B,useEffect as M,useRef as H,useState as U}from"react";import{v4 as V}from"uuid";var j=({data:S,featureKey:e,fieldMapOverride:b,handleDrawerSubmit:w,schemaFieldsPathOverride:r,schemaPath:A,schemaPathSuffix:u,submitRef:D})=>{let{id:o,collectionSlug:a,getDocPreferences:i,globalSlug:n}=k(),{fields:s}=v(),t=T(),m=H(new AbortController),[d,l]=U(!1),{fieldProps:{featureClientSchemaMap:f}}=F(),{getFormState:p}=L(),c=r??`${A}.lexical_internal_feature.${e}${u?`.${u}`:""}`,C=b??f[e]?.[c];M(()=>{let h=new AbortController;return(async()=>{let{state:g}=await p({id:o,collectionSlug:a,data:S??{},docPermissions:{fields:!0},docPreferences:await i(),documentFormState:E(s,{excludeFiles:!0}),globalSlug:n,initialBlockData:S,operation:"update",readOnly:!t,renderAllFields:!0,schemaPath:c,signal:h.signal});l(g)})(),()=>{R(h)}},[c,o,S,p,a,t,n,i,s]);let x=B(async({formState:h})=>{R(m.current);let P=new AbortController;m.current=P;let{state:g}=await p({id:o,collectionSlug:a,docPermissions:{fields:!0},docPreferences:await i(),documentFormState:E(s,{excludeFiles:!0}),formState:h,globalSlug:n,initialBlockFormState:h,operation:"update",readOnly:!t,schemaPath:c,signal:P.signal});return g||h},[p,o,t,a,i,s,n,c]);return M(()=>()=>{R(m.current)},[]),d===!1?null:N(W,{beforeSubmit:[x],className:"fields-drawer",disableValidationOnSubmit:!0,fields:Array.isArray(C)?C:[],initialState:d,onChange:[x],onSubmit:w,uuid:V(),children:[I($,{fields:Array.isArray(C)?C:[],forceRender:!0,parentIndexPath:"",parentPath:"",parentSchemaPath:c,permissions:!0,readOnly:!t}),I(y,{submitRef:D})]})};var pe=S=>{let e=q(17),{className:b,data:w,drawerSlug:r,drawerTitle:A,featureKey:u,fieldMapOverride:D,handleDrawerSubmit:o,schemaFieldsPathOverride:a,schemaPath:i,schemaPathSuffix:n}=S,{closeModal:s}=J(),{headerActions:t,submitRef:m}=O(),d=A??"",l;e[0]!==s||e[1]!==r||e[2]!==o?(l=(p,c)=>{s(r),setTimeout(()=>{o(p,c)},1)},e[0]=s,e[1]=r,e[2]=o,e[3]=l):l=e[3];let f;return e[4]!==b||e[5]!==w||e[6]!==r||e[7]!==u||e[8]!==D||e[9]!==t||e[10]!==a||e[11]!==i||e[12]!==n||e[13]!==m||e[14]!==d||e[15]!==l?(f=_(G,{children:_(z,{className:b,headerActions:t,slug:r,title:d,children:_(j,{data:w,featureKey:u,fieldMapOverride:D,handleDrawerSubmit:l,schemaFieldsPathOverride:a,schemaPath:i,schemaPathSuffix:n,submitRef:m})})}),e[4]=b,e[5]=w,e[6]=r,e[7]=u,e[8]=D,e[9]=t,e[10]=a,e[11]=i,e[12]=n,e[13]=m,e[14]=d,e[15]=l,e[16]=f):f=e[16],f};import{createCommand as K}from"lexical";var be=K("INSERT_UPLOAD_WITH_DRAWER_COMMAND");export{pe as a,be as b};
2
- //# sourceMappingURL=chunk-UD4DQ4AK.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/utilities/fieldsDrawer/Drawer.tsx", "../../../src/utilities/fieldsDrawer/DrawerContent.tsx", "../../../src/features/upload/client/drawer/commands.ts"],
4
- "sourcesContent": ["'use client'\nimport type { ClientField, Data, FormState, JsonObject } from 'payload'\n\nimport { Drawer, EditDepthProvider, useModal } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { DrawerContent } from './DrawerContent.js'\nimport { useDrawerSubmit } from './useDrawerSubmit.js'\n\nexport type FieldsDrawerProps = {\n readonly className?: string\n readonly data?: Data\n readonly drawerSlug: string\n readonly drawerTitle?: string\n readonly featureKey: string\n readonly fieldMapOverride?: ClientField[]\n readonly handleDrawerSubmit: (fields: FormState, data: JsonObject) => void\n readonly schemaFieldsPathOverride?: string\n readonly schemaPath: string\n readonly schemaPathSuffix?: string\n}\n\n/**\n * This FieldsDrawer component can be used to easily create a Drawer that contains a form with fields within your feature.\n * The fields are taken directly from the schema map based on your `featureKey` and `schemaPathSuffix`. Thus, this can only\n * be used if you provide your field schema inside the `generateSchemaMap` prop of your feature.server.ts.\n */\nexport const FieldsDrawer: React.FC<FieldsDrawerProps> = ({\n className,\n data,\n drawerSlug,\n drawerTitle,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n}) => {\n const { closeModal } = useModal()\n const { headerActions, submitRef } = useDrawerSubmit()\n\n // The Drawer only renders its children (and itself) if it's open. Thus, by extracting the main content\n // to DrawerContent, this should be faster\n return (\n <EditDepthProvider>\n <Drawer\n className={className}\n headerActions={headerActions}\n slug={drawerSlug}\n title={drawerTitle ?? ''}\n >\n <DrawerContent\n data={data}\n featureKey={featureKey}\n fieldMapOverride={fieldMapOverride}\n handleDrawerSubmit={(args, args2) => {\n // Simply close drawer - no need for useLexicalDrawer here as at this point,\n // we don't need to restore the cursor position. This is handled by the useEffect in useLexicalDrawer.\n closeModal(drawerSlug)\n\n // Actual drawer submit logic needs to be triggered after the drawer is closed.\n // That's because the lexical selection / cursor restore logic that is striggerer by\n // `useLexicalDrawer` neeeds to be triggered before any editor.update calls that may happen\n // in the `handleDrawerSubmit` function.\n setTimeout(() => {\n handleDrawerSubmit(args, args2)\n }, 1)\n }}\n schemaFieldsPathOverride={schemaFieldsPathOverride}\n schemaPath={schemaPath}\n schemaPathSuffix={schemaPathSuffix}\n submitRef={submitRef}\n />\n </Drawer>\n </EditDepthProvider>\n )\n}\n", "'use client'\nimport type { FormState } from 'payload'\n\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n Form,\n RenderFields,\n useDocumentForm,\n useDocumentInfo,\n useServerFunctions,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\nimport { RegisterFormSubmit } from './useDrawerSubmit.js'\nimport './index.css'\n\nexport const DrawerContent: React.FC<\n {\n submitRef: React.RefObject<(() => void) | null>\n } & Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>\n> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n submitRef,\n}) => {\n const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo()\n const { fields: parentDocumentFields } = useDocumentForm()\n const isEditable = useLexicalEditable()\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const {\n fieldProps: { featureClientSchemaMap },\n } = useEditorConfigContext()\n\n const { getFormState } = useServerFunctions()\n\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any = fieldMapOverride ?? featureClientSchemaMap[featureKey]?.[schemaFieldsPath] // Field Schema\n\n useEffect(() => {\n const controller = new AbortController()\n\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: data ?? {},\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n globalSlug,\n initialBlockData: data,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [\n schemaFieldsPath,\n id,\n data,\n getFormState,\n collectionSlug,\n isEditable,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\n ])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }: { formState: FormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\n readOnly: !isEditable,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [\n getFormState,\n id,\n isEditable,\n collectionSlug,\n getDocPreferences,\n parentDocumentFields,\n globalSlug,\n schemaFieldsPath,\n ],\n )\n\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n className=\"fields-drawer\"\n disableValidationOnSubmit\n fields={Array.isArray(fields) ? fields : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fields={Array.isArray(fields) ? fields : []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={true}\n readOnly={!isEditable}\n />\n <RegisterFormSubmit submitRef={submitRef} />\n </Form>\n )\n}\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { createCommand } from 'lexical'\n\nexport const INSERT_UPLOAD_WITH_DRAWER_COMMAND: LexicalCommand<{\n replace: { nodeKey: string } | false\n}> = createCommand('INSERT_UPLOAD_WITH_DRAWER_COMMAND')\n"],
5
- "mappings": "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",
6
- "names": ["c", "_c", "Drawer", "EditDepthProvider", "useModal", "useLexicalEditable", "Form", "RenderFields", "useDocumentForm", "useDocumentInfo", "useServerFunctions", "abortAndIgnore", "deepCopyObjectSimpleWithoutReactComponents", "useCallback", "useEffect", "useRef", "useState", "v4", "uuid", "DrawerContent", "data", "featureKey", "fieldMapOverride", "handleDrawerSubmit", "schemaFieldsPathOverride", "schemaPath", "schemaPathSuffix", "submitRef", "id", "collectionSlug", "getDocPreferences", "globalSlug", "useDocumentInfo", "parentDocumentFields", "fields", "useDocumentForm", "useLexicalEditable", "isEditable", "onChangeAbortControllerRef", "useRef", "AbortController", "fieldProps", "useEditorConfigContext", "getFormState", "useServerFunctions", "schemaFieldsPath", "useEffect", "awaitInitialState", "state", "docPermissions", "docPreferences", "deepCopyObjectSimpleWithoutReactComponents", "documentFormState", "initialBlockData", "operation", "readOnly", "renderAllFields", "setInitialState", "abortAndIgnore", "controller", "onChange", "formState", "state_0", "prevFormState", "initialBlockFormState", "initialState", "_jsxs", "Form", "beforeSubmit", "className", "disableValidationOnSubmit", "isArray", "onSubmit", "uuid", "_jsx", "RenderFields", "forceRender", "parentIndexPath", "parentPath", "parentSchemaPath", "permissions", "FieldsDrawer", "t0", "$", "_c", "className", "data", "drawerSlug", "drawerTitle", "featureKey", "fieldMapOverride", "handleDrawerSubmit", "schemaFieldsPathOverride", "schemaPath", "schemaPathSuffix", "closeModal", "useModal", "headerActions", "submitRef", "useDrawerSubmit", "t1", "t2", "args", "args2", "setTimeout", "t3", "_jsx", "EditDepthProvider", "children", "Drawer", "slug", "title", "DrawerContent", "createCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND"]
7
- }
@@ -1,2 +0,0 @@
1
- var P=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";import{c as ct}from"react/compiler-runtime";import{useRef as lt}from"react";function Gt(i){let t=ct(2),e=i===void 0?500:i,o=lt(void 0),n;return t[0]!==e?(n=c=>new Promise(a=>{let s=()=>{c(),a()};"requestIdleCallback"in window?("cancelIdleCallback"in window&&o.current!==void 0&&cancelIdleCallback(o.current),o.current=requestIdleCallback(s,{timeout:e})):at().then(s)}),t[0]=e,t[1]=n):n=t[1],n}function at(){return new Promise(i=>{setTimeout(i,100),requestAnimationFrame(()=>{setTimeout(i,0)})})}import{jsx as ut}from"react/jsx-runtime";import{useControllableState as ft}from"@payloadcms/ui";import{createContext as dt,use as mt,useMemo as ht}from"react";var V=dt({currentView:"default",inheritable:!1,setCurrentView:()=>{}}),oe=i=>{let t=pt(),e=i.currentView!==void 0,o=t.inheritable&&(!!t.views||!!t.hasExplicitCurrentView),n=e||t.inheritable&&!!t.hasExplicitCurrentView,{children:r,currentView:c,inheritable:a,views:s}={children:i.children,currentView:o?t.currentView:i.currentView,inheritable:t.inheritable||i.inheritable,views:o&&t.views?t.views:i.views},[f,d]=ft(c,"default"),m=s&&f!=="default"&&!s[f]?"default":f,h=ht(()=>{let y=s?s[m]:void 0;return{currentView:m,currentViewMap:y,hasExplicitCurrentView:n,inheritable:a,isControlledByParent:o,setCurrentView:d,views:s}},[m,a,n,o,d,s]);return ut(V,{value:h,children:r})};function pt(){return mt(V)}var T=class{_x;_y;constructor(t,e){this._x=t,this._y=e}calcDeltaXTo({x:t}){return this.x-t}calcDeltaYTo({y:t}){return this.y-t}calcDistanceTo(t){return Math.sqrt(Math.pow(this.calcDeltaXTo(t),2)+Math.pow(this.calcDeltaYTo(t),2))}calcHorizontalDistanceTo(t){return Math.abs(this.calcDeltaXTo(t))}calcVerticalDistance(t){return Math.abs(this.calcDeltaYTo(t))}equals({x:t,y:e}){return this.x===t&&this.y===e}get x(){return this._x}get y(){return this._y}};function $(i){return i instanceof T}import{jsx as At}from"react/jsx-runtime";import{useLexicalComposerContext as Lt}from"@lexical/react/LexicalComposerContext.js";import{mergeRegister as Bt}from"@lexical/utils";import{$getSelection as I,$isRangeSelection as N,$isTextNode as Pt,COMMAND_PRIORITY_LOW as Vt,createCommand as $t,getDOMSelection as Yt}from"lexical";import{useCallback as J,useEffect as G,useState as Wt}from"react";import*as v from"react";import{c as q}from"react/compiler-runtime";import{useLexicalComposerContext as U}from"@lexical/react/LexicalComposerContext.js";import{mergeRegister as Y}from"@lexical/utils";import{$getSelection as F,$isRangeSelection as gt,$setSelection as _t,COMMAND_PRIORITY_LOW as W,COMMAND_PRIORITY_NORMAL as C,createCommand as wt,KEY_ARROW_DOWN_COMMAND as yt,KEY_ARROW_UP_COMMAND as Ot,KEY_ENTER_COMMAND as xt,KEY_ESCAPE_COMMAND as bt,KEY_TAB_COMMAND as Ct}from"lexical";import{useCallback as E,useEffect as x,useLayoutEffect as St,useMemo as Mt,useRef as Rt,useState as Dt}from"react";var Tt="slash-menu-popup",H=i=>{let t=document.getElementById("slash-menu");if(!t)return;let e=t.getBoundingClientRect();e.top+e.height>window.innerHeight&&t.scrollIntoView({block:"center"}),e.top<0&&t.scrollIntoView({block:"center"}),i.scrollIntoView({block:"nearest"})};function Et(i,t,e){let o=e;for(let n=o;n<=t.length;n++)i.substring(i.length-n)===t.substring(0,n)&&(o=n);return o}function vt(i){let t=F();if(!gt(t)||!t.isCollapsed())return;let e=t.anchor;if(e.type!=="text")return;let o=e.getNode();if(!o.isSimpleText())return;let n=e.offset,r=o.getTextContent().slice(0,n),c=i.replaceableString.length,a=Et(r,i.matchingString,c),s=n-a;if(s<0)return;let f;return s===0?[f]=o.splitText(n):[,f]=o.splitText(s,n),f}function It(i,t){let e=getComputedStyle(i),o=e.position==="absolute",n=t?/(auto|scroll|hidden)/:/(auto|scroll)/;if(e.position==="fixed")return document.body;for(let r=i;r=r.parentElement;)if(e=getComputedStyle(r),!(o&&e.position==="static")&&n.test(e.overflow+e.overflowY+e.overflowX))return r;return document.body}function X(i,t){let e=i.getBoundingClientRect(),o=t.getBoundingClientRect();return e.top>o.top&&e.top<o.bottom}function Nt(i,t,e,o){let n=q(7),[r]=U(),c,a;n[0]!==r||n[1]!==e||n[2]!==o||n[3]!==i||n[4]!==t?(c=()=>{let s=t.current;if(s!=null&&i!=null){let f=r.getRootElement(),d=f!=null?It(f,!1):document.body,m=!1,h=X(s,d),y=function(){m||(window.requestAnimationFrame(function(){e(),m=!1}),m=!0);let l=X(s,d);l!==h&&(h=l,o?.(l))},u=new ResizeObserver(e);return window.addEventListener("resize",e),document.addEventListener("scroll",y,{capture:!0,passive:!0}),u.observe(s),()=>{u.disconnect(),window.removeEventListener("resize",e),document.removeEventListener("scroll",y,!0)}}},a=[r,o,e,i,t],n[0]=r,n[1]=e,n[2]=o,n[3]=i,n[4]=t,n[5]=c,n[6]=a):(c=n[5],a=n[6]),x(c,a)}var j=wt("SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND");function z({anchorElementRef:i,close:t,editor:e,groups:o,menuRenderFn:n,resolution:r,shouldSplitNodeWithQuery:c=!1}){let[a,s]=Dt(null),f=r.match&&r.match.matchingString||"",d=E(u=>{let l=e.getRootElement();l!==null&&(l.setAttribute("aria-activedescendant",`${Tt}__item-${u.key}`),s(u.key))},[e]),m=E(()=>{if(o!==null&&f!=null){let u=o.flatMap(l=>l.items);if(u.length){let l=u[0];d(l)}}},[o,d,f]);x(()=>{m()},[f,m]);let h=E(u=>{t(),e.update(()=>{let l=r.match!=null&&c?vt(r.match):null;l&&l.remove()}),setTimeout(()=>{let l;e.read(()=>{l=F()?.clone()}),e.update(()=>{l&&_t(l)}),u.onSelect({editor:e,queryString:r.match?r.match.matchingString:""})},0)},[e,c,r.match,t]);x(()=>()=>{let u=e.getRootElement();u!==null&&u.removeAttribute("aria-activedescendant")},[e]),St(()=>{o===null?s(null):a===null&&m()},[o,a,d,m]),x(()=>Y(e.registerCommand(j,({item:u})=>u.ref&&u.ref.current!=null?(H(u.ref.current),!0):!1,W)),[e,d]),x(()=>Y(e.registerCommand(yt,u=>{let l=u;if(o!==null&&o.length&&a!==null){let g=o.flatMap(_=>_.items),p=g.findIndex(_=>_.key===a),O=p!==g.length-1?p+1:0,w=g[O];if(!w)return!1;d(w),w.ref!=null&&w.ref.current&&e.dispatchCommand(j,{index:O,item:w}),l.preventDefault(),l.stopImmediatePropagation()}return!0},C),e.registerCommand(Ot,u=>{let l=u;if(o!==null&&o.length&&a!==null){let g=o.flatMap(_=>_.items),p=g.findIndex(_=>_.key===a),O=p!==0?p-1:g.length-1,w=g[O];if(!w)return!1;d(w),w.ref!=null&&w.ref.current&&H(w.ref.current),l.preventDefault(),l.stopImmediatePropagation()}return!0},C),e.registerCommand(bt,u=>{let l=u;return l.preventDefault(),l.stopImmediatePropagation(),t(),!0},W),e.registerCommand(Ct,u=>{let l=u;if(o===null||a===null)return!1;let p=o.flatMap(O=>O.items).find(O=>O.key===a);return p?(l.preventDefault(),l.stopImmediatePropagation(),h(p),!0):!1},C),e.registerCommand(xt,u=>{if(o===null||a===null)return!1;let g=o.flatMap(p=>p.items).find(p=>p.key===a);return g?(u!==null&&(u.preventDefault(),u.stopImmediatePropagation()),h(g),!0):!1},C)),[h,t,e,o,a,d]);let y=Mt(()=>({groups:o,selectedItemKey:a,selectItemAndCleanUp:h,setSelectedItemKey:s}),[h,a,o]);return n(i,y,r.match?r.match.matchingString:"")}function kt(i,t){t!=null&&(i.className=t),i.setAttribute("aria-label","Slash menu"),i.setAttribute("role","listbox"),i.style.display="block",i.style.position="absolute"}function K(i,t,e,o){let n=q(14),[r]=U(),c;n[0]===Symbol.for("react.memo_cache_sentinel")?(c=P?document.createElement("div"):null,n[0]=c):c=n[0];let a=Rt(c),s;n[1]!==i||n[2]!==o||n[3]!==r||n[4]!==t?(s=()=>{if(a.current===null||parent===void 0)return;let u=r.getRootElement(),l=a.current,g=l.firstChild;if(u!==null&&t!==null){let{height:p,width:O}=t.getRect(),{left:w,top:_}=t.getRect(),S=_;if(_=_-(i.getBoundingClientRect().top+window.scrollY),w=w-(i.getBoundingClientRect().left+window.scrollX),l.style.left=`${w+window.scrollX}px`,l.style.height=`${p}px`,l.style.width=`${O}px`,g!==null){let M=g.getBoundingClientRect(),A=M.height,R=M.width,D=u.getBoundingClientRect(),L=document.dir==="rtl"||document.documentElement.dir==="rtl",ot=i.getBoundingClientRect(),B=Math.max(0,D.left);if(!L&&w+R>D.right)l.style.left=`${D.right-R+window.scrollX}px`;else if(L&&M.left<B){let st=B+R-ot.left;l.style.left=`${st+window.scrollX}px`}let it=S+A+32>window.innerHeight,rt=S<0;it&&!rt?l.style.top=`${_+32-A+window.scrollY-(p+24)}px`:l.style.top=`${_+window.scrollY+32}px`}l.isConnected||(kt(l,o),i.append(l)),l.setAttribute("id","slash-menu"),a.current=l,u.setAttribute("aria-controls","slash-menu")}},n[1]=i,n[2]=o,n[3]=r,n[4]=t,n[5]=s):s=n[5];let f=s,d,m;n[6]!==r||n[7]!==f||n[8]!==t?(d=()=>{let u=r.getRootElement();if(t!==null)return f(),()=>{u!==null&&u.removeAttribute("aria-controls");let l=a.current;l!==null&&l.isConnected&&(l.remove(),l.removeAttribute("id"))}},m=[r,f,t],n[6]=r,n[7]=f,n[8]=t,n[9]=d,n[10]=m):(d=n[9],m=n[10]),x(d,m);let h;return n[11]!==t||n[12]!==e?(h=u=>{t!==null&&(u||e(null))},n[11]=t,n[12]=e,n[13]=h):h=n[13],Nt(t,a,f,h),a}var ye=`\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%'"~=<>_:;`;function Ht(i){let t=i.anchor;if(t.type!=="text")return null;let e=t.getNode();if(!e.isSimpleText())return null;let o=t.offset;return e.getTextContent().slice(0,o)}function Q(i,t,e){let o=Yt(e);if(o===null||!o.isCollapsed)return!1;let n=o.anchorNode,r=i,c=o.anchorOffset;if(n==null||c==null)return!1;try{t.setStart(n,r),t.setEnd(n,c>1?c:1)}catch{return!1}return!0}function Xt(i){let t;return i.getEditorState().read(()=>{let e=I();N(e)&&(t=Ht(e))}),t}function Z(i,t){return t!==0?!1:i.getEditorState().read(()=>{let e=I();if(N(e)){let r=e.anchor.getNode().getPreviousSibling();return Pt(r)&&r.isTextEntity()}return!1})}function tt(i){v.startTransition?v.startTransition(i):i()}var jt=$t("ENABLE_SLASH_MENU_COMMAND");function Oe({anchorClassName:i,anchorElem:t,groups:e,menuRenderFn:o,onClose:n,onOpen:r,onQueryChange:c,triggerFn:a}){let[s]=Lt(),[f,d]=Wt(null),m=K(t,f,d,i),h=J(()=>{d(null),n!=null&&f!==null&&n()},[n,f]),y=J(u=>{d(u),r!=null&&f===null&&r(u)},[r,f]);return G(()=>Bt(s.registerCommand(jt,({node:u})=>(s.getEditorState().read(()=>{let l={leadOffset:0,matchingString:"",replaceableString:""};if(!Z(s,l.leadOffset)&&u!==null){let g=s._window??window,p=g.document.createRange();Q(l.leadOffset,p,g)!==null&&tt(()=>y({getRect:()=>p.getBoundingClientRect(),match:l}));return}}),!0),Vt)),[s,y]),G(()=>{let u=()=>{s.getEditorState().read(()=>{let g=s._window??window,p=g.document.createRange(),O=I(),w=Xt(s);if(!N(O)||!O.isCollapsed()||w===void 0||p===null){h();return}let _=a({editor:s,query:w});if(c(_?_.matchingString:null),_!==null&&!Z(s,_.leadOffset)&&Q(_.leadOffset,p,g)!==null){tt(()=>y({getRect:()=>p.getBoundingClientRect(),match:_}));return}h()})},l=s.registerUpdateListener(u);return()=>{l()}},[s,a,c,f,h,y]),m.current===null||f===null||s===null?null:At(z,{anchorElementRef:m,close:h,editor:s,groups:e,menuRenderFn:o,resolution:f,shouldSplitNodeWithQuery:!0})}var et=class i{_bottom;_left;_right;_top;constructor(t,e,o,n){let[r,c]=e<=n?[e,n]:[n,e],[a,s]=t<=o?[t,o]:[o,t];this._top=r,this._right=s,this._left=a,this._bottom=c}static fromDOM(t){let{height:e,left:o,top:n,width:r}=t.getBoundingClientRect();return i.fromLWTH(o,r,n,e)}static fromDOMRect(t){let{height:e,left:o,top:n,width:r}=t;return i.fromLWTH(o,r,n,e)}static fromLTRB(t,e,o,n){return new i(t,e,o,n)}static fromLWTH(t,e,o,n){return new i(t,o,t+e,o+n)}static fromPoints(t,e){let{x:o,y:n}=t,{x:r,y:c}=e;return i.fromLTRB(o,n,r,c)}contains(t){if($(t)){let{x:c,y:a}=t,s=a<this._top,f=a>this._bottom,d=c<this._left,m=c>this._right;return{reason:{isOnBottomSide:f,isOnLeftSide:d,isOnRightSide:m,isOnTopSide:s},result:!s&&!f&&!d&&!m}}let{bottom:e,left:o,right:n,top:r}=t;return r>=this._top&&r<=this._bottom&&e>=this._top&&e<=this._bottom&&o>=this._left&&o<=this._right&&n>=this._left&&n<=this._right}distanceFromPoint(t){let e=this.contains(t);if(e.result)return{distance:0,isOnBottomSide:e.reason.isOnBottomSide,isOnLeftSide:e.reason.isOnLeftSide,isOnRightSide:e.reason.isOnRightSide,isOnTopSide:e.reason.isOnTopSide};let o=0,n=0;return t.x<this._left?o=this._left-t.x:t.x>this._right&&(o=t.x-this._right),t.y<this._top?n=this._top-t.y:t.y>this._bottom&&(n=t.y-this._bottom),{distance:Math.sqrt(o*o+n*n),isOnBottomSide:t.y>this._bottom,isOnLeftSide:t.x<this._left,isOnRightSide:t.x>this._right,isOnTopSide:t.y<this._top}}equals({bottom:t,left:e,right:o,top:n}){return n===this._top&&t===this._bottom&&e===this._left&&o===this._right}generateNewRect({bottom:t=this.bottom,left:e=this.left,right:o=this.right,top:n=this.top}){return new i(e,n,o,t)}intersectsWith(t){let{height:e,left:o,top:n,width:r}=t,{height:c,left:a,top:s,width:f}=this,d=o+r>=a+f?o+r:a+f,m=n+e>=s+c?n+e:s+c,h=o<=a?o:a,y=n<=s?n:s;return d-h<=r+f&&m-y<=e+c}get bottom(){return this._bottom}get height(){return Math.abs(this._bottom-this._top)}get left(){return this._left}get right(){return this._right}get top(){return this._top}get width(){return Math.abs(this._left-this._right)}};import k from"react";var b=new WeakMap;function Me(i,t){b.has(i)||b.set(i,new Map);let e=b.get(i);for(let[o,n]of Object.entries(t))if(!(!n||typeof n!="object")){if(o==="blocks"){for(let[r,c]of Object.entries(n))e.set(`block:${r}`,c);continue}if(o==="inlineBlocks"){for(let[r,c]of Object.entries(n))e.set(`inlineBlock:${r}`,c);continue}e.set(o,n)}}function Re(i){b.delete(i)}function nt(i,t,e){let o=b.get(i);if(t==="block"&&e?.__fields?.blockType){let n=e.__fields.blockType;return o?.get(`block:${n}`)}if(t==="inlineBlock"&&e?.__fields?.blockType){let n=e.__fields.blockType;return o?.get(`inlineBlock:${n}`)}return o?.get(t)}function qt({node:i,nodeType:t}){if(!("getType"in i)||i.getType()!==t)return;let e=i;if(e.prototype._originalDecorate||(e.prototype._originalDecorate=e.prototype.decorate),e.prototype._originalCreateDOM||(e.prototype._originalCreateDOM=e.prototype.createDOM),e.prototype.decorate&&!e.prototype._decorateOverridden){e.prototype._decorateOverridden=!0;let o=!!e.prototype.createDOM;e.prototype.decorate=function(n,r){let c=nt(n,t,this);if(c){if(c.Component)return c.Component({config:r,editor:n,isEditor:!0,isJSXConverter:!1,node:this});if(c.createDOM&&c.html){let s=typeof c.html=="function"?c.html({config:r,editor:n,isEditor:!0,isJSXConverter:!1,node:this}):c.html;return k.createElement("span",{dangerouslySetInnerHTML:{__html:s}})}if(c.html&&o&&!c.createDOM)return k.createElement(k.Fragment);if(t==="block"){let s=c;if(s.Block||s.Label)return e.prototype._originalDecorate.call(this,n,r,s.Block,s.Label)}else if(t==="inlineBlock"){let s=c;if(s.Block||s.Label)return e.prototype._originalDecorate.call(this,n,r,s.Block,s.Label)}}return e.prototype._originalDecorate.call(this,n,r)}}e.prototype.createDOM&&!e.prototype._createDOMOverridden&&(e.prototype._createDOMOverridden=!0,e.prototype.createDOM=function(o,n){let r=nt(n,t,this);if(r){if(r.createDOM)return r.createDOM({config:o,editor:n,node:this});if(r.html){let c=typeof r.html=="function"?r.html({config:o,editor:n,isEditor:!0,isJSXConverter:!1,node:this}):r.html,a=document.createElement("div");return a.innerHTML=c,a.firstElementChild||a}}return e.prototype._originalCreateDOM.call(this,o,n)})}function De({editorConfig:i,nodeViews:t}){let e=Ut({nodes:i.features.nodes});if(t){let o=new Set;for(let[n,r]of Object.entries(t))!r||typeof r!="object"||(n==="blocks"&&Object.keys(r).length>0?o.add("block"):n==="inlineBlocks"&&Object.keys(r).length>0?o.add("inlineBlock"):o.add(n));for(let n of e)if("getType"in n){let r=n.getType();o.has(r)&&qt({node:n,nodeType:r})}}return e}function Ut({nodes:i}){return i.map(t=>"node"in t?t.node:t)}export{P as a,Gt as b,oe as c,pt as d,T as e,$ as f,ye as g,jt as h,Oe as i,et as j,Me as k,Re as l,De as m};
2
- //# sourceMappingURL=chunk-X3D4LZS7.js.map
@@ -1,7 +0,0 @@
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"],
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 { 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\n// Got from https://stackoverflow.com/a/42543908/2013580\nexport function getScrollParent(\n element: HTMLElement,\n includeHidden: boolean,\n): HTMLBodyElement | HTMLElement {\n let style = getComputedStyle(element)\n const excludeStaticParent = style.position === 'absolute'\n const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/\n if (style.position === 'fixed') {\n return document.body\n }\n for (let parent: HTMLElement | null = element; (parent = parent.parentElement); ) {\n style = getComputedStyle(parent)\n if (excludeStaticParent && style.position === 'static') {\n continue\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent\n }\n }\n return document.body\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"],
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", "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", "getScrollParent", "element", "includeHidden", "style", "getComputedStyle", "excludeStaticParent", "position", "overflowRegex", "body", "parent1", "parentElement", "test", "overflow", "overflowY", "overflowX", "isTriggerVisibleInNearestScrollContainer", "targetElement", "containerElement", "tRect", "cRect", "bottom", "useDynamicPositioning", "resolution", "targetElementRef", "onReposition", "onVisibilityChange", "$", "_c", "editor", "useLexicalComposerContext", "t0", "t1", "current", "rootElement", "getRootElement", "rootScrollParent", "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", "display", "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"]
7
- }