@atlaskit/editor-core 175.0.4 → 176.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/.eslintrc.js +23 -57
  2. package/CHANGELOG.md +76 -0
  3. package/dist/cjs/create-editor/ReactEditorView.js +1 -1
  4. package/dist/cjs/create-editor/create-plugins-list.js +2 -4
  5. package/dist/cjs/keymaps/index.js +0 -6
  6. package/dist/cjs/labs/next/presets/cxhtml.js +1 -3
  7. package/dist/cjs/labs/next/presets/mobile.js +1 -3
  8. package/dist/cjs/nodeviews/getInlineNodeViewProducer.js +12 -5
  9. package/dist/cjs/nodeviews/getInlineNodeViewProducer.styles.js +1 -1
  10. package/dist/cjs/plugins/alignment/pm-plugins/keymap.js +0 -1
  11. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +27 -4
  12. package/dist/cjs/plugins/annotation/nodeviews/index.js +7 -35
  13. package/dist/cjs/plugins/annotation/pm-plugins/inline-comment.js +28 -2
  14. package/dist/cjs/plugins/annotation/utils.js +7 -3
  15. package/dist/cjs/plugins/base/pm-plugins/inline-cursor-target.js +1 -0
  16. package/dist/cjs/plugins/caption/nodeviews/index.js +4 -1
  17. package/dist/cjs/plugins/card/ui/EditLinkToolbar.js +1 -0
  18. package/dist/cjs/plugins/card/ui/LinkToolbarIconDropdown.js +2 -1
  19. package/dist/cjs/plugins/code-block/nodeviews/code-block.js +7 -3
  20. package/dist/cjs/plugins/code-block/refresh-browser-selection.js +3 -1
  21. package/dist/cjs/plugins/code-block/styles.js +6 -2
  22. package/dist/cjs/plugins/code-block/ui/class-names.js +2 -0
  23. package/dist/cjs/plugins/collab-edit/utils.js +4 -0
  24. package/dist/cjs/plugins/copy-button/commands.js +5 -3
  25. package/dist/cjs/plugins/emoji/messages.js +17 -0
  26. package/dist/cjs/plugins/emoji/nodeviews/emoji.js +18 -2
  27. package/dist/cjs/plugins/expand/pm-plugins/keymap.js +11 -1
  28. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +17 -13
  29. package/dist/cjs/plugins/find-replace/ui/FindReplaceToolbarButton.js +1 -0
  30. package/dist/cjs/plugins/floating-toolbar/index.js +2 -0
  31. package/dist/cjs/plugins/floating-toolbar/ui/Dropdown.js +9 -1
  32. package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +20 -1
  33. package/dist/cjs/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +6 -2
  34. package/dist/cjs/plugins/floating-toolbar/ui/Select.js +10 -4
  35. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +1 -0
  36. package/dist/cjs/plugins/help-dialog/ui/index.js +1 -4
  37. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/create-items.js +2 -2
  38. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -9
  39. package/dist/cjs/plugins/media/index.js +2 -2
  40. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +27 -3
  41. package/dist/cjs/plugins/media/pm-plugins/main.js +17 -2
  42. package/dist/cjs/plugins/media/toolbar/alt-text.js +1 -0
  43. package/dist/cjs/plugins/media/toolbar/linking.js +1 -0
  44. package/dist/cjs/plugins/media/ui/CaptionPlaceholder/index.js +9 -6
  45. package/dist/cjs/plugins/media/ui/ToolbarMedia/toolbar-media-messages.js +2 -2
  46. package/dist/cjs/plugins/mentions/messages.js +5 -0
  47. package/dist/cjs/plugins/mentions/nodeviews/mention.js +18 -2
  48. package/dist/cjs/plugins/mentions/styles.js +1 -1
  49. package/dist/cjs/plugins/mentions/ui/Mention/index.js +15 -0
  50. package/dist/cjs/plugins/panel/actions.js +1 -1
  51. package/dist/cjs/plugins/panel/index.js +1 -0
  52. package/dist/cjs/plugins/panel/toolbar.js +2 -2
  53. package/dist/cjs/plugins/paste/index.js +2 -3
  54. package/dist/cjs/plugins/paste/pm-plugins/main.js +2 -2
  55. package/dist/cjs/plugins/quick-insert/assets/action.js +3 -0
  56. package/dist/cjs/plugins/quick-insert/assets/code.js +3 -0
  57. package/dist/cjs/plugins/quick-insert/assets/custom-panel.js +3 -0
  58. package/dist/cjs/plugins/quick-insert/assets/date.js +3 -0
  59. package/dist/cjs/plugins/quick-insert/assets/decision.js +3 -0
  60. package/dist/cjs/plugins/quick-insert/assets/divider.js +3 -0
  61. package/dist/cjs/plugins/quick-insert/assets/emoji.js +3 -0
  62. package/dist/cjs/plugins/quick-insert/assets/expand.js +3 -0
  63. package/dist/cjs/plugins/quick-insert/assets/fallback.js +3 -0
  64. package/dist/cjs/plugins/quick-insert/assets/feedback.js +3 -0
  65. package/dist/cjs/plugins/quick-insert/assets/heading1.js +3 -0
  66. package/dist/cjs/plugins/quick-insert/assets/heading2.js +3 -0
  67. package/dist/cjs/plugins/quick-insert/assets/heading3.js +3 -0
  68. package/dist/cjs/plugins/quick-insert/assets/heading4.js +3 -0
  69. package/dist/cjs/plugins/quick-insert/assets/heading5.js +3 -0
  70. package/dist/cjs/plugins/quick-insert/assets/heading6.js +3 -0
  71. package/dist/cjs/plugins/quick-insert/assets/images.js +3 -0
  72. package/dist/cjs/plugins/quick-insert/assets/layout.js +3 -0
  73. package/dist/cjs/plugins/quick-insert/assets/link.js +3 -0
  74. package/dist/cjs/plugins/quick-insert/assets/list-number.js +3 -0
  75. package/dist/cjs/plugins/quick-insert/assets/list.js +3 -0
  76. package/dist/cjs/plugins/quick-insert/assets/mention.js +3 -0
  77. package/dist/cjs/plugins/quick-insert/assets/panel-error.js +3 -0
  78. package/dist/cjs/plugins/quick-insert/assets/panel-note.js +3 -0
  79. package/dist/cjs/plugins/quick-insert/assets/panel-success.js +3 -0
  80. package/dist/cjs/plugins/quick-insert/assets/panel-warning.js +3 -0
  81. package/dist/cjs/plugins/quick-insert/assets/panel.js +3 -0
  82. package/dist/cjs/plugins/quick-insert/assets/quote.js +3 -0
  83. package/dist/cjs/plugins/quick-insert/assets/status.js +3 -0
  84. package/dist/cjs/plugins/selection/gap-cursor/actions.js +26 -3
  85. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +41 -4
  86. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/styles.js +6 -1
  87. package/dist/cjs/plugins/text-color/utils/color.js +3 -0
  88. package/dist/cjs/plugins/type-ahead/commands/insert-type-ahead-item.js +4 -3
  89. package/dist/cjs/plugins/type-ahead/index.js +42 -22
  90. package/dist/cjs/plugins/type-ahead/messages.js +13 -3
  91. package/dist/cjs/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +25 -16
  92. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +126 -64
  93. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +12 -14
  94. package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +37 -14
  95. package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +36 -5
  96. package/dist/cjs/plugins/type-ahead/utils.js +3 -1
  97. package/dist/cjs/ui/Alignment/index.js +0 -1
  98. package/dist/cjs/ui/Appearance/Chromeless.js +1 -1
  99. package/dist/cjs/ui/Appearance/Comment/Toolbar.js +1 -1
  100. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +6 -2
  101. package/dist/cjs/ui/ColorPickerButton/index.js +4 -0
  102. package/dist/cjs/ui/ConfigPanel/Fields/CustomSelect.js +2 -4
  103. package/dist/cjs/ui/ConfigPanel/Fields/Select.js +1 -3
  104. package/dist/cjs/ui/Dropdown/index.js +28 -1
  105. package/dist/cjs/ui/DropdownMenu/index.js +25 -1
  106. package/dist/cjs/ui/ElementBrowser/constants.js +0 -1
  107. package/dist/cjs/ui/ToolbarArrowKeyNavigationProvider/index.js +166 -0
  108. package/dist/cjs/ui/styles.js +12 -18
  109. package/dist/cjs/utils/clipboard.js +17 -12
  110. package/dist/cjs/utils/document.js +13 -0
  111. package/dist/cjs/utils/index.js +0 -9
  112. package/dist/cjs/utils/input-rules.js +7 -5
  113. package/dist/cjs/utils/table.js +35 -0
  114. package/dist/cjs/version-wrapper.js +1 -1
  115. package/dist/cjs/version.json +1 -1
  116. package/dist/es2019/create-editor/ReactEditorView.js +1 -1
  117. package/dist/es2019/create-editor/create-plugins-list.js +2 -4
  118. package/dist/es2019/keymaps/index.js +1 -1
  119. package/dist/es2019/labs/next/presets/cxhtml.js +1 -3
  120. package/dist/es2019/labs/next/presets/mobile.js +1 -3
  121. package/dist/es2019/nodeviews/getInlineNodeViewProducer.js +11 -4
  122. package/dist/es2019/nodeviews/getInlineNodeViewProducer.styles.js +1 -1
  123. package/dist/es2019/plugins/alignment/pm-plugins/keymap.js +1 -2
  124. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +26 -4
  125. package/dist/es2019/plugins/annotation/nodeviews/index.js +7 -31
  126. package/dist/es2019/plugins/annotation/pm-plugins/inline-comment.js +24 -3
  127. package/dist/es2019/plugins/annotation/utils.js +8 -4
  128. package/dist/es2019/plugins/base/pm-plugins/inline-cursor-target.js +1 -0
  129. package/dist/es2019/plugins/caption/nodeviews/index.js +4 -1
  130. package/dist/es2019/plugins/card/ui/EditLinkToolbar.js +1 -0
  131. package/dist/es2019/plugins/card/ui/LinkToolbarIconDropdown.js +2 -1
  132. package/dist/es2019/plugins/code-block/nodeviews/code-block.js +7 -3
  133. package/dist/es2019/plugins/code-block/refresh-browser-selection.js +2 -1
  134. package/dist/es2019/plugins/code-block/styles.js +21 -5
  135. package/dist/es2019/plugins/code-block/ui/class-names.js +2 -0
  136. package/dist/es2019/plugins/collab-edit/utils.js +5 -1
  137. package/dist/es2019/plugins/copy-button/commands.js +5 -3
  138. package/dist/es2019/plugins/emoji/messages.js +8 -0
  139. package/dist/es2019/plugins/emoji/nodeviews/emoji.js +16 -2
  140. package/dist/es2019/plugins/expand/pm-plugins/keymap.js +10 -1
  141. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +17 -13
  142. package/dist/es2019/plugins/find-replace/ui/FindReplaceToolbarButton.js +1 -0
  143. package/dist/es2019/plugins/floating-toolbar/index.js +2 -0
  144. package/dist/es2019/plugins/floating-toolbar/ui/Dropdown.js +9 -1
  145. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +20 -1
  146. package/dist/es2019/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +3 -2
  147. package/dist/es2019/plugins/floating-toolbar/ui/Select.js +9 -3
  148. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +1 -0
  149. package/dist/es2019/plugins/help-dialog/ui/index.js +1 -2
  150. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/create-items.js +2 -2
  151. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +15 -2
  152. package/dist/es2019/plugins/media/index.js +2 -2
  153. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +25 -4
  154. package/dist/es2019/plugins/media/pm-plugins/main.js +14 -1
  155. package/dist/es2019/plugins/media/toolbar/alt-text.js +1 -0
  156. package/dist/es2019/plugins/media/toolbar/linking.js +1 -0
  157. package/dist/es2019/plugins/media/ui/CaptionPlaceholder/index.js +4 -2
  158. package/dist/es2019/plugins/media/ui/ToolbarMedia/toolbar-media-messages.js +2 -2
  159. package/dist/es2019/plugins/mentions/messages.js +5 -0
  160. package/dist/es2019/plugins/mentions/nodeviews/mention.js +16 -2
  161. package/dist/es2019/plugins/mentions/styles.js +2 -1
  162. package/dist/es2019/plugins/mentions/ui/Mention/index.js +12 -0
  163. package/dist/es2019/plugins/panel/actions.js +2 -2
  164. package/dist/es2019/plugins/panel/index.js +1 -0
  165. package/dist/es2019/plugins/panel/toolbar.js +3 -3
  166. package/dist/es2019/plugins/paste/index.js +2 -3
  167. package/dist/es2019/plugins/paste/pm-plugins/main.js +2 -2
  168. package/dist/es2019/plugins/quick-insert/assets/action.js +3 -0
  169. package/dist/es2019/plugins/quick-insert/assets/code.js +3 -0
  170. package/dist/es2019/plugins/quick-insert/assets/custom-panel.js +3 -0
  171. package/dist/es2019/plugins/quick-insert/assets/date.js +3 -0
  172. package/dist/es2019/plugins/quick-insert/assets/decision.js +3 -0
  173. package/dist/es2019/plugins/quick-insert/assets/divider.js +3 -0
  174. package/dist/es2019/plugins/quick-insert/assets/emoji.js +3 -0
  175. package/dist/es2019/plugins/quick-insert/assets/expand.js +3 -0
  176. package/dist/es2019/plugins/quick-insert/assets/fallback.js +3 -0
  177. package/dist/es2019/plugins/quick-insert/assets/feedback.js +3 -0
  178. package/dist/es2019/plugins/quick-insert/assets/heading1.js +3 -0
  179. package/dist/es2019/plugins/quick-insert/assets/heading2.js +3 -0
  180. package/dist/es2019/plugins/quick-insert/assets/heading3.js +3 -0
  181. package/dist/es2019/plugins/quick-insert/assets/heading4.js +3 -0
  182. package/dist/es2019/plugins/quick-insert/assets/heading5.js +3 -0
  183. package/dist/es2019/plugins/quick-insert/assets/heading6.js +3 -0
  184. package/dist/es2019/plugins/quick-insert/assets/images.js +3 -0
  185. package/dist/es2019/plugins/quick-insert/assets/layout.js +3 -0
  186. package/dist/es2019/plugins/quick-insert/assets/link.js +3 -0
  187. package/dist/es2019/plugins/quick-insert/assets/list-number.js +3 -0
  188. package/dist/es2019/plugins/quick-insert/assets/list.js +3 -0
  189. package/dist/es2019/plugins/quick-insert/assets/mention.js +3 -0
  190. package/dist/es2019/plugins/quick-insert/assets/panel-error.js +3 -0
  191. package/dist/es2019/plugins/quick-insert/assets/panel-note.js +3 -0
  192. package/dist/es2019/plugins/quick-insert/assets/panel-success.js +3 -0
  193. package/dist/es2019/plugins/quick-insert/assets/panel-warning.js +3 -0
  194. package/dist/es2019/plugins/quick-insert/assets/panel.js +3 -0
  195. package/dist/es2019/plugins/quick-insert/assets/quote.js +3 -0
  196. package/dist/es2019/plugins/quick-insert/assets/status.js +3 -0
  197. package/dist/es2019/plugins/selection/gap-cursor/actions.js +26 -5
  198. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +42 -4
  199. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/styles.js +6 -1
  200. package/dist/es2019/plugins/text-color/utils/color.js +3 -0
  201. package/dist/es2019/plugins/type-ahead/commands/insert-type-ahead-item.js +4 -3
  202. package/dist/es2019/plugins/type-ahead/index.js +17 -4
  203. package/dist/es2019/plugins/type-ahead/messages.js +13 -3
  204. package/dist/es2019/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +24 -16
  205. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +108 -61
  206. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +12 -14
  207. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +32 -8
  208. package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +42 -7
  209. package/dist/es2019/plugins/type-ahead/utils.js +3 -1
  210. package/dist/es2019/ui/Alignment/index.js +1 -2
  211. package/dist/es2019/ui/Appearance/Chromeless.js +4 -0
  212. package/dist/es2019/ui/Appearance/Comment/Toolbar.js +1 -1
  213. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +5 -2
  214. package/dist/es2019/ui/ColorPickerButton/index.js +4 -0
  215. package/dist/es2019/ui/ConfigPanel/Fields/CustomSelect.js +2 -4
  216. package/dist/es2019/ui/ConfigPanel/Fields/Select.js +1 -3
  217. package/dist/es2019/ui/Dropdown/index.js +16 -1
  218. package/dist/es2019/ui/DropdownMenu/index.js +13 -1
  219. package/dist/es2019/ui/ElementBrowser/constants.js +0 -1
  220. package/dist/es2019/ui/ToolbarArrowKeyNavigationProvider/index.js +148 -0
  221. package/dist/es2019/ui/styles.js +1 -7
  222. package/dist/es2019/utils/clipboard.js +11 -9
  223. package/dist/es2019/utils/document.js +14 -1
  224. package/dist/es2019/utils/index.js +0 -7
  225. package/dist/es2019/utils/input-rules.js +4 -3
  226. package/dist/es2019/utils/table.js +28 -0
  227. package/dist/es2019/version-wrapper.js +1 -1
  228. package/dist/es2019/version.json +1 -1
  229. package/dist/esm/create-editor/ReactEditorView.js +1 -1
  230. package/dist/esm/create-editor/create-plugins-list.js +2 -4
  231. package/dist/esm/keymaps/index.js +1 -1
  232. package/dist/esm/labs/next/presets/cxhtml.js +1 -3
  233. package/dist/esm/labs/next/presets/mobile.js +1 -3
  234. package/dist/esm/nodeviews/getInlineNodeViewProducer.js +11 -4
  235. package/dist/esm/nodeviews/getInlineNodeViewProducer.styles.js +1 -1
  236. package/dist/esm/plugins/alignment/pm-plugins/keymap.js +1 -2
  237. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +29 -4
  238. package/dist/esm/plugins/annotation/nodeviews/index.js +7 -33
  239. package/dist/esm/plugins/annotation/pm-plugins/inline-comment.js +28 -3
  240. package/dist/esm/plugins/annotation/utils.js +8 -4
  241. package/dist/esm/plugins/base/pm-plugins/inline-cursor-target.js +1 -0
  242. package/dist/esm/plugins/caption/nodeviews/index.js +4 -1
  243. package/dist/esm/plugins/card/ui/EditLinkToolbar.js +1 -0
  244. package/dist/esm/plugins/card/ui/LinkToolbarIconDropdown.js +2 -1
  245. package/dist/esm/plugins/code-block/nodeviews/code-block.js +7 -3
  246. package/dist/esm/plugins/code-block/refresh-browser-selection.js +2 -1
  247. package/dist/esm/plugins/code-block/styles.js +7 -2
  248. package/dist/esm/plugins/code-block/ui/class-names.js +2 -0
  249. package/dist/esm/plugins/collab-edit/utils.js +5 -2
  250. package/dist/esm/plugins/copy-button/commands.js +5 -3
  251. package/dist/esm/plugins/emoji/messages.js +8 -0
  252. package/dist/esm/plugins/emoji/nodeviews/emoji.js +15 -2
  253. package/dist/esm/plugins/expand/pm-plugins/keymap.js +10 -1
  254. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +17 -13
  255. package/dist/esm/plugins/find-replace/ui/FindReplaceToolbarButton.js +1 -0
  256. package/dist/esm/plugins/floating-toolbar/index.js +2 -0
  257. package/dist/esm/plugins/floating-toolbar/ui/Dropdown.js +10 -1
  258. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +20 -1
  259. package/dist/esm/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +5 -2
  260. package/dist/esm/plugins/floating-toolbar/ui/Select.js +9 -3
  261. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +1 -0
  262. package/dist/esm/plugins/help-dialog/ui/index.js +1 -4
  263. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/create-items.js +2 -2
  264. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +23 -9
  265. package/dist/esm/plugins/media/index.js +2 -2
  266. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +25 -4
  267. package/dist/esm/plugins/media/pm-plugins/main.js +14 -1
  268. package/dist/esm/plugins/media/toolbar/alt-text.js +1 -0
  269. package/dist/esm/plugins/media/toolbar/linking.js +1 -0
  270. package/dist/esm/plugins/media/ui/CaptionPlaceholder/index.js +3 -1
  271. package/dist/esm/plugins/media/ui/ToolbarMedia/toolbar-media-messages.js +2 -2
  272. package/dist/esm/plugins/mentions/messages.js +5 -0
  273. package/dist/esm/plugins/mentions/nodeviews/mention.js +15 -2
  274. package/dist/esm/plugins/mentions/styles.js +1 -1
  275. package/dist/esm/plugins/mentions/ui/Mention/index.js +13 -0
  276. package/dist/esm/plugins/panel/actions.js +2 -2
  277. package/dist/esm/plugins/panel/index.js +1 -0
  278. package/dist/esm/plugins/panel/toolbar.js +3 -3
  279. package/dist/esm/plugins/paste/index.js +2 -3
  280. package/dist/esm/plugins/paste/pm-plugins/main.js +2 -2
  281. package/dist/esm/plugins/quick-insert/assets/action.js +3 -0
  282. package/dist/esm/plugins/quick-insert/assets/code.js +3 -0
  283. package/dist/esm/plugins/quick-insert/assets/custom-panel.js +3 -0
  284. package/dist/esm/plugins/quick-insert/assets/date.js +3 -0
  285. package/dist/esm/plugins/quick-insert/assets/decision.js +3 -0
  286. package/dist/esm/plugins/quick-insert/assets/divider.js +3 -0
  287. package/dist/esm/plugins/quick-insert/assets/emoji.js +3 -0
  288. package/dist/esm/plugins/quick-insert/assets/expand.js +3 -0
  289. package/dist/esm/plugins/quick-insert/assets/fallback.js +3 -0
  290. package/dist/esm/plugins/quick-insert/assets/feedback.js +3 -0
  291. package/dist/esm/plugins/quick-insert/assets/heading1.js +3 -0
  292. package/dist/esm/plugins/quick-insert/assets/heading2.js +3 -0
  293. package/dist/esm/plugins/quick-insert/assets/heading3.js +3 -0
  294. package/dist/esm/plugins/quick-insert/assets/heading4.js +3 -0
  295. package/dist/esm/plugins/quick-insert/assets/heading5.js +3 -0
  296. package/dist/esm/plugins/quick-insert/assets/heading6.js +3 -0
  297. package/dist/esm/plugins/quick-insert/assets/images.js +3 -0
  298. package/dist/esm/plugins/quick-insert/assets/layout.js +3 -0
  299. package/dist/esm/plugins/quick-insert/assets/link.js +3 -0
  300. package/dist/esm/plugins/quick-insert/assets/list-number.js +3 -0
  301. package/dist/esm/plugins/quick-insert/assets/list.js +3 -0
  302. package/dist/esm/plugins/quick-insert/assets/mention.js +3 -0
  303. package/dist/esm/plugins/quick-insert/assets/panel-error.js +3 -0
  304. package/dist/esm/plugins/quick-insert/assets/panel-note.js +3 -0
  305. package/dist/esm/plugins/quick-insert/assets/panel-success.js +3 -0
  306. package/dist/esm/plugins/quick-insert/assets/panel-warning.js +3 -0
  307. package/dist/esm/plugins/quick-insert/assets/panel.js +3 -0
  308. package/dist/esm/plugins/quick-insert/assets/quote.js +3 -0
  309. package/dist/esm/plugins/quick-insert/assets/status.js +3 -0
  310. package/dist/esm/plugins/selection/gap-cursor/actions.js +24 -5
  311. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +44 -4
  312. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/styles.js +6 -1
  313. package/dist/esm/plugins/text-color/utils/color.js +3 -0
  314. package/dist/esm/plugins/type-ahead/commands/insert-type-ahead-item.js +4 -3
  315. package/dist/esm/plugins/type-ahead/index.js +35 -22
  316. package/dist/esm/plugins/type-ahead/messages.js +13 -3
  317. package/dist/esm/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +24 -16
  318. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +124 -64
  319. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +12 -14
  320. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +35 -14
  321. package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +38 -7
  322. package/dist/esm/plugins/type-ahead/utils.js +3 -1
  323. package/dist/esm/ui/Alignment/index.js +1 -2
  324. package/dist/esm/ui/Appearance/Chromeless.js +1 -1
  325. package/dist/esm/ui/Appearance/Comment/Toolbar.js +1 -1
  326. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +5 -2
  327. package/dist/esm/ui/ColorPickerButton/index.js +4 -0
  328. package/dist/esm/ui/ConfigPanel/Fields/CustomSelect.js +2 -4
  329. package/dist/esm/ui/ConfigPanel/Fields/Select.js +1 -3
  330. package/dist/esm/ui/Dropdown/index.js +17 -1
  331. package/dist/esm/ui/DropdownMenu/index.js +14 -1
  332. package/dist/esm/ui/ElementBrowser/constants.js +0 -1
  333. package/dist/esm/ui/ToolbarArrowKeyNavigationProvider/index.js +147 -0
  334. package/dist/esm/ui/styles.js +12 -16
  335. package/dist/esm/utils/clipboard.js +17 -12
  336. package/dist/esm/utils/document.js +14 -1
  337. package/dist/esm/utils/index.js +0 -7
  338. package/dist/esm/utils/input-rules.js +4 -3
  339. package/dist/esm/utils/table.js +28 -0
  340. package/dist/esm/version-wrapper.js +1 -1
  341. package/dist/esm/version.json +1 -1
  342. package/dist/types/keymaps/index.d.ts +1 -1
  343. package/dist/types/plugins/alignment/ui/ToolbarAlignment/index.d.ts +2 -0
  344. package/dist/types/plugins/annotation/utils.d.ts +2 -2
  345. package/dist/types/plugins/block-type/ui/ToolbarBlockType/index.d.ts +2 -0
  346. package/dist/types/plugins/code-block/refresh-browser-selection.d.ts +2 -0
  347. package/dist/types/plugins/code-block/ui/class-names.d.ts +2 -0
  348. package/dist/types/plugins/emoji/messages.d.ts +7 -0
  349. package/dist/types/plugins/extension/index.d.ts +0 -1
  350. package/dist/types/plugins/floating-toolbar/ui/Dropdown.d.ts +1 -0
  351. package/dist/types/plugins/floating-toolbar/ui/DropdownMenu.d.ts +6 -0
  352. package/dist/types/plugins/floating-toolbar/ui/Select.d.ts +1 -0
  353. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.d.ts +3 -1
  354. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/index.d.ts +1 -0
  355. package/dist/types/plugins/media/nodeviews/mediaSingle.d.ts +4 -1
  356. package/dist/types/plugins/media/pm-plugins/main.d.ts +1 -0
  357. package/dist/types/plugins/media/ui/CaptionPlaceholder/index.d.ts +3 -3
  358. package/dist/types/plugins/mentions/messages.d.ts +5 -0
  359. package/dist/types/plugins/mentions/ui/Mention/index.d.ts +1 -0
  360. package/dist/types/plugins/paste/index.d.ts +1 -2
  361. package/dist/types/plugins/paste/pm-plugins/main.d.ts +1 -1
  362. package/dist/types/plugins/selection/gap-cursor/actions.d.ts +2 -0
  363. package/dist/types/plugins/text-color/ui/ToolbarTextColor/index.d.ts +3 -0
  364. package/dist/types/plugins/type-ahead/messages.d.ts +10 -0
  365. package/dist/types/plugins/type-ahead/ui/TypeAheadPopup.d.ts +7 -1
  366. package/dist/types/plugins/type-ahead/utils.d.ts +1 -0
  367. package/dist/types/types/extension-config.d.ts +0 -1
  368. package/dist/types/ui/ConfigPanel/Fields/SelectItem.d.ts +1 -1
  369. package/dist/types/ui/Dropdown/index.d.ts +6 -1
  370. package/dist/types/ui/DropdownMenu/index.d.ts +2 -1
  371. package/dist/types/ui/ElementBrowser/types.d.ts +3 -1
  372. package/dist/types/ui/ToolbarArrowKeyNavigationProvider/index.d.ts +18 -0
  373. package/dist/types/ui/styles.d.ts +0 -1
  374. package/dist/types/utils/clipboard.d.ts +1 -1
  375. package/dist/types/utils/index.d.ts +0 -4
  376. package/dist/types/utils/input-rules.d.ts +2 -2
  377. package/dist/types/utils/table.d.ts +3 -0
  378. package/docs/3-annotations.tsx +1 -0
  379. package/package.json +27 -25
  380. package/report.api.md +74 -74
@@ -58,12 +58,24 @@ export var ToolbarTextColor = /*#__PURE__*/function (_React$Component) {
58
58
  isOpen: false
59
59
  });
60
60
 
61
+ _defineProperty(_assertThisInitialized(_this), "toolbarItemRef", /*#__PURE__*/React.createRef());
62
+
61
63
  _defineProperty(_assertThisInitialized(_this), "changeColor", function (color) {
62
64
  return commands.changeColor(color)(_this.props.editorView.state, _this.props.editorView.dispatch);
63
65
  });
64
66
 
67
+ _defineProperty(_assertThisInitialized(_this), "onOpenChange", function (attrs) {
68
+ _this.handleOpenChange({
69
+ isOpen: attrs.isOpen,
70
+ logCloseEvent: true,
71
+ event: attrs.event
72
+ });
73
+ });
74
+
65
75
  _defineProperty(_assertThisInitialized(_this), "changeTextColor", function (color, disabled) {
66
76
  if (!disabled) {
77
+ var _this$props$editorVie;
78
+
67
79
  var _this$props$pluginSta = _this.props.pluginState,
68
80
  palette = _this$props$pluginSta.palette,
69
81
  paletteExpanded = _this$props$pluginSta.paletteExpanded,
@@ -86,7 +98,10 @@ export var ToolbarTextColor = /*#__PURE__*/function (_React$Component) {
86
98
  logCloseEvent: false
87
99
  });
88
100
 
89
- return _this.changeColor(color);
101
+ _this.changeColor(color); //To set the focus on the textcolor button when the menu is closed by 'Esc' only to meet aria guidelines
102
+
103
+
104
+ (_this$props$editorVie = _this.props.editorView) === null || _this$props$editorVie === void 0 ? void 0 : _this$props$editorVie.focus();
90
105
  }
91
106
 
92
107
  return false;
@@ -101,7 +116,8 @@ export var ToolbarTextColor = /*#__PURE__*/function (_React$Component) {
101
116
 
102
117
  _defineProperty(_assertThisInitialized(_this), "handleOpenChange", function (_ref) {
103
118
  var isOpen = _ref.isOpen,
104
- logCloseEvent = _ref.logCloseEvent;
119
+ logCloseEvent = _ref.logCloseEvent,
120
+ event = _ref.event;
105
121
 
106
122
  _this.setState({
107
123
  isOpen: isOpen
@@ -112,6 +128,12 @@ export var ToolbarTextColor = /*#__PURE__*/function (_React$Component) {
112
128
  noSelect: isOpen === false
113
129
  }));
114
130
  }
131
+
132
+ if (!isOpen && event instanceof KeyboardEvent && (event === null || event === void 0 ? void 0 : event.key) === 'Escape') {
133
+ var _this$toolbarItemRef, _this$toolbarItemRef$;
134
+
135
+ (_this$toolbarItemRef = _this.toolbarItemRef) === null || _this$toolbarItemRef === void 0 ? void 0 : (_this$toolbarItemRef$ = _this$toolbarItemRef.current) === null || _this$toolbarItemRef$ === void 0 ? void 0 : _this$toolbarItemRef$.focus();
136
+ }
115
137
  });
116
138
 
117
139
  _defineProperty(_assertThisInitialized(_this), "hide", function (e) {
@@ -125,9 +147,23 @@ export var ToolbarTextColor = /*#__PURE__*/function (_React$Component) {
125
147
  _this.setState({
126
148
  isOpen: false
127
149
  });
150
+
151
+ if (e instanceof KeyboardEvent && e.key === 'Escape') {
152
+ var _this$toolbarItemRef2, _this$toolbarItemRef3;
153
+
154
+ (_this$toolbarItemRef2 = _this.toolbarItemRef) === null || _this$toolbarItemRef2 === void 0 ? void 0 : (_this$toolbarItemRef3 = _this$toolbarItemRef2.current) === null || _this$toolbarItemRef3 === void 0 ? void 0 : _this$toolbarItemRef3.focus();
155
+ }
128
156
  }
129
157
  });
130
158
 
159
+ _defineProperty(_assertThisInitialized(_this), "hideonEsc", function (e) {
160
+ var _this$toolbarItemRef4, _this$toolbarItemRef5;
161
+
162
+ _this.hide(e);
163
+
164
+ (_this$toolbarItemRef4 = _this.toolbarItemRef) === null || _this$toolbarItemRef4 === void 0 ? void 0 : (_this$toolbarItemRef5 = _this$toolbarItemRef4.current) === null || _this$toolbarItemRef5 === void 0 ? void 0 : _this$toolbarItemRef5.focus();
165
+ });
166
+
131
167
  return _this;
132
168
  }
133
169
 
@@ -167,9 +203,11 @@ export var ToolbarTextColor = /*#__PURE__*/function (_React$Component) {
167
203
  scrollableElement: popupsScrollableElement,
168
204
  isOpen: isOpen && !pluginState.disabled,
169
205
  handleClickOutside: this.hide,
170
- handleEscapeKeydown: this.hide,
206
+ handleEscapeKeydown: this.hideonEsc,
171
207
  zIndex: akEditorMenuZIndex,
172
208
  fitWidth: fitWidth,
209
+ onOpenChange: this.onOpenChange,
210
+ closeonTab: true,
173
211
  trigger: jsx(ToolbarButton, {
174
212
  buttonId: TOOLBAR_BUTTON.TEXT_COLOR,
175
213
  spacing: isReducedSpacing ? 'none' : 'default',
@@ -180,6 +218,7 @@ export var ToolbarTextColor = /*#__PURE__*/function (_React$Component) {
180
218
  "aria-haspopup": true,
181
219
  title: labelTextColor,
182
220
  onClick: this.toggleOpen,
221
+ ref: this.toolbarItemRef,
183
222
  iconBefore: jsx("div", {
184
223
  css: triggerWrapperStyles
185
224
  }, jsx("div", {
@@ -199,7 +238,8 @@ export var ToolbarTextColor = /*#__PURE__*/function (_React$Component) {
199
238
  onClick: function onClick(color) {
200
239
  return _this2.changeTextColor(color, pluginState.disabled);
201
240
  },
202
- selectedColor: pluginState.color
241
+ selectedColor: pluginState.color,
242
+ textPalette: true
203
243
  }))), jsx("span", {
204
244
  css: separatorStyles
205
245
  }));
@@ -21,10 +21,15 @@ var createSteppedRainbow = function createSteppedRainbow(colors) {
21
21
 
22
22
  return "\n ".concat(color, " ").concat((pos - 1) * inc, "%,\n ").concat(color, " ").concat(pos * inc, "%,\n ");
23
23
  }).join('\n'), "\n );\n ");
24
- };
24
+ }; // TODO: https://product-fabric.atlassian.net/browse/DSP-4137
25
+
26
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
27
+
25
28
 
26
29
  var rainbow = createSteppedRainbow([colors.P300, colors.T300, colors.Y400, colors.R400]);
27
30
  var disabledRainbow = createSteppedRainbow([colors.N80, colors.N60, colors.N40, colors.N60]);
31
+ /* eslint-enable @atlaskit/design-system/ensure-design-token-usage */
32
+
28
33
  export var textColorIconWrapper = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
29
34
  export var textColorIconBar = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: absolute;\n left: 0;\n right: 0;\n top: 16px;\n margin: auto;\n width: 12px;\n height: 3px;\n border-radius: ", ";\n background: ", ";\n"])), borderRadius() + 'px', rainbow);
30
35
  export var backgroundDisabled = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n background: ", ";\n"])), disabledRainbow);
@@ -1,5 +1,8 @@
1
1
  import { N800 } from '@atlaskit/theme/colors';
2
2
  export var DEFAULT_COLOR = {
3
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4137
4
+
5
+ /* eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage */
3
6
  color: N800.toLowerCase(),
4
7
  label: 'Dark gray'
5
8
  };
@@ -39,7 +39,6 @@ var createInsertCallback = function createInsertCallback(_ref2) {
39
39
  var state = _ref2.editorState,
40
40
  handler = _ref2.handler,
41
41
  query = _ref2.query,
42
- mode = _ref2.mode,
43
42
  wasInsertedBySpace = _ref2.wasInsertedBySpace,
44
43
  selectedIndex = _ref2.selectedIndex,
45
44
  textStartPosition = _ref2.textStartPosition,
@@ -147,9 +146,11 @@ export var insertTypeAheadItem = function insertTypeAheadItem(view) {
147
146
 
148
147
  if (mode === SelectItemMode.SPACE) {
149
148
  text = text.trim().concat(' ');
150
- }
149
+ } // We want to always persist selectedIndex as -1 upon selecting an item from typeahead
150
+ // in order to retain exist focus behaviour when undoing
151
+
151
152
 
152
- var selectedIndex = Math.max(sourceListItem.indexOf(item), 0);
153
+ var selectedIndex = -1;
153
154
  var wasInsertedBySpace = mode === SelectItemMode.SPACE;
154
155
  var textStartPosition = tr.selection.from;
155
156
 
@@ -8,7 +8,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
8
8
  *
9
9
  *
10
10
  */
11
- import React from 'react';
11
+ import React, { useCallback } from 'react';
12
12
  import { SelectItemMode } from '@atlaskit/editor-common/type-ahead';
13
13
  import { createPlugin } from './pm-plugins/main';
14
14
  import { createPlugin as createInsertItemPlugin } from './pm-plugins/insert-item-plugin';
@@ -40,6 +40,7 @@ var TypeAheadMenu = /*#__PURE__*/React.memo(function (_ref) {
40
40
  var _useItemInsert = useItemInsert(triggerHandler, editorView, items),
41
41
  _useItemInsert2 = _slicedToArray(_useItemInsert, 3),
42
42
  onItemInsert = _useItemInsert2[0],
43
+ onTextInsert = _useItemInsert2[1],
43
44
  onItemMatch = _useItemInsert2[2];
44
45
 
45
46
  var setSelectedItem = React.useCallback(function (_ref2) {
@@ -59,6 +60,17 @@ var TypeAheadMenu = /*#__PURE__*/React.memo(function (_ref) {
59
60
  });
60
61
  });
61
62
  }, [onItemInsert, query]);
63
+ var cancel = useCallback(function (_ref3) {
64
+ var setSelectionAt = _ref3.setSelectionAt,
65
+ addPrefixTrigger = _ref3.addPrefixTrigger,
66
+ forceFocusOnEditor = _ref3.forceFocusOnEditor;
67
+ var fullQuery = addPrefixTrigger ? "".concat(triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.trigger).concat(query) : query;
68
+ onTextInsert({
69
+ forceFocusOnEditor: forceFocusOnEditor,
70
+ setSelectionAt: setSelectionAt,
71
+ text: fullQuery
72
+ });
73
+ }, [triggerHandler, onTextInsert, query]);
62
74
  React.useEffect(function () {
63
75
  if (!isOpen || !query) {
64
76
  return;
@@ -97,7 +109,8 @@ var TypeAheadMenu = /*#__PURE__*/React.memo(function (_ref) {
97
109
  setSelectedItem: setSelectedItem,
98
110
  onItemInsert: insertItem,
99
111
  decorationSet: decorationSet,
100
- isEmptyQuery: !query
112
+ isEmptyQuery: !query,
113
+ cancel: cancel
101
114
  });
102
115
  });
103
116
  /**
@@ -118,7 +131,7 @@ var typeAheadPlugin = function typeAheadPlugin(options) {
118
131
  name: 'typeAhead',
119
132
  marks: function marks() {
120
133
  // We need to keep this to make sure
121
- // All documents with typeahead marks will be loaded normaly
134
+ // All documents with typeahead marks will be loaded normally
122
135
  return [{
123
136
  name: 'typeAheadQuery',
124
137
  mark: typeAheadQuery
@@ -128,9 +141,9 @@ var typeAheadPlugin = function typeAheadPlugin(options) {
128
141
  var typeAhead = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
129
142
  return [{
130
143
  name: 'typeAhead',
131
- plugin: function plugin(_ref3) {
132
- var dispatch = _ref3.dispatch,
133
- getIntl = _ref3.getIntl;
144
+ plugin: function plugin(_ref4) {
145
+ var dispatch = _ref4.dispatch,
146
+ getIntl = _ref4.getIntl;
134
147
  return createPlugin({
135
148
  getIntl: getIntl,
136
149
  popupMountRef: popupMountRef,
@@ -144,20 +157,20 @@ var typeAheadPlugin = function typeAheadPlugin(options) {
144
157
  plugin: createInsertItemPlugin
145
158
  }, {
146
159
  name: 'typeAheadInputRule',
147
- plugin: function plugin(_ref4) {
148
- var schema = _ref4.schema,
149
- featureFlags = _ref4.featureFlags;
160
+ plugin: function plugin(_ref5) {
161
+ var schema = _ref5.schema,
162
+ featureFlags = _ref5.featureFlags;
150
163
  return inputRulePlugin(schema, typeAhead, featureFlags);
151
164
  }
152
165
  }];
153
166
  },
154
- contentComponent: function contentComponent(_ref5) {
155
- var editorView = _ref5.editorView,
156
- containerElement = _ref5.containerElement,
157
- popupsMountPoint = _ref5.popupsMountPoint,
158
- popupsBoundariesElement = _ref5.popupsBoundariesElement,
159
- popupsScrollableElement = _ref5.popupsScrollableElement,
160
- wrapperElement = _ref5.wrapperElement;
167
+ contentComponent: function contentComponent(_ref6) {
168
+ var editorView = _ref6.editorView,
169
+ containerElement = _ref6.containerElement,
170
+ popupsMountPoint = _ref6.popupsMountPoint,
171
+ popupsBoundariesElement = _ref6.popupsBoundariesElement,
172
+ popupsScrollableElement = _ref6.popupsScrollableElement,
173
+ wrapperElement = _ref6.wrapperElement;
161
174
  popupMountRef.current = {
162
175
  popupsMountPoint: popupsMountPoint || wrapperElement || undefined,
163
176
  popupsBoundariesElement: popupsBoundariesElement,
@@ -167,8 +180,8 @@ var typeAheadPlugin = function typeAheadPlugin(options) {
167
180
  plugins: {
168
181
  typeAheadState: typeAheadPluginKey
169
182
  },
170
- render: function render(_ref6) {
171
- var typeAheadState = _ref6.typeAheadState;
183
+ render: function render(_ref7) {
184
+ var typeAheadState = _ref7.typeAheadState;
172
185
 
173
186
  if (!typeAheadState) {
174
187
  return null;
@@ -183,10 +196,10 @@ var typeAheadPlugin = function typeAheadPlugin(options) {
183
196
  }
184
197
  });
185
198
  },
186
- onEditorViewStateUpdated: function onEditorViewStateUpdated(_ref7) {
187
- var originalTransaction = _ref7.originalTransaction,
188
- oldEditorState = _ref7.oldEditorState,
189
- newEditorState = _ref7.newEditorState;
199
+ onEditorViewStateUpdated: function onEditorViewStateUpdated(_ref8) {
200
+ var originalTransaction = _ref8.originalTransaction,
201
+ oldEditorState = _ref8.oldEditorState,
202
+ newEditorState = _ref8.newEditorState;
190
203
  var oldPluginState = getPluginState(oldEditorState);
191
204
  var newPluginState = getPluginState(newEditorState);
192
205
 
@@ -8,16 +8,26 @@ export var typeAheadListMessages = defineMessages({
8
8
  inputQueryAssistiveLabel: {
9
9
  id: 'fabric.editor.inputQueryAssistiveTxt',
10
10
  defaultMessage: 'When autocomplete results are available use up and down arrows to review and enter to select. Touch device users, explore by touch or with swipe gestures.',
11
- description: 'Assitive text to the user when using typeahead shortcut'
11
+ description: 'Assistive text to the user when using typeahead shortcut'
12
12
  },
13
13
  searchResultsLabel: {
14
14
  id: 'fabric.editor.searchResults',
15
15
  defaultMessage: '{itemsLength, plural, one {# search result} other {# search results}} available',
16
- description: 'Assitive text to the user when using typeahead shortcut and it preceeds with a number - Ex: 10 search results available'
16
+ description: 'Assistive text to the user when using typeahead shortcut and it preceeds with a number - Ex: 10 search results available'
17
17
  },
18
18
  noSearchResultsLabel: {
19
19
  id: 'fabric.editor.noSearchResults',
20
20
  defaultMessage: 'No search results',
21
- description: 'Assitive text to the user when using typeahead shortcut'
21
+ description: 'Assistive text to the user when using typeahead shortcut'
22
+ },
23
+ descriptionLabel: {
24
+ id: 'fabric.editor.description',
25
+ defaultMessage: 'Description',
26
+ description: 'Description'
27
+ },
28
+ shortcutLabel: {
29
+ id: 'fabric.editor.shortcut',
30
+ defaultMessage: 'Text shortcut',
31
+ description: 'Text shortcut'
22
32
  }
23
33
  });
@@ -1,4 +1,5 @@
1
1
  import { TextSelection } from 'prosemirror-state';
2
+ import { GapCursorSelection } from '@atlaskit/editor-common/selection';
2
3
  import { pluginKey } from '../pm-plugins/key';
3
4
  import { ACTIONS } from '../pm-plugins/actions';
4
5
  import { browser } from '@atlaskit/editor-common/utils';
@@ -22,8 +23,6 @@ export var openTypeAheadAtCursor = function openTypeAheadAtCursor(_ref) {
22
23
  inputMethod = _ref.inputMethod,
23
24
  query = _ref.query;
24
25
  return function (tr) {
25
- var _selection$$head, _selection$$head$pare, _selection$$head$pare2, _selection$$head$pare3;
26
-
27
26
  openTypeAhead({
28
27
  triggerHandler: triggerHandler,
29
28
  inputMethod: inputMethod,
@@ -31,28 +30,37 @@ export var openTypeAheadAtCursor = function openTypeAheadAtCursor(_ref) {
31
30
  })(tr);
32
31
  var selection = tr.selection;
33
32
 
34
- if (!(selection instanceof TextSelection)) {
33
+ if (!(selection instanceof TextSelection || selection instanceof GapCursorSelection)) {
35
34
  return tr;
36
35
  }
37
36
 
38
- if (!selection.$cursor) {
39
- tr.deleteSelection();
40
- return tr;
41
- } // Search & Destroy placeholder
37
+ if (selection instanceof GapCursorSelection) {
38
+ // Create space for the typeahead menu in gap cursor
39
+ tr.insertText(' '); // delete 1 pos before wherever selection is now - that will delete the empty space
40
+
41
+ tr.delete(tr.selection.from - 1, tr.selection.from);
42
+ } else {
43
+ var _selection$$head, _selection$$head$pare, _selection$$head$pare2, _selection$$head$pare3;
42
44
 
45
+ if (!selection.$cursor) {
46
+ tr.deleteSelection();
47
+ return tr;
48
+ } // Search & Destroy placeholder
43
49
 
44
- var cursorPos = selection.$cursor.pos;
45
- var nodeAtCursor = tr.doc.nodeAt(cursorPos);
46
- var isPlaceholderAtCursorPosition = nodeAtCursor && nodeAtCursor.type.name === 'placeholder';
47
50
 
48
- if (nodeAtCursor && isPlaceholderAtCursorPosition) {
49
- tr.delete(cursorPos, cursorPos + nodeAtCursor.nodeSize);
50
- } // ME-2375 remove the superfluous '@' inserted before decoration
51
- // by composition (https://github.com/ProseMirror/prosemirror/issues/903)
51
+ var cursorPos = selection.$cursor.pos;
52
+ var nodeAtCursor = tr.doc.nodeAt(cursorPos);
53
+ var isPlaceholderAtCursorPosition = nodeAtCursor && nodeAtCursor.type.name === 'placeholder';
52
54
 
55
+ if (nodeAtCursor && isPlaceholderAtCursorPosition) {
56
+ tr.delete(cursorPos, cursorPos + nodeAtCursor.nodeSize);
57
+ } // ME-2375 remove the superfluous '@' inserted before decoration
58
+ // by composition (https://github.com/ProseMirror/prosemirror/issues/903)
53
59
 
54
- if (browser.chrome && browser.android && cursorPos > 2 && !!(selection !== null && selection !== void 0 && (_selection$$head = selection.$head) !== null && _selection$$head !== void 0 && (_selection$$head$pare = _selection$$head.parent) !== null && _selection$$head$pare !== void 0 && _selection$$head$pare.textContent) && (_selection$$head$pare2 = (_selection$$head$pare3 = selection.$head.parent.textContent).endsWith) !== null && _selection$$head$pare2 !== void 0 && _selection$$head$pare2.call(_selection$$head$pare3, '@')) {
55
- tr.delete(cursorPos - 1, cursorPos);
60
+
61
+ if (browser.chrome && browser.android && cursorPos > 2 && !!(selection !== null && selection !== void 0 && (_selection$$head = selection.$head) !== null && _selection$$head !== void 0 && (_selection$$head$pare = _selection$$head.parent) !== null && _selection$$head$pare !== void 0 && _selection$$head$pare.textContent) && (_selection$$head$pare2 = (_selection$$head$pare3 = selection.$head.parent.textContent).endsWith) !== null && _selection$$head$pare2 !== void 0 && _selection$$head$pare2.call(_selection$$head$pare3, '@')) {
62
+ tr.delete(cursorPos - 1, cursorPos);
63
+ }
56
64
  }
57
65
 
58
66
  return tr;