@atlaskit/editor-common 115.8.2 → 115.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/cjs/analytics/types/container-node-events.js +5 -0
  3. package/dist/cjs/analytics/types/enums.js +1 -0
  4. package/dist/cjs/block-menu/index.js +6 -0
  5. package/dist/cjs/block-menu/key.js +7 -1
  6. package/dist/cjs/monitoring/error.js +1 -1
  7. package/dist/cjs/ui/DropList/index.js +1 -1
  8. package/dist/cjs/ui/HoverLinkOverlay/index.js +3 -2
  9. package/dist/cjs/utils/processRawValue.js +44 -7
  10. package/dist/es2019/analytics/types/container-node-events.js +1 -0
  11. package/dist/es2019/analytics/types/enums.js +1 -0
  12. package/dist/es2019/block-menu/index.js +1 -1
  13. package/dist/es2019/block-menu/key.js +6 -0
  14. package/dist/es2019/monitoring/error.js +1 -1
  15. package/dist/es2019/ui/DropList/index.js +1 -1
  16. package/dist/es2019/ui/HoverLinkOverlay/index.js +3 -2
  17. package/dist/es2019/utils/processRawValue.js +45 -7
  18. package/dist/esm/analytics/types/container-node-events.js +1 -0
  19. package/dist/esm/analytics/types/enums.js +1 -0
  20. package/dist/esm/block-menu/index.js +1 -1
  21. package/dist/esm/block-menu/key.js +6 -0
  22. package/dist/esm/monitoring/error.js +1 -1
  23. package/dist/esm/ui/DropList/index.js +1 -1
  24. package/dist/esm/ui/HoverLinkOverlay/index.js +3 -2
  25. package/dist/esm/utils/processRawValue.js +44 -7
  26. package/dist/types/analytics/types/container-node-events.d.ts +6 -0
  27. package/dist/types/analytics/types/enums.d.ts +1 -0
  28. package/dist/types/analytics/types/events.d.ts +2 -1
  29. package/dist/types/analytics/types/insert-events.d.ts +1 -0
  30. package/dist/types/block-menu/index.d.ts +1 -1
  31. package/dist/types/block-menu/key.d.ts +5 -0
  32. package/dist/types/ui/HoverLinkOverlay/index.d.ts +1 -1
  33. package/dist/types/ui/HoverLinkOverlay/types.d.ts +1 -0
  34. package/dist/types-ts4.5/analytics/types/container-node-events.d.ts +6 -0
  35. package/dist/types-ts4.5/analytics/types/enums.d.ts +1 -0
  36. package/dist/types-ts4.5/analytics/types/events.d.ts +2 -1
  37. package/dist/types-ts4.5/analytics/types/insert-events.d.ts +1 -0
  38. package/dist/types-ts4.5/block-menu/index.d.ts +1 -1
  39. package/dist/types-ts4.5/block-menu/key.d.ts +5 -0
  40. package/dist/types-ts4.5/ui/HoverLinkOverlay/index.d.ts +1 -1
  41. package/dist/types-ts4.5/ui/HoverLinkOverlay/types.d.ts +1 -0
  42. package/package.json +9 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 115.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`293a0d6eaab12`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/293a0d6eaab12) -
8
+ Fix Remix block menu item visibility to match Improve formatting
9
+
10
+ ### Patch Changes
11
+
12
+ - [`8f894bdeea3a0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8f894bdeea3a0) -
13
+ Add analytics event for panel_c1 transformation
14
+ - [`1df102e80b904`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/1df102e80b904) -
15
+ Add parentNode field in insert table events to track panel_c1 -> table
16
+ - Updated dependencies
17
+
18
+ ## 115.9.0
19
+
20
+ ### Minor Changes
21
+
22
+ - [`92da883bae00d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/92da883bae00d) -
23
+ Use XPC-wrapped destination URL for link navigation behind `platform_smartlink_xpc_url_wrapping`.
24
+
25
+ When the feature gate is enabled, the following link-opening locations now use the cross-product
26
+ analytics parameter-enriched URL provided by SmartCard instead of the raw node URL:
27
+ - **Toolbar "Open Link" button** (both smart card and datasource paths) — uses the new
28
+ `useSmartLinkDestinationUrl` hook from
29
+ `@atlaskit/smart-card/hook/use-smart-link-destination-url` via a new `OpenLinkToolbarButton`
30
+ custom toolbar component.
31
+ - **Inline card overlay anchor** (`InlineCardOverlay`) — `href` updated to use
32
+ `useSmartLinkDestinationUrl`.
33
+ - **Hover link overlay** (`HoverLinkOverlay`) — accepts a new optional `destinationUrl` prop; when
34
+ provided and the gate is on, uses it for both the anchor `href` and double-click `window.open`.
35
+ The `destinationUrl` is computed by `inlineCardWithAwareness` using `useSmartLinkDestinationUrl`
36
+ and passed down — keeping `editor-common` free of any SmartCard provider dependency.
37
+ - **Inline card Cmd/Ctrl+click** — reads `data.destinationUrl` from SmartCard's `onClick` callback
38
+ (typed as `OnClickCallback` from `@atlaskit/smart-card/card/types`).
39
+
40
+ All changes gracefully fall back to the raw URL when the gate is off or the link has not yet
41
+ resolved.
42
+
43
+ ### Patch Changes
44
+
45
+ - Updated dependencies
46
+
3
47
  ## 115.8.2
4
48
 
5
49
  ### Patch Changes
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -177,6 +177,7 @@ var ACTION = exports.ACTION = /*#__PURE__*/function (ACTION) {
177
177
  */
178
178
  ACTION["ON_CHANGE_CALLBACK"] = "onChangeCalled";
179
179
  ACTION["NESTED_TABLE_TRANSFORMED"] = "nestedTableTransformed";
180
+ ACTION["CONTAINER_NODE_TRANSFORMED"] = "containerNodeTransformed";
180
181
  ACTION["NATIVE_EMBEDS_TRANSFORMED"] = "nativeEmbedsTransformed";
181
182
  ACTION["NEW_COLLAB_SYNC_UP_ERROR_NO_STEPS"] = "newCollabSyncUpErrorNoSteps";
182
183
  ACTION["REMOVE_ICON"] = "removedIcon";
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "AI_ASK_ROVO_MENU_ITEM", {
21
21
  return _key.AI_ASK_ROVO_MENU_ITEM;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _key.AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD;
28
+ }
29
+ });
24
30
  Object.defineProperty(exports, "AI_IMPROVE_WRITING_MENU_ITEM", {
25
31
  enumerable: true,
26
32
  get: function get() {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TRANSFORM_SUGGESTED_MENU_SECTION = exports.TRANSFORM_SUGGESTED_MENU_ITEM = exports.TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM = exports.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM = exports.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM = exports.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM = exports.TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM = exports.TRANSFORM_STRUCTURE_MENU_SECTION = exports.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM = exports.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM = exports.TRANSFORM_STRUCTURE_DECISION_MENU_ITEM = exports.TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM = exports.TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM = exports.TRANSFORM_MENU_SECTION = exports.TRANSFORM_MENU_ITEM = exports.TRANSFORM_HEADINGS_MENU_SECTION = exports.TRANSFORM_HEADINGS_H6_MENU_ITEM = exports.TRANSFORM_HEADINGS_H5_MENU_ITEM = exports.TRANSFORM_HEADINGS_H4_MENU_ITEM = exports.TRANSFORM_HEADINGS_H3_MENU_ITEM = exports.TRANSFORM_HEADINGS_H2_MENU_ITEM = exports.TRANSFORM_HEADINGS_H1_MENU_ITEM = exports.TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM = exports.TRANSFORM_CREATE_MENU_SECTION = exports.TRANSFORM_CLEAR_MENU_SECTION = exports.TRANSFORM_CLEAR_MENU_ITEM = exports.POSITION_MOVE_UP_MENU_ITEM = exports.POSITION_MOVE_DOWN_MENU_ITEM = exports.POSITION_MENU_SECTION = exports.EXTENSION_MENU_ITEM_TEST_ID = exports.DELETE_MENU_SECTION = exports.DELETE_MENU_ITEM = exports.BLOCK_MENU_TEST_ID = exports.BLOCK_MENU_ACTION_TEST_ID = exports.BLOCK_ACTIONS_TEMPLATE_SECTION = exports.BLOCK_ACTIONS_MENU_SECTION = exports.BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM = exports.BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS = exports.BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM = exports.BLOCK_ACTIONS_COPY_MENU_SECTION = exports.BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM = exports.AI_REMIX_MENU_ITEM = exports.AI_POLISH_MENU_ITEM = exports.AI_MENU_SECTION = exports.AI_IMPROVE_WRITING_MENU_ITEM = exports.AI_ASK_ROVO_MENU_ITEM = void 0;
6
+ exports.TRANSFORM_SUGGESTED_MENU_SECTION = exports.TRANSFORM_SUGGESTED_MENU_ITEM = exports.TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM = exports.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM = exports.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM = exports.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM = exports.TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM = exports.TRANSFORM_STRUCTURE_MENU_SECTION = exports.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM = exports.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM = exports.TRANSFORM_STRUCTURE_DECISION_MENU_ITEM = exports.TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM = exports.TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM = exports.TRANSFORM_MENU_SECTION = exports.TRANSFORM_MENU_ITEM = exports.TRANSFORM_HEADINGS_MENU_SECTION = exports.TRANSFORM_HEADINGS_H6_MENU_ITEM = exports.TRANSFORM_HEADINGS_H5_MENU_ITEM = exports.TRANSFORM_HEADINGS_H4_MENU_ITEM = exports.TRANSFORM_HEADINGS_H3_MENU_ITEM = exports.TRANSFORM_HEADINGS_H2_MENU_ITEM = exports.TRANSFORM_HEADINGS_H1_MENU_ITEM = exports.TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM = exports.TRANSFORM_CREATE_MENU_SECTION = exports.TRANSFORM_CLEAR_MENU_SECTION = exports.TRANSFORM_CLEAR_MENU_ITEM = exports.POSITION_MOVE_UP_MENU_ITEM = exports.POSITION_MOVE_DOWN_MENU_ITEM = exports.POSITION_MENU_SECTION = exports.EXTENSION_MENU_ITEM_TEST_ID = exports.DELETE_MENU_SECTION = exports.DELETE_MENU_ITEM = exports.BLOCK_MENU_TEST_ID = exports.BLOCK_MENU_ACTION_TEST_ID = exports.BLOCK_ACTIONS_TEMPLATE_SECTION = exports.BLOCK_ACTIONS_MENU_SECTION = exports.BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM = exports.BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS = exports.BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM = exports.BLOCK_ACTIONS_COPY_MENU_SECTION = exports.BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM = exports.AI_REMIX_MENU_ITEM = exports.AI_POLISH_MENU_ITEM = exports.AI_MENU_SECTION = exports.AI_IMPROVE_WRITING_MENU_ITEM = exports.AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD = exports.AI_ASK_ROVO_MENU_ITEM = void 0;
7
7
  // Transformation
8
8
 
9
9
  var TRANSFORM_MENU_SECTION = exports.TRANSFORM_MENU_SECTION = {
@@ -146,6 +146,12 @@ var EXTENSION_MENU_ITEM_TEST_ID = exports.EXTENSION_MENU_ITEM_TEST_ID = 'extensi
146
146
  var AI_MENU_SECTION = exports.AI_MENU_SECTION = {
147
147
  key: 'ai-menu-section'
148
148
  };
149
+
150
+ /**
151
+ * Minimum text length (in characters) for AI block menu actions
152
+ * (e.g. "Improve formatting", "Remix") to be visible.
153
+ */
154
+ var AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD = exports.AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD = 300;
149
155
  var AI_ASK_ROVO_MENU_ITEM = exports.AI_ASK_ROVO_MENU_ITEM = {
150
156
  key: 'block-menu-ai-ask-rovo-menu-item'
151
157
  };
@@ -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 _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); 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 = "115.8.1";
22
+ var packageVersion = "115.9.0";
23
23
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
24
24
  // Remove URL as it has UGC
25
25
  // Ignored via go/ees007
@@ -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 = "115.8.1";
27
+ var packageVersion = "115.9.0";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var fadeIn = (0, _react2.keyframes)({
@@ -105,6 +105,7 @@ var HoverLinkOverlay = function HoverLinkOverlay(_ref) {
105
105
  _ref$isVisible = _ref.isVisible,
106
106
  isVisible = _ref$isVisible === void 0 ? false : _ref$isVisible,
107
107
  url = _ref.url,
108
+ destinationUrl = _ref.destinationUrl,
108
109
  _ref$compactPadding = _ref.compactPadding,
109
110
  compactPadding = _ref$compactPadding === void 0 ? false : _ref$compactPadding,
110
111
  editorAnalyticsApi = _ref.editorAnalyticsApi,
@@ -197,7 +198,7 @@ var HoverLinkOverlay = function HoverLinkOverlay(_ref) {
197
198
  sendVisitLinkAnalytics(_analytics.INPUT_METHOD.DOUBLE_CLICK);
198
199
 
199
200
  // Double click opens the link in a new tab
200
- window.open(url, '_blank');
201
+ window.open((0, _platformFeatureFlags.fg)('platform_smartlink_xpc_url_wrapping') ? destinationUrl !== null && destinationUrl !== void 0 ? destinationUrl : url : url, '_blank');
201
202
  }
202
203
  };
203
204
  var handleClick = function handleClick(event) {
@@ -249,7 +250,7 @@ var HoverLinkOverlay = function HoverLinkOverlay(_ref) {
249
250
  }, label)), isHovered && (0, _react2.jsx)(_primitives.Anchor, {
250
251
  ref: hoverLinkButtonRef,
251
252
  xcss: linkStylesCommon,
252
- href: url,
253
+ href: (0, _platformFeatureFlags.fg)('platform_smartlink_xpc_url_wrapping') ? destinationUrl !== null && destinationUrl !== void 0 ? destinationUrl : url : url,
253
254
  target: "_blank"
254
255
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- dynamic paddingBlock value based on experiment flags
255
256
  ,
@@ -59,6 +59,47 @@ var transformNestedTablesWithAnalytics = function transformNestedTablesWithAnaly
59
59
  isTransformed: false
60
60
  };
61
61
  };
62
+ var transformContainerNodesWithAnalytics = function transformContainerNodesWithAnalytics(node, schema, dispatchAnalyticsEvent) {
63
+ try {
64
+ var _transformContainerNo = (0, _transforms.transformContainerNodes)(node, schema),
65
+ transformedAdf = _transformContainerNo.transformedAdf,
66
+ isTransformed = _transformContainerNo.isTransformed,
67
+ transformedNodeTypes = _transformContainerNo.transformedNodeTypes;
68
+ if (isTransformed && transformedAdf) {
69
+ if (dispatchAnalyticsEvent) {
70
+ dispatchAnalyticsEvent({
71
+ action: _analytics.ACTION.CONTAINER_NODE_TRANSFORMED,
72
+ actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
73
+ eventType: _analytics.EVENT_TYPE.OPERATIONAL,
74
+ attributes: {
75
+ transformedNodeTypes: transformedNodeTypes
76
+ }
77
+ });
78
+ }
79
+ return {
80
+ transformedAdf: transformedAdf,
81
+ isTransformed: isTransformed
82
+ };
83
+ }
84
+ } catch (e) {
85
+ // eslint-disable-next-line no-console
86
+ console.error('Failed to transform one or more panels to panel_c1');
87
+ if (dispatchAnalyticsEvent) {
88
+ dispatchAnalyticsEvent({
89
+ action: _analytics.ACTION.DOCUMENT_PROCESSING_ERROR,
90
+ actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
91
+ eventType: _analytics.EVENT_TYPE.OPERATIONAL,
92
+ attributes: {
93
+ errorMessage: "".concat(e instanceof Error && e.name === 'NodeNestingTransformError' ? 'NodeNestingTransformError - Failed to transform panel to panel_c1' : undefined)
94
+ }
95
+ });
96
+ }
97
+ }
98
+ return {
99
+ transformedAdf: node,
100
+ isTransformed: false
101
+ };
102
+ };
62
103
  function processRawValueWithoutValidation(schema, value, dispatchAnalyticsEvent) {
63
104
  if (!value) {
64
105
  return;
@@ -260,13 +301,9 @@ function processRawValue(schema, value, providerFactory, sanitizePrivateContent,
260
301
  transformedAdf = _transformNestedTable3.transformedAdf;
261
302
  entity = transformedAdf;
262
303
  if ((0, _expValEquals.expValEquals)('platform_editor_nest_table_in_panel', 'isEnabled', true)) {
263
- var _transformContainerNo = (0, _transforms.transformContainerNodes)(entity, schema);
264
- transformedAdf = _transformContainerNo.transformedAdf;
265
- isTransformed = _transformContainerNo.isTransformed;
266
- if (isTransformed) {
267
- // TODO: EDITOR-7175 - Add analytics
268
- entity = transformedAdf;
269
- }
304
+ var _transformContainerNo2 = transformContainerNodesWithAnalytics(entity, schema, dispatchAnalyticsEvent);
305
+ transformedAdf = _transformContainerNo2.transformedAdf;
306
+ entity = transformedAdf;
270
307
  }
271
308
  var newEntity = maySanitizePrivateContent(entity, providerFactory, sanitizePrivateContent);
272
309
  var parsedDoc = _model.Node.fromJSON(schema, newEntity);
@@ -171,6 +171,7 @@ export let ACTION = /*#__PURE__*/function (ACTION) {
171
171
  */
172
172
  ACTION["ON_CHANGE_CALLBACK"] = "onChangeCalled";
173
173
  ACTION["NESTED_TABLE_TRANSFORMED"] = "nestedTableTransformed";
174
+ ACTION["CONTAINER_NODE_TRANSFORMED"] = "containerNodeTransformed";
174
175
  ACTION["NATIVE_EMBEDS_TRANSFORMED"] = "nativeEmbedsTransformed";
175
176
  ACTION["NEW_COLLAB_SYNC_UP_ERROR_NO_STEPS"] = "newCollabSyncUpErrorNoSteps";
176
177
  ACTION["REMOVE_ICON"] = "removedIcon";
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @atlaskit/editor/no-re-export */
2
2
  export { messages } from './messages';
3
- export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM } from './key';
3
+ export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM, AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD } from './key';
4
4
  export { FORMAT_HEADING_1_MENU_ITEM, FORMAT_HEADING_2_MENU_ITEM, FORMAT_HEADING_3_MENU_ITEM, FORMAT_HEADING_4_MENU_ITEM, FORMAT_HEADING_5_MENU_ITEM, FORMAT_HEADING_6_MENU_ITEM, FORMAT_PARAGRAPH_MENU_ITEM, FORMAT_QUOTE_MENU_ITEM, FORMAT_EXPAND_MENU_ITEM, FORMAT_LAYOUT_MENU_ITEM, FORMAT_PANEL_MENU_ITEM, FORMAT_CODE_BLOCK_MENU_ITEM, FORMAT_BULLETED_LIST_MENU_ITEM, FORMAT_NUMBERED_LIST_MENU_ITEM, FORMAT_TASK_LIST_MENU_ITEM, COPY_MENU_SECTION, MOVE_UP_DOWN_MENU_SECTION, COPY_LINK_MENU_ITEM, MOVE_UP_MENU_ITEM, MOVE_DOWN_MENU_ITEM, NESTED_FORMAT_MENU_SECTION, FORMAT_MENU_ITEM, NESTED_FORMAT_MENU, PRIMARY_MENU_SECTION, ADD_BLOCKS_MENU_SECTION, CREATE_SYNCED_BLOCK_MENU_ITEM } from './key-deprecated';
5
5
  export { MAIN_BLOCK_MENU_SECTION_RANK, TRANSFORM_MENU_SECTION_RANK, BLOCK_ACTIONS_FEATURED_EXTENSION_ITEM_RANK, TRANSFORM_MENU_ITEM_RANK, TRANSFORM_HEADINGS_MENU_SECTION_RANK, TRANSFORM_STRUCTURE_MENU_SECTION_RANK, TRANSFORM_CLEAR_MENU_SECTION_RANK, BLOCK_ACTIONS_MENU_SECTION_RANK, BLOCK_ACTIONS_COPY_MENU_SECTION_RANK, POSITION_MENU_SECTION_RANK, DELETE_MENU_SECTION_RANK, TRANSFORM_SUGGESTED_MENU_SECTION_RANK, TRANSFORM_CREATE_MENU_SECTION_RANK, AI_MENU_SECTION_RANK } from './rank';
6
6
  export { FORMAT_NESTED_MENU_RANK, FORMAT_NESTED_MENU_RANK_REVISED, BLOCK_MENU_SECTION_RANK, PRIMARY_MENU_SECTION_RANK, COPY_MENU_SECTION_RANK, DELETE_SECTION_RANK, MOVE_BLOCK_SECTION_RANK, ADD_BLOCKS_MENU_SECTION_RANK } from './rank-deprecated';
@@ -140,6 +140,12 @@ export const EXTENSION_MENU_ITEM_TEST_ID = 'extension-menu-item';
140
140
  export const AI_MENU_SECTION = {
141
141
  key: 'ai-menu-section'
142
142
  };
143
+
144
+ /**
145
+ * Minimum text length (in characters) for AI block menu actions
146
+ * (e.g. "Improve formatting", "Remix") to be visible.
147
+ */
148
+ export const AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD = 300;
143
149
  export const AI_ASK_ROVO_MENU_ITEM = {
144
150
  key: 'block-menu-ai-ask-rovo-menu-item'
145
151
  };
@@ -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 = "115.8.1";
7
+ const packageVersion = "115.9.0";
8
8
  const sanitiseSentryEvents = (data, _hint) => {
9
9
  // Remove URL as it has UGC
10
10
  // Ignored via go/ees007
@@ -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 = "115.8.1";
17
+ const packageVersion = "115.9.0";
18
18
  const halfFocusRing = 1;
19
19
  const dropOffset = '0, 8';
20
20
  const fadeIn = keyframes({
@@ -92,6 +92,7 @@ const HoverLinkOverlay = ({
92
92
  children,
93
93
  isVisible = false,
94
94
  url,
95
+ destinationUrl,
95
96
  compactPadding = false,
96
97
  editorAnalyticsApi,
97
98
  view,
@@ -176,7 +177,7 @@ const HoverLinkOverlay = ({
176
177
  sendVisitLinkAnalytics(INPUT_METHOD.DOUBLE_CLICK);
177
178
 
178
179
  // Double click opens the link in a new tab
179
- window.open(url, '_blank');
180
+ window.open(fg('platform_smartlink_xpc_url_wrapping') ? destinationUrl !== null && destinationUrl !== void 0 ? destinationUrl : url : url, '_blank');
180
181
  }
181
182
  };
182
183
  const handleClick = event => {
@@ -224,7 +225,7 @@ const HoverLinkOverlay = ({
224
225
  }, label)), isHovered && jsx(Anchor, {
225
226
  ref: hoverLinkButtonRef,
226
227
  xcss: linkStylesCommon,
227
- href: url,
228
+ href: fg('platform_smartlink_xpc_url_wrapping') ? destinationUrl !== null && destinationUrl !== void 0 ? destinationUrl : url : url,
228
229
  target: "_blank"
229
230
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- dynamic paddingBlock value based on experiment flags
230
231
  ,
@@ -46,6 +46,48 @@ const transformNestedTablesWithAnalytics = (node, dispatchAnalyticsEvent) => {
46
46
  isTransformed: false
47
47
  };
48
48
  };
49
+ const transformContainerNodesWithAnalytics = (node, schema, dispatchAnalyticsEvent) => {
50
+ try {
51
+ const {
52
+ transformedAdf,
53
+ isTransformed,
54
+ transformedNodeTypes
55
+ } = transformContainerNodes(node, schema);
56
+ if (isTransformed && transformedAdf) {
57
+ if (dispatchAnalyticsEvent) {
58
+ dispatchAnalyticsEvent({
59
+ action: ACTION.CONTAINER_NODE_TRANSFORMED,
60
+ actionSubject: ACTION_SUBJECT.EDITOR,
61
+ eventType: EVENT_TYPE.OPERATIONAL,
62
+ attributes: {
63
+ transformedNodeTypes
64
+ }
65
+ });
66
+ }
67
+ return {
68
+ transformedAdf,
69
+ isTransformed
70
+ };
71
+ }
72
+ } catch (e) {
73
+ // eslint-disable-next-line no-console
74
+ console.error('Failed to transform one or more panels to panel_c1');
75
+ if (dispatchAnalyticsEvent) {
76
+ dispatchAnalyticsEvent({
77
+ action: ACTION.DOCUMENT_PROCESSING_ERROR,
78
+ actionSubject: ACTION_SUBJECT.EDITOR,
79
+ eventType: EVENT_TYPE.OPERATIONAL,
80
+ attributes: {
81
+ errorMessage: `${e instanceof Error && e.name === 'NodeNestingTransformError' ? 'NodeNestingTransformError - Failed to transform panel to panel_c1' : undefined}`
82
+ }
83
+ });
84
+ }
85
+ }
86
+ return {
87
+ transformedAdf: node,
88
+ isTransformed: false
89
+ };
90
+ };
49
91
  export function processRawValueWithoutValidation(schema, value, dispatchAnalyticsEvent) {
50
92
  if (!value) {
51
93
  return;
@@ -255,13 +297,9 @@ export function processRawValue(schema, value, providerFactory, sanitizePrivateC
255
297
  entity = transformedAdf;
256
298
  if (expValEquals('platform_editor_nest_table_in_panel', 'isEnabled', true)) {
257
299
  ({
258
- transformedAdf,
259
- isTransformed
260
- } = transformContainerNodes(entity, schema));
261
- if (isTransformed) {
262
- // TODO: EDITOR-7175 - Add analytics
263
- entity = transformedAdf;
264
- }
300
+ transformedAdf
301
+ } = transformContainerNodesWithAnalytics(entity, schema, dispatchAnalyticsEvent));
302
+ entity = transformedAdf;
265
303
  }
266
304
  const newEntity = maySanitizePrivateContent(entity, providerFactory, sanitizePrivateContent);
267
305
  const parsedDoc = Node.fromJSON(schema, newEntity);
@@ -0,0 +1 @@
1
+ export {};
@@ -171,6 +171,7 @@ export var ACTION = /*#__PURE__*/function (ACTION) {
171
171
  */
172
172
  ACTION["ON_CHANGE_CALLBACK"] = "onChangeCalled";
173
173
  ACTION["NESTED_TABLE_TRANSFORMED"] = "nestedTableTransformed";
174
+ ACTION["CONTAINER_NODE_TRANSFORMED"] = "containerNodeTransformed";
174
175
  ACTION["NATIVE_EMBEDS_TRANSFORMED"] = "nativeEmbedsTransformed";
175
176
  ACTION["NEW_COLLAB_SYNC_UP_ERROR_NO_STEPS"] = "newCollabSyncUpErrorNoSteps";
176
177
  ACTION["REMOVE_ICON"] = "removedIcon";
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @atlaskit/editor/no-re-export */
2
2
  export { messages } from './messages';
3
- export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM } from './key';
3
+ export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM, AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD } from './key';
4
4
  export { FORMAT_HEADING_1_MENU_ITEM, FORMAT_HEADING_2_MENU_ITEM, FORMAT_HEADING_3_MENU_ITEM, FORMAT_HEADING_4_MENU_ITEM, FORMAT_HEADING_5_MENU_ITEM, FORMAT_HEADING_6_MENU_ITEM, FORMAT_PARAGRAPH_MENU_ITEM, FORMAT_QUOTE_MENU_ITEM, FORMAT_EXPAND_MENU_ITEM, FORMAT_LAYOUT_MENU_ITEM, FORMAT_PANEL_MENU_ITEM, FORMAT_CODE_BLOCK_MENU_ITEM, FORMAT_BULLETED_LIST_MENU_ITEM, FORMAT_NUMBERED_LIST_MENU_ITEM, FORMAT_TASK_LIST_MENU_ITEM, COPY_MENU_SECTION, MOVE_UP_DOWN_MENU_SECTION, COPY_LINK_MENU_ITEM, MOVE_UP_MENU_ITEM, MOVE_DOWN_MENU_ITEM, NESTED_FORMAT_MENU_SECTION, FORMAT_MENU_ITEM, NESTED_FORMAT_MENU, PRIMARY_MENU_SECTION, ADD_BLOCKS_MENU_SECTION, CREATE_SYNCED_BLOCK_MENU_ITEM } from './key-deprecated';
5
5
  export { MAIN_BLOCK_MENU_SECTION_RANK, TRANSFORM_MENU_SECTION_RANK, BLOCK_ACTIONS_FEATURED_EXTENSION_ITEM_RANK, TRANSFORM_MENU_ITEM_RANK, TRANSFORM_HEADINGS_MENU_SECTION_RANK, TRANSFORM_STRUCTURE_MENU_SECTION_RANK, TRANSFORM_CLEAR_MENU_SECTION_RANK, BLOCK_ACTIONS_MENU_SECTION_RANK, BLOCK_ACTIONS_COPY_MENU_SECTION_RANK, POSITION_MENU_SECTION_RANK, DELETE_MENU_SECTION_RANK, TRANSFORM_SUGGESTED_MENU_SECTION_RANK, TRANSFORM_CREATE_MENU_SECTION_RANK, AI_MENU_SECTION_RANK } from './rank';
6
6
  export { FORMAT_NESTED_MENU_RANK, FORMAT_NESTED_MENU_RANK_REVISED, BLOCK_MENU_SECTION_RANK, PRIMARY_MENU_SECTION_RANK, COPY_MENU_SECTION_RANK, DELETE_SECTION_RANK, MOVE_BLOCK_SECTION_RANK, ADD_BLOCKS_MENU_SECTION_RANK } from './rank-deprecated';
@@ -140,6 +140,12 @@ export var EXTENSION_MENU_ITEM_TEST_ID = 'extension-menu-item';
140
140
  export var AI_MENU_SECTION = {
141
141
  key: 'ai-menu-section'
142
142
  };
143
+
144
+ /**
145
+ * Minimum text length (in characters) for AI block menu actions
146
+ * (e.g. "Improve formatting", "Remix") to be visible.
147
+ */
148
+ export var AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD = 300;
143
149
  export var AI_ASK_ROVO_MENU_ITEM = {
144
150
  key: 'block-menu-ai-ask-rovo-menu-item'
145
151
  };
@@ -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 = "115.8.1";
13
+ var packageVersion = "115.9.0";
14
14
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
15
15
  // Remove URL as it has UGC
16
16
  // Ignored via go/ees007
@@ -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 = "115.8.1";
24
+ var packageVersion = "115.9.0";
25
25
  var halfFocusRing = 1;
26
26
  var dropOffset = '0, 8';
27
27
  var fadeIn = keyframes({
@@ -92,6 +92,7 @@ var HoverLinkOverlay = function HoverLinkOverlay(_ref) {
92
92
  _ref$isVisible = _ref.isVisible,
93
93
  isVisible = _ref$isVisible === void 0 ? false : _ref$isVisible,
94
94
  url = _ref.url,
95
+ destinationUrl = _ref.destinationUrl,
95
96
  _ref$compactPadding = _ref.compactPadding,
96
97
  compactPadding = _ref$compactPadding === void 0 ? false : _ref$compactPadding,
97
98
  editorAnalyticsApi = _ref.editorAnalyticsApi,
@@ -184,7 +185,7 @@ var HoverLinkOverlay = function HoverLinkOverlay(_ref) {
184
185
  sendVisitLinkAnalytics(INPUT_METHOD.DOUBLE_CLICK);
185
186
 
186
187
  // Double click opens the link in a new tab
187
- window.open(url, '_blank');
188
+ window.open(fg('platform_smartlink_xpc_url_wrapping') ? destinationUrl !== null && destinationUrl !== void 0 ? destinationUrl : url : url, '_blank');
188
189
  }
189
190
  };
190
191
  var handleClick = function handleClick(event) {
@@ -236,7 +237,7 @@ var HoverLinkOverlay = function HoverLinkOverlay(_ref) {
236
237
  }, label)), isHovered && jsx(Anchor, {
237
238
  ref: hoverLinkButtonRef,
238
239
  xcss: linkStylesCommon,
239
- href: url,
240
+ href: fg('platform_smartlink_xpc_url_wrapping') ? destinationUrl !== null && destinationUrl !== void 0 ? destinationUrl : url : url,
240
241
  target: "_blank"
241
242
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- dynamic paddingBlock value based on experiment flags
242
243
  ,
@@ -45,6 +45,47 @@ var transformNestedTablesWithAnalytics = function transformNestedTablesWithAnaly
45
45
  isTransformed: false
46
46
  };
47
47
  };
48
+ var transformContainerNodesWithAnalytics = function transformContainerNodesWithAnalytics(node, schema, dispatchAnalyticsEvent) {
49
+ try {
50
+ var _transformContainerNo = transformContainerNodes(node, schema),
51
+ transformedAdf = _transformContainerNo.transformedAdf,
52
+ isTransformed = _transformContainerNo.isTransformed,
53
+ transformedNodeTypes = _transformContainerNo.transformedNodeTypes;
54
+ if (isTransformed && transformedAdf) {
55
+ if (dispatchAnalyticsEvent) {
56
+ dispatchAnalyticsEvent({
57
+ action: ACTION.CONTAINER_NODE_TRANSFORMED,
58
+ actionSubject: ACTION_SUBJECT.EDITOR,
59
+ eventType: EVENT_TYPE.OPERATIONAL,
60
+ attributes: {
61
+ transformedNodeTypes: transformedNodeTypes
62
+ }
63
+ });
64
+ }
65
+ return {
66
+ transformedAdf: transformedAdf,
67
+ isTransformed: isTransformed
68
+ };
69
+ }
70
+ } catch (e) {
71
+ // eslint-disable-next-line no-console
72
+ console.error('Failed to transform one or more panels to panel_c1');
73
+ if (dispatchAnalyticsEvent) {
74
+ dispatchAnalyticsEvent({
75
+ action: ACTION.DOCUMENT_PROCESSING_ERROR,
76
+ actionSubject: ACTION_SUBJECT.EDITOR,
77
+ eventType: EVENT_TYPE.OPERATIONAL,
78
+ attributes: {
79
+ errorMessage: "".concat(e instanceof Error && e.name === 'NodeNestingTransformError' ? 'NodeNestingTransformError - Failed to transform panel to panel_c1' : undefined)
80
+ }
81
+ });
82
+ }
83
+ }
84
+ return {
85
+ transformedAdf: node,
86
+ isTransformed: false
87
+ };
88
+ };
48
89
  export function processRawValueWithoutValidation(schema, value, dispatchAnalyticsEvent) {
49
90
  if (!value) {
50
91
  return;
@@ -246,13 +287,9 @@ export function processRawValue(schema, value, providerFactory, sanitizePrivateC
246
287
  transformedAdf = _transformNestedTable3.transformedAdf;
247
288
  entity = transformedAdf;
248
289
  if (expValEquals('platform_editor_nest_table_in_panel', 'isEnabled', true)) {
249
- var _transformContainerNo = transformContainerNodes(entity, schema);
250
- transformedAdf = _transformContainerNo.transformedAdf;
251
- isTransformed = _transformContainerNo.isTransformed;
252
- if (isTransformed) {
253
- // TODO: EDITOR-7175 - Add analytics
254
- entity = transformedAdf;
255
- }
290
+ var _transformContainerNo2 = transformContainerNodesWithAnalytics(entity, schema, dispatchAnalyticsEvent);
291
+ transformedAdf = _transformContainerNo2.transformedAdf;
292
+ entity = transformedAdf;
256
293
  }
257
294
  var newEntity = maySanitizePrivateContent(entity, providerFactory, sanitizePrivateContent);
258
295
  var parsedDoc = Node.fromJSON(schema, newEntity);
@@ -0,0 +1,6 @@
1
+ import type { ACTION, ACTION_SUBJECT } from './enums';
2
+ import type { OperationalAEP } from './utils';
3
+ export type ContainerNodeTransformedAEP = OperationalAEP<ACTION.CONTAINER_NODE_TRANSFORMED, ACTION_SUBJECT.EDITOR | ACTION_SUBJECT.RENDERER, undefined, {
4
+ transformedNodeTypes: string[];
5
+ }>;
6
+ export type ContainerNodeActionsEventPayload = ContainerNodeTransformedAEP;
@@ -170,6 +170,7 @@ export declare enum ACTION {
170
170
  */
171
171
  ON_CHANGE_CALLBACK = "onChangeCalled",
172
172
  NESTED_TABLE_TRANSFORMED = "nestedTableTransformed",
173
+ CONTAINER_NODE_TRANSFORMED = "containerNodeTransformed",
173
174
  NATIVE_EMBEDS_TRANSFORMED = "nativeEmbedsTransformed",
174
175
  NEW_COLLAB_SYNC_UP_ERROR_NO_STEPS = "newCollabSyncUpErrorNoSteps",
175
176
  REMOVE_ICON = "removedIcon",
@@ -20,6 +20,7 @@ import type { BlockMenuEventPayload, ElementTransformErrorAEP } from './block-me
20
20
  import type { BreakoutEventPayload } from './breakout-events';
21
21
  import type { TextColorEventPayload } from './color-events';
22
22
  import type { ConfigPanelEventPayload } from './config-panel-events';
23
+ import type { ContainerNodeActionsEventPayload } from './container-node-events';
23
24
  import type { ContextualTypeaheadEventPayload } from './contextual-typeahead-events';
24
25
  import type { CutCopyEventPayload } from './cut-copy-events';
25
26
  import type { DatasourceClickedPayload } from './datasource-clicked-events';
@@ -70,7 +71,7 @@ export type SimplifiedNode = {
70
71
  pos: number;
71
72
  type: string;
72
73
  };
73
- export type AnalyticsEventPayload<T = void> = AvatarEventPayload | GeneralEventPayload<T> | FormatEventPayload | SubstituteEventPayload | InsertEventPayload | NodeEventPayload | MoveContentEventPayload | MediaEventPayload | TableEventPayload | PasteEventPayload | PasteActionsMenuEventPayload | CutCopyEventPayload | ErrorEventPayload | TextColorEventPayload | FindReplaceEventPayload | DateEventPayload | SelectionEventPayload | ListEventPayload | ConfigPanelEventPayload | ElementBrowserEventPayload | CreateLinkInlineDialogEventPayload | HighlightActionsEventPayload | UnsupportedContentPayload | ExtensionEventPayload | TransactionEventPayload | TypeAheadPayload | UnlinkToolbarAEP | EditLinkToolbarAEP | PreviewItemClickedAEP | OpenLinkToolbarAEP | OpenSettingsToolbarAEP | CustomPanelEventPayload | FeatureExposureAEP | NewCollabSyncUpErrorAEP | UnsupportedContentTooltipPayload | ReferentialityEventPayload | LoomEventPayload | MBEEventPayload | HighlightEventPayload | DatasourceClickedPayload | ElementEventPayload | VisitedLinkAEP | ViewEventPayload | MediaUploadEventPayload | MentionEventPayload | EngagementPlatformEventPayload | NestedTableActionsEventPayload | AICommandPaletteEventPayload | AIDefinitionsEventPayload | AIEventPayload | AIStreamingEventPayload | AIProactiveEventPayload | AiAutocompleteEventPayload | AiSuggestionsEventPayload | ContextualTypeaheadEventPayload | AIQuickPromptEventPayload | AIUnifiedEventPayload | BreakoutEventPayload | BlockMenuEventPayload | ActiveSessionEventPayload | AIInlineSuggestionPayload | SelectionExtensionEventPayload | TelepointerClickPayload | SelectionToolbarEventPayload | ExperienceEventPayload | AlignmentEventPayload | UndoRedoAEP | OfflineEditingEventPayload | NcsSessionStepEventAEP | FloatingToolbarOverflowEventPayload | SyncBlockEventPayload | FloatingToolbarEventPayload;
74
+ export type AnalyticsEventPayload<T = void> = AvatarEventPayload | GeneralEventPayload<T> | FormatEventPayload | SubstituteEventPayload | InsertEventPayload | NodeEventPayload | MoveContentEventPayload | MediaEventPayload | TableEventPayload | PasteEventPayload | PasteActionsMenuEventPayload | CutCopyEventPayload | ErrorEventPayload | TextColorEventPayload | FindReplaceEventPayload | DateEventPayload | SelectionEventPayload | ListEventPayload | ConfigPanelEventPayload | ElementBrowserEventPayload | CreateLinkInlineDialogEventPayload | HighlightActionsEventPayload | UnsupportedContentPayload | ExtensionEventPayload | TransactionEventPayload | TypeAheadPayload | UnlinkToolbarAEP | EditLinkToolbarAEP | PreviewItemClickedAEP | OpenLinkToolbarAEP | OpenSettingsToolbarAEP | CustomPanelEventPayload | FeatureExposureAEP | NewCollabSyncUpErrorAEP | UnsupportedContentTooltipPayload | ReferentialityEventPayload | LoomEventPayload | MBEEventPayload | HighlightEventPayload | DatasourceClickedPayload | ElementEventPayload | VisitedLinkAEP | ViewEventPayload | MediaUploadEventPayload | MentionEventPayload | EngagementPlatformEventPayload | NestedTableActionsEventPayload | ContainerNodeActionsEventPayload | AICommandPaletteEventPayload | AIDefinitionsEventPayload | AIEventPayload | AIStreamingEventPayload | AIProactiveEventPayload | AiAutocompleteEventPayload | AiSuggestionsEventPayload | ContextualTypeaheadEventPayload | AIQuickPromptEventPayload | AIUnifiedEventPayload | BreakoutEventPayload | BlockMenuEventPayload | ActiveSessionEventPayload | AIInlineSuggestionPayload | SelectionExtensionEventPayload | TelepointerClickPayload | SelectionToolbarEventPayload | ExperienceEventPayload | AlignmentEventPayload | UndoRedoAEP | OfflineEditingEventPayload | NcsSessionStepEventAEP | FloatingToolbarOverflowEventPayload | SyncBlockEventPayload | FloatingToolbarEventPayload;
74
75
  type CustomPanelEventPayload = TrackAEP<ACTION.CHANGED_BACKGROUND_COLOR | ACTION.CHANGED_ICON | ACTION.REMOVE_ICON, ACTION_SUBJECT.PANEL, ACTION_SUBJECT_ID.PANEL, {
75
76
  newColor: string;
76
77
  previousColor: string;
@@ -47,6 +47,7 @@ type InsertCodeBlockAEP = InsertAEP<ACTION_SUBJECT_ID.CODE_BLOCK, {
47
47
  type InsertTableAEP = InsertAEP<ACTION_SUBJECT_ID.TABLE, {
48
48
  inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.ELEMENT_BROWSER | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.FORMATTING | INPUT_METHOD.PICKER | INPUT_METHOD.SHORTCUT;
49
49
  localId?: string;
50
+ parentNode?: string;
50
51
  totalColumnCount?: number;
51
52
  totalRowCount?: number;
52
53
  }, undefined>;
@@ -1,5 +1,5 @@
1
1
  export { messages } from './messages';
2
- export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM, } from './key';
2
+ export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM, AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD, } from './key';
3
3
  export { FORMAT_HEADING_1_MENU_ITEM, FORMAT_HEADING_2_MENU_ITEM, FORMAT_HEADING_3_MENU_ITEM, FORMAT_HEADING_4_MENU_ITEM, FORMAT_HEADING_5_MENU_ITEM, FORMAT_HEADING_6_MENU_ITEM, FORMAT_PARAGRAPH_MENU_ITEM, FORMAT_QUOTE_MENU_ITEM, FORMAT_EXPAND_MENU_ITEM, FORMAT_LAYOUT_MENU_ITEM, FORMAT_PANEL_MENU_ITEM, FORMAT_CODE_BLOCK_MENU_ITEM, FORMAT_BULLETED_LIST_MENU_ITEM, FORMAT_NUMBERED_LIST_MENU_ITEM, FORMAT_TASK_LIST_MENU_ITEM, COPY_MENU_SECTION, MOVE_UP_DOWN_MENU_SECTION, COPY_LINK_MENU_ITEM, MOVE_UP_MENU_ITEM, MOVE_DOWN_MENU_ITEM, NESTED_FORMAT_MENU_SECTION, FORMAT_MENU_ITEM, NESTED_FORMAT_MENU, PRIMARY_MENU_SECTION, ADD_BLOCKS_MENU_SECTION, CREATE_SYNCED_BLOCK_MENU_ITEM, } from './key-deprecated';
4
4
  export { MAIN_BLOCK_MENU_SECTION_RANK, TRANSFORM_MENU_SECTION_RANK, BLOCK_ACTIONS_FEATURED_EXTENSION_ITEM_RANK, TRANSFORM_MENU_ITEM_RANK, TRANSFORM_HEADINGS_MENU_SECTION_RANK, TRANSFORM_STRUCTURE_MENU_SECTION_RANK, TRANSFORM_CLEAR_MENU_SECTION_RANK, BLOCK_ACTIONS_MENU_SECTION_RANK, BLOCK_ACTIONS_COPY_MENU_SECTION_RANK, POSITION_MENU_SECTION_RANK, DELETE_MENU_SECTION_RANK, TRANSFORM_SUGGESTED_MENU_SECTION_RANK, TRANSFORM_CREATE_MENU_SECTION_RANK, AI_MENU_SECTION_RANK, } from './rank';
5
5
  export { FORMAT_NESTED_MENU_RANK, FORMAT_NESTED_MENU_RANK_REVISED, BLOCK_MENU_SECTION_RANK, PRIMARY_MENU_SECTION_RANK, COPY_MENU_SECTION_RANK, DELETE_SECTION_RANK, MOVE_BLOCK_SECTION_RANK, ADD_BLOCKS_MENU_SECTION_RANK, } from './rank-deprecated';
@@ -124,6 +124,11 @@ export declare const EXTENSION_MENU_ITEM_TEST_ID = "extension-menu-item";
124
124
  export declare const AI_MENU_SECTION: {
125
125
  key: string;
126
126
  };
127
+ /**
128
+ * Minimum text length (in characters) for AI block menu actions
129
+ * (e.g. "Improve formatting", "Remix") to be visible.
130
+ */
131
+ export declare const AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD = 300;
127
132
  export declare const AI_ASK_ROVO_MENU_ITEM: {
128
133
  key: string;
129
134
  };
@@ -5,5 +5,5 @@
5
5
  import React from 'react';
6
6
  import { jsx } from '@emotion/react';
7
7
  import type { HoverLinkOverlayProps } from './types';
8
- declare const HoverLinkOverlay: ({ children, isVisible, url, compactPadding, editorAnalyticsApi, view, onClick, showPanelButton, showPanelButtonIcon, }: React.PropsWithChildren<HoverLinkOverlayProps>) => jsx.JSX.Element;
8
+ declare const HoverLinkOverlay: ({ children, isVisible, url, destinationUrl, compactPadding, editorAnalyticsApi, view, onClick, showPanelButton, showPanelButtonIcon, }: React.PropsWithChildren<HoverLinkOverlayProps>) => jsx.JSX.Element;
9
9
  export default HoverLinkOverlay;
@@ -2,6 +2,7 @@ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
2
2
  import type { EditorAnalyticsAPI } from '../../analytics';
3
3
  export type HoverLinkOverlayProps = React.HTMLAttributes<HTMLSpanElement> & {
4
4
  compactPadding?: boolean;
5
+ destinationUrl?: string;
5
6
  editorAnalyticsApi?: EditorAnalyticsAPI;
6
7
  isVisible?: boolean;
7
8
  onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
@@ -0,0 +1,6 @@
1
+ import type { ACTION, ACTION_SUBJECT } from './enums';
2
+ import type { OperationalAEP } from './utils';
3
+ export type ContainerNodeTransformedAEP = OperationalAEP<ACTION.CONTAINER_NODE_TRANSFORMED, ACTION_SUBJECT.EDITOR | ACTION_SUBJECT.RENDERER, undefined, {
4
+ transformedNodeTypes: string[];
5
+ }>;
6
+ export type ContainerNodeActionsEventPayload = ContainerNodeTransformedAEP;
@@ -170,6 +170,7 @@ export declare enum ACTION {
170
170
  */
171
171
  ON_CHANGE_CALLBACK = "onChangeCalled",
172
172
  NESTED_TABLE_TRANSFORMED = "nestedTableTransformed",
173
+ CONTAINER_NODE_TRANSFORMED = "containerNodeTransformed",
173
174
  NATIVE_EMBEDS_TRANSFORMED = "nativeEmbedsTransformed",
174
175
  NEW_COLLAB_SYNC_UP_ERROR_NO_STEPS = "newCollabSyncUpErrorNoSteps",
175
176
  REMOVE_ICON = "removedIcon",
@@ -20,6 +20,7 @@ import type { BlockMenuEventPayload, ElementTransformErrorAEP } from './block-me
20
20
  import type { BreakoutEventPayload } from './breakout-events';
21
21
  import type { TextColorEventPayload } from './color-events';
22
22
  import type { ConfigPanelEventPayload } from './config-panel-events';
23
+ import type { ContainerNodeActionsEventPayload } from './container-node-events';
23
24
  import type { ContextualTypeaheadEventPayload } from './contextual-typeahead-events';
24
25
  import type { CutCopyEventPayload } from './cut-copy-events';
25
26
  import type { DatasourceClickedPayload } from './datasource-clicked-events';
@@ -70,7 +71,7 @@ export type SimplifiedNode = {
70
71
  pos: number;
71
72
  type: string;
72
73
  };
73
- export type AnalyticsEventPayload<T = void> = AvatarEventPayload | GeneralEventPayload<T> | FormatEventPayload | SubstituteEventPayload | InsertEventPayload | NodeEventPayload | MoveContentEventPayload | MediaEventPayload | TableEventPayload | PasteEventPayload | PasteActionsMenuEventPayload | CutCopyEventPayload | ErrorEventPayload | TextColorEventPayload | FindReplaceEventPayload | DateEventPayload | SelectionEventPayload | ListEventPayload | ConfigPanelEventPayload | ElementBrowserEventPayload | CreateLinkInlineDialogEventPayload | HighlightActionsEventPayload | UnsupportedContentPayload | ExtensionEventPayload | TransactionEventPayload | TypeAheadPayload | UnlinkToolbarAEP | EditLinkToolbarAEP | PreviewItemClickedAEP | OpenLinkToolbarAEP | OpenSettingsToolbarAEP | CustomPanelEventPayload | FeatureExposureAEP | NewCollabSyncUpErrorAEP | UnsupportedContentTooltipPayload | ReferentialityEventPayload | LoomEventPayload | MBEEventPayload | HighlightEventPayload | DatasourceClickedPayload | ElementEventPayload | VisitedLinkAEP | ViewEventPayload | MediaUploadEventPayload | MentionEventPayload | EngagementPlatformEventPayload | NestedTableActionsEventPayload | AICommandPaletteEventPayload | AIDefinitionsEventPayload | AIEventPayload | AIStreamingEventPayload | AIProactiveEventPayload | AiAutocompleteEventPayload | AiSuggestionsEventPayload | ContextualTypeaheadEventPayload | AIQuickPromptEventPayload | AIUnifiedEventPayload | BreakoutEventPayload | BlockMenuEventPayload | ActiveSessionEventPayload | AIInlineSuggestionPayload | SelectionExtensionEventPayload | TelepointerClickPayload | SelectionToolbarEventPayload | ExperienceEventPayload | AlignmentEventPayload | UndoRedoAEP | OfflineEditingEventPayload | NcsSessionStepEventAEP | FloatingToolbarOverflowEventPayload | SyncBlockEventPayload | FloatingToolbarEventPayload;
74
+ export type AnalyticsEventPayload<T = void> = AvatarEventPayload | GeneralEventPayload<T> | FormatEventPayload | SubstituteEventPayload | InsertEventPayload | NodeEventPayload | MoveContentEventPayload | MediaEventPayload | TableEventPayload | PasteEventPayload | PasteActionsMenuEventPayload | CutCopyEventPayload | ErrorEventPayload | TextColorEventPayload | FindReplaceEventPayload | DateEventPayload | SelectionEventPayload | ListEventPayload | ConfigPanelEventPayload | ElementBrowserEventPayload | CreateLinkInlineDialogEventPayload | HighlightActionsEventPayload | UnsupportedContentPayload | ExtensionEventPayload | TransactionEventPayload | TypeAheadPayload | UnlinkToolbarAEP | EditLinkToolbarAEP | PreviewItemClickedAEP | OpenLinkToolbarAEP | OpenSettingsToolbarAEP | CustomPanelEventPayload | FeatureExposureAEP | NewCollabSyncUpErrorAEP | UnsupportedContentTooltipPayload | ReferentialityEventPayload | LoomEventPayload | MBEEventPayload | HighlightEventPayload | DatasourceClickedPayload | ElementEventPayload | VisitedLinkAEP | ViewEventPayload | MediaUploadEventPayload | MentionEventPayload | EngagementPlatformEventPayload | NestedTableActionsEventPayload | ContainerNodeActionsEventPayload | AICommandPaletteEventPayload | AIDefinitionsEventPayload | AIEventPayload | AIStreamingEventPayload | AIProactiveEventPayload | AiAutocompleteEventPayload | AiSuggestionsEventPayload | ContextualTypeaheadEventPayload | AIQuickPromptEventPayload | AIUnifiedEventPayload | BreakoutEventPayload | BlockMenuEventPayload | ActiveSessionEventPayload | AIInlineSuggestionPayload | SelectionExtensionEventPayload | TelepointerClickPayload | SelectionToolbarEventPayload | ExperienceEventPayload | AlignmentEventPayload | UndoRedoAEP | OfflineEditingEventPayload | NcsSessionStepEventAEP | FloatingToolbarOverflowEventPayload | SyncBlockEventPayload | FloatingToolbarEventPayload;
74
75
  type CustomPanelEventPayload = TrackAEP<ACTION.CHANGED_BACKGROUND_COLOR | ACTION.CHANGED_ICON | ACTION.REMOVE_ICON, ACTION_SUBJECT.PANEL, ACTION_SUBJECT_ID.PANEL, {
75
76
  newColor: string;
76
77
  previousColor: string;
@@ -47,6 +47,7 @@ type InsertCodeBlockAEP = InsertAEP<ACTION_SUBJECT_ID.CODE_BLOCK, {
47
47
  type InsertTableAEP = InsertAEP<ACTION_SUBJECT_ID.TABLE, {
48
48
  inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.ELEMENT_BROWSER | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.FORMATTING | INPUT_METHOD.PICKER | INPUT_METHOD.SHORTCUT;
49
49
  localId?: string;
50
+ parentNode?: string;
50
51
  totalColumnCount?: number;
51
52
  totalRowCount?: number;
52
53
  }, undefined>;
@@ -1,5 +1,5 @@
1
1
  export { messages } from './messages';
2
- export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM, } from './key';
2
+ export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM, AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD, } from './key';
3
3
  export { FORMAT_HEADING_1_MENU_ITEM, FORMAT_HEADING_2_MENU_ITEM, FORMAT_HEADING_3_MENU_ITEM, FORMAT_HEADING_4_MENU_ITEM, FORMAT_HEADING_5_MENU_ITEM, FORMAT_HEADING_6_MENU_ITEM, FORMAT_PARAGRAPH_MENU_ITEM, FORMAT_QUOTE_MENU_ITEM, FORMAT_EXPAND_MENU_ITEM, FORMAT_LAYOUT_MENU_ITEM, FORMAT_PANEL_MENU_ITEM, FORMAT_CODE_BLOCK_MENU_ITEM, FORMAT_BULLETED_LIST_MENU_ITEM, FORMAT_NUMBERED_LIST_MENU_ITEM, FORMAT_TASK_LIST_MENU_ITEM, COPY_MENU_SECTION, MOVE_UP_DOWN_MENU_SECTION, COPY_LINK_MENU_ITEM, MOVE_UP_MENU_ITEM, MOVE_DOWN_MENU_ITEM, NESTED_FORMAT_MENU_SECTION, FORMAT_MENU_ITEM, NESTED_FORMAT_MENU, PRIMARY_MENU_SECTION, ADD_BLOCKS_MENU_SECTION, CREATE_SYNCED_BLOCK_MENU_ITEM, } from './key-deprecated';
4
4
  export { MAIN_BLOCK_MENU_SECTION_RANK, TRANSFORM_MENU_SECTION_RANK, BLOCK_ACTIONS_FEATURED_EXTENSION_ITEM_RANK, TRANSFORM_MENU_ITEM_RANK, TRANSFORM_HEADINGS_MENU_SECTION_RANK, TRANSFORM_STRUCTURE_MENU_SECTION_RANK, TRANSFORM_CLEAR_MENU_SECTION_RANK, BLOCK_ACTIONS_MENU_SECTION_RANK, BLOCK_ACTIONS_COPY_MENU_SECTION_RANK, POSITION_MENU_SECTION_RANK, DELETE_MENU_SECTION_RANK, TRANSFORM_SUGGESTED_MENU_SECTION_RANK, TRANSFORM_CREATE_MENU_SECTION_RANK, AI_MENU_SECTION_RANK, } from './rank';
5
5
  export { FORMAT_NESTED_MENU_RANK, FORMAT_NESTED_MENU_RANK_REVISED, BLOCK_MENU_SECTION_RANK, PRIMARY_MENU_SECTION_RANK, COPY_MENU_SECTION_RANK, DELETE_SECTION_RANK, MOVE_BLOCK_SECTION_RANK, ADD_BLOCKS_MENU_SECTION_RANK, } from './rank-deprecated';
@@ -124,6 +124,11 @@ export declare const EXTENSION_MENU_ITEM_TEST_ID = "extension-menu-item";
124
124
  export declare const AI_MENU_SECTION: {
125
125
  key: string;
126
126
  };
127
+ /**
128
+ * Minimum text length (in characters) for AI block menu actions
129
+ * (e.g. "Improve formatting", "Remix") to be visible.
130
+ */
131
+ export declare const AI_BLOCK_MENU_LARGE_TEXT_THRESHOLD = 300;
127
132
  export declare const AI_ASK_ROVO_MENU_ITEM: {
128
133
  key: string;
129
134
  };
@@ -5,5 +5,5 @@
5
5
  import React from 'react';
6
6
  import { jsx } from '@emotion/react';
7
7
  import type { HoverLinkOverlayProps } from './types';
8
- declare const HoverLinkOverlay: ({ children, isVisible, url, compactPadding, editorAnalyticsApi, view, onClick, showPanelButton, showPanelButtonIcon, }: React.PropsWithChildren<HoverLinkOverlayProps>) => jsx.JSX.Element;
8
+ declare const HoverLinkOverlay: ({ children, isVisible, url, destinationUrl, compactPadding, editorAnalyticsApi, view, onClick, showPanelButton, showPanelButtonIcon, }: React.PropsWithChildren<HoverLinkOverlayProps>) => jsx.JSX.Element;
9
9
  export default HoverLinkOverlay;
@@ -2,6 +2,7 @@ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
2
2
  import type { EditorAnalyticsAPI } from '../../analytics';
3
3
  export type HoverLinkOverlayProps = React.HTMLAttributes<HTMLSpanElement> & {
4
4
  compactPadding?: boolean;
5
+ destinationUrl?: string;
5
6
  editorAnalyticsApi?: EditorAnalyticsAPI;
6
7
  isVisible?: boolean;
7
8
  onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "115.8.2",
3
+ "version": "115.10.0",
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/"
@@ -37,8 +37,8 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@atlaskit/activity-provider": "^2.6.0",
40
- "@atlaskit/adf-schema": "^52.16.0",
41
- "@atlaskit/adf-utils": "^19.32.0",
40
+ "@atlaskit/adf-schema": "^53.0.0",
41
+ "@atlaskit/adf-utils": "^19.33.0",
42
42
  "@atlaskit/afm-i18n-platform-editor-editor-common": "2.18.0",
43
43
  "@atlaskit/analytics-listeners": "^10.1.0",
44
44
  "@atlaskit/analytics-namespaced-context": "^7.3.0",
@@ -77,11 +77,11 @@
77
77
  "@atlaskit/platform-feature-flags": "^1.1.0",
78
78
  "@atlaskit/platform-feature-flags-react": "^0.5.0",
79
79
  "@atlaskit/primitives": "^19.0.0",
80
- "@atlaskit/profilecard": "^25.8.0",
80
+ "@atlaskit/profilecard": "^25.9.0",
81
81
  "@atlaskit/prosemirror-history": "^0.2.0",
82
82
  "@atlaskit/react-ufo": "^6.7.0",
83
83
  "@atlaskit/section-message": "^8.13.0",
84
- "@atlaskit/smart-card": "^44.25.0",
84
+ "@atlaskit/smart-card": "^44.26.0",
85
85
  "@atlaskit/smart-user-picker": "^10.2.0",
86
86
  "@atlaskit/spinner": "^19.1.0",
87
87
  "@atlaskit/task-decision": "^20.1.0",
@@ -273,6 +273,10 @@
273
273
  "people-teams_migrate-user-profile-card": {
274
274
  "type": "boolean"
275
275
  },
276
+ "platform_smartlink_xpc_url_wrapping": {
277
+ "type": "boolean",
278
+ "referenceOnly": true
279
+ },
276
280
  "platform_editor_ai_selection_local_ids": {
277
281
  "type": "boolean"
278
282
  },