@atlaskit/editor-common 111.12.2 → 111.12.3
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 +10 -0
- package/dist/cjs/ai-messages/ai-suggestions.js +79 -0
- package/dist/cjs/ai-messages/index.js +8 -1
- package/dist/cjs/extensibility/extensionNodeView.js +22 -3
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/node-anchor/node-anchor-provider.js +14 -0
- package/dist/cjs/preset/core-plugin/index.js +40 -8
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/es2019/ai-messages/ai-suggestions.js +73 -0
- package/dist/es2019/ai-messages/index.js +2 -1
- package/dist/es2019/extensibility/extensionNodeView.js +22 -3
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/node-anchor/node-anchor-provider.js +12 -0
- package/dist/es2019/preset/core-plugin/index.js +40 -8
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/esm/ai-messages/ai-suggestions.js +73 -0
- package/dist/esm/ai-messages/index.js +2 -1
- package/dist/esm/extensibility/extensionNodeView.js +22 -3
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/node-anchor/node-anchor-provider.js +14 -0
- package/dist/esm/preset/core-plugin/index.js +40 -8
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/types/ai-messages/ai-suggestions.d.ts +72 -0
- package/dist/types/ai-messages/index.d.ts +1 -0
- package/dist/types/extensibility/extensionNodeView.d.ts +4 -0
- package/dist/types/node-anchor/node-anchor-provider.d.ts +1 -0
- package/dist/types-ts4.5/ai-messages/ai-suggestions.d.ts +72 -0
- package/dist/types-ts4.5/ai-messages/index.d.ts +1 -0
- package/dist/types-ts4.5/extensibility/extensionNodeView.d.ts +4 -0
- package/dist/types-ts4.5/node-anchor/node-anchor-provider.d.ts +1 -0
- package/package.json +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 111.12.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`27ceb3789dbe8`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/27ceb3789dbe8) -
|
|
8
|
+
[ux] Fix initial drag handle / create position incorrect bug
|
|
9
|
+
- [`bb6a1522425ff`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/bb6a1522425ff) -
|
|
10
|
+
[ux] Fix layoutshift in bodiedExtension layout shift
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
3
13
|
## 111.12.2
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.aiSuggestionsMessages = void 0;
|
|
7
|
+
var _reactIntlNext = require("react-intl-next");
|
|
8
|
+
var aiSuggestionsMessages = exports.aiSuggestionsMessages = (0, _reactIntlNext.defineMessages)({
|
|
9
|
+
suggestionsToolbarButtonLabel: {
|
|
10
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.label.non-final',
|
|
11
|
+
defaultMessage: 'Suggestions',
|
|
12
|
+
description: 'Label for the suggestions toolbar button'
|
|
13
|
+
},
|
|
14
|
+
suggestionsToolbarButtonLoadingLabel: {
|
|
15
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.loadingLabel.non-final',
|
|
16
|
+
defaultMessage: 'Loading',
|
|
17
|
+
description: 'Label for the suggestions toolbar button when loading'
|
|
18
|
+
},
|
|
19
|
+
suggestionsToolbarButtonReadyLabel: {
|
|
20
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.readyLabel.non-final',
|
|
21
|
+
defaultMessage: 'View',
|
|
22
|
+
description: 'Label for the suggestions toolbar button when ready'
|
|
23
|
+
},
|
|
24
|
+
suggestionsToolbarButtonErrorLabel: {
|
|
25
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.errorLabel.non-final',
|
|
26
|
+
defaultMessage: 'Retry',
|
|
27
|
+
description: 'Label for the suggestions toolbar button when error'
|
|
28
|
+
},
|
|
29
|
+
previewLabel: {
|
|
30
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.previewLabel.non-final',
|
|
31
|
+
defaultMessage: 'Preview',
|
|
32
|
+
description: 'The section title displayed for the AI suggestions staging area'
|
|
33
|
+
},
|
|
34
|
+
viewLabel: {
|
|
35
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.viewLabel.non-final',
|
|
36
|
+
defaultMessage: 'View',
|
|
37
|
+
description: 'The section title displayed for the view switcher in the AI suggestions staging area'
|
|
38
|
+
},
|
|
39
|
+
titleLabel: {
|
|
40
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.titleLabel.non-final',
|
|
41
|
+
defaultMessage: 'Title',
|
|
42
|
+
description: 'The section title displayed for the title in the AI suggestions staging area'
|
|
43
|
+
},
|
|
44
|
+
reviewNote: {
|
|
45
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.reviewNote.non-final',
|
|
46
|
+
defaultMessage: 'Review • Only visible to you',
|
|
47
|
+
description: 'A note displayed within the title'
|
|
48
|
+
},
|
|
49
|
+
applyChangesButtonLabel: {
|
|
50
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.applyChangesButtonLabel.non-final',
|
|
51
|
+
defaultMessage: 'Apply changes',
|
|
52
|
+
description: 'Label for the apply changes button in the AI suggestions staging area'
|
|
53
|
+
},
|
|
54
|
+
fetchSuggestionsButtonLabel: {
|
|
55
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.fetchSuggestionsButtonLabel.non-final',
|
|
56
|
+
defaultMessage: 'Fetch suggestions',
|
|
57
|
+
description: 'Label for the fetch suggestions button in the AI suggestions staging area'
|
|
58
|
+
},
|
|
59
|
+
fetchSuggestionsButtonLoadingLabel: {
|
|
60
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.fetchSuggestionsButtonLoadingLabel.non-final',
|
|
61
|
+
defaultMessage: 'Loading…',
|
|
62
|
+
description: 'Label for the fetch suggestions button when loading'
|
|
63
|
+
},
|
|
64
|
+
originalViewLabel: {
|
|
65
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.originalViewLabel.non-final',
|
|
66
|
+
defaultMessage: 'Original • View only',
|
|
67
|
+
description: 'Label for the original view in the AI suggestions staging area'
|
|
68
|
+
},
|
|
69
|
+
suggestedLabel: {
|
|
70
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.suggestedLabel.non-final',
|
|
71
|
+
defaultMessage: 'Suggested',
|
|
72
|
+
description: 'Suggestion text displayed under the original view title'
|
|
73
|
+
},
|
|
74
|
+
suggestionsLabel: {
|
|
75
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.suggestionsLabel.non-final',
|
|
76
|
+
defaultMessage: 'Suggestions',
|
|
77
|
+
description: 'Label for the suggestions section in the AI suggestions staging area'
|
|
78
|
+
}
|
|
79
|
+
});
|
|
@@ -57,6 +57,12 @@ Object.defineProperty(exports, "aiProactiveTransformMessages", {
|
|
|
57
57
|
return _aiProactiveTransform.aiProactiveTransformMessages;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
+
Object.defineProperty(exports, "aiSuggestionsMessages", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _aiSuggestions.aiSuggestionsMessages;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
60
66
|
var _aiConfigItems = require("./ai-config-items");
|
|
61
67
|
var _aiDefinitions = require("./ai-definitions");
|
|
62
68
|
var _aiExperienceApplication = require("./ai-experience-application");
|
|
@@ -65,4 +71,5 @@ var _aiLanguages = require("./ai-languages");
|
|
|
65
71
|
var _aiProactive = require("./ai-proactive");
|
|
66
72
|
var _ai = require("./ai");
|
|
67
73
|
var _aiProactiveSetting = require("./ai-proactive-setting");
|
|
68
|
-
var _aiProactiveTransform = require("./ai-proactive-transform");
|
|
74
|
+
var _aiProactiveTransform = require("./ai-proactive-transform");
|
|
75
|
+
var _aiSuggestions = require("./ai-suggestions");
|
|
@@ -14,6 +14,7 @@ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
|
14
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
15
|
var _react = _interopRequireDefault(require("react"));
|
|
16
16
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
17
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
17
18
|
var _reactNodeView = _interopRequireDefault(require("../react-node-view"));
|
|
18
19
|
var _Extension = require("./Extension");
|
|
19
20
|
var _ExtensionNodeWrapper = require("./ExtensionNodeWrapper");
|
|
@@ -80,13 +81,31 @@ var ExtensionNode = exports.ExtensionNode = /*#__PURE__*/function (_ReactNodeVie
|
|
|
80
81
|
}, {
|
|
81
82
|
key: "getContentDOM",
|
|
82
83
|
value: function getContentDOM() {
|
|
84
|
+
var _this$reactComponentP3;
|
|
83
85
|
if (this.node.isInline) {
|
|
84
86
|
return;
|
|
85
87
|
}
|
|
86
|
-
var
|
|
87
|
-
|
|
88
|
+
var contentDomWrapper = document.createElement('div');
|
|
89
|
+
contentDomWrapper.className = "".concat(this.node.type.name, "-content-dom-wrapper");
|
|
90
|
+
var isBodiedExtension = this.node.type.name === 'bodiedExtension';
|
|
91
|
+
var showMacroInteractionDesignUpdates = (_this$reactComponentP3 = this.reactComponentProps) === null || _this$reactComponentP3 === void 0 || (_this$reactComponentP3 = _this$reactComponentP3.macroInteractionDesignFeatureFlags) === null || _this$reactComponentP3 === void 0 ? void 0 : _this$reactComponentP3.showMacroInteractionDesignUpdates;
|
|
92
|
+
if (isBodiedExtension && showMacroInteractionDesignUpdates && (0, _expValEquals.expValEquals)('platform_editor_bodiedextension_layoutshift_fix', 'isEnabled', true)) {
|
|
93
|
+
// Create outer wrapper to hold space for the lozenge
|
|
94
|
+
var outerWrapper = document.createElement('div');
|
|
95
|
+
outerWrapper.className = "".concat(this.node.type.name, "-content-outer-wrapper");
|
|
96
|
+
|
|
97
|
+
// Create inner wrapper to position inner content
|
|
98
|
+
var innerWrapper = document.createElement('div');
|
|
99
|
+
innerWrapper.className = "".concat(this.node.type.name, "-content-inner-wrapper");
|
|
100
|
+
innerWrapper.appendChild(contentDomWrapper);
|
|
101
|
+
outerWrapper.appendChild(innerWrapper);
|
|
102
|
+
return {
|
|
103
|
+
dom: outerWrapper,
|
|
104
|
+
contentDOM: contentDomWrapper
|
|
105
|
+
};
|
|
106
|
+
}
|
|
88
107
|
return {
|
|
89
|
-
dom:
|
|
108
|
+
dom: contentDomWrapper
|
|
90
109
|
};
|
|
91
110
|
}
|
|
92
111
|
}, {
|
|
@@ -19,7 +19,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
19
19
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
20
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
21
21
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
22
|
-
var packageVersion = "
|
|
22
|
+
var packageVersion = "0.0.0-development";
|
|
23
23
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
24
24
|
// Remove URL as it has UGC
|
|
25
25
|
// Ignored via go/ees007
|
|
@@ -89,6 +89,20 @@ var NodeAnchorProvider = exports.NodeAnchorProvider = /*#__PURE__*/function () {
|
|
|
89
89
|
}
|
|
90
90
|
return this.cache.get(node);
|
|
91
91
|
}
|
|
92
|
+
}, {
|
|
93
|
+
key: "setIdForNode",
|
|
94
|
+
value: function setIdForNode(node, id) {
|
|
95
|
+
// [FEATURE FLAG: platform_editor_fix_node_anchor_dom_cache]
|
|
96
|
+
// This method is part of the fix to prevent drag handle misalignment.
|
|
97
|
+
// To clean up: remove the feature flag check, keep the method body
|
|
98
|
+
if (!(0, _platformFeatureFlags.fg)('platform_editor_fix_node_anchor_dom_cache')) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (this.limitedMode) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this.cache.set(node, id);
|
|
105
|
+
}
|
|
92
106
|
|
|
93
107
|
// After set to limited mode, we clear the cache to free up memory
|
|
94
108
|
// and prevent further ids from being generated
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.corePlugin = void 0;
|
|
7
7
|
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
8
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
8
9
|
var _nodeAnchorProvider = require("../../node-anchor/node-anchor-provider");
|
|
9
10
|
var _processRawValue = require("../../utils/processRawValue");
|
|
10
11
|
var _editorCommands = require("../editor-commands");
|
|
@@ -151,15 +152,46 @@ var corePlugin = exports.corePlugin = function corePlugin(_ref) {
|
|
|
151
152
|
if (pos < 0) {
|
|
152
153
|
return undefined;
|
|
153
154
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
if (
|
|
160
|
-
|
|
155
|
+
|
|
156
|
+
// [FEATURE FLAG: platform_editor_fix_node_anchor_dom_cache]
|
|
157
|
+
// Fixes drag handle misalignment on first focus after clicking from title
|
|
158
|
+
// by checking DOM for existing anchor before generating a new ID with collision suffix.
|
|
159
|
+
// To clean up: remove if-else block, keep only flag-on behavior (lines 217-229), remove old behavior (lines 231-238)
|
|
160
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_fix_node_anchor_dom_cache')) {
|
|
161
|
+
// Check DOM first to avoid generating a new ID with a collision suffix
|
|
162
|
+
// when the DOM already has a valid anchor. This prevents misalignment
|
|
163
|
+
// of drag handles on first focus after clicking from the title.
|
|
164
|
+
var nodeDOM = view.nodeDOM(pos);
|
|
165
|
+
if (nodeDOM instanceof HTMLElement) {
|
|
166
|
+
var domAnchor = nodeDOM.getAttribute('data-node-anchor');
|
|
167
|
+
if (domAnchor) {
|
|
168
|
+
// Cache the DOM anchor for this node to maintain consistency
|
|
169
|
+
// This ensures subsequent calls return the same anchor
|
|
170
|
+
nodeIdProvider.setIdForNode(node, domAnchor);
|
|
171
|
+
return domAnchor;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Only generate a new ID if DOM doesn't have one
|
|
176
|
+
var generatedId = nodeIdProvider.getOrGenerateId(node, pos);
|
|
177
|
+
if (generatedId) {
|
|
178
|
+
return generatedId;
|
|
179
|
+
}
|
|
180
|
+
return undefined;
|
|
181
|
+
} else {
|
|
182
|
+
// OLD BEHAVIOR (to be removed when flag is cleaned up)
|
|
183
|
+
// This approach can generate incorrect IDs with collision suffixes when
|
|
184
|
+
// the DOM already has a valid anchor, causing drag handle misalignment
|
|
185
|
+
var _generatedId = nodeIdProvider.getOrGenerateId(node, pos);
|
|
186
|
+
if (_generatedId) {
|
|
187
|
+
return _generatedId;
|
|
188
|
+
}
|
|
189
|
+
var _nodeDOM = view.nodeDOM(pos);
|
|
190
|
+
if (_nodeDOM instanceof HTMLElement) {
|
|
191
|
+
return _nodeDOM.getAttribute('data-node-anchor') || undefined;
|
|
192
|
+
}
|
|
193
|
+
return undefined;
|
|
161
194
|
}
|
|
162
|
-
return undefined;
|
|
163
195
|
}
|
|
164
196
|
}
|
|
165
197
|
};
|
|
@@ -24,7 +24,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
24
24
|
* @jsx jsx
|
|
25
25
|
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
26
26
|
var packageName = "@atlaskit/editor-common";
|
|
27
|
-
var packageVersion = "
|
|
27
|
+
var packageVersion = "0.0.0-development";
|
|
28
28
|
var halfFocusRing = 1;
|
|
29
29
|
var dropOffset = '0, 8';
|
|
30
30
|
var fadeIn = (0, _react2.keyframes)({
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export const aiSuggestionsMessages = defineMessages({
|
|
3
|
+
suggestionsToolbarButtonLabel: {
|
|
4
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.label.non-final',
|
|
5
|
+
defaultMessage: 'Suggestions',
|
|
6
|
+
description: 'Label for the suggestions toolbar button'
|
|
7
|
+
},
|
|
8
|
+
suggestionsToolbarButtonLoadingLabel: {
|
|
9
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.loadingLabel.non-final',
|
|
10
|
+
defaultMessage: 'Loading',
|
|
11
|
+
description: 'Label for the suggestions toolbar button when loading'
|
|
12
|
+
},
|
|
13
|
+
suggestionsToolbarButtonReadyLabel: {
|
|
14
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.readyLabel.non-final',
|
|
15
|
+
defaultMessage: 'View',
|
|
16
|
+
description: 'Label for the suggestions toolbar button when ready'
|
|
17
|
+
},
|
|
18
|
+
suggestionsToolbarButtonErrorLabel: {
|
|
19
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.errorLabel.non-final',
|
|
20
|
+
defaultMessage: 'Retry',
|
|
21
|
+
description: 'Label for the suggestions toolbar button when error'
|
|
22
|
+
},
|
|
23
|
+
previewLabel: {
|
|
24
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.previewLabel.non-final',
|
|
25
|
+
defaultMessage: 'Preview',
|
|
26
|
+
description: 'The section title displayed for the AI suggestions staging area'
|
|
27
|
+
},
|
|
28
|
+
viewLabel: {
|
|
29
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.viewLabel.non-final',
|
|
30
|
+
defaultMessage: 'View',
|
|
31
|
+
description: 'The section title displayed for the view switcher in the AI suggestions staging area'
|
|
32
|
+
},
|
|
33
|
+
titleLabel: {
|
|
34
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.titleLabel.non-final',
|
|
35
|
+
defaultMessage: 'Title',
|
|
36
|
+
description: 'The section title displayed for the title in the AI suggestions staging area'
|
|
37
|
+
},
|
|
38
|
+
reviewNote: {
|
|
39
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.reviewNote.non-final',
|
|
40
|
+
defaultMessage: 'Review • Only visible to you',
|
|
41
|
+
description: 'A note displayed within the title'
|
|
42
|
+
},
|
|
43
|
+
applyChangesButtonLabel: {
|
|
44
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.applyChangesButtonLabel.non-final',
|
|
45
|
+
defaultMessage: 'Apply changes',
|
|
46
|
+
description: 'Label for the apply changes button in the AI suggestions staging area'
|
|
47
|
+
},
|
|
48
|
+
fetchSuggestionsButtonLabel: {
|
|
49
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.fetchSuggestionsButtonLabel.non-final',
|
|
50
|
+
defaultMessage: 'Fetch suggestions',
|
|
51
|
+
description: 'Label for the fetch suggestions button in the AI suggestions staging area'
|
|
52
|
+
},
|
|
53
|
+
fetchSuggestionsButtonLoadingLabel: {
|
|
54
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.fetchSuggestionsButtonLoadingLabel.non-final',
|
|
55
|
+
defaultMessage: 'Loading…',
|
|
56
|
+
description: 'Label for the fetch suggestions button when loading'
|
|
57
|
+
},
|
|
58
|
+
originalViewLabel: {
|
|
59
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.originalViewLabel.non-final',
|
|
60
|
+
defaultMessage: 'Original • View only',
|
|
61
|
+
description: 'Label for the original view in the AI suggestions staging area'
|
|
62
|
+
},
|
|
63
|
+
suggestedLabel: {
|
|
64
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.suggestedLabel.non-final',
|
|
65
|
+
defaultMessage: 'Suggested',
|
|
66
|
+
description: 'Suggestion text displayed under the original view title'
|
|
67
|
+
},
|
|
68
|
+
suggestionsLabel: {
|
|
69
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.suggestionsLabel.non-final',
|
|
70
|
+
defaultMessage: 'Suggestions',
|
|
71
|
+
description: 'Label for the suggestions section in the AI suggestions staging area'
|
|
72
|
+
}
|
|
73
|
+
});
|
|
@@ -9,4 +9,5 @@ export { aiLanguageMessages } from './ai-languages';
|
|
|
9
9
|
export { aiProactiveMessages } from './ai-proactive';
|
|
10
10
|
export { aiMessages } from './ai';
|
|
11
11
|
export { aiProactiveSettingMessages } from './ai-proactive-setting';
|
|
12
|
-
export { aiProactiveTransformMessages } from './ai-proactive-transform';
|
|
12
|
+
export { aiProactiveTransformMessages } from './ai-proactive-transform';
|
|
13
|
+
export { aiSuggestionsMessages } from './ai-suggestions';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
|
+
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
3
4
|
import ReactNodeView from '../react-node-view';
|
|
4
5
|
import { Extension } from './Extension';
|
|
5
6
|
import { ExtensionNodeWrapper } from './ExtensionNodeWrapper';
|
|
@@ -50,13 +51,31 @@ export class ExtensionNode extends ReactNodeView {
|
|
|
50
51
|
return event.target instanceof HTMLInputElement;
|
|
51
52
|
}
|
|
52
53
|
getContentDOM() {
|
|
54
|
+
var _this$reactComponentP4, _this$reactComponentP5;
|
|
53
55
|
if (this.node.isInline) {
|
|
54
56
|
return;
|
|
55
57
|
}
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
+
const contentDomWrapper = document.createElement('div');
|
|
59
|
+
contentDomWrapper.className = `${this.node.type.name}-content-dom-wrapper`;
|
|
60
|
+
const isBodiedExtension = this.node.type.name === 'bodiedExtension';
|
|
61
|
+
const showMacroInteractionDesignUpdates = (_this$reactComponentP4 = this.reactComponentProps) === null || _this$reactComponentP4 === void 0 ? void 0 : (_this$reactComponentP5 = _this$reactComponentP4.macroInteractionDesignFeatureFlags) === null || _this$reactComponentP5 === void 0 ? void 0 : _this$reactComponentP5.showMacroInteractionDesignUpdates;
|
|
62
|
+
if (isBodiedExtension && showMacroInteractionDesignUpdates && expValEquals('platform_editor_bodiedextension_layoutshift_fix', 'isEnabled', true)) {
|
|
63
|
+
// Create outer wrapper to hold space for the lozenge
|
|
64
|
+
const outerWrapper = document.createElement('div');
|
|
65
|
+
outerWrapper.className = `${this.node.type.name}-content-outer-wrapper`;
|
|
66
|
+
|
|
67
|
+
// Create inner wrapper to position inner content
|
|
68
|
+
const innerWrapper = document.createElement('div');
|
|
69
|
+
innerWrapper.className = `${this.node.type.name}-content-inner-wrapper`;
|
|
70
|
+
innerWrapper.appendChild(contentDomWrapper);
|
|
71
|
+
outerWrapper.appendChild(innerWrapper);
|
|
72
|
+
return {
|
|
73
|
+
dom: outerWrapper,
|
|
74
|
+
contentDOM: contentDomWrapper
|
|
75
|
+
};
|
|
76
|
+
}
|
|
58
77
|
return {
|
|
59
|
-
dom
|
|
78
|
+
dom: contentDomWrapper
|
|
60
79
|
};
|
|
61
80
|
}
|
|
62
81
|
render(props, forwardRef) {
|
|
@@ -4,7 +4,7 @@ import { isFedRamp } from './environment';
|
|
|
4
4
|
import { normaliseSentryBreadcrumbs, SERIALIZABLE_ATTRIBUTES } from './normalise-sentry-breadcrumbs';
|
|
5
5
|
const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
6
6
|
const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
7
|
-
const packageVersion = "
|
|
7
|
+
const packageVersion = "0.0.0-development";
|
|
8
8
|
const sanitiseSentryEvents = (data, _hint) => {
|
|
9
9
|
// Remove URL as it has UGC
|
|
10
10
|
// Ignored via go/ees007
|
|
@@ -68,6 +68,18 @@ export class NodeAnchorProvider {
|
|
|
68
68
|
}
|
|
69
69
|
return this.cache.get(node);
|
|
70
70
|
}
|
|
71
|
+
setIdForNode(node, id) {
|
|
72
|
+
// [FEATURE FLAG: platform_editor_fix_node_anchor_dom_cache]
|
|
73
|
+
// This method is part of the fix to prevent drag handle misalignment.
|
|
74
|
+
// To clean up: remove the feature flag check, keep the method body
|
|
75
|
+
if (!fg('platform_editor_fix_node_anchor_dom_cache')) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (this.limitedMode) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this.cache.set(node, id);
|
|
82
|
+
}
|
|
71
83
|
|
|
72
84
|
// After set to limited mode, we clear the cache to free up memory
|
|
73
85
|
// and prevent further ids from being generated
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Node } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
2
3
|
import { getNodeIdProvider } from '../../node-anchor/node-anchor-provider';
|
|
3
4
|
import { processRawFragmentValue, processRawValue, processRawValueWithoutValidation } from '../../utils/processRawValue';
|
|
4
5
|
import { editorCommandToPMCommand } from '../editor-commands';
|
|
@@ -153,15 +154,46 @@ export const corePlugin = ({
|
|
|
153
154
|
if (pos < 0) {
|
|
154
155
|
return undefined;
|
|
155
156
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
if (
|
|
162
|
-
|
|
157
|
+
|
|
158
|
+
// [FEATURE FLAG: platform_editor_fix_node_anchor_dom_cache]
|
|
159
|
+
// Fixes drag handle misalignment on first focus after clicking from title
|
|
160
|
+
// by checking DOM for existing anchor before generating a new ID with collision suffix.
|
|
161
|
+
// To clean up: remove if-else block, keep only flag-on behavior (lines 217-229), remove old behavior (lines 231-238)
|
|
162
|
+
if (fg('platform_editor_fix_node_anchor_dom_cache')) {
|
|
163
|
+
// Check DOM first to avoid generating a new ID with a collision suffix
|
|
164
|
+
// when the DOM already has a valid anchor. This prevents misalignment
|
|
165
|
+
// of drag handles on first focus after clicking from the title.
|
|
166
|
+
const nodeDOM = view.nodeDOM(pos);
|
|
167
|
+
if (nodeDOM instanceof HTMLElement) {
|
|
168
|
+
const domAnchor = nodeDOM.getAttribute('data-node-anchor');
|
|
169
|
+
if (domAnchor) {
|
|
170
|
+
// Cache the DOM anchor for this node to maintain consistency
|
|
171
|
+
// This ensures subsequent calls return the same anchor
|
|
172
|
+
nodeIdProvider.setIdForNode(node, domAnchor);
|
|
173
|
+
return domAnchor;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// Only generate a new ID if DOM doesn't have one
|
|
178
|
+
const generatedId = nodeIdProvider.getOrGenerateId(node, pos);
|
|
179
|
+
if (generatedId) {
|
|
180
|
+
return generatedId;
|
|
181
|
+
}
|
|
182
|
+
return undefined;
|
|
183
|
+
} else {
|
|
184
|
+
// OLD BEHAVIOR (to be removed when flag is cleaned up)
|
|
185
|
+
// This approach can generate incorrect IDs with collision suffixes when
|
|
186
|
+
// the DOM already has a valid anchor, causing drag handle misalignment
|
|
187
|
+
const generatedId = nodeIdProvider.getOrGenerateId(node, pos);
|
|
188
|
+
if (generatedId) {
|
|
189
|
+
return generatedId;
|
|
190
|
+
}
|
|
191
|
+
const nodeDOM = view.nodeDOM(pos);
|
|
192
|
+
if (nodeDOM instanceof HTMLElement) {
|
|
193
|
+
return nodeDOM.getAttribute('data-node-anchor') || undefined;
|
|
194
|
+
}
|
|
195
|
+
return undefined;
|
|
163
196
|
}
|
|
164
|
-
return undefined;
|
|
165
197
|
}
|
|
166
198
|
}
|
|
167
199
|
};
|
|
@@ -14,7 +14,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
|
14
14
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
15
15
|
import Layer from '../Layer';
|
|
16
16
|
const packageName = "@atlaskit/editor-common";
|
|
17
|
-
const packageVersion = "
|
|
17
|
+
const packageVersion = "0.0.0-development";
|
|
18
18
|
const halfFocusRing = 1;
|
|
19
19
|
const dropOffset = '0, 8';
|
|
20
20
|
const fadeIn = keyframes({
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export var aiSuggestionsMessages = defineMessages({
|
|
3
|
+
suggestionsToolbarButtonLabel: {
|
|
4
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.label.non-final',
|
|
5
|
+
defaultMessage: 'Suggestions',
|
|
6
|
+
description: 'Label for the suggestions toolbar button'
|
|
7
|
+
},
|
|
8
|
+
suggestionsToolbarButtonLoadingLabel: {
|
|
9
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.loadingLabel.non-final',
|
|
10
|
+
defaultMessage: 'Loading',
|
|
11
|
+
description: 'Label for the suggestions toolbar button when loading'
|
|
12
|
+
},
|
|
13
|
+
suggestionsToolbarButtonReadyLabel: {
|
|
14
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.readyLabel.non-final',
|
|
15
|
+
defaultMessage: 'View',
|
|
16
|
+
description: 'Label for the suggestions toolbar button when ready'
|
|
17
|
+
},
|
|
18
|
+
suggestionsToolbarButtonErrorLabel: {
|
|
19
|
+
id: 'fabric.editor.ai.suggestions.toolbarButton.errorLabel.non-final',
|
|
20
|
+
defaultMessage: 'Retry',
|
|
21
|
+
description: 'Label for the suggestions toolbar button when error'
|
|
22
|
+
},
|
|
23
|
+
previewLabel: {
|
|
24
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.previewLabel.non-final',
|
|
25
|
+
defaultMessage: 'Preview',
|
|
26
|
+
description: 'The section title displayed for the AI suggestions staging area'
|
|
27
|
+
},
|
|
28
|
+
viewLabel: {
|
|
29
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.viewLabel.non-final',
|
|
30
|
+
defaultMessage: 'View',
|
|
31
|
+
description: 'The section title displayed for the view switcher in the AI suggestions staging area'
|
|
32
|
+
},
|
|
33
|
+
titleLabel: {
|
|
34
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.titleLabel.non-final',
|
|
35
|
+
defaultMessage: 'Title',
|
|
36
|
+
description: 'The section title displayed for the title in the AI suggestions staging area'
|
|
37
|
+
},
|
|
38
|
+
reviewNote: {
|
|
39
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.reviewNote.non-final',
|
|
40
|
+
defaultMessage: 'Review • Only visible to you',
|
|
41
|
+
description: 'A note displayed within the title'
|
|
42
|
+
},
|
|
43
|
+
applyChangesButtonLabel: {
|
|
44
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.applyChangesButtonLabel.non-final',
|
|
45
|
+
defaultMessage: 'Apply changes',
|
|
46
|
+
description: 'Label for the apply changes button in the AI suggestions staging area'
|
|
47
|
+
},
|
|
48
|
+
fetchSuggestionsButtonLabel: {
|
|
49
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.fetchSuggestionsButtonLabel.non-final',
|
|
50
|
+
defaultMessage: 'Fetch suggestions',
|
|
51
|
+
description: 'Label for the fetch suggestions button in the AI suggestions staging area'
|
|
52
|
+
},
|
|
53
|
+
fetchSuggestionsButtonLoadingLabel: {
|
|
54
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.fetchSuggestionsButtonLoadingLabel.non-final',
|
|
55
|
+
defaultMessage: 'Loading…',
|
|
56
|
+
description: 'Label for the fetch suggestions button when loading'
|
|
57
|
+
},
|
|
58
|
+
originalViewLabel: {
|
|
59
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.originalViewLabel.non-final',
|
|
60
|
+
defaultMessage: 'Original • View only',
|
|
61
|
+
description: 'Label for the original view in the AI suggestions staging area'
|
|
62
|
+
},
|
|
63
|
+
suggestedLabel: {
|
|
64
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.suggestedLabel.non-final',
|
|
65
|
+
defaultMessage: 'Suggested',
|
|
66
|
+
description: 'Suggestion text displayed under the original view title'
|
|
67
|
+
},
|
|
68
|
+
suggestionsLabel: {
|
|
69
|
+
id: 'fabric.editor.ai.suggestions.stagingArea.suggestionsLabel.non-final',
|
|
70
|
+
defaultMessage: 'Suggestions',
|
|
71
|
+
description: 'Label for the suggestions section in the AI suggestions staging area'
|
|
72
|
+
}
|
|
73
|
+
});
|
|
@@ -9,4 +9,5 @@ export { aiLanguageMessages } from './ai-languages';
|
|
|
9
9
|
export { aiProactiveMessages } from './ai-proactive';
|
|
10
10
|
export { aiMessages } from './ai';
|
|
11
11
|
export { aiProactiveSettingMessages } from './ai-proactive-setting';
|
|
12
|
-
export { aiProactiveTransformMessages } from './ai-proactive-transform';
|
|
12
|
+
export { aiProactiveTransformMessages } from './ai-proactive-transform';
|
|
13
|
+
export { aiSuggestionsMessages } from './ai-suggestions';
|
|
@@ -9,6 +9,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
9
9
|
function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
|
|
10
10
|
import React from 'react';
|
|
11
11
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
12
|
+
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
12
13
|
import ReactNodeView from '../react-node-view';
|
|
13
14
|
import { Extension } from './Extension';
|
|
14
15
|
import { ExtensionNodeWrapper } from './ExtensionNodeWrapper';
|
|
@@ -72,13 +73,31 @@ export var ExtensionNode = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
72
73
|
}, {
|
|
73
74
|
key: "getContentDOM",
|
|
74
75
|
value: function getContentDOM() {
|
|
76
|
+
var _this$reactComponentP3;
|
|
75
77
|
if (this.node.isInline) {
|
|
76
78
|
return;
|
|
77
79
|
}
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
+
var contentDomWrapper = document.createElement('div');
|
|
81
|
+
contentDomWrapper.className = "".concat(this.node.type.name, "-content-dom-wrapper");
|
|
82
|
+
var isBodiedExtension = this.node.type.name === 'bodiedExtension';
|
|
83
|
+
var showMacroInteractionDesignUpdates = (_this$reactComponentP3 = this.reactComponentProps) === null || _this$reactComponentP3 === void 0 || (_this$reactComponentP3 = _this$reactComponentP3.macroInteractionDesignFeatureFlags) === null || _this$reactComponentP3 === void 0 ? void 0 : _this$reactComponentP3.showMacroInteractionDesignUpdates;
|
|
84
|
+
if (isBodiedExtension && showMacroInteractionDesignUpdates && expValEquals('platform_editor_bodiedextension_layoutshift_fix', 'isEnabled', true)) {
|
|
85
|
+
// Create outer wrapper to hold space for the lozenge
|
|
86
|
+
var outerWrapper = document.createElement('div');
|
|
87
|
+
outerWrapper.className = "".concat(this.node.type.name, "-content-outer-wrapper");
|
|
88
|
+
|
|
89
|
+
// Create inner wrapper to position inner content
|
|
90
|
+
var innerWrapper = document.createElement('div');
|
|
91
|
+
innerWrapper.className = "".concat(this.node.type.name, "-content-inner-wrapper");
|
|
92
|
+
innerWrapper.appendChild(contentDomWrapper);
|
|
93
|
+
outerWrapper.appendChild(innerWrapper);
|
|
94
|
+
return {
|
|
95
|
+
dom: outerWrapper,
|
|
96
|
+
contentDOM: contentDomWrapper
|
|
97
|
+
};
|
|
98
|
+
}
|
|
80
99
|
return {
|
|
81
|
-
dom:
|
|
100
|
+
dom: contentDomWrapper
|
|
82
101
|
};
|
|
83
102
|
}
|
|
84
103
|
}, {
|
|
@@ -10,7 +10,7 @@ import { isFedRamp } from './environment';
|
|
|
10
10
|
import { normaliseSentryBreadcrumbs, SERIALIZABLE_ATTRIBUTES } from './normalise-sentry-breadcrumbs';
|
|
11
11
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
12
12
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
13
|
-
var packageVersion = "
|
|
13
|
+
var packageVersion = "0.0.0-development";
|
|
14
14
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
15
15
|
// Remove URL as it has UGC
|
|
16
16
|
// Ignored via go/ees007
|
|
@@ -83,6 +83,20 @@ export var NodeAnchorProvider = /*#__PURE__*/function () {
|
|
|
83
83
|
}
|
|
84
84
|
return this.cache.get(node);
|
|
85
85
|
}
|
|
86
|
+
}, {
|
|
87
|
+
key: "setIdForNode",
|
|
88
|
+
value: function setIdForNode(node, id) {
|
|
89
|
+
// [FEATURE FLAG: platform_editor_fix_node_anchor_dom_cache]
|
|
90
|
+
// This method is part of the fix to prevent drag handle misalignment.
|
|
91
|
+
// To clean up: remove the feature flag check, keep the method body
|
|
92
|
+
if (!fg('platform_editor_fix_node_anchor_dom_cache')) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (this.limitedMode) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
this.cache.set(node, id);
|
|
99
|
+
}
|
|
86
100
|
|
|
87
101
|
// After set to limited mode, we clear the cache to free up memory
|
|
88
102
|
// and prevent further ids from being generated
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Node } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
2
3
|
import { getNodeIdProvider } from '../../node-anchor/node-anchor-provider';
|
|
3
4
|
import { processRawFragmentValue, processRawValue, processRawValueWithoutValidation } from '../../utils/processRawValue';
|
|
4
5
|
import { editorCommandToPMCommand } from '../editor-commands';
|
|
@@ -146,15 +147,46 @@ export var corePlugin = function corePlugin(_ref) {
|
|
|
146
147
|
if (pos < 0) {
|
|
147
148
|
return undefined;
|
|
148
149
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
if (
|
|
155
|
-
|
|
150
|
+
|
|
151
|
+
// [FEATURE FLAG: platform_editor_fix_node_anchor_dom_cache]
|
|
152
|
+
// Fixes drag handle misalignment on first focus after clicking from title
|
|
153
|
+
// by checking DOM for existing anchor before generating a new ID with collision suffix.
|
|
154
|
+
// To clean up: remove if-else block, keep only flag-on behavior (lines 217-229), remove old behavior (lines 231-238)
|
|
155
|
+
if (fg('platform_editor_fix_node_anchor_dom_cache')) {
|
|
156
|
+
// Check DOM first to avoid generating a new ID with a collision suffix
|
|
157
|
+
// when the DOM already has a valid anchor. This prevents misalignment
|
|
158
|
+
// of drag handles on first focus after clicking from the title.
|
|
159
|
+
var nodeDOM = view.nodeDOM(pos);
|
|
160
|
+
if (nodeDOM instanceof HTMLElement) {
|
|
161
|
+
var domAnchor = nodeDOM.getAttribute('data-node-anchor');
|
|
162
|
+
if (domAnchor) {
|
|
163
|
+
// Cache the DOM anchor for this node to maintain consistency
|
|
164
|
+
// This ensures subsequent calls return the same anchor
|
|
165
|
+
nodeIdProvider.setIdForNode(node, domAnchor);
|
|
166
|
+
return domAnchor;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Only generate a new ID if DOM doesn't have one
|
|
171
|
+
var generatedId = nodeIdProvider.getOrGenerateId(node, pos);
|
|
172
|
+
if (generatedId) {
|
|
173
|
+
return generatedId;
|
|
174
|
+
}
|
|
175
|
+
return undefined;
|
|
176
|
+
} else {
|
|
177
|
+
// OLD BEHAVIOR (to be removed when flag is cleaned up)
|
|
178
|
+
// This approach can generate incorrect IDs with collision suffixes when
|
|
179
|
+
// the DOM already has a valid anchor, causing drag handle misalignment
|
|
180
|
+
var _generatedId = nodeIdProvider.getOrGenerateId(node, pos);
|
|
181
|
+
if (_generatedId) {
|
|
182
|
+
return _generatedId;
|
|
183
|
+
}
|
|
184
|
+
var _nodeDOM = view.nodeDOM(pos);
|
|
185
|
+
if (_nodeDOM instanceof HTMLElement) {
|
|
186
|
+
return _nodeDOM.getAttribute('data-node-anchor') || undefined;
|
|
187
|
+
}
|
|
188
|
+
return undefined;
|
|
156
189
|
}
|
|
157
|
-
return undefined;
|
|
158
190
|
}
|
|
159
191
|
}
|
|
160
192
|
};
|
|
@@ -21,7 +21,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
|
21
21
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
22
22
|
import Layer from '../Layer';
|
|
23
23
|
var packageName = "@atlaskit/editor-common";
|
|
24
|
-
var packageVersion = "
|
|
24
|
+
var packageVersion = "0.0.0-development";
|
|
25
25
|
var halfFocusRing = 1;
|
|
26
26
|
var dropOffset = '0, 8';
|
|
27
27
|
var fadeIn = keyframes({
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export declare const aiSuggestionsMessages: {
|
|
2
|
+
suggestionsToolbarButtonLabel: {
|
|
3
|
+
id: string;
|
|
4
|
+
defaultMessage: string;
|
|
5
|
+
description: string;
|
|
6
|
+
};
|
|
7
|
+
suggestionsToolbarButtonLoadingLabel: {
|
|
8
|
+
id: string;
|
|
9
|
+
defaultMessage: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
suggestionsToolbarButtonReadyLabel: {
|
|
13
|
+
id: string;
|
|
14
|
+
defaultMessage: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
suggestionsToolbarButtonErrorLabel: {
|
|
18
|
+
id: string;
|
|
19
|
+
defaultMessage: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
previewLabel: {
|
|
23
|
+
id: string;
|
|
24
|
+
defaultMessage: string;
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
viewLabel: {
|
|
28
|
+
id: string;
|
|
29
|
+
defaultMessage: string;
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
titleLabel: {
|
|
33
|
+
id: string;
|
|
34
|
+
defaultMessage: string;
|
|
35
|
+
description: string;
|
|
36
|
+
};
|
|
37
|
+
reviewNote: {
|
|
38
|
+
id: string;
|
|
39
|
+
defaultMessage: string;
|
|
40
|
+
description: string;
|
|
41
|
+
};
|
|
42
|
+
applyChangesButtonLabel: {
|
|
43
|
+
id: string;
|
|
44
|
+
defaultMessage: string;
|
|
45
|
+
description: string;
|
|
46
|
+
};
|
|
47
|
+
fetchSuggestionsButtonLabel: {
|
|
48
|
+
id: string;
|
|
49
|
+
defaultMessage: string;
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
fetchSuggestionsButtonLoadingLabel: {
|
|
53
|
+
id: string;
|
|
54
|
+
defaultMessage: string;
|
|
55
|
+
description: string;
|
|
56
|
+
};
|
|
57
|
+
originalViewLabel: {
|
|
58
|
+
id: string;
|
|
59
|
+
defaultMessage: string;
|
|
60
|
+
description: string;
|
|
61
|
+
};
|
|
62
|
+
suggestedLabel: {
|
|
63
|
+
id: string;
|
|
64
|
+
defaultMessage: string;
|
|
65
|
+
description: string;
|
|
66
|
+
};
|
|
67
|
+
suggestionsLabel: {
|
|
68
|
+
id: string;
|
|
69
|
+
defaultMessage: string;
|
|
70
|
+
description: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
@@ -7,3 +7,4 @@ export { aiProactiveMessages } from './ai-proactive';
|
|
|
7
7
|
export { aiMessages } from './ai';
|
|
8
8
|
export { aiProactiveSettingMessages } from './ai-proactive-setting';
|
|
9
9
|
export { aiProactiveTransformMessages } from './ai-proactive-transform';
|
|
10
|
+
export { aiSuggestionsMessages } from './ai-suggestions';
|
|
@@ -41,6 +41,10 @@ export declare class ExtensionNode<AdditionalParams = unknown> extends ReactNode
|
|
|
41
41
|
stopEvent(event: Event): boolean;
|
|
42
42
|
getContentDOM(): {
|
|
43
43
|
dom: HTMLDivElement;
|
|
44
|
+
contentDOM: HTMLDivElement;
|
|
45
|
+
} | {
|
|
46
|
+
dom: HTMLDivElement;
|
|
47
|
+
contentDOM?: undefined;
|
|
44
48
|
} | undefined;
|
|
45
49
|
render(props: {
|
|
46
50
|
extensionHandlers: ExtensionHandlers;
|
|
@@ -12,6 +12,7 @@ export declare class NodeAnchorProvider {
|
|
|
12
12
|
isLimitedMode(): boolean;
|
|
13
13
|
getOrGenerateId(node: PMNode, pos: number): string | undefined;
|
|
14
14
|
getIdForNode(node: PMNode): string | undefined;
|
|
15
|
+
setIdForNode(node: PMNode, id: string): void;
|
|
15
16
|
setLimitedMode(): void;
|
|
16
17
|
}
|
|
17
18
|
export declare const getNodeIdProvider: (editorView: EditorView) => NodeAnchorProvider;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export declare const aiSuggestionsMessages: {
|
|
2
|
+
suggestionsToolbarButtonLabel: {
|
|
3
|
+
id: string;
|
|
4
|
+
defaultMessage: string;
|
|
5
|
+
description: string;
|
|
6
|
+
};
|
|
7
|
+
suggestionsToolbarButtonLoadingLabel: {
|
|
8
|
+
id: string;
|
|
9
|
+
defaultMessage: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
suggestionsToolbarButtonReadyLabel: {
|
|
13
|
+
id: string;
|
|
14
|
+
defaultMessage: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
suggestionsToolbarButtonErrorLabel: {
|
|
18
|
+
id: string;
|
|
19
|
+
defaultMessage: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
previewLabel: {
|
|
23
|
+
id: string;
|
|
24
|
+
defaultMessage: string;
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
viewLabel: {
|
|
28
|
+
id: string;
|
|
29
|
+
defaultMessage: string;
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
titleLabel: {
|
|
33
|
+
id: string;
|
|
34
|
+
defaultMessage: string;
|
|
35
|
+
description: string;
|
|
36
|
+
};
|
|
37
|
+
reviewNote: {
|
|
38
|
+
id: string;
|
|
39
|
+
defaultMessage: string;
|
|
40
|
+
description: string;
|
|
41
|
+
};
|
|
42
|
+
applyChangesButtonLabel: {
|
|
43
|
+
id: string;
|
|
44
|
+
defaultMessage: string;
|
|
45
|
+
description: string;
|
|
46
|
+
};
|
|
47
|
+
fetchSuggestionsButtonLabel: {
|
|
48
|
+
id: string;
|
|
49
|
+
defaultMessage: string;
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
fetchSuggestionsButtonLoadingLabel: {
|
|
53
|
+
id: string;
|
|
54
|
+
defaultMessage: string;
|
|
55
|
+
description: string;
|
|
56
|
+
};
|
|
57
|
+
originalViewLabel: {
|
|
58
|
+
id: string;
|
|
59
|
+
defaultMessage: string;
|
|
60
|
+
description: string;
|
|
61
|
+
};
|
|
62
|
+
suggestedLabel: {
|
|
63
|
+
id: string;
|
|
64
|
+
defaultMessage: string;
|
|
65
|
+
description: string;
|
|
66
|
+
};
|
|
67
|
+
suggestionsLabel: {
|
|
68
|
+
id: string;
|
|
69
|
+
defaultMessage: string;
|
|
70
|
+
description: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
@@ -7,3 +7,4 @@ export { aiProactiveMessages } from './ai-proactive';
|
|
|
7
7
|
export { aiMessages } from './ai';
|
|
8
8
|
export { aiProactiveSettingMessages } from './ai-proactive-setting';
|
|
9
9
|
export { aiProactiveTransformMessages } from './ai-proactive-transform';
|
|
10
|
+
export { aiSuggestionsMessages } from './ai-suggestions';
|
|
@@ -41,6 +41,10 @@ export declare class ExtensionNode<AdditionalParams = unknown> extends ReactNode
|
|
|
41
41
|
stopEvent(event: Event): boolean;
|
|
42
42
|
getContentDOM(): {
|
|
43
43
|
dom: HTMLDivElement;
|
|
44
|
+
contentDOM: HTMLDivElement;
|
|
45
|
+
} | {
|
|
46
|
+
dom: HTMLDivElement;
|
|
47
|
+
contentDOM?: undefined;
|
|
44
48
|
} | undefined;
|
|
45
49
|
render(props: {
|
|
46
50
|
extensionHandlers: ExtensionHandlers;
|
|
@@ -12,6 +12,7 @@ export declare class NodeAnchorProvider {
|
|
|
12
12
|
isLimitedMode(): boolean;
|
|
13
13
|
getOrGenerateId(node: PMNode, pos: number): string | undefined;
|
|
14
14
|
getIdForNode(node: PMNode): string | undefined;
|
|
15
|
+
setIdForNode(node: PMNode, id: string): void;
|
|
15
16
|
setLimitedMode(): void;
|
|
16
17
|
}
|
|
17
18
|
export declare const getNodeIdProvider: (editorView: EditorView) => NodeAnchorProvider;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-common",
|
|
3
|
-
"version": "111.12.
|
|
3
|
+
"version": "111.12.3",
|
|
4
4
|
"description": "A package that contains common classes and components for editor and renderer",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"@atlaskit/task-decision": "^19.2.0",
|
|
82
82
|
"@atlaskit/textfield": "^8.2.0",
|
|
83
83
|
"@atlaskit/theme": "^21.0.0",
|
|
84
|
-
"@atlaskit/tmp-editor-statsig": "^23.
|
|
84
|
+
"@atlaskit/tmp-editor-statsig": "^23.2.0",
|
|
85
85
|
"@atlaskit/tokens": "^11.0.0",
|
|
86
86
|
"@atlaskit/tooltip": "^20.14.0",
|
|
87
87
|
"@atlaskit/width-detector": "^5.0.0",
|
|
@@ -267,6 +267,9 @@
|
|
|
267
267
|
},
|
|
268
268
|
"platform_editor_toolbar_aifc_placement_overridden": {
|
|
269
269
|
"type": "boolean"
|
|
270
|
+
},
|
|
271
|
+
"platform_editor_fix_node_anchor_dom_cache": {
|
|
272
|
+
"type": "boolean"
|
|
270
273
|
}
|
|
271
274
|
}
|
|
272
275
|
}
|