@contentful/field-editor-rich-text 3.16.7 → 3.16.10

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 (376) hide show
  1. package/dist/cjs/ContentfulEditorProvider.js +8 -8
  2. package/dist/cjs/RichTextEditor.js +20 -22
  3. package/dist/cjs/RichTextEditor.styles.js +1 -2
  4. package/dist/cjs/SdkProvider.js +5 -7
  5. package/dist/cjs/SyncEditorChanges.js +6 -15
  6. package/dist/cjs/Toolbar/_tests_/toolbar.test.js +15 -17
  7. package/dist/cjs/Toolbar/components/EmbedEntityWidget.js +9 -13
  8. package/dist/cjs/Toolbar/components/EmbeddedEntityDropdownButton.js +8 -10
  9. package/dist/cjs/Toolbar/components/StickyToolbarWrapper.js +2 -2
  10. package/dist/cjs/Toolbar/index.js +30 -33
  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 +6 -8
  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 +0 -1
  19. package/dist/cjs/dialogs/HypelinkDialog/HyperlinkDialog.js +38 -43
  20. package/dist/cjs/dialogs/openRichTextDialog.js +4 -6
  21. package/dist/cjs/dialogs/renderRichTextDialog.js +4 -6
  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 +44 -53
  26. package/dist/cjs/helpers/environment.js +3 -3
  27. package/dist/cjs/helpers/formatDateAndTime.js +4 -5
  28. package/dist/cjs/helpers/getAllowedResourcesForNodeType.js +5 -22
  29. package/dist/cjs/helpers/getLinkedContentTypeIdsForNodeType.js +5 -29
  30. package/dist/cjs/helpers/nodeFactory.js +6 -6
  31. package/dist/cjs/helpers/sdkNavigatorSlideIn.js +6 -14
  32. package/dist/cjs/helpers/sdkNavigatorSlideIn.spec.js +2 -3
  33. package/dist/cjs/helpers/toSlateValue.js +3 -14
  34. package/dist/cjs/helpers/transformers.js +5 -5
  35. package/dist/cjs/helpers/validations.js +9 -12
  36. package/dist/cjs/index.js +5 -7
  37. package/dist/cjs/internal/constants.js +2 -4
  38. package/dist/cjs/internal/hooks.js +7 -9
  39. package/dist/cjs/internal/misc.js +12 -15
  40. package/dist/cjs/internal/queries.js +108 -115
  41. package/dist/cjs/internal/transforms.js +48 -51
  42. package/dist/cjs/internal/types/editor.js +1 -3
  43. package/dist/cjs/plugins/Break/createExitBreakPlugin.test.js +3 -4
  44. package/dist/cjs/plugins/Break/createResetNodePlugin.js +0 -1
  45. package/dist/cjs/plugins/Break/createSoftBreakPlugin.test.js +3 -3
  46. package/dist/cjs/plugins/CommandPalette/components/CommandList.js +33 -35
  47. package/dist/cjs/plugins/CommandPalette/components/CommandList.styles.js +1 -1
  48. package/dist/cjs/plugins/CommandPalette/components/CommandPrompt.js +5 -7
  49. package/dist/cjs/plugins/CommandPalette/hooks/useCommandList.js +3 -7
  50. package/dist/cjs/plugins/CommandPalette/onKeyDown.js +1 -6
  51. package/dist/cjs/plugins/CommandPalette/onKeyDown.spec.js +4 -6
  52. package/dist/cjs/plugins/CommandPalette/useCommands.js +3 -3
  53. package/dist/cjs/plugins/CommandPalette/utils/fetchEntries.js +0 -2
  54. package/dist/cjs/plugins/CommandPalette/utils/trimLeadingSlash.js +1 -6
  55. package/dist/cjs/plugins/DragAndDrop/index.js +1 -9
  56. package/dist/cjs/plugins/EmbeddedEntityBlock/LinkedEntityBlock.js +8 -10
  57. package/dist/cjs/plugins/EmbeddedEntityBlock/index.js +3 -3
  58. package/dist/cjs/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.js +17 -19
  59. package/dist/cjs/plugins/EmbeddedEntityInline/LinkedEntityInline.js +7 -9
  60. package/dist/cjs/plugins/EmbeddedResourceBlock/LinkedResourceBlock.js +5 -5
  61. package/dist/cjs/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.js +11 -13
  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 +10 -13
  65. package/dist/cjs/plugins/Heading/components/ToolbarHeadingButton.js +29 -23
  66. package/dist/cjs/plugins/Heading/createHeadingPlugin.js +2 -7
  67. package/dist/cjs/plugins/Hr/index.js +14 -19
  68. package/dist/cjs/plugins/Hyperlink/HyperlinkModal.js +28 -32
  69. package/dist/cjs/plugins/Hyperlink/__tests__/createHyperlinkPlugin.test.js +8 -8
  70. package/dist/cjs/plugins/Hyperlink/components/EntityHyperlink.js +8 -10
  71. package/dist/cjs/plugins/Hyperlink/components/LinkPopover.js +17 -23
  72. package/dist/cjs/plugins/Hyperlink/components/ResourceHyperlink.js +8 -10
  73. package/dist/cjs/plugins/Hyperlink/components/ToolbarHyperlinkButton.js +4 -6
  74. package/dist/cjs/plugins/Hyperlink/components/UrlHyperlink.js +6 -8
  75. package/dist/cjs/plugins/Hyperlink/components/linkHandlers.js +3 -3
  76. package/dist/cjs/plugins/Hyperlink/components/styles.js +1 -1
  77. package/dist/cjs/plugins/Hyperlink/createHyperlinkPlugin.js +4 -10
  78. package/dist/cjs/plugins/Hyperlink/useEntityInfo.js +3 -6
  79. package/dist/cjs/plugins/Hyperlink/useResourceEntityInfo.js +4 -6
  80. package/dist/cjs/plugins/Hyperlink/utils.js +4 -4
  81. package/dist/cjs/plugins/List/__tests__/createListPlugin.test.js +13 -13
  82. package/dist/cjs/plugins/List/__tests__/insertListBreak.test.js +25 -29
  83. package/dist/cjs/plugins/List/__tests__/insertListFragment.test.js +22 -22
  84. package/dist/cjs/plugins/List/components/List.js +7 -9
  85. package/dist/cjs/plugins/List/components/ListItem.js +4 -6
  86. package/dist/cjs/plugins/List/components/ToolbarListButton.js +5 -7
  87. package/dist/cjs/plugins/List/createListPlugin.js +0 -4
  88. package/dist/cjs/plugins/List/insertListBreak.js +4 -13
  89. package/dist/cjs/plugins/List/insertListFragment.js +5 -18
  90. package/dist/cjs/plugins/List/onKeyDownList.js +6 -8
  91. package/dist/cjs/plugins/List/transforms/insertListItem.js +2 -17
  92. package/dist/cjs/plugins/List/transforms/moveListItemDown.js +2 -8
  93. package/dist/cjs/plugins/List/transforms/moveListItems.js +2 -7
  94. package/dist/cjs/plugins/List/transforms/moveListItems.test.js +14 -15
  95. package/dist/cjs/plugins/List/transforms/toggleList.js +3 -8
  96. package/dist/cjs/plugins/List/transforms/toggleList.spec.js +28 -28
  97. package/dist/cjs/plugins/List/transforms/unwrapList.js +2 -7
  98. package/dist/cjs/plugins/List/utils.js +11 -12
  99. package/dist/cjs/plugins/List/withList.js +2 -6
  100. package/dist/cjs/plugins/Marks/Bold.js +7 -9
  101. package/dist/cjs/plugins/Marks/Code.js +7 -15
  102. package/dist/cjs/plugins/Marks/Italic.js +7 -9
  103. package/dist/cjs/plugins/Marks/Subscript.js +8 -10
  104. package/dist/cjs/plugins/Marks/Superscript.js +8 -10
  105. package/dist/cjs/plugins/Marks/Underline.js +4 -6
  106. package/dist/cjs/plugins/Marks/components/MarkToolbarButton.js +7 -9
  107. package/dist/cjs/plugins/Marks/helpers.js +5 -5
  108. package/dist/cjs/plugins/Normalizer/baseRules.js +0 -2
  109. package/dist/cjs/plugins/Normalizer/createNormalizerPlugin.test.js +12 -12
  110. package/dist/cjs/plugins/Normalizer/utils.js +3 -4
  111. package/dist/cjs/plugins/Normalizer/withNormalizer.js +3 -23
  112. package/dist/cjs/plugins/Paragraph/Paragraph.js +4 -6
  113. package/dist/cjs/plugins/Paragraph/__tests__/createParagraphPlugin.test.js +32 -32
  114. package/dist/cjs/plugins/Paragraph/createParagraphPlugin.js +2 -3
  115. package/dist/cjs/plugins/PasteHTML/createPasteHTMLPlugin.js +6 -9
  116. package/dist/cjs/plugins/PasteHTML/utils/__tests__/sanitizeHTML.test.js +0 -2
  117. package/dist/cjs/plugins/PasteHTML/utils/sanitizeAnchors.js +0 -9
  118. package/dist/cjs/plugins/PasteHTML/utils/sanitizeHTML.js +2 -17
  119. package/dist/cjs/plugins/PasteHTML/utils/sanitizeSheets.js +1 -13
  120. package/dist/cjs/plugins/Quote/__test__/createQuotePlugin.test.js +21 -21
  121. package/dist/cjs/plugins/Quote/components/Quote.js +4 -6
  122. package/dist/cjs/plugins/Quote/components/ToolbarQuoteButton.js +4 -6
  123. package/dist/cjs/plugins/Quote/createQuotePlugin.js +0 -1
  124. package/dist/cjs/plugins/Quote/toggleQuote.js +5 -5
  125. package/dist/cjs/plugins/Quote/withQuote.js +2 -4
  126. package/dist/cjs/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.js +0 -1
  127. package/dist/cjs/plugins/Table/__tests__/createTablePlugin.test.js +22 -22
  128. package/dist/cjs/plugins/Table/__tests__/helpers.test.js +4 -4
  129. package/dist/cjs/plugins/Table/actions/addColumn.js +4 -5
  130. package/dist/cjs/plugins/Table/actions/addRow.js +3 -6
  131. package/dist/cjs/plugins/Table/components/Cell.js +5 -7
  132. package/dist/cjs/plugins/Table/components/HeaderCell.js +5 -7
  133. package/dist/cjs/plugins/Table/components/Row.js +4 -6
  134. package/dist/cjs/plugins/Table/components/Table.js +6 -8
  135. package/dist/cjs/plugins/Table/components/TableActions.js +16 -19
  136. package/dist/cjs/plugins/Table/components/ToolbarButton.js +4 -7
  137. package/dist/cjs/plugins/Table/createTablePlugin.js +1 -11
  138. package/dist/cjs/plugins/Table/helpers.js +12 -16
  139. package/dist/cjs/plugins/Table/insertTableFragment.js +2 -15
  140. package/dist/cjs/plugins/Table/onKeyDownTable.js +3 -11
  141. package/dist/cjs/plugins/Table/tableTracking.js +6 -6
  142. package/dist/cjs/plugins/Text/__tests__/createTextPlugin.test.js +17 -19
  143. package/dist/cjs/plugins/Text/createTextPlugin.js +5 -22
  144. package/dist/cjs/plugins/Tracking/createTrackingPlugin.js +4 -5
  145. package/dist/cjs/plugins/Tracking/utils.js +3 -6
  146. package/dist/cjs/plugins/Voids/createVoidsPlugin.js +0 -5
  147. package/dist/cjs/plugins/Voids/transformVoid.js +0 -1
  148. package/dist/cjs/plugins/index.js +3 -15
  149. package/dist/cjs/plugins/shared/EmbeddedBlockToolbarIcon.js +10 -12
  150. package/dist/cjs/plugins/shared/EmbeddedBlockUtil.js +6 -16
  151. package/dist/cjs/plugins/shared/EmbeddedInlineToolbarIcon.js +8 -10
  152. package/dist/cjs/plugins/shared/EmbeddedInlineUtil.js +5 -9
  153. package/dist/cjs/plugins/shared/FetchingWrappedAssetCard.js +11 -13
  154. package/dist/cjs/plugins/shared/FetchingWrappedEntryCard.js +12 -14
  155. package/dist/cjs/plugins/shared/FetchingWrappedResourceCard.js +11 -14
  156. package/dist/cjs/plugins/shared/LinkedBlockWrapper.js +4 -8
  157. package/dist/cjs/plugins/shared/LinkedInlineWrapper.js +6 -10
  158. package/dist/cjs/plugins/shared/ResourceNewBadge.js +3 -5
  159. package/dist/cjs/plugins/shared/ToolbarButton.js +6 -8
  160. package/dist/cjs/plugins/shared/__tests__/FetchingWrappedAssetCard.test.js +5 -10
  161. package/dist/cjs/plugins/shared/__tests__/FetchingWrappedEntryCard.test.js +6 -11
  162. package/dist/cjs/plugins/shared/__tests__/FetchingWrappedResourceCard.test.js +13 -15
  163. package/dist/cjs/plugins/shared/utils.js +1 -4
  164. package/dist/cjs/test-utils/assertOutput.js +0 -1
  165. package/dist/cjs/test-utils/hyperscript.d.js +0 -1
  166. package/dist/cjs/test-utils/randomId.js +1 -3
  167. package/dist/cjs/test-utils/validation.js +5 -8
  168. package/dist/esm/ContentfulEditorProvider.js +1 -4
  169. package/dist/esm/RichTextEditor.js +13 -13
  170. package/dist/esm/RichTextEditor.styles.js +0 -1
  171. package/dist/esm/SdkProvider.js +2 -2
  172. package/dist/esm/SyncEditorChanges.js +3 -18
  173. package/dist/esm/Toolbar/_tests_/toolbar.test.js +12 -12
  174. package/dist/esm/Toolbar/components/EmbedEntityWidget.js +7 -9
  175. package/dist/esm/Toolbar/components/EmbeddedEntityDropdownButton.js +6 -6
  176. package/dist/esm/Toolbar/components/StickyToolbarWrapper.js +1 -1
  177. package/dist/esm/Toolbar/index.js +27 -28
  178. package/dist/esm/__fixtures__/FakeSdk.js +3 -3
  179. package/dist/esm/constants/Schema.js +0 -1
  180. package/dist/esm/dialogs/HypelinkDialog/HyperlinkDialog.js +31 -34
  181. package/dist/esm/dialogs/openRichTextDialog.js +2 -2
  182. package/dist/esm/dialogs/renderRichTextDialog.js +2 -2
  183. package/dist/esm/helpers/__tests__/removeInternalMarks.test.js +10 -10
  184. package/dist/esm/helpers/callbacks.js +1 -1
  185. package/dist/esm/helpers/config.js +1 -9
  186. package/dist/esm/helpers/editor.js +6 -22
  187. package/dist/esm/helpers/extractNodes.js +1 -3
  188. package/dist/esm/helpers/formatDateAndTime.js +2 -11
  189. package/dist/esm/helpers/getAllowedResourcesForNodeType.js +2 -19
  190. package/dist/esm/helpers/getLinkedContentTypeIdsForNodeType.js +2 -26
  191. package/dist/esm/helpers/sdkNavigatorSlideIn.js +6 -20
  192. package/dist/esm/helpers/sdkNavigatorSlideIn.spec.js +0 -1
  193. package/dist/esm/helpers/toSlateValue.js +3 -17
  194. package/dist/esm/helpers/validations.js +1 -5
  195. package/dist/esm/internal/misc.js +2 -23
  196. package/dist/esm/internal/queries.js +2 -11
  197. package/dist/esm/internal/transforms.js +3 -14
  198. package/dist/esm/internal/types/editor.js +1 -3
  199. package/dist/esm/plugins/Break/createExitBreakPlugin.test.js +3 -4
  200. package/dist/esm/plugins/Break/createResetNodePlugin.js +0 -1
  201. package/dist/esm/plugins/Break/createSoftBreakPlugin.test.js +3 -3
  202. package/dist/esm/plugins/CommandPalette/components/CommandList.js +30 -30
  203. package/dist/esm/plugins/CommandPalette/components/CommandPrompt.js +2 -2
  204. package/dist/esm/plugins/CommandPalette/createCommandPalettePlugin.js +1 -11
  205. package/dist/esm/plugins/CommandPalette/hooks/useCommandList.js +0 -2
  206. package/dist/esm/plugins/CommandPalette/onKeyDown.js +0 -5
  207. package/dist/esm/plugins/CommandPalette/onKeyDown.spec.js +2 -2
  208. package/dist/esm/plugins/CommandPalette/useCommands.js +3 -3
  209. package/dist/esm/plugins/CommandPalette/utils/fetchEntries.js +0 -2
  210. package/dist/esm/plugins/CommandPalette/utils/trimLeadingSlash.js +1 -6
  211. package/dist/esm/plugins/DragAndDrop/index.js +1 -9
  212. package/dist/esm/plugins/EmbeddedEntityBlock/LinkedEntityBlock.js +6 -6
  213. package/dist/esm/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.js +14 -14
  214. package/dist/esm/plugins/EmbeddedEntityInline/LinkedEntityInline.js +5 -5
  215. package/dist/esm/plugins/EmbeddedResourceBlock/LinkedResourceBlock.js +4 -4
  216. package/dist/esm/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.js +9 -9
  217. package/dist/esm/plugins/EmbeddedResourceInline/LinkedResourceInline.js +4 -4
  218. package/dist/esm/plugins/Heading/__tests__/createHeadingPlugin.test.js +32 -32
  219. package/dist/esm/plugins/Heading/components/Heading.js +7 -8
  220. package/dist/esm/plugins/Heading/components/ToolbarHeadingButton.js +26 -18
  221. package/dist/esm/plugins/Heading/createHeadingPlugin.js +1 -6
  222. package/dist/esm/plugins/Hr/index.js +5 -8
  223. package/dist/esm/plugins/Hyperlink/HyperlinkModal.js +23 -25
  224. package/dist/esm/plugins/Hyperlink/__tests__/createHyperlinkPlugin.test.js +8 -8
  225. package/dist/esm/plugins/Hyperlink/components/EntityHyperlink.js +6 -6
  226. package/dist/esm/plugins/Hyperlink/components/LinkPopover.js +15 -19
  227. package/dist/esm/plugins/Hyperlink/components/ResourceHyperlink.js +6 -6
  228. package/dist/esm/plugins/Hyperlink/components/ToolbarHyperlinkButton.js +2 -2
  229. package/dist/esm/plugins/Hyperlink/components/UrlHyperlink.js +4 -4
  230. package/dist/esm/plugins/Hyperlink/createHyperlinkPlugin.js +1 -5
  231. package/dist/esm/plugins/Hyperlink/useEntityInfo.js +3 -6
  232. package/dist/esm/plugins/Hyperlink/useResourceEntityInfo.js +2 -2
  233. package/dist/esm/plugins/Hyperlink/utils.js +1 -1
  234. package/dist/esm/plugins/List/__tests__/createListPlugin.test.js +13 -13
  235. package/dist/esm/plugins/List/__tests__/insertListBreak.test.js +25 -29
  236. package/dist/esm/plugins/List/__tests__/insertListFragment.test.js +22 -22
  237. package/dist/esm/plugins/List/components/List.js +1 -1
  238. package/dist/esm/plugins/List/components/ListItem.js +1 -1
  239. package/dist/esm/plugins/List/components/ToolbarListButton.js +3 -3
  240. package/dist/esm/plugins/List/createListPlugin.js +0 -4
  241. package/dist/esm/plugins/List/insertListBreak.js +4 -13
  242. package/dist/esm/plugins/List/insertListFragment.js +5 -18
  243. package/dist/esm/plugins/List/onKeyDownList.js +5 -7
  244. package/dist/esm/plugins/List/transforms/insertListItem.js +3 -20
  245. package/dist/esm/plugins/List/transforms/moveListItemDown.js +2 -8
  246. package/dist/esm/plugins/List/transforms/moveListItems.js +2 -7
  247. package/dist/esm/plugins/List/transforms/moveListItems.test.js +14 -15
  248. package/dist/esm/plugins/List/transforms/toggleList.js +3 -8
  249. package/dist/esm/plugins/List/transforms/toggleList.spec.js +28 -28
  250. package/dist/esm/plugins/List/transforms/unwrapList.js +2 -7
  251. package/dist/esm/plugins/List/utils.js +2 -7
  252. package/dist/esm/plugins/List/withList.js +2 -6
  253. package/dist/esm/plugins/Marks/Bold.js +2 -2
  254. package/dist/esm/plugins/Marks/Code.js +2 -8
  255. package/dist/esm/plugins/Marks/Italic.js +2 -2
  256. package/dist/esm/plugins/Marks/Subscript.js +2 -2
  257. package/dist/esm/plugins/Marks/Superscript.js +2 -2
  258. package/dist/esm/plugins/Marks/Underline.js +2 -2
  259. package/dist/esm/plugins/Marks/components/MarkToolbarButton.js +4 -4
  260. package/dist/esm/plugins/Marks/helpers.js +1 -1
  261. package/dist/esm/plugins/Normalizer/baseRules.js +0 -4
  262. package/dist/esm/plugins/Normalizer/createNormalizerPlugin.test.js +12 -12
  263. package/dist/esm/plugins/Normalizer/utils.js +0 -1
  264. package/dist/esm/plugins/Normalizer/withNormalizer.js +2 -22
  265. package/dist/esm/plugins/Paragraph/Paragraph.js +1 -1
  266. package/dist/esm/plugins/Paragraph/__tests__/createParagraphPlugin.test.js +32 -32
  267. package/dist/esm/plugins/Paragraph/createParagraphPlugin.js +1 -2
  268. package/dist/esm/plugins/PasteHTML/createPasteHTMLPlugin.js +3 -9
  269. package/dist/esm/plugins/PasteHTML/utils/__tests__/sanitizeHTML.test.js +0 -2
  270. package/dist/esm/plugins/PasteHTML/utils/sanitizeAnchors.js +1 -27
  271. package/dist/esm/plugins/PasteHTML/utils/sanitizeHTML.js +2 -17
  272. package/dist/esm/plugins/PasteHTML/utils/sanitizeSheets.js +1 -13
  273. package/dist/esm/plugins/Quote/__test__/createQuotePlugin.test.js +21 -21
  274. package/dist/esm/plugins/Quote/components/Quote.js +1 -1
  275. package/dist/esm/plugins/Quote/components/ToolbarQuoteButton.js +2 -2
  276. package/dist/esm/plugins/Quote/createQuotePlugin.js +0 -1
  277. package/dist/esm/plugins/Quote/shouldResetQuote.js +1 -6
  278. package/dist/esm/plugins/Quote/toggleQuote.js +1 -1
  279. package/dist/esm/plugins/Quote/withQuote.js +2 -4
  280. package/dist/esm/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.js +0 -1
  281. package/dist/esm/plugins/Table/__tests__/createTablePlugin.test.js +22 -22
  282. package/dist/esm/plugins/Table/__tests__/helpers.test.js +4 -4
  283. package/dist/esm/plugins/Table/actions/addColumn.js +1 -2
  284. package/dist/esm/plugins/Table/actions/addRow.js +0 -3
  285. package/dist/esm/plugins/Table/components/Cell.js +2 -2
  286. package/dist/esm/plugins/Table/components/HeaderCell.js +2 -2
  287. package/dist/esm/plugins/Table/components/Row.js +1 -1
  288. package/dist/esm/plugins/Table/components/Table.js +3 -3
  289. package/dist/esm/plugins/Table/components/TableActions.js +11 -12
  290. package/dist/esm/plugins/Table/components/ToolbarButton.js +2 -3
  291. package/dist/esm/plugins/Table/createTablePlugin.js +1 -11
  292. package/dist/esm/plugins/Table/helpers.js +1 -10
  293. package/dist/esm/plugins/Table/insertTableFragment.js +2 -15
  294. package/dist/esm/plugins/Table/onKeyDownTable.js +3 -11
  295. package/dist/esm/plugins/Table/tableTracking.js +6 -6
  296. package/dist/esm/plugins/Text/__tests__/createTextPlugin.test.js +17 -19
  297. package/dist/esm/plugins/Text/createTextPlugin.js +5 -22
  298. package/dist/esm/plugins/Tracking/createTrackingPlugin.js +1 -2
  299. package/dist/esm/plugins/Tracking/utils.js +0 -1
  300. package/dist/esm/plugins/Voids/createVoidsPlugin.js +0 -5
  301. package/dist/esm/plugins/Voids/transformVoid.js +1 -4
  302. package/dist/esm/plugins/index.js +0 -12
  303. package/dist/esm/plugins/shared/EmbeddedBlockToolbarIcon.js +5 -5
  304. package/dist/esm/plugins/shared/EmbeddedBlockUtil.js +5 -15
  305. package/dist/esm/plugins/shared/EmbeddedInlineToolbarIcon.js +5 -5
  306. package/dist/esm/plugins/shared/EmbeddedInlineUtil.js +4 -8
  307. package/dist/esm/plugins/shared/FetchingWrappedAssetCard.js +8 -8
  308. package/dist/esm/plugins/shared/FetchingWrappedEntryCard.js +9 -9
  309. package/dist/esm/plugins/shared/FetchingWrappedResourceCard.js +8 -9
  310. package/dist/esm/plugins/shared/LinkedBlockWrapper.js +3 -7
  311. package/dist/esm/plugins/shared/LinkedInlineWrapper.js +3 -5
  312. package/dist/esm/plugins/shared/ResourceNewBadge.js +1 -1
  313. package/dist/esm/plugins/shared/ToolbarButton.js +3 -3
  314. package/dist/esm/plugins/shared/__tests__/FetchingWrappedAssetCard.test.js +2 -5
  315. package/dist/esm/plugins/shared/__tests__/FetchingWrappedEntryCard.test.js +2 -5
  316. package/dist/esm/plugins/shared/__tests__/FetchingWrappedResourceCard.test.js +8 -8
  317. package/dist/esm/plugins/shared/utils.js +1 -4
  318. package/dist/esm/test-utils/assertOutput.js +0 -1
  319. package/dist/esm/test-utils/hyperscript.d.js +0 -1
  320. package/dist/esm/test-utils/jsx.js +1 -5
  321. package/dist/esm/test-utils/randomId.js +1 -3
  322. package/dist/esm/test-utils/setEmptyDataAttribute.js +1 -4
  323. package/dist/esm/test-utils/validation.js +4 -7
  324. package/dist/types/RichTextEditor.d.ts +2 -3
  325. package/dist/types/Toolbar/components/EmbedEntityWidget.d.ts +1 -2
  326. package/dist/types/Toolbar/components/EmbeddedEntityDropdownButton.d.ts +1 -1
  327. package/dist/types/Toolbar/components/StickyToolbarWrapper.d.ts +2 -2
  328. package/dist/types/Toolbar/index.d.ts +1 -2
  329. package/dist/types/dialogs/HypelinkDialog/HyperlinkDialog.d.ts +4 -4
  330. package/dist/types/dialogs/renderRichTextDialog.d.ts +1 -2
  331. package/dist/types/plugins/CommandPalette/components/CommandList.d.ts +1 -2
  332. package/dist/types/plugins/CommandPalette/components/CommandPrompt.d.ts +1 -2
  333. package/dist/types/plugins/EmbeddedEntityBlock/LinkedEntityBlock.d.ts +1 -2
  334. package/dist/types/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.d.ts +1 -1
  335. package/dist/types/plugins/EmbeddedEntityInline/LinkedEntityInline.d.ts +1 -2
  336. package/dist/types/plugins/EmbeddedResourceBlock/LinkedResourceBlock.d.ts +1 -2
  337. package/dist/types/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.d.ts +1 -1
  338. package/dist/types/plugins/EmbeddedResourceInline/LinkedResourceInline.d.ts +1 -2
  339. package/dist/types/plugins/Heading/components/Heading.d.ts +6 -6
  340. package/dist/types/plugins/Heading/components/ToolbarHeadingButton.d.ts +1 -2
  341. package/dist/types/plugins/Hr/index.d.ts +2 -2
  342. package/dist/types/plugins/Hyperlink/HyperlinkModal.d.ts +1 -2
  343. package/dist/types/plugins/Hyperlink/components/EntityHyperlink.d.ts +1 -2
  344. package/dist/types/plugins/Hyperlink/components/LinkPopover.d.ts +1 -1
  345. package/dist/types/plugins/Hyperlink/components/ResourceHyperlink.d.ts +1 -2
  346. package/dist/types/plugins/Hyperlink/components/ToolbarHyperlinkButton.d.ts +1 -2
  347. package/dist/types/plugins/Hyperlink/components/UrlHyperlink.d.ts +1 -2
  348. package/dist/types/plugins/List/components/List.d.ts +2 -3
  349. package/dist/types/plugins/List/components/ListItem.d.ts +1 -2
  350. package/dist/types/plugins/List/components/ToolbarListButton.d.ts +1 -2
  351. package/dist/types/plugins/Marks/Bold.d.ts +2 -3
  352. package/dist/types/plugins/Marks/Code.d.ts +3 -4
  353. package/dist/types/plugins/Marks/Italic.d.ts +2 -3
  354. package/dist/types/plugins/Marks/Subscript.d.ts +3 -4
  355. package/dist/types/plugins/Marks/Superscript.d.ts +3 -4
  356. package/dist/types/plugins/Marks/Underline.d.ts +2 -3
  357. package/dist/types/plugins/Marks/components/MarkToolbarButton.d.ts +1 -1
  358. package/dist/types/plugins/Paragraph/Paragraph.d.ts +1 -2
  359. package/dist/types/plugins/Quote/components/Quote.d.ts +1 -2
  360. package/dist/types/plugins/Quote/components/ToolbarQuoteButton.d.ts +1 -2
  361. package/dist/types/plugins/Table/components/Cell.d.ts +1 -2
  362. package/dist/types/plugins/Table/components/HeaderCell.d.ts +1 -2
  363. package/dist/types/plugins/Table/components/Row.d.ts +1 -2
  364. package/dist/types/plugins/Table/components/Table.d.ts +1 -2
  365. package/dist/types/plugins/Table/components/TableActions.d.ts +1 -2
  366. package/dist/types/plugins/Table/components/ToolbarButton.d.ts +1 -2
  367. package/dist/types/plugins/shared/EmbeddedBlockToolbarIcon.d.ts +1 -2
  368. package/dist/types/plugins/shared/EmbeddedInlineToolbarIcon.d.ts +1 -2
  369. package/dist/types/plugins/shared/FetchingWrappedAssetCard.d.ts +1 -2
  370. package/dist/types/plugins/shared/FetchingWrappedEntryCard.d.ts +1 -2
  371. package/dist/types/plugins/shared/FetchingWrappedResourceCard.d.ts +1 -2
  372. package/dist/types/plugins/shared/LinkedBlockWrapper.d.ts +1 -1
  373. package/dist/types/plugins/shared/LinkedInlineWrapper.d.ts +1 -1
  374. package/dist/types/plugins/shared/ResourceNewBadge.d.ts +1 -2
  375. package/dist/types/plugins/shared/ToolbarButton.d.ts +1 -2
  376. package/package.json +8 -5
@@ -12,29 +12,18 @@ const _richtexttypes = require("@contentful/rich-text-types");
12
12
  const _editor = require("../../helpers/editor");
13
13
  const _queries = require("../../internal/queries");
14
14
  const _helpers = require("./helpers");
15
- /**
16
- * Removes table wrappers when pasting a single table cell
17
- *
18
- * In Plate/Slate, copying the content of a table cell wraps
19
- * it in a <table><tr><td>{content}</td></tr></table> even
20
- * when copying partial cell content.
21
- *
22
- * That's really annoying as there is no way to remove the table
23
- * wrappers in that case.
24
- */ const trimUnnecessaryTableWrapper = (node)=>{
15
+ const trimUnnecessaryTableWrapper = (node)=>{
25
16
  if (!(0, _queries.isElement)(node)) {
26
17
  return [
27
18
  node
28
19
  ];
29
20
  }
30
- // must be a table with a single row
31
21
  if (node.type !== _richtexttypes.BLOCKS.TABLE || node.children?.length !== 1) {
32
22
  return [
33
23
  node
34
24
  ];
35
25
  }
36
26
  const row = node.children[0];
37
- // the row must contain a single cell
38
27
  if (row?.children?.length !== 1) {
39
28
  return [
40
29
  node
@@ -44,14 +33,12 @@ const _helpers = require("./helpers");
44
33
  return cell.children;
45
34
  };
46
35
  const insertTableFragment = (editor)=>{
47
- const { insertFragment } = editor;
36
+ const { insertFragment } = editor;
48
37
  return (fragments)=>{
49
38
  if (!editor.selection) {
50
39
  return;
51
40
  }
52
41
  fragments = fragments.flatMap(trimUnnecessaryTableWrapper);
53
- // We need to make sure we have a new, empty and clean paragraph in order to paste tables as-is due to how Slate behaves
54
- // More info: https://github.com/ianstormtaylor/slate/pull/4489 and https://github.com/ianstormtaylor/slate/issues/4542
55
42
  const isInsertingTable = fragments.some((fragment)=>(0, _helpers.isTable)(fragment));
56
43
  const isTableFirstFragment = fragments.findIndex((fragment)=>(0, _helpers.isTable)(fragment)) === 0;
57
44
  const currentLineHasText = (0, _queries.getText)(editor, editor.selection?.focus.path) !== '';
@@ -17,12 +17,8 @@ const _actions = require("./actions");
17
17
  const onKeyDownTable = (editor, plugin)=>{
18
18
  const defaultHandler = (0, _platetable.onKeyDownTable)(editor, plugin);
19
19
  return (event)=>{
20
- // This fixes `Cannot resolve a Slate point from DOM point:
21
- // [object HTMLDivElement]` when typing while the cursor is before table
22
20
  const windowSelection = window.getSelection();
23
- if (windowSelection) {
24
- // @ts-expect-error
25
- // this attribute comes from `plugins/Table/components/Table.tsx`
21
+ if (windowSelection?.anchorNode?.attributes) {
26
22
  const blockType = windowSelection.anchorNode.attributes?.['data-block-type']?.value;
27
23
  const isBeforeTable = blockType === _richtexttypes.BLOCKS.TABLE;
28
24
  if (isBeforeTable) {
@@ -44,11 +40,10 @@ const onKeyDownTable = (editor, plugin)=>{
44
40
  return;
45
41
  }
46
42
  }
47
- // TODO clean this up
48
43
  if (event.key === 'Backspace') {
49
44
  const entry = (0, _platetable.getTableEntries)(editor, {});
50
45
  if (entry) {
51
- const { table, row, cell } = entry;
46
+ const { table , row , cell } = entry;
52
47
  const cellText = (0, _queries.getText)(editor, cell[1]);
53
48
  const isFirstCell = (0, _queries.isFirstChild)(row[1]);
54
49
  const isFirstRow = (0, _queries.isFirstChild)(table[1]);
@@ -59,18 +54,15 @@ const onKeyDownTable = (editor, plugin)=>{
59
54
  }
60
55
  }
61
56
  }
62
- // Pressing Tab on the last cell creates a new row
63
- // Otherwise, jumping between cells is handled in the defaultKeyDownTable
64
57
  if (event.key === 'Tab' && !event.shiftKey) {
65
58
  event.preventDefault();
66
59
  const entry = (0, _platetable.getTableEntries)(editor, {});
67
60
  if (entry) {
68
- const { table, row, cell } = entry;
61
+ const { table , row , cell } = entry;
69
62
  const isLastCell = (0, _queries.isLastChildPath)(row, cell[1]);
70
63
  const isLastRow = (0, _queries.isLastChildPath)(table, row[1]);
71
64
  if (isLastRow && isLastCell) {
72
65
  (0, _actions.addRowBelow)(editor);
73
- // skip default handler
74
66
  return;
75
67
  } else {
76
68
  defaultHandler(event);
@@ -20,22 +20,22 @@ const _richtexttypes = require("@contentful/rich-text-types");
20
20
  const _queries = require("../../internal/queries");
21
21
  const _Tracking = require("../../plugins/Tracking");
22
22
  function hasTables(nodes) {
23
- return nodes.some(({ type })=>{
23
+ return nodes.some(({ type })=>{
24
24
  return type === _richtexttypes.BLOCKS.TABLE;
25
25
  });
26
26
  }
27
- const isTableHeaderCell = ({ type })=>type === _richtexttypes.BLOCKS.TABLE_HEADER_CELL;
27
+ const isTableHeaderCell = ({ type })=>type === _richtexttypes.BLOCKS.TABLE_HEADER_CELL;
28
28
  function hasHeadersOutsideFirstRow(nodes) {
29
- return nodes.filter(({ type })=>type === _richtexttypes.BLOCKS.TABLE).flatMap(({ children })=>children.slice(1)).some(({ children })=>children.some(isTableHeaderCell));
29
+ return nodes.filter(({ type })=>type === _richtexttypes.BLOCKS.TABLE).flatMap(({ children })=>children.slice(1)).some(({ children })=>children.some(isTableHeaderCell));
30
30
  }
31
31
  function addTableTrackingEvents(editor) {
32
- const { insertData } = editor;
32
+ const { insertData } = editor;
33
33
  editor.insertData = (data)=>{
34
34
  const html = data.getData('text/html');
35
35
  if (html) {
36
- const { children: markupBefore } = editor;
36
+ const { children: markupBefore } = editor;
37
37
  insertData(data);
38
- const { children: markupAfter } = editor;
38
+ const { children: markupAfter } = editor;
39
39
  setTimeout(()=>{
40
40
  if (hasTables(markupBefore)) return;
41
41
  if (hasTables(markupAfter)) {
@@ -1,4 +1,4 @@
1
- /** @jsx jsx */ "use strict";
1
+ "use strict";
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
@@ -7,22 +7,21 @@ describe('delete backward', ()=>{
7
7
  const tests = [
8
8
  {
9
9
  title: 'deletes a character of the text inside li',
10
- input: /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "p1", /*#__PURE__*/ (0, _testutils.jsx)("cursor", null)))),
11
- expected: /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "p", /*#__PURE__*/ (0, _testutils.jsx)("cursor", null))))
10
+ input: (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, "p1", (0, _testutils.jsx)("cursor", null)))),
11
+ expected: (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, "p", (0, _testutils.jsx)("cursor", null))))
12
12
  },
13
13
  {
14
14
  title: 'does not delete the very first paragraph',
15
- input: /*#__PURE__*/ (0, _testutils.jsx)("fragment", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null)), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "text")),
16
- expected: /*#__PURE__*/ (0, _testutils.jsx)("fragment", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null)), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "text"))
15
+ input: (0, _testutils.jsx)("fragment", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null)), (0, _testutils.jsx)("hp", null, "text")),
16
+ expected: (0, _testutils.jsx)("fragment", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null)), (0, _testutils.jsx)("hp", null, "text"))
17
17
  }
18
18
  ];
19
- const render = (children)=>/*#__PURE__*/ (0, _testutils.jsx)("editor", null, children, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
19
+ const render = (children)=>(0, _testutils.jsx)("editor", null, children, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
20
20
  for (const t of tests){
21
21
  test(t.title, ()=>{
22
- const { editor } = (0, _testutils.createTestEditor)({
22
+ const { editor } = (0, _testutils.createTestEditor)({
23
23
  input: render(t.input)
24
24
  });
25
- // Equivalent of pressing backspace
26
25
  editor.deleteBackward('character');
27
26
  (0, _testutils.assertOutput)({
28
27
  editor,
@@ -35,32 +34,31 @@ describe('delete forward', ()=>{
35
34
  const tests = [
36
35
  {
37
36
  title: 'deletes a character of the text inside li',
38
- input: /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null), "p1"))),
39
- expected: /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null), "1")))
37
+ input: (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null), "p1"))),
38
+ expected: (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null), "1")))
40
39
  },
41
40
  {
42
41
  title: 'deletes the first paragraph when followed by another paragraph',
43
- input: /*#__PURE__*/ (0, _testutils.jsx)("fragment", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null)), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "text")),
44
- expected: /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null), "text")
42
+ input: (0, _testutils.jsx)("fragment", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null)), (0, _testutils.jsx)("hp", null, "text")),
43
+ expected: (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null), "text")
45
44
  },
46
45
  {
47
46
  title: 'deletes the first paragraph when followed by li',
48
- input: /*#__PURE__*/ (0, _testutils.jsx)("fragment", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null)), /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "p1")))),
49
- expected: /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null), "p1")))
47
+ input: (0, _testutils.jsx)("fragment", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null)), (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, "p1")))),
48
+ expected: (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null), "p1")))
50
49
  },
51
50
  {
52
51
  title: 'deletes the first paragraph when followed by a blockquote',
53
- input: /*#__PURE__*/ (0, _testutils.jsx)("fragment", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null)), /*#__PURE__*/ (0, _testutils.jsx)("hquote", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "p1"))),
54
- expected: /*#__PURE__*/ (0, _testutils.jsx)("hquote", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("cursor", null), "p1"))
52
+ input: (0, _testutils.jsx)("fragment", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null)), (0, _testutils.jsx)("hquote", null, (0, _testutils.jsx)("hp", null, "p1"))),
53
+ expected: (0, _testutils.jsx)("hquote", null, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("cursor", null), "p1"))
55
54
  }
56
55
  ];
57
- const render = (children)=>/*#__PURE__*/ (0, _testutils.jsx)("editor", null, children, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
56
+ const render = (children)=>(0, _testutils.jsx)("editor", null, children, (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
58
57
  for (const t of tests){
59
58
  test(t.title, ()=>{
60
- const { editor } = (0, _testutils.createTestEditor)({
59
+ const { editor } = (0, _testutils.createTestEditor)({
61
60
  input: render(t.input)
62
61
  });
63
- // Equivalent of pressing backspace
64
62
  editor.deleteForward('character');
65
63
  (0, _testutils.assertOutput)({
66
64
  editor,
@@ -15,9 +15,6 @@ function createTextPlugin(restrictedMarks = []) {
15
15
  return {
16
16
  key: 'TextPlugin',
17
17
  handlers: {
18
- // Triple selection in a non-Firefox browser undesirably selects
19
- // the start of the next block. Editor.unhangRange helps removing
20
- // the extra block at the end.
21
18
  onMouseUp: (editor)=>()=>{
22
19
  if (!editor.selection) {
23
20
  return;
@@ -26,16 +23,9 @@ function createTextPlugin(restrictedMarks = []) {
26
23
  }
27
24
  },
28
25
  withOverrides: (editor)=>{
29
- // Reverts the change made upstream that caused the cursor
30
- // to be trapped inside inline elements.
31
- //
32
- // Reverts https://github.com/ianstormtaylor/slate/pull/4578/
33
- // Related https://github.com/ianstormtaylor/slate/issues/4704
34
- const { insertText } = editor;
26
+ const { insertText } = editor;
35
27
  editor.insertText = (text)=>{
36
- const { selection } = editor;
37
- // If the cursor is at the end of an inline, move it outside
38
- // before inserting
28
+ const { selection } = editor;
39
29
  if (selection && (0, _queries.isRangeCollapsed)(selection)) {
40
30
  const inlinePath = (0, _queries.getAboveNode)(editor, {
41
31
  match: (n)=>(0, _queries.isInline)(editor, n),
@@ -51,8 +41,7 @@ function createTextPlugin(restrictedMarks = []) {
51
41
  }
52
42
  return insertText(text);
53
43
  };
54
- // When pressing delete instead of backspace
55
- const { deleteForward, deleteBackward } = editor;
44
+ const { deleteForward , deleteBackward } = editor;
56
45
  editor.deleteBackward = (unit)=>{
57
46
  deleteEmptyParagraph(unit, editor, deleteBackward);
58
47
  };
@@ -88,9 +77,8 @@ function deleteEmptyParagraph(unit, editor, deleteFunction) {
88
77
  if (entry) {
89
78
  const [paragraphOrHeading, path] = entry;
90
79
  const isTextEmpty = (0, _queries.isAncestorEmpty)(editor, paragraphOrHeading);
91
- // We ignore paragraphs/headings that are children of ul, ol, blockquote, tables, etc
92
80
  const isRootLevel = path.length === 1;
93
- const hasSiblings = editor.children.length > 1; // prevent editor from losing focus
81
+ const hasSiblings = editor.children.length > 1;
94
82
  if (isTextEmpty && isRootLevel && hasSiblings) {
95
83
  (0, _transforms.removeNodes)(editor, {
96
84
  at: path
@@ -124,11 +112,7 @@ function deleteEmptyParagraph(unit, editor, deleteFunction) {
124
112
  deleteFunction(unit);
125
113
  }
126
114
  }
127
- /**
128
- * To be compatible with the old behavior we need to treat each 2 consecutive
129
- * line breaks as a new paragraph when pasting as plain text (also known as
130
- * paste and match style in macOS)
131
- */ function fixPasteAsPlainText(editor) {
115
+ function fixPasteAsPlainText(editor) {
132
116
  editor.insertTextData = (data)=>{
133
117
  const text = data.getData('text/plain');
134
118
  if (!text) {
@@ -137,7 +121,6 @@ function deleteEmptyParagraph(unit, editor, deleteFunction) {
137
121
  const lines = text.split(/\n{2}/);
138
122
  let split = false;
139
123
  for (const line of lines){
140
- // empty lines
141
124
  if (/^(\r\n?|\n)$/.test(line)) {
142
125
  continue;
143
126
  }
@@ -9,11 +9,11 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- createTrackingPlugin: function() {
13
- return createTrackingPlugin;
14
- },
15
12
  getPastingSource: function() {
16
13
  return getPastingSource;
14
+ },
15
+ createTrackingPlugin: function() {
16
+ return createTrackingPlugin;
17
17
  }
18
18
  });
19
19
  const _utils = require("./utils");
@@ -39,7 +39,6 @@ function getPastingSource(data) {
39
39
  if (doc.querySelector('meta[content*="Microsoft Word"]')) {
40
40
  return 'Microsoft Word';
41
41
  }
42
- // TODO: MS Word Online doesn't give us specific tags, we might need to have a closer look at its tracking result since we are using generic values to identify it
43
42
  if (doc.querySelector('[style*="Arial_MSFontService"]') && (doc.querySelector('.TextRun') || doc.querySelector('.OutlineElement'))) {
44
43
  return 'Microsoft Word Online';
45
44
  }
@@ -77,7 +76,7 @@ const createTrackingPlugin = (onAction)=>{
77
76
  return {
78
77
  key: 'TrackingPlugin',
79
78
  withOverrides: (editor)=>{
80
- const { insertData } = editor;
79
+ const { insertData } = editor;
81
80
  editor.tracking = trackingActions;
82
81
  editor.insertData = (data)=>{
83
82
  const isCopyAndPaste = data.types.length !== 0;
@@ -8,9 +8,9 @@ Object.defineProperty(exports, "getCharacterCount", {
8
8
  return getCharacterCount;
9
9
  }
10
10
  });
11
- const _contentfulslatejsadapter = /*#__PURE__*/ _interop_require_wildcard(require("@contentful/contentful-slatejs-adapter"));
11
+ const _contentfulslatejsadapter = _interop_require_wildcard(require("@contentful/contentful-slatejs-adapter"));
12
12
  const _richtextplaintextrenderer = require("@contentful/rich-text-plain-text-renderer");
13
- const _Schema = /*#__PURE__*/ _interop_require_default(require("../../constants/Schema"));
13
+ const _Schema = _interop_require_default(require("../../constants/Schema"));
14
14
  function _interop_require_default(obj) {
15
15
  return obj && obj.__esModule ? obj : {
16
16
  default: obj
@@ -37,9 +37,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
37
37
  if (cache && cache.has(obj)) {
38
38
  return cache.get(obj);
39
39
  }
40
- var newObj = {
41
- __proto__: null
42
- };
40
+ var newObj = {};
43
41
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
44
42
  for(var key in obj){
45
43
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -59,7 +57,6 @@ function _interop_require_wildcard(obj, nodeInterop) {
59
57
  }
60
58
  function getCharacterCount(editor) {
61
59
  const document = _contentfulslatejsadapter.toContentfulDocument({
62
- // eslint-disable-next-line -- parameter type is not exported @typescript-eslint/no-explicit-any
63
60
  document: editor.children,
64
61
  schema: _Schema.default
65
62
  });
@@ -14,8 +14,6 @@ const createVoidsPlugin = ()=>({
14
14
  key: 'VoidsPlugin',
15
15
  exitBreak: [
16
16
  {
17
- // Inserts a new paragraph *before* a void element if it's the very first
18
- // node on the editor
19
17
  hotkey: 'enter',
20
18
  before: true,
21
19
  query: {
@@ -23,10 +21,7 @@ const createVoidsPlugin = ()=>({
23
21
  }
24
22
  },
25
23
  {
26
- // Inserts a new paragraph on enter when a void element is focused
27
24
  hotkey: 'enter',
28
- // exploit the internal use of Array.slice(0, level + 1) by the exitBreak plugin
29
- // to stay in the parent element
30
25
  level: -2,
31
26
  query: {
32
27
  filter: ([node, path])=>!((0, _editor.isRootLevel)(path) && (0, _queries.isFirstChildPath)(path)) && !!node.isVoid
@@ -18,7 +18,6 @@ const transformVoid = (editor, [node, path])=>{
18
18
  }
19
19
  ]
20
20
  };
21
- // A workaround because Slate doesn't allow adjusting void nodes children
22
21
  (0, _transforms.removeNodes)(editor, {
23
22
  at: path
24
23
  });
@@ -9,11 +9,11 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- disableCorePlugins: function() {
13
- return disableCorePlugins;
14
- },
15
12
  getPlugins: function() {
16
13
  return getPlugins;
14
+ },
15
+ disableCorePlugins: function() {
16
+ return disableCorePlugins;
17
17
  }
18
18
  });
19
19
  const _plateserializerdocx = require("@udecode/plate-serializer-docx");
@@ -42,15 +42,11 @@ const _TrailingParagraph = require("./TrailingParagraph");
42
42
  const _Voids = require("./Voids");
43
43
  const getPlugins = (sdk, onAction, restrictedMarks)=>[
44
44
  (0, _plateserializerdocx.createDeserializeDocxPlugin)(),
45
- // Tracking - This should come first so all plugins below will have access to `editor.tracking`
46
45
  (0, _Tracking.createTrackingPlugin)(onAction),
47
- // Global / Global shortcuts
48
46
  (0, _DragAndDrop.createDragAndDropPlugin)(),
49
- // Enable command palette plugin only, if at least action type is allowed
50
47
  ...Object.values((0, _useCommands.isCommandPromptPluginEnabled)(sdk)).some(Boolean) ? [
51
48
  (0, _CommandPalette.createCommandPalettePlugin)()
52
49
  ] : [],
53
- // Block Elements
54
50
  (0, _Paragraph.createParagraphPlugin)(),
55
51
  (0, _List.createListPlugin)(),
56
52
  (0, _Hr.createHrPlugin)(),
@@ -60,28 +56,20 @@ const getPlugins = (sdk, onAction, restrictedMarks)=>[
60
56
  (0, _EmbeddedEntityBlock.createEmbeddedEntryBlockPlugin)(sdk),
61
57
  (0, _EmbeddedEntityBlock.createEmbeddedAssetBlockPlugin)(sdk),
62
58
  (0, _EmbeddedResourceBlock.createEmbeddedResourceBlockPlugin)(sdk),
63
- // Inline elements
64
59
  (0, _Hyperlink.createHyperlinkPlugin)(sdk),
65
60
  (0, _EmbeddedEntityInline.createEmbeddedEntityInlinePlugin)(sdk),
66
61
  (0, _EmbeddedResourceInline.createEmbeddedResourceInlinePlugin)(sdk),
67
- // Marks
68
62
  (0, _Marks.createMarksPlugin)(),
69
- // Other
70
63
  (0, _TrailingParagraph.createTrailingParagraphPlugin)(),
71
64
  (0, _Text.createTextPlugin)(restrictedMarks),
72
65
  (0, _Voids.createVoidsPlugin)(),
73
66
  (0, _SelectOnBackspace.createSelectOnBackspacePlugin)(),
74
- // Pasting content from other sources
75
67
  (0, _PasteHTML.createPasteHTMLPlugin)(),
76
- // These plugins drive their configurations from the list of plugins
77
- // above. They MUST come last.
78
68
  (0, _Break.createSoftBreakPlugin)(),
79
69
  (0, _Break.createExitBreakPlugin)(),
80
70
  (0, _Break.createResetNodePlugin)(),
81
71
  (0, _Normalizer.createNormalizerPlugin)()
82
72
  ];
83
73
  const disableCorePlugins = {
84
- // Note: Enabled by default since v9.0.0 but it causes Cypress's
85
- // .click() command to fail
86
74
  eventEditor: true
87
75
  };
@@ -9,14 +9,14 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- EmbeddedBlockToolbarIcon: function() {
13
- return EmbeddedBlockToolbarIcon;
14
- },
15
12
  styles: function() {
16
13
  return styles;
14
+ },
15
+ EmbeddedBlockToolbarIcon: function() {
16
+ return EmbeddedBlockToolbarIcon;
17
17
  }
18
18
  });
19
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
19
+ const _react = _interop_require_wildcard(require("react"));
20
20
  const _f36components = require("@contentful/f36-components");
21
21
  const _f36icons = require("@contentful/f36-icons");
22
22
  const _richtexttypes = require("@contentful/rich-text-types");
@@ -46,9 +46,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
46
46
  if (cache && cache.has(obj)) {
47
47
  return cache.get(obj);
48
48
  }
49
- var newObj = {
50
- __proto__: null
51
- };
49
+ var newObj = {};
52
50
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
53
51
  for(var key in obj){
54
52
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -71,7 +69,7 @@ const styles = {
71
69
  marginRight: '10px'
72
70
  })
73
71
  };
74
- function EmbeddedBlockToolbarIcon({ isDisabled, nodeType, onClose }) {
72
+ function EmbeddedBlockToolbarIcon({ isDisabled , nodeType , onClose }) {
75
73
  const editor = (0, _ContentfulEditorProvider.useContentfulEditor)();
76
74
  const sdk = (0, _SdkProvider.useSdkContext)();
77
75
  const handleClick = async (event)=>{
@@ -88,19 +86,19 @@ function EmbeddedBlockToolbarIcon({ isDisabled, nodeType, onClose }) {
88
86
  };
89
87
  const type = getEntityTypeFromNodeType(nodeType);
90
88
  const baseClass = `rich-text__${nodeType}`;
91
- return /*#__PURE__*/ _react.createElement(_f36components.Menu.Item, {
89
+ return _react.createElement(_f36components.Menu.Item, {
92
90
  disabled: isDisabled,
93
91
  className: `${baseClass}-list-item`,
94
92
  onClick: handleClick,
95
93
  testId: `toolbar-toggle-${nodeType}`
96
- }, /*#__PURE__*/ _react.createElement(_f36components.Flex, {
94
+ }, _react.createElement(_f36components.Flex, {
97
95
  alignItems: "center",
98
96
  flexDirection: "row"
99
- }, /*#__PURE__*/ _react.createElement(_f36components.Icon, {
97
+ }, _react.createElement(_f36components.Icon, {
100
98
  as: type === 'Asset' ? _f36icons.AssetIcon : _f36icons.EmbeddedEntryBlockIcon,
101
99
  className: `rich-text__embedded-entry-list-icon ${styles.icon}`,
102
100
  variant: "secondary"
103
- }), /*#__PURE__*/ _react.createElement("span", null, type, nodeType == _richtexttypes.BLOCKS.EMBEDDED_RESOURCE && /*#__PURE__*/ _react.createElement(_ResourceNewBadge.ResourceNewBadge, null))));
101
+ }), _react.createElement("span", null, type, nodeType == _richtexttypes.BLOCKS.EMBEDDED_RESOURCE && _react.createElement(_ResourceNewBadge.ResourceNewBadge, null))));
104
102
  }
105
103
  function getEntityTypeFromNodeType(nodeType) {
106
104
  const words = nodeType.toLowerCase().split('-');
@@ -20,7 +20,7 @@ _export(exports, {
20
20
  }
21
21
  });
22
22
  const _richtexttypes = require("@contentful/rich-text-types");
23
- const _ishotkey = /*#__PURE__*/ _interop_require_default(require("is-hotkey"));
23
+ const _ishotkey = _interop_require_default(require("is-hotkey"));
24
24
  const _config = require("../../helpers/config");
25
25
  const _editor = require("../../helpers/editor");
26
26
  const _sdkNavigatorSlideIn = require("../../helpers/sdkNavigatorSlideIn");
@@ -31,7 +31,7 @@ function _interop_require_default(obj) {
31
31
  };
32
32
  }
33
33
  function getWithEmbeddedBlockEvents(nodeType, sdk) {
34
- return (editor, { options: { hotkey } })=>(event)=>{
34
+ return (editor, { options: { hotkey } })=>(event)=>{
35
35
  const [, pathToSelectedElement] = (0, _editor.getNodeEntryFromSelection)(editor, nodeType);
36
36
  if (pathToSelectedElement) {
37
37
  const isDelete = event.key === 'Delete';
@@ -57,14 +57,14 @@ async function selectEntityAndInsert(nodeType, sdk, editor, logAction) {
57
57
  logAction('openCreateEmbedDialog', {
58
58
  nodeType
59
59
  });
60
- const { field, dialogs } = sdk;
60
+ const { field , dialogs } = sdk;
61
61
  const baseConfig = (0, _config.newEntitySelectorConfigFromRichTextField)(field, nodeType);
62
62
  const selectEntity = baseConfig.entityType === 'Asset' ? dialogs.selectSingleAsset : dialogs.selectSingleEntry;
63
63
  const config = {
64
64
  ...baseConfig,
65
65
  withCreate: true
66
66
  };
67
- const { selection } = editor;
67
+ const { selection } = editor;
68
68
  const rteSlide = (0, _sdkNavigatorSlideIn.watchCurrentSlide)(sdk.navigator);
69
69
  const entity = await selectEntity(config);
70
70
  if (!entity) {
@@ -72,8 +72,6 @@ async function selectEntityAndInsert(nodeType, sdk, editor, logAction) {
72
72
  nodeType
73
73
  });
74
74
  } else {
75
- // Selection prevents incorrect position of inserted ref when RTE doesn't have focus
76
- // (i.e. when using hotkeys and slide-in)
77
75
  (0, _internal.select)(editor, selection);
78
76
  insertBlock(editor, nodeType, entity);
79
77
  ensureFollowingParagraph(editor, [
@@ -84,8 +82,6 @@ async function selectEntityAndInsert(nodeType, sdk, editor, logAction) {
84
82
  nodeType
85
83
  });
86
84
  }
87
- // If user chose to create a new entity, this might open slide-in to edit the
88
- // entity. In this case, no point in focusing RTE which is now in the slide below.
89
85
  rteSlide.onActive(()=>{
90
86
  rteSlide.unwatch();
91
87
  (0, _editor.focus)(editor);
@@ -95,17 +91,15 @@ async function selectResourceEntityAndInsert(sdk, editor, logAction) {
95
91
  logAction('openCreateEmbedDialog', {
96
92
  nodeType: _richtexttypes.BLOCKS.EMBEDDED_RESOURCE
97
93
  });
98
- const { field, dialogs } = sdk;
94
+ const { field , dialogs } = sdk;
99
95
  const config = (0, _config.newResourceEntitySelectorConfigFromRichTextField)(field, _richtexttypes.BLOCKS.EMBEDDED_RESOURCE);
100
- const { selection } = editor;
96
+ const { selection } = editor;
101
97
  const entity = await dialogs.selectSingleResourceEntry(config);
102
98
  if (!entity) {
103
99
  logAction('cancelCreateEmbedDialog', {
104
100
  nodeType: _richtexttypes.BLOCKS.EMBEDDED_RESOURCE
105
101
  });
106
102
  } else {
107
- // Selection prevents incorrect position of inserted ref when RTE doesn't have focus
108
- // (i.e. when using hotkeys and slide-in)
109
103
  (0, _internal.select)(editor, selection);
110
104
  insertBlock(editor, _richtexttypes.BLOCKS.EMBEDDED_RESOURCE, entity);
111
105
  ensureFollowingParagraph(editor, [
@@ -116,7 +110,6 @@ async function selectResourceEntityAndInsert(sdk, editor, logAction) {
116
110
  });
117
111
  }
118
112
  }
119
- // TODO: incorporate this logic inside the trailingParagraph plugin instead
120
113
  function ensureFollowingParagraph(editor, nodeTypes) {
121
114
  const entityBlock = (0, _internal.getAboveNode)(editor, {
122
115
  match: {
@@ -129,8 +122,6 @@ function ensureFollowingParagraph(editor, nodeTypes) {
129
122
  const level = entityBlock[1].length - 1;
130
123
  const lastNode = (0, _internal.getLastNodeByLevel)(editor, level);
131
124
  const isTextContainer = _richtexttypes.TEXT_CONTAINERS.includes(lastNode?.[0].type ?? '');
132
- // If the new block isn't followed by a sibling text container (e.g. paragraph)
133
- // we insert a new empty one. Level 0 is handled by the trailingParagraph plugin
134
125
  if (level !== 0 && !isTextContainer) {
135
126
  (0, _editor.insertEmptyParagraph)(editor);
136
127
  }
@@ -166,7 +157,6 @@ const createNode = (nodeType, entity)=>{
166
157
  isVoid: true
167
158
  };
168
159
  };
169
- // TODO: DRY up copied code from HR
170
160
  function insertBlock(editor, nodeType, entity) {
171
161
  if (!editor?.selection) return;
172
162
  const linkedEntityBlock = createNode(nodeType, entity);
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "EmbeddedInlineToolbarIcon", {
8
8
  return EmbeddedInlineToolbarIcon;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
11
+ const _react = _interop_require_wildcard(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
13
  const _f36icons = require("@contentful/f36-icons");
14
- const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
14
+ const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
15
15
  const _richtexttypes = require("@contentful/rich-text-types");
16
16
  const _emotion = require("emotion");
17
17
  const _ContentfulEditorProvider = require("../../ContentfulEditorProvider");
@@ -45,9 +45,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
45
45
  if (cache && cache.has(obj)) {
46
46
  return cache.get(obj);
47
47
  }
48
- var newObj = {
49
- __proto__: null
50
- };
48
+ var newObj = {};
51
49
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
52
50
  for(var key in obj){
53
51
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -78,7 +76,7 @@ const styles = {
78
76
  }
79
77
  })
80
78
  };
81
- function EmbeddedInlineToolbarIcon({ onClose, nodeType, isDisabled }) {
79
+ function EmbeddedInlineToolbarIcon({ onClose , nodeType , isDisabled }) {
82
80
  const editor = (0, _ContentfulEditorProvider.useContentfulEditor)();
83
81
  const sdk = (0, _SdkProvider.useSdkContext)();
84
82
  async function handleClick(event) {
@@ -92,16 +90,16 @@ function EmbeddedInlineToolbarIcon({ onClose, nodeType, isDisabled }) {
92
90
  }
93
91
  (0, _editor.moveToTheNextChar)(editor);
94
92
  }
95
- return /*#__PURE__*/ _react.createElement(_f36components.Menu.Item, {
93
+ return _react.createElement(_f36components.Menu.Item, {
96
94
  disabled: isDisabled,
97
95
  className: "rich-text__entry-link-block-button",
98
96
  testId: `toolbar-toggle-${nodeType}`,
99
97
  onClick: handleClick
100
- }, /*#__PURE__*/ _react.createElement(_f36components.Flex, {
98
+ }, _react.createElement(_f36components.Flex, {
101
99
  alignItems: "center",
102
100
  flexDirection: "row"
103
- }, /*#__PURE__*/ _react.createElement(_f36icons.EmbeddedEntryInlineIcon, {
101
+ }, _react.createElement(_f36icons.EmbeddedEntryInlineIcon, {
104
102
  variant: "secondary",
105
103
  className: `rich-text__embedded-entry-list-icon ${styles.icon}`
106
- }), /*#__PURE__*/ _react.createElement("span", null, "Inline entry", nodeType == _richtexttypes.INLINES.EMBEDDED_RESOURCE && /*#__PURE__*/ _react.createElement(_ResourceNewBadge.ResourceNewBadge, null))));
104
+ }), _react.createElement("span", null, "Inline entry", nodeType == _richtexttypes.INLINES.EMBEDDED_RESOURCE && _react.createElement(_ResourceNewBadge.ResourceNewBadge, null))));
107
105
  }