@contentful/field-editor-rich-text 3.15.0 → 3.15.1

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 (321) hide show
  1. package/dist/cjs/ContentfulEditorProvider.js +8 -8
  2. package/dist/cjs/RichTextEditor.js +22 -20
  3. package/dist/cjs/RichTextEditor.styles.js +2 -1
  4. package/dist/cjs/SdkProvider.js +7 -5
  5. package/dist/cjs/SyncEditorChanges.js +15 -6
  6. package/dist/cjs/Toolbar/_tests_/toolbar.test.js +17 -15
  7. package/dist/cjs/Toolbar/components/EmbedEntityWidget.js +14 -10
  8. package/dist/cjs/Toolbar/components/EmbeddedEntityDropdownButton.js +10 -8
  9. package/dist/cjs/Toolbar/components/StickyToolbarWrapper.js +2 -2
  10. package/dist/cjs/Toolbar/index.js +33 -30
  11. package/dist/cjs/__fixtures__/FakeSdk.js +3 -3
  12. package/dist/cjs/__fixtures__/asset/index.js +10 -10
  13. package/dist/cjs/__fixtures__/content-type/index.js +1 -1
  14. package/dist/cjs/__fixtures__/entry/index.js +7 -7
  15. package/dist/cjs/__fixtures__/fixtures.js +8 -6
  16. package/dist/cjs/__fixtures__/locale/index.js +2 -2
  17. package/dist/cjs/__fixtures__/space/index.js +1 -1
  18. package/dist/cjs/constants/Schema.js +1 -0
  19. package/dist/cjs/dialogs/HypelinkDialog/HyperlinkDialog.js +43 -38
  20. package/dist/cjs/dialogs/openRichTextDialog.js +6 -4
  21. package/dist/cjs/dialogs/renderRichTextDialog.js +6 -4
  22. package/dist/cjs/helpers/__tests__/removeInternalMarks.test.js +10 -10
  23. package/dist/cjs/helpers/callbacks.js +3 -3
  24. package/dist/cjs/helpers/config.js +2 -2
  25. package/dist/cjs/helpers/editor.js +53 -44
  26. package/dist/cjs/helpers/environment.js +3 -3
  27. package/dist/cjs/helpers/formatDateAndTime.js +5 -4
  28. package/dist/cjs/helpers/getAllowedResourcesForNodeType.js +22 -5
  29. package/dist/cjs/helpers/getLinkedContentTypeIdsForNodeType.js +29 -5
  30. package/dist/cjs/helpers/nodeFactory.js +6 -6
  31. package/dist/cjs/helpers/sdkNavigatorSlideIn.js +14 -6
  32. package/dist/cjs/helpers/sdkNavigatorSlideIn.spec.js +3 -2
  33. package/dist/cjs/helpers/toSlateValue.js +14 -3
  34. package/dist/cjs/helpers/transformers.js +5 -5
  35. package/dist/cjs/helpers/validations.js +12 -9
  36. package/dist/cjs/index.js +7 -5
  37. package/dist/cjs/internal/constants.js +4 -2
  38. package/dist/cjs/internal/hooks.js +8 -6
  39. package/dist/cjs/internal/misc.js +15 -12
  40. package/dist/cjs/internal/queries.js +115 -108
  41. package/dist/cjs/internal/transforms.js +51 -48
  42. package/dist/cjs/internal/types/editor.js +3 -1
  43. package/dist/cjs/plugins/Break/createExitBreakPlugin.test.js +4 -3
  44. package/dist/cjs/plugins/Break/createResetNodePlugin.js +1 -0
  45. package/dist/cjs/plugins/Break/createSoftBreakPlugin.test.js +3 -3
  46. package/dist/cjs/plugins/CommandPalette/components/CommandList.js +35 -33
  47. package/dist/cjs/plugins/CommandPalette/components/CommandList.styles.js +1 -1
  48. package/dist/cjs/plugins/CommandPalette/components/CommandPrompt.js +7 -5
  49. package/dist/cjs/plugins/CommandPalette/hooks/useCommandList.js +7 -3
  50. package/dist/cjs/plugins/CommandPalette/onKeyDown.js +6 -1
  51. package/dist/cjs/plugins/CommandPalette/onKeyDown.spec.js +6 -4
  52. package/dist/cjs/plugins/CommandPalette/useCommands.js +3 -3
  53. package/dist/cjs/plugins/CommandPalette/utils/fetchEntries.js +2 -0
  54. package/dist/cjs/plugins/CommandPalette/utils/trimLeadingSlash.js +6 -1
  55. package/dist/cjs/plugins/DragAndDrop/index.js +9 -1
  56. package/dist/cjs/plugins/EmbeddedEntityBlock/LinkedEntityBlock.js +10 -8
  57. package/dist/cjs/plugins/EmbeddedEntityBlock/index.js +3 -3
  58. package/dist/cjs/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.js +19 -17
  59. package/dist/cjs/plugins/EmbeddedEntityInline/LinkedEntityInline.js +9 -7
  60. package/dist/cjs/plugins/EmbeddedResourceBlock/LinkedResourceBlock.js +5 -5
  61. package/dist/cjs/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.js +13 -11
  62. package/dist/cjs/plugins/EmbeddedResourceInline/LinkedResourceInline.js +5 -5
  63. package/dist/cjs/plugins/Heading/__tests__/createHeadingPlugin.test.js +32 -32
  64. package/dist/cjs/plugins/Heading/components/Heading.js +13 -10
  65. package/dist/cjs/plugins/Heading/components/ToolbarHeadingButton.js +19 -11
  66. package/dist/cjs/plugins/Heading/createHeadingPlugin.js +7 -2
  67. package/dist/cjs/plugins/Hr/index.js +19 -14
  68. package/dist/cjs/plugins/Hyperlink/HyperlinkModal.js +32 -28
  69. package/dist/cjs/plugins/Hyperlink/__tests__/createHyperlinkPlugin.test.js +8 -8
  70. package/dist/cjs/plugins/Hyperlink/components/EntityHyperlink.js +8 -6
  71. package/dist/cjs/plugins/Hyperlink/components/ResourceHyperlink.js +8 -6
  72. package/dist/cjs/plugins/Hyperlink/components/ToolbarHyperlinkButton.js +6 -4
  73. package/dist/cjs/plugins/Hyperlink/components/UrlHyperlink.js +7 -5
  74. package/dist/cjs/plugins/Hyperlink/components/styles.js +1 -1
  75. package/dist/cjs/plugins/Hyperlink/createHyperlinkPlugin.js +10 -4
  76. package/dist/cjs/plugins/Hyperlink/useEntityInfo.js +6 -3
  77. package/dist/cjs/plugins/Hyperlink/useResourceEntityInfo.js +6 -4
  78. package/dist/cjs/plugins/Hyperlink/utils.js +4 -4
  79. package/dist/cjs/plugins/List/__tests__/createListPlugin.test.js +13 -13
  80. package/dist/cjs/plugins/List/__tests__/insertListBreak.test.js +29 -25
  81. package/dist/cjs/plugins/List/__tests__/insertListFragment.test.js +22 -22
  82. package/dist/cjs/plugins/List/components/List.js +9 -7
  83. package/dist/cjs/plugins/List/components/ListItem.js +6 -4
  84. package/dist/cjs/plugins/List/components/ToolbarListButton.js +7 -5
  85. package/dist/cjs/plugins/List/createListPlugin.js +4 -0
  86. package/dist/cjs/plugins/List/insertListBreak.js +13 -4
  87. package/dist/cjs/plugins/List/insertListFragment.js +18 -5
  88. package/dist/cjs/plugins/List/onKeyDownList.js +7 -4
  89. package/dist/cjs/plugins/List/transforms/insertListItem.js +17 -2
  90. package/dist/cjs/plugins/List/transforms/moveListItemDown.js +8 -2
  91. package/dist/cjs/plugins/List/transforms/moveListItems.js +7 -2
  92. package/dist/cjs/plugins/List/transforms/moveListItems.test.js +15 -14
  93. package/dist/cjs/plugins/List/transforms/toggleList.js +8 -3
  94. package/dist/cjs/plugins/List/transforms/toggleList.spec.js +28 -28
  95. package/dist/cjs/plugins/List/transforms/unwrapList.js +7 -2
  96. package/dist/cjs/plugins/List/utils.js +12 -11
  97. package/dist/cjs/plugins/List/withList.js +6 -2
  98. package/dist/cjs/plugins/Marks/Bold.js +9 -7
  99. package/dist/cjs/plugins/Marks/Code.js +15 -7
  100. package/dist/cjs/plugins/Marks/Italic.js +9 -7
  101. package/dist/cjs/plugins/Marks/Subscript.js +10 -8
  102. package/dist/cjs/plugins/Marks/Superscript.js +10 -8
  103. package/dist/cjs/plugins/Marks/Underline.js +6 -4
  104. package/dist/cjs/plugins/Marks/components/MarkToolbarButton.js +9 -7
  105. package/dist/cjs/plugins/Marks/helpers.js +5 -5
  106. package/dist/cjs/plugins/Normalizer/baseRules.js +2 -0
  107. package/dist/cjs/plugins/Normalizer/createNormalizerPlugin.test.js +12 -12
  108. package/dist/cjs/plugins/Normalizer/utils.js +4 -3
  109. package/dist/cjs/plugins/Normalizer/withNormalizer.js +23 -3
  110. package/dist/cjs/plugins/Paragraph/Paragraph.js +6 -4
  111. package/dist/cjs/plugins/Paragraph/__tests__/createParagraphPlugin.test.js +32 -32
  112. package/dist/cjs/plugins/Paragraph/createParagraphPlugin.js +3 -2
  113. package/dist/cjs/plugins/PasteHTML/createPasteHTMLPlugin.js +9 -6
  114. package/dist/cjs/plugins/PasteHTML/utils/__tests__/sanitizeHTML.test.js +2 -0
  115. package/dist/cjs/plugins/PasteHTML/utils/sanitizeAnchors.js +9 -0
  116. package/dist/cjs/plugins/PasteHTML/utils/sanitizeHTML.js +17 -2
  117. package/dist/cjs/plugins/PasteHTML/utils/sanitizeSheets.js +13 -1
  118. package/dist/cjs/plugins/Quote/__test__/createQuotePlugin.test.js +21 -21
  119. package/dist/cjs/plugins/Quote/components/Quote.js +6 -4
  120. package/dist/cjs/plugins/Quote/components/ToolbarQuoteButton.js +6 -4
  121. package/dist/cjs/plugins/Quote/createQuotePlugin.js +1 -0
  122. package/dist/cjs/plugins/Quote/toggleQuote.js +5 -5
  123. package/dist/cjs/plugins/Quote/withQuote.js +4 -2
  124. package/dist/cjs/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.js +1 -0
  125. package/dist/cjs/plugins/Table/__tests__/createTablePlugin.test.js +22 -22
  126. package/dist/cjs/plugins/Table/__tests__/helpers.test.js +4 -4
  127. package/dist/cjs/plugins/Table/actions/addColumn.js +5 -4
  128. package/dist/cjs/plugins/Table/actions/addRow.js +6 -3
  129. package/dist/cjs/plugins/Table/components/Cell.js +7 -5
  130. package/dist/cjs/plugins/Table/components/HeaderCell.js +7 -5
  131. package/dist/cjs/plugins/Table/components/Row.js +6 -4
  132. package/dist/cjs/plugins/Table/components/Table.js +8 -6
  133. package/dist/cjs/plugins/Table/components/TableActions.js +19 -16
  134. package/dist/cjs/plugins/Table/components/ToolbarButton.js +7 -4
  135. package/dist/cjs/plugins/Table/createTablePlugin.js +11 -1
  136. package/dist/cjs/plugins/Table/helpers.js +16 -12
  137. package/dist/cjs/plugins/Table/insertTableFragment.js +15 -2
  138. package/dist/cjs/plugins/Table/onKeyDownTable.js +10 -2
  139. package/dist/cjs/plugins/Table/tableTracking.js +6 -6
  140. package/dist/cjs/plugins/Text/__tests__/createTextPlugin.test.js +19 -17
  141. package/dist/cjs/plugins/Text/createTextPlugin.js +22 -5
  142. package/dist/cjs/plugins/Tracking/createTrackingPlugin.js +5 -4
  143. package/dist/cjs/plugins/Tracking/utils.js +6 -3
  144. package/dist/cjs/plugins/Voids/createVoidsPlugin.js +5 -0
  145. package/dist/cjs/plugins/Voids/transformVoid.js +1 -0
  146. package/dist/cjs/plugins/index.js +15 -3
  147. package/dist/cjs/plugins/shared/EmbeddedBlockToolbarIcon.js +12 -10
  148. package/dist/cjs/plugins/shared/EmbeddedBlockUtil.js +16 -6
  149. package/dist/cjs/plugins/shared/EmbeddedInlineToolbarIcon.js +10 -8
  150. package/dist/cjs/plugins/shared/EmbeddedInlineUtil.js +9 -5
  151. package/dist/cjs/plugins/shared/FetchingWrappedAssetCard.js +13 -11
  152. package/dist/cjs/plugins/shared/FetchingWrappedEntryCard.js +14 -12
  153. package/dist/cjs/plugins/shared/FetchingWrappedResourceCard.js +14 -11
  154. package/dist/cjs/plugins/shared/LinkedBlockWrapper.js +8 -4
  155. package/dist/cjs/plugins/shared/LinkedInlineWrapper.js +10 -6
  156. package/dist/cjs/plugins/shared/ResourceNewBadge.js +5 -3
  157. package/dist/cjs/plugins/shared/ToolbarButton.js +8 -6
  158. package/dist/cjs/plugins/shared/__tests__/FetchingWrappedAssetCard.test.js +10 -5
  159. package/dist/cjs/plugins/shared/__tests__/FetchingWrappedEntryCard.test.js +11 -6
  160. package/dist/cjs/plugins/shared/__tests__/FetchingWrappedResourceCard.test.js +15 -13
  161. package/dist/cjs/plugins/shared/utils.js +4 -1
  162. package/dist/cjs/test-utils/assertOutput.js +1 -0
  163. package/dist/cjs/test-utils/hyperscript.d.js +1 -0
  164. package/dist/cjs/test-utils/randomId.js +3 -1
  165. package/dist/cjs/test-utils/validation.js +8 -5
  166. package/dist/esm/ContentfulEditorProvider.js +4 -1
  167. package/dist/esm/RichTextEditor.js +13 -13
  168. package/dist/esm/RichTextEditor.styles.js +1 -0
  169. package/dist/esm/SdkProvider.js +2 -2
  170. package/dist/esm/SyncEditorChanges.js +18 -3
  171. package/dist/esm/Toolbar/_tests_/toolbar.test.js +12 -12
  172. package/dist/esm/Toolbar/components/EmbedEntityWidget.js +10 -8
  173. package/dist/esm/Toolbar/components/EmbeddedEntityDropdownButton.js +6 -6
  174. package/dist/esm/Toolbar/components/StickyToolbarWrapper.js +1 -1
  175. package/dist/esm/Toolbar/index.js +28 -27
  176. package/dist/esm/__fixtures__/FakeSdk.js +3 -3
  177. package/dist/esm/constants/Schema.js +1 -0
  178. package/dist/esm/dialogs/HypelinkDialog/HyperlinkDialog.js +34 -31
  179. package/dist/esm/dialogs/openRichTextDialog.js +2 -2
  180. package/dist/esm/dialogs/renderRichTextDialog.js +2 -2
  181. package/dist/esm/helpers/__tests__/removeInternalMarks.test.js +10 -10
  182. package/dist/esm/helpers/callbacks.js +1 -1
  183. package/dist/esm/helpers/config.js +9 -1
  184. package/dist/esm/helpers/editor.js +22 -6
  185. package/dist/esm/helpers/extractNodes.js +3 -1
  186. package/dist/esm/helpers/formatDateAndTime.js +11 -2
  187. package/dist/esm/helpers/getAllowedResourcesForNodeType.js +19 -2
  188. package/dist/esm/helpers/getLinkedContentTypeIdsForNodeType.js +26 -2
  189. package/dist/esm/helpers/sdkNavigatorSlideIn.js +20 -6
  190. package/dist/esm/helpers/sdkNavigatorSlideIn.spec.js +1 -0
  191. package/dist/esm/helpers/toSlateValue.js +17 -3
  192. package/dist/esm/helpers/validations.js +5 -1
  193. package/dist/esm/internal/misc.js +23 -2
  194. package/dist/esm/internal/queries.js +11 -2
  195. package/dist/esm/internal/transforms.js +14 -3
  196. package/dist/esm/internal/types/editor.js +3 -1
  197. package/dist/esm/plugins/Break/createExitBreakPlugin.test.js +4 -3
  198. package/dist/esm/plugins/Break/createResetNodePlugin.js +1 -0
  199. package/dist/esm/plugins/Break/createSoftBreakPlugin.test.js +3 -3
  200. package/dist/esm/plugins/CommandPalette/components/CommandList.js +30 -30
  201. package/dist/esm/plugins/CommandPalette/components/CommandPrompt.js +2 -2
  202. package/dist/esm/plugins/CommandPalette/createCommandPalettePlugin.js +11 -1
  203. package/dist/esm/plugins/CommandPalette/hooks/useCommandList.js +2 -0
  204. package/dist/esm/plugins/CommandPalette/onKeyDown.js +5 -0
  205. package/dist/esm/plugins/CommandPalette/onKeyDown.spec.js +2 -2
  206. package/dist/esm/plugins/CommandPalette/useCommands.js +3 -3
  207. package/dist/esm/plugins/CommandPalette/utils/fetchEntries.js +2 -0
  208. package/dist/esm/plugins/CommandPalette/utils/trimLeadingSlash.js +6 -1
  209. package/dist/esm/plugins/DragAndDrop/index.js +9 -1
  210. package/dist/esm/plugins/EmbeddedEntityBlock/LinkedEntityBlock.js +6 -6
  211. package/dist/esm/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.js +14 -14
  212. package/dist/esm/plugins/EmbeddedEntityInline/LinkedEntityInline.js +5 -5
  213. package/dist/esm/plugins/EmbeddedResourceBlock/LinkedResourceBlock.js +4 -4
  214. package/dist/esm/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.js +9 -9
  215. package/dist/esm/plugins/EmbeddedResourceInline/LinkedResourceInline.js +4 -4
  216. package/dist/esm/plugins/Heading/__tests__/createHeadingPlugin.test.js +32 -32
  217. package/dist/esm/plugins/Heading/components/Heading.js +8 -7
  218. package/dist/esm/plugins/Heading/components/ToolbarHeadingButton.js +14 -8
  219. package/dist/esm/plugins/Heading/createHeadingPlugin.js +6 -1
  220. package/dist/esm/plugins/Hr/index.js +8 -5
  221. package/dist/esm/plugins/Hyperlink/HyperlinkModal.js +25 -23
  222. package/dist/esm/plugins/Hyperlink/__tests__/createHyperlinkPlugin.test.js +8 -8
  223. package/dist/esm/plugins/Hyperlink/components/EntityHyperlink.js +4 -4
  224. package/dist/esm/plugins/Hyperlink/components/ResourceHyperlink.js +4 -4
  225. package/dist/esm/plugins/Hyperlink/components/ToolbarHyperlinkButton.js +2 -2
  226. package/dist/esm/plugins/Hyperlink/components/UrlHyperlink.js +3 -3
  227. package/dist/esm/plugins/Hyperlink/createHyperlinkPlugin.js +5 -1
  228. package/dist/esm/plugins/Hyperlink/useEntityInfo.js +6 -3
  229. package/dist/esm/plugins/Hyperlink/useResourceEntityInfo.js +2 -2
  230. package/dist/esm/plugins/Hyperlink/utils.js +1 -1
  231. package/dist/esm/plugins/List/__tests__/createListPlugin.test.js +13 -13
  232. package/dist/esm/plugins/List/__tests__/insertListBreak.test.js +29 -25
  233. package/dist/esm/plugins/List/__tests__/insertListFragment.test.js +22 -22
  234. package/dist/esm/plugins/List/components/List.js +1 -1
  235. package/dist/esm/plugins/List/components/ListItem.js +1 -1
  236. package/dist/esm/plugins/List/components/ToolbarListButton.js +3 -3
  237. package/dist/esm/plugins/List/createListPlugin.js +4 -0
  238. package/dist/esm/plugins/List/insertListBreak.js +13 -4
  239. package/dist/esm/plugins/List/insertListFragment.js +18 -5
  240. package/dist/esm/plugins/List/onKeyDownList.js +5 -2
  241. package/dist/esm/plugins/List/transforms/insertListItem.js +20 -3
  242. package/dist/esm/plugins/List/transforms/moveListItemDown.js +8 -2
  243. package/dist/esm/plugins/List/transforms/moveListItems.js +7 -2
  244. package/dist/esm/plugins/List/transforms/moveListItems.test.js +15 -14
  245. package/dist/esm/plugins/List/transforms/toggleList.js +8 -3
  246. package/dist/esm/plugins/List/transforms/toggleList.spec.js +28 -28
  247. package/dist/esm/plugins/List/transforms/unwrapList.js +7 -2
  248. package/dist/esm/plugins/List/utils.js +7 -2
  249. package/dist/esm/plugins/List/withList.js +6 -2
  250. package/dist/esm/plugins/Marks/Bold.js +2 -2
  251. package/dist/esm/plugins/Marks/Code.js +8 -2
  252. package/dist/esm/plugins/Marks/Italic.js +2 -2
  253. package/dist/esm/plugins/Marks/Subscript.js +2 -2
  254. package/dist/esm/plugins/Marks/Superscript.js +2 -2
  255. package/dist/esm/plugins/Marks/Underline.js +2 -2
  256. package/dist/esm/plugins/Marks/components/MarkToolbarButton.js +4 -4
  257. package/dist/esm/plugins/Marks/helpers.js +1 -1
  258. package/dist/esm/plugins/Normalizer/baseRules.js +4 -0
  259. package/dist/esm/plugins/Normalizer/createNormalizerPlugin.test.js +12 -12
  260. package/dist/esm/plugins/Normalizer/utils.js +1 -0
  261. package/dist/esm/plugins/Normalizer/withNormalizer.js +22 -2
  262. package/dist/esm/plugins/Paragraph/Paragraph.js +1 -1
  263. package/dist/esm/plugins/Paragraph/__tests__/createParagraphPlugin.test.js +32 -32
  264. package/dist/esm/plugins/Paragraph/createParagraphPlugin.js +2 -1
  265. package/dist/esm/plugins/PasteHTML/createPasteHTMLPlugin.js +9 -3
  266. package/dist/esm/plugins/PasteHTML/utils/__tests__/sanitizeHTML.test.js +2 -0
  267. package/dist/esm/plugins/PasteHTML/utils/sanitizeAnchors.js +27 -1
  268. package/dist/esm/plugins/PasteHTML/utils/sanitizeHTML.js +17 -2
  269. package/dist/esm/plugins/PasteHTML/utils/sanitizeSheets.js +13 -1
  270. package/dist/esm/plugins/Quote/__test__/createQuotePlugin.test.js +21 -21
  271. package/dist/esm/plugins/Quote/components/Quote.js +1 -1
  272. package/dist/esm/plugins/Quote/components/ToolbarQuoteButton.js +2 -2
  273. package/dist/esm/plugins/Quote/createQuotePlugin.js +1 -0
  274. package/dist/esm/plugins/Quote/shouldResetQuote.js +6 -1
  275. package/dist/esm/plugins/Quote/toggleQuote.js +1 -1
  276. package/dist/esm/plugins/Quote/withQuote.js +4 -2
  277. package/dist/esm/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.js +1 -0
  278. package/dist/esm/plugins/Table/__tests__/createTablePlugin.test.js +22 -22
  279. package/dist/esm/plugins/Table/__tests__/helpers.test.js +4 -4
  280. package/dist/esm/plugins/Table/actions/addColumn.js +2 -1
  281. package/dist/esm/plugins/Table/actions/addRow.js +3 -0
  282. package/dist/esm/plugins/Table/components/Cell.js +2 -2
  283. package/dist/esm/plugins/Table/components/HeaderCell.js +2 -2
  284. package/dist/esm/plugins/Table/components/Row.js +1 -1
  285. package/dist/esm/plugins/Table/components/Table.js +3 -3
  286. package/dist/esm/plugins/Table/components/TableActions.js +12 -11
  287. package/dist/esm/plugins/Table/components/ToolbarButton.js +3 -2
  288. package/dist/esm/plugins/Table/createTablePlugin.js +11 -1
  289. package/dist/esm/plugins/Table/helpers.js +10 -1
  290. package/dist/esm/plugins/Table/insertTableFragment.js +15 -2
  291. package/dist/esm/plugins/Table/onKeyDownTable.js +10 -2
  292. package/dist/esm/plugins/Table/tableTracking.js +6 -6
  293. package/dist/esm/plugins/Text/__tests__/createTextPlugin.test.js +19 -17
  294. package/dist/esm/plugins/Text/createTextPlugin.js +22 -5
  295. package/dist/esm/plugins/Tracking/createTrackingPlugin.js +2 -1
  296. package/dist/esm/plugins/Tracking/utils.js +1 -0
  297. package/dist/esm/plugins/Voids/createVoidsPlugin.js +5 -0
  298. package/dist/esm/plugins/Voids/transformVoid.js +4 -1
  299. package/dist/esm/plugins/index.js +12 -0
  300. package/dist/esm/plugins/shared/EmbeddedBlockToolbarIcon.js +5 -5
  301. package/dist/esm/plugins/shared/EmbeddedBlockUtil.js +15 -5
  302. package/dist/esm/plugins/shared/EmbeddedInlineToolbarIcon.js +5 -5
  303. package/dist/esm/plugins/shared/EmbeddedInlineUtil.js +8 -4
  304. package/dist/esm/plugins/shared/FetchingWrappedAssetCard.js +8 -8
  305. package/dist/esm/plugins/shared/FetchingWrappedEntryCard.js +9 -9
  306. package/dist/esm/plugins/shared/FetchingWrappedResourceCard.js +9 -8
  307. package/dist/esm/plugins/shared/LinkedBlockWrapper.js +7 -3
  308. package/dist/esm/plugins/shared/LinkedInlineWrapper.js +5 -3
  309. package/dist/esm/plugins/shared/ResourceNewBadge.js +1 -1
  310. package/dist/esm/plugins/shared/ToolbarButton.js +3 -3
  311. package/dist/esm/plugins/shared/__tests__/FetchingWrappedAssetCard.test.js +5 -2
  312. package/dist/esm/plugins/shared/__tests__/FetchingWrappedEntryCard.test.js +5 -2
  313. package/dist/esm/plugins/shared/__tests__/FetchingWrappedResourceCard.test.js +8 -8
  314. package/dist/esm/plugins/shared/utils.js +4 -1
  315. package/dist/esm/test-utils/assertOutput.js +1 -0
  316. package/dist/esm/test-utils/hyperscript.d.js +1 -0
  317. package/dist/esm/test-utils/jsx.js +5 -1
  318. package/dist/esm/test-utils/randomId.js +3 -1
  319. package/dist/esm/test-utils/setEmptyDataAttribute.js +4 -1
  320. package/dist/esm/test-utils/validation.js +7 -4
  321. package/package.json +2 -2
@@ -1,68 +1,72 @@
1
- import { jsx, assertOutput, createTestEditor } from '../../../test-utils';
1
+ /** @jsx jsx */ import { jsx, assertOutput, createTestEditor } from '../../../test-utils';
2
2
  describe('insert line break', ()=>{
3
3
  const tests = [
4
+ // single p
4
5
  {
5
6
  title: 'at the start of a li',
6
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, jsx("cursor", null), "p1"))),
7
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, jsx("cursor", null))), jsx("hli", null, jsx("hp", null, "p1")))
7
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null), "p1"))),
8
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null))), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1")))
8
9
  },
9
10
  {
10
11
  title: 'at the end of a li',
11
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1", jsx("cursor", null)))),
12
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1")), jsx("hli", null, jsx("hp", null, jsx("cursor", null))))
12
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1", /*#__PURE__*/ jsx("cursor", null)))),
13
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null))))
13
14
  },
14
15
  {
15
16
  title: 'at the middle of a li',
16
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "split ", jsx("cursor", null), "me"))),
17
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "split ")), jsx("hli", null, jsx("hp", null, jsx("cursor", null), "me")))
17
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "split ", /*#__PURE__*/ jsx("cursor", null), "me"))),
18
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "split ")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null), "me")))
18
19
  },
20
+ // multi p
19
21
  {
20
22
  title: 'at the start of a li with multiple p',
21
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, jsx("cursor", null), "p1"), jsx("hp", null, "p2"))),
22
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, jsx("cursor", null))), jsx("hli", null, jsx("hp", null, "p1"), jsx("hp", null, "p2")))
23
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null), "p1"), /*#__PURE__*/ jsx("hp", null, "p2"))),
24
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null))), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hp", null, "p2")))
23
25
  },
24
26
  {
25
27
  title: 'at the start of the second p of a li',
26
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hp", null, jsx("cursor", null), "p2"))),
27
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1")), jsx("hli", null, jsx("hp", null, jsx("cursor", null)), jsx("hp", null, "p2")))
28
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null), "p2"))),
29
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null)), /*#__PURE__*/ jsx("hp", null, "p2")))
28
30
  },
29
31
  {
30
32
  title: 'at the end of a li with multiple p',
31
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hp", null, "p2", jsx("cursor", null)))),
32
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hp", null, "p2")), jsx("hli", null, jsx("hp", null, jsx("cursor", null))))
33
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hp", null, "p2", /*#__PURE__*/ jsx("cursor", null)))),
34
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hp", null, "p2")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null))))
33
35
  },
34
36
  {
35
37
  title: 'at the middle of a li with multiple p',
36
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "split ", jsx("cursor", null), "me"), jsx("hp", null, "move me"))),
37
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "split ")), jsx("hli", null, jsx("hp", null, jsx("cursor", null), "me"), jsx("hp", null, "move me")))
38
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "split ", /*#__PURE__*/ jsx("cursor", null), "me"), /*#__PURE__*/ jsx("hp", null, "move me"))),
39
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "split ")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null), "me"), /*#__PURE__*/ jsx("hp", null, "move me")))
38
40
  },
41
+ // with headings
39
42
  {
40
43
  title: 'at the start of a li with heading',
41
- input: jsx("hul", null, jsx("hli", null, jsx("hh1", null, jsx("cursor", null), "p1"))),
42
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, jsx("cursor", null))), jsx("hli", null, jsx("hh1", null, "p1")))
44
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hh1", null, /*#__PURE__*/ jsx("cursor", null), "p1"))),
45
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null))), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hh1", null, "p1")))
43
46
  },
44
47
  {
45
48
  title: 'at the end of a li with heading',
46
- input: jsx("hul", null, jsx("hli", null, jsx("hh1", null, "p1", jsx("cursor", null)))),
47
- expected: jsx("hul", null, jsx("hli", null, jsx("hh1", null, "p1")), jsx("hli", null, jsx("hp", null, jsx("cursor", null))))
49
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hh1", null, "p1", /*#__PURE__*/ jsx("cursor", null)))),
50
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hh1", null, "p1")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null))))
48
51
  },
49
52
  {
50
53
  title: 'at the middle of a li with heading',
51
- input: jsx("hul", null, jsx("hli", null, jsx("hh1", null, "split ", jsx("cursor", null), "me"))),
52
- expected: jsx("hul", null, jsx("hli", null, jsx("hh1", null, "split ")), jsx("hli", null, jsx("hh1", null, jsx("cursor", null), "me")))
54
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hh1", null, "split ", /*#__PURE__*/ jsx("cursor", null), "me"))),
55
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hh1", null, "split ")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hh1", null, /*#__PURE__*/ jsx("cursor", null), "me")))
53
56
  },
54
57
  {
55
58
  title: 'at a li with nested list',
56
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "item 1")), jsx("hli", null, jsx("hp", null, "item 2", jsx("cursor", null)), jsx("hul", null, jsx("hli", null, jsx("hp", null, "sub list"))))),
57
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "item 1")), jsx("hli", null, jsx("hp", null, "item 2")), jsx("hli", null, jsx("hp", null, jsx("cursor", null)), jsx("hul", null, jsx("hli", null, jsx("hp", null, "sub list")))))
59
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "item 1")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "item 2", /*#__PURE__*/ jsx("cursor", null)), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "sub list"))))),
60
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "item 1")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "item 2")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("cursor", null)), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "sub list")))))
58
61
  }
59
62
  ];
60
- const render = (children)=>jsx("editor", null, children, jsx("hp", null, jsx("htext", null)));
63
+ const render = (children)=>/*#__PURE__*/ jsx("editor", null, children, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("htext", null)));
61
64
  for (const t of tests){
62
65
  test(t.title, ()=>{
63
- const { editor } = createTestEditor({
66
+ const { editor } = createTestEditor({
64
67
  input: render(t.input)
65
68
  });
69
+ // Equivalent of pressing ENTER
66
70
  editor.insertBreak();
67
71
  assertOutput({
68
72
  editor,
@@ -1,53 +1,53 @@
1
- import { jsx, assertOutput, createTestEditor } from '../../../test-utils';
1
+ /** @jsx jsx */ import { jsx, assertOutput, createTestEditor } from '../../../test-utils';
2
2
  describe('insert fragment', ()=>{
3
3
  const tests = [
4
4
  {
5
5
  title: 'text wrapped in li > p',
6
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello ", jsx("cursor", null)))),
7
- fragment: jsx("fragment", null, jsx("hli", null, jsx("hp", null, "world"))),
8
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello world")))
6
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello ", /*#__PURE__*/ jsx("cursor", null)))),
7
+ fragment: /*#__PURE__*/ jsx("fragment", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "world"))),
8
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello world")))
9
9
  },
10
10
  {
11
11
  title: 'text wrapped in li > h*',
12
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello ", jsx("cursor", null)))),
13
- fragment: jsx("fragment", null, jsx("hli", null, jsx("hh1", null, "world"))),
14
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello world")))
12
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello ", /*#__PURE__*/ jsx("cursor", null)))),
13
+ fragment: /*#__PURE__*/ jsx("fragment", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hh1", null, "world"))),
14
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello world")))
15
15
  },
16
16
  {
17
17
  title: 'single li with only asset card',
18
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello", jsx("cursor", null), "world"))),
19
- fragment: jsx("fragment", null, jsx("hli", null, jsx("hembed", {
18
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello", /*#__PURE__*/ jsx("cursor", null), "world"))),
19
+ fragment: /*#__PURE__*/ jsx("fragment", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hembed", {
20
20
  type: "Asset",
21
21
  id: "asset-id"
22
22
  }))),
23
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello"), jsx("hembed", {
23
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello"), /*#__PURE__*/ jsx("hembed", {
24
24
  type: "Asset",
25
25
  id: "asset-id"
26
- }), jsx("hp", null, "world")))
26
+ }), /*#__PURE__*/ jsx("hp", null, "world")))
27
27
  },
28
28
  {
29
29
  title: 'two paragraphs',
30
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello ", jsx("cursor", null)))),
31
- fragment: jsx("fragment", null, jsx("hp", null, "world"), jsx("hp", null, "line 2")),
32
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello world"), jsx("hp", null, "line 2")))
30
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello ", /*#__PURE__*/ jsx("cursor", null)))),
31
+ fragment: /*#__PURE__*/ jsx("fragment", null, /*#__PURE__*/ jsx("hp", null, "world"), /*#__PURE__*/ jsx("hp", null, "line 2")),
32
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello world"), /*#__PURE__*/ jsx("hp", null, "line 2")))
33
33
  },
34
34
  {
35
35
  title: 'two headings',
36
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello ", jsx("cursor", null)))),
37
- fragment: jsx("fragment", null, jsx("hh1", null, "world"), jsx("hh1", null, "line 2")),
38
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello world"), jsx("hh1", null, "line 2")))
36
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello ", /*#__PURE__*/ jsx("cursor", null)))),
37
+ fragment: /*#__PURE__*/ jsx("fragment", null, /*#__PURE__*/ jsx("hh1", null, "world"), /*#__PURE__*/ jsx("hh1", null, "line 2")),
38
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello world"), /*#__PURE__*/ jsx("hh1", null, "line 2")))
39
39
  },
40
40
  {
41
41
  title: 'two paragraphs wrapped in a li',
42
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello ", jsx("cursor", null)))),
43
- fragment: jsx("fragment", null, jsx("hli", null, jsx("hp", null, "world"), jsx("hp", null, "line 2"))),
44
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "hello "), jsx("hul", null, jsx("hli", null, jsx("hp", null, "world"), jsx("hp", null, "line 2")))))
42
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello ", /*#__PURE__*/ jsx("cursor", null)))),
43
+ fragment: /*#__PURE__*/ jsx("fragment", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "world"), /*#__PURE__*/ jsx("hp", null, "line 2"))),
44
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "hello "), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "world"), /*#__PURE__*/ jsx("hp", null, "line 2")))))
45
45
  }
46
46
  ];
47
- const render = (children)=>jsx("editor", null, children, jsx("hp", null, jsx("htext", null)));
47
+ const render = (children)=>/*#__PURE__*/ jsx("editor", null, children, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("htext", null)));
48
48
  for (const t of tests){
49
49
  test(t.title, ()=>{
50
- const { editor } = createTestEditor({
50
+ const { editor } = createTestEditor({
51
51
  input: render(t.input)
52
52
  });
53
53
  editor.insertFragment(t.fragment);
@@ -36,7 +36,7 @@ const styles = {
36
36
  };
37
37
  function createList(Tag, block) {
38
38
  return function List(props) {
39
- return React.createElement(Tag, {
39
+ return /*#__PURE__*/ React.createElement(Tag, {
40
40
  ...props.attributes,
41
41
  className: cx(baseStyle, styles[block])
42
42
  }, props.children);
@@ -12,7 +12,7 @@ const style = css`
12
12
  }
13
13
  `;
14
14
  export function ListItem(props) {
15
- return React.createElement("li", {
15
+ return /*#__PURE__*/ React.createElement("li", {
16
16
  ...props.attributes,
17
17
  className: style
18
18
  }, props.children);
@@ -21,17 +21,17 @@ export function ToolbarListButton(props) {
21
21
  };
22
22
  }
23
23
  if (!editor) return null;
24
- return React.createElement(React.Fragment, null, isNodeTypeEnabled(sdk.field, BLOCKS.UL_LIST) && React.createElement(ToolbarButton, {
24
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, isNodeTypeEnabled(sdk.field, BLOCKS.UL_LIST) && /*#__PURE__*/ React.createElement(ToolbarButton, {
25
25
  title: "UL",
26
26
  testId: "ul-toolbar-button",
27
27
  onClick: handleClick(BLOCKS.UL_LIST),
28
28
  isActive: isListTypeActive(editor, BLOCKS.UL_LIST),
29
29
  isDisabled: props.isDisabled
30
- }, React.createElement(ListBulletedIcon, null)), isNodeTypeEnabled(sdk.field, BLOCKS.OL_LIST) && React.createElement(ToolbarButton, {
30
+ }, /*#__PURE__*/ React.createElement(ListBulletedIcon, null)), isNodeTypeEnabled(sdk.field, BLOCKS.OL_LIST) && /*#__PURE__*/ React.createElement(ToolbarButton, {
31
31
  title: "OL",
32
32
  testId: "ol-toolbar-button",
33
33
  onClick: handleClick(BLOCKS.OL_LIST),
34
34
  isActive: isListTypeActive(editor, BLOCKS.OL_LIST),
35
35
  isDisabled: props.isDisabled
36
- }, React.createElement(ListNumberedIcon, null)));
36
+ }, /*#__PURE__*/ React.createElement(ListNumberedIcon, null)));
37
37
  }
@@ -28,6 +28,8 @@ export const createListPlugin = ()=>createPlateListPlugin({
28
28
  handlers: {
29
29
  onKeyDown: onKeyDownList
30
30
  },
31
+ // The withList is added on ELEMENT_UL plugin in upstream code
32
+ // so we need to override it here
31
33
  withOverrides: withList
32
34
  },
33
35
  [ELEMENT_OL]: {
@@ -37,12 +39,14 @@ export const createListPlugin = ()=>createPlateListPlugin({
37
39
  onKeyDown: onKeyDownList
38
40
  }
39
41
  },
42
+ // ELEMENT_LIC is a child of li, Slate does ul > li > lic + ul
40
43
  [ELEMENT_LIC]: {
41
44
  type: BLOCKS.PARAGRAPH
42
45
  },
43
46
  [ELEMENT_LI]: {
44
47
  type: BLOCKS.LIST_ITEM,
45
48
  component: ListItem,
49
+ // @ts-expect-error
46
50
  normalizer: [
47
51
  {
48
52
  validNode: hasListAsDirectParent,
@@ -1,4 +1,9 @@
1
- import { TEXT_CONTAINERS } from '@contentful/rich-text-types';
1
+ /**
2
+ * Credit: Copied & modified version from Plate's list plugin to support
3
+ * list items with multiple children.
4
+ *
5
+ * See: https://github.com/udecode/plate/blob/main/packages/nodes/list
6
+ */ import { TEXT_CONTAINERS } from '@contentful/rich-text-types';
2
7
  import { ELEMENT_DEFAULT, getPluginType, isBlockAboveEmpty, mockPlugin } from '@udecode/plate-common';
3
8
  import { getListItemEntry, moveListItemUp, unwrapList, ELEMENT_LI } from '@udecode/plate-list';
4
9
  import { onKeyDownResetNode, SIMULATE_BACKSPACE } from '@udecode/plate-reset-node';
@@ -7,9 +12,11 @@ const listBreak = (editor)=>{
7
12
  if (!editor.selection) return false;
8
13
  const res = getListItemEntry(editor, {});
9
14
  let moved;
15
+ // If selection is in a li
10
16
  if (res) {
11
- const { list , listItem } = res;
17
+ const { list, listItem } = res;
12
18
  const childNode = listItem[0].children[0];
19
+ // If selected li is empty, move it up.
13
20
  if (isBlockAboveEmpty(editor) && listItem[0].children.length === 1 && TEXT_CONTAINERS.includes(childNode.type)) {
14
21
  moved = moveListItemUp(editor, {
15
22
  list,
@@ -35,14 +42,16 @@ const listBreak = (editor)=>{
35
42
  if (didReset) {
36
43
  return true;
37
44
  }
38
- if (!moved) {
45
+ /**
46
+ * If selection is in li > p, insert li.
47
+ */ if (!moved) {
39
48
  const inserted = insertListItem(editor);
40
49
  if (inserted) return true;
41
50
  }
42
51
  return false;
43
52
  };
44
53
  export const insertListBreak = (editor)=>{
45
- const { insertBreak } = editor;
54
+ const { insertBreak } = editor;
46
55
  return ()=>{
47
56
  if (listBreak(editor)) return;
48
57
  insertBreak();
@@ -1,4 +1,7 @@
1
- import { TEXT_CONTAINERS, BLOCKS } from '@contentful/rich-text-types';
1
+ /**
2
+ * Credit: Modified version of Plate's list plugin
3
+ * See: https://github.com/udecode/plate/blob/main/packages/nodes/list
4
+ */ import { TEXT_CONTAINERS, BLOCKS } from '@contentful/rich-text-types';
2
5
  import { findNode } from '@udecode/plate-common';
3
6
  import { isBlockNode, isAncestorPath, getCommonNode, getNodeTexts, getParentPath, getDescendantNodeByPath } from '../../internal/queries';
4
7
  import { insertNodes } from '../../internal/transforms';
@@ -16,19 +19,26 @@ const isListRoot = (node)=>[
16
19
  BLOCKS.UL_LIST,
17
20
  BLOCKS.OL_LIST
18
21
  ].includes(node.type);
19
- const trimList = (listRoot)=>{
22
+ /**
23
+ * Removes the "empty" leading lis. Empty in this context means lis only with other lis as children.
24
+ *
25
+ * @returns If argument is not a list root, returns it, otherwise returns ul[] or li[].
26
+ */ const trimList = (listRoot)=>{
20
27
  if (!isListRoot(listRoot)) {
21
28
  return [
22
29
  listRoot
23
30
  ];
24
31
  }
25
32
  const textEntries = Array.from(getNodeTexts(listRoot));
26
- const commonAncestorEntry = textEntries.reduce((commonAncestor, textEntry)=>isAncestorPath(commonAncestor[1], textEntry[1]) ? commonAncestor : getCommonNode(listRoot, textEntry[1], commonAncestor[1]), getFirstAncestorOfType(listRoot, textEntries[0]));
33
+ const commonAncestorEntry = textEntries.reduce((commonAncestor, textEntry)=>isAncestorPath(commonAncestor[1], textEntry[1]) ? commonAncestor : getCommonNode(listRoot, textEntry[1], commonAncestor[1]), // any list item would do, we grab the first one
34
+ getFirstAncestorOfType(listRoot, textEntries[0]));
27
35
  return isListRoot(commonAncestorEntry[0]) ? commonAncestorEntry[0].children : [
28
36
  commonAncestorEntry[0]
29
37
  ];
30
38
  };
31
- const trimLiWrapper = (nodes)=>{
39
+ /**
40
+ * Removes leading li when pasting a single li with a single child.
41
+ */ const trimLiWrapper = (nodes)=>{
32
42
  if (nodes.length !== 1) {
33
43
  return nodes;
34
44
  }
@@ -49,7 +59,7 @@ const unwrapTextContainerAtStart = (nodes)=>{
49
59
  return nodes;
50
60
  };
51
61
  export const insertListFragment = (editor)=>{
52
- const { insertFragment } = editor;
62
+ const { insertFragment } = editor;
53
63
  return (fragment)=>{
54
64
  if (!editor.selection) {
55
65
  return;
@@ -68,6 +78,9 @@ export const insertListFragment = (editor)=>{
68
78
  }
69
79
  const inlines = nodes.slice(0, firstBlockIndex);
70
80
  const blocks = nodes.slice(firstBlockIndex);
81
+ // Two calls to insertNodes are required here. Otherwise, all blocks
82
+ // after a text or inline element occurrence will be unwrapped for
83
+ // some reason.
71
84
  insertNodes(editor, inlines, {
72
85
  at: editor.selection,
73
86
  select: true
@@ -1,9 +1,12 @@
1
- import isHotkey from 'is-hotkey';
1
+ /**
2
+ * Credit: Modified version of Plate's list plugin
3
+ * See: https://github.com/udecode/plate/blob/main/packages/nodes/list
4
+ */ import isHotkey from 'is-hotkey';
2
5
  import castArray from 'lodash/castArray';
3
6
  import { getAboveNode } from '../../internal/queries';
4
7
  import { moveListItems } from './transforms/moveListItems';
5
8
  import { toggleList } from './transforms/toggleList';
6
- export const onKeyDownList = (editor, { type , options: { hotkey } })=>(e)=>{
9
+ export const onKeyDownList = (editor, { type, options: { hotkey } })=>(e)=>{
7
10
  if (e.key === 'Tab' && editor.selection) {
8
11
  const listSelected = getAboveNode(editor, {
9
12
  at: editor.selection,
@@ -2,7 +2,9 @@ import { BLOCKS, TEXT_CONTAINERS } from '@contentful/rich-text-types';
2
2
  import { withoutNormalizing } from '../../../internal';
3
3
  import { getAboveNode, getParentNode, isFirstChildPath, isSelectionAtBlockEnd, isSelectionAtBlockStart, getMarks, getNextPath } from '../../../internal/queries';
4
4
  import { select, insertNodes, moveChildren, splitNodes, collapseSelection } from '../../../internal/transforms';
5
- const emptyListItemNode = (editor, withChildren = false)=>{
5
+ /**
6
+ * Build a new list item node while preserving marks
7
+ */ const emptyListItemNode = (editor, withChildren = false)=>{
6
8
  let children = [];
7
9
  if (withChildren) {
8
10
  const marks = getMarks(editor) || {};
@@ -25,10 +27,13 @@ const emptyListItemNode = (editor, withChildren = false)=>{
25
27
  children
26
28
  };
27
29
  };
28
- export const insertListItem = (editor)=>{
30
+ /**
31
+ * Insert list item if selection is in li>p.
32
+ */ export const insertListItem = (editor)=>{
29
33
  if (!editor.selection) {
30
34
  return false;
31
35
  }
36
+ // Naming it paragraph for simplicity but can be a heading as well
32
37
  const paragraph = getAboveNode(editor, {
33
38
  match: {
34
39
  type: TEXT_CONTAINERS
@@ -46,23 +51,33 @@ export const insertListItem = (editor)=>{
46
51
  if (listItemNode.type !== BLOCKS.LIST_ITEM) {
47
52
  return false;
48
53
  }
54
+ // We are in a li>p (or heading)
49
55
  withoutNormalizing(editor, ()=>{
50
56
  if (!editor.selection) {
51
57
  return;
52
58
  }
59
+ // Check the cursor position in the current paragraph
53
60
  const isAtStart = isSelectionAtBlockStart(editor);
54
61
  const isAtEnd = isSelectionAtBlockEnd(editor);
55
62
  const isAtStartOfListItem = isAtStart && isFirstChildPath(paragraphPath);
56
63
  const shouldSplit = !isAtStart && !isAtEnd;
64
+ // Split the current paragraph content if necessary
57
65
  if (shouldSplit) {
58
66
  splitNodes(editor);
59
67
  }
68
+ // Insert the new li
60
69
  const newListItemPath = isAtStartOfListItem ? listItemPath : getNextPath(listItemPath);
61
- insertNodes(editor, emptyListItemNode(editor, !shouldSplit), {
70
+ insertNodes(editor, // Add an empty paragraph to the new li if We will not move some
71
+ // paragraphs over there.
72
+ emptyListItemNode(editor, !shouldSplit), {
62
73
  at: newListItemPath
63
74
  });
75
+ // Move children *after* selection to the new li
64
76
  const fromPath = isAtStart ? paragraphPath : getNextPath(paragraphPath);
65
77
  const fromStartIndex = fromPath[fromPath.length - 1] || 0;
78
+ // On split we don't add paragraph to the new li so we move
79
+ // content to the very beginning. Otherwise, account for the empty
80
+ // paragraph at the beginning by moving the content after
66
81
  const toPath = newListItemPath.concat([
67
82
  shouldSplit ? 0 : 1
68
83
  ]);
@@ -73,10 +88,12 @@ export const insertListItem = (editor)=>{
73
88
  fromStartIndex
74
89
  });
75
90
  }
91
+ // Move cursor to the start of the new li
76
92
  select(editor, newListItemPath);
77
93
  collapseSelection(editor, {
78
94
  edge: 'start'
79
95
  });
80
96
  });
97
+ // Returning True skips processing other editor.insertBreak handlers
81
98
  return true;
82
99
  };
@@ -1,8 +1,11 @@
1
- import { getListTypes } from '@udecode/plate-list';
1
+ /**
2
+ * Credit: Modified version of Plate's list plugin
3
+ * See: https://github.com/udecode/plate/blob/main/packages/nodes/list
4
+ */ import { getListTypes } from '@udecode/plate-list';
2
5
  import { withoutNormalizing } from '../../../internal';
3
6
  import { getNodeEntry, getNodeChildren, getNextPath, getPreviousPath, getLastChildPath, match } from '../../../internal/queries';
4
7
  import { wrapNodes, moveNodes } from '../../../internal/transforms';
5
- export const moveListItemDown = (editor, { list , listItem })=>{
8
+ export const moveListItemDown = (editor, { list, listItem })=>{
6
9
  const [listNode] = list;
7
10
  const [, listItemPath] = listItem;
8
11
  let previousListItemPath;
@@ -11,6 +14,7 @@ export const moveListItemDown = (editor, { list , listItem })=>{
11
14
  } catch (e) {
12
15
  return;
13
16
  }
17
+ // Previous sibling is the new parent
14
18
  const previousSiblingItem = getNodeEntry(editor, previousListItemPath);
15
19
  if (previousSiblingItem) {
16
20
  const [, previousPath] = previousSiblingItem;
@@ -20,6 +24,7 @@ export const moveListItemDown = (editor, { list , listItem })=>{
20
24
  const newPath = getNextPath(getLastChildPath(subList ?? previousSiblingItem));
21
25
  withoutNormalizing(editor, ()=>{
22
26
  if (!subList) {
27
+ // Create new sub-list
23
28
  wrapNodes(editor, {
24
29
  type: listNode.type,
25
30
  children: [],
@@ -28,6 +33,7 @@ export const moveListItemDown = (editor, { list , listItem })=>{
28
33
  at: listItemPath
29
34
  });
30
35
  }
36
+ // Move the current item to the sub-list
31
37
  moveNodes(editor, {
32
38
  at: listItemPath,
33
39
  to: newPath
@@ -1,18 +1,23 @@
1
- import { isListNested, ELEMENT_LIC, getListItemEntry, moveListItemUp } from '@udecode/plate-list';
1
+ /**
2
+ * Credit: Modified version of Plate's list plugin
3
+ * See: https://github.com/udecode/plate/blob/main/packages/nodes/list
4
+ */ import { isListNested, ELEMENT_LIC, getListItemEntry, moveListItemUp } from '@udecode/plate-list';
2
5
  import { withoutNormalizing } from '../../../internal';
3
6
  import { getNodeEntries, getPluginType, createPathRef, getParentPath, isAncestorPath } from '../../../internal/queries';
4
7
  import { moveListItemDown } from './moveListItemDown';
5
- export const moveListItems = (editor, { increase =true , at =editor.selection ?? undefined } = {})=>{
8
+ export const moveListItems = (editor, { increase = true, at = editor.selection ?? undefined } = {})=>{
6
9
  const _nodes = getNodeEntries(editor, {
7
10
  at,
8
11
  match: {
9
12
  type: getPluginType(editor, ELEMENT_LIC)
10
13
  }
11
14
  });
15
+ // Get the selected lic
12
16
  const lics = Array.from(_nodes);
13
17
  if (!lics.length) return;
14
18
  const highestLicPaths = [];
15
19
  const highestLicPathRefs = [];
20
+ // Filter out the nested lic, we just need to move the highest ones
16
21
  lics.forEach((lic)=>{
17
22
  const licPath = lic[1];
18
23
  const liPath = getParentPath(licPath);
@@ -1,12 +1,13 @@
1
- import { jsx, assertOutput, createTestEditor } from '../../../test-utils';
1
+ /** @jsx jsx */ import { jsx, assertOutput, createTestEditor } from '../../../test-utils';
2
2
  import { moveListItems } from './moveListItems';
3
3
  describe('moving list items (up/down)', ()=>{
4
- const renderEditor = (children)=>jsx("editor", null, children, jsx("hp", null, jsx("htext", null)));
4
+ const renderEditor = (children)=>/*#__PURE__*/ jsx("editor", null, children, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("htext", null)));
5
5
  const assertTab = (t, shift = false)=>{
6
6
  test(t.title, ()=>{
7
- const { editor } = createTestEditor({
7
+ const { editor } = createTestEditor({
8
8
  input: renderEditor(t.input)
9
9
  });
10
+ // Equivalent of pressing (SHIFT+)TAB
10
11
  moveListItems(editor, {
11
12
  increase: !shift
12
13
  });
@@ -19,37 +20,37 @@ describe('moving list items (up/down)', ()=>{
19
20
  const tests = [
20
21
  {
21
22
  title: 'single paragraph',
22
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1")), jsx("hli", null, jsx("hp", null, "p2", jsx("cursor", null)))),
23
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hul", null, jsx("hli", null, jsx("hp", null, "p2", jsx("cursor", null))))))
23
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p2", /*#__PURE__*/ jsx("cursor", null)))),
24
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p2", /*#__PURE__*/ jsx("cursor", null))))))
24
25
  },
25
26
  {
26
27
  title: 'multiple paragraphs',
27
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hp", null, "p2")), jsx("hli", null, jsx("hp", null, "p3", jsx("cursor", null)))),
28
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hp", null, "p2"), jsx("hul", null, jsx("hli", null, jsx("hp", null, "p3", jsx("cursor", null))))))
28
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hp", null, "p2")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p3", /*#__PURE__*/ jsx("cursor", null)))),
29
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hp", null, "p2"), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p3", /*#__PURE__*/ jsx("cursor", null))))))
29
30
  },
30
31
  {
31
32
  title: 'multiple elements',
32
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "a"), jsx("hp", null, "b"), jsx("hquote", null, jsx("hp", null, "quote"))), jsx("hli", null, jsx("hp", null, "c", jsx("cursor", null)), jsx("hp", null, "d"), jsx("hembed", {
33
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "a"), /*#__PURE__*/ jsx("hp", null, "b"), /*#__PURE__*/ jsx("hquote", null, /*#__PURE__*/ jsx("hp", null, "quote"))), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "c", /*#__PURE__*/ jsx("cursor", null)), /*#__PURE__*/ jsx("hp", null, "d"), /*#__PURE__*/ jsx("hembed", {
33
34
  type: "Asset",
34
35
  id: "asset-id"
35
36
  }))),
36
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "a"), jsx("hp", null, "b"), jsx("hquote", null, jsx("hp", null, "quote")), jsx("hul", null, jsx("hli", null, jsx("hp", null, "c", jsx("cursor", null)), jsx("hp", null, "d"), jsx("hembed", {
37
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "a"), /*#__PURE__*/ jsx("hp", null, "b"), /*#__PURE__*/ jsx("hquote", null, /*#__PURE__*/ jsx("hp", null, "quote")), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "c", /*#__PURE__*/ jsx("cursor", null)), /*#__PURE__*/ jsx("hp", null, "d"), /*#__PURE__*/ jsx("hembed", {
37
38
  type: "Asset",
38
39
  id: "asset-id"
39
40
  })))))
40
41
  },
41
42
  {
42
43
  title: 'with a sub-list',
43
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hul", null, jsx("hli", null, jsx("hp", null, "sub p1")))), jsx("hli", null, jsx("hp", null, "p2", jsx("cursor", null)))),
44
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hul", null, jsx("hli", null, jsx("hp", null, "sub p1")), jsx("hli", null, jsx("hp", null, "p2", jsx("cursor", null))))))
44
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "sub p1")))), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p2", /*#__PURE__*/ jsx("cursor", null)))),
45
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "sub p1")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p2", /*#__PURE__*/ jsx("cursor", null))))))
45
46
  },
46
47
  {
47
48
  title: 'with a sub-list as non-last child',
48
- input: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hul", null, jsx("hli", null, jsx("hp", null, "sub p1"))), jsx("hembed", {
49
+ input: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "sub p1"))), /*#__PURE__*/ jsx("hembed", {
49
50
  type: "Entry",
50
51
  id: "entry-id"
51
- })), jsx("hli", null, jsx("hp", null, "p2", jsx("cursor", null)))),
52
- expected: jsx("hul", null, jsx("hli", null, jsx("hp", null, "p1"), jsx("hul", null, jsx("hli", null, jsx("hp", null, "sub p1")), jsx("hli", null, jsx("hp", null, "p2", jsx("cursor", null)))), jsx("hembed", {
52
+ })), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p2", /*#__PURE__*/ jsx("cursor", null)))),
53
+ expected: /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p1"), /*#__PURE__*/ jsx("hul", null, /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "sub p1")), /*#__PURE__*/ jsx("hli", null, /*#__PURE__*/ jsx("hp", null, "p2", /*#__PURE__*/ jsx("cursor", null)))), /*#__PURE__*/ jsx("hembed", {
53
54
  type: "Entry",
54
55
  id: "entry-id"
55
56
  })))