@atlaskit/user-picker 11.16.1 → 11.18.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 (193) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/afm-cc/tsconfig.json +2 -1
  3. package/afm-jira/tsconfig.json +2 -1
  4. package/afm-products/tsconfig.json +2 -1
  5. package/dist/cjs/analytics.js +1 -1
  6. package/dist/cjs/components/AvatarOrIcon.js +66 -0
  7. package/dist/cjs/components/BaseUserPicker.js +45 -8
  8. package/dist/cjs/components/CustomOption/main.js +16 -1
  9. package/dist/cjs/components/ExternalUserOption/main.js +15 -0
  10. package/dist/cjs/components/MultiValue.js +18 -2
  11. package/dist/cjs/components/SingleValue.js +13 -3
  12. package/dist/cjs/components/SingleValueContainer.js +16 -2
  13. package/dist/cjs/components/TeamOption/main.js +19 -3
  14. package/dist/cjs/components/UserOption.js +17 -1
  15. package/dist/cjs/components/UserPicker.js +3 -1
  16. package/dist/cjs/i18n/cs.js +44 -3
  17. package/dist/cjs/i18n/da.js +44 -3
  18. package/dist/cjs/i18n/de.js +44 -3
  19. package/dist/cjs/i18n/en.js +44 -3
  20. package/dist/cjs/i18n/en_GB.js +44 -3
  21. package/dist/cjs/i18n/en_ZZ.js +44 -3
  22. package/dist/cjs/i18n/es.js +44 -3
  23. package/dist/cjs/i18n/fi.js +44 -3
  24. package/dist/cjs/i18n/fr.js +44 -3
  25. package/dist/cjs/i18n/hr.js +44 -3
  26. package/dist/cjs/i18n/hu.js +44 -3
  27. package/dist/cjs/i18n/it.js +44 -3
  28. package/dist/cjs/i18n/ja.js +44 -3
  29. package/dist/cjs/i18n/ko.js +44 -3
  30. package/dist/cjs/i18n/nb.js +44 -3
  31. package/dist/cjs/i18n/nl.js +44 -3
  32. package/dist/cjs/i18n/pl.js +44 -3
  33. package/dist/cjs/i18n/pt_BR.js +44 -3
  34. package/dist/cjs/i18n/ru.js +44 -3
  35. package/dist/cjs/i18n/sl.js +44 -3
  36. package/dist/cjs/i18n/sr_RS.js +44 -3
  37. package/dist/cjs/i18n/sr_YR.js +44 -3
  38. package/dist/cjs/i18n/sv.js +44 -3
  39. package/dist/cjs/i18n/th.js +44 -3
  40. package/dist/cjs/i18n/tr.js +44 -3
  41. package/dist/cjs/i18n/uk.js +44 -3
  42. package/dist/cjs/i18n/vi.js +44 -3
  43. package/dist/cjs/i18n/zh.js +44 -3
  44. package/dist/cjs/i18n/zh_TW.js +44 -3
  45. package/dist/es2019/analytics.js +1 -1
  46. package/dist/es2019/components/AvatarOrIcon.js +58 -0
  47. package/dist/es2019/components/BaseUserPicker.js +41 -8
  48. package/dist/es2019/components/CustomOption/main.js +15 -1
  49. package/dist/es2019/components/ExternalUserOption/main.js +16 -1
  50. package/dist/es2019/components/MultiValue.js +18 -2
  51. package/dist/es2019/components/SingleValue.js +14 -4
  52. package/dist/es2019/components/SingleValueContainer.js +16 -2
  53. package/dist/es2019/components/TeamOption/main.js +16 -1
  54. package/dist/es2019/components/UserOption.js +18 -2
  55. package/dist/es2019/components/UserPicker.js +3 -1
  56. package/dist/es2019/i18n/cs.js +44 -3
  57. package/dist/es2019/i18n/da.js +44 -3
  58. package/dist/es2019/i18n/de.js +44 -3
  59. package/dist/es2019/i18n/en.js +44 -3
  60. package/dist/es2019/i18n/en_GB.js +44 -3
  61. package/dist/es2019/i18n/en_ZZ.js +44 -3
  62. package/dist/es2019/i18n/es.js +44 -3
  63. package/dist/es2019/i18n/fi.js +44 -3
  64. package/dist/es2019/i18n/fr.js +44 -3
  65. package/dist/es2019/i18n/hr.js +44 -3
  66. package/dist/es2019/i18n/hu.js +44 -3
  67. package/dist/es2019/i18n/it.js +44 -3
  68. package/dist/es2019/i18n/ja.js +44 -3
  69. package/dist/es2019/i18n/ko.js +44 -3
  70. package/dist/es2019/i18n/nb.js +44 -3
  71. package/dist/es2019/i18n/nl.js +44 -3
  72. package/dist/es2019/i18n/pl.js +44 -3
  73. package/dist/es2019/i18n/pt_BR.js +44 -3
  74. package/dist/es2019/i18n/ru.js +44 -3
  75. package/dist/es2019/i18n/sl.js +44 -3
  76. package/dist/es2019/i18n/sr_RS.js +44 -3
  77. package/dist/es2019/i18n/sr_YR.js +44 -3
  78. package/dist/es2019/i18n/sv.js +44 -3
  79. package/dist/es2019/i18n/th.js +44 -3
  80. package/dist/es2019/i18n/tr.js +44 -3
  81. package/dist/es2019/i18n/uk.js +44 -3
  82. package/dist/es2019/i18n/vi.js +44 -3
  83. package/dist/es2019/i18n/zh.js +44 -3
  84. package/dist/es2019/i18n/zh_TW.js +44 -3
  85. package/dist/esm/analytics.js +1 -1
  86. package/dist/esm/components/AvatarOrIcon.js +59 -0
  87. package/dist/esm/components/BaseUserPicker.js +45 -8
  88. package/dist/esm/components/CustomOption/main.js +16 -1
  89. package/dist/esm/components/ExternalUserOption/main.js +15 -0
  90. package/dist/esm/components/MultiValue.js +18 -2
  91. package/dist/esm/components/SingleValue.js +14 -4
  92. package/dist/esm/components/SingleValueContainer.js +16 -2
  93. package/dist/esm/components/TeamOption/main.js +19 -3
  94. package/dist/esm/components/UserOption.js +17 -1
  95. package/dist/esm/components/UserPicker.js +3 -1
  96. package/dist/esm/i18n/cs.js +44 -3
  97. package/dist/esm/i18n/da.js +44 -3
  98. package/dist/esm/i18n/de.js +44 -3
  99. package/dist/esm/i18n/en.js +44 -3
  100. package/dist/esm/i18n/en_GB.js +44 -3
  101. package/dist/esm/i18n/en_ZZ.js +44 -3
  102. package/dist/esm/i18n/es.js +44 -3
  103. package/dist/esm/i18n/fi.js +44 -3
  104. package/dist/esm/i18n/fr.js +44 -3
  105. package/dist/esm/i18n/hr.js +44 -3
  106. package/dist/esm/i18n/hu.js +44 -3
  107. package/dist/esm/i18n/it.js +44 -3
  108. package/dist/esm/i18n/ja.js +44 -3
  109. package/dist/esm/i18n/ko.js +44 -3
  110. package/dist/esm/i18n/nb.js +44 -3
  111. package/dist/esm/i18n/nl.js +44 -3
  112. package/dist/esm/i18n/pl.js +44 -3
  113. package/dist/esm/i18n/pt_BR.js +44 -3
  114. package/dist/esm/i18n/ru.js +44 -3
  115. package/dist/esm/i18n/sl.js +44 -3
  116. package/dist/esm/i18n/sr_RS.js +44 -3
  117. package/dist/esm/i18n/sr_YR.js +44 -3
  118. package/dist/esm/i18n/sv.js +44 -3
  119. package/dist/esm/i18n/th.js +44 -3
  120. package/dist/esm/i18n/tr.js +44 -3
  121. package/dist/esm/i18n/uk.js +44 -3
  122. package/dist/esm/i18n/vi.js +44 -3
  123. package/dist/esm/i18n/zh.js +44 -3
  124. package/dist/esm/i18n/zh_TW.js +44 -3
  125. package/dist/types/components/AvatarOrIcon.d.ts +17 -0
  126. package/dist/types/components/BaseUserPicker.d.ts +8 -3
  127. package/dist/types/components/PopupUserPicker.d.ts +6 -0
  128. package/dist/types/components/UserPicker.d.ts +4 -1
  129. package/dist/types/i18n/cs.d.ts +44 -2
  130. package/dist/types/i18n/da.d.ts +44 -2
  131. package/dist/types/i18n/de.d.ts +44 -2
  132. package/dist/types/i18n/en.d.ts +44 -2
  133. package/dist/types/i18n/en_GB.d.ts +44 -2
  134. package/dist/types/i18n/en_ZZ.d.ts +44 -2
  135. package/dist/types/i18n/es.d.ts +44 -2
  136. package/dist/types/i18n/fi.d.ts +44 -2
  137. package/dist/types/i18n/fr.d.ts +44 -2
  138. package/dist/types/i18n/hr.d.ts +44 -2
  139. package/dist/types/i18n/hu.d.ts +44 -2
  140. package/dist/types/i18n/it.d.ts +44 -2
  141. package/dist/types/i18n/ja.d.ts +44 -2
  142. package/dist/types/i18n/ko.d.ts +44 -2
  143. package/dist/types/i18n/nb.d.ts +44 -2
  144. package/dist/types/i18n/nl.d.ts +44 -2
  145. package/dist/types/i18n/pl.d.ts +44 -2
  146. package/dist/types/i18n/pt_BR.d.ts +44 -2
  147. package/dist/types/i18n/ru.d.ts +44 -2
  148. package/dist/types/i18n/sl.d.ts +44 -2
  149. package/dist/types/i18n/sr_RS.d.ts +44 -2
  150. package/dist/types/i18n/sr_YR.d.ts +44 -2
  151. package/dist/types/i18n/sv.d.ts +44 -2
  152. package/dist/types/i18n/th.d.ts +44 -2
  153. package/dist/types/i18n/tr.d.ts +44 -2
  154. package/dist/types/i18n/uk.d.ts +44 -2
  155. package/dist/types/i18n/vi.d.ts +44 -2
  156. package/dist/types/i18n/zh.d.ts +44 -2
  157. package/dist/types/i18n/zh_TW.d.ts +44 -2
  158. package/dist/types/types.d.ts +11 -0
  159. package/dist/types-ts4.5/components/AvatarOrIcon.d.ts +17 -0
  160. package/dist/types-ts4.5/components/BaseUserPicker.d.ts +8 -3
  161. package/dist/types-ts4.5/components/PopupUserPicker.d.ts +6 -0
  162. package/dist/types-ts4.5/components/UserPicker.d.ts +4 -1
  163. package/dist/types-ts4.5/i18n/cs.d.ts +44 -2
  164. package/dist/types-ts4.5/i18n/da.d.ts +44 -2
  165. package/dist/types-ts4.5/i18n/de.d.ts +44 -2
  166. package/dist/types-ts4.5/i18n/en.d.ts +44 -2
  167. package/dist/types-ts4.5/i18n/en_GB.d.ts +44 -2
  168. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +44 -2
  169. package/dist/types-ts4.5/i18n/es.d.ts +44 -2
  170. package/dist/types-ts4.5/i18n/fi.d.ts +44 -2
  171. package/dist/types-ts4.5/i18n/fr.d.ts +44 -2
  172. package/dist/types-ts4.5/i18n/hr.d.ts +44 -2
  173. package/dist/types-ts4.5/i18n/hu.d.ts +44 -2
  174. package/dist/types-ts4.5/i18n/it.d.ts +44 -2
  175. package/dist/types-ts4.5/i18n/ja.d.ts +44 -2
  176. package/dist/types-ts4.5/i18n/ko.d.ts +44 -2
  177. package/dist/types-ts4.5/i18n/nb.d.ts +44 -2
  178. package/dist/types-ts4.5/i18n/nl.d.ts +44 -2
  179. package/dist/types-ts4.5/i18n/pl.d.ts +44 -2
  180. package/dist/types-ts4.5/i18n/pt_BR.d.ts +44 -2
  181. package/dist/types-ts4.5/i18n/ru.d.ts +44 -2
  182. package/dist/types-ts4.5/i18n/sl.d.ts +44 -2
  183. package/dist/types-ts4.5/i18n/sr_RS.d.ts +44 -2
  184. package/dist/types-ts4.5/i18n/sr_YR.d.ts +44 -2
  185. package/dist/types-ts4.5/i18n/sv.d.ts +44 -2
  186. package/dist/types-ts4.5/i18n/th.d.ts +44 -2
  187. package/dist/types-ts4.5/i18n/tr.d.ts +44 -2
  188. package/dist/types-ts4.5/i18n/uk.d.ts +44 -2
  189. package/dist/types-ts4.5/i18n/vi.d.ts +44 -2
  190. package/dist/types-ts4.5/i18n/zh.d.ts +44 -2
  191. package/dist/types-ts4.5/i18n/zh_TW.d.ts +44 -2
  192. package/dist/types-ts4.5/types.d.ts +11 -0
  193. package/package.json +11 -8
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = void 0;
8
- var _zh_TW = _interopRequireDefault(require("@atlaskit/afm-i18n-platform-elements-user-picker/i18n/zh_TW"));
9
7
  /* prettier-ignore */
10
8
  /**
11
9
  * NOTE:
@@ -13,4 +11,47 @@ var _zh_TW = _interopRequireDefault(require("@atlaskit/afm-i18n-platform-element
13
11
  * This file is automatically generated by Traduki 2.0.
14
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
15
13
  */
16
- var _default = exports.default = _zh_TW.default;
14
+ //Chinese (Traditional)
15
+ var _default = exports.default = {
16
+ 'fabric.elements.user-picker.custom.type.label': '客戶',
17
+ 'fabric.elements.user-picker.email.add': '新增使用者',
18
+ 'fabric.elements.user-picker.email.add.potential': '輸入電子郵件地址',
19
+ 'fabric.elements.user-picker.email.select.to.add': '選取電子郵件地址',
20
+ 'fabric.elements.user-picker.email.type.label': '電子郵件',
21
+ 'fabric.elements.user-picker.error.message': '發生錯誤',
22
+ 'fabric.elements.user-picker.external.sourced.error': '我們目前無法與您建立連線。',
23
+ 'fabric.elements.user-picker.external.sourced.from': '尋找位置:',
24
+ 'fabric.elements.user-picker.external.user.type.label': '外部使用者',
25
+ 'fabric.elements.user-picker.github.provider': 'GitHub',
26
+ 'fabric.elements.user-picker.google.provider': 'Google',
27
+ 'fabric.elements.user-picker.group.byline': '由系統管理員所管理的群組',
28
+ 'fabric.elements.user-picker.group.byline.admin-managed': '管理員群組 {verifiedIcon}',
29
+ 'fabric.elements.user-picker.group.type.label': '群組',
30
+ 'fabric.elements.user-picker.guest.lozenge.text': '訪客',
31
+ 'fabric.elements.user-picker.guest.lozenge.tooltip.group': '訪客群組只能存取特定空間,而且只能存取有限的使用者資訊。',
32
+ 'fabric.elements.user-picker.guest.lozenge.tooltip.user': '訪客只能存取特定空間,而且只能存取有限的使用者資訊。',
33
+ 'fabric.elements.user-picker.member.lozenge.text': '成員',
34
+ 'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
35
+ 'fabric.elements.user-picker.multi.remove-item': '移除',
36
+ 'fabric.elements.user-picker.other.type.label': '其他',
37
+ 'fabric.elements.user-picker.placeholder': '輸入人員或團隊...',
38
+ 'fabric.elements.user-picker.placeholder.add-more': '新增更多人員...',
39
+ 'fabric.elements.user-picker.single.clear': '清除',
40
+ 'fabric.elements.user-picker.slack.provider': 'Slack',
41
+ 'fabric.elements.user-picker.source.confluence': 'Confluence',
42
+ 'fabric.elements.user-picker.source.jira': 'Jira',
43
+ 'fabric.elements.user-picker.source.other-atlassian': '其他 Atlassian 產品',
44
+ 'fabric.elements.user-picker.source.other-atlassian-appify': '其他 Atlassian 應用程式',
45
+ 'fabric.elements.user-picker.team.byline': '團隊',
46
+ 'fabric.elements.user-picker.team.byline.official': '官方團隊 {verifiedIcon}',
47
+ 'fabric.elements.user-picker.team.member.50plus': '團隊 • 50 名以上的成員',
48
+ 'fabric.elements.user-picker.team.member.50plus.including.you': '團隊 • 50 名以上的成員,包含您',
49
+ 'fabric.elements.user-picker.team.member.50plus.official': '官方團隊 {verifiedIcon} • 超過 50 名成員',
50
+ 'fabric.elements.user-picker.team.member.50plus.official.including.you': '官方團隊 {verifiedIcon} • 超過 50 名成員,包括您',
51
+ 'fabric.elements.user-picker.team.member.count': '{count, plural, other {團隊 • {count} 名成員}}',
52
+ 'fabric.elements.user-picker.team.member.count.including.you': '{count, plural, other {團隊 • {count} 名成員,包含您}}',
53
+ 'fabric.elements.user-picker.team.member.count.official': '{count, plural, other {官方團隊 {verifiedIcon} • {count} 位成員}}',
54
+ 'fabric.elements.user-picker.team.member.count.official.including.you': '{count, plural, other {官方團隊 {verifiedIcon} • {count} 名成員,包括您}}',
55
+ 'fabric.elements.user-picker.team.type.label': '團隊',
56
+ 'fabric.elements.user-picker.user.type.label': '人員'
57
+ };
@@ -3,7 +3,7 @@ import { createAndFireEvent } from '@atlaskit/analytics-next';
3
3
  import { v4 as uuidv4 } from 'uuid';
4
4
  import { isCustom, isExternalUser } from './components/utils';
5
5
  const packageName = "@atlaskit/user-picker";
6
- const packageVersion = "0.0.0-development";
6
+ const packageVersion = "11.17.0";
7
7
  const UUID_REGEXP_TEAMS_GROUPS = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;
8
8
  const UUID_REGEXP_OLD_AAID = /^[a-fA-F0-9]{1,8}:[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;
9
9
  const UUID_REGEXP_NEW_AAID = /^[a-fA-F0-9]{24,24}$/;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @jsxRuntime classic
3
+ * @jsx jsx
4
+ */
5
+
6
+ import { SizeableAvatar } from './SizeableAvatar';
7
+ import { getAvatarSize } from './utils';
8
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
+ import { css, jsx } from '@emotion/react';
10
+ const iconStyle = css({
11
+ display: 'flex',
12
+ alignItems: 'center',
13
+ justifyContent: 'center',
14
+ flexShrink: 0
15
+ });
16
+ const iconSizes = {
17
+ xsmall: css({
18
+ width: '20px',
19
+ height: '20px'
20
+ }),
21
+ small: css({
22
+ width: '28px',
23
+ height: '28px'
24
+ }),
25
+ medium: css({
26
+ width: '36px',
27
+ height: '36px'
28
+ })
29
+ };
30
+ export const AvatarOrIcon = ({
31
+ appearance = 'big',
32
+ avatarAppearanceShape,
33
+ icon,
34
+ iconColor,
35
+ presence,
36
+ src,
37
+ type = 'person'
38
+ }) => {
39
+ // If icon is provided, render it instead of avatar
40
+ if (icon) {
41
+ const avatarSize = getAvatarSize(appearance);
42
+ return jsx("div", {
43
+ css: [iconStyle, iconSizes[avatarSize]],
44
+ style: {
45
+ color: iconColor
46
+ }
47
+ }, icon);
48
+ }
49
+
50
+ // Otherwise, render the avatar as before
51
+ return jsx(SizeableAvatar, {
52
+ appearance: appearance,
53
+ src: src,
54
+ presence: presence,
55
+ type: type,
56
+ avatarAppearanceShape: avatarAppearanceShape
57
+ });
58
+ };
@@ -13,6 +13,7 @@ import { messages } from './i18n';
13
13
  import { callCallback, extractOptionValue, getOptions, isIterable, isPopupUserPickerByComponent, isDefaultValuePopulated, isSingleValue, optionToSelectableOptions } from './utils';
14
14
  import { groupOptionsByType } from '../util/group-options-by-type';
15
15
  import { userPickerOptionsShownUfoExperience } from '../util/ufoExperiences';
16
+ import { fg } from '@atlaskit/platform-feature-flags';
16
17
  const loadingMessage = () => null;
17
18
  const classNamePrefix = 'fabric-user-picker';
18
19
  export class BaseUserPickerWithoutAnalytics extends React.Component {
@@ -235,7 +236,16 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
235
236
  });
236
237
  callCallback(this.props.onInputChange, '', this.getSessionId());
237
238
  });
239
+ _defineProperty(this, "handleOpen", () => {
240
+ callCallback(this.props.onOpen, this.getSessionId());
241
+ this.setState({
242
+ menuIsOpen: true
243
+ });
244
+ });
238
245
  _defineProperty(this, "handleBlur", () => {
246
+ if (this.isCreateTeamA11yEnabled && this.props.isFooterFocused) {
247
+ return;
248
+ }
239
249
  callCallback(this.props.onBlur, this.getSessionId());
240
250
  if (isPopupUserPickerByComponent(this.props.SelectComponent)) {
241
251
  return;
@@ -248,13 +258,10 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
248
258
  options: []
249
259
  });
250
260
  });
251
- _defineProperty(this, "handleOpen", () => {
252
- callCallback(this.props.onOpen, this.getSessionId());
253
- this.setState({
254
- menuIsOpen: true
255
- });
256
- });
257
261
  _defineProperty(this, "handleClose", () => {
262
+ if (this.isCreateTeamA11yEnabled && this.props.isFooterFocused) {
263
+ return;
264
+ }
258
265
  this.resetInputState();
259
266
  callCallback(this.props.onClose, this.getSessionId());
260
267
  this.setState({
@@ -315,6 +322,18 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
315
322
  }
316
323
  }
317
324
  this.props.onKeyDown && this.props.onKeyDown(event);
325
+ if (this.isCreateTeamA11yEnabled) {
326
+ if (event.key === 'Escape') {
327
+ this.setState({
328
+ menuIsOpen: false,
329
+ options: []
330
+ });
331
+ this.props.setIsFooterFocused && this.props.setIsFooterFocused(false);
332
+ }
333
+ if (event.key === 'Tab' && this.props.setIsFooterFocused && this.props.footer) {
334
+ this.props.setIsFooterFocused(true);
335
+ }
336
+ }
318
337
  });
319
338
  _defineProperty(this, "handleClearIndicatorHover", hoveringClearIndicator => {
320
339
  this.setState({
@@ -366,6 +385,7 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
366
385
  }));
367
386
  }
368
387
  });
388
+ _defineProperty(this, "shouldKeepMenuOpen", () => Boolean(!!this.props.footer) && Boolean(this.props.isFooterFocused));
369
389
  this.state = {
370
390
  options: [],
371
391
  isDefaultSet: false,
@@ -396,6 +416,9 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
396
416
  get isMenuOpenOnClickForSingleSelect() {
397
417
  return this.props.openMenuOnClick && !this.props.isMulti;
398
418
  }
419
+ get isCreateTeamA11yEnabled() {
420
+ return fg('a11y-create-team-is-not-focusable-and-has-no-btn');
421
+ }
399
422
  componentDidMount() {
400
423
  const {
401
424
  open,
@@ -409,7 +432,7 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
409
432
  this.executeLoadOptions(search);
410
433
  }
411
434
  }
412
- componentDidUpdate(_, prevState) {
435
+ componentDidUpdate(prevProps, prevState) {
413
436
  const {
414
437
  menuIsOpen,
415
438
  options,
@@ -418,6 +441,16 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
418
441
  inputValue
419
442
  } = this.state;
420
443
 
444
+ // Close menu when isFooterFocused changes from true to false
445
+ if (this.isCreateTeamA11yEnabled && menuIsOpen && prevProps.isFooterFocused === true && this.props.isFooterFocused === false && !this.shouldKeepMenuOpen()) {
446
+ this.resetInputState();
447
+ callCallback(this.props.onClose, this.getSessionId());
448
+ this.setState({
449
+ menuIsOpen: false,
450
+ options: []
451
+ });
452
+ }
453
+
421
454
  // Create a new session when the menu is opened and there is no session
422
455
  if (menuIsOpen && !prevState.menuIsOpen && !this.session) {
423
456
  this.startSession();
@@ -439,7 +472,7 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
439
472
  this.session.inputChangeTime = Date.now();
440
473
  }
441
474
  }
442
- if (menuIsOpen && (!_.loadOptions || prevState.menuIsOpen) && count === 0 && !resolving && [UFOExperienceState.STARTED.id, UFOExperienceState.IN_PROGRESS.id].includes(this.optionsShownUfoExperienceInstance.state.id)) {
475
+ if (menuIsOpen && (!prevProps.loadOptions || prevState.menuIsOpen) && count === 0 && !resolving && [UFOExperienceState.STARTED.id, UFOExperienceState.IN_PROGRESS.id].includes(this.optionsShownUfoExperienceInstance.state.id)) {
443
476
  this.optionsShownUfoExperienceInstance.success();
444
477
  }
445
478
  }
@@ -7,8 +7,10 @@ import { B400, N800, N200 } from '@atlaskit/theme/colors';
7
7
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
8
8
  import { jsx } from '@emotion/react';
9
9
  import React from 'react';
10
+ import { fg } from '@atlaskit/platform-feature-flags';
10
11
  import { AvatarItemOption, textWrapper } from '../AvatarItemOption';
11
12
  import { HighlightText } from '../HighlightText';
13
+ import { AvatarOrIcon } from '../AvatarOrIcon';
12
14
  import { SizeableAvatar } from '../SizeableAvatar';
13
15
  export class CustomOption extends React.PureComponent {
14
16
  constructor(...args) {
@@ -44,9 +46,21 @@ export class CustomOption extends React.PureComponent {
44
46
  _defineProperty(this, "renderAvatar", () => {
45
47
  const {
46
48
  data: {
47
- avatarUrl
49
+ avatarUrl,
50
+ icon,
51
+ iconColor
48
52
  }
49
53
  } = this.props;
54
+ // Only use icon if feature gate is enabled
55
+ if (icon && fg('atlaskit_user_picker_support_icon')) {
56
+ return jsx(AvatarOrIcon, {
57
+ appearance: "big",
58
+ icon: icon,
59
+ iconColor: iconColor,
60
+ src: avatarUrl
61
+ });
62
+ }
63
+ // Fallback to original behavior
50
64
  return jsx(SizeableAvatar, {
51
65
  appearance: "big",
52
66
  src: avatarUrl
@@ -11,6 +11,7 @@ import Tooltip from '@atlaskit/tooltip';
11
11
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
12
12
  import { createAndFireEventInElementsChannel, userInfoEvent } from '../../analytics';
13
13
  import { textWrapper } from '../AvatarItemOption';
14
+ import { AvatarOrIcon } from '../AvatarOrIcon';
14
15
  import { SizeableAvatar } from '../SizeableAvatar';
15
16
  import { ExternalUserSourcesContainer } from '../ExternalUserSourcesContainer';
16
17
  import InfoIcon from './InfoIcon';
@@ -86,10 +87,24 @@ class ExternalUserOptionImpl extends React.PureComponent {
86
87
  const {
87
88
  user: {
88
89
  avatarUrl,
89
- appType
90
+ appType,
91
+ icon,
92
+ iconColor
90
93
  },
91
94
  status
92
95
  } = this.props;
96
+ // Only use icon if feature gate is enabled
97
+ if (icon && fg('atlaskit_user_picker_support_icon')) {
98
+ return jsx(AvatarOrIcon, {
99
+ appearance: "big",
100
+ icon: icon,
101
+ iconColor: iconColor,
102
+ src: avatarUrl,
103
+ presence: status,
104
+ avatarAppearanceShape: fg('jira_ai_agent_avatar_user_picker_user_option') ? getAppearanceForAppType(appType) : undefined
105
+ });
106
+ }
107
+ // Fallback to original behavior
93
108
  return jsx(SizeableAvatar, {
94
109
  appearance: "big",
95
110
  src: avatarUrl,
@@ -11,10 +11,12 @@ import { components } from '@atlaskit/select';
11
11
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
12
12
  import { css, jsx } from '@emotion/react';
13
13
  import { AddOptionAvatar } from './AddOptionAvatar';
14
+ import { AvatarOrIcon } from './AvatarOrIcon';
14
15
  import { SizeableAvatar } from './SizeableAvatar';
15
16
  import { getAvatarUrl, isEmail, isGroup, isTeam } from './utils';
16
17
  import PeopleIcon from '@atlaskit/icon/core/migration/people-group--people';
17
18
  import { VerifiedTeamIcon } from '@atlaskit/people-teams-ui-public/verified-team-icon';
19
+ import { fg } from '@atlaskit/platform-feature-flags';
18
20
  export const scrollToValue = (valueContainer, control) => {
19
21
  const {
20
22
  top,
@@ -65,6 +67,18 @@ export class MultiValue extends React.Component {
65
67
  LEGACY_size: "small"
66
68
  }));
67
69
  }
70
+
71
+ // Only use icon if feature gate is enabled
72
+ if (data.icon && fg('atlaskit_user_picker_support_icon')) {
73
+ return jsx(AvatarOrIcon, {
74
+ appearance: "multi",
75
+ icon: data.icon,
76
+ iconColor: data.iconColor,
77
+ src: getAvatarUrl(data),
78
+ type: isTeam(data) ? 'team' : 'person'
79
+ });
80
+ }
81
+ // Fallback to original behavior
68
82
  return jsx(SizeableAvatar, {
69
83
  appearance: "multi",
70
84
  src: getAvatarUrl(data),
@@ -77,8 +91,10 @@ export class MultiValue extends React.Component {
77
91
  data
78
92
  }
79
93
  } = this.props;
80
- if (isTeam(data) && data.verified) {
81
- return jsx(VerifiedTeamIcon, null);
94
+ if (isGroup(data) && data.includeTeamsUpdates || isTeam(data) && data.verified) {
95
+ return jsx(VerifiedTeamIcon, {
96
+ size: data.includeTeamsUpdates ? 'small' : 'medium'
97
+ });
82
98
  }
83
99
  return null;
84
100
  });
@@ -3,8 +3,9 @@ import "./SingleValue.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import { components } from '@atlaskit/select';
6
+ import { AvatarOrIcon } from './AvatarOrIcon';
6
7
  import { SizeableAvatar } from './SizeableAvatar';
7
- import { getAvatarUrl, isTeam } from './utils';
8
+ import { getAvatarUrl, isTeam, isGroup } from './utils';
8
9
  import { getAppearanceForAppType } from '@atlaskit/avatar';
9
10
  import { fg } from '@atlaskit/platform-feature-flags';
10
11
  import { VerifiedTeamIcon } from '@atlaskit/people-teams-ui-public/verified-team-icon';
@@ -21,9 +22,11 @@ const ElementAfter = props => {
21
22
  },
22
23
  shouldShowVerifiedIcon
23
24
  } = props;
24
- const showIcon = shouldShowVerifiedIcon ? shouldShowVerifiedIcon(data) : isTeam(data) && data.verified;
25
+ const showIcon = shouldShowVerifiedIcon ? shouldShowVerifiedIcon(data) : isTeam(data) && data.verified || isGroup(data) && data.includeTeamsUpdates;
25
26
  if (showIcon) {
26
- return /*#__PURE__*/React.createElement(VerifiedTeamIcon, null);
27
+ return /*#__PURE__*/React.createElement(VerifiedTeamIcon, {
28
+ size: data.includeTeamsUpdates ? 'small' : 'medium'
29
+ });
27
30
  }
28
31
  return null;
29
32
  };
@@ -41,7 +44,14 @@ export const SingleValue = props => {
41
44
  } = props;
42
45
  return !isFocused ? /*#__PURE__*/React.createElement(components.SingleValue, props, /*#__PURE__*/React.createElement(Flex, {
43
46
  xcss: styles.avatarItem
44
- }, /*#__PURE__*/React.createElement(SizeableAvatar, {
47
+ }, data.icon && fg('atlaskit_user_picker_support_icon') ? /*#__PURE__*/React.createElement(AvatarOrIcon, {
48
+ icon: data.icon,
49
+ iconColor: data.iconColor,
50
+ src: getAvatarUrl(data),
51
+ appearance: appearance,
52
+ type: isTeam(data) ? 'team' : 'person',
53
+ avatarAppearanceShape: fg('jira_ai_agent_avatar_user_picker_user_option') ? getAppearanceForAppType(data.appType) : undefined
54
+ }) : /*#__PURE__*/React.createElement(SizeableAvatar, {
45
55
  src: getAvatarUrl(data),
46
56
  appearance: appearance,
47
57
  type: isTeam(data) ? 'team' : 'person',
@@ -5,6 +5,7 @@ import "./SingleValueContainer.compiled.css";
5
5
  import { ax, ix } from "@compiled/react/runtime";
6
6
  import React from 'react';
7
7
  import { components } from '@atlaskit/select';
8
+ import { AvatarOrIcon } from './AvatarOrIcon';
8
9
  import { SizeableAvatar } from './SizeableAvatar';
9
10
  import ValueContainerWrapper from './ValueContainerWrapper';
10
11
  import { getAppearanceForAppType } from '@atlaskit/avatar';
@@ -31,11 +32,24 @@ export class SingleValueContainer extends React.Component {
31
32
  }
32
33
  } = this.props;
33
34
  if (isFocused || !hasValue) {
35
+ const userData = showUserAvatar(inputValue, value) ? value.data : undefined;
36
+ // Only use icon if feature gate is enabled
37
+ if (userData !== null && userData !== void 0 && userData.icon && fg('atlaskit_user_picker_support_icon')) {
38
+ return /*#__PURE__*/React.createElement(AvatarOrIcon, {
39
+ appearance: appearance,
40
+ icon: userData.icon,
41
+ iconColor: userData.iconColor,
42
+ type: placeholderAvatar,
43
+ src: userData.avatarUrl,
44
+ avatarAppearanceShape: userData && fg('jira_ai_agent_avatar_user_picker_user_option') ? getAppearanceForAppType(userData.appType) : undefined
45
+ });
46
+ }
47
+ // Fallback to original behavior
34
48
  return /*#__PURE__*/React.createElement(SizeableAvatar, {
35
49
  appearance: appearance,
36
50
  type: placeholderAvatar,
37
- src: showUserAvatar(inputValue, value) ? value.data.avatarUrl : undefined,
38
- avatarAppearanceShape: value && value.data && fg('jira_ai_agent_avatar_user_picker_user_option') ? getAppearanceForAppType(value.data.appType) : undefined
51
+ src: userData === null || userData === void 0 ? void 0 : userData.avatarUrl,
52
+ avatarAppearanceShape: userData && fg('jira_ai_agent_avatar_user_picker_user_option') ? getAppearanceForAppType(userData.appType) : undefined
39
53
  });
40
54
  }
41
55
  return null;
@@ -11,9 +11,11 @@ import { VerifiedTeamIcon } from '@atlaskit/people-teams-ui-public/verified-team
11
11
  import { jsx } from '@emotion/react';
12
12
  import React from 'react';
13
13
  import { FormattedMessage } from 'react-intl-next';
14
+ import { fg } from '@atlaskit/platform-feature-flags';
14
15
  import { AvatarItemOption, textWrapper } from '../AvatarItemOption';
15
16
  import { HighlightText } from '../HighlightText';
16
17
  import { messages } from '../i18n';
18
+ import { AvatarOrIcon } from '../AvatarOrIcon';
17
19
  import { SizeableAvatar } from '../SizeableAvatar';
18
20
  export class TeamOption extends React.PureComponent {
19
21
  constructor(...args) {
@@ -103,9 +105,22 @@ export class TeamOption extends React.PureComponent {
103
105
  _defineProperty(this, "renderAvatar", () => {
104
106
  const {
105
107
  team: {
106
- avatarUrl
108
+ avatarUrl,
109
+ icon,
110
+ iconColor
107
111
  }
108
112
  } = this.props;
113
+ // Only use icon if feature gate is enabled
114
+ if (icon && fg('atlaskit_user_picker_support_icon')) {
115
+ return jsx(AvatarOrIcon, {
116
+ appearance: "big",
117
+ icon: icon,
118
+ iconColor: iconColor,
119
+ src: avatarUrl,
120
+ type: "team"
121
+ });
122
+ }
123
+ // Fallback to original behavior
109
124
  return jsx(SizeableAvatar, {
110
125
  appearance: "big",
111
126
  src: avatarUrl,
@@ -10,6 +10,7 @@ import { css, jsx } from '@emotion/react';
10
10
  import React from 'react';
11
11
  import { AvatarItemOption, textWrapper } from './AvatarItemOption';
12
12
  import { HighlightText } from './HighlightText';
13
+ import { AvatarOrIcon } from './AvatarOrIcon';
13
14
  import { SizeableAvatar } from './SizeableAvatar';
14
15
  import { hasValue } from './utils';
15
16
  import { fg } from '@atlaskit/platform-feature-flags';
@@ -62,12 +63,27 @@ export class UserOption extends React.PureComponent {
62
63
  const {
63
64
  user: {
64
65
  avatarUrl,
65
- appType
66
+ appType,
67
+ icon,
68
+ iconColor
66
69
  },
67
70
  status
68
71
  } = this.props;
72
+ const appearance = fg('platform-component-visual-refresh') ? 'medium' : 'big';
73
+ // Only use icon if feature gate is enabled
74
+ if (icon && fg('atlaskit_user_picker_support_icon')) {
75
+ return jsx(AvatarOrIcon, {
76
+ appearance: appearance,
77
+ icon: icon,
78
+ iconColor: iconColor,
79
+ src: avatarUrl,
80
+ presence: status,
81
+ avatarAppearanceShape: fg('jira_ai_agent_avatar_user_picker_user_option') ? getAppearanceForAppType(appType) : undefined
82
+ });
83
+ }
84
+ // Fallback to original behavior
69
85
  return jsx(SizeableAvatar, {
70
- appearance: fg('platform-component-visual-refresh') ? 'medium' : 'big',
86
+ appearance: appearance,
71
87
  src: avatarUrl,
72
88
  presence: status,
73
89
  avatarAppearanceShape: fg('jira_ai_agent_avatar_user_picker_user_option') ? getAppearanceForAppType(appType) : undefined
@@ -50,6 +50,7 @@ export class UserPickerWithoutAnalytics extends React.Component {
50
50
  captureMenuScroll,
51
51
  closeMenuOnScroll,
52
52
  loadUserSource,
53
+ menuIsOpen,
53
54
  required = false,
54
55
  showClearIndicator = false,
55
56
  includeTeamsUpdates = false
@@ -64,7 +65,8 @@ export class UserPickerWithoutAnalytics extends React.Component {
64
65
  menuShouldBlockScroll,
65
66
  captureMenuScroll,
66
67
  required,
67
- includeTeamsUpdates
68
+ includeTeamsUpdates,
69
+ menuIsOpen
68
70
  };
69
71
  const pickerProps = allowEmail ? {
70
72
  ...defaultPickerProps,
@@ -5,6 +5,47 @@
5
5
  * This file is automatically generated by Traduki 2.0.
6
6
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
7
7
  */
8
-
9
- import translations from '@atlaskit/afm-i18n-platform-elements-user-picker/i18n/cs';
10
- export default translations;
8
+ //Czech
9
+ export default {
10
+ 'fabric.elements.user-picker.custom.type.label': 'Vlastní',
11
+ 'fabric.elements.user-picker.email.add': 'Přidat uživatele',
12
+ 'fabric.elements.user-picker.email.add.potential': 'Zadejte e-mailovou adresu.',
13
+ 'fabric.elements.user-picker.email.select.to.add': 'Vyberte e-mailovou adresu.',
14
+ 'fabric.elements.user-picker.email.type.label': 'E-maily',
15
+ 'fabric.elements.user-picker.error.message': 'Něco se pokazilo',
16
+ 'fabric.elements.user-picker.external.sourced.error': 'Momentálně vás nejde připojit.',
17
+ 'fabric.elements.user-picker.external.sourced.from': 'Nalezen v:',
18
+ 'fabric.elements.user-picker.external.user.type.label': 'Externí uživatelé',
19
+ 'fabric.elements.user-picker.github.provider': 'GitHub',
20
+ 'fabric.elements.user-picker.google.provider': 'Google',
21
+ 'fabric.elements.user-picker.group.byline': 'Skupina spravovaná administrátorem',
22
+ 'fabric.elements.user-picker.group.byline.admin-managed': 'Skupina správců {verifiedIcon}',
23
+ 'fabric.elements.user-picker.group.type.label': 'Skupiny',
24
+ 'fabric.elements.user-picker.guest.lozenge.text': 'HOST',
25
+ 'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Skupiny hostů mají přístup pouze k určitým prostorům a mají omezený přístup k uživatelským údajům.',
26
+ 'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Hosté mají přístup pouze k určitým prostorům a mají omezený přístup k uživatelským údajům.',
27
+ 'fabric.elements.user-picker.member.lozenge.text': 'ČLEN',
28
+ 'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
29
+ 'fabric.elements.user-picker.multi.remove-item': 'Odstranit',
30
+ 'fabric.elements.user-picker.other.type.label': 'Ostatní',
31
+ 'fabric.elements.user-picker.placeholder': 'Zadejte osoby nebo týmy...',
32
+ 'fabric.elements.user-picker.placeholder.add-more': 'přidat více lidí...',
33
+ 'fabric.elements.user-picker.single.clear': 'Vymazat',
34
+ 'fabric.elements.user-picker.slack.provider': 'Slack',
35
+ 'fabric.elements.user-picker.source.confluence': 'Confluence',
36
+ 'fabric.elements.user-picker.source.jira': 'Jira',
37
+ 'fabric.elements.user-picker.source.other-atlassian': 'Ostatní produkty Atlassian',
38
+ 'fabric.elements.user-picker.source.other-atlassian-appify': 'Ostatní aplikace Atlassian',
39
+ 'fabric.elements.user-picker.team.byline': 'Tým',
40
+ 'fabric.elements.user-picker.team.byline.official': 'Oficiální tým {verifiedIcon}',
41
+ 'fabric.elements.user-picker.team.member.50plus': 'Tým • 50 a více členů',
42
+ 'fabric.elements.user-picker.team.member.50plus.including.you': 'Tým • 50 a více členů včetně vás',
43
+ 'fabric.elements.user-picker.team.member.50plus.official': 'Oficiální tým {verifiedIcon} • 50+ členů',
44
+ 'fabric.elements.user-picker.team.member.50plus.official.including.you': 'Oficiální tým {verifiedIcon} • 50+ členů, včetně vás',
45
+ 'fabric.elements.user-picker.team.member.count': '{count, plural, one {Tým • {count} člen} few {Tým • {count} členové} many {Tým • {count} člena} other {Tým • {count} členů}}',
46
+ 'fabric.elements.user-picker.team.member.count.including.you': '{count, plural, one {Tým • {count} člen včetně vás} few {Tým • {count} členové včetně vás} many {Tým • {count} člena včetně vás} other {Tým • {count} členů včetně vás}}',
47
+ 'fabric.elements.user-picker.team.member.count.official': '{count, plural, one {Oficiální tým {verifiedIcon} • {count} člen} few {Oficiální tým {verifiedIcon} • {count} členové} many {Oficiální tým {verifiedIcon} • {count} člena} other {Oficiální tým {verifiedIcon} • {count} členů}}',
48
+ 'fabric.elements.user-picker.team.member.count.official.including.you': '{count, plural, one {Oficiální tým {verifiedIcon} • {count} člen, včetně vás} few {Oficiální tým {verifiedIcon} • {count} členové, včetně vás} many {Oficiální tým {verifiedIcon} • {count} člena, včetně vás} other {Oficiální tým {verifiedIcon} • {count} členů, včetně vás}}',
49
+ 'fabric.elements.user-picker.team.type.label': 'Týmy',
50
+ 'fabric.elements.user-picker.user.type.label': 'Lidé'
51
+ };
@@ -5,6 +5,47 @@
5
5
  * This file is automatically generated by Traduki 2.0.
6
6
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
7
7
  */
8
-
9
- import translations from '@atlaskit/afm-i18n-platform-elements-user-picker/i18n/da';
10
- export default translations;
8
+ //Danish (Denmark)
9
+ export default {
10
+ 'fabric.elements.user-picker.custom.type.label': 'Brugerdefineret',
11
+ 'fabric.elements.user-picker.email.add': 'Tilføj bruger',
12
+ 'fabric.elements.user-picker.email.add.potential': 'Indtast en e-mailadresse',
13
+ 'fabric.elements.user-picker.email.select.to.add': 'Vælg en e-mailadresse',
14
+ 'fabric.elements.user-picker.email.type.label': 'E-mails',
15
+ 'fabric.elements.user-picker.error.message': 'Noget gik galt',
16
+ 'fabric.elements.user-picker.external.sourced.error': 'Vi kan ikke oprette forbindelse lige nu.',
17
+ 'fabric.elements.user-picker.external.sourced.from': 'Fundet i:',
18
+ 'fabric.elements.user-picker.external.user.type.label': 'Eksterne brugere',
19
+ 'fabric.elements.user-picker.github.provider': 'GitHub',
20
+ 'fabric.elements.user-picker.google.provider': 'Google',
21
+ 'fabric.elements.user-picker.group.byline': 'Administreret gruppe',
22
+ 'fabric.elements.user-picker.group.byline.admin-managed': 'Administratorgruppe {verifiedIcon}',
23
+ 'fabric.elements.user-picker.group.type.label': 'Grupper',
24
+ 'fabric.elements.user-picker.guest.lozenge.text': 'GÆST',
25
+ 'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Gæstegrupper har kun adgang til bestemte områder og har begrænset adgang til brugeroplysninger.',
26
+ 'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Gæster har kun adgang til bestemte områder og har begrænset adgang til brugeroplysninger.',
27
+ 'fabric.elements.user-picker.member.lozenge.text': 'Medlem',
28
+ 'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
29
+ 'fabric.elements.user-picker.multi.remove-item': 'Fjern',
30
+ 'fabric.elements.user-picker.other.type.label': 'Andet',
31
+ 'fabric.elements.user-picker.placeholder': 'Indtast personer eller hold ...',
32
+ 'fabric.elements.user-picker.placeholder.add-more': 'tilføj flere personer ...',
33
+ 'fabric.elements.user-picker.single.clear': 'Ryd',
34
+ 'fabric.elements.user-picker.slack.provider': 'Slack',
35
+ 'fabric.elements.user-picker.source.confluence': 'Confluence',
36
+ 'fabric.elements.user-picker.source.jira': 'Jira',
37
+ 'fabric.elements.user-picker.source.other-atlassian': 'Andre Atlassian-produkter',
38
+ 'fabric.elements.user-picker.source.other-atlassian-appify': 'Andre Atlassian-apps',
39
+ 'fabric.elements.user-picker.team.byline': 'Team',
40
+ 'fabric.elements.user-picker.team.byline.official': 'Officielt team {verifiedIcon}',
41
+ 'fabric.elements.user-picker.team.member.50plus': 'Team • Over 50 medlemmer',
42
+ 'fabric.elements.user-picker.team.member.50plus.including.you': 'Team • Over 50 medlemmer, inklusive dig',
43
+ 'fabric.elements.user-picker.team.member.50plus.official': 'Officielt team {verifiedIcon} • over 50 medlemmer',
44
+ 'fabric.elements.user-picker.team.member.50plus.official.including.you': 'Officielt team {verifiedIcon} • over 50 medlemmer, inklusive dig',
45
+ 'fabric.elements.user-picker.team.member.count': '{count, plural, one {Team • {count} medlem} other {Team • {count} medlemmer}}',
46
+ 'fabric.elements.user-picker.team.member.count.including.you': '{count, plural, one {Team • {count} medlem, inklusive dig} other {Team • {count} medlemmer, inklusive dig}}',
47
+ 'fabric.elements.user-picker.team.member.count.official': '{count, plural, one {Officielt team {verifiedIcon} • {count} medlem} other {Officielt team {verifiedIcon} • {count} medlemmer}}',
48
+ 'fabric.elements.user-picker.team.member.count.official.including.you': '{count, plural, one {Officielt team {verifiedIcon} • {count} medlem, inklusive dig} other {Officielt team {verifiedIcon} • {count} medlemmer, inklusive dig}}',
49
+ 'fabric.elements.user-picker.team.type.label': 'Teams',
50
+ 'fabric.elements.user-picker.user.type.label': 'Personer'
51
+ };