superdesk-ui-framework 3.1.14 → 3.1.16

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 (37) hide show
  1. package/app/img/AvatarDefaultImage.svg +6 -0
  2. package/app/styles/_avatar.scss +28 -6
  3. package/app/styles/components/_sd-loader.scss +18 -5
  4. package/app/styles/design-tokens/_new-colors.scss +32 -17
  5. package/app-typescript/components/Button.tsx +1 -1
  6. package/app-typescript/components/DatePicker.tsx +6 -0
  7. package/app-typescript/components/Loader.tsx +23 -5
  8. package/app-typescript/components/avatar/avatar-group.tsx +2 -1
  9. package/app-typescript/components/avatar/avatar-image.tsx +1 -1
  10. package/app-typescript/components/avatar/avatar-placeholder.tsx +0 -1
  11. package/app-typescript/components/avatar/avatar-wrapper.tsx +14 -2
  12. package/app-typescript/components/avatar/avatar.tsx +8 -1
  13. package/dist/components/Avatar.tsx +97 -40
  14. package/dist/components/Buttons.tsx +5 -3
  15. package/dist/components/Index.tsx +157 -128
  16. package/dist/components/Loader.tsx +24 -0
  17. package/dist/examples.bundle.js +351 -243
  18. package/dist/playgrounds/react-playgrounds/TestGround.tsx +30 -10
  19. package/dist/superdesk-ui.bundle.css +68 -26
  20. package/dist/superdesk-ui.bundle.js +95 -84
  21. package/examples/pages/components/Avatar.tsx +97 -40
  22. package/examples/pages/components/Buttons.tsx +5 -3
  23. package/examples/pages/components/Index.tsx +157 -128
  24. package/examples/pages/components/Loader.tsx +24 -0
  25. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +30 -10
  26. package/package.json +1 -1
  27. package/react/components/Button.js +1 -1
  28. package/react/components/DatePicker.js +4 -0
  29. package/react/components/Loader.d.ts +11 -3
  30. package/react/components/Loader.js +6 -2
  31. package/react/components/avatar/avatar-group.js +2 -2
  32. package/react/components/avatar/avatar-image.js +1 -1
  33. package/react/components/avatar/avatar-placeholder.js +1 -1
  34. package/react/components/avatar/avatar-wrapper.d.ts +4 -1
  35. package/react/components/avatar/avatar-wrapper.js +4 -2
  36. package/react/components/avatar/avatar.d.ts +4 -0
  37. package/react/components/avatar/avatar.js +2 -2
@@ -47,10 +47,14 @@ var Loader = /** @class */ (function (_super) {
47
47
  }
48
48
  Loader.prototype.render = function () {
49
49
  if (this.props.overlay) {
50
- return (React.createElement("div", { className: 'sd-loader' }));
50
+ return (React.createElement("div", { className: "sd-loader", style: { backgroundColor: this.props.backgroundColor } }));
51
51
  }
52
52
  else {
53
- return null;
53
+ return (React.createElement("div", { className: "sd-loader--inline", style: {
54
+ width: this.props.width,
55
+ height: this.props.height,
56
+ backgroundColor: this.props.backgroundColor,
57
+ } }));
54
58
  }
55
59
  };
56
60
  return Loader;
@@ -110,7 +110,7 @@ var AvatarGroup = /** @class */ (function (_super) {
110
110
  isAvatar(item)
111
111
  && item.displayName,
112
112
  isAvatar(item)
113
- ? (React.createElement(avatar_1.Avatar, { size: 'small', imageUrl: item.imageUrl, initials: item.initials, displayName: item.displayName, icon: item.icon }))
113
+ ? (React.createElement(avatar_1.Avatar, { size: 'small', imageUrl: item.imageUrl, initials: item.initials, displayName: item.displayName, icon: item.icon, statusDot: item.statusDot }))
114
114
  : (React.createElement(avatar_placeholder_1.AvatarPlaceholder, { kind: 'plus-button', size: 'small', icon: item.icon, onClick: item.onClick })))
115
115
  : React.createElement("div", null,
116
116
  React.createElement(avatar_placeholder_1.AvatarPlaceholder, { kind: 'plus-button', size: 'small', icon: item.icon, onClick: isAvatar(item) ? undefined : item.onClick, key: index })));
@@ -124,7 +124,7 @@ var AvatarGroup = /** @class */ (function (_super) {
124
124
  }
125
125
  }),
126
126
  itemsOverLimit > 0 && (React.createElement(PlusButtonWrapper, { onToggle: onToggle },
127
- React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, isEmpty: false },
127
+ React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size },
128
128
  React.createElement(avatar_number_1.AvatarContentNumber, { number: "".concat(itemsOverLimit) })))))); }));
129
129
  };
130
130
  return AvatarGroup;
@@ -65,7 +65,7 @@ var AvatarContentImage = /** @class */ (function (_super) {
65
65
  if (imageUrl == null) {
66
66
  return (React.createElement("span", __assign({}, maybeButtonProps, { className: "sd-avatar-content sd-avatar-content--dummy-img", title: tooltipText }),
67
67
  React.createElement("svg", { width: "200", height: "200", viewBox: "0 0 200 200", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
68
- React.createElement("circle", { cx: "100", cy: "100", r: "100", fill: "white", fillOpacity: "0.01" }),
68
+ React.createElement("circle", { cx: "100", cy: "100", r: "100", fill: "white", fillOpacity: "0" }),
69
69
  React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M40 153V145.384C40 141.557 41.16 137.981 43.16 135C49.14 126.057 66.24 119.711 77.14 118C82.74 117.115 90.16 116.538 100 116.538C109.84 116.538 117.26 117.115 122.86 118C133.76 119.711 150.86 126.057 156.84 135C158.84 137.981 160 141.557 160 145.384V153C150 165 130 180 100 180C70 180 50 165 40 153ZM100 30C122.08 30 140 47.2307 140 68.4614C140 89.6922 122.08 106.923 100 106.923C77.92 106.923 60 89.6922 60 68.4614C60 47.2307 77.92 30 100 30Z", fill: "var(--sd-colour-avatar-dummy)", fillOpacity: "1" }))));
70
70
  }
71
71
  else {
@@ -50,7 +50,7 @@ var AvatarPlaceholder = /** @class */ (function (_super) {
50
50
  }
51
51
  AvatarPlaceholder.prototype.render = function () {
52
52
  var _a = this.props, size = _a.size, tooltip = _a.tooltip, icon = _a.icon, kind = _a.kind, onClick = _a.onClick;
53
- return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, isEmpty: false, icon: icon }, (function () {
53
+ return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, icon: icon }, (function () {
54
54
  if (kind === 'plus-button') {
55
55
  return (React.createElement(avatar_action_add_1.AvatarContentAdd, { tooltipText: tooltip !== null && tooltip !== void 0 ? tooltip : undefined, onClick: onClick }));
56
56
  }
@@ -11,11 +11,14 @@ interface IPropsAvatarWrapper {
11
11
  };
12
12
  children: React.ReactNode;
13
13
  'data-test-id'?: string;
14
- isEmpty?: boolean;
14
+ noAvatarPlaceholderColor?: 'subtle' | 'strong';
15
15
  icon?: {
16
16
  name: string;
17
17
  color?: string;
18
18
  };
19
+ statusDot?: {
20
+ color?: string;
21
+ };
19
22
  }
20
23
  /**
21
24
  * @deprecated use AvatarV2
@@ -56,6 +56,7 @@ var AvatarWrapper = /** @class */ (function (_super) {
56
56
  AvatarWrapper.prototype.render = function () {
57
57
  var _a, _b, _c;
58
58
  var icon = this.props.icon;
59
+ var statusDot = this.props.statusDot;
59
60
  return (React.createElement("span", { className: (0, classnames_1.default)('sd-avatar', {
60
61
  'sd-avatar--x-small': this.props.size === 'x-small',
61
62
  'sd-avatar--small': this.props.size === 'small',
@@ -65,14 +66,15 @@ var AvatarWrapper = /** @class */ (function (_super) {
65
66
  'sd-avatar--xx-large': this.props.size === 'xx-large',
66
67
  'sd-avatar--indicator-status--online': ((_a = this.props.statusIndicator) === null || _a === void 0 ? void 0 : _a.status) === 'online',
67
68
  'sd-avatar--indicator-status--offline': ((_b = this.props.statusIndicator) === null || _b === void 0 ? void 0 : _b.status) === 'offline',
68
- 'sd-avatar--empty-light': this.props.isEmpty,
69
+ 'sd-avatar--empty-light': this.props.noAvatarPlaceholderColor === 'subtle',
69
70
  }), "data-test-id": this.props['data-test-id'], title: this.props.statusIndicator != null ? this.props.statusIndicator.tooltipText : "" },
70
71
  this.props.children,
71
72
  ((_c = this.props.administratorIndicator) === null || _c === void 0 ? void 0 : _c.enabled) === true
72
73
  ? (React.createElement("i", { className: "icon-settings sd-avatar--indicator-admin", title: this.props.administratorIndicator.tooltipText }))
73
74
  : null,
74
75
  icon != null && (React.createElement("span", { className: "sd-avatar__icon" },
75
- React.createElement(Icon_1.Icon, { name: icon.name, color: icon.color })))));
76
+ React.createElement(Icon_1.Icon, { name: icon.name, color: icon.color }))),
77
+ statusDot != null && (React.createElement("span", { style: { backgroundColor: statusDot.color }, className: "sd-avatar__coverage-state" }))));
76
78
  };
77
79
  return AvatarWrapper;
78
80
  }(React.PureComponent));
@@ -11,6 +11,10 @@ export interface IPropsAvatar {
11
11
  name: string;
12
12
  color?: string;
13
13
  };
14
+ statusDot?: {
15
+ color?: string;
16
+ };
17
+ noAvatarPlaceholderColor?: 'subtle' | 'strong';
14
18
  /**
15
19
  * displayName is shown as tooltip by default
16
20
  * use this if you need to add additional information (it will be added on a new line)
@@ -49,10 +49,10 @@ var Avatar = /** @class */ (function (_super) {
49
49
  return _super !== null && _super.apply(this, arguments) || this;
50
50
  }
51
51
  Avatar.prototype.render = function () {
52
- var _a = this.props, imageUrl = _a.imageUrl, initials = _a.initials, size = _a.size, statusIndicator = _a.statusIndicator, administratorIndicator = _a.administratorIndicator, icon = _a.icon, displayName = _a.displayName, customContent = _a.customContent;
52
+ var _a = this.props, imageUrl = _a.imageUrl, initials = _a.initials, size = _a.size, statusIndicator = _a.statusIndicator, administratorIndicator = _a.administratorIndicator, icon = _a.icon, noAvatarPlaceholderColor = _a.noAvatarPlaceholderColor, displayName = _a.displayName, customContent = _a.customContent, statusDot = _a.statusDot;
53
53
  var tooltipCombined = [displayName, this.props.tooltip]
54
54
  .filter(function (str) { return (str !== null && str !== void 0 ? str : '').trim().length > 0; }).join('\n');
55
- return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, statusIndicator: statusIndicator ? { status: statusIndicator, tooltipText: '' } : undefined, administratorIndicator: administratorIndicator ? { enabled: true, tooltipText: '' } : undefined, icon: icon, isEmpty: false }, (function () {
55
+ return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, statusIndicator: statusIndicator ? { status: statusIndicator, tooltipText: '' } : undefined, administratorIndicator: administratorIndicator ? { enabled: true, tooltipText: '' } : undefined, icon: icon, statusDot: statusDot, noAvatarPlaceholderColor: noAvatarPlaceholderColor }, (function () {
56
56
  if (customContent != null) {
57
57
  return customContent;
58
58
  }