@payloadcms/richtext-lexical 3.0.0-canary.a5aaf21 → 3.0.0-canary.a7293f6

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 (277) hide show
  1. package/dist/cell/index.js +1 -1
  2. package/dist/cell/index.js.map +1 -1
  3. package/dist/exports/client/Field-ETCEVZLL.js +2 -0
  4. package/dist/exports/client/Field-ETCEVZLL.js.map +7 -0
  5. package/dist/exports/client/RelationshipComponent-FTWR5YDX.js +2 -0
  6. package/dist/exports/client/RelationshipComponent-FTWR5YDX.js.map +7 -0
  7. package/dist/exports/client/bundled.css +1 -1
  8. package/dist/exports/client/{chunk-PY6JO5OH.js → chunk-32KXGBIQ.js} +2 -2
  9. package/dist/exports/client/{chunk-PY6JO5OH.js.map → chunk-32KXGBIQ.js.map} +2 -2
  10. package/dist/exports/client/chunk-6LZZDOEO.js +2 -0
  11. package/dist/exports/client/chunk-6LZZDOEO.js.map +7 -0
  12. package/dist/exports/client/{chunk-TXEIKM77.js → chunk-GD6LBQBJ.js} +2 -2
  13. package/dist/exports/client/chunk-GD6LBQBJ.js.map +7 -0
  14. package/dist/exports/client/{chunk-GK7ZKYHL.js → chunk-IIWHHN4J.js} +2 -2
  15. package/dist/exports/client/chunk-IIWHHN4J.js.map +7 -0
  16. package/dist/exports/client/{chunk-GTKNWSQW.js → chunk-QZNJUROL.js} +2 -2
  17. package/dist/exports/client/{chunk-GTKNWSQW.js.map → chunk-QZNJUROL.js.map} +2 -2
  18. package/dist/exports/client/chunk-WAMTSCVM.js +2 -0
  19. package/dist/exports/client/{chunk-F5DIILW3.js.map → chunk-WAMTSCVM.js.map} +2 -2
  20. package/dist/exports/client/{chunk-PECDZEZY.js → chunk-XCEM47RI.js} +2 -2
  21. package/dist/exports/client/{chunk-PECDZEZY.js.map → chunk-XCEM47RI.js.map} +2 -2
  22. package/dist/exports/client/component-6PBZ2U3Z.js +2 -0
  23. package/dist/exports/client/component-6PBZ2U3Z.js.map +7 -0
  24. package/dist/exports/client/component-6Y2K2RNP.js +2 -0
  25. package/dist/exports/client/component-6Y2K2RNP.js.map +7 -0
  26. package/dist/exports/client/component-ANB7VZLA.js +2 -0
  27. package/dist/exports/client/component-ANB7VZLA.js.map +7 -0
  28. package/dist/exports/client/componentInline-NUDJIIQ4.js +2 -0
  29. package/dist/exports/client/componentInline-NUDJIIQ4.js.map +7 -0
  30. package/dist/exports/client/index.d.ts +1 -0
  31. package/dist/exports/client/index.d.ts.map +1 -1
  32. package/dist/exports/client/index.js +7 -7
  33. package/dist/exports/client/index.js.map +4 -4
  34. package/dist/features/blockquote/markdownTransformer.js.map +1 -1
  35. package/dist/features/blockquote/server/index.d.ts +1 -1
  36. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  37. package/dist/features/blocks/client/component/BlockContent.js +5 -4
  38. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  39. package/dist/features/blocks/client/component/index.d.ts +1 -1
  40. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  41. package/dist/features/blocks/client/component/index.js +3 -3
  42. package/dist/features/blocks/client/component/index.js.map +1 -1
  43. package/dist/features/blocks/client/componentInline/index.d.ts +1 -1
  44. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  45. package/dist/features/blocks/client/componentInline/index.js +14 -11
  46. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  47. package/dist/features/blocks/client/index.d.ts +1 -1
  48. package/dist/features/blocks/client/index.d.ts.map +1 -1
  49. package/dist/features/blocks/client/index.js +21 -11
  50. package/dist/features/blocks/client/index.js.map +1 -1
  51. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  52. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  53. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  54. package/dist/features/blocks/client/plugin/index.d.ts +2 -2
  55. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  56. package/dist/features/blocks/client/plugin/index.js +4 -4
  57. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  58. package/dist/features/blocks/server/index.d.ts.map +1 -1
  59. package/dist/features/blocks/server/index.js +4 -2
  60. package/dist/features/blocks/server/index.js.map +1 -1
  61. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +10 -4
  62. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  63. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  64. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +2 -2
  65. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  66. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  67. package/dist/features/blocks/server/validate.js.map +1 -1
  68. package/dist/features/converters/html/converter/index.js +2 -2
  69. package/dist/features/converters/html/converter/index.js.map +1 -1
  70. package/dist/features/converters/html/field/index.js.map +1 -1
  71. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  72. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -1
  73. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +29 -43
  74. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  75. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -1
  76. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +39 -39
  77. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  78. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +19 -18
  79. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  80. package/dist/features/experimental_table/server/index.js +2 -2
  81. package/dist/features/experimental_table/server/index.js.map +1 -1
  82. package/dist/features/horizontalRule/client/component/index.d.ts +1 -1
  83. package/dist/features/horizontalRule/client/component/index.d.ts.map +1 -1
  84. package/dist/features/horizontalRule/client/component/index.js +12 -9
  85. package/dist/features/horizontalRule/client/component/index.js.map +1 -1
  86. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +2 -2
  87. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  88. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  89. package/dist/features/indent/client/index.d.ts.map +1 -1
  90. package/dist/features/indent/client/index.js +2 -1
  91. package/dist/features/indent/client/index.js.map +1 -1
  92. package/dist/features/link/client/index.js +1 -1
  93. package/dist/features/link/client/index.js.map +1 -1
  94. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  95. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  96. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  97. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  98. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +3 -7
  99. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  100. package/dist/features/link/nodes/AutoLinkNode.js +2 -2
  101. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  102. package/dist/features/link/nodes/LinkNode.js +11 -7
  103. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  104. package/dist/features/link/nodes/types.d.ts +3 -3
  105. package/dist/features/link/nodes/types.d.ts.map +1 -1
  106. package/dist/features/link/nodes/types.js.map +1 -1
  107. package/dist/features/link/server/baseFields.d.ts +1 -1
  108. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  109. package/dist/features/link/server/baseFields.js +3 -1
  110. package/dist/features/link/server/baseFields.js.map +1 -1
  111. package/dist/features/link/server/index.d.ts.map +1 -1
  112. package/dist/features/link/server/index.js +2 -2
  113. package/dist/features/link/server/index.js.map +1 -1
  114. package/dist/features/link/server/transformExtraFields.d.ts +1 -1
  115. package/dist/features/link/server/transformExtraFields.d.ts.map +1 -1
  116. package/dist/features/link/server/transformExtraFields.js.map +1 -1
  117. package/dist/features/link/server/validate.js.map +1 -1
  118. package/dist/features/lists/shared/markdown.js.map +1 -1
  119. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -1
  120. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +1 -0
  121. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
  122. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  123. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  124. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  125. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
  126. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
  127. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
  128. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
  129. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
  130. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
  131. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
  132. package/dist/features/migrations/slateToLexical/converter/index.d.ts.map +1 -1
  133. package/dist/features/migrations/slateToLexical/converter/index.js +1 -0
  134. package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
  135. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  136. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  137. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  138. package/dist/features/paragraph/server/index.d.ts +1 -1
  139. package/dist/features/paragraph/server/index.d.ts.map +1 -1
  140. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  141. package/dist/features/relationship/client/components/RelationshipComponent.js +18 -13
  142. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  143. package/dist/features/relationship/client/drawer/index.js +3 -3
  144. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  145. package/dist/features/relationship/client/plugins/index.js +1 -1
  146. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  147. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +1 -1
  148. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -1
  149. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -1
  150. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  151. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  152. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  153. package/dist/features/toolbars/fixed/client/Toolbar/index.js +40 -41
  154. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  155. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  156. package/dist/features/toolbars/inline/client/Toolbar/index.js +33 -34
  157. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  158. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  159. package/dist/features/toolbars/shared/ToolbarButton/index.js +4 -1
  160. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  161. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +1 -1
  162. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  163. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +3 -4
  164. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  165. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +82 -64
  166. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  167. package/dist/features/toolbars/types.d.ts +21 -11
  168. package/dist/features/toolbars/types.d.ts.map +1 -1
  169. package/dist/features/toolbars/types.js.map +1 -1
  170. package/dist/features/typesServer.d.ts.map +1 -1
  171. package/dist/features/typesServer.js.map +1 -1
  172. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  173. package/dist/features/upload/client/component/index.js +11 -8
  174. package/dist/features/upload/client/component/index.js.map +1 -1
  175. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  176. package/dist/features/upload/client/drawer/index.js +2 -0
  177. package/dist/features/upload/client/drawer/index.js.map +1 -1
  178. package/dist/features/upload/client/plugin/index.js +1 -1
  179. package/dist/features/upload/client/plugin/index.js.map +1 -1
  180. package/dist/features/upload/server/feature.server.js +3 -4
  181. package/dist/features/upload/server/feature.server.js.map +1 -1
  182. package/dist/features/upload/server/validate.js.map +1 -1
  183. package/dist/field/Field.d.ts.map +1 -1
  184. package/dist/field/Field.js +11 -11
  185. package/dist/field/Field.js.map +1 -1
  186. package/dist/field/bundled.css +1 -1
  187. package/dist/field/index.js +1 -1
  188. package/dist/field/index.js.map +1 -1
  189. package/dist/index.d.ts.map +1 -1
  190. package/dist/index.js +67 -63
  191. package/dist/index.js.map +1 -1
  192. package/dist/lexical/EditorPlugin.d.ts.map +1 -1
  193. package/dist/lexical/EditorPlugin.js +2 -1
  194. package/dist/lexical/EditorPlugin.js.map +1 -1
  195. package/dist/lexical/LexicalEditor.d.ts +1 -1
  196. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  197. package/dist/lexical/LexicalEditor.js +5 -5
  198. package/dist/lexical/LexicalEditor.js.map +1 -1
  199. package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  200. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  201. package/dist/lexical/config/client/EditorConfigProvider.js +8 -7
  202. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  203. package/dist/lexical/config/client/sanitize.js +2 -2
  204. package/dist/lexical/config/client/sanitize.js.map +1 -1
  205. package/dist/lexical/config/server/loader.js.map +1 -1
  206. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  207. package/dist/lexical/config/server/sanitize.js +11 -11
  208. package/dist/lexical/config/server/sanitize.js.map +1 -1
  209. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +2 -2
  210. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  211. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +1 -1
  212. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  213. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  214. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  215. package/dist/lexical/plugins/SlashMenu/index.js +9 -6
  216. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  217. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  218. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +5 -5
  219. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  220. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts +1 -1
  221. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  222. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
  223. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
  224. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +1 -1
  225. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
  226. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  227. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +9 -4
  228. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  229. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.d.ts.map +1 -1
  230. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +3 -4
  231. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
  232. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
  233. package/dist/lexical/theme/EditorTheme.js +1 -0
  234. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  235. package/dist/lexical/utils/rect.d.ts +4 -4
  236. package/dist/lexical/utils/setFloatingElemPosition.d.ts +1 -1
  237. package/dist/lexical/utils/setFloatingElemPosition.d.ts.map +1 -1
  238. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
  239. package/dist/populateGraphQL/populate.js +1 -1
  240. package/dist/populateGraphQL/populate.js.map +1 -1
  241. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  242. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  243. package/dist/populateGraphQL/populateLexicalPopulationPromises.js +5 -4
  244. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  245. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
  246. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  247. package/dist/utilities/fieldsDrawer/DrawerContent.js +1 -1
  248. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  249. package/dist/utilities/generateComponentMap.d.ts.map +1 -1
  250. package/dist/utilities/generateComponentMap.js +1 -0
  251. package/dist/utilities/generateComponentMap.js.map +1 -1
  252. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +1 -1
  253. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +1 -1
  254. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +1 -1
  255. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  256. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts +1 -1
  257. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  258. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  259. package/dist/validate/validateNodes.d.ts.map +1 -1
  260. package/dist/validate/validateNodes.js +2 -2
  261. package/dist/validate/validateNodes.js.map +1 -1
  262. package/package.json +30 -30
  263. package/dist/exports/client/Field-EL5TNVZW.js +0 -2
  264. package/dist/exports/client/Field-EL5TNVZW.js.map +0 -7
  265. package/dist/exports/client/RelationshipComponent-Z5SZ5FFT.js +0 -2
  266. package/dist/exports/client/RelationshipComponent-Z5SZ5FFT.js.map +0 -7
  267. package/dist/exports/client/chunk-F5DIILW3.js +0 -2
  268. package/dist/exports/client/chunk-GK7ZKYHL.js.map +0 -7
  269. package/dist/exports/client/chunk-TXEIKM77.js.map +0 -7
  270. package/dist/exports/client/component-ATPITPNI.js +0 -2
  271. package/dist/exports/client/component-ATPITPNI.js.map +0 -7
  272. package/dist/exports/client/component-GAX6BHKZ.js +0 -2
  273. package/dist/exports/client/component-GAX6BHKZ.js.map +0 -7
  274. package/dist/exports/client/component-M3ZCPXEG.js +0 -2
  275. package/dist/exports/client/component-M3ZCPXEG.js.map +0 -7
  276. package/dist/exports/client/componentInline-HAGGWKA7.js +0 -2
  277. package/dist/exports/client/componentInline-HAGGWKA7.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utilities/fieldsDrawer/Drawer.tsx", "../../../src/utilities/fieldsDrawer/DrawerContent.tsx", "../../../src/features/relationship/client/utils/EnabledRelationshipsCondition.tsx", "../../../src/features/upload/client/drawer/commands.ts", "../../../src/features/upload/client/nodes/UploadNode.tsx", "../../../src/features/upload/server/nodes/UploadNode.tsx"],
4
- "sourcesContent": ["'use client'\nimport type { ClientField, Data, FormState, JsonObject } from 'payload'\n\nimport { Drawer } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { DrawerContent } from './DrawerContent.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 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 schemaPathSuffix,\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 <Drawer className={className} slug={drawerSlug} title={drawerTitle ?? ''}>\n <DrawerContent\n data={data}\n featureKey={featureKey}\n fieldMapOverride={fieldMapOverride}\n handleDrawerSubmit={handleDrawerSubmit}\n schemaFieldsPathOverride={schemaFieldsPathOverride}\n schemaPathSuffix={schemaPathSuffix}\n />\n </Drawer>\n )\n}\n", "'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type { ClientField, FormState } from 'payload'\n\nimport {\n Form,\n FormSubmit,\n RenderFields,\n useConfig,\n useDocumentInfo,\n useFieldProps,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React, { useCallback, useEffect, 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'\n\nexport const DrawerContent: React.FC<Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPathSuffix,\n}) => {\n const { t } = useTranslation()\n const { id } = useDocumentInfo()\n const { schemaPath } = useFieldProps()\n const { config } = useConfig()\n const [initialState, setInitialState] = useState<false | FormState>(false)\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const componentMapRenderedFieldsPath = `lexical_internal_feature.${featureKey}.fields${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any =\n fieldMapOverride ?? (richTextComponentMap.get(componentMapRenderedFieldsPath) as ClientField[]) // Field Schema\n\n useEffect(() => {\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n data: data ?? {},\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n }) // Form State\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n }, [config.routes.api, config.serverURL, schemaFieldsPath, id, data])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const { state } = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n formState: prevFormState,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n return state\n },\n\n [config.routes.api, config.serverURL, schemaFieldsPath, id],\n )\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\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 path=\"\" // See Blocks feature path for details as for why this is empty\n readOnly={false}\n schemaPath={schemaFieldsPath}\n />\n\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n )\n}\n", "'use client'\nimport type { ClientCollectionConfig, ClientUser, VisibleEntities } from 'payload'\n\nimport { useAuth, useConfig, useEntityVisibility } from '@payloadcms/ui'\nimport * as React from 'react'\n\ntype Options = {\n uploads: boolean\n user: ClientUser\n visibleEntities: VisibleEntities\n}\n\ntype FilteredCollectionsT = (\n collections: ClientCollectionConfig[],\n options?: Options,\n) => ClientCollectionConfig[]\n\nconst filterRichTextCollections: FilteredCollectionsT = (collections, options) => {\n return collections.filter(({ slug, admin: { enableRichTextRelationship }, upload }) => {\n if (!options.visibleEntities.collections.includes(slug)) {\n return false\n }\n\n if (options?.uploads) {\n return enableRichTextRelationship && Boolean(upload) === true\n }\n\n return upload ? false : enableRichTextRelationship\n })\n}\n\nexport const EnabledRelationshipsCondition: React.FC<any> = (props) => {\n const { children, uploads = false, ...rest } = props\n const {\n config: { collections },\n } = useConfig()\n const { user } = useAuth()\n const { visibleEntities } = useEntityVisibility()\n\n const [enabledCollectionSlugs] = React.useState(() =>\n filterRichTextCollections(collections, { uploads, user, visibleEntities }).map(\n ({ slug }) => slug,\n ),\n )\n\n if (!enabledCollectionSlugs.length) {\n return null\n }\n\n return React.cloneElement(children, { ...rest, enabledCollectionSlugs })\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", "'use client'\nimport type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type { DOMConversionMap, DOMConversionOutput, LexicalNode, Spread } from 'lexical'\nimport type { JSX } from 'react'\n\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type { UploadData } from '../../server/nodes/UploadNode.js'\n\nimport { isGoogleDocCheckboxImg, UploadServerNode } from '../../server/nodes/UploadNode.js'\n\nconst RawUploadComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({ default: module.UploadComponent })),\n)\n\nfunction $convertUploadElement(domNode: HTMLImageElement): DOMConversionOutput | null {\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createUploadNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n const img = domNode\n if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {\n return null\n }\n // TODO: Auto-upload functionality here!\n //}\n return null\n}\n\nexport type SerializedUploadNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'upload'\n} & Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class UploadNode extends UploadServerNode {\n static clone(node: UploadServerNode): UploadServerNode {\n return super.clone(node)\n }\n\n static getType(): string {\n return super.getType()\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n img: (node: HTMLImageElement) => ({\n conversion: $convertUploadElement,\n priority: 0,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedUploadNode): UploadNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n decorate(): JSX.Element {\n return <RawUploadComponent data={this.__data} nodeKey={this.getKey()} />\n }\n\n exportJSON(): SerializedUploadNode {\n return super.exportJSON()\n }\n}\n\nexport function $createUploadNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadNode({ data: data as UploadData }))\n}\n\nexport function $isUploadNode(node: LexicalNode | null | undefined): node is UploadNode {\n return node instanceof UploadNode\n}\n", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { CollectionSlug, DataFromCollectionSlug, JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nexport type UploadData<TUploadExtraFieldsData extends JsonObject = JsonObject> = {\n [TCollectionSlug in CollectionSlug]: {\n fields: TUploadExtraFieldsData\n // Every lexical node that has sub-fields needs to have a unique ID. This is the ID of this upload node, not the ID of the linked upload document\n id: string\n relationTo: TCollectionSlug\n // Value can be just the document ID, or the full, populated document\n value: DataFromCollectionSlug<TCollectionSlug> | number | string\n }\n}[CollectionSlug]\n\nexport function isGoogleDocCheckboxImg(img: HTMLImageElement): boolean {\n return (\n img.parentElement != null &&\n img.parentElement.tagName === 'LI' &&\n img.previousSibling === null &&\n img.getAttribute('aria-roledescription') === 'checkbox'\n )\n}\n\nfunction $convertUploadServerElement(domNode: HTMLImageElement): DOMConversionOutput | null {\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createUploadServerNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n const img = domNode\n if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {\n return null\n }\n // TODO: Auto-upload functionality here!\n //}\n return null\n}\n\nexport type SerializedUploadNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'upload'\n} & Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class UploadServerNode extends DecoratorBlockNode {\n __data: UploadData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: UploadData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static clone(node: UploadServerNode): UploadServerNode {\n return new this({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'upload'\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n img: (node: HTMLImageElement) => ({\n conversion: $convertUploadServerElement,\n priority: 0,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedUploadNode): UploadServerNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadServerNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n decorate(): JSX.Element {\n // @ts-expect-error\n return <RawUploadComponent data={this.__data} format={this.__format} nodeKey={this.getKey()} />\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('img')\n element.setAttribute('data-lexical-upload-id', String(this.__data?.value))\n element.setAttribute('data-lexical-upload-relation-to', this.__data?.relationTo)\n\n return { element }\n }\n\n exportJSON(): SerializedUploadNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'upload',\n version: 3,\n }\n }\n\n getData(): UploadData {\n return this.getLatest().__data\n }\n\n setData(data: UploadData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n\n updateDOM(): false {\n return false\n }\n}\n\nexport function $createUploadServerNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadServerNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadServerNode({ data: data as UploadData }))\n}\n\nexport function $isUploadServerNode(\n node: LexicalNode | null | undefined,\n): node is UploadServerNode {\n return node instanceof UploadServerNode\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["'use client'\nimport type { ClientField, Data, FormState, JsonObject } from 'payload'\n\nimport { Drawer } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { DrawerContent } from './DrawerContent.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 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 schemaPathSuffix,\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 <Drawer className={className} slug={drawerSlug} title={drawerTitle ?? ''}>\n <DrawerContent\n data={data}\n featureKey={featureKey}\n fieldMapOverride={fieldMapOverride}\n handleDrawerSubmit={handleDrawerSubmit}\n schemaFieldsPathOverride={schemaFieldsPathOverride}\n schemaPathSuffix={schemaPathSuffix}\n />\n </Drawer>\n )\n}\n", "'use client'\nimport type { ClientField, FormState } from 'payload'\n\nimport {\n Form,\n FormSubmit,\n RenderFields,\n useConfig,\n useDocumentInfo,\n useFieldProps,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React, { useCallback, useEffect, 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'\n\nexport const DrawerContent: React.FC<Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPathSuffix,\n}) => {\n const { t } = useTranslation()\n const { id } = useDocumentInfo()\n const { schemaPath } = useFieldProps()\n const { config } = useConfig()\n const [initialState, setInitialState] = useState<false | FormState>(false)\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const componentMapRenderedFieldsPath = `lexical_internal_feature.${featureKey}.fields${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any =\n fieldMapOverride ?? (richTextComponentMap?.get(componentMapRenderedFieldsPath) as ClientField[]) // Field Schema\n\n useEffect(() => {\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id: id!,\n data: data ?? {},\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n }) // Form State\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n }, [config.routes.api, config.serverURL, schemaFieldsPath, id, data])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }) => {\n const { state } = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id: id!,\n formState: prevFormState,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n return state\n },\n\n [config.routes.api, config.serverURL, schemaFieldsPath, id],\n )\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\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 path=\"\" // See Blocks feature path for details as for why this is empty\n readOnly={false}\n schemaPath={schemaFieldsPath}\n />\n\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n )\n}\n", "'use client'\nimport type { ClientCollectionConfig, ClientUser, VisibleEntities } from 'payload'\n\nimport { useAuth, useConfig, useEntityVisibility } from '@payloadcms/ui'\nimport * as React from 'react'\n\ntype Options = {\n uploads: boolean\n user: ClientUser\n visibleEntities: VisibleEntities\n}\n\ntype FilteredCollectionsT = (\n collections: ClientCollectionConfig[],\n options?: Options,\n) => ClientCollectionConfig[]\n\nconst filterRichTextCollections: FilteredCollectionsT = (collections, options) => {\n return collections.filter(({ slug, admin: { enableRichTextRelationship }, upload }) => {\n if (!options?.visibleEntities.collections.includes(slug)) {\n return false\n }\n\n if (options?.uploads) {\n return enableRichTextRelationship && Boolean(upload) === true\n }\n\n return upload ? false : enableRichTextRelationship\n })\n}\n\nexport const EnabledRelationshipsCondition: React.FC<any> = (props) => {\n const { children, uploads = false, ...rest } = props\n const {\n config: { collections },\n } = useConfig()\n const { user } = useAuth()\n const { visibleEntities } = useEntityVisibility()\n\n const [enabledCollectionSlugs] = React.useState(() =>\n filterRichTextCollections(collections, { uploads, user: user!, visibleEntities }).map(\n ({ slug }) => slug,\n ),\n )\n\n if (!enabledCollectionSlugs.length) {\n return null\n }\n\n return React.cloneElement(children, { ...rest, enabledCollectionSlugs })\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", "'use client'\nimport type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type { DOMConversionMap, DOMConversionOutput, LexicalNode, Spread } from 'lexical'\nimport type { JSX } from 'react'\n\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type { UploadData } from '../../server/nodes/UploadNode.js'\n\nimport { isGoogleDocCheckboxImg, UploadServerNode } from '../../server/nodes/UploadNode.js'\n\nconst RawUploadComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({ default: module.UploadComponent })),\n)\n\nfunction $convertUploadElement(domNode: HTMLImageElement): DOMConversionOutput | null {\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createUploadNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n const img = domNode\n if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {\n return null\n }\n // TODO: Auto-upload functionality here!\n //}\n return null\n}\n\nexport type SerializedUploadNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'upload'\n} & Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class UploadNode extends UploadServerNode {\n static clone(node: UploadServerNode): UploadServerNode {\n return super.clone(node)\n }\n\n static getType(): string {\n return super.getType()\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n img: (node: HTMLImageElement) => ({\n conversion: $convertUploadElement,\n priority: 0,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedUploadNode): UploadNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n decorate(): JSX.Element {\n return <RawUploadComponent data={this.__data} nodeKey={this.getKey()} />\n }\n\n exportJSON(): SerializedUploadNode {\n return super.exportJSON()\n }\n}\n\nexport function $createUploadNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadNode({ data: data as UploadData }))\n}\n\nexport function $isUploadNode(node: LexicalNode | null | undefined): node is UploadNode {\n return node instanceof UploadNode\n}\n", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { CollectionSlug, DataFromCollectionSlug, JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nexport type UploadData<TUploadExtraFieldsData extends JsonObject = JsonObject> = {\n [TCollectionSlug in CollectionSlug]: {\n fields: TUploadExtraFieldsData\n // Every lexical node that has sub-fields needs to have a unique ID. This is the ID of this upload node, not the ID of the linked upload document\n id: string\n relationTo: TCollectionSlug\n // Value can be just the document ID, or the full, populated document\n value: DataFromCollectionSlug<TCollectionSlug> | number | string\n }\n}[CollectionSlug]\n\nexport function isGoogleDocCheckboxImg(img: HTMLImageElement): boolean {\n return (\n img.parentElement != null &&\n img.parentElement.tagName === 'LI' &&\n img.previousSibling === null &&\n img.getAttribute('aria-roledescription') === 'checkbox'\n )\n}\n\nfunction $convertUploadServerElement(domNode: HTMLImageElement): DOMConversionOutput | null {\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createUploadServerNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n const img = domNode\n if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {\n return null\n }\n // TODO: Auto-upload functionality here!\n //}\n return null\n}\n\nexport type SerializedUploadNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'upload'\n} & Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class UploadServerNode extends DecoratorBlockNode {\n __data: UploadData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: UploadData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static clone(node: UploadServerNode): UploadServerNode {\n return new this({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'upload'\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n img: (node: HTMLImageElement) => ({\n conversion: $convertUploadServerElement,\n priority: 0,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedUploadNode): UploadServerNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadServerNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n decorate(): JSX.Element {\n // @ts-expect-error\n return <RawUploadComponent data={this.__data} format={this.__format} nodeKey={this.getKey()} />\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('img')\n element.setAttribute('data-lexical-upload-id', String(this.__data?.value))\n element.setAttribute('data-lexical-upload-relation-to', this.__data?.relationTo)\n\n return { element }\n }\n\n exportJSON(): SerializedUploadNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'upload',\n version: 3,\n }\n }\n\n getData(): UploadData {\n return this.getLatest().__data\n }\n\n setData(data: UploadData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n\n updateDOM(): false {\n return false\n }\n}\n\nexport function $createUploadServerNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadServerNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadServerNode({ data: data as UploadData }))\n}\n\nexport function $isUploadServerNode(\n node: LexicalNode | null | undefined,\n): node is UploadServerNode {\n return node instanceof UploadServerNode\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["Drawer", "c", "_c", "Form", "FormSubmit", "RenderFields", "useConfig", "useDocumentInfo", "useFieldProps", "useTranslation", "getFormState", "useEffect", "useState", "v4", "uuid", "DrawerContent", "t0", "$", "_c", "data", "featureKey", "fieldMapOverride", "handleDrawerSubmit", "schemaFieldsPathOverride", "schemaPathSuffix", "t", "useTranslation", "id", "useDocumentInfo", "schemaPath", "useFieldProps", "config", "useConfig", "initialState", "setInitialState", "useState", "field", "t1", "useEditorConfigContext", "richTextComponentMap", "componentMapRenderedFieldsPath", "schemaFieldsPath", "t2", "get", "fields", "t3", "state", "getFormState", "apiRoute", "routes", "api", "body", "operation", "serverURL", "t4", "useEffect", "t5", "t6", "formState", "prevFormState", "state_0", "onChange", "t7", "Array", "isArray", "t8", "_jsxs", "Form", "beforeSubmit", "disableValidationOnSubmit", "onSubmit", "uuid", "children", "_jsx", "RenderFields", "forceRender", "path", "readOnly", "FormSubmit", "FieldsDrawer", "className", "data", "drawerSlug", "drawerTitle", "featureKey", "fieldMapOverride", "handleDrawerSubmit", "schemaFieldsPathOverride", "schemaPathSuffix", "_jsx", "Drawer", "slug", "title", "DrawerContent", "c", "_c", "useAuth", "useConfig", "useEntityVisibility", "React", "filterRichTextCollections", "collections", "options", "filter", "slug", "admin", "enableRichTextRelationship", "upload", "visibleEntities", "includes", "uploads", "Boolean", "EnabledRelationshipsCondition", "props", "$", "t0", "rest", "children", "undefined", "config", "t1", "user", "t2", "map", "t3", "enabledCollectionSlugs", "useState", "length", "t4", "cloneElement", "createCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "ObjectID", "$applyNodeReplacement", "React", "DecoratorBlockNode", "ObjectID", "$applyNodeReplacement", "isGoogleDocCheckboxImg", "img", "parentElement", "tagName", "previousSibling", "getAttribute", "$convertUploadServerElement", "domNode", "hasAttribute", "id", "relationTo", "node", "$createUploadServerNode", "data", "fields", "value", "src", "startsWith", "UploadServerNode", "__data", "constructor", "format", "key", "clone", "__format", "__key", "getType", "importDOM", "conversion", "priority", "importJSON", "serializedNode", "version", "default", "toHexString", "importedData", "setFormat", "isInline", "decorate", "_jsx", "RawUploadComponent", "nodeKey", "getKey", "exportDOM", "element", "document", "createElement", "setAttribute", "String", "exportJSON", "getData", "type", "getLatest", "setData", "writable", "getWritable", "updateDOM", "RawUploadComponent", "lazy", "then", "module", "default", "UploadComponent", "$convertUploadElement", "domNode", "hasAttribute", "id", "getAttribute", "relationTo", "node", "$createUploadNode", "data", "fields", "value", "img", "src", "startsWith", "isGoogleDocCheckboxImg", "UploadNode", "UploadServerNode", "clone", "getType", "importDOM", "conversion", "priority", "importJSON", "serializedNode", "version", "ObjectID", "toHexString", "importedData", "setFormat", "format", "decorate", "_jsx", "__data", "nodeKey", "getKey", "exportJSON", "$applyNodeReplacement", "$isUploadNode"]
7
7
  }
@@ -1,3 +1,3 @@
1
1
  import{jsx as m}from"react/jsx-runtime";import{$applyNodeReplacement as d}from"lexical";import*as a from"react";import{addClassNamesToElement as u}from"@lexical/utils";import{$applyNodeReplacement as l,createCommand as c,DecoratorNode as s}from"lexical";var O=c("INSERT_HORIZONTAL_RULE_COMMAND"),r=class extends s{static clone(e){return new this(e.__key)}static getType(){return"horizontalrule"}static importDOM(){return{hr:()=>({conversion:p,priority:0})}}static importJSON(e){return i()}createDOM(e){let o=document.createElement("hr");return u(o,e.theme.hr),o}decorate(){return null}exportDOM(){return{element:document.createElement("hr")}}exportJSON(){return{type:"horizontalrule",version:1}}getTextContent(){return`
2
- `}isInline(){return!1}updateDOM(){return!1}};function p(){return{node:i()}}function i(){return l(new r)}var N=a.lazy(()=>import("./component-GAX6BHKZ.js").then(t=>({default:t.HorizontalRuleComponent}))),n=class extends r{static clone(e){return super.clone(e)}static getType(){return super.getType()}static importJSON(e){return f()}decorate(){return m(N,{nodeKey:this.__key})}exportJSON(){return super.exportJSON()}};function f(){return d(new n)}function E(t){return t instanceof n}export{O as a,n as b,f as c,E as d};
3
- //# sourceMappingURL=chunk-PECDZEZY.js.map
2
+ `}isInline(){return!1}updateDOM(){return!1}};function p(){return{node:i()}}function i(){return l(new r)}var N=a.lazy(()=>import("./component-ANB7VZLA.js").then(t=>({default:t.HorizontalRuleComponent}))),n=class extends r{static clone(e){return super.clone(e)}static getType(){return super.getType()}static importJSON(e){return f()}decorate(){return m(N,{nodeKey:this.__key})}exportJSON(){return super.exportJSON()}};function f(){return d(new n)}function E(t){return t instanceof n}export{O as a,n as b,f as c,E as d};
3
+ //# sourceMappingURL=chunk-XCEM47RI.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/features/horizontalRule/client/nodes/HorizontalRuleNode.tsx", "../../../src/features/horizontalRule/server/nodes/HorizontalRuleNode.tsx"],
4
- "sourcesContent": ["'use client'\nimport type { DOMConversionOutput, LexicalNode, SerializedLexicalNode } from 'lexical'\n\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type { SerializedHorizontalRuleNode } from '../../server/nodes/HorizontalRuleNode.js'\n\nimport { HorizontalRuleServerNode } from '../../server/nodes/HorizontalRuleNode.js'\n\nconst HorizontalRuleComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({\n default: module.HorizontalRuleComponent,\n })),\n)\n\nexport class HorizontalRuleNode extends HorizontalRuleServerNode {\n static clone(node: HorizontalRuleServerNode): HorizontalRuleServerNode {\n return super.clone(node)\n }\n\n static getType(): string {\n return super.getType()\n }\n\n /**\n * The data for this node is stored serialized as JSON. This is the \"load function\" of that node: it takes the saved data and converts it into a node.\n */\n static importJSON(serializedNode: SerializedHorizontalRuleNode): HorizontalRuleNode {\n return $createHorizontalRuleNode()\n }\n\n /**\n * Allows you to render a React component within whatever createDOM returns.\n */\n decorate(): React.ReactElement {\n return <HorizontalRuleComponent nodeKey={this.__key} />\n }\n\n exportJSON(): SerializedLexicalNode {\n return super.exportJSON()\n }\n}\n\nfunction $convertHorizontalRuleElement(): DOMConversionOutput {\n return { node: $createHorizontalRuleNode() }\n}\n\nexport function $createHorizontalRuleNode(): HorizontalRuleNode {\n return $applyNodeReplacement(new HorizontalRuleNode())\n}\n\nexport function $isHorizontalRuleNode(\n node: LexicalNode | null | undefined,\n): node is HorizontalRuleNode {\n return node instanceof HorizontalRuleNode\n}\n", "import type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n EditorConfig,\n LexicalCommand,\n LexicalNode,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\nimport type * as React from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, createCommand, DecoratorNode } from 'lexical'\n\n/**\n * Serialized representation of a horizontal rule node. Serialized = converted to JSON. This is what is stored in the database / in the lexical editor state.\n */\nexport type SerializedHorizontalRuleNode = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'horizontalrule'\n },\n SerializedLexicalNode\n>\n\nexport const INSERT_HORIZONTAL_RULE_COMMAND: LexicalCommand<void> = createCommand(\n 'INSERT_HORIZONTAL_RULE_COMMAND',\n)\n\n/**\n * This node is a DecoratorNode. DecoratorNodes allow you to render React components in the editor.\n *\n * They need both createDom and decorate functions. createDom => outside of the html. decorate => React Component inside of the html.\n *\n * If we used DecoratorBlockNode instead, we would only need a decorate method\n */\nexport class HorizontalRuleServerNode extends DecoratorNode<React.ReactElement> {\n static clone(node: HorizontalRuleServerNode): HorizontalRuleServerNode {\n return new this(node.__key)\n }\n\n static getType(): string {\n return 'horizontalrule'\n }\n\n /**\n * Defines what happens if you copy an hr element from another page and paste it into the lexical editor\n *\n * This also determines the behavior of lexical's internal HTML -> Lexical converter\n */\n static importDOM(): DOMConversionMap | null {\n return {\n hr: () => ({\n conversion: $convertHorizontalRuleElement,\n priority: 0,\n }),\n }\n }\n\n /**\n * The data for this node is stored serialized as JSON. This is the \"load function\" of that node: it takes the saved data and converts it into a node.\n */\n static importJSON(serializedNode: SerializedHorizontalRuleNode): HorizontalRuleServerNode {\n return $createHorizontalRuleServerNode()\n }\n\n /**\n * Determines how the hr element is rendered in the lexical editor. This is only the \"initial\" / \"outer\" HTML element.\n */\n createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('hr')\n addClassNamesToElement(element, config.theme.hr)\n return element\n }\n\n decorate() {\n return null\n }\n\n /**\n * Opposite of importDOM, this function defines what happens when you copy an hr element from the lexical editor and paste it into another page.\n *\n * This also determines the behavior of lexical's internal Lexical -> HTML converter\n */\n exportDOM(): DOMExportOutput {\n return { element: document.createElement('hr') }\n }\n /**\n * Opposite of importJSON. This determines what data is saved in the database / in the lexical editor state.\n */\n exportJSON(): SerializedLexicalNode {\n return {\n type: 'horizontalrule',\n version: 1,\n }\n }\n\n getTextContent(): string {\n return '\\n'\n }\n\n isInline(): false {\n return false\n }\n\n updateDOM(): boolean {\n return false\n }\n}\n\nfunction $convertHorizontalRuleElement(): DOMConversionOutput {\n return { node: $createHorizontalRuleServerNode() }\n}\n\nexport function $createHorizontalRuleServerNode(): HorizontalRuleServerNode {\n return $applyNodeReplacement(new HorizontalRuleServerNode())\n}\n\nexport function $isHorizontalRuleServerNode(\n node: LexicalNode | null | undefined,\n): node is HorizontalRuleServerNode {\n return node instanceof HorizontalRuleServerNode\n}\n"],
5
- "mappings": "wCAGA,OAASA,yBAAAA,MAA6B,UACtC,UAAYC,MAAW,QCQvB,OAASC,0BAAAA,MAA8B,iBACvC,OAASC,yBAAAA,EAAuBC,iBAAAA,EAAeC,iBAAAA,MAAqB,UAa7D,IAAMC,EAAuDF,EAClE,gCAAA,EAUWG,EAAN,cAAuCF,CAAA,CAC5C,OAAOG,MAAMC,EAA0D,CACrE,OAAO,IAAI,KAAKA,EAAKC,KAAK,CAC5B,CAEA,OAAOC,SAAkB,CACvB,MAAO,gBACT,CAOA,OAAOC,WAAqC,CAC1C,MAAO,CACLC,GAAIA,KAAO,CACTC,WAAYC,EACZC,SAAU,CACZ,EACF,CACF,CAKA,OAAOC,WAAWC,EAAwE,CACxF,OAAOC,EAAA,CACT,CAKAC,UAAUC,EAAmC,CAC3C,IAAMC,EAAUC,SAASC,cAAc,IAAA,EACvCtB,OAAAA,EAAuBoB,EAASD,EAAOI,MAAMZ,EAAE,EACxCS,CACT,CAEAI,UAAW,CACT,OAAO,IACT,CAOAC,WAA6B,CAC3B,MAAO,CAAEL,QAASC,SAASC,cAAc,IAAA,CAAM,CACjD,CAIAI,YAAoC,CAClC,MAAO,CACLC,KAAM,iBACNC,QAAS,CACX,CACF,CAEAC,gBAAyB,CACvB,MAAO;CACT,CAEAC,UAAkB,CAChB,MAAO,EACT,CAEAC,WAAqB,CACnB,MAAO,EACT,CACF,EAEA,SAASlB,GAAA,CACP,MAAO,CAAEN,KAAMU,EAAA,CAAkC,CACnD,CAEO,SAASA,GAAA,CACd,OAAOhB,EAAsB,IAAII,CAAA,CACnC,CD3GA,IAAM2B,EAAgCC,OAAK,IACzC,OAAO,yBAAA,EAAmCC,KAAMC,IAAY,CAC1DC,QAASD,EAAOH,uBAClB,EAAA,CAAA,EAGWK,EAAN,cAAiCC,CAAA,CACtC,OAAOC,MAAMC,EAA0D,CACrE,OAAO,MAAMD,MAAMC,CAAA,CACrB,CAEA,OAAOC,SAAkB,CACvB,OAAO,MAAMA,QAAA,CACf,CAKA,OAAOC,WAAWC,EAAkE,CAClF,OAAOC,EAAA,CACT,CAKAC,UAA+B,CAC7B,OAAOC,EAACd,EAAA,CAAwBe,QAAS,KAAKC,OAChD,CAEAC,YAAoC,CAClC,OAAO,MAAMA,WAAA,CACf,CACF,EAMO,SAASC,GAAA,CACd,OAAOC,EAAsB,IAAIC,CAAA,CACnC,CAEO,SAASC,EACdC,EAAoC,CAEpC,OAAOA,aAAgBF,CACzB",
4
+ "sourcesContent": ["'use client'\nimport type { DOMConversionOutput, LexicalNode, SerializedLexicalNode } from 'lexical'\n\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type { SerializedHorizontalRuleNode } from '../../server/nodes/HorizontalRuleNode.js'\n\nimport { HorizontalRuleServerNode } from '../../server/nodes/HorizontalRuleNode.js'\n\nconst HorizontalRuleComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({\n default: module.HorizontalRuleComponent,\n })),\n)\n\nexport class HorizontalRuleNode extends HorizontalRuleServerNode {\n static clone(node: HorizontalRuleServerNode): HorizontalRuleServerNode {\n return super.clone(node)\n }\n\n static getType(): string {\n return super.getType()\n }\n\n /**\n * The data for this node is stored serialized as JSON. This is the \"load function\" of that node: it takes the saved data and converts it into a node.\n */\n static importJSON(serializedNode: SerializedHorizontalRuleNode): HorizontalRuleNode {\n return $createHorizontalRuleNode()\n }\n\n /**\n * Allows you to render a React component within whatever createDOM returns.\n */\n decorate(): React.ReactElement {\n return <HorizontalRuleComponent nodeKey={this.__key} />\n }\n\n exportJSON(): SerializedLexicalNode {\n return super.exportJSON()\n }\n}\n\nfunction $convertHorizontalRuleElement(): DOMConversionOutput {\n return { node: $createHorizontalRuleNode() }\n}\n\nexport function $createHorizontalRuleNode(): HorizontalRuleNode {\n return $applyNodeReplacement(new HorizontalRuleNode())\n}\n\nexport function $isHorizontalRuleNode(\n node: LexicalNode | null | undefined,\n): node is HorizontalRuleNode {\n return node instanceof HorizontalRuleNode\n}\n", "import type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n EditorConfig,\n LexicalCommand,\n LexicalNode,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\nimport type * as React from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, createCommand, DecoratorNode } from 'lexical'\n\n/**\n * Serialized representation of a horizontal rule node. Serialized = converted to JSON. This is what is stored in the database / in the lexical editor state.\n */\nexport type SerializedHorizontalRuleNode = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'horizontalrule'\n },\n SerializedLexicalNode\n>\n\nexport const INSERT_HORIZONTAL_RULE_COMMAND: LexicalCommand<void> = createCommand(\n 'INSERT_HORIZONTAL_RULE_COMMAND',\n)\n\n/**\n * This node is a DecoratorNode. DecoratorNodes allow you to render React components in the editor.\n *\n * They need both createDom and decorate functions. createDom => outside of the html. decorate => React Component inside of the html.\n *\n * If we used DecoratorBlockNode instead, we would only need a decorate method\n */\nexport class HorizontalRuleServerNode extends DecoratorNode<null | React.ReactElement> {\n static clone(node: HorizontalRuleServerNode): HorizontalRuleServerNode {\n return new this(node.__key)\n }\n\n static getType(): string {\n return 'horizontalrule'\n }\n\n /**\n * Defines what happens if you copy an hr element from another page and paste it into the lexical editor\n *\n * This also determines the behavior of lexical's internal HTML -> Lexical converter\n */\n static importDOM(): DOMConversionMap | null {\n return {\n hr: () => ({\n conversion: $convertHorizontalRuleElement,\n priority: 0,\n }),\n }\n }\n\n /**\n * The data for this node is stored serialized as JSON. This is the \"load function\" of that node: it takes the saved data and converts it into a node.\n */\n static importJSON(serializedNode: SerializedHorizontalRuleNode): HorizontalRuleServerNode {\n return $createHorizontalRuleServerNode()\n }\n\n /**\n * Determines how the hr element is rendered in the lexical editor. This is only the \"initial\" / \"outer\" HTML element.\n */\n createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('hr')\n addClassNamesToElement(element, config.theme.hr)\n return element\n }\n\n decorate(): null | React.ReactElement {\n return null\n }\n\n /**\n * Opposite of importDOM, this function defines what happens when you copy an hr element from the lexical editor and paste it into another page.\n *\n * This also determines the behavior of lexical's internal Lexical -> HTML converter\n */\n exportDOM(): DOMExportOutput {\n return { element: document.createElement('hr') }\n }\n /**\n * Opposite of importJSON. This determines what data is saved in the database / in the lexical editor state.\n */\n exportJSON(): SerializedLexicalNode {\n return {\n type: 'horizontalrule',\n version: 1,\n }\n }\n\n getTextContent(): string {\n return '\\n'\n }\n\n isInline(): false {\n return false\n }\n\n updateDOM(): boolean {\n return false\n }\n}\n\nfunction $convertHorizontalRuleElement(): DOMConversionOutput {\n return { node: $createHorizontalRuleServerNode() }\n}\n\nexport function $createHorizontalRuleServerNode(): HorizontalRuleServerNode {\n return $applyNodeReplacement(new HorizontalRuleServerNode())\n}\n\nexport function $isHorizontalRuleServerNode(\n node: LexicalNode | null | undefined,\n): node is HorizontalRuleServerNode {\n return node instanceof HorizontalRuleServerNode\n}\n"],
5
+ "mappings": "wCAGA,OAASA,yBAAAA,MAA6B,UACtC,UAAYC,MAAW,QCQvB,OAASC,0BAAAA,MAA8B,iBACvC,OAASC,yBAAAA,EAAuBC,iBAAAA,EAAeC,iBAAAA,MAAqB,UAa7D,IAAMC,EAAuDF,EAClE,gCAAA,EAUWG,EAAN,cAAuCF,CAAA,CAC5C,OAAOG,MAAMC,EAA0D,CACrE,OAAO,IAAI,KAAKA,EAAKC,KAAK,CAC5B,CAEA,OAAOC,SAAkB,CACvB,MAAO,gBACT,CAOA,OAAOC,WAAqC,CAC1C,MAAO,CACLC,GAAIA,KAAO,CACTC,WAAYC,EACZC,SAAU,CACZ,EACF,CACF,CAKA,OAAOC,WAAWC,EAAwE,CACxF,OAAOC,EAAA,CACT,CAKAC,UAAUC,EAAmC,CAC3C,IAAMC,EAAUC,SAASC,cAAc,IAAA,EACvCtB,OAAAA,EAAuBoB,EAASD,EAAOI,MAAMZ,EAAE,EACxCS,CACT,CAEAI,UAAsC,CACpC,OAAO,IACT,CAOAC,WAA6B,CAC3B,MAAO,CAAEL,QAASC,SAASC,cAAc,IAAA,CAAM,CACjD,CAIAI,YAAoC,CAClC,MAAO,CACLC,KAAM,iBACNC,QAAS,CACX,CACF,CAEAC,gBAAyB,CACvB,MAAO;CACT,CAEAC,UAAkB,CAChB,MAAO,EACT,CAEAC,WAAqB,CACnB,MAAO,EACT,CACF,EAEA,SAASlB,GAAA,CACP,MAAO,CAAEN,KAAMU,EAAA,CAAkC,CACnD,CAEO,SAASA,GAAA,CACd,OAAOhB,EAAsB,IAAII,CAAA,CACnC,CD3GA,IAAM2B,EAAgCC,OAAK,IACzC,OAAO,yBAAA,EAAmCC,KAAMC,IAAY,CAC1DC,QAASD,EAAOH,uBAClB,EAAA,CAAA,EAGWK,EAAN,cAAiCC,CAAA,CACtC,OAAOC,MAAMC,EAA0D,CACrE,OAAO,MAAMD,MAAMC,CAAA,CACrB,CAEA,OAAOC,SAAkB,CACvB,OAAO,MAAMA,QAAA,CACf,CAKA,OAAOC,WAAWC,EAAkE,CAClF,OAAOC,EAAA,CACT,CAKAC,UAA+B,CAC7B,OAAOC,EAACd,EAAA,CAAwBe,QAAS,KAAKC,OAChD,CAEAC,YAAoC,CAClC,OAAO,MAAMA,WAAA,CACf,CACF,EAMO,SAASC,GAAA,CACd,OAAOC,EAAsB,IAAIC,CAAA,CACnC,CAEO,SAASC,EACdC,EAAoC,CAEpC,OAAOA,aAAgBF,CACzB",
6
6
  "names": ["$applyNodeReplacement", "React", "addClassNamesToElement", "$applyNodeReplacement", "createCommand", "DecoratorNode", "INSERT_HORIZONTAL_RULE_COMMAND", "HorizontalRuleServerNode", "clone", "node", "__key", "getType", "importDOM", "hr", "conversion", "$convertHorizontalRuleElement", "priority", "importJSON", "serializedNode", "$createHorizontalRuleServerNode", "createDOM", "config", "element", "document", "createElement", "theme", "decorate", "exportDOM", "exportJSON", "type", "version", "getTextContent", "isInline", "updateDOM", "HorizontalRuleComponent", "lazy", "then", "module", "default", "HorizontalRuleNode", "HorizontalRuleServerNode", "clone", "node", "getType", "importJSON", "serializedNode", "$createHorizontalRuleNode", "decorate", "_jsx", "nodeKey", "__key", "exportJSON", "$createHorizontalRuleNode", "$applyNodeReplacement", "HorizontalRuleNode", "$isHorizontalRuleNode", "node"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use client";import{a as O,b as T,c as U,f as A}from"./chunk-WAMTSCVM.js";import{b}from"./chunk-GD6LBQBJ.js";import{jsx as t,jsxs as d}from"react/jsx-runtime";import{useLexicalComposerContext as ee}from"@lexical/react/LexicalComposerContext.js";import{useLexicalNodeSelection as te}from"@lexical/react/useLexicalNodeSelection.js";import{mergeRegister as oe}from"@lexical/utils";import{getTranslation as P}from"@payloadcms/translations";import{Button as v,DrawerToggler as le,File as ae,formatDrawerSlug as re,useConfig as ie,useDocumentDrawer as se,useEditDepth as ne,useModal as de,usePayloadAPI as ce,useTranslation as ue}from"@payloadcms/ui";import{$getNodeByKey as I,$getSelection as me,$isNodeSelection as pe,CLICK_COMMAND as fe,COMMAND_PRIORITY_LOW as w,KEY_BACKSPACE_COMMAND as ge,KEY_DELETE_COMMAND as he}from"lexical";import{useCallback as g,useEffect as _e,useId as Ce,useReducer as De,useRef as be,useState as ve}from"react";var l="lexical-upload",K={depth:0},we=c=>{let{data:{fields:j,relationTo:N,value:n},nodeKey:a}=c;if(typeof n=="object")throw new Error("Upload value should be a string or number. The Lexical Upload component should not receive the populated value object.");let{config:{collections:B,routes:{api:F},serverURL:k}}=ie(),h=be(null),{closeModal:S}=de(),{uuid:W}=b(),Y=ne(),[o]=ee(),[r,_,$]=te(a),{editorConfig:z,field:C}=b(),{i18n:x,t:u}=ue(),[E,H]=De(e=>e+1,0),[i]=ve(()=>B.find(e=>e.slug===N)),q=Ce(),m=re({slug:"lexical-upload-drawer-"+W+q,depth:Y}),[G,J,{closeDrawer:R}]=se({id:n,collectionSlug:i.slug}),[{data:p},{setParams:y}]=ce(`${k}${F}/${i.slug}/${n}`,{initialParams:K}),M=p?.thumbnailURL||p?.url,Q=g(()=>{o.update(()=>{I(a)?.remove()})},[o,a]),V=g(e=>{y({...K,cacheBust:E}),H(),R()},[y,E,R]),D=g(e=>{let f=me();return r&&pe(f)&&(e.preventDefault(),o.update(()=>{f.getNodes().forEach(s=>{A(s)&&s.remove()})})),!1},[o,r]);_e(()=>oe(o.registerCommand(fe,e=>e.target===h.current||h.current?.contains(e.target)?(e.shiftKey?_(!r):r||($(),_(!0)),!0):!1,w),o.registerCommand(he,D,w),o.registerCommand(ge,D,w)),[$,o,r,a,D,_]);let L=z?.resolvedFeatureMap?.get("upload")?.sanitizedClientFeatureProps.collections?.[i.slug]?.hasExtraFields,X=g((e,f)=>{o.update(()=>{let s=I(a);if(s){let Z={...s.getData(),fields:f};s.setData(Z)}}),S(m)},[S,o,m,a]);return d("div",{className:[l,r&&`${l}--selected`].filter(Boolean).join(" "),contentEditable:!1,ref:h,children:[d("div",{className:`${l}__card`,children:[d("div",{className:`${l}__topRow`,children:[t("div",{className:`${l}__thumbnail`,children:M?t("img",{alt:p?.filename,"data-lexical-upload-id":n,"data-lexical-upload-relation-to":N,src:M}):t(ae,{})}),d("div",{className:`${l}__topRowRightPanel`,children:[t("div",{className:`${l}__collectionLabel`,children:P(i.labels.singular,x)}),o.isEditable()&&d("div",{className:`${l}__actions`,children:[L?t(le,{className:`${l}__upload-drawer-toggler`,disabled:C?.admin?.readOnly,slug:m,children:t(v,{buttonStyle:"icon-label",el:"div",icon:"edit",onClick:e=>{e.preventDefault()},round:!0,tooltip:u("fields:editRelationship")})}):null,t(v,{buttonStyle:"icon-label",disabled:C?.admin?.readOnly,el:"div",icon:"swap",onClick:()=>{o.dispatchCommand(U,{replace:{nodeKey:a}})},round:!0,tooltip:u("fields:swapUpload")}),t(v,{buttonStyle:"icon-label",className:`${l}__removeButton`,disabled:C?.admin?.readOnly,icon:"x",onClick:e=>{e.preventDefault(),Q()},round:!0,tooltip:u("fields:removeUpload")})]})]})]}),t("div",{className:`${l}__bottomRow`,children:t(J,{className:`${l}__doc-drawer-toggler`,children:t("strong",{children:p?.filename})})})]}),n?t(G,{onSave:V}):null,L?t(O,{data:j,drawerSlug:m,drawerTitle:u("general:editLabel",{label:P(i.labels.singular,x)}),featureKey:"upload",handleDrawerSubmit:X,schemaPathSuffix:i.slug}):null]})},Ie=c=>t(T,{...c,uploads:!0,children:t(we,{...c})});export{Ie as UploadComponent};
2
+ //# sourceMappingURL=component-6PBZ2U3Z.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/features/upload/client/component/index.tsx"],
4
+ "sourcesContent": ["'use client'\nimport type { ClientCollectionConfig, Data } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'\nimport { mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DrawerToggler,\n File,\n formatDrawerSlug,\n useConfig,\n useDocumentDrawer,\n useEditDepth,\n useModal,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n} from 'lexical'\nimport React, { useCallback, useEffect, useId, useReducer, useRef, useState } from 'react'\n\nimport type { BaseClientFeatureProps } from '../../../typesClient.js'\nimport type { UploadData } from '../../server/nodes/UploadNode.js'\nimport type { UploadFeaturePropsClient } from '../feature.client.js'\nimport type { UploadNode } from '../nodes/UploadNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { EnabledRelationshipsCondition } from '../../../relationship/client/utils/EnabledRelationshipsCondition.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from '../drawer/commands.js'\nimport { $isUploadNode } from '../nodes/UploadNode.js'\nimport './index.scss'\n\nconst baseClass = 'lexical-upload'\n\nconst initialParams = {\n depth: 0,\n}\n\nexport type ElementProps = {\n data: UploadData\n nodeKey: string\n}\n\nconst Component: React.FC<ElementProps> = (props) => {\n const {\n data: { fields, relationTo, value },\n nodeKey,\n } = props\n\n if (typeof value === 'object') {\n throw new Error(\n 'Upload value should be a string or number. The Lexical Upload component should not receive the populated value object.',\n )\n }\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const uploadRef = useRef<HTMLDivElement | null>(null)\n const { closeModal } = useModal()\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n const [editor] = useLexicalComposerContext()\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n\n const { editorConfig, field } = useEditorConfigContext()\n\n const { i18n, t } = useTranslation()\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [relatedCollection] = useState<ClientCollectionConfig>(\n () => collections.find((coll) => coll.slug === relationTo)!,\n )\n\n const componentID = useId()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-upload-drawer-` + uuid + componentID, // There can be multiple upload components, each with their own drawer, in one single editor => separate them by componentID\n depth: editDepth,\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n id: value,\n collectionSlug: relatedCollection.slug,\n })\n\n // Get the referenced document\n const [{ data }, { setParams }] = usePayloadAPI(\n `${serverURL}${api}/${relatedCollection.slug}/${value}`,\n { initialParams },\n )\n\n const thumbnailSRC = data?.thumbnailURL || data?.url\n\n const removeUpload = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const updateUpload = useCallback(\n (data: Data) => {\n setParams({\n ...initialParams,\n cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed\n })\n\n dispatchCacheBust()\n closeDrawer()\n },\n [setParams, cacheBust, closeDrawer],\n )\n\n const $onDelete = useCallback(\n (event: KeyboardEvent) => {\n const deleteSelection = $getSelection()\n if (isSelected && $isNodeSelection(deleteSelection)) {\n event.preventDefault()\n editor.update(() => {\n deleteSelection.getNodes().forEach((node) => {\n if ($isUploadNode(node)) {\n node.remove()\n }\n })\n })\n }\n return false\n },\n [editor, isSelected],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<MouseEvent>(\n CLICK_COMMAND,\n (event: MouseEvent) => {\n // Check if uploadRef.target or anything WITHIN uploadRef.target was clicked\n if (\n event.target === uploadRef.current ||\n uploadRef.current?.contains(event.target as Node)\n ) {\n if (event.shiftKey) {\n setSelected(!isSelected)\n } else {\n if (!isSelected) {\n clearSelection()\n setSelected(true)\n }\n }\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected])\n\n const hasExtraFields = (\n editorConfig?.resolvedFeatureMap?.get('upload')\n ?.sanitizedClientFeatureProps as BaseClientFeatureProps<UploadFeaturePropsClient>\n ).collections?.[relatedCollection.slug]?.hasExtraFields\n\n const onExtraFieldsDrawerSubmit = useCallback(\n (_, data) => {\n // Update lexical node (with key nodeKey) with new data\n editor.update(() => {\n const uploadNode: null | UploadNode = $getNodeByKey(nodeKey)\n if (uploadNode) {\n const newData: UploadData = {\n ...uploadNode.getData(),\n fields: data,\n }\n uploadNode.setData(newData)\n }\n })\n\n closeModal(drawerSlug)\n },\n [closeModal, editor, drawerSlug, nodeKey],\n )\n\n return (\n <div\n className={[baseClass, isSelected && `${baseClass}--selected`].filter(Boolean).join(' ')}\n contentEditable={false}\n ref={uploadRef}\n >\n <div className={`${baseClass}__card`}>\n <div className={`${baseClass}__topRow`}>\n {/* TODO: migrate to use @payloadcms/ui/elements/Thumbnail component */}\n <div className={`${baseClass}__thumbnail`}>\n {thumbnailSRC ? (\n <img\n alt={data?.filename}\n data-lexical-upload-id={value}\n data-lexical-upload-relation-to={relationTo}\n src={thumbnailSRC}\n />\n ) : (\n <File />\n )}\n </div>\n <div className={`${baseClass}__topRowRightPanel`}>\n <div className={`${baseClass}__collectionLabel`}>\n {getTranslation(relatedCollection.labels.singular, i18n)}\n </div>\n {editor.isEditable() && (\n <div className={`${baseClass}__actions`}>\n {hasExtraFields ? (\n <DrawerToggler\n className={`${baseClass}__upload-drawer-toggler`}\n disabled={field?.admin?.readOnly}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"icon-label\"\n el=\"div\"\n icon=\"edit\"\n onClick={(e) => {\n e.preventDefault()\n }}\n round\n tooltip={t('fields:editRelationship')}\n />\n </DrawerToggler>\n ) : null}\n\n <Button\n buttonStyle=\"icon-label\"\n disabled={field?.admin?.readOnly}\n el=\"div\"\n icon=\"swap\"\n onClick={() => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }}\n round\n tooltip={t('fields:swapUpload')}\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.admin?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeUpload()\n }}\n round\n tooltip={t('fields:removeUpload')}\n />\n </div>\n )}\n </div>\n </div>\n <div className={`${baseClass}__bottomRow`}>\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <strong>{data?.filename}</strong>\n </DocumentDrawerToggler>\n </div>\n </div>\n {value ? <DocumentDrawer onSave={updateUpload} /> : null}\n {hasExtraFields ? (\n <FieldsDrawer\n data={fields}\n drawerSlug={drawerSlug}\n drawerTitle={t('general:editLabel', {\n label: getTranslation(relatedCollection.labels.singular, i18n),\n })}\n featureKey=\"upload\"\n handleDrawerSubmit={onExtraFieldsDrawerSubmit}\n schemaPathSuffix={relatedCollection.slug}\n />\n ) : null}\n </div>\n )\n}\n\nexport const UploadComponent = (props: ElementProps): React.ReactNode => {\n return (\n <EnabledRelationshipsCondition {...props} uploads>\n <Component {...props} />\n </EnabledRelationshipsCondition>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["useLexicalComposerContext", "useLexicalNodeSelection", "mergeRegister", "getTranslation", "Button", "DrawerToggler", "File", "formatDrawerSlug", "useConfig", "useDocumentDrawer", "useEditDepth", "useModal", "usePayloadAPI", "useTranslation", "$getNodeByKey", "$getSelection", "$isNodeSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "useCallback", "useEffect", "useId", "useReducer", "useRef", "useState", "baseClass", "initialParams", "depth", "Component", "props", "data", "fields", "relationTo", "value", "nodeKey", "Error", "config", "collections", "routes", "api", "serverURL", "useConfig", "uploadRef", "useRef", "closeModal", "useModal", "uuid", "useEditorConfigContext", "editDepth", "useEditDepth", "editor", "useLexicalComposerContext", "isSelected", "setSelected", "clearSelection", "useLexicalNodeSelection", "editorConfig", "field", "i18n", "t", "useTranslation", "cacheBust", "dispatchCacheBust", "useReducer", "state", "relatedCollection", "useState", "find", "coll", "slug", "componentID", "useId", "drawerSlug", "formatDrawerSlug", "DocumentDrawer", "DocumentDrawerToggler", "closeDrawer", "useDocumentDrawer", "id", "collectionSlug", "setParams", "usePayloadAPI", "thumbnailSRC", "thumbnailURL", "url", "removeUpload", "useCallback", "update", "$getNodeByKey", "remove", "updateUpload", "$onDelete", "event", "deleteSelection", "$getSelection", "$isNodeSelection", "preventDefault", "getNodes", "forEach", "node", "$isUploadNode", "useEffect", "mergeRegister", "registerCommand", "CLICK_COMMAND", "target", "current", "contains", "shiftKey", "COMMAND_PRIORITY_LOW", "KEY_DELETE_COMMAND", "KEY_BACKSPACE_COMMAND", "hasExtraFields", "resolvedFeatureMap", "get", "sanitizedClientFeatureProps", "onExtraFieldsDrawerSubmit", "_", "uploadNode", "newData", "getData", "setData", "_jsxs", "className", "filter", "Boolean", "join", "contentEditable", "ref", "_jsx", "alt", "filename", "src", "File", "getTranslation", "labels", "singular", "isEditable", "DrawerToggler", "disabled", "admin", "readOnly", "Button", "buttonStyle", "el", "icon", "onClick", "e", "round", "tooltip", "dispatchCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "replace", "onSave", "FieldsDrawer", "drawerTitle", "label", "featureKey", "handleDrawerSubmit", "schemaPathSuffix", "UploadComponent", "EnabledRelationshipsCondition", "uploads"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use client";import{c as w}from"./chunk-6LZZDOEO.js";import{b as T}from"./chunk-GD6LBQBJ.js";import{jsx as f,jsxs as se}from"react/jsx-runtime";import{Collapsible as ie,Form as ne,Pill as ae,RenderComponent as re,SectionTitle as ce,ShimmerEffect as de,useConfig as me,useDocumentInfo as ue,useFieldProps as fe,useFormSubmitted as pe,useTranslation as be}from"@payloadcms/ui";import{useCallback as he,useEffect as ke,useMemo as ye,useState as _e}from"react";import{getTranslation as Ce}from"@payloadcms/translations";import{getFormState as K}from"@payloadcms/ui/shared";import{v4 as ve}from"uuid";import{jsx as y,jsxs as B}from"react/jsx-runtime";import{useLexicalComposerContext as H}from"@lexical/react/LexicalComposerContext.js";import{getTranslation as W}from"@payloadcms/translations";import{Button as z,Collapsible as G,ErrorPill as J,Pill as Q,RenderComponent as X,RenderFields as Y,SectionTitle as Z,useDocumentInfo as ee,useFormSubmitted as oe,useTranslation as te}from"@payloadcms/ui";import{dequal as le}from"dequal/lite";import{$getNodeByKey as U}from"lexical";import A,{useCallback as E}from"react";import{c as V}from"react/compiler-runtime";import{useAllFormFields as D}from"@payloadcms/ui";import{reduceFieldsToValues as M}from"payload/shared";import{useEffect as q}from"react";function j({fields:i}){for(let e in i){let o=i[e];Array.isArray(o.rows)&&"value"in o&&(o.disableFormData=!0)}return i}var O=i=>{let e=V(8),{onChange:o}=i,[l]=D(),d,s;e[0]!==l?(s=j({fields:l}),d=M(s,!0),e[0]=l,e[1]=d,e[2]=s):(d=e[1],s=e[2]);let m=d,t,a;return e[3]!==o||e[4]!==s||e[5]!==m?(t=()=>{o&&o({fullFieldsWithValues:s,newFormData:m})},a=[m,o,s],e[3]=o,e[4]=s,e[5]=m,e[6]=t,e[7]=a):(t=e[6],a=e[7]),q(t,a),null};function L(i){for(let e in i){let o=i[e];Array.isArray(o)&&!o?.length?delete i[e]:o&&typeof o=="object"?L(o):o==null&&delete i[e]}}var I=i=>{let{baseClass:e,clientBlock:o,field:l,formSchema:d,nodeKey:s,schemaPath:m}=i,{formData:t}=i,{i18n:a}=te(),[u]=H(),{getDocPreferences:x,setDocFieldPreferences:P}=ee(),[p,N]=A.useState(()=>{let r=!1;return x().then(c=>{let k=c?.fields[l.name]?.collapsed;k&&k.includes(t.id)&&(r=!0,N(!0))}),r}),F=oe(),[n,S]=A.useState(0),C=F&&n>0,$=[`${e}__row`,C?`${e}__row--has-errors`:`${e}__row--no-errors`].filter(Boolean).join(" "),R=E(({fullFieldsWithValues:r,newFormData:c})=>{if(c.id=t.id,c.blockType=t.blockType,L(c),L(t),le(t,c)||setTimeout(()=>{u.update(()=>{let h=U(s);h&&w(h)&&(t=c,h.setFields(c))})},0),F){let h=0;for(let k of Object.values(r))k?.valid===!1&&h++;S(h)}},[u,s,F,t]),v=E(r=>{x().then(c=>{let k=c?.fields[l.name]?.collapsed,g=k&&k?.length?k:[];r?g.includes(t.id)||g.push(t.id):g.includes(t.id)&&g.splice(g.indexOf(t.id),1),P(l.name,{collapsed:g,hello:"hi"})})},[x,l.name,P,t.id]),b=E(()=>{u.update(()=>{U(s)?.remove()})},[u,s]);return B(A.Fragment,{children:[y(G,{className:$,collapsibleStyle:C?"error":"default",header:o?.admin?.components?.Label?y(X,{clientProps:{blockKind:"lexicalBlock",formData:t},mappedComponent:o.admin.components.Label}):B("div",{className:`${e}__block-header`,children:[B("div",{children:[y(Q,{className:`${e}__block-pill ${e}__block-pill-${t?.blockType}`,pillStyle:"white",children:typeof o?.labels?.singular=="string"?W(o?.labels.singular,a):o.slug}),y(Z,{path:"blockName",readOnly:l?.admin?.readOnly||!1}),C&&y(J,{count:n,i18n:a,withMessage:!0})]}),u.isEditable()&&y(z,{buttonStyle:"icon-label",className:`${e}__removeButton`,disabled:l?.admin?.readOnly,icon:"x",onClick:r=>{r.preventDefault(),b()},round:!0,tooltip:"Remove Block"})]}),isCollapsed:p,onToggle:r=>{v(r),N(r)},children:y(Y,{className:`${e}__fields`,fields:d,forceRender:!0,margins:"small",path:"",readOnly:!1,schemaPath:m})},0),y(O,{onChange:R})]})};var _="lexical-block",Ge=i=>{let{formData:e,nodeKey:o}=i,{config:l}=me(),d=pe(),{id:s}=ue(),{path:m,schemaPath:t}=fe(),{field:a}=T(),[u,x]=_e(!1),{field:{richTextComponentMap:P}}=T(),p=`${t}.lexical_internal_feature.blocks.lexical_blocks.lexical_blocks.${e.blockType}`,n=(P?.get("lexical_internal_feature.blocks.fields.lexical_blocks")[0]).blocks.find(v=>v.slug===e.blockType);ke(()=>{e&&(async()=>{let{state:b}=await K({apiRoute:l.routes.api,body:{id:s,data:e,operation:"update",schemaPath:p},serverURL:l.serverURL});b&&(b.blockName={initialValue:"",passesCondition:!0,valid:!0,value:e.blockName},x(b))})()},[l.routes.api,l.serverURL,p,s]);let S=he(async({formState:v})=>{let{state:b}=await K({apiRoute:l.routes.api,body:{id:s,formState:v,operation:"update",schemaPath:p},serverURL:l.serverURL});return b.blockName={initialValue:"",passesCondition:!0,valid:!0,value:e.blockName},b},[l.routes.api,l.serverURL,s,p,e.blockName]),{i18n:C}=be(),$=[`${_}__row`,`${_}__row--no-errors`].filter(Boolean).join(" "),R=ye(()=>n&&u!==!1?f(ne,{beforeSubmit:[S],fields:n.fields,initialState:u,onChange:[S],submitted:d,uuid:ve(),children:f(I,{baseClass:_,clientBlock:n,field:a,formData:e,formSchema:n.fields,nodeKey:o,path:`${m}.lexical_internal_feature.blocks.${e.blockType}`,schemaPath:p})}):f(ie,{className:$,collapsibleStyle:"default",header:n?.admin?.components?.Label?f(re,{clientProps:{blockKind:"lexicalBlock",formData:e},mappedComponent:n.admin.components.Label}):f("div",{className:`${_}__block-header`,children:se("div",{children:[f(ae,{className:`${_}__block-pill ${_}__block-pill-${e?.blockType}`,pillStyle:"white",children:n&&typeof n.labels?.singular=="string"?Ce(n.labels.singular,C):n?.slug}),f(ce,{path:"blockName",readOnly:a?.admin?.readOnly||!1})]})}),children:f(de,{height:"35vh"})},0),[n,u,S,d,a,o,m,p,$,C]);return f("div",{className:_+" "+_+"-"+e.blockType,children:R})};export{Ge as BlockComponent};
2
+ //# sourceMappingURL=component-6Y2K2RNP.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/features/blocks/client/component/index.tsx", "../../../src/features/blocks/client/component/BlockContent.tsx", "../../../src/features/blocks/client/component/FormSavePlugin.tsx", "../../../src/features/blocks/client/component/removeEmptyArrayValues.ts"],
4
+ "sourcesContent": ["'use client'\n\nimport {\n Collapsible,\n Form,\n Pill,\n RenderComponent,\n SectionTitle,\n ShimmerEffect,\n useConfig,\n useDocumentInfo,\n useFieldProps,\n useFormSubmitted,\n useTranslation,\n} from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nconst baseClass = 'lexical-block'\nimport type { BlocksFieldClient, FormState } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport { v4 as uuid } from 'uuid'\n\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { BlockContent } from './BlockContent.js'\nimport './index.scss'\n\ntype Props = {\n readonly children?: React.ReactNode\n readonly formData: BlockFields\n readonly nodeKey: string\n}\n\nexport const BlockComponent: React.FC<Props> = (props) => {\n const { formData, nodeKey } = props\n const { config } = useConfig()\n const submitted = useFormSubmitted()\n const { id } = useDocumentInfo()\n const { path, schemaPath } = useFieldProps()\n const { field: parentLexicalRichTextField } = useEditorConfigContext()\n\n const [initialState, setInitialState] = useState<false | FormState>(false)\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.lexical_blocks.${formData.blockType}`\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`\n const blocksField: BlocksFieldClient = richTextComponentMap?.get(componentMapRenderedBlockPath)[0]\n\n const clientBlock = blocksField.blocks.find((block) => block.slug === formData.blockType)\n\n // Field Schema\n useEffect(() => {\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n data: formData,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n if (state) {\n state.blockName = {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n setInitialState(state)\n }\n }\n\n if (formData) {\n void awaitInitialState()\n }\n }, [config.routes.api, config.serverURL, schemaFieldsPath, id]) // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n\n const onChange = useCallback(\n async ({ formState: prevFormState }) => {\n const { state: formState } = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n formState: prevFormState,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n formState.blockName = {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n return formState\n },\n\n [config.routes.api, config.serverURL, id, schemaFieldsPath, formData.blockName],\n )\n const { i18n } = useTranslation()\n\n const classNames = [`${baseClass}__row`, `${baseClass}__row--no-errors`].filter(Boolean).join(' ')\n\n // Memoized Form JSX\n const formContent = useMemo(() => {\n return clientBlock && initialState !== false ? (\n <Form\n beforeSubmit={[onChange]}\n fields={clientBlock.fields}\n initialState={initialState}\n onChange={[onChange]}\n submitted={submitted}\n uuid={uuid()}\n >\n <BlockContent\n baseClass={baseClass}\n clientBlock={clientBlock}\n field={parentLexicalRichTextField}\n formData={formData}\n formSchema={clientBlock.fields}\n nodeKey={nodeKey}\n path={`${path}.lexical_internal_feature.blocks.${formData.blockType}`}\n schemaPath={schemaFieldsPath}\n />\n </Form>\n ) : (\n <Collapsible\n className={classNames}\n collapsibleStyle=\"default\"\n header={\n clientBlock?.admin?.components?.Label ? (\n <RenderComponent\n clientProps={{ blockKind: 'lexicalBlock', formData }}\n mappedComponent={clientBlock.admin.components.Label}\n />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <div>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`}\n pillStyle=\"white\"\n >\n {clientBlock && typeof clientBlock.labels?.singular === 'string'\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug}\n </Pill>\n <SectionTitle\n path=\"blockName\"\n readOnly={parentLexicalRichTextField?.admin?.readOnly || false}\n />\n </div>\n </div>\n )\n }\n key={0}\n >\n <ShimmerEffect height=\"35vh\" />\n </Collapsible>\n )\n }, [\n clientBlock,\n initialState,\n onChange,\n submitted,\n parentLexicalRichTextField,\n nodeKey,\n path,\n schemaFieldsPath,\n classNames,\n i18n,\n ])\n\n return <div className={baseClass + ' ' + baseClass + '-' + formData.blockType}>{formContent}</div>\n}\n", "'use client'\nimport type { ClientBlock, ClientField, CollapsedPreferences, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n Collapsible,\n ErrorPill,\n Pill,\n RenderComponent,\n RenderFields,\n SectionTitle,\n useDocumentInfo,\n useFormSubmitted,\n useTranslation,\n} from '@payloadcms/ui'\nimport { dequal } from 'dequal/lite'\nimport { $getNodeByKey } from 'lexical'\nimport React, { useCallback } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../../../../types.js'\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\n\nimport { $isBlockNode } from '../nodes/BlocksNode.js'\nimport { FormSavePlugin } from './FormSavePlugin.js'\n\ntype Props = {\n baseClass: string\n clientBlock: ClientBlock\n field: LexicalRichTextFieldProps['field']\n formData: BlockFields\n formSchema: ClientField[]\n nodeKey: string\n path: string\n schemaPath: string\n}\n\n// Recursively remove all undefined values from even being present in formData, as they will\n// cause isDeepEqual to return false if, for example, formData has a key that fields.data\n// does not have, even if it's undefined.\n// Currently, this happens if a block has another sub-blocks field. Inside formData, that sub-blocks field has an undefined blockName property.\n// Inside of fields.data however, that sub-blocks blockName property does not exist at all.\nfunction removeUndefinedAndNullAndEmptyArraysRecursively(obj: object) {\n for (const key in obj) {\n const value = obj[key]\n if (Array.isArray(value) && !value?.length) {\n delete obj[key]\n } else if (value && typeof value === 'object') {\n removeUndefinedAndNullAndEmptyArraysRecursively(value)\n } else if (value === undefined || value === null) {\n delete obj[key]\n }\n }\n}\n\n/**\n * The actual content of the Block. This should be INSIDE a Form component,\n * scoped to the block. All format operations in here are thus scoped to the block's form, and\n * not the whole document.\n */\nexport const BlockContent: React.FC<Props> = (props) => {\n const { baseClass, clientBlock, field, formSchema, nodeKey, schemaPath } = props\n let { formData } = props\n\n const { i18n } = useTranslation()\n const [editor] = useLexicalComposerContext()\n // Used for saving collapsed to preferences (and gettin' it from there again)\n // Remember, these preferences are scoped to the whole document, not just this form. This\n // is important to consider for the data path used in setDocFieldPreferences\n const { getDocPreferences, setDocFieldPreferences } = useDocumentInfo()\n\n const [isCollapsed, setIsCollapsed] = React.useState<boolean>(() => {\n let initialState = false\n\n void getDocPreferences().then((currentDocPreferences) => {\n const currentFieldPreferences = currentDocPreferences?.fields[field.name]\n\n const collapsedArray = currentFieldPreferences?.collapsed\n\n if (collapsedArray && collapsedArray.includes(formData.id)) {\n initialState = true\n setIsCollapsed(true)\n }\n })\n return initialState\n })\n\n const hasSubmitted = useFormSubmitted()\n\n const [errorCount, setErrorCount] = React.useState(0)\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n const onFormChange = useCallback(\n ({\n fullFieldsWithValues,\n newFormData,\n }: {\n fullFieldsWithValues: FormState\n newFormData: BlockFields\n }) => {\n newFormData.id = formData.id\n newFormData.blockType = formData.blockType\n\n removeUndefinedAndNullAndEmptyArraysRecursively(newFormData)\n removeUndefinedAndNullAndEmptyArraysRecursively(formData)\n\n // Only update if the data has actually changed. Otherwise, we may be triggering an unnecessary value change,\n // which would trigger the \"Leave without saving\" dialog unnecessarily\n if (!dequal(formData, newFormData)) {\n // Running this in the next tick in the meantime fixes this issue: https://github.com/payloadcms/payload/issues/4108\n // I don't know why. When this is called immediately, it might focus out of a nested lexical editor field if an update is made there.\n // My hypothesis is that the nested editor might not have fully finished its update cycle yet. By updating in the next tick, we\n // ensure that the nested editor has finished its update cycle before we update the block node.\n setTimeout(() => {\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n formData = newFormData\n node.setFields(newFormData)\n }\n })\n }, 0)\n }\n\n // update error count\n if (hasSubmitted) {\n let rowErrorCount = 0\n for (const formField of Object.values(fullFieldsWithValues)) {\n if (formField?.valid === false) {\n rowErrorCount++\n }\n }\n setErrorCount(rowErrorCount)\n }\n },\n [editor, nodeKey, hasSubmitted, formData],\n )\n\n const onCollapsedChange = useCallback(\n (changedCollapsed: boolean) => {\n void getDocPreferences().then((currentDocPreferences) => {\n const currentFieldPreferences = currentDocPreferences?.fields[field.name]\n\n const collapsedArray = currentFieldPreferences?.collapsed\n\n const newCollapsed: CollapsedPreferences =\n collapsedArray && collapsedArray?.length ? collapsedArray : []\n\n if (changedCollapsed) {\n if (!newCollapsed.includes(formData.id)) {\n newCollapsed.push(formData.id)\n }\n } else {\n if (newCollapsed.includes(formData.id)) {\n newCollapsed.splice(newCollapsed.indexOf(formData.id), 1)\n }\n }\n\n setDocFieldPreferences(field.name, {\n collapsed: newCollapsed,\n hello: 'hi',\n })\n })\n },\n [getDocPreferences, field.name, setDocFieldPreferences, formData.id],\n )\n\n const removeBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n return (\n <React.Fragment>\n <Collapsible\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n header={\n clientBlock?.admin?.components?.Label ? (\n <RenderComponent\n clientProps={{ blockKind: 'lexicalBlock', formData }}\n mappedComponent={clientBlock.admin.components.Label}\n />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <div>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`}\n pillStyle=\"white\"\n >\n {typeof clientBlock?.labels?.singular === 'string'\n ? getTranslation(clientBlock?.labels.singular, i18n)\n : clientBlock.slug}\n </Pill>\n <SectionTitle path=\"blockName\" readOnly={field?.admin?.readOnly || false} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n {editor.isEditable() && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.admin?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeBlock()\n }}\n round\n tooltip=\"Remove Block\"\n />\n )}\n </div>\n )\n }\n isCollapsed={isCollapsed}\n key={0}\n onToggle={(incomingCollapsedState) => {\n onCollapsedChange(incomingCollapsedState)\n setIsCollapsed(incomingCollapsedState)\n }}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fields={formSchema}\n forceRender\n margins=\"small\"\n path=\"\" // Leaving path empty makes it so field values are not prefixed / scoped by the entire schemaPath. e.g. we can access \"myField\" instead of \"someLexicalField.feature.blocks.someArrayB\" // TODO: Could there be any implications leaving path different than schemaPath?\n readOnly={false}\n schemaPath={schemaPath} // Having the correct schemaPath here allows sub-fields (like array > addRow) to run correct form-state calls and retrieve their needed form state from the server\n />\n </Collapsible>\n\n <FormSavePlugin onChange={onFormChange} />\n </React.Fragment>\n )\n}\n", "'use client'\nimport type { Data, FormState } from 'payload'\nimport type React from 'react'\n\nimport { useAllFormFields } from '@payloadcms/ui'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport { useEffect } from 'react'\n\nimport { removeEmptyArrayValues } from './removeEmptyArrayValues.js'\n\ntype Props = {\n onChange?: ({\n fullFieldsWithValues,\n newFormData,\n }: {\n fullFieldsWithValues: FormState\n newFormData: Data\n }) => void\n}\n\nexport const FormSavePlugin: React.FC<Props> = (props) => {\n const { onChange } = props\n\n const [_fields] = useAllFormFields()\n\n const fields = removeEmptyArrayValues({ fields: _fields })\n\n // Pass in fields, and indicate if you'd like to \"unflatten\" field data.\n // The result below will reflect the data stored in the form at the given time\n const newFormData = reduceFieldsToValues(fields, true)\n\n useEffect(() => {\n if (onChange) {\n onChange({ fullFieldsWithValues: fields, newFormData })\n }\n }, [newFormData, onChange, fields])\n\n return null\n}\n", "'use client'\nimport type { FormState } from 'payload'\n\n/**\n * By default, if an array field is empty, it will be included in the form state with a value of 0.\n * We do not need this behavior here, By setting `disableFormData` to true, we can prevent the field from being included in the form state\n * like that.\n * @param fields form state\n */\nexport function removeEmptyArrayValues({ fields }: { fields: FormState }): FormState {\n for (const key in fields) {\n const field = fields[key]\n if (Array.isArray(field.rows) && 'value' in field) {\n field.disableFormData = true\n }\n }\n return fields\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Collapsible", "Form", "Pill", "RenderComponent", "SectionTitle", "ShimmerEffect", "useConfig", "useDocumentInfo", "useFieldProps", "useFormSubmitted", "useTranslation", "useCallback", "useEffect", "useMemo", "useState", "getTranslation", "getFormState", "v4", "uuid", "useLexicalComposerContext", "getTranslation", "Button", "Collapsible", "ErrorPill", "Pill", "RenderComponent", "RenderFields", "SectionTitle", "useDocumentInfo", "useFormSubmitted", "useTranslation", "dequal", "$getNodeByKey", "React", "useCallback", "c", "_c", "useAllFormFields", "reduceFieldsToValues", "useEffect", "removeEmptyArrayValues", "fields", "key", "field", "Array", "isArray", "rows", "disableFormData", "FormSavePlugin", "props", "$", "_c", "onChange", "_fields", "useAllFormFields", "t0", "fields", "removeEmptyArrayValues", "reduceFieldsToValues", "newFormData", "t1", "t2", "fullFieldsWithValues", "useEffect", "removeUndefinedAndNullAndEmptyArraysRecursively", "obj", "key", "value", "Array", "isArray", "length", "BlockContent", "props", "baseClass", "clientBlock", "field", "formSchema", "nodeKey", "schemaPath", "formData", "i18n", "useTranslation", "editor", "useLexicalComposerContext", "getDocPreferences", "setDocFieldPreferences", "useDocumentInfo", "isCollapsed", "setIsCollapsed", "React", "useState", "initialState", "then", "currentDocPreferences", "collapsedArray", "fields", "name", "collapsed", "includes", "id", "hasSubmitted", "useFormSubmitted", "errorCount", "setErrorCount", "fieldHasErrors", "classNames", "filter", "Boolean", "join", "onFormChange", "useCallback", "fullFieldsWithValues", "newFormData", "blockType", "dequal", "setTimeout", "update", "node", "$getNodeByKey", "$isBlockNode", "setFields", "rowErrorCount", "formField", "Object", "values", "valid", "onCollapsedChange", "changedCollapsed", "newCollapsed", "push", "splice", "indexOf", "hello", "removeBlock", "remove", "_jsxs", "Fragment", "_jsx", "Collapsible", "className", "collapsibleStyle", "header", "admin", "components", "Label", "RenderComponent", "clientProps", "blockKind", "mappedComponent", "Pill", "pillStyle", "labels", "singular", "getTranslation", "slug", "SectionTitle", "path", "readOnly", "ErrorPill", "count", "withMessage", "isEditable", "Button", "buttonStyle", "disabled", "icon", "onClick", "e", "preventDefault", "round", "tooltip", "onToggle", "incomingCollapsedState", "RenderFields", "forceRender", "margins", "FormSavePlugin", "onChange", "baseClass", "BlockComponent", "props", "formData", "nodeKey", "config", "useConfig", "submitted", "useFormSubmitted", "id", "useDocumentInfo", "path", "schemaPath", "useFieldProps", "field", "parentLexicalRichTextField", "useEditorConfigContext", "initialState", "setInitialState", "useState", "richTextComponentMap", "schemaFieldsPath", "blockType", "clientBlock", "get", "blocks", "find", "block", "slug", "useEffect", "state", "getFormState", "apiRoute", "routes", "api", "body", "data", "operation", "serverURL", "blockName", "initialValue", "passesCondition", "valid", "value", "onChange", "useCallback", "formState", "prevFormState", "i18n", "useTranslation", "classNames", "filter", "Boolean", "join", "formContent", "useMemo", "_jsx", "Form", "beforeSubmit", "fields", "uuid", "BlockContent", "formSchema", "Collapsible", "className", "collapsibleStyle", "header", "admin", "components", "Label", "RenderComponent", "clientProps", "blockKind", "mappedComponent", "_jsxs", "Pill", "pillStyle", "labels", "singular", "getTranslation", "SectionTitle", "readOnly", "ShimmerEffect", "height"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use client";import{d as p}from"./chunk-XCEM47RI.js";import{c as K}from"react/compiler-runtime";import{useLexicalComposerContext as M}from"@lexical/react/LexicalComposerContext.js";import{useLexicalNodeSelection as _}from"@lexical/react/useLexicalNodeSelection.js";import{addClassNamesToElement as D,mergeRegister as y,removeClassNamesFromElement as A}from"@lexical/utils";import{$getSelection as O,$isNodeSelection as L,CLICK_COMMAND as R,COMMAND_PRIORITY_LOW as d,KEY_BACKSPACE_COMMAND as $,KEY_DELETE_COMMAND as h}from"lexical";import{useEffect as N}from"react";var g="selected";function P(S){let e=K(16),{nodeKey:l}=S,[t]=M(),[o,i,n]=_(l),m;e[0]!==o||e[1]!==t?(m=r=>{let u=O();return o&&L(u)&&(r.preventDefault(),t.update(()=>{u.getNodes().forEach(E=>{p(E)&&E.remove()})})),!1},e[0]=o,e[1]=t,e[2]=m):m=e[2];let s=m,c,a;e[3]!==t||e[4]!==l||e[5]!==n||e[6]!==i||e[7]!==o||e[8]!==s?(c=()=>y(t.registerCommand(R,r=>{let u=t.getElementByKey(l);return r.target===u?(r.shiftKey||n(),i(!o),!0):!1},d),t.registerCommand(h,s,d),t.registerCommand($,s,d)),a=[n,t,o,l,s,i],e[3]=t,e[4]=l,e[5]=n,e[6]=i,e[7]=o,e[8]=s,e[9]=c,e[10]=a):(c=e[9],a=e[10]),N(c,a);let f,C;return e[11]!==t||e[12]!==l||e[13]!==o?(f=()=>{let r=t.getElementByKey(l);r!==null&&(o?D(r,g):A(r,g))},C=[t,o,l],e[11]=t,e[12]=l,e[13]=o,e[14]=f,e[15]=C):(f=e[14],C=e[15]),N(f,C),null}export{P as HorizontalRuleComponent};
2
+ //# sourceMappingURL=component-ANB7VZLA.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/features/horizontalRule/client/component/index.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport type { NodeKey } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'\nimport { addClassNamesToElement, mergeRegister, removeClassNamesFromElement } from '@lexical/utils'\nimport {\n $getSelection,\n $isNodeSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect } from 'react'\n\nimport { $isHorizontalRuleNode } from '../nodes/HorizontalRuleNode.js'\n\nconst isSelectedClassName = 'selected'\n\n/**\n * React component rendered in the lexical editor, WITHIN the hr element created by createDOM of the HorizontalRuleNode.\n *\n * @param nodeKey every node has a unique key (this key is not saved to the database and thus may differ between sessions). It's useful for working with the CURRENT lexical editor state\n */\nexport function HorizontalRuleComponent({ nodeKey }: { nodeKey: NodeKey }) {\n const [editor] = useLexicalComposerContext()\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n\n const $onDelete = useCallback(\n (event: KeyboardEvent) => {\n const deleteSelection = $getSelection()\n if (isSelected && $isNodeSelection(deleteSelection)) {\n event.preventDefault()\n editor.update(() => {\n deleteSelection.getNodes().forEach((node) => {\n if ($isHorizontalRuleNode(node)) {\n node.remove()\n }\n })\n })\n }\n return false\n },\n [editor, isSelected],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n CLICK_COMMAND,\n (event: MouseEvent) => {\n const hrElem = editor.getElementByKey(nodeKey)\n\n if (event.target === hrElem) {\n if (!event.shiftKey) {\n clearSelection()\n }\n setSelected(!isSelected)\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected])\n\n useEffect(() => {\n const hrElem = editor.getElementByKey(nodeKey)\n if (hrElem !== null) {\n if (isSelected) {\n addClassNamesToElement(hrElem, isSelectedClassName)\n } else {\n removeClassNamesFromElement(hrElem, isSelectedClassName)\n }\n }\n }, [editor, isSelected, nodeKey])\n\n return null\n}\n"],
5
+ "mappings": "qDAAA,OAAAA,KAAAC,MAAA,yBAIA,OAASC,6BAAAA,MAAiC,2CAC1C,OAASC,2BAAAA,MAA+B,4CACxC,OAASC,0BAAAA,EAAwBC,iBAAAA,EAAeC,+BAAAA,MAAmC,iBACnF,OACEC,iBAAAA,EACAC,oBAAAA,EACAC,iBAAAA,EACAC,wBAAAA,EACAC,yBAAAA,EACAC,sBAAAA,MACK,UACP,OAAsBC,aAAAA,MAAiB,QAIvC,IAAMC,EAAsB,WAOrB,SAAAC,EAAAC,EAAA,CAAA,IAAAC,EAAAC,EAAA,EAAA,EAAiC,CAAAC,QAAAA,CAAA,EAAAH,EACtC,CAAAI,CAAA,EAAiBC,EAAA,EACjB,CAAAC,EAAAC,EAAAC,CAAA,EAAkDC,EAAwBN,CAAA,EAAAO,EAAAT,EAAA,CAAA,IAAAK,GAAAL,EAAA,CAAA,IAAAG,GAGxEM,EAAAC,GAAA,CACE,IAAAC,EAAwBC,EAAA,EAAA,OACpBP,GAAcQ,EAAiBF,CAAA,IACjCD,EAAAI,eAAoB,EACpBX,EAAAY,OAAA,IAAA,CACEJ,EAAAK,SAAwB,EAAAC,QAAAC,GAAA,CAClBC,EAAsBD,CAAA,GACxBA,EAAAE,OAAW,CAAA,CAEf,CAAA,CACF,GAAA,EAAA,EAGJpB,EAAA,CAAA,EAAAK,EAAAL,EAAA,CAAA,EAAAG,EAAAH,EAAA,CAAA,EAAAS,GAAAA,EAAAT,EAAA,CAAA,EAdF,IAAAqB,EAAkBZ,EAeIa,EAAAC,EAAAvB,EAAA,CAAA,IAAAG,GAAAH,EAAA,CAAA,IAAAE,GAAAF,EAAA,CAAA,IAAAO,GAAAP,EAAA,CAAA,IAAAM,GAAAN,EAAA,CAAA,IAAAK,GAAAL,EAAA,CAAA,IAAAqB,GAGZC,EAAAA,IACDE,EACLrB,EAAAsB,gBAAAC,EAAAC,GAAA,CAGI,IAAAC,EAAezB,EAAA0B,gBAAuB3B,CAAA,EAAA,OAElCQ,EAAAoB,SAAiBF,GACdlB,EAAAqB,UACHxB,EAAA,EAEFD,EAAA,CAAaD,CAAA,EAAA,IAAA,EAAA,EAAA2B,CAMjB,EAEF7B,EAAAsB,gBAAAQ,EAA2CZ,EAAAW,CAAW,EACtD7B,EAAAsB,gBAAAS,EAA8Cb,EAAAW,CAAW,CAAA,EAE1DT,EAAA,CAAChB,EAAgBJ,EAAQE,EAAYH,EAASmB,EAAWf,CAAA,EAAYN,EAAA,CAAA,EAAAG,EAAAH,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,EAAAM,EAAAN,EAAA,CAAA,EAAAK,EAAAL,EAAA,CAAA,EAAAqB,EAAArB,EAAA,CAAA,EAAAsB,EAAAtB,EAAA,EAAA,EAAAuB,IAAAD,EAAAtB,EAAA,CAAA,EAAAuB,EAAAvB,EAAA,EAAA,GAtBxEmC,EAAUb,EAsBPC,CAAqE,EAAA,IAAAa,EAAAC,EAAA,OAAArC,EAAA,EAAA,IAAAG,GAAAH,EAAA,EAAA,IAAAE,GAAAF,EAAA,EAAA,IAAAK,GAE9D+B,EAAAA,IAAA,CACR,IAAAE,EAAenC,EAAA0B,gBAAuB3B,CAAA,EAClC0B,IAAA,OACEvB,EACFkC,EAAuBX,EAAA/B,CAAQ,EAE/B2C,EAA4BZ,EAAA/B,CAAQ,EAAA,EAGvCwC,EAAA,CAAClC,EAAQE,EAAYH,CAAA,EAAQF,EAAA,EAAA,EAAAG,EAAAH,EAAA,EAAA,EAAAE,EAAAF,EAAA,EAAA,EAAAK,EAAAL,EAAA,EAAA,EAAAoC,EAAApC,EAAA,EAAA,EAAAqC,IAAAD,EAAApC,EAAA,EAAA,EAAAqC,EAAArC,EAAA,EAAA,GAThCmC,EAAUC,EASPC,CAA6B,EAAA,IAAA",
6
+ "names": ["c", "_c", "useLexicalComposerContext", "useLexicalNodeSelection", "addClassNamesToElement", "mergeRegister", "removeClassNamesFromElement", "$getSelection", "$isNodeSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "useEffect", "isSelectedClassName", "HorizontalRuleComponent", "t0", "$", "_c", "nodeKey", "editor", "useLexicalComposerContext", "isSelected", "setSelected", "clearSelection", "useLexicalNodeSelection", "t1", "event", "deleteSelection", "$getSelection", "$isNodeSelection", "preventDefault", "update", "getNodes", "forEach", "node", "$isHorizontalRuleNode", "remove", "$onDelete", "t2", "t3", "mergeRegister", "registerCommand", "CLICK_COMMAND", "event_0", "hrElem", "getElementByKey", "target", "shiftKey", "COMMAND_PRIORITY_LOW", "KEY_DELETE_COMMAND", "KEY_BACKSPACE_COMMAND", "useEffect", "t4", "t5", "hrElem_0", "addClassNamesToElement", "removeClassNamesFromElement"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use client";import{c as x,f as E}from"./chunk-32KXGBIQ.js";import{b as u}from"./chunk-GD6LBQBJ.js";import{jsx as a,jsxs as M}from"react/jsx-runtime";import{useCallback as f,useEffect as S,useRef as h}from"react";import{useLexicalComposerContext as I}from"@lexical/react/LexicalComposerContext";import{useLexicalNodeSelection as K}from"@lexical/react/useLexicalNodeSelection";import{mergeRegister as L}from"@lexical/utils";import{getTranslation as v}from"@payloadcms/translations";import{Button as D,RenderComponent as $,useTranslation as A}from"@payloadcms/ui";import{$getNodeByKey as T,$getSelection as P,$isNodeSelection as j,CLICK_COMMAND as Y,COMMAND_PRIORITY_LOW as b,KEY_BACKSPACE_COMMAND as z,KEY_DELETE_COMMAND as F}from"lexical";var i="inline-block",te=y=>{let{formData:c,nodeKey:s}=y,[e]=I(),{i18n:C,t:k}=A(),{field:_}=u(),m=h(null),[o,r,d]=K(s),{field:{richTextComponentMap:O}}=u(),t=(O?.get("lexical_internal_feature.blocks.fields.lexical_inline_blocks")[0]).blocks.find(l=>l.slug===c.blockType),R=f(()=>{e.update(()=>{T(s)?.remove()})},[e,s]),p=f(l=>{let n=P();return o&&j(n)&&(l.preventDefault(),e.update(()=>{n.getNodes().forEach(B=>{E(B)&&B.remove()})})),!1},[e,o]),g=f(l=>{let n=l;return n.target===m.current||m.current?.contains(n.target)?(n.shiftKey?r(!o):o||(d(),r(!0)),!0):!1},[o,r,d]);S(()=>L(e.registerCommand(Y,g,b),e.registerCommand(F,p,b),e.registerCommand(z,p,b)),[d,e,o,s,p,r,g]);let N=t?.labels?.singular?v(t.labels.singular,C):t?.slug;return M("div",{className:[i,i+"-"+c.blockType,o&&`${i}--selected`].filter(Boolean).join(" "),ref:m,children:[t?.admin?.components?.Label?a($,{clientProps:{blockKind:"lexicalInlineBlock",formData:c},mappedComponent:t.admin.components.Label}):a("div",{children:v(t.labels.singular,C)}),e.isEditable()&&M("div",{className:`${i}__actions`,children:[a(D,{buttonStyle:"icon-label",className:`${i}__editButton`,disabled:_?.admin?.readOnly,el:"div",icon:"edit",onClick:()=>{e.dispatchCommand(x,{fields:c,nodeKey:s})},round:!0,size:"small",tooltip:k("lexical:blocks:inlineBlocks:edit",{label:N})}),a(D,{buttonStyle:"icon-label",className:`${i}__removeButton`,disabled:_?.admin?.readOnly,icon:"x",onClick:l=>{l.preventDefault(),R()},round:!0,size:"small",tooltip:k("lexical:blocks:inlineBlocks:remove",{label:N})})]})]})};export{te as InlineBlockComponent};
2
+ //# sourceMappingURL=componentInline-NUDJIIQ4.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/features/blocks/client/componentInline/index.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport React, { useCallback, useEffect, useRef } from 'react'\nconst baseClass = 'inline-block'\n\nimport type { BlocksFieldClient } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection'\nimport { mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, RenderComponent, useTranslation } from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n} from 'lexical'\n\nimport type { InlineBlockFields } from '../nodes/InlineBlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { $isInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport { OPEN_INLINE_BLOCK_DRAWER_COMMAND } from '../plugin/commands.js'\nimport './index.scss'\n\ntype Props = {\n readonly formData: InlineBlockFields\n readonly nodeKey: string\n}\n\nexport const InlineBlockComponent: React.FC<Props> = (props) => {\n const { formData, nodeKey } = props\n const [editor] = useLexicalComposerContext()\n const { i18n, t } = useTranslation<object, string>()\n const { field } = useEditorConfigContext()\n const inlineBlockElemElemRef = useRef<HTMLDivElement | null>(null)\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n const blocksField: BlocksFieldClient = richTextComponentMap?.get(componentMapRenderedBlockPath)[0]\n const clientBlock = blocksField.blocks.find((block) => block.slug === formData.blockType)\n\n const removeInlineBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const $onDelete = useCallback(\n (event: KeyboardEvent) => {\n const deleteSelection = $getSelection()\n if (isSelected && $isNodeSelection(deleteSelection)) {\n event.preventDefault()\n editor.update(() => {\n deleteSelection.getNodes().forEach((node) => {\n if ($isInlineBlockNode(node)) {\n node.remove()\n }\n })\n })\n }\n return false\n },\n [editor, isSelected],\n )\n const onClick = useCallback(\n (payload: MouseEvent) => {\n const event = payload\n // Check if inlineBlockElemElemRef.target or anything WITHIN inlineBlockElemElemRef.target was clicked\n if (\n event.target === inlineBlockElemElemRef.current ||\n inlineBlockElemElemRef.current?.contains(event.target as Node)\n ) {\n if (event.shiftKey) {\n setSelected(!isSelected)\n } else {\n if (!isSelected) {\n clearSelection()\n setSelected(true)\n }\n }\n return true\n }\n\n return false\n },\n [isSelected, setSelected, clearSelection],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<MouseEvent>(CLICK_COMMAND, onClick, COMMAND_PRIORITY_LOW),\n\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected, onClick])\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n return (\n <div\n className={[\n baseClass,\n baseClass + '-' + formData.blockType,\n isSelected && `${baseClass}--selected`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={inlineBlockElemElemRef}\n >\n {clientBlock?.admin?.components?.Label ? (\n <RenderComponent\n clientProps={{ blockKind: 'lexicalInlineBlock', formData }}\n mappedComponent={clientBlock.admin.components.Label}\n />\n ) : (\n <div>{getTranslation(clientBlock!.labels!.singular, i18n)}</div>\n )}\n {editor.isEditable() && (\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__editButton`}\n disabled={field?.admin?.readOnly}\n el=\"div\"\n icon=\"edit\"\n onClick={() => {\n editor.dispatchCommand(OPEN_INLINE_BLOCK_DRAWER_COMMAND, {\n fields: formData,\n nodeKey,\n })\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:edit', { label: blockDisplayName })}\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.admin?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeInlineBlock()\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:remove', { label: blockDisplayName })}\n />\n </div>\n )}\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["useCallback", "useEffect", "useRef", "useLexicalComposerContext", "useLexicalNodeSelection", "mergeRegister", "getTranslation", "Button", "RenderComponent", "useTranslation", "$getNodeByKey", "$getSelection", "$isNodeSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "baseClass", "InlineBlockComponent", "props", "formData", "nodeKey", "editor", "useLexicalComposerContext", "i18n", "t", "useTranslation", "field", "useEditorConfigContext", "inlineBlockElemElemRef", "useRef", "isSelected", "setSelected", "clearSelection", "useLexicalNodeSelection", "richTextComponentMap", "clientBlock", "get", "blocks", "find", "block", "slug", "blockType", "removeInlineBlock", "useCallback", "update", "$getNodeByKey", "remove", "$onDelete", "event", "deleteSelection", "$getSelection", "$isNodeSelection", "preventDefault", "getNodes", "forEach", "node", "$isInlineBlockNode", "onClick", "payload", "target", "current", "contains", "shiftKey", "useEffect", "mergeRegister", "registerCommand", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_DELETE_COMMAND", "KEY_BACKSPACE_COMMAND", "blockDisplayName", "labels", "singular", "getTranslation", "_jsxs", "className", "filter", "Boolean", "join", "ref", "admin", "components", "Label", "_jsx", "RenderComponent", "clientProps", "blockKind", "mappedComponent", "isEditable", "Button", "buttonStyle", "disabled", "readOnly", "el", "icon", "dispatchCommand", "OPEN_INLINE_BLOCK_DRAWER_COMMAND", "fields", "round", "size", "tooltip", "label", "e"]
7
+ }
@@ -57,5 +57,6 @@ export { $createRelationshipNode, $isRelationshipNode, RelationshipNode, } from
57
57
  export { $createLinkNode, $isLinkNode, LinkNode, TOGGLE_LINK_COMMAND, } from '../../features/link/nodes/LinkNode.js';
58
58
  export { $createAutoLinkNode, $isAutoLinkNode, AutoLinkNode, } from '../../features/link/nodes/AutoLinkNode.js';
59
59
  export { $createBlockNode, $isBlockNode, BlockNode, } from '../../features/blocks/client/nodes/BlocksNode.js';
60
+ export { $createInlineBlockNode, $isInlineBlockNode, InlineBlockNode, } from '../../features/blocks/client/nodes/InlineBlocksNode.js';
60
61
  export { FieldsDrawer } from '../../utilities/fieldsDrawer/Drawer.js';
61
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/client/index.ts"],"names":[],"mappings":"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"}