@atlaskit/editor-core 151.3.0 → 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 (297) hide show
  1. package/dist/cjs/create-editor/ReactEditorView.js +22 -8
  2. package/dist/cjs/create-editor/create-plugins-list.js +25 -9
  3. package/dist/cjs/labs/next/presets/cxhtml.js +1 -2
  4. package/dist/cjs/nodeviews/ReactNodeView.js +2 -2
  5. package/dist/cjs/nodeviews/SelectionBasedNodeView.js +6 -0
  6. package/dist/cjs/plugins/analytics/types/enums.js +1 -0
  7. package/dist/cjs/plugins/annotation/utils.js +19 -8
  8. package/dist/cjs/plugins/avatar-group/index.js +2 -1
  9. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +5 -2
  10. package/dist/cjs/plugins/before-primaryToolbar/index.js +26 -0
  11. package/dist/cjs/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +28 -0
  12. package/dist/cjs/plugins/extension/extension-api.js +10 -2
  13. package/dist/cjs/plugins/extension/ui/styles.js +1 -1
  14. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +4 -2
  15. package/dist/cjs/plugins/find-replace/FindReplaceToolbarButtonWithState.js +172 -0
  16. package/dist/cjs/plugins/find-replace/index.js +14 -137
  17. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +10 -4
  18. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +1 -1
  19. package/dist/cjs/plugins/fragment/index.js +34 -0
  20. package/dist/cjs/plugins/fragment/plugin-key.js +11 -0
  21. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  22. package/dist/cjs/plugins/index.js +16 -0
  23. package/dist/cjs/plugins/list/actions/conversions.js +39 -71
  24. package/dist/cjs/plugins/list/transforms.js +7 -1
  25. package/dist/cjs/plugins/media/index.js +2 -3
  26. package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +3 -1
  27. package/dist/cjs/plugins/media/nodeviews/mediaInline.js +12 -5
  28. package/dist/cjs/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  29. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +6 -4
  30. package/dist/cjs/plugins/media/nodeviews/styles.js +6 -1
  31. package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -1
  32. package/dist/cjs/plugins/media/pm-plugins/main.js +49 -15
  33. package/dist/cjs/plugins/media/toolbar/commands.js +59 -0
  34. package/dist/cjs/plugins/media/toolbar/filePreviewItem.js +7 -2
  35. package/dist/cjs/plugins/media/toolbar/index.js +90 -3
  36. package/dist/cjs/plugins/media/ui/ResizableMediaSingle/index.js +9 -1
  37. package/dist/cjs/plugins/media/utils/media-common.js +1 -1
  38. package/dist/cjs/plugins/media/utils/media-files.js +5 -1
  39. package/dist/cjs/plugins/panel/actions.js +2 -2
  40. package/dist/cjs/plugins/panel/index.js +3 -3
  41. package/dist/cjs/plugins/panel/nodeviews/panel.js +2 -2
  42. package/dist/cjs/plugins/panel/toolbar.js +10 -5
  43. package/dist/cjs/plugins/panel/utils.js +15 -0
  44. package/dist/cjs/plugins/rank.js +3 -2
  45. package/dist/cjs/plugins/selection/pm-plugins/selection-main.js +49 -1
  46. package/dist/cjs/plugins/status/ui/statusPicker.js +4 -2
  47. package/dist/cjs/plugins/table/commands/insert.js +1 -0
  48. package/dist/cjs/plugins/table/index.js +3 -2
  49. package/dist/cjs/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -3
  50. package/dist/cjs/plugins/table/pm-plugins/main.js +26 -3
  51. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  52. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -0
  53. package/dist/cjs/plugins/table/transforms/column-width.js +14 -5
  54. package/dist/cjs/plugins/table/transforms/fix-tables.js +43 -6
  55. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +3 -2
  56. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -0
  57. package/dist/cjs/plugins/table/ui/common-styles.css.js +1 -1
  58. package/dist/cjs/plugins/table/ui/consts.js +1 -1
  59. package/dist/cjs/plugins/table/ui/messages.js +1 -1
  60. package/dist/cjs/plugins/tasks-and-decisions/nodeviews/decisionItem.js +1 -1
  61. package/dist/cjs/plugins/tasks-and-decisions/nodeviews/taskItem.js +1 -1
  62. package/dist/cjs/plugins/tasks-and-decisions/pm-plugins/main.js +2 -2
  63. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +2 -1
  64. package/dist/cjs/plugins/text-formatting/index.js +2 -1
  65. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +1 -0
  66. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +77 -26
  67. package/dist/cjs/ui/Appearance/FullPage/MainToolbar.js +32 -9
  68. package/dist/cjs/ui/ColorPalette/Color/index.js +8 -18
  69. package/dist/cjs/ui/ColorPalette/index.js +7 -4
  70. package/dist/cjs/ui/ColorPickerButton/index.js +1 -1
  71. package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +114 -61
  72. package/dist/cjs/ui/ConfigPanel/FormContent.js +39 -26
  73. package/dist/cjs/ui/ConfigPanel/transformers.js +490 -248
  74. package/dist/cjs/ui/ConfigPanel/utils.js +2 -10
  75. package/dist/cjs/ui/DropdownMenu/index.js +3 -1
  76. package/dist/cjs/ui/LinkSearch/LinkSearchListItem.js +1 -1
  77. package/dist/cjs/ui/Resizer/index.js +9 -1
  78. package/dist/cjs/version-wrapper.js +1 -1
  79. package/dist/cjs/version.json +1 -1
  80. package/dist/es2019/create-editor/ReactEditorView.js +19 -8
  81. package/dist/es2019/create-editor/create-plugins-list.js +26 -10
  82. package/dist/es2019/labs/next/presets/cxhtml.js +1 -2
  83. package/dist/es2019/nodeviews/ReactNodeView.js +1 -1
  84. package/dist/es2019/nodeviews/SelectionBasedNodeView.js +11 -0
  85. package/dist/es2019/plugins/analytics/types/enums.js +1 -0
  86. package/dist/es2019/plugins/annotation/utils.js +18 -7
  87. package/dist/es2019/plugins/avatar-group/index.js +2 -1
  88. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +3 -2
  89. package/dist/es2019/plugins/before-primaryToolbar/index.js +15 -0
  90. package/dist/es2019/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +12 -0
  91. package/dist/es2019/plugins/extension/extension-api.js +9 -2
  92. package/dist/es2019/plugins/extension/ui/styles.js +6 -0
  93. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +4 -2
  94. package/dist/es2019/plugins/find-replace/FindReplaceToolbarButtonWithState.js +152 -0
  95. package/dist/es2019/plugins/find-replace/index.js +15 -128
  96. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  97. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +10 -2
  98. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +1 -1
  99. package/dist/es2019/plugins/fragment/index.js +22 -0
  100. package/dist/es2019/plugins/fragment/plugin-key.js +2 -0
  101. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -2
  102. package/dist/es2019/plugins/index.js +2 -0
  103. package/dist/es2019/plugins/list/actions/conversions.js +38 -69
  104. package/dist/es2019/plugins/list/transforms.js +5 -1
  105. package/dist/es2019/plugins/media/index.js +2 -2
  106. package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +2 -1
  107. package/dist/es2019/plugins/media/nodeviews/mediaInline.js +8 -4
  108. package/dist/es2019/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  109. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +7 -5
  110. package/dist/es2019/plugins/media/nodeviews/styles.js +2 -0
  111. package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -1
  112. package/dist/es2019/plugins/media/pm-plugins/main.js +32 -17
  113. package/dist/es2019/plugins/media/toolbar/commands.js +47 -0
  114. package/dist/es2019/plugins/media/toolbar/filePreviewItem.js +6 -2
  115. package/dist/es2019/plugins/media/toolbar/index.js +90 -3
  116. package/dist/es2019/plugins/media/ui/ResizableMediaSingle/index.js +7 -1
  117. package/dist/es2019/plugins/media/utils/media-common.js +1 -1
  118. package/dist/es2019/plugins/media/utils/media-files.js +6 -1
  119. package/dist/es2019/plugins/panel/actions.js +2 -2
  120. package/dist/es2019/plugins/panel/index.js +5 -5
  121. package/dist/es2019/plugins/panel/nodeviews/panel.js +2 -2
  122. package/dist/es2019/plugins/panel/toolbar.js +10 -5
  123. package/dist/es2019/plugins/panel/utils.js +8 -1
  124. package/dist/es2019/plugins/rank.js +3 -2
  125. package/dist/es2019/plugins/selection/pm-plugins/selection-main.js +48 -1
  126. package/dist/es2019/plugins/status/ui/statusPicker.js +4 -2
  127. package/dist/es2019/plugins/table/commands/insert.js +1 -2
  128. package/dist/es2019/plugins/table/index.js +2 -1
  129. package/dist/es2019/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -2
  130. package/dist/es2019/plugins/table/pm-plugins/main.js +25 -4
  131. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  132. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -0
  133. package/dist/es2019/plugins/table/transforms/column-width.js +13 -3
  134. package/dist/es2019/plugins/table/transforms/fix-tables.js +43 -5
  135. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +3 -2
  136. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -0
  137. package/dist/es2019/plugins/table/ui/common-styles.css.js +5 -1
  138. package/dist/es2019/plugins/table/ui/consts.js +2 -2
  139. package/dist/es2019/plugins/table/ui/messages.js +1 -1
  140. package/dist/es2019/plugins/tasks-and-decisions/nodeviews/decisionItem.js +1 -1
  141. package/dist/es2019/plugins/tasks-and-decisions/nodeviews/taskItem.js +1 -1
  142. package/dist/es2019/plugins/tasks-and-decisions/pm-plugins/main.js +3 -3
  143. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +2 -1
  144. package/dist/es2019/plugins/text-formatting/index.js +3 -2
  145. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +2 -1
  146. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +2 -1
  147. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +60 -27
  148. package/dist/es2019/ui/Appearance/FullPage/MainToolbar.js +51 -7
  149. package/dist/es2019/ui/ColorPalette/Color/index.js +9 -18
  150. package/dist/es2019/ui/ColorPalette/index.js +7 -4
  151. package/dist/es2019/ui/ColorPickerButton/index.js +1 -1
  152. package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +101 -49
  153. package/dist/es2019/ui/ConfigPanel/FormContent.js +35 -26
  154. package/dist/es2019/ui/ConfigPanel/transformers.js +243 -72
  155. package/dist/es2019/ui/ConfigPanel/utils.js +1 -2
  156. package/dist/es2019/ui/Dropdown/index.js +2 -1
  157. package/dist/es2019/ui/DropdownMenu/index.js +7 -3
  158. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +1 -0
  159. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +1 -0
  160. package/dist/es2019/ui/LinkSearch/LinkSearchListItem.js +2 -2
  161. package/dist/es2019/ui/Resizer/index.js +9 -1
  162. package/dist/es2019/version-wrapper.js +1 -1
  163. package/dist/es2019/version.json +1 -1
  164. package/dist/esm/create-editor/ReactEditorView.js +22 -8
  165. package/dist/esm/create-editor/create-plugins-list.js +26 -10
  166. package/dist/esm/labs/next/presets/cxhtml.js +1 -2
  167. package/dist/esm/nodeviews/ReactNodeView.js +2 -2
  168. package/dist/esm/nodeviews/SelectionBasedNodeView.js +7 -0
  169. package/dist/esm/plugins/analytics/types/enums.js +1 -0
  170. package/dist/esm/plugins/annotation/utils.js +18 -7
  171. package/dist/esm/plugins/avatar-group/index.js +2 -1
  172. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +5 -2
  173. package/dist/esm/plugins/before-primaryToolbar/index.js +15 -0
  174. package/dist/esm/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +12 -0
  175. package/dist/esm/plugins/extension/extension-api.js +9 -2
  176. package/dist/esm/plugins/extension/ui/styles.js +1 -1
  177. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +4 -2
  178. package/dist/esm/plugins/find-replace/FindReplaceToolbarButtonWithState.js +155 -0
  179. package/dist/esm/plugins/find-replace/index.js +14 -131
  180. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  181. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +9 -4
  182. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +1 -1
  183. package/dist/esm/plugins/fragment/index.js +22 -0
  184. package/dist/esm/plugins/fragment/plugin-key.js +2 -0
  185. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -2
  186. package/dist/esm/plugins/index.js +2 -0
  187. package/dist/esm/plugins/list/actions/conversions.js +38 -71
  188. package/dist/esm/plugins/list/transforms.js +7 -1
  189. package/dist/esm/plugins/media/index.js +2 -3
  190. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +2 -1
  191. package/dist/esm/plugins/media/nodeviews/mediaInline.js +11 -6
  192. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  193. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +7 -5
  194. package/dist/esm/plugins/media/nodeviews/styles.js +2 -0
  195. package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -1
  196. package/dist/esm/plugins/media/pm-plugins/main.js +47 -16
  197. package/dist/esm/plugins/media/toolbar/commands.js +45 -0
  198. package/dist/esm/plugins/media/toolbar/filePreviewItem.js +6 -2
  199. package/dist/esm/plugins/media/toolbar/index.js +88 -3
  200. package/dist/esm/plugins/media/ui/ResizableMediaSingle/index.js +9 -1
  201. package/dist/esm/plugins/media/utils/media-common.js +1 -1
  202. package/dist/esm/plugins/media/utils/media-files.js +6 -1
  203. package/dist/esm/plugins/panel/actions.js +2 -2
  204. package/dist/esm/plugins/panel/index.js +5 -5
  205. package/dist/esm/plugins/panel/nodeviews/panel.js +2 -2
  206. package/dist/esm/plugins/panel/toolbar.js +9 -4
  207. package/dist/esm/plugins/panel/utils.js +13 -0
  208. package/dist/esm/plugins/rank.js +3 -2
  209. package/dist/esm/plugins/selection/pm-plugins/selection-main.js +50 -1
  210. package/dist/esm/plugins/status/ui/statusPicker.js +4 -2
  211. package/dist/esm/plugins/table/commands/insert.js +1 -2
  212. package/dist/esm/plugins/table/index.js +3 -2
  213. package/dist/esm/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -2
  214. package/dist/esm/plugins/table/pm-plugins/main.js +27 -4
  215. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  216. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -0
  217. package/dist/esm/plugins/table/transforms/column-width.js +13 -3
  218. package/dist/esm/plugins/table/transforms/fix-tables.js +42 -4
  219. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +3 -2
  220. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -0
  221. package/dist/esm/plugins/table/ui/common-styles.css.js +1 -1
  222. package/dist/esm/plugins/table/ui/consts.js +2 -2
  223. package/dist/esm/plugins/table/ui/messages.js +1 -1
  224. package/dist/esm/plugins/tasks-and-decisions/nodeviews/decisionItem.js +1 -1
  225. package/dist/esm/plugins/tasks-and-decisions/nodeviews/taskItem.js +1 -1
  226. package/dist/esm/plugins/tasks-and-decisions/pm-plugins/main.js +3 -3
  227. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +2 -1
  228. package/dist/esm/plugins/text-formatting/index.js +3 -2
  229. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +2 -1
  230. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +2 -1
  231. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +67 -27
  232. package/dist/esm/ui/Appearance/FullPage/MainToolbar.js +20 -7
  233. package/dist/esm/ui/ColorPalette/Color/index.js +9 -16
  234. package/dist/esm/ui/ColorPalette/index.js +7 -4
  235. package/dist/esm/ui/ColorPickerButton/index.js +1 -1
  236. package/dist/esm/ui/ConfigPanel/ConfigPanel.js +113 -62
  237. package/dist/esm/ui/ConfigPanel/FormContent.js +39 -26
  238. package/dist/esm/ui/ConfigPanel/transformers.js +488 -248
  239. package/dist/esm/ui/ConfigPanel/utils.js +1 -6
  240. package/dist/esm/ui/Dropdown/index.js +2 -1
  241. package/dist/esm/ui/DropdownMenu/index.js +7 -3
  242. package/dist/esm/ui/ElementBrowser/InsertMenu.js +1 -0
  243. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +1 -0
  244. package/dist/esm/ui/LinkSearch/LinkSearchListItem.js +2 -2
  245. package/dist/esm/ui/Resizer/index.js +9 -1
  246. package/dist/esm/version-wrapper.js +1 -1
  247. package/dist/esm/version.json +1 -1
  248. package/dist/types/labs/next/full-page.d.ts +1 -1
  249. package/dist/types/nodeviews/ReactNodeView.d.ts +1 -1
  250. package/dist/types/nodeviews/SelectionBasedNodeView.d.ts +1 -0
  251. package/dist/types/plugins/analytics/types/enums.d.ts +1 -0
  252. package/dist/types/plugins/analytics/types/events.d.ts +7 -1
  253. package/dist/types/plugins/annotation/utils.d.ts +1 -1
  254. package/dist/types/plugins/avatar-group/index.d.ts +1 -0
  255. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +1 -0
  256. package/dist/types/plugins/before-primaryToolbar/index.d.ts +5 -0
  257. package/dist/types/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.d.ts +5 -0
  258. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -1
  259. package/dist/types/plugins/find-replace/FindReplaceToolbarButtonWithState.d.ts +15 -0
  260. package/dist/types/plugins/find-replace/index.d.ts +1 -0
  261. package/dist/types/plugins/floating-toolbar/ui/EmojiPickerButton.d.ts +1 -1
  262. package/dist/types/plugins/fragment/index.d.ts +5 -0
  263. package/dist/types/plugins/fragment/plugin-key.d.ts +2 -0
  264. package/dist/types/plugins/index.d.ts +2 -0
  265. package/dist/types/plugins/media/nodeviews/mediaInline.d.ts +3 -2
  266. package/dist/types/plugins/media/nodeviews/mediaNodeUpdater.d.ts +2 -2
  267. package/dist/types/plugins/media/nodeviews/mediaSingle.d.ts +1 -1
  268. package/dist/types/plugins/media/nodeviews/styles.d.ts +2 -0
  269. package/dist/types/plugins/media/toolbar/commands.d.ts +3 -0
  270. package/dist/types/plugins/media/toolbar/filePreviewItem.d.ts +2 -0
  271. package/dist/types/plugins/media/types.d.ts +0 -1
  272. package/dist/types/plugins/panel/actions.d.ts +1 -1
  273. package/dist/types/plugins/panel/types.d.ts +8 -2
  274. package/dist/types/plugins/quick-insert/index.d.ts +2 -1
  275. package/dist/types/plugins/table/commands/insert.d.ts +3 -0
  276. package/dist/types/plugins/table/pm-plugins/main.d.ts +2 -1
  277. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/types.d.ts +1 -0
  278. package/dist/types/plugins/table/transforms/column-width.d.ts +4 -1
  279. package/dist/types/plugins/table/transforms/fix-tables.d.ts +3 -2
  280. package/dist/types/plugins/table/types.d.ts +8 -0
  281. package/dist/types/plugins/table/ui/consts.d.ts +1 -1
  282. package/dist/types/types/editor-appearance-component.d.ts +2 -2
  283. package/dist/types/types/editor-props.d.ts +11 -1
  284. package/dist/types/types/feature-flags.d.ts +13 -0
  285. package/dist/types/types/index.d.ts +1 -1
  286. package/dist/types/ui/Appearance/FullPage/FullPageToolbar.d.ts +2 -2
  287. package/dist/types/ui/Appearance/FullPage/MainToolbar.d.ts +10 -1
  288. package/dist/types/ui/ColorPalette/Color/index.d.ts +8 -5
  289. package/dist/types/ui/ColorPalette/index.d.ts +1 -0
  290. package/dist/types/ui/ConfigPanel/transformers.d.ts +7 -1
  291. package/dist/types/ui/ConfigPanel/utils.d.ts +0 -1
  292. package/dist/types/ui/Resizer/index.d.ts +1 -0
  293. package/package.json +10 -7
  294. package/dist/cjs/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.js +0 -38
  295. package/dist/es2019/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.js +0 -28
  296. package/dist/esm/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.js +0 -28
  297. package/dist/types/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.d.ts +0 -1
@@ -2,52 +2,103 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.FullPageToolbar = void 0;
9
11
 
10
- var _react = _interopRequireDefault(require("react"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
11
15
 
12
16
  var _ui = _interopRequireDefault(require("../../../plugins/collab-edit/ui"));
13
17
 
18
+ var _FindReplaceToolbarButtonWithState = _interopRequireDefault(require("../../../plugins/find-replace/FindReplaceToolbarButtonWithState"));
19
+
20
+ var _BeforePrimaryToolbarWrapper = require("../../../plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper");
21
+
14
22
  var _Toolbar = _interopRequireDefault(require("../../Toolbar"));
15
23
 
16
24
  var _MainToolbar = require("./MainToolbar");
17
25
 
18
26
  var _context = require("../../ContextPanel/context");
19
27
 
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
20
32
  var FullPageToolbar = /*#__PURE__*/_react.default.memo(function (props) {
33
+ var _props$featureFlags, _props$featureFlags2, _props$featureFlags3, _props$collabEdit, _props$collabEdit2, _props$collabEdit3, _props$featureFlags4, _props$featureFlags5;
34
+
35
+ var _useState = (0, _react.useState)(false),
36
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
37
+ shouldSplitToolbar = _useState2[0],
38
+ setShouldSplitToolbar = _useState2[1];
39
+
40
+ var nonCustomToolbar = /*#__PURE__*/_react.default.createElement(_MainToolbar.NonCustomToolbarWrapper, null, props.beforeIcon && /*#__PURE__*/_react.default.createElement(_MainToolbar.MainToolbarIconBefore, null, props.beforeIcon), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
41
+ editorView: props.editorView,
42
+ editorActions: props.editorActions,
43
+ eventDispatcher: props.eventDispatcher,
44
+ providerFactory: props.providerFactory,
45
+ appearance: props.appearance,
46
+ items: props.primaryToolbarComponents,
47
+ popupsMountPoint: props.popupsMountPoint,
48
+ popupsBoundariesElement: props.popupsBoundariesElement,
49
+ popupsScrollableElement: props.popupsScrollableElement,
50
+ disabled: props.disabled,
51
+ dispatchAnalyticsEvent: props.dispatchAnalyticsEvent,
52
+ containerElement: props.containerElement,
53
+ hasMinWidth: props.hasMinWidth
54
+ }));
55
+
56
+ var customToolbar = /*#__PURE__*/_react.default.createElement(_MainToolbar.CustomToolbarWrapper, null, (_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.twoLineEditorToolbar && !!props.customPrimaryToolbarComponents && 'before' in props.customPrimaryToolbarComponents ? /*#__PURE__*/_react.default.createElement(_BeforePrimaryToolbarWrapper.BeforePrimaryToolbarWrapper, {
57
+ beforePrimaryToolbarComponents: props.customPrimaryToolbarComponents.before
58
+ }) : 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.default.createElement(_ui.default, {
59
+ editorView: props.editorView,
60
+ eventDispatcher: props.eventDispatcher,
61
+ inviteToEditComponent: (_props$collabEdit = props.collabEdit) === null || _props$collabEdit === void 0 ? void 0 : _props$collabEdit.inviteToEditComponent,
62
+ inviteToEditHandler: (_props$collabEdit2 = props.collabEdit) === null || _props$collabEdit2 === void 0 ? void 0 : _props$collabEdit2.inviteToEditHandler,
63
+ isInviteToEditButtonSelected: (_props$collabEdit3 = props.collabEdit) === null || _props$collabEdit3 === void 0 ? void 0 : _props$collabEdit3.isInviteToEditButtonSelected
64
+ }), (_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.default.createElement(_FindReplaceToolbarButtonWithState.default, {
65
+ popupsBoundariesElement: props.popupsBoundariesElement,
66
+ popupsMountPoint: props.popupsMountPoint,
67
+ popupsScrollableElement: props.popupsScrollableElement,
68
+ editorView: props.editorView,
69
+ containerElement: props.containerElement,
70
+ dispatchAnalyticsEvent: props.dispatchAnalyticsEvent
71
+ }) : null, !!props.customPrimaryToolbarComponents && 'after' in props.customPrimaryToolbarComponents ? props.customPrimaryToolbarComponents.after : props.customPrimaryToolbarComponents);
72
+
73
+ (0, _react.useEffect)(function () {
74
+ var _props$featureFlags6;
75
+
76
+ if ((_props$featureFlags6 = props.featureFlags) !== null && _props$featureFlags6 !== void 0 && _props$featureFlags6.twoLineEditorToolbar) {
77
+ var updateOnResize = function updateOnResize() {
78
+ setShouldSplitToolbar(window.innerWidth <= _MainToolbar.MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT);
79
+ };
80
+
81
+ window.addEventListener('resize', updateOnResize);
82
+ updateOnResize();
83
+ return function () {
84
+ return window.removeEventListener('resize', updateOnResize);
85
+ };
86
+ }
87
+ });
21
88
  return /*#__PURE__*/_react.default.createElement(_context.ContextPanelConsumer, null, function (_ref) {
22
- var _props$featureFlags;
89
+ var _props$featureFlags7, _props$featureFlags8, _props$featureFlags9;
23
90
 
24
91
  var contextPanelWidth = _ref.width;
25
92
  return /*#__PURE__*/_react.default.createElement(_MainToolbar.MainToolbar, {
26
93
  "data-testid": "ak-editor-main-toolbar",
27
- showKeyline: props.showKeyline || contextPanelWidth > 0
28
- }, props.beforeIcon && /*#__PURE__*/_react.default.createElement(_MainToolbar.MainToolbarIconBefore, null, props.beforeIcon), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
29
- editorView: props.editorView,
30
- editorActions: props.editorActions,
31
- eventDispatcher: props.eventDispatcher,
32
- providerFactory: props.providerFactory,
33
- appearance: props.appearance,
34
- items: props.primaryToolbarComponents,
35
- popupsMountPoint: props.popupsMountPoint,
36
- popupsBoundariesElement: props.popupsBoundariesElement,
37
- popupsScrollableElement: props.popupsScrollableElement,
38
- disabled: props.disabled,
39
- dispatchAnalyticsEvent: props.dispatchAnalyticsEvent,
40
- containerElement: props.containerElement,
41
- hasMinWidth: props.hasMinWidth
42
- }), /*#__PURE__*/_react.default.createElement(_MainToolbar.MainToolbarCustomComponentsSlot, {
43
- "data-testid": 'avatar-group-outside-plugin'
44
- }, (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.default.createElement(_ui.default, {
45
- editorView: props.editorView,
46
- eventDispatcher: props.eventDispatcher,
47
- inviteToEditComponent: props.collabEdit && props.collabEdit.inviteToEditComponent,
48
- inviteToEditHandler: props.collabEdit && props.collabEdit.inviteToEditHandler,
49
- isInviteToEditButtonSelected: props.collabEdit && props.collabEdit.isInviteToEditButtonSelected
50
- }), props.customPrimaryToolbarComponents));
94
+ showKeyline: props.showKeyline || contextPanelWidth > 0,
95
+ twoLineEditorToolbar: !!((_props$featureFlags7 = props.featureFlags) !== null && _props$featureFlags7 !== void 0 && _props$featureFlags7.twoLineEditorToolbar)
96
+ }, /*#__PURE__*/_react.default.createElement(_MainToolbar.MainToolbarFirstChild, {
97
+ twoLineEditorToolbar: !!((_props$featureFlags8 = props.featureFlags) !== null && _props$featureFlags8 !== void 0 && _props$featureFlags8.twoLineEditorToolbar)
98
+ }, shouldSplitToolbar ? customToolbar : nonCustomToolbar), /*#__PURE__*/_react.default.createElement(_MainToolbar.MainToolbarSecondChild, {
99
+ "data-testid": 'avatar-group-outside-plugin',
100
+ twoLineEditorToolbar: !!((_props$featureFlags9 = props.featureFlags) !== null && _props$featureFlags9 !== void 0 && _props$featureFlags9.twoLineEditorToolbar)
101
+ }, shouldSplitToolbar ? nonCustomToolbar : customToolbar));
51
102
  });
52
103
  });
53
104
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.SecondaryToolbar = exports.MainToolbarCustomComponentsSlot = exports.MainToolbarIconBefore = exports.MainToolbar = void 0;
8
+ exports.CustomToolbarWrapper = exports.NonCustomToolbarWrapper = exports.SecondaryToolbar = exports.MainToolbarSecondChild = exports.MainToolbarFirstChild = exports.MainToolbarIconBefore = exports.MainToolbar = exports.MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT = void 0;
9
9
 
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
11
 
@@ -17,13 +17,17 @@ var _constants = require("@atlaskit/theme/constants");
17
17
 
18
18
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
19
19
 
20
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
20
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
21
21
 
22
+ var MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT = 868;
23
+ exports.MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT = MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT;
22
24
  var toolbarLineHeight = 56;
23
25
 
24
- var MainToolbar = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n align-items: center;\n box-shadow: ", ";\n transition: box-shadow 200ms ", ";\n z-index: ", ";\n display: flex;\n height: ", "px;\n flex-shrink: 0;\n background-color: white;\n\n & object {\n height: 0 !important;\n }\n\n @media (max-width: ", "px) {\n display: grid;\n height: calc(", "px * 2);\n }\n"])), function (props) {
26
+ var MainToolbar = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n align-items: center;\n box-shadow: ", ";\n transition: box-shadow 200ms ", ";\n z-index: ", ";\n display: flex;\n height: ", "px;\n flex-shrink: 0;\n background-color: white;\n\n & object {\n height: 0 !important;\n }\n\n @media (max-width: ", "px) {\n ", "\n }\n\n @media (max-width: ", "px) {\n display: grid;\n height: calc(", "px * 2);\n }\n"])), function (props) {
25
27
  return props.showKeyline ? "0 ".concat(_editorSharedStyles.akEditorToolbarKeylineHeight, "px 0 0 ").concat(_colors.N30) : 'none';
26
- }, _editorSharedStyles.akEditorSwoopCubicBezier, _editorSharedStyles.akEditorMenuZIndex, toolbarLineHeight, _editorSharedStyles.akEditorMobileMaxWidth, toolbarLineHeight);
28
+ }, _editorSharedStyles.akEditorSwoopCubicBezier, _editorSharedStyles.akEditorMenuZIndex, toolbarLineHeight, MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT, function (props) {
29
+ return props.twoLineEditorToolbar && "\n flex-wrap: wrap;\n height: calc(".concat(toolbarLineHeight, "px * 2);\n ");
30
+ }, _editorSharedStyles.akEditorMobileMaxWidth, toolbarLineHeight);
27
31
 
28
32
  exports.MainToolbar = MainToolbar;
29
33
  MainToolbar.displayName = 'MainToolbar';
@@ -33,12 +37,31 @@ var MainToolbarIconBefore = _styledComponents.default.div(_templateObject2 || (_
33
37
  exports.MainToolbarIconBefore = MainToolbarIconBefore;
34
38
  MainToolbarIconBefore.displayName = 'MainToolbarIconBefore';
35
39
 
36
- var MainToolbarCustomComponentsSlot = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n justify-content: flex-end;\n flex-grow: 1;\n // ED-10241: We add fit-content to ensure that MainToolbar does not\n // shrink more than the size of its contents. This will prevent the\n // find/replace icon from being overlapped during a confluence\n // publish operation\n min-width: fit-content;\n @media (max-width: ", "px) {\n grid-column: 1;\n grid-row: 1;\n }\n"])), _editorSharedStyles.akEditorMobileMaxWidth);
40
+ var MainToolbarFirstChild = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-grow: 1;\n\n @media (max-width: ", "px) {\n ", "\n }\n @media (max-width: ", "px) {\n grid-column: 1;\n grid-row: 1;\n }\n"])), MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT, function (props) {
41
+ return props.twoLineEditorToolbar && "\n flex: 1 1 100%;\n height: ".concat(toolbarLineHeight, "px;\n justify-content: flex-end;\n // ED-10241: We add fit-content to ensure that MainToolbar does not\n // shrink more than the size of its contents. This will prevent the\n // find/replace icon from being overlapped during a confluence\n // publish operation\n min-width: fit-content;\n ");
42
+ }, _editorSharedStyles.akEditorMobileMaxWidth);
37
43
 
38
- exports.MainToolbarCustomComponentsSlot = MainToolbarCustomComponentsSlot;
39
- MainToolbarCustomComponentsSlot.displayName = 'MainToolbar';
44
+ exports.MainToolbarFirstChild = MainToolbarFirstChild;
45
+ MainToolbarFirstChild.displayName = 'MainToolbarFirstChild';
40
46
 
41
- var SecondaryToolbar = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n box-sizing: border-box;\n justify-content: flex-end;\n align-items: center;\n flex-shrink: 0;\n display: flex;\n padding: 24px 0;\n"])));
47
+ var MainToolbarSecondChild = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n // ED-10241: We add fit-content to ensure that MainToolbar does not\n // shrink more than the size of its contents. This will prevent the\n // find/replace icon from being overlapped during a confluence\n // publish operation\n min-width: fit-content;\n @media (max-width: ", "px) {\n ", "\n }\n"])), MAXIMUM_TWO_LINE_TOOLBAR_BREAKPOINT, function (props) {
48
+ return props.twoLineEditorToolbar && "\n display: flex;\n flex-grow: 1;\n flex: 1 1 100%;\n margin: auto;\n height: ".concat(toolbarLineHeight, "px;\n min-width: 0;\n ");
49
+ });
50
+
51
+ exports.MainToolbarSecondChild = MainToolbarSecondChild;
52
+ MainToolbarSecondChild.displayName = 'MainToolbarSecondChild';
53
+
54
+ var SecondaryToolbar = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n box-sizing: border-box;\n justify-content: flex-end;\n align-items: center;\n flex-shrink: 0;\n display: flex;\n padding: 24px 0;\n"])));
42
55
 
43
56
  exports.SecondaryToolbar = SecondaryToolbar;
44
- SecondaryToolbar.displayName = 'SecondaryToolbar';
57
+ SecondaryToolbar.displayName = 'SecondaryToolbar';
58
+
59
+ var NonCustomToolbarWrapper = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n flex-grow: 1;\n"])));
60
+
61
+ exports.NonCustomToolbarWrapper = NonCustomToolbarWrapper;
62
+ NonCustomToolbarWrapper.displayName = 'NonCustomToolbar';
63
+
64
+ var CustomToolbarWrapper = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n"])));
65
+
66
+ exports.CustomToolbarWrapper = CustomToolbarWrapper;
67
+ CustomToolbarWrapper.displayName = 'CustomToolbar';
@@ -25,8 +25,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
25
 
26
26
  var _react = _interopRequireWildcard(require("react"));
27
27
 
28
- var _reactIntl = require("react-intl");
29
-
30
28
  var _done = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/done"));
31
29
 
32
30
  var _colors = require("@atlaskit/theme/colors");
@@ -43,15 +41,6 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
43
41
 
44
42
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
43
 
46
- // IMO these should live inside @atlaskit/theme
47
- var messages = (0, _reactIntl.defineMessages)({
48
- selected: {
49
- id: 'fabric.editor.selected',
50
- defaultMessage: 'Selected',
51
- description: 'If the item is selected or not.'
52
- }
53
- });
54
-
55
44
  var Color = /*#__PURE__*/function (_PureComponent) {
56
45
  (0, _inherits2.default)(Color, _PureComponent);
57
46
 
@@ -85,19 +74,20 @@ var Color = /*#__PURE__*/function (_PureComponent) {
85
74
  key: "render",
86
75
  value: function render() {
87
76
  var _this$props2 = this.props,
77
+ autoFocus = _this$props2.autoFocus,
88
78
  tabIndex = _this$props2.tabIndex,
89
79
  value = _this$props2.value,
90
80
  label = _this$props2.label,
91
81
  isSelected = _this$props2.isSelected,
92
82
  borderColor = _this$props2.borderColor,
93
83
  _this$props2$checkMar = _this$props2.checkMarkColor,
94
- checkMarkColor = _this$props2$checkMar === void 0 ? _colors.N0 : _this$props2$checkMar,
95
- formatMessage = _this$props2.intl.formatMessage;
96
- var ariaLabelText = isSelected ? "".concat(label, " ").concat(formatMessage(messages.selected)) : label;
84
+ checkMarkColor = _this$props2$checkMar === void 0 ? _colors.N0 : _this$props2$checkMar;
97
85
  return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
98
86
  content: label
99
87
  }, /*#__PURE__*/_react.default.createElement(_styles.ButtonWrapper, null, /*#__PURE__*/_react.default.createElement(_styles.Button, {
100
- "aria-label": ariaLabelText,
88
+ "aria-label": label,
89
+ role: "radio",
90
+ "aria-checked": isSelected,
101
91
  onClick: this.onClick,
102
92
  onMouseDown: this.onMouseDown,
103
93
  tabIndex: tabIndex,
@@ -105,7 +95,8 @@ var Color = /*#__PURE__*/function (_PureComponent) {
105
95
  style: {
106
96
  backgroundColor: value || 'transparent',
107
97
  border: "1px solid ".concat(borderColor)
108
- }
98
+ },
99
+ autoFocus: autoFocus
109
100
  }, isSelected && /*#__PURE__*/_react.default.createElement(_done.default, {
110
101
  primaryColor: checkMarkColor,
111
102
  label: ""
@@ -115,6 +106,5 @@ var Color = /*#__PURE__*/function (_PureComponent) {
115
106
  return Color;
116
107
  }(_react.PureComponent);
117
108
 
118
- var _default = (0, _reactIntl.injectIntl)(Color);
119
-
109
+ var _default = Color;
120
110
  exports.default = _default;
@@ -40,6 +40,7 @@ var ColorPalette = function ColorPalette(props) {
40
40
  onClick = props.onClick,
41
41
  selectedColor = props.selectedColor,
42
42
  className = props.className,
43
+ isShowingMoreColors = props.isShowingMoreColors,
43
44
  formatMessage = props.intl.formatMessage;
44
45
 
45
46
  var colorsPerRow = _react.default.useMemo(function () {
@@ -52,11 +53,12 @@ var ColorPalette = function ColorPalette(props) {
52
53
  }, []);
53
54
  }, [palette, cols]);
54
55
 
55
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, colorsPerRow.map(function (row) {
56
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, colorsPerRow.map(function (row, rowIdx) {
56
57
  return /*#__PURE__*/_react.default.createElement(_styles.ColorPaletteWrapper, {
57
58
  className: className,
58
- key: "row-first-color-".concat(row[0].value)
59
- }, row.map(function (_ref) {
59
+ key: "row-first-color-".concat(row[0].value),
60
+ role: "radiogroup"
61
+ }, row.map(function (_ref, colorIdx) {
60
62
  var value = _ref.value,
61
63
  label = _ref.label,
62
64
  border = _ref.border,
@@ -68,7 +70,8 @@ var ColorPalette = function ColorPalette(props) {
68
70
  label: message ? formatMessage(message) : label,
69
71
  onClick: onClick,
70
72
  isSelected: value === selectedColor,
71
- checkMarkColor: getContrastColor(value, [_colors.N0, _colors.N500])
73
+ checkMarkColor: getContrastColor(value, [_colors.N0, _colors.N500]),
74
+ autoFocus: isShowingMoreColors && rowIdx === 1 && colorIdx === 0
72
75
  });
73
76
  }));
74
77
  }));
@@ -41,7 +41,7 @@ var _templateObject, _templateObject2;
41
41
  var ColorPickerButtonWrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n"]))); // Control the size of color picker buttons and preview
42
42
 
43
43
 
44
- var ColorPickerWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border-radius: ", "px;\n background-color: white;\n box-shadow: 0 4px 8px -2px ", ", 0 0 1px ", ";\n padding: 4px;\n"])), (0, _constants.borderRadius)(), _colors.N60A, _colors.N60A);
44
+ var ColorPickerWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border-radius: ", "px;\n background-color: white;\n box-shadow: 0 4px 8px -2px ", ", 0 0 1px ", ";\n padding: 8px 0px;\n"])), (0, _constants.borderRadius)(), _colors.N60A, _colors.N60A);
45
45
 
46
46
  var ColorPickerButton = function ColorPickerButton(props) {
47
47
  var _props$size, _props$size2;
@@ -41,6 +41,8 @@ var _extensions = require("@atlaskit/editor-common/extensions");
41
41
 
42
42
  var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
43
43
 
44
+ var _merge = _interopRequireDefault(require("lodash/merge"));
45
+
44
46
  var _analytics = require("../../plugins/analytics");
45
47
 
46
48
  var _LoadingState = _interopRequireDefault(require("./LoadingState"));
@@ -65,14 +67,12 @@ var _FormContent = _interopRequireDefault(require("./FormContent"));
65
67
 
66
68
  var _messages = require("./messages");
67
69
 
70
+ var _FormErrorBoundary = require("./FormErrorBoundary");
71
+
68
72
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
69
73
 
70
74
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
71
75
 
72
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
73
-
74
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
75
-
76
76
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
77
77
 
78
78
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -89,7 +89,17 @@ function ConfigForm(_ref) {
89
89
  onCancel = _ref.onCancel,
90
90
  onFieldChange = _ref.onFieldChange,
91
91
  parameters = _ref.parameters,
92
- submitting = _ref.submitting;
92
+ submitting = _ref.submitting,
93
+ contextIdentifierProvider = _ref.contextIdentifierProvider;
94
+ (0, _react.useEffect)(function () {
95
+ if (fields) {
96
+ var firstDuplicateField = (0, _transformers.findDuplicateFields)(fields);
97
+
98
+ if (firstDuplicateField) {
99
+ throw new Error("Possible duplicate field name: `".concat(firstDuplicateField.name, "`."));
100
+ }
101
+ }
102
+ }, [fields]);
93
103
 
94
104
  if (isLoading || !hasParsedParameters && errorMessage === null) {
95
105
  return /*#__PURE__*/_react.default.createElement(_LoadingState.default, null);
@@ -101,44 +111,36 @@ function ConfigForm(_ref) {
101
111
  });
102
112
  }
103
113
 
104
- return /*#__PURE__*/_react.default.createElement(_WithPluginState.default, {
105
- plugins: {
106
- extension: _pluginKey.pluginKey
107
- },
108
- render: function render(_ref2) {
109
- var extension = _ref2.extension;
110
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FormContent.default, {
111
- fields: fields,
112
- parameters: parameters,
113
- extensionManifest: extensionManifest,
114
- onFieldChange: onFieldChange,
115
- firstVisibleFieldName: firstVisibleFieldName,
116
- contextIdentifierProvider: extension === null || extension === void 0 ? void 0 : extension.contextIdentifierProvider
117
- }), /*#__PURE__*/_react.default.createElement("div", {
118
- style: canSave ? {} : {
119
- display: 'none'
120
- }
121
- }, /*#__PURE__*/_react.default.createElement(_form.FormFooter, {
122
- align: "start"
123
- }, /*#__PURE__*/_react.default.createElement(_buttonGroup.default, null, /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
124
- type: "submit",
125
- appearance: "primary"
126
- }, intl.formatMessage(_messages.messages.submit)), /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
127
- appearance: "default",
128
- isDisabled: submitting,
129
- onClick: onCancel
130
- }, intl.formatMessage(_messages.messages.cancel))))));
114
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FormContent.default, {
115
+ fields: fields,
116
+ parameters: parameters,
117
+ extensionManifest: extensionManifest,
118
+ onFieldChange: onFieldChange,
119
+ firstVisibleFieldName: firstVisibleFieldName,
120
+ contextIdentifierProvider: contextIdentifierProvider
121
+ }), /*#__PURE__*/_react.default.createElement("div", {
122
+ style: canSave ? {} : {
123
+ display: 'none'
131
124
  }
132
- });
125
+ }, /*#__PURE__*/_react.default.createElement(_form.FormFooter, {
126
+ align: "start"
127
+ }, /*#__PURE__*/_react.default.createElement(_buttonGroup.default, null, /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
128
+ type: "submit",
129
+ appearance: "primary"
130
+ }, intl.formatMessage(_messages.messages.submit)), /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
131
+ appearance: "default",
132
+ isDisabled: submitting,
133
+ onClick: onCancel
134
+ }, intl.formatMessage(_messages.messages.cancel))))));
133
135
  }
134
136
 
135
137
  var ConfigFormIntl = (0, _reactIntl.injectIntl)(ConfigForm);
136
138
 
137
- var WithOnFieldChange = function WithOnFieldChange(_ref3) {
138
- var getState = _ref3.getState,
139
- autoSave = _ref3.autoSave,
140
- handleSubmit = _ref3.handleSubmit,
141
- children = _ref3.children;
139
+ var WithOnFieldChange = function WithOnFieldChange(_ref2) {
140
+ var getState = _ref2.getState,
141
+ autoSave = _ref2.autoSave,
142
+ handleSubmit = _ref2.handleSubmit,
143
+ children = _ref2.children;
142
144
  var getStateRef = (0, _react.useRef)(getState);
143
145
  (0, _react.useEffect)(function () {
144
146
  getStateRef.current = getState;
@@ -190,13 +192,51 @@ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
190
192
  }
191
193
  });
192
194
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "backfillTabFormData", function (fields, formData, currentParameters) {
193
- var mergedTabGroups = fields.filter(_extensions.isTabGroup).reduce(function (acc, field) {
194
- return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, field.name, _objectSpread(_objectSpread({}, currentParameters[field.name] || {}), formData[field.name] || {})));
195
+ var getRelevantData = function getRelevantData(field, formParams, currentParams, backfill) {
196
+ if (field.hasGroupedValues && !(field.name in backfill)) {
197
+ backfill[field.name] = {};
198
+ }
199
+
200
+ var actualFormParams = field.hasGroupedValues ? formParams[field.name] || {} : formParams;
201
+ var actualCurrentParams = field.hasGroupedValues ? currentParams[field.name] || {} : currentParams;
202
+ var actualBackfillParams = field.hasGroupedValues ? backfill[field.name] : backfill;
203
+ return {
204
+ formParams: actualFormParams,
205
+ currentParams: actualCurrentParams,
206
+ backfillParams: actualBackfillParams
207
+ };
208
+ }; // Traverse any tab structures and backfill field values on tabs
209
+ // which aren't shown. This filter should be ok because tabs are
210
+ // currently only allowed on top level
211
+
212
+
213
+ var mergedTabGroups = fields.filter(_extensions.isTabGroup).reduce(function (missingBackfill, tabGroup) {
214
+ var _getRelevantData = getRelevantData(tabGroup, formData, currentParameters, missingBackfill),
215
+ tabGroupFormData = _getRelevantData.formParams,
216
+ tabGroupCurrentData = _getRelevantData.currentParams,
217
+ tabGroupParams = _getRelevantData.backfillParams; // Loop through tabs and see what fields are missing from current data
218
+
219
+
220
+ tabGroup.fields.forEach(function (tabField) {
221
+ var _getRelevantData2 = getRelevantData(tabField, tabGroupFormData, tabGroupCurrentData, tabGroupParams),
222
+ tabFormData = _getRelevantData2.formParams,
223
+ tabCurrentData = _getRelevantData2.currentParams,
224
+ tabParams = _getRelevantData2.backfillParams;
225
+
226
+ tabField.fields.forEach(function (field) {
227
+ if (field.name in tabFormData || !(field.name in tabCurrentData)) {
228
+ return;
229
+ }
230
+
231
+ tabParams[field.name] = tabCurrentData[field.name];
232
+ });
233
+ });
234
+ return missingBackfill;
195
235
  }, {});
196
- return _objectSpread(_objectSpread({}, formData), mergedTabGroups);
236
+ return (0, _merge.default)({}, mergedTabGroups, formData);
197
237
  });
198
238
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleSubmit", /*#__PURE__*/function () {
199
- var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(formData) {
239
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(formData) {
200
240
  var _this$props, fields, extensionManifest, onChange, serializedData;
201
241
 
202
242
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -238,11 +278,11 @@ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
238
278
  }));
239
279
 
240
280
  return function (_x) {
241
- return _ref4.apply(this, arguments);
281
+ return _ref3.apply(this, arguments);
242
282
  };
243
283
  }());
244
284
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "parseParameters", /*#__PURE__*/function () {
245
- var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(fields, parameters) {
285
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(fields, parameters) {
246
286
  var extensionManifest, currentParameters;
247
287
  return _regenerator.default.wrap(function _callee2$(_context2) {
248
288
  while (1) {
@@ -291,7 +331,7 @@ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
291
331
  }));
292
332
 
293
333
  return function (_x2, _x3) {
294
- return _ref5.apply(this, arguments);
334
+ return _ref4.apply(this, arguments);
295
335
  };
296
336
  }());
297
337
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderHeader", (0, _memoizeOne.default)(function (extensionManifest) {
@@ -445,10 +485,10 @@ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
445
485
  handleKeyDown = this.handleKeyDown;
446
486
  return /*#__PURE__*/_react.default.createElement(_form.default, {
447
487
  onSubmit: handleSubmit
448
- }, function (_ref6) {
449
- var formProps = _ref6.formProps,
450
- getState = _ref6.getState,
451
- submitting = _ref6.submitting;
488
+ }, function (_ref5) {
489
+ var formProps = _ref5.formProps,
490
+ getState = _ref5.getState,
491
+ submitting = _ref5.submitting;
452
492
  return /*#__PURE__*/_react.default.createElement(WithOnFieldChange, {
453
493
  autoSave: !!autoSave,
454
494
  getState: getState,
@@ -459,18 +499,31 @@ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
459
499
  noValidate: true,
460
500
  onKeyDown: handleKeyDown,
461
501
  "data-testid": "extension-config-panel"
462
- }), _this2.renderHeader(extensionManifest), /*#__PURE__*/_react.default.createElement(ConfigFormIntl, {
463
- canSave: !autoSave,
464
- errorMessage: errorMessage,
465
- extensionManifest: extensionManifest,
466
- fields: fields,
467
- firstVisibleFieldName: firstVisibleFieldName,
468
- hasParsedParameters: hasParsedParameters,
469
- isLoading: isLoading || false,
470
- onCancel: onCancel,
471
- onFieldChange: onFieldChange,
472
- parameters: currentParameters,
473
- submitting: submitting
502
+ }), _this2.renderHeader(extensionManifest), /*#__PURE__*/_react.default.createElement(_WithPluginState.default, {
503
+ plugins: {
504
+ extension: _pluginKey.pluginKey
505
+ },
506
+ render: function render(_ref6) {
507
+ var extension = _ref6.extension;
508
+ return /*#__PURE__*/_react.default.createElement(_FormErrorBoundary.FormErrorBoundary, {
509
+ contextIdentifierProvider: extension === null || extension === void 0 ? void 0 : extension.contextIdentifierProvider,
510
+ extensionKey: extensionManifest.key,
511
+ fields: fields || []
512
+ }, /*#__PURE__*/_react.default.createElement(ConfigFormIntl, {
513
+ canSave: !autoSave,
514
+ errorMessage: errorMessage,
515
+ extensionManifest: extensionManifest,
516
+ fields: fields,
517
+ firstVisibleFieldName: firstVisibleFieldName,
518
+ hasParsedParameters: hasParsedParameters,
519
+ isLoading: isLoading || false,
520
+ onCancel: onCancel,
521
+ onFieldChange: onFieldChange,
522
+ parameters: currentParameters,
523
+ submitting: submitting,
524
+ contextIdentifierProvider: extension === null || extension === void 0 ? void 0 : extension.contextIdentifierProvider
525
+ }));
526
+ }
474
527
  }));
475
528
  });
476
529
  });