@atlaskit/editor-plugin-card 27.1.0 → 27.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # @atlaskit/editor-plugin-card
2
2
 
3
+ ## 27.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`a034f535638cc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/a034f535638cc) -
8
+ Add structured Quick Insert previews with localised title, description and attribution under
9
+ platform_editor_slash_command.
10
+
11
+ Exclude footer and category navigation actions from previews. Left-align attribution, use subtle
12
+ title and attribution text, and default description text.
13
+
14
+ Show text previews even without preview metadata, and reserve a fixed image area while images load
15
+ or when they fail. Keep previews within the viewport, flipping left when needed, with compact
16
+ panel dimensions and typography.
17
+
18
+ Replace baked panel screenshots with image-only assets. Remove image fields from text-only legacy
19
+ previews while preserving their attribution.
20
+
21
+ Let extension providers own their preview images and attribution. Pass preview metadata through
22
+ the Company Hub manifest factory and remove Editor's fallback preview registry.
23
+
24
+ Localize provider attribution names and display Confluence and Jira product icons instead of the
25
+ attribution prefix when an icon is present. Allow the Dropbox manifest to receive the host's
26
+ message formatter.
27
+
28
+ - Updated dependencies
29
+
3
30
  ## 27.1.0
4
31
 
5
32
  ### Minor Changes
@@ -6,10 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.DatasourceQuickInsertMenuItem = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10
  var _react = _interopRequireWildcard(require("react"));
10
11
  var _reactIntl = require("react-intl");
11
12
  var _messages = require("@atlaskit/editor-common/messages");
13
+ var _confluenceAttributionIcon = require("@atlaskit/editor-common/quick-insert/confluence-attribution-icon");
14
+ var _jiraAttributionIcon = require("@atlaskit/editor-common/quick-insert/jira-attribution-icon");
12
15
  var _menuItem = require("@atlaskit/editor-common/quick-insert/menu-item");
16
+ var _messages2 = require("@atlaskit/editor-common/quick-insert/messages");
13
17
  var _useQuickInsertContext = require("@atlaskit/editor-common/quick-insert/use-quick-insert-context");
14
18
  var _assets = _interopRequireDefault(require("@atlaskit/icon/core/assets"));
15
19
  var _pages = _interopRequireDefault(require("@atlaskit/icon/core/pages"));
@@ -17,6 +21,8 @@ var _workItems = _interopRequireDefault(require("@atlaskit/icon/core/work-items"
17
21
  var _fg = require("@atlaskit/platform-feature-flags/fg");
18
22
  var _actions = require("../../pm-plugins/actions");
19
23
  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); }
24
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20
26
  var DatasourceQuickInsertMenuItem = exports.DatasourceQuickInsertMenuItem = function DatasourceQuickInsertMenuItem(_ref) {
21
27
  var previewImageUrls = _ref.previewImageUrls,
22
28
  type = _ref.type;
@@ -26,6 +32,17 @@ var DatasourceQuickInsertMenuItem = exports.DatasourceQuickInsertMenuItem = func
26
32
  isOffline = _useQuickInsertContex.isOffline;
27
33
  var isJira = type === 'jira';
28
34
  var isConfluenceSearch = type === 'confluence-search';
35
+ var description = formatMessage(isJira ? (0, _fg.fg)('confluence-issue-terminology-refresh') ? _messages.cardMessages.datasourceJiraIssueDescriptionIssueTermRefresh : _messages.cardMessages.datasourceJiraIssueDescription : isConfluenceSearch ? _messages.cardMessages.datasourceConfluenceSearchDescription : _messages.cardMessages.datasourceAssetsObjectsDescription);
36
+ var preview = (0, _react.useMemo)(function () {
37
+ return previewImageUrls ? {
38
+ image: previewImageUrls,
39
+ attribution: _objectSpread({
40
+ name: formatMessage(isJira ? _messages2.messages.previewAttributionJira : isConfluenceSearch ? _messages2.messages.previewAttributionConfluence : _messages2.messages.previewAttributionAssets)
41
+ }, (isJira || isConfluenceSearch) && {
42
+ icon: isJira ? _jiraAttributionIcon.JiraAttributionIcon : _confluenceAttributionIcon.ConfluenceAttributionIcon
43
+ })
44
+ } : undefined;
45
+ }, [formatMessage, isConfluenceSearch, isJira, previewImageUrls]);
29
46
  var onSelect = (0, _react.useCallback)(function (_ref2) {
30
47
  var insert = _ref2.insert;
31
48
  var tr = insert(undefined);
@@ -33,6 +50,7 @@ var DatasourceQuickInsertMenuItem = exports.DatasourceQuickInsertMenuItem = func
33
50
  return tr;
34
51
  }, [type]);
35
52
  return /*#__PURE__*/_react.default.createElement(_menuItem.QuickInsertMenuItem, {
53
+ description: description,
36
54
  iconBefore: isJira ? /*#__PURE__*/_react.default.createElement(_workItems.default, {
37
55
  label: ""
38
56
  }) : isConfluenceSearch ? /*#__PURE__*/_react.default.createElement(_pages.default, {
@@ -42,7 +60,7 @@ var DatasourceQuickInsertMenuItem = exports.DatasourceQuickInsertMenuItem = func
42
60
  }),
43
61
  isDisabled: isOffline,
44
62
  onSelect: onSelect,
45
- previewImageUrls: previewImageUrls,
63
+ preview: preview,
46
64
  title: formatMessage(isJira ? (0, _fg.fg)('confluence-issue-terminology-refresh') ? _messages.cardMessages.datasourceJiraIssueIssueTermRefresh : _messages.cardMessages.datasourceJiraIssue : isConfluenceSearch ? _messages.cardMessages.datasourceConfluenceSearch : _messages.cardMessages.datasourceAssetsObjectsGeneralAvailability)
47
65
  });
48
66
  };
@@ -18,14 +18,14 @@ var _fg = require("@atlaskit/platform-feature-flags/fg");
18
18
  var _utils2 = require("../../pm-plugins/utils");
19
19
  var _DatasourceQuickInsertMenuItem = require("./DatasourceQuickInsertMenuItem");
20
20
  var datasourcePreviewImageUrlsByKey = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _keys.JIRA_WORK_ITEMS_MENU_ITEM.key, {
21
- dark: 'https://dam-cdn.atl.orangelogic.com/AssetLink/m284qw5066530tr5yd11473uq1l8t86t.png',
22
- light: 'https://dam-cdn.atl.orangelogic.com/AssetLink/4b1455q46emetd0jxv70xuo7i7lwo574.png'
21
+ dark: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVIM.png',
22
+ light: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVLA.png'
23
23
  }), _keys.CONFLUENCE_LIST_MENU_ITEM.key, {
24
- dark: 'https://dam-cdn.atl.orangelogic.com/AssetLink/8jh31f0k143b475y5tun230v166c7087.png',
25
- light: 'https://dam-cdn.atl.orangelogic.com/AssetLink/6co68akkw56t83fql3m823qi21k8776u.png'
24
+ dark: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVIK.png',
25
+ light: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVMD.png'
26
26
  }), _keys.ASSETS_MENU_ITEM.key, {
27
- dark: 'https://dam-cdn.atl.orangelogic.com/AssetLink/64d41r462m2343iomn821ver0g4ohh37.png',
28
- light: 'https://dam-cdn.atl.orangelogic.com/AssetLink/0w58rc60jh54m68224qqinuk52d6lldt.png'
27
+ dark: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVJ2.png',
28
+ light: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVM6.png'
29
29
  });
30
30
  var getCardQuickInsertComponents = exports.getCardQuickInsertComponents = function getCardQuickInsertComponents(_ref) {
31
31
  var api = _ref.api,
@@ -1,7 +1,10 @@
1
- import React, { useCallback } from 'react';
1
+ import React, { useCallback, useMemo } from 'react';
2
2
  import { useIntl } from 'react-intl';
3
3
  import { cardMessages as messages } from '@atlaskit/editor-common/messages';
4
+ import { ConfluenceAttributionIcon } from '@atlaskit/editor-common/quick-insert/confluence-attribution-icon';
5
+ import { JiraAttributionIcon } from '@atlaskit/editor-common/quick-insert/jira-attribution-icon';
4
6
  import { QuickInsertMenuItem } from '@atlaskit/editor-common/quick-insert/menu-item';
7
+ import { messages as quickInsertMessages } from '@atlaskit/editor-common/quick-insert/messages';
5
8
  import { useQuickInsertContext } from '@atlaskit/editor-common/quick-insert/use-quick-insert-context';
6
9
  import AssetsIcon from '@atlaskit/icon/core/assets';
7
10
  import PagesIcon from '@atlaskit/icon/core/pages';
@@ -20,6 +23,16 @@ export const DatasourceQuickInsertMenuItem = ({
20
23
  } = useQuickInsertContext();
21
24
  const isJira = type === 'jira';
22
25
  const isConfluenceSearch = type === 'confluence-search';
26
+ const description = formatMessage(isJira ? fg('confluence-issue-terminology-refresh') ? messages.datasourceJiraIssueDescriptionIssueTermRefresh : messages.datasourceJiraIssueDescription : isConfluenceSearch ? messages.datasourceConfluenceSearchDescription : messages.datasourceAssetsObjectsDescription);
27
+ const preview = useMemo(() => previewImageUrls ? {
28
+ image: previewImageUrls,
29
+ attribution: {
30
+ name: formatMessage(isJira ? quickInsertMessages.previewAttributionJira : isConfluenceSearch ? quickInsertMessages.previewAttributionConfluence : quickInsertMessages.previewAttributionAssets),
31
+ ...((isJira || isConfluenceSearch) && {
32
+ icon: isJira ? JiraAttributionIcon : ConfluenceAttributionIcon
33
+ })
34
+ }
35
+ } : undefined, [formatMessage, isConfluenceSearch, isJira, previewImageUrls]);
23
36
  const onSelect = useCallback(({
24
37
  insert
25
38
  }) => {
@@ -28,6 +41,7 @@ export const DatasourceQuickInsertMenuItem = ({
28
41
  return tr;
29
42
  }, [type]);
30
43
  return /*#__PURE__*/React.createElement(QuickInsertMenuItem, {
44
+ description: description,
31
45
  iconBefore: isJira ? /*#__PURE__*/React.createElement(WorkItemsIcon, {
32
46
  label: ""
33
47
  }) : isConfluenceSearch ? /*#__PURE__*/React.createElement(PagesIcon, {
@@ -37,7 +51,7 @@ export const DatasourceQuickInsertMenuItem = ({
37
51
  }),
38
52
  isDisabled: isOffline,
39
53
  onSelect: onSelect,
40
- previewImageUrls: previewImageUrls,
54
+ preview: preview,
41
55
  title: formatMessage(isJira ? fg('confluence-issue-terminology-refresh') ? messages.datasourceJiraIssueIssueTermRefresh : messages.datasourceJiraIssue : isConfluenceSearch ? messages.datasourceConfluenceSearch : messages.datasourceAssetsObjectsGeneralAvailability)
42
56
  });
43
57
  };
@@ -11,16 +11,16 @@ import { isDatasourceConfigEditable } from '../../pm-plugins/utils';
11
11
  import { DatasourceQuickInsertMenuItem } from './DatasourceQuickInsertMenuItem';
12
12
  const datasourcePreviewImageUrlsByKey = {
13
13
  [JIRA_WORK_ITEMS_MENU_ITEM.key]: {
14
- dark: 'https://dam-cdn.atl.orangelogic.com/AssetLink/m284qw5066530tr5yd11473uq1l8t86t.png',
15
- light: 'https://dam-cdn.atl.orangelogic.com/AssetLink/4b1455q46emetd0jxv70xuo7i7lwo574.png'
14
+ dark: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVIM.png',
15
+ light: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVLA.png'
16
16
  },
17
17
  [CONFLUENCE_LIST_MENU_ITEM.key]: {
18
- dark: 'https://dam-cdn.atl.orangelogic.com/AssetLink/8jh31f0k143b475y5tun230v166c7087.png',
19
- light: 'https://dam-cdn.atl.orangelogic.com/AssetLink/6co68akkw56t83fql3m823qi21k8776u.png'
18
+ dark: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVIK.png',
19
+ light: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVMD.png'
20
20
  },
21
21
  [ASSETS_MENU_ITEM.key]: {
22
- dark: 'https://dam-cdn.atl.orangelogic.com/AssetLink/64d41r462m2343iomn821ver0g4ohh37.png',
23
- light: 'https://dam-cdn.atl.orangelogic.com/AssetLink/0w58rc60jh54m68224qqinuk52d6lldt.png'
22
+ dark: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVJ2.png',
23
+ light: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVM6.png'
24
24
  }
25
25
  };
26
26
  export const getCardQuickInsertComponents = ({
@@ -1,7 +1,13 @@
1
- import React, { useCallback } from 'react';
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import React, { useCallback, useMemo } from 'react';
2
5
  import { useIntl } from 'react-intl';
3
6
  import { cardMessages as messages } from '@atlaskit/editor-common/messages';
7
+ import { ConfluenceAttributionIcon } from '@atlaskit/editor-common/quick-insert/confluence-attribution-icon';
8
+ import { JiraAttributionIcon } from '@atlaskit/editor-common/quick-insert/jira-attribution-icon';
4
9
  import { QuickInsertMenuItem } from '@atlaskit/editor-common/quick-insert/menu-item';
10
+ import { messages as quickInsertMessages } from '@atlaskit/editor-common/quick-insert/messages';
5
11
  import { useQuickInsertContext } from '@atlaskit/editor-common/quick-insert/use-quick-insert-context';
6
12
  import AssetsIcon from '@atlaskit/icon/core/assets';
7
13
  import PagesIcon from '@atlaskit/icon/core/pages';
@@ -17,6 +23,17 @@ export var DatasourceQuickInsertMenuItem = function DatasourceQuickInsertMenuIte
17
23
  isOffline = _useQuickInsertContex.isOffline;
18
24
  var isJira = type === 'jira';
19
25
  var isConfluenceSearch = type === 'confluence-search';
26
+ var description = formatMessage(isJira ? fg('confluence-issue-terminology-refresh') ? messages.datasourceJiraIssueDescriptionIssueTermRefresh : messages.datasourceJiraIssueDescription : isConfluenceSearch ? messages.datasourceConfluenceSearchDescription : messages.datasourceAssetsObjectsDescription);
27
+ var preview = useMemo(function () {
28
+ return previewImageUrls ? {
29
+ image: previewImageUrls,
30
+ attribution: _objectSpread({
31
+ name: formatMessage(isJira ? quickInsertMessages.previewAttributionJira : isConfluenceSearch ? quickInsertMessages.previewAttributionConfluence : quickInsertMessages.previewAttributionAssets)
32
+ }, (isJira || isConfluenceSearch) && {
33
+ icon: isJira ? JiraAttributionIcon : ConfluenceAttributionIcon
34
+ })
35
+ } : undefined;
36
+ }, [formatMessage, isConfluenceSearch, isJira, previewImageUrls]);
20
37
  var onSelect = useCallback(function (_ref2) {
21
38
  var insert = _ref2.insert;
22
39
  var tr = insert(undefined);
@@ -24,6 +41,7 @@ export var DatasourceQuickInsertMenuItem = function DatasourceQuickInsertMenuIte
24
41
  return tr;
25
42
  }, [type]);
26
43
  return /*#__PURE__*/React.createElement(QuickInsertMenuItem, {
44
+ description: description,
27
45
  iconBefore: isJira ? /*#__PURE__*/React.createElement(WorkItemsIcon, {
28
46
  label: ""
29
47
  }) : isConfluenceSearch ? /*#__PURE__*/React.createElement(PagesIcon, {
@@ -33,7 +51,7 @@ export var DatasourceQuickInsertMenuItem = function DatasourceQuickInsertMenuIte
33
51
  }),
34
52
  isDisabled: isOffline,
35
53
  onSelect: onSelect,
36
- previewImageUrls: previewImageUrls,
54
+ preview: preview,
37
55
  title: formatMessage(isJira ? fg('confluence-issue-terminology-refresh') ? messages.datasourceJiraIssueIssueTermRefresh : messages.datasourceJiraIssue : isConfluenceSearch ? messages.datasourceConfluenceSearch : messages.datasourceAssetsObjectsGeneralAvailability)
38
56
  });
39
57
  };
@@ -11,14 +11,14 @@ import { fg } from '@atlaskit/platform-feature-flags/fg';
11
11
  import { isDatasourceConfigEditable } from '../../pm-plugins/utils';
12
12
  import { DatasourceQuickInsertMenuItem } from './DatasourceQuickInsertMenuItem';
13
13
  var datasourcePreviewImageUrlsByKey = _defineProperty(_defineProperty(_defineProperty({}, JIRA_WORK_ITEMS_MENU_ITEM.key, {
14
- dark: 'https://dam-cdn.atl.orangelogic.com/AssetLink/m284qw5066530tr5yd11473uq1l8t86t.png',
15
- light: 'https://dam-cdn.atl.orangelogic.com/AssetLink/4b1455q46emetd0jxv70xuo7i7lwo574.png'
14
+ dark: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVIM.png',
15
+ light: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVLA.png'
16
16
  }), CONFLUENCE_LIST_MENU_ITEM.key, {
17
- dark: 'https://dam-cdn.atl.orangelogic.com/AssetLink/8jh31f0k143b475y5tun230v166c7087.png',
18
- light: 'https://dam-cdn.atl.orangelogic.com/AssetLink/6co68akkw56t83fql3m823qi21k8776u.png'
17
+ dark: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVIK.png',
18
+ light: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVMD.png'
19
19
  }), ASSETS_MENU_ITEM.key, {
20
- dark: 'https://dam-cdn.atl.orangelogic.com/AssetLink/64d41r462m2343iomn821ver0g4ohh37.png',
21
- light: 'https://dam-cdn.atl.orangelogic.com/AssetLink/0w58rc60jh54m68224qqinuk52d6lldt.png'
20
+ dark: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVJ2.png',
21
+ light: 'https://dam-cdn.atl.orangelogic.com/CDNLink/AT12OVM6.png'
22
22
  });
23
23
  export var getCardQuickInsertComponents = function getCardQuickInsertComponents(_ref) {
24
24
  var api = _ref.api,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-card",
3
- "version": "27.1.0",
3
+ "version": "27.1.1",
4
4
  "description": "Card plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -45,7 +45,7 @@
45
45
  "@atlaskit/editor-prosemirror": "^9.0.0",
46
46
  "@atlaskit/editor-shared-styles": "^4.3.0",
47
47
  "@atlaskit/editor-smart-link-draggable": "^1.2.0",
48
- "@atlaskit/editor-toolbar": "^2.7.0",
48
+ "@atlaskit/editor-toolbar": "^2.8.0",
49
49
  "@atlaskit/editor-ui-control-model": "^2.10.0",
50
50
  "@atlaskit/frontend-utilities": "^5.0.0",
51
51
  "@atlaskit/icon": "^38.0.0",
@@ -64,7 +64,7 @@
64
64
  "@atlaskit/primitives": "^22.5.0",
65
65
  "@atlaskit/prosemirror-history": "^1.2.0",
66
66
  "@atlaskit/smart-card": "^46.1.0",
67
- "@atlaskit/tmp-editor-statsig": "^208.0.0",
67
+ "@atlaskit/tmp-editor-statsig": "^209.0.0",
68
68
  "@atlaskit/tokens": "^20.0.0",
69
69
  "@babel/runtime": "^7.0.0",
70
70
  "@emotion/react": "^11.7.1",
@@ -74,7 +74,7 @@
74
74
  "uuid": "^11.1.1"
75
75
  },
76
76
  "peerDependencies": {
77
- "@atlaskit/editor-common": "^125.2.0",
77
+ "@atlaskit/editor-common": "^125.4.0",
78
78
  "@atlaskit/link-provider": "^6.0.0",
79
79
  "react": "^18.2.0 || ^19.2.0",
80
80
  "react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"