@atlaskit/editor-core 181.0.1 → 182.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/codemods/140.0.0-rc-kraken-fix-type-errors.ts +0 -2
  3. package/codemods/__tests__/next-remove-allow-more-text-colors-prop.ts +0 -17
  4. package/codemods/migrates/next-remove-allow-more-text-colors-prop.ts +0 -4
  5. package/dist/cjs/create-editor/sort-by-order.js +12 -0
  6. package/dist/cjs/editor-next/editor-migration-component.js +4 -1
  7. package/dist/cjs/editor-next/utils/deprecationWarnings.js +0 -5
  8. package/dist/cjs/labs/next/full-page.js +2 -1
  9. package/dist/cjs/labs/next/presets/default.js +2 -1
  10. package/dist/cjs/labs/next/presets/universal.js +7 -1
  11. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +2 -1
  12. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +4 -7
  13. package/dist/cjs/plugins/analytics/plugin.js +6 -6
  14. package/dist/cjs/plugins/avatar-group/index.js +5 -2
  15. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  16. package/dist/cjs/plugins/base/index.js +4 -2
  17. package/dist/cjs/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  18. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  19. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/index.js +2 -8
  20. package/dist/cjs/plugins/border/index.js +20 -0
  21. package/dist/cjs/plugins/card/index.js +4 -2
  22. package/dist/cjs/plugins/card/toolbar.js +12 -15
  23. package/dist/cjs/plugins/card/ui/EditLinkToolbar.js +7 -3
  24. package/dist/cjs/plugins/code-block/toolbar.js +1 -1
  25. package/dist/cjs/plugins/collab-edit/analytics.js +2 -3
  26. package/dist/cjs/plugins/collab-edit/events/handlers.js +2 -2
  27. package/dist/cjs/plugins/collab-edit/events/initialize.js +3 -2
  28. package/dist/cjs/plugins/collab-edit/index.js +5 -3
  29. package/dist/cjs/plugins/collab-edit/plugin.js +4 -3
  30. package/dist/cjs/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  31. package/dist/cjs/plugins/collab-edit/ui/avatars.js +2 -3
  32. package/dist/cjs/plugins/date/index.js +90 -64
  33. package/dist/cjs/plugins/editor-disabled/index.js +8 -0
  34. package/dist/cjs/plugins/expand/index.js +4 -1
  35. package/dist/cjs/plugins/expand/nodeviews/index.js +6 -7
  36. package/dist/cjs/plugins/expand/pm-plugins/main.js +5 -2
  37. package/dist/cjs/plugins/extension/extension-api.js +27 -14
  38. package/dist/cjs/plugins/extension/pm-plugins/main.js +117 -177
  39. package/dist/cjs/plugins/extension/pm-plugins/utils.js +80 -0
  40. package/dist/cjs/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +7 -11
  41. package/dist/cjs/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -4
  42. package/dist/cjs/plugins/find-replace/index.js +5 -2
  43. package/dist/cjs/plugins/floating-toolbar/index.js +15 -7
  44. package/dist/cjs/plugins/floating-toolbar/ui/CheckboxModal.js +2 -1
  45. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  46. package/dist/cjs/plugins/floating-toolbar/ui/SimpleModal.js +2 -1
  47. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  48. package/dist/cjs/plugins/hyperlink/Toolbar.js +9 -12
  49. package/dist/cjs/plugins/hyperlink/index.js +6 -2
  50. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -4
  51. package/dist/cjs/plugins/index.js +7 -0
  52. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  53. package/dist/cjs/plugins/list/actions/outdent-list-items-selected.js +5 -5
  54. package/dist/cjs/plugins/list/commands/index.js +31 -27
  55. package/dist/cjs/plugins/list/commands/outdent-list.js +2 -3
  56. package/dist/cjs/plugins/list/index.js +4 -3
  57. package/dist/cjs/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  58. package/dist/cjs/plugins/list/pm-plugins/input-rules/index.js +2 -1
  59. package/dist/cjs/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +58 -0
  60. package/dist/cjs/plugins/list/pm-plugins/keymap.js +4 -4
  61. package/dist/cjs/plugins/list/pm-plugins/main.js +23 -21
  62. package/dist/cjs/plugins/media/nodeviews/mediaNodeView/media.js +6 -1
  63. package/dist/cjs/plugins/media/nodeviews/styles.js +13 -1
  64. package/dist/cjs/plugins/media/toolbar/commands.js +105 -2
  65. package/dist/cjs/plugins/media/toolbar/imageBorder.js +20 -0
  66. package/dist/cjs/plugins/media/toolbar/index.js +33 -4
  67. package/dist/cjs/plugins/media/ui/ImageBorder/index.js +219 -0
  68. package/dist/cjs/plugins/media/ui/ImageBorder/messages.js +50 -0
  69. package/dist/cjs/plugins/media/ui/ImageBorder/styles.js +54 -0
  70. package/dist/cjs/plugins/media/utils/current-media-node.js +28 -5
  71. package/dist/cjs/plugins/paste/util/index.js +2 -0
  72. package/dist/cjs/plugins/rank.js +1 -1
  73. package/dist/cjs/plugins/rule/pm-plugins/input-rule.js +5 -0
  74. package/dist/cjs/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  75. package/dist/cjs/plugins/toolbar-lists-indentation/index.js +3 -1
  76. package/dist/cjs/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  77. package/dist/cjs/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  78. package/dist/cjs/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  79. package/dist/cjs/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  80. package/dist/cjs/test-utils.js +3 -1
  81. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  82. package/dist/cjs/ui/styles.js +1 -1
  83. package/dist/cjs/utils/input-rules.js +0 -17
  84. package/dist/cjs/utils/insert.js +53 -7
  85. package/dist/cjs/version-wrapper.js +1 -1
  86. package/dist/cjs/version.json +1 -1
  87. package/dist/es2019/create-editor/sort-by-order.js +11 -0
  88. package/dist/es2019/editor-next/editor-migration-component.js +4 -1
  89. package/dist/es2019/editor-next/utils/deprecationWarnings.js +0 -5
  90. package/dist/es2019/labs/next/full-page.js +2 -1
  91. package/dist/es2019/labs/next/presets/default.js +2 -1
  92. package/dist/es2019/labs/next/presets/universal.js +8 -2
  93. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +3 -2
  94. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +0 -8
  95. package/dist/es2019/plugins/analytics/plugin.js +45 -43
  96. package/dist/es2019/plugins/avatar-group/index.js +26 -21
  97. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  98. package/dist/es2019/plugins/base/index.js +101 -97
  99. package/dist/es2019/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  100. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  101. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/index.js +2 -7
  102. package/dist/es2019/plugins/border/index.js +11 -0
  103. package/dist/es2019/plugins/card/index.js +4 -2
  104. package/dist/es2019/plugins/card/toolbar.js +10 -11
  105. package/dist/es2019/plugins/card/ui/EditLinkToolbar.js +7 -3
  106. package/dist/es2019/plugins/code-block/toolbar.js +2 -2
  107. package/dist/es2019/plugins/collab-edit/analytics.js +2 -3
  108. package/dist/es2019/plugins/collab-edit/events/handlers.js +2 -2
  109. package/dist/es2019/plugins/collab-edit/events/initialize.js +3 -2
  110. package/dist/es2019/plugins/collab-edit/index.js +5 -3
  111. package/dist/es2019/plugins/collab-edit/plugin.js +4 -3
  112. package/dist/es2019/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  113. package/dist/es2019/plugins/collab-edit/ui/avatars.js +2 -3
  114. package/dist/es2019/plugins/date/index.js +92 -64
  115. package/dist/es2019/plugins/editor-disabled/index.js +8 -0
  116. package/dist/es2019/plugins/expand/index.js +57 -53
  117. package/dist/es2019/plugins/expand/nodeviews/index.js +6 -9
  118. package/dist/es2019/plugins/expand/pm-plugins/main.js +5 -3
  119. package/dist/es2019/plugins/extension/extension-api.js +31 -13
  120. package/dist/es2019/plugins/extension/pm-plugins/main.js +77 -96
  121. package/dist/es2019/plugins/extension/pm-plugins/utils.js +30 -0
  122. package/dist/es2019/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +1 -8
  123. package/dist/es2019/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -3
  124. package/dist/es2019/plugins/find-replace/index.js +5 -2
  125. package/dist/es2019/plugins/floating-toolbar/index.js +159 -149
  126. package/dist/es2019/plugins/floating-toolbar/ui/CheckboxModal.js +4 -1
  127. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  128. package/dist/es2019/plugins/floating-toolbar/ui/SimpleModal.js +4 -1
  129. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  130. package/dist/es2019/plugins/hyperlink/Toolbar.js +7 -9
  131. package/dist/es2019/plugins/hyperlink/index.js +66 -62
  132. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -3
  133. package/dist/es2019/plugins/index.js +2 -1
  134. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  135. package/dist/es2019/plugins/list/actions/outdent-list-items-selected.js +5 -5
  136. package/dist/es2019/plugins/list/commands/index.js +4 -4
  137. package/dist/es2019/plugins/list/commands/outdent-list.js +2 -4
  138. package/dist/es2019/plugins/list/index.js +80 -77
  139. package/dist/es2019/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  140. package/dist/es2019/plugins/list/pm-plugins/input-rules/index.js +2 -1
  141. package/dist/es2019/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +52 -0
  142. package/dist/es2019/plugins/list/pm-plugins/keymap.js +4 -4
  143. package/dist/es2019/plugins/list/pm-plugins/main.js +46 -46
  144. package/dist/es2019/plugins/media/nodeviews/mediaNodeView/media.js +4 -1
  145. package/dist/es2019/plugins/media/nodeviews/styles.js +12 -1
  146. package/dist/es2019/plugins/media/toolbar/commands.js +93 -0
  147. package/dist/es2019/plugins/media/toolbar/imageBorder.js +15 -0
  148. package/dist/es2019/plugins/media/toolbar/index.js +36 -5
  149. package/dist/es2019/plugins/media/ui/ImageBorder/index.js +206 -0
  150. package/dist/es2019/plugins/media/ui/ImageBorder/messages.js +43 -0
  151. package/dist/es2019/plugins/media/ui/ImageBorder/styles.js +124 -0
  152. package/dist/es2019/plugins/media/utils/current-media-node.js +22 -3
  153. package/dist/es2019/plugins/paste/util/index.js +2 -0
  154. package/dist/es2019/plugins/rank.js +1 -1
  155. package/dist/es2019/plugins/rule/pm-plugins/input-rule.js +7 -0
  156. package/dist/es2019/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  157. package/dist/es2019/plugins/toolbar-lists-indentation/index.js +59 -55
  158. package/dist/es2019/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  159. package/dist/es2019/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  160. package/dist/es2019/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  161. package/dist/es2019/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  162. package/dist/es2019/test-utils.js +3 -1
  163. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  164. package/dist/es2019/ui/styles.js +1 -0
  165. package/dist/es2019/utils/input-rules.js +0 -17
  166. package/dist/es2019/utils/insert.js +61 -10
  167. package/dist/es2019/version-wrapper.js +1 -1
  168. package/dist/es2019/version.json +1 -1
  169. package/dist/esm/create-editor/sort-by-order.js +11 -0
  170. package/dist/esm/editor-next/editor-migration-component.js +3 -0
  171. package/dist/esm/editor-next/utils/deprecationWarnings.js +0 -5
  172. package/dist/esm/labs/next/full-page.js +2 -1
  173. package/dist/esm/labs/next/presets/default.js +2 -1
  174. package/dist/esm/labs/next/presets/universal.js +8 -2
  175. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +3 -2
  176. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +3 -5
  177. package/dist/esm/plugins/analytics/plugin.js +6 -6
  178. package/dist/esm/plugins/avatar-group/index.js +5 -2
  179. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  180. package/dist/esm/plugins/base/index.js +4 -2
  181. package/dist/esm/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  182. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  183. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/index.js +2 -8
  184. package/dist/esm/plugins/border/index.js +13 -0
  185. package/dist/esm/plugins/card/index.js +4 -2
  186. package/dist/esm/plugins/card/toolbar.js +12 -15
  187. package/dist/esm/plugins/card/ui/EditLinkToolbar.js +7 -3
  188. package/dist/esm/plugins/code-block/toolbar.js +2 -2
  189. package/dist/esm/plugins/collab-edit/analytics.js +2 -3
  190. package/dist/esm/plugins/collab-edit/events/handlers.js +2 -2
  191. package/dist/esm/plugins/collab-edit/events/initialize.js +3 -2
  192. package/dist/esm/plugins/collab-edit/index.js +5 -3
  193. package/dist/esm/plugins/collab-edit/plugin.js +4 -3
  194. package/dist/esm/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  195. package/dist/esm/plugins/collab-edit/ui/avatars.js +2 -3
  196. package/dist/esm/plugins/date/index.js +90 -64
  197. package/dist/esm/plugins/editor-disabled/index.js +8 -0
  198. package/dist/esm/plugins/expand/index.js +4 -1
  199. package/dist/esm/plugins/expand/nodeviews/index.js +6 -7
  200. package/dist/esm/plugins/expand/pm-plugins/main.js +5 -2
  201. package/dist/esm/plugins/extension/extension-api.js +24 -12
  202. package/dist/esm/plugins/extension/pm-plugins/main.js +113 -173
  203. package/dist/esm/plugins/extension/pm-plugins/utils.js +72 -0
  204. package/dist/esm/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +1 -10
  205. package/dist/esm/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -4
  206. package/dist/esm/plugins/find-replace/index.js +5 -2
  207. package/dist/esm/plugins/floating-toolbar/index.js +15 -7
  208. package/dist/esm/plugins/floating-toolbar/ui/CheckboxModal.js +2 -1
  209. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  210. package/dist/esm/plugins/floating-toolbar/ui/SimpleModal.js +2 -1
  211. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  212. package/dist/esm/plugins/hyperlink/Toolbar.js +9 -13
  213. package/dist/esm/plugins/hyperlink/index.js +6 -2
  214. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -4
  215. package/dist/esm/plugins/index.js +2 -1
  216. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  217. package/dist/esm/plugins/list/actions/outdent-list-items-selected.js +5 -5
  218. package/dist/esm/plugins/list/commands/index.js +31 -27
  219. package/dist/esm/plugins/list/commands/outdent-list.js +2 -3
  220. package/dist/esm/plugins/list/index.js +4 -3
  221. package/dist/esm/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  222. package/dist/esm/plugins/list/pm-plugins/input-rules/index.js +2 -1
  223. package/dist/esm/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +51 -0
  224. package/dist/esm/plugins/list/pm-plugins/keymap.js +4 -4
  225. package/dist/esm/plugins/list/pm-plugins/main.js +23 -21
  226. package/dist/esm/plugins/media/nodeviews/mediaNodeView/media.js +6 -1
  227. package/dist/esm/plugins/media/nodeviews/styles.js +13 -1
  228. package/dist/esm/plugins/media/toolbar/commands.js +99 -0
  229. package/dist/esm/plugins/media/toolbar/imageBorder.js +14 -0
  230. package/dist/esm/plugins/media/toolbar/index.js +34 -5
  231. package/dist/esm/plugins/media/ui/ImageBorder/index.js +211 -0
  232. package/dist/esm/plugins/media/ui/ImageBorder/messages.js +43 -0
  233. package/dist/esm/plugins/media/ui/ImageBorder/styles.js +37 -0
  234. package/dist/esm/plugins/media/utils/current-media-node.js +24 -3
  235. package/dist/esm/plugins/paste/util/index.js +2 -0
  236. package/dist/esm/plugins/rank.js +1 -1
  237. package/dist/esm/plugins/rule/pm-plugins/input-rule.js +5 -0
  238. package/dist/esm/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  239. package/dist/esm/plugins/toolbar-lists-indentation/index.js +3 -1
  240. package/dist/esm/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  241. package/dist/esm/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  242. package/dist/esm/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  243. package/dist/esm/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  244. package/dist/esm/test-utils.js +3 -1
  245. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  246. package/dist/esm/ui/styles.js +1 -1
  247. package/dist/esm/utils/input-rules.js +0 -17
  248. package/dist/esm/utils/insert.js +56 -10
  249. package/dist/esm/version-wrapper.js +1 -1
  250. package/dist/esm/version.json +1 -1
  251. package/dist/types/create-editor/sort-by-order.d.ts +9 -0
  252. package/dist/types/editor-next/editor-migration-component.d.ts +1 -0
  253. package/dist/types/labs/next/presets/cxhtml.d.ts +36 -2
  254. package/dist/types/labs/next/presets/default.d.ts +72 -4
  255. package/dist/types/labs/next/presets/mobile.d.ts +36 -2
  256. package/dist/types/plugins/alignment/ui/ToolbarAlignment/styles.d.ts +0 -1
  257. package/dist/types/plugins/analytics/plugin.d.ts +2 -0
  258. package/dist/types/plugins/avatar-group/index.d.ts +2 -0
  259. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +2 -0
  260. package/dist/types/plugins/base/index.d.ts +2 -0
  261. package/dist/types/plugins/base/pm-plugins/disable-spell-checking.d.ts +2 -1
  262. package/dist/types/plugins/border/index.d.ts +3 -0
  263. package/dist/types/plugins/card/index.d.ts +2 -0
  264. package/dist/types/plugins/card/toolbar.d.ts +2 -1
  265. package/dist/types/plugins/card/ui/EditLinkToolbar.d.ts +5 -2
  266. package/dist/types/plugins/collab-edit/analytics.d.ts +2 -1
  267. package/dist/types/plugins/collab-edit/events/handlers.d.ts +2 -1
  268. package/dist/types/plugins/collab-edit/events/initialize.d.ts +3 -1
  269. package/dist/types/plugins/collab-edit/index.d.ts +2 -0
  270. package/dist/types/plugins/collab-edit/plugin.d.ts +2 -1
  271. package/dist/types/plugins/collab-edit/ui/avatars-with-plugin-state.d.ts +4 -0
  272. package/dist/types/plugins/collab-edit/ui/avatars.d.ts +2 -0
  273. package/dist/types/plugins/date/index.d.ts +9 -1
  274. package/dist/types/plugins/editor-disabled/index.d.ts +3 -1
  275. package/dist/types/plugins/expand/index.d.ts +2 -0
  276. package/dist/types/plugins/expand/nodeviews/index.d.ts +5 -2
  277. package/dist/types/plugins/expand/pm-plugins/main.d.ts +2 -1
  278. package/dist/types/plugins/extension/pm-plugins/main.d.ts +8 -2
  279. package/dist/types/plugins/extension/pm-plugins/utils.d.ts +3 -0
  280. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -7
  281. package/dist/types/plugins/find-replace/FindReplaceToolbarButtonWithState.d.ts +2 -0
  282. package/dist/types/plugins/find-replace/index.d.ts +2 -0
  283. package/dist/types/plugins/floating-toolbar/index.d.ts +4 -1
  284. package/dist/types/plugins/floating-toolbar/ui/Toolbar.d.ts +2 -0
  285. package/dist/types/plugins/hyperlink/Toolbar.d.ts +2 -1
  286. package/dist/types/plugins/hyperlink/index.d.ts +2 -0
  287. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/index.d.ts +2 -0
  288. package/dist/types/plugins/index.d.ts +1 -0
  289. package/dist/types/plugins/list/actions/outdent-list-items-selected.d.ts +2 -1
  290. package/dist/types/plugins/list/commands/index.d.ts +3 -2
  291. package/dist/types/plugins/list/commands/outdent-list.d.ts +2 -1
  292. package/dist/types/plugins/list/index.d.ts +2 -0
  293. package/dist/types/plugins/list/pm-plugins/input-rules/create-list-input-rule.d.ts +1 -1
  294. package/dist/types/plugins/list/pm-plugins/input-rules/wrapping-join-rule.d.ts +13 -0
  295. package/dist/types/plugins/list/pm-plugins/keymap.d.ts +2 -1
  296. package/dist/types/plugins/list/pm-plugins/main.d.ts +3 -2
  297. package/dist/types/plugins/media/nodeviews/styles.d.ts +3 -1
  298. package/dist/types/plugins/media/toolbar/commands.d.ts +5 -0
  299. package/dist/types/plugins/media/toolbar/imageBorder.d.ts +2 -0
  300. package/dist/types/plugins/media/types.d.ts +3 -0
  301. package/dist/types/plugins/media/ui/ImageBorder/index.d.ts +13 -0
  302. package/dist/types/plugins/media/ui/ImageBorder/messages.d.ts +42 -0
  303. package/dist/types/plugins/media/ui/ImageBorder/styles.d.ts +15 -0
  304. package/dist/types/plugins/media/utils/current-media-node.d.ts +6 -0
  305. package/dist/types/plugins/text-color/pm-plugins/main.d.ts +0 -2
  306. package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +2 -0
  307. package/dist/types/plugins/toolbar-lists-indentation/types.d.ts +2 -0
  308. package/dist/types/plugins/toolbar-lists-indentation/ui/index.d.ts +2 -0
  309. package/dist/types/plugins/toolbar-lists-indentation/ui/onItemActivated.d.ts +3 -1
  310. package/dist/types/test-utils.d.ts +4 -2
  311. package/dist/types/types/editor-props.d.ts +5 -0
  312. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +5 -5
  313. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  314. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  315. package/package.json +12 -11
  316. package/report.api.md +12 -4
  317. package/codemods/__tests__/rename-experimental-text-color-prop.ts +0 -204
  318. package/codemods/migrates/rename-experimental-text-color-prop.ts +0 -6
@@ -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;
@@ -5,7 +5,6 @@ import HyperlinkAddToolbarComp from './HyperlinkAddToolbar';
5
5
  import { INPUT_METHOD } from '../../../analytics/types';
6
6
  import { stateKey as pluginKey } from '../../pm-plugins/main';
7
7
  import WithPluginState from '../../../../ui/WithPluginState';
8
- import { getFeatureFlags } from '../../../feature-flags-context';
9
8
  import { EditorLinkPicker } from '../EditorLinkPicker';
10
9
  /**
11
10
  * Wraps around the editor's onSubmit handler so that the plugin can interface with the link picker
@@ -29,7 +28,8 @@ export default class HyperlinkAddToolbar extends React.PureComponent {
29
28
  providerFactory,
30
29
  view,
31
30
  onCancel,
32
- invokeMethod
31
+ invokeMethod,
32
+ featureFlags
33
33
  } = this.props;
34
34
  return /*#__PURE__*/React.createElement(WithProviders, {
35
35
  providers: ['activityProvider', 'searchProvider'],
@@ -47,7 +47,7 @@ export default class HyperlinkAddToolbar extends React.PureComponent {
47
47
  }) => {
48
48
  const {
49
49
  lpLinkPicker
50
- } = getFeatureFlags(view.state);
50
+ } = featureFlags;
51
51
  if (lpLinkPicker) {
52
52
  return /*#__PURE__*/React.createElement(EditorLinkPicker, _extends({
53
53
  view: view,
@@ -64,4 +64,5 @@ export { default as avatarGroupPlugin } from './avatar-group';
64
64
  export { default as viewUpdateSubscriptionPlugin } from './view-update-subscription';
65
65
  export { default as beforePrimaryToolbarPlugin } from './before-primaryToolbar';
66
66
  export { default as codeBidiWarningPlugin } from './code-bidi-warning';
67
- export { default as copyButtonPlugin } from './copy-button';
67
+ export { default as copyButtonPlugin } from './copy-button';
68
+ export { default as borderPlugin } from './border';
@@ -470,7 +470,8 @@ export class ToolbarInsertBlock extends React.PureComponent {
470
470
  offset: [0, 3],
471
471
  mountTo: popupsMountPoint,
472
472
  boundariesElement: popupsBoundariesElement,
473
- scrollableElement: popupsScrollableElement
473
+ scrollableElement: popupsScrollableElement,
474
+ focusTrap: true
474
475
  }, jsx(EmojiPickerWithListeners, {
475
476
  emojiProvider: emojiProvider,
476
477
  onSelection: this.handleSelectedEmoji,
@@ -6,10 +6,9 @@ import { isListNode, isListItemNode, joinSiblingLists, JoinDirection } from '../
6
6
  import { findFirstParentListItemNode, findRootParentListNode } from '../utils/find';
7
7
  import { normalizeListItemsSelection, createListNodeRange } from '../utils/selection';
8
8
  import { GapCursorSelection } from '../../selection/gap-cursor-selection';
9
- import { getFeatureFlags } from '../../feature-flags-context';
10
9
  import { storeRestartListsAttributes, getRestartListsAttributes } from '../utils/analytics';
11
10
  import { OUTDENT_SCENARIOS } from '@atlaskit/editor-common/analytics';
12
- export const outdentListItemsSelected = (tr, state) => {
11
+ export const outdentListItemsSelected = (tr, state, featureFlags) => {
13
12
  const originalSelection = tr.selection;
14
13
  const normalizedSelection = normalizeListItemsSelection({
15
14
  selection: tr.selection,
@@ -46,7 +45,8 @@ export const outdentListItemsSelected = (tr, state) => {
46
45
  extractListItemsRangeFromList({
47
46
  tr,
48
47
  range: mappedRange,
49
- state
48
+ state,
49
+ featureFlags
50
50
  });
51
51
  hasNormalizedToPositionLiftedOut = hasNormalizedToPositionLiftedOut || oldTo >= range.from && oldTo < range.to;
52
52
  hasNormalizedFromPositionLiftedOut = hasNormalizedFromPositionLiftedOut || oldFrom >= range.from && oldFrom < range.to;
@@ -177,7 +177,8 @@ const outdentRangeToParentList = ({
177
177
  const extractListItemsRangeFromList = ({
178
178
  tr,
179
179
  range,
180
- state
180
+ state,
181
+ featureFlags
181
182
  }) => {
182
183
  const list = range.parent;
183
184
  const $start = tr.doc.resolve(range.start);
@@ -200,7 +201,6 @@ const extractListItemsRangeFromList = ({
200
201
  }
201
202
  }
202
203
  let nextList = list.copy(Fragment.empty);
203
- const featureFlags = getFeatureFlags(state);
204
204
  let nextListStartNumber;
205
205
  if (featureFlags !== null && featureFlags !== void 0 && featureFlags.restartNumberedLists) {
206
206
  // if splitting a numbered list, keep the splitted item
@@ -18,7 +18,7 @@ import { outdentList } from './outdent-list';
18
18
  import { indentList } from './indent-list';
19
19
  import { moveTargetIntoList } from '../utils/replace-content';
20
20
  export { outdentList, indentList };
21
- export const enterKeyCommand = (state, dispatch) => {
21
+ export const enterKeyCommand = featureFlags => (state, dispatch) => {
22
22
  const {
23
23
  selection
24
24
  } = state;
@@ -35,7 +35,7 @@ export const enterKeyCommand = (state, dispatch) => {
35
35
  /** Check if the wrapper has any visible content */
36
36
  const wrapperHasContent = hasVisibleContent(wrapper);
37
37
  if (!wrapperHasContent) {
38
- return outdentList(INPUT_METHOD.KEYBOARD)(state, dispatch);
38
+ return outdentList(INPUT_METHOD.KEYBOARD, featureFlags)(state, dispatch);
39
39
  } else if (!hasParentNodeOfType(codeBlock)(selection)) {
40
40
  return splitListItem(listItem)(state, dispatch);
41
41
  }
@@ -43,13 +43,13 @@ export const enterKeyCommand = (state, dispatch) => {
43
43
  }
44
44
  return false;
45
45
  };
46
- export const backspaceKeyCommand = (state, dispatch) => {
46
+ export const backspaceKeyCommand = featureFlags => (state, dispatch) => {
47
47
  return baseCommand.chainCommands(listBackspace,
48
48
  // if we're at the start of a list item, we need to either backspace
49
49
  // directly to an empty list item above, or outdent this node
50
50
  filter([isEmptySelectionAtStart,
51
51
  // list items might have multiple paragraphs; only do this at the first one
52
- isFirstChildOfParent, isInsideListItem], baseCommand.chainCommands(deletePreviousEmptyListItem, outdentList(INPUT_METHOD.KEYBOARD))),
52
+ isFirstChildOfParent, isInsideListItem], baseCommand.chainCommands(deletePreviousEmptyListItem, outdentList(INPUT_METHOD.KEYBOARD, featureFlags))),
53
53
  // if we're just inside a paragraph node (or gapcursor is shown) and backspace, then try to join
54
54
  // the text to the previous list item, if one exists
55
55
  filter([isEmptySelectionAtStart, canJoinToPreviousListItem], joinToPreviousListItem))(state, dispatch);
@@ -6,8 +6,7 @@ import { findFirstParentListNode } from '../utils/find';
6
6
  import { getCommonListAnalyticsAttributes, getRestartListsAttributes } from '../utils/analytics';
7
7
  import { outdentListItemsSelected as outdentListAction } from '../actions/outdent-list-items-selected';
8
8
  import { closeHistory } from 'prosemirror-history';
9
- import { getFeatureFlags } from '../../feature-flags-context';
10
- export function outdentList(inputMethod = INPUT_METHOD.KEYBOARD) {
9
+ export function outdentList(inputMethod = INPUT_METHOD.KEYBOARD, featureFlags) {
11
10
  return function (state, dispatch) {
12
11
  if (!isInsideListItem(state)) {
13
12
  return false;
@@ -25,13 +24,12 @@ export function outdentList(inputMethod = INPUT_METHOD.KEYBOARD) {
25
24
  closeHistory(state.tr);
26
25
  const actionSubjectId = isBulletList(parentListNode.node) ? ACTION_SUBJECT_ID.FORMAT_LIST_BULLET : ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
27
26
  let customTr = state.tr;
28
- outdentListAction(customTr, state);
27
+ outdentListAction(customTr, state, featureFlags);
29
28
  if (!customTr || !customTr.docChanged) {
30
29
  // Even though this is a non-operation, we don't want to send this event to the browser. Because if we return false, the browser will move the focus to another place
31
30
  // If inside table cell and can't outdent list, then let it handle by table keymap
32
31
  return !isInsideTableCell(state);
33
32
  }
34
- const featureFlags = getFeatureFlags(state);
35
33
  const restartListsAttributes = {};
36
34
  if (featureFlags !== null && featureFlags !== void 0 && featureFlags.restartNumberedLists) {
37
35
  const {
@@ -11,81 +11,84 @@ import { IconList, IconListNumber } from '../quick-insert/assets';
11
11
  Toolbar buttons to bullet and ordered list can be found in
12
12
  packages/editor/editor-core/src/plugins/toolbar-lists-indentation/ui/Toolbar.tsx
13
13
  */
14
- const listPlugin = options => ({
15
- name: 'list',
16
- nodes() {
17
- return [{
18
- name: 'bulletList',
19
- node: bulletList
20
- }, {
21
- name: 'orderedList',
22
- node: options !== null && options !== void 0 && options.restartNumberedLists ? orderedListWithOrder : orderedList
23
- }, {
24
- name: 'listItem',
25
- node: listItem
26
- }];
27
- },
28
- pmPlugins() {
29
- return [{
30
- name: 'list',
31
- plugin: ({
32
- dispatch
33
- }) => createPlugin(dispatch)
34
- }, {
35
- name: 'listInputRule',
36
- plugin: ({
37
- schema,
38
- featureFlags
39
- }) => inputRulePlugin(schema, featureFlags)
40
- }, {
41
- name: 'listKeymap',
42
- plugin: () => keymapPlugin()
43
- }];
44
- },
45
- pluginsOptions: {
46
- quickInsert: ({
47
- formatMessage
48
- }) => [{
49
- id: 'unorderedList',
50
- title: formatMessage(messages.unorderedList),
51
- description: formatMessage(messages.unorderedListDescription),
52
- keywords: ['ul', 'unordered'],
53
- priority: 1100,
54
- keyshortcut: tooltip(toggleBulletList),
55
- icon: () => /*#__PURE__*/React.createElement(IconList, null),
56
- action(insert, state) {
57
- const tr = insert(state.schema.nodes.bulletList.createChecked({}, state.schema.nodes.listItem.createChecked({}, state.schema.nodes.paragraph.createChecked())));
58
- return addAnalytics(state, tr, {
59
- action: ACTION.INSERTED,
60
- actionSubject: ACTION_SUBJECT.LIST,
61
- actionSubjectId: ACTION_SUBJECT_ID.FORMAT_LIST_BULLET,
62
- eventType: EVENT_TYPE.TRACK,
63
- attributes: {
64
- inputMethod: INPUT_METHOD.QUICK_INSERT
65
- }
66
- });
67
- }
68
- }, {
69
- id: 'orderedList',
70
- title: formatMessage(messages.orderedList),
71
- description: formatMessage(messages.orderedListDescription),
72
- keywords: ['ol', 'ordered'],
73
- priority: 1200,
74
- keyshortcut: tooltip(toggleOrderedList),
75
- icon: () => /*#__PURE__*/React.createElement(IconListNumber, null),
76
- action(insert, state) {
77
- const tr = insert(state.schema.nodes.orderedList.createChecked({}, state.schema.nodes.listItem.createChecked({}, state.schema.nodes.paragraph.createChecked())));
78
- return addAnalytics(state, tr, {
79
- action: ACTION.INSERTED,
80
- actionSubject: ACTION_SUBJECT.LIST,
81
- actionSubjectId: ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER,
82
- eventType: EVENT_TYPE.TRACK,
83
- attributes: {
84
- inputMethod: INPUT_METHOD.QUICK_INSERT
85
- }
86
- });
87
- }
88
- }]
89
- }
90
- });
14
+ const listPlugin = (options, api) => {
15
+ const featureFlags = (api === null || api === void 0 ? void 0 : api.dependencies.featureFlags.sharedState.currentState()) || {};
16
+ return {
17
+ name: 'list',
18
+ nodes() {
19
+ return [{
20
+ name: 'bulletList',
21
+ node: bulletList
22
+ }, {
23
+ name: 'orderedList',
24
+ node: options !== null && options !== void 0 && options.restartNumberedLists ? orderedListWithOrder : orderedList
25
+ }, {
26
+ name: 'listItem',
27
+ node: listItem
28
+ }];
29
+ },
30
+ pmPlugins() {
31
+ return [{
32
+ name: 'list',
33
+ plugin: ({
34
+ dispatch
35
+ }) => createPlugin(dispatch, featureFlags)
36
+ }, {
37
+ name: 'listInputRule',
38
+ plugin: ({
39
+ schema,
40
+ featureFlags
41
+ }) => inputRulePlugin(schema, featureFlags)
42
+ }, {
43
+ name: 'listKeymap',
44
+ plugin: () => keymapPlugin(featureFlags)
45
+ }];
46
+ },
47
+ pluginsOptions: {
48
+ quickInsert: ({
49
+ formatMessage
50
+ }) => [{
51
+ id: 'unorderedList',
52
+ title: formatMessage(messages.unorderedList),
53
+ description: formatMessage(messages.unorderedListDescription),
54
+ keywords: ['ul', 'unordered'],
55
+ priority: 1100,
56
+ keyshortcut: tooltip(toggleBulletList),
57
+ icon: () => /*#__PURE__*/React.createElement(IconList, null),
58
+ action(insert, state) {
59
+ const tr = insert(state.schema.nodes.bulletList.createChecked({}, state.schema.nodes.listItem.createChecked({}, state.schema.nodes.paragraph.createChecked())));
60
+ return addAnalytics(state, tr, {
61
+ action: ACTION.INSERTED,
62
+ actionSubject: ACTION_SUBJECT.LIST,
63
+ actionSubjectId: ACTION_SUBJECT_ID.FORMAT_LIST_BULLET,
64
+ eventType: EVENT_TYPE.TRACK,
65
+ attributes: {
66
+ inputMethod: INPUT_METHOD.QUICK_INSERT
67
+ }
68
+ });
69
+ }
70
+ }, {
71
+ id: 'orderedList',
72
+ title: formatMessage(messages.orderedList),
73
+ description: formatMessage(messages.orderedListDescription),
74
+ keywords: ['ol', 'ordered'],
75
+ priority: 1200,
76
+ keyshortcut: tooltip(toggleOrderedList),
77
+ icon: () => /*#__PURE__*/React.createElement(IconListNumber, null),
78
+ action(insert, state) {
79
+ const tr = insert(state.schema.nodes.orderedList.createChecked({}, state.schema.nodes.listItem.createChecked({}, state.schema.nodes.paragraph.createChecked())));
80
+ return addAnalytics(state, tr, {
81
+ action: ACTION.INSERTED,
82
+ actionSubject: ACTION_SUBJECT.LIST,
83
+ actionSubjectId: ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER,
84
+ eventType: EVENT_TYPE.TRACK,
85
+ attributes: {
86
+ inputMethod: INPUT_METHOD.QUICK_INSERT
87
+ }
88
+ });
89
+ }
90
+ }]
91
+ }
92
+ };
93
+ };
91
94
  export default listPlugin;
@@ -1,4 +1,5 @@
1
- import { ruleWithAnalytics, createWrappingJoinRule } from '../../../../utils/input-rules';
1
+ import { ruleWithAnalytics } from '../../../../utils/input-rules';
2
+ import { createWrappingJoinRule } from './wrapping-join-rule';
2
3
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '../../../analytics';
3
4
  import { JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST } from '@atlaskit/editor-common/analytics';
4
5
  const getOrder = matchResult => Number(matchResult[1]);
@@ -44,6 +45,7 @@ export function createRuleForListType({
44
45
  };
45
46
  }
46
47
  const inputRule = createWrappingJoinRule({
48
+ featureFlags,
47
49
  match: expression,
48
50
  nodeType: listType,
49
51
  getAttrs,
@@ -14,7 +14,8 @@ export default function inputRulePlugin(schema, featureFlags) {
14
14
  // because of issue where product converted the
15
15
  // character into an escaped version.
16
16
  expression: /^\s*([\*\-\u2022]) $/,
17
- listType: bulletList
17
+ listType: bulletList,
18
+ featureFlags
18
19
  }));
19
20
  }
20
21
  const expression = featureFlags !== null && featureFlags !== void 0 && featureFlags.restartNumberedLists ? /((^[1-9]{1}[0-9]{0,2})|^(0))[\.\)] $/ : /^(1)[\.\)] $/;