@contentful/field-editor-rich-text 3.16.8 → 3.16.11

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 +2 -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 +2 -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
@@ -3,27 +3,7 @@ import { normalize } from './transforms';
3
3
  export const createPlateEditor = (options = {})=>{
4
4
  return p.createPlateEditor(options);
5
5
  };
6
- /**
7
- * The only reason for this helper to exist is to run the initial normalization
8
- * before mounting the Plate editor component which in turn avoids the false
9
- * trigger of `onChange`.
10
- *
11
- * Background:
12
- *
13
- * Due to legacy behavior, it's possible to have "valid" RT document (based on
14
- * the schema from rich-text-types) that doesn't make sense. For example, links
15
- * with no text nodes?[1]. Solving that requires an initial normalization pass
16
- * which modifies the slate tree by definition -> triggering onChange.
17
- *
18
- * The initial onChange trigger is undesirable as the user may not have touched
19
- * the RT content yet or the editor is rendered as readonly.
20
- *
21
- * Ideally, we should not initialize the editor twice but that's the only
22
- * way that I could get this to work. Improvements are welcome.
23
- *
24
- * [1]: See cypress/e2e/rich-text/.../invalidDocumentNormalizable.js for more
25
- * examples.
26
- */ export const normalizeInitialValue = (options, initialValue)=>{
6
+ export const normalizeInitialValue = (options, initialValue)=>{
27
7
  const editor = createPlateEditor(options);
28
8
  if (initialValue) {
29
9
  editor.children = initialValue;
@@ -49,6 +29,5 @@ export const fromDOMPoint = (editor, domPoint, opts = {
49
29
  return p.toSlatePoint(editor, domPoint, opts);
50
30
  };
51
31
  export const mockPlugin = (plugin)=>{
52
- return p.mockPlugin(// TODO check if there is a way around this ugly casting
53
- plugin);
32
+ return p.mockPlugin(plugin);
54
33
  };
@@ -1,11 +1,6 @@
1
- /**
2
- * Re-exporting Plate/Slate queries (aka selectors) to reduce
3
- * the blast radius of version upgrades
4
- */ import * as p from '@udecode/plate-common';
1
+ import * as p from '@udecode/plate-common';
5
2
  import * as s from 'slate';
6
- /**
7
- * Get text content at location
8
- */ export const getText = (editor, at)=>{
3
+ export const getText = (editor, at)=>{
9
4
  return p.getEditorString(editor, at);
10
5
  };
11
6
  export const isText = (value)=>{
@@ -35,7 +30,6 @@ export const getNodeEntry = (editor, at, options)=>{
35
30
  export const getNodeEntries = (editor, options)=>{
36
31
  return p.getNodeEntries(editor, options);
37
32
  };
38
- // TODO: Ancestor may not be the correct type for root
39
33
  export const getNodeChildren = (root, path, options)=>{
40
34
  return p.getNodeChildren(root, path, options);
41
35
  };
@@ -46,7 +40,6 @@ export const someNode = (editor, options)=>{
46
40
  return p.someNode(editor, options);
47
41
  };
48
42
  export const getChildren = (entry)=>{
49
- // Node.children crashes when given a text node
50
43
  if (s.Text.isText(entry[0])) {
51
44
  return [];
52
45
  }
@@ -56,7 +49,6 @@ export const isFirstChild = (path)=>{
56
49
  return p.isFirstChild(path);
57
50
  };
58
51
  export const getDescendantNodeByPath = (root, path)=>{
59
- // @ts-expect-error
60
52
  return s.Node.get(root, path);
61
53
  };
62
54
  export const getNodeDescendants = (root, options)=>{
@@ -68,7 +60,6 @@ export const getNodeDescendants = (root, options)=>{
68
60
  export const isRangeCollapsed = (range)=>{
69
61
  return p.isCollapsed(range);
70
62
  };
71
- // TODO: simplify
72
63
  export const isRangeAcrossBlocks = (editor, options)=>{
73
64
  return p.isRangeAcrossBlocks(editor, options);
74
65
  };
@@ -1,8 +1,6 @@
1
1
  import * as p from '@udecode/plate-common';
2
2
  import { getEndPoint, isNode } from './queries';
3
- /**
4
- * Apply editor normalization rules
5
- */ export const normalize = (editor, options = {
3
+ export const normalize = (editor, options = {
6
4
  force: true
7
5
  })=>{
8
6
  return p.normalizeEditor(editor, options);
@@ -10,9 +8,7 @@ import { getEndPoint, isNode } from './queries';
10
8
  export const withoutNormalizing = (editor, fn)=>{
11
9
  return p.withoutNormalizing(editor, fn);
12
10
  };
13
- /**
14
- * Set the selection to a location
15
- */ export const setSelection = (editor, props)=>{
11
+ export const setSelection = (editor, props)=>{
16
12
  return p.setSelection(editor, props);
17
13
  };
18
14
  export const select = (editor, location)=>{
@@ -81,14 +77,7 @@ export const moveNodes = (editor, opts)=>{
81
77
  export const deleteFragment = (editor, options)=>{
82
78
  return p.deleteFragment(editor, options);
83
79
  };
84
- /**
85
- * Plate api doesn't allow to modify (easily) the editor value
86
- * programmatically after the editor instance is created.
87
- *
88
- * This function is inspired by:
89
- * https://github.com/udecode/plate/issues/1269#issuecomment-1057643622
90
- */ export const setEditorValue = (editor, nodes)=>{
91
- // Replaces editor content while keeping change history
80
+ export const setEditorValue = (editor, nodes)=>{
92
81
  withoutNormalizing(editor, ()=>{
93
82
  const children = [
94
83
  ...editor.children
@@ -1,3 +1 @@
1
- /**
2
- * https://plate.udecode.io/docs/typescript
3
- */ export { };
1
+ export { };
@@ -1,10 +1,9 @@
1
- /** @jsx jsx */ import { KEY_EXIT_BREAK } from '@udecode/plate-break';
1
+ import { KEY_EXIT_BREAK } from '@udecode/plate-break';
2
2
  import { jsx, createTestEditor, mockPlugin } from '../../test-utils';
3
3
  import { createExitBreakPlugin } from './createExitBreakPlugin';
4
4
  describe('Exit Break', ()=>{
5
- // https://slate-js.slack.com/archives/C013QHXSCG1/p1640853996467300
6
5
  it('derives its config from other plugins', ()=>{
7
- const input = /*#__PURE__*/ jsx("editor", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("htext", null)));
6
+ const input = jsx("editor", null, jsx("hp", null, jsx("htext", null)));
8
7
  const rules = [
9
8
  {
10
9
  hotkey: 'enter',
@@ -15,7 +14,7 @@ describe('Exit Break', ()=>{
15
14
  }
16
15
  }
17
16
  ];
18
- const { editor } = createTestEditor({
17
+ const { editor } = createTestEditor({
19
18
  input,
20
19
  plugins: [
21
20
  mockPlugin({}),
@@ -8,7 +8,6 @@ export const createResetNodePlugin = ()=>createDefaultResetNodePlugin({
8
8
  const rules = editor.plugins.flatMap((p)=>{
9
9
  return p.resetNode || [];
10
10
  });
11
- // set defaultType to Paragraph if not set
12
11
  for (const rule of rules){
13
12
  if (!rule.defaultType) {
14
13
  rule.defaultType = BLOCKS.PARAGRAPH;
@@ -1,9 +1,9 @@
1
- /** @jsx jsx */ import { KEY_SOFT_BREAK } from '@udecode/plate-break';
1
+ import { KEY_SOFT_BREAK } from '@udecode/plate-break';
2
2
  import { jsx, createTestEditor, mockPlugin } from '../../test-utils';
3
3
  import { createSoftBreakPlugin } from './createSoftBreakPlugin';
4
4
  describe('Soft Break', ()=>{
5
5
  it('derives its config from other plugins', ()=>{
6
- const input = /*#__PURE__*/ jsx("editor", null, /*#__PURE__*/ jsx("hp", null, /*#__PURE__*/ jsx("htext", null)));
6
+ const input = jsx("editor", null, jsx("hp", null, jsx("htext", null)));
7
7
  const rules = [
8
8
  {
9
9
  hotkey: 'ctrl+enter',
@@ -18,7 +18,7 @@ describe('Soft Break', ()=>{
18
18
  }
19
19
  }
20
20
  ];
21
- const { editor } = createTestEditor({
21
+ const { editor } = createTestEditor({
22
22
  input,
23
23
  plugins: [
24
24
  mockPlugin({
@@ -7,47 +7,47 @@ import { useSdkContext } from '../../../SdkProvider';
7
7
  import { useCommandList } from '../hooks/useCommandList';
8
8
  import { useCommands } from '../useCommands';
9
9
  import styles from './CommandList.styles';
10
- const Group = ({ commandGroup, selectedItem })=>/*#__PURE__*/ React.createElement("section", {
10
+ const Group = ({ commandGroup , selectedItem })=>React.createElement("section", {
11
11
  key: commandGroup.group
12
- }, /*#__PURE__*/ React.createElement(SectionHeading, {
12
+ }, React.createElement(SectionHeading, {
13
13
  as: "h3",
14
14
  marginBottom: "spacingS",
15
15
  marginTop: "spacingS",
16
16
  marginLeft: "spacingM",
17
17
  marginRight: "spacingM"
18
- }, commandGroup.group), commandGroup.commands.map((command)=>/*#__PURE__*/ React.createElement("button", {
18
+ }, commandGroup.group), commandGroup.commands.map((command)=>React.createElement("button", {
19
19
  key: command.id,
20
20
  id: command.id,
21
21
  className: cx(styles.menuItem, {
22
22
  [styles.menuItemSelected]: command.id === selectedItem
23
23
  }),
24
24
  onClick: command.callback
25
- }, command.label)), /*#__PURE__*/ React.createElement("hr", {
25
+ }, command.label)), React.createElement("hr", {
26
26
  className: styles.menuDivider,
27
27
  "aria-orientation": "horizontal"
28
28
  }));
29
- const Asset = ({ command, selectedItem })=>/*#__PURE__*/ React.createElement("button", {
29
+ const Asset = ({ command , selectedItem })=>React.createElement("button", {
30
30
  key: command.id,
31
31
  id: command.id,
32
32
  className: cx(styles.menuItem, {
33
33
  [styles.menuItemSelected]: command.id === selectedItem
34
34
  }),
35
35
  onClick: command.callback
36
- }, /*#__PURE__*/ React.createElement(Flex, {
36
+ }, React.createElement(Flex, {
37
37
  alignItems: "center",
38
38
  gap: "spacingS"
39
- }, command.thumbnail ? /*#__PURE__*/ React.createElement("img", {
39
+ }, command.thumbnail ? React.createElement("img", {
40
40
  width: "30",
41
41
  height: "30",
42
42
  src: command.thumbnail,
43
43
  alt: "",
44
44
  className: styles.thumbnail
45
- }) : /*#__PURE__*/ React.createElement(AssetIcon, {
45
+ }) : React.createElement(AssetIcon, {
46
46
  width: "30",
47
47
  height: "30",
48
48
  className: styles.thumbnail
49
- }), /*#__PURE__*/ React.createElement("span", null, command.label)));
50
- const Item = ({ command, selectedItem })=>/*#__PURE__*/ React.createElement("button", {
49
+ }), React.createElement("span", null, command.label)));
50
+ const Item = ({ command , selectedItem })=>React.createElement("button", {
51
51
  key: command.id,
52
52
  id: command.id,
53
53
  className: cx(styles.menuItem, {
@@ -55,70 +55,70 @@ const Item = ({ command, selectedItem })=>/*#__PURE__*/ React.createElement("but
55
55
  }),
56
56
  onClick: command.callback
57
57
  }, command.label);
58
- const CommandListItems = ({ commandItems, selectedItem })=>{
59
- return /*#__PURE__*/ React.createElement(React.Fragment, null, commandItems.map((command)=>{
60
- return 'group' in command ? /*#__PURE__*/ React.createElement(Group, {
58
+ const CommandListItems = ({ commandItems , selectedItem })=>{
59
+ return React.createElement(React.Fragment, null, commandItems.map((command)=>{
60
+ return 'group' in command ? React.createElement(Group, {
61
61
  key: command.group,
62
62
  commandGroup: command,
63
63
  selectedItem: selectedItem
64
- }) : command.asset ? /*#__PURE__*/ React.createElement(Asset, {
64
+ }) : command.asset ? React.createElement(Asset, {
65
65
  key: command.id,
66
66
  command: command,
67
67
  selectedItem: selectedItem
68
- }) : /*#__PURE__*/ React.createElement(Item, {
68
+ }) : React.createElement(Item, {
69
69
  key: command.id,
70
70
  command: command,
71
71
  selectedItem: selectedItem
72
72
  });
73
73
  }));
74
74
  };
75
- export const CommandList = ({ query, editor, textContainer })=>{
75
+ export const CommandList = ({ query , editor , textContainer })=>{
76
76
  const sdk = useSdkContext();
77
77
  const popoverContainer = React.useRef(null);
78
78
  const popper = usePopper(textContainer, popoverContainer?.current, {
79
79
  placement: 'bottom-start'
80
80
  });
81
81
  const commandItems = useCommands(sdk, query, editor);
82
- const { selectedItem, isOpen } = useCommandList(commandItems, popoverContainer);
82
+ const { selectedItem , isOpen } = useCommandList(commandItems, popoverContainer);
83
83
  if (!commandItems.length) {
84
84
  return null;
85
85
  }
86
- return /*#__PURE__*/ React.createElement("div", {
86
+ return React.createElement("div", {
87
87
  className: styles.container,
88
88
  tabIndex: -1,
89
89
  contentEditable: false
90
- }, /*#__PURE__*/ React.createElement("div", {
90
+ }, React.createElement("div", {
91
91
  role: "alert"
92
- }, /*#__PURE__*/ React.createElement(ScreenReaderOnly, null, "Richtext commands. Currently focused item: ", selectedItem, ". Press ", /*#__PURE__*/ React.createElement("kbd", null, "enter"), " to select, ", /*#__PURE__*/ React.createElement("kbd", null, "arrows"), " to navigate, ", /*#__PURE__*/ React.createElement("kbd", null, "escape"), " to close.")), /*#__PURE__*/ React.createElement(Portal, null, /*#__PURE__*/ React.createElement("div", {
92
+ }, React.createElement(ScreenReaderOnly, null, "Richtext commands. Currently focused item: ", selectedItem, ". Press ", React.createElement("kbd", null, "enter"), " to select, ", React.createElement("kbd", null, "arrows"), " to navigate, ", React.createElement("kbd", null, "escape"), " to close.")), React.createElement(Portal, null, React.createElement("div", {
93
93
  "aria-hidden": true,
94
94
  ref: popoverContainer,
95
95
  className: styles.menuPoper,
96
96
  style: popper.styles.popper,
97
97
  ...popper.attributes.popper
98
- }, /*#__PURE__*/ React.createElement(Popover, {
98
+ }, React.createElement(Popover, {
99
99
  isOpen: isOpen,
100
100
  usePortal: false,
101
- /* eslint-disable-next-line jsx-a11y/no-autofocus -- we want to keep focus on text input*/ autoFocus: false
102
- }, /*#__PURE__*/ React.createElement(Popover.Trigger, null, /*#__PURE__*/ React.createElement("span", null)), /*#__PURE__*/ React.createElement(Popover.Content, {
101
+ autoFocus: false
102
+ }, React.createElement(Popover.Trigger, null, React.createElement("span", null)), React.createElement(Popover.Content, {
103
103
  className: styles.menuContent,
104
104
  testId: "rich-text-commands"
105
- }, /*#__PURE__*/ React.createElement("header", {
105
+ }, React.createElement("header", {
106
106
  className: styles.menuHeader
107
- }, /*#__PURE__*/ React.createElement(SectionHeading, {
107
+ }, React.createElement(SectionHeading, {
108
108
  marginBottom: "none"
109
- }, "Richtext commands")), /*#__PURE__*/ React.createElement("div", {
109
+ }, "Richtext commands")), React.createElement("div", {
110
110
  className: styles.menuList,
111
111
  "data-test-id": "rich-text-commands-list"
112
- }, /*#__PURE__*/ React.createElement(CommandListItems, {
112
+ }, React.createElement(CommandListItems, {
113
113
  commandItems: commandItems,
114
114
  selectedItem: selectedItem
115
- })), /*#__PURE__*/ React.createElement("footer", {
115
+ })), React.createElement("footer", {
116
116
  className: styles.menuFooter
117
- }, /*#__PURE__*/ React.createElement(Stack, {
117
+ }, React.createElement(Stack, {
118
118
  as: "ul",
119
119
  margin: "none",
120
120
  padding: "none",
121
121
  spacing: "spacingS",
122
122
  className: styles.footerList
123
- }, /*#__PURE__*/ React.createElement("li", null, /*#__PURE__*/ React.createElement("kbd", null, "↑"), /*#__PURE__*/ React.createElement("kbd", null, "↓"), " to navigate"), /*#__PURE__*/ React.createElement("li", null, /*#__PURE__*/ React.createElement("kbd", null, "↵"), " to confirm"), /*#__PURE__*/ React.createElement("li", null, /*#__PURE__*/ React.createElement("kbd", null, "esc"), " to close"))))))));
123
+ }, React.createElement("li", null, React.createElement("kbd", null, "↑"), React.createElement("kbd", null, "↓"), " to navigate"), React.createElement("li", null, React.createElement("kbd", null, "↵"), " to confirm"), React.createElement("li", null, React.createElement("kbd", null, "esc"), " to close"))))))));
124
124
  };
@@ -14,13 +14,13 @@ export const CommandPrompt = (props)=>{
14
14
  ]);
15
15
  const editor = props.editor;
16
16
  const [textElement, setTextElement] = React.useState();
17
- return /*#__PURE__*/ React.createElement("span", {
17
+ return React.createElement("span", {
18
18
  className: styles.commandPrompt,
19
19
  ref: (e)=>{
20
20
  setTextElement(e);
21
21
  },
22
22
  ...props.attributes
23
- }, props.children, /*#__PURE__*/ React.createElement(CommandList, {
23
+ }, props.children, React.createElement(CommandList, {
24
24
  query: query,
25
25
  editor: editor,
26
26
  textContainer: textElement
@@ -1,17 +1,7 @@
1
1
  import { CommandPrompt } from './components/CommandPrompt';
2
2
  import { COMMAND_PROMPT } from './constants';
3
3
  import { createOnKeyDown } from './onKeyDown';
4
- /**
5
- * A command palette plugin (aka slash commands)
6
- *
7
- * How does it work?
8
- * * When the user presses the slash key, the editor will show a command palette
9
- * * When the user presses a key, the command palette will show the command suggestions
10
- * * When the user presses enter, the command palette will execute the command
11
- * * When the user presses escape, the command palette will hide
12
- * * When the user presses a letter, number, or space, the command palette will show the command suggestions
13
- * * When the user presses backspace, the command palette will remove the last character from the command string
14
- */ export const createCommandPalettePlugin = ()=>{
4
+ export const createCommandPalettePlugin = ()=>{
15
5
  return {
16
6
  key: COMMAND_PROMPT,
17
7
  type: COMMAND_PROMPT,
@@ -2,7 +2,6 @@ import * as React from 'react';
2
2
  import isHotkey from 'is-hotkey';
3
3
  export const useCommandList = (commandItems, container)=>{
4
4
  const [selectedItem, setSelectedItem] = React.useState(()=>{
5
- // select the first item on initial render
6
5
  if (!commandItems.length) {
7
6
  return '';
8
7
  }
@@ -55,7 +54,6 @@ export const useCommandList = (commandItems, container)=>{
55
54
  currBtn.click();
56
55
  }
57
56
  }
58
- //TODO: handle shift+enter, which must be detected using separate events
59
57
  }
60
58
  if (commandItems.length) {
61
59
  window.addEventListener('keydown', handleKeyDown);
@@ -5,10 +5,6 @@ import { COMMAND_PROMPT } from './constants';
5
5
  export const createOnKeyDown = ()=>{
6
6
  return (editor)=>{
7
7
  return (event)=>{
8
- // Support for different keyboard layouts:
9
- // `isHotKey` uses by default `event.which`, which will never generates a match for all layouts (QWERTY: `/`, QWERTZ: `shift+7`)
10
- // with `byKey: true` `isHotKey` uses `event.key` which will return the interpreted key '/'
11
- // It would still fail without the the optional `shift?` param, as it first checks the modKeys (`shiftKey` would be true on QWERTZ)
12
8
  if (isHotkey('shift?+/', {
13
9
  byKey: true
14
10
  }, event)) {
@@ -25,7 +21,6 @@ export const createOnKeyDown = ()=>{
25
21
  const [, path] = getAboveNode(editor);
26
22
  const range = getRange(editor, path);
27
23
  if (isHotkey('backspace', event)) {
28
- // if it is the last character in the command string
29
24
  if (range.focus.offset - range.anchor.offset === 1) {
30
25
  removeMark(editor, COMMAND_PROMPT, range);
31
26
  }
@@ -9,7 +9,7 @@ jest.mock('../../internal/transforms', ()=>{
9
9
  };
10
10
  });
11
11
  describe('onKeyDown', ()=>{
12
- const { editor } = createTestEditor({});
12
+ const { editor } = createTestEditor({});
13
13
  const addMark = jest.spyOn(internal, 'addMark');
14
14
  const onCommandPaletteAction = jest.spyOn(editor.tracking, 'onCommandPaletteAction');
15
15
  afterEach(()=>{
@@ -27,7 +27,7 @@ describe('onKeyDown', ()=>{
27
27
  which: 55,
28
28
  shiftKey: true
29
29
  }}
30
- `('supports hotKeys for every keyboard layout #{layout}', ({ key })=>{
30
+ `('supports hotKeys for every keyboard layout #{layout}', ({ key })=>{
31
31
  createOnKeyDown()(editor, {})({
32
32
  type: 'keydown',
33
33
  ...key
@@ -39,7 +39,7 @@ export function isCommandPromptPluginEnabled(sdk) {
39
39
  }
40
40
  function getCommandPermissions(sdk, editor) {
41
41
  const canInsertBlocks = !isNodeTypeSelected(editor, BLOCKS.TABLE);
42
- const { inlineAllowed, entriesAllowed, assetsAllowed } = isCommandPromptPluginEnabled(sdk);
42
+ const { inlineAllowed , entriesAllowed , assetsAllowed } = isCommandPromptPluginEnabled(sdk);
43
43
  return {
44
44
  inlineAllowed,
45
45
  entriesAllowed: entriesAllowed && canInsertBlocks,
@@ -68,7 +68,7 @@ const getAllowedContentTypesFromValidation = (validations)=>{
68
68
  };
69
69
  export const useCommands = (sdk, query, editor)=>{
70
70
  const contentTypes = sdk.space.getCachedContentTypes();
71
- const { inlineAllowed, entriesAllowed, assetsAllowed } = getCommandPermissions(sdk, editor);
71
+ const { inlineAllowed , entriesAllowed , assetsAllowed } = getCommandPermissions(sdk, editor);
72
72
  const allowedContentTypesFromValidation = getAllowedContentTypesFromValidation(sdk.field.validations);
73
73
  const filterContentTypesByValidation = (type)=>contentTypes.filter((contentType)=>allowedContentTypesFromValidation[type]?.[contentType.sys.id]);
74
74
  const filteredBlockContentTypes = filterContentTypesByValidation(BLOCKS.EMBEDDED_ENTRY);
@@ -217,7 +217,7 @@ export const useCommands = (sdk, query, editor)=>{
217
217
  }
218
218
  return contentTypeCommands;
219
219
  });
220
- /* filter both commands and groups of commands with the user typed query */ return query ? commands.reduce((list, nextItem)=>{
220
+ return query ? commands.reduce((list, nextItem)=>{
221
221
  if ('group' in nextItem) {
222
222
  const subcommands = nextItem.commands.filter((command)=>{
223
223
  return command.label.toLowerCase().includes(query.toLowerCase());
@@ -7,13 +7,11 @@ export async function fetchEntries(sdk, contentType, query) {
7
7
  return entries.items.map((entry)=>{
8
8
  const description = entityHelpers.getEntityDescription({
9
9
  contentType,
10
- // @ts-expect-error inconsistent in typing between app-sdk & field-editors-shared
11
10
  entity: entry,
12
11
  localeCode: sdk.field.locale,
13
12
  defaultLocaleCode: sdk.locales.default
14
13
  });
15
14
  const displayTitle = entityHelpers.getEntryTitle({
16
- // @ts-expect-error inconsistent in typing between app-sdk & field-editors-shared
17
15
  entry,
18
16
  contentType,
19
17
  localeCode: sdk.field.locale,
@@ -1,9 +1,4 @@
1
- /**
2
- * Trim leading slash character if found. Bails otherwise.
3
- *
4
- * @example
5
- * trimLeadingSlash("/my query") // --> "my query"
6
- */ export function trimLeadingSlash(text) {
1
+ export function trimLeadingSlash(text) {
7
2
  if (!text.startsWith('/')) {
8
3
  return text;
9
4
  }
@@ -9,11 +9,7 @@ export function createDragAndDropPlugin() {
9
9
  INLINES.EMBEDDED_ENTRY,
10
10
  INLINES.EMBEDDED_RESOURCE
11
11
  ];
12
- /**
13
- * HTML node names where dropping should be allowed
14
- * Usually for elements where `Transforms.removeNodes` is needed
15
- * TODO: looking up for html nodes is not the best solution and it won't scale but it works fine for our current cases/elements
16
- */ const ON_DROP_ALLOWED_TYPES = {
12
+ const ON_DROP_ALLOWED_TYPES = {
17
13
  TABLE: [
18
14
  INLINES.EMBEDDED_ENTRY,
19
15
  INLINES.EMBEDDED_RESOURCE
@@ -22,7 +18,6 @@ export function createDragAndDropPlugin() {
22
18
  return {
23
19
  key: 'DragAndDropPlugin',
24
20
  handlers: {
25
- // If true, the next handlers will be skipped.
26
21
  onDrop: (editor)=>(event)=>{
27
22
  const [draggingBlock] = Array.from(getNodeEntries(editor, {
28
23
  match: (node)=>DRAGGABLE_TYPES.includes(node.type)
@@ -30,13 +25,10 @@ export function createDragAndDropPlugin() {
30
25
  if (!draggingBlock) return false;
31
26
  const [draggingNode] = draggingBlock;
32
27
  if (!event.nativeEvent.target) return false;
33
- // TODO: looking up for html nodes is not the best solution and it won't scale, we need to find a way to know the dropping target slate element
34
28
  const dropDisallowed = getParents(event.nativeEvent.target).some((node)=>{
35
29
  return ON_DROP_ALLOWED_TYPES[node.nodeName] ? !ON_DROP_ALLOWED_TYPES[node.nodeName]?.includes(draggingNode.type) : false;
36
30
  });
37
31
  if (!dropDisallowed) {
38
- // Move the drop event to a new undo batch mitigating the bug where undo not only moves it back,
39
- // but also undoes a previous action: https://github.com/ianstormtaylor/slate/issues/4694
40
32
  editor.history.undos.push([]);
41
33
  }
42
34
  return dropDisallowed;
@@ -9,13 +9,13 @@ import { FetchingWrappedAssetCard } from '../shared/FetchingWrappedAssetCard';
9
9
  import { FetchingWrappedEntryCard } from '../shared/FetchingWrappedEntryCard';
10
10
  import { LinkedBlockWrapper } from '../shared/LinkedBlockWrapper';
11
11
  export function LinkedEntityBlock(props) {
12
- const { attributes, children, element } = props;
13
- const { onEntityFetchComplete } = useLinkTracking();
12
+ const { attributes , children , element } = props;
13
+ const { onEntityFetchComplete } = useLinkTracking();
14
14
  const isSelected = useSelected();
15
15
  const editor = useContentfulEditor();
16
16
  const sdk = useSdkContext();
17
17
  const isDisabled = useReadOnly();
18
- const { id: entityId, linkType: entityType } = element.data.target.sys;
18
+ const { id: entityId , linkType: entityType } = element.data.target.sys;
19
19
  const handleEditClick = React.useCallback(()=>{
20
20
  const openEntity = entityType === 'Asset' ? sdk.navigator.openAsset : sdk.navigator.openEntry;
21
21
  return openEntity(entityId, {
@@ -36,9 +36,9 @@ export function LinkedEntityBlock(props) {
36
36
  editor,
37
37
  element
38
38
  ]);
39
- return /*#__PURE__*/ React.createElement(LinkedBlockWrapper, {
39
+ return React.createElement(LinkedBlockWrapper, {
40
40
  attributes: attributes,
41
- card: /*#__PURE__*/ React.createElement(React.Fragment, null, entityType === 'Entry' && /*#__PURE__*/ React.createElement(FetchingWrappedEntryCard, {
41
+ card: React.createElement(React.Fragment, null, entityType === 'Entry' && React.createElement(FetchingWrappedEntryCard, {
42
42
  sdk: sdk,
43
43
  entryId: entityId,
44
44
  locale: sdk.field.locale,
@@ -47,7 +47,7 @@ export function LinkedEntityBlock(props) {
47
47
  onRemove: handleRemoveClick,
48
48
  onEdit: handleEditClick,
49
49
  onEntityFetchComplete: onEntityFetchComplete
50
- }), entityType === 'Asset' && /*#__PURE__*/ React.createElement(FetchingWrappedAssetCard, {
50
+ }), entityType === 'Asset' && React.createElement(FetchingWrappedAssetCard, {
51
51
  sdk: sdk,
52
52
  assetId: entityId,
53
53
  locale: sdk.field.locale,
@@ -6,7 +6,7 @@ import { ScheduledIconWithTooltip, useEntity, useEntityLoader } from '@contentfu
6
6
  import { entityHelpers } from '@contentful/field-editor-shared';
7
7
  import { INLINES } from '@contentful/rich-text-types';
8
8
  import { css } from 'emotion';
9
- const { getEntryTitle, getEntryStatus } = entityHelpers;
9
+ const { getEntryTitle , getEntryStatus } = entityHelpers;
10
10
  const styles = {
11
11
  scheduledIcon: css({
12
12
  verticalAlign: 'text-bottom',
@@ -14,11 +14,11 @@ const styles = {
14
14
  })
15
15
  };
16
16
  export function FetchingWrappedInlineEntryCard(props) {
17
- const { data: entry, status: requestStatus } = useEntity('Entry', props.entryId);
18
- const { getEntityScheduledActions } = useEntityLoader();
17
+ const { data: entry , status: requestStatus } = useEntity('Entry', props.entryId);
18
+ const { getEntityScheduledActions } = useEntityLoader();
19
19
  const loadEntityScheduledActions = ()=>getEntityScheduledActions('Entry', props.entryId);
20
20
  const allContentTypes = props.sdk.space.getCachedContentTypes();
21
- const { onEntityFetchComplete } = props;
21
+ const { onEntityFetchComplete } = props;
22
22
  const contentType = React.useMemo(()=>{
23
23
  if (!entry || !allContentTypes) return undefined;
24
24
  return allContentTypes.find((contentType)=>contentType.sys.id === entry.sys.contentType.sys.id);
@@ -49,25 +49,25 @@ export function FetchingWrappedInlineEntryCard(props) {
49
49
  props.sdk.locales.default
50
50
  ]);
51
51
  if (requestStatus === 'error') {
52
- return /*#__PURE__*/ React.createElement(InlineEntryCard, {
52
+ return React.createElement(InlineEntryCard, {
53
53
  title: "Entry missing or inaccessible",
54
54
  testId: INLINES.EMBEDDED_ENTRY,
55
55
  isSelected: props.isSelected
56
56
  });
57
57
  }
58
58
  if (requestStatus === 'loading') {
59
- return /*#__PURE__*/ React.createElement(InlineEntryCard, {
59
+ return React.createElement(InlineEntryCard, {
60
60
  isLoading: true
61
61
  });
62
62
  }
63
63
  const entryStatus = getEntryStatus(entry.sys);
64
64
  if (entryStatus === 'deleted') {
65
- return /*#__PURE__*/ React.createElement(InlineEntryCard, {
65
+ return React.createElement(InlineEntryCard, {
66
66
  title: "Entry missing or inaccessible",
67
67
  testId: INLINES.EMBEDDED_ENTRY,
68
68
  isSelected: props.isSelected,
69
69
  actions: [
70
- /*#__PURE__*/ React.createElement(MenuItem, {
70
+ React.createElement(MenuItem, {
71
71
  key: "remove",
72
72
  onClick: props.onRemove,
73
73
  testId: "delete"
@@ -75,30 +75,30 @@ export function FetchingWrappedInlineEntryCard(props) {
75
75
  ]
76
76
  });
77
77
  }
78
- return /*#__PURE__*/ React.createElement(InlineEntryCard, {
78
+ return React.createElement(InlineEntryCard, {
79
79
  testId: INLINES.EMBEDDED_ENTRY,
80
80
  isSelected: props.isSelected,
81
81
  title: `${contentTypeName}: ${title}`,
82
82
  status: entryStatus,
83
83
  actions: [
84
- /*#__PURE__*/ React.createElement(MenuItem, {
84
+ React.createElement(MenuItem, {
85
85
  key: "edit",
86
86
  onClick: props.onEdit
87
87
  }, "Edit"),
88
- /*#__PURE__*/ React.createElement(MenuItem, {
88
+ React.createElement(MenuItem, {
89
89
  key: "remove",
90
90
  onClick: props.onRemove,
91
91
  disabled: props.isDisabled,
92
92
  testId: "delete"
93
93
  }, "Remove")
94
94
  ]
95
- }, /*#__PURE__*/ React.createElement(ScheduledIconWithTooltip, {
95
+ }, React.createElement(ScheduledIconWithTooltip, {
96
96
  getEntityScheduledActions: loadEntityScheduledActions,
97
97
  entityType: "Entry",
98
98
  entityId: entry.sys.id
99
- }, /*#__PURE__*/ React.createElement(ClockIcon, {
99
+ }, React.createElement(ClockIcon, {
100
100
  className: styles.scheduledIcon,
101
101
  variant: "muted",
102
102
  testId: "scheduled-icon"
103
- })), /*#__PURE__*/ React.createElement(Text, null, title));
103
+ })), React.createElement(Text, null, title));
104
104
  }