@atlaskit/editor-core 153.1.5 → 157.0.0

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 (851) hide show
  1. package/CHANGELOG.md +195 -0
  2. package/dist/cjs/actions/index.js +34 -0
  3. package/dist/cjs/create-editor/ReactEditorView.js +33 -15
  4. package/dist/cjs/create-editor/create-editor.js +8 -3
  5. package/dist/cjs/create-editor/create-plugins-list.js +7 -7
  6. package/dist/cjs/labs/next/presets/cxhtml.js +3 -1
  7. package/dist/cjs/labs/next/presets/mobile.js +6 -9
  8. package/dist/cjs/plugins/alignment/pm-plugins/main.js +3 -1
  9. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/icon-map.js +30 -12
  10. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +4 -2
  11. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/messages.js +15 -0
  12. package/dist/cjs/plugins/analytics/plugin.js +2 -2
  13. package/dist/cjs/plugins/analytics/types/enums.js +3 -0
  14. package/dist/cjs/plugins/annotation/pm-plugins/inline-comment.js +2 -2
  15. package/dist/cjs/plugins/avatar-group/index.js +2 -2
  16. package/dist/cjs/plugins/avatar-group/messages.js +17 -0
  17. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +9 -3
  18. package/dist/cjs/plugins/base/pm-plugins/better-type-history.js +3 -1
  19. package/dist/cjs/plugins/base/pm-plugins/context-identifier.js +3 -1
  20. package/dist/cjs/plugins/base/pm-plugins/decoration.js +3 -1
  21. package/dist/cjs/plugins/base/pm-plugins/filter-steps.js +2 -2
  22. package/dist/cjs/plugins/base/pm-plugins/fix-chrome-88-selection.js +3 -1
  23. package/dist/cjs/plugins/base/pm-plugins/fix-chrome-spell-checking.js +3 -1
  24. package/dist/cjs/plugins/base/pm-plugins/focus-handler.js +3 -1
  25. package/dist/cjs/plugins/base/pm-plugins/frozen-editor.js +3 -1
  26. package/dist/cjs/plugins/base/pm-plugins/inline-cursor-target.js +3 -1
  27. package/dist/cjs/plugins/base/pm-plugins/newline-preserve-marks.js +3 -1
  28. package/dist/cjs/plugins/base/pm-plugins/react-nodeview.js +3 -1
  29. package/dist/cjs/plugins/base/pm-plugins/scroll-gutter.js +2 -2
  30. package/dist/cjs/plugins/block-type/pm-plugins/main.js +3 -1
  31. package/dist/cjs/plugins/breakout/index.js +2 -2
  32. package/dist/cjs/plugins/caption/pm-plugins/main.js +2 -2
  33. package/dist/cjs/plugins/card/index.js +13 -3
  34. package/dist/cjs/plugins/card/messages.js +40 -0
  35. package/dist/cjs/plugins/card/nodeviews/blockCard.js +3 -5
  36. package/dist/cjs/plugins/card/nodeviews/embedCard.js +10 -0
  37. package/dist/cjs/plugins/card/nodeviews/genericCard.js +32 -2
  38. package/dist/cjs/plugins/card/nodeviews/inlineCard.js +5 -23
  39. package/dist/cjs/plugins/card/pm-plugins/doc.js +55 -6
  40. package/dist/cjs/plugins/card/pm-plugins/keymap.js +89 -0
  41. package/dist/cjs/plugins/card/pm-plugins/main.js +3 -4
  42. package/dist/cjs/plugins/card/ui/LinkToolbarAppearance.js +21 -0
  43. package/dist/cjs/plugins/card/ui/LinkToolbarButtonGroup.js +20 -0
  44. package/dist/cjs/plugins/card/ui/LinkToolbarIconDropdown.js +20 -0
  45. package/dist/cjs/plugins/card/ui/ResizableEmbedCard.js +6 -2
  46. package/dist/cjs/plugins/card/ui/assets/card.js +37 -0
  47. package/dist/cjs/plugins/card/ui/assets/embed.js +37 -0
  48. package/dist/cjs/plugins/card/ui/assets/inline.js +37 -0
  49. package/dist/cjs/plugins/card/ui/assets/url.js +39 -0
  50. package/dist/cjs/plugins/card/ui/styled.js +14 -4
  51. package/dist/cjs/plugins/clear-marks-on-change-to-empty-document/index.js +3 -1
  52. package/dist/cjs/plugins/clipboard/pm-plugins/main.js +3 -1
  53. package/dist/cjs/plugins/code-bidi-warning/pm-plugins/main.js +2 -2
  54. package/dist/cjs/plugins/code-block/pm-plugins/ide-ux.js +3 -1
  55. package/dist/cjs/plugins/code-block/pm-plugins/keymaps.js +1 -1
  56. package/dist/cjs/plugins/code-block/pm-plugins/main.js +3 -1
  57. package/dist/cjs/plugins/code-block/toolbar.js +4 -2
  58. package/dist/cjs/plugins/collab-edit/actions.js +10 -0
  59. package/dist/cjs/plugins/collab-edit/events/initialize.js +16 -5
  60. package/dist/cjs/plugins/collab-edit/index.js +9 -8
  61. package/dist/cjs/plugins/collab-edit/native-collab-provider-plugin.js +46 -0
  62. package/dist/cjs/plugins/collab-edit/plugin.js +20 -2
  63. package/dist/cjs/plugins/collab-edit/provider/index.js +1 -9
  64. package/dist/cjs/plugins/context-panel/index.js +3 -1
  65. package/dist/cjs/plugins/custom-autoformat/index.js +2 -2
  66. package/dist/cjs/plugins/date/pm-plugins/main.js +2 -2
  67. package/dist/cjs/plugins/editor-disabled/index.js +3 -1
  68. package/dist/cjs/plugins/emoji/index.js +3 -1
  69. package/dist/cjs/plugins/emoji/nodeviews/emoji-next.js +3 -14
  70. package/dist/cjs/plugins/emoji/nodeviews/emoji.js +1 -15
  71. package/dist/cjs/plugins/expand/index.js +1 -1
  72. package/dist/cjs/plugins/expand/nodeviews/index.js +13 -3
  73. package/dist/cjs/plugins/expand/pm-plugins/keymap.js +13 -1
  74. package/dist/cjs/plugins/expand/pm-plugins/main.js +13 -5
  75. package/dist/cjs/plugins/expand/toolbar.js +2 -1
  76. package/dist/cjs/plugins/extension/pm-plugins/main.js +2 -2
  77. package/dist/cjs/plugins/extension/pm-plugins/unique-id.js +3 -1
  78. package/dist/cjs/plugins/extension/toolbar.js +10 -5
  79. package/dist/cjs/plugins/fake-text-cursor/index.js +3 -1
  80. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +11 -6
  81. package/dist/cjs/plugins/feature-flags-context/get-feature-flags.js +14 -0
  82. package/dist/cjs/plugins/feature-flags-context/index.js +8 -9
  83. package/dist/cjs/plugins/feature-flags-context/plugin-key.js +11 -0
  84. package/dist/cjs/plugins/find-replace/plugin.js +2 -2
  85. package/dist/cjs/plugins/find-replace/ui/Find.js +16 -12
  86. package/dist/cjs/plugins/floating-toolbar/index.js +3 -1
  87. package/dist/cjs/plugins/floating-toolbar/pm-plugins/toolbar-data/plugin.js +2 -2
  88. package/dist/cjs/plugins/floating-toolbar/ui/Button.js +8 -2
  89. package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +12 -5
  90. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +13 -5
  91. package/dist/cjs/plugins/floating-toolbar/ui/messages.js +10 -0
  92. package/dist/cjs/plugins/fragment/index.js +2 -2
  93. package/dist/cjs/plugins/fragment/pm-plugins/fragment-consistency.js +3 -1
  94. package/dist/cjs/plugins/help-dialog/index.js +2 -2
  95. package/dist/cjs/plugins/help-dialog/ui/index.js +2 -1
  96. package/dist/cjs/plugins/history/index.js +3 -1
  97. package/dist/cjs/plugins/hyperlink/Toolbar.js +6 -3
  98. package/dist/cjs/plugins/hyperlink/pm-plugins/fake-cursor-for-toolbar.js +2 -2
  99. package/dist/cjs/plugins/hyperlink/pm-plugins/main.js +49 -5
  100. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +6 -1
  101. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/messages.js +42 -0
  102. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/utils.js +58 -18
  103. package/dist/cjs/plugins/hyperlink/utils.js +4 -0
  104. package/dist/cjs/plugins/image-upload/pm-plugins/main.js +2 -2
  105. package/dist/cjs/plugins/jira-issue/index.js +3 -1
  106. package/dist/cjs/plugins/layout/pm-plugins/main.js +3 -1
  107. package/dist/cjs/plugins/layout/toolbar.js +4 -2
  108. package/dist/cjs/plugins/list/commands/indent-list.js +1 -7
  109. package/dist/cjs/plugins/list/commands/index.js +1 -1
  110. package/dist/cjs/plugins/list/commands/outdent-list.js +2 -1
  111. package/dist/cjs/plugins/list/pm-plugins/main.js +3 -1
  112. package/dist/cjs/plugins/list/utils/node.js +11 -3
  113. package/dist/cjs/plugins/list/utils/selection.js +10 -1
  114. package/dist/cjs/plugins/macro/index.js +2 -2
  115. package/dist/cjs/plugins/max-content-size/index.js +3 -1
  116. package/dist/cjs/plugins/media/index.js +2 -1
  117. package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +9 -3
  118. package/dist/cjs/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  119. package/dist/cjs/plugins/media/nodeviews/messages.js +17 -0
  120. package/dist/cjs/plugins/media/pm-plugins/alt-text/index.js +3 -1
  121. package/dist/cjs/plugins/media/pm-plugins/linking/index.js +3 -1
  122. package/dist/cjs/plugins/media/pm-plugins/main.js +17 -7
  123. package/dist/cjs/plugins/media/pm-plugins/media-editor.js +2 -2
  124. package/dist/cjs/plugins/media/toolbar/commands.js +58 -1
  125. package/dist/cjs/plugins/media/toolbar/index.js +8 -41
  126. package/dist/cjs/plugins/media/ui/Media/DropPlaceholder.js +16 -4
  127. package/dist/cjs/plugins/media/ui/Media/drop-placeholder-messages.js +17 -0
  128. package/dist/cjs/plugins/media/ui/ToolbarMedia/index.js +11 -4
  129. package/dist/cjs/plugins/media/ui/ToolbarMedia/toolbar-media-messages.js +17 -0
  130. package/dist/cjs/plugins/media/utils/media-common.js +5 -4
  131. package/dist/cjs/plugins/mentions/messages.js +10 -0
  132. package/dist/cjs/plugins/mentions/nodeviews/mention.js +3 -16
  133. package/dist/cjs/plugins/mentions/pm-plugins/main.js +2 -2
  134. package/dist/cjs/plugins/mentions/ui/InviteItem/index.js +5 -3
  135. package/dist/cjs/plugins/mentions/ui/ToolbarMention/index.js +10 -3
  136. package/dist/cjs/plugins/mobile-dimensions/index.js +16 -2
  137. package/dist/cjs/plugins/mobile-selection/content-in-selection.js +4 -4
  138. package/dist/cjs/plugins/mobile-selection/mobile-selection-plugin.js +3 -1
  139. package/dist/cjs/plugins/panel/pm-plugins/main.js +2 -2
  140. package/dist/cjs/plugins/panel/toolbar.js +13 -6
  141. package/dist/cjs/plugins/paste/handlers.js +31 -12
  142. package/dist/cjs/plugins/paste/index.js +3 -2
  143. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +22 -20
  144. package/dist/cjs/plugins/paste/pm-plugins/clipboard-text-serializer.js +44 -0
  145. package/dist/cjs/plugins/paste/pm-plugins/main.js +32 -3
  146. package/dist/cjs/plugins/paste/{util.js → util/index.js} +0 -0
  147. package/dist/cjs/plugins/paste/util/tinyMCE.js +218 -0
  148. package/dist/cjs/plugins/placeholder/index.js +3 -1
  149. package/dist/cjs/plugins/placeholder-text/index.js +3 -1
  150. package/dist/cjs/plugins/quick-insert/index.js +2 -2
  151. package/dist/cjs/plugins/rank.js +1 -1
  152. package/dist/cjs/plugins/scroll-into-view/index.js +3 -1
  153. package/dist/cjs/plugins/selection/pm-plugins/gap-cursor-main.js +3 -1
  154. package/dist/cjs/plugins/selection/pm-plugins/selection-main.js +3 -1
  155. package/dist/cjs/plugins/status/nodeviews/status.js +1 -15
  156. package/dist/cjs/plugins/status/plugin.js +3 -1
  157. package/dist/cjs/plugins/status/ui/statusPicker.js +2 -4
  158. package/dist/cjs/plugins/table/commands/misc.js +12 -1
  159. package/dist/cjs/plugins/table/index.js +2 -1
  160. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +1 -19
  161. package/dist/cjs/plugins/table/pm-plugins/decorations/plugin.js +3 -1
  162. package/dist/cjs/plugins/table/pm-plugins/main.js +2 -2
  163. package/dist/cjs/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +3 -1
  164. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +69 -32
  165. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -2
  166. package/dist/cjs/plugins/table/pm-plugins/table-local-id.js +3 -1
  167. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin.js +2 -2
  168. package/dist/cjs/plugins/table/toolbar.js +1 -0
  169. package/dist/cjs/plugins/table/ui/LayoutButton/index.js +86 -28
  170. package/dist/cjs/plugins/table/ui/common-styles.css.js +3 -2
  171. package/dist/cjs/plugins/tasks-and-decisions/pm-plugins/main.js +3 -1
  172. package/dist/cjs/plugins/text-color/index.js +0 -3
  173. package/dist/cjs/plugins/text-color/pm-plugins/main.js +5 -22
  174. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +9 -79
  175. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/styles.js +4 -8
  176. package/dist/cjs/plugins/text-formatting/pm-plugins/clear-formatting.js +3 -1
  177. package/dist/cjs/plugins/text-formatting/pm-plugins/cursor.js +3 -1
  178. package/dist/cjs/plugins/text-formatting/pm-plugins/main.js +2 -2
  179. package/dist/cjs/plugins/type-ahead/index.js +17 -0
  180. package/dist/cjs/plugins/type-ahead/messages.js +17 -0
  181. package/dist/cjs/plugins/type-ahead/pm-plugins/insert-item-plugin.js +2 -2
  182. package/dist/cjs/plugins/type-ahead/pm-plugins/main.js +10 -9
  183. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +12 -4
  184. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +9 -3
  185. package/dist/cjs/plugins/undo-redo/pm-plugins/main.js +2 -2
  186. package/dist/cjs/plugins/unsupported-content/index.js +3 -1
  187. package/dist/cjs/plugins/view-update-subscription/index.js +3 -1
  188. package/dist/cjs/plugins/width/index.js +3 -1
  189. package/dist/cjs/ui/Alignment/index.js +3 -1
  190. package/dist/cjs/ui/Appearance/FullPage/FullPageContentArea.js +8 -1
  191. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +14 -4
  192. package/dist/cjs/ui/Appearance/FullPage/messages.js +28 -0
  193. package/dist/cjs/ui/ChromeCollapsed/index.js +8 -2
  194. package/dist/cjs/ui/ChromeCollapsed/messages.js +17 -0
  195. package/dist/cjs/ui/ColorPalette/index.js +1 -3
  196. package/dist/cjs/ui/ConfigPanel/Header.js +5 -2
  197. package/dist/cjs/ui/ContentStyles/index.js +1 -1
  198. package/dist/cjs/ui/ContextPanel/index.js +3 -1
  199. package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +2 -3
  200. package/dist/cjs/ui/ToolbarHelp/index.js +18 -4
  201. package/dist/cjs/ui/ToolbarHelp/messages.js +17 -0
  202. package/dist/cjs/utils/document.js +17 -3
  203. package/dist/cjs/utils/keymap.js +2 -2
  204. package/dist/cjs/utils/performance/instrumented-plugin.js +20 -10
  205. package/dist/cjs/utils/performance/safer-transactions.js +59 -0
  206. package/dist/cjs/utils/plugin-state-factory.js +1 -1
  207. package/dist/cjs/version-wrapper.js +1 -1
  208. package/dist/cjs/version.json +1 -1
  209. package/dist/es2019/actions/index.js +33 -0
  210. package/dist/es2019/create-editor/ReactEditorView.js +34 -17
  211. package/dist/es2019/create-editor/create-editor.js +8 -3
  212. package/dist/es2019/create-editor/create-plugins-list.js +7 -7
  213. package/dist/es2019/labs/next/presets/cxhtml.js +3 -1
  214. package/dist/es2019/labs/next/presets/mobile.js +6 -9
  215. package/dist/es2019/plugins/alignment/pm-plugins/main.js +3 -2
  216. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/icon-map.js +25 -10
  217. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +5 -3
  218. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/messages.js +15 -0
  219. package/dist/es2019/plugins/analytics/plugin.js +2 -2
  220. package/dist/es2019/plugins/analytics/types/enums.js +3 -0
  221. package/dist/es2019/plugins/annotation/pm-plugins/inline-comment.js +2 -2
  222. package/dist/es2019/plugins/avatar-group/index.js +1 -1
  223. package/dist/es2019/plugins/avatar-group/messages.js +8 -0
  224. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +9 -3
  225. package/dist/es2019/plugins/base/pm-plugins/better-type-history.js +3 -2
  226. package/dist/es2019/plugins/base/pm-plugins/context-identifier.js +3 -2
  227. package/dist/es2019/plugins/base/pm-plugins/decoration.js +3 -2
  228. package/dist/es2019/plugins/base/pm-plugins/filter-steps.js +2 -2
  229. package/dist/es2019/plugins/base/pm-plugins/fix-chrome-88-selection.js +3 -2
  230. package/dist/es2019/plugins/base/pm-plugins/fix-chrome-spell-checking.js +3 -2
  231. package/dist/es2019/plugins/base/pm-plugins/focus-handler.js +3 -2
  232. package/dist/es2019/plugins/base/pm-plugins/frozen-editor.js +3 -2
  233. package/dist/es2019/plugins/base/pm-plugins/inline-cursor-target.js +3 -2
  234. package/dist/es2019/plugins/base/pm-plugins/newline-preserve-marks.js +3 -2
  235. package/dist/es2019/plugins/base/pm-plugins/react-nodeview.js +3 -2
  236. package/dist/es2019/plugins/base/pm-plugins/scroll-gutter.js +2 -2
  237. package/dist/es2019/plugins/block-type/pm-plugins/main.js +3 -2
  238. package/dist/es2019/plugins/breakout/index.js +2 -2
  239. package/dist/es2019/plugins/caption/pm-plugins/main.js +2 -2
  240. package/dist/es2019/plugins/card/index.js +11 -1
  241. package/dist/es2019/plugins/card/messages.js +40 -0
  242. package/dist/es2019/plugins/card/nodeviews/blockCard.js +2 -3
  243. package/dist/es2019/plugins/card/nodeviews/embedCard.js +8 -0
  244. package/dist/es2019/plugins/card/nodeviews/genericCard.js +14 -2
  245. package/dist/es2019/plugins/card/nodeviews/inlineCard.js +3 -12
  246. package/dist/es2019/plugins/card/pm-plugins/doc.js +46 -4
  247. package/dist/es2019/plugins/card/pm-plugins/keymap.js +72 -0
  248. package/dist/es2019/plugins/card/pm-plugins/main.js +3 -4
  249. package/dist/es2019/plugins/card/ui/LinkToolbarAppearance.js +19 -0
  250. package/dist/es2019/plugins/card/ui/LinkToolbarButtonGroup.js +7 -0
  251. package/dist/es2019/plugins/card/ui/LinkToolbarIconDropdown.js +7 -0
  252. package/dist/es2019/plugins/card/ui/ResizableEmbedCard.js +5 -2
  253. package/dist/es2019/plugins/card/ui/assets/card.js +24 -0
  254. package/dist/es2019/plugins/card/ui/assets/embed.js +24 -0
  255. package/dist/es2019/plugins/card/ui/assets/inline.js +24 -0
  256. package/dist/es2019/plugins/card/ui/assets/url.js +26 -0
  257. package/dist/es2019/plugins/card/ui/styled.js +4 -1
  258. package/dist/es2019/plugins/clear-marks-on-change-to-empty-document/index.js +3 -2
  259. package/dist/es2019/plugins/clipboard/pm-plugins/main.js +3 -2
  260. package/dist/es2019/plugins/code-bidi-warning/pm-plugins/main.js +2 -2
  261. package/dist/es2019/plugins/code-block/pm-plugins/ide-ux.js +3 -2
  262. package/dist/es2019/plugins/code-block/pm-plugins/keymaps.js +1 -1
  263. package/dist/es2019/plugins/code-block/pm-plugins/main.js +3 -2
  264. package/dist/es2019/plugins/code-block/toolbar.js +4 -2
  265. package/dist/es2019/plugins/collab-edit/actions.js +10 -0
  266. package/dist/es2019/plugins/collab-edit/events/initialize.js +11 -2
  267. package/dist/es2019/plugins/collab-edit/index.js +6 -1
  268. package/dist/es2019/plugins/collab-edit/native-collab-provider-plugin.js +32 -0
  269. package/dist/es2019/plugins/collab-edit/plugin.js +18 -2
  270. package/dist/es2019/plugins/collab-edit/provider/index.js +1 -2
  271. package/dist/es2019/plugins/context-panel/index.js +3 -2
  272. package/dist/es2019/plugins/custom-autoformat/index.js +2 -2
  273. package/dist/es2019/plugins/date/pm-plugins/main.js +2 -2
  274. package/dist/es2019/plugins/editor-disabled/index.js +3 -2
  275. package/dist/es2019/plugins/emoji/index.js +3 -2
  276. package/dist/es2019/plugins/emoji/nodeviews/emoji-next.js +3 -11
  277. package/dist/es2019/plugins/emoji/nodeviews/emoji.js +1 -8
  278. package/dist/es2019/plugins/expand/index.js +1 -1
  279. package/dist/es2019/plugins/expand/nodeviews/index.js +15 -3
  280. package/dist/es2019/plugins/expand/pm-plugins/keymap.js +15 -1
  281. package/dist/es2019/plugins/expand/pm-plugins/main.js +12 -5
  282. package/dist/es2019/plugins/expand/toolbar.js +2 -1
  283. package/dist/es2019/plugins/extension/pm-plugins/main.js +2 -2
  284. package/dist/es2019/plugins/extension/pm-plugins/unique-id.js +3 -2
  285. package/dist/es2019/plugins/extension/toolbar.js +10 -5
  286. package/dist/es2019/plugins/fake-text-cursor/index.js +2 -2
  287. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +11 -6
  288. package/dist/es2019/plugins/feature-flags-context/get-feature-flags.js +2 -0
  289. package/dist/es2019/plugins/feature-flags-context/index.js +3 -3
  290. package/dist/es2019/plugins/feature-flags-context/plugin-key.js +2 -0
  291. package/dist/es2019/plugins/find-replace/plugin.js +2 -2
  292. package/dist/es2019/plugins/find-replace/ui/Find.js +17 -12
  293. package/dist/es2019/plugins/floating-toolbar/index.js +3 -2
  294. package/dist/es2019/plugins/floating-toolbar/pm-plugins/toolbar-data/plugin.js +2 -2
  295. package/dist/es2019/plugins/floating-toolbar/ui/Button.js +8 -2
  296. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +12 -6
  297. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +13 -6
  298. package/dist/es2019/plugins/floating-toolbar/ui/messages.js +10 -0
  299. package/dist/es2019/plugins/fragment/index.js +2 -2
  300. package/dist/es2019/plugins/fragment/pm-plugins/fragment-consistency.js +3 -2
  301. package/dist/es2019/plugins/help-dialog/index.js +2 -2
  302. package/dist/es2019/plugins/help-dialog/ui/index.js +2 -1
  303. package/dist/es2019/plugins/history/index.js +3 -2
  304. package/dist/es2019/plugins/hyperlink/Toolbar.js +6 -3
  305. package/dist/es2019/plugins/hyperlink/pm-plugins/fake-cursor-for-toolbar.js +2 -2
  306. package/dist/es2019/plugins/hyperlink/pm-plugins/main.js +55 -6
  307. package/dist/es2019/plugins/hyperlink/styles.js +1 -0
  308. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +6 -1
  309. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/messages.js +33 -0
  310. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/utils.js +69 -18
  311. package/dist/es2019/plugins/hyperlink/utils.js +4 -0
  312. package/dist/es2019/plugins/image-upload/pm-plugins/main.js +2 -2
  313. package/dist/es2019/plugins/jira-issue/index.js +3 -2
  314. package/dist/es2019/plugins/layout/pm-plugins/main.js +3 -2
  315. package/dist/es2019/plugins/layout/toolbar.js +4 -2
  316. package/dist/es2019/plugins/list/commands/indent-list.js +2 -9
  317. package/dist/es2019/plugins/list/commands/index.js +1 -1
  318. package/dist/es2019/plugins/list/commands/outdent-list.js +3 -2
  319. package/dist/es2019/plugins/list/pm-plugins/main.js +3 -2
  320. package/dist/es2019/plugins/list/utils/node.js +11 -3
  321. package/dist/es2019/plugins/list/utils/selection.js +8 -1
  322. package/dist/es2019/plugins/macro/index.js +2 -2
  323. package/dist/es2019/plugins/max-content-size/index.js +3 -2
  324. package/dist/es2019/plugins/media/index.js +2 -1
  325. package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +8 -3
  326. package/dist/es2019/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  327. package/dist/es2019/plugins/media/nodeviews/messages.js +8 -0
  328. package/dist/es2019/plugins/media/pm-plugins/alt-text/index.js +3 -2
  329. package/dist/es2019/plugins/media/pm-plugins/linking/index.js +3 -2
  330. package/dist/es2019/plugins/media/pm-plugins/main.js +16 -8
  331. package/dist/es2019/plugins/media/pm-plugins/media-editor.js +2 -2
  332. package/dist/es2019/plugins/media/toolbar/commands.js +50 -0
  333. package/dist/es2019/plugins/media/toolbar/index.js +4 -35
  334. package/dist/es2019/plugins/media/ui/Media/DropPlaceholder.js +18 -4
  335. package/dist/es2019/plugins/media/ui/Media/drop-placeholder-messages.js +8 -0
  336. package/dist/es2019/plugins/media/ui/ToolbarMedia/index.js +10 -4
  337. package/dist/es2019/plugins/media/ui/ToolbarMedia/toolbar-media-messages.js +8 -0
  338. package/dist/es2019/plugins/media/utils/media-common.js +6 -5
  339. package/dist/es2019/plugins/mentions/messages.js +10 -0
  340. package/dist/es2019/plugins/mentions/nodeviews/mention.js +8 -12
  341. package/dist/es2019/plugins/mentions/pm-plugins/main.js +2 -2
  342. package/dist/es2019/plugins/mentions/ui/InviteItem/index.js +5 -4
  343. package/dist/es2019/plugins/mentions/ui/ToolbarMention/index.js +10 -4
  344. package/dist/es2019/plugins/mobile-dimensions/index.js +16 -2
  345. package/dist/es2019/plugins/mobile-selection/content-in-selection.js +4 -4
  346. package/dist/es2019/plugins/mobile-selection/mobile-selection-plugin.js +3 -2
  347. package/dist/es2019/plugins/panel/pm-plugins/main.js +2 -2
  348. package/dist/es2019/plugins/panel/toolbar.js +13 -6
  349. package/dist/es2019/plugins/paste/handlers.js +34 -13
  350. package/dist/es2019/plugins/paste/index.js +3 -2
  351. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +22 -20
  352. package/dist/es2019/plugins/paste/pm-plugins/clipboard-text-serializer.js +37 -0
  353. package/dist/es2019/plugins/paste/pm-plugins/main.js +31 -4
  354. package/dist/es2019/plugins/paste/{util.js → util/index.js} +0 -0
  355. package/dist/es2019/plugins/paste/util/tinyMCE.js +185 -0
  356. package/dist/es2019/plugins/placeholder/index.js +3 -2
  357. package/dist/es2019/plugins/placeholder-text/index.js +3 -2
  358. package/dist/es2019/plugins/quick-insert/index.js +2 -2
  359. package/dist/es2019/plugins/rank.js +1 -1
  360. package/dist/es2019/plugins/scroll-into-view/index.js +3 -2
  361. package/dist/es2019/plugins/selection/pm-plugins/gap-cursor-main.js +3 -2
  362. package/dist/es2019/plugins/selection/pm-plugins/selection-main.js +3 -2
  363. package/dist/es2019/plugins/status/nodeviews/status.js +1 -8
  364. package/dist/es2019/plugins/status/plugin.js +3 -2
  365. package/dist/es2019/plugins/status/ui/statusPicker.js +2 -4
  366. package/dist/es2019/plugins/table/commands/misc.js +12 -1
  367. package/dist/es2019/plugins/table/index.js +2 -1
  368. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +1 -17
  369. package/dist/es2019/plugins/table/pm-plugins/decorations/plugin.js +3 -2
  370. package/dist/es2019/plugins/table/pm-plugins/main.js +2 -2
  371. package/dist/es2019/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +3 -2
  372. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +64 -30
  373. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -2
  374. package/dist/es2019/plugins/table/pm-plugins/table-local-id.js +3 -2
  375. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin.js +2 -2
  376. package/dist/es2019/plugins/table/toolbar.js +2 -1
  377. package/dist/es2019/plugins/table/ui/LayoutButton/index.js +80 -23
  378. package/dist/es2019/plugins/table/ui/common-styles.css.js +18 -5
  379. package/dist/es2019/plugins/tasks-and-decisions/pm-plugins/main.js +3 -2
  380. package/dist/es2019/plugins/text-color/index.js +0 -3
  381. package/dist/es2019/plugins/text-color/pm-plugins/main.js +6 -24
  382. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +10 -83
  383. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/styles.js +1 -12
  384. package/dist/es2019/plugins/text-formatting/pm-plugins/clear-formatting.js +3 -2
  385. package/dist/es2019/plugins/text-formatting/pm-plugins/cursor.js +3 -2
  386. package/dist/es2019/plugins/text-formatting/pm-plugins/main.js +2 -2
  387. package/dist/es2019/plugins/type-ahead/index.js +16 -0
  388. package/dist/es2019/plugins/type-ahead/messages.js +8 -0
  389. package/dist/es2019/plugins/type-ahead/pm-plugins/insert-item-plugin.js +2 -2
  390. package/dist/es2019/plugins/type-ahead/pm-plugins/main.js +9 -8
  391. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +12 -4
  392. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +7 -3
  393. package/dist/es2019/plugins/undo-redo/pm-plugins/main.js +2 -2
  394. package/dist/es2019/plugins/unsupported-content/index.js +3 -2
  395. package/dist/es2019/plugins/view-update-subscription/index.js +3 -2
  396. package/dist/es2019/plugins/width/index.js +3 -2
  397. package/dist/es2019/ui/Alignment/index.js +4 -2
  398. package/dist/es2019/ui/Appearance/FullPage/FullPageContentArea.js +7 -2
  399. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +11 -4
  400. package/dist/es2019/ui/Appearance/FullPage/messages.js +18 -0
  401. package/dist/es2019/ui/ChromeCollapsed/index.js +8 -3
  402. package/dist/es2019/ui/ChromeCollapsed/messages.js +8 -0
  403. package/dist/es2019/ui/ColorPalette/index.js +1 -3
  404. package/dist/es2019/ui/ConfigPanel/Header.js +5 -2
  405. package/dist/es2019/ui/ContentStyles/index.js +2 -3
  406. package/dist/es2019/ui/ContextPanel/index.js +3 -1
  407. package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +2 -3
  408. package/dist/es2019/ui/ToolbarHelp/index.js +26 -11
  409. package/dist/es2019/ui/ToolbarHelp/messages.js +8 -0
  410. package/dist/es2019/utils/document.js +19 -5
  411. package/dist/es2019/utils/keymap.js +2 -2
  412. package/dist/es2019/utils/performance/instrumented-plugin.js +16 -8
  413. package/dist/es2019/utils/performance/safer-transactions.js +43 -0
  414. package/dist/es2019/utils/plugin-state-factory.js +1 -1
  415. package/dist/es2019/version-wrapper.js +1 -1
  416. package/dist/es2019/version.json +1 -1
  417. package/dist/esm/actions/index.js +33 -0
  418. package/dist/esm/create-editor/ReactEditorView.js +32 -15
  419. package/dist/esm/create-editor/create-editor.js +8 -3
  420. package/dist/esm/create-editor/create-plugins-list.js +7 -7
  421. package/dist/esm/labs/next/presets/cxhtml.js +3 -1
  422. package/dist/esm/labs/next/presets/mobile.js +6 -9
  423. package/dist/esm/plugins/alignment/pm-plugins/main.js +3 -2
  424. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/icon-map.js +24 -10
  425. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +5 -3
  426. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/messages.js +15 -0
  427. package/dist/esm/plugins/analytics/plugin.js +2 -2
  428. package/dist/esm/plugins/analytics/types/enums.js +3 -0
  429. package/dist/esm/plugins/annotation/pm-plugins/inline-comment.js +2 -2
  430. package/dist/esm/plugins/avatar-group/index.js +1 -1
  431. package/dist/esm/plugins/avatar-group/messages.js +8 -0
  432. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +9 -3
  433. package/dist/esm/plugins/base/pm-plugins/better-type-history.js +3 -2
  434. package/dist/esm/plugins/base/pm-plugins/context-identifier.js +3 -2
  435. package/dist/esm/plugins/base/pm-plugins/decoration.js +3 -2
  436. package/dist/esm/plugins/base/pm-plugins/filter-steps.js +2 -2
  437. package/dist/esm/plugins/base/pm-plugins/fix-chrome-88-selection.js +3 -2
  438. package/dist/esm/plugins/base/pm-plugins/fix-chrome-spell-checking.js +3 -2
  439. package/dist/esm/plugins/base/pm-plugins/focus-handler.js +3 -2
  440. package/dist/esm/plugins/base/pm-plugins/frozen-editor.js +3 -2
  441. package/dist/esm/plugins/base/pm-plugins/inline-cursor-target.js +3 -2
  442. package/dist/esm/plugins/base/pm-plugins/newline-preserve-marks.js +3 -2
  443. package/dist/esm/plugins/base/pm-plugins/react-nodeview.js +3 -2
  444. package/dist/esm/plugins/base/pm-plugins/scroll-gutter.js +2 -2
  445. package/dist/esm/plugins/block-type/pm-plugins/main.js +3 -2
  446. package/dist/esm/plugins/breakout/index.js +2 -2
  447. package/dist/esm/plugins/caption/pm-plugins/main.js +2 -2
  448. package/dist/esm/plugins/card/index.js +12 -3
  449. package/dist/esm/plugins/card/messages.js +40 -0
  450. package/dist/esm/plugins/card/nodeviews/blockCard.js +4 -5
  451. package/dist/esm/plugins/card/nodeviews/embedCard.js +10 -0
  452. package/dist/esm/plugins/card/nodeviews/genericCard.js +31 -3
  453. package/dist/esm/plugins/card/nodeviews/inlineCard.js +6 -16
  454. package/dist/esm/plugins/card/pm-plugins/doc.js +49 -4
  455. package/dist/esm/plugins/card/pm-plugins/keymap.js +71 -0
  456. package/dist/esm/plugins/card/pm-plugins/main.js +3 -4
  457. package/dist/esm/plugins/card/ui/LinkToolbarAppearance.js +18 -0
  458. package/dist/esm/plugins/card/ui/LinkToolbarButtonGroup.js +10 -0
  459. package/dist/esm/plugins/card/ui/LinkToolbarIconDropdown.js +10 -0
  460. package/dist/esm/plugins/card/ui/ResizableEmbedCard.js +5 -2
  461. package/dist/esm/plugins/card/ui/assets/card.js +24 -0
  462. package/dist/esm/plugins/card/ui/assets/embed.js +24 -0
  463. package/dist/esm/plugins/card/ui/assets/inline.js +24 -0
  464. package/dist/esm/plugins/card/ui/assets/url.js +26 -0
  465. package/dist/esm/plugins/card/ui/styled.js +4 -3
  466. package/dist/esm/plugins/clear-marks-on-change-to-empty-document/index.js +3 -2
  467. package/dist/esm/plugins/clipboard/pm-plugins/main.js +3 -2
  468. package/dist/esm/plugins/code-bidi-warning/pm-plugins/main.js +2 -2
  469. package/dist/esm/plugins/code-block/pm-plugins/ide-ux.js +3 -2
  470. package/dist/esm/plugins/code-block/pm-plugins/keymaps.js +1 -1
  471. package/dist/esm/plugins/code-block/pm-plugins/main.js +3 -2
  472. package/dist/esm/plugins/code-block/toolbar.js +4 -2
  473. package/dist/esm/plugins/collab-edit/actions.js +10 -0
  474. package/dist/esm/plugins/collab-edit/events/initialize.js +16 -5
  475. package/dist/esm/plugins/collab-edit/index.js +8 -1
  476. package/dist/esm/plugins/collab-edit/native-collab-provider-plugin.js +31 -0
  477. package/dist/esm/plugins/collab-edit/plugin.js +18 -2
  478. package/dist/esm/plugins/collab-edit/provider/index.js +1 -2
  479. package/dist/esm/plugins/context-panel/index.js +3 -2
  480. package/dist/esm/plugins/custom-autoformat/index.js +2 -2
  481. package/dist/esm/plugins/date/pm-plugins/main.js +2 -2
  482. package/dist/esm/plugins/editor-disabled/index.js +3 -2
  483. package/dist/esm/plugins/emoji/index.js +3 -2
  484. package/dist/esm/plugins/emoji/nodeviews/emoji-next.js +3 -13
  485. package/dist/esm/plugins/emoji/nodeviews/emoji.js +1 -8
  486. package/dist/esm/plugins/expand/index.js +1 -1
  487. package/dist/esm/plugins/expand/nodeviews/index.js +14 -3
  488. package/dist/esm/plugins/expand/pm-plugins/keymap.js +13 -1
  489. package/dist/esm/plugins/expand/pm-plugins/main.js +13 -5
  490. package/dist/esm/plugins/expand/toolbar.js +2 -1
  491. package/dist/esm/plugins/extension/pm-plugins/main.js +2 -2
  492. package/dist/esm/plugins/extension/pm-plugins/unique-id.js +3 -2
  493. package/dist/esm/plugins/extension/toolbar.js +10 -5
  494. package/dist/esm/plugins/fake-text-cursor/index.js +2 -2
  495. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +11 -6
  496. package/dist/esm/plugins/feature-flags-context/get-feature-flags.js +4 -0
  497. package/dist/esm/plugins/feature-flags-context/index.js +3 -3
  498. package/dist/esm/plugins/feature-flags-context/plugin-key.js +2 -0
  499. package/dist/esm/plugins/find-replace/plugin.js +2 -2
  500. package/dist/esm/plugins/find-replace/ui/Find.js +17 -12
  501. package/dist/esm/plugins/floating-toolbar/index.js +3 -2
  502. package/dist/esm/plugins/floating-toolbar/pm-plugins/toolbar-data/plugin.js +2 -2
  503. package/dist/esm/plugins/floating-toolbar/ui/Button.js +8 -2
  504. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +8 -5
  505. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +9 -5
  506. package/dist/esm/plugins/floating-toolbar/ui/messages.js +10 -0
  507. package/dist/esm/plugins/fragment/index.js +2 -2
  508. package/dist/esm/plugins/fragment/pm-plugins/fragment-consistency.js +3 -2
  509. package/dist/esm/plugins/help-dialog/index.js +2 -2
  510. package/dist/esm/plugins/help-dialog/ui/index.js +2 -1
  511. package/dist/esm/plugins/history/index.js +3 -2
  512. package/dist/esm/plugins/hyperlink/Toolbar.js +6 -3
  513. package/dist/esm/plugins/hyperlink/pm-plugins/fake-cursor-for-toolbar.js +2 -2
  514. package/dist/esm/plugins/hyperlink/pm-plugins/main.js +49 -6
  515. package/dist/esm/plugins/hyperlink/styles.js +1 -0
  516. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +6 -1
  517. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/messages.js +33 -0
  518. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/utils.js +57 -18
  519. package/dist/esm/plugins/hyperlink/utils.js +4 -0
  520. package/dist/esm/plugins/image-upload/pm-plugins/main.js +2 -2
  521. package/dist/esm/plugins/jira-issue/index.js +3 -2
  522. package/dist/esm/plugins/layout/pm-plugins/main.js +3 -2
  523. package/dist/esm/plugins/layout/toolbar.js +4 -2
  524. package/dist/esm/plugins/list/commands/indent-list.js +2 -8
  525. package/dist/esm/plugins/list/commands/index.js +1 -1
  526. package/dist/esm/plugins/list/commands/outdent-list.js +3 -2
  527. package/dist/esm/plugins/list/pm-plugins/main.js +3 -2
  528. package/dist/esm/plugins/list/utils/node.js +11 -3
  529. package/dist/esm/plugins/list/utils/selection.js +7 -1
  530. package/dist/esm/plugins/macro/index.js +2 -2
  531. package/dist/esm/plugins/max-content-size/index.js +3 -2
  532. package/dist/esm/plugins/media/index.js +2 -1
  533. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +6 -3
  534. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  535. package/dist/esm/plugins/media/nodeviews/messages.js +8 -0
  536. package/dist/esm/plugins/media/pm-plugins/alt-text/index.js +3 -2
  537. package/dist/esm/plugins/media/pm-plugins/linking/index.js +3 -2
  538. package/dist/esm/plugins/media/pm-plugins/main.js +16 -8
  539. package/dist/esm/plugins/media/pm-plugins/media-editor.js +2 -2
  540. package/dist/esm/plugins/media/toolbar/commands.js +49 -0
  541. package/dist/esm/plugins/media/toolbar/index.js +9 -39
  542. package/dist/esm/plugins/media/ui/Media/DropPlaceholder.js +14 -4
  543. package/dist/esm/plugins/media/ui/Media/drop-placeholder-messages.js +8 -0
  544. package/dist/esm/plugins/media/ui/ToolbarMedia/index.js +8 -4
  545. package/dist/esm/plugins/media/ui/ToolbarMedia/toolbar-media-messages.js +8 -0
  546. package/dist/esm/plugins/media/utils/media-common.js +5 -4
  547. package/dist/esm/plugins/mentions/messages.js +10 -0
  548. package/dist/esm/plugins/mentions/nodeviews/mention.js +3 -9
  549. package/dist/esm/plugins/mentions/pm-plugins/main.js +2 -2
  550. package/dist/esm/plugins/mentions/ui/InviteItem/index.js +5 -4
  551. package/dist/esm/plugins/mentions/ui/ToolbarMention/index.js +6 -3
  552. package/dist/esm/plugins/mobile-dimensions/index.js +16 -2
  553. package/dist/esm/plugins/mobile-selection/content-in-selection.js +4 -4
  554. package/dist/esm/plugins/mobile-selection/mobile-selection-plugin.js +3 -2
  555. package/dist/esm/plugins/panel/pm-plugins/main.js +2 -2
  556. package/dist/esm/plugins/panel/toolbar.js +13 -6
  557. package/dist/esm/plugins/paste/handlers.js +31 -12
  558. package/dist/esm/plugins/paste/index.js +3 -2
  559. package/dist/esm/plugins/paste/pm-plugins/analytics.js +22 -20
  560. package/dist/esm/plugins/paste/pm-plugins/clipboard-text-serializer.js +37 -0
  561. package/dist/esm/plugins/paste/pm-plugins/main.js +30 -4
  562. package/dist/esm/plugins/paste/{util.js → util/index.js} +0 -0
  563. package/dist/esm/plugins/paste/util/tinyMCE.js +195 -0
  564. package/dist/esm/plugins/placeholder/index.js +3 -2
  565. package/dist/esm/plugins/placeholder-text/index.js +3 -2
  566. package/dist/esm/plugins/quick-insert/index.js +2 -2
  567. package/dist/esm/plugins/rank.js +1 -1
  568. package/dist/esm/plugins/scroll-into-view/index.js +3 -2
  569. package/dist/esm/plugins/selection/pm-plugins/gap-cursor-main.js +3 -2
  570. package/dist/esm/plugins/selection/pm-plugins/selection-main.js +3 -2
  571. package/dist/esm/plugins/status/nodeviews/status.js +1 -8
  572. package/dist/esm/plugins/status/plugin.js +3 -2
  573. package/dist/esm/plugins/status/ui/statusPicker.js +2 -4
  574. package/dist/esm/plugins/table/commands/misc.js +12 -1
  575. package/dist/esm/plugins/table/index.js +2 -1
  576. package/dist/esm/plugins/table/nodeviews/TableComponent.js +1 -19
  577. package/dist/esm/plugins/table/pm-plugins/decorations/plugin.js +3 -2
  578. package/dist/esm/plugins/table/pm-plugins/main.js +2 -2
  579. package/dist/esm/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +3 -2
  580. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +73 -37
  581. package/dist/esm/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -2
  582. package/dist/esm/plugins/table/pm-plugins/table-local-id.js +3 -2
  583. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin.js +2 -2
  584. package/dist/esm/plugins/table/toolbar.js +2 -1
  585. package/dist/esm/plugins/table/ui/LayoutButton/index.js +85 -28
  586. package/dist/esm/plugins/table/ui/common-styles.css.js +3 -2
  587. package/dist/esm/plugins/tasks-and-decisions/pm-plugins/main.js +3 -2
  588. package/dist/esm/plugins/text-color/index.js +0 -3
  589. package/dist/esm/plugins/text-color/pm-plugins/main.js +6 -24
  590. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +10 -79
  591. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/styles.js +4 -5
  592. package/dist/esm/plugins/text-formatting/pm-plugins/clear-formatting.js +3 -2
  593. package/dist/esm/plugins/text-formatting/pm-plugins/cursor.js +3 -2
  594. package/dist/esm/plugins/text-formatting/pm-plugins/main.js +2 -2
  595. package/dist/esm/plugins/type-ahead/index.js +17 -0
  596. package/dist/esm/plugins/type-ahead/messages.js +8 -0
  597. package/dist/esm/plugins/type-ahead/pm-plugins/insert-item-plugin.js +2 -2
  598. package/dist/esm/plugins/type-ahead/pm-plugins/main.js +10 -9
  599. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +12 -4
  600. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +7 -3
  601. package/dist/esm/plugins/undo-redo/pm-plugins/main.js +2 -2
  602. package/dist/esm/plugins/unsupported-content/index.js +3 -2
  603. package/dist/esm/plugins/view-update-subscription/index.js +3 -2
  604. package/dist/esm/plugins/width/index.js +3 -2
  605. package/dist/esm/ui/Alignment/index.js +4 -2
  606. package/dist/esm/ui/Appearance/FullPage/FullPageContentArea.js +7 -2
  607. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +11 -4
  608. package/dist/esm/ui/Appearance/FullPage/messages.js +18 -0
  609. package/dist/esm/ui/ChromeCollapsed/index.js +4 -2
  610. package/dist/esm/ui/ChromeCollapsed/messages.js +8 -0
  611. package/dist/esm/ui/ColorPalette/index.js +1 -3
  612. package/dist/esm/ui/ConfigPanel/Header.js +5 -2
  613. package/dist/esm/ui/ContentStyles/index.js +2 -2
  614. package/dist/esm/ui/ContextPanel/index.js +3 -1
  615. package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +2 -3
  616. package/dist/esm/ui/ToolbarHelp/index.js +18 -5
  617. package/dist/esm/ui/ToolbarHelp/messages.js +8 -0
  618. package/dist/esm/utils/document.js +18 -4
  619. package/dist/esm/utils/keymap.js +2 -2
  620. package/dist/esm/utils/performance/instrumented-plugin.js +20 -11
  621. package/dist/esm/utils/performance/safer-transactions.js +47 -0
  622. package/dist/esm/utils/plugin-state-factory.js +1 -1
  623. package/dist/esm/version-wrapper.js +1 -1
  624. package/dist/esm/version.json +1 -1
  625. package/dist/types/actions/index.d.ts +11 -0
  626. package/dist/types/create-editor/create-editor.d.ts +2 -2
  627. package/dist/types/create-editor/get-plugins.d.ts +3 -2
  628. package/dist/types/plugins/alignment/pm-plugins/keymap.d.ts +2 -2
  629. package/dist/types/plugins/alignment/pm-plugins/main.d.ts +3 -2
  630. package/dist/types/plugins/alignment/ui/ToolbarAlignment/icon-map.d.ts +4 -4
  631. package/dist/types/plugins/alignment/ui/ToolbarAlignment/messages.d.ts +15 -0
  632. package/dist/types/plugins/analytics/types/enums.d.ts +3 -0
  633. package/dist/types/plugins/analytics/types/events.d.ts +8 -2
  634. package/dist/types/plugins/analytics/types/experimental-events.d.ts +1 -8
  635. package/dist/types/plugins/analytics/types/general-events.d.ts +5 -1
  636. package/dist/types/plugins/analytics/types/media-events.d.ts +6 -1
  637. package/dist/types/plugins/analytics/types/paste-events.d.ts +1 -0
  638. package/dist/types/plugins/analytics/utils.d.ts +2 -2
  639. package/dist/types/plugins/annotation/pm-plugins/inline-comment.d.ts +2 -2
  640. package/dist/types/plugins/annotation/pm-plugins/keymap.d.ts +2 -2
  641. package/dist/types/plugins/annotation/pm-plugins/plugin-factory.d.ts +1 -2
  642. package/dist/types/plugins/avatar-group/messages.d.ts +7 -0
  643. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +2 -1
  644. package/dist/types/plugins/base/pm-plugins/better-type-history.d.ts +2 -2
  645. package/dist/types/plugins/base/pm-plugins/context-identifier.d.ts +3 -2
  646. package/dist/types/plugins/base/pm-plugins/decoration.d.ts +3 -2
  647. package/dist/types/plugins/base/pm-plugins/filter-steps.d.ts +2 -2
  648. package/dist/types/plugins/base/pm-plugins/fix-chrome-88-selection.d.ts +3 -2
  649. package/dist/types/plugins/base/pm-plugins/fix-chrome-spell-checking.d.ts +2 -2
  650. package/dist/types/plugins/base/pm-plugins/focus-handler.d.ts +3 -2
  651. package/dist/types/plugins/base/pm-plugins/frozen-editor.d.ts +3 -2
  652. package/dist/types/plugins/base/pm-plugins/inline-cursor-target.d.ts +5 -4
  653. package/dist/types/plugins/base/pm-plugins/newline-preserve-marks.d.ts +3 -2
  654. package/dist/types/plugins/base/pm-plugins/react-nodeview.d.ts +4 -3
  655. package/dist/types/plugins/base/pm-plugins/scroll-gutter.d.ts +2 -2
  656. package/dist/types/plugins/block-type/pm-plugins/input-rule.d.ts +2 -2
  657. package/dist/types/plugins/block-type/pm-plugins/keymap.d.ts +2 -2
  658. package/dist/types/plugins/block-type/pm-plugins/main.d.ts +3 -7
  659. package/dist/types/plugins/caption/pm-plugins/keymap.d.ts +2 -2
  660. package/dist/types/plugins/caption/pm-plugins/main.d.ts +2 -2
  661. package/dist/types/plugins/card/messages.d.ts +40 -0
  662. package/dist/types/plugins/card/nodeviews/blockCard.d.ts +3 -3
  663. package/dist/types/plugins/card/nodeviews/embedCard.d.ts +1 -0
  664. package/dist/types/plugins/card/nodeviews/genericCard.d.ts +4 -0
  665. package/dist/types/plugins/card/nodeviews/inlineCard.d.ts +3 -6
  666. package/dist/types/plugins/card/pm-plugins/doc.d.ts +1 -0
  667. package/dist/types/plugins/card/pm-plugins/keymap.d.ts +3 -0
  668. package/dist/types/plugins/card/pm-plugins/main.d.ts +3 -3
  669. package/dist/types/plugins/card/pm-plugins/util/state.d.ts +2 -2
  670. package/dist/types/plugins/card/ui/LinkToolbarButtonGroup.d.ts +5 -0
  671. package/dist/types/plugins/card/ui/LinkToolbarIconDropdown.d.ts +5 -0
  672. package/dist/types/plugins/card/ui/assets/card.d.ts +3 -0
  673. package/dist/types/plugins/card/ui/assets/embed.d.ts +3 -0
  674. package/dist/types/plugins/card/ui/assets/inline.d.ts +3 -0
  675. package/dist/types/plugins/card/ui/assets/url.d.ts +3 -0
  676. package/dist/types/plugins/card/ui/styled.d.ts +2 -0
  677. package/dist/types/plugins/clear-marks-on-change-to-empty-document/index.d.ts +3 -2
  678. package/dist/types/plugins/clipboard/pm-plugins/main.d.ts +2 -2
  679. package/dist/types/plugins/code-bidi-warning/pm-plugins/main.d.ts +2 -2
  680. package/dist/types/plugins/code-bidi-warning/pm-plugins/plugin-factory.d.ts +1 -1
  681. package/dist/types/plugins/code-block/pm-plugins/ide-ux.d.ts +2 -2
  682. package/dist/types/plugins/code-block/pm-plugins/keymaps.d.ts +2 -2
  683. package/dist/types/plugins/code-block/pm-plugins/main.d.ts +2 -2
  684. package/dist/types/plugins/collab-edit/index.d.ts +0 -1
  685. package/dist/types/plugins/collab-edit/native-collab-provider-plugin.d.ts +7 -0
  686. package/dist/types/plugins/collab-edit/plugin-state.d.ts +2 -2
  687. package/dist/types/plugins/collab-edit/plugin.d.ts +2 -2
  688. package/dist/types/plugins/collab-edit/provider/index.d.ts +0 -1
  689. package/dist/types/plugins/collab-edit/types.d.ts +4 -0
  690. package/dist/types/plugins/custom-autoformat/index.d.ts +3 -2
  691. package/dist/types/plugins/date/pm-plugins/keymap.d.ts +2 -2
  692. package/dist/types/plugins/date/pm-plugins/utils.d.ts +3 -3
  693. package/dist/types/plugins/editor-disabled/index.d.ts +3 -2
  694. package/dist/types/plugins/emoji/index.d.ts +3 -2
  695. package/dist/types/plugins/emoji/pm-plugins/ascii-input-rules.d.ts +4 -3
  696. package/dist/types/plugins/emoji/types.d.ts +0 -1
  697. package/dist/types/plugins/expand/index.d.ts +1 -0
  698. package/dist/types/plugins/expand/nodeviews/index.d.ts +6 -2
  699. package/dist/types/plugins/expand/pm-plugins/keymap.d.ts +2 -2
  700. package/dist/types/plugins/expand/pm-plugins/main.d.ts +3 -2
  701. package/dist/types/plugins/expand/pm-plugins/plugin-factory.d.ts +1 -1
  702. package/dist/types/plugins/extension/plugin-factory.d.ts +1 -1
  703. package/dist/types/plugins/extension/pm-plugins/keymap.d.ts +2 -2
  704. package/dist/types/plugins/extension/pm-plugins/main.d.ts +2 -2
  705. package/dist/types/plugins/extension/pm-plugins/unique-id.d.ts +2 -2
  706. package/dist/types/plugins/fake-text-cursor/index.d.ts +2 -2
  707. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -1
  708. package/dist/types/plugins/feature-flags-context/get-feature-flags.d.ts +3 -0
  709. package/dist/types/plugins/feature-flags-context/index.d.ts +1 -2
  710. package/dist/types/plugins/feature-flags-context/plugin-key.d.ts +2 -0
  711. package/dist/types/plugins/find-replace/keymap.d.ts +2 -1
  712. package/dist/types/plugins/find-replace/plugin.d.ts +3 -3
  713. package/dist/types/plugins/find-replace/utils/index.d.ts +2 -2
  714. package/dist/types/plugins/floating-toolbar/pm-plugins/toolbar-data/plugin-factory.d.ts +1 -1
  715. package/dist/types/plugins/floating-toolbar/pm-plugins/toolbar-data/plugin.d.ts +2 -2
  716. package/dist/types/plugins/floating-toolbar/types.d.ts +1 -0
  717. package/dist/types/plugins/floating-toolbar/ui/Button.d.ts +2 -1
  718. package/dist/types/plugins/floating-toolbar/ui/DropdownMenu.d.ts +6 -5
  719. package/dist/types/plugins/floating-toolbar/ui/Toolbar.d.ts +6 -5
  720. package/dist/types/plugins/floating-toolbar/ui/messages.d.ts +10 -0
  721. package/dist/types/plugins/fragment/index.d.ts +2 -2
  722. package/dist/types/plugins/fragment/pm-plugins/fragment-consistency.d.ts +2 -2
  723. package/dist/types/plugins/help-dialog/index.d.ts +2 -2
  724. package/dist/types/plugins/hyperlink/pm-plugins/fake-cursor-for-toolbar.d.ts +2 -2
  725. package/dist/types/plugins/hyperlink/pm-plugins/input-rule.d.ts +2 -2
  726. package/dist/types/plugins/hyperlink/pm-plugins/keymap.d.ts +2 -2
  727. package/dist/types/plugins/hyperlink/pm-plugins/main.d.ts +3 -2
  728. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.d.ts +5 -0
  729. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/messages.d.ts +32 -0
  730. package/dist/types/plugins/image-upload/pm-plugins/input-rule.d.ts +2 -2
  731. package/dist/types/plugins/image-upload/pm-plugins/main.d.ts +2 -3
  732. package/dist/types/plugins/indentation/pm-plugins/keymap.d.ts +2 -2
  733. package/dist/types/plugins/layout/pm-plugins/main.d.ts +2 -3
  734. package/dist/types/plugins/list/pm-plugins/input-rules/index.d.ts +2 -2
  735. package/dist/types/plugins/list/pm-plugins/keymap.d.ts +2 -2
  736. package/dist/types/plugins/list/pm-plugins/main.d.ts +3 -2
  737. package/dist/types/plugins/list/utils/selection.d.ts +1 -0
  738. package/dist/types/plugins/macro/index.d.ts +2 -2
  739. package/dist/types/plugins/max-content-size/index.d.ts +3 -2
  740. package/dist/types/plugins/media/nodeviews/mediaGroup.d.ts +6 -19
  741. package/dist/types/plugins/media/nodeviews/mediaNodeUpdater.d.ts +2 -2
  742. package/dist/types/plugins/media/nodeviews/messages.d.ts +7 -0
  743. package/dist/types/plugins/media/pm-plugins/alt-text/index.d.ts +3 -2
  744. package/dist/types/plugins/media/pm-plugins/alt-text/keymap.d.ts +2 -2
  745. package/dist/types/plugins/media/pm-plugins/keymap-media-single.d.ts +2 -2
  746. package/dist/types/plugins/media/pm-plugins/keymap.d.ts +2 -2
  747. package/dist/types/plugins/media/pm-plugins/linking/index.d.ts +4 -3
  748. package/dist/types/plugins/media/pm-plugins/linking/keymap.d.ts +2 -2
  749. package/dist/types/plugins/media/pm-plugins/main.d.ts +4 -2
  750. package/dist/types/plugins/media/pm-plugins/media-editor-plugin-factory.d.ts +1 -1
  751. package/dist/types/plugins/media/pm-plugins/media-editor.d.ts +2 -2
  752. package/dist/types/plugins/media/toolbar/commands.d.ts +1 -0
  753. package/dist/types/plugins/media/ui/Media/drop-placeholder-messages.d.ts +7 -0
  754. package/dist/types/plugins/media/ui/ToolbarMedia/index.d.ts +6 -3
  755. package/dist/types/plugins/media/ui/ToolbarMedia/toolbar-media-messages.d.ts +7 -0
  756. package/dist/types/plugins/media/utils/media-common.d.ts +2 -1
  757. package/dist/types/plugins/mentions/messages.d.ts +10 -0
  758. package/dist/types/plugins/mentions/pm-plugins/main.d.ts +2 -2
  759. package/dist/types/plugins/mentions/types.d.ts +0 -1
  760. package/dist/types/plugins/mentions/ui/InviteItem/index.d.ts +6 -3
  761. package/dist/types/plugins/mentions/ui/ToolbarMention/index.d.ts +6 -5
  762. package/dist/types/plugins/mobile-dimensions/plugin-factory.d.ts +1 -1
  763. package/dist/types/plugins/mobile-selection/mobile-selection-plugin.d.ts +3 -2
  764. package/dist/types/plugins/panel/pm-plugins/keymaps.d.ts +2 -2
  765. package/dist/types/plugins/panel/pm-plugins/main.d.ts +2 -2
  766. package/dist/types/plugins/paste/index.d.ts +2 -1
  767. package/dist/types/plugins/paste/pm-plugins/clipboard-text-serializer.d.ts +13 -0
  768. package/dist/types/plugins/paste/pm-plugins/main.d.ts +3 -2
  769. package/dist/types/plugins/paste/{util.d.ts → util/index.d.ts} +1 -1
  770. package/dist/types/plugins/paste/util/tinyMCE.d.ts +32 -0
  771. package/dist/types/plugins/placeholder/index.d.ts +3 -2
  772. package/dist/types/plugins/placeholder-text/index.d.ts +2 -2
  773. package/dist/types/plugins/rule/pm-plugins/input-rule.d.ts +3 -2
  774. package/dist/types/plugins/rule/pm-plugins/keymap.d.ts +2 -2
  775. package/dist/types/plugins/save-on-enter/index.d.ts +2 -2
  776. package/dist/types/plugins/selection/plugin-factory.d.ts +1 -2
  777. package/dist/types/plugins/selection/pm-plugins/gap-cursor-keymap.d.ts +2 -2
  778. package/dist/types/plugins/selection/pm-plugins/gap-cursor-main.d.ts +2 -2
  779. package/dist/types/plugins/selection/pm-plugins/keymap.d.ts +2 -1
  780. package/dist/types/plugins/selection/pm-plugins/selection-main.d.ts +3 -2
  781. package/dist/types/plugins/selection/utils.d.ts +2 -2
  782. package/dist/types/plugins/status/keymap.d.ts +2 -2
  783. package/dist/types/plugins/status/plugin.d.ts +2 -2
  784. package/dist/types/plugins/status/types.d.ts +0 -1
  785. package/dist/types/plugins/submit-editor/index.d.ts +2 -2
  786. package/dist/types/plugins/table/handlers.d.ts +2 -2
  787. package/dist/types/plugins/table/pm-plugins/decorations/plugin.d.ts +4 -3
  788. package/dist/types/plugins/table/pm-plugins/decorations/utils/types.d.ts +2 -2
  789. package/dist/types/plugins/table/pm-plugins/keymap.d.ts +2 -2
  790. package/dist/types/plugins/table/pm-plugins/main.d.ts +2 -2
  791. package/dist/types/plugins/table/pm-plugins/plugin-factory.d.ts +1 -1
  792. package/dist/types/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.d.ts +3 -2
  793. package/dist/types/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +5 -3
  794. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin-state.d.ts +1 -1
  795. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin.d.ts +2 -2
  796. package/dist/types/plugins/table/pm-plugins/table-local-id.d.ts +2 -2
  797. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin-factory.d.ts +2 -3
  798. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin.d.ts +2 -2
  799. package/dist/types/plugins/table/pm-plugins/table-selection-keymap.d.ts +2 -2
  800. package/dist/types/plugins/table/ui/LayoutButton/index.d.ts +2 -0
  801. package/dist/types/plugins/table/utils/collapse.d.ts +2 -2
  802. package/dist/types/plugins/table/utils/decoration.d.ts +3 -3
  803. package/dist/types/plugins/tasks-and-decisions/pm-plugins/input-rules.d.ts +2 -2
  804. package/dist/types/plugins/tasks-and-decisions/pm-plugins/keymaps.d.ts +2 -2
  805. package/dist/types/plugins/tasks-and-decisions/pm-plugins/main.d.ts +2 -2
  806. package/dist/types/plugins/text-color/pm-plugins/main.d.ts +3 -2
  807. package/dist/types/plugins/text-color/ui/ToolbarTextColor/index.d.ts +0 -14
  808. package/dist/types/plugins/text-color/ui/ToolbarTextColor/styles.d.ts +4 -5
  809. package/dist/types/plugins/text-formatting/pm-plugins/clear-formatting-keymap.d.ts +2 -2
  810. package/dist/types/plugins/text-formatting/pm-plugins/clear-formatting.d.ts +3 -2
  811. package/dist/types/plugins/text-formatting/pm-plugins/cursor.d.ts +2 -2
  812. package/dist/types/plugins/text-formatting/pm-plugins/input-rule.d.ts +2 -2
  813. package/dist/types/plugins/text-formatting/pm-plugins/keymap.d.ts +2 -2
  814. package/dist/types/plugins/text-formatting/pm-plugins/main.d.ts +2 -2
  815. package/dist/types/plugins/text-formatting/pm-plugins/smart-input-rule.d.ts +1 -1
  816. package/dist/types/plugins/type-ahead/index.d.ts +9 -1
  817. package/dist/types/plugins/type-ahead/messages.d.ts +7 -0
  818. package/dist/types/plugins/type-ahead/pm-plugins/input-rules.d.ts +2 -2
  819. package/dist/types/plugins/type-ahead/pm-plugins/insert-item-plugin.d.ts +2 -2
  820. package/dist/types/plugins/type-ahead/pm-plugins/main.d.ts +2 -2
  821. package/dist/types/plugins/type-ahead/pm-plugins/reducer.d.ts +2 -2
  822. package/dist/types/plugins/type-ahead/types.d.ts +2 -2
  823. package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +4 -1
  824. package/dist/types/plugins/undo-redo/pm-plugins/keymaps.d.ts +2 -2
  825. package/dist/types/plugins/width/index.d.ts +3 -2
  826. package/dist/types/types/feature-flags.d.ts +35 -0
  827. package/dist/types/types/pm-plugin.d.ts +2 -2
  828. package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +4 -1
  829. package/dist/types/ui/Appearance/FullPage/FullPageToolbar.d.ts +5 -1
  830. package/dist/types/ui/Appearance/FullPage/messages.d.ts +18 -0
  831. package/dist/types/ui/ChromeCollapsed/index.d.ts +5 -7
  832. package/dist/types/ui/ChromeCollapsed/messages.d.ts +7 -0
  833. package/dist/types/ui/ColorPalette/index.d.ts +0 -1
  834. package/dist/types/ui/ToolbarHelp/index.d.ts +5 -2
  835. package/dist/types/ui/ToolbarHelp/messages.d.ts +7 -0
  836. package/dist/types/utils/document.d.ts +5 -5
  837. package/dist/types/utils/input-rules.d.ts +3 -2
  838. package/dist/types/utils/is-text-input.d.ts +2 -2
  839. package/dist/types/utils/keymap.d.ts +2 -2
  840. package/dist/types/utils/performance/instrumented-plugin.d.ts +12 -4
  841. package/dist/types/utils/performance/safer-transactions.d.ts +8 -0
  842. package/dist/types/utils/plugin-state-factory.d.ts +5 -5
  843. package/package.json +32 -32
  844. package/dist/cjs/plugins/collab-edit/provider/collab-provider.js +0 -376
  845. package/dist/cjs/ui/InlineNodeWrapper/index.js +0 -47
  846. package/dist/es2019/plugins/collab-edit/provider/collab-provider.js +0 -293
  847. package/dist/es2019/ui/InlineNodeWrapper/index.js +0 -28
  848. package/dist/esm/plugins/collab-edit/provider/collab-provider.js +0 -364
  849. package/dist/esm/ui/InlineNodeWrapper/index.js +0 -31
  850. package/dist/types/plugins/collab-edit/provider/collab-provider.d.ts +0 -45
  851. package/dist/types/ui/InlineNodeWrapper/index.d.ts +0 -15
@@ -148,9 +148,18 @@ function handlePasteLinkOnSelectedText(slice) {
148
148
  var paragraph = slice.content.child(0);
149
149
 
150
150
  if (paragraph.content.childCount === 1 && (0, _utils.isText)(paragraph.content.child(0), schema)) {
151
- var text = paragraph.content.child(0);
151
+ var text = paragraph.content.child(0); // If pasteType is plain text, then
152
+ // @atlaskit/editor-markdown-transformer in getMarkdownSlice decode
153
+ // url before setting text property of text node.
154
+ // However href of marks will be without decoding.
155
+ // So, if there is character (e.g space) in url eligible escaping then
156
+ // mark.attrs.href will not be equal to text.text.
157
+ // That's why decoding mark.attrs.href before comparing.
158
+ // However, if pasteType is richText, that means url in text.text
159
+ // and href in marks, both won't be decoded.
160
+
152
161
  linkMark = text.marks.find(function (mark) {
153
- return (0, _utils.isLinkMark)(mark, schema) && mark.attrs.href === text.text;
162
+ return (0, _utils.isLinkMark)(mark, schema) && (mark.attrs.href === text.text || decodeURI(mark.attrs.href) === text.text);
154
163
  });
155
164
  }
156
165
  } // if we have a link, apply it to the selected text if we have any and it's allowed
@@ -677,11 +686,14 @@ function insertIntoPanel(tr, slice, panel) {
677
686
 
678
687
  function handleRichText(slice) {
679
688
  return function (state, dispatch) {
680
- var _panelParentOverCurre;
689
+ var _slice$content;
681
690
 
682
691
  var _state$schema$nodes2 = state.schema.nodes,
683
692
  codeBlock = _state$schema$nodes2.codeBlock,
684
- panel = _state$schema$nodes2.panel; // In case user is pasting inline code,
693
+ heading = _state$schema$nodes2.heading,
694
+ paragraph = _state$schema$nodes2.paragraph;
695
+ var selection = state.selection;
696
+ var firstChildOfSlice = (_slice$content = slice.content) === null || _slice$content === void 0 ? void 0 : _slice$content.firstChild; // In case user is pasting inline code,
685
697
  // any backtick ` immediately preceding it should be removed.
686
698
 
687
699
  var tr = state.tr;
@@ -695,20 +707,27 @@ function handleRichText(slice) {
695
707
  }
696
708
 
697
709
  (0, _prosemirrorHistory.closeHistory)(tr);
698
- var panelParentOverCurrentSelection = (0, _prosemirrorUtils.findParentNodeOfType)(panel)(tr.selection);
699
- var isFirstChildListNode = (0, _node.isListNode)(slice.content.firstChild);
700
- var isLastChildListNode = (0, _node.isListNode)(slice.content.lastChild);
701
- var isSliceContentListNodes = isFirstChildListNode || isLastChildListNode;
702
- var isTargetPanelEmpty = panelParentOverCurrentSelection && ((_panelParentOverCurre = panelParentOverCurrentSelection.node) === null || _panelParentOverCurre === void 0 ? void 0 : _panelParentOverCurre.content.size) === 2;
710
+ var isFirstChildListNode = (0, _node.isListNode)(firstChildOfSlice);
711
+ var isLastChildListNode = (0, _node.isListNode)(firstChildOfSlice);
712
+ var isSliceContentListNodes = isFirstChildListNode || isLastChildListNode; // We want to use safeInsert to insert invalid content, as it inserts at the closest non schema violating position
713
+ // rather than spliting the selection parent node in half (which is what replaceSelection does)
714
+ // Exception is paragraph and heading nodes, these should be split, provided their parent supports the pasted content
715
+
716
+ var textNodes = [heading, paragraph];
717
+ var selectionParent = selection.$to.node(selection.$to.depth - 1);
718
+ var noNeedForSafeInsert = selection.$to.node().type.validContent(slice.content) || textNodes.includes(selection.$to.node().type) && selectionParent.type.validContent(slice.content);
703
719
 
704
- if (isSliceContentListNodes || isTargetPanelEmpty) {
720
+ if (isSliceContentListNodes) {
705
721
  (0, _edgeCases.insertSliceForLists)({
706
722
  tr: tr,
707
723
  slice: slice
708
724
  });
725
+ } else if (noNeedForSafeInsert) {
726
+ tr.replaceSelection(slice);
709
727
  } else {
710
- // if inside an empty panel, try and insert content inside it rather than replace it
711
- insertIntoPanel(tr, slice, panel);
728
+ // need safeInsert rather than replaceSelection, so that nodes aren't split in half
729
+ // e.g. when pasting a layout into a table, replaceSelection splits the table in half and adds the layout in the middle
730
+ tr = (0, _prosemirrorUtils.safeInsert)(slice.content, tr.selection.$to.pos)(tr);
712
731
  }
713
732
 
714
733
  tr.setStoredMarks([]);
@@ -9,7 +9,8 @@ var _main = require("./pm-plugins/main");
9
9
 
10
10
  var pastePlugin = function pastePlugin(_ref) {
11
11
  var cardOptions = _ref.cardOptions,
12
- sanitizePrivateContent = _ref.sanitizePrivateContent;
12
+ sanitizePrivateContent = _ref.sanitizePrivateContent,
13
+ plainTextPasteLinkification = _ref.plainTextPasteLinkification;
13
14
  return {
14
15
  name: 'paste',
15
16
  pmPlugins: function pmPlugins() {
@@ -19,7 +20,7 @@ var pastePlugin = function pastePlugin(_ref) {
19
20
  var schema = _ref2.schema,
20
21
  providerFactory = _ref2.providerFactory,
21
22
  dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent;
22
- return (0, _main.createPlugin)(schema, dispatchAnalyticsEvent, cardOptions, sanitizePrivateContent, providerFactory);
23
+ return (0, _main.createPlugin)(schema, dispatchAnalyticsEvent, plainTextPasteLinkification, cardOptions, sanitizePrivateContent, providerFactory);
23
24
  }
24
25
  }];
25
26
  }
@@ -143,7 +143,7 @@ function getActionSubjectId(view) {
143
143
  return actionSubjectId ? actionSubjectId : _analytics.ACTION_SUBJECT_ID.PASTE_PARAGRAPH;
144
144
  }
145
145
 
146
- function createPasteAsPlainPayload(actionSubjectId, text) {
146
+ function createPasteAsPlainPayload(actionSubjectId, text, linksInPasteCount) {
147
147
  return {
148
148
  action: _analytics.ACTION.PASTED_AS_PLAIN,
149
149
  actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
@@ -151,7 +151,8 @@ function createPasteAsPlainPayload(actionSubjectId, text) {
151
151
  eventType: _analytics.EVENT_TYPE.TRACK,
152
152
  attributes: {
153
153
  inputMethod: _analytics.INPUT_METHOD.KEYBOARD,
154
- pasteSize: text.length
154
+ pasteSize: text.length,
155
+ linksInPasteCount: linksInPasteCount
155
156
  }
156
157
  };
157
158
  }
@@ -175,23 +176,6 @@ function createPastePayload(actionSubjectId, attributes, linkDomain) {
175
176
  function createPasteAnalyticsPayload(view, event, slice, pasteContext) {
176
177
  var text = event.clipboardData ? event.clipboardData.getData('text/plain') || event.clipboardData.getData('text/uri-list') : '';
177
178
  var actionSubjectId = getActionSubjectId(view);
178
-
179
- if (pasteContext.asPlain) {
180
- return createPasteAsPlainPayload(actionSubjectId, text);
181
- }
182
-
183
- var source = (0, _util.getPasteSource)(event);
184
-
185
- if (pasteContext.type === _analytics.PasteTypes.plain) {
186
- return createPastePayload(actionSubjectId, {
187
- pasteSize: text.length,
188
- type: pasteContext.type,
189
- content: _analytics.PasteContents.text,
190
- source: source,
191
- hyperlinkPasteOnText: false
192
- });
193
- }
194
-
195
179
  var pasteSize = slice.size;
196
180
  var content = getContent(view.state, slice);
197
181
  var linkUrls = []; // If we have a link among the pasted content, grab the
@@ -211,13 +195,31 @@ function createPasteAnalyticsPayload(view, event, slice, pasteContext) {
211
195
  });
212
196
  }
213
197
 
198
+ if (pasteContext.asPlain) {
199
+ return createPasteAsPlainPayload(actionSubjectId, text, linkUrls.length);
200
+ }
201
+
202
+ var source = (0, _util.getPasteSource)(event);
203
+
204
+ if (pasteContext.type === _analytics.PasteTypes.plain) {
205
+ return createPastePayload(actionSubjectId, {
206
+ pasteSize: text.length,
207
+ type: pasteContext.type,
208
+ content: _analytics.PasteContents.text,
209
+ source: source,
210
+ hyperlinkPasteOnText: false,
211
+ linksInPasteCount: linkUrls.length
212
+ });
213
+ }
214
+
214
215
  var linkDomains = linkUrls.map(_utils2.getLinkDomain);
215
216
  return createPastePayload(actionSubjectId, {
216
217
  type: pasteContext.type,
217
218
  pasteSize: pasteSize,
218
219
  content: content,
219
220
  source: source,
220
- hyperlinkPasteOnText: !!pasteContext.hyperlinkPasteOnText
221
+ hyperlinkPasteOnText: !!pasteContext.hyperlinkPasteOnText,
222
+ linksInPasteCount: linkUrls.length
221
223
  }, linkDomains);
222
224
  } // TODO: ED-6612 We should not dispatch only analytics, it's preferred to wrap each command with his own analytics.
223
225
  // However, handlers like handleMacroAutoConvert dispatch multiple time,
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.clipboardTextSerializer = clipboardTextSerializer;
7
+
8
+ /**
9
+ * Returns a plain text serialization of a given slice. This is used for populating the plain text
10
+ * section of the clipboard on copy.
11
+ * The current implementation is bare bones - only inlineCards and blockCards are tested (they
12
+ * previously were empty on plain text copy).
13
+ * Unknown nodes are passed to node.textBetween().
14
+ *
15
+ * By default (without this function passed to the editor), the editor uses
16
+ * `slice.content.textBetween(0, slice.content.size, "\n\n")`
17
+ * (see https://prosemirror.net/docs/ref/#view.EditorProps.clipboardTextSerializer)
18
+ */
19
+ function clipboardTextSerializer(slice) {
20
+ var text = '';
21
+ var blockSeparater = '\n\n';
22
+ slice.content.nodesBetween(0, slice.content.size, function (node) {
23
+ if (node.type.isBlock) {
24
+ text += blockSeparater;
25
+ }
26
+
27
+ if (node.type.name === 'paragraph') {
28
+ return true;
29
+ } else if (node.type.name === 'hardBreak') {
30
+ text += '\n';
31
+ } else if (node.type.name === 'text') {
32
+ text += node.text;
33
+ } else if (node.type.name === 'inlineCard') {
34
+ text += node.attrs.url;
35
+ } else if (node.type.name === 'blockCard') {
36
+ text += node.attrs.url;
37
+ } else {
38
+ text += node.textBetween(0, node.content.size, '\n\n');
39
+ }
40
+
41
+ return false;
42
+ });
43
+ return text.trim();
44
+ }
@@ -24,6 +24,8 @@ var _utils = require("@atlaskit/editor-tables/utils");
24
24
 
25
25
  var _prosemirrorModel = require("prosemirror-model");
26
26
 
27
+ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
28
+
27
29
  var _prosemirrorState = require("prosemirror-state");
28
30
 
29
31
  var _uuid = _interopRequireDefault(require("uuid"));
@@ -80,11 +82,16 @@ var _utils11 = require("../../annotation/utils");
80
82
 
81
83
  var _betterTypeHistory = require("../../base/pm-plugins/better-type-history");
82
84
 
85
+ var _clipboardTextSerializer = require("./clipboard-text-serializer");
86
+
87
+ var _tinyMCE = require("../util/tinyMCE");
88
+
83
89
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
84
90
 
85
91
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
86
92
 
87
93
  // @ts-ignore: outdated type definitions
94
+ _analytics.sendPasteAnalyticsEvent;
88
95
  var stateKey = new _prosemirrorState.PluginKey('pastePlugin');
89
96
  exports.stateKey = stateKey;
90
97
 
@@ -103,7 +110,7 @@ function isBackgroundCellAllowed(state) {
103
110
  return tableState && tableState.pluginConfig.allowBackgroundColor;
104
111
  }
105
112
 
106
- function createPlugin(schema, dispatchAnalyticsEvent, cardOptions, sanitizePrivateContent, providerFactory) {
113
+ function createPlugin(schema, dispatchAnalyticsEvent, plainTextPasteLinkification, cardOptions, sanitizePrivateContent, providerFactory) {
107
114
  var atlassianMarkDownParser = new _editorMarkdownTransformer.MarkdownTransformer(schema, _md.md);
108
115
 
109
116
  function getMarkdownSlice(text, openStart, openEnd) {
@@ -171,9 +178,18 @@ function createPlugin(schema, dispatchAnalyticsEvent, cardOptions, sanitizePriva
171
178
  providerFactory.subscribe('extensionProvider', setExtensionAutoConverter);
172
179
  }
173
180
 
174
- return new _prosemirrorState.Plugin({
181
+ var mostRecentPasteEvent;
182
+ return new _safePlugin.SafePlugin({
175
183
  key: stateKey,
176
184
  props: {
185
+ // For serialising to plain text
186
+ clipboardTextSerializer: _clipboardTextSerializer.clipboardTextSerializer,
187
+ handleDOMEvents: {
188
+ paste: function paste(view, event) {
189
+ mostRecentPasteEvent = event;
190
+ return false;
191
+ }
192
+ },
177
193
  handlePaste: function handlePaste(view, rawEvent, slice) {
178
194
  var _analyticsPlugin$perf, _analyticsPlugin$perf2;
179
195
 
@@ -258,8 +274,9 @@ function createPlugin(schema, dispatchAnalyticsEvent, cardOptions, sanitizePriva
258
274
  };
259
275
 
260
276
  slice = (0, _handlers.handleParagraphBlockMarks)(state, slice);
277
+ var plainTextPasteSlice = plainTextPasteLinkification === true ? (0, _utils2.linkifyContent)(state.schema)(slice) : slice;
261
278
 
262
- if ((0, _analytics.handlePasteAsPlainTextWithAnalytics)(view, event, slice)(state, dispatch, view)) {
279
+ if ((0, _analytics.handlePasteAsPlainTextWithAnalytics)(view, event, plainTextPasteSlice)(state, dispatch, view)) {
263
280
  return true;
264
281
  } // transform slices based on destination
265
282
 
@@ -425,6 +442,17 @@ function createPlugin(schema, dispatchAnalyticsEvent, cardOptions, sanitizePriva
425
442
  if (html.indexOf('id="docs-internal-guid-') >= 0) {
426
443
  html = html.replace(/white-space:pre/g, '');
427
444
  html = html.replace(/white-space:pre-wrap/g, '');
445
+ } // Partial fix for ED-7331: During a copy/paste from the legacy tinyMCE
446
+ // confluence editor, if we encounter an incomplete table (e.g. table elements
447
+ // not wrapped in <table>), we try to rebuild a complete, valid table if possible.
448
+
449
+
450
+ if (mostRecentPasteEvent && (0, _tinyMCE.isPastedFromTinyMCEConfluence)(mostRecentPasteEvent, html) && (0, _tinyMCE.htmlHasIncompleteTable)(html)) {
451
+ var completeTableHtml = (0, _tinyMCE.tryRebuildCompleteTableHtml)(html);
452
+
453
+ if (completeTableHtml) {
454
+ html = completeTableHtml;
455
+ }
428
456
  }
429
457
 
430
458
  if (!(0, _util.isPastedFromWord)(html) && !(0, _util.isPastedFromExcel)(html) && html.indexOf('<img ') >= 0) {
@@ -438,6 +466,7 @@ function createPlugin(schema, dispatchAnalyticsEvent, cardOptions, sanitizePriva
438
466
  html = (0, _util.removeDuplicateInvalidLinks)(html);
439
467
  }
440
468
 
469
+ mostRecentPasteEvent = null;
441
470
  return html;
442
471
  }
443
472
  }
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.wrapWithTable = exports.tryReconstructTableRows = exports.tryRebuildCompleteTableHtml = exports.isPastedFromTinyMCEConfluence = exports.htmlHasIncompleteTable = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _chunk = _interopRequireDefault(require("lodash/chunk"));
13
+
14
+ var isPastedFromTinyMCE = function isPastedFromTinyMCE(pasteEvent) {
15
+ var _pasteEvent$clipboard, _pasteEvent$clipboard2, _pasteEvent$clipboard3;
16
+
17
+ return (_pasteEvent$clipboard = pasteEvent === null || pasteEvent === void 0 ? void 0 : (_pasteEvent$clipboard2 = pasteEvent.clipboardData) === null || _pasteEvent$clipboard2 === void 0 ? void 0 : (_pasteEvent$clipboard3 = _pasteEvent$clipboard2.types) === null || _pasteEvent$clipboard3 === void 0 ? void 0 : _pasteEvent$clipboard3.some(function (mimeType) {
18
+ return mimeType === 'x-tinymce/html';
19
+ })) !== null && _pasteEvent$clipboard !== void 0 ? _pasteEvent$clipboard : false;
20
+ };
21
+
22
+ var isPastedFromTinyMCEConfluence = function isPastedFromTinyMCEConfluence(pasteEvent, html) {
23
+ return isPastedFromTinyMCE(pasteEvent) && !!html && !!html.match(/class=\"\s?(confluenceTd|confluenceTh|confluenceTable).+"/gim);
24
+ };
25
+ /**
26
+ * Wraps html markup with a `<table>` and uses `DOMParser` to generate
27
+ * and return both the table-wrapped and non-table-wrapped DOM document
28
+ * instances.
29
+ */
30
+
31
+
32
+ exports.isPastedFromTinyMCEConfluence = isPastedFromTinyMCEConfluence;
33
+
34
+ var wrapWithTable = function wrapWithTable(html) {
35
+ var parser = new DOMParser();
36
+ var nonTableWrappedDoc = parser.parseFromString(html, 'text/html');
37
+ var tableWrappedDoc = parser.parseFromString("<table>".concat(html, "</table>"), 'text/html');
38
+ tableWrappedDoc.body.querySelectorAll('meta').forEach(function (meta) {
39
+ tableWrappedDoc.head.prepend(meta);
40
+ });
41
+ return {
42
+ tableWrappedDoc: tableWrappedDoc,
43
+ nonTableWrappedDoc: nonTableWrappedDoc
44
+ };
45
+ };
46
+
47
+ exports.wrapWithTable = wrapWithTable;
48
+
49
+ var exactlyDivisible = function exactlyDivisible(larger, smaller) {
50
+ return larger % smaller === 0;
51
+ };
52
+
53
+ var getTableElementsInfo = function getTableElementsInfo(doc) {
54
+ var cellCount = doc.querySelectorAll('td').length;
55
+ var thCount = doc.querySelectorAll('th').length;
56
+ var mergedCellCount = doc.querySelectorAll('td[colspan]:not([colspan="1"])').length;
57
+ var hasThAfterTd = false;
58
+ var thsAndCells = doc.querySelectorAll('th,td');
59
+
60
+ for (var i = 0, cellFound = false; i < thsAndCells.length; i++) {
61
+ if (cellFound && thsAndCells[i].nodeName === 'TH') {
62
+ hasThAfterTd = true;
63
+ break;
64
+ }
65
+
66
+ if (thsAndCells[i].nodeName === 'TD') {
67
+ cellFound = true;
68
+ }
69
+ }
70
+
71
+ var onlyTh = thCount > 0 && cellCount === 0;
72
+ var onlyCells = cellCount > 0 && thCount === 0;
73
+ var hasCompleteRow = // we take header-only and cell-only tables to be
74
+ // row-complete
75
+ onlyTh || onlyCells || // if headers and cells can "fit" against each other,
76
+ // then we assume a complete row exists
77
+ (exactlyDivisible(thCount, cellCount) || exactlyDivisible(cellCount, thCount)) && // all numbers are divisible by 1, so we carve out a specific
78
+ // check for when there is only 1 table cell, and more than 1
79
+ // table header.
80
+ !(thCount > 1 && cellCount === 1);
81
+ return {
82
+ cellCount: cellCount,
83
+ thCount: thCount,
84
+ mergedCellCount: mergedCellCount,
85
+ hasThAfterTd: hasThAfterTd,
86
+ hasIncompleteRow: !hasCompleteRow
87
+ };
88
+ };
89
+
90
+ var configureTableRows = function configureTableRows(doc, colsInRow) {
91
+ var _Array$from;
92
+
93
+ var tableHeadersAndCells = Array.from(doc.body.querySelectorAll('th,td'));
94
+ var evenlySplitChunks = (0, _chunk.default)(tableHeadersAndCells, colsInRow);
95
+ var tableBody = doc.body.querySelector('tbody');
96
+ evenlySplitChunks.forEach(function (chunk) {
97
+ var tr = doc.createElement('tr');
98
+ tableBody === null || tableBody === void 0 ? void 0 : tableBody.append(tr);
99
+ tr.append.apply(tr, (0, _toConsumableArray2.default)(chunk));
100
+ }); // We remove any leftover empty rows which may cause fabric editor
101
+ // to no-op when parsing the table
102
+
103
+ var emptyRows = (_Array$from = Array.from(tableBody.querySelectorAll('tr'))) === null || _Array$from === void 0 ? void 0 : _Array$from.filter(function (row) {
104
+ return row.innerHTML.trim().length === 0;
105
+ });
106
+ emptyRows.forEach(function (row) {
107
+ return row.remove();
108
+ });
109
+ return doc.body.innerHTML;
110
+ };
111
+
112
+ var fillIncompleteRowWithEmptyCells = function fillIncompleteRowWithEmptyCells(doc, thCount, cellCount) {
113
+ var _lastCell$parentEleme;
114
+
115
+ var extraCellsCount = 0;
116
+
117
+ while (!exactlyDivisible(cellCount + extraCellsCount, thCount)) {
118
+ extraCellsCount++;
119
+ }
120
+
121
+ var extraEmptyCells = Array.from(Array(extraCellsCount)).map(function () {
122
+ return doc.createElement('td');
123
+ });
124
+ var lastCell = doc.body.querySelector('td:last-of-type');
125
+ lastCell === null || lastCell === void 0 ? void 0 : (_lastCell$parentEleme = lastCell.parentElement) === null || _lastCell$parentEleme === void 0 ? void 0 : _lastCell$parentEleme.append.apply(_lastCell$parentEleme, (0, _toConsumableArray2.default)(extraEmptyCells));
126
+ return {
127
+ updatedCellCount: cellCount + extraCellsCount
128
+ };
129
+ };
130
+ /**
131
+ * Given a DOM document, it will try to rebuild table rows by using the
132
+ * table headers count as an initial starting point for the assumed
133
+ * number of columns that make up a row (`colsInRow`). It will slowly
134
+ * decrease that `colsInRow` count until it finds exact fit for table
135
+ * headers and cells with `colsInRow` else it returns the original
136
+ * document's markup.
137
+ *
138
+ * NOTE: It will NOT try to rebuild table rows if it encounters merged cells
139
+ * or compex table configurations (where table headers exist after normal
140
+ * table cells). It will build a single column table if NO table
141
+ * headers exist.
142
+ */
143
+
144
+
145
+ var tryReconstructTableRows = function tryReconstructTableRows(doc) {
146
+ var _getTableElementsInfo = getTableElementsInfo(doc),
147
+ cellCount = _getTableElementsInfo.cellCount,
148
+ thCount = _getTableElementsInfo.thCount,
149
+ mergedCellCount = _getTableElementsInfo.mergedCellCount,
150
+ hasThAfterTd = _getTableElementsInfo.hasThAfterTd,
151
+ hasIncompleteRow = _getTableElementsInfo.hasIncompleteRow;
152
+
153
+ if (mergedCellCount || hasThAfterTd) {
154
+ // bail out to avoid handling more complex table structures
155
+ return doc.body.innerHTML;
156
+ }
157
+
158
+ if (!thCount) {
159
+ // if no table headers exist for reference, fallback to a single column table structure
160
+ return configureTableRows(doc, 1);
161
+ }
162
+
163
+ if (hasIncompleteRow) {
164
+ // if shift-click selection copies a partial table row to the clipboard,
165
+ // and we do have table headers for reference, then we add empty table cells
166
+ // to fill out the partial row
167
+ var _fillIncompleteRowWit = fillIncompleteRowWithEmptyCells(doc, thCount, cellCount),
168
+ updatedCellCount = _fillIncompleteRowWit.updatedCellCount;
169
+
170
+ cellCount = updatedCellCount;
171
+ }
172
+
173
+ for (var possibleColsInRow = thCount; possibleColsInRow > 0; possibleColsInRow--) {
174
+ if (exactlyDivisible(thCount, possibleColsInRow) && exactlyDivisible(cellCount, possibleColsInRow)) {
175
+ return configureTableRows(doc, possibleColsInRow);
176
+ }
177
+ }
178
+
179
+ return doc.body.innerHTML;
180
+ };
181
+
182
+ exports.tryReconstructTableRows = tryReconstructTableRows;
183
+
184
+ var htmlHasIncompleteTable = function htmlHasIncompleteTable(html) {
185
+ return !html.includes('<table ') && (html.includes('<td ') || html.includes('<th '));
186
+ };
187
+ /**
188
+ * Strictly for ED-7331. Given incomplete table html from tinyMCE, it will try to rebuild
189
+ * a whole valid table. If it rebuilds the table, it may first rebuild it as a single
190
+ * row table, so this also then tries to reconstruct the table rows/columns if
191
+ * possible (best effort).
192
+ */
193
+
194
+
195
+ exports.htmlHasIncompleteTable = htmlHasIncompleteTable;
196
+
197
+ var tryRebuildCompleteTableHtml = function tryRebuildCompleteTableHtml(incompleteTableHtml) {
198
+ // first we try wrapping the table elements with <table> and let DOMParser try to rebuild
199
+ // a valid DOM tree. we also keep the non-wrapped table for comparison purposes.
200
+ var _wrapWithTable = wrapWithTable(incompleteTableHtml),
201
+ nonTableWrappedDoc = _wrapWithTable.nonTableWrappedDoc,
202
+ tableWrappedDoc = _wrapWithTable.tableWrappedDoc;
203
+
204
+ var didPreserveTableElements = Boolean(!nonTableWrappedDoc.body.querySelector('th, td') && tableWrappedDoc.body.querySelector('th, td'));
205
+ var isExpectedStructure = tableWrappedDoc.querySelectorAll('body > table:only-child') && !tableWrappedDoc.querySelector("body > table > tbody > tr > :not(th,td)"); // if DOMParser saves table elements that we would otherwise lose, and
206
+ // if the table html is what we'd expect (a single table, with no extraneous
207
+ // elements in table rows other than th, td), then we can now also try to
208
+ // rebuild table rows/columns.
209
+
210
+ if (didPreserveTableElements && isExpectedStructure) {
211
+ var completeTableHtml = tryReconstructTableRows(tableWrappedDoc);
212
+ return completeTableHtml;
213
+ }
214
+
215
+ return null;
216
+ };
217
+
218
+ exports.tryRebuildCompleteTableHtml = tryRebuildCompleteTableHtml;
@@ -7,6 +7,8 @@ exports.createPlaceholderDecoration = createPlaceholderDecoration;
7
7
  exports.createPlugin = createPlugin;
8
8
  exports.pluginKey = exports.default = void 0;
9
9
 
10
+ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
11
+
10
12
  var _prosemirrorState = require("prosemirror-state");
11
13
 
12
14
  var _prosemirrorView = require("prosemirror-view");
@@ -111,7 +113,7 @@ function createPlugin(defaultPlaceholderText, placeholderHints, bracketPlacehold
111
113
  }
112
114
 
113
115
  var getPlaceholderHintMessage = createGetPlaceholderHintMessage(placeholderHints);
114
- return new _prosemirrorState.Plugin({
116
+ return new _safePlugin.SafePlugin({
115
117
  key: pluginKey,
116
118
  state: {
117
119
  init: function init(_, state) {
@@ -10,6 +10,8 @@ exports.default = void 0;
10
10
 
11
11
  var _react = _interopRequireDefault(require("react"));
12
12
 
13
+ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
14
+
13
15
  var _prosemirrorState = require("prosemirror-state");
14
16
 
15
17
  var _adfSchema = require("@atlaskit/adf-schema");
@@ -36,7 +38,7 @@ var _messages = require("../insert-block/ui/ToolbarInsertBlock/messages");
36
38
 
37
39
  function createPlugin(dispatch, options) {
38
40
  var allowInserting = !!options.allowInserting;
39
- return new _prosemirrorState.Plugin({
41
+ return new _safePlugin.SafePlugin({
40
42
  key: _pluginKey.pluginKey,
41
43
  state: {
42
44
  init: function init() {
@@ -21,7 +21,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
21
21
 
22
22
  var _react = _interopRequireDefault(require("react"));
23
23
 
24
- var _prosemirrorState = require("prosemirror-state");
24
+ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
25
25
 
26
26
  var _memoizeOne = _interopRequireDefault(require("memoize-one"));
27
27
 
@@ -142,7 +142,7 @@ var setProviderState = function setProviderState(providerState) {
142
142
  };
143
143
 
144
144
  function quickInsertPluginFactory(quickInsertItems, providerFactory, getIntl, dispatch, emptyStateHandler) {
145
- return new _prosemirrorState.Plugin({
145
+ return new _safePlugin.SafePlugin({
146
146
  key: _pluginKey.pluginKey,
147
147
  state: {
148
148
  init: function init() {
@@ -17,7 +17,7 @@ var _default = {
17
17
  marks: [// Fragment mark is both for inline and block elements
18
18
  'fragment', // Inline marks
19
19
  'link', 'em', 'strong', 'textColor', 'strike', 'subsup', 'underline', 'code', 'typeAheadQuery', // Block marks
20
- 'alignment', 'breakout', 'indentation', 'annotation', //Unsupported mark
20
+ 'alignment', 'breakout', 'indentation', 'annotation', 'dataConsumer', // Unsupported mark
21
21
  'unsupportedMark', 'unsupportedNodeAttribute']
22
22
  };
23
23
  exports.default = _default;
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.scrollIntoViewPluginKey = exports.default = void 0;
7
7
 
8
+ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
9
+
8
10
  var _prosemirrorState = require("prosemirror-state");
9
11
 
10
12
  var _prosemirrorInputRules = require("@atlaskit/prosemirror-input-rules");
@@ -22,7 +24,7 @@ var scrollIntoViewPluginKey = new _prosemirrorState.PluginKey('scrollIntoViewPlu
22
24
  exports.scrollIntoViewPluginKey = scrollIntoViewPluginKey;
23
25
 
24
26
  var createPlugin = function createPlugin() {
25
- return new _prosemirrorState.Plugin({
27
+ return new _safePlugin.SafePlugin({
26
28
  key: scrollIntoViewPluginKey,
27
29
  appendTransaction: function appendTransaction(transactions, oldState, newState) {
28
30
  if (!transactions.length) {
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
9
+
8
10
  var _prosemirrorState = require("prosemirror-state");
9
11
 
10
12
  var _prosemirrorView = require("prosemirror-view");
@@ -27,7 +29,7 @@ var _direction = require("../gap-cursor/direction");
27
29
 
28
30
  var _gapCursorPluginKey = require("./gap-cursor-plugin-key");
29
31
 
30
- var plugin = new _prosemirrorState.Plugin({
32
+ var plugin = new _safePlugin.SafePlugin({
31
33
  key: _gapCursorPluginKey.gapCursorPluginKey,
32
34
  state: {
33
35
  init: function init() {
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getInitialState = exports.createPlugin = void 0;
7
7
 
8
+ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
9
+
8
10
  var _prosemirrorState = require("prosemirror-state");
9
11
 
10
12
  var _utils = require("@atlaskit/editor-common/utils");
@@ -50,7 +52,7 @@ var toggleContentEditable = function toggleContentEditable(node) {
50
52
 
51
53
  var createPlugin = function createPlugin(dispatch, dispatchAnalyticsEvent) {
52
54
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
53
- return new _prosemirrorState.Plugin({
55
+ return new _safePlugin.SafePlugin({
54
56
  key: _types.selectionPluginKey,
55
57
  state: (0, _pluginFactory.createPluginState)(dispatch, getInitialState),
56
58
  view: function view() {