@atlaskit/editor-core 148.0.0 → 149.0.3

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 (555) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/dist/cjs/create-editor/create-plugins-list.js +6 -1
  3. package/dist/cjs/editor.js +1 -4
  4. package/dist/cjs/index.js +24 -40
  5. package/dist/cjs/labs/next/presets/default.js +1 -1
  6. package/dist/cjs/messages.js +5 -0
  7. package/dist/cjs/nodeviews/SelectionBasedNodeView.js +1 -2
  8. package/dist/cjs/plugins/analytics/plugin.js +9 -7
  9. package/dist/cjs/plugins/analytics/types/enums.js +5 -0
  10. package/dist/cjs/plugins/analytics/types/type-ahead.js +5 -0
  11. package/dist/cjs/plugins/block-type/messages.js +10 -0
  12. package/dist/cjs/plugins/card/nodeviews/embedCard.js +1 -3
  13. package/dist/cjs/plugins/collab-edit/participants.js +15 -0
  14. package/dist/cjs/plugins/collab-edit/plugin-state.js +14 -0
  15. package/dist/cjs/plugins/collab-edit/ui/avatars-with-plugin-state.js +6 -4
  16. package/dist/cjs/plugins/collab-edit/ui/avatars.js +19 -2
  17. package/dist/cjs/plugins/collab-edit/utils.js +42 -2
  18. package/dist/cjs/plugins/date/actions.js +4 -2
  19. package/dist/cjs/plugins/date/index.js +1 -1
  20. package/dist/cjs/plugins/date/pm-plugins/utils.js +6 -1
  21. package/dist/cjs/plugins/emoji/index.js +143 -120
  22. package/dist/cjs/plugins/emoji/pm-plugins/ascii-input-rules.js +0 -14
  23. package/dist/cjs/plugins/expand/pm-plugins/keymap.js +3 -7
  24. package/dist/cjs/plugins/extension/actions.js +16 -16
  25. package/dist/cjs/plugins/extension/pm-plugins/main.js +4 -4
  26. package/dist/cjs/plugins/extension/ui/Extension/ExtensionComponent.js +5 -4
  27. package/dist/cjs/plugins/extension/ui/Extension/index.js +2 -2
  28. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
  29. package/dist/cjs/plugins/floating-toolbar/ui/ConfirmationModal.js +12 -14
  30. package/dist/cjs/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +35 -0
  31. package/dist/cjs/plugins/floating-toolbar/ui/EditorHideEmojiIcon.js +38 -0
  32. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +5 -7
  33. package/dist/cjs/plugins/help-dialog/ui/index.js +12 -18
  34. package/dist/cjs/plugins/help-dialog/ui/styles.js +2 -6
  35. package/dist/cjs/plugins/hyperlink/index.js +4 -10
  36. package/dist/cjs/plugins/insert-block/index.js +9 -8
  37. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +7 -3
  38. package/dist/cjs/plugins/list/index.js +5 -0
  39. package/dist/cjs/plugins/macro/actions.js +14 -14
  40. package/dist/cjs/plugins/media/index.js +1 -0
  41. package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +1 -0
  42. package/dist/cjs/plugins/media/pm-plugins/main.js +26 -14
  43. package/dist/cjs/plugins/media/styles.js +1 -1
  44. package/dist/cjs/plugins/media/toolbar/filePreviewItem.js +86 -0
  45. package/dist/cjs/plugins/media/toolbar/index.js +161 -44
  46. package/dist/cjs/plugins/media/toolbar/utils.js +77 -0
  47. package/dist/cjs/plugins/mentions/index.js +57 -602
  48. package/dist/cjs/plugins/mentions/pm-plugins/key.js +11 -0
  49. package/dist/cjs/plugins/mentions/pm-plugins/main.js +162 -0
  50. package/dist/cjs/plugins/mentions/pm-plugins/utils.js +12 -0
  51. package/dist/cjs/plugins/mentions/type-ahead/index.js +449 -0
  52. package/dist/cjs/plugins/mentions/ui/InviteItem/index.js +3 -1
  53. package/dist/cjs/plugins/mentions/ui/InviteItem/styles.js +8 -3
  54. package/dist/cjs/plugins/mentions/ui/ToolbarMention/index.js +3 -3
  55. package/dist/cjs/plugins/mentions/utils.js +24 -2
  56. package/dist/cjs/plugins/panel/index.js +46 -13
  57. package/dist/cjs/plugins/panel/nodeviews/panel.js +39 -25
  58. package/dist/cjs/plugins/panel/toolbar.js +94 -6
  59. package/dist/cjs/plugins/panel/toolbar.test.js +149 -16
  60. package/dist/cjs/plugins/paste/handlers.js +2 -2
  61. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +6 -3
  62. package/dist/cjs/plugins/placeholder/index.js +6 -0
  63. package/dist/cjs/plugins/quick-insert/api.js +30 -0
  64. package/dist/cjs/plugins/quick-insert/assets/custom-panel.js +55 -0
  65. package/dist/cjs/plugins/quick-insert/assets/index.js +14 -1
  66. package/dist/cjs/plugins/quick-insert/index.js +10 -24
  67. package/dist/cjs/plugins/quick-insert/ui/ModalElementBrowser/index.js +1 -0
  68. package/dist/cjs/plugins/rank.js +1 -1
  69. package/dist/cjs/plugins/rule/index.js +1 -25
  70. package/dist/cjs/plugins/scroll-into-view/index.js +1 -4
  71. package/dist/cjs/plugins/selection/gap-cursor/actions.js +5 -6
  72. package/dist/cjs/plugins/selection/pm-plugins/selection-main.js +1 -3
  73. package/dist/cjs/plugins/status/actions.js +5 -2
  74. package/dist/cjs/plugins/status/plugin.js +1 -1
  75. package/dist/cjs/plugins/table/commands/selection.js +24 -24
  76. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +8 -1
  77. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +14 -15
  78. package/dist/cjs/plugins/tasks-and-decisions/nodeviews/decisionItem.js +3 -1
  79. package/dist/cjs/plugins/tasks-and-decisions/nodeviews/taskItem.js +3 -1
  80. package/dist/cjs/plugins/tasks-and-decisions/pm-plugins/keymaps.js +1 -2
  81. package/dist/cjs/plugins/text-formatting/pm-plugins/cursor.js +1 -4
  82. package/dist/cjs/plugins/type-ahead/api.js +243 -0
  83. package/dist/cjs/plugins/type-ahead/commands/insert-type-ahead-item.js +238 -0
  84. package/dist/cjs/plugins/type-ahead/commands/update-list-items.js +30 -0
  85. package/dist/cjs/plugins/type-ahead/commands/update-query.js +16 -18
  86. package/dist/cjs/plugins/type-ahead/commands/update-selected-index.js +36 -0
  87. package/dist/cjs/plugins/type-ahead/constants.js +25 -0
  88. package/dist/cjs/plugins/type-ahead/index.js +183 -52
  89. package/dist/cjs/plugins/type-ahead/insert-utils.js +132 -0
  90. package/dist/cjs/plugins/type-ahead/pm-plugins/actions.js +12 -9
  91. package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +238 -0
  92. package/dist/cjs/plugins/type-ahead/pm-plugins/input-rules.js +20 -40
  93. package/dist/cjs/plugins/type-ahead/pm-plugins/insert-item-plugin.js +28 -0
  94. package/dist/cjs/plugins/type-ahead/pm-plugins/{plugin-key.js → key.js} +0 -0
  95. package/dist/cjs/plugins/type-ahead/pm-plugins/main.js +79 -424
  96. package/dist/cjs/plugins/type-ahead/pm-plugins/reducer.js +188 -0
  97. package/dist/cjs/plugins/type-ahead/pm-plugins/utils.js +26 -0
  98. package/dist/cjs/plugins/type-ahead/stats-modifier.js +49 -0
  99. package/dist/cjs/plugins/type-ahead/transforms/close-type-ahead.js +18 -0
  100. package/dist/cjs/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +51 -0
  101. package/dist/cjs/plugins/type-ahead/transforms/set-selection-before-query.js +24 -0
  102. package/dist/cjs/plugins/type-ahead/ui/DynamicHeightListItem.js +77 -0
  103. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +325 -0
  104. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +195 -0
  105. package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +141 -0
  106. package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +141 -0
  107. package/dist/cjs/plugins/type-ahead/ui/WrapperTypeAhead.js +151 -0
  108. package/dist/cjs/plugins/type-ahead/ui/hooks/use-dynamic-list-height-calculation.js +118 -0
  109. package/dist/cjs/plugins/type-ahead/ui/hooks/use-item-insert.js +132 -0
  110. package/dist/cjs/plugins/type-ahead/ui/hooks/use-load-items.js +61 -0
  111. package/dist/cjs/plugins/type-ahead/ui/hooks/use-on-force-select.js +50 -0
  112. package/dist/cjs/plugins/type-ahead/ui/hooks/use-resize-observer.js +70 -0
  113. package/dist/cjs/plugins/type-ahead/utils.js +127 -0
  114. package/dist/cjs/plugins/undo-redo/ui/ToolbarUndoRedo/index.js +33 -2
  115. package/dist/cjs/plugins/view-update-subscription/index.js +19 -14
  116. package/dist/cjs/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +10 -3
  117. package/dist/cjs/plugins/view-update-subscription/subscribe/type-ahead-updates.js +46 -0
  118. package/dist/cjs/test-utils.js +17 -0
  119. package/dist/cjs/types/empty-state-handler.js +5 -0
  120. package/dist/cjs/ui/ConfigPanel/Fields/ColorPicker.js +4 -21
  121. package/dist/cjs/ui/ElementBrowser/ElementBrowser.js +4 -2
  122. package/dist/cjs/ui/ElementBrowser/InsertMenu.js +1 -0
  123. package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +16 -23
  124. package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +11 -4
  125. package/dist/cjs/ui/ElementBrowser/components/StatelessElementBrowser.js +12 -4
  126. package/dist/cjs/ui/PanelTextInput/index.js +1 -3
  127. package/dist/cjs/utils/compare.js +7 -7
  128. package/dist/cjs/utils/index.js +7 -8
  129. package/dist/cjs/utils/rich-media-utils.js +2 -2
  130. package/dist/cjs/utils/selection.js +6 -3
  131. package/dist/cjs/version-wrapper.js +1 -1
  132. package/dist/cjs/version.json +1 -1
  133. package/dist/es2019/create-editor/create-plugins-list.js +6 -1
  134. package/dist/es2019/editor.js +1 -4
  135. package/dist/es2019/index.js +4 -6
  136. package/dist/es2019/labs/next/presets/default.js +2 -2
  137. package/dist/es2019/messages.js +5 -0
  138. package/dist/es2019/nodeviews/SelectionBasedNodeView.js +1 -2
  139. package/dist/es2019/plugins/analytics/plugin.js +5 -1
  140. package/dist/es2019/plugins/analytics/types/enums.js +5 -0
  141. package/dist/es2019/plugins/analytics/types/type-ahead.js +1 -0
  142. package/dist/es2019/plugins/block-type/messages.js +10 -0
  143. package/dist/es2019/plugins/card/nodeviews/embedCard.js +1 -3
  144. package/dist/es2019/plugins/collab-edit/participants.js +14 -0
  145. package/dist/es2019/plugins/collab-edit/plugin-state.js +17 -1
  146. package/dist/es2019/plugins/collab-edit/ui/avatars-with-plugin-state.js +6 -4
  147. package/dist/es2019/plugins/collab-edit/ui/avatars.js +17 -2
  148. package/dist/es2019/plugins/collab-edit/utils.js +34 -0
  149. package/dist/es2019/plugins/date/actions.js +4 -2
  150. package/dist/es2019/plugins/date/index.js +1 -1
  151. package/dist/es2019/plugins/date/pm-plugins/utils.js +6 -1
  152. package/dist/es2019/plugins/emoji/index.js +169 -146
  153. package/dist/es2019/plugins/emoji/pm-plugins/ascii-input-rules.js +0 -11
  154. package/dist/es2019/plugins/expand/pm-plugins/keymap.js +3 -6
  155. package/dist/es2019/plugins/extension/actions.js +16 -16
  156. package/dist/es2019/plugins/extension/pm-plugins/main.js +4 -4
  157. package/dist/es2019/plugins/extension/ui/Extension/ExtensionComponent.js +5 -4
  158. package/dist/es2019/plugins/extension/ui/Extension/index.js +2 -2
  159. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
  160. package/dist/es2019/plugins/floating-toolbar/ui/ConfirmationModal.js +12 -15
  161. package/dist/es2019/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +25 -0
  162. package/dist/es2019/plugins/floating-toolbar/ui/EditorHideEmojiIcon.js +28 -0
  163. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +3 -5
  164. package/dist/es2019/plugins/help-dialog/ui/index.js +20 -26
  165. package/dist/es2019/plugins/help-dialog/ui/styles.js +2 -2
  166. package/dist/es2019/plugins/hyperlink/index.js +4 -12
  167. package/dist/es2019/plugins/insert-block/index.js +4 -4
  168. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +8 -4
  169. package/dist/es2019/plugins/list/index.js +20 -14
  170. package/dist/es2019/plugins/macro/actions.js +14 -14
  171. package/dist/es2019/plugins/media/index.js +1 -0
  172. package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +1 -0
  173. package/dist/es2019/plugins/media/pm-plugins/main.js +27 -12
  174. package/dist/es2019/plugins/media/styles.js +7 -2
  175. package/dist/es2019/plugins/media/toolbar/filePreviewItem.js +59 -0
  176. package/dist/es2019/plugins/media/toolbar/index.js +158 -42
  177. package/dist/es2019/plugins/media/toolbar/utils.js +32 -0
  178. package/dist/es2019/plugins/mentions/index.js +34 -536
  179. package/dist/es2019/plugins/mentions/pm-plugins/key.js +2 -0
  180. package/dist/es2019/plugins/mentions/pm-plugins/main.js +138 -0
  181. package/dist/es2019/plugins/mentions/pm-plugins/utils.js +4 -0
  182. package/dist/es2019/plugins/mentions/type-ahead/index.js +394 -0
  183. package/dist/es2019/plugins/mentions/ui/InviteItem/index.js +2 -1
  184. package/dist/es2019/plugins/mentions/ui/InviteItem/styles.js +4 -2
  185. package/dist/es2019/plugins/mentions/ui/ToolbarMention/index.js +2 -2
  186. package/dist/es2019/plugins/mentions/utils.js +20 -1
  187. package/dist/es2019/plugins/panel/index.js +95 -62
  188. package/dist/es2019/plugins/panel/nodeviews/panel.js +7 -1
  189. package/dist/es2019/plugins/panel/toolbar.js +90 -6
  190. package/dist/es2019/plugins/panel/toolbar.test.js +131 -14
  191. package/dist/es2019/plugins/paste/handlers.js +2 -2
  192. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +6 -3
  193. package/dist/es2019/plugins/placeholder/index.js +5 -0
  194. package/dist/es2019/plugins/quick-insert/api.js +18 -0
  195. package/dist/es2019/plugins/quick-insert/assets/custom-panel.js +45 -0
  196. package/dist/es2019/plugins/quick-insert/assets/index.js +6 -0
  197. package/dist/es2019/plugins/quick-insert/index.js +12 -23
  198. package/dist/es2019/plugins/quick-insert/search.js +1 -3
  199. package/dist/es2019/plugins/quick-insert/ui/ModalElementBrowser/index.js +1 -0
  200. package/dist/es2019/plugins/rank.js +1 -1
  201. package/dist/es2019/plugins/rule/index.js +1 -22
  202. package/dist/es2019/plugins/scroll-into-view/index.js +1 -3
  203. package/dist/es2019/plugins/selection/gap-cursor/actions.js +5 -6
  204. package/dist/es2019/plugins/selection/pm-plugins/selection-main.js +1 -3
  205. package/dist/es2019/plugins/status/actions.js +5 -2
  206. package/dist/es2019/plugins/status/plugin.js +1 -1
  207. package/dist/es2019/plugins/table/commands/selection.js +25 -25
  208. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +8 -1
  209. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +14 -15
  210. package/dist/es2019/plugins/tasks-and-decisions/nodeviews/decisionItem.js +2 -1
  211. package/dist/es2019/plugins/tasks-and-decisions/nodeviews/taskItem.js +2 -1
  212. package/dist/es2019/plugins/tasks-and-decisions/pm-plugins/keymaps.js +1 -2
  213. package/dist/es2019/plugins/text-formatting/pm-plugins/cursor.js +1 -4
  214. package/dist/es2019/plugins/type-ahead/api.js +224 -0
  215. package/dist/es2019/plugins/type-ahead/commands/insert-type-ahead-item.js +222 -0
  216. package/dist/es2019/plugins/type-ahead/commands/update-list-items.js +19 -0
  217. package/dist/es2019/plugins/type-ahead/commands/update-query.js +17 -15
  218. package/dist/es2019/plugins/type-ahead/commands/update-selected-index.js +25 -0
  219. package/dist/es2019/plugins/type-ahead/constants.js +15 -0
  220. package/dist/es2019/plugins/type-ahead/index.js +203 -78
  221. package/dist/es2019/plugins/type-ahead/insert-utils.js +119 -0
  222. package/dist/es2019/plugins/type-ahead/pm-plugins/actions.js +11 -8
  223. package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +211 -0
  224. package/dist/es2019/plugins/type-ahead/pm-plugins/input-rules.js +18 -32
  225. package/dist/es2019/plugins/type-ahead/pm-plugins/insert-item-plugin.js +19 -0
  226. package/dist/es2019/plugins/type-ahead/pm-plugins/{plugin-key.js → key.js} +0 -0
  227. package/dist/es2019/plugins/type-ahead/pm-plugins/main.js +81 -401
  228. package/dist/es2019/plugins/type-ahead/pm-plugins/reducer.js +165 -0
  229. package/dist/es2019/plugins/type-ahead/pm-plugins/utils.js +16 -0
  230. package/dist/es2019/plugins/type-ahead/stats-modifier.js +41 -0
  231. package/dist/es2019/plugins/type-ahead/transforms/close-type-ahead.js +7 -0
  232. package/dist/es2019/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +40 -0
  233. package/dist/es2019/plugins/type-ahead/transforms/set-selection-before-query.js +11 -0
  234. package/dist/es2019/plugins/type-ahead/ui/DynamicHeightListItem.js +51 -0
  235. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +307 -0
  236. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +163 -0
  237. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +136 -0
  238. package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +120 -0
  239. package/dist/es2019/plugins/type-ahead/ui/WrapperTypeAhead.js +110 -0
  240. package/dist/es2019/plugins/type-ahead/ui/hooks/use-dynamic-list-height-calculation.js +97 -0
  241. package/dist/es2019/plugins/type-ahead/ui/hooks/use-item-insert.js +126 -0
  242. package/dist/es2019/plugins/type-ahead/ui/hooks/use-load-items.js +43 -0
  243. package/dist/es2019/plugins/type-ahead/ui/hooks/use-on-force-select.js +41 -0
  244. package/dist/es2019/plugins/type-ahead/ui/hooks/use-resize-observer.js +53 -0
  245. package/dist/es2019/plugins/type-ahead/utils.js +93 -0
  246. package/dist/es2019/plugins/undo-redo/ui/ToolbarUndoRedo/index.js +29 -2
  247. package/dist/es2019/plugins/view-update-subscription/index.js +19 -14
  248. package/dist/es2019/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +9 -3
  249. package/dist/es2019/plugins/view-update-subscription/subscribe/type-ahead-updates.js +34 -0
  250. package/dist/es2019/test-utils.js +7 -0
  251. package/dist/es2019/types/empty-state-handler.js +1 -0
  252. package/dist/es2019/ui/ConfigPanel/Fields/ColorPicker.js +4 -8
  253. package/dist/es2019/ui/ConfigPanel/transformers.js +9 -9
  254. package/dist/es2019/ui/ElementBrowser/ElementBrowser.js +4 -2
  255. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +1 -0
  256. package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +20 -21
  257. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +9 -2
  258. package/dist/es2019/ui/ElementBrowser/components/StatelessElementBrowser.js +12 -4
  259. package/dist/es2019/ui/PanelTextInput/index.js +1 -3
  260. package/dist/es2019/utils/compare.js +7 -7
  261. package/dist/es2019/utils/index.js +7 -8
  262. package/dist/es2019/utils/rich-media-utils.js +2 -2
  263. package/dist/es2019/utils/selection.js +6 -3
  264. package/dist/es2019/version-wrapper.js +1 -1
  265. package/dist/es2019/version.json +1 -1
  266. package/dist/esm/create-editor/create-plugins-list.js +6 -1
  267. package/dist/esm/editor.js +1 -4
  268. package/dist/esm/index.js +4 -6
  269. package/dist/esm/labs/next/presets/default.js +2 -2
  270. package/dist/esm/messages.js +5 -0
  271. package/dist/esm/nodeviews/SelectionBasedNodeView.js +1 -2
  272. package/dist/esm/plugins/analytics/plugin.js +8 -6
  273. package/dist/esm/plugins/analytics/types/enums.js +5 -0
  274. package/dist/esm/plugins/analytics/types/type-ahead.js +1 -0
  275. package/dist/esm/plugins/block-type/messages.js +10 -0
  276. package/dist/esm/plugins/card/nodeviews/embedCard.js +1 -3
  277. package/dist/esm/plugins/collab-edit/participants.js +15 -0
  278. package/dist/esm/plugins/collab-edit/plugin-state.js +15 -1
  279. package/dist/esm/plugins/collab-edit/ui/avatars-with-plugin-state.js +6 -4
  280. package/dist/esm/plugins/collab-edit/ui/avatars.js +17 -2
  281. package/dist/esm/plugins/collab-edit/utils.js +32 -0
  282. package/dist/esm/plugins/date/actions.js +4 -2
  283. package/dist/esm/plugins/date/index.js +1 -1
  284. package/dist/esm/plugins/date/pm-plugins/utils.js +6 -1
  285. package/dist/esm/plugins/emoji/index.js +136 -112
  286. package/dist/esm/plugins/emoji/pm-plugins/ascii-input-rules.js +0 -13
  287. package/dist/esm/plugins/expand/pm-plugins/keymap.js +3 -6
  288. package/dist/esm/plugins/extension/actions.js +16 -16
  289. package/dist/esm/plugins/extension/pm-plugins/main.js +4 -4
  290. package/dist/esm/plugins/extension/ui/Extension/ExtensionComponent.js +5 -4
  291. package/dist/esm/plugins/extension/ui/Extension/index.js +2 -2
  292. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
  293. package/dist/esm/plugins/floating-toolbar/ui/ConfirmationModal.js +12 -15
  294. package/dist/esm/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +25 -0
  295. package/dist/esm/plugins/floating-toolbar/ui/EditorHideEmojiIcon.js +28 -0
  296. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +3 -5
  297. package/dist/esm/plugins/help-dialog/ui/index.js +13 -19
  298. package/dist/esm/plugins/help-dialog/ui/styles.js +2 -6
  299. package/dist/esm/plugins/hyperlink/index.js +4 -10
  300. package/dist/esm/plugins/insert-block/index.js +5 -5
  301. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +8 -4
  302. package/dist/esm/plugins/list/index.js +5 -0
  303. package/dist/esm/plugins/macro/actions.js +14 -14
  304. package/dist/esm/plugins/media/index.js +1 -0
  305. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +1 -0
  306. package/dist/esm/plugins/media/pm-plugins/main.js +27 -14
  307. package/dist/esm/plugins/media/styles.js +2 -2
  308. package/dist/esm/plugins/media/toolbar/filePreviewItem.js +62 -0
  309. package/dist/esm/plugins/media/toolbar/index.js +154 -43
  310. package/dist/esm/plugins/media/toolbar/utils.js +60 -0
  311. package/dist/esm/plugins/mentions/index.js +45 -557
  312. package/dist/esm/plugins/mentions/pm-plugins/key.js +2 -0
  313. package/dist/esm/plugins/mentions/pm-plugins/main.js +145 -0
  314. package/dist/esm/plugins/mentions/pm-plugins/utils.js +4 -0
  315. package/dist/esm/plugins/mentions/type-ahead/index.js +415 -0
  316. package/dist/esm/plugins/mentions/ui/InviteItem/index.js +2 -1
  317. package/dist/esm/plugins/mentions/ui/InviteItem/styles.js +4 -2
  318. package/dist/esm/plugins/mentions/ui/ToolbarMention/index.js +2 -2
  319. package/dist/esm/plugins/mentions/utils.js +19 -0
  320. package/dist/esm/plugins/panel/index.js +44 -13
  321. package/dist/esm/plugins/panel/nodeviews/panel.js +36 -22
  322. package/dist/esm/plugins/panel/toolbar.js +92 -6
  323. package/dist/esm/plugins/panel/toolbar.test.js +148 -16
  324. package/dist/esm/plugins/paste/handlers.js +2 -2
  325. package/dist/esm/plugins/paste/pm-plugins/analytics.js +6 -3
  326. package/dist/esm/plugins/placeholder/index.js +5 -0
  327. package/dist/esm/plugins/quick-insert/api.js +20 -0
  328. package/dist/esm/plugins/quick-insert/assets/custom-panel.js +45 -0
  329. package/dist/esm/plugins/quick-insert/assets/index.js +12 -0
  330. package/dist/esm/plugins/quick-insert/index.js +10 -24
  331. package/dist/esm/plugins/quick-insert/search.js +1 -3
  332. package/dist/esm/plugins/quick-insert/ui/ModalElementBrowser/index.js +1 -0
  333. package/dist/esm/plugins/rank.js +1 -1
  334. package/dist/esm/plugins/rule/index.js +1 -22
  335. package/dist/esm/plugins/scroll-into-view/index.js +1 -3
  336. package/dist/esm/plugins/selection/gap-cursor/actions.js +5 -6
  337. package/dist/esm/plugins/selection/pm-plugins/selection-main.js +1 -3
  338. package/dist/esm/plugins/status/actions.js +5 -2
  339. package/dist/esm/plugins/status/plugin.js +1 -1
  340. package/dist/esm/plugins/table/commands/selection.js +24 -24
  341. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +8 -1
  342. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +14 -15
  343. package/dist/esm/plugins/tasks-and-decisions/nodeviews/decisionItem.js +2 -1
  344. package/dist/esm/plugins/tasks-and-decisions/nodeviews/taskItem.js +2 -1
  345. package/dist/esm/plugins/tasks-and-decisions/pm-plugins/keymaps.js +1 -2
  346. package/dist/esm/plugins/text-formatting/pm-plugins/cursor.js +1 -4
  347. package/dist/esm/plugins/type-ahead/api.js +228 -0
  348. package/dist/esm/plugins/type-ahead/commands/insert-type-ahead-item.js +217 -0
  349. package/dist/esm/plugins/type-ahead/commands/update-list-items.js +19 -0
  350. package/dist/esm/plugins/type-ahead/commands/update-query.js +13 -13
  351. package/dist/esm/plugins/type-ahead/commands/update-selected-index.js +25 -0
  352. package/dist/esm/plugins/type-ahead/constants.js +15 -0
  353. package/dist/esm/plugins/type-ahead/index.js +173 -53
  354. package/dist/esm/plugins/type-ahead/insert-utils.js +116 -0
  355. package/dist/esm/plugins/type-ahead/pm-plugins/actions.js +11 -8
  356. package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +204 -0
  357. package/dist/esm/plugins/type-ahead/pm-plugins/input-rules.js +18 -33
  358. package/dist/esm/plugins/type-ahead/pm-plugins/insert-item-plugin.js +18 -0
  359. package/dist/esm/plugins/type-ahead/pm-plugins/{plugin-key.js → key.js} +0 -0
  360. package/dist/esm/plugins/type-ahead/pm-plugins/main.js +80 -393
  361. package/dist/esm/plugins/type-ahead/pm-plugins/reducer.js +168 -0
  362. package/dist/esm/plugins/type-ahead/pm-plugins/utils.js +16 -0
  363. package/dist/esm/plugins/type-ahead/stats-modifier.js +43 -0
  364. package/dist/esm/plugins/type-ahead/transforms/close-type-ahead.js +7 -0
  365. package/dist/esm/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +39 -0
  366. package/dist/esm/plugins/type-ahead/transforms/set-selection-before-query.js +13 -0
  367. package/dist/esm/plugins/type-ahead/ui/DynamicHeightListItem.js +51 -0
  368. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +302 -0
  369. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +168 -0
  370. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +105 -0
  371. package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +114 -0
  372. package/dist/esm/plugins/type-ahead/ui/WrapperTypeAhead.js +125 -0
  373. package/dist/esm/plugins/type-ahead/ui/hooks/use-dynamic-list-height-calculation.js +101 -0
  374. package/dist/esm/plugins/type-ahead/ui/hooks/use-item-insert.js +118 -0
  375. package/dist/esm/plugins/type-ahead/ui/hooks/use-load-items.js +46 -0
  376. package/dist/esm/plugins/type-ahead/ui/hooks/use-on-force-select.js +38 -0
  377. package/dist/esm/plugins/type-ahead/ui/hooks/use-resize-observer.js +48 -0
  378. package/dist/esm/plugins/type-ahead/utils.js +88 -0
  379. package/dist/esm/plugins/undo-redo/ui/ToolbarUndoRedo/index.js +33 -2
  380. package/dist/esm/plugins/view-update-subscription/index.js +19 -14
  381. package/dist/esm/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +10 -3
  382. package/dist/esm/plugins/view-update-subscription/subscribe/type-ahead-updates.js +33 -0
  383. package/dist/esm/test-utils.js +7 -0
  384. package/dist/esm/types/empty-state-handler.js +1 -0
  385. package/dist/esm/ui/ConfigPanel/Fields/ColorPicker.js +4 -14
  386. package/dist/esm/ui/ElementBrowser/ElementBrowser.js +4 -2
  387. package/dist/esm/ui/ElementBrowser/InsertMenu.js +1 -0
  388. package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +16 -23
  389. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +10 -3
  390. package/dist/esm/ui/ElementBrowser/components/StatelessElementBrowser.js +12 -4
  391. package/dist/esm/ui/PanelTextInput/index.js +1 -3
  392. package/dist/esm/utils/compare.js +7 -7
  393. package/dist/esm/utils/index.js +7 -8
  394. package/dist/esm/utils/rich-media-utils.js +2 -2
  395. package/dist/esm/utils/selection.js +6 -3
  396. package/dist/esm/version-wrapper.js +1 -1
  397. package/dist/esm/version.json +1 -1
  398. package/dist/types/commands/index.d.ts +1 -1
  399. package/dist/types/create-editor/ErrorBoundary.d.ts +1 -1
  400. package/dist/types/index.d.ts +3 -5
  401. package/dist/types/labs/next/full-page.d.ts +1 -1
  402. package/dist/types/labs/next/mobile.d.ts +1 -1
  403. package/dist/types/labs/next/presets/default.d.ts +2 -0
  404. package/dist/types/messages.d.ts +5 -0
  405. package/dist/types/plugins/alignment/commands/index.d.ts +2 -2
  406. package/dist/types/plugins/analytics/types/enums.d.ts +6 -1
  407. package/dist/types/plugins/analytics/types/events.d.ts +12 -2
  408. package/dist/types/plugins/analytics/types/general-events.d.ts +2 -23
  409. package/dist/types/plugins/analytics/types/type-ahead.d.ts +27 -0
  410. package/dist/types/plugins/block-type/messages.d.ts +10 -0
  411. package/dist/types/plugins/card/ui/ResizableEmbedCard.d.ts +1 -1
  412. package/dist/types/plugins/collab-edit/participants.d.ts +1 -0
  413. package/dist/types/plugins/collab-edit/ui/avatars.d.ts +3 -1
  414. package/dist/types/plugins/collab-edit/ui/invite-to-edit.d.ts +1 -1
  415. package/dist/types/plugins/collab-edit/utils.d.ts +4 -2
  416. package/dist/types/plugins/date/actions.d.ts +1 -1
  417. package/dist/types/plugins/date/pm-plugins/types.d.ts +1 -0
  418. package/dist/types/plugins/emoji/index.d.ts +2 -4
  419. package/dist/types/plugins/emoji/types.d.ts +2 -2
  420. package/dist/types/plugins/extension/ui/Extension/Extension/index.d.ts +2 -3
  421. package/dist/types/plugins/extension/ui/Extension/Extension/styles.d.ts +1 -1
  422. package/dist/types/plugins/extension/ui/Extension/ExtensionComponent.d.ts +2 -3
  423. package/dist/types/plugins/extension/ui/Extension/index.d.ts +2 -3
  424. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -1
  425. package/dist/types/plugins/find-replace/ui/styles.d.ts +3 -3
  426. package/dist/types/plugins/floating-toolbar/ui/EditorEmojiAddIcon.d.ts +1 -0
  427. package/dist/types/plugins/floating-toolbar/ui/EditorHideEmojiIcon.d.ts +1 -0
  428. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.d.ts +1 -1
  429. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/types.d.ts +0 -1
  430. package/dist/types/plugins/media/pm-plugins/main.d.ts +1 -0
  431. package/dist/types/plugins/media/toolbar/filePreviewItem.d.ts +7 -0
  432. package/dist/types/plugins/media/toolbar/utils.d.ts +4 -0
  433. package/dist/types/plugins/media/types.d.ts +3 -0
  434. package/dist/types/plugins/media/ui/ResizableMediaSingle/index.d.ts +1 -1
  435. package/dist/types/plugins/media/utils/media-single.d.ts +1 -1
  436. package/dist/types/plugins/mentions/analytics.d.ts +1 -1
  437. package/dist/types/plugins/mentions/index.d.ts +4 -30
  438. package/dist/types/plugins/mentions/pm-plugins/key.d.ts +3 -0
  439. package/dist/types/plugins/mentions/pm-plugins/main.d.ts +8 -0
  440. package/dist/types/plugins/mentions/pm-plugins/utils.d.ts +3 -0
  441. package/dist/types/plugins/mentions/type-ahead/index.d.ts +17 -0
  442. package/dist/types/plugins/mentions/types.d.ts +2 -0
  443. package/dist/types/plugins/mentions/ui/InviteItem/index.d.ts +1 -0
  444. package/dist/types/plugins/mentions/ui/InviteItem/styles.d.ts +2 -0
  445. package/dist/types/plugins/mentions/utils.d.ts +4 -0
  446. package/dist/types/plugins/panel/nodeviews/panel.d.ts +19 -3
  447. package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +2 -0
  448. package/dist/types/plugins/quick-insert/api.d.ts +6 -0
  449. package/dist/types/plugins/quick-insert/assets/custom-panel.d.ts +1 -0
  450. package/dist/types/plugins/quick-insert/assets/index.d.ts +1 -0
  451. package/dist/types/plugins/quick-insert/search.d.ts +1 -1
  452. package/dist/types/plugins/quick-insert/types.d.ts +3 -0
  453. package/dist/types/plugins/status/actions.d.ts +3 -1
  454. package/dist/types/plugins/status/ui/statusPicker.d.ts +1 -1
  455. package/dist/types/plugins/type-ahead/api.d.ts +53 -0
  456. package/dist/types/plugins/type-ahead/commands/insert-type-ahead-item.d.ts +12 -0
  457. package/dist/types/plugins/type-ahead/commands/update-list-items.d.ts +3 -0
  458. package/dist/types/plugins/type-ahead/commands/update-query.d.ts +2 -2
  459. package/dist/types/plugins/type-ahead/commands/update-selected-index.d.ts +2 -0
  460. package/dist/types/plugins/type-ahead/constants.d.ts +10 -0
  461. package/dist/types/plugins/type-ahead/index.d.ts +5 -4
  462. package/dist/types/plugins/type-ahead/insert-utils.d.ts +18 -0
  463. package/dist/types/plugins/type-ahead/pm-plugins/actions.d.ts +9 -8
  464. package/dist/types/plugins/type-ahead/pm-plugins/decorations.d.ts +24 -0
  465. package/dist/types/plugins/type-ahead/pm-plugins/input-rules.d.ts +0 -1
  466. package/dist/types/plugins/type-ahead/pm-plugins/insert-item-plugin.d.ts +2 -0
  467. package/dist/types/plugins/type-ahead/pm-plugins/{plugin-key.d.ts → key.d.ts} +0 -0
  468. package/dist/types/plugins/type-ahead/pm-plugins/main.d.ts +12 -39
  469. package/dist/types/plugins/type-ahead/pm-plugins/reducer.d.ts +10 -0
  470. package/dist/types/plugins/type-ahead/pm-plugins/utils.d.ts +4 -0
  471. package/dist/types/plugins/type-ahead/stats-modifier.d.ts +20 -0
  472. package/dist/types/plugins/type-ahead/transforms/close-type-ahead.d.ts +2 -0
  473. package/dist/types/plugins/type-ahead/transforms/open-typeahead-at-cursor.d.ts +9 -0
  474. package/dist/types/plugins/type-ahead/transforms/set-selection-before-query.d.ts +2 -0
  475. package/dist/types/plugins/type-ahead/types.d.ts +95 -30
  476. package/dist/types/plugins/type-ahead/ui/DynamicHeightListItem.d.ts +21 -0
  477. package/dist/types/plugins/type-ahead/ui/InputQuery.d.ts +22 -0
  478. package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +11 -0
  479. package/dist/types/plugins/type-ahead/ui/TypeAheadListItem.d.ts +15 -0
  480. package/dist/types/plugins/type-ahead/ui/TypeAheadPopup.d.ts +22 -0
  481. package/dist/types/plugins/type-ahead/ui/WrapperTypeAhead.d.ts +20 -0
  482. package/dist/types/plugins/type-ahead/ui/hooks/use-dynamic-list-height-calculation.d.ts +25 -0
  483. package/dist/types/plugins/type-ahead/ui/hooks/use-item-insert.d.ts +3 -0
  484. package/dist/types/plugins/type-ahead/ui/hooks/use-load-items.d.ts +3 -0
  485. package/dist/types/plugins/type-ahead/ui/hooks/use-on-force-select.d.ts +11 -0
  486. package/dist/types/plugins/type-ahead/ui/hooks/use-resize-observer.d.ts +9 -0
  487. package/dist/types/plugins/type-ahead/utils.d.ts +18 -0
  488. package/dist/types/plugins/view-update-subscription/subscribe/type-ahead-updates.d.ts +9 -0
  489. package/dist/types/test-utils.d.ts +2 -0
  490. package/dist/types/types/editor-props.d.ts +2 -0
  491. package/dist/types/types/empty-state-handler.d.ts +7 -0
  492. package/dist/types/types/feature-flags.d.ts +8 -0
  493. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +1 -1
  494. package/dist/types/ui/ColorPickerButton/index.d.ts +1 -1
  495. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  496. package/dist/types/ui/ConfigPanel/FormErrorBoundary.d.ts +1 -1
  497. package/dist/types/ui/ElementBrowser/ElementBrowser.d.ts +2 -0
  498. package/dist/types/ui/ElementBrowser/ModalElementBrowser.d.ts +2 -0
  499. package/dist/types/ui/ElementBrowser/components/CategoryList.d.ts +1 -1
  500. package/dist/types/ui/ElementBrowser/components/ElementList/ElementList.d.ts +5 -1
  501. package/dist/types/ui/ElementBrowser/components/StatelessElementBrowser.d.ts +3 -1
  502. package/dist/types/ui/LinkSearch/index.d.ts +20 -20
  503. package/dist/types/ui/PortalProvider/index.d.ts +1 -1
  504. package/dist/types/ui/ToolbarButton/index.d.ts +4 -4
  505. package/dist/types/ui/ToolbarButton/styles.d.ts +2 -2
  506. package/dist/types/utils/selection.d.ts +2 -2
  507. package/package.json +32 -29
  508. package/dist/cjs/plugins/emoji/commands/insert-emoji-query.js +0 -22
  509. package/dist/cjs/plugins/mentions/commands/insert-mention-query.js +0 -22
  510. package/dist/cjs/plugins/type-ahead/commands/dismiss.js +0 -44
  511. package/dist/cjs/plugins/type-ahead/commands/insert-query.js +0 -38
  512. package/dist/cjs/plugins/type-ahead/commands/items-list-updated.js +0 -25
  513. package/dist/cjs/plugins/type-ahead/commands/select-item.js +0 -163
  514. package/dist/cjs/plugins/type-ahead/commands/set-current-index.js +0 -25
  515. package/dist/cjs/plugins/type-ahead/pm-plugins/keymap.js +0 -115
  516. package/dist/cjs/plugins/type-ahead/ui/TypeAhead.js +0 -221
  517. package/dist/cjs/plugins/type-ahead/ui/TypeAheadItemsList.js +0 -239
  518. package/dist/cjs/plugins/type-ahead/utils/find-query-mark.js +0 -33
  519. package/dist/cjs/plugins/type-ahead/utils/is-query-active.js +0 -16
  520. package/dist/es2019/plugins/emoji/commands/insert-emoji-query.js +0 -13
  521. package/dist/es2019/plugins/mentions/commands/insert-mention-query.js +0 -13
  522. package/dist/es2019/plugins/type-ahead/commands/dismiss.js +0 -36
  523. package/dist/es2019/plugins/type-ahead/commands/insert-query.js +0 -26
  524. package/dist/es2019/plugins/type-ahead/commands/items-list-updated.js +0 -12
  525. package/dist/es2019/plugins/type-ahead/commands/select-item.js +0 -119
  526. package/dist/es2019/plugins/type-ahead/commands/set-current-index.js +0 -13
  527. package/dist/es2019/plugins/type-ahead/pm-plugins/keymap.js +0 -94
  528. package/dist/es2019/plugins/type-ahead/ui/TypeAhead.js +0 -175
  529. package/dist/es2019/plugins/type-ahead/ui/TypeAheadItemsList.js +0 -196
  530. package/dist/es2019/plugins/type-ahead/utils/find-query-mark.js +0 -29
  531. package/dist/es2019/plugins/type-ahead/utils/is-query-active.js +0 -9
  532. package/dist/esm/plugins/emoji/commands/insert-emoji-query.js +0 -13
  533. package/dist/esm/plugins/mentions/commands/insert-mention-query.js +0 -13
  534. package/dist/esm/plugins/type-ahead/commands/dismiss.js +0 -33
  535. package/dist/esm/plugins/type-ahead/commands/insert-query.js +0 -26
  536. package/dist/esm/plugins/type-ahead/commands/items-list-updated.js +0 -14
  537. package/dist/esm/plugins/type-ahead/commands/select-item.js +0 -132
  538. package/dist/esm/plugins/type-ahead/commands/set-current-index.js +0 -15
  539. package/dist/esm/plugins/type-ahead/pm-plugins/keymap.js +0 -94
  540. package/dist/esm/plugins/type-ahead/ui/TypeAhead.js +0 -202
  541. package/dist/esm/plugins/type-ahead/ui/TypeAheadItemsList.js +0 -204
  542. package/dist/esm/plugins/type-ahead/utils/find-query-mark.js +0 -24
  543. package/dist/esm/plugins/type-ahead/utils/is-query-active.js +0 -9
  544. package/dist/types/plugins/emoji/commands/insert-emoji-query.d.ts +0 -2
  545. package/dist/types/plugins/mentions/commands/insert-mention-query.d.ts +0 -2
  546. package/dist/types/plugins/type-ahead/commands/dismiss.d.ts +0 -2
  547. package/dist/types/plugins/type-ahead/commands/insert-query.d.ts +0 -2
  548. package/dist/types/plugins/type-ahead/commands/items-list-updated.d.ts +0 -3
  549. package/dist/types/plugins/type-ahead/commands/select-item.d.ts +0 -9
  550. package/dist/types/plugins/type-ahead/commands/set-current-index.d.ts +0 -2
  551. package/dist/types/plugins/type-ahead/pm-plugins/keymap.d.ts +0 -3
  552. package/dist/types/plugins/type-ahead/ui/TypeAhead.d.ts +0 -37
  553. package/dist/types/plugins/type-ahead/ui/TypeAheadItemsList.d.ts +0 -32
  554. package/dist/types/plugins/type-ahead/utils/find-query-mark.d.ts +0 -10
  555. package/dist/types/plugins/type-ahead/utils/is-query-active.d.ts +0 -2
@@ -41,7 +41,7 @@ var _analytics = require("../../../../plugins/analytics");
41
41
 
42
42
  var _fallback = _interopRequireDefault(require("../../../../plugins/quick-insert/assets/fallback"));
43
43
 
44
- var _TypeAheadItemsList = require("../../../../plugins/type-ahead/ui/TypeAheadItemsList");
44
+ var _TypeAheadListItem = require("../../../../plugins/type-ahead/ui/TypeAheadListItem");
45
45
 
46
46
  var _styles = require("../../../styles");
47
47
 
@@ -76,7 +76,10 @@ function ElementList(_ref) {
76
76
  focusedItemIndex = _ref.focusedItemIndex,
77
77
  setColumnCount = _ref.setColumnCount,
78
78
  createAnalyticsEvent = _ref.createAnalyticsEvent,
79
- props = (0, _objectWithoutProperties2.default)(_ref, ["items", "mode", "selectedItemIndex", "focusedItemIndex", "setColumnCount", "createAnalyticsEvent"]);
79
+ emptyStateHandler = _ref.emptyStateHandler,
80
+ selectedCategory = _ref.selectedCategory,
81
+ searchTerm = _ref.searchTerm,
82
+ props = (0, _objectWithoutProperties2.default)(_ref, ["items", "mode", "selectedItemIndex", "focusedItemIndex", "setColumnCount", "createAnalyticsEvent", "emptyStateHandler", "selectedCategory", "searchTerm"]);
80
83
 
81
84
  var _useContainerWidth = (0, _useContainerWidth2.default)(),
82
85
  containerWidth = _useContainerWidth.containerWidth,
@@ -129,7 +132,11 @@ function ElementList(_ref) {
129
132
  }, props)));
130
133
  };
131
134
  }, [items, fullMode, selectedItemIndex, focusedItemIndex, props]);
132
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ContainerWidthMonitor, null), !items.length ? /*#__PURE__*/_react.default.createElement(_EmptyState.default, {
135
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ContainerWidthMonitor, null), !items.length ? emptyStateHandler ? emptyStateHandler({
136
+ mode: mode,
137
+ selectedCategory: selectedCategory,
138
+ searchTerm: searchTerm
139
+ }) : /*#__PURE__*/_react.default.createElement(_EmptyState.default, {
133
140
  onExternalLinkClick: onExternalLinkClick
134
141
  }) : /*#__PURE__*/_react.default.createElement(ElementItemsWrapper, {
135
142
  "data-testid": "element-items"
@@ -314,7 +321,7 @@ var ItemTitle = _styledComponents.default.p(_templateObject9 || (_templateObject
314
321
 
315
322
  var ItemAfter = _styledComponents.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n flex: 0 0 auto;\n"])));
316
323
 
317
- var StyledItemIcon = (0, _styledComponents.default)(_TypeAheadItemsList.ItemIcon)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n img {\n height: 40px;\n width: 40px;\n object-fit: cover;\n }\n"])));
324
+ var StyledItemIcon = (0, _styledComponents.default)(_TypeAheadListItem.ItemIcon)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n img {\n height: 40px;\n width: 40px;\n object-fit: cover;\n }\n"])));
318
325
  var MemoizedElementListWithAnalytics = /*#__PURE__*/(0, _react.memo)((0, _analyticsNext.withAnalyticsContext)({
319
326
  component: 'ElementList'
320
327
  })(ElementList));
@@ -156,7 +156,8 @@ function MobileBrowser(_ref) {
156
156
  onKeyPress = _ref.onKeyPress,
157
157
  onKeyDown = _ref.onKeyDown,
158
158
  searchTerm = _ref.searchTerm,
159
- createAnalyticsEvent = _ref.createAnalyticsEvent;
159
+ createAnalyticsEvent = _ref.createAnalyticsEvent,
160
+ emptyStateHandler = _ref.emptyStateHandler;
160
161
  return /*#__PURE__*/_react.default.createElement(MobileElementBrowserContainer, {
161
162
  onKeyPress: onKeyPress,
162
163
  onKeyDown: onKeyDown,
@@ -183,7 +184,10 @@ function MobileBrowser(_ref) {
183
184
  focusedItemIndex: focusedItemIndex,
184
185
  setFocusedItemIndex: setFocusedItemIndex,
185
186
  setColumnCount: setColumnCount,
186
- createAnalyticsEvent: createAnalyticsEvent
187
+ createAnalyticsEvent: createAnalyticsEvent,
188
+ emptyStateHandler: emptyStateHandler,
189
+ selectedCategory: selectedCategory,
190
+ searchTerm: searchTerm
187
191
  })));
188
192
  }
189
193
 
@@ -206,7 +210,8 @@ function DesktopBrowser(_ref2) {
206
210
  onKeyPress = _ref2.onKeyPress,
207
211
  onKeyDown = _ref2.onKeyDown,
208
212
  searchTerm = _ref2.searchTerm,
209
- createAnalyticsEvent = _ref2.createAnalyticsEvent;
213
+ createAnalyticsEvent = _ref2.createAnalyticsEvent,
214
+ emptyStateHandler = _ref2.emptyStateHandler;
210
215
  return /*#__PURE__*/_react.default.createElement(ElementBrowserContainer, {
211
216
  "data-testid": "desktop__element-browser"
212
217
  }, showCategories && /*#__PURE__*/_react.default.createElement(SideBar, {
@@ -237,7 +242,10 @@ function DesktopBrowser(_ref2) {
237
242
  focusedItemIndex: focusedItemIndex,
238
243
  setFocusedItemIndex: setFocusedItemIndex,
239
244
  setColumnCount: setColumnCount,
240
- createAnalyticsEvent: createAnalyticsEvent
245
+ createAnalyticsEvent: createAnalyticsEvent,
246
+ emptyStateHandler: emptyStateHandler,
247
+ selectedCategory: selectedCategory,
248
+ searchTerm: searchTerm
241
249
  })));
242
250
  }
243
251
 
@@ -178,9 +178,7 @@ var PanelTextInput = /*#__PURE__*/function (_PureComponent) {
178
178
  }, {
179
179
  key: "isUndoEvent",
180
180
  value: function isUndoEvent(event) {
181
- return event.keyCode === KeyZCode && ( // cmd + z for mac
182
- _editorCommon.browser.mac && event.metaKey && !event.shiftKey || // ctrl + z for non-mac
183
- !_editorCommon.browser.mac && event.ctrlKey);
181
+ return event.keyCode === KeyZCode && (_editorCommon.browser.mac && event.metaKey && !event.shiftKey || !_editorCommon.browser.mac && event.ctrlKey);
184
182
  }
185
183
  }, {
186
184
  key: "isRedoEvent",
@@ -49,13 +49,13 @@ var serializeValue = function serializeValue(value) {
49
49
  } // Calling toString of function returns whole function text with body.
50
50
  // So, just return function with name.
51
51
  else if (valueType === 'function') {
52
- return "function:".concat(value.name);
53
- } else if (valueType === 'object') {
54
- return {
55
- type: 'object',
56
- keys: Object.keys(value)
57
- };
58
- }
52
+ return "function:".concat(value.name);
53
+ } else if (valueType === 'object') {
54
+ return {
55
+ type: 'object',
56
+ keys: Object.keys(value)
57
+ };
58
+ }
59
59
  };
60
60
 
61
61
  exports.serializeValue = serializeValue;
@@ -533,17 +533,16 @@ function liftSelection(tr, doc, $from, $to) {
533
533
  var endPos = $to.end($to.depth);
534
534
  var target = Math.max(0, findAncestorPosition(doc, $from).depth - 1);
535
535
  tr.doc.nodesBetween(startPos, endPos, function (node, pos) {
536
- if (node.isText || // Text node
537
- node.isTextblock && !node.textContent // Empty paragraph
536
+ if (node.isText || node.isTextblock && !node.textContent // Empty paragraph
538
537
  ) {
539
- var res = tr.doc.resolve(tr.mapping.map(pos));
540
- var sel = new _prosemirrorState.NodeSelection(res);
541
- var range = sel.$from.blockRange(sel.$to);
538
+ var res = tr.doc.resolve(tr.mapping.map(pos));
539
+ var sel = new _prosemirrorState.NodeSelection(res);
540
+ var range = sel.$from.blockRange(sel.$to);
542
541
 
543
- if ((0, _prosemirrorTransform.liftTarget)(range) !== undefined) {
544
- tr.lift(range, target);
545
- }
542
+ if ((0, _prosemirrorTransform.liftTarget)(range) !== undefined) {
543
+ tr.lift(range, target);
546
544
  }
545
+ }
547
546
  });
548
547
  startPos = tr.mapping.map(startPos);
549
548
  endPos = tr.mapping.map(endPos);
@@ -55,8 +55,8 @@ var alignAttributes = function alignAttributes(layout, oldAttrs) {
55
55
  // 'full-width' or 'wide' or 'center' -> 'wrap-left' or 'wrap-right' or 'align-end' or 'align-start'
56
56
  if (!width || width >= 100 || oldLayout !== 'center' // == 'full-width' or 'wide'
57
57
  ) {
58
- width = 50;
59
- }
58
+ width = 50;
59
+ }
60
60
  } else if (layout !== oldLayout && ['full-width', 'wide'].indexOf(oldLayout) > -1) {
61
61
  // 'full-width' -> 'center' or 'wide'
62
62
  // 'wide' -> 'center' or 'full-width'
@@ -64,8 +64,11 @@ function setCellSelection(view, anchor, head) {
64
64
  dispatch(state.tr.setSelection(_cellSelection.CellSelection.create(state.doc, anchor, head)));
65
65
  }
66
66
 
67
- var normaliseNestedLayout = function normaliseNestedLayout(state, node) {
68
- if (state.selection.$from.depth > 1) {
67
+ var normaliseNestedLayout = function normaliseNestedLayout(_ref, node) {
68
+ var selection = _ref.selection,
69
+ doc = _ref.doc;
70
+
71
+ if (selection.$from.depth > 1) {
69
72
  if (node.attrs.layout && node.attrs.layout !== 'default') {
70
73
  return node.type.createChecked(_objectSpread(_objectSpread({}, node.attrs), {}, {
71
74
  layout: 'default'
@@ -74,7 +77,7 @@ var normaliseNestedLayout = function normaliseNestedLayout(state, node) {
74
77
  // Since default isn't a valid breakout mode.
75
78
 
76
79
 
77
- var breakoutMark = state.schema.marks.breakout;
80
+ var breakoutMark = doc.type.schema.marks.breakout;
78
81
 
79
82
  if (breakoutMark && breakoutMark.isInSet(node.marks)) {
80
83
  var newMarks = breakoutMark.removeFromSet(node.marks);
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.nextMajorVersion = exports.version = exports.name = void 0;
7
7
  var name = "@atlaskit/editor-core";
8
8
  exports.name = name;
9
- var version = "148.0.0";
9
+ var version = "149.0.3";
10
10
  exports.version = version;
11
11
 
12
12
  var nextMajorVersion = function nextMajorVersion() {
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "148.0.0",
3
+ "version": "149.0.3",
4
4
  "sideEffects": false
5
5
  }
@@ -44,6 +44,10 @@ export function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEve
44
44
  const inputTracking = (_props$performanceTra = props.performanceTracking) === null || _props$performanceTra === void 0 ? void 0 : _props$performanceTra.inputTracking;
45
45
  return {
46
46
  createAnalyticsEvent,
47
+ typeAhead: {
48
+ createAnalyticsEvent,
49
+ isMobile
50
+ },
47
51
  featureFlags: createFeatureFlagsFromProps(props),
48
52
  paste: {
49
53
  cardOptions: props.smartLinks || props.UNSAFE_cards,
@@ -74,7 +78,8 @@ export function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEve
74
78
  enableElementBrowser: props.elementBrowser && props.elementBrowser.showModal,
75
79
  elementBrowserHelpUrl: props.elementBrowser && props.elementBrowser.helpUrl,
76
80
  disableDefaultItems: isMobile,
77
- headless: isMobile
81
+ headless: isMobile,
82
+ emptyStateHandler: props.elementBrowser && props.elementBrowser.emptyStateHandler
78
83
  },
79
84
  selection: {
80
85
  useLongPressSelection: false
@@ -125,10 +125,7 @@ export default class Editor extends React.Component {
125
125
  quickInsert
126
126
  } = this.props;
127
127
 
128
- if (extensionProviders && extensionProviders !== prevProps.extensionProviders || // Though this will introduce some performance regression related to quick insert
129
- // loading but we can remove it soon when Forge will move to new API.
130
- // quickInsert={Promise.resolve(consumerQuickInsert)} is one of the main reason behind this performance issue.
131
- quickInsert && quickInsert !== prevProps.quickInsert) {
128
+ if (extensionProviders && extensionProviders !== prevProps.extensionProviders || quickInsert && quickInsert !== prevProps.quickInsert) {
132
129
  const extensionProvider = this.prepareExtensionProvider(extensionProviders);
133
130
  const quickInsertProvider = this.prepareQuickInsertProvider(extensionProvider, quickInsert);
134
131
  this.setState({
@@ -26,6 +26,7 @@ export { InsertStatus as HyperlinkInsertStatus, stateKey as hyperlinkStateKey }
26
26
  export { pluginKey as listStateKey } from './plugins/list/pm-plugins/main';
27
27
  export { toggleSuperscript, toggleSuperscriptWithAnalytics, toggleSubscript, toggleSubscriptWithAnalytics, toggleStrike, toggleStrikeWithAnalytics, toggleCode, toggleCodeWithAnalytics, toggleUnderline, toggleUnderlineWithAnalytics, toggleEm, toggleEmWithAnalytics, toggleStrong, toggleStrongWithAnalytics } from './plugins/text-formatting/commands/text-formatting';
28
28
  export { subscribeToToolbarAndPickerUpdates } from './plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates';
29
+ export { subscribeTypeAheadUpdates } from './plugins/view-update-subscription/subscribe/type-ahead-updates';
29
30
  export { insertBlockType, insertBlockTypesWithAnalytics, setBlockType, setBlockTypeWithAnalytics } from './plugins/block-type/commands';
30
31
  export { createTable } from './plugins/table/commands';
31
32
  export { insertTaskDecision } from './plugins/tasks-and-decisions/commands';
@@ -37,9 +38,6 @@ export { pluginKey as datePluginKey } from './plugins/date/pm-plugins/plugin-key
37
38
  export { commitStatusPicker, setStatusPickerAt, updateStatus, updateStatusWithAnalytics, removeStatus } from './plugins/status/actions';
38
39
  export { typeAheadPluginKey } from './plugins/type-ahead';
39
40
  export { pluginKey as quickInsertPluginKey, memoProcessItems as processQuickInsertItems } from './plugins/quick-insert';
40
- export { selectItem } from './plugins/type-ahead/commands/select-item';
41
- export { insertTypeAheadQuery } from './plugins/type-ahead/commands/insert-query';
42
- export { dismissCommand } from './plugins/type-ahead/commands/dismiss';
43
41
  export { insertLink, insertLinkWithAnalyticsMobileNative, insertLinkWithAnalytics, isTextAtPos, isLinkAtPos, updateLink } from './plugins/hyperlink/commands';
44
42
  export { historyPluginKey } from './plugins/history';
45
43
  export { INPUT_METHOD, ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from './plugins/analytics';
@@ -53,12 +51,12 @@ export { default as EditorActions } from './actions'; // Re-export from provider
53
51
 
54
52
  export { PortalProvider, PortalProviderAPI, PortalRenderer } from './ui/PortalProvider';
55
53
  export { GapCursorSelection, Side as GapCursorSide } from './plugins/selection/gap-cursor-selection';
56
- export { insertMentionQuery } from './plugins/mentions/commands/insert-mention-query';
57
- export { insertEmojiQuery } from './plugins/emoji/commands/insert-emoji-query';
58
54
  export { selectionPluginKey } from './plugins/mobile-selection';
59
55
  export { insertExpand } from './plugins/expand/commands';
60
56
  export { default as WithPluginState } from './ui/WithPluginState';
61
57
  export { pluginKey as floatingToolbarPluginKey } from './plugins/floating-toolbar';
62
58
  export { lightModeStatusColorPalette, darkModeStatusColorPalette } from './ui/ColorPalette/Palettes/statusColorPalette';
63
59
  export { DEFAULT_BORDER_COLOR } from './ui/ColorPalette/Palettes/common';
64
- export { default as messages, statusMessages, dateMessages } from './messages';
60
+ export { default as messages, statusMessages, dateMessages } from './messages';
61
+ export { createTypeAheadTools } from './plugins/type-ahead/api';
62
+ export { createQuickInsertTools } from './plugins/quick-insert/api';
@@ -22,7 +22,7 @@ import annotationPlugin from '../../../plugins/annotation';
22
22
  import quickInsertPlugin from '../../../plugins/quick-insert';
23
23
  import selectionPlugin from '../../../plugins/selection';
24
24
  import codeBlockPlugin from '../../../plugins/code-block';
25
- import undoRedoPlugin from '../../../plugins/undo-redo'; // #endregion
25
+ import undoRedoPlugin from '../../../plugins/undo-redo';
26
26
 
27
27
  /**
28
28
  * Note: The order that presets are added determines
@@ -52,7 +52,7 @@ export function createDefaultPreset(options) {
52
52
  preset.add([textFormattingPlugin, options.textFormatting]);
53
53
  preset.add(widthPlugin);
54
54
  preset.add([quickInsertPlugin, options.quickInsert]);
55
- preset.add([typeAheadPlugin, {
55
+ preset.add([typeAheadPlugin, options.typeAhead || {
56
56
  createAnalyticsEvent: options.createAnalyticsEvent
57
57
  }]);
58
58
  preset.add(unsupportedContentPlugin);
@@ -89,6 +89,11 @@ export default defineMessages({
89
89
  defaultMessage: 'Remove',
90
90
  description: 'Delete the element (image, panel, table, etc.) from your document'
91
91
  },
92
+ hideEmoji: {
93
+ id: 'fabric.editor.hideEmoji',
94
+ defaultMessage: 'Hide emoji',
95
+ description: 'Hide the emoji panel icon from custom panel'
96
+ },
92
97
  visit: {
93
98
  id: 'fabric.editor.visit',
94
99
  defaultMessage: 'Open link in a new window',
@@ -64,8 +64,7 @@ export class SelectionBasedNodeView extends ReactNodeView {
64
64
  to
65
65
  }
66
66
  } = this.view.state;
67
- return selection.node === this.node || // If nodes are not the same object, we check if they are referring to the same document node
68
- this.pos === from && this.posEnd === to && selection.node.eq(this.node);
67
+ return selection.node === this.node || this.pos === from && this.posEnd === to && selection.node.eq(this.node);
69
68
  }
70
69
 
71
70
  return false;
@@ -17,7 +17,11 @@ function createPlugin(options) {
17
17
  return new Plugin({
18
18
  key: analyticsPluginKey,
19
19
  state: {
20
- init: () => options,
20
+ init: () => {
21
+ return { ...options,
22
+ fireAnalytics: fireAnalyticsEvent(options.createAnalyticsEvent)
23
+ };
24
+ },
21
25
  apply: (tr, pluginState, _, state) => {
22
26
  var _getFeatureFlags;
23
27
 
@@ -13,6 +13,8 @@ export let ACTION;
13
13
  ACTION["ACTIVATED"] = "activated";
14
14
  ACTION["ADDED"] = "added";
15
15
  ACTION["BROWSER_FREEZE"] = "browserFreeze";
16
+ ACTION["CHANGED_BACKGROUND_COLOR"] = "changedBackgroundColor";
17
+ ACTION["CHANGED_ICON"] = "changedIcon";
16
18
  ACTION["CHANGED_FULL_WIDTH_MODE"] = "changedFullWidthMode";
17
19
  ACTION["CHANGED_LAYOUT"] = "changedLayout";
18
20
  ACTION["CHANGED_REPLACEMENT_TEXT"] = "changedReplacementText";
@@ -56,6 +58,7 @@ export let ACTION;
56
58
  ACTION["INVOKED"] = "invoked";
57
59
  ACTION["LANGUAGE_SELECTED"] = "languageSelected";
58
60
  ACTION["LIST_ITEM_JOINED"] = "listItemJoined";
61
+ ACTION["MATCHED"] = "matched";
59
62
  ACTION["NODE_CONTENT_SANITIZED"] = "nodeContentSanitized";
60
63
  ACTION["OPENED"] = "opened";
61
64
  ACTION["OUTDENTED"] = "outdented";
@@ -91,6 +94,7 @@ export let ACTION;
91
94
  ACTION["RENDERED"] = "rendered";
92
95
  ACTION["ON_EDITOR_READY_CALLBACK"] = "onEditorReadyCallback";
93
96
  ACTION["ON_CHANGE_CALLBACK"] = "onChangeCalled";
97
+ ACTION["REMOVE_ICON"] = "removedIcon";
94
98
  })(ACTION || (ACTION = {}));
95
99
 
96
100
  export let INPUT_METHOD;
@@ -162,6 +166,7 @@ export let ACTION_SUBJECT;
162
166
  ACTION_SUBJECT["PLUS_MENU"] = "plusMenu";
163
167
  ACTION_SUBJECT["PLUGIN_SLOT"] = "pluginSlot";
164
168
  ACTION_SUBJECT["REACT_NODE_VIEW"] = "reactNodeView";
169
+ ACTION_SUBJECT["SELECTION"] = "selection";
165
170
  ACTION_SUBJECT["SMART_LINK"] = "smartLink";
166
171
  ACTION_SUBJECT["HYPERLINK"] = "hyperlink";
167
172
  ACTION_SUBJECT["TABLE"] = "table";
@@ -0,0 +1 @@
1
+ export {};
@@ -135,6 +135,16 @@ export const messages = defineMessages({
135
135
  defaultMessage: 'Call out errors in a colored panel',
136
136
  description: 'Visually distinguishes your text by adding a error panel'
137
137
  },
138
+ customPanel: {
139
+ id: 'fabric.editor.customPanel',
140
+ defaultMessage: 'Custom panel',
141
+ description: 'Visually distinguishes your panel by adding a emoji icon and background color'
142
+ },
143
+ customPanelDescription: {
144
+ id: 'fabric.editor.customPanel.description',
145
+ defaultMessage: 'Add a note with an emoji and colored background',
146
+ description: 'Visually distinguishes your panel by adding a emoji icon and background color '
147
+ },
138
148
  other: {
139
149
  id: 'fabric.editor.other',
140
150
  defaultMessage: 'Others...',
@@ -205,9 +205,7 @@ export class EmbedCardComponent extends React.PureComponent {
205
205
  // since `heightAlone` is defined only when just height is available.
206
206
 
207
207
  let heightAlone = liveHeight !== null && liveHeight !== void 0 ? liveHeight : !originalWidth && originalHeight || undefined;
208
- const aspectRatio = !heightAlone && ( // No need getting aspectRatio if heightAlone defined already
209
- initialAspectRatio || // If we have initialAspectRatio (coming from iframely) we should go with that
210
- originalHeight && originalWidth && originalWidth / originalHeight) || // If ADF contains both width and height we get ratio from that
208
+ const aspectRatio = !heightAlone && (initialAspectRatio || originalHeight && originalWidth && originalWidth / originalHeight) || // If ADF contains both width and height we get ratio from that
211
209
  undefined;
212
210
  const cardProps = {
213
211
  layout,
@@ -33,6 +33,20 @@ export class Participants {
33
33
  return new Participants(newSet);
34
34
  }
35
35
 
36
+ updateCursorPos(sessionId, cursorPos) {
37
+ const newSet = new Map(this.participants);
38
+ const data = newSet.get(sessionId);
39
+
40
+ if (!data) {
41
+ return this;
42
+ }
43
+
44
+ newSet.set(sessionId, { ...data,
45
+ cursorPos
46
+ });
47
+ return new Participants(newSet);
48
+ }
49
+
36
50
  toArray() {
37
51
  return Array.from(this.participants.values());
38
52
  }
@@ -3,7 +3,7 @@ import { Selection } from 'prosemirror-state';
3
3
  import { DecorationSet } from 'prosemirror-view';
4
4
  import { ReplaceStep } from 'prosemirror-transform';
5
5
  import { Participants } from './participants';
6
- import { findPointers, createTelepointers } from './utils';
6
+ import { findPointers, createTelepointers, getPositionOfTelepointer } from './utils';
7
7
 
8
8
  const isReplaceStep = step => step instanceof ReplaceStep;
9
9
 
@@ -198,6 +198,22 @@ export class PluginState {
198
198
 
199
199
  if (add.length) {
200
200
  this.decorationSet = this.decorationSet.add(tr.doc, add);
201
+ } // This piece needs to be after the decorationSet adjustments,
202
+ // otherwise it's always one step behind where the cursor is
203
+
204
+
205
+ if (telepointerData) {
206
+ const {
207
+ sessionId
208
+ } = telepointerData;
209
+
210
+ if (participants.get(sessionId)) {
211
+ const positionForScroll = getPositionOfTelepointer(sessionId, this.decorationSet);
212
+
213
+ if (positionForScroll) {
214
+ participants = participants.updateCursorPos(sessionId, positionForScroll);
215
+ }
216
+ }
201
217
  }
202
218
 
203
219
  const nextState = new PluginState(this.decorationSet, participants, sid, collabInitialised);
@@ -11,7 +11,8 @@ const AvatarsWithPluginState = props => {
11
11
  const {
12
12
  isInviteToEditButtonSelected: selected,
13
13
  inviteToEditHandler: onClick,
14
- inviteToEditComponent: Component
14
+ inviteToEditComponent: Component,
15
+ editorView
15
16
  } = props;
16
17
  const render = React.useCallback(({
17
18
  data
@@ -22,20 +23,21 @@ const AvatarsWithPluginState = props => {
22
23
 
23
24
  return /*#__PURE__*/React.createElement(Avatars, {
24
25
  sessionId: data.sessionId,
25
- participants: data.activeParticipants
26
+ participants: data.activeParticipants,
27
+ editorView: editorView
26
28
  }, /*#__PURE__*/React.createElement(InviteToEditButton, {
27
29
  title: title,
28
30
  selected: selected,
29
31
  onClick: onClick,
30
32
  Component: Component
31
33
  }));
32
- }, [selected, onClick, Component, title]);
34
+ }, [selected, onClick, Component, title, editorView]);
33
35
  return /*#__PURE__*/React.createElement(WithPluginState, {
34
36
  plugins: {
35
37
  data: collabEditPluginKey
36
38
  },
37
39
  render: render,
38
- editorView: props.editorView
40
+ editorView: editorView
39
41
  });
40
42
  };
41
43
 
@@ -2,9 +2,12 @@ import React from 'react';
2
2
  import AvatarGroup from '@atlaskit/avatar-group';
3
3
  import { AvatarContainer } from './styles';
4
4
  import toAvatar from './to-avatar';
5
+ import { scrollToCollabCursor } from '../utils';
6
+ import { getFeatureFlags } from '../../feature-flags-context';
5
7
  export const Avatars = /*#__PURE__*/React.memo(props => {
6
8
  const {
7
- sessionId
9
+ sessionId,
10
+ editorView
8
11
  } = props;
9
12
  const participants = props.participants.toArray();
10
13
  const avatars = participants.sort(p => p.sessionId === sessionId ? -1 : 1).map(toAvatar);
@@ -17,6 +20,18 @@ export const Avatars = /*#__PURE__*/React.memo(props => {
17
20
  appearance: "stack",
18
21
  size: "medium",
19
22
  data: avatars,
20
- maxCount: 3
23
+ maxCount: 3,
24
+ onAvatarClick: (_event, _analytics, index) => {
25
+ if (!editorView) {
26
+ return;
27
+ }
28
+
29
+ const featureFlags = getFeatureFlags(editorView.state);
30
+ const allowCollabAvatarScroll = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.collabAvatarScroll; // user does not need to scroll to their own position (index 0)
31
+
32
+ if (allowCollabAvatarScroll && index > 0) {
33
+ scrollToCollabCursor(editorView, participants, props.sessionId, index);
34
+ }
35
+ }
21
36
  }), props.children);
22
37
  });
@@ -3,6 +3,8 @@ import { Decoration } from 'prosemirror-view';
3
3
  import * as themeColors from '@atlaskit/theme/colors';
4
4
  import { hexToRgba } from '@atlaskit/adf-schema';
5
5
  import { ZERO_WIDTH_SPACE } from '@atlaskit/editor-common';
6
+ import { addAnalytics } from '../analytics/utils';
7
+ import { EVENT_TYPE, ACTION, ACTION_SUBJECT } from '../analytics/types';
6
8
  export const colors = [themeColors.R100, themeColors.R300, themeColors.R500, themeColors.Y100, themeColors.Y300, themeColors.Y500, themeColors.G100, themeColors.G300, themeColors.G500, themeColors.T100, themeColors.T300, themeColors.T500, themeColors.B100, themeColors.B300, themeColors.B500, themeColors.P100, themeColors.P300, themeColors.P500, themeColors.N70, themeColors.N200, themeColors.N800].map(solid => ({
7
9
  solid,
8
10
  selection: hexToRgba(solid, 0.2)
@@ -99,4 +101,36 @@ export const replaceDocument = (doc, state, version, options, reserveCursor) =>
99
101
  }
100
102
 
101
103
  return tr;
104
+ };
105
+ export const scrollToCollabCursor = (editorView, participants, sessionId, index) => {
106
+ const selectedUser = participants[index];
107
+
108
+ if (selectedUser && selectedUser.cursorPos !== undefined && selectedUser.sessionId !== sessionId) {
109
+ const {
110
+ state
111
+ } = editorView;
112
+ let tr = state.tr;
113
+ const analyticsPayload = {
114
+ action: ACTION.MATCHED,
115
+ actionSubject: ACTION_SUBJECT.SELECTION,
116
+ eventType: EVENT_TYPE.TRACK
117
+ };
118
+ tr.setSelection(Selection.near(tr.doc.resolve(selectedUser.cursorPos)));
119
+ tr = addAnalytics(state, tr, analyticsPayload);
120
+ tr.scrollIntoView();
121
+ editorView.dispatch(tr);
122
+
123
+ if (!editorView.hasFocus()) {
124
+ editorView.focus();
125
+ }
126
+ }
127
+ };
128
+ export const getPositionOfTelepointer = (sessionId, decorationSet) => {
129
+ let scrollPosition;
130
+ decorationSet.find().forEach(deco => {
131
+ if (deco.type.spec.pointer.sessionId === sessionId) {
132
+ scrollPosition = deco.from;
133
+ }
134
+ });
135
+ return scrollPosition;
102
136
  };
@@ -5,14 +5,16 @@ import { pluginKey } from './pm-plugins/plugin-key';
5
5
  import { withAnalytics, addAnalytics, ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '../analytics';
6
6
  import { isToday } from './utils/internal';
7
7
  import { canInsert } from 'prosemirror-utils';
8
- export const createDate = () => (insert, state) => {
8
+ export const createDate = isQuickInsertAction => (insert, state) => {
9
9
  const dateNode = state.schema.nodes.date.createChecked({
10
10
  timestamp: todayTimestampInUTC()
11
11
  });
12
- const tr = insert(dateNode, {
12
+ const space = state.schema.text(' ');
13
+ const tr = insert(Fragment.from([dateNode, space]), {
13
14
  selectInlineNode: true
14
15
  });
15
16
  const newPluginState = {
17
+ isQuickInsertAction,
16
18
  showDatePickerAt: tr.selection.from,
17
19
  isNew: true,
18
20
  isDateEmpty: false,
@@ -137,7 +137,7 @@ const datePlugin = () => ({
137
137
  icon: () => /*#__PURE__*/React.createElement(IconDate, null),
138
138
 
139
139
  action(insert, state) {
140
- const tr = createDate()(insert, state);
140
+ const tr = createDate(true)(insert, state);
141
141
  addAnalytics(state, tr, {
142
142
  action: ACTION.INSERTED,
143
143
  actionSubject: ACTION_SUBJECT.DOCUMENT,
@@ -42,7 +42,12 @@ export function mapping(tr, pluginState) {
42
42
  };
43
43
  }
44
44
  export function onSelectionChanged(tr, pluginState) {
45
- if (!isDateNodeSelection(tr.selection)) {
45
+ if (tr.docChanged && isDateNodeSelection(tr.selection)) {
46
+ return { ...pluginState,
47
+ isQuickInsertAction: false,
48
+ showDatePickerAt: tr.selection.from
49
+ };
50
+ } else if (!isDateNodeSelection(tr.selection) && !pluginState.isQuickInsertAction) {
46
51
  if (pluginState.showDatePickerAt) {
47
52
  return {
48
53
  showDatePickerAt: null,