@atlaskit/editor-core 181.0.0 → 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 (351) hide show
  1. package/CHANGELOG.md +47 -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/create-plugins-list.js +7 -2
  6. package/dist/cjs/create-editor/feature-flags-from-props.js +31 -26
  7. package/dist/cjs/create-editor/sort-by-order.js +12 -0
  8. package/dist/cjs/editor-next/editor-migration-component.js +4 -1
  9. package/dist/cjs/editor-next/utils/deprecationWarnings.js +0 -5
  10. package/dist/cjs/labs/next/full-page.js +2 -1
  11. package/dist/cjs/labs/next/presets/default.js +2 -1
  12. package/dist/cjs/labs/next/presets/universal.js +7 -1
  13. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +2 -1
  14. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +4 -7
  15. package/dist/cjs/plugins/analytics/plugin.js +6 -6
  16. package/dist/cjs/plugins/avatar-group/index.js +5 -2
  17. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  18. package/dist/cjs/plugins/base/index.js +4 -2
  19. package/dist/cjs/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  20. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  21. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/index.js +2 -8
  22. package/dist/cjs/plugins/border/index.js +20 -0
  23. package/dist/cjs/plugins/card/index.js +4 -2
  24. package/dist/cjs/plugins/card/toolbar.js +12 -15
  25. package/dist/cjs/plugins/card/ui/EditLinkToolbar.js +7 -3
  26. package/dist/cjs/plugins/code-block/toolbar.js +1 -1
  27. package/dist/cjs/plugins/collab-edit/analytics.js +2 -3
  28. package/dist/cjs/plugins/collab-edit/events/handlers.js +2 -2
  29. package/dist/cjs/plugins/collab-edit/events/initialize.js +3 -2
  30. package/dist/cjs/plugins/collab-edit/index.js +5 -3
  31. package/dist/cjs/plugins/collab-edit/plugin.js +4 -3
  32. package/dist/cjs/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  33. package/dist/cjs/plugins/collab-edit/ui/avatars.js +2 -3
  34. package/dist/cjs/plugins/date/index.js +90 -64
  35. package/dist/cjs/plugins/editor-disabled/index.js +8 -0
  36. package/dist/cjs/plugins/expand/index.js +4 -1
  37. package/dist/cjs/plugins/expand/nodeviews/index.js +6 -7
  38. package/dist/cjs/plugins/expand/pm-plugins/main.js +5 -2
  39. package/dist/cjs/plugins/extension/extension-api.js +27 -14
  40. package/dist/cjs/plugins/extension/pm-plugins/main.js +117 -177
  41. package/dist/cjs/plugins/extension/pm-plugins/utils.js +80 -0
  42. package/dist/cjs/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +7 -11
  43. package/dist/cjs/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -4
  44. package/dist/cjs/plugins/find-replace/index.js +5 -2
  45. package/dist/cjs/plugins/floating-toolbar/index.js +15 -7
  46. package/dist/cjs/plugins/floating-toolbar/ui/CheckboxModal.js +2 -1
  47. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  48. package/dist/cjs/plugins/floating-toolbar/ui/SimpleModal.js +2 -1
  49. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  50. package/dist/cjs/plugins/hyperlink/Toolbar.js +9 -12
  51. package/dist/cjs/plugins/hyperlink/index.js +6 -2
  52. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -4
  53. package/dist/cjs/plugins/index.js +7 -0
  54. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  55. package/dist/cjs/plugins/list/actions/outdent-list-items-selected.js +5 -5
  56. package/dist/cjs/plugins/list/commands/index.js +31 -27
  57. package/dist/cjs/plugins/list/commands/outdent-list.js +2 -3
  58. package/dist/cjs/plugins/list/index.js +4 -3
  59. package/dist/cjs/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  60. package/dist/cjs/plugins/list/pm-plugins/input-rules/index.js +2 -1
  61. package/dist/cjs/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +58 -0
  62. package/dist/cjs/plugins/list/pm-plugins/keymap.js +4 -4
  63. package/dist/cjs/plugins/list/pm-plugins/main.js +23 -21
  64. package/dist/cjs/plugins/media/nodeviews/mediaNodeView/media.js +6 -1
  65. package/dist/cjs/plugins/media/nodeviews/styles.js +13 -1
  66. package/dist/cjs/plugins/media/toolbar/commands.js +105 -2
  67. package/dist/cjs/plugins/media/toolbar/imageBorder.js +20 -0
  68. package/dist/cjs/plugins/media/toolbar/index.js +33 -4
  69. package/dist/cjs/plugins/media/ui/ImageBorder/index.js +219 -0
  70. package/dist/cjs/plugins/media/ui/ImageBorder/messages.js +50 -0
  71. package/dist/cjs/plugins/media/ui/ImageBorder/styles.js +54 -0
  72. package/dist/cjs/plugins/media/utils/current-media-node.js +28 -5
  73. package/dist/cjs/plugins/paste/util/index.js +2 -0
  74. package/dist/cjs/plugins/rank.js +1 -1
  75. package/dist/cjs/plugins/rule/pm-plugins/input-rule.js +5 -0
  76. package/dist/cjs/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  77. package/dist/cjs/plugins/toolbar-lists-indentation/index.js +3 -1
  78. package/dist/cjs/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  79. package/dist/cjs/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  80. package/dist/cjs/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  81. package/dist/cjs/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  82. package/dist/cjs/plugins/type-ahead/index.js +4 -1
  83. package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +4 -2
  84. package/dist/cjs/plugins/type-ahead/pm-plugins/main.js +4 -2
  85. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +41 -4
  86. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +2 -0
  87. package/dist/cjs/plugins/type-ahead/ui/WrapperTypeAhead.js +9 -5
  88. package/dist/cjs/plugins/type-ahead/utils.js +22 -2
  89. package/dist/cjs/test-utils.js +3 -1
  90. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  91. package/dist/cjs/ui/styles.js +1 -1
  92. package/dist/cjs/utils/input-rules.js +0 -17
  93. package/dist/cjs/utils/insert.js +53 -7
  94. package/dist/cjs/version-wrapper.js +1 -1
  95. package/dist/cjs/version.json +1 -1
  96. package/dist/es2019/create-editor/create-plugins-list.js +7 -2
  97. package/dist/es2019/create-editor/feature-flags-from-props.js +31 -26
  98. package/dist/es2019/create-editor/sort-by-order.js +11 -0
  99. package/dist/es2019/editor-next/editor-migration-component.js +4 -1
  100. package/dist/es2019/editor-next/utils/deprecationWarnings.js +0 -5
  101. package/dist/es2019/labs/next/full-page.js +2 -1
  102. package/dist/es2019/labs/next/presets/default.js +2 -1
  103. package/dist/es2019/labs/next/presets/universal.js +8 -2
  104. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +3 -2
  105. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +0 -8
  106. package/dist/es2019/plugins/analytics/plugin.js +45 -43
  107. package/dist/es2019/plugins/avatar-group/index.js +26 -21
  108. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  109. package/dist/es2019/plugins/base/index.js +101 -97
  110. package/dist/es2019/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  111. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  112. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/index.js +2 -7
  113. package/dist/es2019/plugins/border/index.js +11 -0
  114. package/dist/es2019/plugins/card/index.js +4 -2
  115. package/dist/es2019/plugins/card/toolbar.js +10 -11
  116. package/dist/es2019/plugins/card/ui/EditLinkToolbar.js +7 -3
  117. package/dist/es2019/plugins/code-block/toolbar.js +2 -2
  118. package/dist/es2019/plugins/collab-edit/analytics.js +2 -3
  119. package/dist/es2019/plugins/collab-edit/events/handlers.js +2 -2
  120. package/dist/es2019/plugins/collab-edit/events/initialize.js +3 -2
  121. package/dist/es2019/plugins/collab-edit/index.js +5 -3
  122. package/dist/es2019/plugins/collab-edit/plugin.js +4 -3
  123. package/dist/es2019/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  124. package/dist/es2019/plugins/collab-edit/ui/avatars.js +2 -3
  125. package/dist/es2019/plugins/date/index.js +92 -64
  126. package/dist/es2019/plugins/editor-disabled/index.js +8 -0
  127. package/dist/es2019/plugins/expand/index.js +57 -53
  128. package/dist/es2019/plugins/expand/nodeviews/index.js +6 -9
  129. package/dist/es2019/plugins/expand/pm-plugins/main.js +5 -3
  130. package/dist/es2019/plugins/extension/extension-api.js +31 -13
  131. package/dist/es2019/plugins/extension/pm-plugins/main.js +77 -96
  132. package/dist/es2019/plugins/extension/pm-plugins/utils.js +30 -0
  133. package/dist/es2019/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +1 -8
  134. package/dist/es2019/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -3
  135. package/dist/es2019/plugins/find-replace/index.js +5 -2
  136. package/dist/es2019/plugins/floating-toolbar/index.js +159 -149
  137. package/dist/es2019/plugins/floating-toolbar/ui/CheckboxModal.js +4 -1
  138. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  139. package/dist/es2019/plugins/floating-toolbar/ui/SimpleModal.js +4 -1
  140. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  141. package/dist/es2019/plugins/hyperlink/Toolbar.js +7 -9
  142. package/dist/es2019/plugins/hyperlink/index.js +66 -62
  143. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -3
  144. package/dist/es2019/plugins/index.js +2 -1
  145. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  146. package/dist/es2019/plugins/list/actions/outdent-list-items-selected.js +5 -5
  147. package/dist/es2019/plugins/list/commands/index.js +4 -4
  148. package/dist/es2019/plugins/list/commands/outdent-list.js +2 -4
  149. package/dist/es2019/plugins/list/index.js +80 -77
  150. package/dist/es2019/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  151. package/dist/es2019/plugins/list/pm-plugins/input-rules/index.js +2 -1
  152. package/dist/es2019/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +52 -0
  153. package/dist/es2019/plugins/list/pm-plugins/keymap.js +4 -4
  154. package/dist/es2019/plugins/list/pm-plugins/main.js +46 -46
  155. package/dist/es2019/plugins/media/nodeviews/mediaNodeView/media.js +4 -1
  156. package/dist/es2019/plugins/media/nodeviews/styles.js +12 -1
  157. package/dist/es2019/plugins/media/toolbar/commands.js +93 -0
  158. package/dist/es2019/plugins/media/toolbar/imageBorder.js +15 -0
  159. package/dist/es2019/plugins/media/toolbar/index.js +36 -5
  160. package/dist/es2019/plugins/media/ui/ImageBorder/index.js +206 -0
  161. package/dist/es2019/plugins/media/ui/ImageBorder/messages.js +43 -0
  162. package/dist/es2019/plugins/media/ui/ImageBorder/styles.js +124 -0
  163. package/dist/es2019/plugins/media/utils/current-media-node.js +22 -3
  164. package/dist/es2019/plugins/paste/util/index.js +2 -0
  165. package/dist/es2019/plugins/rank.js +1 -1
  166. package/dist/es2019/plugins/rule/pm-plugins/input-rule.js +7 -0
  167. package/dist/es2019/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  168. package/dist/es2019/plugins/toolbar-lists-indentation/index.js +59 -55
  169. package/dist/es2019/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  170. package/dist/es2019/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  171. package/dist/es2019/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  172. package/dist/es2019/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  173. package/dist/es2019/plugins/type-ahead/index.js +4 -1
  174. package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +4 -2
  175. package/dist/es2019/plugins/type-ahead/pm-plugins/main.js +4 -2
  176. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +41 -4
  177. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +2 -0
  178. package/dist/es2019/plugins/type-ahead/ui/WrapperTypeAhead.js +9 -5
  179. package/dist/es2019/plugins/type-ahead/utils.js +22 -2
  180. package/dist/es2019/test-utils.js +3 -1
  181. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  182. package/dist/es2019/ui/styles.js +1 -0
  183. package/dist/es2019/utils/input-rules.js +0 -17
  184. package/dist/es2019/utils/insert.js +61 -10
  185. package/dist/es2019/version-wrapper.js +1 -1
  186. package/dist/es2019/version.json +1 -1
  187. package/dist/esm/create-editor/create-plugins-list.js +7 -2
  188. package/dist/esm/create-editor/feature-flags-from-props.js +31 -26
  189. package/dist/esm/create-editor/sort-by-order.js +11 -0
  190. package/dist/esm/editor-next/editor-migration-component.js +3 -0
  191. package/dist/esm/editor-next/utils/deprecationWarnings.js +0 -5
  192. package/dist/esm/labs/next/full-page.js +2 -1
  193. package/dist/esm/labs/next/presets/default.js +2 -1
  194. package/dist/esm/labs/next/presets/universal.js +8 -2
  195. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +3 -2
  196. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +3 -5
  197. package/dist/esm/plugins/analytics/plugin.js +6 -6
  198. package/dist/esm/plugins/avatar-group/index.js +5 -2
  199. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  200. package/dist/esm/plugins/base/index.js +4 -2
  201. package/dist/esm/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  202. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  203. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/index.js +2 -8
  204. package/dist/esm/plugins/border/index.js +13 -0
  205. package/dist/esm/plugins/card/index.js +4 -2
  206. package/dist/esm/plugins/card/toolbar.js +12 -15
  207. package/dist/esm/plugins/card/ui/EditLinkToolbar.js +7 -3
  208. package/dist/esm/plugins/code-block/toolbar.js +2 -2
  209. package/dist/esm/plugins/collab-edit/analytics.js +2 -3
  210. package/dist/esm/plugins/collab-edit/events/handlers.js +2 -2
  211. package/dist/esm/plugins/collab-edit/events/initialize.js +3 -2
  212. package/dist/esm/plugins/collab-edit/index.js +5 -3
  213. package/dist/esm/plugins/collab-edit/plugin.js +4 -3
  214. package/dist/esm/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  215. package/dist/esm/plugins/collab-edit/ui/avatars.js +2 -3
  216. package/dist/esm/plugins/date/index.js +90 -64
  217. package/dist/esm/plugins/editor-disabled/index.js +8 -0
  218. package/dist/esm/plugins/expand/index.js +4 -1
  219. package/dist/esm/plugins/expand/nodeviews/index.js +6 -7
  220. package/dist/esm/plugins/expand/pm-plugins/main.js +5 -2
  221. package/dist/esm/plugins/extension/extension-api.js +24 -12
  222. package/dist/esm/plugins/extension/pm-plugins/main.js +113 -173
  223. package/dist/esm/plugins/extension/pm-plugins/utils.js +72 -0
  224. package/dist/esm/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +1 -10
  225. package/dist/esm/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -4
  226. package/dist/esm/plugins/find-replace/index.js +5 -2
  227. package/dist/esm/plugins/floating-toolbar/index.js +15 -7
  228. package/dist/esm/plugins/floating-toolbar/ui/CheckboxModal.js +2 -1
  229. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  230. package/dist/esm/plugins/floating-toolbar/ui/SimpleModal.js +2 -1
  231. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  232. package/dist/esm/plugins/hyperlink/Toolbar.js +9 -13
  233. package/dist/esm/plugins/hyperlink/index.js +6 -2
  234. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -4
  235. package/dist/esm/plugins/index.js +2 -1
  236. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  237. package/dist/esm/plugins/list/actions/outdent-list-items-selected.js +5 -5
  238. package/dist/esm/plugins/list/commands/index.js +31 -27
  239. package/dist/esm/plugins/list/commands/outdent-list.js +2 -3
  240. package/dist/esm/plugins/list/index.js +4 -3
  241. package/dist/esm/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  242. package/dist/esm/plugins/list/pm-plugins/input-rules/index.js +2 -1
  243. package/dist/esm/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +51 -0
  244. package/dist/esm/plugins/list/pm-plugins/keymap.js +4 -4
  245. package/dist/esm/plugins/list/pm-plugins/main.js +23 -21
  246. package/dist/esm/plugins/media/nodeviews/mediaNodeView/media.js +6 -1
  247. package/dist/esm/plugins/media/nodeviews/styles.js +13 -1
  248. package/dist/esm/plugins/media/toolbar/commands.js +99 -0
  249. package/dist/esm/plugins/media/toolbar/imageBorder.js +14 -0
  250. package/dist/esm/plugins/media/toolbar/index.js +34 -5
  251. package/dist/esm/plugins/media/ui/ImageBorder/index.js +211 -0
  252. package/dist/esm/plugins/media/ui/ImageBorder/messages.js +43 -0
  253. package/dist/esm/plugins/media/ui/ImageBorder/styles.js +37 -0
  254. package/dist/esm/plugins/media/utils/current-media-node.js +24 -3
  255. package/dist/esm/plugins/paste/util/index.js +2 -0
  256. package/dist/esm/plugins/rank.js +1 -1
  257. package/dist/esm/plugins/rule/pm-plugins/input-rule.js +5 -0
  258. package/dist/esm/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  259. package/dist/esm/plugins/toolbar-lists-indentation/index.js +3 -1
  260. package/dist/esm/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  261. package/dist/esm/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  262. package/dist/esm/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  263. package/dist/esm/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  264. package/dist/esm/plugins/type-ahead/index.js +4 -1
  265. package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +4 -2
  266. package/dist/esm/plugins/type-ahead/pm-plugins/main.js +4 -2
  267. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +41 -4
  268. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +2 -0
  269. package/dist/esm/plugins/type-ahead/ui/WrapperTypeAhead.js +9 -5
  270. package/dist/esm/plugins/type-ahead/utils.js +22 -2
  271. package/dist/esm/test-utils.js +3 -1
  272. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  273. package/dist/esm/ui/styles.js +1 -1
  274. package/dist/esm/utils/input-rules.js +0 -17
  275. package/dist/esm/utils/insert.js +56 -10
  276. package/dist/esm/version-wrapper.js +1 -1
  277. package/dist/esm/version.json +1 -1
  278. package/dist/types/create-editor/sort-by-order.d.ts +9 -0
  279. package/dist/types/editor-next/editor-migration-component.d.ts +1 -0
  280. package/dist/types/labs/next/presets/cxhtml.d.ts +36 -2
  281. package/dist/types/labs/next/presets/default.d.ts +72 -4
  282. package/dist/types/labs/next/presets/mobile.d.ts +36 -2
  283. package/dist/types/plugins/alignment/ui/ToolbarAlignment/styles.d.ts +0 -1
  284. package/dist/types/plugins/analytics/plugin.d.ts +2 -0
  285. package/dist/types/plugins/avatar-group/index.d.ts +2 -0
  286. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +2 -0
  287. package/dist/types/plugins/base/index.d.ts +2 -0
  288. package/dist/types/plugins/base/pm-plugins/disable-spell-checking.d.ts +2 -1
  289. package/dist/types/plugins/border/index.d.ts +3 -0
  290. package/dist/types/plugins/card/index.d.ts +2 -0
  291. package/dist/types/plugins/card/toolbar.d.ts +2 -1
  292. package/dist/types/plugins/card/ui/EditLinkToolbar.d.ts +5 -2
  293. package/dist/types/plugins/collab-edit/analytics.d.ts +2 -1
  294. package/dist/types/plugins/collab-edit/events/handlers.d.ts +2 -1
  295. package/dist/types/plugins/collab-edit/events/initialize.d.ts +3 -1
  296. package/dist/types/plugins/collab-edit/index.d.ts +2 -0
  297. package/dist/types/plugins/collab-edit/plugin.d.ts +2 -1
  298. package/dist/types/plugins/collab-edit/ui/avatars-with-plugin-state.d.ts +4 -0
  299. package/dist/types/plugins/collab-edit/ui/avatars.d.ts +2 -0
  300. package/dist/types/plugins/date/index.d.ts +9 -1
  301. package/dist/types/plugins/editor-disabled/index.d.ts +3 -1
  302. package/dist/types/plugins/expand/index.d.ts +2 -0
  303. package/dist/types/plugins/expand/nodeviews/index.d.ts +5 -2
  304. package/dist/types/plugins/expand/pm-plugins/main.d.ts +2 -1
  305. package/dist/types/plugins/extension/pm-plugins/main.d.ts +8 -2
  306. package/dist/types/plugins/extension/pm-plugins/utils.d.ts +3 -0
  307. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -7
  308. package/dist/types/plugins/find-replace/FindReplaceToolbarButtonWithState.d.ts +2 -0
  309. package/dist/types/plugins/find-replace/index.d.ts +2 -0
  310. package/dist/types/plugins/floating-toolbar/index.d.ts +4 -1
  311. package/dist/types/plugins/floating-toolbar/ui/Toolbar.d.ts +2 -0
  312. package/dist/types/plugins/hyperlink/Toolbar.d.ts +2 -1
  313. package/dist/types/plugins/hyperlink/index.d.ts +2 -0
  314. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/index.d.ts +2 -0
  315. package/dist/types/plugins/index.d.ts +1 -0
  316. package/dist/types/plugins/list/actions/outdent-list-items-selected.d.ts +2 -1
  317. package/dist/types/plugins/list/commands/index.d.ts +3 -2
  318. package/dist/types/plugins/list/commands/outdent-list.d.ts +2 -1
  319. package/dist/types/plugins/list/index.d.ts +2 -0
  320. package/dist/types/plugins/list/pm-plugins/input-rules/create-list-input-rule.d.ts +1 -1
  321. package/dist/types/plugins/list/pm-plugins/input-rules/wrapping-join-rule.d.ts +13 -0
  322. package/dist/types/plugins/list/pm-plugins/keymap.d.ts +2 -1
  323. package/dist/types/plugins/list/pm-plugins/main.d.ts +3 -2
  324. package/dist/types/plugins/media/nodeviews/styles.d.ts +3 -1
  325. package/dist/types/plugins/media/toolbar/commands.d.ts +5 -0
  326. package/dist/types/plugins/media/toolbar/imageBorder.d.ts +2 -0
  327. package/dist/types/plugins/media/types.d.ts +3 -0
  328. package/dist/types/plugins/media/ui/ImageBorder/index.d.ts +13 -0
  329. package/dist/types/plugins/media/ui/ImageBorder/messages.d.ts +42 -0
  330. package/dist/types/plugins/media/ui/ImageBorder/styles.d.ts +15 -0
  331. package/dist/types/plugins/media/utils/current-media-node.d.ts +6 -0
  332. package/dist/types/plugins/text-color/pm-plugins/main.d.ts +0 -2
  333. package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +2 -0
  334. package/dist/types/plugins/toolbar-lists-indentation/types.d.ts +2 -0
  335. package/dist/types/plugins/toolbar-lists-indentation/ui/index.d.ts +2 -0
  336. package/dist/types/plugins/toolbar-lists-indentation/ui/onItemActivated.d.ts +3 -1
  337. package/dist/types/plugins/type-ahead/index.d.ts +1 -0
  338. package/dist/types/plugins/type-ahead/pm-plugins/decorations.d.ts +2 -1
  339. package/dist/types/plugins/type-ahead/pm-plugins/main.d.ts +2 -1
  340. package/dist/types/plugins/type-ahead/ui/InputQuery.d.ts +1 -0
  341. package/dist/types/plugins/type-ahead/ui/WrapperTypeAhead.d.ts +1 -0
  342. package/dist/types/plugins/type-ahead/utils.d.ts +2 -1
  343. package/dist/types/test-utils.d.ts +4 -2
  344. package/dist/types/types/editor-props.d.ts +5 -0
  345. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +5 -5
  346. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  347. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  348. package/package.json +13 -12
  349. package/report.api.md +12 -4
  350. package/codemods/__tests__/rename-experimental-text-color-prop.ts +0 -204
  351. package/codemods/migrates/rename-experimental-text-color-prop.ts +0 -6
@@ -19,7 +19,6 @@ import { ConfirmationModal } from './ui/ConfirmationModal';
19
19
  import { ToolbarLoader } from './ui/ToolbarLoader';
20
20
  import { findNode } from './utils';
21
21
  import { ErrorBoundary } from '../../ui/ErrorBoundary';
22
- import { getFeatureFlags } from '../feature-flags-context';
23
22
  import { processCopyButtonItems } from '../copy-button/toolbar';
24
23
  import forceFocusPlugin from './pm-plugins/force-focus';
25
24
  export const getRelevantConfig = (selection, configs) => {
@@ -113,156 +112,167 @@ const getDomRefFromSelection = (view, dispatchAnalyticsEvent) => {
113
112
  function filterUndefined(x) {
114
113
  return !!x;
115
114
  }
116
- const floatingToolbarPlugin = () => ({
117
- name: 'floatingToolbar',
118
- pmPlugins(floatingToolbarHandlers = []) {
119
- return [{
120
- // Should be after all toolbar plugins
121
- name: 'floatingToolbar',
122
- plugin: ({
123
- dispatch,
124
- providerFactory,
125
- getIntl
126
- }) => floatingToolbarPluginFactory({
127
- floatingToolbarHandlers,
128
- dispatch,
129
- providerFactory,
130
- getIntl
131
- })
132
- }, {
133
- name: 'floatingToolbarData',
134
- plugin: ({
135
- dispatch
136
- }) => floatingToolbarDataPluginFactory(dispatch)
137
- }, {
138
- name: 'forceFocus',
139
- plugin: () => forceFocusPlugin()
140
- }];
141
- },
142
- contentComponent({
143
- popupsMountPoint,
144
- popupsBoundariesElement,
145
- popupsScrollableElement,
146
- editorView,
147
- providerFactory,
148
- dispatchAnalyticsEvent
149
- }) {
150
- return /*#__PURE__*/React.createElement(WithPluginState, {
151
- plugins: {
152
- floatingToolbarState: pluginKey,
153
- floatingToolbarData: dataPluginKey,
154
- editorDisabledPlugin: editorDisabledPluginKey,
155
- extensionsState: extensionsPluginKey
156
- },
157
- render: ({
158
- editorDisabledPlugin,
159
- floatingToolbarState,
160
- floatingToolbarData,
161
- extensionsState
162
- }) => {
163
- var _configWithNodeInfo$c, _configWithNodeInfo$c2;
164
- const configWithNodeInfo = floatingToolbarState === null || floatingToolbarState === void 0 ? void 0 : floatingToolbarState.getConfigWithNodeInfo(editorView.state);
165
- if (!configWithNodeInfo || !configWithNodeInfo.config || typeof ((_configWithNodeInfo$c = configWithNodeInfo.config) === null || _configWithNodeInfo$c === void 0 ? void 0 : _configWithNodeInfo$c.visible) !== 'undefined' && !((_configWithNodeInfo$c2 = configWithNodeInfo.config) !== null && _configWithNodeInfo$c2 !== void 0 && _configWithNodeInfo$c2.visible)) {
166
- return null;
167
- }
168
- const {
169
- config,
170
- node
171
- } = configWithNodeInfo;
172
- const {
173
- title,
174
- getDomRef = getDomRefFromSelection,
175
- items,
176
- align = 'center',
177
- className = '',
178
- height,
179
- width,
180
- zIndex,
181
- offset = [0, 12],
182
- forcePlacement,
183
- preventPopupOverflow,
184
- onPositionCalculated,
185
- focusTrap
186
- } = config;
187
- const targetRef = getDomRef(editorView, dispatchAnalyticsEvent);
188
- if (!targetRef || editorDisabledPlugin && editorDisabledPlugin.editorDisabled) {
189
- return null;
190
- }
191
- let customPositionCalculation;
192
- const toolbarItems = processCopyButtonItems(editorView.state)(Array.isArray(items) ? items : items(node));
193
- if (onPositionCalculated) {
194
- customPositionCalculation = nextPos => {
195
- return onPositionCalculated(editorView, nextPos);
196
- };
197
- }
198
- const dispatchCommand = fn => fn && fn(editorView.state, editorView.dispatch, editorView);
115
+ const floatingToolbarPlugin = (_, api) => {
116
+ var _api$dependencies, _api$dependencies$fea;
117
+ const featureFlags = (api === null || api === void 0 ? void 0 : (_api$dependencies = api.dependencies) === null || _api$dependencies === void 0 ? void 0 : (_api$dependencies$fea = _api$dependencies.featureFlags) === null || _api$dependencies$fea === void 0 ? void 0 : _api$dependencies$fea.sharedState.currentState()) || {};
118
+ return {
119
+ name: 'floatingToolbar',
120
+ pmPlugins(floatingToolbarHandlers = []) {
121
+ return [{
122
+ // Should be after all toolbar plugins
123
+ name: 'floatingToolbar',
124
+ plugin: ({
125
+ dispatch,
126
+ providerFactory,
127
+ getIntl
128
+ }) => floatingToolbarPluginFactory({
129
+ floatingToolbarHandlers,
130
+ dispatch,
131
+ providerFactory,
132
+ getIntl
133
+ })
134
+ }, {
135
+ name: 'floatingToolbarData',
136
+ plugin: ({
137
+ dispatch
138
+ }) => floatingToolbarDataPluginFactory(dispatch)
139
+ }, {
140
+ name: 'forceFocus',
141
+ plugin: () => forceFocusPlugin()
142
+ }];
143
+ },
144
+ contentComponent({
145
+ popupsMountPoint,
146
+ popupsBoundariesElement,
147
+ popupsScrollableElement,
148
+ editorView,
149
+ providerFactory,
150
+ dispatchAnalyticsEvent
151
+ }) {
152
+ return /*#__PURE__*/React.createElement(WithPluginState, {
153
+ plugins: {
154
+ floatingToolbarState: pluginKey,
155
+ floatingToolbarData: dataPluginKey,
156
+ editorDisabledPlugin: editorDisabledPluginKey,
157
+ extensionsState: extensionsPluginKey
158
+ },
159
+ render: ({
160
+ editorDisabledPlugin,
161
+ floatingToolbarState,
162
+ floatingToolbarData,
163
+ extensionsState
164
+ }) => {
165
+ var _configWithNodeInfo$c, _configWithNodeInfo$c2;
166
+ const configWithNodeInfo = floatingToolbarState === null || floatingToolbarState === void 0 ? void 0 : floatingToolbarState.getConfigWithNodeInfo(editorView.state);
167
+ if (!configWithNodeInfo || !configWithNodeInfo.config || typeof ((_configWithNodeInfo$c = configWithNodeInfo.config) === null || _configWithNodeInfo$c === void 0 ? void 0 : _configWithNodeInfo$c.visible) !== 'undefined' && !((_configWithNodeInfo$c2 = configWithNodeInfo.config) !== null && _configWithNodeInfo$c2 !== void 0 && _configWithNodeInfo$c2.visible)) {
168
+ return null;
169
+ }
170
+ const {
171
+ config,
172
+ node
173
+ } = configWithNodeInfo;
174
+ const {
175
+ title,
176
+ getDomRef = getDomRefFromSelection,
177
+ items,
178
+ align = 'center',
179
+ className = '',
180
+ height,
181
+ width,
182
+ zIndex,
183
+ offset = [0, 12],
184
+ forcePlacement,
185
+ preventPopupOverflow,
186
+ onPositionCalculated,
187
+ focusTrap
188
+ } = config;
189
+ const targetRef = getDomRef(editorView, dispatchAnalyticsEvent);
190
+ if (!targetRef || editorDisabledPlugin && editorDisabledPlugin.editorDisabled) {
191
+ return null;
192
+ }
193
+ let customPositionCalculation;
194
+ const toolbarItems = processCopyButtonItems(editorView.state)(Array.isArray(items) ? items : items(node));
195
+ if (onPositionCalculated) {
196
+ customPositionCalculation = nextPos => {
197
+ return onPositionCalculated(editorView, nextPos);
198
+ };
199
+ }
200
+ const dispatchCommand = fn => fn && fn(editorView.state, editorView.dispatch, editorView);
199
201
 
200
- // Confirm dialog
201
- const {
202
- confirmDialogForItem
203
- } = floatingToolbarData || {};
204
- const confirmButtonItem = confirmDialogForItem ? toolbarItems[confirmDialogForItem] : undefined;
205
- const scrollable = getFeatureFlags(editorView.state).floatingToolbarCopyButton && config.scrollable;
206
- const confirmDialogOptions = typeof (confirmButtonItem === null || confirmButtonItem === void 0 ? void 0 : confirmButtonItem.confirmDialog) === 'function' ? confirmButtonItem === null || confirmButtonItem === void 0 ? void 0 : confirmButtonItem.confirmDialog() : confirmButtonItem === null || confirmButtonItem === void 0 ? void 0 : confirmButtonItem.confirmDialog;
207
- return /*#__PURE__*/React.createElement(ErrorBoundary, {
208
- component: ACTION_SUBJECT.FLOATING_TOOLBAR_PLUGIN,
209
- componentId: camelCase(title),
210
- dispatchAnalyticsEvent: dispatchAnalyticsEvent,
211
- fallbackComponent: null
212
- }, /*#__PURE__*/React.createElement(Popup, {
213
- ariaLabel: title,
214
- offset: offset,
215
- target: targetRef,
216
- alignY: "bottom",
217
- forcePlacement: forcePlacement,
218
- fitHeight: height,
219
- fitWidth: width,
220
- alignX: align,
221
- stick: true,
222
- zIndex: zIndex,
223
- mountTo: popupsMountPoint,
224
- boundariesElement: popupsBoundariesElement,
225
- scrollableElement: popupsScrollableElement,
226
- onPositionCalculated: customPositionCalculation,
227
- style: scrollable ? {
228
- maxWidth: '100%'
229
- } : {},
230
- focusTrap: focusTrap,
231
- preventOverflow: preventPopupOverflow
232
- }, /*#__PURE__*/React.createElement(ToolbarLoader, {
233
- target: targetRef,
234
- items: toolbarItems,
235
- node: node,
236
- dispatchCommand: dispatchCommand,
237
- editorView: editorView,
238
- className: className,
239
- focusEditor: () => editorView.focus(),
240
- providerFactory: providerFactory,
241
- popupsMountPoint: popupsMountPoint,
242
- popupsBoundariesElement: popupsBoundariesElement,
243
- popupsScrollableElement: popupsScrollableElement,
244
- dispatchAnalyticsEvent: dispatchAnalyticsEvent,
245
- extensionsProvider: extensionsState === null || extensionsState === void 0 ? void 0 : extensionsState.extensionProvider,
246
- scrollable: scrollable
247
- })), /*#__PURE__*/React.createElement(ConfirmationModal, {
248
- options: confirmDialogOptions,
249
- onConfirm: (isChecked = false) => {
250
- if (!!confirmDialogOptions.onConfirm) {
251
- dispatchCommand(confirmDialogOptions.onConfirm(isChecked));
252
- } else {
253
- dispatchCommand(confirmButtonItem.onClick);
202
+ // Confirm dialog
203
+ const {
204
+ confirmDialogForItem
205
+ } = floatingToolbarData || {};
206
+ const confirmButtonItem = confirmDialogForItem ? toolbarItems[confirmDialogForItem] : undefined;
207
+ const scrollable = featureFlags.floatingToolbarCopyButton && config.scrollable;
208
+ const confirmDialogOptions = typeof (confirmButtonItem === null || confirmButtonItem === void 0 ? void 0 : confirmButtonItem.confirmDialog) === 'function' ? confirmButtonItem === null || confirmButtonItem === void 0 ? void 0 : confirmButtonItem.confirmDialog() : confirmButtonItem === null || confirmButtonItem === void 0 ? void 0 : confirmButtonItem.confirmDialog;
209
+ return /*#__PURE__*/React.createElement(ErrorBoundary, {
210
+ component: ACTION_SUBJECT.FLOATING_TOOLBAR_PLUGIN,
211
+ componentId: camelCase(title),
212
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
213
+ fallbackComponent: null
214
+ }, /*#__PURE__*/React.createElement(Popup, {
215
+ ariaLabel: title,
216
+ offset: offset,
217
+ target: targetRef,
218
+ alignY: "bottom",
219
+ forcePlacement: forcePlacement,
220
+ fitHeight: height,
221
+ fitWidth: width,
222
+ alignX: align,
223
+ stick: true,
224
+ zIndex: zIndex,
225
+ mountTo: popupsMountPoint,
226
+ boundariesElement: popupsBoundariesElement,
227
+ scrollableElement: popupsScrollableElement,
228
+ onPositionCalculated: customPositionCalculation,
229
+ style: scrollable ? {
230
+ maxWidth: '100%'
231
+ } : {},
232
+ focusTrap: focusTrap,
233
+ preventOverflow: preventPopupOverflow
234
+ }, /*#__PURE__*/React.createElement(ToolbarLoader, {
235
+ target: targetRef,
236
+ items: toolbarItems,
237
+ node: node,
238
+ dispatchCommand: dispatchCommand,
239
+ editorView: editorView,
240
+ className: className,
241
+ focusEditor: () => editorView.focus(),
242
+ providerFactory: providerFactory,
243
+ popupsMountPoint: popupsMountPoint,
244
+ popupsBoundariesElement: popupsBoundariesElement,
245
+ popupsScrollableElement: popupsScrollableElement,
246
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
247
+ extensionsProvider: extensionsState === null || extensionsState === void 0 ? void 0 : extensionsState.extensionProvider,
248
+ scrollable: scrollable,
249
+ featureFlags: featureFlags
250
+ })), /*#__PURE__*/React.createElement(ConfirmationModal, {
251
+ testId: "ak-floating-toolbar-confirmation-modal",
252
+ options: confirmDialogOptions,
253
+ onConfirm: (isChecked = false) => {
254
+ if (!!confirmDialogOptions.onConfirm) {
255
+ dispatchCommand(confirmDialogOptions.onConfirm(isChecked));
256
+ } else {
257
+ dispatchCommand(confirmButtonItem.onClick);
258
+ }
259
+ },
260
+ onClose: () => {
261
+ dispatchCommand(hideConfirmDialog());
262
+ // Need to set focus to Editor here,
263
+ // As when the Confirmation dialog pop up, and user interacts with the dialog, Editor loses focus.
264
+ // So when Confirmation dialog is closed, Editor does not have the focus, then cursor goes to the position 1 of the doc,
265
+ // instead of the cursor position before the dialog pop up.
266
+ if (!editorView.hasFocus()) {
267
+ editorView.focus();
268
+ }
254
269
  }
255
- dispatchCommand(hideConfirmDialog());
256
- } // When closed without clicking OK or cancel buttons
257
- ,
258
- onClose: () => {
259
- dispatchCommand(hideConfirmDialog());
260
- }
261
- }));
262
- }
263
- });
264
- }
265
- });
270
+ }));
271
+ }
272
+ });
273
+ }
274
+ };
275
+ };
266
276
  export default floatingToolbarPlugin;
267
277
 
268
278
  /**
@@ -62,7 +62,10 @@ export const CheckboxModal = props => {
62
62
  testId: testId ? `${testId}-cancel-button` : undefined
63
63
  }, cancelButtonLabel), /*#__PURE__*/React.createElement(Button, {
64
64
  appearance: "warning",
65
- onClick: () => onConfirm(isChecked),
65
+ onClick: () => {
66
+ onConfirm(isChecked);
67
+ onClose();
68
+ },
66
69
  testId: testId ? `${testId}-confirm-button` : undefined
67
70
  }, okButtonLabel)));
68
71
  };
@@ -28,8 +28,11 @@ export const EmojiPickerButton = props => {
28
28
  };
29
29
  const updateEmoji = emoji => {
30
30
  setIsPopupOpen(false);
31
- props.editorView && props.editorView.focus();
32
31
  props.onChange && props.onChange(emoji);
32
+ requestAnimationFrame(() => {
33
+ var _props$editorView;
34
+ (_props$editorView = props.editorView) === null || _props$editorView === void 0 ? void 0 : _props$editorView.focus();
35
+ });
33
36
  };
34
37
  const isDetachedElement = el => !document.body.contains(el);
35
38
  const handleEmojiClickOutside = e => {
@@ -41,6 +44,11 @@ export const EmojiPickerButton = props => {
41
44
  togglePopup();
42
45
  }
43
46
  };
47
+ const handleEmojiPressEscape = () => {
48
+ var _buttonRef$current;
49
+ setIsPopupOpen(false);
50
+ (_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.focus();
51
+ };
44
52
  const renderPicker = providers => {
45
53
  if (!providers.emojiProvider) {
46
54
  return null;
@@ -49,7 +57,8 @@ export const EmojiPickerButton = props => {
49
57
  emojiProvider: providers.emojiProvider,
50
58
  onSelection: updateEmoji,
51
59
  onPickerRef: () => {},
52
- handleClickOutside: handleEmojiClickOutside
60
+ handleClickOutside: handleEmojiClickOutside,
61
+ handleEscapeKeydown: handleEmojiPressEscape
53
62
  });
54
63
  };
55
64
  const renderPopup = () => {
@@ -66,7 +75,8 @@ export const EmojiPickerButton = props => {
66
75
  // if the toolbar is scrollable, this will be mounted in the root editor
67
76
  // we need an index of > 500 to display over it
68
77
  ,
69
- zIndex: props.setDisableParentScroll ? 600 : undefined
78
+ zIndex: props.setDisableParentScroll ? 600 : undefined,
79
+ focusTrap: true
70
80
  }, jsx(WithProviders, {
71
81
  providers: ['emojiProvider'],
72
82
  providerFactory: props.providerFactory,
@@ -26,7 +26,10 @@ export const SimpleModal = props => {
26
26
  testId: testId ? `${testId}-cancel-button` : undefined
27
27
  }, cancelButtonLabel), /*#__PURE__*/React.createElement(Button, {
28
28
  appearance: "warning",
29
- onClick: () => onConfirm(),
29
+ onClick: () => {
30
+ onConfirm();
31
+ onClose();
32
+ },
30
33
  testId: testId ? `${testId}-confirm-button` : undefined
31
34
  }, okButtonLabel)));
32
35
  };
@@ -9,7 +9,6 @@ import { hexToEditorBackgroundPaletteColor } from '@atlaskit/editor-palette';
9
9
  import { themed } from '@atlaskit/theme/components';
10
10
  import { borderRadius, gridSize } from '@atlaskit/theme/constants';
11
11
  import { DN70 } from '@atlaskit/theme/colors';
12
- import { getFeatureFlags } from '../../feature-flags-context';
13
12
  import { compareArrays, shallowEqual } from '../utils';
14
13
  import { showConfirmDialog } from '../pm-plugins/toolbar-data/commands';
15
14
  import Button from './Button';
@@ -43,12 +42,13 @@ const ToolbarItems = /*#__PURE__*/React.memo(({
43
42
  extensionsProvider,
44
43
  node,
45
44
  setDisableScroll,
46
- mountRef
45
+ mountRef,
46
+ featureFlags
47
47
  }) => {
48
48
  const emojiAndColourPickerMountPoint = scrollable ? popupsMountPoint || (editorView === null || editorView === void 0 ? void 0 : editorView.dom.closest('.fabric-editor-popup-scroll-parent')) || (editorView === null || editorView === void 0 ? void 0 : editorView.dom.closest('.ak-editor-content-area')) || undefined : popupsMountPoint;
49
49
  const {
50
50
  useSomewhatSemanticTextColorNames
51
- } = editorView ? getFeatureFlags(editorView.state) : {
51
+ } = featureFlags || {
52
52
  useSomewhatSemanticTextColorNames: false
53
53
  };
54
54
  return jsx(ButtonGroup, null, items.filter(item => !item.hidden).map((item, idx) => {
@@ -197,7 +197,7 @@ const ToolbarItems = /*#__PURE__*/React.memo(({
197
197
  }
198
198
  const {
199
199
  extendFloatingToolbar
200
- } = getFeatureFlags(editorView.state) || {};
200
+ } = featureFlags || {};
201
201
  if (!extendFloatingToolbar) {
202
202
  return null;
203
203
  }
@@ -451,7 +451,8 @@ class Toolbar extends Component {
451
451
  }, jsx(ToolbarItems, _extends({}, this.props, {
452
452
  setDisableScroll: this.setDisableScroll.bind(this),
453
453
  mountRef: this.mountRef,
454
- mounted: this.state.mounted
454
+ mounted: this.state.mounted,
455
+ featureFlags: this.props.featureFlags
455
456
  }))), scrollable && jsx(ScrollButtons, {
456
457
  intl: intl,
457
458
  scrollContainerRef: this.scrollContainerRef,
@@ -12,8 +12,6 @@ import { LINKPICKER_HEIGHT_IN_PX, RECENT_SEARCH_HEIGHT_IN_PX, RECENT_SEARCH_WIDT
12
12
  import { HyperlinkToolbarAppearance } from './HyperlinkToolbarAppearance';
13
13
  import { addAnalytics, ACTION_SUBJECT_ID } from '../analytics';
14
14
  import { buildVisitedLinkPayload, buildOpenedSettingsPayload } from '../../utils/linking-utils';
15
- import { getFeatureFlags } from '../feature-flags-context';
16
-
17
15
  /* type guard for edit links */
18
16
  function isEditLink(linkMark) {
19
17
  return linkMark.pos !== undefined;
@@ -43,10 +41,10 @@ function getLinkText(activeLinkMark, state) {
43
41
  }
44
42
  return activeLinkMark.node.text;
45
43
  }
46
- const getSettingsButtonGroup = (state, intl) => {
44
+ const getSettingsButtonGroup = (state, intl, featureFlags) => {
47
45
  const {
48
46
  floatingToolbarLinkSettingsButton
49
- } = getFeatureFlags(state);
47
+ } = featureFlags;
50
48
  return floatingToolbarLinkSettingsButton === 'true' ? [{
51
49
  type: 'separator'
52
50
  }, {
@@ -59,7 +57,7 @@ const getSettingsButtonGroup = (state, intl) => {
59
57
  target: '_blank'
60
58
  }] : [];
61
59
  };
62
- export const getToolbarConfig = options => (state, intl, providerFactory) => {
60
+ export const getToolbarConfig = (options, featureFlags) => (state, intl, providerFactory) => {
63
61
  const {
64
62
  formatMessage
65
63
  } = intl;
@@ -72,7 +70,7 @@ export const getToolbarConfig = options => (state, intl, providerFactory) => {
72
70
  lpLinkPicker,
73
71
  lpLinkPickerFocusTrap,
74
72
  preventPopupOverflow
75
- } = getFeatureFlags(state);
73
+ } = featureFlags;
76
74
  const shouldEnableFocusTrap = lpLinkPicker && lpLinkPickerFocusTrap;
77
75
  if (linkState && linkState.activeLinkMark) {
78
76
  const {
@@ -167,21 +165,20 @@ export const getToolbarConfig = options => (state, intl, providerFactory) => {
167
165
  formatMessage: formatMessage,
168
166
  markType: state.schema.marks.link
169
167
  }]
170
- }, ...getSettingsButtonGroup(state, intl)],
168
+ }, ...getSettingsButtonGroup(state, intl, featureFlags)],
171
169
  scrollable: true
172
170
  };
173
171
  }
174
172
  case 'EDIT_INSERTED':
175
173
  case 'INSERT':
176
174
  {
177
- var _options$linkPicker, _options$linkPicker$p;
178
175
  let link;
179
176
  if (isEditLink(activeLinkMark) && activeLinkMark.node) {
180
177
  const linkMark = activeLinkMark.node.marks.filter(mark => mark.type === state.schema.marks.link);
181
178
  link = linkMark[0] && linkMark[0].attrs.href;
182
179
  }
183
180
  const displayText = isEditLink(activeLinkMark) ? getLinkText(activeLinkMark, state) : linkState.activeText;
184
- const popupHeight = lpLinkPicker && Boolean(options === null || options === void 0 ? void 0 : (_options$linkPicker = options.linkPicker) === null || _options$linkPicker === void 0 ? void 0 : (_options$linkPicker$p = _options$linkPicker.plugins) === null || _options$linkPicker$p === void 0 ? void 0 : _options$linkPicker$p.length) ? LINKPICKER_HEIGHT_IN_PX : RECENT_SEARCH_HEIGHT_IN_PX;
181
+ const popupHeight = lpLinkPicker ? LINKPICKER_HEIGHT_IN_PX : RECENT_SEARCH_HEIGHT_IN_PX;
185
182
  return {
186
183
  ...hyperLinkToolbar,
187
184
  preventPopupOverflow,
@@ -200,6 +197,7 @@ export const getToolbarConfig = options => (state, intl, providerFactory) => {
200
197
  view: view,
201
198
  key: idx,
202
199
  linkPickerOptions: options === null || options === void 0 ? void 0 : options.linkPicker,
200
+ featureFlags: featureFlags,
203
201
  displayUrl: link,
204
202
  displayText: displayText || '',
205
203
  providerFactory: providerFactory,
@@ -9,67 +9,71 @@ import { getToolbarConfig } from './Toolbar';
9
9
  import { tooltip, addLink } from '../../keymaps';
10
10
  import { IconLink } from '../quick-insert/assets';
11
11
  import { messages } from '../insert-block/ui/ToolbarInsertBlock/messages';
12
- const hyperlinkPlugin = options => ({
13
- name: 'hyperlink',
14
- marks() {
15
- return [{
16
- name: 'link',
17
- mark: link
18
- }];
19
- },
20
- pmPlugins() {
21
- var _options$cardOptions;
22
- // Skip analytics if card provider is available, as they will be
23
- // sent on handleRejected upon attempting to resolve smart link.
24
- const skipAnalytics = !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider);
25
- return [{
26
- name: 'hyperlink',
27
- plugin: ({
28
- dispatch
29
- }) => plugin(dispatch, options === null || options === void 0 ? void 0 : options.editorAppearance)
30
- }, {
31
- name: 'fakeCursorToolbarPlugin',
32
- plugin: () => fakeCursorToolbarPlugin
33
- }, {
34
- name: 'hyperlinkInputRule',
35
- plugin: ({
36
- schema,
37
- featureFlags
38
- }) => createInputRulePlugin(schema, skipAnalytics, featureFlags)
39
- }, {
40
- name: 'hyperlinkKeymap',
41
- plugin: () => createKeymapPlugin(skipAnalytics)
42
- }];
43
- },
44
- pluginsOptions: {
45
- quickInsert: ({
46
- formatMessage
47
- }) => [{
48
- id: 'hyperlink',
49
- title: formatMessage(messages.link),
50
- description: formatMessage(messages.linkDescription),
51
- keywords: ['hyperlink', 'url'],
52
- priority: 1200,
53
- keyshortcut: tooltip(addLink),
54
- icon: () => /*#__PURE__*/React.createElement(IconLink, null),
55
- action(insert, state) {
56
- const tr = insert(undefined);
57
- tr.setMeta(stateKey, {
58
- type: LinkAction.SHOW_INSERT_TOOLBAR,
59
- inputMethod: INPUT_METHOD.QUICK_INSERT
60
- });
61
- return addAnalytics(state, tr, {
62
- action: ACTION.INVOKED,
63
- actionSubject: ACTION_SUBJECT.TYPEAHEAD,
64
- actionSubjectId: ACTION_SUBJECT_ID.TYPEAHEAD_LINK,
65
- attributes: {
12
+ const hyperlinkPlugin = (options = {}, api) => {
13
+ var _api$dependencies, _api$dependencies$fea;
14
+ const featureFlags = (api === null || api === void 0 ? void 0 : (_api$dependencies = api.dependencies) === null || _api$dependencies === void 0 ? void 0 : (_api$dependencies$fea = _api$dependencies.featureFlags) === null || _api$dependencies$fea === void 0 ? void 0 : _api$dependencies$fea.sharedState.currentState()) || {};
15
+ return {
16
+ name: 'hyperlink',
17
+ marks() {
18
+ return [{
19
+ name: 'link',
20
+ mark: link
21
+ }];
22
+ },
23
+ pmPlugins() {
24
+ var _options$cardOptions;
25
+ // Skip analytics if card provider is available, as they will be
26
+ // sent on handleRejected upon attempting to resolve smart link.
27
+ const skipAnalytics = !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider);
28
+ return [{
29
+ name: 'hyperlink',
30
+ plugin: ({
31
+ dispatch
32
+ }) => plugin(dispatch, options === null || options === void 0 ? void 0 : options.editorAppearance)
33
+ }, {
34
+ name: 'fakeCursorToolbarPlugin',
35
+ plugin: () => fakeCursorToolbarPlugin
36
+ }, {
37
+ name: 'hyperlinkInputRule',
38
+ plugin: ({
39
+ schema,
40
+ featureFlags
41
+ }) => createInputRulePlugin(schema, skipAnalytics, featureFlags)
42
+ }, {
43
+ name: 'hyperlinkKeymap',
44
+ plugin: () => createKeymapPlugin(skipAnalytics)
45
+ }];
46
+ },
47
+ pluginsOptions: {
48
+ quickInsert: ({
49
+ formatMessage
50
+ }) => [{
51
+ id: 'hyperlink',
52
+ title: formatMessage(messages.link),
53
+ description: formatMessage(messages.linkDescription),
54
+ keywords: ['hyperlink', 'url'],
55
+ priority: 1200,
56
+ keyshortcut: tooltip(addLink),
57
+ icon: () => /*#__PURE__*/React.createElement(IconLink, null),
58
+ action(insert, state) {
59
+ const tr = insert(undefined);
60
+ tr.setMeta(stateKey, {
61
+ type: LinkAction.SHOW_INSERT_TOOLBAR,
66
62
  inputMethod: INPUT_METHOD.QUICK_INSERT
67
- },
68
- eventType: EVENT_TYPE.UI
69
- });
70
- }
71
- }],
72
- floatingToolbar: getToolbarConfig(options)
73
- }
74
- });
63
+ });
64
+ return addAnalytics(state, tr, {
65
+ action: ACTION.INVOKED,
66
+ actionSubject: ACTION_SUBJECT.TYPEAHEAD,
67
+ actionSubjectId: ACTION_SUBJECT_ID.TYPEAHEAD_LINK,
68
+ attributes: {
69
+ inputMethod: INPUT_METHOD.QUICK_INSERT
70
+ },
71
+ eventType: EVENT_TYPE.UI
72
+ });
73
+ }
74
+ }],
75
+ floatingToolbar: getToolbarConfig(options, featureFlags)
76
+ }
77
+ };
78
+ };
75
79
  export default hyperlinkPlugin;