@atlaskit/editor-core 166.0.3 → 167.0.1

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 (554) hide show
  1. package/.eslintrc.js +46 -1
  2. package/CHANGELOG.md +99 -0
  3. package/dist/cjs/actions/index.js +26 -2
  4. package/dist/cjs/create-editor/ReactEditorView.js +2 -0
  5. package/dist/cjs/create-editor/create-plugins-list.js +1 -2
  6. package/dist/cjs/editor.js +5 -2
  7. package/dist/cjs/keymaps/index.js +5 -1
  8. package/dist/cjs/labs/next/ContentComponents.js +8 -4
  9. package/dist/cjs/labs/next/full-page.js +14 -8
  10. package/dist/cjs/nodeviews/getInlineNodeViewProducer.js +7 -3
  11. package/dist/cjs/nodeviews/getInlineNodeViewProducer.styles.js +3 -1
  12. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +3 -1
  13. package/dist/cjs/plugins/analytics/types/enums.js +3 -0
  14. package/dist/cjs/plugins/annotation/pm-plugins/inline-comment.js +2 -2
  15. package/dist/cjs/plugins/annotation/pm-plugins/plugin-factory.js +0 -1
  16. package/dist/cjs/plugins/base/index.js +8 -17
  17. package/dist/cjs/plugins/base/pm-plugins/better-type-history.js +3 -12
  18. package/dist/cjs/plugins/base/pm-plugins/inline-cursor-target.js +71 -16
  19. package/dist/cjs/plugins/block-type/commands/block-type.js +32 -22
  20. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/styled.js +4 -2
  21. package/dist/cjs/plugins/breakout/ui/LayoutButton.js +4 -11
  22. package/dist/cjs/plugins/card/styles.js +1 -1
  23. package/dist/cjs/plugins/card/ui/LinkToolbarIconDropdown.js +2 -2
  24. package/dist/cjs/plugins/code-block/actions.js +36 -2
  25. package/dist/cjs/plugins/code-block/nodeviews/code-block.js +70 -1
  26. package/dist/cjs/plugins/code-block/pm-plugins/actions.js +2 -1
  27. package/dist/cjs/plugins/code-block/pm-plugins/main.js +46 -8
  28. package/dist/cjs/plugins/code-block/styles.js +28 -24
  29. package/dist/cjs/plugins/collab-edit/index.js +2 -2
  30. package/dist/cjs/plugins/collab-edit/provider/channel.js +2 -2
  31. package/dist/cjs/plugins/collab-edit/styles.js +4 -2
  32. package/dist/cjs/plugins/collab-edit/ui/styles.js +4 -2
  33. package/dist/cjs/plugins/collab-edit/utils.js +1 -0
  34. package/dist/cjs/plugins/date/ui/DatePicker/index.js +3 -1
  35. package/dist/cjs/plugins/expand/ui/styles.js +16 -14
  36. package/dist/cjs/plugins/extension/commands.js +3 -2
  37. package/dist/cjs/plugins/extension/context-panel.js +23 -9
  38. package/dist/cjs/plugins/extension/plugin-factory.js +1 -4
  39. package/dist/cjs/plugins/extension/pm-plugins/main.js +13 -36
  40. package/dist/cjs/plugins/extension/ui/Extension/Extension/styles.js +6 -4
  41. package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/styles.js +3 -1
  42. package/dist/cjs/plugins/extension/ui/Extension/styles.js +7 -5
  43. package/dist/cjs/plugins/extension/ui/SaveIndicator/SaveIndicator.js +4 -2
  44. package/dist/cjs/plugins/extension/utils.js +12 -57
  45. package/dist/cjs/plugins/fake-text-cursor/styles.js +3 -1
  46. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
  47. package/dist/cjs/plugins/feedback-dialog/index.js +0 -1
  48. package/dist/cjs/plugins/find-replace/styles.js +2 -6
  49. package/dist/cjs/plugins/find-replace/ui/styles.js +4 -2
  50. package/dist/cjs/plugins/find-replace/utils/batch-decorations.js +0 -1
  51. package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +3 -1
  52. package/dist/cjs/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +3 -1
  53. package/dist/cjs/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +2 -2
  54. package/dist/cjs/plugins/floating-toolbar/ui/Separator.js +3 -1
  55. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +6 -4
  56. package/dist/cjs/plugins/floating-toolbar/ui/styles.js +12 -10
  57. package/dist/cjs/plugins/grid/styles.js +3 -1
  58. package/dist/cjs/plugins/help-dialog/ui/styles.js +9 -7
  59. package/dist/cjs/plugins/hyperlink/pm-plugins/input-rule.js +23 -1
  60. package/dist/cjs/plugins/hyperlink/pm-plugins/keymap.js +10 -1
  61. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +7 -5
  62. package/dist/cjs/plugins/hyperlink/utils.js +53 -2
  63. package/dist/cjs/plugins/insert-block/index.js +1 -1
  64. package/dist/cjs/plugins/jira-issue/nodeviews/jira-issue.js +4 -2
  65. package/dist/cjs/plugins/layout/styles.js +1 -1
  66. package/dist/cjs/plugins/macro/actions.js +2 -2
  67. package/dist/cjs/plugins/media/commands/helpers.js +10 -9
  68. package/dist/cjs/plugins/media/nodeviews/mediaInline.js +25 -6
  69. package/dist/cjs/plugins/media/nodeviews/mediaNodeView/media.js +6 -0
  70. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +2 -2
  71. package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -3
  72. package/dist/cjs/plugins/media/pm-plugins/main.js +1 -0
  73. package/dist/cjs/plugins/media/styles.js +1 -1
  74. package/dist/cjs/plugins/media/ui/CaptionPlaceholder/index.js +3 -1
  75. package/dist/cjs/plugins/media/ui/Media/DropPlaceholder.js +4 -2
  76. package/dist/cjs/plugins/media/ui/MediaLinkingToolbar.js +3 -1
  77. package/dist/cjs/plugins/media/ui/ResizableMediaSingle/index.js +2 -2
  78. package/dist/cjs/plugins/mentions/styles.js +3 -1
  79. package/dist/cjs/plugins/mentions/ui/InviteItem/index.js +3 -1
  80. package/dist/cjs/plugins/mentions/ui/InviteItem/styles.js +4 -2
  81. package/dist/cjs/plugins/panel/index.js +1 -0
  82. package/dist/cjs/plugins/panel/nodeviews/panel.js +4 -1
  83. package/dist/cjs/plugins/panel/pm-plugins/keymaps.js +21 -3
  84. package/dist/cjs/plugins/paste/handlers.js +23 -0
  85. package/dist/cjs/plugins/paste/linkify-md-plugin.js +7 -0
  86. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +9 -1
  87. package/dist/cjs/plugins/paste/pm-plugins/main.js +27 -1
  88. package/dist/cjs/plugins/placeholder/index.js +15 -3
  89. package/dist/cjs/plugins/placeholder/styles.js +3 -1
  90. package/dist/cjs/plugins/placeholder-text/styles.js +3 -1
  91. package/dist/cjs/plugins/selection/gap-cursor/styles.js +1 -1
  92. package/dist/cjs/plugins/selection/pm-plugins/gap-cursor-main.js +2 -2
  93. package/dist/cjs/plugins/status/ui/statusPicker.js +3 -3
  94. package/dist/cjs/plugins/table/index.js +14 -4
  95. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +6 -6
  96. package/dist/cjs/plugins/table/nodeviews/table.js +9 -4
  97. package/dist/cjs/plugins/table/pm-plugins/main.js +1 -4
  98. package/dist/cjs/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +118 -0
  99. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +2 -4
  100. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin.js +2 -5
  101. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -8
  102. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -3
  103. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +0 -3
  104. package/dist/cjs/plugins/table/transforms/column-width.js +1 -2
  105. package/dist/cjs/plugins/table/transforms/fix-tables.js +1 -3
  106. package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +4 -1
  107. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +3 -1
  108. package/dist/cjs/plugins/table/ui/common-styles.js +4 -2
  109. package/dist/cjs/plugins/table/ui/consts.js +14 -11
  110. package/dist/cjs/plugins/table/ui/ui-styles.js +17 -10
  111. package/dist/cjs/plugins/table/utils/decoration.js +3 -4
  112. package/dist/cjs/plugins/table/utils/paste.js +9 -9
  113. package/dist/cjs/plugins/text-formatting/pm-plugins/input-rule.js +1 -1
  114. package/dist/cjs/plugins/type-ahead/index.js +4 -3
  115. package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +3 -1
  116. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +4 -4
  117. package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +11 -9
  118. package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +73 -3
  119. package/dist/cjs/plugins/unsupported-content/styles.js +1 -1
  120. package/dist/cjs/ui/Addon/Dropdown/styles.js +3 -1
  121. package/dist/cjs/ui/Addon/DropdownItem/styles.js +3 -1
  122. package/dist/cjs/ui/Appearance/Chromeless.js +2 -1
  123. package/dist/cjs/ui/Appearance/Comment/Comment.js +10 -3
  124. package/dist/cjs/ui/Appearance/Comment/Toolbar.js +4 -2
  125. package/dist/cjs/ui/Appearance/FullPage/FullPage.js +5 -2
  126. package/dist/cjs/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
  127. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +12 -11
  128. package/dist/cjs/ui/Appearance/FullPage/MainToolbar.js +6 -3
  129. package/dist/cjs/ui/ChromeCollapsed/styles.js +1 -1
  130. package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +23 -16
  131. package/dist/cjs/ui/ConfigPanel/ConfigPanelFieldsLoader.js +2 -0
  132. package/dist/cjs/ui/ConfigPanel/Fields/CheckboxGroup.js +3 -1
  133. package/dist/cjs/ui/ConfigPanel/Fields/CustomSelect.js +2 -2
  134. package/dist/cjs/ui/ConfigPanel/Fields/Expand.js +3 -1
  135. package/dist/cjs/ui/ConfigPanel/Fields/Fieldset.js +3 -1
  136. package/dist/cjs/ui/ConfigPanel/Fields/UserSelect.js +2 -2
  137. package/dist/cjs/ui/ConfigPanel/Fields/common/RequiredIndicator.js +3 -1
  138. package/dist/cjs/ui/ConfigPanel/Header.js +4 -2
  139. package/dist/cjs/ui/ConfigPanel/NestedForms/RemovableField.js +4 -8
  140. package/dist/cjs/ui/ConfigPanel/transformers.js +2 -2
  141. package/dist/cjs/ui/ContentStyles/index.js +4 -2
  142. package/dist/cjs/ui/ContextPanel/index.js +3 -1
  143. package/dist/cjs/ui/DropdownMenu/index.js +5 -0
  144. package/dist/cjs/ui/ElementBrowser/InsertMenu.js +6 -4
  145. package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +4 -2
  146. package/dist/cjs/ui/ElementBrowser/components/CategoryList.js +4 -2
  147. package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +12 -5
  148. package/dist/cjs/ui/ElementBrowser/components/ElementList/EmptyState.js +3 -1
  149. package/dist/cjs/ui/ElementBrowser/components/ElementSearch.js +3 -1
  150. package/dist/cjs/ui/ElementBrowser/constants.js +3 -1
  151. package/dist/cjs/ui/FloatingToolbar/styles.js +2 -2
  152. package/dist/cjs/ui/LinkSearch/LinkSearchListItem.js +5 -3
  153. package/dist/cjs/ui/PanelTextInput/styles.js +3 -1
  154. package/dist/cjs/ui/PluginSlot/index.js +7 -4
  155. package/dist/cjs/ui/Toolbar/ToolbarInner.js +2 -1
  156. package/dist/cjs/ui/Toolbar/ToolbarWithSizeDetector.js +5 -2
  157. package/dist/cjs/ui/ToolbarFeedback/styles.js +5 -3
  158. package/dist/cjs/ui/WithFlash/index.js +4 -2
  159. package/dist/cjs/ui/styles.js +6 -4
  160. package/dist/cjs/utils/document.js +62 -6
  161. package/dist/cjs/utils/filter/privacy-filter.js +2 -2
  162. package/dist/cjs/utils/step.js +17 -1
  163. package/dist/cjs/version-wrapper.js +1 -1
  164. package/dist/cjs/version.json +1 -1
  165. package/dist/es2019/actions/index.js +25 -1
  166. package/dist/es2019/create-editor/ReactEditorView.js +2 -0
  167. package/dist/es2019/create-editor/create-plugins-list.js +1 -2
  168. package/dist/es2019/editor.js +5 -2
  169. package/dist/es2019/keymaps/index.js +5 -1
  170. package/dist/es2019/labs/next/ContentComponents.js +7 -2
  171. package/dist/es2019/labs/next/full-page.js +11 -8
  172. package/dist/es2019/nodeviews/getInlineNodeViewProducer.js +4 -3
  173. package/dist/es2019/nodeviews/getInlineNodeViewProducer.styles.js +16 -4
  174. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +2 -1
  175. package/dist/es2019/plugins/analytics/types/enums.js +3 -0
  176. package/dist/es2019/plugins/base/index.js +6 -15
  177. package/dist/es2019/plugins/base/pm-plugins/better-type-history.js +1 -11
  178. package/dist/es2019/plugins/base/pm-plugins/inline-cursor-target.js +72 -17
  179. package/dist/es2019/plugins/block-type/commands/block-type.js +25 -16
  180. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -2
  181. package/dist/es2019/plugins/breakout/ui/LayoutButton.js +6 -10
  182. package/dist/es2019/plugins/card/styles.js +1 -1
  183. package/dist/es2019/plugins/card/ui/LinkToolbarIconDropdown.js +2 -2
  184. package/dist/es2019/plugins/code-block/actions.js +32 -0
  185. package/dist/es2019/plugins/code-block/nodeviews/code-block.js +61 -1
  186. package/dist/es2019/plugins/code-block/pm-plugins/actions.js +2 -1
  187. package/dist/es2019/plugins/code-block/pm-plugins/main.js +37 -3
  188. package/dist/es2019/plugins/code-block/styles.js +30 -27
  189. package/dist/es2019/plugins/collab-edit/styles.js +3 -2
  190. package/dist/es2019/plugins/collab-edit/ui/styles.js +4 -3
  191. package/dist/es2019/plugins/collab-edit/utils.js +1 -0
  192. package/dist/es2019/plugins/date/ui/DatePicker/index.js +3 -2
  193. package/dist/es2019/plugins/expand/ui/styles.js +15 -14
  194. package/dist/es2019/plugins/extension/commands.js +3 -2
  195. package/dist/es2019/plugins/extension/context-panel.js +11 -3
  196. package/dist/es2019/plugins/extension/plugin-factory.js +1 -3
  197. package/dist/es2019/plugins/extension/pm-plugins/main.js +12 -38
  198. package/dist/es2019/plugins/extension/ui/Extension/Extension/styles.js +5 -4
  199. package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/styles.js +2 -1
  200. package/dist/es2019/plugins/extension/ui/Extension/styles.js +7 -6
  201. package/dist/es2019/plugins/extension/ui/SaveIndicator/SaveIndicator.js +4 -4
  202. package/dist/es2019/plugins/extension/utils.js +2 -37
  203. package/dist/es2019/plugins/fake-text-cursor/styles.js +3 -2
  204. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
  205. package/dist/es2019/plugins/find-replace/styles.js +4 -4
  206. package/dist/es2019/plugins/find-replace/ui/styles.js +3 -2
  207. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  208. package/dist/es2019/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +2 -1
  209. package/dist/es2019/plugins/floating-toolbar/ui/Separator.js +2 -1
  210. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +4 -4
  211. package/dist/es2019/plugins/floating-toolbar/ui/styles.js +11 -10
  212. package/dist/es2019/plugins/grid/styles.js +4 -2
  213. package/dist/es2019/plugins/help-dialog/ui/styles.js +10 -9
  214. package/dist/es2019/plugins/hyperlink/pm-plugins/input-rule.js +24 -2
  215. package/dist/es2019/plugins/hyperlink/pm-plugins/keymap.js +9 -1
  216. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +5 -4
  217. package/dist/es2019/plugins/hyperlink/utils.js +43 -2
  218. package/dist/es2019/plugins/insert-block/index.js +1 -1
  219. package/dist/es2019/plugins/jira-issue/nodeviews/jira-issue.js +6 -5
  220. package/dist/es2019/plugins/layout/styles.js +10 -7
  221. package/dist/es2019/plugins/media/commands/helpers.js +6 -8
  222. package/dist/es2019/plugins/media/nodeviews/mediaInline.js +21 -5
  223. package/dist/es2019/plugins/media/nodeviews/mediaNodeView/media.js +7 -0
  224. package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -4
  225. package/dist/es2019/plugins/media/pm-plugins/main.js +2 -0
  226. package/dist/es2019/plugins/media/styles.js +3 -3
  227. package/dist/es2019/plugins/media/ui/CaptionPlaceholder/index.js +2 -1
  228. package/dist/es2019/plugins/media/ui/Media/DropPlaceholder.js +4 -3
  229. package/dist/es2019/plugins/media/ui/MediaLinkingToolbar.js +2 -1
  230. package/dist/es2019/plugins/mentions/styles.js +5 -4
  231. package/dist/es2019/plugins/mentions/ui/InviteItem/index.js +2 -1
  232. package/dist/es2019/plugins/mentions/ui/InviteItem/styles.js +3 -2
  233. package/dist/es2019/plugins/panel/index.js +1 -0
  234. package/dist/es2019/plugins/panel/nodeviews/panel.js +4 -1
  235. package/dist/es2019/plugins/panel/pm-plugins/keymaps.js +22 -4
  236. package/dist/es2019/plugins/paste/handlers.js +23 -0
  237. package/dist/es2019/plugins/paste/linkify-md-plugin.js +7 -1
  238. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +4 -1
  239. package/dist/es2019/plugins/paste/pm-plugins/main.js +27 -2
  240. package/dist/es2019/plugins/placeholder/index.js +12 -1
  241. package/dist/es2019/plugins/placeholder/styles.js +3 -1
  242. package/dist/es2019/plugins/placeholder-text/styles.js +5 -4
  243. package/dist/es2019/plugins/selection/gap-cursor/styles.js +9 -9
  244. package/dist/es2019/plugins/selection/pm-plugins/gap-cursor-main.js +2 -2
  245. package/dist/es2019/plugins/status/ui/statusPicker.js +3 -3
  246. package/dist/es2019/plugins/table/index.js +13 -4
  247. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +6 -6
  248. package/dist/es2019/plugins/table/nodeviews/table.js +6 -2
  249. package/dist/es2019/plugins/table/pm-plugins/main.js +1 -4
  250. package/dist/es2019/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +106 -0
  251. package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +2 -4
  252. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin.js +2 -4
  253. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/misc.js +3 -7
  254. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -3
  255. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +0 -3
  256. package/dist/es2019/plugins/table/transforms/column-width.js +1 -2
  257. package/dist/es2019/plugins/table/transforms/fix-tables.js +1 -3
  258. package/dist/es2019/plugins/table/ui/FloatingContextualButton/styles.js +4 -2
  259. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/styles.js +4 -3
  260. package/dist/es2019/plugins/table/ui/common-styles.js +29 -27
  261. package/dist/es2019/plugins/table/ui/consts.js +15 -12
  262. package/dist/es2019/plugins/table/ui/ui-styles.js +28 -23
  263. package/dist/es2019/plugins/table/utils/decoration.js +1 -4
  264. package/dist/es2019/plugins/table/utils/paste.js +9 -9
  265. package/dist/es2019/plugins/text-formatting/pm-plugins/input-rule.js +1 -1
  266. package/dist/es2019/plugins/type-ahead/index.js +4 -3
  267. package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +2 -1
  268. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +4 -4
  269. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +10 -9
  270. package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +64 -6
  271. package/dist/es2019/plugins/unsupported-content/styles.js +1 -1
  272. package/dist/es2019/ui/Addon/Dropdown/styles.js +3 -2
  273. package/dist/es2019/ui/Addon/DropdownItem/styles.js +3 -2
  274. package/dist/es2019/ui/Appearance/Chromeless.js +2 -1
  275. package/dist/es2019/ui/Appearance/Comment/Comment.js +9 -4
  276. package/dist/es2019/ui/Appearance/Comment/Toolbar.js +4 -2
  277. package/dist/es2019/ui/Appearance/FullPage/FullPage.js +6 -2
  278. package/dist/es2019/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
  279. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +12 -11
  280. package/dist/es2019/ui/Appearance/FullPage/MainToolbar.js +7 -3
  281. package/dist/es2019/ui/ChromeCollapsed/styles.js +4 -3
  282. package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +10 -2
  283. package/dist/es2019/ui/ConfigPanel/ConfigPanelFieldsLoader.js +2 -0
  284. package/dist/es2019/ui/ConfigPanel/ErrorMessage/ErrorImage.js +3 -0
  285. package/dist/es2019/ui/ConfigPanel/Fields/CheckboxGroup.js +2 -1
  286. package/dist/es2019/ui/ConfigPanel/Fields/Expand.js +2 -1
  287. package/dist/es2019/ui/ConfigPanel/Fields/Fieldset.js +2 -1
  288. package/dist/es2019/ui/ConfigPanel/Fields/common/RequiredIndicator.js +2 -1
  289. package/dist/es2019/ui/ConfigPanel/Header.js +3 -2
  290. package/dist/es2019/ui/ConfigPanel/NestedForms/RemovableField.js +4 -3
  291. package/dist/es2019/ui/ContentStyles/index.js +3 -2
  292. package/dist/es2019/ui/ContextPanel/index.js +2 -1
  293. package/dist/es2019/ui/DropdownMenu/index.js +5 -0
  294. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +6 -3
  295. package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +3 -2
  296. package/dist/es2019/ui/ElementBrowser/components/CategoryList.js +3 -2
  297. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +12 -5
  298. package/dist/es2019/ui/ElementBrowser/components/ElementList/EmptyState.js +2 -1
  299. package/dist/es2019/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +3 -0
  300. package/dist/es2019/ui/ElementBrowser/components/ElementSearch.js +2 -1
  301. package/dist/es2019/ui/ElementBrowser/constants.js +3 -1
  302. package/dist/es2019/ui/FloatingToolbar/styles.js +4 -4
  303. package/dist/es2019/ui/LinkSearch/LinkSearchListItem.js +4 -3
  304. package/dist/es2019/ui/PanelTextInput/styles.js +5 -5
  305. package/dist/es2019/ui/PluginSlot/index.js +7 -4
  306. package/dist/es2019/ui/Toolbar/ToolbarInner.js +2 -1
  307. package/dist/es2019/ui/Toolbar/ToolbarWithSizeDetector.js +4 -2
  308. package/dist/es2019/ui/ToolbarFeedback/styles.js +5 -4
  309. package/dist/es2019/ui/WithFlash/index.js +4 -3
  310. package/dist/es2019/ui/styles.js +10 -9
  311. package/dist/es2019/utils/document.js +58 -5
  312. package/dist/es2019/utils/filter/privacy-filter.js +1 -1
  313. package/dist/es2019/utils/step.js +12 -1
  314. package/dist/es2019/version-wrapper.js +1 -1
  315. package/dist/es2019/version.json +1 -1
  316. package/dist/esm/actions/index.js +27 -2
  317. package/dist/esm/create-editor/ErrorBoundary.js +1 -1
  318. package/dist/esm/create-editor/ReactEditorView.js +2 -0
  319. package/dist/esm/create-editor/create-plugins-list.js +1 -2
  320. package/dist/esm/editor.js +6 -4
  321. package/dist/esm/keymaps/index.js +5 -1
  322. package/dist/esm/labs/next/ContentComponents.js +8 -4
  323. package/dist/esm/labs/next/full-page.js +11 -8
  324. package/dist/esm/nodeviews/getInlineNodeViewProducer.js +4 -3
  325. package/dist/esm/nodeviews/getInlineNodeViewProducer.styles.js +3 -2
  326. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +2 -1
  327. package/dist/esm/plugins/analytics/types/enums.js +3 -0
  328. package/dist/esm/plugins/annotation/pm-plugins/inline-comment.js +1 -1
  329. package/dist/esm/plugins/annotation/pm-plugins/plugin-factory.js +0 -1
  330. package/dist/esm/plugins/base/index.js +8 -17
  331. package/dist/esm/plugins/base/pm-plugins/better-type-history.js +1 -11
  332. package/dist/esm/plugins/base/pm-plugins/inline-cursor-target.js +72 -17
  333. package/dist/esm/plugins/block-type/commands/block-type.js +31 -22
  334. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -2
  335. package/dist/esm/plugins/breakout/ui/LayoutButton.js +3 -5
  336. package/dist/esm/plugins/card/styles.js +1 -1
  337. package/dist/esm/plugins/card/ui/LinkToolbarIconDropdown.js +2 -2
  338. package/dist/esm/plugins/code-block/actions.js +28 -0
  339. package/dist/esm/plugins/code-block/nodeviews/code-block.js +67 -1
  340. package/dist/esm/plugins/code-block/pm-plugins/actions.js +2 -1
  341. package/dist/esm/plugins/code-block/pm-plugins/main.js +39 -3
  342. package/dist/esm/plugins/code-block/styles.js +27 -23
  343. package/dist/esm/plugins/collab-edit/index.js +1 -1
  344. package/dist/esm/plugins/collab-edit/provider/channel.js +1 -1
  345. package/dist/esm/plugins/collab-edit/styles.js +3 -2
  346. package/dist/esm/plugins/collab-edit/ui/styles.js +3 -2
  347. package/dist/esm/plugins/collab-edit/utils.js +2 -0
  348. package/dist/esm/plugins/custom-autoformat/doc.js +1 -1
  349. package/dist/esm/plugins/custom-autoformat/index.js +1 -1
  350. package/dist/esm/plugins/date/ui/DatePicker/index.js +2 -1
  351. package/dist/esm/plugins/expand/ui/styles.js +15 -14
  352. package/dist/esm/plugins/extension/actions.js +1 -1
  353. package/dist/esm/plugins/extension/commands.js +3 -2
  354. package/dist/esm/plugins/extension/context-panel.js +22 -8
  355. package/dist/esm/plugins/extension/plugin-factory.js +1 -3
  356. package/dist/esm/plugins/extension/pm-plugins/main.js +12 -35
  357. package/dist/esm/plugins/extension/ui/Extension/Extension/styles.js +5 -4
  358. package/dist/esm/plugins/extension/ui/Extension/ExtensionComponent.js +1 -1
  359. package/dist/esm/plugins/extension/ui/Extension/InlineExtension/styles.js +2 -1
  360. package/dist/esm/plugins/extension/ui/Extension/styles.js +6 -5
  361. package/dist/esm/plugins/extension/ui/SaveIndicator/SaveIndicator.js +3 -2
  362. package/dist/esm/plugins/extension/utils.js +9 -51
  363. package/dist/esm/plugins/fake-text-cursor/styles.js +2 -1
  364. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
  365. package/dist/esm/plugins/feedback-dialog/index.js +1 -2
  366. package/dist/esm/plugins/feedback-dialog/loadJiraCollectorDialogScript.js +1 -1
  367. package/dist/esm/plugins/find-replace/styles.js +3 -3
  368. package/dist/esm/plugins/find-replace/ui/styles.js +3 -2
  369. package/dist/esm/plugins/find-replace/utils/batch-decorations.js +1 -2
  370. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  371. package/dist/esm/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +2 -1
  372. package/dist/esm/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +1 -1
  373. package/dist/esm/plugins/floating-toolbar/ui/Separator.js +2 -1
  374. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +5 -4
  375. package/dist/esm/plugins/floating-toolbar/ui/styles.js +11 -10
  376. package/dist/esm/plugins/grid/styles.js +2 -1
  377. package/dist/esm/plugins/help-dialog/ui/styles.js +8 -7
  378. package/dist/esm/plugins/hyperlink/HyperlinkToolbarAppearance.js +1 -1
  379. package/dist/esm/plugins/hyperlink/pm-plugins/input-rule.js +24 -2
  380. package/dist/esm/plugins/hyperlink/pm-plugins/keymap.js +9 -1
  381. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +5 -5
  382. package/dist/esm/plugins/hyperlink/utils.js +44 -2
  383. package/dist/esm/plugins/image-upload/pm-plugins/main.js +1 -1
  384. package/dist/esm/plugins/insert-block/index.js +1 -1
  385. package/dist/esm/plugins/jira-issue/nodeviews/jira-issue.js +3 -2
  386. package/dist/esm/plugins/layout/styles.js +1 -1
  387. package/dist/esm/plugins/macro/actions.js +1 -1
  388. package/dist/esm/plugins/media/commands/helpers.js +6 -8
  389. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +1 -1
  390. package/dist/esm/plugins/media/nodeviews/mediaInline.js +23 -6
  391. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +1 -1
  392. package/dist/esm/plugins/media/nodeviews/mediaNodeView/media.js +8 -1
  393. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +1 -1
  394. package/dist/esm/plugins/media/picker-facade.js +1 -1
  395. package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +4 -3
  396. package/dist/esm/plugins/media/pm-plugins/main.js +3 -1
  397. package/dist/esm/plugins/media/styles.js +1 -1
  398. package/dist/esm/plugins/media/toolbar/utils.js +1 -1
  399. package/dist/esm/plugins/media/ui/CaptionPlaceholder/index.js +2 -1
  400. package/dist/esm/plugins/media/ui/Media/DropPlaceholder.js +3 -2
  401. package/dist/esm/plugins/media/ui/MediaLinkingToolbar.js +2 -1
  402. package/dist/esm/plugins/media/ui/MediaPicker/PickerFacadeProvider.js +1 -1
  403. package/dist/esm/plugins/media/ui/ResizableMediaSingle/index.js +1 -1
  404. package/dist/esm/plugins/media/utils/check-media-type.js +1 -1
  405. package/dist/esm/plugins/mentions/styles.js +2 -1
  406. package/dist/esm/plugins/mentions/ui/InviteItem/index.js +2 -1
  407. package/dist/esm/plugins/mentions/ui/InviteItem/styles.js +3 -2
  408. package/dist/esm/plugins/panel/index.js +1 -0
  409. package/dist/esm/plugins/panel/nodeviews/panel.js +4 -1
  410. package/dist/esm/plugins/panel/pm-plugins/keymaps.js +22 -4
  411. package/dist/esm/plugins/paste/handlers.js +22 -1
  412. package/dist/esm/plugins/paste/linkify-md-plugin.js +7 -1
  413. package/dist/esm/plugins/paste/pm-plugins/analytics.js +6 -1
  414. package/dist/esm/plugins/paste/pm-plugins/main.js +28 -3
  415. package/dist/esm/plugins/placeholder/index.js +12 -1
  416. package/dist/esm/plugins/placeholder/styles.js +2 -1
  417. package/dist/esm/plugins/placeholder-text/styles.js +2 -1
  418. package/dist/esm/plugins/quick-insert/index.js +1 -1
  419. package/dist/esm/plugins/selection/gap-cursor/styles.js +1 -1
  420. package/dist/esm/plugins/selection/pm-plugins/gap-cursor-main.js +2 -2
  421. package/dist/esm/plugins/status/ui/statusPicker.js +2 -2
  422. package/dist/esm/plugins/table/index.js +13 -4
  423. package/dist/esm/plugins/table/nodeviews/TableComponent.js +6 -6
  424. package/dist/esm/plugins/table/nodeviews/table.js +6 -2
  425. package/dist/esm/plugins/table/pm-plugins/main.js +1 -4
  426. package/dist/esm/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +102 -0
  427. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +2 -4
  428. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin.js +2 -5
  429. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -8
  430. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -3
  431. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +0 -3
  432. package/dist/esm/plugins/table/transforms/column-width.js +1 -2
  433. package/dist/esm/plugins/table/transforms/fix-tables.js +1 -3
  434. package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +3 -1
  435. package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +2 -1
  436. package/dist/esm/plugins/table/ui/common-styles.js +4 -2
  437. package/dist/esm/plugins/table/ui/consts.js +15 -12
  438. package/dist/esm/plugins/table/ui/ui-styles.js +15 -10
  439. package/dist/esm/plugins/table/utils/decoration.js +3 -4
  440. package/dist/esm/plugins/table/utils/paste.js +9 -9
  441. package/dist/esm/plugins/tasks-and-decisions/ui/Task/task-item-with-providers.js +1 -1
  442. package/dist/esm/plugins/text-formatting/pm-plugins/input-rule.js +1 -1
  443. package/dist/esm/plugins/type-ahead/index.js +4 -3
  444. package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +2 -1
  445. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +4 -4
  446. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +10 -9
  447. package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +71 -5
  448. package/dist/esm/plugins/unsupported-content/styles.js +1 -1
  449. package/dist/esm/ui/Addon/Dropdown/styles.js +2 -1
  450. package/dist/esm/ui/Addon/DropdownItem/styles.js +2 -1
  451. package/dist/esm/ui/Appearance/Chromeless.js +2 -1
  452. package/dist/esm/ui/Appearance/Comment/Comment.js +10 -3
  453. package/dist/esm/ui/Appearance/Comment/Toolbar.js +3 -2
  454. package/dist/esm/ui/Appearance/FullPage/FullPage.js +6 -2
  455. package/dist/esm/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
  456. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +12 -11
  457. package/dist/esm/ui/Appearance/FullPage/MainToolbar.js +5 -3
  458. package/dist/esm/ui/ChromeCollapsed/styles.js +1 -1
  459. package/dist/esm/ui/ConfigPanel/ConfigPanel.js +22 -15
  460. package/dist/esm/ui/ConfigPanel/ConfigPanelFieldsLoader.js +2 -0
  461. package/dist/esm/ui/ConfigPanel/ErrorMessage/ErrorImage.js +3 -0
  462. package/dist/esm/ui/ConfigPanel/Fields/CheckboxGroup.js +2 -1
  463. package/dist/esm/ui/ConfigPanel/Fields/CustomSelect.js +1 -1
  464. package/dist/esm/ui/ConfigPanel/Fields/Expand.js +2 -1
  465. package/dist/esm/ui/ConfigPanel/Fields/Fieldset.js +2 -1
  466. package/dist/esm/ui/ConfigPanel/Fields/UserSelect.js +1 -1
  467. package/dist/esm/ui/ConfigPanel/Fields/common/RequiredIndicator.js +2 -1
  468. package/dist/esm/ui/ConfigPanel/FormErrorBoundary.js +1 -1
  469. package/dist/esm/ui/ConfigPanel/Header.js +3 -2
  470. package/dist/esm/ui/ConfigPanel/NestedForms/RemovableField.js +3 -2
  471. package/dist/esm/ui/ConfigPanel/transformers.js +1 -1
  472. package/dist/esm/ui/ContentStyles/index.js +3 -2
  473. package/dist/esm/ui/ContextPanel/index.js +2 -1
  474. package/dist/esm/ui/DropdownMenu/index.js +5 -0
  475. package/dist/esm/ui/ElementBrowser/InsertMenu.js +5 -4
  476. package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +3 -2
  477. package/dist/esm/ui/ElementBrowser/components/CategoryList.js +3 -2
  478. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +11 -5
  479. package/dist/esm/ui/ElementBrowser/components/ElementList/EmptyState.js +2 -1
  480. package/dist/esm/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +3 -0
  481. package/dist/esm/ui/ElementBrowser/components/ElementSearch.js +2 -1
  482. package/dist/esm/ui/ElementBrowser/constants.js +3 -1
  483. package/dist/esm/ui/FloatingToolbar/styles.js +3 -3
  484. package/dist/esm/ui/LinkSearch/LinkSearchListItem.js +4 -3
  485. package/dist/esm/ui/LinkSearch/index.js +1 -1
  486. package/dist/esm/ui/PanelTextInput/styles.js +4 -3
  487. package/dist/esm/ui/PluginSlot/index.js +7 -4
  488. package/dist/esm/ui/Toolbar/ToolbarInner.js +2 -1
  489. package/dist/esm/ui/Toolbar/ToolbarWithSizeDetector.js +4 -2
  490. package/dist/esm/ui/ToolbarFeedback/index.js +1 -1
  491. package/dist/esm/ui/ToolbarFeedback/styles.js +4 -3
  492. package/dist/esm/ui/WithFlash/index.js +3 -2
  493. package/dist/esm/ui/styles.js +5 -4
  494. package/dist/esm/utils/action.js +1 -1
  495. package/dist/esm/utils/clipboard.js +1 -1
  496. package/dist/esm/utils/document.js +59 -5
  497. package/dist/esm/utils/extensions.js +1 -1
  498. package/dist/esm/utils/filter/privacy-filter.js +1 -1
  499. package/dist/esm/utils/step.js +12 -1
  500. package/dist/esm/version-wrapper.js +1 -1
  501. package/dist/esm/version.json +1 -1
  502. package/dist/types/actions/index.d.ts +6 -0
  503. package/dist/types/labs/next/ContentComponents.d.ts +7 -1
  504. package/dist/types/nodeviews/getInlineNodeViewProducer.d.ts +1 -0
  505. package/dist/types/plugins/analytics/types/enums.d.ts +3 -0
  506. package/dist/types/plugins/analytics/types/general-events.d.ts +7 -1
  507. package/dist/types/plugins/base/pm-plugins/inline-cursor-target.d.ts +1 -1
  508. package/dist/types/plugins/code-block/actions.d.ts +2 -0
  509. package/dist/types/plugins/code-block/nodeviews/code-block.d.ts +2 -0
  510. package/dist/types/plugins/code-block/pm-plugins/actions.d.ts +1 -0
  511. package/dist/types/plugins/code-block/pm-plugins/main-state.d.ts +1 -0
  512. package/dist/types/plugins/extension/commands.d.ts +1 -1
  513. package/dist/types/plugins/extension/pm-plugins/main.d.ts +1 -2
  514. package/dist/types/plugins/extension/types.d.ts +1 -1
  515. package/dist/types/plugins/extension/ui/Extension/Extension/index.d.ts +6 -0
  516. package/dist/types/plugins/extension/utils.d.ts +1 -3
  517. package/dist/types/plugins/find-replace/styles.d.ts +0 -2
  518. package/dist/types/plugins/hyperlink/utils.d.ts +8 -0
  519. package/dist/types/plugins/media/commands/helpers.d.ts +2 -0
  520. package/dist/types/plugins/media/nodeviews/mediaNodeView/media.d.ts +1 -0
  521. package/dist/types/plugins/media/pm-plugins/main.d.ts +2 -1
  522. package/dist/types/plugins/media/pm-plugins/types.d.ts +2 -1
  523. package/dist/types/plugins/paste/handlers.d.ts +1 -0
  524. package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +1 -0
  525. package/dist/types/plugins/table/commands/misc.d.ts +0 -1
  526. package/dist/types/plugins/table/index.d.ts +0 -1
  527. package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +1 -0
  528. package/dist/types/plugins/table/nodeviews/types.d.ts +0 -1
  529. package/dist/types/plugins/table/pm-plugins/main.d.ts +1 -1
  530. package/dist/types/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.d.ts +15 -0
  531. package/dist/types/plugins/table/pm-plugins/table-resizing/event-handlers.d.ts +1 -1
  532. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin.d.ts +1 -1
  533. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +1 -2
  534. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +1 -1
  535. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/scale-table.d.ts +0 -1
  536. package/dist/types/plugins/table/transforms/fix-tables.d.ts +0 -1
  537. package/dist/types/plugins/table/types.d.ts +0 -1
  538. package/dist/types/plugins/table/ui/consts.d.ts +9 -9
  539. package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +2 -0
  540. package/dist/types/plugins/type-ahead/ui/TypeAheadListItem.d.ts +4 -4
  541. package/dist/types/types/editor-appearance-component.d.ts +0 -1
  542. package/dist/types/types/editor-props.d.ts +4 -0
  543. package/dist/types/types/feature-flags.d.ts +8 -0
  544. package/dist/types/types/ui-components.d.ts +1 -0
  545. package/dist/types/ui/Appearance/FullPage/FullPage.d.ts +1 -0
  546. package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -0
  547. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +3 -2
  548. package/dist/types/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +3 -2
  549. package/dist/types/ui/PluginSlot/index.d.ts +1 -0
  550. package/dist/types/ui/Toolbar/toolbar-types.d.ts +1 -0
  551. package/dist/types/utils/document.d.ts +1 -0
  552. package/dist/types/utils/step.d.ts +1 -0
  553. package/docs/0-intro.tsx +12 -4
  554. package/package.json +22 -22
@@ -1,7 +1,7 @@
1
1
  import { DecorationSet, Decoration } from 'prosemirror-view';
2
2
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
3
  import { PluginKey } from 'prosemirror-state';
4
- import { ZERO_WIDTH_SPACE } from '@atlaskit/editor-common/utils';
4
+ import { ZERO_WIDTH_SPACE, browser } from '@atlaskit/editor-common/utils';
5
5
  import { isTextSelection } from '../../../utils';
6
6
  export const inlineCursorTargetStateKey = new PluginKey('inlineCursorTargetPlugin');
7
7
  export const isInlineNodeView = node => {
@@ -23,13 +23,35 @@ export default (() => {
23
23
  const {
24
24
  $from,
25
25
  $to
26
- } = selection;
27
-
28
- if (selection && isTextSelection(selection)) {
26
+ } = selection; // In Safari, if the cursor target is to the right of the cursor it will block selections
27
+ // made with shift + arrowRight and vice versa for shift + arrowLeft. This is due to a
28
+ // contenteditable bug in safari, where editable elements block the selection but we need
29
+ // the cursor target to be editable for the following:
30
+ // - Ability to navigate with down/up arrows when between inline nodes
31
+ // - Ability to navigate with down/up arrows when between the start of a paragraph & an inline node
32
+ // - Ability to click and drag to select an inline node if it is the first node
33
+ // To prevent blocking the selection, we check handleDOMEvents and add meta to
34
+ // the transaction to prevent the plugin from making cursor target decorations.
35
+
36
+ const safariShiftSelection = tr.getMeta(inlineCursorTargetStateKey);
37
+
38
+ if (selection && isTextSelection(selection) && !safariShiftSelection) {
29
39
  const hasInlineNodeViewAfter = isInlineNodeView($from.nodeAfter);
30
40
  const hasInlineNodeViewBefore = isInlineNodeView($from.nodeBefore);
31
- const isAtStart = $from.parentOffset === 0 && isInlineNodeView($from.nodeAfter);
32
- const isAtEnd = doc.resolve($from.pos).node().lastChild === $from.nodeBefore && isInlineNodeView($from.nodeBefore); // Create editable decoration widgets either side of the cursor to allow
41
+ const isAtStartAndInlineNodeViewAfter = $from.parentOffset === 0 && isInlineNodeView($from.nodeAfter);
42
+ const isAtEndAndInlineNodeViewBefore = doc.resolve($from.pos).node().lastChild === $from.nodeBefore && isInlineNodeView($from.nodeBefore);
43
+
44
+ const createWidget = side => {
45
+ const node = document.createElement('span');
46
+ node.contentEditable = 'true';
47
+ node.appendChild(document.createTextNode(ZERO_WIDTH_SPACE));
48
+ node.className = 'cursor-target';
49
+ return Decoration.widget(selection.from, node, {
50
+ raw: true,
51
+ side: side === 'left' ? -1 : 1,
52
+ key: 'inlineCursor'
53
+ });
54
+ }; // Create editable decoration widgets either side of the cursor to allow
33
55
  // text input.
34
56
  // We check beforeInput events below to prevent content
35
57
  // being added to the decorations.
@@ -40,18 +62,8 @@ export default (() => {
40
62
  // - positioned between the beginning of another node and an inline node (firefox)
41
63
  // - positioned between an inline node and the end of a node (chrome)
42
64
 
43
- if ((hasInlineNodeViewAfter || isAtEnd) && (hasInlineNodeViewBefore || isAtStart)) {
44
- const createWidget = side => {
45
- const node = document.createElement('span');
46
- node.contentEditable = 'true';
47
- node.appendChild(document.createTextNode(ZERO_WIDTH_SPACE));
48
- return Decoration.widget(selection.from, node, {
49
- raw: true,
50
- side: side === 'left' ? -1 : 1,
51
- key: 'inlineCursor'
52
- });
53
- };
54
65
 
66
+ if (!browser.safari && (hasInlineNodeViewAfter || isAtEndAndInlineNodeViewBefore) && (hasInlineNodeViewBefore || isAtStartAndInlineNodeViewAfter)) {
55
67
  return {
56
68
  cursorTarget: {
57
69
  decorations: [createWidget('left'), createWidget('right')],
@@ -61,6 +73,34 @@ export default (() => {
61
73
  }
62
74
  }
63
75
  };
76
+ } // Only create one widget on the left or right of the cursor in Safari.
77
+ // This is to prevent the left key from being blocked when at the start of a paragraph,
78
+ // and the right key from being blocked when at the end of a paragraph. This also
79
+ // improves click and drag selections, making it easier to select the first node.
80
+
81
+
82
+ if (browser.safari) {
83
+ if (isAtEndAndInlineNodeViewBefore || hasInlineNodeViewBefore && hasInlineNodeViewAfter) {
84
+ return {
85
+ cursorTarget: {
86
+ decorations: [createWidget('left')],
87
+ positions: {
88
+ from: $from.pos,
89
+ to: $to.pos
90
+ }
91
+ }
92
+ };
93
+ } else if (isAtStartAndInlineNodeViewAfter) {
94
+ return {
95
+ cursorTarget: {
96
+ decorations: [createWidget('right')],
97
+ positions: {
98
+ from: $from.pos,
99
+ to: $to.pos
100
+ }
101
+ }
102
+ };
103
+ }
64
104
  }
65
105
  }
66
106
 
@@ -87,6 +127,21 @@ export default (() => {
87
127
  },
88
128
 
89
129
  handleDOMEvents: {
130
+ // Workaround to prevent the decorations created by the plugin from
131
+ // blocking shift + arrow left/right selections in safari. When
132
+ // a shift + arrow left/right event is detected, send meta data to the
133
+ // plugin to prevent it from creating decorations.
134
+ // TODO We may be able to remove this when playing the following ticket:
135
+ // https://product-fabric.atlassian.net/browse/ED-14938
136
+ keydown: (view, event) => {
137
+ if (browser.safari && event instanceof KeyboardEvent && event.shiftKey && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {
138
+ view.dispatch(view.state.tr.setMeta(inlineCursorTargetStateKey, {
139
+ cursorTarget: undefined
140
+ }));
141
+ }
142
+
143
+ return false;
144
+ },
90
145
  // Check the DOM to see if there are inline cursor targets
91
146
  // after a composition event ends. If so, manually insert the
92
147
  // event data in order to prevent contents ending up inside
@@ -7,6 +7,7 @@ import { shouldSplitSelectedNodeOnNodeInsertion } from '../../../utils/insert';
7
7
  import { withAnalytics, ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../../analytics';
8
8
  import { filterChildrenBetween } from '../../../utils';
9
9
  import { PanelType } from '@atlaskit/adf-schema';
10
+ import { CellSelection } from '@atlaskit/editor-tables';
10
11
  export function setBlockType(name) {
11
12
  return (state, dispatch) => {
12
13
  const {
@@ -48,16 +49,20 @@ export function setBlockTypeWithAnalytics(name, inputMethod) {
48
49
  export function setNormalText() {
49
50
  return function (state, dispatch) {
50
51
  const {
51
- tr,
52
- selection: {
53
- $from,
54
- $to
55
- },
56
- schema
52
+ selection,
53
+ schema,
54
+ tr
57
55
  } = state;
56
+ const ranges = selection instanceof CellSelection ? selection.ranges : [selection];
57
+ ranges.forEach(({
58
+ $from,
59
+ $to
60
+ }) => {
61
+ tr.setBlockType($from.pos, $to.pos, schema.nodes.paragraph);
62
+ });
58
63
 
59
64
  if (dispatch) {
60
- dispatch(tr.setBlockType($from.pos, $to.pos, schema.nodes.paragraph));
65
+ dispatch(tr);
61
66
  }
62
67
 
63
68
  return true;
@@ -109,18 +114,22 @@ export function setNormalTextWithAnalytics(inputMethod) {
109
114
  export function setHeading(level) {
110
115
  return function (state, dispatch) {
111
116
  const {
112
- tr,
113
- selection: {
114
- $from,
115
- $to
116
- },
117
- schema
117
+ selection,
118
+ schema,
119
+ tr
118
120
  } = state;
121
+ const ranges = selection instanceof CellSelection ? selection.ranges : [selection];
122
+ ranges.forEach(({
123
+ $from,
124
+ $to
125
+ }) => {
126
+ tr.setBlockType($from.pos, $to.pos, schema.nodes.heading, {
127
+ level
128
+ });
129
+ });
119
130
 
120
131
  if (dispatch) {
121
- dispatch(tr.setBlockType($from.pos, $to.pos, schema.nodes.heading, {
122
- level
123
- }));
132
+ dispatch(tr);
124
133
  }
125
134
 
126
135
  return true;
@@ -3,9 +3,10 @@ import { css } from '@emotion/react';
3
3
  import { N400 } from '@atlaskit/theme/colors';
4
4
  import { headingsSharedStyles } from '@atlaskit/editor-common/styles';
5
5
  import { shortcutStyle } from '../../../../ui/styles';
6
+ import { token } from '@atlaskit/tokens';
6
7
  export const blockTypeMenuItemStyle = (tagName, selected) => {
7
8
  // TEMP FIX: See https://product-fabric.atlassian.net/browse/ED-13878
8
- const selectedStyle = selected ? `${tagName} { color: white !important; }` : '';
9
+ const selectedStyle = selected ? `${tagName} { color: ${token('color.text.inverse', 'white')} !important; }` : '';
9
10
  return themeProps => css`
10
11
  ${headingsSharedStyles(themeProps)};
11
12
  > {
@@ -26,5 +27,5 @@ export const keyboardShortcut = css`
26
27
  margin-left: 16px;
27
28
  `;
28
29
  export const keyboardShortcutSelect = css`
29
- color: ${N400};
30
+ color: ${token('color.icon', N400)};
30
31
  `;
@@ -3,7 +3,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  /** @jsx jsx */
4
4
  import React from 'react';
5
5
  import { css, jsx } from '@emotion/react';
6
- import * as colors from '@atlaskit/theme/colors';
6
+ import { B300, N300, N20A } from '@atlaskit/theme/colors';
7
7
  import { injectIntl } from 'react-intl-next';
8
8
  import { findParentDomRefOfType, findDomRefAtPos } from 'prosemirror-utils';
9
9
  import { Popup } from '@atlaskit/editor-common/ui';
@@ -19,18 +19,14 @@ import { isBreakoutMarkAllowed } from '../utils/is-breakout-mark-allowed';
19
19
  import { getPluginState } from '../plugin-key';
20
20
  import { NodeSelection } from 'prosemirror-state';
21
21
  import { isSupportedNodeForBreakout } from '../utils/is-supported-node';
22
- const {
23
- B300,
24
- N300,
25
- N20A
26
- } = colors;
22
+ import { token } from '@atlaskit/tokens';
27
23
  const toolbarButtonWrapper = css`
28
24
  && button {
29
- background: ${N20A};
30
- color: ${N300};
25
+ background: ${token('color.background.neutral', N20A)};
26
+ color: ${token('color.icon', N300)};
31
27
  :hover {
32
- background: ${B300};
33
- color: white !important;
28
+ background: ${token('color.background.neutral.hovered', B300)};
29
+ color: ${token('color.icon', 'white')} !important;
34
30
  }
35
31
  }
36
32
  `;
@@ -46,7 +46,7 @@ export const smartCardStyles = css`
46
46
  .${SmartCardSharedCssClassName.LOADER_WRAPPER} > div {
47
47
  cursor: pointer;
48
48
  &:hover {
49
- background-color: ${N20};
49
+ background-color: ${token('color.background.neutral.subtle.hovered', N20)};
50
50
  }
51
51
  }
52
52
 
@@ -15,7 +15,7 @@ const iconBoxStyles = css({
15
15
  width: ICON_HEIGHT,
16
16
  height: ICON_WIDTH,
17
17
  overflow: 'hidden',
18
- border: '1px solid rgba(223, 225, 229, 0.5)'
18
+ border: `1px solid ${token('color.border', 'rgba(223, 225, 229, 0.5)')}`
19
19
  /* N60 at 50% */
20
20
  ,
21
21
  borderRadius: borderRadius(),
@@ -23,7 +23,7 @@ const iconBoxStyles = css({
23
23
  display: 'flex',
24
24
  justifyContent: 'center',
25
25
  alignItems: 'center',
26
- backgroundColor: token('color.background.default', 'white')
26
+ backgroundColor: token('elevation.surface', 'white')
27
27
  });
28
28
  const primitiveStyles = css({
29
29
  padding: '0.75rem',
@@ -101,5 +101,37 @@ export const resetCopiedState = (state, dispatch) => {
101
101
  }
102
102
  }
103
103
 
104
+ return true;
105
+ };
106
+ export const ignoreFollowingMutations = (state, dispatch) => {
107
+ const {
108
+ tr
109
+ } = state;
110
+ const ignoreFollowingMutationsTr = tr;
111
+ ignoreFollowingMutationsTr.setMeta(pluginKey, {
112
+ type: ACTIONS.SET_SHOULD_IGNORE_FOLLOWING_MUTATIONS,
113
+ data: true
114
+ });
115
+
116
+ if (dispatch) {
117
+ dispatch(ignoreFollowingMutationsTr);
118
+ }
119
+
120
+ return true;
121
+ };
122
+ export const resetShouldIgnoreFollowingMutations = (state, dispatch) => {
123
+ const {
124
+ tr
125
+ } = state;
126
+ const ignoreFollowingMutationsTr = tr;
127
+ ignoreFollowingMutationsTr.setMeta(pluginKey, {
128
+ type: ACTIONS.SET_SHOULD_IGNORE_FOLLOWING_MUTATIONS,
129
+ data: false
130
+ });
131
+
132
+ if (dispatch) {
133
+ dispatch(ignoreFollowingMutationsTr);
134
+ }
135
+
104
136
  return true;
105
137
  };
@@ -1,7 +1,10 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import rafSchedule from 'raf-schd';
3
+ import { browser } from '@atlaskit/editor-common/utils';
3
4
  import { DOMSerializer } from 'prosemirror-model';
4
5
  import { codeBlockClassNames } from '../ui/class-names';
6
+ import { resetShouldIgnoreFollowingMutations } from '../actions';
7
+ import { getPluginState } from '../pm-plugins/main-state';
5
8
  const MATCH_NEWLINES = new RegExp('\n', 'g');
6
9
 
7
10
  const toDOM = node => ['div', {
@@ -51,6 +54,52 @@ export class CodeBlockView {
51
54
  this.ensureLineNumbers();
52
55
  }
53
56
 
57
+ updateDOMAndSelection(savedInnerHTML, newCursorPosition) {
58
+ var _this$dom;
59
+
60
+ if ((_this$dom = this.dom) !== null && _this$dom !== void 0 && _this$dom.childNodes && this.dom.childNodes.length > 1) {
61
+ var _contentView$childNod;
62
+
63
+ const contentView = this.dom.childNodes[1];
64
+
65
+ if ((contentView === null || contentView === void 0 ? void 0 : (_contentView$childNod = contentView.childNodes) === null || _contentView$childNod === void 0 ? void 0 : _contentView$childNod.length) > 0) {
66
+ const codeElement = contentView.firstChild;
67
+ codeElement.innerHTML = savedInnerHTML; // We need to set cursor for the DOM update
68
+
69
+ const textElement = [...codeElement.childNodes].find(child => child.nodeName === '#text');
70
+ const sel = window.getSelection();
71
+ const range = document.createRange();
72
+ range.setStart(textElement, newCursorPosition);
73
+ range.collapse(true);
74
+ sel === null || sel === void 0 ? void 0 : sel.removeAllRanges();
75
+ sel === null || sel === void 0 ? void 0 : sel.addRange(range);
76
+ }
77
+ }
78
+ }
79
+
80
+ coalesceDOMElements() {
81
+ var _this$dom2;
82
+
83
+ if ((_this$dom2 = this.dom) !== null && _this$dom2 !== void 0 && _this$dom2.childNodes && this.dom.childNodes.length > 1) {
84
+ const contentView = this.dom.childNodes[1];
85
+
86
+ if (contentView !== null && contentView !== void 0 && contentView.childNodes && contentView.childNodes.length > 1) {
87
+ let savedInnerHTML = '';
88
+
89
+ while (contentView.childNodes.length > 1) {
90
+ const lastChild = contentView.lastChild;
91
+ savedInnerHTML = lastChild.innerHTML + savedInnerHTML;
92
+ contentView.removeChild(lastChild);
93
+ }
94
+
95
+ const firstChild = contentView.firstChild;
96
+ savedInnerHTML = firstChild.innerHTML + '\n' + savedInnerHTML;
97
+ const newCursorPosition = firstChild.innerHTML.length + 1;
98
+ setTimeout(this.updateDOMAndSelection.bind(this, savedInnerHTML, newCursorPosition), 20);
99
+ }
100
+ }
101
+ }
102
+
54
103
  update(node) {
55
104
  if (node.type !== this.node.type) {
56
105
  return false;
@@ -63,13 +112,24 @@ export class CodeBlockView {
63
112
 
64
113
  this.node = node;
65
114
  this.ensureLineNumbers();
115
+
116
+ if (browser.android) {
117
+ this.coalesceDOMElements();
118
+ resetShouldIgnoreFollowingMutations(this.view.state, this.view.dispatch);
119
+ }
66
120
  }
67
121
 
68
122
  return true;
69
123
  }
70
124
 
71
125
  ignoreMutation(record) {
72
- // Ensure updating the line-number gutter doesn't trigger reparsing the codeblock
126
+ const pluginState = getPluginState(this.view.state);
127
+
128
+ if (pluginState !== null && pluginState !== void 0 && pluginState.shouldIgnoreFollowingMutations) {
129
+ return true;
130
+ } // Ensure updating the line-number gutter doesn't trigger reparsing the codeblock
131
+
132
+
73
133
  return record.target === this.lineNumberGutter || record.target.parentNode === this.lineNumberGutter;
74
134
  }
75
135
 
@@ -1,3 +1,4 @@
1
1
  export const ACTIONS = {
2
- SET_COPIED_TO_CLIPBOARD: 'SET_COPIED_TO_CLIPBOARD'
2
+ SET_COPIED_TO_CLIPBOARD: 'SET_COPIED_TO_CLIPBOARD',
3
+ SET_SHOULD_IGNORE_FOLLOWING_MUTATIONS: 'SET_SHOULD_IGNORE_FOLLOWING_MUTATIONS'
3
4
  };
@@ -1,4 +1,5 @@
1
1
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
+ import { browser } from '@atlaskit/editor-common/utils';
2
3
  import { NodeSelection } from 'prosemirror-state';
3
4
  import { codeBidiWarningMessages } from '@atlaskit/editor-common/messages';
4
5
  import { codeBlockNodeView } from '../nodeviews/code-block';
@@ -6,6 +7,7 @@ import { highlightingCodeBlockNodeView } from '../nodeviews/highlighting-code-bl
6
7
  import { createSelectionClickHandler } from '../../selection/utils';
7
8
  import { pluginKey } from '../plugin-key';
8
9
  import { ACTIONS } from './actions';
10
+ import { ignoreFollowingMutations, resetShouldIgnoreFollowingMutations } from '../actions';
9
11
  import { findCodeBlock } from '../utils';
10
12
  import { codeBlockClassNames } from '../ui/class-names';
11
13
  import { getFeatureFlags } from '../../feature-flags-context';
@@ -22,12 +24,39 @@ export const createPlugin = ({
22
24
 
23
25
  if (allowCompositionInputOverride) {
24
26
  handleDOMEvents.beforeinput = (view, event) => {
25
- if (event.composed && // insertParagraph will be the input type when the enter key is pressed.
26
- event.inputType === 'insertParagraph' && findCodeBlock(view.state, view.state.selection)) {
27
+ const keyEvent = event;
28
+ const eventInputType = keyEvent.inputType;
29
+ const eventText = keyEvent.data;
30
+
31
+ if (browser.ios && event.composed && // insertParagraph will be the input type when the enter key is pressed.
32
+ eventInputType === 'insertParagraph' && findCodeBlock(view.state, view.state.selection)) {
27
33
  event.preventDefault();
34
+ return true;
35
+ } else if (browser.android && event.composed && eventInputType === 'insertCompositionText' && eventText[(eventText === null || eventText === void 0 ? void 0 : eventText.length) - 1] === '\n' && findCodeBlock(view.state, view.state.selection)) {
36
+ const resultingText = event.target.outerText + '\n';
37
+
38
+ if (resultingText.endsWith(eventText)) {
39
+ // End of paragraph
40
+ setTimeout(() => {
41
+ view.someProp('handleKeyDown', f => f(view, new KeyboardEvent('keydown', {
42
+ bubbles: true,
43
+ cancelable: true,
44
+ key: 'Enter',
45
+ code: 'Enter'
46
+ })));
47
+ }, 0);
48
+ } else {
49
+ // Middle of paragraph, end of line
50
+ ignoreFollowingMutations(view.state, view.dispatch);
51
+ }
52
+
28
53
  return true;
29
54
  }
30
55
 
56
+ if (browser.android) {
57
+ resetShouldIgnoreFollowingMutations(view.state, view.dispatch);
58
+ }
59
+
31
60
  return false;
32
61
  };
33
62
  }
@@ -39,7 +68,8 @@ export const createPlugin = ({
39
68
  return {
40
69
  pos: node ? node.pos : null,
41
70
  contentCopied: false,
42
- isNodeSelected: false
71
+ isNodeSelected: false,
72
+ shouldIgnoreFollowingMutations: false
43
73
  };
44
74
  },
45
75
 
@@ -59,6 +89,10 @@ export const createPlugin = ({
59
89
  return { ...pluginState,
60
90
  contentCopied: meta.data
61
91
  };
92
+ } else if ((meta === null || meta === void 0 ? void 0 : meta.type) === ACTIONS.SET_SHOULD_IGNORE_FOLLOWING_MUTATIONS) {
93
+ return { ...pluginState,
94
+ shouldIgnoreFollowingMutations: meta.data
95
+ };
62
96
  }
63
97
 
64
98
  return pluginState;
@@ -2,13 +2,15 @@ import { css } from '@emotion/react';
2
2
  import { themed } from '@atlaskit/theme/components';
3
3
  import { borderRadius, fontSize, gridSize } from '@atlaskit/theme/constants';
4
4
  import * as colors from '@atlaskit/theme/colors';
5
- import { token } from '@atlaskit/tokens';
6
5
  import { blockNodesVerticalMargin, akEditorTableCellMinWidth, akEditorDeleteBackground, akEditorDeleteBorder, akEditorSelectedBorderSize, akEditorDeleteIconColor, SelectionStyle, getSelectionStyles, akEditorCodeFontFamily, akEditorSelectedNodeClassName, overflowShadow, relativeFontSizeToBase16 } from '@atlaskit/editor-shared-styles';
6
+ import { token } from '@atlaskit/tokens';
7
7
  import { codeBlockClassNames } from './ui/class-names';
8
8
  export const highlightingCodeBlockStyles = props => css`
9
9
  .ProseMirror .code-block {
10
10
  position: relative;
11
11
  background-image: ${overflowShadow({
12
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4118
13
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
12
14
  background: themed({
13
15
  light: colors.N20,
14
16
  dark: colors.DN50
@@ -17,8 +19,8 @@ export const highlightingCodeBlockStyles = props => css`
17
19
  })};
18
20
  background-repeat: no-repeat;
19
21
  background-color: ${themed({
20
- light: colors.N20,
21
- dark: colors.DN50
22
+ light: token('color.background.neutral', colors.N20),
23
+ dark: token('color.background.neutral', colors.DN50)
22
24
  })(props)};
23
25
 
24
26
  --ds--code--bg-color: transparent;
@@ -40,13 +42,13 @@ export const highlightingCodeBlockStyles = props => css`
40
42
  flex-shrink: 0;
41
43
  text-align: right;
42
44
  background-color: ${themed({
43
- light: colors.N30,
44
- dark: colors.DN20
45
+ light: token('color.background.neutral', colors.N30),
46
+ dark: token('color.background.neutral', colors.DN20)
45
47
  })(props)};
46
48
  padding: ${gridSize()}px;
47
49
  color: ${themed({
48
- light: colors.N90,
49
- dark: colors.DN90
50
+ light: token('color.text.subtlest', colors.N90),
51
+ dark: token('color.text.subtlest', colors.DN90)
50
52
  })(props)};
51
53
 
52
54
  span {
@@ -61,8 +63,8 @@ export const highlightingCodeBlockStyles = props => css`
61
63
  font-size: ${relativeFontSizeToBase16(fontSize())};
62
64
  line-height: 1.5rem;
63
65
  color: ${themed({
64
- light: colors.N400,
65
- dark: colors.DN400
66
+ light: token('color.text.subtle', colors.N400),
67
+ dark: token('color.text.subtle', colors.DN400)
66
68
  })(props)};
67
69
  }
68
70
  }
@@ -115,8 +117,8 @@ export const highlightingCodeBlockStyles = props => css`
115
117
  > code:not([data-language='plaintext']):not([data-language='none']):not([data-language='']) {
116
118
  color: transparent;
117
119
  caret-color: ${themed({
118
- light: colors.N800,
119
- dark: colors.DN500
120
+ light: token('color.text', colors.N800),
121
+ dark: token('color.text', colors.DN500)
120
122
  })(props)};
121
123
  }
122
124
  }
@@ -137,7 +139,7 @@ export const highlightingCodeBlockStyles = props => css`
137
139
  ${token('color.border.danger', akEditorDeleteBorder)};
138
140
 
139
141
  .${codeBlockClassNames.gutter} {
140
- background-color: ${colors.R75};
142
+ background-color: ${token('color.blanket.danger', colors.R75)};
141
143
  color: ${token('color.text.danger', akEditorDeleteIconColor)};
142
144
  }
143
145
 
@@ -149,12 +151,12 @@ export const highlightingCodeBlockStyles = props => css`
149
151
  /* Danger when nested node */
150
152
  .ProseMirror .danger .code-block {
151
153
  .${codeBlockClassNames.gutter} {
152
- background-color: rgba(255, 143, 115, 0.5);
154
+ background-color: ${token('color.blanket.danger', 'rgba(255, 143, 115, 0.5)')};
153
155
  color: ${token('color.text.danger', akEditorDeleteIconColor)};
154
156
  }
155
157
 
156
158
  .${codeBlockClassNames.content} {
157
- background-color: rgba(255, 189, 173, 0.5);
159
+ background-color: ${token('color.background.danger', 'rgba(255, 189, 173, 0.5)')};
158
160
  }
159
161
  }
160
162
  `;
@@ -162,6 +164,8 @@ export const codeBlockStyles = props => css`
162
164
  .ProseMirror .code-block {
163
165
  position: relative;
164
166
  background-image: ${overflowShadow({
167
+ // TODO: https://product-fabric.atlassian.net/browse/DSP-4118
168
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
165
169
  background: themed({
166
170
  light: colors.N20,
167
171
  dark: colors.DN50
@@ -173,8 +177,8 @@ export const codeBlockStyles = props => css`
173
177
 
174
178
  background-repeat: no-repeat;
175
179
  background-color: ${themed({
176
- light: colors.N20,
177
- dark: colors.DN50
180
+ light: token('color.background.neutral', colors.N20),
181
+ dark: token('color.background.neutral', colors.DN50)
178
182
  })(props)};
179
183
  background-attachment: local, scroll, scroll;
180
184
  background-size: 8px 100%, 8px 100%, 8px 100%;
@@ -193,8 +197,8 @@ export const codeBlockStyles = props => css`
193
197
  flex-shrink: 0;
194
198
  text-align: right;
195
199
  background-color: ${themed({
196
- light: colors.N30,
197
- dark: colors.DN20
200
+ light: token('color.background.neutral', colors.N30),
201
+ dark: token('color.background.neutral', colors.DN20)
198
202
  })(props)};
199
203
  padding: ${gridSize()}px;
200
204
 
@@ -210,8 +214,8 @@ export const codeBlockStyles = props => css`
210
214
  font-size: ${relativeFontSizeToBase16(fontSize())};
211
215
  line-height: 1.5rem;
212
216
  color: ${themed({
213
- light: colors.N400,
214
- dark: colors.DN400
217
+ light: token('color.text', colors.N400),
218
+ dark: token('color.text', colors.DN400)
215
219
  })(props)};
216
220
  }
217
221
  }
@@ -229,8 +233,8 @@ export const codeBlockStyles = props => css`
229
233
  font-size: ${relativeFontSizeToBase16(fontSize())};
230
234
  line-height: 1.5rem;
231
235
  color: ${themed({
232
- light: colors.N800,
233
- dark: colors.DN800
236
+ light: token('color.text', colors.N800),
237
+ dark: token('color.text', colors.DN800)
234
238
  })(props)};
235
239
  border-radius: ${borderRadius()}px;
236
240
  margin: ${gridSize()}px;
@@ -249,11 +253,10 @@ export const codeBlockStyles = props => css`
249
253
 
250
254
  /* Danger when top level node */
251
255
  .ProseMirror .danger.code-block {
252
- box-shadow: 0 0 0 ${akEditorSelectedBorderSize}px
253
- ${token('color.border.danger', akEditorDeleteBorder)};
256
+ box-shadow: 0 0 0 ${akEditorSelectedBorderSize}px ${akEditorDeleteBorder};
254
257
 
255
258
  .${codeBlockClassNames.gutter} {
256
- background-color: ${colors.R75};
259
+ background-color: ${token('color.blanket.danger', colors.R75)};
257
260
  color: ${token('color.text.danger', akEditorDeleteIconColor)};
258
261
  }
259
262
 
@@ -265,12 +268,12 @@ export const codeBlockStyles = props => css`
265
268
  /* Danger when nested node */
266
269
  .ProseMirror .danger .code-block {
267
270
  .${codeBlockClassNames.gutter} {
268
- background-color: rgba(255, 143, 115, 0.5);
271
+ background-color: ${token('color.blanket.danger', 'rgba(255, 143, 115, 0.5)')};
269
272
  color: ${token('color.text.danger', akEditorDeleteIconColor)};
270
273
  }
271
274
 
272
275
  .${codeBlockClassNames.content} {
273
- background-color: rgba(255, 189, 173, 0.5);
276
+ background-color: ${token('color.background.danger', 'rgba(255, 189, 173, 0.5)')};
274
277
  }
275
278
  }
276
279
  `;