@atlaskit/user-picker 8.0.0 → 8.3.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 (94) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/clients/UserSourceProvider.js +97 -0
  3. package/dist/cjs/components/AddOptionAvatar.js +5 -3
  4. package/dist/cjs/components/AvatarItemOption.js +25 -7
  5. package/dist/cjs/components/ClearIndicator.js +25 -6
  6. package/dist/cjs/components/EmailOption/index.js +29 -0
  7. package/dist/cjs/components/{EmailOption.js → EmailOption/main.js} +7 -5
  8. package/dist/cjs/components/ExternalUserOption/index.js +29 -0
  9. package/dist/cjs/components/{ExternalUserOption.js → ExternalUserOption/main.js} +44 -25
  10. package/dist/cjs/components/ExternalUserSourcesContainer.js +42 -0
  11. package/dist/cjs/components/GroupOption/index.js +29 -0
  12. package/dist/cjs/components/{GroupOption.js → GroupOption/main.js} +8 -6
  13. package/dist/cjs/components/MessagesIntlProvider.js +3 -4
  14. package/dist/cjs/components/Option.js +26 -13
  15. package/dist/cjs/components/PopupControl.js +4 -2
  16. package/dist/cjs/components/TeamOption/index.js +29 -0
  17. package/dist/cjs/components/{TeamOption.js → TeamOption/main.js} +8 -6
  18. package/dist/cjs/components/UserOption.js +5 -3
  19. package/dist/cjs/components/UserPicker.js +8 -3
  20. package/dist/cjs/components/assets/github.js +3 -1
  21. package/dist/cjs/components/assets/google.js +6 -4
  22. package/dist/cjs/components/assets/microsoft.js +7 -5
  23. package/dist/cjs/components/assets/slack.js +11 -9
  24. package/dist/cjs/components/i18n.js +5 -0
  25. package/dist/cjs/components/styles.js +9 -7
  26. package/dist/cjs/version.json +1 -1
  27. package/dist/es2019/clients/UserSourceProvider.js +56 -0
  28. package/dist/es2019/components/AddOptionAvatar.js +3 -3
  29. package/dist/es2019/components/AvatarItemOption.js +15 -6
  30. package/dist/es2019/components/ClearIndicator.js +14 -5
  31. package/dist/es2019/components/EmailOption/index.js +9 -0
  32. package/dist/es2019/components/{EmailOption.js → EmailOption/main.js} +6 -5
  33. package/dist/es2019/components/ExternalUserOption/index.js +9 -0
  34. package/dist/es2019/components/{ExternalUserOption.js → ExternalUserOption/main.js} +39 -23
  35. package/dist/es2019/components/ExternalUserSourcesContainer.js +27 -0
  36. package/dist/es2019/components/GroupOption/index.js +9 -0
  37. package/dist/es2019/components/{GroupOption.js → GroupOption/main.js} +7 -6
  38. package/dist/es2019/components/MessagesIntlProvider.js +3 -3
  39. package/dist/es2019/components/Option.js +23 -9
  40. package/dist/es2019/components/PopupControl.js +3 -2
  41. package/dist/es2019/components/TeamOption/index.js +9 -0
  42. package/dist/es2019/components/{TeamOption.js → TeamOption/main.js} +7 -6
  43. package/dist/es2019/components/UserOption.js +4 -3
  44. package/dist/es2019/components/UserPicker.js +7 -3
  45. package/dist/es2019/components/assets/github.js +2 -1
  46. package/dist/es2019/components/assets/google.js +5 -4
  47. package/dist/es2019/components/assets/microsoft.js +6 -5
  48. package/dist/es2019/components/assets/slack.js +10 -9
  49. package/dist/es2019/components/i18n.js +5 -0
  50. package/dist/es2019/components/styles.js +8 -7
  51. package/dist/es2019/version.json +1 -1
  52. package/dist/esm/clients/UserSourceProvider.js +73 -0
  53. package/dist/esm/components/AddOptionAvatar.js +4 -3
  54. package/dist/esm/components/AvatarItemOption.js +17 -6
  55. package/dist/esm/components/ClearIndicator.js +16 -5
  56. package/dist/esm/components/EmailOption/index.js +11 -0
  57. package/dist/esm/components/{EmailOption.js → EmailOption/main.js} +6 -5
  58. package/dist/esm/components/ExternalUserOption/index.js +11 -0
  59. package/dist/esm/components/{ExternalUserOption.js → ExternalUserOption/main.js} +41 -25
  60. package/dist/esm/components/ExternalUserSourcesContainer.js +29 -0
  61. package/dist/esm/components/GroupOption/index.js +11 -0
  62. package/dist/esm/components/{GroupOption.js → GroupOption/main.js} +7 -6
  63. package/dist/esm/components/MessagesIntlProvider.js +4 -4
  64. package/dist/esm/components/Option.js +25 -12
  65. package/dist/esm/components/PopupControl.js +3 -2
  66. package/dist/esm/components/TeamOption/index.js +11 -0
  67. package/dist/esm/components/{TeamOption.js → TeamOption/main.js} +7 -6
  68. package/dist/esm/components/UserOption.js +4 -3
  69. package/dist/esm/components/UserPicker.js +7 -3
  70. package/dist/esm/components/assets/github.js +2 -1
  71. package/dist/esm/components/assets/google.js +5 -4
  72. package/dist/esm/components/assets/microsoft.js +6 -5
  73. package/dist/esm/components/assets/slack.js +10 -9
  74. package/dist/esm/components/i18n.js +5 -0
  75. package/dist/esm/components/styles.js +8 -7
  76. package/dist/esm/version.json +1 -1
  77. package/dist/types/clients/UserSourceProvider.d.ts +11 -0
  78. package/dist/types/components/BaseUserPicker.d.ts +1 -1
  79. package/dist/types/components/EmailOption/index.d.ts +3 -0
  80. package/dist/types/components/{EmailOption.d.ts → EmailOption/main.d.ts} +2 -2
  81. package/dist/types/components/ExternalUserOption/index.d.ts +3 -0
  82. package/dist/types/components/{ExternalUserOption.d.ts → ExternalUserOption/main.d.ts} +1 -1
  83. package/dist/types/components/ExternalUserSourcesContainer.d.ts +14 -0
  84. package/dist/types/components/GroupOption/index.d.ts +3 -0
  85. package/dist/types/components/{GroupOption.d.ts → GroupOption/main.d.ts} +1 -1
  86. package/dist/types/components/MessagesIntlProvider.d.ts +2 -8
  87. package/dist/types/components/Option.d.ts +4 -1
  88. package/dist/types/components/PopupUserPicker.d.ts +1 -1
  89. package/dist/types/components/TeamOption/index.d.ts +3 -0
  90. package/dist/types/components/{TeamOption.d.ts → TeamOption/main.d.ts} +1 -1
  91. package/dist/types/components/UserPicker.d.ts +1 -1
  92. package/dist/types/components/i18n.d.ts +5 -0
  93. package/dist/types/types.d.ts +14 -0
  94. package/package.json +15 -2
@@ -55,8 +55,8 @@ var useI18n = function useI18n(locale) {
55
55
  };
56
56
 
57
57
  var MessagesIntlProvider = function MessagesIntlProvider(props) {
58
- var intl = props.intl,
59
- children = props.children;
58
+ var intl = (0, _reactIntlNext.useIntl)();
59
+ var children = props.children;
60
60
  var messages = useI18n(intl.locale);
61
61
  var mergedMessages = (0, _react.useMemo)(function () {
62
62
  return _objectSpread(_objectSpread({}, intl.messages), messages);
@@ -67,6 +67,5 @@ var MessagesIntlProvider = function MessagesIntlProvider(props) {
67
67
  }, children);
68
68
  };
69
69
 
70
- var _default = (0, _reactIntlNext.injectIntl)(MessagesIntlProvider);
71
-
70
+ var _default = MessagesIntlProvider;
72
71
  exports.default = _default;
@@ -11,28 +11,39 @@ var _select = require("@atlaskit/select");
11
11
 
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
 
14
- var _EmailOption = require("./EmailOption");
14
+ var _UserOption = require("./UserOption");
15
15
 
16
- var _TeamOption = require("./TeamOption");
16
+ var _ExternalUserOption = _interopRequireDefault(require("./ExternalUserOption"));
17
17
 
18
- var _UserOption = require("./UserOption");
18
+ var _TeamOption = _interopRequireDefault(require("./TeamOption"));
19
19
 
20
- var _GroupOption = require("./GroupOption");
20
+ var _GroupOption = _interopRequireDefault(require("./GroupOption"));
21
21
 
22
- var _ExternalUserOption = require("./ExternalUserOption");
22
+ var _EmailOption = _interopRequireDefault(require("./EmailOption"));
23
23
 
24
24
  var _utils = require("./utils");
25
25
 
26
26
  var _emailValidation = require("./emailValidation");
27
27
 
28
- var dataOption = function dataOption(_ref) {
28
+ var defaultOption = function defaultOption(_ref) {
29
29
  var data = _ref.data.data,
30
30
  isSelected = _ref.isSelected,
31
- status = _ref.status,
32
- selectProps = _ref.selectProps;
31
+ status = _ref.status;
32
+ return /*#__PURE__*/_react.default.createElement(_UserOption.UserOption, {
33
+ user: data,
34
+ status: status,
35
+ isSelected: isSelected
36
+ });
37
+ };
38
+
39
+ var dataOption = function dataOption(_ref2) {
40
+ var data = _ref2.data.data,
41
+ isSelected = _ref2.isSelected,
42
+ status = _ref2.status,
43
+ selectProps = _ref2.selectProps;
33
44
 
34
45
  if ((0, _utils.isExternalUser)(data)) {
35
- return /*#__PURE__*/_react.default.createElement(_ExternalUserOption.ExternalUserOption, {
46
+ return /*#__PURE__*/_react.default.createElement(_ExternalUserOption.default, {
36
47
  user: data,
37
48
  status: status,
38
49
  isSelected: isSelected
@@ -48,7 +59,7 @@ var dataOption = function dataOption(_ref) {
48
59
  }
49
60
 
50
61
  if ((0, _utils.isEmail)(data)) {
51
- return /*#__PURE__*/_react.default.createElement(_EmailOption.EmailOption, {
62
+ return /*#__PURE__*/_react.default.createElement(_EmailOption.default, {
52
63
  email: data,
53
64
  emailValidity: (0, _emailValidation.isValidEmail)(data.id),
54
65
  isSelected: isSelected,
@@ -57,14 +68,14 @@ var dataOption = function dataOption(_ref) {
57
68
  }
58
69
 
59
70
  if ((0, _utils.isTeam)(data)) {
60
- return /*#__PURE__*/_react.default.createElement(_TeamOption.TeamOption, {
71
+ return /*#__PURE__*/_react.default.createElement(_TeamOption.default, {
61
72
  team: data,
62
73
  isSelected: isSelected
63
74
  });
64
75
  }
65
76
 
66
77
  if ((0, _utils.isGroup)(data)) {
67
- return /*#__PURE__*/_react.default.createElement(_GroupOption.GroupOption, {
78
+ return /*#__PURE__*/_react.default.createElement(_GroupOption.default, {
68
79
  group: data,
69
80
  isSelected: isSelected
70
81
  });
@@ -74,7 +85,9 @@ var dataOption = function dataOption(_ref) {
74
85
  };
75
86
 
76
87
  var Option = function Option(props) {
77
- return /*#__PURE__*/_react.default.createElement(_select.components.Option, props, dataOption(props));
88
+ return /*#__PURE__*/_react.default.createElement(_select.components.Option, props, /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
89
+ fallback: defaultOption(props)
90
+ }, dataOption(props)));
78
91
  };
79
92
 
80
93
  exports.Option = Option;
@@ -25,6 +25,8 @@ var _react = _interopRequireDefault(require("react"));
25
25
 
26
26
  var _components = require("@atlaskit/theme/components");
27
27
 
28
+ var _tokens = require("@atlaskit/tokens");
29
+
28
30
  var _constants = require("@atlaskit/theme/constants");
29
31
 
30
32
  var _select = require("@atlaskit/select");
@@ -52,8 +54,8 @@ var lineHeight = innerHeight / fontSize;
52
54
  var ControlWrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n padding: 0px ", "px ", "px;\n"])), spacing, spacing);
53
55
 
54
56
  var getColor = (0, _components.themed)({
55
- light: _colors.N200,
56
- dark: _colors.DN90
57
+ light: (0, _tokens.token)('color.text.lowEmphasis', _colors.N200),
58
+ dark: (0, _tokens.token)('color.text.lowEmphasis', _colors.DN90)
57
59
  });
58
60
 
59
61
  var getPadding = function getPadding() {
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ 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); }
15
+
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2.default)(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ var AsyncTeamOption = /*#__PURE__*/_react.default.lazy(function () {
19
+ return Promise.resolve().then(function () {
20
+ return _interopRequireWildcard(require('./main'));
21
+ }).then(function (module) {
22
+ return {
23
+ default: module.TeamOption
24
+ };
25
+ });
26
+ });
27
+
28
+ var _default = AsyncTeamOption;
29
+ exports.default = _default;
@@ -25,17 +25,19 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
25
 
26
26
  var _colors = require("@atlaskit/theme/colors");
27
27
 
28
+ var _tokens = require("@atlaskit/tokens");
29
+
28
30
  var _react = _interopRequireDefault(require("react"));
29
31
 
30
32
  var _reactIntlNext = require("react-intl-next");
31
33
 
32
- var _AvatarItemOption = require("./AvatarItemOption");
34
+ var _AvatarItemOption = require(".././AvatarItemOption");
33
35
 
34
- var _HighlightText = require("./HighlightText");
36
+ var _HighlightText = require(".././HighlightText");
35
37
 
36
- var _i18n = require("./i18n");
38
+ var _i18n = require(".././i18n");
37
39
 
38
- var _SizeableAvatar = require("./SizeableAvatar");
40
+ var _SizeableAvatar = require(".././SizeableAvatar");
39
41
 
40
42
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
41
43
 
@@ -62,7 +64,7 @@ var TeamOption = /*#__PURE__*/function (_React$PureComponent) {
62
64
  highlight = _this$props$team.highlight;
63
65
  return [/*#__PURE__*/_react.default.createElement(_AvatarItemOption.TextWrapper, {
64
66
  key: "name",
65
- color: _this.props.isSelected ? _colors.B400 : _colors.N800
67
+ color: _this.props.isSelected ? (0, _tokens.token)('color.text.selected', _colors.B400) : (0, _tokens.token)('color.text.highEmphasis', _colors.N800)
66
68
  }, /*#__PURE__*/_react.default.createElement(_HighlightText.HighlightText, {
67
69
  highlights: highlight && highlight.name
68
70
  }, name))];
@@ -102,7 +104,7 @@ var TeamOption = /*#__PURE__*/function (_React$PureComponent) {
102
104
  });
103
105
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getBylineComponent", function (isSelected, message) {
104
106
  return /*#__PURE__*/_react.default.createElement(_AvatarItemOption.TextWrapper, {
105
- color: isSelected ? _colors.B400 : _colors.N200
107
+ color: isSelected ? (0, _tokens.token)('color.text.selected', _colors.B400) : (0, _tokens.token)('color.text.lowEmphasis', _colors.N200)
106
108
  }, message);
107
109
  });
108
110
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderAvatar", function () {
@@ -23,6 +23,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
23
23
 
24
24
  var _colors = require("@atlaskit/theme/colors");
25
25
 
26
+ var _tokens = require("@atlaskit/tokens");
27
+
26
28
  var _react = _interopRequireDefault(require("react"));
27
29
 
28
30
  var _AvatarItemOption = require("./AvatarItemOption");
@@ -59,7 +61,7 @@ var UserOption = /*#__PURE__*/function (_React$PureComponent) {
59
61
  highlight = _this$props$user.highlight;
60
62
  var result = [/*#__PURE__*/_react.default.createElement(_AvatarItemOption.TextWrapper, {
61
63
  key: "name",
62
- color: _this.props.isSelected ? _colors.B400 : _colors.N800
64
+ color: _this.props.isSelected ? (0, _tokens.token)('color.text.selected', _colors.B400) : (0, _tokens.token)('color.text.highEmphasis', _colors.N800)
63
65
  }, /*#__PURE__*/_react.default.createElement(_HighlightText.HighlightText, {
64
66
  highlights: highlight && highlight.name
65
67
  }, name))];
@@ -68,7 +70,7 @@ var UserOption = /*#__PURE__*/function (_React$PureComponent) {
68
70
  result.push( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
69
71
  key: "publicName"
70
72
  }, ' ', /*#__PURE__*/_react.default.createElement(_AvatarItemOption.TextWrapper, {
71
- color: _this.props.isSelected ? _colors.B400 : _colors.N200
73
+ color: _this.props.isSelected ? (0, _tokens.token)('color.text.selected', _colors.B400) : (0, _tokens.token)('color.text.lowEmphasis', _colors.N200)
72
74
  }, "(", /*#__PURE__*/_react.default.createElement(_HighlightText.HighlightText, {
73
75
  highlights: highlight && highlight.publicName
74
76
  }, publicName), ")")));
@@ -78,7 +80,7 @@ var UserOption = /*#__PURE__*/function (_React$PureComponent) {
78
80
  });
79
81
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderSecondaryText", function () {
80
82
  return _this.props.user.byline ? /*#__PURE__*/_react.default.createElement(_AvatarItemOption.TextWrapper, {
81
- color: _this.props.isSelected ? _colors.B400 : _colors.N200
83
+ color: _this.props.isSelected ? (0, _tokens.token)('color.text.selected', _colors.B400) : (0, _tokens.token)('color.text.lowEmphasis', _colors.N200)
82
84
  }, _this.props.user.byline) : undefined;
83
85
  });
84
86
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderAvatar", function () {
@@ -41,6 +41,8 @@ var _creatableEmailSuggestion = require("./creatableEmailSuggestion");
41
41
 
42
42
  var _MessagesIntlProvider = _interopRequireDefault(require("./MessagesIntlProvider"));
43
43
 
44
+ var _UserSourceProvider = require("./../clients/UserSourceProvider");
45
+
44
46
  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); }
45
47
 
46
48
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -77,7 +79,8 @@ var UserPickerWithoutAnalytics = /*#__PURE__*/function (_React$Component) {
77
79
  menuPosition = _this$props.menuPosition,
78
80
  menuShouldBlockScroll = _this$props.menuShouldBlockScroll,
79
81
  captureMenuScroll = _this$props.captureMenuScroll,
80
- closeMenuOnScroll = _this$props.closeMenuOnScroll;
82
+ closeMenuOnScroll = _this$props.closeMenuOnScroll,
83
+ loadUserSource = _this$props.loadUserSource;
81
84
  var width = this.props.width;
82
85
  var SelectComponent = allowEmail ? _select.CreatableSelect : _select.default;
83
86
  var creatableProps = suggestEmailsForDomain ? (0, _creatableEmailSuggestion.getCreatableSuggestedEmailProps)(suggestEmailsForDomain, isValidEmail) : (0, _creatable.getCreatableProps)(isValidEmail);
@@ -91,13 +94,15 @@ var UserPickerWithoutAnalytics = /*#__PURE__*/function (_React$Component) {
91
94
  var pickerProps = allowEmail ? _objectSpread(_objectSpread(_objectSpread({}, defaultPickerProps), creatableProps), {}, {
92
95
  emailLabel: emailLabel
93
96
  }) : _objectSpread({}, defaultPickerProps);
94
- return /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, /*#__PURE__*/_react.default.createElement(_BaseUserPicker.BaseUserPickerWithoutAnalytics, (0, _extends2.default)({}, this.props, {
97
+ return /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, /*#__PURE__*/_react.default.createElement(_UserSourceProvider.ExusUserSourceProvider, {
98
+ fetchUserSource: loadUserSource
99
+ }, /*#__PURE__*/_react.default.createElement(_BaseUserPicker.BaseUserPickerWithoutAnalytics, (0, _extends2.default)({}, this.props, {
95
100
  width: width,
96
101
  SelectComponent: SelectComponent,
97
102
  styles: (0, _styles.getStyles)(width, isMulti, this.props.styles),
98
103
  components: (0, _components.getComponents)(isMulti, anchor),
99
104
  pickerProps: pickerProps
100
- })));
105
+ }))));
101
106
  }
102
107
  }]);
103
108
  return UserPickerWithoutAnalytics;
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
 
14
+ var _tokens = require("@atlaskit/tokens");
15
+
14
16
  function GitHubIcon(props) {
15
17
  return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({
16
18
  width: "12",
@@ -22,6 +24,6 @@ function GitHubIcon(props) {
22
24
  fillRule: "evenodd",
23
25
  clipRule: "evenodd",
24
26
  d: "M11.9778 0C5.3635 0 0 5.45261 0 12.179C0 17.5601 3.432 22.1253 8.19114 23.7357C8.78975 23.8484 9.00952 23.4715 9.00952 23.1498C9.00952 22.8594 8.99841 21.9 8.99326 20.8823C5.66103 21.6191 4.95789 19.4454 4.95789 19.4454C4.41303 18.0376 3.62796 17.6633 3.62796 17.6633C2.54122 16.9074 3.70988 16.923 3.70988 16.923C4.91266 17.0089 5.54598 18.178 5.54598 18.178C6.61428 20.0399 8.34803 19.5016 9.03154 19.1904C9.13904 18.4033 9.44945 17.866 9.792 17.5619C7.13157 17.2539 4.33487 16.2096 4.33487 11.5429C4.33487 10.2133 4.80278 9.12682 5.56899 8.27391C5.44463 7.96716 5.03464 6.72844 5.68502 5.05087C5.68502 5.05087 6.69084 4.72354 8.97976 6.29927C9.9352 6.02942 10.9599 5.89409 11.9778 5.88945C12.9957 5.89409 14.0212 6.02942 14.9784 6.29927C17.2645 4.72354 18.269 5.05087 18.269 5.05087C18.9209 6.72844 18.5107 7.96716 18.3864 8.27391C19.1544 9.12682 19.6191 10.2133 19.6191 11.5429C19.6191 16.2207 16.8171 17.2507 14.1499 17.5522C14.5795 17.9301 14.9623 18.6713 14.9623 19.8076C14.9623 21.4371 14.9484 22.7487 14.9484 23.1498C14.9484 23.4739 15.164 23.8537 15.7712 23.7341C20.5277 22.1219 23.9554 17.5582 23.9554 12.179C23.9554 5.45261 18.5927 0 11.9778 0Z",
25
- fill: "white"
27
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
26
28
  }));
27
29
  }
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
 
14
+ var _tokens = require("@atlaskit/tokens");
15
+
14
16
  function GoogleIcon(props) {
15
17
  return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({
16
18
  width: "12",
@@ -22,21 +24,21 @@ function GoogleIcon(props) {
22
24
  fillRule: "evenodd",
23
25
  clipRule: "evenodd",
24
26
  d: "M8.32062 3.21332L10.014 1.55999C8.97396 0.593331 7.62063 0 6.00062 0C3.65396 0 1.62729 1.34666 0.640625 3.30665L2.58062 4.81331C3.06729 3.36665 4.41396 2.31999 6.00062 2.31999C7.12729 2.31999 7.88729 2.80665 8.32062 3.21332Z",
25
- fill: "white"
27
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
26
28
  }), /*#__PURE__*/_react.default.createElement("path", {
27
29
  fillRule: "evenodd",
28
30
  clipRule: "evenodd",
29
31
  d: "M11.76 6.13291C11.76 5.63958 11.72 5.27958 11.6333 4.90625H6V7.13291H9.30667C9.24 7.68624 8.88 8.51957 8.08 9.07957L9.97333 10.5462C11.1067 9.49956 11.76 7.95957 11.76 6.13291V6.13291V6.13291Z",
30
- fill: "white"
32
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
31
33
  }), /*#__PURE__*/_react.default.createElement("path", {
32
34
  fillRule: "evenodd",
33
35
  clipRule: "evenodd",
34
36
  d: "M2.58667 7.18662C2.46 6.81329 2.38667 6.41329 2.38667 5.99996C2.38667 5.58663 2.46 5.18663 2.58 4.8133L0.64 3.30664C0.233333 4.11997 0 5.0333 0 5.99996C0 6.96662 0.233333 7.87995 0.64 8.69328L2.58667 7.18662V7.18662Z",
35
- fill: "white"
37
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
36
38
  }), /*#__PURE__*/_react.default.createElement("path", {
37
39
  fillRule: "evenodd",
38
40
  clipRule: "evenodd",
39
41
  d: "M6.00079 12.0008C7.62079 12.0008 8.98079 11.4675 9.97413 10.5475L8.08079 9.08083C7.57413 9.43416 6.89413 9.68082 6.00079 9.68082C4.41413 9.68082 3.06746 8.63416 2.58746 7.1875L0.647461 8.69416C1.63413 10.6542 3.65413 12.0008 6.00079 12.0008V12.0008V12.0008Z",
40
- fill: "white"
42
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
41
43
  }));
42
44
  }
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
 
14
+ var _tokens = require("@atlaskit/tokens");
15
+
14
16
  function MicrosoftIcon(props) {
15
17
  return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({
16
18
  width: "12",
@@ -22,21 +24,21 @@ function MicrosoftIcon(props) {
22
24
  clipPath: "url(#clip0)"
23
25
  }, /*#__PURE__*/_react.default.createElement("path", {
24
26
  d: "M0 0H5.70233V5.7023H0V0Z",
25
- fill: "white"
27
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
26
28
  }), /*#__PURE__*/_react.default.createElement("path", {
27
29
  d: "M6.29785 0H12.0002V5.7023H6.29785V0Z",
28
- fill: "white"
30
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
29
31
  }), /*#__PURE__*/_react.default.createElement("path", {
30
32
  d: "M0 6.29688H5.70233V11.9992H0V6.29688Z",
31
- fill: "white"
33
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
32
34
  }), /*#__PURE__*/_react.default.createElement("path", {
33
35
  d: "M6.29785 6.29688H12.0002V11.9992H6.29785V6.29688Z",
34
- fill: "white"
36
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
35
37
  })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
36
38
  id: "clip0"
37
39
  }, /*#__PURE__*/_react.default.createElement("rect", {
38
40
  width: "12",
39
41
  height: "11.9999",
40
- fill: "white"
42
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
41
43
  }))));
42
44
  }
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
 
14
+ var _tokens = require("@atlaskit/tokens");
15
+
14
16
  function SlackIcon(props) {
15
17
  return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({
16
18
  width: "12",
@@ -22,33 +24,33 @@ function SlackIcon(props) {
22
24
  clipPath: "url(#clip0)"
23
25
  }, /*#__PURE__*/_react.default.createElement("path", {
24
26
  d: "M2.51653 7.5688C2.51653 8.26133 1.9508 8.82706 1.25826 8.82706C0.565731 8.82706 0 8.26133 0 7.5688C0 6.87627 0.565731 6.31055 1.25826 6.31055H2.51653V7.5688Z",
25
- fill: "white"
27
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
26
28
  }), /*#__PURE__*/_react.default.createElement("path", {
27
29
  d: "M3.15039 7.5688C3.15039 6.87627 3.71612 6.31055 4.40865 6.31055C5.10119 6.31055 5.66692 6.87627 5.66692 7.5688V10.7193C5.66692 11.4119 5.10119 11.9776 4.40865 11.9776C3.71612 11.9776 3.15039 11.4119 3.15039 10.7193V7.5688Z",
28
- fill: "white"
30
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
29
31
  }), /*#__PURE__*/_react.default.createElement("path", {
30
32
  d: "M4.40865 2.51651C3.71612 2.51651 3.15039 1.95079 3.15039 1.25826C3.15039 0.565728 3.71612 0 4.40865 0C5.10119 0 5.66692 0.565728 5.66692 1.25826V2.51651H4.40865Z",
31
- fill: "white"
33
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
32
34
  }), /*#__PURE__*/_react.default.createElement("path", {
33
35
  d: "M4.4088 3.15039C5.10133 3.15039 5.66706 3.71612 5.66706 4.40865C5.66706 5.10118 5.10133 5.6669 4.4088 5.6669H1.25826C0.565731 5.6669 0 5.10118 0 4.40865C0 3.71612 0.565731 3.15039 1.25826 3.15039H4.4088Z",
34
- fill: "white"
36
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
35
37
  }), /*#__PURE__*/_react.default.createElement("path", {
36
38
  d: "M9.46094 4.40865C9.46094 3.71612 10.0267 3.15039 10.7192 3.15039C11.4117 3.15039 11.9775 3.71612 11.9775 4.40865C11.9775 5.10118 11.4117 5.6669 10.7192 5.6669H9.46094V4.40865Z",
37
- fill: "white"
39
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
38
40
  }), /*#__PURE__*/_react.default.createElement("path", {
39
41
  d: "M8.8261 4.40878C8.8261 5.10131 8.26036 5.66704 7.56783 5.66704C6.8753 5.66704 6.30957 5.10131 6.30957 4.40878V1.25826C6.30957 0.565728 6.8753 0 7.56783 0C8.26036 0 8.8261 0.565728 8.8261 1.25826V4.40878Z",
40
- fill: "white"
42
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
41
43
  }), /*#__PURE__*/_react.default.createElement("path", {
42
44
  d: "M7.56881 9.46094C8.26134 9.46094 8.82707 10.0267 8.82707 10.7192C8.82707 11.4117 8.26134 11.9775 7.56881 11.9775C6.87628 11.9775 6.31055 11.4117 6.31055 10.7192V9.46094H7.56881Z",
43
- fill: "white"
45
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
44
46
  }), /*#__PURE__*/_react.default.createElement("path", {
45
47
  d: "M7.56881 8.82706C6.87628 8.82706 6.31055 8.26133 6.31055 7.5688C6.31055 6.87627 6.87628 6.31055 7.56881 6.31055H10.7193C11.4119 6.31055 11.9776 6.87627 11.9776 7.5688C11.9776 8.26133 11.4119 8.82706 10.7193 8.82706H7.56881Z",
46
- fill: "white"
48
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
47
49
  })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
48
50
  id: "clip0"
49
51
  }, /*#__PURE__*/_react.default.createElement("rect", {
50
52
  width: "12",
51
53
  height: "11.9999",
52
- fill: "white"
54
+ fill: (0, _tokens.token)('color.text.onBold', 'white')
53
55
  }))));
54
56
  }
@@ -73,6 +73,11 @@ var messages = (0, _reactIntlNext.defineMessages)({
73
73
  defaultMessage: 'Found in:',
74
74
  description: 'From where the external user is coming'
75
75
  },
76
+ externalUserSourcesError: {
77
+ id: 'fabric.elements.user-picker.external.sourced.error',
78
+ defaultMessage: "We can't connect you right now.",
79
+ description: "Error message when we can't fetch a user's import sources"
80
+ },
76
81
  slackProvider: {
77
82
  id: 'fabric.elements.user-picker.slack.provider',
78
83
  defaultMessage: 'Slack',
@@ -15,6 +15,8 @@ var _avatar = require("@atlaskit/avatar");
15
15
 
16
16
  var _colors = require("@atlaskit/theme/colors");
17
17
 
18
+ var _tokens = require("@atlaskit/tokens");
19
+
18
20
  var _memoizeOne = _interopRequireDefault(require("memoize-one"));
19
21
 
20
22
  var _utils = require("./utils");
@@ -46,14 +48,14 @@ var getStyles = (0, _memoizeOne.default)(function (width, isMulti, overrideStyle
46
48
  var isMulti = state.selectProps.isMulti;
47
49
  return _objectSpread(_objectSpread({}, css), {}, {
48
50
  width: width,
49
- borderColor: state.isFocused ? css.borderColor : state.selectProps.subtle || state.selectProps.noBorder ? 'transparent' : _colors.N40,
50
- backgroundColor: state.isFocused ? css['backgroundColor'] : state.selectProps.subtle ? 'transparent' : state.selectProps.textFieldBackgroundColor ? _colors.N10 : _colors.N20,
51
+ borderColor: state.isFocused ? (0, _tokens.token)('color.border.neutral', css.borderColor) : state.selectProps.subtle || state.selectProps.noBorder ? 'transparent' : (0, _tokens.token)('color.border.neutral', _colors.N40),
52
+ backgroundColor: state.isFocused ? (0, _tokens.token)('color.background.default', css['backgroundColor']) : state.selectProps.subtle ? 'transparent' : state.selectProps.textFieldBackgroundColor ? (0, _tokens.token)('color.background.subtleBorderedNeutral.resting', _colors.N10) : (0, _tokens.token)('color.background.subtleNeutral.resting', _colors.N20),
51
53
  '&:hover .fabric-user-picker__clear-indicator': {
52
54
  opacity: 1
53
55
  },
54
56
  ':hover': _objectSpread(_objectSpread({}, css[':hover']), {}, {
55
- borderColor: state.isFocused ? css[':hover'] ? css[':hover'].borderColor : _colors.B100 : state.selectProps.subtle ? state.selectProps.hoveringClearIndicator ? _colors.R50 : _colors.N30 : _colors.N40,
56
- backgroundColor: state.selectProps.subtle && state.selectProps.hoveringClearIndicator ? _colors.R50 : state.isFocused ? css[':hover'] ? css[':hover'].backgroundColor : _colors.N0 : state.isDisabled ? _colors.N10 : _colors.N30
57
+ borderColor: state.isFocused ? css[':hover'] ? (0, _tokens.token)('color.border.focus', css[':hover'].borderColor) : (0, _tokens.token)('color.border.focus', _colors.B100) : state.selectProps.subtle ? state.selectProps.hoveringClearIndicator ? (0, _tokens.token)('color.iconBorder.danger', _colors.R50) : (0, _tokens.token)('color.border.neutral', _colors.N30) : (0, _tokens.token)('color.border.neutral', _colors.N40),
58
+ backgroundColor: state.selectProps.subtle && state.selectProps.hoveringClearIndicator ? (0, _tokens.token)('color.background.subtleDanger.resting', _colors.R50) : state.isFocused ? css[':hover'] ? (0, _tokens.token)('color.background.default', css[':hover'].backgroundColor) : (0, _tokens.token)('color.background.default', _colors.N0) : state.isDisabled ? (0, _tokens.token)('color.background.disabled', _colors.N10) : (0, _tokens.token)('color.background.default', _colors.N30)
57
59
  }),
58
60
  padding: 0,
59
61
  minHeight: isCompact ? 'none' : 44,
@@ -76,7 +78,7 @@ var getStyles = (0, _memoizeOne.default)(function (width, isMulti, overrideStyle
76
78
  paddingTop: 0,
77
79
  padding: 0,
78
80
  ':hover': {
79
- color: _colors.R400
81
+ color: (0, _tokens.token)('color.text.danger', _colors.R400)
80
82
  }
81
83
  });
82
84
  },
@@ -172,14 +174,14 @@ var getStyles = (0, _memoizeOne.default)(function (width, isMulti, overrideStyle
172
174
  paddingLeft: isMulti ? 0 : AVATAR_PADDING,
173
175
  '& input::placeholder': {
174
176
  /* Chrome, Firefox, Opera, Safari 10.1+ */
175
- color: _colors.N100,
177
+ color: (0, _tokens.token)('color.text.lowEmphasis', _colors.N100),
176
178
  opacity: 1
177
179
  /* Firefox */
178
180
 
179
181
  },
180
182
  '& input:-ms-input-placeholder': {
181
183
  /* Internet Explorer 10-11 */
182
- color: _colors.N100
184
+ color: (0, _tokens.token)('color.text.lowEmphasis', _colors.N100)
183
185
  }
184
186
  });
185
187
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/user-picker",
3
- "version": "8.0.0",
3
+ "version": "8.3.0",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1,56 @@
1
+ import React, { createContext, useContext, useEffect, useMemo, useState } from 'react';
2
+ const ExusUserSourceContext = /*#__PURE__*/createContext({});
3
+ export const ExusUserSourceProvider = ({
4
+ fetchUserSource,
5
+ children
6
+ }) => /*#__PURE__*/React.createElement(ExusUserSourceContext.Provider, {
7
+ value: {
8
+ fetchUserSource
9
+ }
10
+ }, children);
11
+ export const useUserSource = (accountId, existingSources) => {
12
+ const {
13
+ fetchUserSource
14
+ } = useContext(ExusUserSourceContext);
15
+ const [sources, setUserSources] = useState(new Set(existingSources));
16
+ const [loading, setLoading] = useState(true);
17
+ const [error, setError] = useState(null);
18
+ const abortController = useMemo(() => {
19
+ if (typeof AbortController === 'undefined') {
20
+ return;
21
+ }
22
+
23
+ return new AbortController();
24
+ }, []);
25
+ useEffect(() => {
26
+ let isMounted = true;
27
+
28
+ const cleanup = () => {
29
+ abortController === null || abortController === void 0 ? void 0 : abortController.abort();
30
+ isMounted = false;
31
+ };
32
+
33
+ if (!fetchUserSource) {
34
+ setLoading(false);
35
+ return cleanup;
36
+ }
37
+
38
+ if (isMounted) {
39
+ fetchUserSource(accountId, abortController === null || abortController === void 0 ? void 0 : abortController.signal).then(externalSources => {
40
+ setLoading(false);
41
+ const externalSourceTypes = externalSources.map(source => source.sourceType);
42
+ setUserSources(new Set([...sources, ...externalSourceTypes]));
43
+ }).catch(error => {
44
+ setLoading(false);
45
+ setError(error);
46
+ });
47
+ }
48
+
49
+ return cleanup;
50
+ }, [fetchUserSource, accountId, sources, abortController]);
51
+ return {
52
+ sources: Array.from(sources),
53
+ loading,
54
+ error
55
+ };
56
+ };
@@ -1,12 +1,12 @@
1
1
  import EmailIcon from '@atlaskit/icon/glyph/email';
2
2
  import { N40, N500 } from '@atlaskit/theme/colors';
3
+ import { token } from '@atlaskit/tokens';
3
4
  import React from 'react';
4
5
  import styled from 'styled-components';
5
6
  const EmailAvatarWrapper = styled.span`
6
- color: black;
7
7
  padding: ${props => props.isLozenge ? 0 : 4}px;
8
8
 
9
- background-color: ${N40};
9
+ background-color: ${token('color.background.subtleNeutral.resting', N40)};
10
10
  border-radius: 50%;
11
11
  display: flex;
12
12
  align-items: center;
@@ -20,6 +20,6 @@ export const AddOptionAvatar = ({
20
20
  }, /*#__PURE__*/React.createElement(EmailIcon, {
21
21
  label: label,
22
22
  size: isLozenge ? 'small' : 'medium',
23
- primaryColor: N500
23
+ primaryColor: token('color.text.mediumEmphasis', N500)
24
24
  }));
25
25
  };
@@ -1,8 +1,15 @@
1
1
  import React from 'react';
2
2
  import styled from 'styled-components';
3
3
  import { B400 } from '@atlaskit/theme/colors';
4
+ import { token } from '@atlaskit/tokens';
4
5
  import Lozenge from '@atlaskit/lozenge';
5
- import Tooltip from '@atlaskit/tooltip';
6
+ const AsyncTooltip = /*#__PURE__*/React.lazy(() => import(
7
+ /* webpackChunkName: "@atlaskit-internal_@atlaskit/tooltip" */
8
+ '@atlaskit/tooltip').then(module => {
9
+ return {
10
+ default: module.default
11
+ };
12
+ }));
6
13
  const Wrapper = styled.span`
7
14
  align-items: center;
8
15
  box-sizing: border-box;
@@ -15,13 +22,13 @@ const Wrapper = styled.span`
15
22
  `;
16
23
  const Text = styled.span`
17
24
  margin: 0;
18
- color: ${B400};
25
+ color: ${token('color.text.selected', B400)};
19
26
  overflow-x: hidden;
20
27
  text-overflow: ellipsis;
21
28
  white-space: nowrap;
22
29
  ${({
23
30
  secondary
24
- }) => secondary && `color: ${B400}; font-size: 0.85em;`}
31
+ }) => secondary && `color: ${token('color.text.selected', B400)}; font-size: 0.85em;`}
25
32
  `;
26
33
  const AdditionalInfo = styled.span`
27
34
  float: right;
@@ -53,12 +60,14 @@ export const AvatarItemOption = ({
53
60
  }
54
61
  }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Text, null, primaryText), /*#__PURE__*/React.createElement(AdditionalInfo, {
55
62
  withTooltip: Boolean(sourcesInfoTooltip)
56
- }, !sourcesInfoTooltip && lozenge && lozenge.text && (lozenge.tooltip ?
63
+ }, !sourcesInfoTooltip && (lozenge === null || lozenge === void 0 ? void 0 : lozenge.text) && (lozenge !== null && lozenge !== void 0 && lozenge.tooltip ?
57
64
  /*#__PURE__*/
58
65
  // Note that entire Lozenge must be wrapped in the Tooltip (rather than just the
59
66
  // Lozenge text) or tooltip won't work
60
- React.createElement(Tooltip, {
67
+ React.createElement(React.Suspense, {
68
+ fallback: /*#__PURE__*/React.createElement(Lozenge, lozenge, lozenge.text)
69
+ }, /*#__PURE__*/React.createElement(AsyncTooltip, {
61
70
  content: lozenge.tooltip
62
- }, /*#__PURE__*/React.createElement(Lozenge, lozenge, lozenge.text)) : /*#__PURE__*/React.createElement(Lozenge, lozenge, lozenge.text)), sourcesInfoTooltip)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Text, {
71
+ }, /*#__PURE__*/React.createElement(Lozenge, lozenge, lozenge.text))) : /*#__PURE__*/React.createElement(Lozenge, lozenge, lozenge.text)), sourcesInfoTooltip)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Text, {
63
72
  secondary: true
64
73
  }, secondaryText))));