@atlaskit/editor-core 151.3.0 → 151.3.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 (297) hide show
  1. package/dist/cjs/create-editor/ReactEditorView.js +22 -8
  2. package/dist/cjs/create-editor/create-plugins-list.js +25 -9
  3. package/dist/cjs/labs/next/presets/cxhtml.js +1 -2
  4. package/dist/cjs/nodeviews/ReactNodeView.js +2 -2
  5. package/dist/cjs/nodeviews/SelectionBasedNodeView.js +6 -0
  6. package/dist/cjs/plugins/analytics/types/enums.js +1 -0
  7. package/dist/cjs/plugins/annotation/utils.js +19 -8
  8. package/dist/cjs/plugins/avatar-group/index.js +2 -1
  9. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +5 -2
  10. package/dist/cjs/plugins/before-primaryToolbar/index.js +26 -0
  11. package/dist/cjs/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +28 -0
  12. package/dist/cjs/plugins/extension/extension-api.js +10 -2
  13. package/dist/cjs/plugins/extension/ui/styles.js +1 -1
  14. package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +4 -2
  15. package/dist/cjs/plugins/find-replace/FindReplaceToolbarButtonWithState.js +172 -0
  16. package/dist/cjs/plugins/find-replace/index.js +14 -137
  17. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +10 -4
  18. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +1 -1
  19. package/dist/cjs/plugins/fragment/index.js +34 -0
  20. package/dist/cjs/plugins/fragment/plugin-key.js +11 -0
  21. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  22. package/dist/cjs/plugins/index.js +16 -0
  23. package/dist/cjs/plugins/list/actions/conversions.js +39 -71
  24. package/dist/cjs/plugins/list/transforms.js +7 -1
  25. package/dist/cjs/plugins/media/index.js +2 -3
  26. package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +3 -1
  27. package/dist/cjs/plugins/media/nodeviews/mediaInline.js +12 -5
  28. package/dist/cjs/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  29. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +6 -4
  30. package/dist/cjs/plugins/media/nodeviews/styles.js +6 -1
  31. package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -1
  32. package/dist/cjs/plugins/media/pm-plugins/main.js +49 -15
  33. package/dist/cjs/plugins/media/toolbar/commands.js +59 -0
  34. package/dist/cjs/plugins/media/toolbar/filePreviewItem.js +7 -2
  35. package/dist/cjs/plugins/media/toolbar/index.js +90 -3
  36. package/dist/cjs/plugins/media/ui/ResizableMediaSingle/index.js +9 -1
  37. package/dist/cjs/plugins/media/utils/media-common.js +1 -1
  38. package/dist/cjs/plugins/media/utils/media-files.js +5 -1
  39. package/dist/cjs/plugins/panel/actions.js +2 -2
  40. package/dist/cjs/plugins/panel/index.js +3 -3
  41. package/dist/cjs/plugins/panel/nodeviews/panel.js +2 -2
  42. package/dist/cjs/plugins/panel/toolbar.js +10 -5
  43. package/dist/cjs/plugins/panel/utils.js +15 -0
  44. package/dist/cjs/plugins/rank.js +3 -2
  45. package/dist/cjs/plugins/selection/pm-plugins/selection-main.js +49 -1
  46. package/dist/cjs/plugins/status/ui/statusPicker.js +4 -2
  47. package/dist/cjs/plugins/table/commands/insert.js +1 -0
  48. package/dist/cjs/plugins/table/index.js +3 -2
  49. package/dist/cjs/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -3
  50. package/dist/cjs/plugins/table/pm-plugins/main.js +26 -3
  51. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  52. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -0
  53. package/dist/cjs/plugins/table/transforms/column-width.js +14 -5
  54. package/dist/cjs/plugins/table/transforms/fix-tables.js +43 -6
  55. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +3 -2
  56. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -0
  57. package/dist/cjs/plugins/table/ui/common-styles.css.js +1 -1
  58. package/dist/cjs/plugins/table/ui/consts.js +1 -1
  59. package/dist/cjs/plugins/table/ui/messages.js +1 -1
  60. package/dist/cjs/plugins/tasks-and-decisions/nodeviews/decisionItem.js +1 -1
  61. package/dist/cjs/plugins/tasks-and-decisions/nodeviews/taskItem.js +1 -1
  62. package/dist/cjs/plugins/tasks-and-decisions/pm-plugins/main.js +2 -2
  63. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +2 -1
  64. package/dist/cjs/plugins/text-formatting/index.js +2 -1
  65. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +1 -0
  66. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +77 -26
  67. package/dist/cjs/ui/Appearance/FullPage/MainToolbar.js +32 -9
  68. package/dist/cjs/ui/ColorPalette/Color/index.js +8 -18
  69. package/dist/cjs/ui/ColorPalette/index.js +7 -4
  70. package/dist/cjs/ui/ColorPickerButton/index.js +1 -1
  71. package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +114 -61
  72. package/dist/cjs/ui/ConfigPanel/FormContent.js +39 -26
  73. package/dist/cjs/ui/ConfigPanel/transformers.js +490 -248
  74. package/dist/cjs/ui/ConfigPanel/utils.js +2 -10
  75. package/dist/cjs/ui/DropdownMenu/index.js +3 -1
  76. package/dist/cjs/ui/LinkSearch/LinkSearchListItem.js +1 -1
  77. package/dist/cjs/ui/Resizer/index.js +9 -1
  78. package/dist/cjs/version-wrapper.js +1 -1
  79. package/dist/cjs/version.json +1 -1
  80. package/dist/es2019/create-editor/ReactEditorView.js +19 -8
  81. package/dist/es2019/create-editor/create-plugins-list.js +26 -10
  82. package/dist/es2019/labs/next/presets/cxhtml.js +1 -2
  83. package/dist/es2019/nodeviews/ReactNodeView.js +1 -1
  84. package/dist/es2019/nodeviews/SelectionBasedNodeView.js +11 -0
  85. package/dist/es2019/plugins/analytics/types/enums.js +1 -0
  86. package/dist/es2019/plugins/annotation/utils.js +18 -7
  87. package/dist/es2019/plugins/avatar-group/index.js +2 -1
  88. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +3 -2
  89. package/dist/es2019/plugins/before-primaryToolbar/index.js +15 -0
  90. package/dist/es2019/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +12 -0
  91. package/dist/es2019/plugins/extension/extension-api.js +9 -2
  92. package/dist/es2019/plugins/extension/ui/styles.js +6 -0
  93. package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +4 -2
  94. package/dist/es2019/plugins/find-replace/FindReplaceToolbarButtonWithState.js +152 -0
  95. package/dist/es2019/plugins/find-replace/index.js +15 -128
  96. package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  97. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +10 -2
  98. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +1 -1
  99. package/dist/es2019/plugins/fragment/index.js +22 -0
  100. package/dist/es2019/plugins/fragment/plugin-key.js +2 -0
  101. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -2
  102. package/dist/es2019/plugins/index.js +2 -0
  103. package/dist/es2019/plugins/list/actions/conversions.js +38 -69
  104. package/dist/es2019/plugins/list/transforms.js +5 -1
  105. package/dist/es2019/plugins/media/index.js +2 -2
  106. package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +2 -1
  107. package/dist/es2019/plugins/media/nodeviews/mediaInline.js +8 -4
  108. package/dist/es2019/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  109. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +7 -5
  110. package/dist/es2019/plugins/media/nodeviews/styles.js +2 -0
  111. package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -1
  112. package/dist/es2019/plugins/media/pm-plugins/main.js +32 -17
  113. package/dist/es2019/plugins/media/toolbar/commands.js +47 -0
  114. package/dist/es2019/plugins/media/toolbar/filePreviewItem.js +6 -2
  115. package/dist/es2019/plugins/media/toolbar/index.js +90 -3
  116. package/dist/es2019/plugins/media/ui/ResizableMediaSingle/index.js +7 -1
  117. package/dist/es2019/plugins/media/utils/media-common.js +1 -1
  118. package/dist/es2019/plugins/media/utils/media-files.js +6 -1
  119. package/dist/es2019/plugins/panel/actions.js +2 -2
  120. package/dist/es2019/plugins/panel/index.js +5 -5
  121. package/dist/es2019/plugins/panel/nodeviews/panel.js +2 -2
  122. package/dist/es2019/plugins/panel/toolbar.js +10 -5
  123. package/dist/es2019/plugins/panel/utils.js +8 -1
  124. package/dist/es2019/plugins/rank.js +3 -2
  125. package/dist/es2019/plugins/selection/pm-plugins/selection-main.js +48 -1
  126. package/dist/es2019/plugins/status/ui/statusPicker.js +4 -2
  127. package/dist/es2019/plugins/table/commands/insert.js +1 -2
  128. package/dist/es2019/plugins/table/index.js +2 -1
  129. package/dist/es2019/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -2
  130. package/dist/es2019/plugins/table/pm-plugins/main.js +25 -4
  131. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  132. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -0
  133. package/dist/es2019/plugins/table/transforms/column-width.js +13 -3
  134. package/dist/es2019/plugins/table/transforms/fix-tables.js +43 -5
  135. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +3 -2
  136. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -0
  137. package/dist/es2019/plugins/table/ui/common-styles.css.js +5 -1
  138. package/dist/es2019/plugins/table/ui/consts.js +2 -2
  139. package/dist/es2019/plugins/table/ui/messages.js +1 -1
  140. package/dist/es2019/plugins/tasks-and-decisions/nodeviews/decisionItem.js +1 -1
  141. package/dist/es2019/plugins/tasks-and-decisions/nodeviews/taskItem.js +1 -1
  142. package/dist/es2019/plugins/tasks-and-decisions/pm-plugins/main.js +3 -3
  143. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +2 -1
  144. package/dist/es2019/plugins/text-formatting/index.js +3 -2
  145. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +2 -1
  146. package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +2 -1
  147. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +60 -27
  148. package/dist/es2019/ui/Appearance/FullPage/MainToolbar.js +51 -7
  149. package/dist/es2019/ui/ColorPalette/Color/index.js +9 -18
  150. package/dist/es2019/ui/ColorPalette/index.js +7 -4
  151. package/dist/es2019/ui/ColorPickerButton/index.js +1 -1
  152. package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +101 -49
  153. package/dist/es2019/ui/ConfigPanel/FormContent.js +35 -26
  154. package/dist/es2019/ui/ConfigPanel/transformers.js +243 -72
  155. package/dist/es2019/ui/ConfigPanel/utils.js +1 -2
  156. package/dist/es2019/ui/Dropdown/index.js +2 -1
  157. package/dist/es2019/ui/DropdownMenu/index.js +7 -3
  158. package/dist/es2019/ui/ElementBrowser/InsertMenu.js +1 -0
  159. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +1 -0
  160. package/dist/es2019/ui/LinkSearch/LinkSearchListItem.js +2 -2
  161. package/dist/es2019/ui/Resizer/index.js +9 -1
  162. package/dist/es2019/version-wrapper.js +1 -1
  163. package/dist/es2019/version.json +1 -1
  164. package/dist/esm/create-editor/ReactEditorView.js +22 -8
  165. package/dist/esm/create-editor/create-plugins-list.js +26 -10
  166. package/dist/esm/labs/next/presets/cxhtml.js +1 -2
  167. package/dist/esm/nodeviews/ReactNodeView.js +2 -2
  168. package/dist/esm/nodeviews/SelectionBasedNodeView.js +7 -0
  169. package/dist/esm/plugins/analytics/types/enums.js +1 -0
  170. package/dist/esm/plugins/annotation/utils.js +18 -7
  171. package/dist/esm/plugins/avatar-group/index.js +2 -1
  172. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +5 -2
  173. package/dist/esm/plugins/before-primaryToolbar/index.js +15 -0
  174. package/dist/esm/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +12 -0
  175. package/dist/esm/plugins/extension/extension-api.js +9 -2
  176. package/dist/esm/plugins/extension/ui/styles.js +1 -1
  177. package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +4 -2
  178. package/dist/esm/plugins/find-replace/FindReplaceToolbarButtonWithState.js +155 -0
  179. package/dist/esm/plugins/find-replace/index.js +14 -131
  180. package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
  181. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +9 -4
  182. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +1 -1
  183. package/dist/esm/plugins/fragment/index.js +22 -0
  184. package/dist/esm/plugins/fragment/plugin-key.js +2 -0
  185. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -2
  186. package/dist/esm/plugins/index.js +2 -0
  187. package/dist/esm/plugins/list/actions/conversions.js +38 -71
  188. package/dist/esm/plugins/list/transforms.js +7 -1
  189. package/dist/esm/plugins/media/index.js +2 -3
  190. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +2 -1
  191. package/dist/esm/plugins/media/nodeviews/mediaInline.js +11 -6
  192. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +3 -3
  193. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +7 -5
  194. package/dist/esm/plugins/media/nodeviews/styles.js +2 -0
  195. package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -1
  196. package/dist/esm/plugins/media/pm-plugins/main.js +47 -16
  197. package/dist/esm/plugins/media/toolbar/commands.js +45 -0
  198. package/dist/esm/plugins/media/toolbar/filePreviewItem.js +6 -2
  199. package/dist/esm/plugins/media/toolbar/index.js +88 -3
  200. package/dist/esm/plugins/media/ui/ResizableMediaSingle/index.js +9 -1
  201. package/dist/esm/plugins/media/utils/media-common.js +1 -1
  202. package/dist/esm/plugins/media/utils/media-files.js +6 -1
  203. package/dist/esm/plugins/panel/actions.js +2 -2
  204. package/dist/esm/plugins/panel/index.js +5 -5
  205. package/dist/esm/plugins/panel/nodeviews/panel.js +2 -2
  206. package/dist/esm/plugins/panel/toolbar.js +9 -4
  207. package/dist/esm/plugins/panel/utils.js +13 -0
  208. package/dist/esm/plugins/rank.js +3 -2
  209. package/dist/esm/plugins/selection/pm-plugins/selection-main.js +50 -1
  210. package/dist/esm/plugins/status/ui/statusPicker.js +4 -2
  211. package/dist/esm/plugins/table/commands/insert.js +1 -2
  212. package/dist/esm/plugins/table/index.js +3 -2
  213. package/dist/esm/plugins/table/nodeviews/OverflowShadowsObserver.js +1 -2
  214. package/dist/esm/plugins/table/pm-plugins/main.js +27 -4
  215. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +2 -2
  216. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -0
  217. package/dist/esm/plugins/table/transforms/column-width.js +13 -3
  218. package/dist/esm/plugins/table/transforms/fix-tables.js +42 -4
  219. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +3 -2
  220. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -0
  221. package/dist/esm/plugins/table/ui/common-styles.css.js +1 -1
  222. package/dist/esm/plugins/table/ui/consts.js +2 -2
  223. package/dist/esm/plugins/table/ui/messages.js +1 -1
  224. package/dist/esm/plugins/tasks-and-decisions/nodeviews/decisionItem.js +1 -1
  225. package/dist/esm/plugins/tasks-and-decisions/nodeviews/taskItem.js +1 -1
  226. package/dist/esm/plugins/tasks-and-decisions/pm-plugins/main.js +3 -3
  227. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +2 -1
  228. package/dist/esm/plugins/text-formatting/index.js +3 -2
  229. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +2 -1
  230. package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +2 -1
  231. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +67 -27
  232. package/dist/esm/ui/Appearance/FullPage/MainToolbar.js +20 -7
  233. package/dist/esm/ui/ColorPalette/Color/index.js +9 -16
  234. package/dist/esm/ui/ColorPalette/index.js +7 -4
  235. package/dist/esm/ui/ColorPickerButton/index.js +1 -1
  236. package/dist/esm/ui/ConfigPanel/ConfigPanel.js +113 -62
  237. package/dist/esm/ui/ConfigPanel/FormContent.js +39 -26
  238. package/dist/esm/ui/ConfigPanel/transformers.js +488 -248
  239. package/dist/esm/ui/ConfigPanel/utils.js +1 -6
  240. package/dist/esm/ui/Dropdown/index.js +2 -1
  241. package/dist/esm/ui/DropdownMenu/index.js +7 -3
  242. package/dist/esm/ui/ElementBrowser/InsertMenu.js +1 -0
  243. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +1 -0
  244. package/dist/esm/ui/LinkSearch/LinkSearchListItem.js +2 -2
  245. package/dist/esm/ui/Resizer/index.js +9 -1
  246. package/dist/esm/version-wrapper.js +1 -1
  247. package/dist/esm/version.json +1 -1
  248. package/dist/types/labs/next/full-page.d.ts +1 -1
  249. package/dist/types/nodeviews/ReactNodeView.d.ts +1 -1
  250. package/dist/types/nodeviews/SelectionBasedNodeView.d.ts +1 -0
  251. package/dist/types/plugins/analytics/types/enums.d.ts +1 -0
  252. package/dist/types/plugins/analytics/types/events.d.ts +7 -1
  253. package/dist/types/plugins/annotation/utils.d.ts +1 -1
  254. package/dist/types/plugins/avatar-group/index.d.ts +1 -0
  255. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +1 -0
  256. package/dist/types/plugins/before-primaryToolbar/index.d.ts +5 -0
  257. package/dist/types/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.d.ts +5 -0
  258. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -1
  259. package/dist/types/plugins/find-replace/FindReplaceToolbarButtonWithState.d.ts +15 -0
  260. package/dist/types/plugins/find-replace/index.d.ts +1 -0
  261. package/dist/types/plugins/floating-toolbar/ui/EmojiPickerButton.d.ts +1 -1
  262. package/dist/types/plugins/fragment/index.d.ts +5 -0
  263. package/dist/types/plugins/fragment/plugin-key.d.ts +2 -0
  264. package/dist/types/plugins/index.d.ts +2 -0
  265. package/dist/types/plugins/media/nodeviews/mediaInline.d.ts +3 -2
  266. package/dist/types/plugins/media/nodeviews/mediaNodeUpdater.d.ts +2 -2
  267. package/dist/types/plugins/media/nodeviews/mediaSingle.d.ts +1 -1
  268. package/dist/types/plugins/media/nodeviews/styles.d.ts +2 -0
  269. package/dist/types/plugins/media/toolbar/commands.d.ts +3 -0
  270. package/dist/types/plugins/media/toolbar/filePreviewItem.d.ts +2 -0
  271. package/dist/types/plugins/media/types.d.ts +0 -1
  272. package/dist/types/plugins/panel/actions.d.ts +1 -1
  273. package/dist/types/plugins/panel/types.d.ts +8 -2
  274. package/dist/types/plugins/quick-insert/index.d.ts +2 -1
  275. package/dist/types/plugins/table/commands/insert.d.ts +3 -0
  276. package/dist/types/plugins/table/pm-plugins/main.d.ts +2 -1
  277. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/types.d.ts +1 -0
  278. package/dist/types/plugins/table/transforms/column-width.d.ts +4 -1
  279. package/dist/types/plugins/table/transforms/fix-tables.d.ts +3 -2
  280. package/dist/types/plugins/table/types.d.ts +8 -0
  281. package/dist/types/plugins/table/ui/consts.d.ts +1 -1
  282. package/dist/types/types/editor-appearance-component.d.ts +2 -2
  283. package/dist/types/types/editor-props.d.ts +11 -1
  284. package/dist/types/types/feature-flags.d.ts +13 -0
  285. package/dist/types/types/index.d.ts +1 -1
  286. package/dist/types/ui/Appearance/FullPage/FullPageToolbar.d.ts +2 -2
  287. package/dist/types/ui/Appearance/FullPage/MainToolbar.d.ts +10 -1
  288. package/dist/types/ui/ColorPalette/Color/index.d.ts +8 -5
  289. package/dist/types/ui/ColorPalette/index.d.ts +1 -0
  290. package/dist/types/ui/ConfigPanel/transformers.d.ts +7 -1
  291. package/dist/types/ui/ConfigPanel/utils.d.ts +0 -1
  292. package/dist/types/ui/Resizer/index.d.ts +1 -0
  293. package/package.json +10 -7
  294. package/dist/cjs/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.js +0 -38
  295. package/dist/es2019/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.js +0 -28
  296. package/dist/esm/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.js +0 -28
  297. package/dist/types/plugins/floating-toolbar/ui/EditorRemoveEmojiIcon.d.ts +0 -1
@@ -1,4 +1,4 @@
1
- import { isFieldset, isDateRange, isTabGroup, isExpand, getFieldSerializer, getFieldDeserializer } from '@atlaskit/editor-common/extensions';
1
+ import { isFieldset, isDateRange, isTabGroup, isTabField, isExpand, getFieldSerializer, getFieldDeserializer } from '@atlaskit/editor-common/extensions';
2
2
  import { getNameFromDuplicateField, isDuplicateField } from './utils';
3
3
 
4
4
  const isOption = option => {
@@ -8,10 +8,9 @@ const isOption = option => {
8
8
  const isOptions = options => {
9
9
  return Array.isArray(options) && options.every(isOption);
10
10
  };
11
- /** maps the typed-values from the Form values object */
12
-
13
11
 
14
- function extract(value, field) {
12
+ /** maps the typed-values from the Form values object */
13
+ function extract(value, field, options) {
15
14
  if (isOptions(value)) {
16
15
  return value.map(item => item.value);
17
16
  } else if (isOption(value)) {
@@ -24,79 +23,235 @@ function extract(value, field) {
24
23
  }
25
24
 
26
25
  return Number(value);
26
+ } // Workaround for https://product-fabric.atlassian.net/browse/DST-2701
27
+ else if (options !== null && options !== void 0 && options.useDefaultValue && value === undefined && 'defaultValue' in field) {
28
+ return field.defaultValue;
27
29
  }
28
30
 
29
31
  return value;
30
32
  }
31
33
 
32
- export const serialize = async (manifest, data, fields, depth = 0) => {
34
+ export const findDuplicateFields = fields => findDuplicateFieldsInternal(flattenFields(fields));
35
+
36
+ const findDuplicateFieldsInternal = fields => {
37
+ const allowDuplicatesMap = {};
38
+ return fields.find(field => {
39
+ if (isExpand(field)) {
40
+ return findDuplicateFieldsInternal(field.fields);
41
+ } else if (isTabGroup(field)) {
42
+ return field.fields.find(tabField => findDuplicateFieldsInternal(tabField.fields));
43
+ } else if (allowDuplicatesMap[field.name] === undefined) {
44
+ allowDuplicatesMap[field.name] = !!field.allowDuplicates;
45
+ return;
46
+ } else if (!field.allowDuplicates || !allowDuplicatesMap[field.name]) {
47
+ return field;
48
+ }
49
+
50
+ return;
51
+ });
52
+ };
53
+
54
+ export const serialize = async (manifest, data, fields, options = {}) => {
33
55
  const result = [];
56
+ const {
57
+ depth = 0,
58
+ parentType
59
+ } = options;
60
+ const flattenedFields = flattenFields(fields);
61
+ const fillResults = flattenedFields.map(async field => {
62
+ if (isTabGroup(field)) {
63
+ const tabGroupData = await serializeTabGroupField(manifest, field, data);
64
+ result.push(...tabGroupData);
65
+ } else if (isTabField(field)) {
66
+ const tabData = await serializeTabField(manifest, field, data);
67
+ result.push(...tabData);
68
+ } else if (isExpand(field)) {
69
+ const expandData = await serializeExpandField(manifest, field, data);
70
+ result.push(...expandData);
71
+ } // WARNING: don't recursively serialize, limit to depth < 1
72
+ // serializable?
73
+ else if (isFieldset(field) && depth === 0) {
74
+ const fieldsetData = await serializeFieldset(manifest, field, data, depth);
34
75
 
35
- if (data) {
36
- for (const name in data) {
37
- const field = fields.find(field => field.name === getNameFromDuplicateField(name));
76
+ if (fieldsetData) {
77
+ result.push(fieldsetData);
78
+ }
79
+ } else {
80
+ const value = extract(data[field.name], field, {
81
+ useDefaultValue: true
82
+ }); // ignore undefined values
83
+
84
+ if (value !== undefined) {
85
+ result.push({
86
+ [field.name]: value
87
+ });
88
+ }
89
+ }
90
+ });
91
+ await Promise.all(fillResults); // Crunch fields down to parameters
38
92
 
39
- if (field === undefined) {
40
- continue;
41
- } // ignore undefined values
93
+ const parameters = result.reduce((obj, current) => {
94
+ for (const key in current) {
95
+ obj[key] = current[key];
96
+ }
42
97
 
98
+ return obj;
99
+ }, {}); // Fix up duplicate values (currently only for fieldsets)
43
100
 
44
- let value = extract(data[name], field);
101
+ const hasDuplicateFields = parentType === 'fieldset' && !!flattenedFields.find(field => field.allowDuplicates);
45
102
 
46
- if (value === undefined) {
47
- continue;
48
- }
103
+ if (hasDuplicateFields) {
104
+ return serializeMergeDuplicateFieldData(parameters, data, flattenedFields);
105
+ }
49
106
 
50
- if (isTabGroup(field)) {
51
- const {
52
- fields: tabs
53
- } = field;
54
- value = {};
107
+ return parameters;
108
+ };
55
109
 
56
- const resolveTabValues = async (tabField, groupData) => {
57
- return await serialize(manifest, groupData[tabField.name] || {}, tabField.fields);
58
- };
110
+ const serializeFieldset = async (manifest, field, data, depth) => {
111
+ let fieldSerializer;
59
112
 
60
- for (let i = 0; i < tabs.length; i++) {
61
- const tabField = tabs[i];
62
- value[tabField.name] = await resolveTabValues(tabField, data[field.name] || {});
63
- }
64
- } else if (isExpand(field)) {
65
- value = await serialize(manifest, data[field.name] || {}, field.fields);
66
- } // WARNING: don't recursively serialize, limit to depth < 1
67
- // serializable?
68
- else if (isFieldset(field) && depth === 0) {
69
- const fieldSerializer = await getFieldSerializer(manifest, field.options.transformer);
70
-
71
- if (fieldSerializer) {
72
- const {
73
- fields: fieldsetFields
74
- } = field;
75
- const extracted = await serialize(manifest, value, fieldsetFields, depth + 1);
76
- value = fieldSerializer(extracted);
77
- }
113
+ try {
114
+ fieldSerializer = await getFieldSerializer(manifest, field.options.transformer);
115
+ } catch (ex) {
116
+ // We only throw if there is data that may be lost
117
+ if (data[field.name] !== undefined) {
118
+ throw ex;
119
+ }
120
+ }
121
+
122
+ if (!fieldSerializer) {
123
+ return;
124
+ }
125
+
126
+ const {
127
+ fields: fieldsetFields
128
+ } = field;
129
+ const fieldParams = extract(data[field.name], field, {
130
+ useDefaultValue: true
131
+ }) || {};
132
+ const extracted = await serialize(manifest, fieldParams, fieldsetFields, {
133
+ depth: depth + 1,
134
+ parentType: 'fieldset'
135
+ });
136
+ return {
137
+ [field.name]: fieldSerializer(extracted)
138
+ };
139
+ };
140
+
141
+ const serializeExpandField = async (manifest, field, data) => {
142
+ const expandData = field.hasGroupedValues ? data[field.name] || {} : data;
143
+ const value = await serialize(manifest, expandData, field.fields, {
144
+ parentType: 'expand'
145
+ });
146
+ const results = [];
147
+
148
+ if (!field.hasGroupedValues) {
149
+ for (const fieldName in value) {
150
+ results.push({
151
+ [fieldName]: value[fieldName]
152
+ });
153
+ }
154
+ } else {
155
+ results.push({
156
+ [field.name]: value
157
+ });
158
+ }
159
+
160
+ return results;
161
+ };
162
+
163
+ const resolveTabValues = async (manifest, tabField, groupData) => {
164
+ const tabFieldParams = tabField.hasGroupedValues ? groupData[tabField.name] || {} : groupData;
165
+ return await serialize(manifest, tabFieldParams, tabField.fields, {
166
+ parentType: 'tab'
167
+ });
168
+ };
169
+
170
+ const serializeTabGroupField = async (manifest, field, data) => {
171
+ const {
172
+ fields: tabs
173
+ } = field;
174
+ const results = [];
175
+ const value = {};
176
+
177
+ for (let i = 0; i < tabs.length; i++) {
178
+ const tabField = tabs[i];
179
+ const tabFieldParameters = await resolveTabValues(manifest, tabField, field.hasGroupedValues ? data[field.name] || {} : data);
180
+
181
+ if (tabField.hasGroupedValues) {
182
+ // Keep namespaced by tab
183
+ value[tabField.name] = tabFieldParameters;
184
+ } else {
185
+ // Copy into tabGroup value
186
+ for (const fieldName in tabFieldParameters) {
187
+ value[fieldName] = tabFieldParameters[fieldName];
78
188
  }
189
+ }
190
+ } // Now for tabGroup...
191
+
79
192
 
80
- result.push({
81
- [field.name]: value
193
+ if (field.hasGroupedValues) {
194
+ results.push({
195
+ [field.name]: value
196
+ });
197
+ } else {
198
+ for (const fieldName in value) {
199
+ results.push({
200
+ [fieldName]: value
82
201
  });
83
202
  }
84
- } // when there are duplicate fields we return an array eg. [{ title: 'one' }, { title: 'two' }]
85
- // when there aren't we return an object eg. { title: 'one' }
203
+ }
86
204
 
205
+ return results;
206
+ };
87
207
 
88
- const hasDuplicateFields = !!Object.keys(data).find(key => isDuplicateField(key));
208
+ const serializeTabField = async (manifest, field, data) => {
209
+ const results = [];
210
+ const tabField = field;
211
+ const tabFieldParameters = await resolveTabValues(manifest, tabField, data);
89
212
 
90
- if (hasDuplicateFields) {
91
- return result;
213
+ if (tabField.hasGroupedValues) {
214
+ // Keep namespaced by tab
215
+ results.push({
216
+ [tabField.name]: tabFieldParameters
217
+ });
218
+ } else {
219
+ // Copy into tabGroup value
220
+ for (const fieldName in tabFieldParameters) {
221
+ results.push({
222
+ [fieldName]: tabFieldParameters[fieldName]
223
+ });
224
+ }
92
225
  }
93
226
 
94
- return result.reduce((obj, current) => {
95
- for (const key in current) {
96
- obj[key] = current[key];
227
+ return results;
228
+ };
229
+
230
+ const serializeMergeDuplicateFieldData = (parameters, formData, flattenedFields) => {
231
+ // Weed out all the non-duplicate field names
232
+ const allDuplicateFieldNames = Object.keys(formData).filter(key => isDuplicateField(key));
233
+ return flattenedFields.reduce((newParams, field) => {
234
+ const paramValue = parameters[field.name];
235
+
236
+ if (!field.allowDuplicates && paramValue !== undefined) {
237
+ newParams[field.name] = paramValue;
238
+ } else {
239
+ // extract the given duplicate values through the field
240
+ const duplicateValues = allDuplicateFieldNames.filter(name => getNameFromDuplicateField(name) === field.name).map(duplicateFieldName => extract(formData[duplicateFieldName], field, {
241
+ useDefaultValue: true
242
+ })); // Merge and ensure that all values are worth serializing
243
+
244
+ const mergedValues = [paramValue, // first value
245
+ ...duplicateValues].filter(value => value !== undefined);
246
+
247
+ if (mergedValues.length > 0) {
248
+ // Replace so the duplicate field values are saved under the
249
+ // fieldName as an array
250
+ newParams[field.name] = mergedValues;
251
+ }
97
252
  }
98
253
 
99
- return obj;
254
+ return newParams;
100
255
  }, {});
101
256
  };
102
257
 
@@ -137,21 +292,51 @@ function injectDefaultValues(data, fields) {
137
292
  }
138
293
  }
139
294
 
140
- if (doParametersContainDuplicateFields(copy)) {
141
- return copy;
142
- }
143
-
144
295
  return convertToParametersObject(copy);
145
296
  }
297
+ /**
298
+ * Flattens the given FieldDefinition[] so it resembles the expected data
299
+ * structure in result Parameters.
300
+ */
301
+
302
+
303
+ const flattenFields = fields => {
304
+ const flattenAccumulator = (accumulator, field) => {
305
+ if (isTabGroup(field)) {
306
+ if (field.hasGroupedValues) {
307
+ accumulator.push(field);
308
+ } else {
309
+ const flattenedTabs = field.fields.reduce((tabAccumulator, tab) => {
310
+ return tabAccumulator.concat(tab.hasGroupedValues ? tab : tab.fields.reduce(flattenAccumulator, []));
311
+ }, []);
312
+ accumulator.push(...flattenedTabs);
313
+ }
314
+ } else if (isExpand(field)) {
315
+ if (field.hasGroupedValues) {
316
+ accumulator.push(field);
317
+ } else {
318
+ const flattenedExpand = field.fields.reduce(flattenAccumulator, []);
319
+ accumulator.push(...flattenedExpand);
320
+ }
321
+ } else {
322
+ accumulator.push(field);
323
+ }
324
+
325
+ return accumulator;
326
+ };
327
+
328
+ return fields.reduce(flattenAccumulator, []);
329
+ };
146
330
 
147
331
  export const deserialize = async (manifest, data, fields, depth = 0) => {
148
332
  const dataArray = convertToParametersArray(data);
149
333
  let result = [];
150
334
  const errors = [];
335
+ const flattenedFields = flattenFields(fields);
151
336
 
152
337
  for (const item of dataArray) {
153
338
  const [name, originalValue] = Object.entries(item)[0];
154
- const field = fields.find(field => field.name === getNameFromDuplicateField(name));
339
+ const field = flattenedFields.find(field => field.name === getNameFromDuplicateField(name));
155
340
 
156
341
  if (field === undefined) {
157
342
  continue;
@@ -193,21 +378,7 @@ export const deserialize = async (manifest, data, fields, depth = 0) => {
193
378
  result.errors = convertToParametersObject(errors);
194
379
  }
195
380
 
196
- return injectDefaultValues(result, fields);
197
- };
198
-
199
- const doParametersContainDuplicateFields = parameters => {
200
- const keyMap = new Set();
201
-
202
- for (const param of parameters) {
203
- const key = Object.keys(param)[0];
204
-
205
- if (keyMap.has(key)) {
206
- return true;
207
- }
208
-
209
- keyMap.add(key);
210
- }
381
+ return injectDefaultValues(result, flattenedFields);
211
382
  };
212
383
 
213
384
  const convertToParametersObject = (parameters = []) => {
@@ -8,7 +8,6 @@ export const fromEntries = iterable => {
8
8
  return obj;
9
9
  }, {});
10
10
  };
11
- export const toEntries = parameters => Array.isArray(parameters) ? parameters.reduce((prev, curr) => [...prev, ...Object.entries(curr)], []) : Object.entries(parameters);
12
11
 
13
12
  const isEmptyString = value => typeof value === 'string' && value === '';
14
13
 
@@ -50,7 +49,7 @@ export const getSafeParentedName = (name, parentName) => {
50
49
  const duplicateFieldRegex = /:[0-9]+$/;
51
50
  export const isDuplicateField = key => duplicateFieldRegex.test(key);
52
51
  export const getNameFromDuplicateField = key => key.replace(duplicateFieldRegex, '');
53
- /*
52
+ /*
54
53
  ColorPickerButton only accepts 8 digit hex alpha values, for example:
55
54
  #123fffaa (8 digits, hex alpha)
56
55
  */
@@ -1,6 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import React from 'react';
3
- import { PureComponent } from 'react';
3
+ import { PureComponent } from 'react'; // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
4
+
4
5
  import DropdownList from '@atlaskit/droplist';
5
6
  import { Popup } from '@atlaskit/editor-common';
6
7
  import withOuterListeners from '../with-outer-listeners';
@@ -1,7 +1,9 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import React, { PureComponent } from 'react';
3
- import styled from 'styled-components';
4
- import DropList from '@atlaskit/droplist';
3
+ import styled from 'styled-components'; // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
4
+
5
+ import DropList from '@atlaskit/droplist'; // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
6
+
5
7
  import Item, { ItemGroup } from '@atlaskit/item';
6
8
  import Tooltip from '@atlaskit/tooltip';
7
9
  import { Popup } from '@atlaskit/editor-common';
@@ -84,6 +86,7 @@ export default class DropdownMenuWrapper extends PureComponent {
84
86
  key: item.key || item.content,
85
87
  isSelected: item.isActive
86
88
  }, /*#__PURE__*/React.createElement(Item, {
89
+ role: "menuitem",
87
90
  elemBefore: item.elemBefore,
88
91
  elemAfter: item.elemAfter,
89
92
  isDisabled: item.isDisabled,
@@ -154,7 +157,8 @@ export default class DropdownMenuWrapper extends PureComponent {
154
157
  minWidth: fitWidth || 0
155
158
  }
156
159
  }), items.map((group, index) => /*#__PURE__*/React.createElement(ItemGroup, {
157
- key: index
160
+ key: index,
161
+ role: "menu"
158
162
  }, group.items.map(item => this.renderItem(item))))));
159
163
  }
160
164
 
@@ -1,5 +1,6 @@
1
1
  import React, { useState, useCallback } from 'react';
2
2
  import styled, { ThemeProvider } from 'styled-components';
3
+ // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
3
4
  import Item, { itemThemeNamespace } from '@atlaskit/item'; // AFP-2532 TODO: Fix automatic suppressions below
4
5
  // eslint-disable-next-line @atlassian/tangerine/import/entry-points
5
6
 
@@ -4,6 +4,7 @@ import memoizeOne from 'memoize-one';
4
4
  import styled, { ThemeProvider, css } from 'styled-components';
5
5
  import { AutoSizer } from 'react-virtualized/dist/commonjs/AutoSizer';
6
6
  import { Collection } from 'react-virtualized/dist/commonjs/Collection';
7
+ // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
7
8
  import Item from '@atlaskit/item';
8
9
  import { B100, N20, N200 } from '@atlaskit/theme/colors';
9
10
  import Tooltip from '@atlaskit/tooltip';
@@ -4,7 +4,7 @@ import styled from 'styled-components'; // AFP-2532 TODO: Fix automatic suppress
4
4
  // eslint-disable-next-line @atlassian/tangerine/import/entry-points
5
5
 
6
6
  import { fontSizeSmall } from '@atlaskit/theme';
7
- import { N20, N800, N100 } from '@atlaskit/theme/colors';
7
+ import { N20, N300, N800 } from '@atlaskit/theme/colors';
8
8
  import { relativeFontSizeToBase16 } from '@atlaskit/editor-shared-styles';
9
9
  import formatDistance from 'date-fns/formatDistance';
10
10
  import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
@@ -30,7 +30,7 @@ export const Name = styled.div`
30
30
  line-height: 20px;
31
31
  `;
32
32
  export const ContainerName = styled.div`
33
- color: ${N100};
33
+ color: ${N300};
34
34
  line-height: 14px;
35
35
  font-size: ${relativeFontSizeToBase16(fontSizeSmall())};
36
36
  `;
@@ -146,6 +146,7 @@ export default class Resizer extends React.Component {
146
146
  render() {
147
147
  const handleStyles = {};
148
148
  const handles = {};
149
+ const handleComponent = {};
149
150
  const {
150
151
  innerPadding = 0,
151
152
  width,
@@ -154,7 +155,8 @@ export default class Resizer extends React.Component {
154
155
  layout,
155
156
  enable,
156
157
  children,
157
- ratio
158
+ ratio,
159
+ handleComponentFunc
158
160
  } = this.props;
159
161
  const {
160
162
  isResizing
@@ -167,6 +169,11 @@ export default class Resizer extends React.Component {
167
169
  zIndex: akRichMediaResizeZIndex,
168
170
  pointerEvents: 'auto'
169
171
  };
172
+ const sideHandleComponent = handleComponentFunc && handleComponentFunc(side);
173
+
174
+ if (sideHandleComponent) {
175
+ handleComponent[side] = sideHandleComponent;
176
+ }
170
177
  });
171
178
  const className = classnames(richMediaClassName, `image-${layout}`, this.props.className, {
172
179
  'is-resizing': isResizing,
@@ -199,6 +206,7 @@ export default class Resizer extends React.Component {
199
206
  handleClasses: handles,
200
207
  handleStyles: handleStyles,
201
208
  handleWrapperStyle: handleWrapperStyle,
209
+ handleComponent: handleComponent,
202
210
  enable: enable,
203
211
  onResize: this.handleResize,
204
212
  onResizeStop: this.handleResizeStop,
@@ -1,5 +1,5 @@
1
1
  export const name = "@atlaskit/editor-core";
2
- export const version = "151.3.0";
2
+ export const version = "151.3.1";
3
3
  export const nextMajorVersion = () => {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "151.3.0",
3
+ "version": "151.3.1",
4
4
  "sideEffects": false
5
5
  }
@@ -510,8 +510,30 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
510
510
  transformer: _this.contentTransformer
511
511
  });
512
512
 
513
+ if (_this.props.editorProps.shouldFocus && view.props.editable && view.props.editable(view.state)) {
514
+ _this.focusTimeoutId = handleEditorFocus(view);
515
+ }
516
+
513
517
  if (_this.featureFlags.ufo) {
518
+ _this.experienceStore = ExperienceStore.getInstance(view);
519
+
520
+ _this.experienceStore.start(EditorExperience.editSession);
521
+
522
+ _this.experienceStore.addMetadata(EditorExperience.editSession, {
523
+ reliabilityInterval: RELIABILITY_INTERVAL
524
+ });
525
+
514
526
  _this.reliabilityInterval = window.setInterval(function () {
527
+ var _this$experienceStore11, _this$experienceStore12;
528
+
529
+ (_this$experienceStore11 = _this.experienceStore) === null || _this$experienceStore11 === void 0 ? void 0 : (_this$experienceStore12 = _this$experienceStore11.success(EditorExperience.editSession)) === null || _this$experienceStore12 === void 0 ? void 0 : _this$experienceStore12.finally(function () {
530
+ var _this$experienceStore13, _this$experienceStore14;
531
+
532
+ (_this$experienceStore13 = _this.experienceStore) === null || _this$experienceStore13 === void 0 ? void 0 : _this$experienceStore13.start(EditorExperience.editSession);
533
+ (_this$experienceStore14 = _this.experienceStore) === null || _this$experienceStore14 === void 0 ? void 0 : _this$experienceStore14.addMetadata(EditorExperience.editSession, {
534
+ reliabilityInterval: RELIABILITY_INTERVAL
535
+ });
536
+ });
515
537
  var reliabilityEvent = {
516
538
  action: ACTION.UFO_SESSION_COMPLETE,
517
539
  actionSubject: ACTION_SUBJECT.EDITOR,
@@ -523,14 +545,6 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
523
545
 
524
546
  _this.dispatchAnalyticsEvent(reliabilityEvent);
525
547
  }, RELIABILITY_INTERVAL);
526
- }
527
-
528
- if (_this.props.editorProps.shouldFocus && view.props.editable && view.props.editable(view.state)) {
529
- _this.focusTimeoutId = handleEditorFocus(view);
530
- }
531
-
532
- if (_this.featureFlags.ufo) {
533
- _this.experienceStore = ExperienceStore.getInstance(view);
534
548
  } // Force React to re-render so consumers get a reference to the editor view
535
549
 
536
550
 
@@ -5,7 +5,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
5
5
 
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
7
 
8
- import { breakoutPlugin, collabEditPlugin, dataConsumerMarkPlugin, datePlugin, emojiPlugin, extensionPlugin, helpDialogPlugin, imageUploadPlugin, insertBlockPlugin, jiraIssuePlugin, layoutPlugin, listPlugin, macroPlugin, maxContentSizePlugin, mediaPlugin, mentionsPlugin, panelPlugin, placeholderTextPlugin, rulePlugin, saveOnEnterPlugin, tablesPlugin, tasksAndDecisionsPlugin, textColorPlugin, cardPlugin, gridPlugin, statusPlugin, alignmentPlugin, indentationPlugin, analyticsPlugin, customAutoformatPlugin, feedbackDialogPlugin, historyPlugin, expandPlugin, isExpandInsertionEnabled, scrollIntoViewPlugin, mobileDimensionsPlugin, findReplacePlugin, contextPanelPlugin, mobileSelectionPlugin, annotationPlugin, captionPlugin, avatarGroupPlugin, viewUpdateSubscriptionPlugin, codeBidiWarningPlugin } from '../plugins';
8
+ import { breakoutPlugin, collabEditPlugin, dataConsumerMarkPlugin, datePlugin, emojiPlugin, extensionPlugin, fragmentMarkPlugin, helpDialogPlugin, imageUploadPlugin, insertBlockPlugin, jiraIssuePlugin, layoutPlugin, listPlugin, macroPlugin, maxContentSizePlugin, mediaPlugin, mentionsPlugin, panelPlugin, placeholderTextPlugin, rulePlugin, saveOnEnterPlugin, tablesPlugin, tasksAndDecisionsPlugin, textColorPlugin, cardPlugin, gridPlugin, statusPlugin, alignmentPlugin, indentationPlugin, analyticsPlugin, customAutoformatPlugin, feedbackDialogPlugin, historyPlugin, expandPlugin, isExpandInsertionEnabled, scrollIntoViewPlugin, mobileDimensionsPlugin, findReplacePlugin, contextPanelPlugin, mobileSelectionPlugin, annotationPlugin, captionPlugin, avatarGroupPlugin, viewUpdateSubscriptionPlugin, beforePrimaryToolbarPlugin, codeBidiWarningPlugin } from '../plugins';
9
9
  import { isFullPage as fullPageCheck } from '../utils/is-full-page';
10
10
  import { GUTTER_SIZE_MOBILE_IN_PX } from '../plugins/base/pm-plugins/scroll-gutter';
11
11
  import { createFeatureFlagsFromProps } from '../plugins/feature-flags-context/feature-flags-from-props';
@@ -109,8 +109,6 @@ export function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEve
109
109
  */
110
110
 
111
111
  export default function createPluginsList(props, prevProps, createAnalyticsEvent) {
112
- var _props$featureFlags;
113
-
114
112
  var appearance = props.appearance;
115
113
  var isMobile = appearance === 'mobile';
116
114
  var isComment = appearance === 'comment';
@@ -278,8 +276,8 @@ export default function createPluginsList(props, prevProps, createAnalyticsEvent
278
276
  if (props.allowPanel) {
279
277
  preset.add([panelPlugin, {
280
278
  useLongPressSelection: false,
281
- UNSAFE_allowCustomPanel: props.allowPanel.UNSAFE_allowCustomPanel,
282
- UNSAFE_allowCustomPanelEdit: props.allowPanel.UNSAFE_allowCustomPanelEdit
279
+ allowCustomPanel: props.allowPanel.allowCustomPanel,
280
+ allowCustomPanelEdit: props.allowPanel.allowCustomPanelEdit
283
281
  }]);
284
282
  }
285
283
 
@@ -376,20 +374,38 @@ export default function createPluginsList(props, prevProps, createAnalyticsEvent
376
374
  replacePlusMenuWithElementBrowser: props.elementBrowser && props.elementBrowser.replacePlusMenu || false
377
375
  }]);
378
376
 
379
- if (((_props$featureFlags = props.featureFlags) === null || _props$featureFlags === void 0 ? void 0 : _props$featureFlags.showAvatarGroupAsPlugin) === true) {
377
+ var hasBeforePrimaryToolbar = function hasBeforePrimaryToolbar(components) {
378
+ if (components && 'before' in components) {
379
+ return !!components.before;
380
+ }
381
+
382
+ return false;
383
+ };
384
+
385
+ if (hasBeforePrimaryToolbar(props.primaryToolbarComponents) && !featureFlags.twoLineEditorToolbar) {
386
+ preset.add([beforePrimaryToolbarPlugin, {
387
+ beforePrimaryToolbarComponents: props.primaryToolbarComponents.before
388
+ }]);
389
+ }
390
+
391
+ if (featureFlags.showAvatarGroupAsPlugin === true && !featureFlags.twoLineEditorToolbar) {
380
392
  preset.add([avatarGroupPlugin, {
381
- collabEdit: props.collabEdit
393
+ collabEdit: props.collabEdit,
394
+ takeFullWidth: !hasBeforePrimaryToolbar(props.primaryToolbarComponents)
382
395
  }]);
383
396
  }
384
397
 
385
398
  if (props.allowFindReplace) {
386
- var _props$featureFlags2;
387
-
388
399
  preset.add([findReplacePlugin, {
389
- takeFullWidth: !!((_props$featureFlags2 = props.featureFlags) !== null && _props$featureFlags2 !== void 0 && _props$featureFlags2.showAvatarGroupAsPlugin) === false
400
+ takeFullWidth: !!featureFlags.showAvatarGroupAsPlugin === false && !hasBeforePrimaryToolbar(props.primaryToolbarComponents),
401
+ twoLineEditorToolbar: !!featureFlags.twoLineEditorToolbar
390
402
  }]);
391
403
  }
392
404
 
405
+ if (props.UNSAFE_allowFragmentMark) {
406
+ preset.add(fragmentMarkPlugin);
407
+ }
408
+
393
409
  if (featureFlags.enableViewUpdateSubscription) {
394
410
  preset.add([viewUpdateSubscriptionPlugin]);
395
411
  }
@@ -32,8 +32,7 @@ export function useCXHTMLPreset(_ref) {
32
32
  }
33
33
  }]);
34
34
  preset.add([panelPlugin, {
35
- UNSAFE_allowCustomPanel: true,
36
- UNSAFE_allowCustomPanelEdit: true
35
+ allowCustomPanel: true
37
36
  }]);
38
37
  preset.add(listPlugin);
39
38
  preset.add(textColorPlugin);
@@ -173,10 +173,10 @@ var ReactNodeView = /*#__PURE__*/function () {
173
173
  }
174
174
  }, {
175
175
  key: "update",
176
- value: function update(node, _decorations) {
176
+ value: function update(node, _decorations, _innerDecorations) {
177
177
  var _this4 = this;
178
178
 
179
- var validUpdate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {
179
+ var validUpdate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {
180
180
  return true;
181
181
  };
182
182
  // @see https://github.com/ProseMirror/prosemirror/issues/648