@atlaskit/profilecard 16.6.1 → 16.9.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 (132) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/components/Team/TeamProfileCard.js +15 -3
  3. package/dist/cjs/components/Team/TeamProfileCardTrigger.js +78 -12
  4. package/dist/cjs/components/User/OverflowProfileCardButtons.js +69 -0
  5. package/dist/cjs/components/User/ProfileCard.js +42 -18
  6. package/dist/cjs/i18n/cs.js +1 -0
  7. package/dist/cjs/i18n/da.js +1 -0
  8. package/dist/cjs/i18n/de.js +1 -0
  9. package/dist/cjs/i18n/en.js +1 -0
  10. package/dist/cjs/i18n/en_GB.js +1 -0
  11. package/dist/cjs/i18n/en_ZZ.js +1 -0
  12. package/dist/cjs/i18n/es.js +1 -0
  13. package/dist/cjs/i18n/fi.js +1 -0
  14. package/dist/cjs/i18n/fr.js +1 -0
  15. package/dist/cjs/i18n/hu.js +1 -0
  16. package/dist/cjs/i18n/it.js +1 -0
  17. package/dist/cjs/i18n/ja.js +1 -0
  18. package/dist/cjs/i18n/ko.js +1 -0
  19. package/dist/cjs/i18n/nb.js +1 -0
  20. package/dist/cjs/i18n/nl.js +1 -0
  21. package/dist/cjs/i18n/pl.js +1 -0
  22. package/dist/cjs/i18n/pt_BR.js +1 -0
  23. package/dist/cjs/i18n/ru.js +1 -0
  24. package/dist/cjs/i18n/sv.js +1 -0
  25. package/dist/cjs/i18n/th.js +1 -0
  26. package/dist/cjs/i18n/tr.js +1 -0
  27. package/dist/cjs/i18n/uk.js +1 -0
  28. package/dist/cjs/i18n/vi.js +1 -0
  29. package/dist/cjs/i18n/zh.js +1 -0
  30. package/dist/cjs/i18n/zh_TW.js +1 -0
  31. package/dist/cjs/messages.js +5 -0
  32. package/dist/cjs/styled/Card.js +32 -17
  33. package/dist/cjs/util/analytics.js +1 -1
  34. package/dist/cjs/version.json +1 -1
  35. package/dist/es2019/components/Team/TeamProfileCard.js +13 -3
  36. package/dist/es2019/components/Team/TeamProfileCardTrigger.js +69 -9
  37. package/dist/es2019/components/User/OverflowProfileCardButtons.js +33 -0
  38. package/dist/es2019/components/User/ProfileCard.js +34 -17
  39. package/dist/es2019/i18n/cs.js +1 -0
  40. package/dist/es2019/i18n/da.js +1 -0
  41. package/dist/es2019/i18n/de.js +1 -0
  42. package/dist/es2019/i18n/en.js +1 -0
  43. package/dist/es2019/i18n/en_GB.js +1 -0
  44. package/dist/es2019/i18n/en_ZZ.js +1 -0
  45. package/dist/es2019/i18n/es.js +1 -0
  46. package/dist/es2019/i18n/fi.js +1 -0
  47. package/dist/es2019/i18n/fr.js +1 -0
  48. package/dist/es2019/i18n/hu.js +1 -0
  49. package/dist/es2019/i18n/it.js +1 -0
  50. package/dist/es2019/i18n/ja.js +1 -0
  51. package/dist/es2019/i18n/ko.js +1 -0
  52. package/dist/es2019/i18n/nb.js +1 -0
  53. package/dist/es2019/i18n/nl.js +1 -0
  54. package/dist/es2019/i18n/pl.js +1 -0
  55. package/dist/es2019/i18n/pt_BR.js +1 -0
  56. package/dist/es2019/i18n/ru.js +1 -0
  57. package/dist/es2019/i18n/sv.js +1 -0
  58. package/dist/es2019/i18n/th.js +1 -0
  59. package/dist/es2019/i18n/tr.js +1 -0
  60. package/dist/es2019/i18n/uk.js +1 -0
  61. package/dist/es2019/i18n/vi.js +1 -0
  62. package/dist/es2019/i18n/zh.js +1 -0
  63. package/dist/es2019/i18n/zh_TW.js +1 -0
  64. package/dist/es2019/messages.js +5 -0
  65. package/dist/es2019/styled/Card.js +44 -1
  66. package/dist/es2019/util/analytics.js +1 -1
  67. package/dist/es2019/version.json +1 -1
  68. package/dist/esm/components/Team/TeamProfileCard.js +13 -3
  69. package/dist/esm/components/Team/TeamProfileCardTrigger.js +78 -12
  70. package/dist/esm/components/User/OverflowProfileCardButtons.js +43 -0
  71. package/dist/esm/components/User/ProfileCard.js +41 -19
  72. package/dist/esm/i18n/cs.js +1 -0
  73. package/dist/esm/i18n/da.js +1 -0
  74. package/dist/esm/i18n/de.js +1 -0
  75. package/dist/esm/i18n/en.js +1 -0
  76. package/dist/esm/i18n/en_GB.js +1 -0
  77. package/dist/esm/i18n/en_ZZ.js +1 -0
  78. package/dist/esm/i18n/es.js +1 -0
  79. package/dist/esm/i18n/fi.js +1 -0
  80. package/dist/esm/i18n/fr.js +1 -0
  81. package/dist/esm/i18n/hu.js +1 -0
  82. package/dist/esm/i18n/it.js +1 -0
  83. package/dist/esm/i18n/ja.js +1 -0
  84. package/dist/esm/i18n/ko.js +1 -0
  85. package/dist/esm/i18n/nb.js +1 -0
  86. package/dist/esm/i18n/nl.js +1 -0
  87. package/dist/esm/i18n/pl.js +1 -0
  88. package/dist/esm/i18n/pt_BR.js +1 -0
  89. package/dist/esm/i18n/ru.js +1 -0
  90. package/dist/esm/i18n/sv.js +1 -0
  91. package/dist/esm/i18n/th.js +1 -0
  92. package/dist/esm/i18n/tr.js +1 -0
  93. package/dist/esm/i18n/uk.js +1 -0
  94. package/dist/esm/i18n/vi.js +1 -0
  95. package/dist/esm/i18n/zh.js +1 -0
  96. package/dist/esm/i18n/zh_TW.js +1 -0
  97. package/dist/esm/messages.js +5 -0
  98. package/dist/esm/styled/Card.js +22 -17
  99. package/dist/esm/util/analytics.js +1 -1
  100. package/dist/esm/version.json +1 -1
  101. package/dist/types/components/Team/TeamProfileCardTrigger.d.ts +5 -1
  102. package/dist/types/components/User/OverflowProfileCardButtons.d.ts +8 -0
  103. package/dist/types/components/User/ProfileCard.d.ts +2 -0
  104. package/dist/types/i18n/cs.d.ts +1 -0
  105. package/dist/types/i18n/da.d.ts +1 -0
  106. package/dist/types/i18n/de.d.ts +1 -0
  107. package/dist/types/i18n/en.d.ts +1 -0
  108. package/dist/types/i18n/en_GB.d.ts +1 -0
  109. package/dist/types/i18n/en_ZZ.d.ts +1 -0
  110. package/dist/types/i18n/es.d.ts +1 -0
  111. package/dist/types/i18n/fi.d.ts +1 -0
  112. package/dist/types/i18n/fr.d.ts +1 -0
  113. package/dist/types/i18n/hu.d.ts +1 -0
  114. package/dist/types/i18n/it.d.ts +1 -0
  115. package/dist/types/i18n/ja.d.ts +1 -0
  116. package/dist/types/i18n/ko.d.ts +1 -0
  117. package/dist/types/i18n/nb.d.ts +1 -0
  118. package/dist/types/i18n/nl.d.ts +1 -0
  119. package/dist/types/i18n/pl.d.ts +1 -0
  120. package/dist/types/i18n/pt_BR.d.ts +1 -0
  121. package/dist/types/i18n/ru.d.ts +1 -0
  122. package/dist/types/i18n/sv.d.ts +1 -0
  123. package/dist/types/i18n/th.d.ts +1 -0
  124. package/dist/types/i18n/tr.d.ts +1 -0
  125. package/dist/types/i18n/uk.d.ts +1 -0
  126. package/dist/types/i18n/vi.d.ts +1 -0
  127. package/dist/types/i18n/zh.d.ts +1 -0
  128. package/dist/types/i18n/zh_TW.d.ts +1 -0
  129. package/dist/types/messages.d.ts +5 -0
  130. package/dist/types/styled/Card.d.ts +3 -0
  131. package/dist/types/types.d.ts +11 -0
  132. package/package.json +2 -1
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Обліковий запис користувача видалено.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Колишній користувач',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Ви більше не можете співпрацювати з цим користувачем.',
26
+ 'pt.profile-card.give-kudos': 'Похвалити',
26
27
  'pt.profile-card.inactive.account': 'Обліковий запис деактивовано',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Обліковий запис користувача деактивовано кілька місяців тому.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Обліковий запис користувача деактивовано минулого місяця.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': 'Tài khoản của họ đã bị xóa.',
24
24
  'pt.profile-card.disabled.account.default.name': 'Người dùng cũ',
25
25
  'pt.profile-card.general.msg.disabled.user': 'Bạn không thể hợp tác với người này được nữa.',
26
+ 'pt.profile-card.give-kudos': 'Khen ngợi',
26
27
  'pt.profile-card.inactive.account': 'Tài khoản đã bị hủy kích hoạt',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Tài khoản của họ đã bị hủy kích hoạt một vài tháng.',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': 'Tài khoản của họ đã bị hủy kích hoạt tháng trước.',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': '他们的帐户已被删除。',
24
24
  'pt.profile-card.disabled.account.default.name': '前用户',
25
25
  'pt.profile-card.general.msg.disabled.user': '您无法再与此人合作。',
26
+ 'pt.profile-card.give-kudos': '给予称赞',
26
27
  'pt.profile-card.inactive.account': '帐户已停用',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': '他们的帐户已被停用数月。',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': '他们的帐户上月已被停用。',
@@ -23,6 +23,7 @@ var _default = {
23
23
  'pt.profile-card.closed.account.no.date': '其帳戶已刪除。',
24
24
  'pt.profile-card.disabled.account.default.name': '舊使用者',
25
25
  'pt.profile-card.general.msg.disabled.user': '您無法再與此人員合作。',
26
+ 'pt.profile-card.give-kudos': '給予讚美',
26
27
  'pt.profile-card.inactive.account': '帳戶已停用',
27
28
  'pt.profile-card.inactive.account.has.date.a.few.months': '其帳戶已停用幾個月了。',
28
29
  'pt.profile-card.inactive.account.has.date.last.month': '其帳戶在上個月已停用。',
@@ -152,6 +152,11 @@ var messages = (0, _reactIntlNext.defineMessages)({
152
152
  id: 'pt.profile-card.give-kudos',
153
153
  defaultMessage: 'Give kudos',
154
154
  description: 'Title for the button on the profile card for a user to give a kudos'
155
+ },
156
+ profileCardMoreIconLabel: {
157
+ id: 'pt.profile-card.more-icon-label',
158
+ defaultMessage: 'More',
159
+ description: 'Label for the meatballs icon on the profile card, which when clicked will provide more options'
155
160
  }
156
161
  });
157
162
  var _default = messages;
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.SpinnerContainer = exports.ProfileImage = exports.LozengeWrapper = exports.JobTitleLabel = exports.FullNameLabel = exports.DisabledInfo = exports.DetailsLabelText = exports.DetailsLabelIcon = exports.DetailsLabel = exports.DetailsGroup = exports.CustomLozengeContainer = exports.CardWrapper = exports.CardContent = exports.CardContainerEmpty = exports.CardContainer = exports.AppTitleLabel = exports.ActionsFlexSpacer = exports.ActionButtonGroup = void 0;
10
+ exports.SpinnerContainer = exports.ProfileImage = exports.OverflowActionButtonsWrapper = exports.LozengeWrapper = exports.KudosBlobAnimation = exports.JobTitleLabel = exports.FullNameLabel = exports.DisabledInfo = exports.DetailsLabelText = exports.DetailsLabelIcon = exports.DetailsLabel = exports.DetailsGroup = exports.CustomLozengeContainer = exports.CardWrapper = exports.CardContent = exports.CardContainerEmpty = exports.CardContainer = exports.AppTitleLabel = exports.AnimatedKudosButton = exports.ActionsFlexSpacer = exports.ActionButtonGroup = void 0;
11
11
 
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
 
@@ -15,9 +15,11 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
15
15
 
16
16
  var _constants = require("@atlaskit/theme/constants");
17
17
 
18
+ var _tokens = require("@atlaskit/tokens");
19
+
18
20
  var _constants2 = require("../styled/constants");
19
21
 
20
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19;
22
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23;
21
23
 
22
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
25
 
@@ -42,24 +44,37 @@ exports.ProfileImage = ProfileImage;
42
44
  var ActionsFlexSpacer = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1 0 auto;\n"])));
43
45
 
44
46
  exports.ActionsFlexSpacer = ActionsFlexSpacer;
47
+ var kudosButtonAnimationTransformation = (0, _styledComponents.keyframes)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["{\n 0% { transform: translate(-80px, -50px); }\n 100% { transform: translate(90px, -70px); }\n}"])));
48
+
49
+ var KudosBlobAnimation = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n display: none;\n height: 150px;\n width: 150px;\n z-index: -1;\n position: absolute;\n animation-name: ", ";\n animation-iteration-count: 1;\n animation-duration: 3s;\n background-image: radial-gradient(\n circle,\n ", " 0%,\n ", " 25%,\n transparent 50%\n );\n overflow: hidden;\n"])), kudosButtonAnimationTransformation, (0, _tokens.token)('color.background.information.pressed', '#85B8FF'), (0, _tokens.token)('color.background.discovery.pressed', '#B8ACF6'));
50
+
51
+ exports.KudosBlobAnimation = KudosBlobAnimation;
52
+
53
+ var AnimatedKudosButton = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", "px;\n &:hover ", " {\n display: block;\n }\n\n button,\n a {\n clip-path: inset(0px 0px 0px 0px round ", "px);\n }\n overflow: hidden;\n"])), _constants.gridSize, KudosBlobAnimation, _constants.borderRadius);
45
54
 
46
- var ActionButtonGroup = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n user-select: none;\n margin: ", "px 0 0 0;\n text-align: right;\n\n button,\n a,\n span {\n margin-left: ", "px;\n\n &:first-child {\n margin-left: 0;\n }\n }\n"])), 2 * (0, _constants.gridSize)(), _constants.gridSize);
55
+ exports.AnimatedKudosButton = AnimatedKudosButton;
56
+
57
+ var ActionButtonGroup = _styledComponents.default.div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n user-select: none;\n margin: ", "px 0 0 0;\n text-align: right;\n display: flex;\n justify-content: flex-end;\n\n button,\n a,\n span {\n margin-left: ", "px;\n\n &:first-child {\n margin-left: 0;\n }\n }\n"])), 2 * (0, _constants.gridSize)(), _constants.gridSize);
47
58
 
48
59
  exports.ActionButtonGroup = ActionButtonGroup;
49
60
 
50
- var CardContent = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n min-height: ", "px;\n"])), (0, _constants.gridSize)() * 17);
61
+ var OverflowActionButtonsWrapper = _styledComponents.default.div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n width: 32px;\n height: 32px;\n margin-left: ", "px;\n"])), _constants.gridSize);
62
+
63
+ exports.OverflowActionButtonsWrapper = OverflowActionButtonsWrapper;
64
+
65
+ var CardContent = _styledComponents.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n min-height: ", "px;\n"])), (0, _constants.gridSize)() * 17);
51
66
 
52
67
  exports.CardContent = CardContent;
53
68
 
54
- var DetailsGroup = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n margin-left: ", "px;\n width: ", "px;\n"])), (0, _constants.gridSize)() * 14.5, (0, _constants.gridSize)() * 24.5);
69
+ var DetailsGroup = _styledComponents.default.div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n margin-left: ", "px;\n width: ", "px;\n"])), (0, _constants.gridSize)() * 14.5, (0, _constants.gridSize)() * 24.5);
55
70
 
56
71
  exports.DetailsGroup = DetailsGroup;
57
72
 
58
- var DisabledInfo = _styledComponents.default.div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n font-size: ", "px;\n color: ", ";\n margin: ", "px 0 0 0;\n line-height: ", "px;\n"])), _constants.fontSizeSmall, _constants2.labelTextColor, (0, _constants.gridSize)() * 1.5, (0, _constants.gridSize)() * 2);
73
+ var DisabledInfo = _styledComponents.default.div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n font-size: ", "px;\n color: ", ";\n margin: ", "px 0 0 0;\n line-height: ", "px;\n"])), _constants.fontSizeSmall, _constants2.labelTextColor, (0, _constants.gridSize)() * 1.5, (0, _constants.gridSize)() * 2);
59
74
 
60
75
  exports.DisabledInfo = DisabledInfo;
61
76
 
62
- var FullNameLabel = _styledComponents.default.span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n font-size: 18px;\n color: ", ";\n margin: ", ";\n line-height: ", "em;\n"])), function (props) {
77
+ var FullNameLabel = _styledComponents.default.span(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n font-size: 18px;\n color: ", ";\n margin: ", ";\n line-height: ", "em;\n"])), function (props) {
63
78
  return props.isDisabledAccount ? _constants2.headerTextColorInactive : _constants2.headerTextColor;
64
79
  }, function (props) {
65
80
  return getFullNameMargin(props);
@@ -67,25 +82,25 @@ var FullNameLabel = _styledComponents.default.span(_templateObject9 || (_templat
67
82
 
68
83
  exports.FullNameLabel = FullNameLabel;
69
84
 
70
- var LozengeWrapper = _styledComponents.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", "px;\n text-transform: uppercase;\n display: block;\n"])), (0, _constants.gridSize)() * 2);
85
+ var LozengeWrapper = _styledComponents.default.div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", "px;\n text-transform: uppercase;\n display: block;\n"])), (0, _constants.gridSize)() * 2);
71
86
 
72
87
  exports.LozengeWrapper = LozengeWrapper;
73
- var CustomLozengeContainer = (0, _styledComponents.default)(LozengeWrapper)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin-top: ", "px;\n > * {\n margin-top: ", "px;\n &:not(:last-child) {\n margin-right: ", "px;\n }\n }\n"])), (0, _constants.gridSize)() * 1.5, (0, _constants.gridSize)() / 2, (0, _constants.gridSize)() / 2);
88
+ var CustomLozengeContainer = (0, _styledComponents.default)(LozengeWrapper)(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin-top: ", "px;\n > * {\n margin-top: ", "px;\n &:not(:last-child) {\n margin-right: ", "px;\n }\n }\n"])), (0, _constants.gridSize)() * 1.5, (0, _constants.gridSize)() / 2, (0, _constants.gridSize)() / 2);
74
89
  exports.CustomLozengeContainer = CustomLozengeContainer;
75
90
 
76
- var JobTitleLabel = _styledComponents.default.span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n font-size: 14px;\n color: ", ";\n margin: 0 0 ", "px 0;\n line-height: ", "em;\n"])), _constants2.headerTextColor, (0, _constants.gridSize)() * 1.5, 24 / 14);
91
+ var JobTitleLabel = _styledComponents.default.span(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n font-size: 14px;\n color: ", ";\n margin: 0 0 ", "px 0;\n line-height: ", "em;\n"])), _constants2.headerTextColor, (0, _constants.gridSize)() * 1.5, 24 / 14);
77
92
 
78
93
  exports.JobTitleLabel = JobTitleLabel;
79
94
 
80
- var AppTitleLabel = _styledComponents.default.span(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n background: ", ";\n color: ", ";\n border-radius: ", ";\n padding: 0 6px;\n width: fit-content;\n font-weight: bold;\n text-transform: uppercase;\n\n font-size: 12px;\n margin: 4px 0 ", "px 0;\n line-height: ", "em;\n"])), _constants2.appLabelBgColor, _constants2.appLabelTextColor, (0, _constants.borderRadius)(), (0, _constants.gridSize)() * 1.5, 24 / 14);
95
+ var AppTitleLabel = _styledComponents.default.span(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2.default)(["\n background: ", ";\n color: ", ";\n border-radius: ", ";\n padding: 0 6px;\n width: fit-content;\n font-weight: bold;\n text-transform: uppercase;\n\n font-size: 12px;\n margin: 4px 0 ", "px 0;\n line-height: ", "em;\n"])), _constants2.appLabelBgColor, _constants2.appLabelTextColor, (0, _constants.borderRadius)(), (0, _constants.gridSize)() * 1.5, 24 / 14);
81
96
 
82
97
  exports.AppTitleLabel = AppTitleLabel;
83
98
 
84
- var SpinnerContainer = _styledComponents.default.div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n height: ", "px;\n justify-content: center;\n position: relative;\n"])), (0, _constants.gridSize)() * 12);
99
+ var SpinnerContainer = _styledComponents.default.div(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n height: ", "px;\n justify-content: center;\n position: relative;\n"])), (0, _constants.gridSize)() * 12);
85
100
 
86
101
  exports.SpinnerContainer = SpinnerContainer;
87
102
 
88
- var CardContainer = _styledComponents.default.div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-image: linear-gradient(\n to bottom,\n ", "\n 0%,\n ", "\n 100%\n );\n background-repeat: no-repeat;\n background-size: 100% ", "px;\n box-sizing: content-box;\n padding: ", "px;\n ", "\n"])), function (props) {
103
+ var CardContainer = _styledComponents.default.div(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-image: linear-gradient(\n to bottom,\n ", "\n 0%,\n ", "\n 100%\n );\n background-repeat: no-repeat;\n background-size: 100% ", "px;\n box-sizing: content-box;\n padding: ", "px;\n ", "\n overflow: hidden;\n"])), function (props) {
89
104
  return props.isDisabledUser ? _constants2.headerBgColorDisabledUser : _constants2.headerBgColor;
90
105
  }, function (props) {
91
106
  return props.isDisabledUser ? _constants2.headerBgColorDisabledUser : _constants2.headerBgColor;
@@ -94,19 +109,19 @@ var CardContainer = _styledComponents.default.div(_templateObject15 || (_templat
94
109
  return '';
95
110
  }
96
111
 
97
- return (0, _styledComponents.css)(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2.default)(["\n box-shadow: ", ";\n border-radius: ", "px;\n "])), _constants2.boxShadow, _constants.borderRadius);
112
+ return (0, _styledComponents.css)(_templateObject20 || (_templateObject20 = (0, _taggedTemplateLiteral2.default)(["\n box-shadow: ", ";\n border-radius: ", "px;\n "])), _constants2.boxShadow, _constants.borderRadius);
98
113
  });
99
114
 
100
115
  exports.CardContainer = CardContainer;
101
116
 
102
- var DetailsLabel = _styledComponents.default.div(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: center;\n line-height: ", "px;\n font-size: ", "px;\n margin: ", "px 0 0 0;\n white-space: nowrap;\n\n & + & {\n margin-top: ", "px;\n }\n"])), (0, _constants.gridSize)() * 3, (0, _constants.gridSize)() * 1.5, (0, _constants.gridSize)() * 2, (0, _constants.gridSize)() / 4);
117
+ var DetailsLabel = _styledComponents.default.div(_templateObject21 || (_templateObject21 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: center;\n line-height: ", "px;\n font-size: ", "px;\n margin: ", "px 0 0 0;\n white-space: nowrap;\n\n & + & {\n margin-top: ", "px;\n }\n"])), (0, _constants.gridSize)() * 3, (0, _constants.gridSize)() * 1.5, (0, _constants.gridSize)() * 2, (0, _constants.gridSize)() / 4);
103
118
 
104
119
  exports.DetailsLabel = DetailsLabel;
105
120
 
106
- var DetailsLabelIcon = _styledComponents.default.div(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-shrink: 0;\n color: ", ";\n width: ", "px;\n height: ", "px;\n padding: ", "px;\n vertical-align: top;\n\n svg {\n width: 100%;\n height: 100%;\n }\n"])), _constants2.labelIconColor, (0, _constants.gridSize)() * 2, (0, _constants.gridSize)() * 2, (0, _constants.gridSize)() / 2);
121
+ var DetailsLabelIcon = _styledComponents.default.div(_templateObject22 || (_templateObject22 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-shrink: 0;\n color: ", ";\n width: ", "px;\n height: ", "px;\n padding: ", "px;\n vertical-align: top;\n\n svg {\n width: 100%;\n height: 100%;\n }\n"])), _constants2.labelIconColor, (0, _constants.gridSize)() * 2, (0, _constants.gridSize)() * 2, (0, _constants.gridSize)() / 2);
107
122
 
108
123
  exports.DetailsLabelIcon = DetailsLabelIcon;
109
124
 
110
- var DetailsLabelText = _styledComponents.default.span(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n text-overflow: ellipsis;\n color: ", ";\n padding-left: ", "px;\n"])), _constants2.labelTextColor, (0, _constants.gridSize)() / 2);
125
+ var DetailsLabelText = _styledComponents.default.span(_templateObject23 || (_templateObject23 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n text-overflow: ellipsis;\n color: ", ";\n padding-left: ", "px;\n"])), _constants2.labelTextColor, (0, _constants.gridSize)() / 2);
111
126
 
112
127
  exports.DetailsLabelText = DetailsLabelText;
@@ -56,7 +56,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
56
56
  actionSubjectId: actionSubjectId,
57
57
  attributes: _objectSpread(_objectSpread({
58
58
  packageName: "@atlaskit/profilecard",
59
- packageVersion: "16.6.1"
59
+ packageVersion: "16.9.0"
60
60
  }, attributes), {}, {
61
61
  firedAt: (0, _performance.getPageTime)()
62
62
  })
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/profilecard",
3
- "version": "16.6.1"
3
+ "version": "16.9.0"
4
4
  }
@@ -10,6 +10,7 @@ import { LinkItem, MenuGroup } from '@atlaskit/menu';
10
10
  import Popup from '@atlaskit/popup';
11
11
  import { layers } from '@atlaskit/theme/constants';
12
12
  import messages from '../../messages';
13
+ import { AnimatedKudosButton, KudosBlobAnimation } from '../../styled/Card';
13
14
  import { ErrorWrapper, TeamErrorText, TeamErrorTitle } from '../../styled/Error';
14
15
  import { ActionButtons, AvatarSection, CardContent, CardHeader, CardWrapper, Description, DescriptionWrapper, MemberCount, MoreButton, TeamName, WrappedButton } from '../../styled/TeamCard';
15
16
  import { errorRetryClicked, moreActionsClicked, moreMembersClicked, teamActionClicked, teamAvatarClicked, teamProfileCardRendered } from '../../util/analytics';
@@ -17,6 +18,7 @@ import { isBasicClick } from '../../util/click';
17
18
  import { ErrorIllustration } from '../Error';
18
19
  import TeamLoadingState from './TeamLoadingState';
19
20
  const LARGE_MEMBER_COUNT = 50;
21
+ const GIVE_KUDOS_ACTION_ID = 'give-kudos';
20
22
 
21
23
  function onMemberClick(callback, userId, analytics, index, hasHref) {
22
24
  return event => {
@@ -106,11 +108,19 @@ const ActionButton = ({
106
108
  analytics,
107
109
  index
108
110
  }) => {
109
- return /*#__PURE__*/React.createElement(WrappedButton, null, /*#__PURE__*/React.createElement(Button, {
110
- href: action.link,
111
+ const isGiveKudosActionButton = action.id === GIVE_KUDOS_ACTION_ID;
112
+ const actionButton = /*#__PURE__*/React.createElement(Button, {
113
+ key: action.id || index,
111
114
  onClick: onActionClick(action, analytics, index),
115
+ href: action.link,
112
116
  shouldFitContainer: true
113
- }, action.label));
117
+ }, action.label, isGiveKudosActionButton && /*#__PURE__*/React.createElement(KudosBlobAnimation, null));
118
+
119
+ if (isGiveKudosActionButton) {
120
+ return /*#__PURE__*/React.createElement(AnimatedKudosButton, null, actionButton);
121
+ }
122
+
123
+ return /*#__PURE__*/React.createElement(WrappedButton, null, actionButton);
114
124
  };
115
125
 
116
126
  const ExtraActions = ({
@@ -1,10 +1,13 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import React, { Suspense } from 'react';
4
+ import { FormattedMessage } from 'react-intl-next';
4
5
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
6
+ import { GiveKudosLauncherLazy, KudosType } from '@atlaskit/give-kudos';
5
7
  import Popup from '@atlaskit/popup';
6
8
  import { layers } from '@atlaskit/theme/constants';
7
9
  import filterActions from '../../internal/filterActions';
10
+ import messages from '../../messages';
8
11
  import { fireEvent, teamCardTriggered, teamProfileCardRendered } from '../../util/analytics';
9
12
  import { isBasicClick } from '../../util/click';
10
13
  import { DELAY_MS_HIDE, DELAY_MS_SHOW } from '../../util/config';
@@ -114,6 +117,25 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
114
117
  }
115
118
  });
116
119
 
120
+ _defineProperty(this, "openKudosDrawer", () => {
121
+ this.hideProfilecard(DELAY_MS_HIDE);
122
+ this.setState({
123
+ kudosDrawerOpen: true
124
+ });
125
+ });
126
+
127
+ _defineProperty(this, "closeKudosDrawer", () => {
128
+ this.setState({
129
+ kudosDrawerOpen: false
130
+ });
131
+ });
132
+
133
+ _defineProperty(this, "kudosUrl", () => {
134
+ const recipientId = this.props.teamId && `&recipientId=${this.props.teamId}` || '';
135
+ const cloudId = this.props.cloudId && `&cloudId=${this.props.cloudId}` || '';
136
+ return `${this.state.teamCentralBaseUrl}/kudos/give?type=team${recipientId}${cloudId}`;
137
+ });
138
+
117
139
  _defineProperty(this, "stopPropagation", event => {
118
140
  // We need to stop propagation when users click on the card, so that it
119
141
  // doesn't trigger any special effects that occur when clicking the trigger.
@@ -137,7 +159,10 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
137
159
  isLoading: undefined,
138
160
  hasError: false,
139
161
  error: null,
140
- data: null
162
+ data: null,
163
+ shouldShowGiveKudos: false,
164
+ teamCentralBaseUrl: undefined,
165
+ kudosDrawerOpen: false
141
166
  });
142
167
 
143
168
  _defineProperty(this, "clientFetchProfile", () => {
@@ -162,7 +187,8 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
162
187
  this.fireAnalytics(event);
163
188
  };
164
189
 
165
- this.props.resourceClient.getTeamProfile(teamId, orgId, fireEvent).then(res => this.handleClientSuccess(res), err => this.handleClientError(err)).catch(err => this.handleClientError(err));
190
+ const requests = Promise.all([this.props.resourceClient.getTeamProfile(teamId, orgId, fireEvent), this.props.resourceClient.shouldShowGiveKudos()]);
191
+ requests.then(res => this.handleClientSuccess(...res), err => this.handleClientError(err)).catch(err => this.handleClientError(err));
166
192
  });
167
193
  });
168
194
 
@@ -211,6 +237,24 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
211
237
  }))));
212
238
  });
213
239
 
240
+ _defineProperty(this, "renderKudosLauncher", () => {
241
+ return this.state.shouldShowGiveKudos && /*#__PURE__*/React.createElement(Suspense, {
242
+ fallback: null
243
+ }, /*#__PURE__*/React.createElement(GiveKudosLauncherLazy, {
244
+ isOpen: this.state.kudosDrawerOpen,
245
+ recipient: {
246
+ type: KudosType.TEAM,
247
+ recipientId: this.props.teamId
248
+ },
249
+ analytics: this.fireAnalytics,
250
+ analyticsSource: "team-profile-card",
251
+ teamCentralBaseUrl: this.state.teamCentralBaseUrl,
252
+ cloudId: this.props.cloudId || '',
253
+ addFlag: this.props.addFlag,
254
+ onClose: this.closeKudosDrawer
255
+ }));
256
+ });
257
+
214
258
  _defineProperty(this, "renderTrigger", triggerProps => {
215
259
  const {
216
260
  children,
@@ -219,12 +263,12 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
219
263
  } = this.props;
220
264
 
221
265
  if (triggerLinkType === 'none') {
222
- return /*#__PURE__*/React.createElement("span", _extends({
266
+ return /*#__PURE__*/React.createElement(React.Fragment, null, this.renderKudosLauncher(), /*#__PURE__*/React.createElement("span", _extends({
223
267
  "data-testid": "team-profilecard-trigger-wrapper"
224
- }, triggerProps, this.triggerListeners), children);
268
+ }, triggerProps, this.triggerListeners), children));
225
269
  }
226
270
 
227
- return /*#__PURE__*/React.createElement("a", _extends({
271
+ return /*#__PURE__*/React.createElement(React.Fragment, null, this.renderKudosLauncher(), /*#__PURE__*/React.createElement("a", _extends({
228
272
  "data-testid": "team-profilecard-trigger-wrapper",
229
273
  style: {
230
274
  color: 'initial',
@@ -233,7 +277,7 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
233
277
  href: viewProfileLink
234
278
  }, triggerProps, {
235
279
  ref: triggerProps.ref
236
- }, this.triggerListeners), children);
280
+ }, this.triggerListeners), children));
237
281
  });
238
282
  }
239
283
 
@@ -264,7 +308,7 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
264
308
  clearTimeout(this.hideTimer);
265
309
  }
266
310
 
267
- handleClientSuccess(res) {
311
+ handleClientSuccess(team, shouldShowGiveKudos) {
268
312
  if (!this._isMounted) {
269
313
  return;
270
314
  }
@@ -272,7 +316,9 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
272
316
  this.setState({
273
317
  isLoading: false,
274
318
  hasError: false,
275
- data: res
319
+ data: team,
320
+ shouldShowGiveKudos,
321
+ teamCentralBaseUrl: this.props.resourceClient.getTeamCentralBaseUrl()
276
322
  });
277
323
  }
278
324
 
@@ -289,7 +335,21 @@ export class TeamProfileCardTriggerInternal extends React.PureComponent {
289
335
  }
290
336
 
291
337
  filterActions() {
292
- return filterActions(this.props.actions, this.state.data);
338
+ const actions = filterActions(this.props.actions, this.state.data);
339
+
340
+ if (this.state.shouldShowGiveKudos) {
341
+ const kudosAction = {
342
+ label: /*#__PURE__*/React.createElement(FormattedMessage, messages.giveKudosButton),
343
+ id: 'give-kudos',
344
+ callback: () => {
345
+ this.openKudosDrawer();
346
+ },
347
+ link: this.kudosUrl()
348
+ };
349
+ return actions.concat([kudosAction]);
350
+ }
351
+
352
+ return actions;
293
353
  }
294
354
 
295
355
  renderPopup() {
@@ -0,0 +1,33 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { useIntl } from 'react-intl-next';
4
+ import Button from '@atlaskit/button/custom-theme-button';
5
+ import DropdownMenu, { DropdownItem, DropdownItemGroup } from '@atlaskit/dropdown-menu';
6
+ import MoreIcon from '@atlaskit/icon/glyph/more';
7
+ import messages from '../../messages';
8
+ import { OverflowActionButtonsWrapper } from '../../styled/Card';
9
+ export const OverflowProfileCardButtons = props => {
10
+ const intl = useIntl();
11
+ return /*#__PURE__*/React.createElement(OverflowActionButtonsWrapper, null, /*#__PURE__*/React.createElement(DropdownMenu, {
12
+ placement: 'bottom-end',
13
+ trigger: ({
14
+ triggerRef,
15
+ isSelected,
16
+ testId,
17
+ ...providedProps
18
+ }) => /*#__PURE__*/React.createElement(Button, _extends({
19
+ type: "button"
20
+ }, providedProps, {
21
+ ref: triggerRef,
22
+ iconBefore: /*#__PURE__*/React.createElement(MoreIcon, {
23
+ label: intl.formatMessage(messages.profileCardMoreIconLabel)
24
+ })
25
+ }))
26
+ }, /*#__PURE__*/React.createElement(DropdownItemGroup, null, props.actions.map(action => /*#__PURE__*/React.createElement(DropdownItem, {
27
+ key: action.id,
28
+ onClick: (event, ...args) => {
29
+ props.onItemClick(action, args, event);
30
+ },
31
+ href: action.link
32
+ }, action.label)))));
33
+ };
@@ -11,15 +11,18 @@ import { token } from '@atlaskit/tokens';
11
11
  import { AnalyticsName } from '../../internal/analytics';
12
12
  import relativeDate from '../../internal/relative-date';
13
13
  import messages from '../../messages';
14
- import { ActionButtonGroup, ActionsFlexSpacer, AppTitleLabel, CardContainer, CardContent, CardWrapper, CustomLozengeContainer, DetailsGroup, DisabledInfo, FullNameLabel, JobTitleLabel, LozengeWrapper, ProfileImage, SpinnerContainer } from '../../styled/Card';
14
+ import { ActionButtonGroup, ActionsFlexSpacer, AnimatedKudosButton, AppTitleLabel, CardContainer, CardContent, CardWrapper, CustomLozengeContainer, DetailsGroup, DisabledInfo, FullNameLabel, JobTitleLabel, KudosBlobAnimation, LozengeWrapper, ProfileImage, SpinnerContainer } from '../../styled/Card';
15
15
  import { isBasicClick } from '../../util/click';
16
16
  import { ErrorMessage } from '../Error';
17
17
  import { IconLabel } from '../Icon';
18
+ import { OverflowProfileCardButtons } from './OverflowProfileCardButtons';
18
19
  import ReportingLinesDetails from './ReportingLinesDetails';
19
20
  export default class Profilecard extends React.PureComponent {
20
21
  constructor(props) {
21
22
  super(props);
22
23
 
24
+ _defineProperty(this, "GIVE_KUDOS_ACTION_ID", 'give-kudos');
25
+
23
26
  _defineProperty(this, "durationSince", from => {
24
27
  const fromParsed = from || 0;
25
28
  return fromParsed > 0 ? Date.now() - fromParsed : null;
@@ -52,22 +55,19 @@ export default class Profilecard extends React.PureComponent {
52
55
  });
53
56
 
54
57
  _defineProperty(this, "renderButton", (action, idx) => {
55
- return /*#__PURE__*/React.createElement(Button, {
56
- appearance: idx === 0 ? 'default' : 'subtle',
58
+ const isGiveKudosActionButton = action.id === this.GIVE_KUDOS_ACTION_ID;
59
+ const actionButton = /*#__PURE__*/React.createElement(Button, {
60
+ appearance: "default",
57
61
  key: action.id || idx,
58
- onClick: (event, ...args) => {
59
- this.callAnalytics(AnalyticsName.PROFILE_CARD_CLICK, {
60
- id: action.id || null,
61
- duration: this.durationSince(this.timeOpen)
62
- });
63
-
64
- if (action.callback && isBasicClick(event)) {
65
- event.preventDefault();
66
- action.callback(event, ...args);
67
- }
68
- },
62
+ onClick: (event, ...args) => this.onActionClick(action, args, event),
69
63
  href: action.link
70
- }, action.label);
64
+ }, action.label, isGiveKudosActionButton && /*#__PURE__*/React.createElement(KudosBlobAnimation, null));
65
+
66
+ if (isGiveKudosActionButton) {
67
+ return /*#__PURE__*/React.createElement(AnimatedKudosButton, null, actionButton);
68
+ }
69
+
70
+ return actionButton;
71
71
  });
72
72
 
73
73
  this.timeOpen = null;
@@ -96,7 +96,7 @@ export default class Profilecard extends React.PureComponent {
96
96
  if (!this.props.isCurrentUser && this.props.isKudosEnabled) {
97
97
  const kudosAction = {
98
98
  label: /*#__PURE__*/React.createElement(FormattedMessage, messages.giveKudosButton),
99
- id: 'give-kudos',
99
+ id: this.GIVE_KUDOS_ACTION_ID,
100
100
  callback: () => {
101
101
  this.kudosButtonCallback();
102
102
  },
@@ -114,7 +114,24 @@ export default class Profilecard extends React.PureComponent {
114
114
  }
115
115
 
116
116
  const actions = this.getActions();
117
- return /*#__PURE__*/React.createElement(ActionButtonGroup, null, actions.map((action, idx) => this.renderButton(action, idx)));
117
+ const firstTwoActions = actions.slice(0, 2);
118
+ const restOfActions = actions && actions.length > 2 ? actions.slice(2) : undefined;
119
+ return /*#__PURE__*/React.createElement(ActionButtonGroup, null, firstTwoActions.map((action, idx) => this.renderButton(action, idx)), restOfActions && /*#__PURE__*/React.createElement(OverflowProfileCardButtons, {
120
+ actions: restOfActions,
121
+ onItemClick: (action, args, event) => this.onActionClick(action, args, event)
122
+ }));
123
+ }
124
+
125
+ onActionClick(action, args, event) {
126
+ this.callAnalytics(AnalyticsName.PROFILE_CARD_CLICK, {
127
+ id: action.id || null,
128
+ duration: this.durationSince(this.timeOpen)
129
+ });
130
+
131
+ if (action.callback && isBasicClick(event)) {
132
+ event.preventDefault();
133
+ action.callback(event, ...args);
134
+ }
118
135
  }
119
136
 
120
137
  renderCardDetailsDefault() {
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'Účet uživatele byl smazán.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Bývalý uživatel',
18
18
  'pt.profile-card.general.msg.disabled.user': 'S touto osobou již nemůžete spolupracovat.',
19
+ 'pt.profile-card.give-kudos': 'Pogratulovat',
19
20
  'pt.profile-card.inactive.account': 'Deaktivovaný účet',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Účet uživatele je deaktivovaný již několik měsíců.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'Účet uživatele byl deaktivován minulý měsíc.',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'Personens konto er blevet slettet.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Forhenværende bruger',
18
18
  'pt.profile-card.general.msg.disabled.user': 'Du kan ikke længere samarbejde med denne person.',
19
+ 'pt.profile-card.give-kudos': 'Giv ros',
19
20
  'pt.profile-card.inactive.account': 'Konto deaktiveret',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Personens konto har været deaktiveret i nogle måneder.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'Personens konto blev deaktiveret i sidste måned.',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'Das Konto dieser Person wurde gelöscht.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Ehemaliger Benutzer',
18
18
  'pt.profile-card.general.msg.disabled.user': 'Sie können mit dieser Person nicht mehr zusammenarbeiten.',
19
+ 'pt.profile-card.give-kudos': 'Loben',
19
20
  'pt.profile-card.inactive.account': 'Konto deaktiviert',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Das Konto dieser Person wurde vor wenigen Monaten gelöscht.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'Das Konto dieser Person wurde letzten Monat deaktiviert.',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'Their account has been deleted.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Former user',
18
18
  'pt.profile-card.general.msg.disabled.user': 'You can no longer collaborate with this person.',
19
+ 'pt.profile-card.give-kudos': 'Give kudos',
19
20
  'pt.profile-card.inactive.account': 'Account deactivated',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Their account has been deactivated for a few months.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'Their account was deactivated last month.',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'Their account has been deleted.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Former user',
18
18
  'pt.profile-card.general.msg.disabled.user': 'You can no longer collaborate with this person.',
19
+ 'pt.profile-card.give-kudos': 'Give kudos',
19
20
  'pt.profile-card.inactive.account': 'Account deactivated',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Their account has been deactivated for a few months.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'Their account was deactivated last month.',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': '⁣⁢Their account has been deleted.‌؜⁠⁡‌‌‌‌⁡⁡‌؜؜؜⁠⁣⁤',
17
17
  'pt.profile-card.disabled.account.default.name': '⁣⁢Former user‍‌⁠⁡‍⁡‌‌‍⁡⁣⁤',
18
18
  'pt.profile-card.general.msg.disabled.user': '⁣⁢You can no longer collaborate with this person.⁠⁠⁡؜⁠⁠⁣⁤',
19
+ 'pt.profile-card.give-kudos': '⁣⁢Give kudos‌⁡‍‌‍‌⁠؜‍؜؜⁣⁤',
19
20
  'pt.profile-card.inactive.account': '⁣⁢Account deactivated‍؜⁡⁠‌؜‍⁡⁣⁤',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': '⁣⁢Their account has been deactivated for a few months.‌‌⁡⁠⁡⁠؜⁣⁤',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': '⁣⁢Their account was deactivated last month.‌‍‍⁠‍⁡؜‌⁡⁡⁠⁣⁤',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'Su cuenta está eliminada.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Antiguo usuario',
18
18
  'pt.profile-card.general.msg.disabled.user': 'Ya no puedes colaborar con esta persona.',
19
+ 'pt.profile-card.give-kudos': 'Felicitar',
19
20
  'pt.profile-card.inactive.account': 'Cuenta desactivada',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Su cuenta se desactivó hace algunos meses.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'Su cuenta se desactivó el mes pasado.',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'Hänen tilinsä on poistettu.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Entinen käyttäjä',
18
18
  'pt.profile-card.general.msg.disabled.user': 'Et voi enää tehdä yhteistyötä tämän henkilön kanssa.',
19
+ 'pt.profile-card.give-kudos': 'Anna kehuja',
19
20
  'pt.profile-card.inactive.account': 'Tili poistettu käytöstä',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Hänen tilinsä on ollut poissa käytöstä muutaman kuukauden ajan.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'Hänen tilinsä poistettiin käytöstä viime kuussa.',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'Son compte a été supprimé.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Ancien utilisateur',
18
18
  'pt.profile-card.general.msg.disabled.user': 'Vous ne pouvez plus collaborer avec cette personne.',
19
+ 'pt.profile-card.give-kudos': 'Féliciter',
19
20
  'pt.profile-card.inactive.account': 'Compte désactivé',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Son compte a été désactivé il y a quelques mois.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'Son compte a été désactivé le mois dernier.',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'A fiókját töröltük.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Korábbi felhasználó',
18
18
  'pt.profile-card.general.msg.disabled.user': 'A továbbiakban nem működhet együtt ezzel a személlyel.',
19
+ 'pt.profile-card.give-kudos': 'Dicséret',
19
20
  'pt.profile-card.inactive.account': 'A fiók inaktiválva.',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'A fiókját néhány hónapja inaktiváltuk.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'A fiókját a múlt hónapban inaktiváltuk.',
@@ -16,6 +16,7 @@ export default {
16
16
  'pt.profile-card.closed.account.no.date': 'Il suo account è stato eliminato.',
17
17
  'pt.profile-card.disabled.account.default.name': 'Ex utente',
18
18
  'pt.profile-card.general.msg.disabled.user': 'Non puoi più collaborare con questa persona.',
19
+ 'pt.profile-card.give-kudos': 'Complimentati',
19
20
  'pt.profile-card.inactive.account': 'Account disattivato',
20
21
  'pt.profile-card.inactive.account.has.date.a.few.months': 'Il suo account è disattivato da qualche mese.',
21
22
  'pt.profile-card.inactive.account.has.date.last.month': 'Il suo account è stato disattivato il mese scorso.',