@atlaskit/editor-core 179.1.2 → 180.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/codemods/180.1.0-update-to-editor-migration-component.ts +8 -0
  3. package/codemods/__tests__/rename-editor-to-editor-migration-component.ts +156 -0
  4. package/codemods/migrates/rename-editor-to-editor-migration-component.ts +34 -0
  5. package/dist/cjs/actions/index.js +1 -1
  6. package/dist/cjs/create-editor/ReactEditorView.js +12 -762
  7. package/dist/cjs/create-editor/ReactEditorViewInternal.js +783 -0
  8. package/dist/cjs/create-editor/ReactEditorViewNext.js +16 -0
  9. package/dist/cjs/create-editor/create-plugins-list.js +1 -0
  10. package/dist/cjs/create-editor/feature-flags-from-props.js +3 -2
  11. package/dist/cjs/editor-next/editor-internal.js +147 -0
  12. package/dist/cjs/editor-next/editor-migration-component.js +35 -0
  13. package/dist/cjs/editor-next/hooks/useEditorMeasuresConstructor.js +36 -0
  14. package/dist/cjs/editor-next/hooks/useMeasureEditorMountTime.js +42 -0
  15. package/dist/cjs/editor-next/hooks/useProviderFactory.js +72 -0
  16. package/dist/cjs/editor-next/index.js +139 -0
  17. package/dist/cjs/editor-next/utils/deprecationWarnings.js +45 -0
  18. package/dist/cjs/editor-next/utils/editorMeasureTTICallback.js +44 -0
  19. package/dist/cjs/editor-next/utils/editorPropTypes.js +36 -0
  20. package/dist/cjs/editor-next/utils/getBaseFontSize.js +17 -0
  21. package/dist/cjs/editor-next/utils/handleProviders.js +56 -0
  22. package/dist/cjs/editor-next/utils/onEditorCreated.js +28 -0
  23. package/dist/cjs/editor-next/utils/sendDurationAnalytics.js +68 -0
  24. package/dist/cjs/editor-next/utils/trackEditorActions.js +101 -0
  25. package/dist/cjs/editor.js +130 -443
  26. package/dist/cjs/index.js +7 -0
  27. package/dist/cjs/labs/next/internal/hooks/use-analytics/index.js +4 -4
  28. package/dist/cjs/labs/next/internal/hooks/use-editor/create-dispatch-transaction.js +6 -6
  29. package/dist/cjs/labs/next/presets/create-stub-internal-apis.js +117 -0
  30. package/dist/cjs/labs/next/presets/preset.js +0 -5
  31. package/dist/cjs/labs/next/presets/universal.js +11 -2
  32. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +48 -13
  33. package/dist/cjs/plugins/analytics/index.js +2 -3
  34. package/dist/cjs/plugins/analytics/plugin.js +5 -6
  35. package/dist/cjs/plugins/analytics/utils.js +0 -11
  36. package/dist/cjs/plugins/base/pm-plugins/filter-steps.js +1 -1
  37. package/dist/cjs/plugins/base/pm-plugins/frozen-editor.js +98 -56
  38. package/dist/cjs/plugins/base/utils/input-latency-tracking.js +24 -25
  39. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -0
  40. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/index.js +36 -9
  41. package/dist/cjs/plugins/card/nodeviews/blockCard.js +2 -1
  42. package/dist/cjs/plugins/card/nodeviews/genericCard.js +16 -2
  43. package/dist/cjs/plugins/card/pm-plugins/main.js +4 -2
  44. package/dist/cjs/plugins/clipboard/pm-plugins/main.js +4 -1
  45. package/dist/cjs/plugins/collab-edit/plugin.js +2 -3
  46. package/dist/cjs/plugins/extension/toolbar.js +7 -1
  47. package/dist/cjs/plugins/find-replace/ui/FindReplaceToolbarButton.js +5 -1
  48. package/dist/cjs/plugins/floating-toolbar/ui/Button.js +2 -0
  49. package/dist/cjs/plugins/floating-toolbar/ui/CheckboxModal.js +5 -3
  50. package/dist/cjs/plugins/floating-toolbar/ui/Dropdown.js +38 -9
  51. package/dist/cjs/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +23 -21
  52. package/dist/cjs/plugins/floating-toolbar/ui/ScrollButtons.js +12 -7
  53. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +11 -0
  54. package/dist/cjs/plugins/fragment/pm-plugins/fragment-consistency.js +1 -0
  55. package/dist/cjs/plugins/hyperlink/analytics.js +5 -5
  56. package/dist/cjs/plugins/hyperlink/index.js +1 -1
  57. package/dist/cjs/plugins/hyperlink/pm-plugins/main.js +9 -5
  58. package/dist/cjs/plugins/hyperlink/ui/EditorLinkPicker/index.js +10 -4
  59. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  60. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +4 -3
  61. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -0
  62. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +1 -0
  63. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +3 -0
  64. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +1 -0
  65. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -0
  66. package/dist/cjs/plugins/media/commands/helpers.js +12 -40
  67. package/dist/cjs/plugins/media/commands/index.js +4 -4
  68. package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +14 -12
  69. package/dist/cjs/plugins/media/nodeviews/mediaInline.js +1 -1
  70. package/dist/cjs/plugins/media/nodeviews/mediaNodeUpdater.js +310 -205
  71. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +1 -1
  72. package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +1 -1
  73. package/dist/cjs/plugins/media/pm-plugins/main.js +2 -27
  74. package/dist/cjs/plugins/media/toolbar/filePreviewItem.js +1 -4
  75. package/dist/cjs/plugins/panel/utils.js +4 -1
  76. package/dist/cjs/plugins/paste/handlers.js +128 -13
  77. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +15 -6
  78. package/dist/cjs/plugins/paste/pm-plugins/main.js +12 -3
  79. package/dist/cjs/plugins/placeholder-text/index.js +2 -2
  80. package/dist/cjs/plugins/status/index.js +9 -3
  81. package/dist/cjs/plugins/status/ui/statusPicker.js +8 -2
  82. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +42 -8
  83. package/dist/cjs/plugins/text-formatting/ui/Toolbar/dropdown-menu.js +22 -2
  84. package/dist/cjs/plugins/text-formatting/ui/Toolbar/index.js +3 -1
  85. package/dist/cjs/plugins/text-formatting/ui/Toolbar/more-button.js +3 -1
  86. package/dist/cjs/plugins/text-formatting/utils.js +1 -10
  87. package/dist/cjs/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +19 -1
  88. package/dist/cjs/plugins/type-ahead/index.js +1 -1
  89. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +79 -106
  90. package/dist/cjs/types/get-editor-props.js +5 -0
  91. package/dist/cjs/ui/ChromeCollapsed/index.js +1 -0
  92. package/dist/cjs/ui/CollapsedEditor/index.js +7 -13
  93. package/dist/cjs/ui/ColorPickerButton/index.js +68 -6
  94. package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +1 -1
  95. package/dist/cjs/ui/ContextPanel/context.js +13 -12
  96. package/dist/cjs/ui/Dropdown/index.js +7 -2
  97. package/dist/cjs/ui/DropdownMenu/index.js +7 -2
  98. package/dist/cjs/ui/ElementBrowser/components/CategoryList.js +1 -1
  99. package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +1 -1
  100. package/dist/cjs/ui/ElementBrowser/components/StatelessElementBrowser.js +1 -1
  101. package/dist/cjs/ui/PanelTextInput/index.js +4 -4
  102. package/dist/cjs/ui/PortalProvider/index.js +5 -5
  103. package/dist/cjs/ui/WidthEmitter/index.js +29 -35
  104. package/dist/cjs/utils/document.js +15 -0
  105. package/dist/cjs/utils/extensions.js +6 -7
  106. package/dist/cjs/utils/get-editor-plugins.js +32 -0
  107. package/dist/cjs/utils/linking-utils.js +1 -1
  108. package/dist/cjs/utils/performance/components/RenderTracking.js +1 -1
  109. package/dist/cjs/utils/performance/safer-transactions.js +1 -1
  110. package/dist/cjs/utils/prepare-extension-provider.js +25 -0
  111. package/dist/cjs/version-wrapper.js +1 -1
  112. package/dist/cjs/version.json +1 -1
  113. package/dist/es2019/actions/index.js +2 -2
  114. package/dist/es2019/create-editor/ReactEditorView.js +6 -708
  115. package/dist/es2019/create-editor/ReactEditorViewInternal.js +712 -0
  116. package/dist/es2019/create-editor/ReactEditorViewNext.js +7 -0
  117. package/dist/es2019/create-editor/create-plugins-list.js +1 -0
  118. package/dist/es2019/create-editor/feature-flags-from-props.js +3 -2
  119. package/dist/es2019/editor-next/editor-internal.js +142 -0
  120. package/dist/es2019/editor-next/editor-migration-component.js +10 -0
  121. package/dist/es2019/editor-next/hooks/useEditorMeasuresConstructor.js +30 -0
  122. package/dist/es2019/editor-next/hooks/useMeasureEditorMountTime.js +35 -0
  123. package/dist/es2019/editor-next/hooks/useProviderFactory.js +61 -0
  124. package/dist/es2019/editor-next/index.js +90 -0
  125. package/dist/es2019/editor-next/utils/deprecationWarnings.js +39 -0
  126. package/dist/es2019/editor-next/utils/editorMeasureTTICallback.js +40 -0
  127. package/dist/es2019/editor-next/utils/editorPropTypes.js +29 -0
  128. package/dist/es2019/editor-next/utils/getBaseFontSize.js +11 -0
  129. package/dist/es2019/editor-next/utils/handleProviders.js +52 -0
  130. package/dist/es2019/editor-next/utils/onEditorCreated.js +21 -0
  131. package/dist/es2019/editor-next/utils/sendDurationAnalytics.js +40 -0
  132. package/dist/es2019/editor-next/utils/trackEditorActions.js +78 -0
  133. package/dist/es2019/editor.js +111 -396
  134. package/dist/es2019/index.js +2 -1
  135. package/dist/es2019/labs/next/internal/hooks/use-analytics/index.js +2 -2
  136. package/dist/es2019/labs/next/internal/hooks/use-editor/create-dispatch-transaction.js +2 -3
  137. package/dist/es2019/labs/next/presets/create-stub-internal-apis.js +105 -0
  138. package/dist/es2019/labs/next/presets/preset.js +0 -3
  139. package/dist/es2019/labs/next/presets/universal.js +13 -2
  140. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +41 -12
  141. package/dist/es2019/plugins/analytics/index.js +3 -4
  142. package/dist/es2019/plugins/analytics/plugin.js +1 -2
  143. package/dist/es2019/plugins/analytics/utils.js +0 -4
  144. package/dist/es2019/plugins/base/pm-plugins/filter-steps.js +1 -1
  145. package/dist/es2019/plugins/base/pm-plugins/frozen-editor.js +96 -58
  146. package/dist/es2019/plugins/base/utils/input-latency-tracking.js +23 -23
  147. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -0
  148. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/index.js +31 -5
  149. package/dist/es2019/plugins/card/nodeviews/blockCard.js +4 -1
  150. package/dist/es2019/plugins/card/nodeviews/genericCard.js +16 -2
  151. package/dist/es2019/plugins/card/pm-plugins/main.js +3 -1
  152. package/dist/es2019/plugins/clipboard/pm-plugins/main.js +3 -1
  153. package/dist/es2019/plugins/collab-edit/plugin.js +1 -2
  154. package/dist/es2019/plugins/extension/toolbar.js +7 -1
  155. package/dist/es2019/plugins/find-replace/ui/FindReplaceToolbarButton.js +5 -1
  156. package/dist/es2019/plugins/floating-toolbar/ui/Button.js +2 -0
  157. package/dist/es2019/plugins/floating-toolbar/ui/CheckboxModal.js +5 -3
  158. package/dist/es2019/plugins/floating-toolbar/ui/Dropdown.js +35 -7
  159. package/dist/es2019/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +2 -2
  160. package/dist/es2019/plugins/floating-toolbar/ui/ScrollButtons.js +12 -7
  161. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +11 -0
  162. package/dist/es2019/plugins/fragment/pm-plugins/fragment-consistency.js +1 -0
  163. package/dist/es2019/plugins/hyperlink/analytics.js +1 -1
  164. package/dist/es2019/plugins/hyperlink/index.js +1 -1
  165. package/dist/es2019/plugins/hyperlink/pm-plugins/main.js +8 -4
  166. package/dist/es2019/plugins/hyperlink/ui/EditorLinkPicker/index.js +9 -3
  167. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  168. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -2
  169. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -0
  170. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +1 -0
  171. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +3 -0
  172. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +1 -0
  173. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +24 -0
  174. package/dist/es2019/plugins/media/commands/helpers.js +9 -35
  175. package/dist/es2019/plugins/media/commands/index.js +1 -1
  176. package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +3 -3
  177. package/dist/es2019/plugins/media/nodeviews/mediaInline.js +1 -1
  178. package/dist/es2019/plugins/media/nodeviews/mediaNodeUpdater.js +70 -37
  179. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +1 -1
  180. package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +1 -1
  181. package/dist/es2019/plugins/media/pm-plugins/main.js +3 -30
  182. package/dist/es2019/plugins/media/toolbar/filePreviewItem.js +1 -4
  183. package/dist/es2019/plugins/panel/utils.js +4 -1
  184. package/dist/es2019/plugins/paste/handlers.js +127 -5
  185. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +10 -4
  186. package/dist/es2019/plugins/paste/pm-plugins/main.js +13 -4
  187. package/dist/es2019/plugins/placeholder-text/index.js +1 -1
  188. package/dist/es2019/plugins/status/index.js +8 -2
  189. package/dist/es2019/plugins/status/ui/statusPicker.js +8 -2
  190. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +42 -8
  191. package/dist/es2019/plugins/text-formatting/ui/Toolbar/dropdown-menu.js +20 -3
  192. package/dist/es2019/plugins/text-formatting/ui/Toolbar/index.js +4 -2
  193. package/dist/es2019/plugins/text-formatting/ui/Toolbar/more-button.js +3 -1
  194. package/dist/es2019/plugins/text-formatting/utils.js +0 -8
  195. package/dist/es2019/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +16 -1
  196. package/dist/es2019/plugins/type-ahead/index.js +1 -1
  197. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +73 -92
  198. package/dist/es2019/types/get-editor-props.js +1 -0
  199. package/dist/es2019/ui/ChromeCollapsed/index.js +1 -0
  200. package/dist/es2019/ui/CollapsedEditor/index.js +7 -11
  201. package/dist/es2019/ui/ColorPickerButton/index.js +61 -8
  202. package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +1 -1
  203. package/dist/es2019/ui/ContextPanel/context.js +5 -4
  204. package/dist/es2019/ui/Dropdown/index.js +5 -2
  205. package/dist/es2019/ui/DropdownMenu/index.js +5 -2
  206. package/dist/es2019/ui/ElementBrowser/components/CategoryList.js +1 -1
  207. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +1 -1
  208. package/dist/es2019/ui/ElementBrowser/components/StatelessElementBrowser.js +1 -1
  209. package/dist/es2019/ui/PanelTextInput/index.js +3 -3
  210. package/dist/es2019/ui/PortalProvider/index.js +1 -1
  211. package/dist/es2019/ui/WidthEmitter/index.js +25 -29
  212. package/dist/es2019/utils/document.js +11 -1
  213. package/dist/es2019/utils/extensions.js +1 -3
  214. package/dist/es2019/utils/get-editor-plugins.js +25 -0
  215. package/dist/es2019/utils/linking-utils.js +1 -1
  216. package/dist/es2019/utils/performance/components/RenderTracking.js +1 -1
  217. package/dist/es2019/utils/performance/safer-transactions.js +1 -1
  218. package/dist/es2019/utils/prepare-extension-provider.js +13 -0
  219. package/dist/es2019/version-wrapper.js +1 -1
  220. package/dist/es2019/version.json +1 -1
  221. package/dist/esm/actions/index.js +2 -2
  222. package/dist/esm/create-editor/ReactEditorView.js +12 -763
  223. package/dist/esm/create-editor/ReactEditorViewInternal.js +776 -0
  224. package/dist/esm/create-editor/ReactEditorViewNext.js +7 -0
  225. package/dist/esm/create-editor/create-plugins-list.js +1 -0
  226. package/dist/esm/create-editor/feature-flags-from-props.js +3 -2
  227. package/dist/esm/editor-next/editor-internal.js +141 -0
  228. package/dist/esm/editor-next/editor-migration-component.js +28 -0
  229. package/dist/esm/editor-next/hooks/useEditorMeasuresConstructor.js +30 -0
  230. package/dist/esm/editor-next/hooks/useMeasureEditorMountTime.js +35 -0
  231. package/dist/esm/editor-next/hooks/useProviderFactory.js +65 -0
  232. package/dist/esm/editor-next/index.js +134 -0
  233. package/dist/esm/editor-next/utils/deprecationWarnings.js +39 -0
  234. package/dist/esm/editor-next/utils/editorMeasureTTICallback.js +38 -0
  235. package/dist/esm/editor-next/utils/editorPropTypes.js +28 -0
  236. package/dist/esm/editor-next/utils/getBaseFontSize.js +11 -0
  237. package/dist/esm/editor-next/utils/handleProviders.js +50 -0
  238. package/dist/esm/editor-next/utils/onEditorCreated.js +21 -0
  239. package/dist/esm/editor-next/utils/sendDurationAnalytics.js +61 -0
  240. package/dist/esm/editor-next/utils/trackEditorActions.js +94 -0
  241. package/dist/esm/editor.js +130 -440
  242. package/dist/esm/index.js +2 -1
  243. package/dist/esm/labs/next/internal/hooks/use-analytics/index.js +2 -2
  244. package/dist/esm/labs/next/internal/hooks/use-editor/create-dispatch-transaction.js +2 -3
  245. package/dist/esm/labs/next/presets/create-stub-internal-apis.js +110 -0
  246. package/dist/esm/labs/next/presets/preset.js +0 -5
  247. package/dist/esm/labs/next/presets/universal.js +11 -2
  248. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +48 -13
  249. package/dist/esm/plugins/analytics/index.js +3 -4
  250. package/dist/esm/plugins/analytics/plugin.js +1 -2
  251. package/dist/esm/plugins/analytics/utils.js +0 -9
  252. package/dist/esm/plugins/base/pm-plugins/filter-steps.js +1 -1
  253. package/dist/esm/plugins/base/pm-plugins/frozen-editor.js +98 -56
  254. package/dist/esm/plugins/base/utils/input-latency-tracking.js +24 -25
  255. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -0
  256. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/index.js +36 -9
  257. package/dist/esm/plugins/card/nodeviews/blockCard.js +2 -1
  258. package/dist/esm/plugins/card/nodeviews/genericCard.js +16 -2
  259. package/dist/esm/plugins/card/pm-plugins/main.js +4 -2
  260. package/dist/esm/plugins/clipboard/pm-plugins/main.js +4 -1
  261. package/dist/esm/plugins/collab-edit/plugin.js +1 -2
  262. package/dist/esm/plugins/extension/toolbar.js +7 -1
  263. package/dist/esm/plugins/find-replace/ui/FindReplaceToolbarButton.js +5 -1
  264. package/dist/esm/plugins/floating-toolbar/ui/Button.js +2 -0
  265. package/dist/esm/plugins/floating-toolbar/ui/CheckboxModal.js +5 -3
  266. package/dist/esm/plugins/floating-toolbar/ui/Dropdown.js +38 -9
  267. package/dist/esm/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +23 -21
  268. package/dist/esm/plugins/floating-toolbar/ui/ScrollButtons.js +12 -7
  269. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +11 -0
  270. package/dist/esm/plugins/fragment/pm-plugins/fragment-consistency.js +1 -0
  271. package/dist/esm/plugins/hyperlink/analytics.js +1 -1
  272. package/dist/esm/plugins/hyperlink/index.js +1 -1
  273. package/dist/esm/plugins/hyperlink/pm-plugins/main.js +9 -5
  274. package/dist/esm/plugins/hyperlink/ui/EditorLinkPicker/index.js +10 -4
  275. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  276. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -2
  277. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -0
  278. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +1 -0
  279. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +3 -0
  280. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +1 -0
  281. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -0
  282. package/dist/esm/plugins/media/commands/helpers.js +9 -35
  283. package/dist/esm/plugins/media/commands/index.js +1 -1
  284. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +14 -12
  285. package/dist/esm/plugins/media/nodeviews/mediaInline.js +1 -1
  286. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +311 -206
  287. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +1 -1
  288. package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +1 -1
  289. package/dist/esm/plugins/media/pm-plugins/main.js +3 -28
  290. package/dist/esm/plugins/media/toolbar/filePreviewItem.js +1 -4
  291. package/dist/esm/plugins/panel/utils.js +4 -1
  292. package/dist/esm/plugins/paste/handlers.js +127 -13
  293. package/dist/esm/plugins/paste/pm-plugins/analytics.js +13 -5
  294. package/dist/esm/plugins/paste/pm-plugins/main.js +13 -4
  295. package/dist/esm/plugins/placeholder-text/index.js +2 -2
  296. package/dist/esm/plugins/status/index.js +9 -3
  297. package/dist/esm/plugins/status/ui/statusPicker.js +8 -2
  298. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +42 -8
  299. package/dist/esm/plugins/text-formatting/ui/Toolbar/dropdown-menu.js +23 -3
  300. package/dist/esm/plugins/text-formatting/ui/Toolbar/index.js +4 -2
  301. package/dist/esm/plugins/text-formatting/ui/Toolbar/more-button.js +3 -1
  302. package/dist/esm/plugins/text-formatting/utils.js +0 -8
  303. package/dist/esm/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +19 -1
  304. package/dist/esm/plugins/type-ahead/index.js +1 -1
  305. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +79 -106
  306. package/dist/esm/types/get-editor-props.js +1 -0
  307. package/dist/esm/ui/ChromeCollapsed/index.js +1 -0
  308. package/dist/esm/ui/CollapsedEditor/index.js +7 -13
  309. package/dist/esm/ui/ColorPickerButton/index.js +69 -7
  310. package/dist/esm/ui/ConfigPanel/ConfigPanel.js +1 -1
  311. package/dist/esm/ui/ContextPanel/context.js +8 -8
  312. package/dist/esm/ui/Dropdown/index.js +7 -2
  313. package/dist/esm/ui/DropdownMenu/index.js +7 -2
  314. package/dist/esm/ui/ElementBrowser/components/CategoryList.js +1 -1
  315. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +1 -1
  316. package/dist/esm/ui/ElementBrowser/components/StatelessElementBrowser.js +1 -1
  317. package/dist/esm/ui/PanelTextInput/index.js +4 -4
  318. package/dist/esm/ui/PortalProvider/index.js +1 -1
  319. package/dist/esm/ui/WidthEmitter/index.js +28 -37
  320. package/dist/esm/utils/document.js +15 -1
  321. package/dist/esm/utils/extensions.js +1 -3
  322. package/dist/esm/utils/get-editor-plugins.js +25 -0
  323. package/dist/esm/utils/linking-utils.js +1 -1
  324. package/dist/esm/utils/performance/components/RenderTracking.js +1 -1
  325. package/dist/esm/utils/performance/safer-transactions.js +1 -1
  326. package/dist/esm/utils/prepare-extension-provider.js +17 -0
  327. package/dist/esm/version-wrapper.js +1 -1
  328. package/dist/esm/version.json +1 -1
  329. package/dist/types/actions/index.d.ts +2 -2
  330. package/dist/types/create-editor/ReactEditorView.d.ts +7 -109
  331. package/dist/types/create-editor/ReactEditorViewInternal.d.ts +112 -0
  332. package/dist/types/create-editor/ReactEditorViewNext.d.ts +9 -0
  333. package/dist/types/editor-next/editor-internal.d.ts +44 -0
  334. package/dist/types/editor-next/editor-migration-component.d.ts +5 -0
  335. package/dist/types/editor-next/hooks/useEditorMeasuresConstructor.d.ts +17 -0
  336. package/dist/types/editor-next/hooks/useMeasureEditorMountTime.d.ts +13 -0
  337. package/dist/types/editor-next/hooks/useProviderFactory.d.ts +21 -0
  338. package/dist/types/editor-next/index.d.ts +34 -0
  339. package/dist/types/editor-next/utils/deprecationWarnings.d.ts +2 -0
  340. package/dist/types/editor-next/utils/editorMeasureTTICallback.d.ts +5 -0
  341. package/dist/types/editor-next/utils/editorPropTypes.d.ts +19 -0
  342. package/dist/types/editor-next/utils/getBaseFontSize.d.ts +6 -0
  343. package/dist/types/editor-next/utils/handleProviders.d.ts +14 -0
  344. package/dist/types/editor-next/utils/onEditorCreated.d.ts +12 -0
  345. package/dist/types/editor-next/utils/sendDurationAnalytics.d.ts +15 -0
  346. package/dist/types/editor-next/utils/trackEditorActions.d.ts +29 -0
  347. package/dist/types/editor.d.ts +47 -25
  348. package/dist/types/index.d.ts +1 -0
  349. package/dist/types/labs/next/internal/hooks/use-analytics/index.d.ts +1 -1
  350. package/dist/types/labs/next/presets/create-stub-internal-apis.d.ts +16 -0
  351. package/dist/types/labs/next/presets/preset.d.ts +6 -6
  352. package/dist/types/labs/next/presets/universal.d.ts +1 -1
  353. package/dist/types/plugins/alignment/index.d.ts +1 -1
  354. package/dist/types/plugins/alignment/ui/ToolbarAlignment/index.d.ts +3 -1
  355. package/dist/types/plugins/analytics/index.d.ts +3 -6
  356. package/dist/types/plugins/analytics/plugin.d.ts +3 -1
  357. package/dist/types/plugins/analytics/utils.d.ts +2 -3
  358. package/dist/types/plugins/annotation/index.d.ts +3 -1
  359. package/dist/types/plugins/avatar-group/index.d.ts +3 -1
  360. package/dist/types/plugins/base/index.d.ts +3 -1
  361. package/dist/types/plugins/base/pm-plugins/filter-steps.d.ts +1 -1
  362. package/dist/types/plugins/base/utils/input-latency-tracking.d.ts +1 -3
  363. package/dist/types/plugins/before-primaryToolbar/index.d.ts +3 -1
  364. package/dist/types/plugins/block-type/index.d.ts +3 -1
  365. package/dist/types/plugins/block-type/ui/ToolbarBlockType/blocktype-button.d.ts +1 -0
  366. package/dist/types/plugins/block-type/ui/ToolbarBlockType/index.d.ts +1 -0
  367. package/dist/types/plugins/breakout/index.d.ts +3 -1
  368. package/dist/types/plugins/card/index.d.ts +3 -1
  369. package/dist/types/plugins/card/nodeviews/genericCard.d.ts +1 -1
  370. package/dist/types/plugins/card/pm-plugins/util/state.d.ts +1 -0
  371. package/dist/types/plugins/card/types.d.ts +3 -0
  372. package/dist/types/plugins/code-bidi-warning/index.d.ts +3 -1
  373. package/dist/types/plugins/code-block/index.d.ts +3 -1
  374. package/dist/types/plugins/collab-edit/index.d.ts +3 -1
  375. package/dist/types/plugins/context-panel/index.d.ts +1 -1
  376. package/dist/types/plugins/emoji/index.d.ts +3 -1
  377. package/dist/types/plugins/expand/index.d.ts +3 -1
  378. package/dist/types/plugins/extension/index.d.ts +3 -1
  379. package/dist/types/plugins/extension/toolbar.d.ts +5 -0
  380. package/dist/types/plugins/feature-flags-context/index.d.ts +3 -1
  381. package/dist/types/plugins/feedback-dialog/index.d.ts +3 -1
  382. package/dist/types/plugins/find-replace/index.d.ts +3 -1
  383. package/dist/types/plugins/floating-toolbar/ui/Button.d.ts +2 -1
  384. package/dist/types/plugins/floating-toolbar/ui/Dropdown.d.ts +5 -2
  385. package/dist/types/plugins/grid/index.d.ts +3 -1
  386. package/dist/types/plugins/help-dialog/index.d.ts +3 -1
  387. package/dist/types/plugins/hyperlink/analytics.d.ts +1 -1
  388. package/dist/types/plugins/hyperlink/index.d.ts +3 -1
  389. package/dist/types/plugins/hyperlink/pm-plugins/main.d.ts +4 -2
  390. package/dist/types/plugins/hyperlink/types.d.ts +3 -1
  391. package/dist/types/plugins/hyperlink/ui/EditorLinkPicker/index.d.ts +3 -1
  392. package/dist/types/plugins/insert-block/index.d.ts +3 -1
  393. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.d.ts +1 -0
  394. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.d.ts +1 -0
  395. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.d.ts +1 -0
  396. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.d.ts +1 -0
  397. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/index.d.ts +1 -0
  398. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/types.d.ts +1 -0
  399. package/dist/types/plugins/layout/index.d.ts +3 -1
  400. package/dist/types/plugins/list/index.d.ts +3 -1
  401. package/dist/types/plugins/max-content-size/index.d.ts +3 -1
  402. package/dist/types/plugins/media/commands/helpers.d.ts +5 -12
  403. package/dist/types/plugins/media/commands/index.d.ts +1 -1
  404. package/dist/types/plugins/media/index.d.ts +3 -1
  405. package/dist/types/plugins/media/nodeviews/__mocks__/mediaNodeUpdater.d.ts +3 -1
  406. package/dist/types/plugins/media/nodeviews/mediaNodeUpdater.d.ts +4 -1
  407. package/dist/types/plugins/media/pm-plugins/main.d.ts +1 -4
  408. package/dist/types/plugins/media/pm-plugins/types.d.ts +1 -4
  409. package/dist/types/plugins/mentions/index.d.ts +3 -1
  410. package/dist/types/plugins/panel/index.d.ts +3 -1
  411. package/dist/types/plugins/paste/handlers.d.ts +2 -1
  412. package/dist/types/plugins/paste/index.d.ts +3 -1
  413. package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +4 -1
  414. package/dist/types/plugins/placeholder/index.d.ts +3 -1
  415. package/dist/types/plugins/placeholder-text/index.d.ts +3 -1
  416. package/dist/types/plugins/quick-insert/index.d.ts +3 -1
  417. package/dist/types/plugins/save-on-enter/index.d.ts +3 -1
  418. package/dist/types/plugins/selection/index.d.ts +3 -1
  419. package/dist/types/plugins/status/index.d.ts +3 -1
  420. package/dist/types/plugins/status/ui/statusPicker.d.ts +3 -0
  421. package/dist/types/plugins/submit-editor/index.d.ts +3 -1
  422. package/dist/types/plugins/tasks-and-decisions/index.d.ts +3 -1
  423. package/dist/types/plugins/text-color/index.d.ts +3 -1
  424. package/dist/types/plugins/text-color/ui/ToolbarTextColor/index.d.ts +2 -0
  425. package/dist/types/plugins/text-formatting/index.d.ts +3 -1
  426. package/dist/types/plugins/text-formatting/ui/Toolbar/more-button.d.ts +2 -1
  427. package/dist/types/plugins/text-formatting/utils.d.ts +0 -1
  428. package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +3 -1
  429. package/dist/types/plugins/type-ahead/index.d.ts +3 -1
  430. package/dist/types/types/get-editor-props.d.ts +12 -0
  431. package/dist/types/types/performance-tracking.d.ts +10 -0
  432. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +29 -29
  433. package/dist/types/ui/CollapsedEditor/index.d.ts +4 -3
  434. package/dist/types/ui/ColorPickerButton/index.d.ts +2 -1
  435. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  436. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  437. package/dist/types/ui/ContextPanel/context.d.ts +2 -1
  438. package/dist/types/ui/PanelTextInput/index.d.ts +1 -1
  439. package/dist/types/ui/PortalProvider/index.d.ts +1 -1
  440. package/dist/types/utils/document.d.ts +4 -3
  441. package/dist/types/utils/get-editor-plugins.d.ts +10 -0
  442. package/dist/types/utils/linking-utils.d.ts +1 -1
  443. package/dist/types/utils/performance/components/RenderTracking.d.ts +1 -1
  444. package/dist/types/utils/performance/instrumented-plugin.d.ts +1 -1
  445. package/dist/types/utils/performance/safer-transactions.d.ts +1 -1
  446. package/dist/types/utils/prepare-extension-provider.d.ts +5 -0
  447. package/docs/0-intro.tsx +0 -1
  448. package/package.json +27 -26
  449. package/report.api.md +193 -139
  450. package/dist/cjs/plugins/analytics/analytics-queue.js +0 -79
  451. package/dist/cjs/plugins/analytics/fire-analytics-event.js +0 -35
  452. package/dist/es2019/plugins/analytics/analytics-queue.js +0 -53
  453. package/dist/es2019/plugins/analytics/fire-analytics-event.js +0 -26
  454. package/dist/esm/plugins/analytics/analytics-queue.js +0 -71
  455. package/dist/esm/plugins/analytics/fire-analytics-event.js +0 -28
  456. package/dist/types/plugins/analytics/analytics-queue.d.ts +0 -10
  457. package/dist/types/plugins/analytics/fire-analytics-event.d.ts +0 -9
@@ -2,6 +2,8 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { IntlProviderIfMissingWrapper } from '@atlaskit/editor-common/ui';
3
3
  import React from 'react';
4
4
  import Editor from '../../editor';
5
+ import EditorNext from '../../editor-next';
6
+ import EditorMigrationComponent from '../../editor-next/editor-migration-component';
5
7
  import EditorWithActions from '../../labs/EditorWithActions';
6
8
  import ChromeCollapsed from '../ChromeCollapsed';
7
9
  export default class CollapsedEditor extends React.Component {
@@ -14,22 +16,16 @@ export default class CollapsedEditor extends React.Component {
14
16
  this.editorComponent = editorRef;
15
17
  });
16
18
  }
17
- UNSAFE_componentWillReceiveProps(nextProps) {
18
- if (!this.props.isExpanded && nextProps.isExpanded) {
19
- this.shouldTriggerExpandEvent = true;
20
- }
21
- }
22
19
  componentDidUpdate() {
23
- if (this.shouldTriggerExpandEvent && this.editorComponent) {
24
- this.shouldTriggerExpandEvent = false;
25
- if (this.props.onExpand) {
26
- this.props.onExpand();
27
- }
20
+ if (this.props.isExpanded && this.editorComponent && (!this.previouslyExpanded || this.previouslyExpanded === undefined)) {
21
+ var _this$props$onExpand, _this$props;
22
+ (_this$props$onExpand = (_this$props = this.props).onExpand) === null || _this$props$onExpand === void 0 ? void 0 : _this$props$onExpand.call(_this$props);
28
23
  }
24
+ this.previouslyExpanded = this.props.isExpanded;
29
25
  }
30
26
  render() {
31
27
  const child = React.Children.only(this.props.children);
32
- if (child.type !== Editor && child.type !== EditorWithActions) {
28
+ if (child.type !== Editor && child.type !== EditorWithActions && child.type !== EditorNext && child.type !== EditorMigrationComponent) {
33
29
  throw new Error('Expected child to be of type `Editor`');
34
30
  }
35
31
  if (!this.props.isExpanded) {
@@ -2,9 +2,12 @@
2
2
  import React from 'react';
3
3
  import { css, jsx } from '@emotion/react';
4
4
  import { Popup, withOuterListeners } from '@atlaskit/editor-common/ui';
5
+ import { ArrowKeyNavigationProvider, ArrowKeyNavigationType } from '@atlaskit/editor-common/ui-menu';
6
+ import { getSelectedRowAndColumnFromPalette } from '@atlaskit/editor-common/ui-color';
5
7
  import Button from '@atlaskit/button';
6
8
  import Tooltip from '@atlaskit/tooltip';
7
- import { N60A } from '@atlaskit/theme/colors';
9
+ import { DN50, N0, N60A } from '@atlaskit/theme/colors';
10
+ import { themed } from '@atlaskit/theme/components';
8
11
  import { borderRadius } from '@atlaskit/theme/constants';
9
12
  import ColorPalette from '../ColorPalette';
10
13
  import { DEFAULT_BORDER_COLOR } from '../ColorPalette/Palettes/common';
@@ -19,9 +22,12 @@ const colorPickerButtonWrapper = css`
19
22
  // Control the size of color picker buttons and preview
20
23
  // TODO: https://product-fabric.atlassian.net/browse/DSP-4134
21
24
  /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
22
- const colorPickerWrapper = css`
25
+ const colorPickerWrapper = theme => css`
23
26
  border-radius: ${borderRadius()}px;
24
- background-color: white;
27
+ background-color: ${themed({
28
+ light: `var(--ds-surface-overlay, ${N0})`,
29
+ dark: `var(--ds-surface-overlay, ${DN50})`
30
+ })(theme)};
25
31
  box-shadow: 0 4px 8px -2px ${N60A}, 0 0 1px ${N60A};
26
32
  padding: 8px 0px;
27
33
  `;
@@ -31,8 +37,14 @@ const ColorPickerButton = props => {
31
37
  var _props$size, _props$size2;
32
38
  const buttonRef = React.useRef(null);
33
39
  const [isPopupOpen, setIsPopupOpen] = React.useState(false);
40
+ const [isPopupPositioned, setIsPopupPositioned] = React.useState(false);
41
+ const [isOpenedByKeyboard, setIsOpenedByKeyboard] = React.useState(false);
34
42
  const togglePopup = () => {
35
43
  setIsPopupOpen(!isPopupOpen);
44
+ if (!isPopupOpen) {
45
+ setIsOpenedByKeyboard(false);
46
+ setIsPopupPositioned(false);
47
+ }
36
48
  };
37
49
  React.useEffect(() => {
38
50
  if (props.setDisableParentScroll) {
@@ -40,9 +52,25 @@ const ColorPickerButton = props => {
40
52
  }
41
53
  // eslint-disable-next-line react-hooks/exhaustive-deps
42
54
  }, [isPopupOpen]);
55
+ const focusButton = () => {
56
+ var _buttonRef$current;
57
+ (_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.focus();
58
+ };
59
+ const handleEsc = React.useCallback(() => {
60
+ setIsOpenedByKeyboard(false);
61
+ setIsPopupPositioned(false);
62
+ setIsPopupOpen(false);
63
+ focusButton();
64
+ }, []);
65
+ const onPositionCalculated = React.useCallback(position => {
66
+ setIsPopupPositioned(true);
67
+ return position;
68
+ }, []);
43
69
  const ColorPaletteWithListeners = withOuterListeners(ColorPalette);
44
70
  const onColorSelected = (color, label) => {
71
+ setIsOpenedByKeyboard(false);
45
72
  setIsPopupOpen(false);
73
+ setIsPopupPositioned(false);
46
74
  if (props.onChange) {
47
75
  if (props.createAnalyticsEvent) {
48
76
  // fire analytics
@@ -62,11 +90,17 @@ const ColorPickerButton = props => {
62
90
  const newPalette = props.colorPalette.find(colorPalette => colorPalette.value === color);
63
91
  newPalette && props.onChange(newPalette);
64
92
  }
93
+ focusButton();
65
94
  };
66
95
  const renderPopup = () => {
67
96
  if (!isPopupOpen || !buttonRef.current) {
68
97
  return;
69
98
  }
99
+ const selectedColor = props.currentColor || null;
100
+ const {
101
+ selectedRowIndex,
102
+ selectedColumnIndex
103
+ } = getSelectedRowAndColumnFromPalette(props.colorPalette, selectedColor, props.cols);
70
104
  return jsx(Popup, {
71
105
  target: buttonRef.current,
72
106
  fitHeight: 350,
@@ -79,19 +113,31 @@ const ColorPickerButton = props => {
79
113
  // we need an index of > 500 to display over it
80
114
  ,
81
115
  zIndex: props.setDisableParentScroll ? 600 : undefined,
82
- ariaLabel: "Color picker popup"
116
+ ariaLabel: "Color picker popup",
117
+ onPositionCalculated: onPositionCalculated
83
118
  }, jsx("div", {
84
119
  css: colorPickerWrapper,
85
120
  "data-test-id": "color-picker-menu"
121
+ }, jsx(ArrowKeyNavigationProvider, {
122
+ type: ArrowKeyNavigationType.COLOR,
123
+ selectedRowIndex: selectedRowIndex,
124
+ selectedColumnIndex: selectedColumnIndex,
125
+ closeOnTab: true,
126
+ handleClose: () => setIsPopupOpen(false),
127
+ isOpenedByKeyboard: isOpenedByKeyboard,
128
+ isPopupPositioned: isPopupPositioned
86
129
  }, jsx(ColorPaletteWithListeners, {
87
130
  palette: props.colorPalette,
88
131
  cols: props.cols,
89
- selectedColor: props.currentColor || null,
132
+ selectedColor: selectedColor,
90
133
  onClick: onColorSelected,
91
- handleClickOutside: togglePopup
92
- })));
134
+ handleClickOutside: togglePopup,
135
+ handleEscapeKeydown: handleEsc,
136
+ hexToPaletteColor: props.hexToPaletteColor
137
+ }))));
93
138
  };
94
139
  const title = props.title || '';
140
+ const currentColor = props.currentColor && props.hexToPaletteColor ? props.hexToPaletteColor(props.currentColor) : props.currentColor;
95
141
  const buttonStyle = css`
96
142
  padding: 6px;
97
143
  background-color: ${"var(--ds-background-neutral, transparent)"};
@@ -103,7 +149,7 @@ const ColorPickerButton = props => {
103
149
  content: '';
104
150
  border: 1px solid ${DEFAULT_BORDER_COLOR};
105
151
  border-radius: ${borderRadius()}px;
106
- background-color: ${props.currentColor || 'transparent'};
152
+ background-color: ${currentColor || 'transparent'};
107
153
  width: ${((_props$size = props.size) === null || _props$size === void 0 ? void 0 : _props$size.width) || 14}px;
108
154
  height: ${((_props$size2 = props.size) === null || _props$size2 === void 0 ? void 0 : _props$size2.height) || 14}px;
109
155
  padding: 0;
@@ -119,6 +165,13 @@ const ColorPickerButton = props => {
119
165
  "aria-label": title,
120
166
  spacing: "compact",
121
167
  onClick: togglePopup,
168
+ onKeyDown: event => {
169
+ if (event.key === 'Enter' || event.key === ' ') {
170
+ event.preventDefault();
171
+ togglePopup();
172
+ setIsOpenedByKeyboard(true);
173
+ }
174
+ },
122
175
  css: buttonStyle
123
176
  })), renderPopup());
124
177
  };
@@ -7,7 +7,7 @@ import Form from '@atlaskit/form';
7
7
  import { isTabGroup } from '@atlaskit/editor-common/extensions';
8
8
  import _isEqual from 'lodash/isEqual';
9
9
  import _mergeRecursive from 'lodash/merge';
10
- import { fireAnalyticsEvent, EVENT_TYPE, ACTION_SUBJECT, ACTION } from '../../plugins/analytics';
10
+ import { fireAnalyticsEvent, EVENT_TYPE, ACTION_SUBJECT, ACTION } from '@atlaskit/editor-common/analytics';
11
11
  import LoadingState from './LoadingState';
12
12
  import Header from './Header';
13
13
  import ErrorMessage from './ErrorMessage';
@@ -16,10 +16,7 @@ import React from 'react';
16
16
  // able to position and add margins to handle certain elements like inline comment dialogues overlapping the context
17
17
  // panel
18
18
 
19
- const {
20
- Provider,
21
- Consumer
22
- } = /*#__PURE__*/React.createContext({
19
+ export const ContextPanel = /*#__PURE__*/React.createContext({
23
20
  width: 0,
24
21
  positionedOverEditor: false,
25
22
  broadcastWidth: () => {},
@@ -62,4 +59,8 @@ export class ContextPanelWidthProvider extends React.Component {
62
59
  }, this.props.children);
63
60
  }
64
61
  }
62
+ const {
63
+ Provider,
64
+ Consumer
65
+ } = ContextPanel;
65
66
  export { Provider as ContextPanelProvider, Consumer as ContextPanelConsumer };
@@ -5,13 +5,16 @@ import { KeyDownHandlerContext } from '../ToolbarArrowKeyNavigationProvider';
5
5
  const Dropdown = /*#__PURE__*/React.memo(({
6
6
  ...props
7
7
  }) => {
8
- const keydownHandlerContext = useContext(KeyDownHandlerContext);
8
+ const keyDownHandlerContext = useContext(KeyDownHandlerContext);
9
9
  return (
10
10
  /*#__PURE__*/
11
11
  //This context is to handle the tab, Arrow Right/Left key events for dropdown.
12
12
  //Default context has the void callbacks for above key events
13
13
  React.createElement(DropdownComponent, _extends({
14
- keyDownHandlerContext: keydownHandlerContext
14
+ arrowKeyNavigationProviderOptions: {
15
+ ...props.arrowKeyNavigationProviderOptions,
16
+ keyDownHandlerContext
17
+ }
15
18
  }, props))
16
19
  );
17
20
  });
@@ -5,11 +5,14 @@ import { KeyDownHandlerContext } from '../ToolbarArrowKeyNavigationProvider';
5
5
  const DropdownMenu = /*#__PURE__*/React.memo(({
6
6
  ...props
7
7
  }) => {
8
- const keydownHandlerContext = useContext(KeyDownHandlerContext);
8
+ const keyDownHandlerContext = useContext(KeyDownHandlerContext);
9
9
  //This context is to handle the tab, Arrow Right/Left key events for dropdown.
10
10
  //Default context has the void callbacks for above key events
11
11
  return /*#__PURE__*/React.createElement(DropdownComponent, _extends({
12
- keyDownHandlerContext: keydownHandlerContext
12
+ arrowKeyNavigationProviderOptions: {
13
+ ...props.arrowKeyNavigationProviderOptions,
14
+ keyDownHandlerContext
15
+ }
13
16
  }, props));
14
17
  });
15
18
  export default DropdownMenu;
@@ -7,7 +7,7 @@ import Button from '@atlaskit/button/custom-theme-button';
7
7
  import { withAnalyticsContext } from '@atlaskit/analytics-next';
8
8
  import { DEVICE_BREAKPOINT_NUMBERS, GRID_SIZE } from '../constants';
9
9
  import useFocus from '../hooks/use-focus';
10
- import { fireAnalyticsEvent, EVENT_TYPE, ACTION_SUBJECT, ACTION_SUBJECT_ID, ACTION } from '../../../plugins/analytics';
10
+ import { fireAnalyticsEvent, EVENT_TYPE, ACTION_SUBJECT, ACTION_SUBJECT_ID, ACTION } from '@atlaskit/editor-common/analytics';
11
11
  function CategoryList({
12
12
  categories = [],
13
13
  ...props
@@ -9,7 +9,7 @@ import { B100, N200 } from '@atlaskit/theme/colors';
9
9
  import Tooltip from '@atlaskit/tooltip';
10
10
  import { relativeFontSizeToBase16 } from '@atlaskit/editor-shared-styles';
11
11
  import { withAnalyticsContext } from '@atlaskit/analytics-next';
12
- import { ACTION, ACTION_SUBJECT, EVENT_TYPE, fireAnalyticsEvent } from '../../../../plugins/analytics';
12
+ import { ACTION, ACTION_SUBJECT, EVENT_TYPE, fireAnalyticsEvent } from '@atlaskit/editor-common/analytics';
13
13
  import IconFallback from '../../../../plugins/quick-insert/assets/fallback';
14
14
  import { itemIcon } from '../../../../plugins/type-ahead/ui/TypeAheadListItem';
15
15
  import { shortcutStyle } from '../../../styles';
@@ -4,7 +4,7 @@ import React, { memo, useState, useCallback, useEffect } from 'react';
4
4
  import { css, jsx } from '@emotion/react';
5
5
  import { FormattedMessage } from 'react-intl-next';
6
6
  import { withAnalyticsContext, withAnalyticsEvents } from '@atlaskit/analytics-next';
7
- import { fireAnalyticsEvent, EVENT_TYPE, ACTION_SUBJECT, ACTION } from '../../../plugins/analytics';
7
+ import { fireAnalyticsEvent, EVENT_TYPE, ACTION_SUBJECT, ACTION } from '@atlaskit/editor-common/analytics';
8
8
  import ElementList from './ElementList/ElementList';
9
9
  import CategoryList from './CategoryList';
10
10
  import ElementSearch from './ElementSearch';
@@ -76,10 +76,10 @@ export default class PanelTextInput extends PureComponent {
76
76
  value: props.defaultValue || ''
77
77
  };
78
78
  }
79
- UNSAFE_componentWillReceiveProps(nextProps) {
80
- if (nextProps.defaultValue !== this.props.defaultValue) {
79
+ componentDidUpdate(prevProps) {
80
+ if (prevProps.defaultValue !== this.props.defaultValue) {
81
81
  this.setState({
82
- value: nextProps.defaultValue
82
+ value: this.props.defaultValue
83
83
  });
84
84
  }
85
85
  }
@@ -5,7 +5,7 @@ import { createPortal, unstable_renderSubtreeIntoContainer, unmountComponentAtNo
5
5
  import PropTypes from 'prop-types';
6
6
  import { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';
7
7
  import { EventDispatcher } from '../../event-dispatcher';
8
- import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../../plugins/analytics/types/enums';
8
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
9
9
  import { useIntl, RawIntlProvider, injectIntl } from 'react-intl-next';
10
10
  import { useGlobalTheme } from '@atlaskit/theme/components';
11
11
  import { PortalProviderThemeProviders } from './PortalProviderThemesProvider';
@@ -1,35 +1,31 @@
1
- import React from 'react';
1
+ import React, { useEffect, useContext, useState } from 'react';
2
2
  import { pluginKey as widthPluginKey } from '../../plugins/width';
3
- import { WidthConsumer } from '@atlaskit/editor-common/ui';
4
- import { ContextPanelConsumer } from '../ContextPanel/context';
5
- function useCreateWidthCallbacks({
6
- setContextPanelWidth,
7
- setContainerWidth
8
- }) {
9
- const contextPanelWidthCallback = React.useCallback(({
10
- width
11
- }) => {
12
- setContextPanelWidth(width);
13
- return null;
14
- }, [setContextPanelWidth]);
15
- const containerWidthCallback = React.useCallback(({
16
- width
17
- }) => {
18
- setContainerWidth(width);
19
- return null;
20
- }, [setContainerWidth]);
21
- return [contextPanelWidthCallback, containerWidthCallback];
22
- }
3
+ import { WidthContext } from '@atlaskit/editor-common/ui';
4
+ import { ContextPanel } from '../ContextPanel/context';
5
+ // Why do we need this? Why not just use the width from the context directly rather than this?
6
+ // Well my friend - some of the VR tests break, seemingly due to the fact that existing behaviour
7
+ // assumes the initial value is 0, the width from context may not start from 0 however.
8
+ // We should investigate further if we can remove this entirely but for now we'll do this
9
+ // awkward workaround to keep the behaviour consistent.
10
+ const useListener = contextValue => {
11
+ const [value, setValue] = useState(0);
12
+ useEffect(() => {
13
+ setValue(contextValue);
14
+ }, [contextValue]);
15
+ return value;
16
+ };
23
17
  const WidthEmitter = ({
24
18
  editorView
25
19
  }) => {
26
- const [contextPanelWidth, setContextPanelWidth] = React.useState(0);
27
- const [containerWidth, setContainerWidth] = React.useState(0);
28
- const [contextPanelWidthCallback, containerWidthCallback] = useCreateWidthCallbacks({
29
- setContextPanelWidth,
30
- setContainerWidth
31
- });
32
- React.useEffect(() => {
20
+ const {
21
+ width: contextPanelWidthContext
22
+ } = useContext(ContextPanel);
23
+ const {
24
+ width: containerWidthContext
25
+ } = useContext(WidthContext);
26
+ const containerWidth = useListener(containerWidthContext);
27
+ const contextPanelWidth = useListener(contextPanelWidthContext);
28
+ useEffect(() => {
33
29
  const width = containerWidth - contextPanelWidth;
34
30
  if (width <= 0 || isNaN(width) || !editorView) {
35
31
  return;
@@ -49,6 +45,6 @@ const WidthEmitter = ({
49
45
  dispatch(tr);
50
46
  return () => {};
51
47
  }, [editorView, contextPanelWidth, containerWidth]);
52
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ContextPanelConsumer, null, contextPanelWidthCallback), /*#__PURE__*/React.createElement(WidthConsumer, null, containerWidthCallback));
48
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
53
49
  };
54
50
  export default WidthEmitter;
@@ -1,4 +1,4 @@
1
- import { Node } from 'prosemirror-model';
1
+ import { Node, Fragment } from 'prosemirror-model';
2
2
  import { transformMediaLinkMarks, transformTextLinkCodeMarks, transformDedupeMarks, transformNodesMissingContent, transformIndentationMarks, transformInvalidMediaContent } from '@atlaskit/adf-utils/transforms';
3
3
  import { sanitizeNodeForPrivacy } from '../utils/filter/privacy-filter';
4
4
  import { validateADFEntity, findAndTrackUnsupportedContentNodes } from '@atlaskit/editor-common/utils';
@@ -110,6 +110,16 @@ export function bracketTyped(state) {
110
110
  }
111
111
  return false;
112
112
  }
113
+ export function processRawFragmentValue(schema, value, providerFactory, sanitizePrivateContent, contentTransformer, dispatchAnalyticsEvent) {
114
+ if (!value) {
115
+ return;
116
+ }
117
+ const adfEntities = value.map(item => processRawValue(schema, item, providerFactory, sanitizePrivateContent, contentTransformer, dispatchAnalyticsEvent)).filter(item => Boolean(item));
118
+ if (adfEntities.length === 0) {
119
+ return;
120
+ }
121
+ return Fragment.from(adfEntities);
122
+ }
113
123
  export function processRawValue(schema, value, providerFactory, sanitizePrivateContent, contentTransformer, dispatchAnalyticsEvent) {
114
124
  if (!value) {
115
125
  return;
@@ -2,9 +2,7 @@ import React from 'react';
2
2
  import Loadable from 'react-loadable';
3
3
  import { getQuickInsertItemsFromModule, resolveImport } from '@atlaskit/editor-common/extensions';
4
4
  import { combineProviders } from '@atlaskit/editor-common/provider-helpers';
5
- import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '../plugins/analytics/types/enums';
6
- import { fireAnalyticsEvent } from '../plugins/analytics';
7
-
5
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD, fireAnalyticsEvent } from '@atlaskit/editor-common/analytics';
8
6
  /**
9
7
  * Utils to send analytics event when a extension is inserted using quickInsert
10
8
  */
@@ -0,0 +1,25 @@
1
+ import { createEditorSelectionAPI } from '../selection-api/api';
2
+ import createPluginsList from '../create-editor/create-plugins-list';
3
+
4
+ /**
5
+ *
6
+ * Retrieve the editor props using createPluginList default behaviour.
7
+ *
8
+ * @param GetEditorPlugins props used to initialise the plugins
9
+ * @returns list of editor plugins
10
+ */
11
+ const getEditorPlugins = ({
12
+ props,
13
+ prevAppearance,
14
+ createAnalyticsEvent,
15
+ insertNodeAPI,
16
+ editorAnalyticsAPI
17
+ }) => {
18
+ var _props$dangerouslyApp, _props$dangerouslyApp2;
19
+ const dangerouslyAppendedPlugins = (_props$dangerouslyApp = (_props$dangerouslyApp2 = props.dangerouslyAppendPlugins) === null || _props$dangerouslyApp2 === void 0 ? void 0 : _props$dangerouslyApp2.__plugins) !== null && _props$dangerouslyApp !== void 0 ? _props$dangerouslyApp : [];
20
+ const selectionAPI = createEditorSelectionAPI();
21
+ return [...createPluginsList(props, {
22
+ appearance: prevAppearance
23
+ }, createAnalyticsEvent, insertNodeAPI, editorAnalyticsAPI, selectionAPI), ...dangerouslyAppendedPlugins];
24
+ };
25
+ export default getEditorPlugins;
@@ -1,4 +1,4 @@
1
- import { ACTION, ACTION_SUBJECT, EVENT_TYPE, ACTION_SUBJECT_ID, INPUT_METHOD } from '../plugins/analytics';
1
+ import { ACTION, ACTION_SUBJECT, EVENT_TYPE, ACTION_SUBJECT_ID, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
2
2
  export const buildEditLinkPayload = type => {
3
3
  return {
4
4
  action: ACTION.CLICKED,
@@ -1,7 +1,7 @@
1
1
  import { useMemo } from 'react';
2
2
  import debounce from 'lodash/debounce';
3
3
  import { useComponentRenderTracking } from '@atlaskit/editor-common/utils';
4
- import { EVENT_TYPE } from '../../../plugins/analytics';
4
+ import { EVENT_TYPE } from '@atlaskit/editor-common/analytics';
5
5
  export function RenderTracking(props) {
6
6
  const debouncedHandleAnalyticsEvent = useMemo(() => debounce(props.handleAnalyticsEvent, 500), [props.handleAnalyticsEvent]);
7
7
  useComponentRenderTracking({
@@ -1,4 +1,4 @@
1
- import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../../plugins/analytics';
1
+ import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
2
2
  export const UNSAFE_PROPERTY_SET_ERROR = 'Setting an unsafe property on transaction after dispatch!';
3
3
 
4
4
  // since selection uses curSelection under the hood, we guard setSelection instead
@@ -0,0 +1,13 @@
1
+ import { combineExtensionProviders } from '@atlaskit/editor-common/extensions';
2
+ import memoizeOne from 'memoize-one';
3
+ function prepareExtensionProvidersInternal(editorActions, extensionProviders) {
4
+ if (!extensionProviders) {
5
+ return;
6
+ }
7
+ if (typeof extensionProviders === 'function') {
8
+ return combineExtensionProviders(extensionProviders(editorActions));
9
+ }
10
+ return combineExtensionProviders(extensionProviders);
11
+ }
12
+ const prepareExtensionProvider = getEditorActions => memoizeOne(extensionProviders => prepareExtensionProvidersInternal(getEditorActions(), extensionProviders));
13
+ export default prepareExtensionProvider;
@@ -1,5 +1,5 @@
1
1
  export const name = "@atlaskit/editor-core";
2
- export const version = "179.1.2";
2
+ export const version = "180.1.0";
3
3
  export const nextMajorVersion = () => {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "179.1.2",
3
+ "version": "180.1.0",
4
4
  "sideEffects": false
5
5
  }
@@ -7,7 +7,7 @@ import { Node } from 'prosemirror-model';
7
7
  import { TextSelection, NodeSelection } from 'prosemirror-state';
8
8
  import { findParentNode } from 'prosemirror-utils';
9
9
  import { toJSON } from '../utils';
10
- import { processRawValue, isEmptyDocument } from '../utils/document';
10
+ import { processRawValue, isEmptyDocument, processRawFragmentValue } from '../utils/document';
11
11
  import { getEditorValueWithMedia, __temporaryFixForConfigPanel as _temporaryFixForConfigPanel } from '../utils/action';
12
12
  import { createDispatch } from '../event-dispatcher';
13
13
  import { safeInsert } from 'prosemirror-utils';
@@ -323,7 +323,7 @@ var EditorActions = /*#__PURE__*/function () {
323
323
  return true;
324
324
  }
325
325
  var schema = state.schema;
326
- var content = processRawValue(schema, rawValue);
326
+ var content = Array.isArray(rawValue) ? processRawFragmentValue(schema, rawValue) : processRawValue(schema, rawValue);
327
327
  if (!content) {
328
328
  return false;
329
329
  }