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

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 +3 -3
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "LinkedEntityInline", {
8
8
  return LinkedEntityInline;
9
9
  }
10
10
  });
11
- const _react = _interop_require_wildcard(require("react"));
11
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
12
12
  const _slatereact = require("slate-react");
13
13
  const _ContentfulEditorProvider = require("../../ContentfulEditorProvider");
14
14
  const _editor = require("../../helpers/editor");
@@ -39,7 +39,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
39
39
  if (cache && cache.has(obj)) {
40
40
  return cache.get(obj);
41
41
  }
42
- var newObj = {};
42
+ var newObj = {
43
+ __proto__: null
44
+ };
43
45
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
44
46
  for(var key in obj){
45
47
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -58,13 +60,13 @@ function _interop_require_wildcard(obj, nodeInterop) {
58
60
  return newObj;
59
61
  }
60
62
  function LinkedEntityInline(props) {
61
- const { attributes , children , element } = props;
62
- const { onEntityFetchComplete } = (0, _linkstracking.useLinkTracking)();
63
+ const { attributes, children, element } = props;
64
+ const { onEntityFetchComplete } = (0, _linkstracking.useLinkTracking)();
63
65
  const isSelected = (0, _slatereact.useSelected)();
64
66
  const editor = (0, _ContentfulEditorProvider.useContentfulEditor)();
65
67
  const sdk = (0, _SdkProvider.useSdkContext)();
66
68
  const isDisabled = (0, _slatereact.useReadOnly)();
67
- const { id: entryId } = element.data.target.sys;
69
+ const { id: entryId } = element.data.target.sys;
68
70
  function handleEditClick() {
69
71
  return sdk.navigator.openEntry(entryId, {
70
72
  slideIn: {
@@ -81,9 +83,9 @@ function LinkedEntityInline(props) {
81
83
  at: pathToElement
82
84
  });
83
85
  }
84
- return _react.createElement(_LinkedInlineWrapper.LinkedInlineWrapper, {
86
+ return /*#__PURE__*/ _react.createElement(_LinkedInlineWrapper.LinkedInlineWrapper, {
85
87
  attributes: attributes,
86
- card: _react.createElement(_FetchingWrappedInlineEntryCard.FetchingWrappedInlineEntryCard, {
88
+ card: /*#__PURE__*/ _react.createElement(_FetchingWrappedInlineEntryCard.FetchingWrappedInlineEntryCard, {
87
89
  sdk: sdk,
88
90
  entryId: entryId,
89
91
  isSelected: isSelected,
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "LinkedResourceBlock", {
8
8
  return LinkedResourceBlock;
9
9
  }
10
10
  });
11
- const _react = _interop_require_default(require("react"));
11
+ const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
12
  const _slatereact = require("slate-react");
13
13
  const _ContentfulEditorProvider = require("../../ContentfulEditorProvider");
14
14
  const _internal = require("../../internal");
@@ -22,8 +22,8 @@ function _interop_require_default(obj) {
22
22
  };
23
23
  }
24
24
  function LinkedResourceBlock(props) {
25
- const { attributes , children , element } = props;
26
- const { onEntityFetchComplete } = (0, _linkstracking.useLinkTracking)();
25
+ const { attributes, children, element } = props;
26
+ const { onEntityFetchComplete } = (0, _linkstracking.useLinkTracking)();
27
27
  const isSelected = (0, _slatereact.useSelected)();
28
28
  const editor = (0, _ContentfulEditorProvider.useContentfulEditor)();
29
29
  const sdk = (0, _SdkProvider.useSdkContext)();
@@ -39,10 +39,10 @@ function LinkedResourceBlock(props) {
39
39
  editor,
40
40
  element
41
41
  ]);
42
- return _react.default.createElement(_LinkedBlockWrapper.LinkedBlockWrapper, {
42
+ return /*#__PURE__*/ _react.default.createElement(_LinkedBlockWrapper.LinkedBlockWrapper, {
43
43
  attributes: attributes,
44
44
  link: element.data.target,
45
- card: _react.default.createElement(_FetchingWrappedResourceCard.FetchingWrappedResourceCard, {
45
+ card: /*#__PURE__*/ _react.default.createElement(_FetchingWrappedResourceCard.FetchingWrappedResourceCard, {
46
46
  sdk: sdk,
47
47
  link: link,
48
48
  isDisabled: isDisabled,
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "FetchingWrappedResourceInlineCard", {
8
8
  return FetchingWrappedResourceInlineCard;
9
9
  }
10
10
  });
11
- const _react = _interop_require_wildcard(require("react"));
11
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
13
  const _fieldeditorreference = require("@contentful/field-editor-reference");
14
14
  const _fieldeditorshared = require("@contentful/field-editor-shared");
@@ -35,7 +35,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
35
35
  if (cache && cache.has(obj)) {
36
36
  return cache.get(obj);
37
37
  }
38
- var newObj = {};
38
+ var newObj = {
39
+ __proto__: null
40
+ };
39
41
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
40
42
  for(var key in obj){
41
43
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -53,10 +55,10 @@ function _interop_require_wildcard(obj, nodeInterop) {
53
55
  }
54
56
  return newObj;
55
57
  }
56
- const { getEntryTitle , getEntryStatus } = _fieldeditorshared.entityHelpers;
58
+ const { getEntryTitle, getEntryStatus } = _fieldeditorshared.entityHelpers;
57
59
  function FetchingWrappedResourceInlineCard(props) {
58
- const { link , onEntityFetchComplete } = props;
59
- const { data , status: requestStatus } = (0, _fieldeditorreference.useResource)(link.linkType, link.urn);
60
+ const { link, onEntityFetchComplete } = props;
61
+ const { data, status: requestStatus } = (0, _fieldeditorreference.useResource)(link.linkType, link.urn);
60
62
  _react.useEffect(()=>{
61
63
  if (requestStatus === 'success') {
62
64
  onEntityFetchComplete?.();
@@ -66,18 +68,18 @@ function FetchingWrappedResourceInlineCard(props) {
66
68
  requestStatus
67
69
  ]);
68
70
  if (requestStatus === 'error') {
69
- return _react.createElement(_f36components.InlineEntryCard, {
71
+ return /*#__PURE__*/ _react.createElement(_f36components.InlineEntryCard, {
70
72
  title: "Entry missing or inaccessible",
71
73
  testId: _richtexttypes.INLINES.EMBEDDED_RESOURCE,
72
74
  isSelected: props.isSelected
73
75
  });
74
76
  }
75
77
  if (requestStatus === 'loading' || data === undefined) {
76
- return _react.createElement(_f36components.InlineEntryCard, {
78
+ return /*#__PURE__*/ _react.createElement(_f36components.InlineEntryCard, {
77
79
  isLoading: true
78
80
  });
79
81
  }
80
- const { resource: entry , contentType , defaultLocaleCode , space } = data;
82
+ const { resource: entry, contentType, defaultLocaleCode, space } = data;
81
83
  const title = getEntryTitle({
82
84
  entry,
83
85
  contentType,
@@ -87,18 +89,18 @@ function FetchingWrappedResourceInlineCard(props) {
87
89
  });
88
90
  const truncatedTitle = (0, _utils.truncateTitle)(title, 40);
89
91
  const status = getEntryStatus(entry.sys);
90
- return _react.createElement(_f36components.InlineEntryCard, {
92
+ return /*#__PURE__*/ _react.createElement(_f36components.InlineEntryCard, {
91
93
  testId: _richtexttypes.INLINES.EMBEDDED_RESOURCE,
92
94
  isSelected: props.isSelected,
93
95
  title: `${contentType.name}: ${truncatedTitle} (Space: ${space.name} – Env.: ${entry.sys.environment.sys.id})`,
94
96
  status: status,
95
97
  actions: [
96
- _react.createElement(_f36components.MenuItem, {
98
+ /*#__PURE__*/ _react.createElement(_f36components.MenuItem, {
97
99
  key: "remove",
98
100
  onClick: props.onRemove,
99
101
  disabled: props.isDisabled,
100
102
  testId: "delete"
101
103
  }, "Remove")
102
104
  ]
103
- }, _react.createElement(_f36components.Text, null, title));
105
+ }, /*#__PURE__*/ _react.createElement(_f36components.Text, null, title));
104
106
  }
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "LinkedResourceInline", {
8
8
  return LinkedResourceInline;
9
9
  }
10
10
  });
11
- const _react = _interop_require_default(require("react"));
11
+ const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
12
  const _slatereact = require("slate-react");
13
13
  const _ContentfulEditorProvider = require("../../ContentfulEditorProvider");
14
14
  const _internal = require("../../internal");
@@ -22,8 +22,8 @@ function _interop_require_default(obj) {
22
22
  };
23
23
  }
24
24
  function LinkedResourceInline(props) {
25
- const { attributes , children , element } = props;
26
- const { onEntityFetchComplete } = (0, _linkstracking.useLinkTracking)();
25
+ const { attributes, children, element } = props;
26
+ const { onEntityFetchComplete } = (0, _linkstracking.useLinkTracking)();
27
27
  const isSelected = (0, _slatereact.useSelected)();
28
28
  const editor = (0, _ContentfulEditorProvider.useContentfulEditor)();
29
29
  const sdk = (0, _SdkProvider.useSdkContext)();
@@ -36,10 +36,10 @@ function LinkedResourceInline(props) {
36
36
  at: pathToElement
37
37
  });
38
38
  }
39
- return _react.default.createElement(_LinkedInlineWrapper.LinkedInlineWrapper, {
39
+ return /*#__PURE__*/ _react.default.createElement(_LinkedInlineWrapper.LinkedInlineWrapper, {
40
40
  attributes: attributes,
41
41
  link: element.data.target,
42
- card: _react.default.createElement(_FetchingWrappedResourceInlineCard.FetchingWrappedResourceInlineCard, {
42
+ card: /*#__PURE__*/ _react.default.createElement(_FetchingWrappedResourceInlineCard.FetchingWrappedResourceInlineCard, {
43
43
  sdk: sdk,
44
44
  link: link,
45
45
  isDisabled: isDisabled,
@@ -1,30 +1,30 @@
1
- "use strict";
1
+ /* eslint-disable react/no-unknown-property */ /** @jsx jsx */ "use strict";
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  const _testutils = require("../../../test-utils");
6
6
  describe('normalization', ()=>{
7
7
  it('can contain inline entries & hyperlinks', ()=>{
8
- const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some text before", (0, _testutils.jsx)("hinline", {
8
+ const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some text before", /*#__PURE__*/ (0, _testutils.jsx)("hinline", {
9
9
  type: "Entry",
10
10
  id: "inline-entry"
11
- }), (0, _testutils.jsx)("hlink", {
11
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
12
12
  uri: "https://contentful.com"
13
- }), (0, _testutils.jsx)("hlink", {
13
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
14
14
  entry: "entry-id"
15
- }), (0, _testutils.jsx)("hlink", {
15
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
16
16
  resource: "resource-urn"
17
- }), (0, _testutils.jsx)("hlink", {
17
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
18
18
  asset: "asset-id"
19
- }), "some text after"), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
19
+ }), "some text after"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
20
20
  (0, _testutils.assertOutput)({
21
21
  input,
22
22
  expected: input
23
23
  });
24
24
  });
25
25
  it('unwraps nested paragraphs', ()=>{
26
- const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "one", ' ', (0, _testutils.jsx)("hp", null, "two ", (0, _testutils.jsx)("hp", null, "three ")), "four"));
27
- const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "one two three four"), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
26
+ const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "one", ' ', /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "two ", /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "three ")), "four"));
27
+ const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "one two three four"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
28
28
  (0, _testutils.assertOutput)({
29
29
  input,
30
30
  expected
@@ -32,84 +32,84 @@ describe('normalization', ()=>{
32
32
  });
33
33
  describe('lifts other invalid children', ()=>{
34
34
  it('block void elements', ()=>{
35
- const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, (0, _testutils.jsx)("hembed", {
35
+ const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
36
36
  type: "Asset",
37
37
  id: "1"
38
- }), " start"), (0, _testutils.jsx)("hh1", null, "end ", (0, _testutils.jsx)("hembed", {
38
+ }), " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
39
39
  type: "Asset",
40
40
  id: "2"
41
- })), (0, _testutils.jsx)("hh1", null, "in ", (0, _testutils.jsx)("hembed", {
41
+ })), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
42
42
  type: "Asset",
43
43
  id: "3"
44
- }), " between"), (0, _testutils.jsx)("hh1", null, (0, _testutils.jsx)("hembed", {
44
+ }), " between"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
45
45
  type: "Entry",
46
46
  id: "1"
47
- }), " start"), (0, _testutils.jsx)("hh1", null, "end ", (0, _testutils.jsx)("hembed", {
47
+ }), " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
48
48
  type: "Entry",
49
49
  id: "2"
50
- })), (0, _testutils.jsx)("hh1", null, "in ", (0, _testutils.jsx)("hembed", {
50
+ })), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
51
51
  type: "Entry",
52
52
  id: "3"
53
- }), " between"), (0, _testutils.jsx)("hh1", null, (0, _testutils.jsx)("hhr", null), " start"), (0, _testutils.jsx)("hh1", null, "end ", (0, _testutils.jsx)("hhr", null)), (0, _testutils.jsx)("hh1", null, "in ", (0, _testutils.jsx)("hhr", null), " between"));
54
- const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hembed", {
53
+ }), " between"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end ", /*#__PURE__*/ (0, _testutils.jsx)("hhr", null)), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in ", /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), " between"));
54
+ const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
55
55
  type: "Asset",
56
56
  id: "1"
57
- }), (0, _testutils.jsx)("hh1", null, " start"), (0, _testutils.jsx)("hh1", null, "end "), (0, _testutils.jsx)("hembed", {
57
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
58
58
  type: "Asset",
59
59
  id: "2"
60
- }), (0, _testutils.jsx)("hh1", null, "in "), (0, _testutils.jsx)("hembed", {
60
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
61
61
  type: "Asset",
62
62
  id: "3"
63
- }), (0, _testutils.jsx)("hh1", null, " between"), (0, _testutils.jsx)("hembed", {
63
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, " between"), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
64
64
  type: "Entry",
65
65
  id: "1"
66
- }), (0, _testutils.jsx)("hh1", null, " start"), (0, _testutils.jsx)("hh1", null, "end "), (0, _testutils.jsx)("hembed", {
66
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
67
67
  type: "Entry",
68
68
  id: "2"
69
- }), (0, _testutils.jsx)("hh1", null, "in "), (0, _testutils.jsx)("hembed", {
69
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
70
70
  type: "Entry",
71
71
  id: "3"
72
- }), (0, _testutils.jsx)("hh1", null, " between"), (0, _testutils.jsx)("hhr", null), (0, _testutils.jsx)("hh1", null, " start"), (0, _testutils.jsx)("hh1", null, "end "), (0, _testutils.jsx)("hhr", null), (0, _testutils.jsx)("hh1", null, "in "), (0, _testutils.jsx)("hhr", null), (0, _testutils.jsx)("hh1", null, " between"), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
72
+ }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, " between"), /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end "), /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in "), /*#__PURE__*/ (0, _testutils.jsx)("hhr", null), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, " between"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
73
73
  (0, _testutils.assertOutput)({
74
74
  input,
75
75
  expected
76
76
  });
77
77
  });
78
78
  it('nested headings', ()=>{
79
- const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some", (0, _testutils.jsx)("hh1", null, (0, _testutils.jsx)("htext", {
79
+ const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", {
80
80
  bold: true,
81
81
  italic: true,
82
82
  underline: true
83
83
  }, "paragraph")), "text"));
84
- const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some"), (0, _testutils.jsx)("hh1", null, (0, _testutils.jsx)("htext", {
84
+ const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", {
85
85
  bold: true,
86
86
  italic: true,
87
87
  underline: true
88
- }, "paragraph")), (0, _testutils.jsx)("hh1", null, "text"), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
88
+ }, "paragraph")), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "text"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
89
89
  (0, _testutils.assertOutput)({
90
90
  input,
91
91
  expected
92
92
  });
93
93
  });
94
94
  it('handles quotes', ()=>{
95
- const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some", (0, _testutils.jsx)("hquote", null, (0, _testutils.jsx)("hp", null, "quote")), "text"));
96
- const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some"), (0, _testutils.jsx)("hquote", null, (0, _testutils.jsx)("hp", null, "quote")), (0, _testutils.jsx)("hh1", null, "text"), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
95
+ const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("hquote", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "quote")), "text"));
96
+ const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some"), /*#__PURE__*/ (0, _testutils.jsx)("hquote", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "quote")), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "text"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
97
97
  (0, _testutils.assertOutput)({
98
98
  input,
99
99
  expected
100
100
  });
101
101
  });
102
102
  it('handles lists', ()=>{
103
- const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some", (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, "list item"))), "text"));
104
- const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some"), (0, _testutils.jsx)("hul", null, (0, _testutils.jsx)("hli", null, (0, _testutils.jsx)("hp", null, "list item"))), (0, _testutils.jsx)("hh1", null, "text"), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
103
+ const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "list item"))), "text"));
104
+ const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some"), /*#__PURE__*/ (0, _testutils.jsx)("hul", null, /*#__PURE__*/ (0, _testutils.jsx)("hli", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "list item"))), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "text"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
105
105
  (0, _testutils.assertOutput)({
106
106
  input,
107
107
  expected
108
108
  });
109
109
  });
110
110
  it('handles tables', ()=>{
111
- const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some", (0, _testutils.jsx)("htable", null, (0, _testutils.jsx)("htr", null, (0, _testutils.jsx)("htd", null, (0, _testutils.jsx)("hp", null, "cell 1")), (0, _testutils.jsx)("htd", null, (0, _testutils.jsx)("hp", null, "cell 2")))), "text"));
112
- const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some"), (0, _testutils.jsx)("htable", null, (0, _testutils.jsx)("htr", null, (0, _testutils.jsx)("htd", null, (0, _testutils.jsx)("hp", null, "cell 1")), (0, _testutils.jsx)("htd", null, (0, _testutils.jsx)("hp", null, "cell 2")))), (0, _testutils.jsx)("hh1", null, "text"), (0, _testutils.jsx)("hp", null, (0, _testutils.jsx)("htext", null)));
111
+ const input = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some", /*#__PURE__*/ (0, _testutils.jsx)("htable", null, /*#__PURE__*/ (0, _testutils.jsx)("htr", null, /*#__PURE__*/ (0, _testutils.jsx)("htd", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "cell 1")), /*#__PURE__*/ (0, _testutils.jsx)("htd", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "cell 2")))), "text"));
112
+ const expected = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some"), /*#__PURE__*/ (0, _testutils.jsx)("htable", null, /*#__PURE__*/ (0, _testutils.jsx)("htr", null, /*#__PURE__*/ (0, _testutils.jsx)("htd", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "cell 1")), /*#__PURE__*/ (0, _testutils.jsx)("htd", null, /*#__PURE__*/ (0, _testutils.jsx)("hp", null, "cell 2")))), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "text"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
113
113
  (0, _testutils.assertOutput)({
114
114
  input,
115
115
  expected
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "HeadingComponents", {
8
8
  return HeadingComponents;
9
9
  }
10
10
  });
11
- const _react = _interop_require_wildcard(require("react"));
12
- const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
11
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
12
+ const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
13
13
  const _richtexttypes = require("@contentful/rich-text-types");
14
14
  const _emotion = require("emotion");
15
15
  function _interop_require_default(obj) {
@@ -38,7 +38,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
38
38
  if (cache && cache.has(obj)) {
39
39
  return cache.get(obj);
40
40
  }
41
- var newObj = {};
41
+ var newObj = {
42
+ __proto__: null
43
+ };
42
44
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
43
45
  for(var key in obj){
44
46
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -109,19 +111,20 @@ const styles = {
109
111
  `
110
112
  }
111
113
  };
114
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO: explain this disable
112
115
  function createHeading(Tag, block) {
113
116
  return function Heading(props) {
114
- return _react.createElement(Tag, {
117
+ return /*#__PURE__*/ _react.createElement(Tag, {
115
118
  ...props.attributes,
116
119
  className: (0, _emotion.cx)(styles.headings.root, styles.headings[block])
117
120
  }, props.children);
118
121
  };
119
122
  }
120
123
  const HeadingComponents = {
121
- [_richtexttypes.BLOCKS.HEADING_1]: _react.memo(createHeading('h1', _richtexttypes.BLOCKS.HEADING_1)),
122
- [_richtexttypes.BLOCKS.HEADING_2]: _react.memo(createHeading('h2', _richtexttypes.BLOCKS.HEADING_2)),
123
- [_richtexttypes.BLOCKS.HEADING_3]: _react.memo(createHeading('h3', _richtexttypes.BLOCKS.HEADING_3)),
124
- [_richtexttypes.BLOCKS.HEADING_4]: _react.memo(createHeading('h4', _richtexttypes.BLOCKS.HEADING_4)),
125
- [_richtexttypes.BLOCKS.HEADING_5]: _react.memo(createHeading('h5', _richtexttypes.BLOCKS.HEADING_5)),
126
- [_richtexttypes.BLOCKS.HEADING_6]: _react.memo(createHeading('h6', _richtexttypes.BLOCKS.HEADING_6))
124
+ [_richtexttypes.BLOCKS.HEADING_1]: /*#__PURE__*/ _react.memo(createHeading('h1', _richtexttypes.BLOCKS.HEADING_1)),
125
+ [_richtexttypes.BLOCKS.HEADING_2]: /*#__PURE__*/ _react.memo(createHeading('h2', _richtexttypes.BLOCKS.HEADING_2)),
126
+ [_richtexttypes.BLOCKS.HEADING_3]: /*#__PURE__*/ _react.memo(createHeading('h3', _richtexttypes.BLOCKS.HEADING_3)),
127
+ [_richtexttypes.BLOCKS.HEADING_4]: /*#__PURE__*/ _react.memo(createHeading('h4', _richtexttypes.BLOCKS.HEADING_4)),
128
+ [_richtexttypes.BLOCKS.HEADING_5]: /*#__PURE__*/ _react.memo(createHeading('h5', _richtexttypes.BLOCKS.HEADING_5)),
129
+ [_richtexttypes.BLOCKS.HEADING_6]: /*#__PURE__*/ _react.memo(createHeading('h6', _richtexttypes.BLOCKS.HEADING_6))
127
130
  };
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "ToolbarHeadingButton", {
8
8
  return ToolbarHeadingButton;
9
9
  }
10
10
  });
11
- const _react = _interop_require_wildcard(require("react"));
11
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
13
  const _f36icons = require("@contentful/f36-icons");
14
- const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
14
+ const _f36tokens = /*#__PURE__*/ _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");
@@ -44,7 +44,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
44
44
  if (cache && cache.has(obj)) {
45
45
  return cache.get(obj);
46
46
  }
47
- var newObj = {};
47
+ var newObj = {
48
+ __proto__: null
49
+ };
48
50
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
49
51
  for(var key in obj){
50
52
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -112,7 +114,7 @@ function ToolbarHeadingButton(props) {
112
114
  }, [
113
115
  editor?.operations,
114
116
  editor?.selection
115
- ]);
117
+ ]); // eslint-disable-line -- TODO: explain this disable
116
118
  const [nodeTypesByEnablement, someHeadingsEnabled] = _react.useMemo(()=>{
117
119
  const nodeTypesByEnablement = Object.fromEntries(Object.keys(LABELS).map((nodeType)=>[
118
120
  nodeType,
@@ -133,7 +135,13 @@ function ToolbarHeadingButton(props) {
133
135
  setSelected(type);
134
136
  setOpen(false);
135
137
  const prevOnChange = editor.onChange;
136
- editor.onChange = (...args)=>{
138
+ /*
139
+ The focus might happen at point in time when
140
+ `toggleElement` (helper for toggleNodeType) changes aren't rendered yet, causing the browser
141
+ to place the cursor at the start of the text.
142
+ We wait for the change event before focusing
143
+ the editor again. This ensures the cursor is back at the previous
144
+ position.*/ editor.onChange = (...args)=>{
137
145
  (0, _editor.focus)(editor);
138
146
  editor.onChange = prevOnChange;
139
147
  prevOnChange(...args);
@@ -149,25 +157,25 @@ function ToolbarHeadingButton(props) {
149
157
  };
150
158
  }
151
159
  if (!editor) return null;
152
- return _react.createElement(_f36components.Menu, {
160
+ return /*#__PURE__*/ _react.createElement(_f36components.Menu, {
153
161
  isOpen: isOpen,
154
162
  onClose: ()=>setOpen(false)
155
- }, _react.createElement(_f36components.Menu.Trigger, null, _react.createElement(_f36components.Button, {
163
+ }, /*#__PURE__*/ _react.createElement(_f36components.Menu.Trigger, null, /*#__PURE__*/ _react.createElement(_f36components.Button, {
156
164
  size: "small",
157
165
  testId: "toolbar-heading-toggle",
158
166
  variant: "transparent",
159
- endIcon: _react.createElement(_f36icons.ChevronDownIcon, null),
167
+ endIcon: /*#__PURE__*/ _react.createElement(_f36icons.ChevronDownIcon, null),
160
168
  isDisabled: props.isDisabled,
161
169
  onClick: ()=>someHeadingsEnabled && setOpen(!isOpen)
162
- }, LABELS[selected])), _react.createElement(_f36components.Menu.List, {
170
+ }, LABELS[selected])), /*#__PURE__*/ _react.createElement(_f36components.Menu.List, {
163
171
  testId: "dropdown-heading-list"
164
- }, ' ', Object.keys(LABELS).map((nodeType)=>nodeTypesByEnablement[nodeType] && _react.createElement(_f36components.Menu.Item, {
172
+ }, ' ', Object.keys(LABELS).map((nodeType)=>nodeTypesByEnablement[nodeType] && /*#__PURE__*/ _react.createElement(_f36components.Menu.Item, {
165
173
  key: nodeType,
166
174
  isInitiallyFocused: selected === nodeType,
167
175
  onClick: handleOnSelectItem(nodeType),
168
176
  testId: `dropdown-option-${nodeType}`,
169
177
  disabled: props.isDisabled
170
- }, _react.createElement("span", {
178
+ }, /*#__PURE__*/ _react.createElement("span", {
171
179
  className: (0, _emotion.cx)(styles.dropdown.root, styles.dropdown[nodeType])
172
180
  }, LABELS[nodeType]))).filter(Boolean)));
173
181
  }
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "createHeadingPlugin", {
9
9
  }
10
10
  });
11
11
  const _richtexttypes = require("@contentful/rich-text-types");
12
- const _ishotkey = _interop_require_default(require("is-hotkey"));
12
+ const _ishotkey = /*#__PURE__*/ _interop_require_default(require("is-hotkey"));
13
13
  const _editor = require("../../helpers/editor");
14
14
  const _transformers = require("../../helpers/transformers");
15
15
  const _queries = require("../../internal/queries");
@@ -20,7 +20,7 @@ function _interop_require_default(obj) {
20
20
  default: obj
21
21
  };
22
22
  }
23
- const buildHeadingEventHandler = (type)=>(editor, { options: { hotkey } })=>(event)=>{
23
+ const buildHeadingEventHandler = (type)=>(editor, { options: { hotkey } })=>(event)=>{
24
24
  if (editor.selection && hotkey && (0, _ishotkey.default)(hotkey, event)) {
25
25
  const isActive = (0, _editor.isBlockSelected)(editor, type);
26
26
  editor.tracking.onShortcutAction(isActive ? 'remove' : 'insert', {
@@ -35,6 +35,7 @@ const buildHeadingEventHandler = (type)=>(editor, { options: { hotkey } })=>(e
35
35
  const createHeadingPlugin = ()=>({
36
36
  key: 'HeadingPlugin',
37
37
  softBreak: [
38
+ // create a new line with SHIFT+Enter inside a heading
38
39
  {
39
40
  hotkey: 'shift+enter',
40
41
  query: {
@@ -57,12 +58,16 @@ const createHeadingPlugin = ()=>({
57
58
  then: (editor)=>{
58
59
  return {
59
60
  exitBreak: [
61
+ // Pressing ENTER at the start or end of a heading text inserts a
62
+ // normal paragraph.
60
63
  {
61
64
  hotkey: 'enter',
62
65
  query: {
63
66
  allow: _richtexttypes.HEADINGS,
64
67
  end: true,
65
68
  start: true,
69
+ // Exclude headings inside lists as it interferes with the list's
70
+ // insertBreak implementation
66
71
  filter: ([, path])=>!(0, _queries.getAboveNode)(editor, {
67
72
  at: path,
68
73
  match: {
@@ -9,25 +9,25 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- withHrEvents: function() {
13
- return withHrEvents;
12
+ Hr: function() {
13
+ return Hr;
14
14
  },
15
15
  ToolbarHrButton: function() {
16
16
  return ToolbarHrButton;
17
17
  },
18
- Hr: function() {
19
- return Hr;
20
- },
21
18
  createHrPlugin: function() {
22
19
  return createHrPlugin;
20
+ },
21
+ withHrEvents: function() {
22
+ return withHrEvents;
23
23
  }
24
24
  });
25
- const _react = _interop_require_wildcard(require("react"));
25
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
26
26
  const _f36icons = require("@contentful/f36-icons");
27
- const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
27
+ const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
28
28
  const _richtexttypes = require("@contentful/rich-text-types");
29
29
  const _emotion = require("emotion");
30
- const _slatereact = _interop_require_wildcard(require("slate-react"));
30
+ const _slatereact = /*#__PURE__*/ _interop_require_wildcard(require("slate-react"));
31
31
  const _ContentfulEditorProvider = require("../../ContentfulEditorProvider");
32
32
  const _editor = require("../../helpers/editor");
33
33
  const _queries = require("../../internal/queries");
@@ -59,7 +59,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
59
59
  if (cache && cache.has(obj)) {
60
60
  return cache.get(obj);
61
61
  }
62
- var newObj = {};
62
+ var newObj = {
63
+ __proto__: null
64
+ };
63
65
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
64
66
  for(var key in obj){
65
67
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -140,29 +142,32 @@ function ToolbarHrButton(props) {
140
142
  };
141
143
  const hasText = !!(0, _queries.getText)(editor, editor.selection.focus.path);
142
144
  hasText ? (0, _transforms.insertNodes)(editor, hr) : (0, _transforms.setNodes)(editor, hr);
145
+ // Move focus to the next paragraph (added by TrailingParagraph plugin)
143
146
  (0, _editor.moveToTheNextLine)(editor);
144
147
  (0, _editor.focus)(editor);
145
148
  }
146
149
  if (!editor) return null;
147
- return _react.createElement(_ToolbarButton.ToolbarButton, {
150
+ return /*#__PURE__*/ _react.createElement(_ToolbarButton.ToolbarButton, {
148
151
  title: "HR",
149
152
  isDisabled: props.isDisabled,
150
153
  onClick: handleOnClick,
151
154
  testId: "hr-toolbar-button",
152
155
  isActive: (0, _editor.isBlockSelected)(editor, _richtexttypes.BLOCKS.HR)
153
- }, _react.createElement(_f36icons.HorizontalRuleIcon, null));
156
+ }, /*#__PURE__*/ _react.createElement(_f36icons.HorizontalRuleIcon, null));
154
157
  }
155
158
  function Hr(props) {
156
159
  const isSelected = _slatereact.useSelected();
157
160
  const isFocused = _slatereact.useFocused();
158
- return _react.createElement("div", {
161
+ return /*#__PURE__*/ _react.createElement("div", {
159
162
  ...props.attributes,
160
163
  className: styles.container,
164
+ // COMPAT: To make HR copyable in Safari, we verify this attribute below on `deserialize`
161
165
  "data-void-element": _richtexttypes.BLOCKS.HR
162
- }, _react.createElement("div", {
166
+ }, /*#__PURE__*/ _react.createElement("div", {
163
167
  draggable: true,
168
+ // Moving `contentEditable` to this div makes it to be selectable when being the first void element, e.g pressing ctrl + a to select everything
164
169
  contentEditable: false
165
- }, _react.createElement("hr", {
170
+ }, /*#__PURE__*/ _react.createElement("hr", {
166
171
  className: (0, _emotion.cx)(styles.hr, isSelected && isFocused ? styles.hrSelected : undefined)
167
172
  })), props.children);
168
173
  }