@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
@@ -28,6 +28,10 @@ var FormattingTextDropdownMenu = /*#__PURE__*/_react.default.memo(function (_ref
28
28
  isMenuOpen = _useMenuState2[0],
29
29
  toggleMenu = _useMenuState2[1],
30
30
  closeMenu = _useMenuState2[2];
31
+ var _useState = (0, _react.useState)(false),
32
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
33
+ isOpenedByKeyboard = _useState2[0],
34
+ setIsOpenedByKeyboard = _useState2[1];
31
35
  var group = (0, _react.useMemo)(function () {
32
36
  return [{
33
37
  items: items
@@ -53,13 +57,29 @@ var FormattingTextDropdownMenu = /*#__PURE__*/_react.default.memo(function (_ref
53
57
  zIndex: _editorSharedStyles.akEditorMenuZIndex,
54
58
  fitHeight: 188,
55
59
  fitWidth: 136,
56
- shouldUseDefaultRole: true
60
+ shouldUseDefaultRole: true,
61
+ shouldFocusFirstItem: function shouldFocusFirstItem() {
62
+ if (isOpenedByKeyboard) {
63
+ setIsOpenedByKeyboard(false);
64
+ }
65
+ return isOpenedByKeyboard;
66
+ }
57
67
  }, /*#__PURE__*/_react.default.createElement(_moreButton.MoreButton, {
58
68
  isSelected: isMenuOpen || hasFormattingActive,
59
69
  label: moreButtonLabel,
60
70
  isReducedSpacing: isReducedSpacing,
61
71
  isDisabled: false,
62
- onClick: toggleMenu,
72
+ onClick: function onClick() {
73
+ toggleMenu();
74
+ setIsOpenedByKeyboard(false);
75
+ },
76
+ onKeyDown: function onKeyDown(event) {
77
+ if (event.key === 'Enter' || event.key === ' ') {
78
+ event.preventDefault();
79
+ toggleMenu();
80
+ setIsOpenedByKeyboard(true);
81
+ }
82
+ },
63
83
  "aria-expanded": isMenuOpen
64
84
  }));
65
85
  });
@@ -26,11 +26,13 @@ var _dropdownMenu = require("./dropdown-menu");
26
26
  var _toolbarMessages = require("./toolbar-messages");
27
27
  var _utils = require("../../utils");
28
28
  var _announcer = _interopRequireDefault(require("../../../../utils/announcer/announcer"));
29
+ var _hooks = require("@atlaskit/editor-common/hooks");
29
30
  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); }
30
31
  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
32
  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); }; }
32
33
  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; } }
33
34
  var ToolbarFormatting = function ToolbarFormatting(_ref) {
35
+ var _usePreviousState;
34
36
  var shouldUseResponsiveToolbar = _ref.shouldUseResponsiveToolbar,
35
37
  popupsMountPoint = _ref.popupsMountPoint,
36
38
  popupsBoundariesElement = _ref.popupsBoundariesElement,
@@ -77,7 +79,7 @@ var ToolbarFormatting = function ToolbarFormatting(_ref) {
77
79
  var activeItems = [].concat((0, _toConsumableArray2.default)(dropdownItems), (0, _toConsumableArray2.default)(singleItems)).filter(function (item) {
78
80
  return item.isActive;
79
81
  });
80
- var prevActiveItems = (0, _utils.usePreviousObjectState)(activeItems);
82
+ var prevActiveItems = (_usePreviousState = (0, _hooks.usePreviousState)(activeItems)) !== null && _usePreviousState !== void 0 ? _usePreviousState : [];
81
83
  var fromSuperscriptToSubscript = (0, _utils.isArrayContainsContent)(activeItems, 'Subscript') && (0, _utils.isArrayContainsContent)(prevActiveItems, 'Superscript');
82
84
  var fromSubscriptToSuperscript = (0, _utils.isArrayContainsContent)(activeItems, 'Superscript') && (0, _utils.isArrayContainsContent)(prevActiveItems, 'Subscript');
83
85
  var comparedItems;
@@ -18,11 +18,13 @@ var MoreButton = /*#__PURE__*/_react.default.memo(function (_ref) {
18
18
  isReducedSpacing = _ref.isReducedSpacing,
19
19
  isSelected = _ref.isSelected,
20
20
  isDisabled = _ref.isDisabled,
21
- onClick = _ref.onClick;
21
+ onClick = _ref.onClick,
22
+ onKeyDown = _ref.onKeyDown;
22
23
  return (0, _react2.jsx)(_ToolbarButton.default, {
23
24
  disabled: isDisabled,
24
25
  selected: isSelected,
25
26
  onClick: onClick,
27
+ onKeyDown: onKeyDown,
26
28
  spacing: isReducedSpacing ? 'none' : 'default',
27
29
  title: label,
28
30
  iconBefore: (0, _react2.jsx)("div", {
@@ -3,8 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.usePreviousObjectState = exports.nodeLen = exports.markActive = exports.isIgnorable = exports.isBlockNode = exports.isArrayContainsContent = exports.hasCode = exports.domIndex = exports.compareItemsArrays = exports.checkFormattingIsPresent = exports.anyMarkActive = void 0;
7
- var _react = require("react");
6
+ exports.nodeLen = exports.markActive = exports.isIgnorable = exports.isBlockNode = exports.isArrayContainsContent = exports.hasCode = exports.domIndex = exports.compareItemsArrays = exports.checkFormattingIsPresent = exports.anyMarkActive = void 0;
8
7
  var _cellSelection = require("@atlaskit/editor-tables/cell-selection");
9
8
  var _clearFormatting = require("./commands/clear-formatting");
10
9
  var nodeLen = function nodeLen(node) {
@@ -126,14 +125,6 @@ var checkFormattingIsPresent = function checkFormattingIsPresent(state) {
126
125
  return marksArePresent(state) || blockStylingIsPresent(state);
127
126
  };
128
127
  exports.checkFormattingIsPresent = checkFormattingIsPresent;
129
- var usePreviousObjectState = function usePreviousObjectState(value) {
130
- var ref = (0, _react.useRef)([]);
131
- (0, _react.useEffect)(function () {
132
- ref.current = value;
133
- });
134
- return ref.current;
135
- };
136
- exports.usePreviousObjectState = usePreviousObjectState;
137
128
  var compareItemsArrays = function compareItemsArrays(items, prevItems) {
138
129
  return items && items.filter(function (item) {
139
130
  return !prevItems.includes(item);
@@ -34,6 +34,10 @@ function ToolbarDropdown(props) {
34
34
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
35
35
  isDropdownOpen = _React$useState2[0],
36
36
  setIsDropdownOpen = _React$useState2[1];
37
+ var _React$useState3 = _react2.default.useState(false),
38
+ _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
39
+ isOpenedByKeyboard = _React$useState4[0],
40
+ setOpenedByKeyboard = _React$useState4[1];
37
41
  var labelLists = formatMessage(_messages.messages.lists);
38
42
  var onOpenChange = function onOpenChange(attrs) {
39
43
  setIsDropdownOpen(attrs.isDropdownOpen);
@@ -43,6 +47,13 @@ function ToolbarDropdown(props) {
43
47
  isDropdownOpen: !isDropdownOpen
44
48
  });
45
49
  };
50
+ var handleOnKeyDown = function handleOnKeyDown(event) {
51
+ if (event.key === 'Enter' || event.key === ' ') {
52
+ event.preventDefault();
53
+ setIsDropdownOpen(!isDropdownOpen);
54
+ setOpenedByKeyboard(true);
55
+ }
56
+ };
46
57
  var items = useItems(props);
47
58
  var handleOnItemActivated = function handleOnItemActivated(_ref) {
48
59
  var item = _ref.item,
@@ -66,7 +77,13 @@ function ToolbarDropdown(props) {
66
77
  onOpenChange: onOpenChange,
67
78
  fitHeight: 188,
68
79
  fitWidth: 175,
69
- shouldUseDefaultRole: true
80
+ shouldUseDefaultRole: true,
81
+ shouldFocusFirstItem: function shouldFocusFirstItem() {
82
+ if (isOpenedByKeyboard) {
83
+ setOpenedByKeyboard(false);
84
+ }
85
+ return isOpenedByKeyboard;
86
+ }
70
87
  }, (0, _react.jsx)(_ToolbarButton.default, {
71
88
  spacing: isReducedSpacing ? 'none' : 'default',
72
89
  selected: bulletListActive || orderedListActive,
@@ -75,6 +92,7 @@ function ToolbarDropdown(props) {
75
92
  "aria-label": labelLists,
76
93
  disabled: disabled,
77
94
  onClick: handleTriggerClick,
95
+ onKeyDown: handleOnKeyDown,
78
96
  title: labelLists,
79
97
  iconBefore: (0, _react.jsx)("span", {
80
98
  css: _styles.wrapperStyle
@@ -25,7 +25,7 @@ var _utils = require("./utils");
25
25
  var _useItemInsert3 = require("./ui/hooks/use-item-insert");
26
26
  var _updateSelectedIndex = require("./commands/update-selected-index");
27
27
  var _statsModifier = require("./stats-modifier");
28
- var _analytics = require("../analytics");
28
+ var _analytics = require("@atlaskit/editor-common/analytics");
29
29
  /**
30
30
  *
31
31
  * Revamped typeahead using decorations instead of the `typeAheadQuery` mark
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.InputQuery = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
10
  var _react = _interopRequireWildcard(require("react"));
12
11
  var _react2 = require("@emotion/react");
@@ -18,11 +17,25 @@ var _typeAhead = require("@atlaskit/editor-common/type-ahead");
18
17
  var _AssistiveText = require("./AssistiveText");
19
18
  var _messages = require("../messages");
20
19
  var _reactIntlNext = require("react-intl-next");
21
- var colors = _interopRequireWildcard(require("@atlaskit/theme/colors"));
20
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
22
21
  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); }
23
22
  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; }
24
23
  /** @jsx jsx */
25
24
 
25
+ var querySpan = (0, _react2.css)({
26
+ outline: 'none',
27
+ '& input': {
28
+ width: '5px',
29
+ border: 'none',
30
+ background: 'transparent',
31
+ padding: 0,
32
+ margin: 0,
33
+ // ED-17022 Fixes firefox caret position
34
+ fontSize: '1em',
35
+ height: _editorSharedStyles.blockNodesVerticalMargin,
36
+ caretColor: "var(--ds-text-accent-blue, #0052CC)"
37
+ }
38
+ });
26
39
  var isNavigationKey = function isNavigationKey(event) {
27
40
  return ['Enter', 'Tab', 'ArrowDown', 'ArrowUp'].includes(event.key);
28
41
  };
@@ -39,10 +52,6 @@ var isUndoRedoShortcut = function isUndoRedoShortcut(event) {
39
52
  }
40
53
  return false;
41
54
  };
42
- var isSelectAllShortcut = function isSelectAllShortcut(event) {
43
- var key = (0, _w3cKeyname.keyName)(event);
44
- return (event.ctrlKey || event.metaKey) && key === 'a';
45
- };
46
55
  var getAriaLabel = function getAriaLabel(triggerPrefix, intl) {
47
56
  switch (triggerPrefix) {
48
57
  case '@':
@@ -68,29 +77,31 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
68
77
  onUndoRedo = _ref.onUndoRedo,
69
78
  editorView = _ref.editorView,
70
79
  items = _ref.items;
71
- var ref = (0, _react.useRef)(document.createElement('input'));
72
- var sizeSpanRef = (0, _react.useRef)(document.createElement('span'));
73
- var _useState = (0, _react.useState)([]),
80
+ var ref = (0, _react.useRef)(document.createElement('span'));
81
+ var inputRef = (0, _react.useRef)(null);
82
+ var _useState = (0, _react.useState)(null),
74
83
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
75
- redoBuffer = _useState2[0],
76
- setRedoBuffer = _useState2[1];
77
- var _useState3 = (0, _react.useState)(reopenQuery),
78
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
79
- query = _useState4[0],
80
- setQuery = _useState4[1];
81
- var onChange = (0, _react.useCallback)(function (event) {
82
- var text = event.currentTarget.value;
83
- sizeSpanRef.current.textContent = text;
84
- setQuery(text);
84
+ query = _useState2[0],
85
+ setQuery = _useState2[1];
86
+ var cleanedInputContent = (0, _react.useCallback)(function () {
87
+ var _ref$current;
88
+ var raw = ((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.textContent) || '';
89
+ return raw;
90
+ }, []);
91
+ var onKeyUp = (0, _react.useCallback)(function (event) {
92
+ var text = cleanedInputContent();
85
93
  onQueryChange(text);
86
- }, [onQueryChange]);
87
- var _useState5 = (0, _react.useState)(false),
88
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
89
- isInFocus = _useState6[0],
90
- setInFocus = _useState6[1];
94
+ }, [onQueryChange, cleanedInputContent]);
95
+ var _useState3 = (0, _react.useState)(false),
96
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
97
+ isInFocus = _useState4[0],
98
+ setInFocus = _useState4[1];
91
99
  var checkKeyEvent = (0, _react.useCallback)(function (event) {
100
+ var _ref$current2;
92
101
  var key = (0, _w3cKeyname.keyName)(event);
93
- var text = ref.current.value;
102
+ var sel = document.getSelection();
103
+ var raw = ((_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.textContent) || '';
104
+ var text = cleanedInputContent();
94
105
  var stopDefault = false;
95
106
  var _getPluginState = (0, _utils2.getPluginState)(editorView.state),
96
107
  selectedIndex = _getPluginState.selectedIndex;
@@ -121,7 +132,7 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
121
132
  stopDefault = true;
122
133
  break;
123
134
  case 'Backspace':
124
- if (text.length === 0 || ref.current.selectionStart === 0) {
135
+ if (raw.length === 0 || (sel === null || sel === void 0 ? void 0 : sel.anchorOffset) === 0) {
125
136
  event.stopPropagation();
126
137
  event.preventDefault();
127
138
  cancel({
@@ -160,70 +171,24 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
160
171
  }
161
172
  break;
162
173
  }
163
- if (isSelectAllShortcut(event)) {
164
- cancel({
165
- forceFocusOnEditor: true,
166
- addPrefixTrigger: true,
167
- text: ref.current.value,
168
- setSelectionAt: _constants.CloseSelectionOptions.BEFORE_TEXT_INSERTED
169
- });
170
- return true;
171
- }
172
174
  var undoRedoType = isUndoRedoShortcut(event);
173
- var hasReopenQuery = reopenQuery && reopenQuery.length > 0;
174
- if (onUndoRedo && undoRedoType) {
175
- if (!hasReopenQuery && undoRedoType === 'historyUndo' && text.length > 0) {
176
- setRedoBuffer(function (buffer) {
177
- return [ref.current.value].concat((0, _toConsumableArray2.default)(buffer));
178
- });
179
- var undoValue = text.substring(0, text.length - 1);
180
- ref.current.value = undoValue;
181
- sizeSpanRef.current.textContent = undoValue;
182
- stopDefault = true;
183
- } else if (undoRedoType === 'historyRedo' && redoBuffer.length > 0) {
184
- var redoValue = redoBuffer[0];
185
- ref.current.value = redoValue;
186
- sizeSpanRef.current.textContent = redoValue;
187
- setRedoBuffer(function (buffer) {
188
- return buffer.slice(1);
189
- });
190
- stopDefault = true;
191
- } else {
192
- stopDefault = onUndoRedo(undoRedoType);
193
- }
175
+ if (onUndoRedo && undoRedoType && onUndoRedo(undoRedoType)) {
176
+ stopDefault = true;
194
177
  }
195
178
  if (isNavigationKey(event) || stopDefault) {
196
179
  event.stopPropagation();
197
180
  event.preventDefault();
198
181
  return false;
199
182
  }
200
- }, [onUndoRedo, onItemSelect, selectNextItem, selectPreviousItem, cancel, editorView.state, redoBuffer, reopenQuery]);
183
+ }, [onUndoRedo, onItemSelect, selectNextItem, selectPreviousItem, cancel, cleanedInputContent, editorView.state]);
201
184
  var onClick = (0, _react.useCallback)(function (event) {
202
- var _ref$current;
185
+ var _inputRef$current;
203
186
  event.stopPropagation();
204
187
  event.preventDefault();
205
188
  onQueryFocus();
206
- (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
189
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
207
190
  return false;
208
191
  }, [onQueryFocus]);
209
- var queryStyle = (0, _react2.css)({
210
- '&&': {
211
- outline: 'none',
212
- position: 'absolute',
213
- fontFamily: 'inherit',
214
- fontSize: 'inherit',
215
- fontWeight: 'inherit',
216
- letterSpacing: 'inherit',
217
- padding: 0,
218
- height: '100%',
219
- width: '100%',
220
- top: 0,
221
- left: 0,
222
- background: 'transparent',
223
- border: 'none',
224
- color: "".concat("var(--ds-link, ".concat(colors.B400, ")"))
225
- }
226
- });
227
192
  (0, _react.useLayoutEffect)(function () {
228
193
  if (!ref.current) {
229
194
  return;
@@ -235,18 +200,18 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
235
200
  var keyDown = function keyDown(event) {
236
201
  var key = (0, _w3cKeyname.keyName)(event);
237
202
  if (['ArrowLeft', 'ArrowRight'].includes(key) && document.getSelection && document.getSelection()) {
238
- var _ref$current2, _ref$current3;
239
- var q = ((_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.value) || '';
240
- var anchorOffset = (_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.selectionStart;
241
- var isMovingRight = 'ArrowRight' === key && anchorOffset === q.length;
242
- var isMovingLeft = 'ArrowLeft' === key && (anchorOffset === 0 || event.metaKey);
203
+ var _ref$current3;
204
+ var q = ((_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.textContent) || '';
205
+ var sel = document.getSelection();
206
+ var isMovingRight = sel && 'ArrowRight' === key && sel.anchorOffset === q.length;
207
+ var isMovingLeft = sel && 'ArrowLeft' === key && (sel.anchorOffset === 0 || event.metaKey);
243
208
  if (!isMovingRight && !isMovingLeft) {
244
209
  return;
245
210
  }
246
211
  cancel({
247
212
  forceFocusOnEditor: true,
248
213
  addPrefixTrigger: true,
249
- text: ref.current.value,
214
+ text: cleanedInputContent(),
250
215
  setSelectionAt: isMovingRight ? _constants.CloseSelectionOptions.AFTER_TEXT_INSERTED : _constants.CloseSelectionOptions.BEFORE_TEXT_INSERTED
251
216
  });
252
217
  event.preventDefault();
@@ -277,8 +242,8 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
277
242
  }
278
243
  cancel({
279
244
  addPrefixTrigger: true,
280
- text: ref.current.value,
281
- setSelectionAt: _constants.CloseSelectionOptions.AFTER_TEXT_INSERTED,
245
+ text: cleanedInputContent(),
246
+ setSelectionAt: _constants.CloseSelectionOptions.BEFORE_TEXT_INSERTED,
282
247
  forceFocusOnEditor: false
283
248
  });
284
249
  };
@@ -294,7 +259,7 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
294
259
  var _target$textContent;
295
260
  setInFocus(false);
296
261
  var target = e.target;
297
- if (e.isComposing || !(target instanceof HTMLInputElement)) {
262
+ if (e.isComposing || !(target instanceof HTMLElement)) {
298
263
  return;
299
264
  }
300
265
  if (e.inputType === 'historyUndo' && ((_target$textContent = target.textContent) === null || _target$textContent === void 0 ? void 0 : _target$textContent.length) === 0) {
@@ -303,6 +268,23 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
303
268
  close();
304
269
  return;
305
270
  }
271
+ if (e.data != null && inputRef.current === null) {
272
+ setQuery('');
273
+
274
+ // We need to change the content on Safari
275
+ // and set the cursor at the right place
276
+ if (_utils.browser.safari) {
277
+ e.preventDefault();
278
+ var dataElement = document.createTextNode(e.data);
279
+ element.appendChild(dataElement);
280
+ var sel = window.getSelection();
281
+ var range = document.createRange();
282
+ range.setStart(dataElement, dataElement.length);
283
+ range.collapse(true);
284
+ sel === null || sel === void 0 ? void 0 : sel.removeAllRanges();
285
+ sel === null || sel === void 0 ? void 0 : sel.addRange(range);
286
+ }
287
+ }
306
288
  };
307
289
  var onInput = null;
308
290
  if (_utils.browser.safari) {
@@ -312,7 +294,7 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
312
294
  var _onInput = function _onInput(e) {
313
295
  var _target$textContent2;
314
296
  var target = e.target;
315
- if (e.isComposing || !(target instanceof HTMLInputElement)) {
297
+ if (e.isComposing || !(target instanceof HTMLElement)) {
316
298
  return;
317
299
  }
318
300
  if (e.inputType === 'historyUndo' && ((_target$textContent2 = target.textContent) === null || _target$textContent2 === void 0 ? void 0 : _target$textContent2.length) === 1) {
@@ -337,12 +319,11 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
337
319
  element.removeEventListener('input', onInput);
338
320
  }
339
321
  };
340
- }, [triggerQueryPrefix, ref.current.value, onQueryFocus, cancel, checkKeyEvent, editorView.state]);
322
+ }, [triggerQueryPrefix, cleanedInputContent, onQueryFocus, cancel, checkKeyEvent, editorView.state]);
341
323
  (0, _react.useLayoutEffect)(function () {
342
324
  var hasReopenQuery = typeof reopenQuery === 'string' && reopenQuery.trim().length > 0;
343
325
  if (ref.current && forceFocus) {
344
- ref.current.value = hasReopenQuery ? reopenQuery : '';
345
- sizeSpanRef.current.textContent = hasReopenQuery ? reopenQuery : '';
326
+ setQuery(hasReopenQuery ? reopenQuery : null);
346
327
  requestAnimationFrame(function () {
347
328
  if (!(ref !== null && ref !== void 0 && ref.current)) {
348
329
  return;
@@ -370,20 +351,10 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
370
351
  Task added in https://product-fabric.atlassian.net/wiki/spaces/E/pages/3182068181/Potential+improvements#Moderate-changes.
371
352
  */
372
353
  return (0, _react2.jsx)(_react.Fragment, null, triggerQueryPrefix, (0, _react2.jsx)("span", {
373
- style: {
374
- position: 'relative'
375
- }
376
- }, (0, _react2.jsx)("span", {
377
- ref: sizeSpanRef,
378
- "aria-hidden": true,
379
- style: {
380
- marginLeft: '1px',
381
- visibility: 'hidden'
382
- }
383
- }), (0, _react2.jsx)("input", {
384
- css: queryStyle,
354
+ css: querySpan,
355
+ contentEditable: true,
385
356
  ref: ref,
386
- onChange: onChange,
357
+ onKeyUp: onKeyUp,
387
358
  onClick: onClick,
388
359
  role: "combobox",
389
360
  "aria-controls": _constants.TYPE_AHEAD_DECORATION_ELEMENT_ID,
@@ -391,9 +362,11 @@ var InputQuery = /*#__PURE__*/_react.default.memo(function (_ref) {
391
362
  "aria-expanded": items.length !== 0,
392
363
  "aria-labelledby": assistiveHintID,
393
364
  suppressContentEditableWarning: true,
394
- "data-query-prefix": triggerQueryPrefix,
395
- value: query
396
- })), (0, _react2.jsx)("span", {
365
+ "data-query-prefix": triggerQueryPrefix
366
+ }, query === null ? (0, _react2.jsx)("input", {
367
+ ref: inputRef,
368
+ type: "text"
369
+ }) : query), (0, _react2.jsx)("span", {
397
370
  id: assistiveHintID,
398
371
  style: {
399
372
  display: 'none'
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -56,6 +56,7 @@ var ChromeCollapsed = /*#__PURE__*/function (_PureComponent) {
56
56
  value: function render() {
57
57
  var placeholder = this.props.text || this.props.intl.formatMessage(_messages.messages.chromeCollapsedPlaceholder);
58
58
  return (0, _react2.jsx)("input", {
59
+ "data-testid": "chrome-collapsed",
59
60
  css: _styles.inputStyle,
60
61
  ref: this.handleInputRef,
61
62
  onFocus: this.focusHandler,
@@ -15,6 +15,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
15
15
  var _ui = require("@atlaskit/editor-common/ui");
16
16
  var _react = _interopRequireDefault(require("react"));
17
17
  var _editor = _interopRequireDefault(require("../../editor"));
18
+ var _editorNext = _interopRequireDefault(require("../../editor-next"));
19
+ var _editorMigrationComponent = _interopRequireDefault(require("../../editor-next/editor-migration-component"));
18
20
  var _EditorWithActions = _interopRequireDefault(require("../../labs/EditorWithActions"));
19
21
  var _ChromeCollapsed = _interopRequireDefault(require("../ChromeCollapsed"));
20
22
  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); }; }
@@ -38,28 +40,20 @@ var CollapsedEditor = /*#__PURE__*/function (_React$Component) {
38
40
  return _this;
39
41
  }
40
42
  (0, _createClass2.default)(CollapsedEditor, [{
41
- key: "UNSAFE_componentWillReceiveProps",
42
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
43
- if (!this.props.isExpanded && nextProps.isExpanded) {
44
- this.shouldTriggerExpandEvent = true;
45
- }
46
- }
47
- }, {
48
43
  key: "componentDidUpdate",
49
44
  value: function componentDidUpdate() {
50
- if (this.shouldTriggerExpandEvent && this.editorComponent) {
51
- this.shouldTriggerExpandEvent = false;
52
- if (this.props.onExpand) {
53
- this.props.onExpand();
54
- }
45
+ if (this.props.isExpanded && this.editorComponent && (!this.previouslyExpanded || this.previouslyExpanded === undefined)) {
46
+ var _this$props$onExpand, _this$props;
47
+ (_this$props$onExpand = (_this$props = this.props).onExpand) === null || _this$props$onExpand === void 0 ? void 0 : _this$props$onExpand.call(_this$props);
55
48
  }
49
+ this.previouslyExpanded = this.props.isExpanded;
56
50
  }
57
51
  }, {
58
52
  key: "render",
59
53
  value: function render() {
60
54
  var _this2 = this;
61
55
  var child = _react.default.Children.only(this.props.children);
62
- if (child.type !== _editor.default && child.type !== _EditorWithActions.default) {
56
+ if (child.type !== _editor.default && child.type !== _EditorWithActions.default && child.type !== _editorNext.default && child.type !== _editorMigrationComponent.default) {
63
57
  throw new Error('Expected child to be of type `Editor`');
64
58
  }
65
59
  if (!this.props.isExpanded) {