@atlaskit/editor-core 176.0.2 → 177.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 (450) hide show
  1. package/.eslintrc.js +2 -2
  2. package/CHANGELOG.md +114 -0
  3. package/codemods/{173.0.0-rename-unsafe-allowUndoRedoButton-prop.ts → 175.0.0-rename-unsafe-allowUndoRedoButton-prop.ts} +0 -0
  4. package/dist/cjs/create-editor/ReactEditorView.js +3 -1
  5. package/dist/cjs/create-editor/create-plugins-list.js +9 -6
  6. package/dist/cjs/create-editor/messages.js +17 -0
  7. package/dist/cjs/i18n/en.js +2 -2
  8. package/dist/cjs/i18n/en_GB.js +2 -2
  9. package/dist/cjs/i18n/en_ZZ.js +2 -2
  10. package/dist/cjs/i18n/index.js +4 -4
  11. package/dist/cjs/i18n/languages.js +9 -4
  12. package/dist/cjs/labs/next/presets/mobile.js +2 -2
  13. package/dist/cjs/labs/next/presets/preset.js +38 -6
  14. package/dist/cjs/plugins/annotation/nodeviews/index.js +1 -0
  15. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/index.js +6 -1
  16. package/dist/cjs/plugins/breakout/ui/LayoutButton.js +5 -1
  17. package/dist/cjs/plugins/card/pm-plugins/doc.js +18 -29
  18. package/dist/cjs/plugins/card/pm-plugins/main.js +7 -21
  19. package/dist/cjs/plugins/card/toolbar.js +24 -8
  20. package/dist/cjs/plugins/card/ui/EditLinkToolbar.js +9 -5
  21. package/dist/cjs/plugins/card/ui/LinkToolbarAppearance.js +19 -53
  22. package/dist/cjs/plugins/card/utils.js +17 -3
  23. package/dist/cjs/plugins/collab-edit/actions.js +3 -3
  24. package/dist/cjs/plugins/copy-button/toolbar.js +5 -3
  25. package/dist/cjs/plugins/date/index.js +1 -7
  26. package/dist/cjs/plugins/date/ui/DatePicker/index.js +1 -2
  27. package/dist/cjs/plugins/emoji/index.js +7 -14
  28. package/dist/cjs/plugins/expand/pm-plugins/main.js +4 -1
  29. package/dist/cjs/plugins/expand/toolbar.js +1 -0
  30. package/dist/cjs/plugins/extension/commands.js +17 -2
  31. package/dist/cjs/plugins/extension/pm-plugins/main.js +10 -0
  32. package/dist/cjs/plugins/extension/toolbar.js +49 -7
  33. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +11 -11
  34. package/dist/cjs/plugins/find-replace/ui/FindReplaceToolbarButton.js +7 -2
  35. package/dist/cjs/plugins/floating-toolbar/index.js +16 -4
  36. package/dist/cjs/plugins/floating-toolbar/ui/CheckboxModal.js +99 -0
  37. package/dist/cjs/plugins/floating-toolbar/ui/ConfirmationModal.js +10 -30
  38. package/dist/cjs/plugins/floating-toolbar/ui/Dropdown.js +16 -4
  39. package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +108 -55
  40. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +1 -2
  41. package/dist/cjs/plugins/floating-toolbar/ui/ScrollButtons.js +29 -108
  42. package/dist/cjs/plugins/floating-toolbar/ui/SimpleModal.js +51 -0
  43. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +27 -47
  44. package/dist/cjs/plugins/floating-toolbar/ui/messages.js +13 -3
  45. package/dist/cjs/plugins/floating-toolbar/utils.js +4 -19
  46. package/dist/cjs/plugins/help-dialog/index.js +3 -2
  47. package/dist/cjs/plugins/hyperlink/Toolbar.js +20 -1
  48. package/dist/cjs/plugins/hyperlink/ui/EditorLinkPicker/index.js +6 -3
  49. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +5 -10
  50. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +2 -1
  51. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +2 -1
  52. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +2 -1
  53. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +2 -1
  54. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -0
  55. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/item.js +26 -12
  56. package/dist/cjs/plugins/layout/toolbar.js +1 -0
  57. package/dist/cjs/plugins/list/actions/outdent-list-items-selected.js +34 -4
  58. package/dist/cjs/plugins/list/commands/outdent-list.js +1 -1
  59. package/dist/cjs/plugins/list/index.js +6 -2
  60. package/dist/cjs/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +13 -2
  61. package/dist/cjs/plugins/list/pm-plugins/input-rules/index.js +5 -2
  62. package/dist/cjs/plugins/list/pm-plugins/main.js +32 -10
  63. package/dist/cjs/plugins/media/index.js +35 -0
  64. package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +7 -6
  65. package/dist/cjs/plugins/media/nodeviews/mediaInline.js +3 -1
  66. package/dist/cjs/plugins/media/nodeviews/mediaNodeUpdater.js +70 -64
  67. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +3 -1
  68. package/dist/cjs/plugins/media/pm-plugins/main.js +6 -0
  69. package/dist/cjs/plugins/media/toolbar/index.js +3 -0
  70. package/dist/cjs/plugins/media/utils/media-single.js +19 -3
  71. package/dist/cjs/plugins/panel/toolbar.js +1 -0
  72. package/dist/cjs/plugins/panel/utils.js +1 -1
  73. package/dist/cjs/plugins/paste/index.js +2 -1
  74. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +19 -3
  75. package/dist/cjs/plugins/paste/pm-plugins/main.js +1 -1
  76. package/dist/cjs/plugins/paste/util/index.js +2 -2
  77. package/dist/cjs/plugins/placeholder/index.js +24 -47
  78. package/dist/cjs/plugins/placeholder/styles.js +2 -4
  79. package/dist/cjs/plugins/tasks-and-decisions/nodeviews/taskItem.js +7 -3
  80. package/dist/cjs/plugins/tasks-and-decisions/ui/ToolbarDecision/index.js +1 -0
  81. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +10 -5
  82. package/dist/cjs/plugins/text-formatting/ui/Toolbar/hooks/formatting-icons.js +5 -1
  83. package/dist/cjs/plugins/text-formatting/ui/Toolbar/single-toolbar-buttons.js +5 -1
  84. package/dist/cjs/plugins/toolbar-lists-indentation/ui/Toolbar.js +16 -6
  85. package/dist/cjs/plugins/type-ahead/index.js +2 -8
  86. package/dist/cjs/plugins/type-ahead/messages.js +44 -4
  87. package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +0 -1
  88. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +17 -1
  89. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +9 -4
  90. package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +8 -5
  91. package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +2 -1
  92. package/dist/cjs/plugins/type-ahead/utils.js +44 -2
  93. package/dist/cjs/plugins/undo-redo/ui/ToolbarUndoRedo/index.js +6 -2
  94. package/dist/cjs/ui/Alignment/AlignmentButton/index.js +4 -1
  95. package/dist/cjs/ui/Appearance/Comment/Toolbar.js +1 -1
  96. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +2 -1
  97. package/dist/cjs/ui/CollapsedEditor/index.js +4 -2
  98. package/dist/cjs/ui/ColorPickerButton/index.js +2 -1
  99. package/dist/cjs/ui/ConfigPanel/Fields/Fieldset.js +3 -4
  100. package/dist/cjs/ui/ConfigPanel/FormContent.js +2 -1
  101. package/dist/cjs/ui/ContentStyles/index.js +1 -1
  102. package/dist/cjs/ui/LinkSearch/ToolbarComponents.js +3 -1
  103. package/dist/cjs/ui/ToolbarArrowKeyNavigationProvider/index.js +55 -33
  104. package/dist/cjs/utils/commands.js +25 -13
  105. package/dist/cjs/utils/input-rules.js +26 -2
  106. package/dist/cjs/version-wrapper.js +1 -1
  107. package/dist/cjs/version.json +1 -1
  108. package/dist/es2019/create-editor/ReactEditorView.js +2 -1
  109. package/dist/es2019/create-editor/create-plugins-list.js +9 -6
  110. package/dist/es2019/create-editor/messages.js +8 -0
  111. package/dist/es2019/i18n/en.js +2 -2
  112. package/dist/es2019/i18n/en_GB.js +2 -2
  113. package/dist/es2019/i18n/en_ZZ.js +2 -2
  114. package/dist/es2019/i18n/index.js +4 -4
  115. package/dist/es2019/i18n/languages.js +9 -4
  116. package/dist/es2019/labs/next/presets/mobile.js +2 -2
  117. package/dist/es2019/labs/next/presets/preset.js +28 -7
  118. package/dist/es2019/plugins/annotation/nodeviews/index.js +1 -0
  119. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/index.js +5 -1
  120. package/dist/es2019/plugins/breakout/ui/LayoutButton.js +4 -1
  121. package/dist/es2019/plugins/card/pm-plugins/doc.js +10 -19
  122. package/dist/es2019/plugins/card/pm-plugins/main.js +4 -19
  123. package/dist/es2019/plugins/card/toolbar.js +19 -2
  124. package/dist/es2019/plugins/card/ui/EditLinkToolbar.js +8 -6
  125. package/dist/es2019/plugins/card/ui/LinkToolbarAppearance.js +7 -36
  126. package/dist/es2019/plugins/card/utils.js +15 -2
  127. package/dist/es2019/plugins/collab-edit/actions.js +3 -3
  128. package/dist/es2019/plugins/copy-button/toolbar.js +5 -3
  129. package/dist/es2019/plugins/date/index.js +0 -7
  130. package/dist/es2019/plugins/date/ui/DatePicker/index.js +1 -2
  131. package/dist/es2019/plugins/emoji/index.js +7 -13
  132. package/dist/es2019/plugins/expand/pm-plugins/main.js +3 -3
  133. package/dist/es2019/plugins/expand/toolbar.js +1 -0
  134. package/dist/es2019/plugins/extension/commands.js +10 -1
  135. package/dist/es2019/plugins/extension/pm-plugins/main.js +10 -0
  136. package/dist/es2019/plugins/extension/toolbar.js +43 -8
  137. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +11 -11
  138. package/dist/es2019/plugins/find-replace/ui/FindReplaceToolbarButton.js +7 -3
  139. package/dist/es2019/plugins/floating-toolbar/index.js +15 -5
  140. package/dist/es2019/plugins/floating-toolbar/ui/CheckboxModal.js +70 -0
  141. package/dist/es2019/plugins/floating-toolbar/ui/ConfirmationModal.js +8 -27
  142. package/dist/es2019/plugins/floating-toolbar/ui/Dropdown.js +17 -4
  143. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +96 -50
  144. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +1 -1
  145. package/dist/es2019/plugins/floating-toolbar/ui/ScrollButtons.js +29 -76
  146. package/dist/es2019/plugins/floating-toolbar/ui/SimpleModal.js +32 -0
  147. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +26 -46
  148. package/dist/es2019/plugins/floating-toolbar/ui/messages.js +14 -4
  149. package/dist/es2019/plugins/floating-toolbar/utils.js +4 -17
  150. package/dist/es2019/plugins/help-dialog/index.js +2 -2
  151. package/dist/es2019/plugins/hyperlink/Toolbar.js +18 -2
  152. package/dist/es2019/plugins/hyperlink/ui/EditorLinkPicker/index.js +9 -2
  153. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +5 -9
  154. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +2 -1
  155. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +2 -1
  156. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +2 -1
  157. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +2 -1
  158. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -0
  159. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/item.js +25 -12
  160. package/dist/es2019/plugins/layout/toolbar.js +1 -0
  161. package/dist/es2019/plugins/list/actions/outdent-list-items-selected.js +24 -4
  162. package/dist/es2019/plugins/list/commands/outdent-list.js +1 -1
  163. package/dist/es2019/plugins/list/index.js +7 -3
  164. package/dist/es2019/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +13 -2
  165. package/dist/es2019/plugins/list/pm-plugins/input-rules/index.js +5 -2
  166. package/dist/es2019/plugins/list/pm-plugins/main.js +31 -11
  167. package/dist/es2019/plugins/media/index.js +38 -0
  168. package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +6 -5
  169. package/dist/es2019/plugins/media/nodeviews/mediaInline.js +3 -1
  170. package/dist/es2019/plugins/media/nodeviews/mediaNodeUpdater.js +2 -2
  171. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +3 -1
  172. package/dist/es2019/plugins/media/pm-plugins/main.js +7 -0
  173. package/dist/es2019/plugins/media/toolbar/index.js +3 -0
  174. package/dist/es2019/plugins/media/utils/media-single.js +20 -3
  175. package/dist/es2019/plugins/panel/toolbar.js +1 -0
  176. package/dist/es2019/plugins/panel/utils.js +1 -1
  177. package/dist/es2019/plugins/paste/index.js +2 -1
  178. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +15 -2
  179. package/dist/es2019/plugins/paste/pm-plugins/main.js +1 -1
  180. package/dist/es2019/plugins/paste/util/index.js +2 -2
  181. package/dist/es2019/plugins/placeholder/index.js +21 -47
  182. package/dist/es2019/plugins/placeholder/styles.js +1 -19
  183. package/dist/es2019/plugins/tasks-and-decisions/nodeviews/taskItem.js +6 -3
  184. package/dist/es2019/plugins/tasks-and-decisions/ui/ToolbarDecision/index.js +1 -0
  185. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +8 -7
  186. package/dist/es2019/plugins/text-formatting/ui/Toolbar/hooks/formatting-icons.js +4 -1
  187. package/dist/es2019/plugins/text-formatting/ui/Toolbar/single-toolbar-buttons.js +18 -12
  188. package/dist/es2019/plugins/toolbar-lists-indentation/ui/Toolbar.js +16 -7
  189. package/dist/es2019/plugins/type-ahead/index.js +2 -2
  190. package/dist/es2019/plugins/type-ahead/messages.js +44 -4
  191. package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +0 -1
  192. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +17 -1
  193. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +10 -5
  194. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +8 -5
  195. package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +2 -1
  196. package/dist/es2019/plugins/type-ahead/utils.js +38 -0
  197. package/dist/es2019/plugins/undo-redo/ui/ToolbarUndoRedo/index.js +6 -3
  198. package/dist/es2019/ui/Alignment/AlignmentButton/index.js +4 -2
  199. package/dist/es2019/ui/Appearance/Comment/Toolbar.js +2 -2
  200. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +2 -1
  201. package/dist/es2019/ui/CollapsedEditor/index.js +3 -2
  202. package/dist/es2019/ui/ColorPickerButton/index.js +2 -1
  203. package/dist/es2019/ui/ConfigPanel/Fields/Fieldset.js +4 -5
  204. package/dist/es2019/ui/ConfigPanel/FormContent.js +3 -3
  205. package/dist/es2019/ui/ContentStyles/index.js +7 -2
  206. package/dist/es2019/ui/LinkSearch/ToolbarComponents.js +1 -0
  207. package/dist/es2019/ui/ToolbarArrowKeyNavigationProvider/index.js +56 -34
  208. package/dist/es2019/utils/commands.js +26 -14
  209. package/dist/es2019/utils/input-rules.js +22 -1
  210. package/dist/es2019/version-wrapper.js +1 -1
  211. package/dist/es2019/version.json +1 -1
  212. package/dist/esm/create-editor/ReactEditorView.js +2 -1
  213. package/dist/esm/create-editor/create-plugins-list.js +9 -6
  214. package/dist/esm/create-editor/messages.js +8 -0
  215. package/dist/esm/i18n/en.js +2 -2
  216. package/dist/esm/i18n/en_GB.js +2 -2
  217. package/dist/esm/i18n/en_ZZ.js +2 -2
  218. package/dist/esm/i18n/index.js +4 -4
  219. package/dist/esm/i18n/languages.js +9 -4
  220. package/dist/esm/labs/next/presets/mobile.js +2 -2
  221. package/dist/esm/labs/next/presets/preset.js +36 -6
  222. package/dist/esm/plugins/annotation/nodeviews/index.js +1 -0
  223. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/index.js +5 -1
  224. package/dist/esm/plugins/breakout/ui/LayoutButton.js +4 -1
  225. package/dist/esm/plugins/card/pm-plugins/doc.js +10 -20
  226. package/dist/esm/plugins/card/pm-plugins/main.js +4 -17
  227. package/dist/esm/plugins/card/toolbar.js +24 -8
  228. package/dist/esm/plugins/card/ui/EditLinkToolbar.js +8 -6
  229. package/dist/esm/plugins/card/ui/LinkToolbarAppearance.js +9 -39
  230. package/dist/esm/plugins/card/utils.js +15 -2
  231. package/dist/esm/plugins/collab-edit/actions.js +3 -3
  232. package/dist/esm/plugins/copy-button/toolbar.js +5 -3
  233. package/dist/esm/plugins/date/index.js +1 -6
  234. package/dist/esm/plugins/date/ui/DatePicker/index.js +1 -2
  235. package/dist/esm/plugins/emoji/index.js +7 -13
  236. package/dist/esm/plugins/expand/pm-plugins/main.js +3 -3
  237. package/dist/esm/plugins/expand/toolbar.js +1 -0
  238. package/dist/esm/plugins/extension/commands.js +12 -1
  239. package/dist/esm/plugins/extension/pm-plugins/main.js +10 -0
  240. package/dist/esm/plugins/extension/toolbar.js +50 -8
  241. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +11 -11
  242. package/dist/esm/plugins/find-replace/ui/FindReplaceToolbarButton.js +7 -3
  243. package/dist/esm/plugins/floating-toolbar/index.js +16 -4
  244. package/dist/esm/plugins/floating-toolbar/ui/CheckboxModal.js +75 -0
  245. package/dist/esm/plugins/floating-toolbar/ui/ConfirmationModal.js +11 -25
  246. package/dist/esm/plugins/floating-toolbar/ui/Dropdown.js +17 -4
  247. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +100 -47
  248. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +1 -1
  249. package/dist/esm/plugins/floating-toolbar/ui/ScrollButtons.js +29 -108
  250. package/dist/esm/plugins/floating-toolbar/ui/SimpleModal.js +30 -0
  251. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +27 -47
  252. package/dist/esm/plugins/floating-toolbar/ui/messages.js +13 -3
  253. package/dist/esm/plugins/floating-toolbar/utils.js +4 -17
  254. package/dist/esm/plugins/help-dialog/index.js +3 -2
  255. package/dist/esm/plugins/hyperlink/Toolbar.js +20 -2
  256. package/dist/esm/plugins/hyperlink/ui/EditorLinkPicker/index.js +10 -3
  257. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +5 -10
  258. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +2 -1
  259. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +2 -1
  260. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +2 -1
  261. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +2 -1
  262. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -0
  263. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/item.js +25 -12
  264. package/dist/esm/plugins/layout/toolbar.js +1 -0
  265. package/dist/esm/plugins/list/actions/outdent-list-items-selected.js +30 -4
  266. package/dist/esm/plugins/list/commands/outdent-list.js +1 -1
  267. package/dist/esm/plugins/list/index.js +7 -3
  268. package/dist/esm/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +13 -2
  269. package/dist/esm/plugins/list/pm-plugins/input-rules/index.js +5 -2
  270. package/dist/esm/plugins/list/pm-plugins/main.js +31 -11
  271. package/dist/esm/plugins/media/index.js +33 -0
  272. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +7 -6
  273. package/dist/esm/plugins/media/nodeviews/mediaInline.js +3 -1
  274. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +70 -64
  275. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +3 -1
  276. package/dist/esm/plugins/media/pm-plugins/main.js +7 -0
  277. package/dist/esm/plugins/media/toolbar/index.js +3 -0
  278. package/dist/esm/plugins/media/utils/media-single.js +18 -3
  279. package/dist/esm/plugins/panel/toolbar.js +1 -0
  280. package/dist/esm/plugins/panel/utils.js +1 -1
  281. package/dist/esm/plugins/paste/index.js +2 -1
  282. package/dist/esm/plugins/paste/pm-plugins/analytics.js +15 -2
  283. package/dist/esm/plugins/paste/pm-plugins/main.js +1 -1
  284. package/dist/esm/plugins/paste/util/index.js +2 -2
  285. package/dist/esm/plugins/placeholder/index.js +23 -45
  286. package/dist/esm/plugins/placeholder/styles.js +1 -2
  287. package/dist/esm/plugins/tasks-and-decisions/nodeviews/taskItem.js +6 -3
  288. package/dist/esm/plugins/tasks-and-decisions/ui/ToolbarDecision/index.js +1 -0
  289. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +9 -5
  290. package/dist/esm/plugins/text-formatting/ui/Toolbar/hooks/formatting-icons.js +4 -1
  291. package/dist/esm/plugins/text-formatting/ui/Toolbar/single-toolbar-buttons.js +5 -1
  292. package/dist/esm/plugins/toolbar-lists-indentation/ui/Toolbar.js +16 -7
  293. package/dist/esm/plugins/type-ahead/index.js +2 -2
  294. package/dist/esm/plugins/type-ahead/messages.js +44 -4
  295. package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +0 -1
  296. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +17 -1
  297. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +10 -5
  298. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +8 -5
  299. package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +2 -1
  300. package/dist/esm/plugins/type-ahead/utils.js +38 -0
  301. package/dist/esm/plugins/undo-redo/ui/ToolbarUndoRedo/index.js +6 -3
  302. package/dist/esm/ui/Alignment/AlignmentButton/index.js +4 -2
  303. package/dist/esm/ui/Appearance/Comment/Toolbar.js +2 -2
  304. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +2 -1
  305. package/dist/esm/ui/CollapsedEditor/index.js +3 -2
  306. package/dist/esm/ui/ColorPickerButton/index.js +2 -1
  307. package/dist/esm/ui/ConfigPanel/Fields/Fieldset.js +4 -5
  308. package/dist/esm/ui/ConfigPanel/FormContent.js +3 -3
  309. package/dist/esm/ui/ContentStyles/index.js +1 -1
  310. package/dist/esm/ui/LinkSearch/ToolbarComponents.js +1 -0
  311. package/dist/esm/ui/ToolbarArrowKeyNavigationProvider/index.js +56 -34
  312. package/dist/esm/utils/commands.js +25 -13
  313. package/dist/esm/utils/input-rules.js +23 -1
  314. package/dist/esm/version-wrapper.js +1 -1
  315. package/dist/esm/version.json +1 -1
  316. package/dist/types/create-editor/messages.d.ts +7 -0
  317. package/dist/types/i18n/index.d.ts +4 -4
  318. package/dist/types/i18n/languages.d.ts +8 -3
  319. package/dist/types/labs/next/presets/cxhtml.d.ts +1 -1
  320. package/dist/types/labs/next/presets/default.d.ts +2 -2
  321. package/dist/types/labs/next/presets/mobile.d.ts +1 -1
  322. package/dist/types/labs/next/presets/preset.d.ts +10 -6
  323. package/dist/types/plugins/alignment/index.d.ts +2 -2
  324. package/dist/types/plugins/analytics/plugin.d.ts +2 -2
  325. package/dist/types/plugins/annotation/index.d.ts +2 -2
  326. package/dist/types/plugins/avatar-group/index.d.ts +4 -3
  327. package/dist/types/plugins/base/index.d.ts +2 -2
  328. package/dist/types/plugins/before-primaryToolbar/index.d.ts +4 -3
  329. package/dist/types/plugins/block-type/index.d.ts +2 -2
  330. package/dist/types/plugins/block-type/ui/ToolbarBlockType/index.d.ts +1 -1
  331. package/dist/types/plugins/breakout/index.d.ts +2 -2
  332. package/dist/types/plugins/caption/index.d.ts +2 -2
  333. package/dist/types/plugins/card/index.d.ts +2 -2
  334. package/dist/types/plugins/card/pm-plugins/doc.d.ts +4 -4
  335. package/dist/types/plugins/card/pm-plugins/main.d.ts +1 -1
  336. package/dist/types/plugins/card/ui/EditLinkToolbar.d.ts +1 -1
  337. package/dist/types/plugins/card/ui/LinkToolbarAppearance.d.ts +5 -5
  338. package/dist/types/plugins/card/utils.d.ts +2 -1
  339. package/dist/types/plugins/clear-marks-on-change-to-empty-document/index.d.ts +2 -2
  340. package/dist/types/plugins/clipboard/index.d.ts +2 -2
  341. package/dist/types/plugins/code-bidi-warning/index.d.ts +4 -3
  342. package/dist/types/plugins/code-block/index.d.ts +2 -2
  343. package/dist/types/plugins/collab-edit/actions.d.ts +1 -1
  344. package/dist/types/plugins/collab-edit/index.d.ts +2 -2
  345. package/dist/types/plugins/context-panel/index.d.ts +2 -2
  346. package/dist/types/plugins/copy-button/index.d.ts +2 -2
  347. package/dist/types/plugins/custom-autoformat/index.d.ts +2 -2
  348. package/dist/types/plugins/data-consumer/index.d.ts +2 -2
  349. package/dist/types/plugins/date/index.d.ts +2 -2
  350. package/dist/types/plugins/date/ui/DatePicker/index.d.ts +0 -1
  351. package/dist/types/plugins/editor-disabled/index.d.ts +2 -2
  352. package/dist/types/plugins/emoji/index.d.ts +2 -2
  353. package/dist/types/plugins/emoji/types.d.ts +2 -1
  354. package/dist/types/plugins/expand/index.d.ts +2 -2
  355. package/dist/types/plugins/expand/pm-plugins/main.d.ts +1 -0
  356. package/dist/types/plugins/extension/commands.d.ts +2 -0
  357. package/dist/types/plugins/extension/index.d.ts +2 -2
  358. package/dist/types/plugins/extension/toolbar.d.ts +10 -0
  359. package/dist/types/plugins/fake-text-cursor/index.d.ts +2 -2
  360. package/dist/types/plugins/feature-flags-context/index.d.ts +2 -2
  361. package/dist/types/plugins/feedback-dialog/index.d.ts +3 -2
  362. package/dist/types/plugins/find-replace/index.d.ts +4 -3
  363. package/dist/types/plugins/floating-toolbar/index.d.ts +2 -2
  364. package/dist/types/plugins/floating-toolbar/ui/CheckboxModal.d.ts +4 -0
  365. package/dist/types/plugins/floating-toolbar/ui/ConfirmationModal.d.ts +1 -8
  366. package/dist/types/plugins/floating-toolbar/ui/Dropdown.d.ts +3 -0
  367. package/dist/types/plugins/floating-toolbar/ui/DropdownMenu.d.ts +4 -0
  368. package/dist/types/plugins/floating-toolbar/ui/SimpleModal.d.ts +4 -0
  369. package/dist/types/plugins/floating-toolbar/ui/messages.d.ts +10 -0
  370. package/dist/types/plugins/floating-toolbar/ui/types.d.ts +1 -1
  371. package/dist/types/plugins/floating-toolbar/utils.d.ts +2 -3
  372. package/dist/types/plugins/fragment/index.d.ts +2 -2
  373. package/dist/types/plugins/grid/index.d.ts +2 -2
  374. package/dist/types/plugins/help-dialog/index.d.ts +2 -3
  375. package/dist/types/plugins/history/index.d.ts +2 -2
  376. package/dist/types/plugins/hyperlink/index.d.ts +2 -2
  377. package/dist/types/plugins/hyperlink/ui/EditorLinkPicker/index.d.ts +7 -2
  378. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/index.d.ts +2 -1
  379. package/dist/types/plugins/image-upload/index.d.ts +2 -2
  380. package/dist/types/plugins/indentation/index.d.ts +2 -2
  381. package/dist/types/plugins/insert-block/index.d.ts +2 -2
  382. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.d.ts +1 -0
  383. package/dist/types/plugins/jira-issue/index.d.ts +2 -2
  384. package/dist/types/plugins/layout/index.d.ts +2 -2
  385. package/dist/types/plugins/list/actions/outdent-list-items-selected.d.ts +2 -2
  386. package/dist/types/plugins/list/index.d.ts +3 -2
  387. package/dist/types/plugins/list/pm-plugins/input-rules/create-list-input-rule.d.ts +3 -1
  388. package/dist/types/plugins/list/pm-plugins/main.d.ts +2 -2
  389. package/dist/types/plugins/list/types.d.ts +2 -0
  390. package/dist/types/plugins/macro/index.d.ts +2 -2
  391. package/dist/types/plugins/max-content-size/index.d.ts +2 -2
  392. package/dist/types/plugins/media/index.d.ts +2 -2
  393. package/dist/types/plugins/media/nodeviews/mediaNodeUpdater.d.ts +2 -1
  394. package/dist/types/plugins/media/pm-plugins/main.d.ts +1 -0
  395. package/dist/types/plugins/media/pm-plugins/types.d.ts +1 -0
  396. package/dist/types/plugins/mentions/index.d.ts +2 -2
  397. package/dist/types/plugins/mobile-dimensions/index.d.ts +2 -2
  398. package/dist/types/plugins/mobile-selection/mobile-selection-plugin.d.ts +2 -2
  399. package/dist/types/plugins/panel/index.d.ts +2 -2
  400. package/dist/types/plugins/paste/index.d.ts +3 -2
  401. package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +1 -0
  402. package/dist/types/plugins/placeholder/index.d.ts +4 -4
  403. package/dist/types/plugins/placeholder/styles.d.ts +0 -1
  404. package/dist/types/plugins/placeholder-text/index.d.ts +2 -2
  405. package/dist/types/plugins/quick-insert/index.d.ts +2 -2
  406. package/dist/types/plugins/rule/index.d.ts +2 -2
  407. package/dist/types/plugins/save-on-enter/index.d.ts +3 -2
  408. package/dist/types/plugins/scroll-into-view/index.d.ts +2 -2
  409. package/dist/types/plugins/selection/index.d.ts +2 -2
  410. package/dist/types/plugins/status/index.d.ts +2 -2
  411. package/dist/types/plugins/submit-editor/index.d.ts +4 -2
  412. package/dist/types/plugins/tasks-and-decisions/index.d.ts +2 -2
  413. package/dist/types/plugins/text-color/index.d.ts +3 -2
  414. package/dist/types/plugins/text-formatting/index.d.ts +2 -2
  415. package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +4 -3
  416. package/dist/types/plugins/type-ahead/index.d.ts +2 -2
  417. package/dist/types/plugins/type-ahead/messages.d.ts +41 -1
  418. package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +3 -1
  419. package/dist/types/plugins/type-ahead/ui/TypeAheadListItem.d.ts +1 -0
  420. package/dist/types/plugins/type-ahead/utils.d.ts +7 -1
  421. package/dist/types/plugins/undo-redo/index.d.ts +2 -2
  422. package/dist/types/plugins/unsupported-content/index.d.ts +2 -2
  423. package/dist/types/plugins/view-update-subscription/index.d.ts +2 -2
  424. package/dist/types/plugins/width/index.d.ts +2 -2
  425. package/dist/types/test-utils.d.ts +2 -1
  426. package/dist/types/types/editor-plugin.d.ts +1 -1
  427. package/dist/types/types/editor-props.d.ts +0 -2
  428. package/dist/types/types/index.d.ts +1 -1
  429. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +3 -3
  430. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  431. package/dist/types/ui/ConfigPanel/Fields/Fieldset.d.ts +2 -1
  432. package/dist/types/ui/ConfigPanel/FormContent.d.ts +2 -23
  433. package/dist/types/ui/ConfigPanel/types.d.ts +22 -0
  434. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  435. package/dist/types/ui/LinkSearch/ToolbarComponents.d.ts +1 -0
  436. package/dist/types/ui/ToolbarArrowKeyNavigationProvider/index.d.ts +4 -1
  437. package/package.json +24 -24
  438. package/report.api.md +25 -16
  439. package/dist/cjs/plugins/card/ui/LinkToolbarIconDropdown.js +0 -181
  440. package/dist/cjs/plugins/card/ui/link-toolbar-icon-dropdown-options.js +0 -66
  441. package/dist/cjs/plugins/emoji/ui/EmojiContextProvider/index.js +0 -61
  442. package/dist/es2019/plugins/card/ui/LinkToolbarIconDropdown.js +0 -151
  443. package/dist/es2019/plugins/card/ui/link-toolbar-icon-dropdown-options.js +0 -51
  444. package/dist/es2019/plugins/emoji/ui/EmojiContextProvider/index.js +0 -21
  445. package/dist/esm/plugins/card/ui/LinkToolbarIconDropdown.js +0 -161
  446. package/dist/esm/plugins/card/ui/link-toolbar-icon-dropdown-options.js +0 -51
  447. package/dist/esm/plugins/emoji/ui/EmojiContextProvider/index.js +0 -46
  448. package/dist/types/plugins/card/ui/LinkToolbarIconDropdown.d.ts +0 -25
  449. package/dist/types/plugins/card/ui/link-toolbar-icon-dropdown-options.d.ts +0 -5
  450. package/dist/types/plugins/emoji/ui/EmojiContextProvider/index.d.ts +0 -13
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { orderedList, bulletList, listItem } from '@atlaskit/adf-schema';
2
+ import { orderedList, orderedListWithOrder, bulletList, listItem } from '@atlaskit/adf-schema';
3
3
  import { createPlugin } from './pm-plugins/main';
4
4
  import inputRulePlugin from './pm-plugins/input-rules';
5
5
  import keymapPlugin from './pm-plugins/keymap';
@@ -8,7 +8,11 @@ import { addAnalytics, ACTION, EVENT_TYPE, INPUT_METHOD, ACTION_SUBJECT, ACTION_
8
8
  import { tooltip, toggleBulletList, toggleOrderedList } from '../../keymaps';
9
9
  import { IconList, IconListNumber } from '../quick-insert/assets';
10
10
 
11
- var listPlugin = function listPlugin() {
11
+ /*
12
+ Toolbar buttons to bullet and ordered list can be found in
13
+ packages/editor/editor-core/src/plugins/toolbar-lists-indentation/ui/Toolbar.tsx
14
+ */
15
+ var listPlugin = function listPlugin(options) {
12
16
  return {
13
17
  name: 'list',
14
18
  nodes: function nodes() {
@@ -17,7 +21,7 @@ var listPlugin = function listPlugin() {
17
21
  node: bulletList
18
22
  }, {
19
23
  name: 'orderedList',
20
- node: orderedList
24
+ node: options !== null && options !== void 0 && options.restartNumberedLists ? orderedListWithOrder : orderedList
21
25
  }, {
22
26
  name: 'listItem',
23
27
  node: listItem
@@ -2,7 +2,8 @@ import { ruleWithAnalytics, createWrappingJoinRule } from '../../../../utils/inp
2
2
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '../../../analytics';
3
3
  export function createRuleForListType(_ref) {
4
4
  var listType = _ref.listType,
5
- expression = _ref.expression;
5
+ expression = _ref.expression,
6
+ featureFlags = _ref.featureFlags;
6
7
  var isBulletList = listType.name === 'bulletList';
7
8
  var actionSubjectId = isBulletList ? ACTION_SUBJECT_ID.FORMAT_LIST_BULLET : ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
8
9
  var analyticsPayload = {
@@ -19,10 +20,20 @@ export function createRuleForListType(_ref) {
19
20
  return node.type === listType;
20
21
  };
21
22
 
23
+ var getAttrs = {};
24
+
25
+ if (featureFlags !== null && featureFlags !== void 0 && featureFlags.restartNumberedLists) {
26
+ getAttrs = function getAttrs(matchResult) {
27
+ return {
28
+ order: Number(matchResult[1])
29
+ };
30
+ };
31
+ }
32
+
22
33
  var inputRule = createWrappingJoinRule({
23
34
  match: expression,
24
35
  nodeType: listType,
25
- getAttrs: {},
36
+ getAttrs: getAttrs,
26
37
  joinPredicate: shouldJoinNextNodeWhen
27
38
  });
28
39
  return ruleWithAnalytics(analyticsPayload)(inputRule);
@@ -16,10 +16,13 @@ export default function inputRulePlugin(schema, featureFlags) {
16
16
  }));
17
17
  }
18
18
 
19
+ var expression = featureFlags !== null && featureFlags !== void 0 && featureFlags.restartNumberedLists ? /((^[1-9]{1}[0-9]{0,2})|^(0))[\.\)] $/ : /^(1)[\.\)] $/;
20
+
19
21
  if (orderedList) {
20
22
  rules.push(createRuleForListType({
21
- expression: /^(1)[\.\)] $/,
22
- listType: orderedList
23
+ expression: expression,
24
+ listType: orderedList,
25
+ featureFlags: featureFlags
23
26
  }));
24
27
  }
25
28
 
@@ -13,7 +13,9 @@ import { isListNode } from '../utils/node';
13
13
  import { pluginFactory } from '../../../utils/plugin-state-factory';
14
14
  import { setGapCursorSelection } from '../../../utils';
15
15
  import { Side } from '../../selection/gap-cursor-selection';
16
- import { listPaddingLeftMarkerSpace, CodeBlockSharedCssClassName } from '@atlaskit/editor-common/styles';
16
+ import { listItemCounterPadding, CodeBlockSharedCssClassName, getOrderedListInlineStyles } from '@atlaskit/editor-common/styles';
17
+ import { getItemCounterDigitsSize } from '@atlaskit/editor-common/utils';
18
+ import { getFeatureFlags } from '../../feature-flags-context';
17
19
  var listPluginKey = new PluginKey('listPlugin');
18
20
  export var pluginKey = listPluginKey;
19
21
  var initialState = {
@@ -23,8 +25,9 @@ var initialState = {
23
25
  orderedListDisabled: false,
24
26
  decorationSet: DecorationSet.empty
25
27
  };
26
- export var getDecorations = function getDecorations(doc) {
27
- var decorations = []; // this stack keeps track of each (nested) list to calculate the indentation level
28
+ export var getDecorations = function getDecorations(doc, state) {
29
+ var decorations = [];
30
+ var featureFlags = getFeatureFlags(state); // this stack keeps track of each (nested) list to calculate the indentation level
28
31
 
29
32
  var processedListsStack = [];
30
33
  doc.nodesBetween(0, doc.content.size, function (node, currentNodeStartPos) {
@@ -55,19 +58,36 @@ export var getDecorations = function getDecorations(doc) {
55
58
  'data-indent-level': "".concat(depth)
56
59
  }));
57
60
 
58
- if (node.childCount >= 100) {
59
- decorations.push(Decoration.node(from, to, {
60
- 'data-child-count': '100+'
61
- }));
61
+ if (featureFlags !== null && featureFlags !== void 0 && featureFlags.restartNumberedLists) {
62
+ var _node$attrs;
63
+
64
+ // If a numbered list has item counters numbering >= 100, we'll need to add special
65
+ // spacing to account for the extra digit chars
66
+ var digitsSize = getItemCounterDigitsSize({
67
+ itemsCount: node === null || node === void 0 ? void 0 : node.childCount,
68
+ order: node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.order
69
+ });
70
+
71
+ if (digitsSize) {
72
+ decorations.push(Decoration.node(from, to, {
73
+ style: getOrderedListInlineStyles(digitsSize, 'string')
74
+ }));
75
+ }
76
+ } else {
77
+ if (node.childCount >= 100) {
78
+ decorations.push(Decoration.node(from, to, {
79
+ 'data-child-count': '100+'
80
+ }));
81
+ }
62
82
  }
63
83
  }
64
84
  });
65
85
  return DecorationSet.empty.add(doc, decorations);
66
86
  };
67
87
 
68
- var handleDocChanged = function handleDocChanged(tr, pluginState) {
88
+ var handleDocChanged = function handleDocChanged(tr, pluginState, editorState) {
69
89
  var nextPluginState = handleSelectionChanged(tr, pluginState);
70
- var decorationSet = getDecorations(tr.doc);
90
+ var decorationSet = getDecorations(tr.doc, editorState);
71
91
  return _objectSpread(_objectSpread({}, nextPluginState), {}, {
72
92
  decorationSet: decorationSet
73
93
  });
@@ -112,7 +132,7 @@ var _pluginFactory = pluginFactory(listPluginKey, reducer(), {
112
132
 
113
133
  var createInitialState = function createInitialState(state) {
114
134
  return _objectSpread(_objectSpread({}, initialState), {}, {
115
- decorationSet: getDecorations(state.doc)
135
+ decorationSet: getDecorations(state.doc, state)
116
136
  });
117
137
  };
118
138
 
@@ -142,7 +162,7 @@ export var createPlugin = function createPlugin(eventDispatch) {
142
162
  var _document, _document$elementFrom;
143
163
 
144
164
  var bufferPx = 50;
145
- var isCodeBlockNextToListMarker = Boolean((_document = document) === null || _document === void 0 ? void 0 : (_document$elementFrom = _document.elementFromPoint(event.clientX + (listPaddingLeftMarkerSpace + bufferPx), event.clientY)) === null || _document$elementFrom === void 0 ? void 0 : _document$elementFrom.closest(".".concat(CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER)));
165
+ var isCodeBlockNextToListMarker = Boolean((_document = document) === null || _document === void 0 ? void 0 : (_document$elementFrom = _document.elementFromPoint(event.clientX + (listItemCounterPadding + bufferPx), event.clientY)) === null || _document$elementFrom === void 0 ? void 0 : _document$elementFrom.closest(".".concat(CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER)));
146
166
 
147
167
  if (isCodeBlockNextToListMarker) {
148
168
  // +1 needed to put cursor inside li
@@ -1,4 +1,6 @@
1
1
  import React from 'react';
2
+ import { PluginKey, NodeSelection } from 'prosemirror-state';
3
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
4
  import { media, mediaGroup, mediaSingle, mediaSingleWithCaption, mediaInline } from '@atlaskit/adf-schema';
3
5
  import { stateKey as pluginKey, createPlugin } from './pm-plugins/main';
4
6
  import { getMediaFeatureFlag } from '@atlaskit/media-common';
@@ -140,6 +142,37 @@ var mediaPlugin = function mediaPlugin(options) {
140
142
  });
141
143
  }
142
144
 
145
+ pmPlugins.push({
146
+ name: 'mediaSelectionHandler',
147
+ plugin: function plugin() {
148
+ var mediaSelectionHandlerPlugin = new SafePlugin({
149
+ key: new PluginKey('mediaSelectionHandlerPlugin'),
150
+ props: {
151
+ handleScrollToSelection: function handleScrollToSelection(view) {
152
+ var selection = view.state.selection;
153
+
154
+ if (!(selection instanceof NodeSelection) || selection.node.type.name !== 'media') {
155
+ return false;
156
+ }
157
+
158
+ var _view$domAtPos = view.domAtPos(selection.from),
159
+ node = _view$domAtPos.node,
160
+ offset = _view$domAtPos.offset;
161
+
162
+ if ( // Is the media element mounted already?
163
+ offset === node.childNodes.length) {
164
+ // Media is not ready, so stop the scroll request
165
+ return true;
166
+ } // Media is ready, keep the scrolling request
167
+
168
+
169
+ return false;
170
+ }
171
+ }
172
+ });
173
+ return mediaSelectionHandlerPlugin;
174
+ }
175
+ });
143
176
  return pmPlugins;
144
177
  },
145
178
  contentComponent: function contentComponent(_ref7) {
@@ -86,13 +86,12 @@ var MediaGroup = /*#__PURE__*/function (_React$Component) {
86
86
  var oldMediaNodes = _this.mediaNodes;
87
87
  _this.mediaNodes = [];
88
88
  node.forEach(function (item, childOffset) {
89
- _this.mediaPluginState.mediaGroupNodes[item.attrs.id] = {
90
- node: item,
91
- getPos: function getPos() {
92
- return props.getPos() + childOffset + 1;
93
- }
89
+ var getPos = function getPos() {
90
+ return props.getPos() + childOffset + 1;
94
91
  };
95
92
 
93
+ _this.mediaPluginState.setMediaGroupNode(item, getPos);
94
+
96
95
  _this.mediaNodes.push(item);
97
96
  });
98
97
 
@@ -240,7 +239,9 @@ var MediaGroup = /*#__PURE__*/function (_React$Component) {
240
239
  }
241
240
 
242
241
  _context.next = 14;
243
- return mediaNodeUpdater.copyNode();
242
+ return mediaNodeUpdater.copyNode({
243
+ traceId: node.attrs.__mediaTraceId
244
+ });
244
245
 
245
246
  case 14:
246
247
  case "end":
@@ -85,7 +85,9 @@ export var updateMediaNodeAttributes = /*#__PURE__*/function () {
85
85
  }
86
86
 
87
87
  _context.prev = 13;
88
- copyNode = mediaNodeUpdater.copyNode();
88
+ copyNode = mediaNodeUpdater.copyNode({
89
+ traceId: node.attrs.__mediaTraceId
90
+ });
89
91
  addPendingTask(copyNode);
90
92
  _context.next = 18;
91
93
  return copyNode;
@@ -477,80 +477,86 @@ export var MediaNodeUpdater = /*#__PURE__*/function () {
477
477
  };
478
478
  }());
479
479
 
480
- _defineProperty(this, "copyNode", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {
481
- var mediaProvider, _this$props, isMediaSingle, view, attrs, nodeContextId, uploadMediaClientConfig, mediaClient, auth, objectId, id, collection, source, currentCollectionName, destination, mediaFile;
480
+ _defineProperty(this, "copyNode", /*#__PURE__*/function () {
481
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(traceContext) {
482
+ var mediaProvider, _this$props, isMediaSingle, view, attrs, nodeContextId, uploadMediaClientConfig, mediaClient, auth, objectId, id, collection, source, currentCollectionName, destination, mediaFile;
482
483
 
483
- return _regeneratorRuntime.wrap(function _callee8$(_context8) {
484
- while (1) {
485
- switch (_context8.prev = _context8.next) {
486
- case 0:
487
- _context8.next = 2;
488
- return _this.props.mediaProvider;
484
+ return _regeneratorRuntime.wrap(function _callee8$(_context8) {
485
+ while (1) {
486
+ switch (_context8.prev = _context8.next) {
487
+ case 0:
488
+ _context8.next = 2;
489
+ return _this.props.mediaProvider;
489
490
 
490
- case 2:
491
- mediaProvider = _context8.sent;
492
- _this$props = _this.props, isMediaSingle = _this$props.isMediaSingle, view = _this$props.view;
493
- attrs = _this.getAttrs();
491
+ case 2:
492
+ mediaProvider = _context8.sent;
493
+ _this$props = _this.props, isMediaSingle = _this$props.isMediaSingle, view = _this$props.view;
494
+ attrs = _this.getAttrs();
494
495
 
495
- if (!(!mediaProvider || !mediaProvider.uploadParams || !attrs || attrs.type !== 'file')) {
496
- _context8.next = 7;
497
- break;
498
- }
496
+ if (!(!mediaProvider || !mediaProvider.uploadParams || !attrs || attrs.type !== 'file')) {
497
+ _context8.next = 7;
498
+ break;
499
+ }
499
500
 
500
- return _context8.abrupt("return");
501
+ return _context8.abrupt("return");
501
502
 
502
- case 7:
503
- nodeContextId = _this.getNodeContextId();
504
- uploadMediaClientConfig = mediaProvider.uploadMediaClientConfig;
503
+ case 7:
504
+ nodeContextId = _this.getNodeContextId();
505
+ uploadMediaClientConfig = mediaProvider.uploadMediaClientConfig;
505
506
 
506
- if (!(uploadMediaClientConfig && uploadMediaClientConfig.getAuthFromContext && nodeContextId)) {
507
- _context8.next = 25;
508
- break;
509
- }
507
+ if (!(uploadMediaClientConfig && uploadMediaClientConfig.getAuthFromContext && nodeContextId)) {
508
+ _context8.next = 25;
509
+ break;
510
+ }
510
511
 
511
- mediaClient = getMediaClient(uploadMediaClientConfig);
512
- _context8.next = 13;
513
- return uploadMediaClientConfig.getAuthFromContext(nodeContextId);
512
+ mediaClient = getMediaClient(uploadMediaClientConfig);
513
+ _context8.next = 13;
514
+ return uploadMediaClientConfig.getAuthFromContext(nodeContextId);
514
515
 
515
- case 13:
516
- auth = _context8.sent;
517
- _context8.next = 16;
518
- return _this.getObjectId();
516
+ case 13:
517
+ auth = _context8.sent;
518
+ _context8.next = 16;
519
+ return _this.getObjectId();
519
520
 
520
- case 16:
521
- objectId = _context8.sent;
522
- id = attrs.id, collection = attrs.collection;
523
- source = {
524
- id: id,
525
- collection: collection,
526
- authProvider: function authProvider() {
527
- return Promise.resolve(auth);
528
- }
529
- };
530
- currentCollectionName = mediaProvider.uploadParams.collection;
531
- destination = {
532
- collection: currentCollectionName,
533
- authProvider: uploadMediaClientConfig.authProvider,
534
- occurrenceKey: uuidV4()
535
- };
536
- _context8.next = 23;
537
- return mediaClient.file.copyFile(source, destination);
538
-
539
- case 23:
540
- mediaFile = _context8.sent;
541
- updateMediaNodeAttrs(source.id, {
542
- id: mediaFile.id,
543
- collection: currentCollectionName,
544
- __contextId: objectId
545
- }, isMediaSingle)(view.state, view.dispatch);
521
+ case 16:
522
+ objectId = _context8.sent;
523
+ id = attrs.id, collection = attrs.collection;
524
+ source = {
525
+ id: id,
526
+ collection: collection,
527
+ authProvider: function authProvider() {
528
+ return Promise.resolve(auth);
529
+ }
530
+ };
531
+ currentCollectionName = mediaProvider.uploadParams.collection;
532
+ destination = {
533
+ collection: currentCollectionName,
534
+ authProvider: uploadMediaClientConfig.authProvider,
535
+ occurrenceKey: uuidV4()
536
+ };
537
+ _context8.next = 23;
538
+ return mediaClient.file.copyFile(source, destination, undefined, traceContext);
546
539
 
547
- case 25:
548
- case "end":
549
- return _context8.stop();
540
+ case 23:
541
+ mediaFile = _context8.sent;
542
+ updateMediaNodeAttrs(source.id, {
543
+ id: mediaFile.id,
544
+ collection: currentCollectionName,
545
+ __contextId: objectId
546
+ }, isMediaSingle)(view.state, view.dispatch);
547
+
548
+ case 25:
549
+ case "end":
550
+ return _context8.stop();
551
+ }
550
552
  }
551
- }
552
- }, _callee8);
553
- })));
553
+ }, _callee8);
554
+ }));
555
+
556
+ return function (_x3) {
557
+ return _ref8.apply(this, arguments);
558
+ };
559
+ }());
554
560
 
555
561
  this.props = props;
556
562
  }
@@ -717,7 +723,7 @@ export var MediaNodeUpdater = /*#__PURE__*/function () {
717
723
  }, _callee10, this, [[1, 6]]);
718
724
  }));
719
725
 
720
- function handleExternalMedia(_x3) {
726
+ function handleExternalMedia(_x4) {
721
727
  return _handleExternalMedia.apply(this, arguments);
722
728
  }
723
729
 
@@ -185,7 +185,9 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
185
185
  });
186
186
 
187
187
  _context2.prev = 24;
188
- copyNode = mediaNodeUpdater.copyNode();
188
+ copyNode = mediaNodeUpdater.copyNode({
189
+ traceId: node.attrs.__mediaTraceId
190
+ });
189
191
  addPendingTask(copyNode);
190
192
  _context2.next = 29;
191
193
  return copyNode;
@@ -513,6 +513,13 @@ export var MediaPluginStateImplementation = /*#__PURE__*/function () {
513
513
  }
514
514
  });
515
515
 
516
+ _defineProperty(this, "setMediaGroupNode", function (node, getPos) {
517
+ _this.mediaGroupNodes[node.attrs.id] = {
518
+ node: node,
519
+ getPos: getPos
520
+ };
521
+ });
522
+
516
523
  _defineProperty(this, "removeNodeById", function (state) {
517
524
  var id = state.id;
518
525
  var mediaNodeWithPos = helpers.findMediaNode(_this, id, isImage(state.fileMimeType));
@@ -108,6 +108,7 @@ var generateMediaCardFloatingToolbar = function generateMediaCardFloatingToolbar
108
108
  id: 'editor.media.delete',
109
109
  type: 'button',
110
110
  appearance: 'danger',
111
+ focusEditoronEnter: true,
111
112
  icon: RemoveIcon,
112
113
  onMouseEnter: hoverDecoration(mediaGroup, true),
113
114
  onMouseLeave: hoverDecoration(mediaGroup, false),
@@ -181,6 +182,7 @@ var generateMediaInlineFloatingToolbar = function generateMediaInlineFloatingToo
181
182
  id: 'editor.media.delete',
182
183
  type: 'button',
183
184
  appearance: 'danger',
185
+ focusEditoronEnter: true,
184
186
  icon: RemoveIcon,
185
187
  onMouseEnter: hoverDecoration(mediaInline, true),
186
188
  onMouseLeave: hoverDecoration(mediaInline, false),
@@ -266,6 +268,7 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
266
268
  id: 'editor.media.delete',
267
269
  type: 'button',
268
270
  appearance: 'danger',
271
+ focusEditoronEnter: true,
269
272
  icon: RemoveIcon,
270
273
  onMouseEnter: hoverDecoration(mediaSingle, true),
271
274
  onMouseLeave: hoverDecoration(mediaSingle, false),
@@ -16,6 +16,7 @@ import { safeInsert, shouldSplitSelectedNodeOnNodeInsertion } from '../../../uti
16
16
  import { getFeatureFlags } from '../../feature-flags-context';
17
17
  import { isImage } from './is-image';
18
18
  import { atTheBeginningOfBlock } from '../../../utils/prosemirror/position';
19
+ import { getRandomHex } from '@atlaskit/media-common';
19
20
 
20
21
  var getInsertMediaAnalytics = function getInsertMediaAnalytics(inputMethod, fileExtension) {
21
22
  return {
@@ -186,6 +187,7 @@ export function transformSliceForMedia(slice, schema) {
186
187
  bulletList = _schema$nodes2.bulletList,
187
188
  orderedList = _schema$nodes2.orderedList,
188
189
  media = _schema$nodes2.media,
190
+ mediaInline = _schema$nodes2.mediaInline,
189
191
  expand = _schema$nodes2.expand;
190
192
  return function (selection) {
191
193
  var newSlice = slice;
@@ -199,10 +201,23 @@ export function transformSliceForMedia(slice, schema) {
199
201
  });
200
202
  }
201
203
 
204
+ var __mediaTraceId = getRandomHex(8);
205
+
202
206
  newSlice = mapSlice(newSlice, function (node) {
203
- return node.type.name === 'media' && node.attrs.type === 'external' ? media.createChecked(_objectSpread(_objectSpread({}, node.attrs), {}, {
204
- __external: true
205
- }), node.content, node.marks) : node;
207
+ if (node.type.name === 'media') {
208
+ return media.createChecked(_objectSpread(_objectSpread({}, node.attrs), {}, {
209
+ __external: node.attrs.type === 'external',
210
+ __mediaTraceId: node.attrs.type === 'external' ? null : __mediaTraceId
211
+ }), node.content, node.marks);
212
+ }
213
+
214
+ if (node.type.name === 'mediaInline') {
215
+ return mediaInline.createChecked(_objectSpread(_objectSpread({}, node.attrs), {}, {
216
+ __mediaTraceId: __mediaTraceId
217
+ }), node.content, node.marks);
218
+ }
219
+
220
+ return node;
206
221
  });
207
222
  return newSlice;
208
223
  };
@@ -261,6 +261,7 @@ export var getToolbarItems = function getToolbarItems(formatMessage, panelNodeTy
261
261
  id: 'editor.panel.delete',
262
262
  type: 'button',
263
263
  appearance: 'danger',
264
+ focusEditoronEnter: true,
264
265
  icon: RemoveIcon,
265
266
  onClick: removePanel(),
266
267
  onMouseEnter: hoverDecoration(panelNodeType, true),
@@ -19,7 +19,7 @@ export var panelAttrsToDom = function panelAttrsToDom(attrs, allowCustomPanel) {
19
19
  panelIconText = attrs.panelIconText;
20
20
  var isCustomPanel = panelType === PanelType.CUSTOM && allowCustomPanel;
21
21
  var hasIcon = !isCustomPanel || !!panelIcon || !!panelIconId;
22
- var style = ["".concat(panelColor && isCustomPanel ? "background-color: ".concat(panelColor, ";") : ''), "".concat(hasIcon ? '' : 'padding: 12px;')].join('');
22
+ var style = ["".concat(panelColor && isCustomPanel ? "background-color: ".concat(panelColor, ";") : ''), "".concat(hasIcon ? '' : 'padding-left: 12px;')].join('');
23
23
  var panelAttrs = {
24
24
  class: PanelSharedCssClassName.prefix,
25
25
  'data-panel-type': panelType || PanelType.INFO,
@@ -2,7 +2,8 @@ import { createPlugin } from './pm-plugins/main';
2
2
 
3
3
  var pastePlugin = function pastePlugin(_ref) {
4
4
  var cardOptions = _ref.cardOptions,
5
- sanitizePrivateContent = _ref.sanitizePrivateContent;
5
+ sanitizePrivateContent = _ref.sanitizePrivateContent,
6
+ plainTextPasteLinkification = _ref.plainTextPasteLinkification;
6
7
  return {
7
8
  name: 'paste',
8
9
  pmPlugins: function pmPlugins() {
@@ -94,6 +94,17 @@ export function getContent(state, slice) {
94
94
  var pasteContent = contentToPasteContent[type];
95
95
  return pasteContent ? pasteContent : PasteContents.uncategorized;
96
96
  }
97
+ export function getMediaTraceId(slice) {
98
+ var traceId;
99
+ mapSlice(slice, function (node) {
100
+ if (node.type.name === 'media' || node.type.name === 'mediaInline') {
101
+ traceId = node.attrs.__mediaTraceId;
102
+ }
103
+
104
+ return node;
105
+ });
106
+ return traceId;
107
+ }
97
108
 
98
109
  function getActionSubjectId(view) {
99
110
  var _view$state = view.state,
@@ -155,7 +166,8 @@ export function createPasteAnalyticsPayload(view, event, slice, pasteContext) {
155
166
  var actionSubjectId = getActionSubjectId(view);
156
167
  var pasteSize = slice.size;
157
168
  var content = getContent(view.state, slice);
158
- var linkUrls = []; // If we have a link among the pasted content, grab the
169
+ var linkUrls = [];
170
+ var mediaTraceId = getMediaTraceId(slice); // If we have a link among the pasted content, grab the
159
171
  // domain and send it up with the analytics event
160
172
 
161
173
  if (content === PasteContents.url || content === PasteContents.mixed) {
@@ -196,7 +208,8 @@ export function createPasteAnalyticsPayload(view, event, slice, pasteContext) {
196
208
  content: content,
197
209
  source: source,
198
210
  hyperlinkPasteOnText: !!pasteContext.hyperlinkPasteOnText,
199
- linksInPasteCount: linkUrls.length
211
+ linksInPasteCount: linkUrls.length,
212
+ mediaTraceId: mediaTraceId
200
213
  }, linkDomains);
201
214
  } // TODO: ED-6612 We should not dispatch only analytics, it's preferred to wrap each command with his own analytics.
202
215
  // However, handlers like handleMacroAutoConvert dispatch multiple time,
@@ -264,7 +264,7 @@ export function createPlugin(schema, dispatchAnalyticsEvent, dispatch, cardOptio
264
264
  }
265
265
  }
266
266
 
267
- slice = transformUnsupportedBlockCardToInline(slice, state); // Handles edge case so that when copying text from the top level of the document
267
+ slice = transformUnsupportedBlockCardToInline(slice, state, cardOptions); // Handles edge case so that when copying text from the top level of the document
268
268
  // it can be pasted into nodes like panels/actions/decisions without removing them.
269
269
  // Overriding openStart to be 1 when only pasting a paragraph makes the preferred
270
270
  // depth favour the text, rather than the paragraph node.
@@ -104,8 +104,8 @@ export function isCode(str) {
104
104
  // @see https://github.com/markdown-it/markdown-it/issues/38
105
105
 
106
106
  export function escapeLinks(text) {
107
- return text.replace(/(\[([^\]]+)\]\()?((https?|ftp):\/\/[^\s]+)/g, function (str) {
108
- return str.match(/^(https?|ftp):\/\/[^\s]+$/) ? "<".concat(str, ">") : str;
107
+ return text.replace(/(\[([^\]]+)\]\()?((https?|ftp|jamfselfservice):\/\/[^\s]+)/g, function (str) {
108
+ return str.match(/^(https?|ftp|jamfselfservice):\/\/[^\s]+$/) ? "<".concat(str, ">") : str;
109
109
  });
110
110
  }
111
111
  export function hasOnlyNodesOfType() {