@atlaskit/editor-core 151.1.2 → 151.3.1

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 (343) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/create-editor/ReactEditorView.js +22 -8
  3. package/dist/cjs/create-editor/create-plugins-list.js +30 -11
  4. package/dist/cjs/labs/next/presets/cxhtml.js +1 -2
  5. package/dist/cjs/labs/next/presets/default.js +3 -1
  6. package/dist/cjs/nodeviews/ReactNodeView.js +2 -2
  7. package/dist/cjs/nodeviews/SelectionBasedNodeView.js +6 -0
  8. package/dist/cjs/plugins/analytics/types/enums.js +1 -0
  9. package/dist/cjs/plugins/annotation/utils.js +19 -8
  10. package/dist/cjs/plugins/avatar-group/index.js +2 -1
  11. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +5 -2
  12. package/dist/cjs/plugins/before-primaryToolbar/index.js +26 -0
  13. package/dist/cjs/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +28 -0
  14. package/dist/cjs/plugins/code-bidi-warning/index.js +5 -2
  15. package/dist/cjs/plugins/code-bidi-warning/pm-plugins/main.js +12 -3
  16. package/dist/cjs/plugins/code-bidi-warning/pm-plugins/plugin-factory.js +15 -5
  17. package/dist/cjs/plugins/code-block/index.js +3 -3
  18. package/dist/cjs/plugins/code-block/nodeviews/highlighting-code-block.js +6 -3
  19. package/dist/cjs/plugins/code-block/pm-plugins/main.js +11 -3
  20. package/dist/cjs/plugins/extension/extension-api.js +10 -2
  21. package/dist/cjs/plugins/extension/ui/styles.js +1 -1
  22. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +4 -2
  23. package/dist/cjs/plugins/find-replace/FindReplaceToolbarButtonWithState.js +172 -0
  24. package/dist/cjs/plugins/find-replace/index.js +14 -137
  25. package/dist/cjs/plugins/find-replace/ui/Find.js +16 -9
  26. package/dist/cjs/plugins/find-replace/ui/FindReplace.js +9 -2
  27. package/dist/cjs/plugins/find-replace/ui/Replace.js +11 -3
  28. package/dist/cjs/plugins/find-replace/ui/styles.js +44 -35
  29. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +10 -4
  30. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +1 -1
  31. package/dist/cjs/plugins/fragment/index.js +34 -0
  32. package/dist/cjs/plugins/fragment/plugin-key.js +11 -0
  33. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  34. package/dist/cjs/plugins/index.js +16 -0
  35. package/dist/cjs/plugins/list/actions/conversions.js +39 -71
  36. package/dist/cjs/plugins/list/transforms.js +7 -1
  37. package/dist/cjs/plugins/media/index.js +2 -3
  38. package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +3 -1
  39. package/dist/cjs/plugins/media/nodeviews/mediaInline.js +12 -5
  40. package/dist/cjs/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  41. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +6 -4
  42. package/dist/cjs/plugins/media/nodeviews/styles.js +6 -1
  43. package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -1
  44. package/dist/cjs/plugins/media/pm-plugins/main.js +49 -15
  45. package/dist/cjs/plugins/media/toolbar/commands.js +59 -0
  46. package/dist/cjs/plugins/media/toolbar/filePreviewItem.js +7 -2
  47. package/dist/cjs/plugins/media/toolbar/index.js +90 -3
  48. package/dist/cjs/plugins/media/ui/ResizableMediaSingle/index.js +9 -1
  49. package/dist/cjs/plugins/media/utils/media-common.js +1 -1
  50. package/dist/cjs/plugins/media/utils/media-files.js +5 -1
  51. package/dist/cjs/plugins/panel/actions.js +2 -2
  52. package/dist/cjs/plugins/panel/index.js +3 -3
  53. package/dist/cjs/plugins/panel/nodeviews/panel.js +2 -2
  54. package/dist/cjs/plugins/panel/toolbar.js +10 -5
  55. package/dist/cjs/plugins/panel/utils.js +15 -0
  56. package/dist/cjs/plugins/rank.js +3 -2
  57. package/dist/cjs/plugins/selection/pm-plugins/selection-main.js +49 -1
  58. package/dist/cjs/plugins/status/ui/statusPicker.js +4 -2
  59. package/dist/cjs/plugins/table/commands/insert.js +1 -0
  60. package/dist/cjs/plugins/table/index.js +3 -2
  61. package/dist/cjs/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -3
  62. package/dist/cjs/plugins/table/pm-plugins/main.js +26 -3
  63. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  64. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -0
  65. package/dist/cjs/plugins/table/transforms/column-width.js +14 -5
  66. package/dist/cjs/plugins/table/transforms/fix-tables.js +43 -6
  67. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +3 -2
  68. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -0
  69. package/dist/cjs/plugins/table/ui/common-styles.css.js +1 -1
  70. package/dist/cjs/plugins/table/ui/consts.js +1 -1
  71. package/dist/cjs/plugins/table/ui/messages.js +1 -1
  72. package/dist/cjs/plugins/tasks-and-decisions/nodeviews/decisionItem.js +1 -1
  73. package/dist/cjs/plugins/tasks-and-decisions/nodeviews/taskItem.js +1 -1
  74. package/dist/cjs/plugins/tasks-and-decisions/pm-plugins/main.js +2 -2
  75. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +2 -1
  76. package/dist/cjs/plugins/text-formatting/index.js +2 -1
  77. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +1 -0
  78. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +77 -26
  79. package/dist/cjs/ui/Appearance/FullPage/MainToolbar.js +32 -9
  80. package/dist/cjs/ui/ColorPalette/Color/index.js +8 -18
  81. package/dist/cjs/ui/ColorPalette/index.js +7 -4
  82. package/dist/cjs/ui/ColorPickerButton/index.js +1 -1
  83. package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +114 -61
  84. package/dist/cjs/ui/ConfigPanel/FormContent.js +39 -26
  85. package/dist/cjs/ui/ConfigPanel/transformers.js +490 -248
  86. package/dist/cjs/ui/ConfigPanel/utils.js +2 -10
  87. package/dist/cjs/ui/DropdownMenu/index.js +3 -1
  88. package/dist/cjs/ui/LinkSearch/LinkSearchListItem.js +1 -1
  89. package/dist/cjs/ui/Resizer/index.js +9 -1
  90. package/dist/cjs/version-wrapper.js +1 -1
  91. package/dist/cjs/version.json +1 -1
  92. package/dist/es2019/create-editor/ReactEditorView.js +19 -8
  93. package/dist/es2019/create-editor/create-plugins-list.js +31 -12
  94. package/dist/es2019/labs/next/presets/cxhtml.js +1 -2
  95. package/dist/es2019/labs/next/presets/default.js +3 -1
  96. package/dist/es2019/nodeviews/ReactNodeView.js +1 -1
  97. package/dist/es2019/nodeviews/SelectionBasedNodeView.js +11 -0
  98. package/dist/es2019/plugins/analytics/types/enums.js +1 -0
  99. package/dist/es2019/plugins/annotation/utils.js +18 -7
  100. package/dist/es2019/plugins/avatar-group/index.js +2 -1
  101. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +3 -2
  102. package/dist/es2019/plugins/before-primaryToolbar/index.js +15 -0
  103. package/dist/es2019/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +12 -0
  104. package/dist/es2019/plugins/code-bidi-warning/index.js +8 -2
  105. package/dist/es2019/plugins/code-bidi-warning/pm-plugins/main.js +12 -2
  106. package/dist/es2019/plugins/code-bidi-warning/pm-plugins/plugin-factory.js +16 -5
  107. package/dist/es2019/plugins/code-block/index.js +3 -2
  108. package/dist/es2019/plugins/code-block/nodeviews/highlighting-code-block.js +6 -3
  109. package/dist/es2019/plugins/code-block/pm-plugins/main.js +11 -3
  110. package/dist/es2019/plugins/extension/extension-api.js +9 -2
  111. package/dist/es2019/plugins/extension/ui/styles.js +6 -0
  112. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +4 -2
  113. package/dist/es2019/plugins/find-replace/FindReplaceToolbarButtonWithState.js +152 -0
  114. package/dist/es2019/plugins/find-replace/index.js +15 -128
  115. package/dist/es2019/plugins/find-replace/ui/Find.js +18 -10
  116. package/dist/es2019/plugins/find-replace/ui/FindReplace.js +11 -3
  117. package/dist/es2019/plugins/find-replace/ui/Replace.js +12 -4
  118. package/dist/es2019/plugins/find-replace/ui/styles.js +37 -47
  119. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  120. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +10 -2
  121. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +1 -1
  122. package/dist/es2019/plugins/fragment/index.js +22 -0
  123. package/dist/es2019/plugins/fragment/plugin-key.js +2 -0
  124. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -2
  125. package/dist/es2019/plugins/index.js +2 -0
  126. package/dist/es2019/plugins/list/actions/conversions.js +38 -69
  127. package/dist/es2019/plugins/list/transforms.js +5 -1
  128. package/dist/es2019/plugins/media/index.js +2 -2
  129. package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +2 -1
  130. package/dist/es2019/plugins/media/nodeviews/mediaInline.js +8 -4
  131. package/dist/es2019/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  132. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +7 -5
  133. package/dist/es2019/plugins/media/nodeviews/styles.js +2 -0
  134. package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -1
  135. package/dist/es2019/plugins/media/pm-plugins/main.js +32 -17
  136. package/dist/es2019/plugins/media/toolbar/commands.js +47 -0
  137. package/dist/es2019/plugins/media/toolbar/filePreviewItem.js +6 -2
  138. package/dist/es2019/plugins/media/toolbar/index.js +90 -3
  139. package/dist/es2019/plugins/media/ui/ResizableMediaSingle/index.js +7 -1
  140. package/dist/es2019/plugins/media/utils/media-common.js +1 -1
  141. package/dist/es2019/plugins/media/utils/media-files.js +6 -1
  142. package/dist/es2019/plugins/panel/actions.js +2 -2
  143. package/dist/es2019/plugins/panel/index.js +5 -5
  144. package/dist/es2019/plugins/panel/nodeviews/panel.js +2 -2
  145. package/dist/es2019/plugins/panel/toolbar.js +10 -5
  146. package/dist/es2019/plugins/panel/utils.js +8 -1
  147. package/dist/es2019/plugins/rank.js +3 -2
  148. package/dist/es2019/plugins/selection/pm-plugins/selection-main.js +48 -1
  149. package/dist/es2019/plugins/status/ui/statusPicker.js +4 -2
  150. package/dist/es2019/plugins/table/commands/insert.js +1 -2
  151. package/dist/es2019/plugins/table/index.js +2 -1
  152. package/dist/es2019/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -2
  153. package/dist/es2019/plugins/table/pm-plugins/main.js +25 -4
  154. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  155. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -0
  156. package/dist/es2019/plugins/table/transforms/column-width.js +13 -3
  157. package/dist/es2019/plugins/table/transforms/fix-tables.js +43 -5
  158. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +3 -2
  159. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -0
  160. package/dist/es2019/plugins/table/ui/common-styles.css.js +5 -1
  161. package/dist/es2019/plugins/table/ui/consts.js +2 -2
  162. package/dist/es2019/plugins/table/ui/messages.js +1 -1
  163. package/dist/es2019/plugins/tasks-and-decisions/nodeviews/decisionItem.js +1 -1
  164. package/dist/es2019/plugins/tasks-and-decisions/nodeviews/taskItem.js +1 -1
  165. package/dist/es2019/plugins/tasks-and-decisions/pm-plugins/main.js +3 -3
  166. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +2 -1
  167. package/dist/es2019/plugins/text-formatting/index.js +3 -2
  168. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +2 -1
  169. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +2 -1
  170. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +60 -27
  171. package/dist/es2019/ui/Appearance/FullPage/MainToolbar.js +51 -7
  172. package/dist/es2019/ui/ColorPalette/Color/index.js +9 -18
  173. package/dist/es2019/ui/ColorPalette/index.js +7 -4
  174. package/dist/es2019/ui/ColorPickerButton/index.js +1 -1
  175. package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +101 -49
  176. package/dist/es2019/ui/ConfigPanel/FormContent.js +35 -26
  177. package/dist/es2019/ui/ConfigPanel/transformers.js +243 -72
  178. package/dist/es2019/ui/ConfigPanel/utils.js +1 -2
  179. package/dist/es2019/ui/Dropdown/index.js +2 -1
  180. package/dist/es2019/ui/DropdownMenu/index.js +7 -3
  181. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +1 -0
  182. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +1 -0
  183. package/dist/es2019/ui/LinkSearch/LinkSearchListItem.js +2 -2
  184. package/dist/es2019/ui/Resizer/index.js +9 -1
  185. package/dist/es2019/version-wrapper.js +1 -1
  186. package/dist/es2019/version.json +1 -1
  187. package/dist/esm/create-editor/ReactEditorView.js +22 -8
  188. package/dist/esm/create-editor/create-plugins-list.js +31 -12
  189. package/dist/esm/labs/next/presets/cxhtml.js +1 -2
  190. package/dist/esm/labs/next/presets/default.js +3 -1
  191. package/dist/esm/nodeviews/ReactNodeView.js +2 -2
  192. package/dist/esm/nodeviews/SelectionBasedNodeView.js +7 -0
  193. package/dist/esm/plugins/analytics/types/enums.js +1 -0
  194. package/dist/esm/plugins/annotation/utils.js +18 -7
  195. package/dist/esm/plugins/avatar-group/index.js +2 -1
  196. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +5 -2
  197. package/dist/esm/plugins/before-primaryToolbar/index.js +15 -0
  198. package/dist/esm/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +12 -0
  199. package/dist/esm/plugins/code-bidi-warning/index.js +5 -2
  200. package/dist/esm/plugins/code-bidi-warning/pm-plugins/main.js +12 -3
  201. package/dist/esm/plugins/code-bidi-warning/pm-plugins/plugin-factory.js +15 -5
  202. package/dist/esm/plugins/code-block/index.js +3 -3
  203. package/dist/esm/plugins/code-block/nodeviews/highlighting-code-block.js +6 -3
  204. package/dist/esm/plugins/code-block/pm-plugins/main.js +11 -3
  205. package/dist/esm/plugins/extension/extension-api.js +9 -2
  206. package/dist/esm/plugins/extension/ui/styles.js +1 -1
  207. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +4 -2
  208. package/dist/esm/plugins/find-replace/FindReplaceToolbarButtonWithState.js +155 -0
  209. package/dist/esm/plugins/find-replace/index.js +14 -131
  210. package/dist/esm/plugins/find-replace/ui/Find.js +17 -10
  211. package/dist/esm/plugins/find-replace/ui/FindReplace.js +10 -3
  212. package/dist/esm/plugins/find-replace/ui/Replace.js +11 -4
  213. package/dist/esm/plugins/find-replace/ui/styles.js +39 -18
  214. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  215. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +9 -4
  216. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +1 -1
  217. package/dist/esm/plugins/fragment/index.js +22 -0
  218. package/dist/esm/plugins/fragment/plugin-key.js +2 -0
  219. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -2
  220. package/dist/esm/plugins/index.js +2 -0
  221. package/dist/esm/plugins/list/actions/conversions.js +38 -71
  222. package/dist/esm/plugins/list/transforms.js +7 -1
  223. package/dist/esm/plugins/media/index.js +2 -3
  224. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +2 -1
  225. package/dist/esm/plugins/media/nodeviews/mediaInline.js +11 -6
  226. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  227. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +7 -5
  228. package/dist/esm/plugins/media/nodeviews/styles.js +2 -0
  229. package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -1
  230. package/dist/esm/plugins/media/pm-plugins/main.js +47 -16
  231. package/dist/esm/plugins/media/toolbar/commands.js +45 -0
  232. package/dist/esm/plugins/media/toolbar/filePreviewItem.js +6 -2
  233. package/dist/esm/plugins/media/toolbar/index.js +88 -3
  234. package/dist/esm/plugins/media/ui/ResizableMediaSingle/index.js +9 -1
  235. package/dist/esm/plugins/media/utils/media-common.js +1 -1
  236. package/dist/esm/plugins/media/utils/media-files.js +6 -1
  237. package/dist/esm/plugins/panel/actions.js +2 -2
  238. package/dist/esm/plugins/panel/index.js +5 -5
  239. package/dist/esm/plugins/panel/nodeviews/panel.js +2 -2
  240. package/dist/esm/plugins/panel/toolbar.js +9 -4
  241. package/dist/esm/plugins/panel/utils.js +13 -0
  242. package/dist/esm/plugins/rank.js +3 -2
  243. package/dist/esm/plugins/selection/pm-plugins/selection-main.js +50 -1
  244. package/dist/esm/plugins/status/ui/statusPicker.js +4 -2
  245. package/dist/esm/plugins/table/commands/insert.js +1 -2
  246. package/dist/esm/plugins/table/index.js +3 -2
  247. package/dist/esm/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -2
  248. package/dist/esm/plugins/table/pm-plugins/main.js +27 -4
  249. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  250. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -0
  251. package/dist/esm/plugins/table/transforms/column-width.js +13 -3
  252. package/dist/esm/plugins/table/transforms/fix-tables.js +42 -4
  253. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +3 -2
  254. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -0
  255. package/dist/esm/plugins/table/ui/common-styles.css.js +1 -1
  256. package/dist/esm/plugins/table/ui/consts.js +2 -2
  257. package/dist/esm/plugins/table/ui/messages.js +1 -1
  258. package/dist/esm/plugins/tasks-and-decisions/nodeviews/decisionItem.js +1 -1
  259. package/dist/esm/plugins/tasks-and-decisions/nodeviews/taskItem.js +1 -1
  260. package/dist/esm/plugins/tasks-and-decisions/pm-plugins/main.js +3 -3
  261. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +2 -1
  262. package/dist/esm/plugins/text-formatting/index.js +3 -2
  263. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +2 -1
  264. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +2 -1
  265. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +67 -27
  266. package/dist/esm/ui/Appearance/FullPage/MainToolbar.js +20 -7
  267. package/dist/esm/ui/ColorPalette/Color/index.js +9 -16
  268. package/dist/esm/ui/ColorPalette/index.js +7 -4
  269. package/dist/esm/ui/ColorPickerButton/index.js +1 -1
  270. package/dist/esm/ui/ConfigPanel/ConfigPanel.js +113 -62
  271. package/dist/esm/ui/ConfigPanel/FormContent.js +39 -26
  272. package/dist/esm/ui/ConfigPanel/transformers.js +488 -248
  273. package/dist/esm/ui/ConfigPanel/utils.js +1 -6
  274. package/dist/esm/ui/Dropdown/index.js +2 -1
  275. package/dist/esm/ui/DropdownMenu/index.js +7 -3
  276. package/dist/esm/ui/ElementBrowser/InsertMenu.js +1 -0
  277. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +1 -0
  278. package/dist/esm/ui/LinkSearch/LinkSearchListItem.js +2 -2
  279. package/dist/esm/ui/Resizer/index.js +9 -1
  280. package/dist/esm/version-wrapper.js +1 -1
  281. package/dist/esm/version.json +1 -1
  282. package/dist/types/labs/next/full-page.d.ts +1 -1
  283. package/dist/types/nodeviews/ReactNodeView.d.ts +1 -1
  284. package/dist/types/nodeviews/SelectionBasedNodeView.d.ts +1 -0
  285. package/dist/types/plugins/analytics/types/enums.d.ts +1 -0
  286. package/dist/types/plugins/analytics/types/events.d.ts +7 -1
  287. package/dist/types/plugins/annotation/utils.d.ts +1 -1
  288. package/dist/types/plugins/avatar-group/index.d.ts +1 -0
  289. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +1 -0
  290. package/dist/types/plugins/before-primaryToolbar/index.d.ts +5 -0
  291. package/dist/types/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.d.ts +5 -0
  292. package/dist/types/plugins/code-bidi-warning/index.d.ts +4 -2
  293. package/dist/types/plugins/code-bidi-warning/pm-plugins/main.d.ts +4 -2
  294. package/dist/types/plugins/code-bidi-warning/pm-plugins/plugin-factory.d.ts +2 -1
  295. package/dist/types/plugins/code-bidi-warning/pm-plugins/types.d.ts +1 -0
  296. package/dist/types/plugins/code-block/index.d.ts +1 -1
  297. package/dist/types/plugins/code-block/nodeviews/highlighting-code-block.d.ts +12 -1
  298. package/dist/types/plugins/code-block/pm-plugins/main.d.ts +3 -1
  299. package/dist/types/plugins/code-block/types.d.ts +2 -0
  300. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -1
  301. package/dist/types/plugins/find-replace/FindReplaceToolbarButtonWithState.d.ts +15 -0
  302. package/dist/types/plugins/find-replace/index.d.ts +1 -0
  303. package/dist/types/plugins/find-replace/ui/Find.d.ts +1 -0
  304. package/dist/types/plugins/find-replace/ui/FindReplace.d.ts +1 -0
  305. package/dist/types/plugins/find-replace/ui/Replace.d.ts +1 -0
  306. package/dist/types/plugins/find-replace/ui/styles.d.ts +5 -14
  307. package/dist/types/plugins/floating-toolbar/ui/EmojiPickerButton.d.ts +1 -1
  308. package/dist/types/plugins/fragment/index.d.ts +5 -0
  309. package/dist/types/plugins/fragment/plugin-key.d.ts +2 -0
  310. package/dist/types/plugins/index.d.ts +2 -0
  311. package/dist/types/plugins/media/nodeviews/mediaInline.d.ts +3 -2
  312. package/dist/types/plugins/media/nodeviews/mediaNodeUpdater.d.ts +2 -2
  313. package/dist/types/plugins/media/nodeviews/mediaSingle.d.ts +1 -1
  314. package/dist/types/plugins/media/nodeviews/styles.d.ts +2 -0
  315. package/dist/types/plugins/media/toolbar/commands.d.ts +3 -0
  316. package/dist/types/plugins/media/toolbar/filePreviewItem.d.ts +2 -0
  317. package/dist/types/plugins/media/types.d.ts +0 -1
  318. package/dist/types/plugins/panel/actions.d.ts +1 -1
  319. package/dist/types/plugins/panel/types.d.ts +8 -2
  320. package/dist/types/plugins/quick-insert/index.d.ts +2 -1
  321. package/dist/types/plugins/table/commands/insert.d.ts +3 -0
  322. package/dist/types/plugins/table/pm-plugins/main.d.ts +2 -1
  323. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/types.d.ts +1 -0
  324. package/dist/types/plugins/table/transforms/column-width.d.ts +4 -1
  325. package/dist/types/plugins/table/transforms/fix-tables.d.ts +3 -2
  326. package/dist/types/plugins/table/types.d.ts +8 -0
  327. package/dist/types/plugins/table/ui/consts.d.ts +1 -1
  328. package/dist/types/types/editor-appearance-component.d.ts +2 -2
  329. package/dist/types/types/editor-props.d.ts +11 -1
  330. package/dist/types/types/feature-flags.d.ts +13 -0
  331. package/dist/types/types/index.d.ts +1 -1
  332. package/dist/types/ui/Appearance/FullPage/FullPageToolbar.d.ts +2 -2
  333. package/dist/types/ui/Appearance/FullPage/MainToolbar.d.ts +10 -1
  334. package/dist/types/ui/ColorPalette/Color/index.d.ts +8 -5
  335. package/dist/types/ui/ColorPalette/index.d.ts +1 -0
  336. package/dist/types/ui/ConfigPanel/transformers.d.ts +7 -1
  337. package/dist/types/ui/ConfigPanel/utils.d.ts +0 -1
  338. package/dist/types/ui/Resizer/index.d.ts +1 -0
  339. package/package.json +14 -10
  340. package/dist/cjs/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.js +0 -38
  341. package/dist/es2019/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.js +0 -28
  342. package/dist/esm/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.js +0 -28
  343. package/dist/types/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.d.ts +0 -1
@@ -11,7 +11,35 @@ export const fireAnalytics = (properties = {}) => sendLogs({
11
11
  server: 'local',
12
12
  user: '-'
13
13
  }]
14
- }); // We attempt to patch the document when we have extra, unneeded, column widths
14
+ });
15
+
16
+ const validateTableCellNodeAttrs = ({
17
+ colspan,
18
+ rowspan,
19
+ tableLocalId
20
+ }, reportInvalidTableCellSpanAttrs) => {
21
+ if (colspan && colspan < 0) {
22
+ reportInvalidTableCellSpanAttrs({
23
+ nodeType: 'tableCell',
24
+ attribute: 'colspan',
25
+ reason: 'negative value',
26
+ tableLocalId,
27
+ spanValue: colspan
28
+ });
29
+ }
30
+
31
+ if (rowspan && rowspan < 0) {
32
+ reportInvalidTableCellSpanAttrs({
33
+ nodeType: 'tableCell',
34
+ attribute: 'rowspan',
35
+ reason: 'negative value',
36
+ tableLocalId,
37
+ spanValue: rowspan
38
+ });
39
+ }
40
+
41
+ return;
42
+ }; // We attempt to patch the document when we have extra, unneeded, column widths
15
43
  // Take this node for example:
16
44
  //
17
45
  // ['td', { colwidth: [100, 100, 100], colspan: 2 }]
@@ -19,14 +47,24 @@ export const fireAnalytics = (properties = {}) => sendLogs({
19
47
  // This row only spans two columns, yet it contains widths for 3.
20
48
  // We remove the third width here, assumed duplicate content.
21
49
 
22
- export const removeExtraneousColumnWidths = (node, basePos, tr) => {
50
+
51
+ export const removeExtraneousColumnWidths = (node, basePos, tr, reportInvalidTableCellSpanAttrs) => {
23
52
  let hasProblems = false;
24
53
  tr = replaceCells(tr, node, basePos, cell => {
25
54
  const {
26
55
  colwidth,
27
- colspan
56
+ colspan,
57
+ rowspan
28
58
  } = cell.attrs;
29
59
 
60
+ if (reportInvalidTableCellSpanAttrs) {
61
+ validateTableCellNodeAttrs({
62
+ colspan,
63
+ rowspan,
64
+ tableLocalId: node.attrs.localId
65
+ }, reportInvalidTableCellSpanAttrs);
66
+ }
67
+
30
68
  if (colwidth && colwidth.length > colspan) {
31
69
  hasProblems = true;
32
70
  return cell.type.createChecked({ ...cell.attrs,
@@ -46,12 +84,12 @@ export const removeExtraneousColumnWidths = (node, basePos, tr) => {
46
84
 
47
85
  return false;
48
86
  };
49
- export const fixTables = tr => {
87
+ export const fixTables = (tr, reportInvalidTableCellSpanAttrs) => {
50
88
  let hasProblems = false;
51
89
  tr.doc.descendants((node, pos) => {
52
90
  if (node.type.name === 'table') {
53
91
  // in the unlikely event of having to fix multiple tables at the same time
54
- hasProblems = removeExtraneousColumnWidths(node, tr.mapping.map(pos), tr);
92
+ hasProblems = removeExtraneousColumnWidths(node, tr.mapping.map(pos), tr, reportInvalidTableCellSpanAttrs);
55
93
  }
56
94
  });
57
95
 
@@ -90,8 +90,9 @@ export class FloatingContextualButtonInner extends React.Component {
90
90
  title: labelCellOptions,
91
91
  onClick: this.handleClick,
92
92
  iconBefore: /*#__PURE__*/React.createElement(ExpandIcon, {
93
- label: labelCellOptions
94
- })
93
+ label: ""
94
+ }),
95
+ "aria-label": labelCellOptions
95
96
  }));
96
97
  const parentSticky = targetCellRef.parentElement && targetCellRef.parentElement.className.indexOf('sticky') > -1;
97
98
 
@@ -443,6 +443,7 @@ class ContextualMenu extends Component {
443
443
  }
444
444
 
445
445
  return /*#__PURE__*/React.createElement("div", {
446
+ "data-testid": "table-cell-contextual-menu",
446
447
  onMouseLeave: this.closeSubmenu
447
448
  }, /*#__PURE__*/React.createElement(DropdownMenu, {
448
449
  mountTo: mountPoint,
@@ -18,7 +18,11 @@ const sentinelStyles = `.${ClassName.TABLE_CONTAINER} {
18
18
  > .${ClassName.TABLE_STICKY_SENTINEL_TOP}, > .${ClassName.TABLE_STICKY_SENTINEL_BOTTOM} {
19
19
  position: absolute;
20
20
  width: 100%;
21
- height: 0px;
21
+ height: 1px;
22
+ margin-top: -1px;
23
+ // need this to avoid sentinel being focused via keyboard
24
+ // this still allows it to be detected by intersection observer
25
+ visibility: hidden;
22
26
  }
23
27
  > .${ClassName.TABLE_STICKY_SENTINEL_TOP} {
24
28
  top: ${columnControlsDecorationHeight}px;
@@ -1,4 +1,4 @@
1
- import { B100, B300, B75, N0, N20, R50, R300, R75, DN400, N200, DN30 } from '@atlaskit/theme/colors';
1
+ import { B100, B300, B75, N0, N20, R50, R400, R75, DN400, N200, DN30 } from '@atlaskit/theme/colors';
2
2
  import { tableCellBorderWidth, tableMarginTop } from '@atlaskit/editor-common';
3
3
  import { akEditorTableBorder, akEditorTableBorderDark, akEditorTableToolbar, akEditorTableToolbarDark, akEditorTableToolbarSize, akEditorUnitZIndex, akRichMediaResizeZIndex } from '@atlaskit/editor-shared-styles';
4
4
  import { RESIZE_HANDLE_AREA_DECORATION_GAP } from '../types';
@@ -28,7 +28,7 @@ export const tableCellSelectedColor = B75;
28
28
  export const tableToolbarSelectedColor = B100;
29
29
  export const tableBorderSelectedColor = B300;
30
30
  export const tableCellDeleteColor = R50;
31
- export const tableBorderDeleteColor = R300;
31
+ export const tableBorderDeleteColor = R400;
32
32
  export const tableToolbarDeleteColor = R75;
33
33
  export const tableBorderRadiusSize = 3;
34
34
  export const tablePadding = 8;
@@ -32,7 +32,7 @@ export default defineMessages({
32
32
  },
33
33
  confirmDeleteLinkedModalMessage: {
34
34
  id: 'fabric.editor.tables.confirmDeleteLinkedModalMessage',
35
- defaultMessage: 'Removing this table will also remove all of the data contained in any connected charts.',
35
+ defaultMessage: 'Removing this table will break all the charts connected to it.',
36
36
  description: 'Message for confirm modal when deleting a table linked to an extension.'
37
37
  }
38
38
  });
@@ -41,7 +41,7 @@ class Decision extends ReactNodeView {
41
41
  }
42
42
 
43
43
  update(node, decorations) {
44
- return super.update(node, decorations, // Toggle the placeholder based on whether user input exists.
44
+ return super.update(node, decorations, undefined, // Toggle the placeholder based on whether user input exists.
45
45
  (_currentNode, _newNode) => !this.isContentEmpty(_newNode));
46
46
  }
47
47
 
@@ -110,7 +110,7 @@ class Task extends ReactNodeView {
110
110
  }
111
111
 
112
112
  update(node, decorations) {
113
- return super.update(node, decorations, (currentNode, newNode) => // Toggle the placeholder based on whether user input exists
113
+ return super.update(node, decorations, undefined, (currentNode, newNode) => // Toggle the placeholder based on whether user input exists
114
114
  !this.isContentEmpty(newNode) && !!(currentNode.attrs.state === newNode.attrs.state));
115
115
  }
116
116
 
@@ -1,6 +1,6 @@
1
1
  import { NodeSelection, Plugin } from 'prosemirror-state';
2
2
  import { uuid } from '@atlaskit/adf-schema';
3
- import { nodesBetweenChanged } from '../../../utils';
3
+ import { nodesBetweenChanged, SetAttrsStep } from '../../../utils';
4
4
  import { createSelectionClickHandler } from '../../selection/utils';
5
5
  import { decisionItemNodeView } from '../nodeviews/decisionItem';
6
6
  import { taskItemNodeViewFactory } from '../nodeviews/taskItem';
@@ -145,10 +145,10 @@ export function createPlugin(portalProviderAPI, eventDispatcher, providerFactory
145
145
  } = node.attrs;
146
146
 
147
147
  if (localId === undefined || localId === null || localId === '') {
148
- tr.setNodeMarkup(pos, undefined, {
148
+ tr.step(new SetAttrsStep(pos, {
149
149
  localId: uuid.generate(),
150
150
  ...rest
151
- });
151
+ }));
152
152
  modified = true;
153
153
  }
154
154
  }
@@ -206,7 +206,8 @@ class ToolbarTextColor extends React.Component {
206
206
  }, /*#__PURE__*/React.createElement(ColorPalette, {
207
207
  palette: palette,
208
208
  onClick: color => this.changeTextColor(color, pluginState.disabled),
209
- selectedColor: pluginState.color
209
+ selectedColor: pluginState.color,
210
+ isShowingMoreColors: isShowingMoreColors
210
211
  })), showMoreColorsToggle && /*#__PURE__*/React.createElement(ShowMoreWrapper, null, /*#__PURE__*/React.createElement(Button, {
211
212
  appearance: "subtle",
212
213
  onClick: this.handleShowMoreToggle,
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { code, em, strike, strong, subsup, underline } from '@atlaskit/adf-schema';
3
3
  import WithPluginState from '../../ui/WithPluginState';
4
4
  import { plugin as textFormattingPlugin, pluginKey as textFormattingPluginKey } from './pm-plugins/main';
5
- import { plugin as clearFormattingPlugin } from './pm-plugins/clear-formatting';
5
+ import { plugin as clearFormattingPlugin, pluginKey as clearFormattingPluginKey } from './pm-plugins/clear-formatting';
6
6
  import clearFormattingKeymapPlugin from './pm-plugins/clear-formatting-keymap';
7
7
  import textFormattingCursorPlugin from './pm-plugins/cursor';
8
8
  import textFormattingInputRulePlugin from './pm-plugins/input-rule';
@@ -81,7 +81,8 @@ const textFormatting = (options = {}) => ({
81
81
  }) {
82
82
  return /*#__PURE__*/React.createElement(WithPluginState, {
83
83
  plugins: {
84
- textFormattingState: textFormattingPluginKey
84
+ textFormattingState: textFormattingPluginKey,
85
+ clearFormattingPluginState: clearFormattingPluginKey
85
86
  },
86
87
  render: () => {
87
88
  return /*#__PURE__*/React.createElement(Toolbar, {
@@ -1,5 +1,6 @@
1
1
  import React, { useMemo, useEffect, useRef, useCallback, useLayoutEffect } from 'react';
2
- import { text as colorsText, N200, N20, DN70, N800, DN600, DN300 } from '@atlaskit/theme/colors';
2
+ import { text as colorsText, N200, N20, DN70, N800, DN600, DN300 } from '@atlaskit/theme/colors'; // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
3
+
3
4
  import { ItemGroup, itemThemeNamespace } from '@atlaskit/item';
4
5
  import { themed } from '@atlaskit/theme/components';
5
6
  import { ThemeProvider } from 'styled-components';
@@ -1,6 +1,7 @@
1
1
  import React, { useCallback, useMemo, useRef, useLayoutEffect } from 'react';
2
2
  import { N200 } from '@atlaskit/theme/colors';
3
- import { borderRadius } from '@atlaskit/theme/constants';
3
+ import { borderRadius } from '@atlaskit/theme/constants'; // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
4
+
4
5
  import Item from '@atlaskit/item';
5
6
  import { relativeFontSizeToBase16 } from '@atlaskit/editor-shared-styles';
6
7
  import styled from 'styled-components';
@@ -1,39 +1,72 @@
1
- import React from 'react';
1
+ import React, { useState, useEffect } from 'react';
2
2
  import AvatarsWithPluginState from '../../../plugins/collab-edit/ui';
3
+ import FindReplaceToolbarButtonWithState from '../../../plugins/find-replace/FindReplaceToolbarButtonWithState';
4
+ import { BeforePrimaryToolbarWrapper } from '../../../plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper';
3
5
  import Toolbar from '../../Toolbar';
4
- import { MainToolbar, MainToolbarIconBefore, MainToolbarCustomComponentsSlot } from './MainToolbar';
6
+ import { MainToolbar, MainToolbarIconBefore, MainToolbarFirstChild, MainToolbarSecondChild, NonCustomToolbarWrapper, CustomToolbarWrapper, MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT } from './MainToolbar';
5
7
  import { ContextPanelConsumer } from '../../ContextPanel/context';
6
8
  export const FullPageToolbar = /*#__PURE__*/React.memo(props => {
9
+ var _props$featureFlags, _props$featureFlags2, _props$featureFlags3, _props$collabEdit, _props$collabEdit2, _props$collabEdit3, _props$featureFlags4, _props$featureFlags5;
10
+
11
+ const [shouldSplitToolbar, setShouldSplitToolbar] = useState(false);
12
+ const nonCustomToolbar = /*#__PURE__*/React.createElement(NonCustomToolbarWrapper, null, props.beforeIcon && /*#__PURE__*/React.createElement(MainToolbarIconBefore, null, props.beforeIcon), /*#__PURE__*/React.createElement(Toolbar, {
13
+ editorView: props.editorView,
14
+ editorActions: props.editorActions,
15
+ eventDispatcher: props.eventDispatcher,
16
+ providerFactory: props.providerFactory,
17
+ appearance: props.appearance,
18
+ items: props.primaryToolbarComponents,
19
+ popupsMountPoint: props.popupsMountPoint,
20
+ popupsBoundariesElement: props.popupsBoundariesElement,
21
+ popupsScrollableElement: props.popupsScrollableElement,
22
+ disabled: props.disabled,
23
+ dispatchAnalyticsEvent: props.dispatchAnalyticsEvent,
24
+ containerElement: props.containerElement,
25
+ hasMinWidth: props.hasMinWidth
26
+ }));
27
+ const customToolbar = /*#__PURE__*/React.createElement(CustomToolbarWrapper, null, (_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.twoLineEditorToolbar && !!props.customPrimaryToolbarComponents && 'before' in props.customPrimaryToolbarComponents ? /*#__PURE__*/React.createElement(BeforePrimaryToolbarWrapper, {
28
+ beforePrimaryToolbarComponents: props.customPrimaryToolbarComponents.before
29
+ }) : null, (props === null || props === void 0 ? void 0 : (_props$featureFlags2 = props.featureFlags) === null || _props$featureFlags2 === void 0 ? void 0 : _props$featureFlags2.showAvatarGroupAsPlugin) === true && !((_props$featureFlags3 = props.featureFlags) !== null && _props$featureFlags3 !== void 0 && _props$featureFlags3.twoLineEditorToolbar) ? null : /*#__PURE__*/React.createElement(AvatarsWithPluginState, {
30
+ editorView: props.editorView,
31
+ eventDispatcher: props.eventDispatcher,
32
+ inviteToEditComponent: (_props$collabEdit = props.collabEdit) === null || _props$collabEdit === void 0 ? void 0 : _props$collabEdit.inviteToEditComponent,
33
+ inviteToEditHandler: (_props$collabEdit2 = props.collabEdit) === null || _props$collabEdit2 === void 0 ? void 0 : _props$collabEdit2.inviteToEditHandler,
34
+ isInviteToEditButtonSelected: (_props$collabEdit3 = props.collabEdit) === null || _props$collabEdit3 === void 0 ? void 0 : _props$collabEdit3.isInviteToEditButtonSelected
35
+ }), (_props$featureFlags4 = props.featureFlags) !== null && _props$featureFlags4 !== void 0 && _props$featureFlags4.findReplace && (_props$featureFlags5 = props.featureFlags) !== null && _props$featureFlags5 !== void 0 && _props$featureFlags5.twoLineEditorToolbar ? /*#__PURE__*/React.createElement(FindReplaceToolbarButtonWithState, {
36
+ popupsBoundariesElement: props.popupsBoundariesElement,
37
+ popupsMountPoint: props.popupsMountPoint,
38
+ popupsScrollableElement: props.popupsScrollableElement,
39
+ editorView: props.editorView,
40
+ containerElement: props.containerElement,
41
+ dispatchAnalyticsEvent: props.dispatchAnalyticsEvent
42
+ }) : null, !!props.customPrimaryToolbarComponents && 'after' in props.customPrimaryToolbarComponents ? props.customPrimaryToolbarComponents.after : props.customPrimaryToolbarComponents);
43
+ useEffect(() => {
44
+ var _props$featureFlags6;
45
+
46
+ if ((_props$featureFlags6 = props.featureFlags) !== null && _props$featureFlags6 !== void 0 && _props$featureFlags6.twoLineEditorToolbar) {
47
+ const updateOnResize = () => {
48
+ setShouldSplitToolbar(window.innerWidth <= MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT);
49
+ };
50
+
51
+ window.addEventListener('resize', updateOnResize);
52
+ updateOnResize();
53
+ return () => window.removeEventListener('resize', updateOnResize);
54
+ }
55
+ });
7
56
  return /*#__PURE__*/React.createElement(ContextPanelConsumer, null, ({
8
57
  width: contextPanelWidth
9
58
  }) => {
10
- var _props$featureFlags;
59
+ var _props$featureFlags7, _props$featureFlags8, _props$featureFlags9;
11
60
 
12
61
  return /*#__PURE__*/React.createElement(MainToolbar, {
13
62
  "data-testid": "ak-editor-main-toolbar",
14
- showKeyline: props.showKeyline || contextPanelWidth > 0
15
- }, props.beforeIcon && /*#__PURE__*/React.createElement(MainToolbarIconBefore, null, props.beforeIcon), /*#__PURE__*/React.createElement(Toolbar, {
16
- editorView: props.editorView,
17
- editorActions: props.editorActions,
18
- eventDispatcher: props.eventDispatcher,
19
- providerFactory: props.providerFactory,
20
- appearance: props.appearance,
21
- items: props.primaryToolbarComponents,
22
- popupsMountPoint: props.popupsMountPoint,
23
- popupsBoundariesElement: props.popupsBoundariesElement,
24
- popupsScrollableElement: props.popupsScrollableElement,
25
- disabled: props.disabled,
26
- dispatchAnalyticsEvent: props.dispatchAnalyticsEvent,
27
- containerElement: props.containerElement,
28
- hasMinWidth: props.hasMinWidth
29
- }), /*#__PURE__*/React.createElement(MainToolbarCustomComponentsSlot, {
30
- "data-testid": 'avatar-group-outside-plugin'
31
- }, (props === null || props === void 0 ? void 0 : (_props$featureFlags = props.featureFlags) === null || _props$featureFlags === void 0 ? void 0 : _props$featureFlags.showAvatarGroupAsPlugin) === true ? null : /*#__PURE__*/React.createElement(AvatarsWithPluginState, {
32
- editorView: props.editorView,
33
- eventDispatcher: props.eventDispatcher,
34
- inviteToEditComponent: props.collabEdit && props.collabEdit.inviteToEditComponent,
35
- inviteToEditHandler: props.collabEdit && props.collabEdit.inviteToEditHandler,
36
- isInviteToEditButtonSelected: props.collabEdit && props.collabEdit.isInviteToEditButtonSelected
37
- }), props.customPrimaryToolbarComponents));
63
+ showKeyline: props.showKeyline || contextPanelWidth > 0,
64
+ twoLineEditorToolbar: !!((_props$featureFlags7 = props.featureFlags) !== null && _props$featureFlags7 !== void 0 && _props$featureFlags7.twoLineEditorToolbar)
65
+ }, /*#__PURE__*/React.createElement(MainToolbarFirstChild, {
66
+ twoLineEditorToolbar: !!((_props$featureFlags8 = props.featureFlags) !== null && _props$featureFlags8 !== void 0 && _props$featureFlags8.twoLineEditorToolbar)
67
+ }, shouldSplitToolbar ? customToolbar : nonCustomToolbar), /*#__PURE__*/React.createElement(MainToolbarSecondChild, {
68
+ "data-testid": 'avatar-group-outside-plugin',
69
+ twoLineEditorToolbar: !!((_props$featureFlags9 = props.featureFlags) !== null && _props$featureFlags9 !== void 0 && _props$featureFlags9.twoLineEditorToolbar)
70
+ }, shouldSplitToolbar ? nonCustomToolbar : customToolbar));
38
71
  });
39
72
  });
@@ -2,6 +2,7 @@ import styled from 'styled-components';
2
2
  import { N30 } from '@atlaskit/theme/colors';
3
3
  import { gridSize } from '@atlaskit/theme/constants';
4
4
  import { akEditorMenuZIndex, akEditorSwoopCubicBezier, akEditorToolbarKeylineHeight, akEditorMobileMaxWidth } from '@atlaskit/editor-shared-styles';
5
+ export const MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT = 868;
5
6
  const toolbarLineHeight = 56;
6
7
  export const MainToolbar = styled.div`
7
8
  position: relative;
@@ -18,6 +19,13 @@ export const MainToolbar = styled.div`
18
19
  height: 0 !important;
19
20
  }
20
21
 
22
+ @media (max-width: ${MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT}px) {
23
+ ${props => props.twoLineEditorToolbar && `
24
+ flex-wrap: wrap;
25
+ height: calc(${toolbarLineHeight}px * 2);
26
+ `}
27
+ }
28
+
21
29
  @media (max-width: ${akEditorMobileMaxWidth}px) {
22
30
  display: grid;
23
31
  height: calc(${toolbarLineHeight}px * 2);
@@ -34,21 +42,46 @@ export const MainToolbarIconBefore = styled.div`
34
42
  }
35
43
  `;
36
44
  MainToolbarIconBefore.displayName = 'MainToolbarIconBefore';
37
- export const MainToolbarCustomComponentsSlot = styled.div`
45
+ export const MainToolbarFirstChild = styled.div`
38
46
  display: flex;
39
- justify-content: flex-end;
40
47
  flex-grow: 1;
48
+
49
+ @media (max-width: ${MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT}px) {
50
+ ${props => props.twoLineEditorToolbar && `
51
+ flex: 1 1 100%;
52
+ height: ${toolbarLineHeight}px;
53
+ justify-content: flex-end;
54
+ // ED-10241: We add fit-content to ensure that MainToolbar does not
55
+ // shrink more than the size of its contents. This will prevent the
56
+ // find/replace icon from being overlapped during a confluence
57
+ // publish operation
58
+ min-width: fit-content;
59
+ `}
60
+ }
61
+ @media (max-width: ${akEditorMobileMaxWidth}px) {
62
+ grid-column: 1;
63
+ grid-row: 1;
64
+ }
65
+ `;
66
+ MainToolbarFirstChild.displayName = 'MainToolbarFirstChild';
67
+ export const MainToolbarSecondChild = styled.div`
41
68
  // ED-10241: We add fit-content to ensure that MainToolbar does not
42
69
  // shrink more than the size of its contents. This will prevent the
43
70
  // find/replace icon from being overlapped during a confluence
44
71
  // publish operation
45
72
  min-width: fit-content;
46
- @media (max-width: ${akEditorMobileMaxWidth}px) {
47
- grid-column: 1;
48
- grid-row: 1;
73
+ @media (max-width: ${MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT}px) {
74
+ ${props => props.twoLineEditorToolbar && `
75
+ display: flex;
76
+ flex-grow: 1;
77
+ flex: 1 1 100%;
78
+ margin: auto;
79
+ height: ${toolbarLineHeight}px;
80
+ min-width: 0;
81
+ `}
49
82
  }
50
83
  `;
51
- MainToolbarCustomComponentsSlot.displayName = 'MainToolbar';
84
+ MainToolbarSecondChild.displayName = 'MainToolbarSecondChild';
52
85
  export const SecondaryToolbar = styled.div`
53
86
  box-sizing: border-box;
54
87
  justify-content: flex-end;
@@ -57,4 +90,15 @@ export const SecondaryToolbar = styled.div`
57
90
  display: flex;
58
91
  padding: 24px 0;
59
92
  `;
60
- SecondaryToolbar.displayName = 'SecondaryToolbar';
93
+ SecondaryToolbar.displayName = 'SecondaryToolbar';
94
+ export const NonCustomToolbarWrapper = styled.div`
95
+ align-items: center;
96
+ display: flex;
97
+ flex-grow: 1;
98
+ `;
99
+ NonCustomToolbarWrapper.displayName = 'NonCustomToolbar';
100
+ export const CustomToolbarWrapper = styled.div`
101
+ align-items: center;
102
+ display: flex;
103
+ `;
104
+ CustomToolbarWrapper.displayName = 'CustomToolbar';
@@ -1,19 +1,10 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import React from 'react';
3
3
  import { PureComponent } from 'react';
4
- import { defineMessages, injectIntl } from 'react-intl';
5
4
  import EditorDoneIcon from '@atlaskit/icon/glyph/editor/done';
6
5
  import { N0 } from '@atlaskit/theme/colors';
7
6
  import { Button, ButtonWrapper } from './styles';
8
- import Tooltip from '@atlaskit/tooltip'; // IMO these should live inside @atlaskit/theme
9
-
10
- const messages = defineMessages({
11
- selected: {
12
- id: 'fabric.editor.selected',
13
- defaultMessage: 'Selected',
14
- description: 'If the item is selected or not.'
15
- }
16
- });
7
+ import Tooltip from '@atlaskit/tooltip';
17
8
 
18
9
  class Color extends PureComponent {
19
10
  constructor(...args) {
@@ -36,21 +27,20 @@ class Color extends PureComponent {
36
27
 
37
28
  render() {
38
29
  const {
30
+ autoFocus,
39
31
  tabIndex,
40
32
  value,
41
33
  label,
42
34
  isSelected,
43
35
  borderColor,
44
- checkMarkColor = N0,
45
- intl: {
46
- formatMessage
47
- }
36
+ checkMarkColor = N0
48
37
  } = this.props;
49
- const ariaLabelText = isSelected ? `${label} ${formatMessage(messages.selected)}` : label;
50
38
  return /*#__PURE__*/React.createElement(Tooltip, {
51
39
  content: label
52
40
  }, /*#__PURE__*/React.createElement(ButtonWrapper, null, /*#__PURE__*/React.createElement(Button, {
53
- "aria-label": ariaLabelText,
41
+ "aria-label": label,
42
+ role: "radio",
43
+ "aria-checked": isSelected,
54
44
  onClick: this.onClick,
55
45
  onMouseDown: this.onMouseDown,
56
46
  tabIndex: tabIndex,
@@ -58,7 +48,8 @@ class Color extends PureComponent {
58
48
  style: {
59
49
  backgroundColor: value || 'transparent',
60
50
  border: `1px solid ${borderColor}`
61
- }
51
+ },
52
+ autoFocus: autoFocus
62
53
  }, isSelected && /*#__PURE__*/React.createElement(EditorDoneIcon, {
63
54
  primaryColor: checkMarkColor,
64
55
  label: ""
@@ -67,4 +58,4 @@ class Color extends PureComponent {
67
58
 
68
59
  }
69
60
 
70
- export default injectIntl(Color);
61
+ export default Color;
@@ -23,6 +23,7 @@ const ColorPalette = props => {
23
23
  onClick,
24
24
  selectedColor,
25
25
  className,
26
+ isShowingMoreColors,
26
27
  intl: {
27
28
  formatMessage
28
29
  }
@@ -36,22 +37,24 @@ const ColorPalette = props => {
36
37
  return resultArray;
37
38
  }, []);
38
39
  }, [palette, cols]);
39
- return /*#__PURE__*/React.createElement(React.Fragment, null, colorsPerRow.map(row => /*#__PURE__*/React.createElement(ColorPaletteWrapper, {
40
+ return /*#__PURE__*/React.createElement(React.Fragment, null, colorsPerRow.map((row, rowIdx) => /*#__PURE__*/React.createElement(ColorPaletteWrapper, {
40
41
  className: className,
41
- key: `row-first-color-${row[0].value}`
42
+ key: `row-first-color-${row[0].value}`,
43
+ role: "radiogroup"
42
44
  }, row.map(({
43
45
  value,
44
46
  label,
45
47
  border,
46
48
  message
47
- }) => /*#__PURE__*/React.createElement(Color, {
49
+ }, colorIdx) => /*#__PURE__*/React.createElement(Color, {
48
50
  key: value,
49
51
  value: value,
50
52
  borderColor: border,
51
53
  label: message ? formatMessage(message) : label,
52
54
  onClick: onClick,
53
55
  isSelected: value === selectedColor,
54
- checkMarkColor: getContrastColor(value, [N0, N500])
56
+ checkMarkColor: getContrastColor(value, [N0, N500]),
57
+ autoFocus: isShowingMoreColors && rowIdx === 1 && colorIdx === 0
55
58
  })))));
56
59
  };
57
60
 
@@ -19,7 +19,7 @@ const ColorPickerWrapper = styled.div`
19
19
  border-radius: ${borderRadius()}px;
20
20
  background-color: white;
21
21
  box-shadow: 0 4px 8px -2px ${N60A}, 0 0 1px ${N60A};
22
- padding: 4px;
22
+ padding: 8px 0px;
23
23
  `;
24
24
 
25
25
  const ColorPickerButton = props => {