@atlaskit/editor-plugin-paste 1.3.1 → 1.4.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.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/plugin.js +11 -2
- package/dist/cjs/pm-plugins/move-analytics/actions.js +11 -0
- package/dist/cjs/pm-plugins/move-analytics/commands.js +45 -0
- package/dist/cjs/pm-plugins/move-analytics/plugin-factory.js +13 -0
- package/dist/cjs/pm-plugins/move-analytics/plugin-key.js +8 -0
- package/dist/cjs/pm-plugins/move-analytics/plugin.js +138 -0
- package/dist/cjs/pm-plugins/move-analytics/reducer.js +26 -0
- package/dist/cjs/pm-plugins/move-analytics/types.js +19 -0
- package/dist/cjs/pm-plugins/move-analytics/utils.js +120 -0
- package/dist/es2019/plugin.js +12 -2
- package/dist/es2019/pm-plugins/move-analytics/actions.js +5 -0
- package/dist/es2019/pm-plugins/move-analytics/commands.js +28 -0
- package/dist/es2019/pm-plugins/move-analytics/plugin-factory.js +8 -0
- package/dist/es2019/pm-plugins/move-analytics/plugin-key.js +2 -0
- package/dist/es2019/pm-plugins/move-analytics/plugin.js +144 -0
- package/dist/es2019/pm-plugins/move-analytics/reducer.js +21 -0
- package/dist/es2019/pm-plugins/move-analytics/types.js +13 -0
- package/dist/es2019/pm-plugins/move-analytics/utils.js +124 -0
- package/dist/esm/plugin.js +11 -2
- package/dist/esm/pm-plugins/move-analytics/actions.js +5 -0
- package/dist/esm/pm-plugins/move-analytics/commands.js +38 -0
- package/dist/esm/pm-plugins/move-analytics/plugin-factory.js +8 -0
- package/dist/esm/pm-plugins/move-analytics/plugin-key.js +2 -0
- package/dist/esm/pm-plugins/move-analytics/plugin.js +133 -0
- package/dist/esm/pm-plugins/move-analytics/reducer.js +19 -0
- package/dist/esm/pm-plugins/move-analytics/types.js +13 -0
- package/dist/esm/pm-plugins/move-analytics/utils.js +114 -0
- package/dist/types/pm-plugins/move-analytics/actions.d.ts +14 -0
- package/dist/types/pm-plugins/move-analytics/commands.d.ts +5 -0
- package/dist/types/pm-plugins/move-analytics/plugin-factory.d.ts +1 -0
- package/dist/types/pm-plugins/move-analytics/plugin-key.d.ts +3 -0
- package/dist/types/pm-plugins/move-analytics/plugin.d.ts +4 -0
- package/dist/types/pm-plugins/move-analytics/reducer.d.ts +3 -0
- package/dist/types/pm-plugins/move-analytics/types.d.ts +11 -0
- package/dist/types/pm-plugins/move-analytics/utils.d.ts +12 -0
- package/dist/types/types.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/move-analytics/actions.d.ts +14 -0
- package/dist/types-ts4.5/pm-plugins/move-analytics/commands.d.ts +5 -0
- package/dist/types-ts4.5/pm-plugins/move-analytics/plugin-factory.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/move-analytics/plugin-key.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/move-analytics/plugin.d.ts +4 -0
- package/dist/types-ts4.5/pm-plugins/move-analytics/reducer.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/move-analytics/types.d.ts +11 -0
- package/dist/types-ts4.5/pm-plugins/move-analytics/utils.d.ts +12 -0
- package/dist/types-ts4.5/types.d.ts +1 -0
- package/package.json +12 -12
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
2
|
+
import { findParentNodeOfTypeClosestToPos } from '@atlaskit/editor-prosemirror/utils';
|
|
3
|
+
var excludedNodes = ['caption', 'layoutColumn', 'listItem', 'nestedExpand', 'tableHeader', 'tableCell', 'tableRow', 'text', 'placeholder', 'unsupportedBlock', 'unsupportedInline', 'hardBreak', 'media', 'confluenceUnsupportedBlock', 'confluenceUnsupportedInline', 'bulletList', 'orderedList', 'taskList', 'taskItem', 'decisionList', 'decisionItem'];
|
|
4
|
+
export var isExcludedNode = function isExcludedNode(nodeName) {
|
|
5
|
+
return excludedNodes.includes(nodeName);
|
|
6
|
+
};
|
|
7
|
+
export var isCursorSelectionAndInsideTopLevelNode = function isCursorSelectionAndInsideTopLevelNode(selection) {
|
|
8
|
+
var $from = selection.$from,
|
|
9
|
+
from = selection.from,
|
|
10
|
+
to = selection.to;
|
|
11
|
+
if (from !== to || $from.depth > 1) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
};
|
|
16
|
+
var inlineNodes = ['emoji', 'date', 'status', 'mention', 'mediaInline', 'inlineCard', 'inlineExtension'];
|
|
17
|
+
export var isInlineNode = function isInlineNode(nodeName) {
|
|
18
|
+
return inlineNodes.includes(nodeName);
|
|
19
|
+
};
|
|
20
|
+
export var isNestedInlineNode = function isNestedInlineNode(selection) {
|
|
21
|
+
if (selection.$from.depth !== 1) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// check if the node is a part of a larger paragraph or heading
|
|
26
|
+
var parentSize = selection.$from.parent.content.size;
|
|
27
|
+
var contentSize = selection.content().size;
|
|
28
|
+
var parentChildCount = selection.$from.parent.childCount;
|
|
29
|
+
// when the node was copied and pasted, it won't have extra space the parent has only one child
|
|
30
|
+
if (parentChildCount === 1) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// some inline nodes (like date and emoji) when inserted have extra space that is stores as a child
|
|
35
|
+
if (parentChildCount === 2 && parentSize - contentSize === 1) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
};
|
|
40
|
+
var blockNodes = ['bodiedExtension', 'blockCard', 'codeBlock', 'embedCard', 'expand', 'extension', 'layoutSection', 'mediaGroup', 'mediaSingle', 'panel', 'rule'];
|
|
41
|
+
export var isBlockNodeWithoutTable = function isBlockNodeWithoutTable(nodeName) {
|
|
42
|
+
return blockNodes.includes(nodeName);
|
|
43
|
+
};
|
|
44
|
+
var parentNodes = ['expand', 'extension', 'bodiedExtension', 'layoutSection'];
|
|
45
|
+
export var isNestedTable = function isNestedTable(selection) {
|
|
46
|
+
var parentNode = selection.$anchor.node(1);
|
|
47
|
+
return parentNode && parentNodes.includes(parentNode.type.name);
|
|
48
|
+
};
|
|
49
|
+
var getPastedNameOfInlineNode = function getPastedNameOfInlineNode(nodeName) {
|
|
50
|
+
if (inlineNodes.includes(nodeName)) {
|
|
51
|
+
return 'paragraph';
|
|
52
|
+
}
|
|
53
|
+
return nodeName;
|
|
54
|
+
};
|
|
55
|
+
export var isValidNodeName = function isValidNodeName(copiedNodeName, pastedNodeName) {
|
|
56
|
+
if (copiedNodeName === pastedNodeName) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
if (getPastedNameOfInlineNode(copiedNodeName) === pastedNodeName) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
return false;
|
|
63
|
+
};
|
|
64
|
+
export var isTextSelection = function isTextSelection(selection) {
|
|
65
|
+
return selection instanceof TextSelection && selection.from !== selection.to;
|
|
66
|
+
};
|
|
67
|
+
export var isNodeSelection = function isNodeSelection(selection) {
|
|
68
|
+
return selection instanceof NodeSelection;
|
|
69
|
+
};
|
|
70
|
+
var isEntireHeadingOrParagraphSelected = function isEntireHeadingOrParagraphSelected(selection, nodeName) {
|
|
71
|
+
if (!isTextSelection(selection)) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
var $from = selection.$from,
|
|
75
|
+
$to = selection.$to;
|
|
76
|
+
if (!($from.parent.type.name === nodeName)) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if ($from.parent === $to.parent) {
|
|
80
|
+
var node = $from.parent;
|
|
81
|
+
return $from.parentOffset === 0 && $to.parentOffset === node.content.size;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
export var isEntireTopLevelHeadingOrParagraphSelected = function isEntireTopLevelHeadingOrParagraphSelected(selection, nodeName) {
|
|
85
|
+
if (selection.$from.depth !== 1) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
return isEntireHeadingOrParagraphSelected(selection, nodeName);
|
|
89
|
+
};
|
|
90
|
+
export var isEntireTopLevelBlockquoteSelected = function isEntireTopLevelBlockquoteSelected(state) {
|
|
91
|
+
var schema = state.schema,
|
|
92
|
+
selection = state.selection;
|
|
93
|
+
var blockquote = schema.nodes.blockquote;
|
|
94
|
+
var blockquoteNode = findParentNodeOfTypeClosestToPos(selection.$from, blockquote);
|
|
95
|
+
if (!blockquoteNode) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// checks if it is a top level blockquote
|
|
100
|
+
var depth = blockquoteNode.depth;
|
|
101
|
+
if (depth !== 1) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
var from = selection.from,
|
|
105
|
+
to = selection.to;
|
|
106
|
+
var selectedNodesCount = 0;
|
|
107
|
+
state.doc.nodesBetween(from, to, function (node, pos) {
|
|
108
|
+
if (pos >= from && pos + node.nodeSize <= to) {
|
|
109
|
+
selectedNodesCount++;
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return selectedNodesCount === blockquoteNode.node.childCount;
|
|
114
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ContentMoved } from './types';
|
|
2
|
+
export declare enum MoveAnalyticPluginTypes {
|
|
3
|
+
UpdateMovedAction = 0,
|
|
4
|
+
RemoveMovedAction = 1
|
|
5
|
+
}
|
|
6
|
+
export type UpdateMovedAction = {
|
|
7
|
+
type: MoveAnalyticPluginTypes.UpdateMovedAction;
|
|
8
|
+
data: ContentMoved;
|
|
9
|
+
};
|
|
10
|
+
export type RemoveMovedAction = {
|
|
11
|
+
type: MoveAnalyticPluginTypes.RemoveMovedAction;
|
|
12
|
+
data: undefined;
|
|
13
|
+
};
|
|
14
|
+
export type MoveAnalyticsPluginAction = UpdateMovedAction | RemoveMovedAction;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
2
|
+
import type { ActionType, ContentMoved } from './types';
|
|
3
|
+
export declare const updateContentMoved: (nextState: Omit<ContentMoved, 'currentActions'>, nextAction: ActionType) => import("@atlaskit/editor-common/types").Command;
|
|
4
|
+
export declare const resetContentMoved: () => import("@atlaskit/editor-common/types").Command;
|
|
5
|
+
export declare const resetContentMovedTransform: () => (tr: Transaction) => Transaction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const createPluginState: (dispatch: import("@atlaskit/editor-common/event-dispatcher").Dispatch, initialState: import("./types").MoveAnalyticsPluginState | ((state: import("prosemirror-state").EditorState) => import("./types").MoveAnalyticsPluginState)) => import("prosemirror-state").SafeStateField<import("./types").MoveAnalyticsPluginState>, createCommand: <A = import("./actions").MoveAnalyticsPluginAction>(action: A | ((state: Readonly<import("prosemirror-state").EditorState>) => false | A), transform?: ((tr: import("prosemirror-state").Transaction, state: import("prosemirror-state").EditorState) => import("prosemirror-state").Transaction) | undefined) => import("@atlaskit/editor-common/types").Command, getPluginState: (state: import("prosemirror-state").EditorState) => import("./types").MoveAnalyticsPluginState;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
|
|
2
|
+
import type { Dispatch } from '@atlaskit/editor-common/event-dispatcher';
|
|
3
|
+
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
4
|
+
export declare const createPlugin: (dispatch: Dispatch, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => SafePlugin<import("./types").MoveAnalyticsPluginState>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ActionType = 'contentCut' | 'contentPasted';
|
|
2
|
+
export type NodeName = string;
|
|
3
|
+
export type ContentMoved = {
|
|
4
|
+
nodeName?: NodeName;
|
|
5
|
+
size?: number;
|
|
6
|
+
currentActions: Array<ActionType>;
|
|
7
|
+
};
|
|
8
|
+
export type MoveAnalyticsPluginState = {
|
|
9
|
+
contentMoved: ContentMoved;
|
|
10
|
+
};
|
|
11
|
+
export declare const defaultState: MoveAnalyticsPluginState;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { EditorState, Selection } from '@atlaskit/editor-prosemirror/state';
|
|
2
|
+
export declare const isExcludedNode: (nodeName: string) => boolean;
|
|
3
|
+
export declare const isCursorSelectionAndInsideTopLevelNode: (selection: Selection) => boolean;
|
|
4
|
+
export declare const isInlineNode: (nodeName: string) => boolean;
|
|
5
|
+
export declare const isNestedInlineNode: (selection: Selection) => boolean;
|
|
6
|
+
export declare const isBlockNodeWithoutTable: (nodeName: string) => boolean;
|
|
7
|
+
export declare const isNestedTable: (selection: Selection) => boolean;
|
|
8
|
+
export declare const isValidNodeName: (copiedNodeName: string, pastedNodeName: string) => boolean;
|
|
9
|
+
export declare const isTextSelection: (selection: Selection) => boolean;
|
|
10
|
+
export declare const isNodeSelection: (selection: Selection) => boolean;
|
|
11
|
+
export declare const isEntireTopLevelHeadingOrParagraphSelected: (selection: Selection, nodeName: 'paragraph' | 'heading') => boolean | undefined;
|
|
12
|
+
export declare const isEntireTopLevelBlockquoteSelected: (state: EditorState) => boolean;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export type LastContentPasted = {
|
|
|
30
30
|
export type PastePluginOptions = {
|
|
31
31
|
cardOptions?: CardOptions;
|
|
32
32
|
sanitizePrivateContent?: boolean;
|
|
33
|
+
isFullPage?: boolean;
|
|
33
34
|
};
|
|
34
35
|
export type PastePlugin = NextEditorPlugin<'paste', {
|
|
35
36
|
pluginConfiguration: PastePluginOptions;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ContentMoved } from './types';
|
|
2
|
+
export declare enum MoveAnalyticPluginTypes {
|
|
3
|
+
UpdateMovedAction = 0,
|
|
4
|
+
RemoveMovedAction = 1
|
|
5
|
+
}
|
|
6
|
+
export type UpdateMovedAction = {
|
|
7
|
+
type: MoveAnalyticPluginTypes.UpdateMovedAction;
|
|
8
|
+
data: ContentMoved;
|
|
9
|
+
};
|
|
10
|
+
export type RemoveMovedAction = {
|
|
11
|
+
type: MoveAnalyticPluginTypes.RemoveMovedAction;
|
|
12
|
+
data: undefined;
|
|
13
|
+
};
|
|
14
|
+
export type MoveAnalyticsPluginAction = UpdateMovedAction | RemoveMovedAction;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
2
|
+
import type { ActionType, ContentMoved } from './types';
|
|
3
|
+
export declare const updateContentMoved: (nextState: Omit<ContentMoved, 'currentActions'>, nextAction: ActionType) => import("@atlaskit/editor-common/types").Command;
|
|
4
|
+
export declare const resetContentMoved: () => import("@atlaskit/editor-common/types").Command;
|
|
5
|
+
export declare const resetContentMovedTransform: () => (tr: Transaction) => Transaction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const createPluginState: (dispatch: import("@atlaskit/editor-common/event-dispatcher").Dispatch, initialState: import("./types").MoveAnalyticsPluginState | ((state: import("prosemirror-state").EditorState) => import("./types").MoveAnalyticsPluginState)) => import("prosemirror-state").SafeStateField<import("./types").MoveAnalyticsPluginState>, createCommand: <A = import("./actions").MoveAnalyticsPluginAction>(action: A | ((state: Readonly<import("prosemirror-state").EditorState>) => false | A), transform?: ((tr: import("prosemirror-state").Transaction, state: import("prosemirror-state").EditorState) => import("prosemirror-state").Transaction) | undefined) => import("@atlaskit/editor-common/types").Command, getPluginState: (state: import("prosemirror-state").EditorState) => import("./types").MoveAnalyticsPluginState;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
|
|
2
|
+
import type { Dispatch } from '@atlaskit/editor-common/event-dispatcher';
|
|
3
|
+
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
4
|
+
export declare const createPlugin: (dispatch: Dispatch, editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => SafePlugin<import("./types").MoveAnalyticsPluginState>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ActionType = 'contentCut' | 'contentPasted';
|
|
2
|
+
export type NodeName = string;
|
|
3
|
+
export type ContentMoved = {
|
|
4
|
+
nodeName?: NodeName;
|
|
5
|
+
size?: number;
|
|
6
|
+
currentActions: Array<ActionType>;
|
|
7
|
+
};
|
|
8
|
+
export type MoveAnalyticsPluginState = {
|
|
9
|
+
contentMoved: ContentMoved;
|
|
10
|
+
};
|
|
11
|
+
export declare const defaultState: MoveAnalyticsPluginState;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { EditorState, Selection } from '@atlaskit/editor-prosemirror/state';
|
|
2
|
+
export declare const isExcludedNode: (nodeName: string) => boolean;
|
|
3
|
+
export declare const isCursorSelectionAndInsideTopLevelNode: (selection: Selection) => boolean;
|
|
4
|
+
export declare const isInlineNode: (nodeName: string) => boolean;
|
|
5
|
+
export declare const isNestedInlineNode: (selection: Selection) => boolean;
|
|
6
|
+
export declare const isBlockNodeWithoutTable: (nodeName: string) => boolean;
|
|
7
|
+
export declare const isNestedTable: (selection: Selection) => boolean;
|
|
8
|
+
export declare const isValidNodeName: (copiedNodeName: string, pastedNodeName: string) => boolean;
|
|
9
|
+
export declare const isTextSelection: (selection: Selection) => boolean;
|
|
10
|
+
export declare const isNodeSelection: (selection: Selection) => boolean;
|
|
11
|
+
export declare const isEntireTopLevelHeadingOrParagraphSelected: (selection: Selection, nodeName: 'paragraph' | 'heading') => boolean | undefined;
|
|
12
|
+
export declare const isEntireTopLevelBlockquoteSelected: (state: EditorState) => boolean;
|
|
@@ -30,6 +30,7 @@ export type LastContentPasted = {
|
|
|
30
30
|
export type PastePluginOptions = {
|
|
31
31
|
cardOptions?: CardOptions;
|
|
32
32
|
sanitizePrivateContent?: boolean;
|
|
33
|
+
isFullPage?: boolean;
|
|
33
34
|
};
|
|
34
35
|
export type PastePlugin = NextEditorPlugin<'paste', {
|
|
35
36
|
pluginConfiguration: PastePluginOptions;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-paste",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Paste plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -33,15 +33,15 @@
|
|
|
33
33
|
".": "./src/index.ts"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@atlaskit/editor-common": "^83.
|
|
37
|
-
"@atlaskit/editor-markdown-transformer": "^5.
|
|
38
|
-
"@atlaskit/editor-plugin-analytics": "^1.
|
|
39
|
-
"@atlaskit/editor-plugin-annotation": "^1.
|
|
40
|
-
"@atlaskit/editor-plugin-better-type-history": "^1.
|
|
41
|
-
"@atlaskit/editor-plugin-card": "^2.
|
|
36
|
+
"@atlaskit/editor-common": "^83.3.0",
|
|
37
|
+
"@atlaskit/editor-markdown-transformer": "^5.8.0",
|
|
38
|
+
"@atlaskit/editor-plugin-analytics": "^1.4.0",
|
|
39
|
+
"@atlaskit/editor-plugin-annotation": "^1.13.0",
|
|
40
|
+
"@atlaskit/editor-plugin-better-type-history": "^1.4.0",
|
|
41
|
+
"@atlaskit/editor-plugin-card": "^2.2.0",
|
|
42
42
|
"@atlaskit/editor-plugin-feature-flags": "^1.1.0",
|
|
43
|
-
"@atlaskit/editor-plugin-list": "^3.
|
|
44
|
-
"@atlaskit/editor-plugin-media": "^1.
|
|
43
|
+
"@atlaskit/editor-plugin-list": "^3.5.0",
|
|
44
|
+
"@atlaskit/editor-plugin-media": "^1.22.0",
|
|
45
45
|
"@atlaskit/editor-prosemirror": "4.0.1",
|
|
46
46
|
"@atlaskit/editor-tables": "^2.7.0",
|
|
47
47
|
"@atlaskit/media-client": "^27.3.0",
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@af/visual-regression": "*",
|
|
59
|
-
"@atlaskit/adf-schema": "^
|
|
60
|
-
"@atlaskit/editor-plugin-block-type": "^3.
|
|
59
|
+
"@atlaskit/adf-schema": "^38.0.0",
|
|
60
|
+
"@atlaskit/editor-plugin-block-type": "^3.8.0",
|
|
61
61
|
"@atlaskit/editor-plugin-history": "^1.1.0",
|
|
62
|
-
"@atlaskit/editor-plugin-type-ahead": "^1.
|
|
62
|
+
"@atlaskit/editor-plugin-type-ahead": "^1.4.0",
|
|
63
63
|
"@atlaskit/ssr": "*",
|
|
64
64
|
"@atlaskit/visual-regression": "*",
|
|
65
65
|
"@atlassian/feature-flags-test-utils": "^0.2.0",
|