@atlaskit/editor-core 161.0.0 → 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 (757) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/dist/cjs/actions/index.js +76 -48
  3. package/dist/cjs/create-editor/ErrorBoundary.js +1 -1
  4. package/dist/cjs/create-editor/ReactEditorView.js +2 -2
  5. package/dist/cjs/editor.js +3 -7
  6. package/dist/cjs/extensibility.js +2 -2
  7. package/dist/cjs/keymaps/index.js +14 -9
  8. package/dist/cjs/labs/next/full-page.js +35 -47
  9. package/dist/cjs/labs/next/presets/cxhtml.js +0 -1
  10. package/dist/cjs/nodeviews/ReactNodeView.js +16 -41
  11. package/dist/cjs/nodeviews/getInlineNodeViewProducer.js +227 -0
  12. package/dist/cjs/nodeviews/getInlineNodeViewProducer.styles.js +21 -0
  13. package/dist/cjs/nodeviews/getPerformanceOptions.js +64 -0
  14. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +16 -6
  15. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +10 -17
  16. package/dist/cjs/plugins/analytics/types/enums.js +2 -0
  17. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +9 -16
  18. package/dist/cjs/plugins/base/index.js +26 -7
  19. package/dist/cjs/plugins/base/pm-plugins/inline-cursor-target.js +141 -76
  20. package/dist/cjs/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +5 -8
  21. package/dist/cjs/plugins/block-type/commands/block-type.js +21 -9
  22. package/dist/cjs/plugins/block-type/styles.js +5 -2
  23. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/index.js +13 -11
  24. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/styled.js +11 -7
  25. package/dist/cjs/plugins/breakout/ui/LayoutButton.js +9 -9
  26. package/dist/cjs/plugins/card/messages.js +4 -4
  27. package/dist/cjs/plugins/card/nodeviews/genericCard.js +4 -4
  28. package/dist/cjs/plugins/card/pm-plugins/doc.js +53 -6
  29. package/dist/cjs/plugins/card/pm-plugins/main.js +16 -1
  30. package/dist/cjs/plugins/card/styles.js +2 -2
  31. package/dist/cjs/plugins/card/ui/LinkToolbarAppearance.js +29 -11
  32. package/dist/cjs/plugins/card/ui/LinkToolbarButtonGroup.js +66 -7
  33. package/dist/cjs/plugins/card/ui/LinkToolbarIconDropdown.js +166 -7
  34. package/dist/cjs/plugins/card/ui/ResizableEmbedCard.js +15 -13
  35. package/dist/cjs/plugins/card/ui/assets/card.js +1 -1
  36. package/dist/cjs/plugins/card/ui/assets/embed.js +1 -1
  37. package/dist/cjs/plugins/card/ui/assets/inline.js +1 -1
  38. package/dist/cjs/plugins/card/ui/assets/url.js +1 -1
  39. package/dist/cjs/plugins/card/ui/link-toolbar-button-group-options.js +60 -0
  40. package/dist/cjs/plugins/card/ui/link-toolbar-icon-dropdown-options.js +66 -0
  41. package/dist/cjs/plugins/card/ui/styled.js +5 -13
  42. package/dist/cjs/plugins/card/ui/types.js +5 -0
  43. package/dist/cjs/plugins/clipboard/pm-plugins/main.js +99 -3
  44. package/dist/cjs/plugins/code-block/styles.js +45 -38
  45. package/dist/cjs/plugins/collab-edit/styles.js +2 -2
  46. package/dist/cjs/plugins/collab-edit/ui/avatars.js +6 -1
  47. package/dist/cjs/plugins/collab-edit/ui/colored-avatar-item.js +4 -5
  48. package/dist/cjs/plugins/collab-edit/ui/invite-to-edit.js +15 -4
  49. package/dist/cjs/plugins/collab-edit/ui/styles.js +10 -14
  50. package/dist/cjs/plugins/date/nodeviews/date.js +30 -75
  51. package/dist/cjs/plugins/date/pm-plugins/main.js +8 -11
  52. package/dist/cjs/plugins/date/styles.js +2 -2
  53. package/dist/cjs/plugins/date/ui/DatePicker/date-picker-input.js +7 -6
  54. package/dist/cjs/plugins/date/ui/DatePicker/index.js +8 -7
  55. package/dist/cjs/plugins/emoji/styles.js +3 -3
  56. package/dist/cjs/plugins/expand/ui/ExpandIconButton.js +13 -16
  57. package/dist/cjs/plugins/expand/ui/styles.js +26 -12
  58. package/dist/cjs/plugins/extension/plugin-factory.js +4 -1
  59. package/dist/cjs/plugins/extension/pm-plugins/main.js +34 -11
  60. package/dist/cjs/plugins/extension/ui/Extension/Extension/index.js +16 -9
  61. package/dist/cjs/plugins/extension/ui/Extension/Extension/styles.js +9 -6
  62. package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/index.js +7 -3
  63. package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/styles.js +7 -4
  64. package/dist/cjs/plugins/extension/ui/Extension/Lozenge.js +14 -13
  65. package/dist/cjs/plugins/extension/ui/Extension/styles.js +20 -26
  66. package/dist/cjs/plugins/extension/ui/SaveIndicator/SaveIndicator.js +14 -17
  67. package/dist/cjs/plugins/extension/ui/styles.js +2 -2
  68. package/dist/cjs/plugins/extension/utils.js +57 -12
  69. package/dist/cjs/plugins/fake-text-cursor/styles.js +2 -2
  70. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +1 -1
  71. package/dist/cjs/plugins/find-replace/styles.js +2 -2
  72. package/dist/cjs/plugins/find-replace/ui/Find.js +12 -12
  73. package/dist/cjs/plugins/find-replace/ui/FindReplace.js +5 -5
  74. package/dist/cjs/plugins/find-replace/ui/Replace.js +5 -5
  75. package/dist/cjs/plugins/find-replace/ui/styles.js +12 -15
  76. package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +6 -7
  77. package/dist/cjs/plugins/floating-toolbar/ui/styles.js +7 -1
  78. package/dist/cjs/plugins/grid/styles.js +2 -2
  79. package/dist/cjs/plugins/help-dialog/ui/index.js +134 -40
  80. package/dist/cjs/plugins/help-dialog/ui/styles.js +26 -49
  81. package/dist/cjs/plugins/hyperlink/styles.js +6 -16
  82. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +23 -20
  83. package/dist/cjs/plugins/jira-issue/nodeviews/jira-issue.js +13 -10
  84. package/dist/cjs/plugins/layout/styles.js +2 -2
  85. package/dist/cjs/plugins/list/actions/wrap-and-join-lists.js +180 -0
  86. package/dist/cjs/plugins/list/commands/index.js +42 -37
  87. package/dist/cjs/plugins/list/pm-plugins/main.js +6 -0
  88. package/dist/cjs/plugins/list/styles.js +2 -2
  89. package/dist/cjs/plugins/list/utils/node.js +4 -3
  90. package/dist/cjs/plugins/list/utils/replace-content.js +31 -0
  91. package/dist/cjs/plugins/media/index.js +9 -40
  92. package/dist/cjs/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  93. package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +28 -23
  94. package/dist/cjs/plugins/media/pm-plugins/main.js +1 -8
  95. package/dist/cjs/plugins/media/pm-plugins/media-editor-plugin-factory.js +2 -67
  96. package/dist/cjs/plugins/media/styles.js +2 -2
  97. package/dist/cjs/plugins/media/toolbar/index.js +0 -13
  98. package/dist/cjs/plugins/media/ui/MediaLinkingToolbar.js +1 -1
  99. package/dist/cjs/plugins/media/ui/ResizableMediaSingle/index.js +12 -8
  100. package/dist/cjs/plugins/media/ui/ResizableMediaSingle/styled.js +7 -6
  101. package/dist/cjs/plugins/media/utils/media-single.js +23 -6
  102. package/dist/cjs/plugins/mentions/styles.js +2 -2
  103. package/dist/cjs/plugins/panel/styles.js +5 -2
  104. package/dist/cjs/plugins/paste/handlers.js +19 -5
  105. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +1 -1
  106. package/dist/cjs/plugins/placeholder/styles.js +2 -2
  107. package/dist/cjs/plugins/placeholder-text/index.js +45 -1
  108. package/dist/cjs/plugins/placeholder-text/placeholder-text-nodeview.js +66 -22
  109. package/dist/cjs/plugins/placeholder-text/selection-utils.js +19 -0
  110. package/dist/cjs/plugins/placeholder-text/styles.js +4 -2
  111. package/dist/cjs/plugins/rule/pm-plugins/input-rule.js +2 -1
  112. package/dist/cjs/plugins/rule/styles.js +5 -2
  113. package/dist/cjs/plugins/selection/gap-cursor/styles.js +4 -4
  114. package/dist/cjs/plugins/selection/pm-plugins/selection-main.js +13 -30
  115. package/dist/cjs/plugins/status/index.js +9 -12
  116. package/dist/cjs/plugins/status/nodeviews/status.js +43 -126
  117. package/dist/cjs/plugins/status/plugin.js +14 -6
  118. package/dist/cjs/plugins/status/styles.js +2 -2
  119. package/dist/cjs/plugins/table/commands/index.js +0 -6
  120. package/dist/cjs/plugins/table/commands/insert.js +1 -1
  121. package/dist/cjs/plugins/table/commands/misc.js +5 -18
  122. package/dist/cjs/plugins/table/commands-with-analytics.js +1 -1
  123. package/dist/cjs/plugins/table/handlers.js +6 -2
  124. package/dist/cjs/plugins/table/index.js +8 -14
  125. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +2 -2
  126. package/dist/cjs/plugins/table/nodeviews/table.js +7 -38
  127. package/dist/cjs/plugins/table/pm-plugins/decorations/plugin.js +2 -2
  128. package/dist/cjs/plugins/table/pm-plugins/main.js +3 -1
  129. package/dist/cjs/plugins/table/pm-plugins/plugin-factory.js +4 -7
  130. package/dist/cjs/plugins/table/pm-plugins/plugin-key.js +11 -0
  131. package/dist/cjs/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +2 -0
  132. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +3 -3
  133. package/dist/cjs/plugins/table/reducer.js +0 -7
  134. package/dist/cjs/plugins/table/toolbar.js +5 -15
  135. package/dist/cjs/plugins/table/transforms/metadata.js +2 -2
  136. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +11 -17
  137. package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +23 -0
  138. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +11 -14
  139. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +27 -0
  140. package/dist/cjs/plugins/table/ui/FloatingInsertButton/index.js +1 -1
  141. package/dist/cjs/plugins/table/ui/LayoutButton/index.js +1 -2
  142. package/dist/cjs/plugins/table/ui/common-styles.js +53 -0
  143. package/dist/cjs/plugins/table/ui/ui-styles.js +109 -0
  144. package/dist/cjs/plugins/table/utils/nodes.js +15 -15
  145. package/dist/cjs/plugins/tasks-and-decisions/commands.js +15 -1
  146. package/dist/cjs/plugins/tasks-and-decisions/styles.js +2 -2
  147. package/dist/cjs/plugins/text-formatting/styles.js +5 -2
  148. package/dist/cjs/plugins/text-formatting/ui/Toolbar/index.js +71 -1
  149. package/dist/cjs/plugins/text-formatting/ui/Toolbar/toolbar-messages.js +30 -0
  150. package/dist/cjs/plugins/text-formatting/utils.js +30 -2
  151. package/dist/cjs/plugins/type-ahead/api.js +32 -1
  152. package/dist/cjs/plugins/type-ahead/constants.js +3 -1
  153. package/dist/cjs/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +20 -5
  154. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +8 -0
  155. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +15 -56
  156. package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +48 -3
  157. package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +4 -1
  158. package/dist/cjs/plugins/type-ahead/utils.js +22 -4
  159. package/dist/cjs/plugins/unsupported-content/styles.js +2 -2
  160. package/dist/cjs/profiler/render-count.js +1 -3
  161. package/dist/cjs/ui/Appearance/Comment/Comment.js +2 -2
  162. package/dist/cjs/ui/Appearance/Comment/Toolbar.js +1 -1
  163. package/dist/cjs/ui/Appearance/FullPage/FullPage.js +0 -1
  164. package/dist/cjs/ui/Appearance/FullPage/FullPageContentArea.js +0 -1
  165. package/dist/cjs/ui/Appearance/FullPage/StyledComponents.js +2 -2
  166. package/dist/cjs/ui/Appearance/FullPage/messages.js +2 -2
  167. package/dist/cjs/ui/ConfigPanel/ErrorMessage/ErrorImage.js +18 -16
  168. package/dist/cjs/ui/ConfigPanel/Fields/Boolean.js +16 -14
  169. package/dist/cjs/ui/ConfigPanel/Fields/TabGroup.js +13 -10
  170. package/dist/cjs/ui/ConfigPanel/Fields/UserSelect.js +15 -4
  171. package/dist/cjs/ui/ConfigPanel/Header.js +30 -30
  172. package/dist/cjs/ui/ContentStyles/index.js +32 -16
  173. package/dist/cjs/ui/ElementBrowser/InsertMenu.js +5 -6
  174. package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +30 -23
  175. package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +51 -47
  176. package/dist/cjs/ui/ElementBrowser/components/ElementList/EmptyState.js +17 -14
  177. package/dist/cjs/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +18 -18
  178. package/dist/cjs/ui/ElementBrowser/components/StatelessElementBrowser.js +55 -68
  179. package/dist/cjs/ui/ElementBrowser/hooks/use-container-width.js +10 -11
  180. package/dist/cjs/ui/FloatingToolbar/styles.js +1 -1
  181. package/dist/cjs/ui/LinkSearch/LinkSearchList.js +18 -22
  182. package/dist/cjs/ui/PortalProvider/index.js +3 -3
  183. package/dist/cjs/ui/Resizer/styled.js +7 -5
  184. package/dist/cjs/ui/Toolbar/ToolbarInner.js +5 -3
  185. package/dist/cjs/ui/WithFlash/index.js +9 -17
  186. package/dist/cjs/utils/index.js +1 -8
  187. package/dist/cjs/utils/insert.js +26 -11
  188. package/dist/cjs/utils/performance/components/RenderTracking.js +52 -0
  189. package/dist/cjs/utils/selection.js +2 -9
  190. package/dist/cjs/version-wrapper.js +1 -1
  191. package/dist/cjs/version.json +1 -1
  192. package/dist/es2019/actions/index.js +20 -23
  193. package/dist/es2019/create-editor/ErrorBoundary.js +2 -2
  194. package/dist/es2019/create-editor/ReactEditorView.js +1 -1
  195. package/dist/es2019/editor.js +3 -5
  196. package/dist/es2019/extensibility.js +1 -1
  197. package/dist/es2019/keymaps/index.js +10 -4
  198. package/dist/es2019/labs/next/full-page.js +43 -42
  199. package/dist/es2019/labs/next/presets/cxhtml.js +0 -1
  200. package/dist/es2019/nodeviews/ReactNodeView.js +13 -35
  201. package/dist/es2019/nodeviews/getInlineNodeViewProducer.js +216 -0
  202. package/dist/es2019/nodeviews/getInlineNodeViewProducer.styles.js +15 -0
  203. package/dist/es2019/nodeviews/getPerformanceOptions.js +47 -0
  204. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +18 -7
  205. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +5 -5
  206. package/dist/es2019/plugins/analytics/types/enums.js +2 -0
  207. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +12 -7
  208. package/dist/es2019/plugins/base/index.js +24 -5
  209. package/dist/es2019/plugins/base/pm-plugins/inline-cursor-target.js +135 -77
  210. package/dist/es2019/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +5 -4
  211. package/dist/es2019/plugins/block-type/commands/block-type.js +18 -11
  212. package/dist/es2019/plugins/block-type/styles.js +3 -3
  213. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/index.js +15 -12
  214. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/styled.js +19 -14
  215. package/dist/es2019/plugins/breakout/ui/LayoutButton.js +10 -6
  216. package/dist/es2019/plugins/card/messages.js +4 -4
  217. package/dist/es2019/plugins/card/nodeviews/genericCard.js +5 -5
  218. package/dist/es2019/plugins/card/pm-plugins/doc.js +44 -4
  219. package/dist/es2019/plugins/card/pm-plugins/main.js +17 -1
  220. package/dist/es2019/plugins/card/styles.js +1 -1
  221. package/dist/es2019/plugins/card/ui/LinkToolbarAppearance.js +21 -9
  222. package/dist/es2019/plugins/card/ui/LinkToolbarButtonGroup.js +54 -3
  223. package/dist/es2019/plugins/card/ui/LinkToolbarIconDropdown.js +145 -3
  224. package/dist/es2019/plugins/card/ui/ResizableEmbedCard.js +17 -12
  225. package/dist/es2019/plugins/card/ui/assets/card.js +1 -1
  226. package/dist/es2019/plugins/card/ui/assets/embed.js +1 -1
  227. package/dist/es2019/plugins/card/ui/assets/inline.js +1 -1
  228. package/dist/es2019/plugins/card/ui/assets/url.js +1 -1
  229. package/dist/es2019/plugins/card/ui/link-toolbar-button-group-options.js +45 -0
  230. package/dist/es2019/plugins/card/ui/link-toolbar-icon-dropdown-options.js +51 -0
  231. package/dist/es2019/plugins/card/ui/styled.js +2 -2
  232. package/dist/es2019/plugins/card/ui/types.js +1 -0
  233. package/dist/es2019/plugins/clipboard/pm-plugins/main.js +91 -9
  234. package/dist/es2019/plugins/code-block/styles.js +18 -14
  235. package/dist/es2019/plugins/collab-edit/styles.js +1 -1
  236. package/dist/es2019/plugins/collab-edit/ui/avatars.js +6 -2
  237. package/dist/es2019/plugins/collab-edit/ui/colored-avatar-item.js +5 -4
  238. package/dist/es2019/plugins/collab-edit/ui/invite-to-edit.js +9 -5
  239. package/dist/es2019/plugins/collab-edit/ui/styles.js +5 -7
  240. package/dist/es2019/plugins/date/nodeviews/date.js +37 -48
  241. package/dist/es2019/plugins/date/pm-plugins/main.js +8 -10
  242. package/dist/es2019/plugins/date/styles.js +1 -1
  243. package/dist/es2019/plugins/date/ui/DatePicker/date-picker-input.js +8 -4
  244. package/dist/es2019/plugins/date/ui/DatePicker/index.js +9 -5
  245. package/dist/es2019/plugins/emoji/styles.js +1 -2
  246. package/dist/es2019/plugins/expand/ui/ExpandIconButton.js +13 -14
  247. package/dist/es2019/plugins/expand/ui/styles.js +32 -22
  248. package/dist/es2019/plugins/extension/plugin-factory.js +3 -1
  249. package/dist/es2019/plugins/extension/pm-plugins/main.js +38 -12
  250. package/dist/es2019/plugins/extension/ui/Extension/Extension/index.js +17 -11
  251. package/dist/es2019/plugins/extension/ui/Extension/Extension/styles.js +7 -6
  252. package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/index.js +9 -5
  253. package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/styles.js +5 -3
  254. package/dist/es2019/plugins/extension/ui/Extension/Lozenge.js +14 -7
  255. package/dist/es2019/plugins/extension/ui/Extension/styles.js +14 -8
  256. package/dist/es2019/plugins/extension/ui/SaveIndicator/SaveIndicator.js +15 -9
  257. package/dist/es2019/plugins/extension/ui/styles.js +2 -1
  258. package/dist/es2019/plugins/extension/utils.js +37 -2
  259. package/dist/es2019/plugins/fake-text-cursor/styles.js +1 -1
  260. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +1 -1
  261. package/dist/es2019/plugins/find-replace/styles.js +1 -1
  262. package/dist/es2019/plugins/find-replace/ui/Find.js +1 -1
  263. package/dist/es2019/plugins/find-replace/ui/FindReplace.js +1 -1
  264. package/dist/es2019/plugins/find-replace/ui/Replace.js +1 -1
  265. package/dist/es2019/plugins/find-replace/ui/styles.js +14 -9
  266. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +12 -8
  267. package/dist/es2019/plugins/floating-toolbar/ui/styles.js +7 -1
  268. package/dist/es2019/plugins/grid/styles.js +1 -1
  269. package/dist/es2019/plugins/help-dialog/ui/index.js +132 -37
  270. package/dist/es2019/plugins/help-dialog/ui/styles.js +13 -13
  271. package/dist/es2019/plugins/hyperlink/styles.js +1 -5
  272. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +25 -20
  273. package/dist/es2019/plugins/jira-issue/nodeviews/jira-issue.js +14 -7
  274. package/dist/es2019/plugins/layout/styles.js +5 -1
  275. package/dist/es2019/plugins/list/actions/wrap-and-join-lists.js +163 -0
  276. package/dist/es2019/plugins/list/commands/index.js +36 -28
  277. package/dist/es2019/plugins/list/pm-plugins/main.js +6 -0
  278. package/dist/es2019/plugins/list/styles.js +1 -1
  279. package/dist/es2019/plugins/list/utils/node.js +4 -3
  280. package/dist/es2019/plugins/list/utils/replace-content.js +22 -0
  281. package/dist/es2019/plugins/media/index.js +1 -28
  282. package/dist/es2019/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  283. package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +30 -16
  284. package/dist/es2019/plugins/media/pm-plugins/main.js +1 -7
  285. package/dist/es2019/plugins/media/pm-plugins/media-editor-plugin-factory.js +1 -49
  286. package/dist/es2019/plugins/media/styles.js +2 -3
  287. package/dist/es2019/plugins/media/toolbar/index.js +0 -12
  288. package/dist/es2019/plugins/media/ui/MediaLinkingToolbar.js +0 -1
  289. package/dist/es2019/plugins/media/ui/ResizableMediaSingle/index.js +14 -9
  290. package/dist/es2019/plugins/media/ui/ResizableMediaSingle/styled.js +4 -5
  291. package/dist/es2019/plugins/media/utils/media-single.js +23 -6
  292. package/dist/es2019/plugins/mentions/styles.js +1 -1
  293. package/dist/es2019/plugins/panel/styles.js +3 -3
  294. package/dist/es2019/plugins/paste/handlers.js +19 -5
  295. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +2 -2
  296. package/dist/es2019/plugins/placeholder/styles.js +1 -1
  297. package/dist/es2019/plugins/placeholder-text/index.js +46 -1
  298. package/dist/es2019/plugins/placeholder-text/placeholder-text-nodeview.js +66 -20
  299. package/dist/es2019/plugins/placeholder-text/selection-utils.js +9 -0
  300. package/dist/es2019/plugins/placeholder-text/styles.js +23 -1
  301. package/dist/es2019/plugins/rule/pm-plugins/input-rule.js +4 -1
  302. package/dist/es2019/plugins/rule/styles.js +3 -3
  303. package/dist/es2019/plugins/selection/gap-cursor/styles.js +2 -2
  304. package/dist/es2019/plugins/selection/pm-plugins/selection-main.js +4 -20
  305. package/dist/es2019/plugins/status/index.js +1 -5
  306. package/dist/es2019/plugins/status/nodeviews/status.js +45 -82
  307. package/dist/es2019/plugins/status/plugin.js +13 -6
  308. package/dist/es2019/plugins/status/styles.js +1 -7
  309. package/dist/es2019/plugins/table/commands/index.js +1 -1
  310. package/dist/es2019/plugins/table/commands/insert.js +1 -1
  311. package/dist/es2019/plugins/table/commands/misc.js +5 -11
  312. package/dist/es2019/plugins/table/commands-with-analytics.js +1 -1
  313. package/dist/es2019/plugins/table/handlers.js +6 -2
  314. package/dist/es2019/plugins/table/index.js +5 -9
  315. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +2 -2
  316. package/dist/es2019/plugins/table/nodeviews/table.js +2 -16
  317. package/dist/es2019/plugins/table/pm-plugins/decorations/plugin.js +1 -1
  318. package/dist/es2019/plugins/table/pm-plugins/main.js +2 -1
  319. package/dist/es2019/plugins/table/pm-plugins/plugin-factory.js +1 -2
  320. package/dist/es2019/plugins/table/pm-plugins/plugin-key.js +2 -0
  321. package/dist/es2019/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +2 -0
  322. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +1 -1
  323. package/dist/es2019/plugins/table/reducer.js +0 -9
  324. package/dist/es2019/plugins/table/toolbar.js +1 -4
  325. package/dist/es2019/plugins/table/transforms/metadata.js +1 -1
  326. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +12 -11
  327. package/dist/es2019/plugins/table/ui/FloatingContextualButton/{styles.css.js → styles.js} +1 -1
  328. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/index.js +10 -10
  329. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/{styles.css.js → styles.js} +1 -1
  330. package/dist/es2019/plugins/table/ui/FloatingInsertButton/index.js +1 -1
  331. package/dist/es2019/plugins/table/ui/LayoutButton/index.js +1 -2
  332. package/dist/es2019/plugins/table/ui/{common-styles.css.js → common-styles.js} +61 -27
  333. package/dist/es2019/plugins/table/ui/{ui-styles.css.js → ui-styles.js} +99 -78
  334. package/dist/es2019/plugins/table/utils/nodes.js +11 -11
  335. package/dist/es2019/plugins/tasks-and-decisions/commands.js +13 -1
  336. package/dist/es2019/plugins/tasks-and-decisions/styles.js +1 -1
  337. package/dist/es2019/plugins/text-formatting/styles.js +3 -3
  338. package/dist/es2019/plugins/text-formatting/ui/Toolbar/index.js +61 -2
  339. package/dist/es2019/plugins/text-formatting/ui/Toolbar/toolbar-messages.js +30 -0
  340. package/dist/es2019/plugins/text-formatting/utils.js +13 -1
  341. package/dist/es2019/plugins/type-ahead/api.js +31 -2
  342. package/dist/es2019/plugins/type-ahead/constants.js +1 -0
  343. package/dist/es2019/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +17 -5
  344. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +11 -1
  345. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +19 -51
  346. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +41 -3
  347. package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +3 -1
  348. package/dist/es2019/plugins/type-ahead/utils.js +15 -0
  349. package/dist/es2019/plugins/unsupported-content/styles.js +1 -1
  350. package/dist/es2019/profiler/render-count.js +1 -1
  351. package/dist/es2019/ui/Appearance/Comment/Comment.js +2 -2
  352. package/dist/es2019/ui/Appearance/Comment/Toolbar.js +2 -0
  353. package/dist/es2019/ui/Appearance/FullPage/FullPage.js +0 -1
  354. package/dist/es2019/ui/Appearance/FullPage/FullPageContentArea.js +0 -1
  355. package/dist/es2019/ui/Appearance/FullPage/StyledComponents.js +2 -2
  356. package/dist/es2019/ui/Appearance/FullPage/messages.js +1 -1
  357. package/dist/es2019/ui/ConfigPanel/ErrorMessage/ErrorImage.js +19 -16
  358. package/dist/es2019/ui/ConfigPanel/Fields/Boolean.js +18 -13
  359. package/dist/es2019/ui/ConfigPanel/Fields/TabGroup.js +14 -8
  360. package/dist/es2019/ui/ConfigPanel/Fields/UserSelect.js +12 -3
  361. package/dist/es2019/ui/ConfigPanel/Header.js +30 -19
  362. package/dist/es2019/ui/ContentStyles/index.js +40 -23
  363. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +5 -6
  364. package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +49 -38
  365. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +54 -33
  366. package/dist/es2019/ui/ElementBrowser/components/ElementList/EmptyState.js +18 -10
  367. package/dist/es2019/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +19 -17
  368. package/dist/es2019/ui/ElementBrowser/components/StatelessElementBrowser.js +132 -119
  369. package/dist/es2019/ui/ElementBrowser/hooks/use-container-width.js +10 -9
  370. package/dist/es2019/ui/FloatingToolbar/styles.js +2 -1
  371. package/dist/es2019/ui/LinkSearch/LinkSearchList.js +14 -9
  372. package/dist/es2019/ui/PortalProvider/index.js +3 -3
  373. package/dist/es2019/ui/Resizer/styled.js +3 -3
  374. package/dist/es2019/ui/Toolbar/ToolbarInner.js +6 -3
  375. package/dist/es2019/ui/WithFlash/index.js +15 -6
  376. package/dist/es2019/utils/index.js +1 -1
  377. package/dist/es2019/utils/insert.js +22 -10
  378. package/dist/es2019/utils/performance/components/RenderTracking.js +37 -0
  379. package/dist/es2019/utils/selection.js +1 -6
  380. package/dist/es2019/version-wrapper.js +1 -1
  381. package/dist/es2019/version.json +1 -1
  382. package/dist/esm/actions/index.js +76 -48
  383. package/dist/esm/create-editor/ErrorBoundary.js +2 -2
  384. package/dist/esm/create-editor/ReactEditorView.js +1 -1
  385. package/dist/esm/editor.js +3 -5
  386. package/dist/esm/extensibility.js +1 -1
  387. package/dist/esm/keymaps/index.js +7 -4
  388. package/dist/esm/labs/next/full-page.js +38 -36
  389. package/dist/esm/labs/next/presets/cxhtml.js +0 -1
  390. package/dist/esm/nodeviews/ReactNodeView.js +17 -38
  391. package/dist/esm/nodeviews/getInlineNodeViewProducer.js +212 -0
  392. package/dist/esm/nodeviews/getInlineNodeViewProducer.styles.js +9 -0
  393. package/dist/esm/nodeviews/getPerformanceOptions.js +45 -0
  394. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +17 -7
  395. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +5 -5
  396. package/dist/esm/plugins/analytics/types/enums.js +2 -0
  397. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +9 -9
  398. package/dist/esm/plugins/base/index.js +26 -7
  399. package/dist/esm/plugins/base/pm-plugins/inline-cursor-target.js +134 -69
  400. package/dist/esm/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +5 -4
  401. package/dist/esm/plugins/block-type/commands/block-type.js +19 -9
  402. package/dist/esm/plugins/block-type/styles.js +4 -2
  403. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/index.js +14 -12
  404. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/styled.js +9 -5
  405. package/dist/esm/plugins/breakout/ui/LayoutButton.js +9 -6
  406. package/dist/esm/plugins/card/messages.js +4 -4
  407. package/dist/esm/plugins/card/nodeviews/genericCard.js +5 -5
  408. package/dist/esm/plugins/card/pm-plugins/doc.js +47 -4
  409. package/dist/esm/plugins/card/pm-plugins/main.js +15 -1
  410. package/dist/esm/plugins/card/styles.js +1 -1
  411. package/dist/esm/plugins/card/ui/LinkToolbarAppearance.js +25 -9
  412. package/dist/esm/plugins/card/ui/LinkToolbarButtonGroup.js +57 -5
  413. package/dist/esm/plugins/card/ui/LinkToolbarIconDropdown.js +154 -5
  414. package/dist/esm/plugins/card/ui/ResizableEmbedCard.js +16 -14
  415. package/dist/esm/plugins/card/ui/assets/card.js +1 -1
  416. package/dist/esm/plugins/card/ui/assets/embed.js +1 -1
  417. package/dist/esm/plugins/card/ui/assets/inline.js +1 -1
  418. package/dist/esm/plugins/card/ui/assets/url.js +1 -1
  419. package/dist/esm/plugins/card/ui/link-toolbar-button-group-options.js +45 -0
  420. package/dist/esm/plugins/card/ui/link-toolbar-icon-dropdown-options.js +51 -0
  421. package/dist/esm/plugins/card/ui/styled.js +2 -2
  422. package/dist/esm/plugins/card/ui/types.js +1 -0
  423. package/dist/esm/plugins/clipboard/pm-plugins/main.js +91 -2
  424. package/dist/esm/plugins/code-block/styles.js +42 -38
  425. package/dist/esm/plugins/collab-edit/styles.js +1 -1
  426. package/dist/esm/plugins/collab-edit/ui/avatars.js +6 -2
  427. package/dist/esm/plugins/collab-edit/ui/colored-avatar-item.js +5 -4
  428. package/dist/esm/plugins/collab-edit/ui/invite-to-edit.js +9 -5
  429. package/dist/esm/plugins/collab-edit/ui/styles.js +6 -7
  430. package/dist/esm/plugins/date/nodeviews/date.js +30 -71
  431. package/dist/esm/plugins/date/pm-plugins/main.js +8 -9
  432. package/dist/esm/plugins/date/styles.js +1 -1
  433. package/dist/esm/plugins/date/ui/DatePicker/date-picker-input.js +7 -4
  434. package/dist/esm/plugins/date/ui/DatePicker/index.js +8 -5
  435. package/dist/esm/plugins/emoji/styles.js +2 -2
  436. package/dist/esm/plugins/expand/ui/ExpandIconButton.js +13 -15
  437. package/dist/esm/plugins/expand/ui/styles.js +24 -12
  438. package/dist/esm/plugins/extension/plugin-factory.js +3 -1
  439. package/dist/esm/plugins/extension/pm-plugins/main.js +34 -11
  440. package/dist/esm/plugins/extension/ui/Extension/Extension/index.js +18 -11
  441. package/dist/esm/plugins/extension/ui/Extension/Extension/styles.js +5 -5
  442. package/dist/esm/plugins/extension/ui/Extension/InlineExtension/index.js +9 -5
  443. package/dist/esm/plugins/extension/ui/Extension/InlineExtension/styles.js +5 -3
  444. package/dist/esm/plugins/extension/ui/Extension/Lozenge.js +13 -7
  445. package/dist/esm/plugins/extension/ui/Extension/styles.js +13 -11
  446. package/dist/esm/plugins/extension/ui/SaveIndicator/SaveIndicator.js +15 -9
  447. package/dist/esm/plugins/extension/ui/styles.js +2 -2
  448. package/dist/esm/plugins/extension/utils.js +51 -9
  449. package/dist/esm/plugins/fake-text-cursor/styles.js +1 -1
  450. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +1 -1
  451. package/dist/esm/plugins/find-replace/styles.js +1 -1
  452. package/dist/esm/plugins/find-replace/ui/Find.js +1 -1
  453. package/dist/esm/plugins/find-replace/ui/FindReplace.js +1 -1
  454. package/dist/esm/plugins/find-replace/ui/Replace.js +1 -1
  455. package/dist/esm/plugins/find-replace/ui/styles.js +6 -10
  456. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +6 -7
  457. package/dist/esm/plugins/floating-toolbar/ui/styles.js +7 -1
  458. package/dist/esm/plugins/grid/styles.js +1 -1
  459. package/dist/esm/plugins/help-dialog/ui/index.js +135 -41
  460. package/dist/esm/plugins/help-dialog/ui/styles.js +13 -13
  461. package/dist/esm/plugins/hyperlink/styles.js +3 -5
  462. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +24 -20
  463. package/dist/esm/plugins/jira-issue/nodeviews/jira-issue.js +14 -7
  464. package/dist/esm/plugins/layout/styles.js +2 -2
  465. package/dist/esm/plugins/list/actions/wrap-and-join-lists.js +168 -0
  466. package/dist/esm/plugins/list/commands/index.js +40 -34
  467. package/dist/esm/plugins/list/pm-plugins/main.js +6 -0
  468. package/dist/esm/plugins/list/styles.js +1 -1
  469. package/dist/esm/plugins/list/utils/node.js +4 -3
  470. package/dist/esm/plugins/list/utils/replace-content.js +21 -0
  471. package/dist/esm/plugins/media/index.js +9 -37
  472. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  473. package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +29 -15
  474. package/dist/esm/plugins/media/pm-plugins/main.js +1 -9
  475. package/dist/esm/plugins/media/pm-plugins/media-editor-plugin-factory.js +1 -58
  476. package/dist/esm/plugins/media/styles.js +2 -2
  477. package/dist/esm/plugins/media/toolbar/index.js +0 -12
  478. package/dist/esm/plugins/media/ui/MediaLinkingToolbar.js +1 -1
  479. package/dist/esm/plugins/media/ui/ResizableMediaSingle/index.js +13 -9
  480. package/dist/esm/plugins/media/ui/ResizableMediaSingle/styled.js +4 -3
  481. package/dist/esm/plugins/media/utils/media-single.js +21 -6
  482. package/dist/esm/plugins/mentions/styles.js +1 -1
  483. package/dist/esm/plugins/panel/styles.js +4 -2
  484. package/dist/esm/plugins/paste/handlers.js +19 -5
  485. package/dist/esm/plugins/paste/pm-plugins/analytics.js +2 -2
  486. package/dist/esm/plugins/placeholder/styles.js +1 -1
  487. package/dist/esm/plugins/placeholder-text/index.js +44 -1
  488. package/dist/esm/plugins/placeholder-text/placeholder-text-nodeview.js +67 -20
  489. package/dist/esm/plugins/placeholder-text/selection-utils.js +9 -0
  490. package/dist/esm/plugins/placeholder-text/styles.js +3 -2
  491. package/dist/esm/plugins/rule/pm-plugins/input-rule.js +2 -1
  492. package/dist/esm/plugins/rule/styles.js +4 -2
  493. package/dist/esm/plugins/selection/gap-cursor/styles.js +3 -3
  494. package/dist/esm/plugins/selection/pm-plugins/selection-main.js +5 -21
  495. package/dist/esm/plugins/status/index.js +9 -12
  496. package/dist/esm/plugins/status/nodeviews/status.js +37 -115
  497. package/dist/esm/plugins/status/plugin.js +13 -6
  498. package/dist/esm/plugins/status/styles.js +2 -2
  499. package/dist/esm/plugins/table/commands/index.js +1 -1
  500. package/dist/esm/plugins/table/commands/insert.js +1 -1
  501. package/dist/esm/plugins/table/commands/misc.js +5 -15
  502. package/dist/esm/plugins/table/commands-with-analytics.js +1 -1
  503. package/dist/esm/plugins/table/handlers.js +6 -2
  504. package/dist/esm/plugins/table/index.js +7 -12
  505. package/dist/esm/plugins/table/nodeviews/TableComponent.js +2 -2
  506. package/dist/esm/plugins/table/nodeviews/table.js +6 -37
  507. package/dist/esm/plugins/table/pm-plugins/decorations/plugin.js +1 -1
  508. package/dist/esm/plugins/table/pm-plugins/main.js +2 -1
  509. package/dist/esm/plugins/table/pm-plugins/plugin-factory.js +1 -2
  510. package/dist/esm/plugins/table/pm-plugins/plugin-key.js +2 -0
  511. package/dist/esm/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +2 -0
  512. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +1 -1
  513. package/dist/esm/plugins/table/reducer.js +0 -7
  514. package/dist/esm/plugins/table/toolbar.js +1 -10
  515. package/dist/esm/plugins/table/transforms/metadata.js +1 -1
  516. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +11 -12
  517. package/dist/esm/plugins/table/ui/FloatingContextualButton/{styles.css.js → styles.js} +1 -1
  518. package/dist/esm/plugins/table/ui/FloatingContextualMenu/index.js +10 -12
  519. package/dist/esm/plugins/table/ui/FloatingContextualMenu/{styles.css.js → styles.js} +1 -1
  520. package/dist/esm/plugins/table/ui/FloatingInsertButton/index.js +1 -1
  521. package/dist/esm/plugins/table/ui/LayoutButton/index.js +1 -2
  522. package/dist/esm/plugins/table/ui/common-styles.js +27 -0
  523. package/dist/esm/plugins/table/ui/ui-styles.js +68 -0
  524. package/dist/esm/plugins/table/utils/nodes.js +14 -14
  525. package/dist/esm/plugins/tasks-and-decisions/commands.js +13 -1
  526. package/dist/esm/plugins/tasks-and-decisions/styles.js +1 -1
  527. package/dist/esm/plugins/text-formatting/styles.js +4 -2
  528. package/dist/esm/plugins/text-formatting/ui/Toolbar/index.js +69 -2
  529. package/dist/esm/plugins/text-formatting/ui/Toolbar/toolbar-messages.js +30 -0
  530. package/dist/esm/plugins/text-formatting/utils.js +18 -0
  531. package/dist/esm/plugins/type-ahead/api.js +30 -2
  532. package/dist/esm/plugins/type-ahead/constants.js +1 -0
  533. package/dist/esm/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +16 -4
  534. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +9 -1
  535. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +18 -56
  536. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +44 -3
  537. package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +3 -1
  538. package/dist/esm/plugins/type-ahead/utils.js +17 -3
  539. package/dist/esm/plugins/unsupported-content/styles.js +1 -1
  540. package/dist/esm/profiler/render-count.js +1 -1
  541. package/dist/esm/ui/Appearance/Comment/Comment.js +2 -2
  542. package/dist/esm/ui/Appearance/Comment/Toolbar.js +1 -1
  543. package/dist/esm/ui/Appearance/FullPage/FullPage.js +0 -1
  544. package/dist/esm/ui/Appearance/FullPage/FullPageContentArea.js +0 -1
  545. package/dist/esm/ui/Appearance/FullPage/StyledComponents.js +2 -2
  546. package/dist/esm/ui/Appearance/FullPage/messages.js +1 -1
  547. package/dist/esm/ui/ConfigPanel/ErrorMessage/ErrorImage.js +19 -16
  548. package/dist/esm/ui/ConfigPanel/Fields/Boolean.js +17 -13
  549. package/dist/esm/ui/ConfigPanel/Fields/TabGroup.js +13 -8
  550. package/dist/esm/ui/ConfigPanel/Fields/UserSelect.js +14 -3
  551. package/dist/esm/ui/ConfigPanel/Header.js +30 -19
  552. package/dist/esm/ui/ContentStyles/index.js +28 -15
  553. package/dist/esm/ui/ElementBrowser/InsertMenu.js +5 -6
  554. package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +29 -18
  555. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +50 -35
  556. package/dist/esm/ui/ElementBrowser/components/ElementList/EmptyState.js +18 -10
  557. package/dist/esm/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +19 -17
  558. package/dist/esm/ui/ElementBrowser/components/StatelessElementBrowser.js +53 -52
  559. package/dist/esm/ui/ElementBrowser/hooks/use-container-width.js +9 -8
  560. package/dist/esm/ui/FloatingToolbar/styles.js +1 -1
  561. package/dist/esm/ui/LinkSearch/LinkSearchList.js +14 -9
  562. package/dist/esm/ui/PortalProvider/index.js +3 -3
  563. package/dist/esm/ui/Resizer/styled.js +4 -2
  564. package/dist/esm/ui/Toolbar/ToolbarInner.js +6 -3
  565. package/dist/esm/ui/WithFlash/index.js +8 -8
  566. package/dist/esm/utils/index.js +1 -1
  567. package/dist/esm/utils/insert.js +22 -10
  568. package/dist/esm/utils/performance/components/RenderTracking.js +39 -0
  569. package/dist/esm/utils/selection.js +1 -6
  570. package/dist/esm/version-wrapper.js +1 -1
  571. package/dist/esm/version.json +1 -1
  572. package/dist/types/actions/index.d.ts +2 -2
  573. package/dist/types/editor.d.ts +1 -1
  574. package/dist/types/extensibility.d.ts +1 -1
  575. package/dist/types/keymaps/index.d.ts +3 -2
  576. package/dist/types/labs/next/full-page.d.ts +1 -1
  577. package/dist/types/labs/next/mobile.d.ts +1 -1
  578. package/dist/types/nodeviews/ReactNodeView.d.ts +0 -5
  579. package/dist/types/nodeviews/getInlineNodeViewProducer.d.ts +23 -0
  580. package/dist/types/nodeviews/getInlineNodeViewProducer.styles.d.ts +1 -0
  581. package/dist/types/nodeviews/getPerformanceOptions.d.ts +19 -0
  582. package/dist/types/plugins/alignment/ui/ToolbarAlignment/index.d.ts +3 -1
  583. package/dist/types/plugins/alignment/ui/ToolbarAlignment/styles.d.ts +4 -5
  584. package/dist/types/plugins/analytics/types/enums.d.ts +2 -0
  585. package/dist/types/plugins/analytics/types/events.d.ts +11 -3
  586. package/dist/types/plugins/analytics/types/general-events.d.ts +1 -1
  587. package/dist/types/plugins/analytics/types/list-events.d.ts +0 -1
  588. package/dist/types/plugins/analytics/types/utils.d.ts +4 -0
  589. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +2 -2
  590. package/dist/types/plugins/base/pm-plugins/inline-cursor-target.d.ts +12 -6
  591. package/dist/types/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.d.ts +3 -3
  592. package/dist/types/plugins/block-type/styles.d.ts +2 -1
  593. package/dist/types/plugins/block-type/ui/ToolbarBlockType/index.d.ts +1 -0
  594. package/dist/types/plugins/block-type/ui/ToolbarBlockType/styled.d.ts +2 -7
  595. package/dist/types/plugins/breakout/ui/LayoutButton.d.ts +1 -0
  596. package/dist/types/plugins/card/messages.d.ts +2 -2
  597. package/dist/types/plugins/card/pm-plugins/doc.d.ts +1 -0
  598. package/dist/types/plugins/card/pm-plugins/main.d.ts +1 -1
  599. package/dist/types/plugins/card/styles.d.ts +1 -1
  600. package/dist/types/plugins/card/ui/LinkToolbarButtonGroup.d.ts +18 -2
  601. package/dist/types/plugins/card/ui/LinkToolbarIconDropdown.d.ts +23 -3
  602. package/dist/types/plugins/card/ui/ResizableEmbedCard.d.ts +3 -1
  603. package/dist/types/plugins/card/ui/link-toolbar-button-group-options.d.ts +5 -0
  604. package/dist/types/plugins/card/ui/link-toolbar-icon-dropdown-options.d.ts +5 -0
  605. package/dist/types/plugins/card/ui/styled.d.ts +2 -3
  606. package/dist/types/plugins/card/ui/types.d.ts +12 -0
  607. package/dist/types/plugins/clipboard/pm-plugins/main.d.ts +10 -1
  608. package/dist/types/plugins/code-block/styles.d.ts +3 -2
  609. package/dist/types/plugins/collab-edit/styles.d.ts +1 -1
  610. package/dist/types/plugins/collab-edit/ui/avatars.d.ts +1 -0
  611. package/dist/types/plugins/collab-edit/ui/colored-avatar-item.d.ts +3 -2
  612. package/dist/types/plugins/collab-edit/ui/invite-to-edit.d.ts +1 -0
  613. package/dist/types/plugins/collab-edit/ui/styles.d.ts +3 -8
  614. package/dist/types/plugins/date/nodeviews/date.d.ts +3 -15
  615. package/dist/types/plugins/date/styles.d.ts +1 -1
  616. package/dist/types/plugins/date/ui/DatePicker/date-picker-input.d.ts +1 -0
  617. package/dist/types/plugins/date/ui/DatePicker/index.d.ts +1 -0
  618. package/dist/types/plugins/emoji/styles.d.ts +2 -2
  619. package/dist/types/plugins/expand/ui/ExpandIconButton.d.ts +5 -3
  620. package/dist/types/plugins/expand/ui/styles.d.ts +2 -1
  621. package/dist/types/plugins/extension/pm-plugins/main.d.ts +2 -1
  622. package/dist/types/plugins/extension/types.d.ts +1 -0
  623. package/dist/types/plugins/extension/ui/Extension/Extension/index.d.ts +1 -0
  624. package/dist/types/plugins/extension/ui/Extension/Extension/styles.d.ts +3 -8
  625. package/dist/types/plugins/extension/ui/Extension/InlineExtension/index.d.ts +3 -1
  626. package/dist/types/plugins/extension/ui/Extension/InlineExtension/styles.d.ts +2 -2
  627. package/dist/types/plugins/extension/ui/Extension/Lozenge.d.ts +3 -1
  628. package/dist/types/plugins/extension/ui/Extension/styles.d.ts +6 -6
  629. package/dist/types/plugins/extension/ui/SaveIndicator/SaveIndicator.d.ts +1 -0
  630. package/dist/types/plugins/extension/ui/styles.d.ts +1 -1
  631. package/dist/types/plugins/extension/utils.d.ts +3 -1
  632. package/dist/types/plugins/fake-text-cursor/styles.d.ts +1 -1
  633. package/dist/types/plugins/find-replace/styles.d.ts +1 -1
  634. package/dist/types/plugins/find-replace/ui/FindReplace.d.ts +2 -1
  635. package/dist/types/plugins/find-replace/ui/styles.d.ts +5 -5
  636. package/dist/types/plugins/floating-toolbar/ui/styles.d.ts +6 -1
  637. package/dist/types/plugins/grid/styles.d.ts +1 -1
  638. package/dist/types/plugins/help-dialog/ui/index.d.ts +3 -1
  639. package/dist/types/plugins/help-dialog/ui/styles.d.ts +12 -13
  640. package/dist/types/plugins/hyperlink/styles.d.ts +2 -4
  641. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.d.ts +4 -2
  642. package/dist/types/plugins/jira-issue/nodeviews/jira-issue.d.ts +3 -2
  643. package/dist/types/plugins/layout/styles.d.ts +1 -1
  644. package/dist/types/plugins/list/actions/wrap-and-join-lists.d.ts +25 -0
  645. package/dist/types/plugins/list/commands/index.d.ts +0 -1
  646. package/dist/types/plugins/list/styles.d.ts +1 -1
  647. package/dist/types/plugins/list/utils/node.d.ts +0 -1
  648. package/dist/types/plugins/list/utils/replace-content.d.ts +8 -0
  649. package/dist/types/plugins/media/nodeviews/mediaNodeUpdater.d.ts +2 -2
  650. package/dist/types/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.d.ts +3 -1
  651. package/dist/types/plugins/media/pm-plugins/main.d.ts +0 -1
  652. package/dist/types/plugins/media/pm-plugins/media-editor-plugin-factory.d.ts +1 -3
  653. package/dist/types/plugins/media/styles.d.ts +1 -1
  654. package/dist/types/plugins/media/types.d.ts +0 -19
  655. package/dist/types/plugins/media/ui/ResizableMediaSingle/index.d.ts +3 -1
  656. package/dist/types/plugins/media/ui/ResizableMediaSingle/styled.d.ts +2 -2
  657. package/dist/types/plugins/media/utils/media-single.d.ts +1 -0
  658. package/dist/types/plugins/mentions/styles.d.ts +1 -1
  659. package/dist/types/plugins/panel/styles.d.ts +2 -1
  660. package/dist/types/plugins/paste/handlers.d.ts +1 -1
  661. package/dist/types/plugins/placeholder/styles.d.ts +1 -1
  662. package/dist/types/plugins/placeholder-text/placeholder-text-nodeview.d.ts +3 -2
  663. package/dist/types/plugins/placeholder-text/selection-utils.d.ts +2 -0
  664. package/dist/types/plugins/placeholder-text/styles.d.ts +1 -1
  665. package/dist/types/plugins/rule/styles.d.ts +2 -1
  666. package/dist/types/plugins/selection/gap-cursor/styles.d.ts +1 -1
  667. package/dist/types/plugins/status/nodeviews/status.d.ts +6 -13
  668. package/dist/types/plugins/status/plugin.d.ts +2 -3
  669. package/dist/types/plugins/status/styles.d.ts +1 -1
  670. package/dist/types/plugins/status/ui/statusPicker.d.ts +1 -1
  671. package/dist/types/plugins/table/commands/index.d.ts +1 -1
  672. package/dist/types/plugins/table/commands/misc.d.ts +0 -1
  673. package/dist/types/plugins/table/nodeviews/table.d.ts +0 -1
  674. package/dist/types/plugins/table/pm-plugins/plugin-factory.d.ts +1 -4
  675. package/dist/types/plugins/table/pm-plugins/plugin-key.d.ts +3 -0
  676. package/dist/types/plugins/table/types.d.ts +1 -8
  677. package/dist/types/plugins/table/ui/FloatingContextualButton/index.d.ts +4 -2
  678. package/dist/types/plugins/table/ui/FloatingContextualButton/styles.d.ts +1 -0
  679. package/dist/types/plugins/table/ui/FloatingContextualMenu/index.d.ts +3 -2
  680. package/dist/types/plugins/table/ui/FloatingContextualMenu/styles.d.ts +1 -0
  681. package/dist/types/plugins/table/ui/LayoutButton/index.d.ts +0 -1
  682. package/dist/types/plugins/table/ui/common-styles.d.ts +6 -0
  683. package/dist/types/plugins/table/ui/ui-styles.d.ts +15 -0
  684. package/dist/types/plugins/table/utils/nodes.d.ts +6 -6
  685. package/dist/types/plugins/tasks-and-decisions/styles.d.ts +1 -1
  686. package/dist/types/plugins/text-formatting/pm-plugins/smart-input-rule.d.ts +1 -1
  687. package/dist/types/plugins/text-formatting/styles.d.ts +2 -1
  688. package/dist/types/plugins/text-formatting/ui/Toolbar/toolbar-messages.d.ts +30 -0
  689. package/dist/types/plugins/text-formatting/utils.d.ts +4 -0
  690. package/dist/types/plugins/type-ahead/api.d.ts +11 -1
  691. package/dist/types/plugins/type-ahead/constants.d.ts +1 -0
  692. package/dist/types/plugins/type-ahead/transforms/open-typeahead-at-cursor.d.ts +1 -0
  693. package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +1 -0
  694. package/dist/types/plugins/type-ahead/ui/TypeAheadListItem.d.ts +26 -0
  695. package/dist/types/plugins/type-ahead/utils.d.ts +4 -0
  696. package/dist/types/plugins/unsupported-content/styles.d.ts +1 -1
  697. package/dist/types/types/editor-appearance-component.d.ts +0 -1
  698. package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +0 -1
  699. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +3 -9
  700. package/dist/types/ui/ColorPickerButton/index.d.ts +1 -1
  701. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  702. package/dist/types/ui/ConfigPanel/ErrorMessage/ErrorImage.d.ts +1 -0
  703. package/dist/types/ui/ConfigPanel/Fields/Boolean.d.ts +2 -2
  704. package/dist/types/ui/ConfigPanel/Fields/TabGroup.d.ts +1 -0
  705. package/dist/types/ui/ConfigPanel/FormErrorBoundary.d.ts +1 -1
  706. package/dist/types/ui/ConfigPanel/Header.d.ts +3 -3
  707. package/dist/types/ui/ContentStyles/index.d.ts +2 -4
  708. package/dist/types/ui/ElementBrowser/ModalElementBrowser.d.ts +1 -0
  709. package/dist/types/ui/ElementBrowser/components/ElementList/ElementList.d.ts +1 -0
  710. package/dist/types/ui/ElementBrowser/components/ElementSearch.d.ts +1 -1
  711. package/dist/types/ui/ElementBrowser/components/StatelessElementBrowser.d.ts +2 -1
  712. package/dist/types/ui/ElementBrowser/hooks/use-container-width.d.ts +1 -0
  713. package/dist/types/ui/LinkSearch/LinkSearchList.d.ts +4 -3
  714. package/dist/types/ui/Resizer/styled.d.ts +1 -2
  715. package/dist/types/ui/Toolbar/ToolbarInner.d.ts +3 -1
  716. package/dist/types/ui/ToolbarButton/index.d.ts +3 -3
  717. package/dist/types/ui/ToolbarButton/styles.d.ts +2 -2
  718. package/dist/types/ui/WithFlash/index.d.ts +3 -1
  719. package/dist/types/utils/index.d.ts +1 -1
  720. package/dist/types/utils/insert.d.ts +2 -1
  721. package/dist/types/utils/performance/components/RenderTracking.d.ts +13 -0
  722. package/dist/types/utils/selection.d.ts +0 -1
  723. package/package.json +36 -36
  724. package/dist/cjs/plugins/media/commands/media-editor.js +0 -80
  725. package/dist/cjs/plugins/media/pm-plugins/media-editor.js +0 -106
  726. package/dist/cjs/plugins/media/toolbar/annotation.js +0 -244
  727. package/dist/cjs/plugins/media/ui/MediaEditor.js +0 -88
  728. package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.css.js +0 -23
  729. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.css.js +0 -27
  730. package/dist/cjs/plugins/table/ui/common-styles.css.js +0 -44
  731. package/dist/cjs/plugins/table/ui/ui-styles.css.js +0 -95
  732. package/dist/cjs/utils/compare.js +0 -136
  733. package/dist/cjs/utils/react-hooks/use-component-renderer-tracking/index.js +0 -83
  734. package/dist/es2019/plugins/media/commands/media-editor.js +0 -46
  735. package/dist/es2019/plugins/media/pm-plugins/media-editor.js +0 -43
  736. package/dist/es2019/plugins/media/toolbar/annotation.js +0 -136
  737. package/dist/es2019/plugins/media/ui/MediaEditor.js +0 -51
  738. package/dist/es2019/utils/compare.js +0 -99
  739. package/dist/es2019/utils/react-hooks/use-component-renderer-tracking/index.js +0 -66
  740. package/dist/esm/plugins/media/commands/media-editor.js +0 -59
  741. package/dist/esm/plugins/media/pm-plugins/media-editor.js +0 -90
  742. package/dist/esm/plugins/media/toolbar/annotation.js +0 -218
  743. package/dist/esm/plugins/media/ui/MediaEditor.js +0 -76
  744. package/dist/esm/plugins/table/ui/common-styles.css.js +0 -23
  745. package/dist/esm/plugins/table/ui/ui-styles.css.js +0 -59
  746. package/dist/esm/utils/compare.js +0 -115
  747. package/dist/esm/utils/react-hooks/use-component-renderer-tracking/index.js +0 -68
  748. package/dist/types/plugins/media/commands/media-editor.d.ts +0 -7
  749. package/dist/types/plugins/media/pm-plugins/media-editor.d.ts +0 -3
  750. package/dist/types/plugins/media/toolbar/annotation.d.ts +0 -24
  751. package/dist/types/plugins/media/ui/MediaEditor.d.ts +0 -14
  752. package/dist/types/plugins/table/ui/FloatingContextualButton/styles.css.d.ts +0 -1
  753. package/dist/types/plugins/table/ui/FloatingContextualMenu/styles.css.d.ts +0 -1
  754. package/dist/types/plugins/table/ui/common-styles.css.d.ts +0 -3
  755. package/dist/types/plugins/table/ui/ui-styles.css.d.ts +0 -14
  756. package/dist/types/utils/compare.d.ts +0 -32
  757. package/dist/types/utils/react-hooks/use-component-renderer-tracking/index.d.ts +0 -30
@@ -3,17 +3,12 @@ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
3
  import _createClass from "@babel/runtime/helpers/createClass";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
5
  import React from 'react';
6
- import { startMeasure, stopMeasure } from '@atlaskit/editor-common/utils';
7
- import { analyticsPluginKey } from '../plugins/analytics/plugin-key';
8
6
  import { createDispatch } from '../event-dispatcher';
9
- import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../plugins/analytics';
7
+ import { ACTION_SUBJECT, ACTION_SUBJECT_ID } from '../plugins/analytics';
10
8
  import { analyticsEventKey } from '../plugins/analytics/consts';
11
- import { getParticipantsCount } from '../plugins/collab-edit/get-participants-count';
12
9
  import { getFeatureFlags } from '../plugins/feature-flags-context';
13
10
  import { ErrorBoundary } from '../ui/ErrorBoundary';
14
- var DEFAULT_SAMPLING_RATE = 100;
15
- var DEFAULT_SLOW_THRESHOLD = 7;
16
- var nodeViewEventsCounter = 0;
11
+ import { getPerformanceOptions, startMeasureReactNodeViewRendered, stopMeasureReactNodeViewRendered } from './getPerformanceOptions';
17
12
 
18
13
  var ReactNodeView = /*#__PURE__*/function () {
19
14
  function ReactNodeView(_node, view, getPos, portalProviderAPI, eventDispatcher, reactComponentProps, reactComponent) {
@@ -86,27 +81,24 @@ var ReactNodeView = /*#__PURE__*/function () {
86
81
 
87
82
 
88
83
  this.domRef.classList.add("".concat(this.node.type.name, "View-content-wrap"));
89
- var _this$performanceOpti = this.performanceOptions,
90
- samplingRate = _this$performanceOpti.samplingRate,
91
- slowThreshold = _this$performanceOpti.slowThreshold,
92
- trackingEnabled = _this$performanceOpti.enabled;
93
- trackingEnabled && startMeasure("\uD83E\uDD89".concat(this.node.type.name, "::ReactNodeView"));
84
+
85
+ var _getPerformanceOption = getPerformanceOptions(this.view),
86
+ samplingRate = _getPerformanceOption.samplingRate,
87
+ slowThreshold = _getPerformanceOption.slowThreshold,
88
+ trackingEnabled = _getPerformanceOption.trackingEnabled;
89
+
90
+ trackingEnabled && startMeasureReactNodeViewRendered({
91
+ nodeTypeName: this.node.type.name
92
+ });
94
93
  this.renderReactComponent(function () {
95
94
  return _this2.render(_this2.reactComponentProps, _this2.handleRef);
96
95
  });
97
- trackingEnabled && stopMeasure("\uD83E\uDD89".concat(this.node.type.name, "::ReactNodeView"), function (duration) {
98
- if (++nodeViewEventsCounter % samplingRate === 0 && duration > slowThreshold) {
99
- _this2.dispatchAnalyticsEvent({
100
- action: ACTION.REACT_NODEVIEW_RENDERED,
101
- actionSubject: ACTION_SUBJECT.EDITOR,
102
- eventType: EVENT_TYPE.OPERATIONAL,
103
- attributes: {
104
- node: _this2.node.type.name,
105
- duration: duration,
106
- participants: getParticipantsCount(_this2.view.state)
107
- }
108
- });
109
- }
96
+ trackingEnabled && stopMeasureReactNodeViewRendered({
97
+ nodeTypeName: this.node.type.name,
98
+ dispatchAnalyticsEvent: this.dispatchAnalyticsEvent,
99
+ editorState: this.view.state,
100
+ samplingRate: samplingRate,
101
+ slowThreshold: slowThreshold
110
102
  });
111
103
  return this;
112
104
  }
@@ -242,19 +234,6 @@ var ReactNodeView = /*#__PURE__*/function () {
242
234
  this.domRef = undefined;
243
235
  this.contentDOM = undefined;
244
236
  }
245
- }, {
246
- key: "performanceOptions",
247
- get: function get() {
248
- var pluginState = analyticsPluginKey.getState(this.view.state);
249
- var nodeViewTracking = pluginState && pluginState.performanceTracking ? pluginState.performanceTracking.nodeViewTracking || {} : {};
250
- var samplingRate = nodeViewTracking.samplingRate || DEFAULT_SAMPLING_RATE;
251
- var slowThreshold = nodeViewTracking.slowThreshold || DEFAULT_SLOW_THRESHOLD;
252
- return {
253
- enabled: !!nodeViewTracking.enabled,
254
- samplingRate: samplingRate,
255
- slowThreshold: slowThreshold
256
- };
257
- }
258
237
  }], [{
259
238
  key: "fromComponent",
260
239
  value: function fromComponent(component, portalProviderAPI, eventDispatcher, props, viewShouldUpdate) {
@@ -0,0 +1,212 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { ZERO_WIDTH_SPACE } from '@atlaskit/editor-common/utils';
4
+ import { ACTION_SUBJECT, ACTION_SUBJECT_ID } from '../plugins/analytics';
5
+ import { analyticsEventKey } from '../plugins/analytics/consts';
6
+ import { ErrorBoundary } from '../ui/ErrorBoundary';
7
+ import { getPerformanceOptions, startMeasureReactNodeViewRendered, stopMeasureReactNodeViewRendered } from './getPerformanceOptions';
8
+
9
+ function createNodeView(_ref) {
10
+ var nodeViewParams = _ref.nodeViewParams,
11
+ pmPluginFactoryParams = _ref.pmPluginFactoryParams,
12
+ Component = _ref.Component,
13
+ extraComponentProps = _ref.extraComponentProps;
14
+ // We set a variable for the current node which is
15
+ // used for comparisions when doing updates, before being
16
+ // overwritten to the updated node.
17
+ var currentNode = nodeViewParams.node; // First we setup the dom element which will be rendered and "tracked" by prosemirror
18
+ // and also used as a "editor portal" (not react portal) target by the editor
19
+ // portal provider api, for rendering the Component passed.
20
+
21
+ var domRef = document.createElement('span');
22
+ domRef.contentEditable = 'false';
23
+ setDomAttrs(nodeViewParams.node, domRef); // @see ED-3790
24
+ // something gets messed up during mutation processing inside of a
25
+ // nodeView if DOM structure has nested plain "div"s, it doesn't see the
26
+ // difference between them and it kills the nodeView
27
+
28
+ domRef.classList.add("".concat(nodeViewParams.node.type.name, "View-content-wrap"), "inlineNodeViewOuterContainer"); // This util is shared for tracking rendering, and the ErrorBoundary that
29
+ // is setup to wrap the Component when rendering
30
+ // NOTE: This is not a prosemirror dispatch
31
+
32
+ function dispatchAnalyticsEvent(payload) {
33
+ pmPluginFactoryParams.eventDispatcher.emit(analyticsEventKey, {
34
+ payload: payload
35
+ });
36
+ } // This is called to render the Component into domRef which is inside the
37
+ // prosemirror View.
38
+ // Internally it uses the unstable_renderSubtreeIntoContainer api to render,
39
+ // to the passed dom element (domRef) which means it is automatically
40
+ // "cleaned up" when you do a "re render".
41
+
42
+
43
+ function renderComponent() {
44
+ pmPluginFactoryParams.portalProviderAPI.render(getPortalChildren({
45
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
46
+ currentNode: currentNode,
47
+ nodeViewParams: nodeViewParams,
48
+ Component: Component,
49
+ extraComponentProps: extraComponentProps
50
+ }), domRef, false, // node views should be rendered with intl context
51
+ true);
52
+ }
53
+
54
+ var _getPerformanceOption = getPerformanceOptions(nodeViewParams.view),
55
+ samplingRate = _getPerformanceOption.samplingRate,
56
+ slowThreshold = _getPerformanceOption.slowThreshold,
57
+ trackingEnabled = _getPerformanceOption.trackingEnabled;
58
+
59
+ trackingEnabled && startMeasureReactNodeViewRendered({
60
+ nodeTypeName: currentNode.type.name
61
+ }); // We render the component while creating the node view
62
+
63
+ renderComponent();
64
+ trackingEnabled && stopMeasureReactNodeViewRendered({
65
+ nodeTypeName: currentNode.type.name,
66
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
67
+ editorState: nodeViewParams.view.state,
68
+ samplingRate: samplingRate,
69
+ slowThreshold: slowThreshold
70
+ }); // https://prosemirror.net/docs/ref/#view.NodeView
71
+
72
+ var nodeView = {
73
+ get dom() {
74
+ return domRef;
75
+ },
76
+
77
+ update: function update(nextNode, _decorations) {
78
+ // Let ProseMirror handle the update if node types are different.
79
+ // This prevents an issue where it was not possible to select the
80
+ // inline node view then replace it by entering text - the node
81
+ // view contents would be deleted but the node view itself would
82
+ // stay in the view and become uneditable.
83
+ if (currentNode.type !== nextNode.type) {
84
+ return false;
85
+ } // On updates, we only set the new attributes if the type, attributes, and marks
86
+ // have changed on the node.
87
+ // NOTE: this could mean attrs changes aren't reflected in the dom,
88
+ // when an attribute key which was previously present is no longer
89
+ // present.
90
+ // ie.
91
+ // -> Original attributes { text: "hello world", color: "red" }
92
+ // -> Updated attributes { color: "blue" }
93
+ // in this case, the dom text attribute will not be cleared.
94
+ //
95
+ // This may not be an issue with any of our current node schemas.
96
+
97
+
98
+ if (!currentNode.sameMarkup(nextNode)) {
99
+ setDomAttrs(nextNode, domRef);
100
+ }
101
+
102
+ currentNode = nextNode;
103
+ renderComponent();
104
+ return true;
105
+ },
106
+ destroy: function destroy() {
107
+ // When prosemirror destroys the node view, we need to clean up
108
+ // what we have previously rendered using the editor portal
109
+ // provider api.
110
+ pmPluginFactoryParams.portalProviderAPI.remove(domRef); // @ts-expect-error Expect an error as domRef is expected to be
111
+ // of HTMLSpanElement type however once the node view has
112
+ // been destroyed no other consumers should still be using it.
113
+
114
+ domRef = undefined;
115
+ }
116
+ };
117
+ return nodeView;
118
+ }
119
+ /**
120
+ * Copies the attributes from a ProseMirror Node to a DOM node.
121
+ * @param node The Prosemirror Node from which to source the attributes
122
+ */
123
+
124
+
125
+ function setDomAttrs(node, element) {
126
+ Object.keys(node.attrs || {}).forEach(function (attr) {
127
+ element.setAttribute(attr, node.attrs[attr]);
128
+ });
129
+ }
130
+
131
+ function getPortalChildren(_ref2) {
132
+ var dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent,
133
+ currentNode = _ref2.currentNode,
134
+ nodeViewParams = _ref2.nodeViewParams,
135
+ Component = _ref2.Component,
136
+ extraComponentProps = _ref2.extraComponentProps;
137
+ return function portalChildren() {
138
+ var _currentNode$type$nam, _currentNode$type;
139
+
140
+ // All inline nodes use `display: inline` to allow for multi-line
141
+ // wrapping. This does produce an issue in Chrome where it is not
142
+ // possible to click select the position after the node,
143
+ // see: https://product-fabric.atlassian.net/browse/ED-12003
144
+ // however this is only a problem for node views that use
145
+ // `display: inline-block` somewhere within the Component.
146
+ // Looking at the below structure, spans with className
147
+ // `inlineNodeViewAddZeroWidthSpace` have pseudo elements that
148
+ // add a zero width space which fixes the problem.
149
+ // Without the additional zero width space before the Component,
150
+ // it is not possible to use the keyboard to range select in Safari.
151
+ //
152
+ // Zero width spaces on either side of the Component also prevent
153
+ // the cursor from appearing inside the node view on all browsers.
154
+ //
155
+ // Note:
156
+ // In future it is worth considering prohibiting the use of `display: inline-block`
157
+ // within inline node view Components however would require a sizable
158
+ // refactor. A test suite to catch any instances of this is ideal however
159
+ // the refactor required is currently out of scope for https://product-fabric.atlassian.net/browse/ED-14176
160
+ return /*#__PURE__*/React.createElement(ErrorBoundary, {
161
+ component: ACTION_SUBJECT.REACT_NODE_VIEW,
162
+ componentId: (_currentNode$type$nam = currentNode === null || currentNode === void 0 ? void 0 : (_currentNode$type = currentNode.type) === null || _currentNode$type === void 0 ? void 0 : _currentNode$type.name) !== null && _currentNode$type$nam !== void 0 ? _currentNode$type$nam : ACTION_SUBJECT_ID.UNKNOWN_NODE,
163
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent
164
+ }, /*#__PURE__*/React.createElement("span", {
165
+ className: "inlineNodeViewAddZeroWidthSpace"
166
+ }), ZERO_WIDTH_SPACE, /*#__PURE__*/React.createElement(Component, _extends({
167
+ view: nodeViewParams.view,
168
+ getPos: nodeViewParams.getPos,
169
+ node: currentNode
170
+ }, extraComponentProps)), /*#__PURE__*/React.createElement("span", {
171
+ className: "inlineNodeViewAddZeroWidthSpace"
172
+ }));
173
+ };
174
+ } // https://prosemirror.net/docs/ref/#view.EditorProps.nodeViews
175
+ // The prosemirror EditorProps has a nodeViews key which has the rough shape:
176
+ // type nodeViews: {
177
+ // [nodeViewName: string]: (node, editorView, getPos, decorations, innerDecorations) => NodeView
178
+ // }
179
+ // So the value of the keys on the nodeViews object, are a function which should return a NodeView.
180
+ // The following type NodeViewProducer, refers to these functions which return a NodeView.
181
+ //
182
+ // So the above type could also be described as
183
+ // type NodeViewProducer = (node, editorView, getPos, decorations, innerDecorations) => NodeView
184
+ // nodeViews: {
185
+ // [nodeViewName: string]: NodeViewProducer
186
+ // }
187
+
188
+
189
+ // This return of this function is intended to be the value of a key
190
+ // in a ProseMirror nodeViews object.
191
+ export function getInlineNodeViewProducer(_ref3) {
192
+ var pmPluginFactoryParams = _ref3.pmPluginFactoryParams,
193
+ Component = _ref3.Component,
194
+ extraComponentProps = _ref3.extraComponentProps;
195
+
196
+ function nodeViewProducer() {
197
+ var nodeView = createNodeView({
198
+ nodeViewParams: {
199
+ node: arguments.length <= 0 ? undefined : arguments[0],
200
+ view: arguments.length <= 1 ? undefined : arguments[1],
201
+ getPos: arguments.length <= 2 ? undefined : arguments[2],
202
+ decorations: arguments.length <= 3 ? undefined : arguments[3]
203
+ },
204
+ pmPluginFactoryParams: pmPluginFactoryParams,
205
+ Component: Component,
206
+ extraComponentProps: extraComponentProps
207
+ });
208
+ return nodeView;
209
+ }
210
+
211
+ return nodeViewProducer;
212
+ }
@@ -0,0 +1,9 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+
3
+ var _templateObject;
4
+
5
+ import { css } from '@emotion/react';
6
+ import { ZERO_WIDTH_SPACE } from '@atlaskit/editor-common/utils'; // For reasoning behind styles, see comments in:
7
+ // ./getInlineNodeViewProducer -> portalChildren()
8
+
9
+ export var InlineNodeViewSharedStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .inlineNodeViewOuterContainer {\n display: inline;\n }\n\n .inlineNodeViewAddZeroWidthSpace {\n ::after {\n content: '", "';\n }\n }\n"])), ZERO_WIDTH_SPACE);
@@ -0,0 +1,45 @@
1
+ import { startMeasure, stopMeasure } from '@atlaskit/editor-common/utils';
2
+ import { getParticipantsCount } from '../plugins/collab-edit/get-participants-count';
3
+ import { analyticsPluginKey } from '../plugins/analytics/plugin-key';
4
+ import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../plugins/analytics'; // This was existing logic when converting from ReactNodeView
5
+ // our current sampling for this event is not bound by node.type
6
+
7
+ export var nodeViewRenderedEventsCounter = 0;
8
+ var DEFAULT_SAMPLING_RATE = 100;
9
+ var DEFAULT_SLOW_THRESHOLD = 7;
10
+ export function getPerformanceOptions(view) {
11
+ var pluginState = analyticsPluginKey.getState(view.state);
12
+ var nodeViewTracking = pluginState && pluginState.performanceTracking ? pluginState.performanceTracking.nodeViewTracking || {} : {};
13
+ var samplingRate = nodeViewTracking.samplingRate || DEFAULT_SAMPLING_RATE;
14
+ var slowThreshold = nodeViewTracking.slowThreshold || DEFAULT_SLOW_THRESHOLD;
15
+ return {
16
+ trackingEnabled: !!nodeViewTracking.enabled,
17
+ samplingRate: samplingRate,
18
+ slowThreshold: slowThreshold
19
+ };
20
+ }
21
+ export function startMeasureReactNodeViewRendered(_ref) {
22
+ var nodeTypeName = _ref.nodeTypeName;
23
+ startMeasure("\uD83E\uDD89".concat(nodeTypeName, "::ReactNodeView"));
24
+ }
25
+ export function stopMeasureReactNodeViewRendered(_ref2) {
26
+ var nodeTypeName = _ref2.nodeTypeName,
27
+ dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent,
28
+ editorState = _ref2.editorState,
29
+ samplingRate = _ref2.samplingRate,
30
+ slowThreshold = _ref2.slowThreshold;
31
+ stopMeasure("\uD83E\uDD89".concat(nodeTypeName, "::ReactNodeView"), function (duration) {
32
+ if (++nodeViewRenderedEventsCounter % samplingRate === 0 && duration > slowThreshold) {
33
+ dispatchAnalyticsEvent({
34
+ action: ACTION.REACT_NODEVIEW_RENDERED,
35
+ actionSubject: ACTION_SUBJECT.EDITOR,
36
+ eventType: EVENT_TYPE.OPERATIONAL,
37
+ attributes: {
38
+ node: nodeTypeName,
39
+ duration: duration,
40
+ participants: getParticipantsCount(editorState)
41
+ }
42
+ });
43
+ }
44
+ });
45
+ }
@@ -10,13 +10,15 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
10
10
 
11
11
  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; } }
12
12
 
13
+ /** @jsx jsx */
13
14
  import React from 'react';
15
+ import { jsx } from '@emotion/react';
14
16
  import { injectIntl } from 'react-intl-next';
15
17
  import ExpandIcon from '@atlaskit/icon/glyph/chevron-down';
16
18
  import ToolbarButton from '../../../../ui/ToolbarButton';
17
19
  import Dropdown from '../../../../ui/Dropdown';
18
20
  import Alignment from '../../../../ui/Alignment';
19
- import { ExpandIconWrapper, Separator, TriggerWrapper, Wrapper } from './styles';
21
+ import { expandIconWrapper, separator, triggerWrapper, wrapper } from './styles';
20
22
  import { IconMap } from './icon-map';
21
23
  import { messages } from './messages';
22
24
  export var AlignmentToolbar = /*#__PURE__*/function (_React$Component) {
@@ -85,7 +87,9 @@ export var AlignmentToolbar = /*#__PURE__*/function (_React$Component) {
85
87
  disabled = _this$props.disabled,
86
88
  intl = _this$props.intl;
87
89
  var title = intl.formatMessage(messages.alignment);
88
- return /*#__PURE__*/React.createElement(Wrapper, null, /*#__PURE__*/React.createElement(Dropdown, {
90
+ return jsx("span", {
91
+ css: wrapper
92
+ }, jsx(Dropdown, {
89
93
  mountTo: popupsMountPoint,
90
94
  boundariesElement: popupsBoundariesElement,
91
95
  scrollableElement: popupsScrollableElement,
@@ -94,7 +98,7 @@ export var AlignmentToolbar = /*#__PURE__*/function (_React$Component) {
94
98
  handleEscapeKeydown: this.hide,
95
99
  fitWidth: 112,
96
100
  fitHeight: 80,
97
- trigger: /*#__PURE__*/React.createElement(ToolbarButton, {
101
+ trigger: jsx(ToolbarButton, {
98
102
  spacing: isReducedSpacing ? 'none' : 'default',
99
103
  disabled: disabled,
100
104
  selected: isOpen,
@@ -104,18 +108,24 @@ export var AlignmentToolbar = /*#__PURE__*/function (_React$Component) {
104
108
  "aria-expanded": isOpen,
105
109
  "aria-haspopup": true,
106
110
  onClick: this.toggleOpen,
107
- iconBefore: /*#__PURE__*/React.createElement(TriggerWrapper, null, /*#__PURE__*/React.createElement(IconMap, {
111
+ iconBefore: jsx("div", {
112
+ css: triggerWrapper
113
+ }, jsx(IconMap, {
108
114
  alignment: pluginState.align
109
- }), /*#__PURE__*/React.createElement(ExpandIconWrapper, null, /*#__PURE__*/React.createElement(ExpandIcon, {
115
+ }), jsx("span", {
116
+ css: expandIconWrapper
117
+ }, jsx(ExpandIcon, {
110
118
  label: ""
111
119
  })))
112
120
  })
113
- }, /*#__PURE__*/React.createElement(Alignment, {
121
+ }, jsx(Alignment, {
114
122
  onClick: function onClick(align) {
115
123
  return _this2.changeAlignment(align);
116
124
  },
117
125
  selectedAlignment: pluginState.align
118
- })), /*#__PURE__*/React.createElement(Separator, null));
126
+ })), jsx("span", {
127
+ css: separator
128
+ }));
119
129
  }
120
130
  }]);
121
131
 
@@ -2,9 +2,9 @@ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral
2
2
 
3
3
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
4
4
 
5
- import styled from 'styled-components';
5
+ import { css } from '@emotion/react';
6
6
  import { N30 } from '@atlaskit/theme/colors';
7
- export var TriggerWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n"])));
8
- export var Separator = styled.span(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n background: ", ";\n width: 1px;\n height: 24px;\n display: inline-block;\n margin: 0 8px;\n"])), N30);
9
- export var Wrapper = styled.span(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n div {\n display: flex;\n }\n"])));
10
- export var ExpandIconWrapper = styled.span(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n margin-left: -8px;\n"])));
7
+ export var triggerWrapper = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n"])));
8
+ export var separator = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n background: ", ";\n width: 1px;\n height: 24px;\n display: inline-block;\n margin: 0 8px;\n"])), N30);
9
+ export var wrapper = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n div {\n display: flex;\n }\n"])));
10
+ export var expandIconWrapper = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n margin-left: -8px;\n"])));
@@ -43,6 +43,7 @@ export var 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 var 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,16 +1,16 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
2
 
3
- var _templateObject;
3
+ var _templateObject, _templateObject2;
4
4
 
5
- import React, { useEffect } from 'react';
5
+ /** @jsx jsx */
6
+ import { useEffect } from 'react';
7
+ import { css, jsx } from '@emotion/react';
6
8
  import AvatarsWithPluginState from '../../collab-edit/ui/avatars-with-plugin-state';
7
- import styled from 'styled-components';
8
9
  import { useIntl } from 'react-intl-next';
9
10
  import { avatarGroupMessages } from '../messages';
10
11
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE, ACTION_SUBJECT_ID } from '../../analytics';
11
- var ToolbarButtonWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-grow: ", ";\n justify-content: flex-end;\n align-items: center;\n & > div {\n margin-right: 0;\n }\n"])), function (props) {
12
- return props.takeFullWidth ? 1 : 0;
13
- });
12
+ var toolbarButtonWrapper = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: flex-end;\n flex-grow: 0;\n align-items: center;\n & > div {\n margin-right: 0;\n }\n"])));
13
+ var toolbarButtonWrapperFullWidth = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", "\n flex-grow: 1;\n"])), toolbarButtonWrapper);
14
14
 
15
15
  var AvatarGroupPluginWrapper = function AvatarGroupPluginWrapper(props) {
16
16
  var dispatchAnalyticsEvent = props.dispatchAnalyticsEvent;
@@ -27,11 +27,11 @@ var AvatarGroupPluginWrapper = function AvatarGroupPluginWrapper(props) {
27
27
  eventType: EVENT_TYPE.UI
28
28
  });
29
29
  }, [dispatchAnalyticsEvent]);
30
- return /*#__PURE__*/React.createElement(ToolbarButtonWrapper, {
30
+ return jsx("div", {
31
31
  "aria-label": intl.formatMessage(avatarGroupMessages.editors),
32
32
  "data-testid": 'avatar-group-in-plugin',
33
- takeFullWidth: props.takeFullWidth
34
- }, /*#__PURE__*/React.createElement(AvatarsWithPluginState, {
33
+ css: props.takeFullWidth ? toolbarButtonWrapperFullWidth : toolbarButtonWrapper
34
+ }, jsx(AvatarsWithPluginState, {
35
35
  editorView: props.editorView,
36
36
  eventDispatcher: props.eventDispatcher,
37
37
  inviteToEditComponent: props.collabEdit && props.collabEdit.inviteToEditComponent,
@@ -34,12 +34,31 @@ var basePlugin = function basePlugin(options) {
34
34
  var dispatchAnalyticsEvent = _ref.dispatchAnalyticsEvent;
35
35
  return filterStepsPlugin(dispatchAnalyticsEvent);
36
36
  }
37
- }, {
38
- name: 'inlineCursorTargetPlugin',
39
- plugin: function plugin() {
40
- return options && options.allowInlineCursorTarget ? inlineCursorTargetPlugin() : undefined;
41
- }
42
- }, {
37
+ }]; // In Chrome, when the selection is placed between adjacent nodes which are not contenteditatble
38
+ // the cursor appears at the right most point of the parent container.
39
+ // In Firefox, when the selection is placed between adjacent nodes which are not contenteditatble
40
+ // no cursor is presented to users.
41
+ // In Safari, when the selection is placed between adjacent nodes which are not contenteditatble
42
+ // the cursor appears inside the adjacent nodes.
43
+ // This plugin workarounds the issues with chrome and firefox by inserting decorations between
44
+ // inline nodes which are set as contenteditable, and have a zero width space.
45
+ // At time of development, using this workaround in Safari caused additional issues;
46
+ // - visual artifacts when moving across inline nodes (ie. using the arrow key to traverse a
47
+ // series of inline nodes)
48
+ // - blocking the right arrow key when at the start of a line from moving to the end of the
49
+ // previous line.
50
+ // As such we only apply the workaround for firefox and chrome.
51
+
52
+ if (browser.chrome || browser.gecko) {
53
+ plugins.push({
54
+ name: 'inlineCursorTargetPlugin',
55
+ plugin: function plugin() {
56
+ return options && options.allowInlineCursorTarget ? inlineCursorTargetPlugin() : undefined;
57
+ }
58
+ });
59
+ }
60
+
61
+ plugins.push({
43
62
  name: 'focusHandlerPlugin',
44
63
  plugin: function plugin(_ref2) {
45
64
  var dispatch = _ref2.dispatch;
@@ -98,7 +117,7 @@ var basePlugin = function basePlugin(options) {
98
117
  providerFactory = _ref5.providerFactory;
99
118
  return betterTypeHistoryPlugin();
100
119
  }
101
- }];
120
+ });
102
121
 
103
122
  if (options && options.allowScrollGutter) {
104
123
  plugins.push({