@payloadcms/richtext-lexical 4.0.0-internal.4804abd → 4.0.0-internal.4a6b4c3

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 (602) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/exports/client/Field-W2ABOM7M.js +2 -0
  3. package/dist/exports/client/Field-W2ABOM7M.js.map +7 -0
  4. package/dist/exports/client/chunk-3LRZDIIG.js +2 -0
  5. package/dist/exports/client/{chunk-X3D4LZS7.js.map → chunk-3LRZDIIG.js.map} +4 -4
  6. package/dist/exports/client/chunk-E6LSRRP2.js +2 -0
  7. package/dist/exports/client/chunk-E6LSRRP2.js.map +7 -0
  8. package/dist/exports/client/chunk-ZQX5HXUL.js +2 -0
  9. package/dist/exports/client/chunk-ZQX5HXUL.js.map +7 -0
  10. package/dist/exports/client/component-6DQLENIE.js +2 -0
  11. package/dist/exports/client/component-6DQLENIE.js.map +7 -0
  12. package/dist/exports/client/componentInline-HNE5G4TE.js +2 -0
  13. package/dist/exports/client/index.d.ts +1 -2
  14. package/dist/exports/client/index.d.ts.map +1 -1
  15. package/dist/exports/client/index.js +28 -28
  16. package/dist/exports/client/index.js.map +4 -4
  17. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  18. package/dist/features/blocks/client/component/BlockReordering/index.d.ts +11 -0
  19. package/dist/features/blocks/client/component/BlockReordering/index.d.ts.map +1 -0
  20. package/dist/features/blocks/client/component/BlockReordering/index.js +18 -0
  21. package/dist/features/blocks/client/component/BlockReordering/index.js.map +1 -0
  22. package/dist/features/blocks/client/component/index.d.ts +0 -6
  23. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  24. package/dist/features/blocks/client/component/index.js +169 -101
  25. package/dist/features/blocks/client/component/index.js.map +1 -1
  26. package/dist/features/blocks/client/component/useBlockReordering.d.ts +16 -0
  27. package/dist/features/blocks/client/component/useBlockReordering.d.ts.map +1 -0
  28. package/dist/features/blocks/client/component/useBlockReordering.js +178 -0
  29. package/dist/features/blocks/client/component/useBlockReordering.js.map +1 -0
  30. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
  31. package/dist/features/blocks/client/componentInline/index.css +0 -1
  32. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  33. package/dist/features/blocks/client/componentInline/index.js +30 -22
  34. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  35. package/dist/features/blocks/client/getBlockImageComponent.d.ts +1 -1
  36. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts +9 -0
  37. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.d.ts.map +1 -0
  38. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js +95 -0
  39. package/dist/features/blocks/client/getCachedFormStateIfDataMatches.js.map +1 -0
  40. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  41. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  42. package/dist/features/blocks/client/nodes/BlocksNode.js +0 -10
  43. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  44. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  45. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  46. package/dist/features/blocks/server/index.js +2 -2
  47. package/dist/features/blocks/server/index.js.map +1 -1
  48. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  49. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  50. package/dist/features/blocks/server/nodes/BlocksNode.js +1 -12
  51. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  52. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  53. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +2 -2
  54. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  55. package/dist/features/blocks/server/schema.d.ts +2 -0
  56. package/dist/features/blocks/server/schema.d.ts.map +1 -1
  57. package/dist/features/blocks/server/schema.js +7 -9
  58. package/dist/features/blocks/server/schema.js.map +1 -1
  59. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  60. package/dist/features/blocks/server/validate.js +1 -1
  61. package/dist/features/blocks/server/validate.js.map +1 -1
  62. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  63. package/dist/features/converters/lexicalToHtml/async/converters/heading.js +1 -1
  64. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  65. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  66. package/dist/features/converters/lexicalToHtml/async/converters/list.js +4 -3
  67. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  68. package/dist/features/converters/lexicalToHtml/async/converters/upload.js +3 -3
  69. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  70. package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
  71. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.d.ts.map +1 -1
  72. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +3 -2
  73. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  74. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js +1 -1
  75. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  76. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  77. package/dist/features/converters/lexicalToHtml/sync/converters/list.js +4 -3
  78. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  79. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js +3 -3
  80. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  81. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  82. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +2 -1
  83. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  84. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  85. package/dist/features/converters/lexicalToJSX/converter/converters/list.js +2 -1
  86. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  87. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  88. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +4 -5
  89. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  90. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  91. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  92. package/dist/features/converters/utilities/payloadPopulateFn.d.ts.map +1 -1
  93. package/dist/features/converters/utilities/payloadPopulateFn.js +4 -2
  94. package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
  95. package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
  96. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  97. package/dist/features/heading/constants.d.ts +2 -0
  98. package/dist/features/heading/constants.d.ts.map +1 -0
  99. package/dist/features/heading/constants.js +2 -0
  100. package/dist/features/heading/constants.js.map +1 -0
  101. package/dist/features/heading/server/index.d.ts.map +1 -1
  102. package/dist/features/heading/server/index.js +5 -1
  103. package/dist/features/heading/server/index.js.map +1 -1
  104. package/dist/features/heading/server/schema.d.ts.map +1 -1
  105. package/dist/features/heading/server/validate.d.ts +6 -0
  106. package/dist/features/heading/server/validate.d.ts.map +1 -0
  107. package/dist/features/heading/server/validate.js +15 -0
  108. package/dist/features/heading/server/validate.js.map +1 -0
  109. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +12 -2
  110. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  111. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +18 -1
  112. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  113. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
  114. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  115. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +3 -3
  116. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  117. package/dist/features/horizontalRule/server/schema.d.ts +1 -0
  118. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -1
  119. package/dist/features/horizontalRule/server/schema.js +6 -5
  120. package/dist/features/horizontalRule/server/schema.js.map +1 -1
  121. package/dist/features/indent/client/IndentPlugin.d.ts.map +1 -1
  122. package/dist/features/indent/client/IndentPlugin.js +122 -1
  123. package/dist/features/indent/client/IndentPlugin.js.map +1 -1
  124. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  125. package/dist/features/indent/server/i18n.d.ts.map +1 -1
  126. package/dist/features/indent/server/i18n.js +74 -37
  127. package/dist/features/indent/server/i18n.js.map +1 -1
  128. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  129. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  130. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +8 -5
  131. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  132. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +0 -2
  133. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  134. package/dist/features/link/nodes/AutoLinkNode.d.ts +1 -1
  135. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  136. package/dist/features/link/nodes/AutoLinkNode.js +2 -10
  137. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  138. package/dist/features/link/nodes/LinkNode.d.ts +1 -1
  139. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  140. package/dist/features/link/nodes/LinkNode.js +2 -15
  141. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  142. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  143. package/dist/features/link/server/baseFields.js.map +1 -1
  144. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  145. package/dist/features/link/server/index.js +2 -2
  146. package/dist/features/link/server/index.js.map +1 -1
  147. package/dist/features/link/server/schema.d.ts.map +1 -1
  148. package/dist/features/link/server/validate.d.ts.map +1 -1
  149. package/dist/features/link/server/validate.js +1 -1
  150. package/dist/features/link/server/validate.js.map +1 -1
  151. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  152. package/dist/features/lists/checklist/server/index.js +5 -2
  153. package/dist/features/lists/checklist/server/index.js.map +1 -1
  154. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  155. package/dist/features/lists/orderedList/server/index.js +5 -2
  156. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  157. package/dist/features/lists/shared/constants.d.ts +2 -0
  158. package/dist/features/lists/shared/constants.d.ts.map +1 -0
  159. package/dist/features/lists/shared/constants.js +2 -0
  160. package/dist/features/lists/shared/constants.js.map +1 -0
  161. package/dist/features/lists/shared/validate.d.ts +5 -0
  162. package/dist/features/lists/shared/validate.d.ts.map +1 -0
  163. package/dist/features/lists/shared/validate.js +15 -0
  164. package/dist/features/lists/shared/validate.js.map +1 -0
  165. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  166. package/dist/features/lists/unorderedList/server/index.js +5 -2
  167. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  168. package/dist/features/relationship/client/components/index.css +3 -6
  169. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  170. package/dist/features/relationship/client/index.d.ts +2 -2
  171. package/dist/features/relationship/client/index.d.ts.map +1 -1
  172. package/dist/features/relationship/client/index.js.map +1 -1
  173. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  174. package/dist/features/relationship/client/nodes/RelationshipNode.js +0 -3
  175. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  176. package/dist/features/relationship/client/plugins/index.d.ts +2 -2
  177. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  178. package/dist/features/relationship/client/plugins/index.js +27 -31
  179. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  180. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts +2 -4
  181. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  182. package/dist/features/relationship/client/utils/useEnabledRelationships.js +53 -20
  183. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  184. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +2 -2
  185. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  186. package/dist/features/relationship/server/graphQLPopulationPromise.js +2 -2
  187. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  188. package/dist/features/relationship/server/index.d.ts +8 -1
  189. package/dist/features/relationship/server/index.d.ts.map +1 -1
  190. package/dist/features/relationship/server/index.js +28 -11
  191. package/dist/features/relationship/server/index.js.map +1 -1
  192. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  193. package/dist/features/relationship/server/nodes/RelationshipNode.js +1 -5
  194. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  195. package/dist/features/relationship/server/schema.d.ts +3 -2
  196. package/dist/features/relationship/server/schema.d.ts.map +1 -1
  197. package/dist/features/relationship/server/schema.js +9 -12
  198. package/dist/features/relationship/server/schema.js.map +1 -1
  199. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +1 -6
  200. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -1
  201. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +1 -5
  202. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -1
  203. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
  204. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
  205. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
  206. package/dist/features/table/client/index.d.ts.map +1 -0
  207. package/dist/features/table/client/index.js.map +1 -0
  208. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts +8 -0
  209. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts.map +1 -0
  210. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js +19 -0
  211. package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js.map +1 -0
  212. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +0 -1
  213. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  214. package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +17 -44
  215. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  216. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  217. package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +41 -18
  218. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  219. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  220. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  221. package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +0 -3
  222. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  223. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  224. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  225. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  226. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  227. package/dist/features/table/client/utils/debounce.js.map +1 -0
  228. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  229. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  230. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  231. package/dist/features/table/markdownTransformer.js.map +1 -0
  232. package/dist/features/table/server/index.d.ts +3 -0
  233. package/dist/features/table/server/index.d.ts.map +1 -0
  234. package/dist/features/{experimental_table → table}/server/index.js +4 -4
  235. package/dist/features/table/server/index.js.map +1 -0
  236. package/dist/features/table/server/schema.d.ts.map +1 -0
  237. package/dist/features/table/server/schema.js.map +1 -0
  238. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts +8 -0
  239. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts.map +1 -0
  240. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js +80 -0
  241. package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js.map +1 -0
  242. package/dist/features/toolbars/fixed/client/Toolbar/index.css +78 -6
  243. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  244. package/dist/features/toolbars/fixed/client/Toolbar/index.js +19 -1
  245. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  246. package/dist/features/toolbars/inline/client/Toolbar/index.css +0 -1
  247. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  248. package/dist/features/toolbars/inline/client/Toolbar/index.js +17 -2
  249. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  250. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  251. package/dist/features/toolbars/shared/ToolbarButton/index.js +1 -0
  252. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  253. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  254. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +85 -32
  255. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  256. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +16 -14
  257. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  258. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts +5 -0
  259. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts.map +1 -0
  260. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js +79 -0
  261. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js.map +1 -0
  262. package/dist/features/typesServer.d.ts +17 -12
  263. package/dist/features/typesServer.d.ts.map +1 -1
  264. package/dist/features/typesServer.js.map +1 -1
  265. package/dist/features/upload/client/component/index.css +0 -2
  266. package/dist/features/upload/client/component/index.js +2 -1
  267. package/dist/features/upload/client/component/index.js.map +1 -1
  268. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  269. package/dist/features/upload/client/index.d.ts +3 -2
  270. package/dist/features/upload/client/index.d.ts.map +1 -1
  271. package/dist/features/upload/client/index.js.map +1 -1
  272. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  273. package/dist/features/upload/client/nodes/UploadNode.js +0 -7
  274. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  275. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  276. package/dist/features/upload/client/plugin/index.js +50 -53
  277. package/dist/features/upload/client/plugin/index.js.map +1 -1
  278. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +2 -2
  279. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  280. package/dist/features/upload/server/graphQLPopulationPromise.js +1 -1
  281. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  282. package/dist/features/upload/server/index.d.ts +7 -3
  283. package/dist/features/upload/server/index.d.ts.map +1 -1
  284. package/dist/features/upload/server/index.js +20 -16
  285. package/dist/features/upload/server/index.js.map +1 -1
  286. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  287. package/dist/features/upload/server/nodes/UploadNode.js +1 -9
  288. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  289. package/dist/features/upload/server/schema.d.ts +4 -16
  290. package/dist/features/upload/server/schema.d.ts.map +1 -1
  291. package/dist/features/upload/server/schema.js +8 -10
  292. package/dist/features/upload/server/schema.js.map +1 -1
  293. package/dist/features/upload/server/validate.d.ts +2 -2
  294. package/dist/features/upload/server/validate.d.ts.map +1 -1
  295. package/dist/features/upload/server/validate.js +4 -1
  296. package/dist/features/upload/server/validate.js.map +1 -1
  297. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  298. package/dist/field/Diff/converters/listitem/index.js +2 -1
  299. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  300. package/dist/field/Diff/converters/relationship/index.css +0 -1
  301. package/dist/field/Diff/converters/unknown/index.css +0 -1
  302. package/dist/field/Diff/converters/upload/index.css +0 -1
  303. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  304. package/dist/field/Diff/index.css +0 -2
  305. package/dist/field/Diff/index.d.ts +3 -2
  306. package/dist/field/Diff/index.d.ts.map +1 -1
  307. package/dist/field/Diff/index.js +3 -2
  308. package/dist/field/Diff/index.js.map +1 -1
  309. package/dist/field/Field.d.ts.map +1 -1
  310. package/dist/field/Field.js +26 -16
  311. package/dist/field/Field.js.map +1 -1
  312. package/dist/field/RenderLexical/index.d.ts +3 -1
  313. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  314. package/dist/field/RenderLexical/index.js +23 -23
  315. package/dist/field/RenderLexical/index.js.map +1 -1
  316. package/dist/field/ViewSelector.d.ts.map +1 -1
  317. package/dist/field/ViewSelector.js +1 -0
  318. package/dist/field/ViewSelector.js.map +1 -1
  319. package/dist/field/bundled.css +1 -1
  320. package/dist/field/index.css +2 -3
  321. package/dist/field/rscEntry.d.ts +2 -2
  322. package/dist/field/rscEntry.d.ts.map +1 -1
  323. package/dist/field/rscEntry.js.map +1 -1
  324. package/dist/i18n.d.ts.map +1 -1
  325. package/dist/i18n.js +68 -0
  326. package/dist/i18n.js.map +1 -1
  327. package/dist/index.d.ts +5 -5
  328. package/dist/index.d.ts.map +1 -1
  329. package/dist/index.js +31 -52
  330. package/dist/index.js.map +1 -1
  331. package/dist/lexical/LexicalEditor.css +30 -19
  332. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  333. package/dist/lexical/LexicalEditor.js +62 -99
  334. package/dist/lexical/LexicalEditor.js.map +1 -1
  335. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  336. package/dist/lexical/LexicalProvider.js +7 -22
  337. package/dist/lexical/LexicalProvider.js.map +1 -1
  338. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  339. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  340. package/dist/lexical/config/server/loader.d.ts +1 -1
  341. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  342. package/dist/lexical/config/server/loader.js +2 -2
  343. package/dist/lexical/config/server/loader.js.map +1 -1
  344. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  345. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  346. package/dist/lexical/config/server/sanitize.js +2 -2
  347. package/dist/lexical/config/server/sanitize.js.map +1 -1
  348. package/dist/lexical/plugins/DecoratorPlugin/index.d.ts.map +1 -1
  349. package/dist/lexical/plugins/DecoratorPlugin/index.js +24 -21
  350. package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
  351. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +18 -25
  352. package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
  353. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +27 -14
  354. package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
  355. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -1
  356. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +21 -0
  357. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -1
  358. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  359. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  360. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -21
  361. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  362. package/dist/lexical/plugins/SlashMenu/index.css +0 -2
  363. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +1 -0
  364. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +2 -2
  365. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  366. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  367. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +2 -0
  368. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  369. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +16 -2
  370. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  371. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts +7 -0
  372. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.d.ts.map +1 -0
  373. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js +65 -0
  374. package/dist/lexical/plugins/handles/DraggableBlockPlugin/useKeyboardReordering.js.map +1 -0
  375. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  376. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
  377. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +2 -0
  378. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  379. package/dist/lexical/theme/EditorTheme.css +0 -2
  380. package/dist/lexical/ui/ContentEditable.css +19 -14
  381. package/dist/lexical/ui/ContentEditable.d.ts +2 -1
  382. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
  383. package/dist/lexical/ui/ContentEditable.js +32 -11
  384. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  385. package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
  386. package/dist/lexical/ui/icons/H3/index.js +13 -6
  387. package/dist/lexical/ui/icons/H3/index.js.map +1 -1
  388. package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
  389. package/dist/lexical/ui/icons/H4/index.js +13 -6
  390. package/dist/lexical/ui/icons/H4/index.js.map +1 -1
  391. package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
  392. package/dist/lexical/ui/icons/H5/index.js +13 -6
  393. package/dist/lexical/ui/icons/H5/index.js.map +1 -1
  394. package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
  395. package/dist/lexical/ui/icons/H6/index.js +13 -6
  396. package/dist/lexical/ui/icons/H6/index.js.map +1 -1
  397. package/dist/lexical/utils/markdown/createBlockNode.d.ts +1 -1
  398. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  399. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  400. package/dist/lexical/utils/point.d.ts.map +1 -1
  401. package/dist/lexical/utils/rect.d.ts.map +1 -1
  402. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts +2 -0
  403. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -0
  404. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js +2 -0
  405. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -0
  406. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts +2 -0
  407. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -0
  408. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js +2 -0
  409. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -0
  410. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts +2 -0
  411. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -0
  412. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js +2 -0
  413. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -0
  414. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts +2 -0
  415. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -0
  416. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js +2 -0
  417. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -0
  418. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts +2 -0
  419. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -0
  420. package/dist/lexical-proxy/@lexical-react/ReactExtension.js +2 -0
  421. package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -0
  422. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts +2 -0
  423. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -0
  424. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js +2 -0
  425. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -0
  426. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts +2 -0
  427. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -0
  428. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js +2 -0
  429. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -0
  430. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts +2 -0
  431. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -0
  432. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js +2 -0
  433. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -0
  434. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts +2 -0
  435. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -0
  436. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js +2 -0
  437. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -0
  438. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts +2 -0
  439. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts.map +1 -0
  440. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js +2 -0
  441. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js.map +1 -0
  442. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts +2 -0
  443. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts.map +1 -0
  444. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js +2 -0
  445. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js.map +1 -0
  446. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts +2 -0
  447. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts.map +1 -0
  448. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js +2 -0
  449. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js.map +1 -0
  450. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts +2 -0
  451. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts.map +1 -0
  452. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js +2 -0
  453. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js.map +1 -0
  454. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts +2 -0
  455. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts.map +1 -0
  456. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js +2 -0
  457. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js.map +1 -0
  458. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts +2 -0
  459. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts.map +1 -0
  460. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js +2 -0
  461. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js.map +1 -0
  462. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  463. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
  464. package/dist/presets/llmInstructions.d.ts +2 -0
  465. package/dist/presets/llmInstructions.d.ts.map +1 -0
  466. package/dist/presets/llmInstructions.js +13 -0
  467. package/dist/presets/llmInstructions.js.map +1 -0
  468. package/dist/types/builtInNodes.d.ts +1 -1
  469. package/dist/types/builtInNodes.d.ts.map +1 -1
  470. package/dist/types/builtInNodes.js +8 -3
  471. package/dist/types/builtInNodes.js.map +1 -1
  472. package/dist/types/index.d.ts +4 -7
  473. package/dist/types/index.d.ts.map +1 -1
  474. package/dist/types/index.js.map +1 -1
  475. package/dist/types/jsonSchemaHelpers.d.ts +5 -1
  476. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -1
  477. package/dist/types/jsonSchemaHelpers.js +7 -2
  478. package/dist/types/jsonSchemaHelpers.js.map +1 -1
  479. package/dist/types/nodeTypes.d.ts +6 -1
  480. package/dist/types/nodeTypes.d.ts.map +1 -1
  481. package/dist/types/nodeTypes.js.map +1 -1
  482. package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
  483. package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
  484. package/dist/utilities/buildInitialState.d.ts +3 -2
  485. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  486. package/dist/utilities/buildInitialState.js +1 -0
  487. package/dist/utilities/buildInitialState.js.map +1 -1
  488. package/dist/utilities/createServerFeature.d.ts +1 -1
  489. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  490. package/dist/utilities/createServerFeature.js +2 -2
  491. package/dist/utilities/createServerFeature.js.map +1 -1
  492. package/dist/utilities/editorConfigFactory.d.ts +6 -6
  493. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  494. package/dist/utilities/editorConfigFactory.js +9 -9
  495. package/dist/utilities/editorConfigFactory.js.map +1 -1
  496. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +1 -1
  497. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -1
  498. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  499. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  500. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
  501. package/dist/utilities/generateImportMap.d.ts +3 -3
  502. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  503. package/dist/utilities/generateImportMap.js +3 -7
  504. package/dist/utilities/generateImportMap.js.map +1 -1
  505. package/dist/utilities/generateSchemaMap.d.ts +1 -1
  506. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  507. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  508. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  509. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  510. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  511. package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
  512. package/dist/utilities/upgradeLexicalData/index.js +6 -3
  513. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  514. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  515. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  516. package/dist/validate/hasText.d.ts +2 -2
  517. package/dist/validate/hasText.d.ts.map +1 -1
  518. package/dist/validate/hasText.js.map +1 -1
  519. package/dist/validate/index.d.ts +1 -1
  520. package/dist/validate/index.d.ts.map +1 -1
  521. package/package.json +99 -27
  522. package/dist/@types/assets.d.js +0 -2
  523. package/dist/@types/assets.d.js.map +0 -1
  524. package/dist/dependencyChecker.spec.js +0 -16
  525. package/dist/dependencyChecker.spec.js.map +0 -1
  526. package/dist/exports/client/Field-DXKR3OGV.js +0 -2
  527. package/dist/exports/client/Field-DXKR3OGV.js.map +0 -7
  528. package/dist/exports/client/bundled.css +0 -1
  529. package/dist/exports/client/chunk-ESITTE3C.js +0 -2
  530. package/dist/exports/client/chunk-ESITTE3C.js.map +0 -7
  531. package/dist/exports/client/chunk-UD4DQ4AK.js +0 -2
  532. package/dist/exports/client/chunk-UD4DQ4AK.js.map +0 -7
  533. package/dist/exports/client/chunk-X3D4LZS7.js +0 -2
  534. package/dist/exports/client/component-PHZQBOJE.js +0 -2
  535. package/dist/exports/client/component-PHZQBOJE.js.map +0 -7
  536. package/dist/exports/client/componentInline-H24N7GUG.js +0 -2
  537. package/dist/exports/server/rsc.browser.d.ts +0 -11
  538. package/dist/exports/server/rsc.browser.d.ts.map +0 -1
  539. package/dist/exports/server/rsc.browser.js +0 -10
  540. package/dist/exports/server/rsc.browser.js.map +0 -1
  541. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts +0 -11
  542. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +0 -1
  543. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +0 -20
  544. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +0 -1
  545. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +0 -180
  546. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +0 -1
  547. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  548. package/dist/features/experimental_table/client/index.js.map +0 -1
  549. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  550. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  551. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  552. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  553. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  554. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  555. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
  556. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
  557. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  558. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  559. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  560. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  561. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  562. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  563. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  564. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  565. package/dist/features/experimental_table/server/index.d.ts +0 -3
  566. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  567. package/dist/features/experimental_table/server/index.js.map +0 -1
  568. package/dist/features/experimental_table/server/schema.d.ts.map +0 -1
  569. package/dist/features/experimental_table/server/schema.js.map +0 -1
  570. package/dist/features/link/markdownTransformer.spec.js +0 -195
  571. package/dist/features/link/markdownTransformer.spec.js.map +0 -1
  572. package/dist/field/clientEntry.d.ts +0 -29
  573. package/dist/field/clientEntry.d.ts.map +0 -1
  574. package/dist/field/clientEntry.js +0 -86
  575. package/dist/field/clientEntry.js.map +0 -1
  576. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js +0 -88
  577. package/dist/lexical/utils/markdown/convertFromMarkdownString.spec.js.map +0 -1
  578. package/dist/lexical/utils/url.spec.js +0 -114
  579. package/dist/lexical/utils/url.spec.js.map +0 -1
  580. package/dist/utilities/jsx/jsx.spec.js +0 -178
  581. package/dist/utilities/jsx/jsx.spec.js.map +0 -1
  582. /package/dist/exports/client/{componentInline-H24N7GUG.js.map → componentInline-HNE5G4TE.js.map} +0 -0
  583. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  584. /package/dist/features/{experimental_table → table}/client/index.js +0 -0
  585. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
  586. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
  587. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
  588. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  589. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
  590. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
  591. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
  592. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
  593. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
  594. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +0 -0
  595. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  596. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  597. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  598. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
  599. /package/dist/features/{experimental_table → table}/markdownTransformer.d.ts +0 -0
  600. /package/dist/features/{experimental_table → table}/markdownTransformer.js +0 -0
  601. /package/dist/features/{experimental_table → table}/server/schema.d.ts +0 -0
  602. /package/dist/features/{experimental_table → table}/server/schema.js +0 -0
@@ -1,195 +0,0 @@
1
- import { createHeadlessEditor } from '@lexical/headless';
2
- import { $createParagraphNode, $createTextNode, $getRoot } from 'lexical';
3
- import { describe, expect, it } from 'vitest';
4
- import { $convertToMarkdownString } from '@lexical/markdown';
5
- import { AutoLinkNode } from './nodes/AutoLinkNode.js';
6
- import { $createLinkNode, LinkNode } from './nodes/LinkNode.js';
7
- import { PAYLOAD_LINK, createPayloadLinkTransformer } from './markdownTransformer.js';
8
- function createEditor() {
9
- return createHeadlessEditor({
10
- nodes: [LinkNode, AutoLinkNode]
11
- });
12
- }
13
- function toMarkdown(setupFn, transformer = PAYLOAD_LINK) {
14
- const editor = createEditor();
15
- editor.update(setupFn, {
16
- discrete: true
17
- });
18
- let markdown = '';
19
- editor.getEditorState().read(() => {
20
- markdown = $convertToMarkdownString([transformer]);
21
- });
22
- return markdown;
23
- }
24
- describe('createPayloadLinkTransformer', () => {
25
- describe('custom links', () => {
26
- it('should export a custom link with its url', () => {
27
- const markdown = toMarkdown(() => {
28
- const link = $createLinkNode({
29
- fields: {
30
- linkType: 'custom',
31
- url: 'https://payloadcms.com',
32
- newTab: false,
33
- doc: null
34
- }
35
- });
36
- link.append($createTextNode('Payload'));
37
- $getRoot().append($createParagraphNode().append(link));
38
- });
39
- expect(markdown).toBe('[Payload](https://payloadcms.com)');
40
- });
41
- it('should export a custom link that opens in a new tab', () => {
42
- // newTab is a Payload field — markdown has no equivalent, so it is intentionally dropped
43
- const markdown = toMarkdown(() => {
44
- const link = $createLinkNode({
45
- fields: {
46
- linkType: 'custom',
47
- url: 'https://payloadcms.com',
48
- newTab: true,
49
- doc: null
50
- }
51
- });
52
- link.append($createTextNode('Payload'));
53
- $getRoot().append($createParagraphNode().append(link));
54
- });
55
- expect(markdown).toBe('[Payload](https://payloadcms.com)');
56
- });
57
- it('should produce an empty href when url is null or undefined', () => {
58
- const markdownNull = toMarkdown(() => {
59
- const link = $createLinkNode({
60
- fields: {
61
- linkType: 'custom',
62
- url: null,
63
- newTab: false,
64
- doc: null
65
- }
66
- });
67
- link.append($createTextNode('Broken'));
68
- $getRoot().append($createParagraphNode().append(link));
69
- });
70
- const markdownUndefined = toMarkdown(() => {
71
- const link = $createLinkNode({
72
- fields: {
73
- linkType: 'custom',
74
- newTab: false,
75
- doc: null
76
- }
77
- });
78
- link.append($createTextNode('Broken'));
79
- $getRoot().append($createParagraphNode().append(link));
80
- });
81
- expect(markdownNull).toBe('[Broken]()');
82
- expect(markdownUndefined).toBe('[Broken]()');
83
- });
84
- });
85
- describe('internal links', () => {
86
- it('should export an empty href when no internalDocToHref is provided', () => {
87
- const markdown = toMarkdown(() => {
88
- const link = $createLinkNode({
89
- fields: {
90
- linkType: 'internal',
91
- doc: {
92
- relationTo: 'pages',
93
- value: {
94
- id: '1',
95
- slug: 'about'
96
- }
97
- },
98
- newTab: false
99
- }
100
- });
101
- link.append($createTextNode('About'));
102
- $getRoot().append($createParagraphNode().append(link));
103
- });
104
- expect(markdown).toBe('[About]()');
105
- });
106
- it('should call internalDocToHref and use the returned url', () => {
107
- const transformer = createPayloadLinkTransformer({
108
- internalDocToHref: ({
109
- linkNode
110
- }) => {
111
- const value = linkNode.fields.doc?.value;
112
- if (value && typeof value === 'object' && 'slug' in value) {
113
- return `/${value.slug}`;
114
- }
115
- return '/';
116
- }
117
- });
118
- const markdown = toMarkdown(() => {
119
- const link = $createLinkNode({
120
- fields: {
121
- linkType: 'internal',
122
- doc: {
123
- relationTo: 'pages',
124
- value: {
125
- id: '1',
126
- slug: 'about'
127
- }
128
- },
129
- newTab: false
130
- }
131
- });
132
- link.append($createTextNode('About'));
133
- $getRoot().append($createParagraphNode().append(link));
134
- }, transformer);
135
- expect(markdown).toBe('[About](/about)');
136
- });
137
- it('should pass the full serialized link node to internalDocToHref', () => {
138
- let capturedLinkNode = null;
139
- const transformer = createPayloadLinkTransformer({
140
- internalDocToHref: ({
141
- linkNode
142
- }) => {
143
- capturedLinkNode = linkNode;
144
- return '/captured';
145
- }
146
- });
147
- toMarkdown(() => {
148
- const link = $createLinkNode({
149
- fields: {
150
- linkType: 'internal',
151
- doc: {
152
- relationTo: 'pages',
153
- value: {
154
- id: '42',
155
- title: 'Home'
156
- }
157
- },
158
- newTab: true
159
- }
160
- });
161
- link.append($createTextNode('Home'));
162
- $getRoot().append($createParagraphNode().append(link));
163
- }, transformer);
164
- expect(capturedLinkNode).not.toBeNull();
165
- expect(capturedLinkNode.fields.linkType).toBe('internal');
166
- expect(capturedLinkNode.fields.doc?.relationTo).toBe('pages');
167
- expect(capturedLinkNode.fields.doc?.value).toMatchObject({
168
- id: '42',
169
- title: 'Home'
170
- });
171
- expect(capturedLinkNode.fields.newTab).toBe(true);
172
- });
173
- });
174
- describe('PAYLOAD_LINK (static export)', () => {
175
- it('should behave identically to createPayloadLinkTransformer() with no args', () => {
176
- const setup = () => {
177
- const link = $createLinkNode({
178
- fields: {
179
- linkType: 'custom',
180
- url: 'https://example.com',
181
- newTab: false,
182
- doc: null
183
- }
184
- });
185
- link.append($createTextNode('Example'));
186
- $getRoot().append($createParagraphNode().append(link));
187
- };
188
- const fromStatic = toMarkdown(setup, PAYLOAD_LINK);
189
- const fromFactory = toMarkdown(setup, createPayloadLinkTransformer());
190
- expect(fromStatic).toBe(fromFactory);
191
- expect(fromStatic).toBe('[Example](https://example.com)');
192
- });
193
- });
194
- });
195
- //# sourceMappingURL=markdownTransformer.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdownTransformer.spec.js","names":["createHeadlessEditor","$createParagraphNode","$createTextNode","$getRoot","describe","expect","it","$convertToMarkdownString","AutoLinkNode","$createLinkNode","LinkNode","PAYLOAD_LINK","createPayloadLinkTransformer","createEditor","nodes","toMarkdown","setupFn","transformer","editor","update","discrete","markdown","getEditorState","read","link","fields","linkType","url","newTab","doc","append","toBe","markdownNull","markdownUndefined","relationTo","value","id","slug","internalDocToHref","linkNode","capturedLinkNode","title","not","toBeNull","toMatchObject","setup","fromStatic","fromFactory"],"sources":["../../../src/features/link/markdownTransformer.spec.ts"],"sourcesContent":["import { createHeadlessEditor } from '@lexical/headless'\nimport { $createParagraphNode, $createTextNode, $getRoot } from 'lexical'\nimport { describe, expect, it } from 'vitest'\n\nimport { $convertToMarkdownString } from '@lexical/markdown'\nimport { AutoLinkNode } from './nodes/AutoLinkNode.js'\nimport { $createLinkNode, LinkNode } from './nodes/LinkNode.js'\nimport type { SerializedLinkNode } from './server/schema.js'\nimport { PAYLOAD_LINK, createPayloadLinkTransformer } from './markdownTransformer.js'\n\nfunction createEditor() {\n return createHeadlessEditor({ nodes: [LinkNode, AutoLinkNode] })\n}\n\nfunction toMarkdown(setupFn: () => void, transformer = PAYLOAD_LINK): string {\n const editor = createEditor()\n editor.update(setupFn, { discrete: true })\n let markdown = ''\n editor.getEditorState().read(() => {\n markdown = $convertToMarkdownString([transformer])\n })\n return markdown\n}\n\ndescribe('createPayloadLinkTransformer', () => {\n describe('custom links', () => {\n it('should export a custom link with its url', () => {\n const markdown = toMarkdown(() => {\n const link = $createLinkNode({\n fields: { linkType: 'custom', url: 'https://payloadcms.com', newTab: false, doc: null },\n })\n link.append($createTextNode('Payload'))\n $getRoot().append($createParagraphNode().append(link))\n })\n\n expect(markdown).toBe('[Payload](https://payloadcms.com)')\n })\n\n it('should export a custom link that opens in a new tab', () => {\n // newTab is a Payload field — markdown has no equivalent, so it is intentionally dropped\n const markdown = toMarkdown(() => {\n const link = $createLinkNode({\n fields: { linkType: 'custom', url: 'https://payloadcms.com', newTab: true, doc: null },\n })\n link.append($createTextNode('Payload'))\n $getRoot().append($createParagraphNode().append(link))\n })\n\n expect(markdown).toBe('[Payload](https://payloadcms.com)')\n })\n\n it('should produce an empty href when url is null or undefined', () => {\n const markdownNull = toMarkdown(() => {\n const link = $createLinkNode({\n fields: { linkType: 'custom', url: null as unknown as string, newTab: false, doc: null },\n })\n link.append($createTextNode('Broken'))\n $getRoot().append($createParagraphNode().append(link))\n })\n\n const markdownUndefined = toMarkdown(() => {\n const link = $createLinkNode({\n fields: { linkType: 'custom', newTab: false, doc: null },\n })\n link.append($createTextNode('Broken'))\n $getRoot().append($createParagraphNode().append(link))\n })\n\n expect(markdownNull).toBe('[Broken]()')\n expect(markdownUndefined).toBe('[Broken]()')\n })\n })\n\n describe('internal links', () => {\n it('should export an empty href when no internalDocToHref is provided', () => {\n const markdown = toMarkdown(() => {\n const link = $createLinkNode({\n fields: {\n linkType: 'internal',\n doc: { relationTo: 'pages', value: { id: '1', slug: 'about' } },\n newTab: false,\n },\n })\n link.append($createTextNode('About'))\n $getRoot().append($createParagraphNode().append(link))\n })\n\n expect(markdown).toBe('[About]()')\n })\n\n it('should call internalDocToHref and use the returned url', () => {\n const transformer = createPayloadLinkTransformer({\n internalDocToHref: ({ linkNode }) => {\n const value = linkNode.fields.doc?.value\n if (value && typeof value === 'object' && 'slug' in value) {\n return `/${value.slug}`\n }\n return '/'\n },\n })\n\n const markdown = toMarkdown(() => {\n const link = $createLinkNode({\n fields: {\n linkType: 'internal',\n doc: { relationTo: 'pages', value: { id: '1', slug: 'about' } },\n newTab: false,\n },\n })\n link.append($createTextNode('About'))\n $getRoot().append($createParagraphNode().append(link))\n }, transformer)\n\n expect(markdown).toBe('[About](/about)')\n })\n\n it('should pass the full serialized link node to internalDocToHref', () => {\n let capturedLinkNode: SerializedLinkNode | null = null\n\n const transformer = createPayloadLinkTransformer({\n internalDocToHref: ({ linkNode }) => {\n capturedLinkNode = linkNode\n return '/captured'\n },\n })\n\n toMarkdown(() => {\n const link = $createLinkNode({\n fields: {\n linkType: 'internal',\n doc: { relationTo: 'pages', value: { id: '42', title: 'Home' } },\n newTab: true,\n },\n })\n link.append($createTextNode('Home'))\n $getRoot().append($createParagraphNode().append(link))\n }, transformer)\n\n expect(capturedLinkNode).not.toBeNull()\n expect(capturedLinkNode!.fields.linkType).toBe('internal')\n expect(capturedLinkNode!.fields.doc?.relationTo).toBe('pages')\n expect(capturedLinkNode!.fields.doc?.value).toMatchObject({ id: '42', title: 'Home' })\n expect(capturedLinkNode!.fields.newTab).toBe(true)\n })\n })\n\n describe('PAYLOAD_LINK (static export)', () => {\n it('should behave identically to createPayloadLinkTransformer() with no args', () => {\n const setup = () => {\n const link = $createLinkNode({\n fields: { linkType: 'custom', url: 'https://example.com', newTab: false, doc: null },\n })\n link.append($createTextNode('Example'))\n $getRoot().append($createParagraphNode().append(link))\n }\n\n const fromStatic = toMarkdown(setup, PAYLOAD_LINK)\n const fromFactory = toMarkdown(setup, createPayloadLinkTransformer())\n\n expect(fromStatic).toBe(fromFactory)\n expect(fromStatic).toBe('[Example](https://example.com)')\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1,29 +0,0 @@
1
- import type { ImportMap, RichTextFieldClientProps } from 'payload';
2
- import React from 'react';
3
- import type { FeatureClientSchemaMap } from '../types/index.js';
4
- type SerializedFeatureMetadata = {
5
- ClientFeature?: {
6
- clientProps?: Record<string, any>;
7
- path: string;
8
- } | string;
9
- clientFeatureProps?: Record<string, any>;
10
- componentImports?: Record<string, {
11
- clientProps?: Record<string, any>;
12
- path: string;
13
- } | string>;
14
- key: string;
15
- order: number;
16
- };
17
- export type ClientEntryLexicalFieldProps = {
18
- featureClientSchemaMap?: FeatureClientSchemaMap;
19
- features?: Record<string, SerializedFeatureMetadata>;
20
- importMap: ImportMap;
21
- } & RichTextFieldClientProps;
22
- /**
23
- * Client-only entry point for the Lexical rich text field.
24
- * Resolves feature providers and component imports from the import map on the client,
25
- * bypassing the RSC entry point that requires server-only data.
26
- */
27
- export declare const ClientEntryLexicalField: React.FC<ClientEntryLexicalFieldProps>;
28
- export {};
29
- //# sourceMappingURL=clientEntry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientEntry.d.ts","sourceRoot":"","sources":["../../src/field/clientEntry.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAuB,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAGvF,OAAO,KAAkB,MAAM,OAAO,CAAA;AAMtC,OAAO,KAAK,EAAE,sBAAsB,EAA6B,MAAM,mBAAmB,CAAA;AAI1F,KAAK,yBAAyB,GAAG;IAC/B,aAAa,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAA;IAC5E,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,CAAA;IAC/F,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;IACpD,SAAS,EAAE,SAAS,CAAA;CACrB,GAAG,wBAAwB,CAAA;AAE5B;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAqF1E,CAAA"}
@@ -1,86 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- import { getFromImportMap } from 'payload/shared';
5
- import React, { useMemo } from 'react';
6
- import { RichTextField } from './index.js';
7
- /**
8
- * Client-only entry point for the Lexical rich text field.
9
- * Resolves feature providers and component imports from the import map on the client,
10
- * bypassing the RSC entry point that requires server-only data.
11
- */
12
- export const ClientEntryLexicalField = props => {
13
- const {
14
- featureClientSchemaMap = {},
15
- features = {},
16
- field,
17
- forceRender,
18
- importMap,
19
- path,
20
- permissions,
21
- readOnly,
22
- schemaPath
23
- } = props;
24
- const {
25
- clientFeatures,
26
- featureClientImportMap
27
- } = useMemo(() => {
28
- const resolvedClientFeatures = {};
29
- const resolvedFeatureImportMap = {};
30
- const sortedFeatures = Object.entries(features).sort(([, a], [, b]) => a.order - b.order);
31
- for (const [featureKey, featureMeta] of sortedFeatures) {
32
- resolvedClientFeatures[featureKey] = {};
33
- if (featureMeta.ClientFeature) {
34
- const clientFeatureProvider = getFromImportMap({
35
- importMap,
36
- PayloadComponent: featureMeta.ClientFeature,
37
- schemaPath: 'lexical-clientComponent',
38
- silent: true
39
- });
40
- if (clientFeatureProvider) {
41
- const clientFeatureProps = {
42
- ...(featureMeta.clientFeatureProps ?? {}),
43
- featureKey: featureMeta.key,
44
- order: featureMeta.order
45
- };
46
- if (typeof featureMeta.ClientFeature === 'object' && featureMeta.ClientFeature.clientProps) {
47
- clientFeatureProps.clientProps = featureMeta.ClientFeature.clientProps;
48
- }
49
- resolvedClientFeatures[featureKey] = {
50
- clientFeatureProps,
51
- clientFeatureProvider
52
- };
53
- }
54
- }
55
- if (featureMeta.componentImports && typeof featureMeta.componentImports === 'object') {
56
- for (const [importKey, payloadComponent] of Object.entries(featureMeta.componentImports)) {
57
- const resolvedComponent = getFromImportMap({
58
- importMap,
59
- PayloadComponent: payloadComponent,
60
- schemaPath: 'lexical-clientComponent',
61
- silent: true
62
- });
63
- if (resolvedComponent) {
64
- resolvedFeatureImportMap[`${featureKey}.${importKey}`] = resolvedComponent;
65
- }
66
- }
67
- }
68
- }
69
- return {
70
- clientFeatures: resolvedClientFeatures,
71
- featureClientImportMap: resolvedFeatureImportMap
72
- };
73
- }, [features, importMap]);
74
- return /*#__PURE__*/_jsx(RichTextField, {
75
- clientFeatures: clientFeatures,
76
- featureClientImportMap: featureClientImportMap,
77
- featureClientSchemaMap: featureClientSchemaMap,
78
- field: field,
79
- forceRender: forceRender,
80
- path: path,
81
- permissions: permissions,
82
- readOnly: readOnly,
83
- schemaPath: schemaPath
84
- });
85
- };
86
- //# sourceMappingURL=clientEntry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientEntry.js","names":["getFromImportMap","React","useMemo","RichTextField","ClientEntryLexicalField","props","featureClientSchemaMap","features","field","forceRender","importMap","path","permissions","readOnly","schemaPath","clientFeatures","featureClientImportMap","resolvedClientFeatures","resolvedFeatureImportMap","sortedFeatures","Object","entries","sort","a","b","order","featureKey","featureMeta","ClientFeature","clientFeatureProvider","PayloadComponent","silent","clientFeatureProps","key","clientProps","componentImports","importKey","payloadComponent","resolvedComponent","_jsx"],"sources":["../../src/field/clientEntry.tsx"],"sourcesContent":["'use client'\n\nimport type { ImportMap, RichTextFieldClient, RichTextFieldClientProps } from 'payload'\n\nimport { getFromImportMap } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport type {\n BaseClientFeatureProps,\n FeatureProviderProviderClient,\n} from '../features/typesClient.js'\nimport type { FeatureClientSchemaMap, LexicalRichTextFieldProps } from '../types/index.js'\n\nimport { RichTextField } from './index.js'\n\ntype SerializedFeatureMetadata = {\n ClientFeature?: { clientProps?: Record<string, any>; path: string } | string\n clientFeatureProps?: Record<string, any>\n componentImports?: Record<string, { clientProps?: Record<string, any>; path: string } | string>\n key: string\n order: number\n}\n\nexport type ClientEntryLexicalFieldProps = {\n featureClientSchemaMap?: FeatureClientSchemaMap\n features?: Record<string, SerializedFeatureMetadata>\n importMap: ImportMap\n} & RichTextFieldClientProps\n\n/**\n * Client-only entry point for the Lexical rich text field.\n * Resolves feature providers and component imports from the import map on the client,\n * bypassing the RSC entry point that requires server-only data.\n */\nexport const ClientEntryLexicalField: React.FC<ClientEntryLexicalFieldProps> = (props) => {\n const {\n featureClientSchemaMap = {},\n features = {},\n field,\n forceRender,\n importMap,\n path,\n permissions,\n readOnly,\n schemaPath,\n } = props\n\n const { clientFeatures, featureClientImportMap } = useMemo(() => {\n const resolvedClientFeatures: LexicalRichTextFieldProps['clientFeatures'] = {}\n const resolvedFeatureImportMap: Record<string, any> = {}\n\n const sortedFeatures = Object.entries(features).sort(([, a], [, b]) => a.order - b.order)\n\n for (const [featureKey, featureMeta] of sortedFeatures) {\n resolvedClientFeatures[featureKey] = {}\n\n if (featureMeta.ClientFeature) {\n const clientFeatureProvider = getFromImportMap<FeatureProviderProviderClient | undefined>({\n importMap,\n PayloadComponent: featureMeta.ClientFeature,\n schemaPath: 'lexical-clientComponent',\n silent: true,\n })\n\n if (clientFeatureProvider) {\n const clientFeatureProps: BaseClientFeatureProps<Record<string, any>> = {\n ...(featureMeta.clientFeatureProps ?? {}),\n featureKey: featureMeta.key,\n order: featureMeta.order,\n }\n\n if (\n typeof featureMeta.ClientFeature === 'object' &&\n featureMeta.ClientFeature.clientProps\n ) {\n clientFeatureProps.clientProps = (featureMeta.ClientFeature as any).clientProps\n }\n\n resolvedClientFeatures[featureKey] = {\n clientFeatureProps,\n clientFeatureProvider,\n }\n }\n }\n\n if (featureMeta.componentImports && typeof featureMeta.componentImports === 'object') {\n for (const [importKey, payloadComponent] of Object.entries(featureMeta.componentImports)) {\n const resolvedComponent = getFromImportMap({\n importMap,\n PayloadComponent: payloadComponent,\n schemaPath: 'lexical-clientComponent',\n silent: true,\n })\n if (resolvedComponent) {\n resolvedFeatureImportMap[`${featureKey}.${importKey}`] = resolvedComponent\n }\n }\n }\n }\n\n return {\n clientFeatures: resolvedClientFeatures,\n featureClientImportMap: resolvedFeatureImportMap,\n }\n }, [features, importMap])\n\n return (\n <RichTextField\n clientFeatures={clientFeatures}\n featureClientImportMap={featureClientImportMap}\n featureClientSchemaMap={featureClientSchemaMap}\n field={field as RichTextFieldClient}\n forceRender={forceRender}\n path={path}\n permissions={permissions as LexicalRichTextFieldProps['permissions']}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,gBAAgB,QAAQ;AACjC,OAAOC,KAAA,IAASC,OAAO,QAAQ;AAQ/B,SAASC,aAAa,QAAQ;AAgB9B;;;;;AAKA,OAAO,MAAMC,uBAAA,GAAmEC,KAAA;EAC9E,MAAM;IACJC,sBAAA,GAAyB,CAAC,CAAC;IAC3BC,QAAA,GAAW,CAAC,CAAC;IACbC,KAAK;IACLC,WAAW;IACXC,SAAS;IACTC,IAAI;IACJC,WAAW;IACXC,QAAQ;IACRC;EAAU,CACX,GAAGT,KAAA;EAEJ,MAAM;IAAEU,cAAc;IAAEC;EAAsB,CAAE,GAAGd,OAAA,CAAQ;IACzD,MAAMe,sBAAA,GAAsE,CAAC;IAC7E,MAAMC,wBAAA,GAAgD,CAAC;IAEvD,MAAMC,cAAA,GAAiBC,MAAA,CAAOC,OAAO,CAACd,QAAA,EAAUe,IAAI,CAAC,CAAC,GAAGC,CAAA,CAAE,EAAE,GAAGC,CAAA,CAAE,KAAKD,CAAA,CAAEE,KAAK,GAAGD,CAAA,CAAEC,KAAK;IAExF,KAAK,MAAM,CAACC,UAAA,EAAYC,WAAA,CAAY,IAAIR,cAAA,EAAgB;MACtDF,sBAAsB,CAACS,UAAA,CAAW,GAAG,CAAC;MAEtC,IAAIC,WAAA,CAAYC,aAAa,EAAE;QAC7B,MAAMC,qBAAA,GAAwB7B,gBAAA,CAA4D;UACxFU,SAAA;UACAoB,gBAAA,EAAkBH,WAAA,CAAYC,aAAa;UAC3Cd,UAAA,EAAY;UACZiB,MAAA,EAAQ;QACV;QAEA,IAAIF,qBAAA,EAAuB;UACzB,MAAMG,kBAAA,GAAkE;YACtE,IAAIL,WAAA,CAAYK,kBAAkB,IAAI,CAAC,CAAC;YACxCN,UAAA,EAAYC,WAAA,CAAYM,GAAG;YAC3BR,KAAA,EAAOE,WAAA,CAAYF;UACrB;UAEA,IACE,OAAOE,WAAA,CAAYC,aAAa,KAAK,YACrCD,WAAA,CAAYC,aAAa,CAACM,WAAW,EACrC;YACAF,kBAAA,CAAmBE,WAAW,GAAGP,WAAC,CAAYC,aAAa,CAASM,WAAW;UACjF;UAEAjB,sBAAsB,CAACS,UAAA,CAAW,GAAG;YACnCM,kBAAA;YACAH;UACF;QACF;MACF;MAEA,IAAIF,WAAA,CAAYQ,gBAAgB,IAAI,OAAOR,WAAA,CAAYQ,gBAAgB,KAAK,UAAU;QACpF,KAAK,MAAM,CAACC,SAAA,EAAWC,gBAAA,CAAiB,IAAIjB,MAAA,CAAOC,OAAO,CAACM,WAAA,CAAYQ,gBAAgB,GAAG;UACxF,MAAMG,iBAAA,GAAoBtC,gBAAA,CAAiB;YACzCU,SAAA;YACAoB,gBAAA,EAAkBO,gBAAA;YAClBvB,UAAA,EAAY;YACZiB,MAAA,EAAQ;UACV;UACA,IAAIO,iBAAA,EAAmB;YACrBpB,wBAAwB,CAAC,GAAGQ,UAAA,IAAcU,SAAA,EAAW,CAAC,GAAGE,iBAAA;UAC3D;QACF;MACF;IACF;IAEA,OAAO;MACLvB,cAAA,EAAgBE,sBAAA;MAChBD,sBAAA,EAAwBE;IAC1B;EACF,GAAG,CAACX,QAAA,EAAUG,SAAA,CAAU;EAExB,oBACE6B,IAAA,CAACpC,aAAA;IACCY,cAAA,EAAgBA,cAAA;IAChBC,sBAAA,EAAwBA,sBAAA;IACxBV,sBAAA,EAAwBA,sBAAA;IACxBE,KAAA,EAAOA,KAAA;IACPC,WAAA,EAAaA,WAAA;IACbE,IAAA,EAAMA,IAAA;IACNC,WAAA,EAAaA,WAAA;IACbC,QAAA,EAAUA,QAAA;IACVC,UAAA,EAAYA;;AAGlB","ignoreList":[]}
@@ -1,88 +0,0 @@
1
- import { createHeadlessEditor } from '@lexical/headless';
2
- import { LinkNode } from '@lexical/link';
3
- import { ListItemNode, ListNode } from '@lexical/list';
4
- import { $convertToMarkdownString } from '@lexical/markdown';
5
- import { HeadingNode, QuoteNode } from '@lexical/rich-text';
6
- import { $getRoot, $isElementNode, $isLineBreakNode } from 'lexical';
7
- import { describe, expect, it } from 'vitest';
8
- import { $convertFromMarkdownString } from './convertFromMarkdownString.js';
9
- function createEditor() {
10
- return createHeadlessEditor({
11
- nodes: [HeadingNode, QuoteNode, ListNode, ListItemNode, LinkNode]
12
- });
13
- }
14
- // Payload's editor imports markdown with shouldMergeAdjacentLines = true, so the
15
- // specs exercise that path: hard line breaks must survive even when adjacent lines
16
- // are merged, while soft wraps collapse to a single space.
17
- function importMarkdown(markdown) {
18
- const editor = createEditor();
19
- editor.update(() => $convertFromMarkdownString(markdown, undefined, undefined, false, true), {
20
- discrete: true
21
- });
22
- let result = {
23
- hasLineBreak: false,
24
- textContent: ''
25
- };
26
- editor.getEditorState().read(() => {
27
- const firstChild = $getRoot().getFirstChild();
28
- if (!$isElementNode(firstChild)) {
29
- throw new Error('Expected an element block');
30
- }
31
- result = {
32
- hasLineBreak: firstChild.getChildren().some(child => $isLineBreakNode(child)),
33
- textContent: firstChild.getTextContent()
34
- };
35
- });
36
- return result;
37
- }
38
- function roundTrip(markdown) {
39
- const editor = createEditor();
40
- editor.update(() => $convertFromMarkdownString(markdown, undefined, undefined, false, true), {
41
- discrete: true
42
- });
43
- let output = '';
44
- editor.getEditorState().read(() => {
45
- output = $convertToMarkdownString();
46
- });
47
- return output;
48
- }
49
- describe('markdown hard line break import', () => {
50
- it('should import a trailing-space hard break as a line break node with the marker stripped', () => {
51
- const {
52
- hasLineBreak,
53
- textContent
54
- } = importMarkdown(['foo ', 'bar'].join('\n'));
55
- expect(hasLineBreak).toBe(true);
56
- expect(textContent).toBe('foo\nbar');
57
- });
58
- it('should import a backslash hard break as a line break node with the marker stripped', () => {
59
- const {
60
- hasLineBreak,
61
- textContent
62
- } = importMarkdown('foo\\\nbar');
63
- expect(hasLineBreak).toBe(true);
64
- expect(textContent).toBe('foo\nbar');
65
- });
66
- });
67
- describe('markdown hard line break round trip', () => {
68
- it('should round trip a trailing-space hard break', () => {
69
- const md = ['foo ', 'bar'].join('\n');
70
- expect(roundTrip(md)).toBe(md);
71
- });
72
- it('should round trip a backslash hard break', () => {
73
- const md = 'foo\\\nbar';
74
- expect(roundTrip(md)).toBe(md);
75
- });
76
- it('should not introduce a hard break for a soft wrap', () => {
77
- expect(roundTrip(['foo', 'bar'].join('\n'))).toBe('foo bar');
78
- });
79
- it('should round trip a hard break after formatted text', () => {
80
- const md = '**foo** \nbar';
81
- expect(roundTrip(md)).toBe(md);
82
- });
83
- it('should round trip a hard break after a link', () => {
84
- const md = '[foo](https://payloadcms.com) \nbar';
85
- expect(roundTrip(md)).toBe(md);
86
- });
87
- });
88
- //# sourceMappingURL=convertFromMarkdownString.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convertFromMarkdownString.spec.js","names":["createHeadlessEditor","LinkNode","ListItemNode","ListNode","$convertToMarkdownString","HeadingNode","QuoteNode","$getRoot","$isElementNode","$isLineBreakNode","describe","expect","it","$convertFromMarkdownString","createEditor","nodes","importMarkdown","markdown","editor","update","undefined","discrete","result","hasLineBreak","textContent","getEditorState","read","firstChild","getFirstChild","Error","getChildren","some","child","getTextContent","roundTrip","output","join","toBe","md"],"sources":["../../../../src/lexical/utils/markdown/convertFromMarkdownString.spec.ts"],"sourcesContent":["import { createHeadlessEditor } from '@lexical/headless'\nimport { LinkNode } from '@lexical/link'\nimport { ListItemNode, ListNode } from '@lexical/list'\nimport { $convertToMarkdownString } from '@lexical/markdown'\nimport { HeadingNode, QuoteNode } from '@lexical/rich-text'\nimport { $getRoot, $isElementNode, $isLineBreakNode } from 'lexical'\nimport { describe, expect, it } from 'vitest'\n\nimport { $convertFromMarkdownString } from './convertFromMarkdownString.js'\n\nfunction createEditor() {\n return createHeadlessEditor({\n nodes: [HeadingNode, QuoteNode, ListNode, ListItemNode, LinkNode],\n })\n}\n\n// Payload's editor imports markdown with shouldMergeAdjacentLines = true, so the\n// specs exercise that path: hard line breaks must survive even when adjacent lines\n// are merged, while soft wraps collapse to a single space.\nfunction importMarkdown(markdown: string): { hasLineBreak: boolean; textContent: string } {\n const editor = createEditor()\n editor.update(() => $convertFromMarkdownString(markdown, undefined, undefined, false, true), {\n discrete: true,\n })\n let result = { hasLineBreak: false, textContent: '' }\n editor.getEditorState().read(() => {\n const firstChild = $getRoot().getFirstChild()\n if (!$isElementNode(firstChild)) {\n throw new Error('Expected an element block')\n }\n result = {\n hasLineBreak: firstChild.getChildren().some((child) => $isLineBreakNode(child)),\n textContent: firstChild.getTextContent(),\n }\n })\n return result\n}\n\nfunction roundTrip(markdown: string): string {\n const editor = createEditor()\n editor.update(() => $convertFromMarkdownString(markdown, undefined, undefined, false, true), {\n discrete: true,\n })\n let output = ''\n editor.getEditorState().read(() => {\n output = $convertToMarkdownString()\n })\n return output\n}\n\ndescribe('markdown hard line break import', () => {\n it('should import a trailing-space hard break as a line break node with the marker stripped', () => {\n const { hasLineBreak, textContent } = importMarkdown(['foo ', 'bar'].join('\\n'))\n\n expect(hasLineBreak).toBe(true)\n expect(textContent).toBe('foo\\nbar')\n })\n\n it('should import a backslash hard break as a line break node with the marker stripped', () => {\n const { hasLineBreak, textContent } = importMarkdown('foo\\\\\\nbar')\n\n expect(hasLineBreak).toBe(true)\n expect(textContent).toBe('foo\\nbar')\n })\n})\n\ndescribe('markdown hard line break round trip', () => {\n it('should round trip a trailing-space hard break', () => {\n const md = ['foo ', 'bar'].join('\\n')\n expect(roundTrip(md)).toBe(md)\n })\n\n it('should round trip a backslash hard break', () => {\n const md = 'foo\\\\\\nbar'\n expect(roundTrip(md)).toBe(md)\n })\n\n it('should not introduce a hard break for a soft wrap', () => {\n expect(roundTrip(['foo', 'bar'].join('\\n'))).toBe('foo bar')\n })\n\n it('should round trip a hard break after formatted text', () => {\n const md = '**foo** \\nbar'\n expect(roundTrip(md)).toBe(md)\n })\n\n it('should round trip a hard break after a link', () => {\n const md = '[foo](https://payloadcms.com) \\nbar'\n expect(roundTrip(md)).toBe(md)\n })\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1,114 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { absoluteRegExp, relativeOrAnchorRegExp, validateUrl } from './url.js';
3
- describe('Lexical URL Regex Matchers', () => {
4
- describe('relativeOrAnchorRegExp', () => {
5
- it('validation for links it should match', async () => {
6
- const shouldMatch = ['/path/to/resource', '/file-name.html', '/', '/dir/', '/path.with.dots/', '#anchor', '#section-title', '/path#fragment', '/page?id=123', '/page?id=123#section', '/search?q=test', '/?global=true'];
7
- shouldMatch.forEach(testCase => {
8
- expect(relativeOrAnchorRegExp.test(testCase)).toBe(true);
9
- });
10
- });
11
- it('validation for links it should not match', async () => {
12
- const shouldNotMatch = ['match', 'http://example.com', 'relative/path', 'file.html', 'some#fragment', '#', '/#', '/path/with spaces', '', 'ftp://example.com'];
13
- shouldNotMatch.forEach(testCase => {
14
- expect(relativeOrAnchorRegExp.test(testCase)).not.toBe(true);
15
- });
16
- });
17
- });
18
- describe('absoluteRegExp', () => {
19
- it('validation for links it should match', async () => {
20
- const shouldMatch = ['http://example.com', 'https://example.com', 'ftp://files.example.com', 'http://example.com/resource', 'https://example.com/resource?key=value', 'http://example.com/resource#anchor', 'http://www.example.com', 'https://sub.example.com/path/file', 'mailto:email@example.com', 'tel:+1234567890', 'http://user:pass@example.com', 'www.example.com', 'www.example.com/resource', 'www.example.com/resource?query=1', 'www.example.com#fragment'];
21
- shouldMatch.forEach(testCase => {
22
- expect(absoluteRegExp.test(testCase)).toBe(true);
23
- });
24
- });
25
- it('validation for links it should not match', async () => {
26
- const shouldNotMatch = ['/relative/path', '#anchor', 'example.com', '://missing.scheme', 'http://', 'http:/example.com', 'ftp://example .com', 'http://example', 'not-a-url', 'http//example.com', 'https://example.com/ spaces'];
27
- shouldNotMatch.forEach(testCase => {
28
- expect(absoluteRegExp.test(testCase)).not.toBe(true);
29
- });
30
- });
31
- });
32
- describe('validateUrl', () => {
33
- describe('absolute URLs', () => {
34
- it('should validate http and https URLs', () => {
35
- const validUrls = ['http://example.com', 'https://example.com', 'http://www.example.com', 'https://sub.example.com/path/file', 'http://example.com/resource', 'https://example.com/resource?key=value', 'http://example.com/resource#anchor'];
36
- validUrls.forEach(url => {
37
- expect(validateUrl(url)).toBe(true);
38
- });
39
- });
40
- it('should validate other protocol URLs', () => {
41
- const validUrls = ['ftp://files.example.com', 'mailto:email@example.com', 'tel:+1234567890'];
42
- validUrls.forEach(url => {
43
- expect(validateUrl(url)).toBe(true);
44
- });
45
- });
46
- it('should validate www URLs without protocol', () => {
47
- const validUrls = ['www.example.com', 'www.example.com/resource', 'www.example.com/resource?query=1', 'www.example.com#fragment'];
48
- validUrls.forEach(url => {
49
- expect(validateUrl(url)).toBe(true);
50
- });
51
- });
52
- });
53
- describe('relative URLs', () => {
54
- it('should validate relative paths', () => {
55
- const validUrls = ['/path/to/resource', '/file-name.html', '/', '/dir/', '/path.with.dots/', '/path#fragment'];
56
- validUrls.forEach(url => {
57
- expect(validateUrl(url)).toBe(true);
58
- });
59
- });
60
- });
61
- describe('anchor links', () => {
62
- it('should validate anchor links', () => {
63
- const validUrls = ['#anchor', '#section-title'];
64
- validUrls.forEach(url => {
65
- expect(validateUrl(url)).toBe(true);
66
- });
67
- });
68
- });
69
- describe('with query params', () => {
70
- it('should validate relative URLs with query parameters', () => {
71
- const validUrls = ['/page?id=123', '/search?q=test', '/products?category=electronics&sort=price', '/path?key=value&another=param', '/page?id=123&filter=active', '/?global=true'];
72
- validUrls.forEach(url => {
73
- expect(validateUrl(url)).toBe(true);
74
- });
75
- });
76
- it('should validate absolute URLs with query parameters', () => {
77
- const validUrls = ['https://example.com?id=123', 'http://example.com/page?key=value', 'www.example.com?search=query', 'https://example.com/path?a=1&b=2&c=3'];
78
- validUrls.forEach(url => {
79
- expect(validateUrl(url)).toBe(true);
80
- });
81
- });
82
- it('should validate URLs with query parameters and anchors', () => {
83
- const validUrls = ['/page?id=123#section', 'https://example.com?key=value#anchor', '/search?q=test#results'];
84
- validUrls.forEach(url => {
85
- expect(validateUrl(url)).toBe(true);
86
- });
87
- });
88
- });
89
- describe('edge cases', () => {
90
- it('should handle the default https:// case', () => {
91
- expect(validateUrl('https://')).toBe(true);
92
- });
93
- it('should return false for empty or invalid URLs', () => {
94
- const invalidUrls = ['', 'not-a-url', 'example.com', 'relative/path', 'file.html', 'some#fragment', 'http://', 'http:/example.com', 'http//example.com'];
95
- invalidUrls.forEach(url => {
96
- expect(validateUrl(url)).toBe(false);
97
- });
98
- });
99
- it('should return false for URLs with spaces', () => {
100
- const invalidUrls = ['/path/with spaces', 'http://example.com/ spaces', 'https://example.com/path with spaces'];
101
- invalidUrls.forEach(url => {
102
- expect(validateUrl(url)).toBe(false);
103
- });
104
- });
105
- it('should return false for malformed URLs', () => {
106
- const invalidUrls = ['://missing.scheme', 'ftp://example .com', 'http://example', '#', '/#'];
107
- invalidUrls.forEach(url => {
108
- expect(validateUrl(url)).toBe(false);
109
- });
110
- });
111
- });
112
- });
113
- });
114
- //# sourceMappingURL=url.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"url.spec.js","names":["describe","it","expect","absoluteRegExp","relativeOrAnchorRegExp","validateUrl","shouldMatch","forEach","testCase","test","toBe","shouldNotMatch","not","validUrls","url","invalidUrls"],"sources":["../../../src/lexical/utils/url.spec.ts"],"sourcesContent":["import { describe, it, expect } from 'vitest'\nimport { absoluteRegExp, relativeOrAnchorRegExp, validateUrl } from './url.js'\n\ndescribe('Lexical URL Regex Matchers', () => {\n describe('relativeOrAnchorRegExp', () => {\n it('validation for links it should match', async () => {\n const shouldMatch = [\n '/path/to/resource',\n '/file-name.html',\n '/',\n '/dir/',\n '/path.with.dots/',\n '#anchor',\n '#section-title',\n '/path#fragment',\n '/page?id=123',\n '/page?id=123#section',\n '/search?q=test',\n '/?global=true',\n ]\n\n shouldMatch.forEach((testCase) => {\n expect(relativeOrAnchorRegExp.test(testCase)).toBe(true)\n })\n })\n\n it('validation for links it should not match', async () => {\n const shouldNotMatch = [\n 'match',\n 'http://example.com',\n 'relative/path',\n 'file.html',\n 'some#fragment',\n '#',\n '/#',\n '/path/with spaces',\n '',\n 'ftp://example.com',\n ]\n\n shouldNotMatch.forEach((testCase) => {\n expect(relativeOrAnchorRegExp.test(testCase)).not.toBe(true)\n })\n })\n })\n\n describe('absoluteRegExp', () => {\n it('validation for links it should match', async () => {\n const shouldMatch = [\n 'http://example.com',\n 'https://example.com',\n 'ftp://files.example.com',\n 'http://example.com/resource',\n 'https://example.com/resource?key=value',\n 'http://example.com/resource#anchor',\n 'http://www.example.com',\n 'https://sub.example.com/path/file',\n 'mailto:email@example.com',\n 'tel:+1234567890',\n 'http://user:pass@example.com',\n 'www.example.com',\n 'www.example.com/resource',\n 'www.example.com/resource?query=1',\n 'www.example.com#fragment',\n ]\n\n shouldMatch.forEach((testCase) => {\n expect(absoluteRegExp.test(testCase)).toBe(true)\n })\n })\n\n it('validation for links it should not match', async () => {\n const shouldNotMatch = [\n '/relative/path',\n '#anchor',\n 'example.com',\n '://missing.scheme',\n 'http://',\n 'http:/example.com',\n 'ftp://example .com',\n 'http://example',\n 'not-a-url',\n 'http//example.com',\n 'https://example.com/ spaces',\n ]\n\n shouldNotMatch.forEach((testCase) => {\n expect(absoluteRegExp.test(testCase)).not.toBe(true)\n })\n })\n })\n\n describe('validateUrl', () => {\n describe('absolute URLs', () => {\n it('should validate http and https URLs', () => {\n const validUrls = [\n 'http://example.com',\n 'https://example.com',\n 'http://www.example.com',\n 'https://sub.example.com/path/file',\n 'http://example.com/resource',\n 'https://example.com/resource?key=value',\n 'http://example.com/resource#anchor',\n ]\n\n validUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(true)\n })\n })\n\n it('should validate other protocol URLs', () => {\n const validUrls = ['ftp://files.example.com', 'mailto:email@example.com', 'tel:+1234567890']\n\n validUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(true)\n })\n })\n\n it('should validate www URLs without protocol', () => {\n const validUrls = [\n 'www.example.com',\n 'www.example.com/resource',\n 'www.example.com/resource?query=1',\n 'www.example.com#fragment',\n ]\n\n validUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(true)\n })\n })\n })\n\n describe('relative URLs', () => {\n it('should validate relative paths', () => {\n const validUrls = [\n '/path/to/resource',\n '/file-name.html',\n '/',\n '/dir/',\n '/path.with.dots/',\n '/path#fragment',\n ]\n\n validUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(true)\n })\n })\n })\n\n describe('anchor links', () => {\n it('should validate anchor links', () => {\n const validUrls = ['#anchor', '#section-title']\n\n validUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(true)\n })\n })\n })\n\n describe('with query params', () => {\n it('should validate relative URLs with query parameters', () => {\n const validUrls = [\n '/page?id=123',\n '/search?q=test',\n '/products?category=electronics&sort=price',\n '/path?key=value&another=param',\n '/page?id=123&filter=active',\n '/?global=true',\n ]\n\n validUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(true)\n })\n })\n\n it('should validate absolute URLs with query parameters', () => {\n const validUrls = [\n 'https://example.com?id=123',\n 'http://example.com/page?key=value',\n 'www.example.com?search=query',\n 'https://example.com/path?a=1&b=2&c=3',\n ]\n\n validUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(true)\n })\n })\n\n it('should validate URLs with query parameters and anchors', () => {\n const validUrls = [\n '/page?id=123#section',\n 'https://example.com?key=value#anchor',\n '/search?q=test#results',\n ]\n\n validUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(true)\n })\n })\n })\n\n describe('edge cases', () => {\n it('should handle the default https:// case', () => {\n expect(validateUrl('https://')).toBe(true)\n })\n\n it('should return false for empty or invalid URLs', () => {\n const invalidUrls = [\n '',\n 'not-a-url',\n 'example.com',\n 'relative/path',\n 'file.html',\n 'some#fragment',\n 'http://',\n 'http:/example.com',\n 'http//example.com',\n ]\n\n invalidUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(false)\n })\n })\n\n it('should return false for URLs with spaces', () => {\n const invalidUrls = [\n '/path/with spaces',\n 'http://example.com/ spaces',\n 'https://example.com/path with spaces',\n ]\n\n invalidUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(false)\n })\n })\n\n it('should return false for malformed URLs', () => {\n const invalidUrls = ['://missing.scheme', 'ftp://example .com', 'http://example', '#', '/#']\n\n invalidUrls.forEach((url) => {\n expect(validateUrl(url)).toBe(false)\n })\n })\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}