@atlaskit/profilecard 25.2.1 → 25.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/afm-products/tsconfig.json +3 -0
  4. package/dist/cjs/client/getOrgIdForCloudIdFromAGG.js +1 -1
  5. package/dist/cjs/client/getTeamFromAGG.js +1 -1
  6. package/dist/cjs/components/Agent/AgentProfileCard.js +7 -2
  7. package/dist/cjs/components/Agent/AgentProfileCardResourced.js +2 -1
  8. package/dist/cjs/components/Agent/AgentProfileCardTrigger.js +5 -2
  9. package/dist/cjs/components/Agent/hooks/useAgentActions.js +5 -4
  10. package/dist/cjs/components/Agent/utils/index.js +13 -5
  11. package/dist/cjs/components/common/PopupTrigger.js +12 -3
  12. package/dist/cjs/util/analytics.js +2 -2
  13. package/dist/es2019/client/getOrgIdForCloudIdFromAGG.js +1 -1
  14. package/dist/es2019/client/getTeamFromAGG.js +1 -1
  15. package/dist/es2019/components/Agent/AgentProfileCard.js +6 -2
  16. package/dist/es2019/components/Agent/AgentProfileCardResourced.js +2 -1
  17. package/dist/es2019/components/Agent/AgentProfileCardTrigger.js +4 -2
  18. package/dist/es2019/components/Agent/hooks/useAgentActions.js +5 -4
  19. package/dist/es2019/components/Agent/utils/index.js +11 -3
  20. package/dist/es2019/components/common/PopupTrigger.js +9 -2
  21. package/dist/es2019/util/analytics.js +2 -2
  22. package/dist/esm/client/getOrgIdForCloudIdFromAGG.js +1 -1
  23. package/dist/esm/client/getTeamFromAGG.js +1 -1
  24. package/dist/esm/components/Agent/AgentProfileCard.js +7 -2
  25. package/dist/esm/components/Agent/AgentProfileCardResourced.js +2 -1
  26. package/dist/esm/components/Agent/AgentProfileCardTrigger.js +5 -2
  27. package/dist/esm/components/Agent/hooks/useAgentActions.js +5 -4
  28. package/dist/esm/components/Agent/utils/index.js +13 -5
  29. package/dist/esm/components/common/PopupTrigger.js +12 -3
  30. package/dist/esm/util/analytics.js +2 -2
  31. package/dist/types/components/Agent/AgentProfileCard.d.ts +1 -1
  32. package/dist/types/components/Agent/AgentProfileCardResourced.d.ts +3 -1
  33. package/dist/types/components/Agent/hooks/useAgentActions.d.ts +2 -1
  34. package/dist/types/components/Agent/lazyAgentProfileCard.d.ts +1 -1
  35. package/dist/types/components/Agent/utils/index.d.ts +3 -3
  36. package/dist/types/types.d.ts +6 -1
  37. package/dist/types-ts4.5/components/Agent/AgentProfileCard.d.ts +1 -1
  38. package/dist/types-ts4.5/components/Agent/AgentProfileCardResourced.d.ts +3 -1
  39. package/dist/types-ts4.5/components/Agent/hooks/useAgentActions.d.ts +2 -1
  40. package/dist/types-ts4.5/components/Agent/lazyAgentProfileCard.d.ts +1 -1
  41. package/dist/types-ts4.5/components/Agent/utils/index.d.ts +3 -3
  42. package/dist/types-ts4.5/types.d.ts +6 -1
  43. package/package.json +13 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @atlaskit/profilecard
2
2
 
3
+ ## 25.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`7fffcd1adae61`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7fffcd1adae61) -
8
+ [ux] This change gives the option to hide agent actions such as chat and extra options via a new
9
+ optional prop on agent profile cards.
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
15
+ ## 25.3.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [`13c923792e279`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/13c923792e279) -
20
+ [ux] added studio session sync url
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies
25
+
3
26
  ## 25.2.1
4
27
 
5
28
  ### Patch Changes
@@ -112,6 +112,9 @@
112
112
  },
113
113
  {
114
114
  "path": "../../../design-system/tooltip/afm-cc/tsconfig.json"
115
+ },
116
+ {
117
+ "path": "../../../studio-foundations/studio-entry-link/afm-cc/tsconfig.json"
115
118
  }
116
119
  ]
117
120
  }
@@ -112,6 +112,9 @@
112
112
  },
113
113
  {
114
114
  "path": "../../../design-system/tooltip/afm-products/tsconfig.json"
115
+ },
116
+ {
117
+ "path": "../../../studio-foundations/studio-entry-link/afm-products/tsconfig.json"
115
118
  }
116
119
  ]
117
120
  }
@@ -11,7 +11,7 @@ var _graphqlUtils = require("./graphqlUtils");
11
11
  var ORG_ID_FROM_CLOUD_ID_QUERY = "query OrgIdFromCloudId($cloudId: ID!) {\n\ttenantContexts(cloudIds: [$cloudId]) {\n\t\torgId\n\t}\n}";
12
12
  var addHeaders = function addHeaders(headers) {
13
13
  headers.append('atl-client-name', "@atlaskit/profilecard");
14
- headers.append('atl-client-version', "25.2.0");
14
+ headers.append('atl-client-version', "0.0.0-development");
15
15
  return headers;
16
16
  };
17
17
  function getOrgIdForCloudIdFromAGG(_x, _x2) {
@@ -66,7 +66,7 @@ var addHeaders = exports.addHeaders = function addHeaders(headers) {
66
66
  headers.append('X-ExperimentalApi', 'teams-beta');
67
67
  headers.append('X-ExperimentalApi', 'team-members-beta');
68
68
  headers.append('atl-client-name', "@atlaskit/profilecard");
69
- headers.append('atl-client-version', "25.2.0");
69
+ headers.append('atl-client-version', "0.0.0-development");
70
70
  return headers;
71
71
  };
72
72
  function getTeamFromAGG(_x, _x2, _x3) {
@@ -51,6 +51,7 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
51
51
  var agent = _ref.agent,
52
52
  isLoading = _ref.isLoading,
53
53
  cloudId = _ref.cloudId,
54
+ email = _ref.email,
54
55
  onChatClick = _ref.onChatClick,
55
56
  hasError = _ref.hasError,
56
57
  errorType = _ref.errorType,
@@ -62,9 +63,12 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
62
63
  _ref$hideAiDisclaimer = _ref.hideAiDisclaimer,
63
64
  hideAiDisclaimer = _ref$hideAiDisclaimer === void 0 ? false : _ref$hideAiDisclaimer,
64
65
  _ref$hideConversation = _ref.hideConversationStarters,
65
- hideConversationStarters = _ref$hideConversation === void 0 ? false : _ref$hideConversation;
66
+ hideConversationStarters = _ref$hideConversation === void 0 ? false : _ref$hideConversation,
67
+ _ref$hideAgentActions = _ref.hideAgentActions,
68
+ hideAgentActions = _ref$hideAgentActions === void 0 ? false : _ref$hideAgentActions;
66
69
  var _useAgentUrlActions = (0, _useAgentActions.useAgentUrlActions)({
67
70
  cloudId: cloudId || '',
71
+ email: email,
68
72
  source: 'agentProfileCard'
69
73
  }),
70
74
  _onEditAgent = _useAgentUrlActions.onEditAgent,
@@ -187,6 +191,7 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
187
191
  }
188
192
  var isRovoDev = agent.creator_type === 'ROVO_DEV';
189
193
  var shouldShowConversationStarters = !isRovoDev && !((0, _platformFeatureFlags.fg)('jira_ai_hide_conversation_starters_profilecard') && hideConversationStarters);
194
+ var shouldShowAgentActions = !isRovoDev && !(hideAgentActions && (0, _platformFeatureFlags.fg)('issue_view_agent_discovery_fast_follows'));
190
195
  return /*#__PURE__*/_react.default.createElement(_AgentProfileCardWrapper.AgentProfileCardWrapper, null, /*#__PURE__*/_react.default.createElement(_compiled.Box, {
191
196
  xcss: (0, _platformFeatureFlags.fg)('enable_teams_t26_design_drop_core_experiences') ? styles.cardContainerStyles : styles.cardContainerStylesDEPRECATED
192
197
  }, /*#__PURE__*/_react.default.createElement(_GeneratedAvatar.AgentBanner, {
@@ -266,7 +271,7 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
266
271
  prompt: conversationStarter.message
267
272
  });
268
273
  }
269
- }))), !isRovoDev && /*#__PURE__*/_react.default.createElement(_Actions.AgentActions, {
274
+ }))), shouldShowAgentActions && /*#__PURE__*/_react.default.createElement(_Actions.AgentActions, {
270
275
  agent: agent,
271
276
  onEditAgent: function onEditAgent() {
272
277
  return _onEditAgent(agent.id);
@@ -190,6 +190,7 @@ var AgentProfileCardResourced = exports.AgentProfileCardResourced = function Age
190
190
  onDeleteAgent: props.onDeleteAgent,
191
191
  hideMoreActions: props.hideMoreActions,
192
192
  hideAiDisclaimer: props.hideAiDisclaimer,
193
- hideConversationStarters: props.hideConversationStarters
193
+ hideConversationStarters: props.hideConversationStarters,
194
+ hideAgentActions: props.hideAgentActions
194
195
  }));
195
196
  };
@@ -26,7 +26,9 @@ var AgentProfileCardTrigger = exports.AgentProfileCardTrigger = /*#__PURE__*/(0,
26
26
  var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
27
27
  var resourceClient = props.resourceClient,
28
28
  userId = props.agentId,
29
- cloudId = props.cloudId;
29
+ cloudId = props.cloudId,
30
+ _props$agentIdType = props.agentIdType,
31
+ agentIdType = _props$agentIdType === void 0 ? 'agent' : _props$agentIdType;
30
32
  var _useAnalyticsEvents = (0, _teamsAppInternalAnalytics.useAnalyticsEvents)(),
31
33
  fireEvent = _useAnalyticsEvents.fireEvent;
32
34
 
@@ -134,7 +136,7 @@ var AgentProfileCardTrigger = exports.AgentProfileCardTrigger = /*#__PURE__*/(0,
134
136
  case 0:
135
137
  _context2.next = 2;
136
138
  return resourceClient.getRovoAgentProfile({
137
- type: 'agent',
139
+ type: agentIdType,
138
140
  value: userId
139
141
  }, fireEvent);
140
142
  case 2:
@@ -170,6 +172,7 @@ var AgentProfileCardTrigger = exports.AgentProfileCardTrigger = /*#__PURE__*/(0,
170
172
  agent: profileData,
171
173
  hasError: !!error,
172
174
  cloudId: props.cloudId,
175
+ email: props.email,
173
176
  errorType: error,
174
177
  onChatClick: props.onChatClick,
175
178
  onConversationStartersClick: props.onConversationStartersClick,
@@ -36,19 +36,20 @@ var createRovoParams = function createRovoParams(params) {
36
36
  };
37
37
  var useAgentUrlActions = exports.useAgentUrlActions = function useAgentUrlActions(_ref3) {
38
38
  var cloudId = _ref3.cloudId,
39
+ email = _ref3.email,
39
40
  source = _ref3.source;
40
41
  var _useRovoPostMessageTo = (0, _postMessageToPubsub.useRovoPostMessageToPubsub)(),
41
42
  publishWithPostMessage = _useRovoPostMessageTo.publishWithPostMessage;
42
43
  var _useAnalyticsEvents = (0, _teamsAppInternalAnalytics.useAnalyticsEvents)(),
43
44
  fireEvent = _useAnalyticsEvents.fireEvent;
44
45
  var onEditAgent = (0, _react.useCallback)(function (agentId) {
45
- var url = (0, _utils.getAtlassianStudioAgentEditUrl)(cloudId, agentId);
46
+ var url = (0, _utils.getAtlassianStudioAgentEditUrl)(cloudId, agentId, email);
46
47
  window.open(url, '_blank', 'noopener, noreferrer');
47
48
  fireEvent('ui.button.clicked.editAgentButton', {
48
49
  agentId: agentId,
49
50
  source: source
50
51
  });
51
- }, [cloudId, fireEvent, source]);
52
+ }, [cloudId, email, fireEvent, source]);
52
53
  var onCopyAgent = function onCopyAgent(agentId) {
53
54
  var url = "".concat(window.location.origin, "/people/agent/").concat(agentId);
54
55
  var urlWithParams = (0, _url.encodeParamsToUrl)(url, {
@@ -70,7 +71,7 @@ var useAgentUrlActions = exports.useAgentUrlActions = function useAgentUrlAction
70
71
  agentId: agentId,
71
72
  source: source
72
73
  });
73
- legacyDuplicateUrl = (0, _utils.getAtlassianStudioAgentDuplicateUrl)(cloudId, agentId); // When versioning FG is off, use legacy duplicate flow
74
+ legacyDuplicateUrl = (0, _utils.getAtlassianStudioAgentDuplicateUrl)(cloudId, agentId, email); // When versioning FG is off, use legacy duplicate flow
74
75
  if ((0, _platformFeatureFlags.fg)('rovo_agent_versioning_enabled')) {
75
76
  _context.next = 5;
76
77
  break;
@@ -124,7 +125,7 @@ var useAgentUrlActions = exports.useAgentUrlActions = function useAgentUrlAction
124
125
  return function (_x) {
125
126
  return _ref4.apply(this, arguments);
126
127
  };
127
- }(), [cloudId, fireEvent, source]);
128
+ }(), [cloudId, email, fireEvent, source]);
128
129
  var onConversationStarter = function onConversationStarter(_ref5) {
129
130
  var agentId = _ref5.agentId,
130
131
  prompt = _ref5.prompt;
@@ -4,21 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getStudioPath = exports.getStudioHost = exports.getAtlassianStudioAgentEditUrl = exports.getAtlassianStudioAgentDuplicateUrl = void 0;
7
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
8
+ var _studioEntryLink = require("@atlassian/studio-entry-link");
7
9
  var STUDIO_PROD_URL = 'https://studio.atlassian.com';
8
10
  var STUDIO_STAGING_URL = 'https://atlassian-studio.stg-east.frontend.public.atl-paas.net';
9
11
  var isStaging = function isStaging() {
10
12
  var host = window.location.host;
11
13
  return host.includes('localhost') || host.includes('.stg.atlassian') || host.includes('.stg-east.frontend.public.atl-paas.net') || host.includes('jira-dev.com');
12
14
  };
15
+ var getStudioEnv = function getStudioEnv() {
16
+ return isStaging() ? 'staging' : 'production';
17
+ };
13
18
  var getStudioHost = exports.getStudioHost = function getStudioHost() {
14
19
  return isStaging() ? STUDIO_STAGING_URL : STUDIO_PROD_URL;
15
20
  };
16
- var getStudioPath = exports.getStudioPath = function getStudioPath(path) {
21
+ var getStudioPath = exports.getStudioPath = function getStudioPath(path, email) {
22
+ if (email && (0, _platformFeatureFlags.fg)('asf-944-account-sync')) {
23
+ return (0, _studioEntryLink.getStudioSessionSyncUrl)(getStudioEnv(), path, email);
24
+ }
17
25
  return "".concat(getStudioHost()).concat(path);
18
26
  };
19
- var getAtlassianStudioAgentEditUrl = exports.getAtlassianStudioAgentEditUrl = function getAtlassianStudioAgentEditUrl(siteId, agentId) {
20
- return getStudioPath("/s/".concat(siteId, "/agents/enrich/rovo/agents/").concat(agentId, "?redirect=").concat(encodeURIComponent('/:agentId/overview')));
27
+ var getAtlassianStudioAgentEditUrl = exports.getAtlassianStudioAgentEditUrl = function getAtlassianStudioAgentEditUrl(siteId, agentId, email) {
28
+ return getStudioPath("/s/".concat(siteId, "/agents/enrich/rovo/agents/").concat(agentId, "?redirect=").concat(encodeURIComponent('/:agentId/overview')), email);
21
29
  };
22
- var getAtlassianStudioAgentDuplicateUrl = exports.getAtlassianStudioAgentDuplicateUrl = function getAtlassianStudioAgentDuplicateUrl(siteId, agentId) {
23
- return getStudioPath("/s/".concat(siteId, "/agents/enrich/rovo/agents/").concat(agentId, "?redirect=").concat(encodeURIComponent('/create')));
30
+ var getAtlassianStudioAgentDuplicateUrl = exports.getAtlassianStudioAgentDuplicateUrl = function getAtlassianStudioAgentDuplicateUrl(siteId, agentId, email) {
31
+ return getStudioPath("/s/".concat(siteId, "/agents/enrich/rovo/agents/").concat(agentId, "?redirect=").concat(encodeURIComponent('/create')), email);
24
32
  };
@@ -7,10 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.PopupTrigger = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
12
  var _react = _interopRequireWildcard(require("react"));
13
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
14
  var _excluded = ["children", "trigger", "showProfilecard", "hideProfilecard", "ariaLabelledBy"];
13
15
  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); }
16
+ 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; }
17
+ 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; }
14
18
  var PopupTriggerInner = function PopupTriggerInner(_ref, ref) {
15
19
  var children = _ref.children,
16
20
  trigger = _ref.trigger,
@@ -18,6 +22,7 @@ var PopupTriggerInner = function PopupTriggerInner(_ref, ref) {
18
22
  hideProfilecard = _ref.hideProfilecard,
19
23
  ariaLabelledBy = _ref.ariaLabelledBy,
20
24
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
25
+ // rename to onMouseOver when cleaning up update_profile_card_to_open_on_mouse_over
21
26
  var onMouseEnter = (0, _react.useCallback)(function () {
22
27
  showProfilecard();
23
28
  }, [showProfilecard]);
@@ -33,12 +38,16 @@ var PopupTriggerInner = function PopupTriggerInner(_ref, ref) {
33
38
  showProfilecard();
34
39
  }, [showProfilecard]);
35
40
  var containerListeners = (0, _react.useMemo)(function () {
36
- return trigger === 'hover' ? {
41
+ return trigger === 'hover' ? _objectSpread(_objectSpread({}, (0, _platformFeatureFlags.fg)('update_profile_card_to_open_on_mouse_over') ? {
42
+ onMouseOver: onMouseEnter,
43
+ onMouseOut: hideProfilecard
44
+ } : {
37
45
  onMouseEnter: onMouseEnter,
38
- onMouseLeave: hideProfilecard,
46
+ onMouseLeave: hideProfilecard
47
+ }), {}, {
39
48
  onBlur: hideProfilecard,
40
49
  onKeyPress: onKeyPress
41
- } : {
50
+ }) : {
42
51
  onClick: onClick,
43
52
  onKeyPress: onKeyPress
44
53
  };
@@ -12,7 +12,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
12
12
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (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; }
13
13
  var PACKAGE_META_DATA = exports.PACKAGE_META_DATA = {
14
14
  packageName: (_process$env$_PACKAGE = "@atlaskit/profilecard") !== null && _process$env$_PACKAGE !== void 0 ? _process$env$_PACKAGE : '',
15
- packageVersion: (_process$env$_PACKAGE2 = "25.2.0") !== null && _process$env$_PACKAGE2 !== void 0 ? _process$env$_PACKAGE2 : ''
15
+ packageVersion: (_process$env$_PACKAGE2 = "0.0.0-development") !== null && _process$env$_PACKAGE2 !== void 0 ? _process$env$_PACKAGE2 : ''
16
16
  };
17
17
  var TEAM_SUBJECT = 'teamProfileCard';
18
18
  var USER_SUBJECT = 'profilecard';
@@ -31,7 +31,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
31
31
  actionSubjectId: actionSubjectId,
32
32
  attributes: _objectSpread(_objectSpread({
33
33
  packageName: "@atlaskit/profilecard",
34
- packageVersion: "25.2.0"
34
+ packageVersion: "0.0.0-development"
35
35
  }, attributes), {}, {
36
36
  firedAt: Math.round((0, _performance.getPageTime)())
37
37
  })
@@ -6,7 +6,7 @@ const ORG_ID_FROM_CLOUD_ID_QUERY = `query OrgIdFromCloudId($cloudId: ID!) {
6
6
  }`;
7
7
  const addHeaders = headers => {
8
8
  headers.append('atl-client-name', "@atlaskit/profilecard");
9
- headers.append('atl-client-version', "25.2.0");
9
+ headers.append('atl-client-version', "0.0.0-development");
10
10
  return headers;
11
11
  };
12
12
  export async function getOrgIdForCloudIdFromAGG(url, cloudId) {
@@ -78,7 +78,7 @@ export const addHeaders = headers => {
78
78
  headers.append('X-ExperimentalApi', 'teams-beta');
79
79
  headers.append('X-ExperimentalApi', 'team-members-beta');
80
80
  headers.append('atl-client-name', "@atlaskit/profilecard");
81
- headers.append('atl-client-version', "25.2.0");
81
+ headers.append('atl-client-version', "0.0.0-development");
82
82
  return headers;
83
83
  };
84
84
  export async function getTeamFromAGG(url, teamId, siteId) {
@@ -35,6 +35,7 @@ const AgentProfileCard = ({
35
35
  agent,
36
36
  isLoading,
37
37
  cloudId,
38
+ email,
38
39
  onChatClick,
39
40
  hasError,
40
41
  errorType,
@@ -44,7 +45,8 @@ const AgentProfileCard = ({
44
45
  onDeleteAgent,
45
46
  hideMoreActions,
46
47
  hideAiDisclaimer = false,
47
- hideConversationStarters = false
48
+ hideConversationStarters = false,
49
+ hideAgentActions = false
48
50
  }) => {
49
51
  var _agent$user_defined_c, _agent$external_confi, _agent$external_confi2, _agent$creatorInfo, _agent$creatorInfo2, _agent$creatorInfo3, _agent$creatorInfo4;
50
52
  const {
@@ -56,6 +58,7 @@ const AgentProfileCard = ({
56
58
  onViewFullProfile
57
59
  } = useAgentUrlActions({
58
60
  cloudId: cloudId || '',
61
+ email,
59
62
  source: 'agentProfileCard'
60
63
  });
61
64
  const [isStarred, setIsStarred] = useState(false);
@@ -139,6 +142,7 @@ const AgentProfileCard = ({
139
142
  }
140
143
  const isRovoDev = agent.creator_type === 'ROVO_DEV';
141
144
  const shouldShowConversationStarters = !isRovoDev && !(fg('jira_ai_hide_conversation_starters_profilecard') && hideConversationStarters);
145
+ const shouldShowAgentActions = !isRovoDev && !(hideAgentActions && fg('issue_view_agent_discovery_fast_follows'));
142
146
  return /*#__PURE__*/React.createElement(AgentProfileCardWrapper, null, /*#__PURE__*/React.createElement(Box, {
143
147
  xcss: fg('enable_teams_t26_design_drop_core_experiences') ? styles.cardContainerStyles : styles.cardContainerStylesDEPRECATED
144
148
  }, /*#__PURE__*/React.createElement(AgentBanner, {
@@ -218,7 +222,7 @@ const AgentProfileCard = ({
218
222
  prompt: conversationStarter.message
219
223
  });
220
224
  }
221
- }))), !isRovoDev && /*#__PURE__*/React.createElement(AgentActions, {
225
+ }))), shouldShowAgentActions && /*#__PURE__*/React.createElement(AgentActions, {
222
226
  agent: agent,
223
227
  onEditAgent: () => onEditAgent(agent.id),
224
228
  onCopyAgent: () => onCopyAgent(agent.id),
@@ -131,6 +131,7 @@ export const AgentProfileCardResourced = props => {
131
131
  onDeleteAgent: props.onDeleteAgent,
132
132
  hideMoreActions: props.hideMoreActions,
133
133
  hideAiDisclaimer: props.hideAiDisclaimer,
134
- hideConversationStarters: props.hideConversationStarters
134
+ hideConversationStarters: props.hideConversationStarters,
135
+ hideAgentActions: props.hideAgentActions
135
136
  }));
136
137
  };
@@ -13,7 +13,8 @@ export const AgentProfileCardTrigger = /*#__PURE__*/forwardRef(({
13
13
  const {
14
14
  resourceClient,
15
15
  agentId: userId,
16
- cloudId
16
+ cloudId,
17
+ agentIdType = 'agent'
17
18
  } = props;
18
19
  const {
19
20
  fireEvent
@@ -92,7 +93,7 @@ export const AgentProfileCardTrigger = /*#__PURE__*/forwardRef(({
92
93
  const fetchAgentProfile = async () => {
93
94
  var _agentProfileResult$a, _agentProfileResult$a2;
94
95
  const agentProfileResult = await resourceClient.getRovoAgentProfile({
95
- type: 'agent',
96
+ type: agentIdType,
96
97
  value: userId
97
98
  }, fireEvent);
98
99
  const agentInfo = agentProfileResult.restData;
@@ -116,6 +117,7 @@ export const AgentProfileCardTrigger = /*#__PURE__*/forwardRef(({
116
117
  agent: profileData,
117
118
  hasError: !!error,
118
119
  cloudId: props.cloudId,
120
+ email: props.email,
119
121
  errorType: error,
120
122
  onChatClick: props.onChatClick,
121
123
  onConversationStartersClick: props.onConversationStartersClick,
@@ -18,6 +18,7 @@ const createRovoParams = params => {
18
18
  };
19
19
  export const useAgentUrlActions = ({
20
20
  cloudId,
21
+ email,
21
22
  source
22
23
  }) => {
23
24
  const {
@@ -27,13 +28,13 @@ export const useAgentUrlActions = ({
27
28
  fireEvent
28
29
  } = useAnalyticsEvents();
29
30
  const onEditAgent = useCallback(agentId => {
30
- const url = getAtlassianStudioAgentEditUrl(cloudId, agentId);
31
+ const url = getAtlassianStudioAgentEditUrl(cloudId, agentId, email);
31
32
  window.open(url, '_blank', 'noopener, noreferrer');
32
33
  fireEvent('ui.button.clicked.editAgentButton', {
33
34
  agentId,
34
35
  source
35
36
  });
36
- }, [cloudId, fireEvent, source]);
37
+ }, [cloudId, email, fireEvent, source]);
37
38
  const onCopyAgent = agentId => {
38
39
  const url = `${window.location.origin}/people/agent/${agentId}`;
39
40
  const urlWithParams = encodeParamsToUrl(url, {
@@ -50,7 +51,7 @@ export const useAgentUrlActions = ({
50
51
  agentId,
51
52
  source
52
53
  });
53
- const legacyDuplicateUrl = getAtlassianStudioAgentDuplicateUrl(cloudId, agentId);
54
+ const legacyDuplicateUrl = getAtlassianStudioAgentDuplicateUrl(cloudId, agentId, email);
54
55
 
55
56
  // When versioning FG is off, use legacy duplicate flow
56
57
  if (!fg('rovo_agent_versioning_enabled')) {
@@ -86,7 +87,7 @@ export const useAgentUrlActions = ({
86
87
  // Opening in same tab because, we cannot open in new tab after async operation, because browsers prevent `.open` after certain duration
87
88
  window.location.assign(legacyDuplicateUrl);
88
89
  }
89
- }, [cloudId, fireEvent, source]);
90
+ }, [cloudId, email, fireEvent, source]);
90
91
  const onConversationStarter = ({
91
92
  agentId,
92
93
  prompt
@@ -1,12 +1,20 @@
1
+ import { fg } from '@atlaskit/platform-feature-flags';
2
+ import { getStudioSessionSyncUrl } from '@atlassian/studio-entry-link';
1
3
  const STUDIO_PROD_URL = 'https://studio.atlassian.com';
2
4
  const STUDIO_STAGING_URL = 'https://atlassian-studio.stg-east.frontend.public.atl-paas.net';
3
5
  const isStaging = () => {
4
6
  const host = window.location.host;
5
7
  return host.includes('localhost') || host.includes('.stg.atlassian') || host.includes('.stg-east.frontend.public.atl-paas.net') || host.includes('jira-dev.com');
6
8
  };
9
+ const getStudioEnv = () => isStaging() ? 'staging' : 'production';
7
10
  export const getStudioHost = () => {
8
11
  return isStaging() ? STUDIO_STAGING_URL : STUDIO_PROD_URL;
9
12
  };
10
- export const getStudioPath = path => `${getStudioHost()}${path}`;
11
- export const getAtlassianStudioAgentEditUrl = (siteId, agentId) => getStudioPath(`/s/${siteId}/agents/enrich/rovo/agents/${agentId}?redirect=${encodeURIComponent('/:agentId/overview')}`);
12
- export const getAtlassianStudioAgentDuplicateUrl = (siteId, agentId) => getStudioPath(`/s/${siteId}/agents/enrich/rovo/agents/${agentId}?redirect=${encodeURIComponent('/create')}`);
13
+ export const getStudioPath = (path, email) => {
14
+ if (email && fg('asf-944-account-sync')) {
15
+ return getStudioSessionSyncUrl(getStudioEnv(), path, email);
16
+ }
17
+ return `${getStudioHost()}${path}`;
18
+ };
19
+ export const getAtlassianStudioAgentEditUrl = (siteId, agentId, email) => getStudioPath(`/s/${siteId}/agents/enrich/rovo/agents/${agentId}?redirect=${encodeURIComponent('/:agentId/overview')}`, email);
20
+ export const getAtlassianStudioAgentDuplicateUrl = (siteId, agentId, email) => getStudioPath(`/s/${siteId}/agents/enrich/rovo/agents/${agentId}?redirect=${encodeURIComponent('/create')}`, email);
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useCallback, useMemo } from 'react';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
3
4
  const PopupTriggerInner = ({
4
5
  children,
5
6
  trigger,
@@ -8,6 +9,7 @@ const PopupTriggerInner = ({
8
9
  ariaLabelledBy,
9
10
  ...props
10
11
  }, ref) => {
12
+ // rename to onMouseOver when cleaning up update_profile_card_to_open_on_mouse_over
11
13
  const onMouseEnter = useCallback(() => {
12
14
  showProfilecard();
13
15
  }, [showProfilecard]);
@@ -23,8 +25,13 @@ const PopupTriggerInner = ({
23
25
  showProfilecard();
24
26
  }, [showProfilecard]);
25
27
  const containerListeners = useMemo(() => trigger === 'hover' ? {
26
- onMouseEnter,
27
- onMouseLeave: hideProfilecard,
28
+ ...(fg('update_profile_card_to_open_on_mouse_over') ? {
29
+ onMouseOver: onMouseEnter,
30
+ onMouseOut: hideProfilecard
31
+ } : {
32
+ onMouseEnter,
33
+ onMouseLeave: hideProfilecard
34
+ }),
28
35
  onBlur: hideProfilecard,
29
36
  onKeyPress
30
37
  } : {
@@ -2,7 +2,7 @@ var _process$env$_PACKAGE, _process$env$_PACKAGE2;
2
2
  import { getPageTime } from './performance';
3
3
  export const PACKAGE_META_DATA = {
4
4
  packageName: (_process$env$_PACKAGE = "@atlaskit/profilecard") !== null && _process$env$_PACKAGE !== void 0 ? _process$env$_PACKAGE : '',
5
- packageVersion: (_process$env$_PACKAGE2 = "25.2.0") !== null && _process$env$_PACKAGE2 !== void 0 ? _process$env$_PACKAGE2 : ''
5
+ packageVersion: (_process$env$_PACKAGE2 = "0.0.0-development") !== null && _process$env$_PACKAGE2 !== void 0 ? _process$env$_PACKAGE2 : ''
6
6
  };
7
7
  const TEAM_SUBJECT = 'teamProfileCard';
8
8
  const USER_SUBJECT = 'profilecard';
@@ -19,7 +19,7 @@ const createEvent = (eventType, action, actionSubject, actionSubjectId, attribut
19
19
  actionSubjectId,
20
20
  attributes: {
21
21
  packageName: "@atlaskit/profilecard",
22
- packageVersion: "25.2.0",
22
+ packageVersion: "0.0.0-development",
23
23
  ...attributes,
24
24
  firedAt: Math.round(getPageTime())
25
25
  }
@@ -4,7 +4,7 @@ import { AGGQuery } from './graphqlUtils';
4
4
  var ORG_ID_FROM_CLOUD_ID_QUERY = "query OrgIdFromCloudId($cloudId: ID!) {\n\ttenantContexts(cloudIds: [$cloudId]) {\n\t\torgId\n\t}\n}";
5
5
  var addHeaders = function addHeaders(headers) {
6
6
  headers.append('atl-client-name', "@atlaskit/profilecard");
7
- headers.append('atl-client-version', "25.2.0");
7
+ headers.append('atl-client-version', "0.0.0-development");
8
8
  return headers;
9
9
  };
10
10
  export function getOrgIdForCloudIdFromAGG(_x, _x2) {
@@ -59,7 +59,7 @@ export var addHeaders = function addHeaders(headers) {
59
59
  headers.append('X-ExperimentalApi', 'teams-beta');
60
60
  headers.append('X-ExperimentalApi', 'team-members-beta');
61
61
  headers.append('atl-client-name', "@atlaskit/profilecard");
62
- headers.append('atl-client-version', "25.2.0");
62
+ headers.append('atl-client-version', "0.0.0-development");
63
63
  return headers;
64
64
  };
65
65
  export function getTeamFromAGG(_x, _x2, _x3) {
@@ -42,6 +42,7 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
42
42
  var agent = _ref.agent,
43
43
  isLoading = _ref.isLoading,
44
44
  cloudId = _ref.cloudId,
45
+ email = _ref.email,
45
46
  onChatClick = _ref.onChatClick,
46
47
  hasError = _ref.hasError,
47
48
  errorType = _ref.errorType,
@@ -53,9 +54,12 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
53
54
  _ref$hideAiDisclaimer = _ref.hideAiDisclaimer,
54
55
  hideAiDisclaimer = _ref$hideAiDisclaimer === void 0 ? false : _ref$hideAiDisclaimer,
55
56
  _ref$hideConversation = _ref.hideConversationStarters,
56
- hideConversationStarters = _ref$hideConversation === void 0 ? false : _ref$hideConversation;
57
+ hideConversationStarters = _ref$hideConversation === void 0 ? false : _ref$hideConversation,
58
+ _ref$hideAgentActions = _ref.hideAgentActions,
59
+ hideAgentActions = _ref$hideAgentActions === void 0 ? false : _ref$hideAgentActions;
57
60
  var _useAgentUrlActions = useAgentUrlActions({
58
61
  cloudId: cloudId || '',
62
+ email: email,
59
63
  source: 'agentProfileCard'
60
64
  }),
61
65
  _onEditAgent = _useAgentUrlActions.onEditAgent,
@@ -178,6 +182,7 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
178
182
  }
179
183
  var isRovoDev = agent.creator_type === 'ROVO_DEV';
180
184
  var shouldShowConversationStarters = !isRovoDev && !(fg('jira_ai_hide_conversation_starters_profilecard') && hideConversationStarters);
185
+ var shouldShowAgentActions = !isRovoDev && !(hideAgentActions && fg('issue_view_agent_discovery_fast_follows'));
181
186
  return /*#__PURE__*/React.createElement(AgentProfileCardWrapper, null, /*#__PURE__*/React.createElement(Box, {
182
187
  xcss: fg('enable_teams_t26_design_drop_core_experiences') ? styles.cardContainerStyles : styles.cardContainerStylesDEPRECATED
183
188
  }, /*#__PURE__*/React.createElement(AgentBanner, {
@@ -257,7 +262,7 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
257
262
  prompt: conversationStarter.message
258
263
  });
259
264
  }
260
- }))), !isRovoDev && /*#__PURE__*/React.createElement(AgentActions, {
265
+ }))), shouldShowAgentActions && /*#__PURE__*/React.createElement(AgentActions, {
261
266
  agent: agent,
262
267
  onEditAgent: function onEditAgent() {
263
268
  return _onEditAgent(agent.id);
@@ -181,6 +181,7 @@ export var AgentProfileCardResourced = function AgentProfileCardResourced(props)
181
181
  onDeleteAgent: props.onDeleteAgent,
182
182
  hideMoreActions: props.hideMoreActions,
183
183
  hideAiDisclaimer: props.hideAiDisclaimer,
184
- hideConversationStarters: props.hideConversationStarters
184
+ hideConversationStarters: props.hideConversationStarters,
185
+ hideAgentActions: props.hideAgentActions
185
186
  }));
186
187
  };
@@ -17,7 +17,9 @@ export var AgentProfileCardTrigger = /*#__PURE__*/forwardRef(function (_ref, ref
17
17
  var props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
18
18
  var resourceClient = props.resourceClient,
19
19
  userId = props.agentId,
20
- cloudId = props.cloudId;
20
+ cloudId = props.cloudId,
21
+ _props$agentIdType = props.agentIdType,
22
+ agentIdType = _props$agentIdType === void 0 ? 'agent' : _props$agentIdType;
21
23
  var _useAnalyticsEvents = useAnalyticsEvents(),
22
24
  fireEvent = _useAnalyticsEvents.fireEvent;
23
25
 
@@ -125,7 +127,7 @@ export var AgentProfileCardTrigger = /*#__PURE__*/forwardRef(function (_ref, ref
125
127
  case 0:
126
128
  _context2.next = 2;
127
129
  return resourceClient.getRovoAgentProfile({
128
- type: 'agent',
130
+ type: agentIdType,
129
131
  value: userId
130
132
  }, fireEvent);
131
133
  case 2:
@@ -161,6 +163,7 @@ export var AgentProfileCardTrigger = /*#__PURE__*/forwardRef(function (_ref, ref
161
163
  agent: profileData,
162
164
  hasError: !!error,
163
165
  cloudId: props.cloudId,
166
+ email: props.email,
164
167
  errorType: error,
165
168
  onChatClick: props.onChatClick,
166
169
  onConversationStartersClick: props.onConversationStartersClick,
@@ -29,19 +29,20 @@ var createRovoParams = function createRovoParams(params) {
29
29
  };
30
30
  export var useAgentUrlActions = function useAgentUrlActions(_ref3) {
31
31
  var cloudId = _ref3.cloudId,
32
+ email = _ref3.email,
32
33
  source = _ref3.source;
33
34
  var _useRovoPostMessageTo = useRovoPostMessageToPubsub(),
34
35
  publishWithPostMessage = _useRovoPostMessageTo.publishWithPostMessage;
35
36
  var _useAnalyticsEvents = useAnalyticsEvents(),
36
37
  fireEvent = _useAnalyticsEvents.fireEvent;
37
38
  var onEditAgent = useCallback(function (agentId) {
38
- var url = getAtlassianStudioAgentEditUrl(cloudId, agentId);
39
+ var url = getAtlassianStudioAgentEditUrl(cloudId, agentId, email);
39
40
  window.open(url, '_blank', 'noopener, noreferrer');
40
41
  fireEvent('ui.button.clicked.editAgentButton', {
41
42
  agentId: agentId,
42
43
  source: source
43
44
  });
44
- }, [cloudId, fireEvent, source]);
45
+ }, [cloudId, email, fireEvent, source]);
45
46
  var onCopyAgent = function onCopyAgent(agentId) {
46
47
  var url = "".concat(window.location.origin, "/people/agent/").concat(agentId);
47
48
  var urlWithParams = encodeParamsToUrl(url, {
@@ -63,7 +64,7 @@ export var useAgentUrlActions = function useAgentUrlActions(_ref3) {
63
64
  agentId: agentId,
64
65
  source: source
65
66
  });
66
- legacyDuplicateUrl = getAtlassianStudioAgentDuplicateUrl(cloudId, agentId); // When versioning FG is off, use legacy duplicate flow
67
+ legacyDuplicateUrl = getAtlassianStudioAgentDuplicateUrl(cloudId, agentId, email); // When versioning FG is off, use legacy duplicate flow
67
68
  if (fg('rovo_agent_versioning_enabled')) {
68
69
  _context.next = 5;
69
70
  break;
@@ -117,7 +118,7 @@ export var useAgentUrlActions = function useAgentUrlActions(_ref3) {
117
118
  return function (_x) {
118
119
  return _ref4.apply(this, arguments);
119
120
  };
120
- }(), [cloudId, fireEvent, source]);
121
+ }(), [cloudId, email, fireEvent, source]);
121
122
  var onConversationStarter = function onConversationStarter(_ref5) {
122
123
  var agentId = _ref5.agentId,
123
124
  prompt = _ref5.prompt;
@@ -1,18 +1,26 @@
1
+ import { fg } from '@atlaskit/platform-feature-flags';
2
+ import { getStudioSessionSyncUrl } from '@atlassian/studio-entry-link';
1
3
  var STUDIO_PROD_URL = 'https://studio.atlassian.com';
2
4
  var STUDIO_STAGING_URL = 'https://atlassian-studio.stg-east.frontend.public.atl-paas.net';
3
5
  var isStaging = function isStaging() {
4
6
  var host = window.location.host;
5
7
  return host.includes('localhost') || host.includes('.stg.atlassian') || host.includes('.stg-east.frontend.public.atl-paas.net') || host.includes('jira-dev.com');
6
8
  };
9
+ var getStudioEnv = function getStudioEnv() {
10
+ return isStaging() ? 'staging' : 'production';
11
+ };
7
12
  export var getStudioHost = function getStudioHost() {
8
13
  return isStaging() ? STUDIO_STAGING_URL : STUDIO_PROD_URL;
9
14
  };
10
- export var getStudioPath = function getStudioPath(path) {
15
+ export var getStudioPath = function getStudioPath(path, email) {
16
+ if (email && fg('asf-944-account-sync')) {
17
+ return getStudioSessionSyncUrl(getStudioEnv(), path, email);
18
+ }
11
19
  return "".concat(getStudioHost()).concat(path);
12
20
  };
13
- export var getAtlassianStudioAgentEditUrl = function getAtlassianStudioAgentEditUrl(siteId, agentId) {
14
- return getStudioPath("/s/".concat(siteId, "/agents/enrich/rovo/agents/").concat(agentId, "?redirect=").concat(encodeURIComponent('/:agentId/overview')));
21
+ export var getAtlassianStudioAgentEditUrl = function getAtlassianStudioAgentEditUrl(siteId, agentId, email) {
22
+ return getStudioPath("/s/".concat(siteId, "/agents/enrich/rovo/agents/").concat(agentId, "?redirect=").concat(encodeURIComponent('/:agentId/overview')), email);
15
23
  };
16
- export var getAtlassianStudioAgentDuplicateUrl = function getAtlassianStudioAgentDuplicateUrl(siteId, agentId) {
17
- return getStudioPath("/s/".concat(siteId, "/agents/enrich/rovo/agents/").concat(agentId, "?redirect=").concat(encodeURIComponent('/create')));
24
+ export var getAtlassianStudioAgentDuplicateUrl = function getAtlassianStudioAgentDuplicateUrl(siteId, agentId, email) {
25
+ return getStudioPath("/s/".concat(siteId, "/agents/enrich/rovo/agents/").concat(agentId, "?redirect=").concat(encodeURIComponent('/create')), email);
18
26
  };
@@ -1,7 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
4
  var _excluded = ["children", "trigger", "showProfilecard", "hideProfilecard", "ariaLabelledBy"];
5
+ 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; }
6
+ 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
7
  import React, { useCallback, useMemo } from 'react';
8
+ import { fg } from '@atlaskit/platform-feature-flags';
5
9
  var PopupTriggerInner = function PopupTriggerInner(_ref, ref) {
6
10
  var children = _ref.children,
7
11
  trigger = _ref.trigger,
@@ -9,6 +13,7 @@ var PopupTriggerInner = function PopupTriggerInner(_ref, ref) {
9
13
  hideProfilecard = _ref.hideProfilecard,
10
14
  ariaLabelledBy = _ref.ariaLabelledBy,
11
15
  props = _objectWithoutProperties(_ref, _excluded);
16
+ // rename to onMouseOver when cleaning up update_profile_card_to_open_on_mouse_over
12
17
  var onMouseEnter = useCallback(function () {
13
18
  showProfilecard();
14
19
  }, [showProfilecard]);
@@ -24,12 +29,16 @@ var PopupTriggerInner = function PopupTriggerInner(_ref, ref) {
24
29
  showProfilecard();
25
30
  }, [showProfilecard]);
26
31
  var containerListeners = useMemo(function () {
27
- return trigger === 'hover' ? {
32
+ return trigger === 'hover' ? _objectSpread(_objectSpread({}, fg('update_profile_card_to_open_on_mouse_over') ? {
33
+ onMouseOver: onMouseEnter,
34
+ onMouseOut: hideProfilecard
35
+ } : {
28
36
  onMouseEnter: onMouseEnter,
29
- onMouseLeave: hideProfilecard,
37
+ onMouseLeave: hideProfilecard
38
+ }), {}, {
30
39
  onBlur: hideProfilecard,
31
40
  onKeyPress: onKeyPress
32
- } : {
41
+ }) : {
33
42
  onClick: onClick,
34
43
  onKeyPress: onKeyPress
35
44
  };
@@ -5,7 +5,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
5
5
  import { getPageTime } from './performance';
6
6
  export var PACKAGE_META_DATA = {
7
7
  packageName: (_process$env$_PACKAGE = "@atlaskit/profilecard") !== null && _process$env$_PACKAGE !== void 0 ? _process$env$_PACKAGE : '',
8
- packageVersion: (_process$env$_PACKAGE2 = "25.2.0") !== null && _process$env$_PACKAGE2 !== void 0 ? _process$env$_PACKAGE2 : ''
8
+ packageVersion: (_process$env$_PACKAGE2 = "0.0.0-development") !== null && _process$env$_PACKAGE2 !== void 0 ? _process$env$_PACKAGE2 : ''
9
9
  };
10
10
  var TEAM_SUBJECT = 'teamProfileCard';
11
11
  var USER_SUBJECT = 'profilecard';
@@ -24,7 +24,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
24
24
  actionSubjectId: actionSubjectId,
25
25
  attributes: _objectSpread(_objectSpread({
26
26
  packageName: "@atlaskit/profilecard",
27
- packageVersion: "25.2.0"
27
+ packageVersion: "0.0.0-development"
28
28
  }, attributes), {}, {
29
29
  firedAt: Math.round(getPageTime())
30
30
  })
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { type AgentProfileCardProps } from '../../types';
3
- declare const AgentProfileCard: ({ agent, isLoading, cloudId, onChatClick, hasError, errorType, onConversationStartersClick, resourceClient, addFlag, onDeleteAgent, hideMoreActions, hideAiDisclaimer, hideConversationStarters, }: AgentProfileCardProps) => React.JSX.Element;
3
+ declare const AgentProfileCard: ({ agent, isLoading, cloudId, email, onChatClick, hasError, errorType, onConversationStartersClick, resourceClient, addFlag, onDeleteAgent, hideMoreActions, hideAiDisclaimer, hideConversationStarters, hideAgentActions, }: AgentProfileCardProps) => React.JSX.Element;
4
4
  export default AgentProfileCard;
@@ -10,11 +10,13 @@ export type AgentProfileCardResourcedProps = {
10
10
  onDeleteAgent?: (agentId: string) => {
11
11
  restore: () => void;
12
12
  };
13
- /** Hide the Agent more actions dropdown when true */
13
+ /** Hide the Agent more actions dropdown when true, is also hidden when hideAgentActions is true */
14
14
  hideMoreActions?: boolean;
15
15
  /** Hide the AI disclaimer. Defaults to false (disclaimer is shown by default). */
16
16
  hideAiDisclaimer?: boolean;
17
17
  /** Hide the conversation starters. Defaults to false (conversation starters are shown by default). */
18
18
  hideConversationStarters?: boolean;
19
+ /** Hide the agent actions (chat button and dropdown menu). Defaults to false (agent actions are shown by default). */
20
+ hideAgentActions?: boolean;
19
21
  } & AgentActionsType;
20
22
  export declare const AgentProfileCardResourced: (props: AgentProfileCardResourcedProps) => React.JSX.Element;
@@ -1,6 +1,7 @@
1
1
  export declare const firstCharUpper: (str: string) => string;
2
- export declare const useAgentUrlActions: ({ cloudId, source, }: {
2
+ export declare const useAgentUrlActions: ({ cloudId, email, source, }: {
3
3
  cloudId: string;
4
+ email?: string;
4
5
  source: string;
5
6
  }) => {
6
7
  onEditAgent: (agentId: string) => void;
@@ -1,3 +1,3 @@
1
1
  import { type LazyExoticComponent } from 'react';
2
2
  import type { AgentProfileCardProps } from '../../types';
3
- export declare const AgentProfileCardLazy: LazyExoticComponent<({ agent, isLoading, cloudId, onChatClick, hasError, errorType, onConversationStartersClick, resourceClient, addFlag, onDeleteAgent, hideMoreActions, hideAiDisclaimer, hideConversationStarters, }: AgentProfileCardProps) => React.JSX.Element>;
3
+ export declare const AgentProfileCardLazy: LazyExoticComponent<({ agent, isLoading, cloudId, onChatClick, hasError, errorType, onConversationStartersClick, resourceClient, addFlag, onDeleteAgent, hideMoreActions, hideAiDisclaimer, hideConversationStarters, hideAgentActions, }: AgentProfileCardProps) => React.JSX.Element>;
@@ -1,4 +1,4 @@
1
1
  export declare const getStudioHost: () => string;
2
- export declare const getStudioPath: (path: string) => string;
3
- export declare const getAtlassianStudioAgentEditUrl: (siteId: string, agentId: string) => string;
4
- export declare const getAtlassianStudioAgentDuplicateUrl: (siteId: string, agentId: string) => string;
2
+ export declare const getStudioPath: (path: string, email?: string) => string;
3
+ export declare const getAtlassianStudioAgentEditUrl: (siteId: string, agentId: string, email?: string) => string;
4
+ export declare const getAtlassianStudioAgentDuplicateUrl: (siteId: string, agentId: string, email?: string) => string;
@@ -372,7 +372,9 @@ export interface AgentActionsType {
372
372
  }
373
373
  export interface AgentProfileCardTriggerProps extends AgentActionsType {
374
374
  agentId: string;
375
+ agentIdType?: 'agent' | 'identity';
375
376
  cloudId?: string;
377
+ email?: string;
376
378
  autoFocus?: boolean;
377
379
  resourceClient: ProfileClient;
378
380
  actions?: ProfileCardAction[];
@@ -399,17 +401,20 @@ export type AgentProfileCardProps = {
399
401
  isLoading?: boolean;
400
402
  hasError?: boolean;
401
403
  cloudId?: string;
404
+ email?: string;
402
405
  errorType?: ProfileCardErrorType;
403
406
  addFlag?: (flag: Flag) => void;
404
407
  onDeleteAgent?: (agentId: string) => {
405
408
  restore: () => void;
406
409
  };
407
- /** Hide the Agent more actions dropdown when true */
410
+ /** Hide the Agent more actions dropdown when true, is also hidden when hideAgentActions is true */
408
411
  hideMoreActions?: boolean;
409
412
  /** Hide the AI disclaimer. Defaults to false (disclaimer is shown by default). */
410
413
  hideAiDisclaimer?: boolean;
411
414
  /** Hide the conversation starters. Defaults to false (conversation starters are shown by default). */
412
415
  hideConversationStarters?: boolean;
416
+ /** Hide the agent actions (chat button and dropdown menu). Defaults to false (agent actions are shown by default). */
417
+ hideAgentActions?: boolean;
413
418
  } & AgentActionsType;
414
419
  export type StatusType = 'active' | 'inactive' | 'closed';
415
420
  export type TriggerType = 'hover' | 'click';
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { type AgentProfileCardProps } from '../../types';
3
- declare const AgentProfileCard: ({ agent, isLoading, cloudId, onChatClick, hasError, errorType, onConversationStartersClick, resourceClient, addFlag, onDeleteAgent, hideMoreActions, hideAiDisclaimer, hideConversationStarters, }: AgentProfileCardProps) => React.JSX.Element;
3
+ declare const AgentProfileCard: ({ agent, isLoading, cloudId, email, onChatClick, hasError, errorType, onConversationStartersClick, resourceClient, addFlag, onDeleteAgent, hideMoreActions, hideAiDisclaimer, hideConversationStarters, hideAgentActions, }: AgentProfileCardProps) => React.JSX.Element;
4
4
  export default AgentProfileCard;
@@ -10,11 +10,13 @@ export type AgentProfileCardResourcedProps = {
10
10
  onDeleteAgent?: (agentId: string) => {
11
11
  restore: () => void;
12
12
  };
13
- /** Hide the Agent more actions dropdown when true */
13
+ /** Hide the Agent more actions dropdown when true, is also hidden when hideAgentActions is true */
14
14
  hideMoreActions?: boolean;
15
15
  /** Hide the AI disclaimer. Defaults to false (disclaimer is shown by default). */
16
16
  hideAiDisclaimer?: boolean;
17
17
  /** Hide the conversation starters. Defaults to false (conversation starters are shown by default). */
18
18
  hideConversationStarters?: boolean;
19
+ /** Hide the agent actions (chat button and dropdown menu). Defaults to false (agent actions are shown by default). */
20
+ hideAgentActions?: boolean;
19
21
  } & AgentActionsType;
20
22
  export declare const AgentProfileCardResourced: (props: AgentProfileCardResourcedProps) => React.JSX.Element;
@@ -1,6 +1,7 @@
1
1
  export declare const firstCharUpper: (str: string) => string;
2
- export declare const useAgentUrlActions: ({ cloudId, source, }: {
2
+ export declare const useAgentUrlActions: ({ cloudId, email, source, }: {
3
3
  cloudId: string;
4
+ email?: string;
4
5
  source: string;
5
6
  }) => {
6
7
  onEditAgent: (agentId: string) => void;
@@ -1,3 +1,3 @@
1
1
  import { type LazyExoticComponent } from 'react';
2
2
  import type { AgentProfileCardProps } from '../../types';
3
- export declare const AgentProfileCardLazy: LazyExoticComponent<({ agent, isLoading, cloudId, onChatClick, hasError, errorType, onConversationStartersClick, resourceClient, addFlag, onDeleteAgent, hideMoreActions, hideAiDisclaimer, hideConversationStarters, }: AgentProfileCardProps) => React.JSX.Element>;
3
+ export declare const AgentProfileCardLazy: LazyExoticComponent<({ agent, isLoading, cloudId, onChatClick, hasError, errorType, onConversationStartersClick, resourceClient, addFlag, onDeleteAgent, hideMoreActions, hideAiDisclaimer, hideConversationStarters, hideAgentActions, }: AgentProfileCardProps) => React.JSX.Element>;
@@ -1,4 +1,4 @@
1
1
  export declare const getStudioHost: () => string;
2
- export declare const getStudioPath: (path: string) => string;
3
- export declare const getAtlassianStudioAgentEditUrl: (siteId: string, agentId: string) => string;
4
- export declare const getAtlassianStudioAgentDuplicateUrl: (siteId: string, agentId: string) => string;
2
+ export declare const getStudioPath: (path: string, email?: string) => string;
3
+ export declare const getAtlassianStudioAgentEditUrl: (siteId: string, agentId: string, email?: string) => string;
4
+ export declare const getAtlassianStudioAgentDuplicateUrl: (siteId: string, agentId: string, email?: string) => string;
@@ -375,7 +375,9 @@ export interface AgentActionsType {
375
375
  }
376
376
  export interface AgentProfileCardTriggerProps extends AgentActionsType {
377
377
  agentId: string;
378
+ agentIdType?: 'agent' | 'identity';
378
379
  cloudId?: string;
380
+ email?: string;
379
381
  autoFocus?: boolean;
380
382
  resourceClient: ProfileClient;
381
383
  actions?: ProfileCardAction[];
@@ -405,17 +407,20 @@ export type AgentProfileCardProps = {
405
407
  isLoading?: boolean;
406
408
  hasError?: boolean;
407
409
  cloudId?: string;
410
+ email?: string;
408
411
  errorType?: ProfileCardErrorType;
409
412
  addFlag?: (flag: Flag) => void;
410
413
  onDeleteAgent?: (agentId: string) => {
411
414
  restore: () => void;
412
415
  };
413
- /** Hide the Agent more actions dropdown when true */
416
+ /** Hide the Agent more actions dropdown when true, is also hidden when hideAgentActions is true */
414
417
  hideMoreActions?: boolean;
415
418
  /** Hide the AI disclaimer. Defaults to false (disclaimer is shown by default). */
416
419
  hideAiDisclaimer?: boolean;
417
420
  /** Hide the conversation starters. Defaults to false (conversation starters are shown by default). */
418
421
  hideConversationStarters?: boolean;
422
+ /** Hide the agent actions (chat button and dropdown menu). Defaults to false (agent actions are shown by default). */
423
+ hideAgentActions?: boolean;
419
424
  } & AgentActionsType;
420
425
  export type StatusType = 'active' | 'inactive' | 'closed';
421
426
  export type TriggerType = 'hover' | 'click';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/profilecard",
3
- "version": "25.2.1",
3
+ "version": "25.4.0",
4
4
  "description": "A React component to display a card with user information.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -54,7 +54,7 @@
54
54
  "@atlaskit/css": "^0.19.0",
55
55
  "@atlaskit/dropdown-menu": "^16.8.0",
56
56
  "@atlaskit/empty-state": "^10.2.0",
57
- "@atlaskit/give-kudos": "^5.5.0",
57
+ "@atlaskit/give-kudos": "^5.7.0",
58
58
  "@atlaskit/heading": "^5.4.0",
59
59
  "@atlaskit/icon": "^34.3.0",
60
60
  "@atlaskit/link": "3.4.2",
@@ -74,9 +74,10 @@
74
74
  "@atlaskit/teams-avatar": "^2.6.0",
75
75
  "@atlaskit/teams-public": "^1.3.0",
76
76
  "@atlaskit/theme": "^23.2.0",
77
- "@atlaskit/tmp-editor-statsig": "^74.7.0",
77
+ "@atlaskit/tmp-editor-statsig": "^76.0.0",
78
78
  "@atlaskit/tokens": "^13.0.0",
79
79
  "@atlaskit/tooltip": "^22.0.0",
80
+ "@atlassian/studio-entry-link": "^1.1.0",
80
81
  "@babel/runtime": "^7.0.0",
81
82
  "@compiled/react": "^0.20.0",
82
83
  "date-fns": "^2.17.0",
@@ -129,6 +130,9 @@
129
130
  }
130
131
  },
131
132
  "platform-feature-flags": {
133
+ "asf-944-account-sync": {
134
+ "type": "boolean"
135
+ },
132
136
  "ptc-links-migrate-atlaskit-link": {
133
137
  "type": "boolean"
134
138
  },
@@ -185,6 +189,12 @@
185
189
  },
186
190
  "enable_teams_t26_design_drop_core_experiences": {
187
191
  "type": "boolean"
192
+ },
193
+ "issue_view_agent_discovery_fast_follows": {
194
+ "type": "boolean"
195
+ },
196
+ "update_profile_card_to_open_on_mouse_over": {
197
+ "type": "boolean"
188
198
  }
189
199
  },
190
200
  "sideEffects": [