@atlaskit/editor-plugin-mentions 16.1.4 → 16.2.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 +17 -0
- package/compass.yml +2 -2
- package/dist/cjs/entry-points/mention-node-data-provider.js +12 -0
- package/dist/cjs/nodeviews/mentionAvatarRenderer.js +75 -0
- package/dist/cjs/nodeviews/mentionNodeView.js +79 -10
- package/dist/cjs/nodeviews/profileCardRenderer.js +11 -9
- package/dist/cjs/pm-plugins/main.js +1 -1
- package/dist/cjs/providers/mention-node-data-provider.js +205 -0
- package/dist/es2019/entry-points/mention-node-data-provider.js +3 -0
- package/dist/es2019/nodeviews/mentionAvatarRenderer.js +71 -0
- package/dist/es2019/nodeviews/mentionNodeView.js +75 -10
- package/dist/es2019/nodeviews/profileCardRenderer.js +7 -5
- package/dist/es2019/pm-plugins/main.js +1 -1
- package/dist/es2019/providers/mention-node-data-provider.js +115 -0
- package/dist/esm/entry-points/mention-node-data-provider.js +3 -0
- package/dist/esm/nodeviews/mentionAvatarRenderer.js +69 -0
- package/dist/esm/nodeviews/mentionNodeView.js +79 -10
- package/dist/esm/nodeviews/profileCardRenderer.js +11 -9
- package/dist/esm/pm-plugins/main.js +1 -1
- package/dist/esm/providers/mention-node-data-provider.js +198 -0
- package/dist/types/entry-points/mention-node-data-provider.d.ts +2 -0
- package/dist/types/nodeviews/mentionAvatarRenderer.d.ts +12 -0
- package/dist/types/nodeviews/mentionNodeView.d.ts +6 -0
- package/dist/types/providers/mention-node-data-provider.d.ts +39 -0
- package/dist/types/types/index.d.ts +6 -0
- package/mention-node-data-provider/package.json +10 -0
- package/package.json +17 -9
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
5
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
7
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
9
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
10
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
import { NodeDataProvider } from '@atlaskit/node-data-provider/node-data-provider';
|
|
14
|
+
var getAppType = function getAppType(userType) {
|
|
15
|
+
return userType === 'APP' || userType === 'AGENT' ? 'agent' : 'user';
|
|
16
|
+
};
|
|
17
|
+
var enrichMentionNodeData = function enrichMentionNodeData(mention, data) {
|
|
18
|
+
var _data$appType;
|
|
19
|
+
return _objectSpread(_objectSpread({}, data), {}, {
|
|
20
|
+
appType: (_data$appType = data === null || data === void 0 ? void 0 : data.appType) !== null && _data$appType !== void 0 ? _data$appType : getAppType(mention.userType)
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
var toMentionNode = function toMentionNode(_ref) {
|
|
24
|
+
var id = _ref.id,
|
|
25
|
+
userType = _ref.userType;
|
|
26
|
+
return {
|
|
27
|
+
attrs: {
|
|
28
|
+
id: id,
|
|
29
|
+
// NodeDataProvider uses an ADF node internally, so normalize the runtime-only value.
|
|
30
|
+
userType: userType === 'AGENT' ? 'APP' : userType
|
|
31
|
+
},
|
|
32
|
+
type: 'mention'
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
var isMentionNode = function isMentionNode(node) {
|
|
36
|
+
return node.type === 'mention' && node.attrs !== undefined && 'id' in node.attrs && typeof node.attrs.id === 'string';
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Page-scoped data provider for mention avatars.
|
|
41
|
+
*
|
|
42
|
+
* Products inject their resolution strategy so this package remains independent
|
|
43
|
+
* of Jira and Confluence APIs. Reuse the instance for the lifetime of a renderer
|
|
44
|
+
* or editor rather than creating one for every mention.
|
|
45
|
+
*
|
|
46
|
+
* Deterministic products can supply `resolveMentionNodeData` to return an
|
|
47
|
+
* SSR-safe avatar URL synchronously. It must return the same value on the server
|
|
48
|
+
* and the client's first render to preserve hydration parity.
|
|
49
|
+
*
|
|
50
|
+
* Network-backed products supply `fetchMentionNodeData`. Calls made in the same
|
|
51
|
+
* microtask are combined and account IDs are deduplicated before the fetcher is
|
|
52
|
+
* invoked. A Relay adapter can query `users(accountIds:)`, then map each user's
|
|
53
|
+
* `picture` and app type to a `MentionNodeData` record keyed by account ID. The
|
|
54
|
+
* resolved result is cached by the underlying `NodeDataProvider`.
|
|
55
|
+
*/
|
|
56
|
+
export var MentionNodeDataProvider = /*#__PURE__*/function (_NodeDataProvider) {
|
|
57
|
+
function MentionNodeDataProvider(fetchMentionNodeData) {
|
|
58
|
+
var _this;
|
|
59
|
+
var resolveMentionNodeData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
60
|
+
_classCallCheck(this, MentionNodeDataProvider);
|
|
61
|
+
_this = _callSuper(this, MentionNodeDataProvider);
|
|
62
|
+
_defineProperty(_this, "name", 'mentionNodeDataProvider');
|
|
63
|
+
_defineProperty(_this, "queuedFetches", []);
|
|
64
|
+
_defineProperty(_this, "isFlushScheduled", false);
|
|
65
|
+
_this.fetchMentionNodeData = fetchMentionNodeData;
|
|
66
|
+
_this.resolveMentionNodeData = resolveMentionNodeData;
|
|
67
|
+
return _this;
|
|
68
|
+
}
|
|
69
|
+
_inherits(MentionNodeDataProvider, _NodeDataProvider);
|
|
70
|
+
return _createClass(MentionNodeDataProvider, [{
|
|
71
|
+
key: "isNodeSupported",
|
|
72
|
+
value: function isNodeSupported(node) {
|
|
73
|
+
return isMentionNode(node) && node.attrs.userType !== 'SPECIAL';
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "nodeDataKey",
|
|
77
|
+
value: function nodeDataKey(node) {
|
|
78
|
+
return node.attrs.id;
|
|
79
|
+
}
|
|
80
|
+
}, {
|
|
81
|
+
key: "fetchNodesData",
|
|
82
|
+
value: function () {
|
|
83
|
+
var _fetchNodesData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(nodes) {
|
|
84
|
+
var accountIds, dataByAccountId;
|
|
85
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
86
|
+
while (1) switch (_context.prev = _context.next) {
|
|
87
|
+
case 0:
|
|
88
|
+
accountIds = Array.from(new Set(nodes.map(function (_ref2) {
|
|
89
|
+
var attrs = _ref2.attrs;
|
|
90
|
+
return attrs.id;
|
|
91
|
+
})));
|
|
92
|
+
_context.next = 1;
|
|
93
|
+
return this.enqueueFetch(accountIds);
|
|
94
|
+
case 1:
|
|
95
|
+
dataByAccountId = _context.sent;
|
|
96
|
+
return _context.abrupt("return", nodes.map(function (_ref3) {
|
|
97
|
+
var attrs = _ref3.attrs;
|
|
98
|
+
return enrichMentionNodeData(attrs, dataByAccountId[attrs.id]);
|
|
99
|
+
}));
|
|
100
|
+
case 2:
|
|
101
|
+
case "end":
|
|
102
|
+
return _context.stop();
|
|
103
|
+
}
|
|
104
|
+
}, _callee, this);
|
|
105
|
+
}));
|
|
106
|
+
function fetchNodesData(_x) {
|
|
107
|
+
return _fetchNodesData.apply(this, arguments);
|
|
108
|
+
}
|
|
109
|
+
return fetchNodesData;
|
|
110
|
+
}()
|
|
111
|
+
}, {
|
|
112
|
+
key: "getMentionData",
|
|
113
|
+
value: function getMentionData(mention, callback) {
|
|
114
|
+
var _this$resolveMentionN;
|
|
115
|
+
var resolvedData = (_this$resolveMentionN = this.resolveMentionNodeData) === null || _this$resolveMentionN === void 0 ? void 0 : _this$resolveMentionN.call(this, mention);
|
|
116
|
+
if (resolvedData) {
|
|
117
|
+
callback({
|
|
118
|
+
data: enrichMentionNodeData(mention, resolvedData)
|
|
119
|
+
});
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this.getData(toMentionNode(mention), callback);
|
|
123
|
+
}
|
|
124
|
+
}, {
|
|
125
|
+
key: "getMentionDataFromCache",
|
|
126
|
+
value: function getMentionDataFromCache(mention) {
|
|
127
|
+
var _this$resolveMentionN2, _this$getNodeDataFrom;
|
|
128
|
+
var resolvedData = (_this$resolveMentionN2 = this.resolveMentionNodeData) === null || _this$resolveMentionN2 === void 0 ? void 0 : _this$resolveMentionN2.call(this, mention);
|
|
129
|
+
if (resolvedData) {
|
|
130
|
+
return enrichMentionNodeData(mention, resolvedData);
|
|
131
|
+
}
|
|
132
|
+
var data = (_this$getNodeDataFrom = this.getNodeDataFromCache(toMentionNode(mention))) === null || _this$getNodeDataFrom === void 0 ? void 0 : _this$getNodeDataFrom.data;
|
|
133
|
+
return data ? enrichMentionNodeData(mention, data) : undefined;
|
|
134
|
+
}
|
|
135
|
+
}, {
|
|
136
|
+
key: "enqueueFetch",
|
|
137
|
+
value: function enqueueFetch(accountIds) {
|
|
138
|
+
var _this2 = this;
|
|
139
|
+
var result = new Promise(function (resolve, reject) {
|
|
140
|
+
_this2.queuedFetches.push({
|
|
141
|
+
accountIds: accountIds,
|
|
142
|
+
reject: reject,
|
|
143
|
+
resolve: resolve
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
if (!this.isFlushScheduled) {
|
|
147
|
+
this.isFlushScheduled = true;
|
|
148
|
+
void Promise.resolve().then(function () {
|
|
149
|
+
return _this2.flushFetches();
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
return result;
|
|
153
|
+
}
|
|
154
|
+
}, {
|
|
155
|
+
key: "flushFetches",
|
|
156
|
+
value: function () {
|
|
157
|
+
var _flushFetches = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
158
|
+
var queuedFetches, accountIds, data, _t;
|
|
159
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
160
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
161
|
+
case 0:
|
|
162
|
+
this.isFlushScheduled = false;
|
|
163
|
+
queuedFetches = this.queuedFetches;
|
|
164
|
+
this.queuedFetches = [];
|
|
165
|
+
accountIds = Array.from(new Set(queuedFetches.flatMap(function (request) {
|
|
166
|
+
return request.accountIds;
|
|
167
|
+
})));
|
|
168
|
+
_context2.prev = 1;
|
|
169
|
+
_context2.next = 2;
|
|
170
|
+
return this.fetchMentionNodeData(accountIds);
|
|
171
|
+
case 2:
|
|
172
|
+
data = _context2.sent;
|
|
173
|
+
queuedFetches.forEach(function (_ref4) {
|
|
174
|
+
var resolve = _ref4.resolve;
|
|
175
|
+
return resolve(data);
|
|
176
|
+
});
|
|
177
|
+
_context2.next = 4;
|
|
178
|
+
break;
|
|
179
|
+
case 3:
|
|
180
|
+
_context2.prev = 3;
|
|
181
|
+
_t = _context2["catch"](1);
|
|
182
|
+
queuedFetches.forEach(function (_ref5) {
|
|
183
|
+
var reject = _ref5.reject;
|
|
184
|
+
return reject(_t);
|
|
185
|
+
});
|
|
186
|
+
case 4:
|
|
187
|
+
case "end":
|
|
188
|
+
return _context2.stop();
|
|
189
|
+
}
|
|
190
|
+
}, _callee2, this, [[1, 3]]);
|
|
191
|
+
}));
|
|
192
|
+
function flushFetches() {
|
|
193
|
+
return _flushFetches.apply(this, arguments);
|
|
194
|
+
}
|
|
195
|
+
return flushFetches;
|
|
196
|
+
}()
|
|
197
|
+
}]);
|
|
198
|
+
}(NodeDataProvider);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MentionNodeData } from '@atlaskit/mention/types';
|
|
2
|
+
export interface MentionAvatarController {
|
|
3
|
+
destroy: () => void;
|
|
4
|
+
render: (data: MentionNodeData) => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Populates the fixed-size avatar slot owned by the vanilla ProseMirror NodeView.
|
|
8
|
+
* No React root or editor portal is created for individual mention nodes.
|
|
9
|
+
*/
|
|
10
|
+
export declare const mentionAvatarRenderer: ({ container, }: {
|
|
11
|
+
container: HTMLElement;
|
|
12
|
+
}) => MentionAvatarController;
|
|
@@ -21,6 +21,10 @@ export declare class MentionNodeView implements NodeView {
|
|
|
21
21
|
private removeProfileCard;
|
|
22
22
|
private updateProfileCardNode;
|
|
23
23
|
private mentionPrimitiveElement;
|
|
24
|
+
private mentionTextElement;
|
|
25
|
+
private mentionAvatar;
|
|
26
|
+
private hasAvatarSlot;
|
|
27
|
+
private isDestroyed;
|
|
24
28
|
private disabledTooltip;
|
|
25
29
|
private unsubscribeFromDisabledStateChanges;
|
|
26
30
|
private subscribedProvider;
|
|
@@ -42,6 +46,8 @@ export declare class MentionNodeView implements NodeView {
|
|
|
42
46
|
private subscribeToProviderDisabledStateChanges;
|
|
43
47
|
private syncDisabledTooltip;
|
|
44
48
|
private setTextContent;
|
|
49
|
+
private setVisibleText;
|
|
50
|
+
private resolveMentionAvatar;
|
|
45
51
|
private shouldHighlightMention;
|
|
46
52
|
private updateState;
|
|
47
53
|
private nodeIsEqual;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { MentionDefinition } from '@atlaskit/adf-schema/mention';
|
|
2
|
+
import type { MentionNodeDataCallback, MentionNodeDataIdentifier, MentionNodeDataProvider as MentionNodeDataProviderContract } from '@atlaskit/editor-common/mention';
|
|
3
|
+
import type { JSONNode } from '@atlaskit/editor-json-transformer';
|
|
4
|
+
import type { MentionNodeData } from '@atlaskit/mention/types';
|
|
5
|
+
import { NodeDataProvider } from '@atlaskit/node-data-provider/node-data-provider';
|
|
6
|
+
export type FetchMentionNodeData = (accountIds: string[]) => Promise<Record<string, MentionNodeData>>;
|
|
7
|
+
export type ResolveMentionNodeData = (mention: MentionNodeDataIdentifier) => MentionNodeData | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Page-scoped data provider for mention avatars.
|
|
10
|
+
*
|
|
11
|
+
* Products inject their resolution strategy so this package remains independent
|
|
12
|
+
* of Jira and Confluence APIs. Reuse the instance for the lifetime of a renderer
|
|
13
|
+
* or editor rather than creating one for every mention.
|
|
14
|
+
*
|
|
15
|
+
* Deterministic products can supply `resolveMentionNodeData` to return an
|
|
16
|
+
* SSR-safe avatar URL synchronously. It must return the same value on the server
|
|
17
|
+
* and the client's first render to preserve hydration parity.
|
|
18
|
+
*
|
|
19
|
+
* Network-backed products supply `fetchMentionNodeData`. Calls made in the same
|
|
20
|
+
* microtask are combined and account IDs are deduplicated before the fetcher is
|
|
21
|
+
* invoked. A Relay adapter can query `users(accountIds:)`, then map each user's
|
|
22
|
+
* `picture` and app type to a `MentionNodeData` record keyed by account ID. The
|
|
23
|
+
* resolved result is cached by the underlying `NodeDataProvider`.
|
|
24
|
+
*/
|
|
25
|
+
export declare class MentionNodeDataProvider extends NodeDataProvider<MentionDefinition, MentionNodeData> implements MentionNodeDataProviderContract {
|
|
26
|
+
private readonly fetchMentionNodeData;
|
|
27
|
+
private readonly resolveMentionNodeData;
|
|
28
|
+
readonly name = "mentionNodeDataProvider";
|
|
29
|
+
private queuedFetches;
|
|
30
|
+
private isFlushScheduled;
|
|
31
|
+
constructor(fetchMentionNodeData: FetchMentionNodeData, resolveMentionNodeData?: ResolveMentionNodeData | undefined);
|
|
32
|
+
isNodeSupported(node: JSONNode): node is MentionDefinition;
|
|
33
|
+
nodeDataKey(node: MentionDefinition): string;
|
|
34
|
+
fetchNodesData(nodes: MentionDefinition[]): Promise<MentionNodeData[]>;
|
|
35
|
+
getMentionData(mention: MentionNodeDataIdentifier, callback: MentionNodeDataCallback): void;
|
|
36
|
+
getMentionDataFromCache(mention: MentionNodeDataIdentifier): MentionNodeData | undefined;
|
|
37
|
+
private enqueueFetch;
|
|
38
|
+
private flushFetches;
|
|
39
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DocNode } from '@atlaskit/adf-schema';
|
|
2
2
|
import type { AnalyticsEventPayload } from '@atlaskit/editor-common/analytics';
|
|
3
|
+
import type { MentionNodeDataProvider } from '@atlaskit/editor-common/mention';
|
|
3
4
|
import type { Providers, ProfilecardProvider } from '@atlaskit/editor-common/provider-factory';
|
|
4
5
|
import type { TypeAheadHandler } from '@atlaskit/editor-common/types';
|
|
5
6
|
import type { MentionDescription, MentionProvider } from '@atlaskit/mention';
|
|
@@ -48,6 +49,11 @@ export interface MentionsPluginOptions extends MentionPluginConfig {
|
|
|
48
49
|
*/
|
|
49
50
|
getIsRovoPanelOpen?: () => boolean;
|
|
50
51
|
handleMentionsChanged?: MentionsChangedHandler;
|
|
52
|
+
/**
|
|
53
|
+
* Resolves avatar data for persisted mention nodes on the client. The renderer
|
|
54
|
+
* and editable NodeView reserve the avatar slot before the provider resolves.
|
|
55
|
+
*/
|
|
56
|
+
mentionNodeDataProvider?: MentionNodeDataProvider;
|
|
51
57
|
mentionProvider?: Providers['mentionProvider'];
|
|
52
58
|
/**
|
|
53
59
|
* Optional callback injected by Rovo-aware consumers (e.g. Confluence) to
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@atlaskit/editor-plugin-mentions/mention-node-data-provider",
|
|
3
|
+
"main": "../dist/cjs/entry-points/mention-node-data-provider.js",
|
|
4
|
+
"module": "../dist/esm/entry-points/mention-node-data-provider.js",
|
|
5
|
+
"module:es2019": "../dist/es2019/entry-points/mention-node-data-provider.js",
|
|
6
|
+
"sideEffects": [
|
|
7
|
+
"**/*.compiled.css"
|
|
8
|
+
],
|
|
9
|
+
"types": "../dist/types/entry-points/mention-node-data-provider.d.ts"
|
|
10
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-mentions",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.2.0",
|
|
4
4
|
"description": "Mentions plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -23,18 +23,20 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@atlaskit/adf-schema": "^56.7.0",
|
|
25
25
|
"@atlaskit/css": "^1.0.0",
|
|
26
|
+
"@atlaskit/editor-json-transformer": "^9.2.0",
|
|
26
27
|
"@atlaskit/editor-plugin-analytics": "^14.0.0",
|
|
27
28
|
"@atlaskit/editor-plugin-base": "^15.0.0",
|
|
28
29
|
"@atlaskit/editor-plugin-context-identifier": "^14.0.0",
|
|
29
30
|
"@atlaskit/editor-plugin-selection": "^14.0.0",
|
|
30
|
-
"@atlaskit/editor-plugin-type-ahead": "^15.
|
|
31
|
+
"@atlaskit/editor-plugin-type-ahead": "^15.1.0",
|
|
31
32
|
"@atlaskit/editor-prosemirror": "^8.0.0",
|
|
32
33
|
"@atlaskit/feature-gate-js-client": "^6.0.0",
|
|
33
34
|
"@atlaskit/icon": "^37.3.0",
|
|
34
|
-
"@atlaskit/insm": "^
|
|
35
|
+
"@atlaskit/insm": "^2.0.0",
|
|
35
36
|
"@atlaskit/link": "^5.0.0",
|
|
36
37
|
"@atlaskit/lozenge": "^15.0.0",
|
|
37
|
-
"@atlaskit/mention": "^27.
|
|
38
|
+
"@atlaskit/mention": "^27.16.0",
|
|
39
|
+
"@atlaskit/node-data-provider": "^15.0.0",
|
|
38
40
|
"@atlaskit/platform-feature-experiments": "^0.3.0",
|
|
39
41
|
"@atlaskit/platform-feature-flags": "^2.1.0",
|
|
40
42
|
"@atlaskit/popper": "^9.1.0",
|
|
@@ -44,26 +46,26 @@
|
|
|
44
46
|
"@atlaskit/profilecard": "^26.17.0",
|
|
45
47
|
"@atlaskit/teams-app-config": "^2.2.0",
|
|
46
48
|
"@atlaskit/theme": "^28.0.0",
|
|
47
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
48
|
-
"@atlaskit/tokens": "^16.
|
|
49
|
+
"@atlaskit/tmp-editor-statsig": "^147.1.0",
|
|
50
|
+
"@atlaskit/tokens": "^16.7.0",
|
|
49
51
|
"@atlaskit/tooltip": "^24.0.0",
|
|
50
52
|
"@atlaskit/user-picker": "^13.8.0",
|
|
51
53
|
"@babel/runtime": "^7.0.0",
|
|
52
|
-
"@compiled/react": "^1.0.
|
|
54
|
+
"@compiled/react": "^1.0.2",
|
|
53
55
|
"bind-event-listener": "^3.0.0",
|
|
54
56
|
"focus-trap": "^2.4.5",
|
|
55
57
|
"react-loadable": "^5.1.0",
|
|
56
58
|
"uuid": "^3.1.0"
|
|
57
59
|
},
|
|
58
60
|
"peerDependencies": {
|
|
59
|
-
"@atlaskit/editor-common": "^118.
|
|
61
|
+
"@atlaskit/editor-common": "^118.12.0",
|
|
60
62
|
"react": "^18.2.0 || ^19.2.0",
|
|
61
63
|
"react-dom": "^18.2.0 || ^19.2.0",
|
|
62
64
|
"react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"
|
|
63
65
|
},
|
|
64
66
|
"devDependencies": {
|
|
65
67
|
"@atlaskit/button": "^25.0.0",
|
|
66
|
-
"@atlaskit/editor-core": "^223.
|
|
68
|
+
"@atlaskit/editor-core": "^223.2.0",
|
|
67
69
|
"@testing-library/react": "^16.3.0",
|
|
68
70
|
"react": "^19.2.0",
|
|
69
71
|
"react-dom": "^19.2.0",
|
|
@@ -126,5 +128,11 @@
|
|
|
126
128
|
"platform_editor_agent_mentions_drop_one_fixes": {
|
|
127
129
|
"type": "boolean"
|
|
128
130
|
}
|
|
131
|
+
},
|
|
132
|
+
"platform-experiments": {
|
|
133
|
+
"platform_editor_mention_node_avatar": {
|
|
134
|
+
"param": "isEnabled",
|
|
135
|
+
"defaultValue": false
|
|
136
|
+
}
|
|
129
137
|
}
|
|
130
138
|
}
|