@atlaskit/editor-core 166.0.2 → 167.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 (548) hide show
  1. package/.eslintrc.js +46 -1
  2. package/CHANGELOG.md +99 -0
  3. package/dist/cjs/actions/index.js +26 -2
  4. package/dist/cjs/create-editor/ReactEditorView.js +2 -0
  5. package/dist/cjs/create-editor/create-plugins-list.js +1 -2
  6. package/dist/cjs/editor.js +5 -2
  7. package/dist/cjs/keymaps/index.js +5 -1
  8. package/dist/cjs/labs/next/ContentComponents.js +8 -4
  9. package/dist/cjs/labs/next/full-page.js +14 -8
  10. package/dist/cjs/nodeviews/getInlineNodeViewProducer.js +7 -3
  11. package/dist/cjs/nodeviews/getInlineNodeViewProducer.styles.js +3 -1
  12. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +3 -1
  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/annotation/pm-plugins/plugin-factory.js +0 -1
  16. package/dist/cjs/plugins/base/index.js +8 -17
  17. package/dist/cjs/plugins/base/pm-plugins/better-type-history.js +3 -12
  18. package/dist/cjs/plugins/base/pm-plugins/inline-cursor-target.js +71 -16
  19. package/dist/cjs/plugins/block-type/commands/block-type.js +32 -22
  20. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/styled.js +4 -2
  21. package/dist/cjs/plugins/breakout/ui/LayoutButton.js +4 -11
  22. package/dist/cjs/plugins/card/styles.js +1 -1
  23. package/dist/cjs/plugins/card/ui/LinkToolbarIconDropdown.js +2 -2
  24. package/dist/cjs/plugins/code-block/actions.js +36 -2
  25. package/dist/cjs/plugins/code-block/nodeviews/code-block.js +70 -1
  26. package/dist/cjs/plugins/code-block/pm-plugins/actions.js +2 -1
  27. package/dist/cjs/plugins/code-block/pm-plugins/main.js +46 -8
  28. package/dist/cjs/plugins/code-block/styles.js +28 -24
  29. package/dist/cjs/plugins/collab-edit/index.js +2 -2
  30. package/dist/cjs/plugins/collab-edit/provider/channel.js +2 -2
  31. package/dist/cjs/plugins/collab-edit/styles.js +4 -2
  32. package/dist/cjs/plugins/collab-edit/ui/styles.js +4 -2
  33. package/dist/cjs/plugins/collab-edit/utils.js +1 -0
  34. package/dist/cjs/plugins/date/ui/DatePicker/index.js +3 -1
  35. package/dist/cjs/plugins/expand/ui/styles.js +16 -14
  36. package/dist/cjs/plugins/extension/commands.js +3 -2
  37. package/dist/cjs/plugins/extension/context-panel.js +23 -9
  38. package/dist/cjs/plugins/extension/plugin-factory.js +1 -4
  39. package/dist/cjs/plugins/extension/pm-plugins/main.js +13 -36
  40. package/dist/cjs/plugins/extension/ui/Extension/Extension/styles.js +6 -4
  41. package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/styles.js +3 -1
  42. package/dist/cjs/plugins/extension/ui/Extension/styles.js +7 -5
  43. package/dist/cjs/plugins/extension/ui/SaveIndicator/SaveIndicator.js +4 -2
  44. package/dist/cjs/plugins/extension/utils.js +12 -57
  45. package/dist/cjs/plugins/fake-text-cursor/styles.js +3 -1
  46. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
  47. package/dist/cjs/plugins/feedback-dialog/index.js +0 -1
  48. package/dist/cjs/plugins/find-replace/styles.js +2 -6
  49. package/dist/cjs/plugins/find-replace/ui/styles.js +4 -2
  50. package/dist/cjs/plugins/find-replace/utils/batch-decorations.js +0 -1
  51. package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +3 -1
  52. package/dist/cjs/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +3 -1
  53. package/dist/cjs/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +2 -2
  54. package/dist/cjs/plugins/floating-toolbar/ui/Separator.js +3 -1
  55. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +6 -4
  56. package/dist/cjs/plugins/floating-toolbar/ui/styles.js +12 -10
  57. package/dist/cjs/plugins/grid/styles.js +3 -1
  58. package/dist/cjs/plugins/help-dialog/ui/styles.js +9 -7
  59. package/dist/cjs/plugins/hyperlink/pm-plugins/input-rule.js +23 -1
  60. package/dist/cjs/plugins/hyperlink/pm-plugins/keymap.js +10 -1
  61. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +7 -5
  62. package/dist/cjs/plugins/hyperlink/utils.js +53 -2
  63. package/dist/cjs/plugins/jira-issue/nodeviews/jira-issue.js +4 -2
  64. package/dist/cjs/plugins/layout/styles.js +1 -1
  65. package/dist/cjs/plugins/macro/actions.js +2 -2
  66. package/dist/cjs/plugins/media/commands/helpers.js +10 -9
  67. package/dist/cjs/plugins/media/nodeviews/mediaInline.js +25 -6
  68. package/dist/cjs/plugins/media/nodeviews/mediaNodeView/media.js +6 -0
  69. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +2 -2
  70. package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -3
  71. package/dist/cjs/plugins/media/pm-plugins/main.js +1 -0
  72. package/dist/cjs/plugins/media/styles.js +1 -1
  73. package/dist/cjs/plugins/media/ui/CaptionPlaceholder/index.js +3 -1
  74. package/dist/cjs/plugins/media/ui/Media/DropPlaceholder.js +4 -2
  75. package/dist/cjs/plugins/media/ui/MediaLinkingToolbar.js +3 -1
  76. package/dist/cjs/plugins/media/ui/ResizableMediaSingle/index.js +2 -2
  77. package/dist/cjs/plugins/mentions/styles.js +3 -1
  78. package/dist/cjs/plugins/mentions/ui/InviteItem/index.js +3 -1
  79. package/dist/cjs/plugins/mentions/ui/InviteItem/styles.js +4 -2
  80. package/dist/cjs/plugins/panel/index.js +1 -0
  81. package/dist/cjs/plugins/panel/nodeviews/panel.js +4 -1
  82. package/dist/cjs/plugins/panel/pm-plugins/keymaps.js +21 -3
  83. package/dist/cjs/plugins/paste/handlers.js +44 -6
  84. package/dist/cjs/plugins/paste/linkify-md-plugin.js +7 -0
  85. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +9 -1
  86. package/dist/cjs/plugins/paste/pm-plugins/main.js +27 -1
  87. package/dist/cjs/plugins/placeholder/index.js +15 -3
  88. package/dist/cjs/plugins/placeholder/styles.js +3 -1
  89. package/dist/cjs/plugins/placeholder-text/styles.js +3 -1
  90. package/dist/cjs/plugins/selection/gap-cursor/styles.js +1 -1
  91. package/dist/cjs/plugins/selection/pm-plugins/gap-cursor-main.js +2 -2
  92. package/dist/cjs/plugins/status/ui/statusPicker.js +3 -3
  93. package/dist/cjs/plugins/table/index.js +14 -4
  94. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +6 -6
  95. package/dist/cjs/plugins/table/nodeviews/table.js +9 -4
  96. package/dist/cjs/plugins/table/pm-plugins/main.js +1 -4
  97. package/dist/cjs/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +118 -0
  98. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +2 -4
  99. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin.js +2 -5
  100. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -8
  101. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -3
  102. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +0 -3
  103. package/dist/cjs/plugins/table/transforms/column-width.js +1 -2
  104. package/dist/cjs/plugins/table/transforms/fix-tables.js +1 -3
  105. package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +4 -1
  106. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +3 -1
  107. package/dist/cjs/plugins/table/ui/common-styles.js +4 -2
  108. package/dist/cjs/plugins/table/ui/consts.js +14 -11
  109. package/dist/cjs/plugins/table/ui/ui-styles.js +17 -10
  110. package/dist/cjs/plugins/table/utils/decoration.js +3 -4
  111. package/dist/cjs/plugins/table/utils/paste.js +9 -9
  112. package/dist/cjs/plugins/type-ahead/index.js +4 -3
  113. package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +3 -1
  114. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +4 -4
  115. package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +11 -9
  116. package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +73 -3
  117. package/dist/cjs/plugins/unsupported-content/styles.js +1 -1
  118. package/dist/cjs/ui/Addon/Dropdown/styles.js +3 -1
  119. package/dist/cjs/ui/Addon/DropdownItem/styles.js +3 -1
  120. package/dist/cjs/ui/Appearance/Chromeless.js +2 -1
  121. package/dist/cjs/ui/Appearance/Comment/Comment.js +10 -3
  122. package/dist/cjs/ui/Appearance/Comment/Toolbar.js +4 -2
  123. package/dist/cjs/ui/Appearance/FullPage/FullPage.js +5 -2
  124. package/dist/cjs/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
  125. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +12 -11
  126. package/dist/cjs/ui/Appearance/FullPage/MainToolbar.js +6 -3
  127. package/dist/cjs/ui/ChromeCollapsed/styles.js +1 -1
  128. package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +23 -16
  129. package/dist/cjs/ui/ConfigPanel/ConfigPanelFieldsLoader.js +2 -0
  130. package/dist/cjs/ui/ConfigPanel/Fields/CheckboxGroup.js +3 -1
  131. package/dist/cjs/ui/ConfigPanel/Fields/CustomSelect.js +2 -2
  132. package/dist/cjs/ui/ConfigPanel/Fields/Expand.js +3 -1
  133. package/dist/cjs/ui/ConfigPanel/Fields/Fieldset.js +3 -1
  134. package/dist/cjs/ui/ConfigPanel/Fields/UserSelect.js +2 -2
  135. package/dist/cjs/ui/ConfigPanel/Fields/common/RequiredIndicator.js +3 -1
  136. package/dist/cjs/ui/ConfigPanel/Header.js +4 -2
  137. package/dist/cjs/ui/ConfigPanel/NestedForms/RemovableField.js +4 -8
  138. package/dist/cjs/ui/ConfigPanel/transformers.js +2 -2
  139. package/dist/cjs/ui/ContentStyles/index.js +4 -2
  140. package/dist/cjs/ui/ContextPanel/index.js +3 -1
  141. package/dist/cjs/ui/DropdownMenu/index.js +5 -0
  142. package/dist/cjs/ui/ElementBrowser/InsertMenu.js +6 -4
  143. package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +4 -2
  144. package/dist/cjs/ui/ElementBrowser/components/CategoryList.js +4 -2
  145. package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +12 -5
  146. package/dist/cjs/ui/ElementBrowser/components/ElementList/EmptyState.js +3 -1
  147. package/dist/cjs/ui/ElementBrowser/components/ElementSearch.js +3 -1
  148. package/dist/cjs/ui/ElementBrowser/constants.js +3 -1
  149. package/dist/cjs/ui/FloatingToolbar/styles.js +2 -2
  150. package/dist/cjs/ui/LinkSearch/LinkSearchListItem.js +5 -3
  151. package/dist/cjs/ui/PanelTextInput/styles.js +3 -1
  152. package/dist/cjs/ui/PluginSlot/index.js +7 -4
  153. package/dist/cjs/ui/Toolbar/ToolbarInner.js +2 -1
  154. package/dist/cjs/ui/Toolbar/ToolbarWithSizeDetector.js +5 -2
  155. package/dist/cjs/ui/ToolbarFeedback/styles.js +5 -3
  156. package/dist/cjs/ui/WithFlash/index.js +4 -2
  157. package/dist/cjs/ui/styles.js +6 -4
  158. package/dist/cjs/utils/document.js +62 -6
  159. package/dist/cjs/utils/filter/privacy-filter.js +2 -2
  160. package/dist/cjs/utils/step.js +17 -1
  161. package/dist/cjs/version-wrapper.js +1 -1
  162. package/dist/cjs/version.json +1 -1
  163. package/dist/es2019/actions/index.js +25 -1
  164. package/dist/es2019/create-editor/ReactEditorView.js +2 -0
  165. package/dist/es2019/create-editor/create-plugins-list.js +1 -2
  166. package/dist/es2019/editor.js +5 -2
  167. package/dist/es2019/keymaps/index.js +5 -1
  168. package/dist/es2019/labs/next/ContentComponents.js +7 -2
  169. package/dist/es2019/labs/next/full-page.js +11 -8
  170. package/dist/es2019/nodeviews/getInlineNodeViewProducer.js +4 -3
  171. package/dist/es2019/nodeviews/getInlineNodeViewProducer.styles.js +16 -4
  172. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +2 -1
  173. package/dist/es2019/plugins/analytics/types/enums.js +3 -0
  174. package/dist/es2019/plugins/base/index.js +6 -15
  175. package/dist/es2019/plugins/base/pm-plugins/better-type-history.js +1 -11
  176. package/dist/es2019/plugins/base/pm-plugins/inline-cursor-target.js +72 -17
  177. package/dist/es2019/plugins/block-type/commands/block-type.js +25 -16
  178. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -2
  179. package/dist/es2019/plugins/breakout/ui/LayoutButton.js +6 -10
  180. package/dist/es2019/plugins/card/styles.js +1 -1
  181. package/dist/es2019/plugins/card/ui/LinkToolbarIconDropdown.js +2 -2
  182. package/dist/es2019/plugins/code-block/actions.js +32 -0
  183. package/dist/es2019/plugins/code-block/nodeviews/code-block.js +61 -1
  184. package/dist/es2019/plugins/code-block/pm-plugins/actions.js +2 -1
  185. package/dist/es2019/plugins/code-block/pm-plugins/main.js +37 -3
  186. package/dist/es2019/plugins/code-block/styles.js +30 -27
  187. package/dist/es2019/plugins/collab-edit/styles.js +3 -2
  188. package/dist/es2019/plugins/collab-edit/ui/styles.js +4 -3
  189. package/dist/es2019/plugins/collab-edit/utils.js +1 -0
  190. package/dist/es2019/plugins/date/ui/DatePicker/index.js +3 -2
  191. package/dist/es2019/plugins/expand/ui/styles.js +15 -14
  192. package/dist/es2019/plugins/extension/commands.js +3 -2
  193. package/dist/es2019/plugins/extension/context-panel.js +11 -3
  194. package/dist/es2019/plugins/extension/plugin-factory.js +1 -3
  195. package/dist/es2019/plugins/extension/pm-plugins/main.js +12 -38
  196. package/dist/es2019/plugins/extension/ui/Extension/Extension/styles.js +5 -4
  197. package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/styles.js +2 -1
  198. package/dist/es2019/plugins/extension/ui/Extension/styles.js +7 -6
  199. package/dist/es2019/plugins/extension/ui/SaveIndicator/SaveIndicator.js +4 -4
  200. package/dist/es2019/plugins/extension/utils.js +2 -37
  201. package/dist/es2019/plugins/fake-text-cursor/styles.js +3 -2
  202. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
  203. package/dist/es2019/plugins/find-replace/styles.js +4 -4
  204. package/dist/es2019/plugins/find-replace/ui/styles.js +3 -2
  205. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  206. package/dist/es2019/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +2 -1
  207. package/dist/es2019/plugins/floating-toolbar/ui/Separator.js +2 -1
  208. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +4 -4
  209. package/dist/es2019/plugins/floating-toolbar/ui/styles.js +11 -10
  210. package/dist/es2019/plugins/grid/styles.js +4 -2
  211. package/dist/es2019/plugins/help-dialog/ui/styles.js +10 -9
  212. package/dist/es2019/plugins/hyperlink/pm-plugins/input-rule.js +24 -2
  213. package/dist/es2019/plugins/hyperlink/pm-plugins/keymap.js +9 -1
  214. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +5 -4
  215. package/dist/es2019/plugins/hyperlink/utils.js +43 -2
  216. package/dist/es2019/plugins/jira-issue/nodeviews/jira-issue.js +6 -5
  217. package/dist/es2019/plugins/layout/styles.js +10 -7
  218. package/dist/es2019/plugins/media/commands/helpers.js +6 -8
  219. package/dist/es2019/plugins/media/nodeviews/mediaInline.js +21 -5
  220. package/dist/es2019/plugins/media/nodeviews/mediaNodeView/media.js +7 -0
  221. package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -4
  222. package/dist/es2019/plugins/media/pm-plugins/main.js +2 -0
  223. package/dist/es2019/plugins/media/styles.js +3 -3
  224. package/dist/es2019/plugins/media/ui/CaptionPlaceholder/index.js +2 -1
  225. package/dist/es2019/plugins/media/ui/Media/DropPlaceholder.js +4 -3
  226. package/dist/es2019/plugins/media/ui/MediaLinkingToolbar.js +2 -1
  227. package/dist/es2019/plugins/mentions/styles.js +5 -4
  228. package/dist/es2019/plugins/mentions/ui/InviteItem/index.js +2 -1
  229. package/dist/es2019/plugins/mentions/ui/InviteItem/styles.js +3 -2
  230. package/dist/es2019/plugins/panel/index.js +1 -0
  231. package/dist/es2019/plugins/panel/nodeviews/panel.js +4 -1
  232. package/dist/es2019/plugins/panel/pm-plugins/keymaps.js +22 -4
  233. package/dist/es2019/plugins/paste/handlers.js +45 -7
  234. package/dist/es2019/plugins/paste/linkify-md-plugin.js +7 -1
  235. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +4 -1
  236. package/dist/es2019/plugins/paste/pm-plugins/main.js +27 -2
  237. package/dist/es2019/plugins/placeholder/index.js +12 -1
  238. package/dist/es2019/plugins/placeholder/styles.js +3 -1
  239. package/dist/es2019/plugins/placeholder-text/styles.js +5 -4
  240. package/dist/es2019/plugins/selection/gap-cursor/styles.js +9 -9
  241. package/dist/es2019/plugins/selection/pm-plugins/gap-cursor-main.js +2 -2
  242. package/dist/es2019/plugins/status/ui/statusPicker.js +3 -3
  243. package/dist/es2019/plugins/table/index.js +13 -4
  244. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +6 -6
  245. package/dist/es2019/plugins/table/nodeviews/table.js +6 -2
  246. package/dist/es2019/plugins/table/pm-plugins/main.js +1 -4
  247. package/dist/es2019/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +106 -0
  248. package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +2 -4
  249. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin.js +2 -4
  250. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/misc.js +3 -7
  251. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -3
  252. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +0 -3
  253. package/dist/es2019/plugins/table/transforms/column-width.js +1 -2
  254. package/dist/es2019/plugins/table/transforms/fix-tables.js +1 -3
  255. package/dist/es2019/plugins/table/ui/FloatingContextualButton/styles.js +4 -2
  256. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/styles.js +4 -3
  257. package/dist/es2019/plugins/table/ui/common-styles.js +29 -27
  258. package/dist/es2019/plugins/table/ui/consts.js +15 -12
  259. package/dist/es2019/plugins/table/ui/ui-styles.js +28 -23
  260. package/dist/es2019/plugins/table/utils/decoration.js +1 -4
  261. package/dist/es2019/plugins/table/utils/paste.js +9 -9
  262. package/dist/es2019/plugins/type-ahead/index.js +4 -3
  263. package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +2 -1
  264. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +4 -4
  265. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +10 -9
  266. package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +64 -6
  267. package/dist/es2019/plugins/unsupported-content/styles.js +1 -1
  268. package/dist/es2019/ui/Addon/Dropdown/styles.js +3 -2
  269. package/dist/es2019/ui/Addon/DropdownItem/styles.js +3 -2
  270. package/dist/es2019/ui/Appearance/Chromeless.js +2 -1
  271. package/dist/es2019/ui/Appearance/Comment/Comment.js +9 -4
  272. package/dist/es2019/ui/Appearance/Comment/Toolbar.js +4 -2
  273. package/dist/es2019/ui/Appearance/FullPage/FullPage.js +6 -2
  274. package/dist/es2019/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
  275. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +12 -11
  276. package/dist/es2019/ui/Appearance/FullPage/MainToolbar.js +7 -3
  277. package/dist/es2019/ui/ChromeCollapsed/styles.js +4 -3
  278. package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +10 -2
  279. package/dist/es2019/ui/ConfigPanel/ConfigPanelFieldsLoader.js +2 -0
  280. package/dist/es2019/ui/ConfigPanel/ErrorMessage/ErrorImage.js +3 -0
  281. package/dist/es2019/ui/ConfigPanel/Fields/CheckboxGroup.js +2 -1
  282. package/dist/es2019/ui/ConfigPanel/Fields/Expand.js +2 -1
  283. package/dist/es2019/ui/ConfigPanel/Fields/Fieldset.js +2 -1
  284. package/dist/es2019/ui/ConfigPanel/Fields/common/RequiredIndicator.js +2 -1
  285. package/dist/es2019/ui/ConfigPanel/Header.js +3 -2
  286. package/dist/es2019/ui/ConfigPanel/NestedForms/RemovableField.js +4 -3
  287. package/dist/es2019/ui/ContentStyles/index.js +3 -2
  288. package/dist/es2019/ui/ContextPanel/index.js +2 -1
  289. package/dist/es2019/ui/DropdownMenu/index.js +5 -0
  290. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +6 -3
  291. package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +3 -2
  292. package/dist/es2019/ui/ElementBrowser/components/CategoryList.js +3 -2
  293. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +12 -5
  294. package/dist/es2019/ui/ElementBrowser/components/ElementList/EmptyState.js +2 -1
  295. package/dist/es2019/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +3 -0
  296. package/dist/es2019/ui/ElementBrowser/components/ElementSearch.js +2 -1
  297. package/dist/es2019/ui/ElementBrowser/constants.js +3 -1
  298. package/dist/es2019/ui/FloatingToolbar/styles.js +4 -4
  299. package/dist/es2019/ui/LinkSearch/LinkSearchListItem.js +4 -3
  300. package/dist/es2019/ui/PanelTextInput/styles.js +5 -5
  301. package/dist/es2019/ui/PluginSlot/index.js +7 -4
  302. package/dist/es2019/ui/Toolbar/ToolbarInner.js +2 -1
  303. package/dist/es2019/ui/Toolbar/ToolbarWithSizeDetector.js +4 -2
  304. package/dist/es2019/ui/ToolbarFeedback/styles.js +5 -4
  305. package/dist/es2019/ui/WithFlash/index.js +4 -3
  306. package/dist/es2019/ui/styles.js +10 -9
  307. package/dist/es2019/utils/document.js +58 -5
  308. package/dist/es2019/utils/filter/privacy-filter.js +1 -1
  309. package/dist/es2019/utils/step.js +12 -1
  310. package/dist/es2019/version-wrapper.js +1 -1
  311. package/dist/es2019/version.json +1 -1
  312. package/dist/esm/actions/index.js +27 -2
  313. package/dist/esm/create-editor/ErrorBoundary.js +1 -1
  314. package/dist/esm/create-editor/ReactEditorView.js +2 -0
  315. package/dist/esm/create-editor/create-plugins-list.js +1 -2
  316. package/dist/esm/editor.js +6 -4
  317. package/dist/esm/keymaps/index.js +5 -1
  318. package/dist/esm/labs/next/ContentComponents.js +8 -4
  319. package/dist/esm/labs/next/full-page.js +11 -8
  320. package/dist/esm/nodeviews/getInlineNodeViewProducer.js +4 -3
  321. package/dist/esm/nodeviews/getInlineNodeViewProducer.styles.js +3 -2
  322. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +2 -1
  323. package/dist/esm/plugins/analytics/types/enums.js +3 -0
  324. package/dist/esm/plugins/annotation/pm-plugins/inline-comment.js +1 -1
  325. package/dist/esm/plugins/annotation/pm-plugins/plugin-factory.js +0 -1
  326. package/dist/esm/plugins/base/index.js +8 -17
  327. package/dist/esm/plugins/base/pm-plugins/better-type-history.js +1 -11
  328. package/dist/esm/plugins/base/pm-plugins/inline-cursor-target.js +72 -17
  329. package/dist/esm/plugins/block-type/commands/block-type.js +31 -22
  330. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -2
  331. package/dist/esm/plugins/breakout/ui/LayoutButton.js +3 -5
  332. package/dist/esm/plugins/card/styles.js +1 -1
  333. package/dist/esm/plugins/card/ui/LinkToolbarIconDropdown.js +2 -2
  334. package/dist/esm/plugins/code-block/actions.js +28 -0
  335. package/dist/esm/plugins/code-block/nodeviews/code-block.js +67 -1
  336. package/dist/esm/plugins/code-block/pm-plugins/actions.js +2 -1
  337. package/dist/esm/plugins/code-block/pm-plugins/main.js +39 -3
  338. package/dist/esm/plugins/code-block/styles.js +27 -23
  339. package/dist/esm/plugins/collab-edit/index.js +1 -1
  340. package/dist/esm/plugins/collab-edit/provider/channel.js +1 -1
  341. package/dist/esm/plugins/collab-edit/styles.js +3 -2
  342. package/dist/esm/plugins/collab-edit/ui/styles.js +3 -2
  343. package/dist/esm/plugins/collab-edit/utils.js +2 -0
  344. package/dist/esm/plugins/custom-autoformat/doc.js +1 -1
  345. package/dist/esm/plugins/custom-autoformat/index.js +1 -1
  346. package/dist/esm/plugins/date/ui/DatePicker/index.js +2 -1
  347. package/dist/esm/plugins/expand/ui/styles.js +15 -14
  348. package/dist/esm/plugins/extension/actions.js +1 -1
  349. package/dist/esm/plugins/extension/commands.js +3 -2
  350. package/dist/esm/plugins/extension/context-panel.js +22 -8
  351. package/dist/esm/plugins/extension/plugin-factory.js +1 -3
  352. package/dist/esm/plugins/extension/pm-plugins/main.js +12 -35
  353. package/dist/esm/plugins/extension/ui/Extension/Extension/styles.js +5 -4
  354. package/dist/esm/plugins/extension/ui/Extension/ExtensionComponent.js +1 -1
  355. package/dist/esm/plugins/extension/ui/Extension/InlineExtension/styles.js +2 -1
  356. package/dist/esm/plugins/extension/ui/Extension/styles.js +6 -5
  357. package/dist/esm/plugins/extension/ui/SaveIndicator/SaveIndicator.js +3 -2
  358. package/dist/esm/plugins/extension/utils.js +9 -51
  359. package/dist/esm/plugins/fake-text-cursor/styles.js +2 -1
  360. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
  361. package/dist/esm/plugins/feedback-dialog/index.js +1 -2
  362. package/dist/esm/plugins/feedback-dialog/loadJiraCollectorDialogScript.js +1 -1
  363. package/dist/esm/plugins/find-replace/styles.js +3 -3
  364. package/dist/esm/plugins/find-replace/ui/styles.js +3 -2
  365. package/dist/esm/plugins/find-replace/utils/batch-decorations.js +1 -2
  366. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  367. package/dist/esm/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +2 -1
  368. package/dist/esm/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +1 -1
  369. package/dist/esm/plugins/floating-toolbar/ui/Separator.js +2 -1
  370. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +5 -4
  371. package/dist/esm/plugins/floating-toolbar/ui/styles.js +11 -10
  372. package/dist/esm/plugins/grid/styles.js +2 -1
  373. package/dist/esm/plugins/help-dialog/ui/styles.js +8 -7
  374. package/dist/esm/plugins/hyperlink/HyperlinkToolbarAppearance.js +1 -1
  375. package/dist/esm/plugins/hyperlink/pm-plugins/input-rule.js +24 -2
  376. package/dist/esm/plugins/hyperlink/pm-plugins/keymap.js +9 -1
  377. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +5 -5
  378. package/dist/esm/plugins/hyperlink/utils.js +44 -2
  379. package/dist/esm/plugins/image-upload/pm-plugins/main.js +1 -1
  380. package/dist/esm/plugins/jira-issue/nodeviews/jira-issue.js +3 -2
  381. package/dist/esm/plugins/layout/styles.js +1 -1
  382. package/dist/esm/plugins/macro/actions.js +1 -1
  383. package/dist/esm/plugins/media/commands/helpers.js +6 -8
  384. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +1 -1
  385. package/dist/esm/plugins/media/nodeviews/mediaInline.js +23 -6
  386. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +1 -1
  387. package/dist/esm/plugins/media/nodeviews/mediaNodeView/media.js +8 -1
  388. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +1 -1
  389. package/dist/esm/plugins/media/picker-facade.js +1 -1
  390. package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +4 -3
  391. package/dist/esm/plugins/media/pm-plugins/main.js +3 -1
  392. package/dist/esm/plugins/media/styles.js +1 -1
  393. package/dist/esm/plugins/media/toolbar/utils.js +1 -1
  394. package/dist/esm/plugins/media/ui/CaptionPlaceholder/index.js +2 -1
  395. package/dist/esm/plugins/media/ui/Media/DropPlaceholder.js +3 -2
  396. package/dist/esm/plugins/media/ui/MediaLinkingToolbar.js +2 -1
  397. package/dist/esm/plugins/media/ui/MediaPicker/PickerFacadeProvider.js +1 -1
  398. package/dist/esm/plugins/media/ui/ResizableMediaSingle/index.js +1 -1
  399. package/dist/esm/plugins/media/utils/check-media-type.js +1 -1
  400. package/dist/esm/plugins/mentions/styles.js +2 -1
  401. package/dist/esm/plugins/mentions/ui/InviteItem/index.js +2 -1
  402. package/dist/esm/plugins/mentions/ui/InviteItem/styles.js +3 -2
  403. package/dist/esm/plugins/panel/index.js +1 -0
  404. package/dist/esm/plugins/panel/nodeviews/panel.js +4 -1
  405. package/dist/esm/plugins/panel/pm-plugins/keymaps.js +22 -4
  406. package/dist/esm/plugins/paste/handlers.js +44 -8
  407. package/dist/esm/plugins/paste/linkify-md-plugin.js +7 -1
  408. package/dist/esm/plugins/paste/pm-plugins/analytics.js +6 -1
  409. package/dist/esm/plugins/paste/pm-plugins/main.js +28 -3
  410. package/dist/esm/plugins/placeholder/index.js +12 -1
  411. package/dist/esm/plugins/placeholder/styles.js +2 -1
  412. package/dist/esm/plugins/placeholder-text/styles.js +2 -1
  413. package/dist/esm/plugins/quick-insert/index.js +1 -1
  414. package/dist/esm/plugins/selection/gap-cursor/styles.js +1 -1
  415. package/dist/esm/plugins/selection/pm-plugins/gap-cursor-main.js +2 -2
  416. package/dist/esm/plugins/status/ui/statusPicker.js +2 -2
  417. package/dist/esm/plugins/table/index.js +13 -4
  418. package/dist/esm/plugins/table/nodeviews/TableComponent.js +6 -6
  419. package/dist/esm/plugins/table/nodeviews/table.js +6 -2
  420. package/dist/esm/plugins/table/pm-plugins/main.js +1 -4
  421. package/dist/esm/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +102 -0
  422. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +2 -4
  423. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin.js +2 -5
  424. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -8
  425. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -3
  426. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +0 -3
  427. package/dist/esm/plugins/table/transforms/column-width.js +1 -2
  428. package/dist/esm/plugins/table/transforms/fix-tables.js +1 -3
  429. package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +3 -1
  430. package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +2 -1
  431. package/dist/esm/plugins/table/ui/common-styles.js +4 -2
  432. package/dist/esm/plugins/table/ui/consts.js +15 -12
  433. package/dist/esm/plugins/table/ui/ui-styles.js +15 -10
  434. package/dist/esm/plugins/table/utils/decoration.js +3 -4
  435. package/dist/esm/plugins/table/utils/paste.js +9 -9
  436. package/dist/esm/plugins/tasks-and-decisions/ui/Task/task-item-with-providers.js +1 -1
  437. package/dist/esm/plugins/type-ahead/index.js +4 -3
  438. package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +2 -1
  439. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +4 -4
  440. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +10 -9
  441. package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +71 -5
  442. package/dist/esm/plugins/unsupported-content/styles.js +1 -1
  443. package/dist/esm/ui/Addon/Dropdown/styles.js +2 -1
  444. package/dist/esm/ui/Addon/DropdownItem/styles.js +2 -1
  445. package/dist/esm/ui/Appearance/Chromeless.js +2 -1
  446. package/dist/esm/ui/Appearance/Comment/Comment.js +10 -3
  447. package/dist/esm/ui/Appearance/Comment/Toolbar.js +3 -2
  448. package/dist/esm/ui/Appearance/FullPage/FullPage.js +6 -2
  449. package/dist/esm/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
  450. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +12 -11
  451. package/dist/esm/ui/Appearance/FullPage/MainToolbar.js +5 -3
  452. package/dist/esm/ui/ChromeCollapsed/styles.js +1 -1
  453. package/dist/esm/ui/ConfigPanel/ConfigPanel.js +22 -15
  454. package/dist/esm/ui/ConfigPanel/ConfigPanelFieldsLoader.js +2 -0
  455. package/dist/esm/ui/ConfigPanel/ErrorMessage/ErrorImage.js +3 -0
  456. package/dist/esm/ui/ConfigPanel/Fields/CheckboxGroup.js +2 -1
  457. package/dist/esm/ui/ConfigPanel/Fields/CustomSelect.js +1 -1
  458. package/dist/esm/ui/ConfigPanel/Fields/Expand.js +2 -1
  459. package/dist/esm/ui/ConfigPanel/Fields/Fieldset.js +2 -1
  460. package/dist/esm/ui/ConfigPanel/Fields/UserSelect.js +1 -1
  461. package/dist/esm/ui/ConfigPanel/Fields/common/RequiredIndicator.js +2 -1
  462. package/dist/esm/ui/ConfigPanel/FormErrorBoundary.js +1 -1
  463. package/dist/esm/ui/ConfigPanel/Header.js +3 -2
  464. package/dist/esm/ui/ConfigPanel/NestedForms/RemovableField.js +3 -2
  465. package/dist/esm/ui/ConfigPanel/transformers.js +1 -1
  466. package/dist/esm/ui/ContentStyles/index.js +3 -2
  467. package/dist/esm/ui/ContextPanel/index.js +2 -1
  468. package/dist/esm/ui/DropdownMenu/index.js +5 -0
  469. package/dist/esm/ui/ElementBrowser/InsertMenu.js +5 -4
  470. package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +3 -2
  471. package/dist/esm/ui/ElementBrowser/components/CategoryList.js +3 -2
  472. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +11 -5
  473. package/dist/esm/ui/ElementBrowser/components/ElementList/EmptyState.js +2 -1
  474. package/dist/esm/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +3 -0
  475. package/dist/esm/ui/ElementBrowser/components/ElementSearch.js +2 -1
  476. package/dist/esm/ui/ElementBrowser/constants.js +3 -1
  477. package/dist/esm/ui/FloatingToolbar/styles.js +3 -3
  478. package/dist/esm/ui/LinkSearch/LinkSearchListItem.js +4 -3
  479. package/dist/esm/ui/LinkSearch/index.js +1 -1
  480. package/dist/esm/ui/PanelTextInput/styles.js +4 -3
  481. package/dist/esm/ui/PluginSlot/index.js +7 -4
  482. package/dist/esm/ui/Toolbar/ToolbarInner.js +2 -1
  483. package/dist/esm/ui/Toolbar/ToolbarWithSizeDetector.js +4 -2
  484. package/dist/esm/ui/ToolbarFeedback/index.js +1 -1
  485. package/dist/esm/ui/ToolbarFeedback/styles.js +4 -3
  486. package/dist/esm/ui/WithFlash/index.js +3 -2
  487. package/dist/esm/ui/styles.js +5 -4
  488. package/dist/esm/utils/action.js +1 -1
  489. package/dist/esm/utils/clipboard.js +1 -1
  490. package/dist/esm/utils/document.js +59 -5
  491. package/dist/esm/utils/extensions.js +1 -1
  492. package/dist/esm/utils/filter/privacy-filter.js +1 -1
  493. package/dist/esm/utils/step.js +12 -1
  494. package/dist/esm/version-wrapper.js +1 -1
  495. package/dist/esm/version.json +1 -1
  496. package/dist/types/actions/index.d.ts +6 -0
  497. package/dist/types/labs/next/ContentComponents.d.ts +7 -1
  498. package/dist/types/nodeviews/getInlineNodeViewProducer.d.ts +1 -0
  499. package/dist/types/plugins/analytics/types/enums.d.ts +3 -0
  500. package/dist/types/plugins/analytics/types/general-events.d.ts +7 -1
  501. package/dist/types/plugins/base/pm-plugins/inline-cursor-target.d.ts +1 -1
  502. package/dist/types/plugins/code-block/actions.d.ts +2 -0
  503. package/dist/types/plugins/code-block/nodeviews/code-block.d.ts +2 -0
  504. package/dist/types/plugins/code-block/pm-plugins/actions.d.ts +1 -0
  505. package/dist/types/plugins/code-block/pm-plugins/main-state.d.ts +1 -0
  506. package/dist/types/plugins/extension/commands.d.ts +1 -1
  507. package/dist/types/plugins/extension/pm-plugins/main.d.ts +1 -2
  508. package/dist/types/plugins/extension/types.d.ts +1 -1
  509. package/dist/types/plugins/extension/ui/Extension/Extension/index.d.ts +6 -0
  510. package/dist/types/plugins/extension/utils.d.ts +1 -3
  511. package/dist/types/plugins/find-replace/styles.d.ts +0 -2
  512. package/dist/types/plugins/hyperlink/utils.d.ts +8 -0
  513. package/dist/types/plugins/media/commands/helpers.d.ts +2 -0
  514. package/dist/types/plugins/media/nodeviews/mediaNodeView/media.d.ts +1 -0
  515. package/dist/types/plugins/media/pm-plugins/main.d.ts +2 -1
  516. package/dist/types/plugins/media/pm-plugins/types.d.ts +2 -1
  517. package/dist/types/plugins/paste/handlers.d.ts +1 -0
  518. package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +1 -0
  519. package/dist/types/plugins/table/commands/misc.d.ts +0 -1
  520. package/dist/types/plugins/table/index.d.ts +0 -1
  521. package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +1 -0
  522. package/dist/types/plugins/table/nodeviews/types.d.ts +0 -1
  523. package/dist/types/plugins/table/pm-plugins/main.d.ts +1 -1
  524. package/dist/types/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.d.ts +15 -0
  525. package/dist/types/plugins/table/pm-plugins/table-resizing/event-handlers.d.ts +1 -1
  526. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin.d.ts +1 -1
  527. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +1 -2
  528. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +1 -1
  529. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/scale-table.d.ts +0 -1
  530. package/dist/types/plugins/table/transforms/fix-tables.d.ts +0 -1
  531. package/dist/types/plugins/table/types.d.ts +0 -1
  532. package/dist/types/plugins/table/ui/consts.d.ts +9 -9
  533. package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +2 -0
  534. package/dist/types/plugins/type-ahead/ui/TypeAheadListItem.d.ts +4 -4
  535. package/dist/types/types/editor-appearance-component.d.ts +0 -1
  536. package/dist/types/types/editor-props.d.ts +4 -0
  537. package/dist/types/types/feature-flags.d.ts +8 -0
  538. package/dist/types/types/ui-components.d.ts +1 -0
  539. package/dist/types/ui/Appearance/FullPage/FullPage.d.ts +1 -0
  540. package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -0
  541. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +3 -2
  542. package/dist/types/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +3 -2
  543. package/dist/types/ui/PluginSlot/index.d.ts +1 -0
  544. package/dist/types/ui/Toolbar/toolbar-types.d.ts +1 -0
  545. package/dist/types/utils/document.d.ts +1 -0
  546. package/dist/types/utils/step.d.ts +1 -0
  547. package/docs/0-intro.tsx +12 -4
  548. package/package.json +22 -22
@@ -1,5 +1,6 @@
1
1
  import { linkifyMatch } from '@atlaskit/adf-schema';
2
- import LinkifyIt from 'linkify-it'; // modified version of the original Linkify plugin
2
+ import LinkifyIt from 'linkify-it';
3
+ import { findFilepaths, isLinkInMatches } from '../hyperlink/utils'; // modified version of the original Linkify plugin
3
4
  // https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js
4
5
 
5
6
  var arrayReplaceAt = function arrayReplaceAt(src, pos, newElements) {
@@ -67,8 +68,13 @@ var linkify = function linkify(state) {
67
68
  var nodes = [];
68
69
  var level = currentToken.level;
69
70
  var lastPos = 0;
71
+ var filepaths = findFilepaths(text);
70
72
 
71
73
  for (var ln = 0; ln < links.length; ln++) {
74
+ if (isLinkInMatches(links[ln].index, filepaths)) {
75
+ continue;
76
+ }
77
+
72
78
  var url = links[ln].url;
73
79
  var fullUrl = state.md.normalizeLink(url);
74
80
 
@@ -7,7 +7,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
7
7
 
8
8
  import { ACTION, INPUT_METHOD, EVENT_TYPE, ACTION_SUBJECT, ACTION_SUBJECT_ID, addAnalytics, PasteTypes, PasteContents, withAnalytics } from '../../analytics';
9
9
  import { getPasteSource } from '../util';
10
- import { handlePasteAsPlainText, handlePasteIntoTaskAndDecision, handleCodeBlock, handleMediaSingle, handlePastePreservingMarks, handleMarkdown, handleRichText, handleExpandPasteInTable, handleSelectedTable, handlePasteLinkOnSelectedText } from '../handlers';
10
+ import { handlePasteAsPlainText, handlePasteIntoTaskAndDecision, handleCodeBlock, handleMediaSingle, handlePastePreservingMarks, handleMarkdown, handleRichText, handleExpandPasteInTable, handleSelectedTable, handlePasteLinkOnSelectedText, handlePasteIntoCaption } from '../handlers';
11
11
  import { pipe } from '../../../utils';
12
12
  import { findParentNode } from 'prosemirror-utils';
13
13
  import { mapSlice } from '../../../utils/slice';
@@ -222,6 +222,11 @@ export var handlePasteIntoTaskAndDecisionWithAnalytics = function handlePasteInt
222
222
  type: type
223
223
  }))(slice);
224
224
  };
225
+ export var handlePasteIntoCaptionWithAnalytics = function handlePasteIntoCaptionWithAnalytics(view, event, slice, type) {
226
+ return pipe(handlePasteIntoCaption, pasteCommandWithAnalytics(view, event, slice, {
227
+ type: type
228
+ }))(slice);
229
+ };
225
230
  export var handleCodeBlockWithAnalytics = function handleCodeBlockWithAnalytics(view, event, slice, text) {
226
231
  return pipe(handleCodeBlock, pasteCommandWithAnalytics(view, event, slice, {
227
232
  type: PasteTypes.plain
@@ -1,5 +1,5 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
1
  import _regeneratorRuntime from "@babel/runtime/regenerator";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
3
  import { Slice, Fragment } from 'prosemirror-model';
4
4
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
5
5
  import { PluginKey } from 'prosemirror-state';
@@ -14,7 +14,7 @@ import { linkifyContent } from '../../hyperlink/utils';
14
14
  import { transformSliceNestedExpandToExpand } from '../../expand/utils';
15
15
  import { handleMacroAutoConvert, handleMention, handleParagraphBlockMarks } from '../handlers';
16
16
  import { transformSliceToJoinAdjacentCodeBlocks, transformSingleLineCodeBlockToCodeMark } from '../../code-block/utils';
17
- import { createPasteMeasurePayload, getContentNodeTypes, handlePasteAsPlainTextWithAnalytics, handlePasteIntoTaskAndDecisionWithAnalytics, handleCodeBlockWithAnalytics, handleMediaSingleWithAnalytics, handlePastePreservingMarksWithAnalytics, handleMarkdownWithAnalytics, handleRichTextWithAnalytics, handleExpandWithAnalytics, handleSelectedTableWithAnalytics, handlePasteLinkOnSelectedTextWithAnalytics, sendPasteAnalyticsEvent } from './analytics';
17
+ import { createPasteMeasurePayload, getContentNodeTypes, handlePasteAsPlainTextWithAnalytics, handlePasteIntoTaskAndDecisionWithAnalytics, handleCodeBlockWithAnalytics, handleMediaSingleWithAnalytics, handlePastePreservingMarksWithAnalytics, handleMarkdownWithAnalytics, handleRichTextWithAnalytics, handleExpandWithAnalytics, handleSelectedTableWithAnalytics, handlePasteLinkOnSelectedTextWithAnalytics, sendPasteAnalyticsEvent, handlePasteIntoCaptionWithAnalytics } from './analytics';
18
18
  import { analyticsPluginKey, PasteTypes } from '../../analytics';
19
19
  import { insideTable, measurements } from '../../../utils';
20
20
  import { measureRender } from '@atlaskit/editor-common/utils';
@@ -28,6 +28,7 @@ import { pluginKey as betterTypePluginKey } from '../../base/pm-plugins/better-t
28
28
  import { clipboardTextSerializer } from './clipboard-text-serializer';
29
29
  import { htmlHasIncompleteTable, tryRebuildCompleteTableHtml, isPastedFromTinyMCEConfluence } from '../util/tinyMCE';
30
30
  import { handlePaste as handlePasteTable } from '@atlaskit/editor-tables/utils';
31
+ import { extractSliceFromStep } from '../../../utils/step';
31
32
  export var stateKey = new PluginKey('pastePlugin');
32
33
  export { md } from '../md';
33
34
  export function createPlugin(schema, dispatchAnalyticsEvent, plainTextPasteLinkification, cardOptions, sanitizePrivateContent, providerFactory) {
@@ -184,8 +185,25 @@ export function createPlugin(schema, dispatchAnalyticsEvent, plainTextPasteLinki
184
185
  // don't add closeHistory call if we're pasting a text inside placeholder text as we want the whole action
185
186
  // to be atomic
186
187
  var placeholder = state.schema.nodes.placeholder;
188
+ var isPastingTextInsidePlaceholderText = ((_state$doc$resolve$no = state.doc.resolve(state.selection.$anchor.pos).nodeAfter) === null || _state$doc$resolve$no === void 0 ? void 0 : _state$doc$resolve$no.type) === placeholder; // don't add closeHistory call if we're pasting a table, as some tables may involve additional
189
+ // appendedTransactions to repair them (if they're partial or incomplete) and we don't want
190
+ // to split those repairing transactions in prosemirror-history when they're being added to the
191
+ // "done" stack
192
+
193
+ var isPastingTable = tr.steps.some(function (step) {
194
+ var _slice$content;
195
+
196
+ var slice = extractSliceFromStep(step);
197
+ var tableExists = false;
198
+ slice === null || slice === void 0 ? void 0 : (_slice$content = slice.content) === null || _slice$content === void 0 ? void 0 : _slice$content.forEach(function (node) {
199
+ if (node.type === state.schema.nodes.table) {
200
+ tableExists = true;
201
+ }
202
+ });
203
+ return tableExists;
204
+ });
187
205
 
188
- if (((_state$doc$resolve$no = state.doc.resolve(state.selection.$anchor.pos).nodeAfter) === null || _state$doc$resolve$no === void 0 ? void 0 : _state$doc$resolve$no.type) !== placeholder) {
206
+ if (!isPastingTextInsidePlaceholderText && !isPastingTable) {
189
207
  tr.setMeta(betterTypePluginKey, true);
190
208
  }
191
209
 
@@ -308,6 +326,13 @@ export function createPlugin(schema, dispatchAnalyticsEvent, plainTextPasteLinki
308
326
 
309
327
  if (!insideTable(state)) {
310
328
  slice = transformSliceNestedExpandToExpand(slice, state.schema);
329
+ } // Create a custom handler to avoid handling with handleRichText method
330
+ // As SafeInsert is used inside handleRichText which caused some bad UX like this:
331
+ // https://product-fabric.atlassian.net/browse/MEX-1520
332
+
333
+
334
+ if (handlePasteIntoCaptionWithAnalytics(view, event, slice, PasteTypes.richText)(state, dispatch)) {
335
+ return true;
311
336
  }
312
337
 
313
338
  return handleRichTextWithAnalytics(view, event, slice)(state, dispatch);
@@ -1,4 +1,5 @@
1
1
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
+ import { browser } from '@atlaskit/editor-common/utils';
2
3
  import { PluginKey } from 'prosemirror-state';
3
4
  import { DecorationSet, Decoration } from 'prosemirror-view';
4
5
  import { isInEmptyLine, isEmptyDocument, bracketTyped } from '../../utils/document';
@@ -27,7 +28,17 @@ export function createPlaceholderDecoration(editorState, placeholderText) {
27
28
  placeholderDecoration.className = placeHolderClass;
28
29
  var placeholderNode = document.createElement('span');
29
30
  placeholderNode.textContent = placeholderText;
30
- placeholderDecoration.appendChild(placeholderNode);
31
+ placeholderDecoration.appendChild(placeholderNode); // ME-2289 Tapping on backspace in empty editor hides and displays the keyboard
32
+ // Add a editable buff node as the cursor moving forward is inevitable
33
+ // when backspace in GBoard composition
34
+
35
+ if (browser.android && browser.chrome) {
36
+ var buffNode = document.createElement('span');
37
+ buffNode.setAttribute('contenteditable', 'true');
38
+ buffNode.textContent = ' ';
39
+ placeholderDecoration.appendChild(buffNode);
40
+ }
41
+
31
42
  return DecorationSet.create(editorState.doc, [Decoration.widget(pos, placeholderDecoration, {
32
43
  side: -1,
33
44
  key: 'placeholder'
@@ -4,5 +4,6 @@ var _templateObject;
4
4
 
5
5
  import { css } from '@emotion/react';
6
6
  import { N200 } from '@atlaskit/theme/colors';
7
+ import { token } from '@atlaskit/tokens';
7
8
  export var placeHolderClassName = 'placeholder-decoration';
8
- export var placeholderStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .ProseMirror .", " {\n position: relative;\n color: ", ";\n width: 100%;\n\n pointer-events: none;\n display: block;\n user-select: none;\n\n > span {\n position: absolute;\n pointer-events: none;\n }\n\n &.align-end > span {\n right: 0;\n }\n\n &.align-center > span {\n left: 0;\n }\n }\n"])), placeHolderClassName, N200);
9
+ export var placeholderStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .ProseMirror .", " {\n position: relative;\n color: ", ";\n width: 100%;\n\n pointer-events: none;\n display: block;\n user-select: none;\n\n > span {\n position: absolute;\n pointer-events: none;\n outline: none;\n }\n\n &.align-end > span {\n right: 0;\n }\n\n &.align-center > span {\n left: 0;\n }\n }\n"])), placeHolderClassName, token('color.text.subtlest', N200));
@@ -5,4 +5,5 @@ var _templateObject;
5
5
  import { css } from '@emotion/react';
6
6
  import { N300 } from '@atlaskit/theme/colors';
7
7
  import { SelectionStyle, getSelectionStyles, akEditorSelectedNodeClassName } from '@atlaskit/editor-shared-styles';
8
- export var placeholderTextStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .ProseMirror span[data-placeholder] {\n color: ", ";\n display: inline;\n }\n\n .ProseMirror span.pm-placeholder {\n display: inline;\n color: ", ";\n }\n .ProseMirror span.pm-placeholder__text {\n display: inline;\n color: ", ";\n }\n\n .ProseMirror span.pm-placeholder.", " {\n ", "\n }\n\n .ProseMirror span.pm-placeholder__text[data-placeholder]::after {\n color: ", ";\n cursor: text;\n content: attr(data-placeholder);\n display: inline;\n }\n"])), N300, N300, N300, akEditorSelectedNodeClassName, getSelectionStyles([SelectionStyle.Background]), N300);
8
+ import { token } from '@atlaskit/tokens';
9
+ export var placeholderTextStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .ProseMirror span[data-placeholder] {\n color: ", ";\n display: inline;\n }\n\n .ProseMirror span.pm-placeholder {\n display: inline;\n color: ", ";\n }\n .ProseMirror span.pm-placeholder__text {\n display: inline;\n color: ", ";\n }\n\n .ProseMirror span.pm-placeholder.", " {\n ", "\n }\n\n .ProseMirror span.pm-placeholder__text[data-placeholder]::after {\n color: ", ";\n cursor: text;\n content: attr(data-placeholder);\n display: inline;\n }\n"])), token('color.text.subtlest', N300), token('color.text.subtlest', N300), token('color.text.subtlest', N300), akEditorSelectedNodeClassName, getSelectionStyles([SelectionStyle.Background]), token('color.text.subtlest', N300));
@@ -1,6 +1,6 @@
1
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
1
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
4
 
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
 
@@ -9,4 +9,4 @@ var gapCursor = '.ProseMirror-gapcursor';
9
9
  var prosemirrorwidget = '.ProseMirror-widget';
10
10
  var wrapLeft = '[layout="wrap-left"]';
11
11
  var wrapRight = '[layout="wrap-right"]';
12
- export var gapCursorStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n /* =============== GAP CURSOR ================== */\n .ProseMirror {\n &.", " {\n caret-color: transparent;\n }\n\n ", " {\n display: none;\n pointer-events: none;\n position: relative;\n\n & span {\n caret-color: transparent;\n position: absolute;\n height: 100%;\n width: 100%;\n display: block;\n }\n\n & span::after {\n animation: 1s ", " step-end infinite;\n border-left: 1px solid;\n content: '';\n display: block;\n position: absolute;\n top: 0;\n height: 100%;\n }\n &.-left span::after {\n left: -3px;\n }\n &.-right span::after {\n right: -3px;\n }\n & span[layout='full-width'],\n & span[layout='wide'] {\n margin-left: 50%;\n transform: translateX(-50%);\n }\n &", " {\n float: right;\n }\n\n /* fix vertical alighment of gap cursor */\n &:first-child + ul,\n &:first-child + span + ul,\n &:first-child + ol,\n &:first-child + span + ol,\n &:first-child + pre,\n &:first-child + span + pre,\n &:first-child + blockquote,\n &:first-child + span + blockquote {\n margin-top: 0;\n }\n }\n &.ProseMirror-focused ", " {\n display: block;\n border-color: transparent;\n }\n }\n\n /* This hack below is for two images aligned side by side */\n ", "", " + span + ", ",\n ", "", " + span + ", ",\n ", " + ", " + ", ",\n ", " + ", " + span + ", ",\n ", " + ", " + ", ",\n ", " + ", " + span + ", ",\n ", " + ", " + ", ",\n ", " + ", " + span ", ",\n ", " + ", " + ", ",\n ", " + ", " + span + ", ",\n ", " + ", " {\n clear: none;\n }\n\n ", " + ", " + ", " > div,\n ", " + ", " + span + ", " > div,\n ", " + ", " + ", " > div,\n ", " + ", " + span + ", " > div,\n ", " + ", " + ", " > div,\n ", " + ", " + span + ", " > div,\n ", " + ", " + ", " > div,\n ", " + ", " + span + ", " > div {\n margin-right: 0;\n margin-left: 0;\n margin-bottom: 0;\n }\n\n ", " + ", ",\n ", " + ", " {\n float: left;\n }\n\n ", " + ", " + span + ", "::after,\n ", " + ", " + span + ", "::after,\n ", " + ", " + ", "::after,\n ", " + ", " + span + ", "::after,\n ", " + ", " + ", "::after,\n ", " + ", " + span + ", "::after {\n visibility: hidden;\n display: block;\n font-size: 0;\n content: ' ';\n clear: both;\n height: 0;\n }\n\n ", " + ", " + ", " + *,\n ", " + ", " + ", " + span + *,\n ", " + ", " + ", " + *,\n ", " + ", " + ", " + span + *,\n ", " + ", " + span + ", " + *,\n ", " + ", " + span + ", " + *,\n ", " + ", " + span + ", " + *,\n ", " + ", " + span + ", " + *,\n ", " + ", " + ", " + * > *,\n ", " + ", " + ", " + span + * > *,\n ", " + ", " + ", " + * > *,\n ", " + ", " + ", " + span + * > *,\n ", " + ", " + span + ", " + * > *,\n ", " + ", " + span + ", " + * > *,\n ", " + ", " + span + ", " + * > *,\n ", " + ", " + span + ", " + * > *,\n ", " + ", " + *,\n ", " + ", " + span + * {\n margin-top: 0;\n }\n"])), hideCaretModifier, gapCursor, gapCursorBlink, wrapRight, gapCursor, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapRight, wrapLeft, gapCursor, wrapRight, gapCursor, gapCursor, wrapLeft, wrapRight, gapCursor, wrapRight, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, gapCursor, wrapLeft, wrapRight, gapCursor, wrapRight, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, gapCursor, wrapLeft, wrapRight, gapCursor, wrapRight, wrapLeft, prosemirrorwidget, gapCursor, prosemirrorwidget, gapCursor);
12
+ export var gapCursorStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n /* =============== GAP CURSOR ================== */\n .ProseMirror {\n &.", " {\n caret-color: transparent;\n }\n\n ", " {\n display: none;\n pointer-events: none;\n position: relative;\n\n & span {\n caret-color: transparent;\n position: absolute;\n height: 100%;\n width: 100%;\n display: block;\n }\n\n & span::after {\n animation: 1s ", " step-end infinite;\n border-left: 1px solid;\n content: '';\n display: block;\n position: absolute;\n top: 0;\n height: 100%;\n }\n &.-left span::after {\n left: -3px;\n }\n &.-right span::after {\n right: -3px;\n }\n & span[layout='full-width'],\n & span[layout='wide'] {\n margin-left: 50%;\n transform: translateX(-50%);\n }\n &", " {\n float: right;\n }\n\n /* fix vertical alignment of gap cursor */\n &:first-of-type + ul,\n &:first-of-type + span + ul,\n &:first-of-type + ol,\n &:first-of-type + span + ol,\n &:first-of-type + pre,\n &:first-of-type + span + pre,\n &:first-of-type + blockquote,\n &:first-of-type + span + blockquote {\n margin-top: 0;\n }\n }\n &.ProseMirror-focused ", " {\n display: block;\n border-color: transparent;\n }\n }\n\n /* This hack below is for two images aligned side by side */\n ", "", " + span + ", ",\n ", "", " + span + ", ",\n ", " + ", " + ", ",\n ", " + ", " + span + ", ",\n ", " + ", " + ", ",\n ", " + ", " + span + ", ",\n ", " + ", " + ", ",\n ", " + ", " + span ", ",\n ", " + ", " + ", ",\n ", " + ", " + span + ", ",\n ", " + ", " {\n clear: none;\n }\n\n ", " + ", " + ", " > div,\n ", " + ", " + span + ", " > div,\n ", " + ", " + ", " > div,\n ", " + ", " + span + ", " > div,\n ", " + ", " + ", " > div,\n ", " + ", " + span + ", " > div,\n ", " + ", " + ", " > div,\n ", " + ", " + span + ", " > div {\n margin-right: 0;\n margin-left: 0;\n margin-bottom: 0;\n }\n\n ", " + ", ",\n ", " + ", " {\n float: left;\n }\n\n ", " + ", " + span + ", "::after,\n ", " + ", " + span + ", "::after,\n ", " + ", " + ", "::after,\n ", " + ", " + span + ", "::after,\n ", " + ", " + ", "::after,\n ", " + ", " + span + ", "::after {\n visibility: hidden;\n display: block;\n font-size: 0;\n content: ' ';\n clear: both;\n height: 0;\n }\n\n ", " + ", " + ", " + *,\n ", " + ", " + ", " + span + *,\n ", " + ", " + ", " + *,\n ", " + ", " + ", " + span + *,\n ", " + ", " + span + ", " + *,\n ", " + ", " + span + ", " + *,\n ", " + ", " + span + ", " + *,\n ", " + ", " + span + ", " + *,\n ", " + ", " + ", " + * > *,\n ", " + ", " + ", " + span + * > *,\n ", " + ", " + ", " + * > *,\n ", " + ", " + ", " + span + * > *,\n ", " + ", " + span + ", " + * > *,\n ", " + ", " + span + ", " + * > *,\n ", " + ", " + span + ", " + * > *,\n ", " + ", " + span + ", " + * > *,\n ", " + ", " + *,\n ", " + ", " + span + * {\n margin-top: 0;\n }\n"])), hideCaretModifier, gapCursor, gapCursorBlink, wrapRight, gapCursor, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapRight, wrapLeft, gapCursor, wrapRight, gapCursor, gapCursor, wrapLeft, wrapRight, gapCursor, wrapRight, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, gapCursor, wrapLeft, wrapRight, gapCursor, wrapRight, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, wrapRight, gapCursor, wrapLeft, wrapLeft, gapCursor, wrapRight, wrapRight, gapCursor, wrapLeft, gapCursor, wrapLeft, wrapRight, gapCursor, wrapRight, wrapLeft, prosemirrorwidget, gapCursor, prosemirrorwidget, gapCursor);
@@ -34,8 +34,8 @@ var plugin = new SafePlugin({
34
34
  }
35
35
 
36
36
  return {
37
- update: function update(view, state) {
38
- var pluginState = gapCursorPluginKey.getState(state);
37
+ update: function update(view) {
38
+ var pluginState = gapCursorPluginKey.getState(view.state);
39
39
  /**
40
40
  * Starting with prosemirror-view 1.19.4, cursor wrapper that previousely was hiding cursor doesn't exist:
41
41
  * https://github.com/ProseMirror/prosemirror-view/commit/4a56bc7b7e61e96ef879d1dae1014ede0fc09e43
@@ -22,10 +22,10 @@ import { akEditorFloatingDialogZIndex } from '@atlaskit/editor-shared-styles';
22
22
  import { StatusPicker as AkStatusPicker } from '@atlaskit/status/picker';
23
23
  import { borderRadius, gridSize } from '@atlaskit/theme/constants';
24
24
  import { N0 } from '@atlaskit/theme/colors';
25
- import { dropShadow } from '../../../ui/styles';
26
25
  import withOuterListeners from '../../../ui/with-outer-listeners';
27
26
  import { DEFAULT_STATUS } from '../actions';
28
27
  import { analyticsState, createStatusAnalyticsAndFire } from '../analytics';
28
+ import { token } from '@atlaskit/tokens';
29
29
  var PopupWithListeners = withOuterListeners(Popup);
30
30
  export var InputMethod;
31
31
 
@@ -35,7 +35,7 @@ export var InputMethod;
35
35
  InputMethod["enterKey"] = "enterKey";
36
36
  })(InputMethod || (InputMethod = {}));
37
37
 
38
- var pickerContainer = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: ", ";\n padding: ", "px 0;\n border-radius: ", "px;\n ", ";\n input {\n text-transform: uppercase;\n }\n"])), N0, gridSize(), borderRadius(), dropShadow);
38
+ var pickerContainer = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: ", ";\n padding: ", "px 0;\n border-radius: ", "px;\n box-shadow: ", ";\n input {\n text-transform: uppercase;\n }\n"])), token('elevation.surface.overlay', N0), gridSize(), borderRadius(), token('elevation.shadow.overlay', '0 0 1px rgba(9, 30, 66, 0.31), 0 4px 8px -2px rgba(9, 30, 66, 0.25)'));
39
39
  export var StatusPickerWithoutAnalytcs = /*#__PURE__*/function (_React$Component) {
40
40
  _inherits(StatusPickerWithoutAnalytcs, _React$Component);
41
41
 
@@ -11,6 +11,7 @@ import { IconTable } from '../quick-insert/assets';
11
11
  import { pluginConfig } from './create-plugin-config';
12
12
  import { createPlugin as createTableLocalIdPlugin } from './pm-plugins/table-local-id';
13
13
  import { createPlugin as createTableSafariDelayedDomSelectionSyncingWorkaroundPlugin } from './pm-plugins/safari-delayed-dom-selection-syncing-workaround';
14
+ import { createPlugin as createTableSafariDeleteCompositionTextIssueWorkaroundPlugin } from './pm-plugins/safari-delete-composition-text-issue-workaround';
14
15
  import { createPlugin as createDecorationsPlugin } from './pm-plugins/decorations/plugin';
15
16
  import { keymapPlugin } from './pm-plugins/keymap';
16
17
  import { tableSelectionKeymapPlugin } from './pm-plugins/table-selection-keymap';
@@ -55,13 +56,12 @@ var tablesPlugin = function tablesPlugin(options) {
55
56
  eventDispatcher = _ref.eventDispatcher;
56
57
 
57
58
  var _ref2 = options || {},
58
- dynamicSizingEnabled = _ref2.dynamicSizingEnabled,
59
59
  fullWidthEnabled = _ref2.fullWidthEnabled,
60
60
  wasFullWidthEnabled = _ref2.wasFullWidthEnabled,
61
61
  breakoutEnabled = _ref2.breakoutEnabled,
62
62
  tableOptions = _ref2.tableOptions;
63
63
 
64
- return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), breakoutEnabled && dynamicSizingEnabled, breakoutEnabled, fullWidthEnabled, wasFullWidthEnabled);
64
+ return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), breakoutEnabled, fullWidthEnabled, wasFullWidthEnabled);
65
65
  }
66
66
  }, {
67
67
  name: 'tablePMColResizing',
@@ -69,7 +69,6 @@ var tablesPlugin = function tablesPlugin(options) {
69
69
  var dispatch = _ref3.dispatch;
70
70
 
71
71
  var _ref4 = options || {},
72
- dynamicSizingEnabled = _ref4.dynamicSizingEnabled,
73
72
  fullWidthEnabled = _ref4.fullWidthEnabled,
74
73
  tableOptions = _ref4.tableOptions;
75
74
 
@@ -77,7 +76,6 @@ var tablesPlugin = function tablesPlugin(options) {
77
76
  allowColumnResizing = _pluginConfig.allowColumnResizing;
78
77
 
79
78
  return allowColumnResizing ? createFlexiResizingPlugin(dispatch, {
80
- dynamicTextSizing: dynamicSizingEnabled && !fullWidthEnabled,
81
79
  lastColumnResizable: !fullWidthEnabled
82
80
  }) : undefined;
83
81
  }
@@ -129,6 +127,17 @@ var tablesPlugin = function tablesPlugin(options) {
129
127
  return createTableSafariDelayedDomSelectionSyncingWorkaroundPlugin();
130
128
  }
131
129
  });
130
+ } // Workaround for table element breaking issue caused by composition event with an inputType of deleteCompositionText.
131
+ // https://github.com/ProseMirror/prosemirror/issues/934
132
+
133
+
134
+ if (browser.safari) {
135
+ plugins.push({
136
+ name: 'tableSafariDeleteCompositionTextIssueWorkaround',
137
+ plugin: function plugin() {
138
+ return createTableSafariDeleteCompositionTextIssueWorkaroundPlugin();
139
+ }
140
+ });
132
141
  }
133
142
 
134
143
  return plugins;
@@ -223,7 +223,6 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
223
223
  view = _this$props3.view,
224
224
  getNode = _this$props3.getNode,
225
225
  getPos = _this$props3.getPos,
226
- options = _this$props3.options,
227
226
  containerWidth = _this$props3.containerWidth;
228
227
  var node = getNode();
229
228
  var pos = getPos();
@@ -233,7 +232,6 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
233
232
  }
234
233
 
235
234
  autoSizeTable(view, node, _this.table, pos, {
236
- dynamicTextSizing: options && options.dynamicTextSizing || false,
237
235
  containerWidth: containerWidth.width
238
236
  });
239
237
  }
@@ -327,10 +325,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
327
325
  _this.node = _getNode();
328
326
  _this.containerWidth = _containerWidth; // store table size using previous full-width mode so can detect if it has changed
329
327
 
330
- var dynamicTextSizing = _options ? _options.dynamicTextSizing : false;
331
328
  var isFullWidthModeEnabled = _options ? _options.wasFullWidthModeEnabled : false;
332
329
  _this.layoutSize = _this.tableNodeLayoutSize(_this.node, _containerWidth.width, {
333
- dynamicTextSizing: dynamicTextSizing,
334
330
  isFullWidthModeEnabled: isFullWidthModeEnabled
335
331
  }); // Disable inline table editing and resizing controls in Firefox
336
332
  // https://github.com/ProseMirror/prosemirror/issues/432
@@ -415,7 +411,9 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
415
411
  value: function componentDidUpdate(prevProps) {
416
412
  var _this$props8 = this.props,
417
413
  view = _this$props8.view,
418
- getNode = _this$props8.getNode;
414
+ getNode = _this$props8.getNode,
415
+ isMediaFullscreen = _this$props8.isMediaFullscreen,
416
+ allowColumnResizing = _this$props8.allowColumnResizing;
419
417
 
420
418
  var _ref4 = getFeatureFlags(view.state) || {},
421
419
  tableOverflowShadowsOptimization = _ref4.tableOverflowShadowsOptimization;
@@ -441,7 +439,9 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
441
439
  if (currentTable.attrs.__autoSize) {
442
440
  // Wait for next tick to handle auto sizing, gives the browser time to do layout calc etc.
443
441
  this.handleAutoSizeDebounced();
444
- } else if (this.props.allowColumnResizing && this.table) {
442
+ } // re-drawing will cause media component get unmounted that will exit fullscreen mode if media is in fullscreen mode
443
+ // see https://product-fabric.atlassian.net/browse/MEX-1290
444
+ else if (allowColumnResizing && this.table && !isMediaFullscreen) {
445
445
  // If col widths (e.g. via collab) or number of columns (e.g. delete a column) have changed,
446
446
  // re-draw colgroup.
447
447
  var previousTable = this.node;
@@ -15,6 +15,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
15
15
 
16
16
  import React from 'react';
17
17
  import { DOMSerializer } from 'prosemirror-model';
18
+ import { stateKey as mediaPluginKey } from '../../../plugins/media/pm-plugins/plugin-key';
18
19
  import ReactNodeView from '../../../nodeviews/ReactNodeView';
19
20
  import WithPluginState from '../../../ui/WithPluginState';
20
21
  import { pluginKey as widthPluginKey } from '../../width';
@@ -105,19 +106,22 @@ var TableView = /*#__PURE__*/function (_ReactNodeView) {
105
106
  plugins: {
106
107
  containerWidth: widthPluginKey,
107
108
  pluginState: pluginKey,
108
- tableResizingPluginState: tableResizingPluginKey
109
+ tableResizingPluginState: tableResizingPluginKey,
110
+ mediaState: mediaPluginKey
109
111
  },
110
112
  editorView: props.view,
111
113
  render: function render(pluginStates) {
112
114
  var tableResizingPluginState = pluginStates.tableResizingPluginState,
113
115
  pluginState = pluginStates.pluginState,
114
- containerWidth = pluginStates.containerWidth;
116
+ containerWidth = pluginStates.containerWidth,
117
+ mediaState = pluginStates.mediaState;
115
118
  var tableActive = props.getPos() === pluginState.tablePos;
116
119
  return /*#__PURE__*/React.createElement(TableComponent, {
117
120
  view: props.view,
118
121
  allowColumnResizing: props.allowColumnResizing,
119
122
  eventDispatcher: props.eventDispatcher,
120
123
  getPos: props.getPos,
124
+ isMediaFullscreen: mediaState === null || mediaState === void 0 ? void 0 : mediaState.isFullscreen,
121
125
  options: props.options,
122
126
  allowControls: pluginState.pluginConfig.allowControls,
123
127
  isHeaderRowEnabled: pluginState.isHeaderRowEnabled,
@@ -28,14 +28,12 @@ import { transformSliceToRemoveOpenBodiedExtension } from '../../extension/actio
28
28
  import { insideTable } from '../../../utils';
29
29
  import { isHeaderRowRequired } from '../utils/paste';
30
30
  var isBreakoutEnabled;
31
- var isDynamicTextSizingEnabled;
32
31
  var isFullWidthModeEnabled;
33
32
  var wasFullWidthModeEnabled;
34
- export var createPlugin = function createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, dynamicTextSizing, breakoutEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled) {
33
+ export var createPlugin = function createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, breakoutEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled) {
35
34
  var _window;
36
35
 
37
36
  isBreakoutEnabled = breakoutEnabled;
38
- isDynamicTextSizingEnabled = dynamicTextSizing;
39
37
  isFullWidthModeEnabled = fullWidthModeEnabled;
40
38
  wasFullWidthModeEnabled = previousFullWidthModeEnabled;
41
39
  var state = createPluginState(dispatch, _objectSpread({
@@ -259,7 +257,6 @@ export var createPlugin = function createPlugin(dispatchAnalyticsEvent, dispatch
259
257
  table: function table(node, view, getPos) {
260
258
  return createTableView(node, view, getPos, portalProviderAPI, eventDispatcher, {
261
259
  isBreakoutEnabled: isBreakoutEnabled,
262
- dynamicTextSizing: isDynamicTextSizingEnabled,
263
260
  isFullWidthModeEnabled: isFullWidthModeEnabled,
264
261
  wasFullWidthModeEnabled: wasFullWidthModeEnabled
265
262
  });
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Fix an issue that composition text replacement in Safari removes empty nodes during text composition text deletion.
3
+ * https://github.com/ProseMirror/prosemirror/issues/934
4
+ * We will remove this plugin when Webkit fix the problem itself.
5
+ */
6
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
7
+ import { PluginKey } from 'prosemirror-state';
8
+ import { Decoration, DecorationSet } from 'prosemirror-view';
9
+ export var tableSafariDeleteCompositionTextIssueWorkaroundKey = new PluginKey('tableSafariDeleteCompositionTextIssueWorkaround');
10
+ export var createPlugin = function createPlugin() {
11
+ return new SafePlugin({
12
+ key: tableSafariDeleteCompositionTextIssueWorkaroundKey,
13
+ state: {
14
+ init: function init() {
15
+ return {
16
+ renderSpan: false,
17
+ decorations: DecorationSet.empty
18
+ };
19
+ },
20
+ apply: function apply(tr, value) {
21
+ var renderSpan = tr.getMeta(tableSafariDeleteCompositionTextIssueWorkaroundKey);
22
+
23
+ if (typeof renderSpan === 'undefined') {
24
+ return value;
25
+ }
26
+
27
+ var decorations;
28
+
29
+ if (renderSpan) {
30
+ // Find position of the first text node in case it has multiple text nodes created by Japanese IME
31
+ var $from = tr.selection.$from;
32
+ var pos = $from.before($from.depth);
33
+ var spanDecoration = Decoration.widget(pos, function () {
34
+ var spanElement = document.createElement('span');
35
+ return spanElement;
36
+ });
37
+ decorations = DecorationSet.create(tr.doc, [spanDecoration]);
38
+ } else {
39
+ decorations = DecorationSet.empty;
40
+ }
41
+
42
+ return {
43
+ renderSpan: renderSpan,
44
+ decorations: decorations
45
+ };
46
+ }
47
+ },
48
+ props: {
49
+ decorations: function decorations(state) {
50
+ return tableSafariDeleteCompositionTextIssueWorkaroundKey.getState(state).decorations;
51
+ },
52
+ handleDOMEvents: {
53
+ beforeinput: function beforeinput(view, event) {
54
+ if ((event === null || event === void 0 ? void 0 : event.inputType) !== 'deleteCompositionText') {
55
+ return false;
56
+ }
57
+
58
+ var selection = window.getSelection();
59
+
60
+ if (!selection || selection.rangeCount <= 0 || selection.type !== 'Range') {
61
+ return false;
62
+ }
63
+
64
+ var range = selection.getRangeAt(0);
65
+ var startContainer = range.startContainer,
66
+ endContainer = range.endContainer,
67
+ endOffset = range.endOffset,
68
+ startOffset = range.startOffset;
69
+ /**
70
+ * On Safari when composition text is deleted, it deletes any empty elements it finds up the dom tree. Prosemirror can sometimes be confused by this
71
+ * and will think that we meant to delete those elements. This fix forces the resulting node to not be empty.
72
+ * The condition here checks to see if the entire text node is about to be swapped inside of an element
73
+ */
74
+
75
+ if (startContainer.nodeType === Node.TEXT_NODE && startContainer === endContainer && startOffset === 0 && endOffset === startContainer.length) {
76
+ var tr = view.state.tr;
77
+ tr.setMeta(tableSafariDeleteCompositionTextIssueWorkaroundKey, true);
78
+ view.dispatch(tr);
79
+ }
80
+
81
+ return false;
82
+ },
83
+ input: function input(view, event) {
84
+ if ((event === null || event === void 0 ? void 0 : event.inputType) !== 'deleteCompositionText') {
85
+ return false;
86
+ }
87
+
88
+ var selection = window.getSelection();
89
+
90
+ if (!selection) {
91
+ return false;
92
+ }
93
+
94
+ var tr = view.state.tr;
95
+ tr.setMeta(tableSafariDeleteCompositionTextIssueWorkaroundKey, false);
96
+ view.dispatch(tr);
97
+ return false;
98
+ }
99
+ }
100
+ }
101
+ });
102
+ };
@@ -11,7 +11,7 @@ import { evenColumns, setDragging, stopResizing } from './commands';
11
11
  import { getPluginState } from './plugin-factory';
12
12
  import { currentColWidth, getLayoutSize, getResizeState, pointsAtCell, resizeColumn, updateControls } from './utils';
13
13
  import { ACTION_SUBJECT, addAnalytics, EVENT_TYPE, TABLE_ACTION } from '../../../analytics';
14
- export var handleMouseDown = function handleMouseDown(view, event, localResizeHandlePos, dynamicTextSizing) {
14
+ export var handleMouseDown = function handleMouseDown(view, event, localResizeHandlePos) {
15
15
  var state = view.state,
16
16
  dispatch = view.dispatch;
17
17
 
@@ -38,9 +38,7 @@ export var handleMouseDown = function handleMouseDown(view, event, localResizeHa
38
38
 
39
39
  var containerWidth = widthPluginKey.getState(state);
40
40
  var parentWidth = getParentNodeWidth(start, state, containerWidth);
41
- var maxSize = parentWidth || getLayoutSize(dom.getAttribute('data-layout'), containerWidth.width, {
42
- dynamicTextSizing: dynamicTextSizing
43
- });
41
+ var maxSize = parentWidth || getLayoutSize(dom.getAttribute('data-layout'), containerWidth.width, {});
44
42
 
45
43
  if (originalTable.attrs.isNumberColumnEnabled) {
46
44
  maxSize -= akEditorTableNumberColumnWidth;
@@ -9,14 +9,11 @@ import { pluginKey } from './plugin-key';
9
9
  import { getResizeCellPos } from './utils';
10
10
  export function createPlugin(dispatch, _ref) {
11
11
  var _ref$lastColumnResiza = _ref.lastColumnResizable,
12
- lastColumnResizable = _ref$lastColumnResiza === void 0 ? true : _ref$lastColumnResiza,
13
- _ref$dynamicTextSizin = _ref.dynamicTextSizing,
14
- dynamicTextSizing = _ref$dynamicTextSizin === void 0 ? false : _ref$dynamicTextSizin;
12
+ lastColumnResizable = _ref$lastColumnResiza === void 0 ? true : _ref$lastColumnResiza;
15
13
  return new SafePlugin({
16
14
  key: pluginKey,
17
15
  state: createPluginState(dispatch, {
18
16
  lastColumnResizable: lastColumnResizable,
19
- dynamicTextSizing: dynamicTextSizing,
20
17
  resizeHandlePos: null,
21
18
  dragging: null,
22
19
  lastClick: null
@@ -40,7 +37,7 @@ export function createPlugin(dispatch, _ref) {
40
37
  dragging = _getPluginState.dragging;
41
38
 
42
39
  if (resizeHandlePos !== null && !dragging) {
43
- if (handleMouseDown(view, event, resizeHandlePos, dynamicTextSizing)) {
40
+ if (handleMouseDown(view, event, resizeHandlePos)) {
44
41
  var _state = view.state,
45
42
  _dispatch = view.dispatch;
46
43
  return setResizeHandlePos(resizeHandlePos)(_state, _dispatch);
@@ -13,8 +13,7 @@ export var tableLayoutToSize = {
13
13
  export function getLayoutSize(tableLayout) {
14
14
  var containerWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
15
15
  var options = arguments.length > 2 ? arguments[2] : undefined;
16
- var dynamicTextSizing = options.dynamicTextSizing,
17
- isFullWidthModeEnabled = options.isFullWidthModeEnabled;
16
+ var isFullWidthModeEnabled = options.isFullWidthModeEnabled;
18
17
 
19
18
  if (isFullWidthModeEnabled) {
20
19
  return containerWidth ? Math.min(containerWidth - akEditorGutterPadding * 2, akEditorFullWidthLayoutWidth) : akEditorFullWidthLayoutWidth;
@@ -26,7 +25,7 @@ export function getLayoutSize(tableLayout) {
26
25
  return parseInt(calculatedTableWidth, 10);
27
26
  }
28
27
 
29
- if (dynamicTextSizing && tableLayout === 'default') {
28
+ if (tableLayout === 'default') {
30
29
  return getDefaultLayoutMaxWidth(containerWidth);
31
30
  }
32
31
 
@@ -76,13 +75,10 @@ export var getTableMaxWidth = function getTableMaxWidth(_ref2) {
76
75
  var table = _ref2.table,
77
76
  tableStart = _ref2.tableStart,
78
77
  state = _ref2.state,
79
- layout = _ref2.layout,
80
- dynamicTextSizing = _ref2.dynamicTextSizing;
78
+ layout = _ref2.layout;
81
79
  var containerWidth = widthPluginKey.getState(state);
82
80
  var parentWidth = getParentNodeWidth(tableStart, state, containerWidth);
83
- var maxWidth = parentWidth || getLayoutSize(layout, containerWidth.width, {
84
- dynamicTextSizing: dynamicTextSizing
85
- });
81
+ var maxWidth = parentWidth || getLayoutSize(layout, containerWidth.width, {});
86
82
 
87
83
  if (table.attrs.isNumberColumnEnabled) {
88
84
  maxWidth -= akEditorTableNumberColumnWidth;
@@ -265,7 +265,7 @@ export var normaliseTableLayout = function normaliseTableLayout(input) {
265
265
  return 'default';
266
266
  }
267
267
  };
268
- export var getNewResizeStateFromSelectedColumns = function getNewResizeStateFromSelectedColumns(rect, state, domAtPos, dynamicTextSizing) {
268
+ export var getNewResizeStateFromSelectedColumns = function getNewResizeStateFromSelectedColumns(rect, state, domAtPos) {
269
269
  var _getSelectedTableInfo = getSelectedTableInfo(state.selection),
270
270
  totalRowCount = _getSelectedTableInfo.totalRowCount,
271
271
  totalColumnCount = _getSelectedTableInfo.totalColumnCount,
@@ -287,8 +287,7 @@ export var getNewResizeStateFromSelectedColumns = function getNewResizeStateFrom
287
287
  table: table.node,
288
288
  tableStart: table.start,
289
289
  state: state,
290
- layout: layout,
291
- dynamicTextSizing: dynamicTextSizing
290
+ layout: layout
292
291
  });
293
292
  var resizeState = getResizeState({
294
293
  minWidth: tableCellMinWidth,
@@ -20,18 +20,15 @@ export var scale = function scale(tableRef, options, domAtPos) {
20
20
  var node = options.node,
21
21
  containerWidth = options.containerWidth,
22
22
  previousContainerWidth = options.previousContainerWidth,
23
- dynamicTextSizing = options.dynamicTextSizing,
24
23
  prevNode = options.prevNode,
25
24
  start = options.start,
26
25
  isBreakoutEnabled = options.isBreakoutEnabled,
27
26
  layoutChanged = options.layoutChanged;
28
27
  var maxSize = getLayoutSize(node.attrs.layout, containerWidth, {
29
- dynamicTextSizing: dynamicTextSizing,
30
28
  isBreakoutEnabled: isBreakoutEnabled
31
29
  });
32
30
  var prevTableWidth = getTableWidth(prevNode);
33
31
  var previousMaxSize = getLayoutSize(prevNode.attrs.layout, previousContainerWidth, {
34
- dynamicTextSizing: dynamicTextSizing,
35
32
  isBreakoutEnabled: isBreakoutEnabled
36
33
  });
37
34
  var newWidth = maxSize; // adjust table width if layout is updated
@@ -149,8 +149,7 @@ export var rescaleColumns = function rescaleColumns(table, view) {
149
149
  table: table.node,
150
150
  tableStart: table.start,
151
151
  state: state,
152
- layout: layout,
153
- dynamicTextSizing: true
152
+ layout: layout
154
153
  });
155
154
  var resizeState = getResizeState({
156
155
  minWidth: tableCellMinWidth,