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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/dist/cjs/ContentfulEditorProvider.js +8 -8
  2. package/dist/cjs/RichTextEditor.js +20 -22
  3. package/dist/cjs/RichTextEditor.styles.js +1 -2
  4. package/dist/cjs/SdkProvider.js +5 -7
  5. package/dist/cjs/SyncEditorChanges.js +6 -15
  6. package/dist/cjs/Toolbar/_tests_/toolbar.test.js +15 -17
  7. package/dist/cjs/Toolbar/components/EmbedEntityWidget.js +9 -13
  8. package/dist/cjs/Toolbar/components/EmbeddedEntityDropdownButton.js +8 -10
  9. package/dist/cjs/Toolbar/components/StickyToolbarWrapper.js +2 -2
  10. package/dist/cjs/Toolbar/index.js +30 -33
  11. package/dist/cjs/__fixtures__/FakeSdk.js +3 -3
  12. package/dist/cjs/__fixtures__/asset/index.js +10 -10
  13. package/dist/cjs/__fixtures__/content-type/index.js +1 -1
  14. package/dist/cjs/__fixtures__/entry/index.js +7 -7
  15. package/dist/cjs/__fixtures__/fixtures.js +6 -8
  16. package/dist/cjs/__fixtures__/locale/index.js +2 -2
  17. package/dist/cjs/__fixtures__/space/index.js +1 -1
  18. package/dist/cjs/constants/Schema.js +0 -1
  19. package/dist/cjs/dialogs/HypelinkDialog/HyperlinkDialog.js +38 -43
  20. package/dist/cjs/dialogs/openRichTextDialog.js +4 -6
  21. package/dist/cjs/dialogs/renderRichTextDialog.js +4 -6
  22. package/dist/cjs/helpers/__tests__/removeInternalMarks.test.js +10 -10
  23. package/dist/cjs/helpers/callbacks.js +3 -3
  24. package/dist/cjs/helpers/config.js +2 -2
  25. package/dist/cjs/helpers/editor.js +44 -53
  26. package/dist/cjs/helpers/environment.js +3 -3
  27. package/dist/cjs/helpers/formatDateAndTime.js +4 -5
  28. package/dist/cjs/helpers/getAllowedResourcesForNodeType.js +5 -22
  29. package/dist/cjs/helpers/getLinkedContentTypeIdsForNodeType.js +5 -29
  30. package/dist/cjs/helpers/nodeFactory.js +6 -6
  31. package/dist/cjs/helpers/sdkNavigatorSlideIn.js +6 -14
  32. package/dist/cjs/helpers/sdkNavigatorSlideIn.spec.js +2 -3
  33. package/dist/cjs/helpers/toSlateValue.js +3 -14
  34. package/dist/cjs/helpers/transformers.js +5 -5
  35. package/dist/cjs/helpers/validations.js +9 -12
  36. package/dist/cjs/index.js +5 -7
  37. package/dist/cjs/internal/constants.js +2 -4
  38. package/dist/cjs/internal/hooks.js +7 -9
  39. package/dist/cjs/internal/misc.js +12 -15
  40. package/dist/cjs/internal/queries.js +108 -115
  41. package/dist/cjs/internal/transforms.js +48 -51
  42. package/dist/cjs/internal/types/editor.js +1 -3
  43. package/dist/cjs/plugins/Break/createExitBreakPlugin.test.js +3 -4
  44. package/dist/cjs/plugins/Break/createResetNodePlugin.js +0 -1
  45. package/dist/cjs/plugins/Break/createSoftBreakPlugin.test.js +3 -3
  46. package/dist/cjs/plugins/CommandPalette/components/CommandList.js +33 -35
  47. package/dist/cjs/plugins/CommandPalette/components/CommandList.styles.js +1 -1
  48. package/dist/cjs/plugins/CommandPalette/components/CommandPrompt.js +5 -7
  49. package/dist/cjs/plugins/CommandPalette/hooks/useCommandList.js +3 -7
  50. package/dist/cjs/plugins/CommandPalette/onKeyDown.js +1 -6
  51. package/dist/cjs/plugins/CommandPalette/onKeyDown.spec.js +4 -6
  52. package/dist/cjs/plugins/CommandPalette/useCommands.js +3 -3
  53. package/dist/cjs/plugins/CommandPalette/utils/fetchEntries.js +0 -2
  54. package/dist/cjs/plugins/CommandPalette/utils/trimLeadingSlash.js +1 -6
  55. package/dist/cjs/plugins/DragAndDrop/index.js +1 -9
  56. package/dist/cjs/plugins/EmbeddedEntityBlock/LinkedEntityBlock.js +8 -10
  57. package/dist/cjs/plugins/EmbeddedEntityBlock/index.js +3 -3
  58. package/dist/cjs/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.js +17 -19
  59. package/dist/cjs/plugins/EmbeddedEntityInline/LinkedEntityInline.js +7 -9
  60. package/dist/cjs/plugins/EmbeddedResourceBlock/LinkedResourceBlock.js +5 -5
  61. package/dist/cjs/plugins/EmbeddedResourceInline/FetchingWrappedResourceInlineCard.js +11 -13
  62. package/dist/cjs/plugins/EmbeddedResourceInline/LinkedResourceInline.js +5 -5
  63. package/dist/cjs/plugins/Heading/__tests__/createHeadingPlugin.test.js +32 -32
  64. package/dist/cjs/plugins/Heading/components/Heading.js +10 -13
  65. package/dist/cjs/plugins/Heading/components/ToolbarHeadingButton.js +29 -23
  66. package/dist/cjs/plugins/Heading/createHeadingPlugin.js +2 -7
  67. package/dist/cjs/plugins/Hr/index.js +14 -19
  68. package/dist/cjs/plugins/Hyperlink/HyperlinkModal.js +28 -32
  69. package/dist/cjs/plugins/Hyperlink/__tests__/createHyperlinkPlugin.test.js +8 -8
  70. package/dist/cjs/plugins/Hyperlink/components/EntityHyperlink.js +8 -10
  71. package/dist/cjs/plugins/Hyperlink/components/LinkPopover.js +17 -23
  72. package/dist/cjs/plugins/Hyperlink/components/ResourceHyperlink.js +8 -10
  73. package/dist/cjs/plugins/Hyperlink/components/ToolbarHyperlinkButton.js +4 -6
  74. package/dist/cjs/plugins/Hyperlink/components/UrlHyperlink.js +6 -8
  75. package/dist/cjs/plugins/Hyperlink/components/linkHandlers.js +3 -3
  76. package/dist/cjs/plugins/Hyperlink/components/styles.js +1 -1
  77. package/dist/cjs/plugins/Hyperlink/createHyperlinkPlugin.js +4 -10
  78. package/dist/cjs/plugins/Hyperlink/useEntityInfo.js +3 -6
  79. package/dist/cjs/plugins/Hyperlink/useResourceEntityInfo.js +4 -6
  80. package/dist/cjs/plugins/Hyperlink/utils.js +4 -4
  81. package/dist/cjs/plugins/List/__tests__/createListPlugin.test.js +13 -13
  82. package/dist/cjs/plugins/List/__tests__/insertListBreak.test.js +25 -29
  83. package/dist/cjs/plugins/List/__tests__/insertListFragment.test.js +22 -22
  84. package/dist/cjs/plugins/List/components/List.js +7 -9
  85. package/dist/cjs/plugins/List/components/ListItem.js +4 -6
  86. package/dist/cjs/plugins/List/components/ToolbarListButton.js +5 -7
  87. package/dist/cjs/plugins/List/createListPlugin.js +0 -4
  88. package/dist/cjs/plugins/List/insertListBreak.js +4 -13
  89. package/dist/cjs/plugins/List/insertListFragment.js +5 -18
  90. package/dist/cjs/plugins/List/onKeyDownList.js +6 -8
  91. package/dist/cjs/plugins/List/transforms/insertListItem.js +2 -17
  92. package/dist/cjs/plugins/List/transforms/moveListItemDown.js +2 -8
  93. package/dist/cjs/plugins/List/transforms/moveListItems.js +2 -7
  94. package/dist/cjs/plugins/List/transforms/moveListItems.test.js +14 -15
  95. package/dist/cjs/plugins/List/transforms/toggleList.js +3 -8
  96. package/dist/cjs/plugins/List/transforms/toggleList.spec.js +28 -28
  97. package/dist/cjs/plugins/List/transforms/unwrapList.js +2 -7
  98. package/dist/cjs/plugins/List/utils.js +11 -12
  99. package/dist/cjs/plugins/List/withList.js +2 -6
  100. package/dist/cjs/plugins/Marks/Bold.js +7 -9
  101. package/dist/cjs/plugins/Marks/Code.js +7 -15
  102. package/dist/cjs/plugins/Marks/Italic.js +7 -9
  103. package/dist/cjs/plugins/Marks/Subscript.js +8 -10
  104. package/dist/cjs/plugins/Marks/Superscript.js +8 -10
  105. package/dist/cjs/plugins/Marks/Underline.js +4 -6
  106. package/dist/cjs/plugins/Marks/components/MarkToolbarButton.js +7 -9
  107. package/dist/cjs/plugins/Marks/helpers.js +5 -5
  108. package/dist/cjs/plugins/Normalizer/baseRules.js +0 -2
  109. package/dist/cjs/plugins/Normalizer/createNormalizerPlugin.test.js +12 -12
  110. package/dist/cjs/plugins/Normalizer/utils.js +3 -4
  111. package/dist/cjs/plugins/Normalizer/withNormalizer.js +3 -23
  112. package/dist/cjs/plugins/Paragraph/Paragraph.js +4 -6
  113. package/dist/cjs/plugins/Paragraph/__tests__/createParagraphPlugin.test.js +32 -32
  114. package/dist/cjs/plugins/Paragraph/createParagraphPlugin.js +2 -3
  115. package/dist/cjs/plugins/PasteHTML/createPasteHTMLPlugin.js +6 -9
  116. package/dist/cjs/plugins/PasteHTML/utils/__tests__/sanitizeHTML.test.js +0 -2
  117. package/dist/cjs/plugins/PasteHTML/utils/sanitizeAnchors.js +0 -9
  118. package/dist/cjs/plugins/PasteHTML/utils/sanitizeHTML.js +2 -17
  119. package/dist/cjs/plugins/PasteHTML/utils/sanitizeSheets.js +1 -13
  120. package/dist/cjs/plugins/Quote/__test__/createQuotePlugin.test.js +21 -21
  121. package/dist/cjs/plugins/Quote/components/Quote.js +4 -6
  122. package/dist/cjs/plugins/Quote/components/ToolbarQuoteButton.js +4 -6
  123. package/dist/cjs/plugins/Quote/createQuotePlugin.js +0 -1
  124. package/dist/cjs/plugins/Quote/toggleQuote.js +5 -5
  125. package/dist/cjs/plugins/Quote/withQuote.js +2 -4
  126. package/dist/cjs/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.js +0 -1
  127. package/dist/cjs/plugins/Table/__tests__/createTablePlugin.test.js +22 -22
  128. package/dist/cjs/plugins/Table/__tests__/helpers.test.js +4 -4
  129. package/dist/cjs/plugins/Table/actions/addColumn.js +4 -5
  130. package/dist/cjs/plugins/Table/actions/addRow.js +3 -6
  131. package/dist/cjs/plugins/Table/components/Cell.js +5 -7
  132. package/dist/cjs/plugins/Table/components/HeaderCell.js +5 -7
  133. package/dist/cjs/plugins/Table/components/Row.js +4 -6
  134. package/dist/cjs/plugins/Table/components/Table.js +6 -8
  135. package/dist/cjs/plugins/Table/components/TableActions.js +16 -19
  136. package/dist/cjs/plugins/Table/components/ToolbarButton.js +4 -7
  137. package/dist/cjs/plugins/Table/createTablePlugin.js +1 -11
  138. package/dist/cjs/plugins/Table/helpers.js +12 -16
  139. package/dist/cjs/plugins/Table/insertTableFragment.js +2 -15
  140. package/dist/cjs/plugins/Table/onKeyDownTable.js +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
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "LinkedEntityInline", {
8
8
  return LinkedEntityInline;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
11
+ const _react = _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,9 +39,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
39
39
  if (cache && cache.has(obj)) {
40
40
  return cache.get(obj);
41
41
  }
42
- var newObj = {
43
- __proto__: null
44
- };
42
+ var newObj = {};
45
43
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
46
44
  for(var key in obj){
47
45
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -60,13 +58,13 @@ function _interop_require_wildcard(obj, nodeInterop) {
60
58
  return newObj;
61
59
  }
62
60
  function LinkedEntityInline(props) {
63
- const { attributes, children, element } = props;
64
- const { onEntityFetchComplete } = (0, _linkstracking.useLinkTracking)();
61
+ const { attributes , children , element } = props;
62
+ const { onEntityFetchComplete } = (0, _linkstracking.useLinkTracking)();
65
63
  const isSelected = (0, _slatereact.useSelected)();
66
64
  const editor = (0, _ContentfulEditorProvider.useContentfulEditor)();
67
65
  const sdk = (0, _SdkProvider.useSdkContext)();
68
66
  const isDisabled = (0, _slatereact.useReadOnly)();
69
- const { id: entryId } = element.data.target.sys;
67
+ const { id: entryId } = element.data.target.sys;
70
68
  function handleEditClick() {
71
69
  return sdk.navigator.openEntry(entryId, {
72
70
  slideIn: {
@@ -83,9 +81,9 @@ function LinkedEntityInline(props) {
83
81
  at: pathToElement
84
82
  });
85
83
  }
86
- return /*#__PURE__*/ _react.createElement(_LinkedInlineWrapper.LinkedInlineWrapper, {
84
+ return _react.createElement(_LinkedInlineWrapper.LinkedInlineWrapper, {
87
85
  attributes: attributes,
88
- card: /*#__PURE__*/ _react.createElement(_FetchingWrappedInlineEntryCard.FetchingWrappedInlineEntryCard, {
86
+ card: _react.createElement(_FetchingWrappedInlineEntryCard.FetchingWrappedInlineEntryCard, {
89
87
  sdk: sdk,
90
88
  entryId: entryId,
91
89
  isSelected: isSelected,
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "LinkedResourceBlock", {
8
8
  return LinkedResourceBlock;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_default(require("react"));
11
+ const _react = _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 /*#__PURE__*/ _react.default.createElement(_LinkedBlockWrapper.LinkedBlockWrapper, {
42
+ return _react.default.createElement(_LinkedBlockWrapper.LinkedBlockWrapper, {
43
43
  attributes: attributes,
44
44
  link: element.data.target,
45
- card: /*#__PURE__*/ _react.default.createElement(_FetchingWrappedResourceCard.FetchingWrappedResourceCard, {
45
+ card: _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 = /*#__PURE__*/ _interop_require_wildcard(require("react"));
11
+ const _react = _interop_require_wildcard(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
13
  const _fieldeditorreference = require("@contentful/field-editor-reference");
14
14
  const _fieldeditorshared = require("@contentful/field-editor-shared");
@@ -35,9 +35,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
35
35
  if (cache && cache.has(obj)) {
36
36
  return cache.get(obj);
37
37
  }
38
- var newObj = {
39
- __proto__: null
40
- };
38
+ var newObj = {};
41
39
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
42
40
  for(var key in obj){
43
41
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -55,10 +53,10 @@ function _interop_require_wildcard(obj, nodeInterop) {
55
53
  }
56
54
  return newObj;
57
55
  }
58
- const { getEntryTitle, getEntryStatus } = _fieldeditorshared.entityHelpers;
56
+ const { getEntryTitle , getEntryStatus } = _fieldeditorshared.entityHelpers;
59
57
  function FetchingWrappedResourceInlineCard(props) {
60
- const { link, onEntityFetchComplete } = props;
61
- const { data, status: requestStatus } = (0, _fieldeditorreference.useResource)(link.linkType, link.urn);
58
+ const { link , onEntityFetchComplete } = props;
59
+ const { data , status: requestStatus } = (0, _fieldeditorreference.useResource)(link.linkType, link.urn);
62
60
  _react.useEffect(()=>{
63
61
  if (requestStatus === 'success') {
64
62
  onEntityFetchComplete?.();
@@ -68,18 +66,18 @@ function FetchingWrappedResourceInlineCard(props) {
68
66
  requestStatus
69
67
  ]);
70
68
  if (requestStatus === 'error') {
71
- return /*#__PURE__*/ _react.createElement(_f36components.InlineEntryCard, {
69
+ return _react.createElement(_f36components.InlineEntryCard, {
72
70
  title: "Entry missing or inaccessible",
73
71
  testId: _richtexttypes.INLINES.EMBEDDED_RESOURCE,
74
72
  isSelected: props.isSelected
75
73
  });
76
74
  }
77
75
  if (requestStatus === 'loading' || data === undefined) {
78
- return /*#__PURE__*/ _react.createElement(_f36components.InlineEntryCard, {
76
+ return _react.createElement(_f36components.InlineEntryCard, {
79
77
  isLoading: true
80
78
  });
81
79
  }
82
- const { resource: entry, contentType, defaultLocaleCode, space } = data;
80
+ const { resource: entry , contentType , defaultLocaleCode , space } = data;
83
81
  const title = getEntryTitle({
84
82
  entry,
85
83
  contentType,
@@ -89,18 +87,18 @@ function FetchingWrappedResourceInlineCard(props) {
89
87
  });
90
88
  const truncatedTitle = (0, _utils.truncateTitle)(title, 40);
91
89
  const status = getEntryStatus(entry.sys);
92
- return /*#__PURE__*/ _react.createElement(_f36components.InlineEntryCard, {
90
+ return _react.createElement(_f36components.InlineEntryCard, {
93
91
  testId: _richtexttypes.INLINES.EMBEDDED_RESOURCE,
94
92
  isSelected: props.isSelected,
95
93
  title: `${contentType.name}: ${truncatedTitle} (Space: ${space.name} – Env.: ${entry.sys.environment.sys.id})`,
96
94
  status: status,
97
95
  actions: [
98
- /*#__PURE__*/ _react.createElement(_f36components.MenuItem, {
96
+ _react.createElement(_f36components.MenuItem, {
99
97
  key: "remove",
100
98
  onClick: props.onRemove,
101
99
  disabled: props.isDisabled,
102
100
  testId: "delete"
103
101
  }, "Remove")
104
102
  ]
105
- }, /*#__PURE__*/ _react.createElement(_f36components.Text, null, title));
103
+ }, _react.createElement(_f36components.Text, null, title));
106
104
  }
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "LinkedResourceInline", {
8
8
  return LinkedResourceInline;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_default(require("react"));
11
+ const _react = _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 /*#__PURE__*/ _react.default.createElement(_LinkedInlineWrapper.LinkedInlineWrapper, {
39
+ return _react.default.createElement(_LinkedInlineWrapper.LinkedInlineWrapper, {
40
40
  attributes: attributes,
41
41
  link: element.data.target,
42
- card: /*#__PURE__*/ _react.default.createElement(_FetchingWrappedResourceInlineCard.FetchingWrappedResourceInlineCard, {
42
+ card: _react.default.createElement(_FetchingWrappedResourceInlineCard.FetchingWrappedResourceInlineCard, {
43
43
  sdk: sdk,
44
44
  link: link,
45
45
  isDisabled: isDisabled,
@@ -1,30 +1,30 @@
1
- /* eslint-disable react/no-unknown-property */ /** @jsx jsx */ "use strict";
1
+ "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 = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "some text before", /*#__PURE__*/ (0, _testutils.jsx)("hinline", {
8
+ const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some text before", (0, _testutils.jsx)("hinline", {
9
9
  type: "Entry",
10
10
  id: "inline-entry"
11
- }), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
11
+ }), (0, _testutils.jsx)("hlink", {
12
12
  uri: "https://contentful.com"
13
- }), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
13
+ }), (0, _testutils.jsx)("hlink", {
14
14
  entry: "entry-id"
15
- }), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
15
+ }), (0, _testutils.jsx)("hlink", {
16
16
  resource: "resource-urn"
17
- }), /*#__PURE__*/ (0, _testutils.jsx)("hlink", {
17
+ }), (0, _testutils.jsx)("hlink", {
18
18
  asset: "asset-id"
19
- }), "some text after"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
19
+ }), "some text after"), (0, _testutils.jsx)("hp", null, (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 = /*#__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)));
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)));
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 = /*#__PURE__*/ (0, _testutils.jsx)("editor", null, /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
35
+ const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, (0, _testutils.jsx)("hembed", {
36
36
  type: "Asset",
37
37
  id: "1"
38
- }), " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
38
+ }), " start"), (0, _testutils.jsx)("hh1", null, "end ", (0, _testutils.jsx)("hembed", {
39
39
  type: "Asset",
40
40
  id: "2"
41
- })), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
41
+ })), (0, _testutils.jsx)("hh1", null, "in ", (0, _testutils.jsx)("hembed", {
42
42
  type: "Asset",
43
43
  id: "3"
44
- }), " between"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
44
+ }), " between"), (0, _testutils.jsx)("hh1", null, (0, _testutils.jsx)("hembed", {
45
45
  type: "Entry",
46
46
  id: "1"
47
- }), " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
47
+ }), " start"), (0, _testutils.jsx)("hh1", null, "end ", (0, _testutils.jsx)("hembed", {
48
48
  type: "Entry",
49
49
  id: "2"
50
- })), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in ", /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
50
+ })), (0, _testutils.jsx)("hh1", null, "in ", (0, _testutils.jsx)("hembed", {
51
51
  type: "Entry",
52
52
  id: "3"
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", {
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", {
55
55
  type: "Asset",
56
56
  id: "1"
57
- }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
57
+ }), (0, _testutils.jsx)("hh1", null, " start"), (0, _testutils.jsx)("hh1", null, "end "), (0, _testutils.jsx)("hembed", {
58
58
  type: "Asset",
59
59
  id: "2"
60
- }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
60
+ }), (0, _testutils.jsx)("hh1", null, "in "), (0, _testutils.jsx)("hembed", {
61
61
  type: "Asset",
62
62
  id: "3"
63
- }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, " between"), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
63
+ }), (0, _testutils.jsx)("hh1", null, " between"), (0, _testutils.jsx)("hembed", {
64
64
  type: "Entry",
65
65
  id: "1"
66
- }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, " start"), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "end "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
66
+ }), (0, _testutils.jsx)("hh1", null, " start"), (0, _testutils.jsx)("hh1", null, "end "), (0, _testutils.jsx)("hembed", {
67
67
  type: "Entry",
68
68
  id: "2"
69
- }), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "in "), /*#__PURE__*/ (0, _testutils.jsx)("hembed", {
69
+ }), (0, _testutils.jsx)("hh1", null, "in "), (0, _testutils.jsx)("hembed", {
70
70
  type: "Entry",
71
71
  id: "3"
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)));
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)));
73
73
  (0, _testutils.assertOutput)({
74
74
  input,
75
75
  expected
76
76
  });
77
77
  });
78
78
  it('nested headings', ()=>{
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", {
79
+ const input = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some", (0, _testutils.jsx)("hh1", null, (0, _testutils.jsx)("htext", {
80
80
  bold: true,
81
81
  italic: true,
82
82
  underline: true
83
83
  }, "paragraph")), "text"));
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", {
84
+ const expected = (0, _testutils.jsx)("editor", null, (0, _testutils.jsx)("hh1", null, "some"), (0, _testutils.jsx)("hh1", null, (0, _testutils.jsx)("htext", {
85
85
  bold: true,
86
86
  italic: true,
87
87
  underline: true
88
- }, "paragraph")), /*#__PURE__*/ (0, _testutils.jsx)("hh1", null, "text"), /*#__PURE__*/ (0, _testutils.jsx)("hp", null, /*#__PURE__*/ (0, _testutils.jsx)("htext", null)));
88
+ }, "paragraph")), (0, _testutils.jsx)("hh1", null, "text"), (0, _testutils.jsx)("hp", null, (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 = /*#__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)));
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)));
97
97
  (0, _testutils.assertOutput)({
98
98
  input,
99
99
  expected
100
100
  });
101
101
  });
102
102
  it('handles lists', ()=>{
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)));
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)));
105
105
  (0, _testutils.assertOutput)({
106
106
  input,
107
107
  expected
108
108
  });
109
109
  });
110
110
  it('handles tables', ()=>{
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)));
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)));
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 = /*#__PURE__*/ _interop_require_wildcard(require("react"));
12
- const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
11
+ const _react = _interop_require_wildcard(require("react"));
12
+ const _f36tokens = _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,9 +38,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
38
38
  if (cache && cache.has(obj)) {
39
39
  return cache.get(obj);
40
40
  }
41
- var newObj = {
42
- __proto__: null
43
- };
41
+ var newObj = {};
44
42
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
45
43
  for(var key in obj){
46
44
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -111,20 +109,19 @@ const styles = {
111
109
  `
112
110
  }
113
111
  };
114
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO: explain this disable
115
112
  function createHeading(Tag, block) {
116
113
  return function Heading(props) {
117
- return /*#__PURE__*/ _react.createElement(Tag, {
114
+ return _react.createElement(Tag, {
118
115
  ...props.attributes,
119
116
  className: (0, _emotion.cx)(styles.headings.root, styles.headings[block])
120
117
  }, props.children);
121
118
  };
122
119
  }
123
120
  const HeadingComponents = {
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))
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))
130
127
  };
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "ToolbarHeadingButton", {
8
8
  return ToolbarHeadingButton;
9
9
  }
10
10
  });
11
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
11
+ const _react = _interop_require_wildcard(require("react"));
12
12
  const _f36components = require("@contentful/f36-components");
13
13
  const _f36icons = require("@contentful/f36-icons");
14
- const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
14
+ const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
15
15
  const _richtexttypes = require("@contentful/rich-text-types");
16
16
  const _emotion = require("emotion");
17
17
  const _ContentfulEditorProvider = require("../../../ContentfulEditorProvider");
@@ -44,9 +44,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
44
44
  if (cache && cache.has(obj)) {
45
45
  return cache.get(obj);
46
46
  }
47
- var newObj = {
48
- __proto__: null
49
- };
47
+ var newObj = {};
50
48
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
51
49
  for(var key in obj){
52
50
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -65,6 +63,10 @@ function _interop_require_wildcard(obj, nodeInterop) {
65
63
  return newObj;
66
64
  }
67
65
  const styles = {
66
+ button: (0, _emotion.css)({
67
+ minWidth: '125px',
68
+ justifyContent: 'space-between'
69
+ }),
68
70
  dropdown: {
69
71
  root: (0, _emotion.css)`
70
72
  font-weight: ${_f36tokens.default.fontWeightDemiBold};
@@ -108,13 +110,22 @@ function ToolbarHeadingButton(props) {
108
110
  const [selected, setSelected] = _react.useState(_richtexttypes.BLOCKS.PARAGRAPH);
109
111
  _react.useEffect(()=>{
110
112
  if (!editor?.selection) return;
111
- const [element] = (0, _editor.getElementFromCurrentSelection)(editor);
112
- const type = element.type;
113
- setSelected(LABELS[type] ? type : _richtexttypes.BLOCKS.PARAGRAPH);
113
+ const elements = (0, _editor.getElementFromCurrentSelection)(editor);
114
+ for (const element of elements){
115
+ if (typeof element === 'object' && 'type' in element) {
116
+ const el = element;
117
+ const match = LABELS[el.type];
118
+ if (match) {
119
+ setSelected(el.type);
120
+ return;
121
+ }
122
+ }
123
+ }
124
+ setSelected(_richtexttypes.BLOCKS.PARAGRAPH);
114
125
  }, [
115
126
  editor?.operations,
116
127
  editor?.selection
117
- ]); // eslint-disable-line -- TODO: explain this disable
128
+ ]);
118
129
  const [nodeTypesByEnablement, someHeadingsEnabled] = _react.useMemo(()=>{
119
130
  const nodeTypesByEnablement = Object.fromEntries(Object.keys(LABELS).map((nodeType)=>[
120
131
  nodeType,
@@ -135,13 +146,7 @@ function ToolbarHeadingButton(props) {
135
146
  setSelected(type);
136
147
  setOpen(false);
137
148
  const prevOnChange = editor.onChange;
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)=>{
149
+ editor.onChange = (...args)=>{
145
150
  (0, _editor.focus)(editor);
146
151
  editor.onChange = prevOnChange;
147
152
  prevOnChange(...args);
@@ -157,25 +162,26 @@ function ToolbarHeadingButton(props) {
157
162
  };
158
163
  }
159
164
  if (!editor) return null;
160
- return /*#__PURE__*/ _react.createElement(_f36components.Menu, {
165
+ return _react.createElement(_f36components.Menu, {
161
166
  isOpen: isOpen,
162
167
  onClose: ()=>setOpen(false)
163
- }, /*#__PURE__*/ _react.createElement(_f36components.Menu.Trigger, null, /*#__PURE__*/ _react.createElement(_f36components.Button, {
168
+ }, _react.createElement(_f36components.Menu.Trigger, null, _react.createElement(_f36components.Button, {
164
169
  size: "small",
165
170
  testId: "toolbar-heading-toggle",
166
171
  variant: "transparent",
167
- endIcon: /*#__PURE__*/ _react.createElement(_f36icons.ChevronDownIcon, null),
172
+ endIcon: _react.createElement(_f36icons.ChevronDownIcon, null),
168
173
  isDisabled: props.isDisabled,
169
- onClick: ()=>someHeadingsEnabled && setOpen(!isOpen)
170
- }, LABELS[selected])), /*#__PURE__*/ _react.createElement(_f36components.Menu.List, {
174
+ onClick: ()=>someHeadingsEnabled && setOpen(!isOpen),
175
+ className: styles.button
176
+ }, LABELS[selected])), _react.createElement(_f36components.Menu.List, {
171
177
  testId: "dropdown-heading-list"
172
- }, ' ', Object.keys(LABELS).map((nodeType)=>nodeTypesByEnablement[nodeType] && /*#__PURE__*/ _react.createElement(_f36components.Menu.Item, {
178
+ }, Object.keys(LABELS).map((nodeType)=>nodeTypesByEnablement[nodeType] && _react.createElement(_f36components.Menu.Item, {
173
179
  key: nodeType,
174
180
  isInitiallyFocused: selected === nodeType,
175
181
  onClick: handleOnSelectItem(nodeType),
176
182
  testId: `dropdown-option-${nodeType}`,
177
183
  disabled: props.isDisabled
178
- }, /*#__PURE__*/ _react.createElement("span", {
184
+ }, _react.createElement("span", {
179
185
  className: (0, _emotion.cx)(styles.dropdown.root, styles.dropdown[nodeType])
180
186
  }, LABELS[nodeType]))).filter(Boolean)));
181
187
  }
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "createHeadingPlugin", {
9
9
  }
10
10
  });
11
11
  const _richtexttypes = require("@contentful/rich-text-types");
12
- const _ishotkey = /*#__PURE__*/ _interop_require_default(require("is-hotkey"));
12
+ const _ishotkey = _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,7 +35,6 @@ const buildHeadingEventHandler = (type)=>(editor, { options: { hotkey } })=>(eve
35
35
  const createHeadingPlugin = ()=>({
36
36
  key: 'HeadingPlugin',
37
37
  softBreak: [
38
- // create a new line with SHIFT+Enter inside a heading
39
38
  {
40
39
  hotkey: 'shift+enter',
41
40
  query: {
@@ -58,16 +57,12 @@ const createHeadingPlugin = ()=>({
58
57
  then: (editor)=>{
59
58
  return {
60
59
  exitBreak: [
61
- // Pressing ENTER at the start or end of a heading text inserts a
62
- // normal paragraph.
63
60
  {
64
61
  hotkey: 'enter',
65
62
  query: {
66
63
  allow: _richtexttypes.HEADINGS,
67
64
  end: true,
68
65
  start: true,
69
- // Exclude headings inside lists as it interferes with the list's
70
- // insertBreak implementation
71
66
  filter: ([, path])=>!(0, _queries.getAboveNode)(editor, {
72
67
  at: path,
73
68
  match: {