@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
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconListOrdered() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconList() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconMention() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconPanelError() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconPanelNote() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconPanelSuccess() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconPanelWarning() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconPanel() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconQuote() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,3 +1,6 @@
1
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4138
2
+
3
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
1
4
  import React from 'react';
2
5
  export default function IconStatus() {
3
6
  return /*#__PURE__*/React.createElement("svg", {
@@ -1,12 +1,13 @@
1
- import { Selection, TextSelection, NodeSelection } from 'prosemirror-state';
2
- import { removeNodeBefore, findDomRefAtPos } from 'prosemirror-utils';
1
+ import { NodeSelection, Selection, TextSelection } from 'prosemirror-state';
2
+ import { findDomRefAtPos, removeNodeBefore } from 'prosemirror-utils';
3
3
  import { ZERO_WIDTH_SPACE } from '@atlaskit/editor-common/utils';
4
4
  import { Direction, isBackward, isForward } from './direction';
5
5
  import { GapCursorSelection, Side } from './selection';
6
- import { isTextBlockNearPos, getMediaNearPos } from './utils';
6
+ import { getMediaNearPos, isTextBlockNearPos } from './utils';
7
7
  import { isValidTargetNode } from './utils/is-valid-target-node';
8
8
  import { atTheBeginningOfDoc, atTheEndOfDoc } from '../../../utils/prosemirror/position';
9
9
  import { gapCursorPluginKey } from '../pm-plugins/gap-cursor-plugin-key';
10
+ import { isPositionNearTableRow } from '../../../utils/table';
10
11
  const mapDirection = {
11
12
  [Direction.LEFT]: -1,
12
13
  [Direction.RIGHT]: 1,
@@ -64,10 +65,30 @@ function shouldHandleMediaGapCursor(dir, state) {
64
65
  return true;
65
66
  }
66
67
 
68
+ export const shouldSkipGapCursor = (direction, state, $pos) => {
69
+ const {
70
+ doc,
71
+ schema
72
+ } = state;
73
+
74
+ switch (direction) {
75
+ case Direction.UP:
76
+ if (atTheBeginningOfDoc(state)) {
77
+ return false;
78
+ }
79
+
80
+ return isPositionNearTableRow($pos, schema, 'before') || isTextBlockNearPos(doc, schema, $pos, -1);
81
+
82
+ case Direction.DOWN:
83
+ return atTheEndOfDoc(state) || isTextBlockNearPos(doc, schema, $pos, 1) || isPositionNearTableRow($pos, schema, 'after');
84
+
85
+ default:
86
+ return false;
87
+ }
88
+ };
67
89
  export const arrow = (dir, endOfTextblock) => (state, dispatch, view) => {
68
90
  const {
69
91
  doc,
70
- schema,
71
92
  selection,
72
93
  tr
73
94
  } = state;
@@ -81,7 +102,7 @@ export const arrow = (dir, endOfTextblock) => (state, dispatch, view) => {
81
102
  } // UP/DOWN jumps to the nearest texblock skipping gapcursor whenever possible
82
103
 
83
104
 
84
- if (dir === Direction.UP && !atTheBeginningOfDoc(state) && isTextBlockNearPos(doc, schema, $pos, -1) || dir === Direction.DOWN && (atTheEndOfDoc(state) || isTextBlockNearPos(doc, schema, $pos, 1))) {
105
+ if (shouldSkipGapCursor(dir, state, $pos)) {
85
106
  return false;
86
107
  } // otherwise resolve previous/next position
87
108
 
@@ -32,10 +32,22 @@ export class ToolbarTextColor extends React.Component {
32
32
  isOpen: false
33
33
  });
34
34
 
35
+ _defineProperty(this, "toolbarItemRef", /*#__PURE__*/React.createRef());
36
+
35
37
  _defineProperty(this, "changeColor", color => commands.changeColor(color)(this.props.editorView.state, this.props.editorView.dispatch));
36
38
 
39
+ _defineProperty(this, "onOpenChange", attrs => {
40
+ this.handleOpenChange({
41
+ isOpen: attrs.isOpen,
42
+ logCloseEvent: true,
43
+ event: attrs.event
44
+ });
45
+ });
46
+
37
47
  _defineProperty(this, "changeTextColor", (color, disabled) => {
38
48
  if (!disabled) {
49
+ var _this$props$editorVie;
50
+
39
51
  const {
40
52
  pluginState: {
41
53
  palette,
@@ -54,7 +66,9 @@ export class ToolbarTextColor extends React.Component {
54
66
  isOpen: false,
55
67
  logCloseEvent: false
56
68
  });
57
- return this.changeColor(color);
69
+ this.changeColor(color); //To set the focus on the textcolor button when the menu is closed by 'Esc' only to meet aria guidelines
70
+
71
+ (_this$props$editorVie = this.props.editorView) === null || _this$props$editorVie === void 0 ? void 0 : _this$props$editorVie.focus();
58
72
  }
59
73
 
60
74
  return false;
@@ -69,7 +83,8 @@ export class ToolbarTextColor extends React.Component {
69
83
 
70
84
  _defineProperty(this, "handleOpenChange", ({
71
85
  isOpen,
72
- logCloseEvent
86
+ logCloseEvent,
87
+ event
73
88
  }) => {
74
89
  this.setState({
75
90
  isOpen
@@ -80,6 +95,12 @@ export class ToolbarTextColor extends React.Component {
80
95
  noSelect: isOpen === false
81
96
  }));
82
97
  }
98
+
99
+ if (!isOpen && event instanceof KeyboardEvent && (event === null || event === void 0 ? void 0 : event.key) === 'Escape') {
100
+ var _this$toolbarItemRef, _this$toolbarItemRef$;
101
+
102
+ (_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();
103
+ }
83
104
  });
84
105
 
85
106
  _defineProperty(this, "hide", e => {
@@ -94,8 +115,21 @@ export class ToolbarTextColor extends React.Component {
94
115
  this.setState({
95
116
  isOpen: false
96
117
  });
118
+
119
+ if (e instanceof KeyboardEvent && e.key === 'Escape') {
120
+ var _this$toolbarItemRef2, _this$toolbarItemRef3;
121
+
122
+ (_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();
123
+ }
97
124
  }
98
125
  });
126
+
127
+ _defineProperty(this, "hideonEsc", e => {
128
+ var _this$toolbarItemRef4, _this$toolbarItemRef5;
129
+
130
+ this.hide(e);
131
+ (_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();
132
+ });
99
133
  }
100
134
 
101
135
  render() {
@@ -137,9 +171,11 @@ export class ToolbarTextColor extends React.Component {
137
171
  scrollableElement: popupsScrollableElement,
138
172
  isOpen: isOpen && !pluginState.disabled,
139
173
  handleClickOutside: this.hide,
140
- handleEscapeKeydown: this.hide,
174
+ handleEscapeKeydown: this.hideonEsc,
141
175
  zIndex: akEditorMenuZIndex,
142
176
  fitWidth: fitWidth,
177
+ onOpenChange: this.onOpenChange,
178
+ closeonTab: true,
143
179
  trigger: jsx(ToolbarButton, {
144
180
  buttonId: TOOLBAR_BUTTON.TEXT_COLOR,
145
181
  spacing: isReducedSpacing ? 'none' : 'default',
@@ -150,6 +186,7 @@ export class ToolbarTextColor extends React.Component {
150
186
  "aria-haspopup": true,
151
187
  title: labelTextColor,
152
188
  onClick: this.toggleOpen,
189
+ ref: this.toolbarItemRef,
153
190
  iconBefore: jsx("div", {
154
191
  css: triggerWrapperStyles
155
192
  }, jsx("div", {
@@ -167,7 +204,8 @@ export class ToolbarTextColor extends React.Component {
167
204
  }, jsx(ColorPalette, {
168
205
  palette: palette,
169
206
  onClick: color => this.changeTextColor(color, pluginState.disabled),
170
- selectedColor: pluginState.color
207
+ selectedColor: pluginState.color,
208
+ textPalette: true
171
209
  }))), jsx("span", {
172
210
  css: separatorStyles
173
211
  }));
@@ -25,10 +25,15 @@ const createSteppedRainbow = colors => {
25
25
  }).join('\n')}
26
26
  );
27
27
  `;
28
- };
28
+ }; // TODO: https://product-fabric.atlassian.net/browse/DSP-4137
29
+
30
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
31
+
29
32
 
30
33
  const rainbow = createSteppedRainbow([colors.P300, colors.T300, colors.Y400, colors.R400]);
31
34
  const disabledRainbow = createSteppedRainbow([colors.N80, colors.N60, colors.N40, colors.N60]);
35
+ /* eslint-enable @atlaskit/design-system/ensure-design-token-usage */
36
+
32
37
  export const textColorIconWrapper = css`
33
38
  position: relative;
34
39
  `;
@@ -1,5 +1,8 @@
1
1
  import { N800 } from '@atlaskit/theme/colors';
2
2
  export const 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
  };
@@ -38,7 +38,6 @@ const createInsertCallback = ({
38
38
  editorState: state,
39
39
  handler,
40
40
  query,
41
- mode,
42
41
  wasInsertedBySpace,
43
42
  selectedIndex,
44
43
  textStartPosition,
@@ -149,9 +148,11 @@ export const insertTypeAheadItem = view => ({
149
148
 
150
149
  if (mode === SelectItemMode.SPACE) {
151
150
  text = text.trim().concat(' ');
152
- }
151
+ } // We want to always persist selectedIndex as -1 upon selecting an item from typeahead
152
+ // in order to retain exist focus behaviour when undoing
153
+
153
154
 
154
- const selectedIndex = Math.max(sourceListItem.indexOf(item), 0);
155
+ const selectedIndex = -1;
155
156
  const wasInsertedBySpace = mode === SelectItemMode.SPACE;
156
157
  const {
157
158
  selection: {
@@ -6,7 +6,7 @@
6
6
  *
7
7
  *
8
8
  */
9
- import React from 'react';
9
+ import React, { useCallback } from 'react';
10
10
  import { SelectItemMode } from '@atlaskit/editor-common/type-ahead';
11
11
  import { createPlugin } from './pm-plugins/main';
12
12
  import { createPlugin as createInsertItemPlugin } from './pm-plugins/insert-item-plugin';
@@ -37,7 +37,7 @@ const TypeAheadMenu = /*#__PURE__*/React.memo(({
37
37
  decorationSet,
38
38
  query
39
39
  } = typeAheadState;
40
- const [onItemInsert,, onItemMatch] = useItemInsert(triggerHandler, editorView, items);
40
+ const [onItemInsert, onTextInsert, onItemMatch] = useItemInsert(triggerHandler, editorView, items);
41
41
  const setSelectedItem = React.useCallback(({
42
42
  index: nextIndex
43
43
  }) => {
@@ -54,6 +54,18 @@ const TypeAheadMenu = /*#__PURE__*/React.memo(({
54
54
  });
55
55
  });
56
56
  }, [onItemInsert, query]);
57
+ const cancel = useCallback(({
58
+ setSelectionAt,
59
+ addPrefixTrigger,
60
+ forceFocusOnEditor
61
+ }) => {
62
+ const fullQuery = addPrefixTrigger ? `${triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.trigger}${query}` : query;
63
+ onTextInsert({
64
+ forceFocusOnEditor,
65
+ setSelectionAt,
66
+ text: fullQuery
67
+ });
68
+ }, [triggerHandler, onTextInsert, query]);
57
69
  React.useEffect(() => {
58
70
  if (!isOpen || !query) {
59
71
  return;
@@ -92,7 +104,8 @@ const TypeAheadMenu = /*#__PURE__*/React.memo(({
92
104
  setSelectedItem: setSelectedItem,
93
105
  onItemInsert: insertItem,
94
106
  decorationSet: decorationSet,
95
- isEmptyQuery: !query
107
+ isEmptyQuery: !query,
108
+ cancel: cancel
96
109
  });
97
110
  });
98
111
  /**
@@ -114,7 +127,7 @@ const typeAheadPlugin = options => {
114
127
 
115
128
  marks() {
116
129
  // We need to keep this to make sure
117
- // All documents with typeahead marks will be loaded normaly
130
+ // All documents with typeahead marks will be loaded normally
118
131
  return [{
119
132
  name: 'typeAheadQuery',
120
133
  mark: typeAheadQuery
@@ -8,16 +8,26 @@ export const 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 const openTypeAheadAtCursor = ({
22
23
  inputMethod,
23
24
  query
24
25
  }) => tr => {
25
- var _selection$$head, _selection$$head$pare, _selection$$head$pare2, _selection$$head$pare3;
26
-
27
26
  openTypeAhead({
28
27
  triggerHandler,
29
28
  inputMethod,
@@ -33,28 +32,37 @@ export const openTypeAheadAtCursor = ({
33
32
  selection
34
33
  } = tr;
35
34
 
36
- if (!(selection instanceof TextSelection)) {
35
+ if (!(selection instanceof TextSelection || selection instanceof GapCursorSelection)) {
37
36
  return tr;
38
37
  }
39
38
 
40
- if (!selection.$cursor) {
41
- tr.deleteSelection();
42
- return tr;
43
- } // Search & Destroy placeholder
39
+ if (selection instanceof GapCursorSelection) {
40
+ // Create space for the typeahead menu in gap cursor
41
+ tr.insertText(' '); // delete 1 pos before wherever selection is now - that will delete the empty space
42
+
43
+ tr.delete(tr.selection.from - 1, tr.selection.from);
44
+ } else {
45
+ var _selection$$head, _selection$$head$pare, _selection$$head$pare2, _selection$$head$pare3;
44
46
 
47
+ if (!selection.$cursor) {
48
+ tr.deleteSelection();
49
+ return tr;
50
+ } // Search & Destroy placeholder
45
51
 
46
- const cursorPos = selection.$cursor.pos;
47
- const nodeAtCursor = tr.doc.nodeAt(cursorPos);
48
- const isPlaceholderAtCursorPosition = nodeAtCursor && nodeAtCursor.type.name === 'placeholder';
49
52
 
50
- if (nodeAtCursor && isPlaceholderAtCursorPosition) {
51
- tr.delete(cursorPos, cursorPos + nodeAtCursor.nodeSize);
52
- } // ME-2375 remove the superfluous '@' inserted before decoration
53
- // by composition (https://github.com/ProseMirror/prosemirror/issues/903)
53
+ const cursorPos = selection.$cursor.pos;
54
+ const nodeAtCursor = tr.doc.nodeAt(cursorPos);
55
+ const isPlaceholderAtCursorPosition = nodeAtCursor && nodeAtCursor.type.name === 'placeholder';
54
56
 
57
+ if (nodeAtCursor && isPlaceholderAtCursorPosition) {
58
+ tr.delete(cursorPos, cursorPos + nodeAtCursor.nodeSize);
59
+ } // ME-2375 remove the superfluous '@' inserted before decoration
60
+ // by composition (https://github.com/ProseMirror/prosemirror/issues/903)
55
61
 
56
- 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, '@')) {
57
- tr.delete(cursorPos - 1, cursorPos);
62
+
63
+ 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, '@')) {
64
+ tr.delete(cursorPos - 1, cursorPos);
65
+ }
58
66
  }
59
67
 
60
68
  return tr;