@atlaskit/editor-core 162.0.1 → 163.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/cjs/create-editor/ErrorBoundary.js +1 -1
  3. package/dist/cjs/create-editor/ReactEditorView.js +2 -2
  4. package/dist/cjs/editor.js +3 -7
  5. package/dist/cjs/keymaps/index.js +14 -9
  6. package/dist/cjs/labs/next/full-page.js +34 -46
  7. package/dist/cjs/labs/next/presets/cxhtml.js +0 -1
  8. package/dist/cjs/nodeviews/ReactNodeView.js +16 -41
  9. package/dist/cjs/nodeviews/getInlineNodeViewProducer.js +227 -0
  10. package/dist/cjs/nodeviews/getInlineNodeViewProducer.styles.js +21 -0
  11. package/dist/cjs/nodeviews/getPerformanceOptions.js +64 -0
  12. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +16 -6
  13. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +10 -17
  14. package/dist/cjs/plugins/analytics/types/enums.js +2 -0
  15. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +9 -16
  16. package/dist/cjs/plugins/base/index.js +26 -7
  17. package/dist/cjs/plugins/base/pm-plugins/inline-cursor-target.js +141 -76
  18. package/dist/cjs/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +5 -8
  19. package/dist/cjs/plugins/block-type/commands/block-type.js +21 -9
  20. package/dist/cjs/plugins/breakout/ui/LayoutButton.js +9 -9
  21. package/dist/cjs/plugins/card/nodeviews/genericCard.js +4 -4
  22. package/dist/cjs/plugins/card/pm-plugins/doc.js +53 -6
  23. package/dist/cjs/plugins/card/pm-plugins/main.js +16 -1
  24. package/dist/cjs/plugins/card/styles.js +2 -2
  25. package/dist/cjs/plugins/card/ui/LinkToolbarIconDropdown.js +6 -6
  26. package/dist/cjs/plugins/card/ui/ResizableEmbedCard.js +7 -8
  27. package/dist/cjs/plugins/code-block/styles.js +2 -2
  28. package/dist/cjs/plugins/collab-edit/styles.js +2 -2
  29. package/dist/cjs/plugins/collab-edit/ui/avatars.js +6 -1
  30. package/dist/cjs/plugins/collab-edit/ui/colored-avatar-item.js +4 -5
  31. package/dist/cjs/plugins/collab-edit/ui/invite-to-edit.js +15 -4
  32. package/dist/cjs/plugins/collab-edit/ui/styles.js +10 -14
  33. package/dist/cjs/plugins/date/nodeviews/date.js +30 -75
  34. package/dist/cjs/plugins/date/pm-plugins/main.js +8 -11
  35. package/dist/cjs/plugins/date/styles.js +2 -2
  36. package/dist/cjs/plugins/date/ui/DatePicker/date-picker-input.js +7 -6
  37. package/dist/cjs/plugins/date/ui/DatePicker/index.js +8 -7
  38. package/dist/cjs/plugins/emoji/styles.js +3 -3
  39. package/dist/cjs/plugins/expand/ui/ExpandIconButton.js +13 -16
  40. package/dist/cjs/plugins/expand/ui/styles.js +26 -12
  41. package/dist/cjs/plugins/extension/ui/Extension/Extension/index.js +16 -9
  42. package/dist/cjs/plugins/extension/ui/Extension/Extension/styles.js +9 -6
  43. package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/index.js +7 -3
  44. package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/styles.js +7 -4
  45. package/dist/cjs/plugins/extension/ui/Extension/Lozenge.js +14 -13
  46. package/dist/cjs/plugins/extension/ui/Extension/styles.js +20 -26
  47. package/dist/cjs/plugins/extension/ui/SaveIndicator/SaveIndicator.js +14 -17
  48. package/dist/cjs/plugins/extension/ui/styles.js +2 -2
  49. package/dist/cjs/plugins/fake-text-cursor/styles.js +2 -2
  50. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +1 -1
  51. package/dist/cjs/plugins/find-replace/styles.js +2 -2
  52. package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +6 -7
  53. package/dist/cjs/plugins/floating-toolbar/ui/styles.js +7 -1
  54. package/dist/cjs/plugins/grid/styles.js +2 -2
  55. package/dist/cjs/plugins/help-dialog/ui/index.js +134 -40
  56. package/dist/cjs/plugins/help-dialog/ui/styles.js +26 -49
  57. package/dist/cjs/plugins/hyperlink/styles.js +6 -16
  58. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +23 -20
  59. package/dist/cjs/plugins/jira-issue/nodeviews/jira-issue.js +13 -10
  60. package/dist/cjs/plugins/list/commands/index.js +8 -0
  61. package/dist/cjs/plugins/list/pm-plugins/main.js +6 -0
  62. package/dist/cjs/plugins/list/styles.js +2 -2
  63. package/dist/cjs/plugins/list/utils/node.js +4 -3
  64. package/dist/cjs/plugins/media/index.js +9 -40
  65. package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +28 -23
  66. package/dist/cjs/plugins/media/pm-plugins/main.js +1 -8
  67. package/dist/cjs/plugins/media/pm-plugins/media-editor-plugin-factory.js +2 -67
  68. package/dist/cjs/plugins/media/styles.js +1 -1
  69. package/dist/cjs/plugins/media/toolbar/index.js +0 -13
  70. package/dist/cjs/plugins/media/ui/MediaLinkingToolbar.js +1 -1
  71. package/dist/cjs/plugins/media/ui/ResizableMediaSingle/index.js +12 -8
  72. package/dist/cjs/plugins/media/ui/ResizableMediaSingle/styled.js +7 -6
  73. package/dist/cjs/plugins/media/utils/media-single.js +8 -4
  74. package/dist/cjs/plugins/mentions/styles.js +2 -2
  75. package/dist/cjs/plugins/panel/styles.js +5 -2
  76. package/dist/cjs/plugins/placeholder/styles.js +2 -2
  77. package/dist/cjs/plugins/placeholder-text/styles.js +2 -2
  78. package/dist/cjs/plugins/rule/pm-plugins/input-rule.js +2 -1
  79. package/dist/cjs/plugins/rule/styles.js +5 -2
  80. package/dist/cjs/plugins/selection/gap-cursor/styles.js +4 -4
  81. package/dist/cjs/plugins/selection/pm-plugins/selection-main.js +13 -30
  82. package/dist/cjs/plugins/status/index.js +9 -12
  83. package/dist/cjs/plugins/status/nodeviews/status.js +43 -126
  84. package/dist/cjs/plugins/status/plugin.js +14 -6
  85. package/dist/cjs/plugins/status/styles.js +2 -2
  86. package/dist/cjs/plugins/table/index.js +1 -1
  87. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +10 -16
  88. package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +2 -2
  89. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +7 -12
  90. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +2 -2
  91. package/dist/cjs/plugins/table/ui/common-styles.js +1 -1
  92. package/dist/cjs/plugins/tasks-and-decisions/styles.js +2 -2
  93. package/dist/cjs/plugins/type-ahead/constants.js +3 -1
  94. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +8 -0
  95. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +15 -56
  96. package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +48 -3
  97. package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +4 -1
  98. package/dist/cjs/plugins/unsupported-content/styles.js +2 -2
  99. package/dist/cjs/profiler/render-count.js +1 -3
  100. package/dist/cjs/ui/Appearance/Comment/Toolbar.js +1 -1
  101. package/dist/cjs/ui/Appearance/FullPage/FullPage.js +0 -1
  102. package/dist/cjs/ui/Appearance/FullPage/FullPageContentArea.js +0 -1
  103. package/dist/cjs/ui/Appearance/FullPage/messages.js +2 -2
  104. package/dist/cjs/ui/ConfigPanel/ErrorMessage/ErrorImage.js +18 -16
  105. package/dist/cjs/ui/ConfigPanel/Fields/Boolean.js +16 -14
  106. package/dist/cjs/ui/ConfigPanel/Fields/TabGroup.js +13 -10
  107. package/dist/cjs/ui/ConfigPanel/Fields/UserSelect.js +15 -4
  108. package/dist/cjs/ui/ConfigPanel/Header.js +30 -30
  109. package/dist/cjs/ui/ContentStyles/index.js +13 -20
  110. package/dist/cjs/ui/ElementBrowser/InsertMenu.js +5 -6
  111. package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +30 -23
  112. package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +51 -47
  113. package/dist/cjs/ui/ElementBrowser/components/ElementList/EmptyState.js +17 -14
  114. package/dist/cjs/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +18 -18
  115. package/dist/cjs/ui/ElementBrowser/components/StatelessElementBrowser.js +55 -68
  116. package/dist/cjs/ui/ElementBrowser/hooks/use-container-width.js +10 -11
  117. package/dist/cjs/ui/FloatingToolbar/styles.js +1 -1
  118. package/dist/cjs/ui/LinkSearch/LinkSearchList.js +18 -22
  119. package/dist/cjs/ui/PortalProvider/index.js +3 -3
  120. package/dist/cjs/ui/Resizer/styled.js +7 -5
  121. package/dist/cjs/ui/Toolbar/ToolbarInner.js +5 -3
  122. package/dist/cjs/ui/WithFlash/index.js +9 -17
  123. package/dist/cjs/utils/insert.js +25 -2
  124. package/dist/cjs/utils/performance/components/RenderTracking.js +52 -0
  125. package/dist/cjs/version-wrapper.js +1 -1
  126. package/dist/cjs/version.json +1 -1
  127. package/dist/es2019/create-editor/ErrorBoundary.js +2 -2
  128. package/dist/es2019/create-editor/ReactEditorView.js +1 -1
  129. package/dist/es2019/editor.js +3 -5
  130. package/dist/es2019/keymaps/index.js +10 -4
  131. package/dist/es2019/labs/next/full-page.js +44 -43
  132. package/dist/es2019/labs/next/presets/cxhtml.js +0 -1
  133. package/dist/es2019/nodeviews/ReactNodeView.js +13 -35
  134. package/dist/es2019/nodeviews/getInlineNodeViewProducer.js +216 -0
  135. package/dist/es2019/nodeviews/getInlineNodeViewProducer.styles.js +15 -0
  136. package/dist/es2019/nodeviews/getPerformanceOptions.js +47 -0
  137. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +18 -7
  138. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +5 -5
  139. package/dist/es2019/plugins/analytics/types/enums.js +2 -0
  140. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +12 -7
  141. package/dist/es2019/plugins/base/index.js +24 -5
  142. package/dist/es2019/plugins/base/pm-plugins/inline-cursor-target.js +135 -77
  143. package/dist/es2019/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +5 -4
  144. package/dist/es2019/plugins/block-type/commands/block-type.js +18 -11
  145. package/dist/es2019/plugins/breakout/ui/LayoutButton.js +10 -6
  146. package/dist/es2019/plugins/card/nodeviews/genericCard.js +5 -5
  147. package/dist/es2019/plugins/card/pm-plugins/doc.js +44 -4
  148. package/dist/es2019/plugins/card/pm-plugins/main.js +17 -1
  149. package/dist/es2019/plugins/card/styles.js +1 -1
  150. package/dist/es2019/plugins/card/ui/LinkToolbarIconDropdown.js +6 -6
  151. package/dist/es2019/plugins/card/ui/ResizableEmbedCard.js +8 -7
  152. package/dist/es2019/plugins/code-block/styles.js +4 -0
  153. package/dist/es2019/plugins/collab-edit/styles.js +1 -1
  154. package/dist/es2019/plugins/collab-edit/ui/avatars.js +6 -2
  155. package/dist/es2019/plugins/collab-edit/ui/colored-avatar-item.js +5 -4
  156. package/dist/es2019/plugins/collab-edit/ui/invite-to-edit.js +9 -5
  157. package/dist/es2019/plugins/collab-edit/ui/styles.js +5 -7
  158. package/dist/es2019/plugins/date/nodeviews/date.js +37 -48
  159. package/dist/es2019/plugins/date/pm-plugins/main.js +8 -10
  160. package/dist/es2019/plugins/date/styles.js +1 -1
  161. package/dist/es2019/plugins/date/ui/DatePicker/date-picker-input.js +8 -4
  162. package/dist/es2019/plugins/date/ui/DatePicker/index.js +9 -5
  163. package/dist/es2019/plugins/emoji/styles.js +1 -2
  164. package/dist/es2019/plugins/expand/ui/ExpandIconButton.js +13 -14
  165. package/dist/es2019/plugins/expand/ui/styles.js +32 -22
  166. package/dist/es2019/plugins/extension/ui/Extension/Extension/index.js +17 -11
  167. package/dist/es2019/plugins/extension/ui/Extension/Extension/styles.js +7 -6
  168. package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/index.js +9 -5
  169. package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/styles.js +5 -3
  170. package/dist/es2019/plugins/extension/ui/Extension/Lozenge.js +14 -7
  171. package/dist/es2019/plugins/extension/ui/Extension/styles.js +14 -8
  172. package/dist/es2019/plugins/extension/ui/SaveIndicator/SaveIndicator.js +15 -9
  173. package/dist/es2019/plugins/extension/ui/styles.js +2 -1
  174. package/dist/es2019/plugins/fake-text-cursor/styles.js +1 -1
  175. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +1 -1
  176. package/dist/es2019/plugins/find-replace/styles.js +1 -1
  177. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +12 -8
  178. package/dist/es2019/plugins/floating-toolbar/ui/styles.js +7 -1
  179. package/dist/es2019/plugins/grid/styles.js +1 -1
  180. package/dist/es2019/plugins/help-dialog/ui/index.js +132 -37
  181. package/dist/es2019/plugins/help-dialog/ui/styles.js +13 -13
  182. package/dist/es2019/plugins/hyperlink/styles.js +1 -5
  183. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +25 -20
  184. package/dist/es2019/plugins/jira-issue/nodeviews/jira-issue.js +14 -7
  185. package/dist/es2019/plugins/list/commands/index.js +7 -0
  186. package/dist/es2019/plugins/list/pm-plugins/main.js +6 -0
  187. package/dist/es2019/plugins/list/styles.js +1 -1
  188. package/dist/es2019/plugins/list/utils/node.js +4 -3
  189. package/dist/es2019/plugins/media/index.js +1 -28
  190. package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +30 -16
  191. package/dist/es2019/plugins/media/pm-plugins/main.js +1 -7
  192. package/dist/es2019/plugins/media/pm-plugins/media-editor-plugin-factory.js +1 -49
  193. package/dist/es2019/plugins/media/styles.js +1 -2
  194. package/dist/es2019/plugins/media/toolbar/index.js +0 -12
  195. package/dist/es2019/plugins/media/ui/MediaLinkingToolbar.js +0 -1
  196. package/dist/es2019/plugins/media/ui/ResizableMediaSingle/index.js +14 -9
  197. package/dist/es2019/plugins/media/ui/ResizableMediaSingle/styled.js +4 -5
  198. package/dist/es2019/plugins/media/utils/media-single.js +9 -5
  199. package/dist/es2019/plugins/mentions/styles.js +1 -1
  200. package/dist/es2019/plugins/panel/styles.js +3 -3
  201. package/dist/es2019/plugins/placeholder/styles.js +1 -1
  202. package/dist/es2019/plugins/placeholder-text/styles.js +1 -1
  203. package/dist/es2019/plugins/rule/pm-plugins/input-rule.js +4 -1
  204. package/dist/es2019/plugins/rule/styles.js +3 -3
  205. package/dist/es2019/plugins/selection/gap-cursor/styles.js +2 -2
  206. package/dist/es2019/plugins/selection/pm-plugins/selection-main.js +4 -20
  207. package/dist/es2019/plugins/status/index.js +1 -5
  208. package/dist/es2019/plugins/status/nodeviews/status.js +45 -82
  209. package/dist/es2019/plugins/status/plugin.js +13 -6
  210. package/dist/es2019/plugins/status/styles.js +1 -7
  211. package/dist/es2019/plugins/table/index.js +1 -1
  212. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +11 -10
  213. package/dist/es2019/plugins/table/ui/FloatingContextualButton/styles.js +1 -1
  214. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/index.js +7 -8
  215. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/styles.js +1 -1
  216. package/dist/es2019/plugins/table/ui/common-styles.js +4 -0
  217. package/dist/es2019/plugins/tasks-and-decisions/styles.js +1 -1
  218. package/dist/es2019/plugins/type-ahead/constants.js +1 -0
  219. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +11 -1
  220. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +19 -51
  221. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +41 -3
  222. package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +3 -1
  223. package/dist/es2019/plugins/unsupported-content/styles.js +1 -1
  224. package/dist/es2019/profiler/render-count.js +1 -1
  225. package/dist/es2019/ui/Appearance/Comment/Toolbar.js +2 -0
  226. package/dist/es2019/ui/Appearance/FullPage/FullPage.js +0 -1
  227. package/dist/es2019/ui/Appearance/FullPage/FullPageContentArea.js +0 -1
  228. package/dist/es2019/ui/Appearance/FullPage/messages.js +1 -1
  229. package/dist/es2019/ui/ConfigPanel/ErrorMessage/ErrorImage.js +19 -16
  230. package/dist/es2019/ui/ConfigPanel/Fields/Boolean.js +18 -13
  231. package/dist/es2019/ui/ConfigPanel/Fields/TabGroup.js +14 -8
  232. package/dist/es2019/ui/ConfigPanel/Fields/UserSelect.js +12 -3
  233. package/dist/es2019/ui/ConfigPanel/Header.js +30 -19
  234. package/dist/es2019/ui/ContentStyles/index.js +33 -38
  235. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +5 -6
  236. package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +49 -38
  237. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +54 -33
  238. package/dist/es2019/ui/ElementBrowser/components/ElementList/EmptyState.js +18 -10
  239. package/dist/es2019/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +19 -17
  240. package/dist/es2019/ui/ElementBrowser/components/StatelessElementBrowser.js +132 -119
  241. package/dist/es2019/ui/ElementBrowser/hooks/use-container-width.js +10 -9
  242. package/dist/es2019/ui/FloatingToolbar/styles.js +2 -1
  243. package/dist/es2019/ui/LinkSearch/LinkSearchList.js +14 -9
  244. package/dist/es2019/ui/PortalProvider/index.js +3 -3
  245. package/dist/es2019/ui/Resizer/styled.js +3 -3
  246. package/dist/es2019/ui/Toolbar/ToolbarInner.js +6 -3
  247. package/dist/es2019/ui/WithFlash/index.js +15 -6
  248. package/dist/es2019/utils/insert.js +20 -0
  249. package/dist/es2019/utils/performance/components/RenderTracking.js +37 -0
  250. package/dist/es2019/version-wrapper.js +1 -1
  251. package/dist/es2019/version.json +1 -1
  252. package/dist/esm/create-editor/ErrorBoundary.js +2 -2
  253. package/dist/esm/create-editor/ReactEditorView.js +1 -1
  254. package/dist/esm/editor.js +3 -5
  255. package/dist/esm/keymaps/index.js +7 -4
  256. package/dist/esm/labs/next/full-page.js +38 -36
  257. package/dist/esm/labs/next/presets/cxhtml.js +0 -1
  258. package/dist/esm/nodeviews/ReactNodeView.js +17 -38
  259. package/dist/esm/nodeviews/getInlineNodeViewProducer.js +212 -0
  260. package/dist/esm/nodeviews/getInlineNodeViewProducer.styles.js +9 -0
  261. package/dist/esm/nodeviews/getPerformanceOptions.js +45 -0
  262. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +17 -7
  263. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +5 -5
  264. package/dist/esm/plugins/analytics/types/enums.js +2 -0
  265. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +9 -9
  266. package/dist/esm/plugins/base/index.js +26 -7
  267. package/dist/esm/plugins/base/pm-plugins/inline-cursor-target.js +134 -69
  268. package/dist/esm/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +5 -4
  269. package/dist/esm/plugins/block-type/commands/block-type.js +19 -9
  270. package/dist/esm/plugins/breakout/ui/LayoutButton.js +9 -6
  271. package/dist/esm/plugins/card/nodeviews/genericCard.js +5 -5
  272. package/dist/esm/plugins/card/pm-plugins/doc.js +47 -4
  273. package/dist/esm/plugins/card/pm-plugins/main.js +15 -1
  274. package/dist/esm/plugins/card/styles.js +1 -1
  275. package/dist/esm/plugins/card/ui/LinkToolbarIconDropdown.js +6 -6
  276. package/dist/esm/plugins/card/ui/ResizableEmbedCard.js +8 -9
  277. package/dist/esm/plugins/code-block/styles.js +2 -2
  278. package/dist/esm/plugins/collab-edit/styles.js +1 -1
  279. package/dist/esm/plugins/collab-edit/ui/avatars.js +6 -2
  280. package/dist/esm/plugins/collab-edit/ui/colored-avatar-item.js +5 -4
  281. package/dist/esm/plugins/collab-edit/ui/invite-to-edit.js +9 -5
  282. package/dist/esm/plugins/collab-edit/ui/styles.js +6 -7
  283. package/dist/esm/plugins/date/nodeviews/date.js +30 -71
  284. package/dist/esm/plugins/date/pm-plugins/main.js +8 -9
  285. package/dist/esm/plugins/date/styles.js +1 -1
  286. package/dist/esm/plugins/date/ui/DatePicker/date-picker-input.js +7 -4
  287. package/dist/esm/plugins/date/ui/DatePicker/index.js +8 -5
  288. package/dist/esm/plugins/emoji/styles.js +2 -2
  289. package/dist/esm/plugins/expand/ui/ExpandIconButton.js +13 -15
  290. package/dist/esm/plugins/expand/ui/styles.js +24 -12
  291. package/dist/esm/plugins/extension/ui/Extension/Extension/index.js +18 -11
  292. package/dist/esm/plugins/extension/ui/Extension/Extension/styles.js +5 -5
  293. package/dist/esm/plugins/extension/ui/Extension/InlineExtension/index.js +9 -5
  294. package/dist/esm/plugins/extension/ui/Extension/InlineExtension/styles.js +5 -3
  295. package/dist/esm/plugins/extension/ui/Extension/Lozenge.js +13 -7
  296. package/dist/esm/plugins/extension/ui/Extension/styles.js +13 -11
  297. package/dist/esm/plugins/extension/ui/SaveIndicator/SaveIndicator.js +15 -9
  298. package/dist/esm/plugins/extension/ui/styles.js +2 -2
  299. package/dist/esm/plugins/fake-text-cursor/styles.js +1 -1
  300. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +1 -1
  301. package/dist/esm/plugins/find-replace/styles.js +1 -1
  302. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +6 -7
  303. package/dist/esm/plugins/floating-toolbar/ui/styles.js +7 -1
  304. package/dist/esm/plugins/grid/styles.js +1 -1
  305. package/dist/esm/plugins/help-dialog/ui/index.js +135 -41
  306. package/dist/esm/plugins/help-dialog/ui/styles.js +13 -13
  307. package/dist/esm/plugins/hyperlink/styles.js +3 -5
  308. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +24 -20
  309. package/dist/esm/plugins/jira-issue/nodeviews/jira-issue.js +14 -7
  310. package/dist/esm/plugins/list/commands/index.js +7 -0
  311. package/dist/esm/plugins/list/pm-plugins/main.js +6 -0
  312. package/dist/esm/plugins/list/styles.js +1 -1
  313. package/dist/esm/plugins/list/utils/node.js +4 -3
  314. package/dist/esm/plugins/media/index.js +9 -37
  315. package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +29 -15
  316. package/dist/esm/plugins/media/pm-plugins/main.js +1 -9
  317. package/dist/esm/plugins/media/pm-plugins/media-editor-plugin-factory.js +1 -58
  318. package/dist/esm/plugins/media/styles.js +1 -1
  319. package/dist/esm/plugins/media/toolbar/index.js +0 -12
  320. package/dist/esm/plugins/media/ui/MediaLinkingToolbar.js +1 -1
  321. package/dist/esm/plugins/media/ui/ResizableMediaSingle/index.js +13 -9
  322. package/dist/esm/plugins/media/ui/ResizableMediaSingle/styled.js +4 -3
  323. package/dist/esm/plugins/media/utils/media-single.js +9 -5
  324. package/dist/esm/plugins/mentions/styles.js +1 -1
  325. package/dist/esm/plugins/panel/styles.js +4 -2
  326. package/dist/esm/plugins/placeholder/styles.js +1 -1
  327. package/dist/esm/plugins/placeholder-text/styles.js +1 -1
  328. package/dist/esm/plugins/rule/pm-plugins/input-rule.js +2 -1
  329. package/dist/esm/plugins/rule/styles.js +4 -2
  330. package/dist/esm/plugins/selection/gap-cursor/styles.js +3 -3
  331. package/dist/esm/plugins/selection/pm-plugins/selection-main.js +5 -21
  332. package/dist/esm/plugins/status/index.js +9 -12
  333. package/dist/esm/plugins/status/nodeviews/status.js +37 -115
  334. package/dist/esm/plugins/status/plugin.js +13 -6
  335. package/dist/esm/plugins/status/styles.js +2 -2
  336. package/dist/esm/plugins/table/index.js +1 -1
  337. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +10 -11
  338. package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +1 -1
  339. package/dist/esm/plugins/table/ui/FloatingContextualMenu/index.js +7 -10
  340. package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +1 -1
  341. package/dist/esm/plugins/table/ui/common-styles.js +1 -1
  342. package/dist/esm/plugins/tasks-and-decisions/styles.js +1 -1
  343. package/dist/esm/plugins/type-ahead/constants.js +1 -0
  344. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +9 -1
  345. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +18 -56
  346. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +44 -3
  347. package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +3 -1
  348. package/dist/esm/plugins/unsupported-content/styles.js +1 -1
  349. package/dist/esm/profiler/render-count.js +1 -1
  350. package/dist/esm/ui/Appearance/Comment/Toolbar.js +1 -1
  351. package/dist/esm/ui/Appearance/FullPage/FullPage.js +0 -1
  352. package/dist/esm/ui/Appearance/FullPage/FullPageContentArea.js +0 -1
  353. package/dist/esm/ui/Appearance/FullPage/messages.js +1 -1
  354. package/dist/esm/ui/ConfigPanel/ErrorMessage/ErrorImage.js +19 -16
  355. package/dist/esm/ui/ConfigPanel/Fields/Boolean.js +17 -13
  356. package/dist/esm/ui/ConfigPanel/Fields/TabGroup.js +13 -8
  357. package/dist/esm/ui/ConfigPanel/Fields/UserSelect.js +14 -3
  358. package/dist/esm/ui/ConfigPanel/Header.js +30 -19
  359. package/dist/esm/ui/ContentStyles/index.js +12 -17
  360. package/dist/esm/ui/ElementBrowser/InsertMenu.js +5 -6
  361. package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +29 -18
  362. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +50 -35
  363. package/dist/esm/ui/ElementBrowser/components/ElementList/EmptyState.js +18 -10
  364. package/dist/esm/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +19 -17
  365. package/dist/esm/ui/ElementBrowser/components/StatelessElementBrowser.js +53 -52
  366. package/dist/esm/ui/ElementBrowser/hooks/use-container-width.js +9 -8
  367. package/dist/esm/ui/FloatingToolbar/styles.js +1 -1
  368. package/dist/esm/ui/LinkSearch/LinkSearchList.js +14 -9
  369. package/dist/esm/ui/PortalProvider/index.js +3 -3
  370. package/dist/esm/ui/Resizer/styled.js +4 -2
  371. package/dist/esm/ui/Toolbar/ToolbarInner.js +6 -3
  372. package/dist/esm/ui/WithFlash/index.js +8 -8
  373. package/dist/esm/utils/insert.js +20 -0
  374. package/dist/esm/utils/performance/components/RenderTracking.js +39 -0
  375. package/dist/esm/version-wrapper.js +1 -1
  376. package/dist/esm/version.json +1 -1
  377. package/dist/types/editor.d.ts +1 -1
  378. package/dist/types/keymaps/index.d.ts +3 -2
  379. package/dist/types/labs/next/full-page.d.ts +1 -1
  380. package/dist/types/labs/next/mobile.d.ts +1 -1
  381. package/dist/types/nodeviews/ReactNodeView.d.ts +0 -5
  382. package/dist/types/nodeviews/getInlineNodeViewProducer.d.ts +23 -0
  383. package/dist/types/nodeviews/getInlineNodeViewProducer.styles.d.ts +1 -0
  384. package/dist/types/nodeviews/getPerformanceOptions.d.ts +19 -0
  385. package/dist/types/plugins/alignment/ui/ToolbarAlignment/index.d.ts +3 -1
  386. package/dist/types/plugins/alignment/ui/ToolbarAlignment/styles.d.ts +4 -5
  387. package/dist/types/plugins/analytics/types/enums.d.ts +2 -0
  388. package/dist/types/plugins/analytics/types/events.d.ts +11 -3
  389. package/dist/types/plugins/analytics/types/general-events.d.ts +1 -1
  390. package/dist/types/plugins/analytics/types/utils.d.ts +4 -0
  391. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +2 -2
  392. package/dist/types/plugins/base/pm-plugins/inline-cursor-target.d.ts +12 -6
  393. package/dist/types/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.d.ts +3 -3
  394. package/dist/types/plugins/breakout/ui/LayoutButton.d.ts +1 -0
  395. package/dist/types/plugins/card/pm-plugins/doc.d.ts +1 -0
  396. package/dist/types/plugins/card/pm-plugins/main.d.ts +1 -1
  397. package/dist/types/plugins/card/styles.d.ts +1 -1
  398. package/dist/types/plugins/card/ui/LinkToolbarButtonGroup.d.ts +1 -1
  399. package/dist/types/plugins/collab-edit/styles.d.ts +1 -1
  400. package/dist/types/plugins/collab-edit/ui/avatars.d.ts +1 -0
  401. package/dist/types/plugins/collab-edit/ui/colored-avatar-item.d.ts +3 -2
  402. package/dist/types/plugins/collab-edit/ui/invite-to-edit.d.ts +1 -0
  403. package/dist/types/plugins/collab-edit/ui/styles.d.ts +3 -8
  404. package/dist/types/plugins/date/nodeviews/date.d.ts +3 -15
  405. package/dist/types/plugins/date/styles.d.ts +1 -1
  406. package/dist/types/plugins/date/ui/DatePicker/date-picker-input.d.ts +1 -0
  407. package/dist/types/plugins/date/ui/DatePicker/index.d.ts +1 -0
  408. package/dist/types/plugins/emoji/styles.d.ts +2 -2
  409. package/dist/types/plugins/expand/ui/ExpandIconButton.d.ts +5 -3
  410. package/dist/types/plugins/expand/ui/styles.d.ts +2 -1
  411. package/dist/types/plugins/extension/ui/Extension/Extension/index.d.ts +1 -0
  412. package/dist/types/plugins/extension/ui/Extension/Extension/styles.d.ts +3 -8
  413. package/dist/types/plugins/extension/ui/Extension/InlineExtension/index.d.ts +3 -1
  414. package/dist/types/plugins/extension/ui/Extension/InlineExtension/styles.d.ts +2 -2
  415. package/dist/types/plugins/extension/ui/Extension/Lozenge.d.ts +3 -1
  416. package/dist/types/plugins/extension/ui/Extension/styles.d.ts +6 -6
  417. package/dist/types/plugins/extension/ui/SaveIndicator/SaveIndicator.d.ts +1 -0
  418. package/dist/types/plugins/extension/ui/styles.d.ts +1 -1
  419. package/dist/types/plugins/fake-text-cursor/styles.d.ts +1 -1
  420. package/dist/types/plugins/find-replace/styles.d.ts +1 -1
  421. package/dist/types/plugins/floating-toolbar/ui/styles.d.ts +6 -1
  422. package/dist/types/plugins/grid/styles.d.ts +1 -1
  423. package/dist/types/plugins/help-dialog/ui/index.d.ts +3 -1
  424. package/dist/types/plugins/help-dialog/ui/styles.d.ts +12 -13
  425. package/dist/types/plugins/hyperlink/styles.d.ts +2 -4
  426. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.d.ts +4 -2
  427. package/dist/types/plugins/jira-issue/nodeviews/jira-issue.d.ts +3 -2
  428. package/dist/types/plugins/list/styles.d.ts +1 -1
  429. package/dist/types/plugins/list/utils/node.d.ts +0 -1
  430. package/dist/types/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.d.ts +3 -1
  431. package/dist/types/plugins/media/pm-plugins/main.d.ts +0 -1
  432. package/dist/types/plugins/media/pm-plugins/media-editor-plugin-factory.d.ts +1 -3
  433. package/dist/types/plugins/media/types.d.ts +0 -19
  434. package/dist/types/plugins/media/ui/ResizableMediaSingle/index.d.ts +3 -1
  435. package/dist/types/plugins/media/ui/ResizableMediaSingle/styled.d.ts +2 -2
  436. package/dist/types/plugins/mentions/styles.d.ts +1 -1
  437. package/dist/types/plugins/panel/styles.d.ts +2 -1
  438. package/dist/types/plugins/placeholder/styles.d.ts +1 -1
  439. package/dist/types/plugins/placeholder-text/styles.d.ts +1 -1
  440. package/dist/types/plugins/rule/styles.d.ts +2 -1
  441. package/dist/types/plugins/selection/gap-cursor/styles.d.ts +1 -1
  442. package/dist/types/plugins/status/nodeviews/status.d.ts +6 -13
  443. package/dist/types/plugins/status/plugin.d.ts +2 -3
  444. package/dist/types/plugins/status/styles.d.ts +1 -1
  445. package/dist/types/plugins/status/ui/statusPicker.d.ts +1 -1
  446. package/dist/types/plugins/table/ui/FloatingContextualButton/index.d.ts +4 -2
  447. package/dist/types/plugins/table/ui/FloatingContextualButton/styles.d.ts +1 -1
  448. package/dist/types/plugins/table/ui/FloatingContextualMenu/index.d.ts +3 -2
  449. package/dist/types/plugins/table/ui/FloatingContextualMenu/styles.d.ts +1 -1
  450. package/dist/types/plugins/tasks-and-decisions/styles.d.ts +1 -1
  451. package/dist/types/plugins/type-ahead/constants.d.ts +1 -0
  452. package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +1 -0
  453. package/dist/types/plugins/type-ahead/ui/TypeAheadListItem.d.ts +26 -0
  454. package/dist/types/plugins/unsupported-content/styles.d.ts +1 -1
  455. package/dist/types/types/editor-appearance-component.d.ts +0 -1
  456. package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +0 -1
  457. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +3 -9
  458. package/dist/types/ui/ColorPickerButton/index.d.ts +1 -1
  459. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  460. package/dist/types/ui/ConfigPanel/ErrorMessage/ErrorImage.d.ts +1 -0
  461. package/dist/types/ui/ConfigPanel/Fields/Boolean.d.ts +2 -2
  462. package/dist/types/ui/ConfigPanel/Fields/TabGroup.d.ts +1 -0
  463. package/dist/types/ui/ConfigPanel/FormErrorBoundary.d.ts +1 -1
  464. package/dist/types/ui/ConfigPanel/Header.d.ts +3 -3
  465. package/dist/types/ui/ContentStyles/index.d.ts +1 -4
  466. package/dist/types/ui/ElementBrowser/ModalElementBrowser.d.ts +1 -0
  467. package/dist/types/ui/ElementBrowser/components/ElementList/ElementList.d.ts +1 -0
  468. package/dist/types/ui/ElementBrowser/components/ElementSearch.d.ts +1 -1
  469. package/dist/types/ui/ElementBrowser/components/StatelessElementBrowser.d.ts +2 -1
  470. package/dist/types/ui/ElementBrowser/hooks/use-container-width.d.ts +1 -0
  471. package/dist/types/ui/LinkSearch/LinkSearchList.d.ts +4 -3
  472. package/dist/types/ui/Resizer/styled.d.ts +1 -2
  473. package/dist/types/ui/Toolbar/ToolbarInner.d.ts +3 -1
  474. package/dist/types/ui/ToolbarButton/index.d.ts +3 -3
  475. package/dist/types/ui/ToolbarButton/styles.d.ts +2 -2
  476. package/dist/types/ui/WithFlash/index.d.ts +3 -1
  477. package/dist/types/utils/insert.d.ts +2 -1
  478. package/dist/types/utils/performance/components/RenderTracking.d.ts +13 -0
  479. package/package.json +27 -29
  480. package/dist/cjs/plugins/media/commands/media-editor.js +0 -80
  481. package/dist/cjs/plugins/media/pm-plugins/media-editor.js +0 -106
  482. package/dist/cjs/plugins/media/toolbar/annotation.js +0 -244
  483. package/dist/cjs/plugins/media/ui/MediaEditor.js +0 -88
  484. package/dist/cjs/utils/compare.js +0 -136
  485. package/dist/cjs/utils/react-hooks/use-component-renderer-tracking/index.js +0 -83
  486. package/dist/es2019/plugins/media/commands/media-editor.js +0 -46
  487. package/dist/es2019/plugins/media/pm-plugins/media-editor.js +0 -43
  488. package/dist/es2019/plugins/media/toolbar/annotation.js +0 -136
  489. package/dist/es2019/plugins/media/ui/MediaEditor.js +0 -51
  490. package/dist/es2019/utils/compare.js +0 -99
  491. package/dist/es2019/utils/react-hooks/use-component-renderer-tracking/index.js +0 -66
  492. package/dist/esm/plugins/media/commands/media-editor.js +0 -59
  493. package/dist/esm/plugins/media/pm-plugins/media-editor.js +0 -90
  494. package/dist/esm/plugins/media/toolbar/annotation.js +0 -218
  495. package/dist/esm/plugins/media/ui/MediaEditor.js +0 -76
  496. package/dist/esm/utils/compare.js +0 -115
  497. package/dist/esm/utils/react-hooks/use-component-renderer-tracking/index.js +0 -68
  498. package/dist/types/plugins/media/commands/media-editor.d.ts +0 -7
  499. package/dist/types/plugins/media/pm-plugins/media-editor.d.ts +0 -3
  500. package/dist/types/plugins/media/toolbar/annotation.d.ts +0 -24
  501. package/dist/types/plugins/media/ui/MediaEditor.d.ts +0 -14
  502. package/dist/types/utils/compare.d.ts +0 -32
  503. package/dist/types/utils/react-hooks/use-component-renderer-tracking/index.d.ts +0 -30
@@ -1,11 +1,14 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ /** @jsx jsx */
2
4
  import React from 'react';
5
+ import { jsx } from '@emotion/react';
3
6
  import { injectIntl } from 'react-intl-next';
4
7
  import ExpandIcon from '@atlaskit/icon/glyph/chevron-down';
5
8
  import ToolbarButton from '../../../../ui/ToolbarButton';
6
9
  import Dropdown from '../../../../ui/Dropdown';
7
10
  import Alignment from '../../../../ui/Alignment';
8
- import { ExpandIconWrapper, Separator, TriggerWrapper, Wrapper } from './styles';
11
+ import { expandIconWrapper, separator, triggerWrapper, wrapper } from './styles';
9
12
  import { IconMap } from './icon-map';
10
13
  import { messages } from './messages';
11
14
  export class AlignmentToolbar extends React.Component {
@@ -58,7 +61,9 @@ export class AlignmentToolbar extends React.Component {
58
61
  intl
59
62
  } = this.props;
60
63
  const title = intl.formatMessage(messages.alignment);
61
- return /*#__PURE__*/React.createElement(Wrapper, null, /*#__PURE__*/React.createElement(Dropdown, {
64
+ return jsx("span", {
65
+ css: wrapper
66
+ }, jsx(Dropdown, {
62
67
  mountTo: popupsMountPoint,
63
68
  boundariesElement: popupsBoundariesElement,
64
69
  scrollableElement: popupsScrollableElement,
@@ -67,7 +72,7 @@ export class AlignmentToolbar extends React.Component {
67
72
  handleEscapeKeydown: this.hide,
68
73
  fitWidth: 112,
69
74
  fitHeight: 80,
70
- trigger: /*#__PURE__*/React.createElement(ToolbarButton, {
75
+ trigger: jsx(ToolbarButton, {
71
76
  spacing: isReducedSpacing ? 'none' : 'default',
72
77
  disabled: disabled,
73
78
  selected: isOpen,
@@ -77,16 +82,22 @@ export class AlignmentToolbar extends React.Component {
77
82
  "aria-expanded": isOpen,
78
83
  "aria-haspopup": true,
79
84
  onClick: this.toggleOpen,
80
- iconBefore: /*#__PURE__*/React.createElement(TriggerWrapper, null, /*#__PURE__*/React.createElement(IconMap, {
85
+ iconBefore: jsx("div", {
86
+ css: triggerWrapper
87
+ }, jsx(IconMap, {
81
88
  alignment: pluginState.align
82
- }), /*#__PURE__*/React.createElement(ExpandIconWrapper, null, /*#__PURE__*/React.createElement(ExpandIcon, {
89
+ }), jsx("span", {
90
+ css: expandIconWrapper
91
+ }, jsx(ExpandIcon, {
83
92
  label: ""
84
93
  })))
85
94
  })
86
- }, /*#__PURE__*/React.createElement(Alignment, {
95
+ }, jsx(Alignment, {
87
96
  onClick: align => this.changeAlignment(align),
88
97
  selectedAlignment: pluginState.align
89
- })), /*#__PURE__*/React.createElement(Separator, null));
98
+ })), jsx("span", {
99
+ css: separator
100
+ }));
90
101
  }
91
102
 
92
103
  }
@@ -1,22 +1,22 @@
1
- import styled from 'styled-components';
1
+ import { css } from '@emotion/react';
2
2
  import { N30 } from '@atlaskit/theme/colors';
3
- export const TriggerWrapper = styled.div`
3
+ export const triggerWrapper = css`
4
4
  display: flex;
5
5
  `;
6
- export const Separator = styled.span`
6
+ export const separator = css`
7
7
  background: ${N30};
8
8
  width: 1px;
9
9
  height: 24px;
10
10
  display: inline-block;
11
11
  margin: 0 8px;
12
12
  `;
13
- export const Wrapper = styled.span`
13
+ export const wrapper = css`
14
14
  display: flex;
15
15
  align-items: center;
16
16
  div {
17
17
  display: flex;
18
18
  }
19
19
  `;
20
- export const ExpandIconWrapper = styled.span`
20
+ export const expandIconWrapper = css`
21
21
  margin-left: -8px;
22
22
  `;
@@ -43,6 +43,7 @@ export let ACTION;
43
43
  ACTION["RE_RENDERED"] = "reRendered";
44
44
  ACTION["ENTERED"] = "entered";
45
45
  ACTION["ERRORED"] = "errored";
46
+ ACTION["EXPOSED"] = "exposed";
46
47
  ACTION["FAILED_TO_UNMOUNT"] = "failedToUnmount";
47
48
  ACTION["FIND_NEXT_PERFORMED"] = "findNextPerformed";
48
49
  ACTION["FIND_PERFORMED"] = "findPerformed";
@@ -158,6 +159,7 @@ export let ACTION_SUBJECT;
158
159
  ACTION_SUBJECT["EMBEDS"] = "embeds";
159
160
  ACTION_SUBJECT["EXPAND"] = "expand";
160
161
  ACTION_SUBJECT["EXTENSION"] = "extension";
162
+ ACTION_SUBJECT["FEATURE"] = "feature";
161
163
  ACTION_SUBJECT["FEEDBACK_DIALOG"] = "feedbackDialog";
162
164
  ACTION_SUBJECT["FIND_REPLACE_DIALOG"] = "findReplaceDialog";
163
165
  ACTION_SUBJECT["FLOATING_CONTEXTUAL_BUTTON"] = "floatingContextualButton";
@@ -1,18 +1,23 @@
1
- import React, { useEffect } from 'react';
1
+ /** @jsx jsx */
2
+ import { useEffect } from 'react';
3
+ import { css, jsx } from '@emotion/react';
2
4
  import AvatarsWithPluginState from '../../collab-edit/ui/avatars-with-plugin-state';
3
- import styled from 'styled-components';
4
5
  import { useIntl } from 'react-intl-next';
5
6
  import { avatarGroupMessages } from '../messages';
6
7
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE, ACTION_SUBJECT_ID } from '../../analytics';
7
- const ToolbarButtonWrapper = styled.div`
8
+ const toolbarButtonWrapper = css`
8
9
  display: flex;
9
- flex-grow: ${props => props.takeFullWidth ? 1 : 0};
10
10
  justify-content: flex-end;
11
+ flex-grow: 0;
11
12
  align-items: center;
12
13
  & > div {
13
14
  margin-right: 0;
14
15
  }
15
16
  `;
17
+ const toolbarButtonWrapperFullWidth = css`
18
+ ${toolbarButtonWrapper}
19
+ flex-grow: 1;
20
+ `;
16
21
 
17
22
  const AvatarGroupPluginWrapper = props => {
18
23
  const {
@@ -31,11 +36,11 @@ const AvatarGroupPluginWrapper = props => {
31
36
  eventType: EVENT_TYPE.UI
32
37
  });
33
38
  }, [dispatchAnalyticsEvent]);
34
- return /*#__PURE__*/React.createElement(ToolbarButtonWrapper, {
39
+ return jsx("div", {
35
40
  "aria-label": intl.formatMessage(avatarGroupMessages.editors),
36
41
  "data-testid": 'avatar-group-in-plugin',
37
- takeFullWidth: props.takeFullWidth
38
- }, /*#__PURE__*/React.createElement(AvatarsWithPluginState, {
42
+ css: props.takeFullWidth ? toolbarButtonWrapperFullWidth : toolbarButtonWrapper
43
+ }, jsx(AvatarsWithPluginState, {
39
44
  editorView: props.editorView,
40
45
  eventDispatcher: props.eventDispatcher,
41
46
  inviteToEditComponent: props.collabEdit && props.collabEdit.inviteToEditComponent,
@@ -27,10 +27,29 @@ const basePlugin = options => ({
27
27
  plugin: ({
28
28
  dispatchAnalyticsEvent
29
29
  }) => filterStepsPlugin(dispatchAnalyticsEvent)
30
- }, {
31
- name: 'inlineCursorTargetPlugin',
32
- plugin: () => options && options.allowInlineCursorTarget ? inlineCursorTargetPlugin() : undefined
33
- }, {
30
+ }]; // In Chrome, when the selection is placed between adjacent nodes which are not contenteditatble
31
+ // the cursor appears at the right most point of the parent container.
32
+ // In Firefox, when the selection is placed between adjacent nodes which are not contenteditatble
33
+ // no cursor is presented to users.
34
+ // In Safari, when the selection is placed between adjacent nodes which are not contenteditatble
35
+ // the cursor appears inside the adjacent nodes.
36
+ // This plugin workarounds the issues with chrome and firefox by inserting decorations between
37
+ // inline nodes which are set as contenteditable, and have a zero width space.
38
+ // At time of development, using this workaround in Safari caused additional issues;
39
+ // - visual artifacts when moving across inline nodes (ie. using the arrow key to traverse a
40
+ // series of inline nodes)
41
+ // - blocking the right arrow key when at the start of a line from moving to the end of the
42
+ // previous line.
43
+ // As such we only apply the workaround for firefox and chrome.
44
+
45
+ if (browser.chrome || browser.gecko) {
46
+ plugins.push({
47
+ name: 'inlineCursorTargetPlugin',
48
+ plugin: () => options && options.allowInlineCursorTarget ? inlineCursorTargetPlugin() : undefined
49
+ });
50
+ }
51
+
52
+ plugins.push({
34
53
  name: 'focusHandlerPlugin',
35
54
  plugin: ({
36
55
  dispatch
@@ -75,7 +94,7 @@ const basePlugin = options => ({
75
94
  dispatch,
76
95
  providerFactory
77
96
  }) => betterTypeHistoryPlugin()
78
- }];
97
+ });
79
98
 
80
99
  if (options && options.allowScrollGutter) {
81
100
  plugins.push({
@@ -2,65 +2,21 @@ import { DecorationSet, Decoration } from 'prosemirror-view';
2
2
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
3
  import { PluginKey } from 'prosemirror-state';
4
4
  import { ZERO_WIDTH_SPACE } from '@atlaskit/editor-common/utils';
5
+ import { isTextSelection } from '../../../utils';
5
6
  export const inlineCursorTargetStateKey = new PluginKey('inlineCursorTargetPlugin');
6
- export const SPECIAL_NODES = ['mention', 'emoji'];
7
- export const isSpecial = node => {
8
- return node && SPECIAL_NODES.indexOf(node.type.name) !== -1;
9
- };
10
- export const findSpecialNodeAfter = ($pos, tr) => {
11
- if (isSpecial($pos.nodeAfter)) {
12
- return $pos.pos + 1;
13
- }
14
-
15
- const {
16
- parentOffset,
17
- parent
18
- } = $pos;
19
- const docSize = tr.doc.nodeSize - 2;
20
-
21
- if (parentOffset === parent.content.size && $pos.pos + 1 < docSize - 2) {
22
- const {
23
- nodeAfter
24
- } = tr.doc.resolve($pos.pos + 1);
25
-
26
- if (nodeAfter && isSpecial(nodeAfter.firstChild)) {
27
- return $pos.pos + 2;
28
- }
29
- }
30
-
31
- return;
32
- };
33
- export const findSpecialNodeBefore = ($pos, tr) => {
34
- if (isSpecial($pos.nodeBefore)) {
35
- return $pos.pos - 1;
36
- }
37
-
38
- if ($pos.pos === 0) {
39
- return;
40
- }
41
-
42
- const {
43
- parentOffset
44
- } = $pos;
45
-
46
- if (parentOffset === 0) {
47
- const {
48
- nodeBefore
49
- } = tr.doc.resolve($pos.pos - 1);
50
-
51
- if (nodeBefore && isSpecial(nodeBefore.firstChild)) {
52
- return $pos.pos - 2;
53
- }
54
- }
55
-
56
- return;
7
+ export const isInlineNodeView = node => {
8
+ return node && node.type.isInline && !node.type.isText;
57
9
  };
10
+ export const findInlineNodeViewAfter = $pos => isInlineNodeView($pos.nodeAfter);
11
+ export const findInlineNodeViewBefore = $pos => isInlineNodeView($pos.nodeBefore) || // This prevents the cursor from disappearing when at the beginning
12
+ // of a paragraph and next to an inline node view.
13
+ $pos.parentOffset === 0 && isInlineNodeView($pos.nodeAfter);
58
14
  export default (() => {
59
15
  return new SafePlugin({
60
16
  key: inlineCursorTargetStateKey,
61
17
  state: {
62
18
  init: () => ({
63
- positions: []
19
+ cursorTarget: undefined
64
20
  }),
65
21
 
66
22
  apply(tr) {
@@ -68,22 +24,45 @@ export default (() => {
68
24
  selection
69
25
  } = tr;
70
26
  const {
71
- $from
27
+ $from,
28
+ $to
72
29
  } = selection;
73
- const positions = [];
74
- const posAfter = findSpecialNodeAfter($from, tr);
75
- const posBefore = findSpecialNodeBefore($from, tr);
76
-
77
- if (posAfter !== undefined) {
78
- positions.push(posAfter);
79
- }
80
30
 
81
- if (posBefore !== undefined) {
82
- positions.push(posBefore);
31
+ if (selection && isTextSelection(selection)) {
32
+ const hasInlineNodeViewAfter = findInlineNodeViewAfter($from);
33
+ const hasInlineNodeViewBefore = findInlineNodeViewBefore($from); // Create editable widgets either side of the cursor to allow
34
+ // text input. This prevents issues with the cursor disappearing
35
+ // or apperaing in the wrong place when positioned between
36
+ // non contenteditable nodes.
37
+ // We check beforeInput events below to prevent content
38
+ // being added to the decorations.
39
+
40
+ if (hasInlineNodeViewAfter && hasInlineNodeViewBefore) {
41
+ const createWidget = side => {
42
+ const node = document.createElement('span');
43
+ node.contentEditable = 'true';
44
+ node.appendChild(document.createTextNode(ZERO_WIDTH_SPACE));
45
+ return Decoration.widget(selection.from, node, {
46
+ raw: true,
47
+ side: side === 'left' ? -1 : 1,
48
+ key: 'inlineCursor'
49
+ });
50
+ };
51
+
52
+ return {
53
+ cursorTarget: {
54
+ decorations: [createWidget('left'), createWidget('right')],
55
+ positions: {
56
+ from: $from.pos,
57
+ to: $to.pos
58
+ }
59
+ }
60
+ };
61
+ }
83
62
  }
84
63
 
85
64
  return {
86
- positions
65
+ cursorTarget: undefined
87
66
  };
88
67
  }
89
68
 
@@ -94,25 +73,104 @@ export default (() => {
94
73
  doc
95
74
  } = state;
96
75
  const {
97
- positions
76
+ cursorTarget
98
77
  } = inlineCursorTargetStateKey.getState(state);
99
78
 
100
- if (positions && positions.length) {
101
- const decorations = positions.map(position => {
102
- const node = document.createElement('span');
103
- node.appendChild(document.createTextNode(ZERO_WIDTH_SPACE));
104
- return Decoration.widget(position, node, {
105
- raw: true,
106
- side: -1,
107
- key: 'inlineCursor'
108
- });
109
- });
110
- return DecorationSet.create(doc, decorations);
79
+ if (cursorTargetHasValidDecorations(cursorTarget)) {
80
+ return DecorationSet.create(doc, cursorTarget.decorations);
111
81
  }
112
82
 
113
83
  return null;
114
- }
84
+ },
85
+
86
+ handleDOMEvents: {
87
+ // Check the DOM to see if there are inline cursor targets
88
+ // after a composition event ends. If so, manually insert the
89
+ // event data in order to prevent contents ending up inside
90
+ // of the cursor target decorations.
91
+ compositionend: (view, incorrectlyTypedEvent) => {
92
+ // This is typed by the prosemirror definitions as Event,
93
+ // this type is incorrect, and it is actually an InputEvent
94
+ const event = incorrectlyTypedEvent;
95
+ const {
96
+ state
97
+ } = view;
98
+ const {
99
+ cursorTarget
100
+ } = inlineCursorTargetStateKey.getState(state);
101
+
102
+ if (cursorTarget !== undefined) {
103
+ handleTextInputInsideCursorTargetDecoration({
104
+ event,
105
+ cursorTarget,
106
+ view
107
+ });
108
+ return true;
109
+ }
110
+
111
+ return false;
112
+ },
113
+ // Check the DOM to see if there are inline cursor targets
114
+ // before any input event. If so, manually insert the
115
+ // event data in order to prevent contents ending up inside
116
+ // of the cursor target decorations.
117
+ beforeinput: (view, incorrectlyTypedEvent) => {
118
+ // This is typed by the prosemirror definitions as Event,
119
+ // this type is incorrect, and it is actually an InputEvent
120
+ const event = incorrectlyTypedEvent;
121
+ const {
122
+ state
123
+ } = view;
124
+ const {
125
+ cursorTarget
126
+ } = inlineCursorTargetStateKey.getState(state);
127
+
128
+ if (!event.isComposing && cursorTarget !== undefined) {
129
+ handleTextInputInsideCursorTargetDecoration({
130
+ event,
131
+ cursorTarget,
132
+ view
133
+ });
134
+ return true;
135
+ }
115
136
 
137
+ return false;
138
+ }
139
+ }
116
140
  }
117
141
  });
118
- });
142
+ });
143
+
144
+ function cursorTargetHasValidDecorations(cursorTarget) {
145
+ if (!cursorTarget || // Decorations can end up as null when the decorations prop is
146
+ // called after the decorations have been removed from the dom.
147
+ // https://github.com/ProseMirror/prosemirror-view/blob/8f0d313a6389b86a335274fba36534ba1cb21f12/src/decoration.js#L30
148
+ cursorTarget.decorations.includes(null)) {
149
+ return false;
150
+ }
151
+
152
+ return true;
153
+ }
154
+
155
+ function handleTextInputInsideCursorTargetDecoration({
156
+ event,
157
+ view,
158
+ cursorTarget
159
+ }) {
160
+ event.stopPropagation();
161
+ event.preventDefault();
162
+ const content = event.data || '';
163
+ const tr = view.state.tr; // ensure any custom handleTextInput handlers are called for the input event
164
+ // ie. type ahead, emoji shortcuts.
165
+
166
+ const potentiallyHandleByHandleTextInput = view.someProp('handleTextInput', f => f(view, cursorTarget.positions.from, cursorTarget.positions.to, content));
167
+
168
+ if (potentiallyHandleByHandleTextInput) {
169
+ // if a handleTextInput handler has handled the event, we don't want to
170
+ // manually update the document.
171
+ return;
172
+ }
173
+
174
+ tr.insertText(content);
175
+ view.dispatch(tr);
176
+ }
@@ -1,12 +1,13 @@
1
- import React from 'react';
2
- import styled from 'styled-components';
3
- export const BeforePrimaryToolbarPluginWrapper = styled.div`
1
+ /** @jsx jsx */
2
+ import { css, jsx } from '@emotion/react';
3
+ const beforePrimaryToolbarPluginWrapper = css`
4
4
  display: flex;
5
5
  margin-right: 8px;
6
6
  flex-grow: 1;
7
7
  justify-content: flex-end;
8
8
  align-items: center;
9
9
  `;
10
- export const BeforePrimaryToolbarWrapper = props => /*#__PURE__*/React.createElement(BeforePrimaryToolbarPluginWrapper, {
10
+ export const BeforePrimaryToolbarWrapper = props => jsx("div", {
11
+ css: beforePrimaryToolbarPluginWrapper,
11
12
  "data-testid": 'before-primary-toolbar-components-plugin'
12
13
  }, props.beforePrimaryToolbarComponents);
@@ -1,7 +1,9 @@
1
1
  import { Selection } from 'prosemirror-state';
2
2
  import { findWrapping } from 'prosemirror-transform';
3
+ import { safeInsert } from 'prosemirror-utils';
3
4
  import { CODE_BLOCK, BLOCK_QUOTE, PANEL, HEADINGS_BY_NAME, NORMAL_TEXT } from '../types';
4
5
  import { removeBlockMarks } from '../../../utils/mark';
6
+ import { shouldSplitSelectedNodeOnNodeInsertion } from '../../../utils/insert';
5
7
  import { withAnalytics, ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../../analytics';
6
8
  import { filterChildrenBetween } from '../../../utils';
7
9
  import { PanelType } from '@atlaskit/adf-schema';
@@ -226,9 +228,6 @@ function wrapSelectionIn(type) {
226
228
  $from,
227
229
  $to
228
230
  } = state.selection;
229
- const {
230
- paragraph
231
- } = state.schema.nodes;
232
231
  const {
233
232
  alignment,
234
233
  indentation
@@ -244,8 +243,7 @@ function wrapSelectionIn(type) {
244
243
  tr.wrap(range, wrapping).scrollIntoView();
245
244
  } else {
246
245
  /** We always want to append a block type */
247
- tr.replaceRangeWith($to.pos + 1, $to.pos + 1, type.createAndFill({}, paragraph.create()));
248
- tr.setSelection(Selection.near(tr.doc.resolve(state.selection.to + 1)));
246
+ safeInsert(type.createAndFill())(tr).scrollIntoView();
249
247
  }
250
248
 
251
249
  if (dispatch) {
@@ -262,21 +260,30 @@ function wrapSelectionIn(type) {
262
260
 
263
261
  function insertCodeBlock() {
264
262
  return function (state, dispatch) {
263
+ var _state$selection$$fro;
264
+
265
265
  const {
266
266
  tr
267
267
  } = state;
268
268
  const {
269
- $to
269
+ $to,
270
+ $from
270
271
  } = state.selection;
271
272
  const {
272
273
  codeBlock
273
274
  } = state.schema.nodes;
274
- const getNextNode = state.doc.nodeAt($to.pos + 1);
275
- const addPos = getNextNode && getNextNode.isText ? 0 : 1;
276
- /** We always want to append a block type */
275
+ const grandParentType = (_state$selection$$fro = state.selection.$from.node(-1)) === null || _state$selection$$fro === void 0 ? void 0 : _state$selection$$fro.type;
276
+ const parentType = state.selection.$from.parent.type;
277
+ /** We always want to append a block type unless we're inserting into a paragraph
278
+ * AND it's a valid child of the grandparent node
279
+ */
277
280
 
278
- tr.replaceRangeWith($to.pos + addPos, $to.pos + addPos, codeBlock.createAndFill());
279
- tr.setSelection(Selection.near(tr.doc.resolve(state.selection.to + addPos)));
281
+ if (shouldSplitSelectedNodeOnNodeInsertion(parentType, grandParentType, codeBlock.createAndFill())) {
282
+ tr.replaceRangeWith($from.pos, $to.pos, codeBlock.createAndFill());
283
+ tr.setSelection(Selection.near(tr.doc.resolve(state.selection.to)));
284
+ } else {
285
+ safeInsert(codeBlock.createAndFill())(tr).scrollIntoView();
286
+ }
280
287
 
281
288
  if (dispatch) {
282
289
  dispatch(tr);
@@ -1,5 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ /** @jsx jsx */
2
4
  import React from 'react';
5
+ import { css, jsx } from '@emotion/react';
3
6
  import * as colors from '@atlaskit/theme/colors';
4
7
  import { injectIntl } from 'react-intl-next';
5
8
  import { findParentDomRefOfType, findDomRefAtPos } from 'prosemirror-utils';
@@ -7,7 +10,6 @@ import { Popup } from '@atlaskit/editor-common/ui';
7
10
  import CollapseIcon from '@atlaskit/icon/glyph/editor/collapse';
8
11
  import ExpandIcon from '@atlaskit/icon/glyph/editor/expand';
9
12
  import ToolbarButton from '../../../ui/ToolbarButton';
10
- import styled from 'styled-components';
11
13
  import { getBreakoutMode } from '../utils/get-breakout-mode';
12
14
  import { setBreakoutMode } from '../commands/set-breakout-mode';
13
15
  import { removeBreakout } from '../commands/remove-breakout';
@@ -22,7 +24,7 @@ const {
22
24
  N300,
23
25
  N20A
24
26
  } = colors;
25
- const Wrapper = styled.div`
27
+ const toolbarButtonWrapper = css`
26
28
  && button {
27
29
  background: ${N20A};
28
30
  color: ${N300};
@@ -123,7 +125,7 @@ class LayoutButton extends React.Component {
123
125
  element = closestEl.firstChild;
124
126
  }
125
127
 
126
- return /*#__PURE__*/React.createElement(Popup, {
128
+ return jsx(Popup, {
127
129
  ariaLabel: title,
128
130
  target: element,
129
131
  offset: [5, 0],
@@ -134,13 +136,15 @@ class LayoutButton extends React.Component {
134
136
  scrollableElement: scrollableElement,
135
137
  stick: true,
136
138
  forcePlacement: true
137
- }, /*#__PURE__*/React.createElement(Wrapper, null, /*#__PURE__*/React.createElement(ToolbarButton, {
139
+ }, jsx("div", {
140
+ css: toolbarButtonWrapper
141
+ }, jsx(ToolbarButton, {
138
142
  title: title,
139
143
  testId: titleMessage.id,
140
144
  onClick: this.handleClick(nextBreakoutMode),
141
- iconBefore: breakoutMode === BREAKOUT_MODE.FULL_WIDTH ? /*#__PURE__*/React.createElement(CollapseIcon, {
145
+ iconBefore: breakoutMode === BREAKOUT_MODE.FULL_WIDTH ? jsx(CollapseIcon, {
142
146
  label: title
143
- }) : /*#__PURE__*/React.createElement(ExpandIcon, {
147
+ }) : jsx(ExpandIcon, {
144
148
  label: title
145
149
  })
146
150
  })));
@@ -4,11 +4,11 @@ import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { isSafeUrl } from '@atlaskit/adf-schema';
6
6
  import { titleUrlPairFromNode } from '../utils';
7
- import { changeSelectedCardToLink } from '../pm-plugins/doc';
7
+ import { changeSelectedCardToLinkFallback } from '../pm-plugins/doc';
8
8
  export function Card(SmartCardComponent, UnsupportedComponent) {
9
- var _class, _temp;
9
+ var _class;
10
10
 
11
- return _temp = _class = class extends React.Component {
11
+ return _class = class extends React.Component {
12
12
  constructor(...args) {
13
13
  super(...args);
14
14
 
@@ -69,7 +69,7 @@ export function Card(SmartCardComponent, UnsupportedComponent) {
69
69
  return;
70
70
  }
71
71
 
72
- changeSelectedCardToLink(undefined, url, true, node, getPos())(view.state, view.dispatch);
72
+ changeSelectedCardToLinkFallback(undefined, url, true, node, getPos())(view.state, view.dispatch);
73
73
  return null;
74
74
  } else {
75
75
  // Otherwise, render a blue link as fallback (above in render()).
@@ -81,5 +81,5 @@ export function Card(SmartCardComponent, UnsupportedComponent) {
81
81
 
82
82
  }, _defineProperty(_class, "contextTypes", {
83
83
  contextAdapter: PropTypes.object
84
- }), _temp;
84
+ }), _class;
85
85
  }