@atlaskit/editor-core 181.0.1 → 182.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/CHANGELOG.md +46 -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
@@ -1,38 +1,11 @@
1
1
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
- import { getExtensionModuleNode } from '@atlaskit/editor-common/extensions';
3
2
  import { createSelectionClickHandler } from '../../selection/utils';
4
3
  import ExtensionNodeView from '../nodeviews/extension';
5
4
  import { updateState, clearEditingContext } from '../commands';
6
5
  import { getSelectedExtension, getSelectedDomElement } from '../utils';
7
6
  import { createPluginState, getPluginState, createCommand } from '../plugin-factory';
8
7
  import { pluginKey } from '../plugin-key';
9
- const maybeGetUpdateMethodFromExtensionProvider = async (view, extensionProvider) => {
10
- const nodeWithPos = getSelectedExtension(view.state, true);
11
- if (!nodeWithPos) {
12
- throw new Error('There is no selection');
13
- }
14
- const {
15
- extensionType,
16
- extensionKey
17
- } = nodeWithPos.node.attrs;
18
- const extensionModuleNode = await getExtensionModuleNode(extensionProvider, extensionType, extensionKey);
19
- const newNodeWithPos = getSelectedExtension(view.state, true);
20
- if (newNodeWithPos && newNodeWithPos.node.attrs.extensionType === extensionType && newNodeWithPos.node.attrs.extensionKey === extensionKey && newNodeWithPos.pos === nodeWithPos.pos && extensionModuleNode) {
21
- return extensionModuleNode.update;
22
- }
23
- };
24
- export const updateEditButton = async (view, extensionProvider) => {
25
- try {
26
- const updateMethod = await maybeGetUpdateMethodFromExtensionProvider(view, extensionProvider);
27
- updateState({
28
- showEditButton: !!updateMethod,
29
- updateExtension: updateMethod && Promise.resolve(updateMethod) || undefined
30
- })(view.state, view.dispatch);
31
- return updateMethod;
32
- } catch {
33
- // this exception is not important for this case, fail silently
34
- }
35
- };
8
+ import { updateEditButton } from './utils';
36
9
  const shouldShowEditButton = (extensionHandler, extensionProvider) => {
37
10
  const usesLegacyMacroBrowser = !extensionHandler && !extensionProvider || typeof extensionHandler === 'function';
38
11
  const usesModernUpdateMethod = typeof extensionHandler === 'object' && typeof extensionHandler.update === 'function';
@@ -83,6 +56,75 @@ export const createContextIdentifierProviderHandler = view => async (name, provi
83
56
  }
84
57
  }
85
58
  };
59
+ export const handleUpdate = ({
60
+ view,
61
+ prevState,
62
+ domAtPos,
63
+ extensionHandlers
64
+ }) => {
65
+ const {
66
+ state,
67
+ dispatch
68
+ } = view;
69
+ const {
70
+ element,
71
+ localId,
72
+ extensionProvider,
73
+ showContextPanel,
74
+ showEditButton
75
+ } = getPluginState(state);
76
+
77
+ // This fetches the selected extension node, either by keyboard selection or click for all types of extensions
78
+ const selectedExtension = getSelectedExtension(state, true);
79
+ if (!selectedExtension) {
80
+ if (showContextPanel) {
81
+ clearEditingContext(state, dispatch);
82
+ }
83
+ return;
84
+ }
85
+ const {
86
+ node
87
+ } = selectedExtension;
88
+ const newElement = getSelectedDomElement(state.schema, domAtPos, selectedExtension);
89
+
90
+ // In some cases, showEditButton can be stale and the edit button doesn't show - @see ED-15285
91
+ // To be safe, we update the showEditButton state here
92
+ const shouldUpdateEditButton = !showEditButton && extensionProvider && element === newElement && !getSelectedExtension(prevState, true);
93
+ const isNewNodeSelected = node.attrs.localId ? localId !== node.attrs.localId :
94
+ // This is the current assumption and it's wrong but we are keeping it
95
+ // as fallback in case we need to turn off `allowLocalIdGeneration`
96
+ element !== newElement;
97
+ if (isNewNodeSelected || shouldUpdateEditButton) {
98
+ if (showContextPanel) {
99
+ clearEditingContext(state, dispatch);
100
+ return;
101
+ }
102
+ const {
103
+ extensionType
104
+ } = node.attrs;
105
+ const extensionHandler = extensionHandlers[extensionType];
106
+
107
+ // showEditButton might change async based on results from extension providers
108
+ const showEditButton = shouldShowEditButton(extensionHandler, extensionProvider);
109
+ const updateExtension = getUpdateExtensionPromise(view, extensionHandler, extensionProvider).catch(() => {
110
+ // do nothing;
111
+ });
112
+ updateState({
113
+ localId: node.attrs.localId,
114
+ showContextPanel: false,
115
+ element: newElement,
116
+ showEditButton,
117
+ updateExtension
118
+ })(state, dispatch);
119
+ }
120
+ // New DOM element doesn't necessarily mean it's a new Node
121
+ else if (element !== newElement) {
122
+ updateState({
123
+ element: newElement
124
+ })(state, dispatch);
125
+ }
126
+ return true;
127
+ };
86
128
  const createPlugin = (dispatch, providerFactory, extensionHandlers, portalProviderAPI, eventDispatcher, useLongPressSelection = false, options = {}) => {
87
129
  const state = createPluginState(dispatch, {
88
130
  showEditButton: false,
@@ -100,74 +142,13 @@ const createPlugin = (dispatch, providerFactory, extensionHandlers, portalProvid
100
142
  providerFactory.subscribe('extensionProvider', extensionProviderHandler);
101
143
  providerFactory.subscribe('contextIdentificationProvider', contextIdentificationProviderHandler);
102
144
  return {
103
- update: view => {
104
- const {
105
- state,
106
- dispatch
107
- } = view;
108
- const {
109
- element,
110
- localId,
111
- extensionProvider,
112
- showContextPanel
113
- } = getPluginState(state);
114
-
115
- // This fetches the selected extension node, either by keyboard selection or click for all types of extensions
116
- const selectedExtension = getSelectedExtension(state, true);
117
- if (!selectedExtension) {
118
- if (showContextPanel) {
119
- clearEditingContext(state, dispatch);
120
- }
121
-
122
- // if an extension is no longer selected, but the plugin has cached the previous selected extension id/ref
123
- // then this should clear those values so that if an exention is selected again, then this sees it as a change
124
- // and updates the state correctly.
125
- if (!!localId || !!element) {
126
- updateState({
127
- localId: undefined,
128
- element: undefined
129
- })(state, dispatch);
130
- }
131
- return;
132
- }
133
- const {
134
- node
135
- } = selectedExtension;
136
- const newElement = getSelectedDomElement(state.schema, domAtPos, selectedExtension);
137
-
138
- // New node is selection
139
- if (node.attrs.localId ? localId !== node.attrs.localId :
140
- // This is the current assumption and it's wrong but we are keeping it
141
- // as fallback in case we need to turn off `allowLocalIdGeneration`
142
- element !== newElement) {
143
- if (showContextPanel) {
144
- clearEditingContext(state, dispatch);
145
- }
146
- const {
147
- extensionType
148
- } = node.attrs;
149
- const extensionHandler = extensionHandlers[extensionType];
150
-
151
- // showEditButton might change async based on results from extension providers
152
- const showEditButton = shouldShowEditButton(extensionHandler, extensionProvider);
153
- const updateExtension = getUpdateExtensionPromise(view, extensionHandler, extensionProvider).catch(() => {
154
- // do nothing;
155
- });
156
- updateState({
157
- localId: node.attrs.localId,
158
- showContextPanel: false,
159
- element: newElement,
160
- showEditButton,
161
- updateExtension
162
- })(state, dispatch);
163
- }
164
- // New DOM element doesn't necessarily mean it's a new Node
165
- else if (element !== newElement) {
166
- updateState({
167
- element: newElement
168
- })(state, dispatch);
169
- }
170
- return true;
145
+ update: (view, prevState) => {
146
+ handleUpdate({
147
+ view,
148
+ prevState,
149
+ domAtPos,
150
+ extensionHandlers
151
+ });
171
152
  },
172
153
  destroy: () => {
173
154
  providerFactory.unsubscribe('extensionProvider', extensionProviderHandler);
@@ -0,0 +1,30 @@
1
+ import { getExtensionModuleNode } from '@atlaskit/editor-common/extensions';
2
+ import { updateState } from '../commands';
3
+ import { getSelectedExtension } from '../utils';
4
+ const maybeGetUpdateMethodFromExtensionProvider = async (view, extensionProvider) => {
5
+ const nodeWithPos = getSelectedExtension(view.state, true);
6
+ if (!nodeWithPos) {
7
+ throw new Error('There is no selection');
8
+ }
9
+ const {
10
+ extensionType,
11
+ extensionKey
12
+ } = nodeWithPos.node.attrs;
13
+ const extensionModuleNode = await getExtensionModuleNode(extensionProvider, extensionType, extensionKey);
14
+ const newNodeWithPos = getSelectedExtension(view.state, true);
15
+ if (newNodeWithPos && newNodeWithPos.node.attrs.extensionType === extensionType && newNodeWithPos.node.attrs.extensionKey === extensionKey && newNodeWithPos.pos === nodeWithPos.pos && extensionModuleNode) {
16
+ return extensionModuleNode.update;
17
+ }
18
+ };
19
+ export const updateEditButton = async (view, extensionProvider) => {
20
+ try {
21
+ const updateMethod = await maybeGetUpdateMethodFromExtensionProvider(view, extensionProvider);
22
+ updateState({
23
+ showEditButton: !!updateMethod,
24
+ updateExtension: updateMethod && Promise.resolve(updateMethod) || undefined
25
+ })(view.state, view.dispatch);
26
+ return updateMethod;
27
+ } catch {
28
+ // this exception is not important for this case, fail silently
29
+ }
30
+ };
@@ -1,8 +1 @@
1
- /**
2
- * Transforms FeatureFlags to a type safe string array of the enabled feature flags.
3
- *
4
- * Useful for analytics and analysis purposes.
5
- */
6
- export function getEnabledFeatureFlagKeys(featureFlags) {
7
- return Object.keys(featureFlags).filter(key => featureFlags[key] === true);
8
- }
1
+ export { getEnabledFeatureFlagKeys } from '@atlaskit/editor-common/normalize-feature-flags';
@@ -5,7 +5,6 @@ import { cancelSearchWithAnalytics, replaceWithAnalytics, replaceAllWithAnalytic
5
5
  import { blur, toggleMatchCase } from './commands';
6
6
  import FindReplaceToolbarButton from './ui/FindReplaceToolbarButton';
7
7
  import { TRIGGER_METHOD } from '../analytics';
8
- import { getFeatureFlags } from '../feature-flags-context';
9
8
  const FindReplaceToolbarButtonWithState = props => {
10
9
  const {
11
10
  popupsBoundariesElement,
@@ -14,7 +13,8 @@ const FindReplaceToolbarButtonWithState = props => {
14
13
  isToolbarReducedSpacing,
15
14
  editorView,
16
15
  containerElement,
17
- dispatchAnalyticsEvent
16
+ dispatchAnalyticsEvent,
17
+ featureFlags
18
18
  } = props;
19
19
  if (!editorView) {
20
20
  return null;
@@ -94,7 +94,7 @@ const FindReplaceToolbarButtonWithState = props => {
94
94
  };
95
95
  const {
96
96
  findReplaceMatchCase
97
- } = getFeatureFlags(editorView.state);
97
+ } = featureFlags;
98
98
  return /*#__PURE__*/React.createElement(WithPluginState, {
99
99
  debounce: false,
100
100
  plugins: {
@@ -2,7 +2,9 @@ import React from 'react';
2
2
  import { createPlugin } from './plugin';
3
3
  import keymapPlugin from './keymap';
4
4
  import FindReplaceToolbarButtonWithState from './FindReplaceToolbarButtonWithState';
5
- export const findReplacePlugin = props => {
5
+ export const findReplacePlugin = (props, api) => {
6
+ var _api$dependencies, _api$dependencies$fea;
7
+ 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()) || {};
6
8
  return {
7
9
  name: 'findReplace',
8
10
  pmPlugins() {
@@ -36,7 +38,8 @@ export const findReplacePlugin = props => {
36
38
  editorView: editorView,
37
39
  containerElement: containerElement,
38
40
  dispatchAnalyticsEvent: dispatchAnalyticsEvent,
39
- takeFullWidth: props.takeFullWidth
41
+ takeFullWidth: props.takeFullWidth,
42
+ featureFlags: featureFlags
40
43
  });
41
44
  }
42
45
  }
@@ -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
  };