@atlaskit/editor-core 181.0.1 → 182.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 (318) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/codemods/140.0.0-rc-kraken-fix-type-errors.ts +0 -2
  3. package/codemods/__tests__/next-remove-allow-more-text-colors-prop.ts +0 -17
  4. package/codemods/migrates/next-remove-allow-more-text-colors-prop.ts +0 -4
  5. package/dist/cjs/create-editor/sort-by-order.js +12 -0
  6. package/dist/cjs/editor-next/editor-migration-component.js +4 -1
  7. package/dist/cjs/editor-next/utils/deprecationWarnings.js +0 -5
  8. package/dist/cjs/labs/next/full-page.js +2 -1
  9. package/dist/cjs/labs/next/presets/default.js +2 -1
  10. package/dist/cjs/labs/next/presets/universal.js +7 -1
  11. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +2 -1
  12. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +4 -7
  13. package/dist/cjs/plugins/analytics/plugin.js +6 -6
  14. package/dist/cjs/plugins/avatar-group/index.js +5 -2
  15. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  16. package/dist/cjs/plugins/base/index.js +4 -2
  17. package/dist/cjs/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  18. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  19. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/index.js +2 -8
  20. package/dist/cjs/plugins/border/index.js +20 -0
  21. package/dist/cjs/plugins/card/index.js +4 -2
  22. package/dist/cjs/plugins/card/toolbar.js +12 -15
  23. package/dist/cjs/plugins/card/ui/EditLinkToolbar.js +7 -3
  24. package/dist/cjs/plugins/code-block/toolbar.js +1 -1
  25. package/dist/cjs/plugins/collab-edit/analytics.js +2 -3
  26. package/dist/cjs/plugins/collab-edit/events/handlers.js +2 -2
  27. package/dist/cjs/plugins/collab-edit/events/initialize.js +3 -2
  28. package/dist/cjs/plugins/collab-edit/index.js +5 -3
  29. package/dist/cjs/plugins/collab-edit/plugin.js +4 -3
  30. package/dist/cjs/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  31. package/dist/cjs/plugins/collab-edit/ui/avatars.js +2 -3
  32. package/dist/cjs/plugins/date/index.js +90 -64
  33. package/dist/cjs/plugins/editor-disabled/index.js +8 -0
  34. package/dist/cjs/plugins/expand/index.js +4 -1
  35. package/dist/cjs/plugins/expand/nodeviews/index.js +6 -7
  36. package/dist/cjs/plugins/expand/pm-plugins/main.js +5 -2
  37. package/dist/cjs/plugins/extension/extension-api.js +27 -14
  38. package/dist/cjs/plugins/extension/pm-plugins/main.js +117 -177
  39. package/dist/cjs/plugins/extension/pm-plugins/utils.js +80 -0
  40. package/dist/cjs/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +7 -11
  41. package/dist/cjs/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -4
  42. package/dist/cjs/plugins/find-replace/index.js +5 -2
  43. package/dist/cjs/plugins/floating-toolbar/index.js +15 -7
  44. package/dist/cjs/plugins/floating-toolbar/ui/CheckboxModal.js +2 -1
  45. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  46. package/dist/cjs/plugins/floating-toolbar/ui/SimpleModal.js +2 -1
  47. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  48. package/dist/cjs/plugins/hyperlink/Toolbar.js +9 -12
  49. package/dist/cjs/plugins/hyperlink/index.js +6 -2
  50. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -4
  51. package/dist/cjs/plugins/index.js +7 -0
  52. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  53. package/dist/cjs/plugins/list/actions/outdent-list-items-selected.js +5 -5
  54. package/dist/cjs/plugins/list/commands/index.js +31 -27
  55. package/dist/cjs/plugins/list/commands/outdent-list.js +2 -3
  56. package/dist/cjs/plugins/list/index.js +4 -3
  57. package/dist/cjs/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  58. package/dist/cjs/plugins/list/pm-plugins/input-rules/index.js +2 -1
  59. package/dist/cjs/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +58 -0
  60. package/dist/cjs/plugins/list/pm-plugins/keymap.js +4 -4
  61. package/dist/cjs/plugins/list/pm-plugins/main.js +23 -21
  62. package/dist/cjs/plugins/media/nodeviews/mediaNodeView/media.js +6 -1
  63. package/dist/cjs/plugins/media/nodeviews/styles.js +13 -1
  64. package/dist/cjs/plugins/media/toolbar/commands.js +105 -2
  65. package/dist/cjs/plugins/media/toolbar/imageBorder.js +20 -0
  66. package/dist/cjs/plugins/media/toolbar/index.js +33 -4
  67. package/dist/cjs/plugins/media/ui/ImageBorder/index.js +219 -0
  68. package/dist/cjs/plugins/media/ui/ImageBorder/messages.js +50 -0
  69. package/dist/cjs/plugins/media/ui/ImageBorder/styles.js +54 -0
  70. package/dist/cjs/plugins/media/utils/current-media-node.js +28 -5
  71. package/dist/cjs/plugins/paste/util/index.js +2 -0
  72. package/dist/cjs/plugins/rank.js +1 -1
  73. package/dist/cjs/plugins/rule/pm-plugins/input-rule.js +5 -0
  74. package/dist/cjs/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  75. package/dist/cjs/plugins/toolbar-lists-indentation/index.js +3 -1
  76. package/dist/cjs/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  77. package/dist/cjs/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  78. package/dist/cjs/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  79. package/dist/cjs/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  80. package/dist/cjs/test-utils.js +3 -1
  81. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  82. package/dist/cjs/ui/styles.js +1 -1
  83. package/dist/cjs/utils/input-rules.js +0 -17
  84. package/dist/cjs/utils/insert.js +53 -7
  85. package/dist/cjs/version-wrapper.js +1 -1
  86. package/dist/cjs/version.json +1 -1
  87. package/dist/es2019/create-editor/sort-by-order.js +11 -0
  88. package/dist/es2019/editor-next/editor-migration-component.js +4 -1
  89. package/dist/es2019/editor-next/utils/deprecationWarnings.js +0 -5
  90. package/dist/es2019/labs/next/full-page.js +2 -1
  91. package/dist/es2019/labs/next/presets/default.js +2 -1
  92. package/dist/es2019/labs/next/presets/universal.js +8 -2
  93. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +3 -2
  94. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +0 -8
  95. package/dist/es2019/plugins/analytics/plugin.js +45 -43
  96. package/dist/es2019/plugins/avatar-group/index.js +26 -21
  97. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  98. package/dist/es2019/plugins/base/index.js +101 -97
  99. package/dist/es2019/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  100. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  101. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/index.js +2 -7
  102. package/dist/es2019/plugins/border/index.js +11 -0
  103. package/dist/es2019/plugins/card/index.js +4 -2
  104. package/dist/es2019/plugins/card/toolbar.js +10 -11
  105. package/dist/es2019/plugins/card/ui/EditLinkToolbar.js +7 -3
  106. package/dist/es2019/plugins/code-block/toolbar.js +2 -2
  107. package/dist/es2019/plugins/collab-edit/analytics.js +2 -3
  108. package/dist/es2019/plugins/collab-edit/events/handlers.js +2 -2
  109. package/dist/es2019/plugins/collab-edit/events/initialize.js +3 -2
  110. package/dist/es2019/plugins/collab-edit/index.js +5 -3
  111. package/dist/es2019/plugins/collab-edit/plugin.js +4 -3
  112. package/dist/es2019/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  113. package/dist/es2019/plugins/collab-edit/ui/avatars.js +2 -3
  114. package/dist/es2019/plugins/date/index.js +92 -64
  115. package/dist/es2019/plugins/editor-disabled/index.js +8 -0
  116. package/dist/es2019/plugins/expand/index.js +57 -53
  117. package/dist/es2019/plugins/expand/nodeviews/index.js +6 -9
  118. package/dist/es2019/plugins/expand/pm-plugins/main.js +5 -3
  119. package/dist/es2019/plugins/extension/extension-api.js +31 -13
  120. package/dist/es2019/plugins/extension/pm-plugins/main.js +77 -96
  121. package/dist/es2019/plugins/extension/pm-plugins/utils.js +30 -0
  122. package/dist/es2019/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +1 -8
  123. package/dist/es2019/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -3
  124. package/dist/es2019/plugins/find-replace/index.js +5 -2
  125. package/dist/es2019/plugins/floating-toolbar/index.js +159 -149
  126. package/dist/es2019/plugins/floating-toolbar/ui/CheckboxModal.js +4 -1
  127. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  128. package/dist/es2019/plugins/floating-toolbar/ui/SimpleModal.js +4 -1
  129. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  130. package/dist/es2019/plugins/hyperlink/Toolbar.js +7 -9
  131. package/dist/es2019/plugins/hyperlink/index.js +66 -62
  132. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -3
  133. package/dist/es2019/plugins/index.js +2 -1
  134. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  135. package/dist/es2019/plugins/list/actions/outdent-list-items-selected.js +5 -5
  136. package/dist/es2019/plugins/list/commands/index.js +4 -4
  137. package/dist/es2019/plugins/list/commands/outdent-list.js +2 -4
  138. package/dist/es2019/plugins/list/index.js +80 -77
  139. package/dist/es2019/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  140. package/dist/es2019/plugins/list/pm-plugins/input-rules/index.js +2 -1
  141. package/dist/es2019/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +52 -0
  142. package/dist/es2019/plugins/list/pm-plugins/keymap.js +4 -4
  143. package/dist/es2019/plugins/list/pm-plugins/main.js +46 -46
  144. package/dist/es2019/plugins/media/nodeviews/mediaNodeView/media.js +4 -1
  145. package/dist/es2019/plugins/media/nodeviews/styles.js +12 -1
  146. package/dist/es2019/plugins/media/toolbar/commands.js +93 -0
  147. package/dist/es2019/plugins/media/toolbar/imageBorder.js +15 -0
  148. package/dist/es2019/plugins/media/toolbar/index.js +36 -5
  149. package/dist/es2019/plugins/media/ui/ImageBorder/index.js +206 -0
  150. package/dist/es2019/plugins/media/ui/ImageBorder/messages.js +43 -0
  151. package/dist/es2019/plugins/media/ui/ImageBorder/styles.js +124 -0
  152. package/dist/es2019/plugins/media/utils/current-media-node.js +22 -3
  153. package/dist/es2019/plugins/paste/util/index.js +2 -0
  154. package/dist/es2019/plugins/rank.js +1 -1
  155. package/dist/es2019/plugins/rule/pm-plugins/input-rule.js +7 -0
  156. package/dist/es2019/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  157. package/dist/es2019/plugins/toolbar-lists-indentation/index.js +59 -55
  158. package/dist/es2019/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  159. package/dist/es2019/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  160. package/dist/es2019/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  161. package/dist/es2019/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  162. package/dist/es2019/test-utils.js +3 -1
  163. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  164. package/dist/es2019/ui/styles.js +1 -0
  165. package/dist/es2019/utils/input-rules.js +0 -17
  166. package/dist/es2019/utils/insert.js +61 -10
  167. package/dist/es2019/version-wrapper.js +1 -1
  168. package/dist/es2019/version.json +1 -1
  169. package/dist/esm/create-editor/sort-by-order.js +11 -0
  170. package/dist/esm/editor-next/editor-migration-component.js +3 -0
  171. package/dist/esm/editor-next/utils/deprecationWarnings.js +0 -5
  172. package/dist/esm/labs/next/full-page.js +2 -1
  173. package/dist/esm/labs/next/presets/default.js +2 -1
  174. package/dist/esm/labs/next/presets/universal.js +8 -2
  175. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +3 -2
  176. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +3 -5
  177. package/dist/esm/plugins/analytics/plugin.js +6 -6
  178. package/dist/esm/plugins/avatar-group/index.js +5 -2
  179. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  180. package/dist/esm/plugins/base/index.js +4 -2
  181. package/dist/esm/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  182. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  183. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/index.js +2 -8
  184. package/dist/esm/plugins/border/index.js +13 -0
  185. package/dist/esm/plugins/card/index.js +4 -2
  186. package/dist/esm/plugins/card/toolbar.js +12 -15
  187. package/dist/esm/plugins/card/ui/EditLinkToolbar.js +7 -3
  188. package/dist/esm/plugins/code-block/toolbar.js +2 -2
  189. package/dist/esm/plugins/collab-edit/analytics.js +2 -3
  190. package/dist/esm/plugins/collab-edit/events/handlers.js +2 -2
  191. package/dist/esm/plugins/collab-edit/events/initialize.js +3 -2
  192. package/dist/esm/plugins/collab-edit/index.js +5 -3
  193. package/dist/esm/plugins/collab-edit/plugin.js +4 -3
  194. package/dist/esm/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  195. package/dist/esm/plugins/collab-edit/ui/avatars.js +2 -3
  196. package/dist/esm/plugins/date/index.js +90 -64
  197. package/dist/esm/plugins/editor-disabled/index.js +8 -0
  198. package/dist/esm/plugins/expand/index.js +4 -1
  199. package/dist/esm/plugins/expand/nodeviews/index.js +6 -7
  200. package/dist/esm/plugins/expand/pm-plugins/main.js +5 -2
  201. package/dist/esm/plugins/extension/extension-api.js +24 -12
  202. package/dist/esm/plugins/extension/pm-plugins/main.js +113 -173
  203. package/dist/esm/plugins/extension/pm-plugins/utils.js +72 -0
  204. package/dist/esm/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +1 -10
  205. package/dist/esm/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -4
  206. package/dist/esm/plugins/find-replace/index.js +5 -2
  207. package/dist/esm/plugins/floating-toolbar/index.js +15 -7
  208. package/dist/esm/plugins/floating-toolbar/ui/CheckboxModal.js +2 -1
  209. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  210. package/dist/esm/plugins/floating-toolbar/ui/SimpleModal.js +2 -1
  211. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  212. package/dist/esm/plugins/hyperlink/Toolbar.js +9 -13
  213. package/dist/esm/plugins/hyperlink/index.js +6 -2
  214. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -4
  215. package/dist/esm/plugins/index.js +2 -1
  216. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  217. package/dist/esm/plugins/list/actions/outdent-list-items-selected.js +5 -5
  218. package/dist/esm/plugins/list/commands/index.js +31 -27
  219. package/dist/esm/plugins/list/commands/outdent-list.js +2 -3
  220. package/dist/esm/plugins/list/index.js +4 -3
  221. package/dist/esm/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  222. package/dist/esm/plugins/list/pm-plugins/input-rules/index.js +2 -1
  223. package/dist/esm/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +51 -0
  224. package/dist/esm/plugins/list/pm-plugins/keymap.js +4 -4
  225. package/dist/esm/plugins/list/pm-plugins/main.js +23 -21
  226. package/dist/esm/plugins/media/nodeviews/mediaNodeView/media.js +6 -1
  227. package/dist/esm/plugins/media/nodeviews/styles.js +13 -1
  228. package/dist/esm/plugins/media/toolbar/commands.js +99 -0
  229. package/dist/esm/plugins/media/toolbar/imageBorder.js +14 -0
  230. package/dist/esm/plugins/media/toolbar/index.js +34 -5
  231. package/dist/esm/plugins/media/ui/ImageBorder/index.js +211 -0
  232. package/dist/esm/plugins/media/ui/ImageBorder/messages.js +43 -0
  233. package/dist/esm/plugins/media/ui/ImageBorder/styles.js +37 -0
  234. package/dist/esm/plugins/media/utils/current-media-node.js +24 -3
  235. package/dist/esm/plugins/paste/util/index.js +2 -0
  236. package/dist/esm/plugins/rank.js +1 -1
  237. package/dist/esm/plugins/rule/pm-plugins/input-rule.js +5 -0
  238. package/dist/esm/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  239. package/dist/esm/plugins/toolbar-lists-indentation/index.js +3 -1
  240. package/dist/esm/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  241. package/dist/esm/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  242. package/dist/esm/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  243. package/dist/esm/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  244. package/dist/esm/test-utils.js +3 -1
  245. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  246. package/dist/esm/ui/styles.js +1 -1
  247. package/dist/esm/utils/input-rules.js +0 -17
  248. package/dist/esm/utils/insert.js +56 -10
  249. package/dist/esm/version-wrapper.js +1 -1
  250. package/dist/esm/version.json +1 -1
  251. package/dist/types/create-editor/sort-by-order.d.ts +9 -0
  252. package/dist/types/editor-next/editor-migration-component.d.ts +1 -0
  253. package/dist/types/labs/next/presets/cxhtml.d.ts +36 -2
  254. package/dist/types/labs/next/presets/default.d.ts +72 -4
  255. package/dist/types/labs/next/presets/mobile.d.ts +36 -2
  256. package/dist/types/plugins/alignment/ui/ToolbarAlignment/styles.d.ts +0 -1
  257. package/dist/types/plugins/analytics/plugin.d.ts +2 -0
  258. package/dist/types/plugins/avatar-group/index.d.ts +2 -0
  259. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +2 -0
  260. package/dist/types/plugins/base/index.d.ts +2 -0
  261. package/dist/types/plugins/base/pm-plugins/disable-spell-checking.d.ts +2 -1
  262. package/dist/types/plugins/border/index.d.ts +3 -0
  263. package/dist/types/plugins/card/index.d.ts +2 -0
  264. package/dist/types/plugins/card/toolbar.d.ts +2 -1
  265. package/dist/types/plugins/card/ui/EditLinkToolbar.d.ts +5 -2
  266. package/dist/types/plugins/collab-edit/analytics.d.ts +2 -1
  267. package/dist/types/plugins/collab-edit/events/handlers.d.ts +2 -1
  268. package/dist/types/plugins/collab-edit/events/initialize.d.ts +3 -1
  269. package/dist/types/plugins/collab-edit/index.d.ts +2 -0
  270. package/dist/types/plugins/collab-edit/plugin.d.ts +2 -1
  271. package/dist/types/plugins/collab-edit/ui/avatars-with-plugin-state.d.ts +4 -0
  272. package/dist/types/plugins/collab-edit/ui/avatars.d.ts +2 -0
  273. package/dist/types/plugins/date/index.d.ts +9 -1
  274. package/dist/types/plugins/editor-disabled/index.d.ts +3 -1
  275. package/dist/types/plugins/expand/index.d.ts +2 -0
  276. package/dist/types/plugins/expand/nodeviews/index.d.ts +5 -2
  277. package/dist/types/plugins/expand/pm-plugins/main.d.ts +2 -1
  278. package/dist/types/plugins/extension/pm-plugins/main.d.ts +8 -2
  279. package/dist/types/plugins/extension/pm-plugins/utils.d.ts +3 -0
  280. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -7
  281. package/dist/types/plugins/find-replace/FindReplaceToolbarButtonWithState.d.ts +2 -0
  282. package/dist/types/plugins/find-replace/index.d.ts +2 -0
  283. package/dist/types/plugins/floating-toolbar/index.d.ts +4 -1
  284. package/dist/types/plugins/floating-toolbar/ui/Toolbar.d.ts +2 -0
  285. package/dist/types/plugins/hyperlink/Toolbar.d.ts +2 -1
  286. package/dist/types/plugins/hyperlink/index.d.ts +2 -0
  287. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/index.d.ts +2 -0
  288. package/dist/types/plugins/index.d.ts +1 -0
  289. package/dist/types/plugins/list/actions/outdent-list-items-selected.d.ts +2 -1
  290. package/dist/types/plugins/list/commands/index.d.ts +3 -2
  291. package/dist/types/plugins/list/commands/outdent-list.d.ts +2 -1
  292. package/dist/types/plugins/list/index.d.ts +2 -0
  293. package/dist/types/plugins/list/pm-plugins/input-rules/create-list-input-rule.d.ts +1 -1
  294. package/dist/types/plugins/list/pm-plugins/input-rules/wrapping-join-rule.d.ts +13 -0
  295. package/dist/types/plugins/list/pm-plugins/keymap.d.ts +2 -1
  296. package/dist/types/plugins/list/pm-plugins/main.d.ts +3 -2
  297. package/dist/types/plugins/media/nodeviews/styles.d.ts +3 -1
  298. package/dist/types/plugins/media/toolbar/commands.d.ts +5 -0
  299. package/dist/types/plugins/media/toolbar/imageBorder.d.ts +2 -0
  300. package/dist/types/plugins/media/types.d.ts +3 -0
  301. package/dist/types/plugins/media/ui/ImageBorder/index.d.ts +13 -0
  302. package/dist/types/plugins/media/ui/ImageBorder/messages.d.ts +42 -0
  303. package/dist/types/plugins/media/ui/ImageBorder/styles.d.ts +15 -0
  304. package/dist/types/plugins/media/utils/current-media-node.d.ts +6 -0
  305. package/dist/types/plugins/text-color/pm-plugins/main.d.ts +0 -2
  306. package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +2 -0
  307. package/dist/types/plugins/toolbar-lists-indentation/types.d.ts +2 -0
  308. package/dist/types/plugins/toolbar-lists-indentation/ui/index.d.ts +2 -0
  309. package/dist/types/plugins/toolbar-lists-indentation/ui/onItemActivated.d.ts +3 -1
  310. package/dist/types/test-utils.d.ts +4 -2
  311. package/dist/types/types/editor-props.d.ts +5 -0
  312. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +5 -5
  313. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  314. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  315. package/package.json +12 -11
  316. package/report.api.md +12 -4
  317. package/codemods/__tests__/rename-experimental-text-color-prop.ts +0 -204
  318. package/codemods/migrates/rename-experimental-text-color-prop.ts +0 -6
@@ -13,14 +13,14 @@ var _outdentList = require("../commands/outdent-list");
13
13
  var _analytics = require("../../analytics");
14
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
- function keymapPlugin() {
16
+ function keymapPlugin(featureFlags) {
17
17
  var list = {};
18
18
  keymaps.bindKeymapWithCommand(keymaps.findShortcutByKeymap(keymaps.toggleOrderedList), (0, _commands.toggleList)(_analytics.INPUT_METHOD.KEYBOARD, 'orderedList'), list);
19
19
  keymaps.bindKeymapWithCommand(keymaps.findShortcutByKeymap(keymaps.toggleBulletList), (0, _commands.toggleList)(_analytics.INPUT_METHOD.KEYBOARD, 'bulletList'), list);
20
20
  keymaps.bindKeymapWithCommand(keymaps.indentList.common, (0, _commands.indentList)(_analytics.INPUT_METHOD.KEYBOARD), list);
21
- keymaps.bindKeymapWithCommand(keymaps.outdentList.common, (0, _outdentList.outdentList)(_analytics.INPUT_METHOD.KEYBOARD), list);
22
- keymaps.bindKeymapWithCommand(keymaps.enter.common, _commands.enterKeyCommand, list);
23
- keymaps.bindKeymapWithCommand(keymaps.backspace.common, _commands.backspaceKeyCommand, list);
21
+ keymaps.bindKeymapWithCommand(keymaps.outdentList.common, (0, _outdentList.outdentList)(_analytics.INPUT_METHOD.KEYBOARD, featureFlags), list);
22
+ keymaps.bindKeymapWithCommand(keymaps.enter.common, (0, _commands.enterKeyCommand)(featureFlags), list);
23
+ keymaps.bindKeymapWithCommand(keymaps.backspace.common, (0, _commands.backspaceKeyCommand)(featureFlags), list);
24
24
  keymaps.bindKeymapWithCommand(keymaps.deleteKey.common, _commands.deleteKeyCommand, list);
25
25
 
26
26
  // This shortcut is Mac only
@@ -17,7 +17,6 @@ var _utils = require("../../../utils");
17
17
  var _gapCursorSelection = require("../../selection/gap-cursor-selection");
18
18
  var _styles = require("@atlaskit/editor-common/styles");
19
19
  var _utils2 = require("@atlaskit/editor-common/utils");
20
- var _featureFlagsContext = require("../../feature-flags-context");
21
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
21
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
22
  var listPluginKey = new _prosemirrorState.PluginKey('listPlugin');
@@ -30,9 +29,8 @@ var initialState = {
30
29
  orderedListDisabled: false,
31
30
  decorationSet: _prosemirrorView.DecorationSet.empty
32
31
  };
33
- var getDecorations = function getDecorations(doc, state) {
32
+ var getDecorations = function getDecorations(doc, state, featureFlags) {
34
33
  var decorations = [];
35
- var featureFlags = (0, _featureFlagsContext.getFeatureFlags)(state);
36
34
 
37
35
  // this stack keeps track of each (nested) list to calculate the indentation level
38
36
  var processedListsStack = [];
@@ -86,12 +84,14 @@ var getDecorations = function getDecorations(doc, state) {
86
84
  return _prosemirrorView.DecorationSet.empty.add(doc, decorations);
87
85
  };
88
86
  exports.getDecorations = getDecorations;
89
- var handleDocChanged = function handleDocChanged(tr, pluginState, editorState) {
90
- var nextPluginState = handleSelectionChanged(tr, pluginState);
91
- var decorationSet = getDecorations(tr.doc, editorState);
92
- return _objectSpread(_objectSpread({}, nextPluginState), {}, {
93
- decorationSet: decorationSet
94
- });
87
+ var handleDocChanged = function handleDocChanged(featureFlags) {
88
+ return function (tr, pluginState, editorState) {
89
+ var nextPluginState = handleSelectionChanged(tr, pluginState);
90
+ var decorationSet = getDecorations(tr.doc, editorState, featureFlags);
91
+ return _objectSpread(_objectSpread({}, nextPluginState), {}, {
92
+ decorationSet: decorationSet
93
+ });
94
+ };
95
95
  };
96
96
  var handleSelectionChanged = function handleSelectionChanged(tr, pluginState) {
97
97
  var _tr$doc$type$schema$n = tr.doc.type.schema.nodes,
@@ -118,20 +118,22 @@ var reducer = function reducer() {
118
118
  return state;
119
119
  };
120
120
  };
121
- var _pluginFactory = (0, _pluginStateFactory.pluginFactory)(listPluginKey, reducer(), {
122
- onDocChanged: handleDocChanged,
123
- onSelectionChanged: handleSelectionChanged
124
- }),
125
- getPluginState = _pluginFactory.getPluginState,
126
- createPluginState = _pluginFactory.createPluginState;
127
- var createInitialState = function createInitialState(state) {
128
- return _objectSpread(_objectSpread({}, initialState), {}, {
129
- decorationSet: getDecorations(state.doc, state)
130
- });
121
+ var createInitialState = function createInitialState(featureFlags) {
122
+ return function (state) {
123
+ return _objectSpread(_objectSpread({}, initialState), {}, {
124
+ decorationSet: getDecorations(state.doc, state, featureFlags)
125
+ });
126
+ };
131
127
  };
132
- var createPlugin = function createPlugin(eventDispatch) {
128
+ var createPlugin = function createPlugin(eventDispatch, featureFlags) {
129
+ var _pluginFactory = (0, _pluginStateFactory.pluginFactory)(listPluginKey, reducer(), {
130
+ onDocChanged: handleDocChanged(featureFlags),
131
+ onSelectionChanged: handleSelectionChanged
132
+ }),
133
+ getPluginState = _pluginFactory.getPluginState,
134
+ createPluginState = _pluginFactory.createPluginState;
133
135
  return new _safePlugin.SafePlugin({
134
- state: createPluginState(eventDispatch, createInitialState),
136
+ state: createPluginState(eventDispatch, createInitialState(featureFlags)),
135
137
  key: listPluginKey,
136
138
  props: {
137
139
  decorations: function decorations(state) {
@@ -168,6 +168,9 @@ var MediaNode = /*#__PURE__*/function (_Component) {
168
168
  isLoading = _this$props.isLoading,
169
169
  maxDimensions = _this$props.maxDimensions,
170
170
  mediaOptions = _this$props.mediaOptions;
171
+ var borderMark = node.marks.find(function (m) {
172
+ return m.type.name === 'border';
173
+ });
171
174
  var _this$state = this.state,
172
175
  viewMediaClientConfig = _this$state.viewMediaClientConfig,
173
176
  contextIdentifierProvider = _this$state.contextIdentifierProvider;
@@ -203,7 +206,9 @@ var MediaNode = /*#__PURE__*/function (_Component) {
203
206
  };
204
207
  return /*#__PURE__*/_react.default.createElement(_styles.MediaCardWrapper, {
205
208
  dimensions: originalDimensions,
206
- onContextMenu: this.selectMediaSingle
209
+ onContextMenu: this.selectMediaSingle,
210
+ borderWidth: borderMark === null || borderMark === void 0 ? void 0 : borderMark.attrs.size,
211
+ selected: selected
207
212
  }, /*#__PURE__*/_react.default.createElement(_mediaCard.Card, {
208
213
  mediaClientConfig: mediaClientConfig,
209
214
  resizeMode: "stretchy-fit",
@@ -20,8 +20,20 @@ var forcedDimensions = (0, _react2.css)(_templateObject3 || (_templateObject3 =
20
20
  var MediaCardWrapper = function MediaCardWrapper(_ref) {
21
21
  var dimensions = _ref.dimensions,
22
22
  children = _ref.children,
23
+ selected = _ref.selected,
24
+ _ref$borderWidth = _ref.borderWidth,
25
+ borderWidth = _ref$borderWidth === void 0 ? 0 : _ref$borderWidth,
23
26
  onContextMenu = _ref.onContextMenu;
27
+ var calculatedBorderWidth = selected && borderWidth > 0 ? borderWidth + 1 : borderWidth;
24
28
  return (0, _react2.jsx)("div", {
29
+ "data-testid": "media-card-wrapper",
30
+ style: {
31
+ borderColor: "var(--custom-palette-color)",
32
+ borderWidth: "".concat(calculatedBorderWidth, "px"),
33
+ borderStyle: 'solid',
34
+ borderRadius: "".concat(calculatedBorderWidth * 2, "px")
35
+ }
36
+ }, (0, _react2.jsx)("div", {
25
37
  css: forcedDimensions,
26
38
  style: {
27
39
  paddingBottom: "".concat(dimensions.height / dimensions.width * 100, "%")
@@ -29,6 +41,6 @@ var MediaCardWrapper = function MediaCardWrapper(_ref) {
29
41
  onContextMenuCapture: onContextMenu
30
42
  }, (0, _react2.jsx)("div", {
31
43
  css: absoluteDiv
32
- }, children));
44
+ }, children)));
33
45
  };
34
46
  exports.MediaCardWrapper = MediaCardWrapper;
@@ -3,12 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.removeInlineCard = exports.changeMediaCardToInline = exports.changeInlineToMediaCard = void 0;
6
+ exports.toggleBorderMark = exports.setBorderMark = exports.removeInlineCard = exports.changeMediaCardToInline = exports.changeInlineToMediaCard = exports.DEFAULT_BORDER_SIZE = exports.DEFAULT_BORDER_COLOR = void 0;
7
7
  var _prosemirrorModel = require("prosemirror-model");
8
8
  var _prosemirrorState = require("prosemirror-state");
9
9
  var _prosemirrorUtils = require("prosemirror-utils");
10
10
  var _analytics = require("../../analytics");
11
11
  var _utils = require("./utils");
12
+ var _currentMediaNode = require("../utils/current-media-node");
13
+ var DEFAULT_BORDER_COLOR = '#091e4224';
14
+ exports.DEFAULT_BORDER_COLOR = DEFAULT_BORDER_COLOR;
15
+ var DEFAULT_BORDER_SIZE = 2;
16
+ exports.DEFAULT_BORDER_SIZE = DEFAULT_BORDER_SIZE;
12
17
  var changeInlineToMediaCard = function changeInlineToMediaCard(state, dispatch) {
13
18
  var _state$schema$nodes = state.schema.nodes,
14
19
  media = _state$schema$nodes.media,
@@ -90,4 +95,102 @@ var removeInlineCard = function removeInlineCard(state, dispatch) {
90
95
  }
91
96
  return false;
92
97
  };
93
- exports.removeInlineCard = removeInlineCard;
98
+ exports.removeInlineCard = removeInlineCard;
99
+ var toggleBorderMark = function toggleBorderMark(state, dispatch) {
100
+ var nodeWithPos = (0, _currentMediaNode.currentMediaNodeWithPos)(state);
101
+ if (!nodeWithPos) {
102
+ return false;
103
+ }
104
+ var node = nodeWithPos.node,
105
+ pos = nodeWithPos.pos;
106
+ var borderMark = node.marks.find(function (m) {
107
+ return m.type.name === 'border';
108
+ });
109
+ var marks = node.marks.filter(function (m) {
110
+ return m.type.name !== 'border';
111
+ }).concat(borderMark ? [] : state.schema.marks.border.create({
112
+ color: DEFAULT_BORDER_COLOR,
113
+ size: DEFAULT_BORDER_SIZE
114
+ }));
115
+ var tr = state.tr.setNodeMarkup(pos, node.type, node.attrs, marks);
116
+ tr.setMeta('scrollIntoView', false);
117
+ if (state.selection instanceof _prosemirrorState.NodeSelection) {
118
+ if (state.selection.$anchor.pos === state.selection.from) {
119
+ tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, state.selection.from));
120
+ }
121
+ }
122
+ if (dispatch) {
123
+ if (borderMark !== null && borderMark !== void 0 && borderMark.attrs) {
124
+ (0, _analytics.addAnalytics)(state, tr, {
125
+ action: _analytics.ACTION.DELETED,
126
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
127
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.BORDER,
128
+ eventType: _analytics.EVENT_TYPE.TRACK,
129
+ attributes: {
130
+ previousColor: borderMark.attrs.color,
131
+ previousSize: borderMark.attrs.size
132
+ }
133
+ });
134
+ } else {
135
+ (0, _analytics.addAnalytics)(state, tr, {
136
+ action: _analytics.ACTION.ADDED,
137
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
138
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.BORDER,
139
+ eventType: _analytics.EVENT_TYPE.TRACK,
140
+ attributes: {
141
+ color: DEFAULT_BORDER_COLOR,
142
+ size: DEFAULT_BORDER_SIZE
143
+ }
144
+ });
145
+ }
146
+ dispatch(tr);
147
+ }
148
+ return true;
149
+ };
150
+ exports.toggleBorderMark = toggleBorderMark;
151
+ var setBorderMark = function setBorderMark(attrs) {
152
+ return function (state, dispatch) {
153
+ var _node$marks$find, _ref, _attrs$color, _ref2, _attrs$size;
154
+ var nodeWithPos = (0, _currentMediaNode.currentMediaNodeWithPos)(state);
155
+ if (!nodeWithPos) {
156
+ return false;
157
+ }
158
+ var node = nodeWithPos.node,
159
+ pos = nodeWithPos.pos;
160
+ var borderMark = (_node$marks$find = node.marks.find(function (m) {
161
+ return m.type.name === 'border';
162
+ })) === null || _node$marks$find === void 0 ? void 0 : _node$marks$find.attrs;
163
+ var color = (_ref = (_attrs$color = attrs.color) !== null && _attrs$color !== void 0 ? _attrs$color : borderMark === null || borderMark === void 0 ? void 0 : borderMark.color) !== null && _ref !== void 0 ? _ref : DEFAULT_BORDER_COLOR;
164
+ var size = (_ref2 = (_attrs$size = attrs.size) !== null && _attrs$size !== void 0 ? _attrs$size : borderMark === null || borderMark === void 0 ? void 0 : borderMark.size) !== null && _ref2 !== void 0 ? _ref2 : DEFAULT_BORDER_SIZE;
165
+ var marks = node.marks.filter(function (m) {
166
+ return m.type.name !== 'border';
167
+ }).concat(state.schema.marks.border.create({
168
+ color: color,
169
+ size: size
170
+ }));
171
+ var tr = state.tr.setNodeMarkup(pos, node.type, node.attrs, marks);
172
+ tr.setMeta('scrollIntoView', false);
173
+ if (state.selection instanceof _prosemirrorState.NodeSelection) {
174
+ if (state.selection.$anchor.pos === state.selection.from) {
175
+ tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, state.selection.from));
176
+ }
177
+ }
178
+ if (dispatch) {
179
+ (0, _analytics.addAnalytics)(state, tr, {
180
+ action: _analytics.ACTION.UPDATED,
181
+ actionSubject: _analytics.ACTION_SUBJECT.MEDIA,
182
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.BORDER,
183
+ eventType: _analytics.EVENT_TYPE.TRACK,
184
+ attributes: {
185
+ previousColor: borderMark === null || borderMark === void 0 ? void 0 : borderMark.color,
186
+ previousSize: borderMark === null || borderMark === void 0 ? void 0 : borderMark.size,
187
+ newColor: color,
188
+ newSize: size
189
+ }
190
+ });
191
+ dispatch(tr);
192
+ }
193
+ return true;
194
+ };
195
+ };
196
+ exports.setBorderMark = setBorderMark;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.shouldShowImageBorder = shouldShowImageBorder;
7
+ var _currentMediaNode = require("../utils/current-media-node");
8
+ function shouldShowImageBorder(editorState) {
9
+ var border = editorState.schema.marks.border;
10
+ if (!border) {
11
+ return false;
12
+ }
13
+ var nodeWithPos = (0, _currentMediaNode.currentMediaNodeWithPos)(editorState);
14
+ if (!nodeWithPos) {
15
+ return false;
16
+ }
17
+ var _editorState$doc$reso = editorState.doc.resolve(nodeWithPos.pos),
18
+ parent = _editorState$doc$reso.parent;
19
+ return parent && parent.type.allowsMarkType(border);
20
+ }
@@ -30,6 +30,9 @@ var _filePreviewItem = require("./filePreviewItem");
30
30
  var _utils = require("./utils");
31
31
  var _commands = require("./commands");
32
32
  var _styles = require("../nodeviews/styles");
33
+ var _ImageBorder = _interopRequireDefault(require("../ui/ImageBorder"));
34
+ var _currentMediaNode = require("../utils/current-media-node");
35
+ var _imageBorder = require("./imageBorder");
33
36
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
34
37
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
38
  var remove = function remove(state, dispatch) {
@@ -191,7 +194,7 @@ var generateMediaInlineFloatingToolbar = function generateMediaInlineFloatingToo
191
194
  }];
192
195
  return items;
193
196
  };
194
- var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToolbar(state, intl, options, pluginState, mediaLinkingState) {
197
+ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToolbar(state, intl, options, pluginState, mediaLinkingState, getEditorFeatureFlags) {
195
198
  var mediaSingle = state.schema.nodes.mediaSingle;
196
199
  var allowResizing = options.allowResizing,
197
200
  allowLinking = options.allowLinking,
@@ -199,8 +202,33 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
199
202
  allowResizingInTables = options.allowResizingInTables,
200
203
  allowAltTextOnImages = options.allowAltTextOnImages;
201
204
  var toolbarButtons = [];
205
+ if ((0, _imageBorder.shouldShowImageBorder)(state)) {
206
+ toolbarButtons.push({
207
+ type: 'custom',
208
+ fallback: [],
209
+ render: function render(editorView) {
210
+ if (!editorView) {
211
+ return null;
212
+ }
213
+ var dispatch = editorView.dispatch,
214
+ state = editorView.state;
215
+ var borderMark = (0, _currentMediaNode.currentMediaNodeBorderMark)(state);
216
+ return /*#__PURE__*/_react.default.createElement(_ImageBorder.default, {
217
+ toggleBorder: function toggleBorder() {
218
+ (0, _commands.toggleBorderMark)(state, dispatch);
219
+ },
220
+ setBorder: function setBorder(attrs) {
221
+ (0, _commands.setBorderMark)(attrs)(state, dispatch);
222
+ },
223
+ showSomewhatSemanticTooltips: getEditorFeatureFlags === null || getEditorFeatureFlags === void 0 ? void 0 : getEditorFeatureFlags().useSomewhatSemanticTextColorNames,
224
+ borderMark: borderMark,
225
+ intl: intl
226
+ });
227
+ }
228
+ });
229
+ }
202
230
  if (allowAdvancedToolBarOptions) {
203
- toolbarButtons = (0, _MediaAndEmbedsToolbar.default)(state, intl, state.schema.nodes.mediaSingle, allowResizing, allowResizingInTables);
231
+ toolbarButtons = [].concat((0, _toConsumableArray2.default)(toolbarButtons), (0, _toConsumableArray2.default)((0, _MediaAndEmbedsToolbar.default)(state, intl, state.schema.nodes.mediaSingle, allowResizing, allowResizingInTables)));
204
232
  if (toolbarButtons.length) {
205
233
  toolbarButtons.push({
206
234
  type: 'separator'
@@ -289,7 +317,8 @@ var floatingToolbar = function floatingToolbar(state, intl) {
289
317
  allowLinking = options.allowLinking,
290
318
  allowAltTextOnImages = options.allowAltTextOnImages,
291
319
  providerFactory = options.providerFactory,
292
- allowMediaInline = options.allowMediaInline;
320
+ allowMediaInline = options.allowMediaInline,
321
+ getEditorFeatureFlags = options.getEditorFeatureFlags;
293
322
  var mediaPluginState = _pluginKey.stateKey.getState(state);
294
323
  var mediaLinkingState = (0, _linking2.getMediaLinkingState)(state);
295
324
  if (!mediaPluginState) {
@@ -344,7 +373,7 @@ var floatingToolbar = function floatingToolbar(state, intl) {
344
373
  var element = (_mediaPluginState$ele3 = mediaPluginState.element) === null || _mediaPluginState$ele3 === void 0 ? void 0 : _mediaPluginState$ele3.querySelector(".".concat(_styles.MediaSingleNodeSelector));
345
374
  return element || mediaPluginState.element;
346
375
  };
347
- items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState);
376
+ items = generateMediaSingleFloatingToolbar(state, intl, options, mediaPluginState, mediaLinkingState, getEditorFeatureFlags);
348
377
  }
349
378
  return _objectSpread(_objectSpread({}, baseToolbar), {}, {
350
379
  items: items,
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _react = require("@emotion/react");
10
+ var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
11
+ var _styles = require("@atlaskit/editor-common/styles");
12
+ var _imageBorder = _interopRequireDefault(require("@atlaskit/icon/glyph/image-border"));
13
+ var _react2 = require("react");
14
+ var _uiColor = require("@atlaskit/editor-common/ui-color");
15
+ var _editorPalette = require("@atlaskit/editor-palette");
16
+ var _uiMenu = require("@atlaskit/editor-common/ui-menu");
17
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
18
+ var _ui = require("@atlaskit/editor-common/ui");
19
+ var _ToolbarButton = _interopRequireDefault(require("../../../../ui/ToolbarButton"));
20
+ var _styles2 = require("./styles");
21
+ var _messages = require("./messages");
22
+ /** @jsx jsx */
23
+
24
+ var ImageBorder = function ImageBorder(_ref) {
25
+ var formatMessage = _ref.intl.formatMessage,
26
+ toggleBorder = _ref.toggleBorder,
27
+ showSomewhatSemanticTooltips = _ref.showSomewhatSemanticTooltips,
28
+ borderMark = _ref.borderMark,
29
+ setBorder = _ref.setBorder;
30
+ var popupTarget = (0, _react2.useRef)(null);
31
+ var enabled = !!borderMark;
32
+ var color = borderMark === null || borderMark === void 0 ? void 0 : borderMark.color;
33
+ var size = borderMark === null || borderMark === void 0 ? void 0 : borderMark.size;
34
+ var _useState = (0, _react2.useState)(false),
35
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
36
+ isOpen = _useState2[0],
37
+ setIsOpen = _useState2[1];
38
+ var _useState3 = (0, _react2.useState)(false),
39
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
40
+ isColorSubmenuOpen = _useState4[0],
41
+ setIsColorSubmenuOpen = _useState4[1];
42
+ var _useState5 = (0, _react2.useState)(false),
43
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
44
+ isSizeSubmenuOpen = _useState6[0],
45
+ setIsSizeSubmenuOpen = _useState6[1];
46
+ var borderSizeOptions = [{
47
+ name: formatMessage(_messages.messages.borderSizeSubtle),
48
+ value: 1
49
+ }, {
50
+ name: formatMessage(_messages.messages.borderSizeMedium),
51
+ value: 2
52
+ }, {
53
+ name: formatMessage(_messages.messages.borderSizeBold),
54
+ value: 3
55
+ }];
56
+ var items = [{
57
+ content: formatMessage(_messages.messages.borderColor),
58
+ value: {
59
+ name: 'color'
60
+ },
61
+ elemAfter: (0, _react.jsx)("div", {
62
+ className: _styles.DropdownMenuSharedCssClassName.SUBMENU
63
+ }, (0, _react.jsx)("div", {
64
+ css: (0, _styles2.contextualMenuColorIcon)(color && (0, _editorPalette.hexToEditorBorderPaletteColor)(color))
65
+ }), isColorSubmenuOpen && (0, _react.jsx)("div", {
66
+ css: (0, _styles2.contextualSubMenu)(0)
67
+ }, (0, _react.jsx)(_uiColor.ColorPalette, {
68
+ onClick: function onClick(color) {
69
+ setBorder({
70
+ color: color
71
+ });
72
+ setIsOpen(!isOpen);
73
+ },
74
+ selectedColor: color !== null && color !== void 0 ? color : null,
75
+ paletteOptions: {
76
+ palette: _uiColor.borderColorPalette,
77
+ paletteColorTooltipMessages: _uiColor.borderPaletteTooltipMessages,
78
+ hexToPaletteColor: _editorPalette.hexToEditorBorderPaletteColor,
79
+ showSomewhatSemanticTooltips: showSomewhatSemanticTooltips
80
+ }
81
+ })))
82
+ }, {
83
+ content: formatMessage(_messages.messages.borderSize),
84
+ value: {
85
+ name: 'size'
86
+ },
87
+ elemAfter: (0, _react.jsx)("div", {
88
+ className: _styles.DropdownMenuSharedCssClassName.SUBMENU
89
+ }, (0, _react.jsx)("div", {
90
+ css: _styles2.contextualMenuArrow
91
+ }), isSizeSubmenuOpen && (0, _react.jsx)("div", {
92
+ css: (0, _styles2.contextualSubMenu)(1)
93
+ }, borderSizeOptions.map(function (_ref2, idx) {
94
+ var name = _ref2.name,
95
+ value = _ref2.value;
96
+ return (0, _react.jsx)(_tooltip.default, {
97
+ key: idx,
98
+ content: name
99
+ }, (0, _react.jsx)("span", {
100
+ css: _styles2.buttonWrapperStyle
101
+ }, (0, _react.jsx)("button", {
102
+ css: (0, _styles2.buttonStyle)(value === size),
103
+ "aria-label": name,
104
+ role: "radio",
105
+ "aria-checked": value === size,
106
+ onClick: function onClick() {
107
+ setBorder({
108
+ size: value
109
+ });
110
+ setIsOpen(false);
111
+ },
112
+ onMouseDown: function onMouseDown(e) {
113
+ e.preventDefault();
114
+ }
115
+ }, (0, _react.jsx)("div", {
116
+ css: (0, _styles2.line)(value, value === size),
117
+ role: "presentation"
118
+ }))));
119
+ })))
120
+ }];
121
+
122
+ /**
123
+ * We want to change direction of our dropdowns a bit early,
124
+ * not exactly when it hits the boundary.
125
+ */
126
+ var fitTolerance = 10;
127
+ var fitWidth = _styles2.menuItemDimensions.width;
128
+ var fitHeight = items.length * (_styles2.menuItemDimensions.height + _styles2.itemSpacing);
129
+ return (0, _react.jsx)("div", null, (0, _react.jsx)("div", {
130
+ css: (0, _styles2.toolbarButtonWrapper)({
131
+ enabled: enabled,
132
+ isOpen: isOpen
133
+ })
134
+ }, (0, _react.jsx)(_ToolbarButton.default, {
135
+ className: "image-border-toolbar-btn",
136
+ selected: enabled,
137
+ onClick: toggleBorder,
138
+ spacing: "compact",
139
+ "aria-label": enabled ? formatMessage(_messages.messages.removeBorder) : formatMessage(_messages.messages.addBorder),
140
+ iconBefore: (0, _react.jsx)(_imageBorder.default, {
141
+ label: ""
142
+ }),
143
+ title: enabled ? formatMessage(_messages.messages.removeBorder) : formatMessage(_messages.messages.addBorder)
144
+ }), (0, _react.jsx)("div", {
145
+ ref: popupTarget
146
+ }, (0, _react.jsx)(_ToolbarButton.default, {
147
+ className: "image-border-toolbar-dropdown",
148
+ selected: isOpen,
149
+ "aria-label": formatMessage(_messages.messages.borderOptions),
150
+ title: formatMessage(_messages.messages.borderOptions),
151
+ spacing: "compact",
152
+ iconBefore: (0, _react.jsx)(_chevronDown.default, {
153
+ label: ""
154
+ }),
155
+ onClick: function onClick() {
156
+ setIsOpen(!isOpen);
157
+ }
158
+ }))), (0, _react.jsx)(_ui.Popup, {
159
+ target: popupTarget.current ? popupTarget.current : undefined,
160
+ fitWidth: fitWidth + fitTolerance,
161
+ fitHeight: fitHeight + fitTolerance,
162
+ forcePlacement: true,
163
+ stick: true
164
+ }, (0, _react.jsx)("div", {
165
+ onMouseLeave: function onMouseLeave() {
166
+ setIsColorSubmenuOpen(false);
167
+ setIsSizeSubmenuOpen(false);
168
+ }
169
+ }, (0, _react.jsx)(_uiMenu.DropdownMenu
170
+ //This needs be removed when the a11y is completely handled
171
+ //Disabling key navigation now as it works only partially
172
+ //Same with packages/editor/editor-plugin-table/src/plugins/table/ui/FloatingContextualMenu/ContextualMenu.tsx
173
+ , {
174
+ arrowKeyNavigationProviderOptions: {
175
+ type: _uiMenu.ArrowKeyNavigationType.MENU,
176
+ disableArrowKeyNavigation: true
177
+ },
178
+ items: [{
179
+ items: items
180
+ }],
181
+ isOpen: isOpen,
182
+ onOpenChange: function onOpenChange() {
183
+ setIsOpen(false);
184
+ setIsColorSubmenuOpen(false);
185
+ setIsSizeSubmenuOpen(false);
186
+ },
187
+ onItemActivated: function onItemActivated(_ref3) {
188
+ var item = _ref3.item;
189
+ if (item.value.name === 'color') {
190
+ setIsColorSubmenuOpen(!isColorSubmenuOpen);
191
+ }
192
+ if (item.value.name === 'size') {
193
+ setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
194
+ }
195
+ },
196
+ onMouseEnter: function onMouseEnter(_ref4) {
197
+ var item = _ref4.item;
198
+ if (item.value.name === 'color') {
199
+ setIsColorSubmenuOpen(true);
200
+ }
201
+ if (item.value.name === 'size') {
202
+ setIsSizeSubmenuOpen(true);
203
+ }
204
+ },
205
+ onMouseLeave: function onMouseLeave(_ref5) {
206
+ var item = _ref5.item;
207
+ if (item.value.name === 'color') {
208
+ setIsColorSubmenuOpen(false);
209
+ }
210
+ if (item.value.name === 'size') {
211
+ setIsSizeSubmenuOpen(false);
212
+ }
213
+ },
214
+ fitWidth: fitWidth + fitTolerance,
215
+ fitHeight: fitHeight + fitTolerance
216
+ }))));
217
+ };
218
+ var _default = ImageBorder;
219
+ exports.default = _default;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.messages = void 0;
7
+ var _reactIntlNext = require("react-intl-next");
8
+ var messages = (0, _reactIntlNext.defineMessages)({
9
+ borderColor: {
10
+ id: 'fabric.editor.imageBorderColor',
11
+ defaultMessage: 'Color',
12
+ description: 'Change the border color of an image.'
13
+ },
14
+ borderSize: {
15
+ id: 'fabric.editor.imageBorderSize',
16
+ defaultMessage: 'Size',
17
+ description: 'Change the border size of an image.'
18
+ },
19
+ addBorder: {
20
+ id: 'fabric.editor.addImageBorder',
21
+ defaultMessage: 'Add border',
22
+ description: 'Add a border to an image.'
23
+ },
24
+ removeBorder: {
25
+ id: 'fabric.editor.removeImageBorder',
26
+ defaultMessage: 'Remove border',
27
+ description: 'Remove the border of an image.'
28
+ },
29
+ borderOptions: {
30
+ id: 'fabric.editor.imageBorderOptions',
31
+ defaultMessage: 'Border options',
32
+ description: 'Display options available for customizing the border of an image.'
33
+ },
34
+ borderSizeSubtle: {
35
+ id: 'fabric.editor.imageBorderSubtle',
36
+ defaultMessage: 'Subtle',
37
+ description: 'Name of a border size.'
38
+ },
39
+ borderSizeMedium: {
40
+ id: 'fabric.editor.imageBorderMedium',
41
+ defaultMessage: 'Medium',
42
+ description: 'Name of a border size.'
43
+ },
44
+ borderSizeBold: {
45
+ id: 'fabric.editor.imageBorderBold',
46
+ defaultMessage: 'Bold',
47
+ description: 'Name of a border size.'
48
+ }
49
+ });
50
+ exports.messages = messages;