@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
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.memoize = memoize;
9
9
  exports.getEmojiPluginState = getEmojiPluginState;
10
10
  exports.emojiPluginFactory = emojiPluginFactory;
11
- exports.emojiPluginKey = exports.setResults = exports.setProvider = exports.ACTIONS = exports.default = exports.defaultListLimit = exports.emojiToTypeaheadItem = void 0;
11
+ exports.emojiPluginKey = exports.setProvider = exports.ACTIONS = exports.default = exports.defaultListLimit = exports.emojiToTypeaheadItem = void 0;
12
12
 
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
 
@@ -18,7 +18,11 @@ var _prosemirrorState = require("prosemirror-state");
18
18
 
19
19
  var _adfSchema = require("@atlaskit/adf-schema");
20
20
 
21
- var _emoji = require("@atlaskit/emoji");
21
+ var _prosemirrorModel = require("prosemirror-model");
22
+
23
+ var _typeAhead = require("@atlaskit/editor-common/type-ahead");
24
+
25
+ var _emoji2 = require("@atlaskit/emoji");
22
26
 
23
27
  var _asciiInputRules = require("./pm-plugins/ascii-input-rules");
24
28
 
@@ -26,7 +30,7 @@ var _analytics = require("../analytics");
26
30
 
27
31
  var _assets = require("../quick-insert/assets");
28
32
 
29
- var _emoji2 = _interopRequireDefault(require("./nodeviews/emoji"));
33
+ var _emoji3 = _interopRequireDefault(require("./nodeviews/emoji"));
30
34
 
31
35
  var _emojiNext = _interopRequireDefault(require("./nodeviews/emoji-next"));
32
36
 
@@ -36,6 +40,8 @@ var _messages = require("../insert-block/ui/ToolbarInsertBlock/messages");
36
40
 
37
41
  var _featureFlagsContext = require("../feature-flags-context");
38
42
 
43
+ var _openTypeaheadAtCursor = require("../type-ahead/transforms/open-typeahead-at-cursor");
44
+
39
45
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
40
46
 
41
47
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -53,7 +59,7 @@ var emojiToTypeaheadItem = function emojiToTypeaheadItem(emoji, emojiProvider) {
53
59
  // It's required to pass emojiProvider through the context for custom emojis to work
54
60
  _react.default.createElement(_EmojiContextProvider.EmojiContextProvider, {
55
61
  emojiProvider: emojiProvider
56
- }, /*#__PURE__*/_react.default.createElement(_emoji.EmojiTypeAheadItem, {
62
+ }, /*#__PURE__*/_react.default.createElement(_emoji2.EmojiTypeAheadItem, {
57
63
  emoji: emoji,
58
64
  selected: isSelected,
59
65
  onMouseMove: onHover,
@@ -99,7 +105,105 @@ var isFullShortName = function isFullShortName(query) {
99
105
  return query && query.length > 1 && query.charAt(0) === ':' && query.charAt(query.length - 1) === ':';
100
106
  };
101
107
 
108
+ var TRIGGER = ':';
109
+
102
110
  var emojiPlugin = function emojiPlugin(options) {
111
+ var typeAhead = {
112
+ id: _typeAhead.TypeAheadAvailableNodes.EMOJI,
113
+ trigger: TRIGGER,
114
+ // Custom regex must have a capture group around trigger
115
+ // so it's possible to use it without needing to scan through all triggers again
116
+ customRegex: '\\(?(:)',
117
+ headless: options ? options.headless : undefined,
118
+ getItems: function getItems(_ref2) {
119
+ var query = _ref2.query,
120
+ editorState = _ref2.editorState;
121
+ var pluginState = getEmojiPluginState(editorState);
122
+ var emojiProvider = pluginState.emojiProvider;
123
+
124
+ if (!emojiProvider) {
125
+ return Promise.resolve([]);
126
+ }
127
+
128
+ return new Promise(function (resolve) {
129
+ var emojiProviderChangeHandler = {
130
+ result: function result(emojiResult) {
131
+ if (!emojiResult || !emojiResult.emojis) {
132
+ resolve([]);
133
+ } else {
134
+ var emojiItems = emojiResult.emojis.map(function (emoji) {
135
+ return memoizedToItem.call(emoji, emojiProvider);
136
+ });
137
+ resolve(emojiItems);
138
+ }
139
+
140
+ emojiProvider.unsubscribe(emojiProviderChangeHandler);
141
+ }
142
+ };
143
+ emojiProvider.subscribe(emojiProviderChangeHandler);
144
+ emojiProvider.filter(TRIGGER.concat(query), {
145
+ limit: defaultListLimit,
146
+ skinTone: emojiProvider.getSelectedTone(),
147
+ sort: !query.length ? _emoji2.SearchSort.UsageFrequency : _emoji2.SearchSort.Default
148
+ });
149
+ });
150
+ },
151
+ forceSelect: function forceSelect(_ref3) {
152
+ var query = _ref3.query,
153
+ items = _ref3.items,
154
+ editorState = _ref3.editorState;
155
+
156
+ var _emojiPluginKey$getSt = emojiPluginKey.getState(editorState),
157
+ asciiMap = _emojiPluginKey$getSt.asciiMap;
158
+
159
+ var normalizedQuery = TRIGGER.concat(query); // if the query has space at the end
160
+ // check the ascii map for emojis
161
+
162
+ if (asciiMap && normalizedQuery.length >= 3 && normalizedQuery.endsWith(' ') && asciiMap.has(normalizedQuery.trim())) {
163
+ var _emoji = asciiMap.get(normalizedQuery.trim());
164
+
165
+ return {
166
+ title: _emoji.name,
167
+ emoji: _emoji
168
+ };
169
+ }
170
+
171
+ var matchedItem = isFullShortName(normalizedQuery) ? items.find(function (item) {
172
+ return item.title.toLowerCase() === normalizedQuery;
173
+ }) : undefined;
174
+ return matchedItem;
175
+ },
176
+ selectItem: function selectItem(state, item, insert, _ref4) {
177
+ var mode = _ref4.mode;
178
+ var _item$emoji = item.emoji,
179
+ _item$emoji$id = _item$emoji.id,
180
+ id = _item$emoji$id === void 0 ? '' : _item$emoji$id,
181
+ fallback = _item$emoji.fallback,
182
+ shortName = _item$emoji.shortName;
183
+ var text = fallback || shortName;
184
+ var emojiPluginState = emojiPluginKey.getState(state);
185
+
186
+ if (emojiPluginState.emojiProvider && emojiPluginState.emojiProvider.recordSelection && item.emoji) {
187
+ emojiPluginState.emojiProvider.recordSelection(item.emoji).then((0, _emoji2.recordSelectionSucceededSli)(options)).catch((0, _emoji2.recordSelectionFailedSli)(options));
188
+ }
189
+
190
+ var emojiNode = state.schema.nodes.emoji.createChecked({
191
+ shortName: shortName,
192
+ id: id,
193
+ text: text
194
+ });
195
+ var space = state.schema.text(' ');
196
+ return (0, _analytics.addAnalytics)(state, insert(_prosemirrorModel.Fragment.from([emojiNode, space])), {
197
+ action: _analytics.ACTION.INSERTED,
198
+ actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
199
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.EMOJI,
200
+ attributes: {
201
+ inputMethod: _analytics.INPUT_METHOD.TYPEAHEAD
202
+ },
203
+ eventType: _analytics.EVENT_TYPE.TRACK
204
+ });
205
+ }
206
+ };
103
207
  return {
104
208
  name: 'emoji',
105
209
  nodes: function nodes() {
@@ -111,26 +215,26 @@ var emojiPlugin = function emojiPlugin(options) {
111
215
  pmPlugins: function pmPlugins() {
112
216
  return [{
113
217
  name: 'emoji',
114
- plugin: function plugin(_ref2) {
115
- var providerFactory = _ref2.providerFactory,
116
- dispatch = _ref2.dispatch,
117
- portalProviderAPI = _ref2.portalProviderAPI,
118
- eventDispatcher = _ref2.eventDispatcher;
218
+ plugin: function plugin(_ref5) {
219
+ var providerFactory = _ref5.providerFactory,
220
+ dispatch = _ref5.dispatch,
221
+ portalProviderAPI = _ref5.portalProviderAPI,
222
+ eventDispatcher = _ref5.eventDispatcher;
119
223
  return emojiPluginFactory(dispatch, providerFactory, portalProviderAPI, eventDispatcher, options);
120
224
  }
121
225
  }, {
122
226
  name: 'emojiAsciiInputRule',
123
- plugin: function plugin(_ref3) {
124
- var schema = _ref3.schema,
125
- providerFactory = _ref3.providerFactory,
126
- featureFlags = _ref3.featureFlags;
227
+ plugin: function plugin(_ref6) {
228
+ var schema = _ref6.schema,
229
+ providerFactory = _ref6.providerFactory,
230
+ featureFlags = _ref6.featureFlags;
127
231
  return (0, _asciiInputRules.inputRulePlugin)(schema, providerFactory, featureFlags);
128
232
  }
129
233
  }];
130
234
  },
131
235
  pluginsOptions: {
132
- quickInsert: function quickInsert(_ref4) {
133
- var formatMessage = _ref4.formatMessage;
236
+ quickInsert: function quickInsert(_ref7) {
237
+ var formatMessage = _ref7.formatMessage;
134
238
  return [{
135
239
  id: 'emoji',
136
240
  title: formatMessage(_messages.messages.emoji),
@@ -141,11 +245,11 @@ var emojiPlugin = function emojiPlugin(options) {
141
245
  return /*#__PURE__*/_react.default.createElement(_assets.IconEmoji, null);
142
246
  },
143
247
  action: function action(insert, state) {
144
- var mark = state.schema.mark('typeAheadQuery', {
145
- trigger: ':'
146
- });
147
- var emojiText = state.schema.text(':', [mark]);
148
- var tr = insert(emojiText);
248
+ var tr = insert(undefined);
249
+ (0, _openTypeaheadAtCursor.openTypeAheadAtCursor)({
250
+ triggerHandler: typeAhead,
251
+ inputMethod: _analytics.INPUT_METHOD.QUICK_INSERT
252
+ })(tr);
149
253
  return (0, _analytics.addAnalytics)(state, tr, {
150
254
  action: _analytics.ACTION.INVOKED,
151
255
  actionSubject: _analytics.ACTION_SUBJECT.TYPEAHEAD,
@@ -158,69 +262,7 @@ var emojiPlugin = function emojiPlugin(options) {
158
262
  }
159
263
  }];
160
264
  },
161
- typeAhead: {
162
- trigger: ':',
163
- // Custom regex must have a capture group around trigger
164
- // so it's possible to use it without needing to scan through all triggers again
165
- customRegex: '\\(?(:)',
166
- headless: options ? options.headless : undefined,
167
- getItems: function getItems(query, state, _intl, _ref5) {
168
- var prevActive = _ref5.prevActive,
169
- queryChanged = _ref5.queryChanged;
170
- var pluginState = getEmojiPluginState(state);
171
- var emojiProvider = pluginState.emojiProvider,
172
- pluginEmojis = pluginState.emojis;
173
- var emojis = !prevActive && queryChanged ? [] : pluginEmojis || [];
174
-
175
- if (queryChanged && emojiProvider) {
176
- memoizedToItem.clear();
177
- emojiProvider.filter(query ? ":".concat(query) : '', {
178
- limit: defaultListLimit,
179
- skinTone: emojiProvider.getSelectedTone(),
180
- sort: !query.length ? _emoji.SearchSort.UsageFrequency : _emoji.SearchSort.Default
181
- });
182
- }
183
-
184
- return emojis.map(function (emoji) {
185
- return memoizedToItem.call(emoji, emojiProvider);
186
- });
187
- },
188
- forceSelect: function forceSelect(query, items) {
189
- var normalizedQuery = ':' + query;
190
- var matchedItem = isFullShortName(normalizedQuery) ? items.find(function (item) {
191
- return item.title.toLowerCase() === normalizedQuery;
192
- }) : undefined;
193
- return matchedItem;
194
- },
195
- selectItem: function selectItem(state, item, insert, _ref6) {
196
- var mode = _ref6.mode;
197
- var _item$emoji = item.emoji,
198
- _item$emoji$id = _item$emoji.id,
199
- id = _item$emoji$id === void 0 ? '' : _item$emoji$id,
200
- fallback = _item$emoji.fallback,
201
- shortName = _item$emoji.shortName;
202
- var text = fallback || shortName;
203
- var emojiPluginState = emojiPluginKey.getState(state);
204
-
205
- if (emojiPluginState.emojiProvider && emojiPluginState.emojiProvider.recordSelection && item.emoji) {
206
- emojiPluginState.emojiProvider.recordSelection(item.emoji).then((0, _emoji.recordSelectionSucceededSli)(options)).catch((0, _emoji.recordSelectionFailedSli)(options));
207
- }
208
-
209
- return (0, _analytics.addAnalytics)(state, insert(state.schema.nodes.emoji.createChecked({
210
- shortName: shortName,
211
- id: id,
212
- text: text
213
- })), {
214
- action: _analytics.ACTION.INSERTED,
215
- actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
216
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.EMOJI,
217
- attributes: {
218
- inputMethod: _analytics.INPUT_METHOD.TYPEAHEAD
219
- },
220
- eventType: _analytics.EVENT_TYPE.TRACK
221
- });
222
- }
223
- }
265
+ typeAhead: typeAhead
224
266
  }
225
267
  };
226
268
  };
@@ -233,17 +275,18 @@ var _default = emojiPlugin;
233
275
  exports.default = _default;
234
276
  var ACTIONS = {
235
277
  SET_PROVIDER: 'SET_PROVIDER',
236
- SET_RESULTS: 'SET_RESULTS'
278
+ SET_RESULTS: 'SET_RESULTS',
279
+ SET_ASCII_MAP: 'SET_ASCII_MAP'
237
280
  };
238
281
  exports.ACTIONS = ACTIONS;
239
282
 
240
- var setProvider = function setProvider(provider) {
283
+ var setAsciiMap = function setAsciiMap(asciiMap) {
241
284
  return function (state, dispatch) {
242
285
  if (dispatch) {
243
286
  dispatch(state.tr.setMeta(emojiPluginKey, {
244
- action: ACTIONS.SET_PROVIDER,
287
+ action: ACTIONS.SET_ASCII_MAP,
245
288
  params: {
246
- provider: provider
289
+ asciiMap: asciiMap
247
290
  }
248
291
  }));
249
292
  }
@@ -252,15 +295,13 @@ var setProvider = function setProvider(provider) {
252
295
  };
253
296
  };
254
297
 
255
- exports.setProvider = setProvider;
256
-
257
- var setResults = function setResults(results) {
298
+ var setProvider = function setProvider(provider) {
258
299
  return function (state, dispatch) {
259
300
  if (dispatch) {
260
301
  dispatch(state.tr.setMeta(emojiPluginKey, {
261
- action: ACTIONS.SET_RESULTS,
302
+ action: ACTIONS.SET_PROVIDER,
262
303
  params: {
263
- results: results
304
+ provider: provider
264
305
  }
265
306
  }));
266
307
  }
@@ -269,7 +310,7 @@ var setResults = function setResults(results) {
269
310
  };
270
311
  };
271
312
 
272
- exports.setResults = setResults;
313
+ exports.setProvider = setProvider;
273
314
  var emojiPluginKey = new _prosemirrorState.PluginKey('emojiPlugin');
274
315
  exports.emojiPluginKey = emojiPluginKey;
275
316
 
@@ -278,8 +319,6 @@ function getEmojiPluginState(state) {
278
319
  }
279
320
 
280
321
  function emojiPluginFactory(dispatch, providerFactory, portalProviderAPI, eventDispatcher, options) {
281
- var emojiProvider;
282
- var emojiProviderChangeHandler;
283
322
  return new _prosemirrorState.Plugin({
284
323
  key: emojiPluginKey,
285
324
  state: {
@@ -287,12 +326,12 @@ function emojiPluginFactory(dispatch, providerFactory, portalProviderAPI, eventD
287
326
  return {};
288
327
  },
289
328
  apply: function apply(tr, pluginState) {
290
- var _ref7 = tr.getMeta(emojiPluginKey) || {
329
+ var _ref8 = tr.getMeta(emojiPluginKey) || {
291
330
  action: null,
292
331
  params: null
293
332
  },
294
- action = _ref7.action,
295
- params = _ref7.params;
333
+ action = _ref8.action,
334
+ params = _ref8.params;
296
335
 
297
336
  var newPluginState = pluginState;
298
337
 
@@ -304,9 +343,9 @@ function emojiPluginFactory(dispatch, providerFactory, portalProviderAPI, eventD
304
343
  dispatch(emojiPluginKey, newPluginState);
305
344
  return newPluginState;
306
345
 
307
- case ACTIONS.SET_RESULTS:
346
+ case ACTIONS.SET_ASCII_MAP:
308
347
  newPluginState = _objectSpread(_objectSpread({}, pluginState), {}, {
309
- emojis: params.results.emojis
348
+ asciiMap: params.asciiMap
310
349
  });
311
350
  dispatch(emojiPluginKey, newPluginState);
312
351
  return newPluginState;
@@ -319,7 +358,7 @@ function emojiPluginFactory(dispatch, providerFactory, portalProviderAPI, eventD
319
358
  nodeViews: {
320
359
  emoji: function emoji(node, view, getPos) {
321
360
  var featureFlags = (0, _featureFlagsContext.getFeatureFlags)(view.state);
322
- var createEmojiNodeView = featureFlags !== null && featureFlags !== void 0 && featureFlags.nextEmojiNodeView ? (0, _emojiNext.default)(providerFactory, options) : (0, _emoji2.default)(portalProviderAPI, eventDispatcher, providerFactory, options);
361
+ var createEmojiNodeView = featureFlags !== null && featureFlags !== void 0 && featureFlags.nextEmojiNodeView ? (0, _emojiNext.default)(providerFactory, options) : (0, _emoji3.default)(portalProviderAPI, eventDispatcher, providerFactory, options);
323
362
  return createEmojiNodeView(node, view, getPos);
324
363
  }
325
364
  }
@@ -333,22 +372,10 @@ function emojiPluginFactory(dispatch, providerFactory, portalProviderAPI, eventD
333
372
  }
334
373
 
335
374
  providerPromise.then(function (provider) {
336
- if (emojiProvider && emojiProviderChangeHandler) {
337
- emojiProvider.unsubscribe(emojiProviderChangeHandler);
338
- }
339
-
340
- emojiProvider = provider;
341
375
  setProvider(provider)(editorView.state, editorView.dispatch);
342
- emojiProviderChangeHandler = {
343
- result: function result(emojis) {
344
- // Emoji provider is synchronous and
345
- // we need to make it async here to make PM happy
346
- Promise.resolve().then(function () {
347
- setResults(emojis)(editorView.state, editorView.dispatch);
348
- });
349
- }
350
- };
351
- provider.subscribe(emojiProviderChangeHandler);
376
+ provider.getAsciiMap().then(function (asciiMap) {
377
+ setAsciiMap(asciiMap)(editorView.state, editorView.dispatch);
378
+ });
352
379
  }).catch(function () {
353
380
  return setProvider(undefined)(editorView.state, editorView.dispatch);
354
381
  });
@@ -364,10 +391,6 @@ function emojiPluginFactory(dispatch, providerFactory, portalProviderAPI, eventD
364
391
  if (providerFactory) {
365
392
  providerFactory.unsubscribe('emojiProvider', providerHandler);
366
393
  }
367
-
368
- if (emojiProvider && emojiProviderChangeHandler) {
369
- emojiProvider.unsubscribe(emojiProviderChangeHandler);
370
- }
371
394
  }
372
395
  };
373
396
  }
@@ -28,8 +28,6 @@ var _inputRules = require("../../../utils/input-rules");
28
28
 
29
29
  var _prosemirrorInputRules = require("@atlaskit/prosemirror-input-rules");
30
30
 
31
- var _utils = require("../../../utils");
32
-
33
31
  var _analytics = require("../../analytics");
34
32
 
35
33
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
@@ -71,10 +69,6 @@ function inputRuleHandler(state, matchParts, start, end) {
71
69
  return null;
72
70
  }
73
71
 
74
- if (!isEnabled(state)) {
75
- return null;
76
- }
77
-
78
72
  var match = matcher.match(matchParts);
79
73
 
80
74
  if (match) {
@@ -85,14 +79,6 @@ function inputRuleHandler(state, matchParts, start, end) {
85
79
  return null;
86
80
  }
87
81
 
88
- function isEnabled(state) {
89
- var typeAheadQuery = state.schema.marks.typeAheadQuery;
90
- var isTypeAheadQueryActive = state.selection.$from.marks().some(function (mark) {
91
- return mark.type === typeAheadQuery;
92
- });
93
- return isTypeAheadQueryActive || (0, _utils.isMarkTypeAllowedInCurrentSelection)(typeAheadQuery, state);
94
- }
95
-
96
82
  var REGEX_LEADING_CAPTURE_INDEX = 1;
97
83
  var REGEX_EMOJI_LEADING_PARENTHESES = 2;
98
84
  var REGEX_EMOJI_ASCII_CAPTURE_INDEX = 3;
@@ -17,8 +17,6 @@ var _gapCursorSelection = require("../../selection/gap-cursor-selection");
17
17
 
18
18
  var _utils = require("../utils");
19
19
 
20
- var _findQueryMark = require("../../type-ahead/utils/find-query-mark");
21
-
22
20
  var _utils2 = require("../../../utils");
23
21
 
24
22
  var _classNames = require("../ui/class-names");
@@ -101,9 +99,7 @@ function expandKeymap() {
101
99
  return false;
102
100
  }, list);
103
101
  keymaps.bindKeymapWithCommand(keymaps.moveUp.common, function (state, dispatch, editorView) {
104
- var queryMark = (0, _findQueryMark.findTypeAheadQuery)(state);
105
-
106
- if (queryMark.start !== -1 && queryMark.end !== -1 || !editorView) {
102
+ if (!editorView) {
107
103
  return false;
108
104
  }
109
105
 
@@ -136,8 +132,8 @@ function expandKeymap() {
136
132
  return (0, _commands.focusTitle)(expandBefore.start)(state, dispatch, editorView);
137
133
  } // moving cursor from outside of an expand to the content when it is expanded
138
134
  else if (dispatch) {
139
- dispatch(state.tr.setSelection(sel));
140
- }
135
+ dispatch(state.tr.setSelection(sel));
136
+ }
141
137
 
142
138
  return true;
143
139
  }
@@ -86,22 +86,22 @@ var performNodeUpdate = function performNodeUpdate(type, newAttrs, content, mark
86
86
  tr.setSelection(_prosemirrorState.TextSelection.create(tr.doc, state.selection.anchor));
87
87
  } // If any extension is currently selected
88
88
  else if ((0, _prosemirrorUtils.findSelectedNodeOfType)([extension, bodiedExtension, inlineExtension])(selection)) {
89
- tr = (0, _prosemirrorUtils.replaceSelectedNode)(newNode)(tr); // Replacing selected node doesn't update the selection. `selection.node` still returns the old node
90
-
91
- tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, tr.mapping.map(state.selection.anchor)));
92
- } // When we loose the selection. This usually happens when Synchrony resets or changes
93
- // the selection when user is in the middle of updating an extension.
94
- else if (extensionState.element) {
95
- var pos = view.posAtDOM(extensionState.element, -1);
96
-
97
- if (pos > -1) {
98
- tr = tr.replaceWith(pos, pos + (content.size || 0) + 1, newNode);
99
- tr.setSelection(_prosemirrorState.Selection.near(tr.doc.resolve(pos)));
100
- targetSelectionSource = _extensionEvents.TARGET_SELECTION_SOURCE.HTML_ELEMENT;
101
- } else {
102
- action = _analytics.ACTION.ERRORED;
103
- }
104
- } // Only scroll if we have anything to update, best to avoid surprise scroll
89
+ tr = (0, _prosemirrorUtils.replaceSelectedNode)(newNode)(tr); // Replacing selected node doesn't update the selection. `selection.node` still returns the old node
90
+
91
+ tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, tr.mapping.map(state.selection.anchor)));
92
+ } // When we loose the selection. This usually happens when Synchrony resets or changes
93
+ // the selection when user is in the middle of updating an extension.
94
+ else if (extensionState.element) {
95
+ var pos = view.posAtDOM(extensionState.element, -1);
96
+
97
+ if (pos > -1) {
98
+ tr = tr.replaceWith(pos, pos + (content.size || 0) + 1, newNode);
99
+ tr.setSelection(_prosemirrorState.Selection.near(tr.doc.resolve(pos)));
100
+ targetSelectionSource = _extensionEvents.TARGET_SELECTION_SOURCE.HTML_ELEMENT;
101
+ } else {
102
+ action = _analytics.ACTION.ERRORED;
103
+ }
104
+ } // Only scroll if we have anything to update, best to avoid surprise scroll
105
105
 
106
106
 
107
107
  if (dispatch && tr.docChanged) {
@@ -359,10 +359,10 @@ var createPlugin = function createPlugin(dispatch, providerFactory, extensionHan
359
359
  })(state, dispatch);
360
360
  } // New DOM element doesn't necessarily mean it's a new Node
361
361
  else if (element !== newElement) {
362
- (0, _commands.updateState)({
363
- element: newElement
364
- })(state, dispatch);
365
- }
362
+ (0, _commands.updateState)({
363
+ element: newElement
364
+ })(state, dispatch);
365
+ }
366
366
 
367
367
  return true;
368
368
  },
@@ -146,7 +146,8 @@ var ExtensionComponent = /*#__PURE__*/function (_Component) {
146
146
  extensionType: extensionType,
147
147
  extensionKey: extensionKey,
148
148
  parameters: parameters,
149
- content: text
149
+ content: text,
150
+ localId: pmNode.attrs.localId
150
151
  };
151
152
  var result;
152
153
 
@@ -162,7 +163,7 @@ var ExtensionComponent = /*#__PURE__*/function (_Component) {
162
163
  var NodeRenderer = extensionHandlerFromProvider;
163
164
  return /*#__PURE__*/_react.default.createElement(NodeRenderer, {
164
165
  node: node,
165
- refNode: _this.props.refNode
166
+ references: _this.props.references
166
167
  });
167
168
  }
168
169
  }
@@ -215,7 +216,7 @@ var ExtensionComponent = /*#__PURE__*/function (_Component) {
215
216
  node = _this$props2.node,
216
217
  handleContentDOMRef = _this$props2.handleContentDOMRef,
217
218
  editorView = _this$props2.editorView,
218
- refNode = _this$props2.refNode,
219
+ references = _this$props2.references,
219
220
  editorAppearance = _this$props2.editorAppearance;
220
221
  var extensionHandlerResult = this.tryExtensionHandler();
221
222
 
@@ -224,7 +225,7 @@ var ExtensionComponent = /*#__PURE__*/function (_Component) {
224
225
  case 'bodiedExtension':
225
226
  return /*#__PURE__*/_react.default.createElement(_Extension.default, {
226
227
  node: node,
227
- refNode: refNode,
228
+ references: references,
228
229
  extensionProvider: this.state.extensionProvider,
229
230
  handleContentDOMRef: handleContentDOMRef,
230
231
  view: editorView,
@@ -54,12 +54,12 @@ var Extension = /*#__PURE__*/function (_Component) {
54
54
  editorView = _this$props.editorView,
55
55
  handleContentDOMRef = _this$props.handleContentDOMRef,
56
56
  extensionHandlers = _this$props.extensionHandlers,
57
- refNode = _this$props.refNode,
57
+ references = _this$props.references,
58
58
  editorAppearance = _this$props.editorAppearance;
59
59
  return /*#__PURE__*/_react.default.createElement(_ExtensionComponent.default, {
60
60
  editorView: editorView,
61
61
  node: node,
62
- refNode: refNode,
62
+ references: references,
63
63
  extensionProvider: extensionProvider,
64
64
  handleContentDOMRef: handleContentDOMRef,
65
65
  extensionHandlers: extensionHandlers,
@@ -22,7 +22,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
22
22
  * which is used by both current and archv3 editors.
23
23
  */
24
24
  function createFeatureFlagsFromProps(props) {
25
- var _props$allowTextColor, _props$performanceTra, _props$performanceTra2, _props$featureFlags, _props$featureFlags2, _props$featureFlags3, _props$allowTables, _props$featureFlags4, _props$featureFlags5, _props$allowTables2, _props$featureFlags6, _props$featureFlags7, _props$allowTables3, _props$featureFlags8, _props$featureFlags9, _props$allowTables4, _props$featureFlags10, _props$featureFlags11, _props$allowTables5, _props$allowExtension, _props$featureFlags12, _props$featureFlags13, _props$featureFlags14, _props$featureFlags15, _props$featureFlags16, _props$featureFlags17, _props$featureFlags18, _props$featureFlags19, _props$featureFlags20, _props$featureFlags21, _props$featureFlags22, _props$featureFlags23;
25
+ var _props$allowTextColor, _props$performanceTra, _props$performanceTra2, _props$featureFlags, _props$featureFlags2, _props$featureFlags3, _props$allowTables, _props$featureFlags4, _props$featureFlags5, _props$allowTables2, _props$featureFlags6, _props$featureFlags7, _props$allowTables3, _props$featureFlags8, _props$featureFlags9, _props$allowTables4, _props$featureFlags10, _props$featureFlags11, _props$allowTables5, _props$allowExtension, _props$featureFlags12, _props$featureFlags13, _props$featureFlags14, _props$featureFlags15, _props$featureFlags16, _props$featureFlags17, _props$featureFlags18, _props$featureFlags19, _props$featureFlags20, _props$featureFlags21, _props$featureFlags22, _props$featureFlags23, _props$featureFlags24, _props$featureFlags25;
26
26
 
27
27
  return _objectSpread(_objectSpread({}, (0, _normalizeFeatureFlags.normalizeFeatureFlags)(props.featureFlags)), {}, {
28
28
  newInsertionBehaviour: props.allowNewInsertionBehaviour,
@@ -48,6 +48,7 @@ function createFeatureFlagsFromProps(props) {
48
48
  showAvatarGroupAsPlugin: Boolean(typeof ((_props$featureFlags16 = props.featureFlags) === null || _props$featureFlags16 === void 0 ? void 0 : _props$featureFlags16.showAvatarGroupAsPlugin) === 'boolean' ? !!((_props$featureFlags17 = props.featureFlags) !== null && _props$featureFlags17 !== void 0 && _props$featureFlags17.showAvatarGroupAsPlugin) : false),
49
49
  errorBoundaryDocStructure: Boolean(typeof ((_props$featureFlags18 = props.featureFlags) === null || _props$featureFlags18 === void 0 ? void 0 : _props$featureFlags18.useErrorBoundaryDocStructure) === 'boolean' ? !!((_props$featureFlags19 = props.featureFlags) !== null && _props$featureFlags19 !== void 0 && _props$featureFlags19.useErrorBoundaryDocStructure) : false),
50
50
  synchronyErrorDocStructure: Boolean(typeof ((_props$featureFlags20 = props.featureFlags) === null || _props$featureFlags20 === void 0 ? void 0 : _props$featureFlags20.synchronyErrorDocStructure) === 'boolean' ? !!((_props$featureFlags21 = props.featureFlags) !== null && _props$featureFlags21 !== void 0 && _props$featureFlags21.synchronyErrorDocStructure) : false),
51
- enableViewUpdateSubscription: Boolean(typeof ((_props$featureFlags22 = props.featureFlags) === null || _props$featureFlags22 === void 0 ? void 0 : _props$featureFlags22.enableViewUpdateSubscription) === 'boolean' ? !!((_props$featureFlags23 = props.featureFlags) !== null && _props$featureFlags23 !== void 0 && _props$featureFlags23.enableViewUpdateSubscription) : false)
51
+ enableViewUpdateSubscription: Boolean(typeof ((_props$featureFlags22 = props.featureFlags) === null || _props$featureFlags22 === void 0 ? void 0 : _props$featureFlags22.enableViewUpdateSubscription) === 'boolean' ? !!((_props$featureFlags23 = props.featureFlags) !== null && _props$featureFlags23 !== void 0 && _props$featureFlags23.enableViewUpdateSubscription) : false),
52
+ collabAvatarScroll: Boolean(typeof ((_props$featureFlags24 = props.featureFlags) === null || _props$featureFlags24 === void 0 ? void 0 : _props$featureFlags24.collabAvatarScroll) === 'boolean' ? !!((_props$featureFlags25 = props.featureFlags) !== null && _props$featureFlags25 !== void 0 && _props$featureFlags25.collabAvatarScroll) : false)
52
53
  });
53
54
  }
@@ -13,6 +13,8 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _reactIntl = require("react-intl");
15
15
 
16
+ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
17
+
16
18
  var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
17
19
 
18
20
  var _messages = _interopRequireDefault(require("./messages"));
@@ -30,24 +32,20 @@ var ConfirmationModalImpl = function ConfirmationModalImpl(props) {
30
32
  var heading = (options === null || options === void 0 ? void 0 : options.title) || formatMessage(_messages.default.confirmModalDefaultHeading);
31
33
  var okButtonLabel = (options === null || options === void 0 ? void 0 : options.okButtonLabel) || formatMessage(_messages.default.confirmModalOK);
32
34
  var cancelButtonLabel = (options === null || options === void 0 ? void 0 : options.cancelButtonLabel) || formatMessage(_messages.default.confirmModalCancel);
33
- var actionButtons = [{
34
- text: cancelButtonLabel,
35
- appearance: 'default',
35
+ return /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTransition, null, options && /*#__PURE__*/_react.default.createElement(_modalDialog.default, {
36
+ onClose: onClose,
37
+ testId: testId
38
+ }, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalHeader, null, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTitle, {
39
+ appearance: "warning"
40
+ }, heading)), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalBody, null, /*#__PURE__*/_react.default.createElement("p", null, options.message)), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_standardButton.default, {
41
+ appearance: "default",
36
42
  onClick: onClose,
37
43
  testId: testId ? "".concat(testId, "-cancel-button") : undefined
38
- }, {
39
- text: okButtonLabel,
40
- appearance: 'warning',
44
+ }, cancelButtonLabel), /*#__PURE__*/_react.default.createElement(_standardButton.default, {
45
+ appearance: "warning",
41
46
  onClick: onConfirm,
42
47
  testId: testId ? "".concat(testId, "-confirm-button") : undefined
43
- }];
44
- return /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTransition, null, options && /*#__PURE__*/_react.default.createElement(_modalDialog.default, {
45
- actions: actionButtons,
46
- onClose: onClose,
47
- heading: heading,
48
- appearance: "warning",
49
- testId: testId
50
- }, /*#__PURE__*/_react.default.createElement("p", null, options.message)));
48
+ }, okButtonLabel))));
51
49
  };
52
50
 
53
51
  var ConfirmationModal = (0, _reactIntl.injectIntl)(ConfirmationModalImpl);