superdesk-ui-framework 3.1.14 → 3.1.15

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 (31) hide show
  1. package/app/img/AvatarDefaultImage.svg +6 -0
  2. package/app/styles/_avatar.scss +28 -6
  3. package/app/styles/design-tokens/_new-colors.scss +32 -17
  4. package/app-typescript/components/Button.tsx +1 -1
  5. package/app-typescript/components/DatePicker.tsx +6 -0
  6. package/app-typescript/components/avatar/avatar-group.tsx +2 -1
  7. package/app-typescript/components/avatar/avatar-image.tsx +1 -1
  8. package/app-typescript/components/avatar/avatar-placeholder.tsx +0 -1
  9. package/app-typescript/components/avatar/avatar-wrapper.tsx +14 -2
  10. package/app-typescript/components/avatar/avatar.tsx +8 -1
  11. package/dist/components/Avatar.tsx +97 -40
  12. package/dist/components/Buttons.tsx +5 -3
  13. package/dist/components/Index.tsx +151 -127
  14. package/dist/examples.bundle.js +189 -156
  15. package/dist/playgrounds/react-playgrounds/TestGround.tsx +30 -10
  16. package/dist/superdesk-ui.bundle.css +55 -20
  17. package/dist/superdesk-ui.bundle.js +15 -9
  18. package/examples/pages/components/Avatar.tsx +97 -40
  19. package/examples/pages/components/Buttons.tsx +5 -3
  20. package/examples/pages/components/Index.tsx +151 -127
  21. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +30 -10
  22. package/package.json +1 -1
  23. package/react/components/Button.js +1 -1
  24. package/react/components/DatePicker.js +4 -0
  25. package/react/components/avatar/avatar-group.js +2 -2
  26. package/react/components/avatar/avatar-image.js +1 -1
  27. package/react/components/avatar/avatar-placeholder.js +1 -1
  28. package/react/components/avatar/avatar-wrapper.d.ts +4 -1
  29. package/react/components/avatar/avatar-wrapper.js +4 -2
  30. package/react/components/avatar/avatar.d.ts +4 -0
  31. package/react/components/avatar/avatar.js +2 -2
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import * as Components from './components/Index';
3
- import { Checkbox, RadioGroup, CheckboxButton, RadioButtonGroup, Button, Dropdown, Input, Label, Icon, IconButton, Badge, ThemeSelector, Container, IconLabel, Tooltip, Spinner, Divider, InputWrapper, InputNew, InputBase, Text, FormRowNew, ButtonGroup, Heading, SearchBar, Modal, BoxedList, BoxedListItem, TimePicker, TreeSelect, DatePicker, ContentDivider, Select, Option, AvatarGroup, Avatar, SvgIconIllustration, IllustrationButton, SubNav, NavButton } from '../../../../app-typescript/index';
3
+ import { Checkbox, RadioGroup, CheckboxButton, RadioButtonGroup, Button, Dropdown, Input, Label, Icon, IconButton, Badge, ThemeSelector, Container, IconLabel, Tooltip, Spinner, Divider, InputWrapper, InputNew, InputBase, Text, FormRowNew, ButtonGroup, Heading, SearchBar, Modal, BoxedList, BoxedListItem, TimePicker, TreeSelect, DatePicker, ContentDivider, Select, Option, AvatarGroup, Avatar, SvgIconIllustration, IllustrationButton, SubNav, NavButton, } from '../../../../app-typescript/index';
4
4
  import { IAvatarInGroup } from '../../../../app-typescript/components/avatar/avatar-group';
5
5
  import { FormLabel } from '../../../../app-typescript/components/Form/FormLabel';
6
6
 
@@ -104,29 +104,37 @@ export class TestGround extends React.Component<IProps, IState> {
104
104
 
105
105
  render() {
106
106
  const avatars: Array<IAvatarInGroup> = [
107
+ {
108
+ imageUrl: null,
109
+ initials: null,
110
+ displayName: 'Unassigned',
111
+ icon:{name: 'video', color: 'var(--sd-colour-state--default)'},
112
+ statusDot:{color: 'var(--sd-colour-coverage-state--not-covering)'}
113
+ },
114
+ {
115
+ imageUrl: null,
116
+ initials: null,
117
+ displayName: 'Unassigned',
118
+ icon:{name: 'file', color: 'var(--sd-colour-state--unassigned)'},
119
+ statusDot:{color: 'var(--sd-colour-coverage-state--on-merit)'}
120
+ },
107
121
  {
108
122
  imageUrl: null,
109
123
  initials: "VS",
110
124
  displayName: 'Vladimir Stefanovic',
111
- icon:{name: 'text', color: 'var(--sd-colour-highlight)'},
125
+ icon:{name: 'text', color: 'var(--sd-colour-state--in-progress)'},
112
126
  },
113
127
  {
114
128
  imageUrl: null,
115
129
  initials: "JL",
116
130
  displayName: 'Jeffrey Lebowski',
117
- icon:{name: 'photo', color: 'var(--sd-colour-highlight)'}
131
+ icon:{name: 'photo', color: 'var(--sd-colour-state--in-workflow)'}
118
132
  },
119
133
  {
120
134
  imageUrl: null,
121
135
  initials: "WS",
122
136
  displayName: 'Walter Sobchak',
123
- icon:{name: 'video', color: 'var(--sd-colour-highlight)'}
124
- },
125
- {
126
- imageUrl: null,
127
- initials: "ML",
128
- displayName: 'Maude Lebowski',
129
- icon:{name: 'file', color: 'var(--sd-colour-highlight)'}
137
+ icon:{name: 'text', color: 'var(--sd-colour-state--done)'},
130
138
  },
131
139
  ];
132
140
 
@@ -159,6 +167,18 @@ export class TestGround extends React.Component<IProps, IState> {
159
167
 
160
168
  <hr />
161
169
 
170
+ <Avatar
171
+ displayName="Jeffrey Lebowski"
172
+ imageUrl={null}
173
+ initials='JL'
174
+ size="small"
175
+ statusDot={{color: 'var(--sd-colour-coverage-state--on-merit)'}}
176
+ icon={{name: 'text'}}
177
+ />
178
+
179
+ <hr />
180
+
181
+
162
182
  <div style={{maxWidth: '600px'}} className={`sd-shadow--z1 new-collapse-box ${this.state.openCollapsibleOne ? 'new-collapse-box--open' : ''}`}>
163
183
  {/* Header */}
164
184
  <div className='new-collapse-box__header'>
@@ -12035,19 +12035,29 @@
12035
12035
  --sd-colour-bg__desk-select--worspace: hsla(306, 25%, 49%, 1);
12036
12036
  --sd-colour__tag-label-Bg--inverse: var(--sd-colour-bg--08);
12037
12037
  --sd-colour__tag-label-Txt--inverse: hsla(214, 13%, 98%, 1);
12038
- --sd-colour-avatar-bg: hsl(197, 100%, 25%);
12038
+ --sd-colour-avatar-bg: hsl(197, 100%, 30%);
12039
12039
  --sd-colour-avatar-border: var(--sd-colour-avatar-bg);
12040
12040
  --sd-colour-avatar-bg--light: hsla(214, 13%, 90%, 1);
12041
- --sd-colour-avatar-border--light: hsla(214, 13%, 65%, 1);
12042
- --sd-colour-avatar-border--light-hover: hsla(214, 13%, 45%, 1);
12043
- --sd-colour-avatar-dummy: hsla(214, 13%, 75%, 0.60);
12041
+ --sd-colour-avatar-bg--empty: hsl(212, 20%, 48%);
12042
+ --sd-colour-avatar-bg--empty-light: hsla(214, 13%, 90%, 1);
12043
+ --sd-colour-avatar-border--light: var(--sd-colour-line--medium);
12044
+ --sd-colour-avatar-border--light-hover: var(--sd-colour-line--strong);
12045
+ --sd-colour-avatar-dummy: hsla(214, 13%, 65%, 0.50);
12044
12046
  --sd-colour-avatar-add: hsla(214, 13%, 55%, 1);
12045
12047
  --sd-colour-avatar-add--hover: hsla(214, 13%, 45%, 1);
12046
- --sd-colour-avatar-outline--offline: hsla(214, 13%, 85%, 1);
12048
+ --sd-colour-avatar-outline--offline: var(--sd-colour-line--light);
12047
12049
  --sd-colour-avatar-outline--online: var(--sd-colour-success);
12048
12050
  --sd-colour-state--default: var(--color-text-lighter);
12049
- --sd-colour-state--in-progress: var(--sd-colour-highlight);
12051
+ --sd-colour-state--unassigned: var(--color-text-lighter);
12052
+ --sd-colour-state--assigned: var(--color-text-lighter);
12053
+ --sd-colour-state--canceled: var(--color-text-lighter);
12054
+ --sd-colour-state--in-progress: var(--sd-colour-warning);
12055
+ --sd-colour-state--in-workflow: var(--sd-colour-info);
12056
+ --sd-colour-state--completed: var(--sd-colour-success);
12050
12057
  --sd-colour-state--done: var(--sd-colour-success);
12058
+ --sd-colour-coverage-state--default: var(--color-text-lighter);
12059
+ --sd-colour-coverage-state--on-merit: var(--sd-colour-warning);
12060
+ --sd-colour-coverage-state--not-covering: var(--sd-colour-alert);
12051
12061
  --collapse-box-button-color-bg-default: hsla(var(--sd-colour-cool-grey-l--85), 1);
12052
12062
  --collapse-box-button-color-bg-hover: hsla(var(--sd-colour-cool-grey-l--80), 1);
12053
12063
  --collapse-box-button-color-fg-default: var(--color-text);
@@ -12162,16 +12172,21 @@
12162
12172
  --sd-colour__tag-label-Bg--inverse: hsla(214, 13%, 55%, 0.95);
12163
12173
  --sd-colour__tag-label-Txt--inverse: hsla(214, 13%, 10%, 1);
12164
12174
  --sd-colour-avatar-bg: hsl(197, 100%, 25%);
12165
- --sd-colour-avatar-border: hsl(197, 100%, 25%);
12175
+ --sd-colour-avatar-border: var(--sd-colour-avatar-bg);
12166
12176
  --sd-colour-avatar-bg--light: hsla(214, 13%, 20%, 1);
12167
- --sd-colour-avatar-border--light: hsla(214, 13%, 45%, 1);
12168
- --sd-colour-avatar-border--light-hover: hsla(214, 13%, 65%, 1);
12169
- --sd-colour-avatar-dummy: hsla(214, 13%, 98%, 0.25);
12177
+ --sd-colour-avatar-bg--empty: hsl(212, 20%, 38%);
12178
+ --sd-colour-avatar-bg--empty-light: hsla(214, 13%, 20%, 1);
12179
+ --sd-colour-avatar-border--light: var(--sd-colour-line--light);
12180
+ --sd-colour-avatar-border--light-hover: var(--sd-colour-line--medium);
12181
+ --sd-colour-avatar-dummy: hsla(214, 13%, 95%, 0.2);
12170
12182
  --sd-colour-avatar-add: hsla(214, 13%, 65%, 1);
12171
12183
  --sd-colour-avatar-add--hover: hsla(214, 13%, 90%, 1);
12184
+ --sd-colour-avatar-outline--offline: var(--sd-colour-line--medium);
12185
+ --sd-colour-avatar-outline--online: var(--sd-colour-success);
12172
12186
  --sd-colour-state--default: var(--color-text-lighter);
12173
- --sd-colour-state--in-progress: var(--sd-colour-highlight);
12174
- --sd-colour-state--done: var(--sd-colour-success);
12187
+ --sd-colour-state--unassigned: var(--color-text-lighter);
12188
+ --sd-colour-state--assigned: var(--color-text-lighter);
12189
+ --sd-colour-state--canceled: var(--color-text-lighter);
12175
12190
  --collapse-box-button-color-bg-default: hsla(var(--sd-colour-cool-grey-l--25), 1);
12176
12191
  --collapse-box-button-color-bg-hover: hsla(var(--sd-colour-cool-grey-l--30), 1);
12177
12192
  --collapse-box-button-color-fg-default: var(--color-text-light);
@@ -65745,7 +65760,8 @@ i.sd-sidetab-menu__helper-icon {
65745
65760
  color: white;
65746
65761
  text-transform: uppercase;
65747
65762
  letter-spacing: -0.03em;
65748
- overflow: hidden; }
65763
+ overflow: hidden;
65764
+ cursor: default; }
65749
65765
  .sd-avatar .sd-avatar-content > img {
65750
65766
  width: 100%; }
65751
65767
  .sd-avatar .sd-avatar-content.sd-avatar-content--add-item {
@@ -65781,17 +65797,20 @@ i.sd-sidetab-menu__helper-icon {
65781
65797
  .sd-avatar .sd-avatar-content.sd-avatar-content--number:active {
65782
65798
  cursor: pointer;
65783
65799
  outline: 2px solid var(--sd-colour-interactive); }
65800
+ .sd-avatar .sd-avatar-content span {
65801
+ cursor: default; }
65784
65802
  .sd-avatar .sd-avatar-content--text {
65785
65803
  background-color: var(--sd-colour-avatar-bg); }
65786
65804
  .sd-avatar .sd-avatar-content--dummy-img {
65787
- background-color: var(--sd-colour-avatar-bg);
65805
+ background-color: var(--sd-colour-avatar-bg--empty);
65788
65806
  background-image: url(avatar_dummy.svg);
65789
65807
  background-repeat: no-repeat;
65790
- background-size: cover;
65791
- border: 1px solid var(--sd-colour-avatar-border); }
65808
+ background-size: cover; }
65792
65809
  .sd-avatar.sd-avatar--empty-light .sd-avatar-content--dummy-img {
65793
65810
  background-color: var(--sd-colour-avatar-bg--light);
65794
65811
  border: 1px dashed var(--sd-colour-avatar-border--light); }
65812
+ .sd-avatar.sd-avatar--empty-light .sd-avatar-content--dummy-img svg {
65813
+ opacity: 0.25; }
65795
65814
  .sd-avatar .sd-avatar__icon {
65796
65815
  position: absolute;
65797
65816
  display: flex;
@@ -65799,9 +65818,24 @@ i.sd-sidetab-menu__helper-icon {
65799
65818
  justify-content: center;
65800
65819
  z-index: 1;
65801
65820
  inset-block-end: -4px;
65802
- inset-inline-end: -4px; }
65821
+ inset-inline-end: -4px;
65822
+ opacity: 1;
65823
+ color: var(--color-text-lighter); }
65803
65824
  .sd-avatar .sd-avatar__icon [class^="icon-"], .sd-avatar .sd-avatar__icon [class*=" icon-"] {
65825
+ color: inherit;
65804
65826
  text-shadow: -1px 1px 0 var(--sd-item__main-Bg), 1px 1px 0 var(--sd-item__main-Bg), 1px -1px 0 var(--sd-item__main-Bg), -1px -1px 0 var(--sd-item__main-Bg); }
65827
+ .sd-avatar .sd-avatar__coverage-state {
65828
+ --dot-size: 6px;
65829
+ display: flex;
65830
+ height: var(--dot-size);
65831
+ width: var(--dot-size);
65832
+ position: absolute;
65833
+ background-color: var(--sd-colour-coverage-state--default);
65834
+ z-index: 2;
65835
+ border-radius: var(--b-radius--full);
65836
+ inset-block-end: -3px;
65837
+ inset-inline-end: 3px;
65838
+ box-shadow: 0 0 0 1px var(--sd-item__main-Bg); }
65805
65839
  .sd-avatar.sd-avatar--x-small .sd-avatar__icon {
65806
65840
  inset-block-end: -4px;
65807
65841
  inset-inline-end: -10px; }
@@ -65966,10 +66000,11 @@ i.sd-sidetab-menu__helper-icon {
65966
66000
 
65967
66001
  .avatar-popup {
65968
66002
  background-color: var(--color-dropdown-menu-Bg);
65969
- border-radius: 5px;
65970
- padding: 1.5rem;
66003
+ border-radius: var(--b-radius--large);
66004
+ padding: var(--space--2);
66005
+ padding-inline-end: var(--space--3);
65971
66006
  box-shadow: var(--sd-shadow__dropdown);
65972
66007
  display: flex;
65973
66008
  flex-direction: column;
65974
- gap: 4px;
66009
+ gap: var(--gap-1-5);
65975
66010
  overflow: auto; }
@@ -38055,7 +38055,7 @@ var Button = /** @class */ (function (_super) {
38055
38055
  _a));
38056
38056
  return (React.createElement("button", { id: this.props.id, className: classes, tabIndex: 0, disabled: this.props.disabled || this.props.isLoading, "data-loading": this.props.isLoading, onClick: this.props.disabled ? function () { return false; } : function (event) { return _this.props.onClick(event); }, "aria-label": this.props.iconOnly ? this.props.text : '', "data-test-id": this.props['data-test-id'], title: this.props.tooltip },
38057
38057
  this.props.isLoading ? React.createElement(Spinner_1.Spinner, { size: "mini" }) : null,
38058
- this.props.icon && !this.props.isLoading ? React.createElement(Icon_1.Icon, { name: this.props.icon }) : null,
38058
+ this.props.icon && !this.props.isLoading ? React.createElement(Icon_1.Icon, { ariaHidden: true, name: this.props.icon }) : null,
38059
38059
  this.props.iconOnly ? null : this.props.text));
38060
38060
  };
38061
38061
  return Button;
@@ -38203,6 +38203,7 @@ var AvatarWrapper = /** @class */ (function (_super) {
38203
38203
  AvatarWrapper.prototype.render = function () {
38204
38204
  var _a, _b, _c;
38205
38205
  var icon = this.props.icon;
38206
+ var statusDot = this.props.statusDot;
38206
38207
  return (React.createElement("span", { className: (0, classnames_1.default)('sd-avatar', {
38207
38208
  'sd-avatar--x-small': this.props.size === 'x-small',
38208
38209
  'sd-avatar--small': this.props.size === 'small',
@@ -38212,14 +38213,15 @@ var AvatarWrapper = /** @class */ (function (_super) {
38212
38213
  'sd-avatar--xx-large': this.props.size === 'xx-large',
38213
38214
  'sd-avatar--indicator-status--online': ((_a = this.props.statusIndicator) === null || _a === void 0 ? void 0 : _a.status) === 'online',
38214
38215
  'sd-avatar--indicator-status--offline': ((_b = this.props.statusIndicator) === null || _b === void 0 ? void 0 : _b.status) === 'offline',
38215
- 'sd-avatar--empty-light': this.props.isEmpty,
38216
+ 'sd-avatar--empty-light': this.props.noAvatarPlaceholderColor === 'subtle',
38216
38217
  }), "data-test-id": this.props['data-test-id'], title: this.props.statusIndicator != null ? this.props.statusIndicator.tooltipText : "" },
38217
38218
  this.props.children,
38218
38219
  ((_c = this.props.administratorIndicator) === null || _c === void 0 ? void 0 : _c.enabled) === true
38219
38220
  ? (React.createElement("i", { className: "icon-settings sd-avatar--indicator-admin", title: this.props.administratorIndicator.tooltipText }))
38220
38221
  : null,
38221
38222
  icon != null && (React.createElement("span", { className: "sd-avatar__icon" },
38222
- React.createElement(Icon_1.Icon, { name: icon.name, color: icon.color })))));
38223
+ React.createElement(Icon_1.Icon, { name: icon.name, color: icon.color }))),
38224
+ statusDot != null && (React.createElement("span", { style: { backgroundColor: statusDot.color }, className: "sd-avatar__coverage-state" }))));
38223
38225
  };
38224
38226
  return AvatarWrapper;
38225
38227
  }(React.PureComponent));
@@ -39881,7 +39883,7 @@ var AvatarContentImage = /** @class */ (function (_super) {
39881
39883
  if (imageUrl == null) {
39882
39884
  return (React.createElement("span", __assign({}, maybeButtonProps, { className: "sd-avatar-content sd-avatar-content--dummy-img", title: tooltipText }),
39883
39885
  React.createElement("svg", { width: "200", height: "200", viewBox: "0 0 200 200", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
39884
- React.createElement("circle", { cx: "100", cy: "100", r: "100", fill: "white", fillOpacity: "0.01" }),
39886
+ React.createElement("circle", { cx: "100", cy: "100", r: "100", fill: "white", fillOpacity: "0" }),
39885
39887
  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" }))));
39886
39888
  }
39887
39889
  else {
@@ -41833,6 +41835,10 @@ var DatePicker = /** @class */ (function (_super) {
41833
41835
  React.createElement(calendar_1.Calendar, { footerTemplate: this.props.required !== true ? function () { return (React.createElement("div", { className: 'd-flex justify-end' },
41834
41836
  React.createElement(Button_1.Button, { onClick: function () {
41835
41837
  _this.props.onChange(null);
41838
+ if (_this.instance != null
41839
+ && typeof _this.instance.hideOverlay === 'function') {
41840
+ _this.instance.hideOverlay();
41841
+ }
41836
41842
  }, text: 'Clear', "data-test-id": 'clear-button' }))); } : undefined, inputId: this.htmlId, ariaLabelledBy: this.htmlId + 'label', ref: function (ref) {
41837
41843
  _this.instance = ref;
41838
41844
  var refAny = ref;
@@ -44287,10 +44293,10 @@ var Avatar = /** @class */ (function (_super) {
44287
44293
  return _super !== null && _super.apply(this, arguments) || this;
44288
44294
  }
44289
44295
  Avatar.prototype.render = function () {
44290
- 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;
44296
+ 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;
44291
44297
  var tooltipCombined = [displayName, this.props.tooltip]
44292
44298
  .filter(function (str) { return (str !== null && str !== void 0 ? str : '').trim().length > 0; }).join('\n');
44293
- 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 () {
44299
+ 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 () {
44294
44300
  if (customContent != null) {
44295
44301
  return customContent;
44296
44302
  }
@@ -44364,7 +44370,7 @@ var AvatarPlaceholder = /** @class */ (function (_super) {
44364
44370
  }
44365
44371
  AvatarPlaceholder.prototype.render = function () {
44366
44372
  var _a = this.props, size = _a.size, tooltip = _a.tooltip, icon = _a.icon, kind = _a.kind, onClick = _a.onClick;
44367
- return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, isEmpty: false, icon: icon }, (function () {
44373
+ return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, icon: icon }, (function () {
44368
44374
  if (kind === 'plus-button') {
44369
44375
  return (React.createElement(avatar_action_add_1.AvatarContentAdd, { tooltipText: tooltip !== null && tooltip !== void 0 ? tooltip : undefined, onClick: onClick }));
44370
44376
  }
@@ -83920,7 +83926,7 @@ var AvatarGroup = /** @class */ (function (_super) {
83920
83926
  isAvatar(item)
83921
83927
  && item.displayName,
83922
83928
  isAvatar(item)
83923
- ? (React.createElement(avatar_1.Avatar, { size: 'small', imageUrl: item.imageUrl, initials: item.initials, displayName: item.displayName, icon: item.icon }))
83929
+ ? (React.createElement(avatar_1.Avatar, { size: 'small', imageUrl: item.imageUrl, initials: item.initials, displayName: item.displayName, icon: item.icon, statusDot: item.statusDot }))
83924
83930
  : (React.createElement(avatar_placeholder_1.AvatarPlaceholder, { kind: 'plus-button', size: 'small', icon: item.icon, onClick: item.onClick })))
83925
83931
  : React.createElement("div", null,
83926
83932
  React.createElement(avatar_placeholder_1.AvatarPlaceholder, { kind: 'plus-button', size: 'small', icon: item.icon, onClick: isAvatar(item) ? undefined : item.onClick, key: index })));
@@ -83934,7 +83940,7 @@ var AvatarGroup = /** @class */ (function (_super) {
83934
83940
  }
83935
83941
  }),
83936
83942
  itemsOverLimit > 0 && (React.createElement(PlusButtonWrapper, { onToggle: onToggle },
83937
- React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, isEmpty: false },
83943
+ React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size },
83938
83944
  React.createElement(avatar_number_1.AvatarContentNumber, { number: "".concat(itemsOverLimit) })))))); }));
83939
83945
  };
83940
83946
  return AvatarGroup;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import * as Markup from '../../js/react';
3
3
 
4
- import {Container, Avatar, AvatarGroup} from '../../../app-typescript';
4
+ import {Container, Avatar, AvatarGroup, AvatarPlaceholder} from '../../../app-typescript';
5
5
  import {IAvatarInGroup, IAvatarPlaceholderInGroup} from '../../../app-typescript/components/avatar/avatar-group';
6
6
 
7
7
  const avatars: Array<IAvatarInGroup> = [
@@ -73,7 +73,7 @@ export default class AvatarDoc extends React.PureComponent {
73
73
  imageUrl={null}
74
74
  initials="Jeffrey Lebowski"
75
75
  size="large"
76
- icon={{name: 'print', color: 'red'}}
76
+ icon={{name: 'print', color: 'var(--sd-colour-state--in-workflow)'}}
77
77
  statusIndicator="offline"
78
78
  administratorIndicator
79
79
  />
@@ -83,7 +83,7 @@ export default class AvatarDoc extends React.PureComponent {
83
83
  imageUrl={null}
84
84
  initials='Jeffrey Lebowski'
85
85
  size="large"
86
- icon={{name: 'print', color: 'red'}}
86
+ icon={{name: 'print', color: 'var(--sd-colour-state--done)'}}
87
87
  administratorIndicator
88
88
  />
89
89
 
@@ -192,15 +192,29 @@ export default class AvatarDoc extends React.PureComponent {
192
192
  imageUrl="/avatar.jpg"
193
193
  initials="JL"
194
194
  displayName="Jeffrey Lebowski"
195
- icon={{name: 'text', color: 'var(--sd-colour-state--in-progress)'}}
195
+ icon={{name: 'text', color: 'var(--sd-colour-state--in-workflow)'}}
196
196
  />
197
197
 
198
198
  <Avatar
199
199
  size="x-large"
200
- imageUrl="/avatar.jpg"
201
- initials="JL"
202
- displayName="Jeffrey Lebowski"
203
- icon={{name: 'text'}}
200
+ imageUrl={null}
201
+ initials={null}
202
+ displayName="Unassigned"
203
+ noAvatarPlaceholderColor='subtle'
204
+ icon={{name: 'text', color: 'var(--sd-colour-state--canceled)'}}
205
+ />
206
+
207
+ <AvatarPlaceholder
208
+ kind='plus-button'
209
+ size='x-large'
210
+ />
211
+
212
+ <Avatar
213
+ size="x-large"
214
+ imageUrl={null}
215
+ initials={null}
216
+ displayName="Unassigned"
217
+ icon={{name: 'text', color: 'var(--sd-colour-state--canceled)'}}
204
218
  />
205
219
 
206
220
  <Avatar
@@ -208,12 +222,29 @@ export default class AvatarDoc extends React.PureComponent {
208
222
  imageUrl={null}
209
223
  initials="JL"
210
224
  displayName="Jeffrey Lebowski"
211
- icon={{name: 'video-cancel', color: 'var(--sd-colour-state--in-progress)'}}
225
+ icon={{name: 'video-cancel', color: 'var(--sd-colour-state--canceled)'}}
212
226
  />
213
227
 
214
228
  </Container>
215
-
216
-
229
+ <p className="docs-page__paragraph">// With icon and Coverage status indicator</p>
230
+ <Container gap='medium' className='sd-margin-b--3'>
231
+ <Avatar
232
+ displayName="Unassigned"
233
+ imageUrl={null}
234
+ initials={null}
235
+ size="small"
236
+ icon={{name: 'text', color: 'var(--sd-colour-state--assigned)'}}
237
+ statusDot={{color: 'var(--sd-colour-coverage-state--on-merit)'}}
238
+ />
239
+ <Avatar
240
+ displayName="Unassigned"
241
+ imageUrl={null}
242
+ initials={null}
243
+ size="small"
244
+ icon={{name: 'photo', color: 'var(--sd-colour-state--assigned)'}}
245
+ statusDot={{color: 'var(--sd-colour-coverage-state--not-covering)'}}
246
+ />
247
+ </Container>
217
248
  </Markup.ReactMarkupPreview>
218
249
 
219
250
  <Markup.ReactMarkupCode>{`
@@ -234,7 +265,7 @@ export default class AvatarDoc extends React.PureComponent {
234
265
  imageUrl={null}
235
266
  initials="Jeffrey Lebowski"
236
267
  size="large"
237
- icon={{name: 'print', color: 'red'}}
268
+ icon={{name: 'print', color: 'var(--sd-colour-state--in-workflow)}}
238
269
  statusIndicator="offline"
239
270
  administratorIndicator
240
271
  />
@@ -244,7 +275,7 @@ export default class AvatarDoc extends React.PureComponent {
244
275
  imageUrl={null}
245
276
  initials='Jeffrey Lebowski'
246
277
  size="large"
247
- icon={{name: 'print', color: 'red'}}
278
+ icon={{name: 'print', color: 'var(--sd-colour-state--done)'}}
248
279
  administratorIndicator
249
280
  />
250
281
 
@@ -366,15 +397,24 @@ export default class AvatarDoc extends React.PureComponent {
366
397
  imageUrl="/avatar.jpg"
367
398
  initials="JL"
368
399
  displayName="Jeffrey Lebowski"
369
- icon={{name: 'text', color: 'var(--sd-colour-state--in-progress)'}}
400
+ icon={{name: 'text', color: 'var(--sd-colour-state--in-workflow)'}}
370
401
  />
371
402
 
372
403
  <Avatar
373
404
  size="x-large"
374
- imageUrl="/avatar.jpg"
375
- initials="JL"
376
- displayName="Jeffrey Lebowski"
377
- icon={{name: 'text'}}
405
+ imageUrl={null}
406
+ initials={null}
407
+ displayName="Unassigned"
408
+ emptyLight
409
+ icon={{name: 'text', color: 'var(--sd-colour-state--canceled)'}}
410
+ />
411
+
412
+ <Avatar
413
+ size="x-large"
414
+ imageUrl={null}
415
+ initials={null}
416
+ displayName="Unassigned"
417
+ icon={{name: 'text', color: 'var(--sd-colour-state--canceled)'}}
378
418
  />
379
419
 
380
420
  <Avatar
@@ -382,10 +422,27 @@ export default class AvatarDoc extends React.PureComponent {
382
422
  imageUrl={null}
383
423
  initials="JL"
384
424
  displayName="Jeffrey Lebowski"
385
- icon={{name: 'video-cancel', color: 'var(--sd-colour-state--in-progress)'}}
425
+ icon={{name: 'video-cancel', color: 'var(--sd-colour-state--canceled)'}}
426
+ />
427
+
428
+ // With icon and Coverage status indicator
429
+ <Avatar
430
+ displayName="Unassigned"
431
+ imageUrl={null}
432
+ initials={null}
433
+ size="small"
434
+ icon={{name: 'text', color: 'var(--sd-colour-state--assigned)'}}
435
+ statusDot={{color: 'var(--sd-colour-coverage-state--on-merit)'}}
436
+ />
437
+ <Avatar
438
+ displayName="Unassigned"
439
+ imageUrl={null}
440
+ initials={null}
441
+ size="small"
442
+ icon={{name: 'photo', color: 'var(--sd-colour-state--assigned)'}}
443
+ statusDot={{color: 'var(--sd-colour-coverage-state--not-covering)'}}
386
444
  />
387
445
 
388
- </AvatarWrapper>
389
446
  `}
390
447
  </Markup.ReactMarkupCode>
391
448
  </Markup.ReactMarkup>
@@ -453,25 +510,25 @@ export default class AvatarDoc extends React.PureComponent {
453
510
  imageUrl: null,
454
511
  initials: "U3",
455
512
  displayName: 'User3',
456
- icon:{name: 'print', color: 'blue'},
513
+ icon:{name: 'print', color: 'var(--sd-colour-state--in-workflow)'},
457
514
  },
458
515
  {
459
516
  imageUrl: 'avatar-3.jpg',
460
517
  initials: "U4",
461
518
  displayName: 'User4',
462
- icon:{name: 'print', color: 'yellow'},
519
+ icon:{name: 'print', color: 'var(--sd-colour-state--in-progress)'},
463
520
  },
464
521
  {
465
522
  imageUrl: 'avatar-4.jpg',
466
523
  initials: "U5",
467
524
  displayName: 'User5',
468
- icon:{name: 'print', color: 'orange'},
525
+ icon:{name: 'print', color: 'var(--sd-colour-highlight)'},
469
526
  },
470
527
  {
471
528
  imageUrl: null,
472
529
  initials: "U6",
473
530
  displayName: 'User6',
474
- icon:{name: 'print', color: 'lime'},
531
+ icon:{name: 'print', color: 'var(--sd-colour-state--in-progress)'},
475
532
  },
476
533
  ];
477
534
 
@@ -571,39 +628,39 @@ export default class AvatarDoc extends React.PureComponent {
571
628
  const avatars: Array<IAvatarInGroup> = [
572
629
  {
573
630
  imageUrl: 'avatar.jpg',
574
- initials: "JL",
575
- displayName: null,
631
+ initials: "U1",
632
+ displayName: 'User1',
576
633
  icon:{name: 'print', color: 'red'},
577
634
  },
578
635
  {
579
636
  imageUrl: null,
580
- initials: "AB",
581
- displayName: null,
637
+ initials: "U2",
638
+ displayName: 'User2',
582
639
  icon:{name: 'print', color: 'green'},
583
640
  },
584
641
  {
585
642
  imageUrl: null,
586
- initials: "FG",
587
- displayName: null,
588
- icon:{name: 'print', color: 'blue'},
643
+ initials: "U3",
644
+ displayName: 'User3',
645
+ icon:{name: 'print', color: 'var(--sd-colour-state--in-workflow)'},
589
646
  },
590
647
  {
591
648
  imageUrl: 'avatar-3.jpg',
592
- initials: "JL",
593
- displayName: null,
594
- icon:{name: 'print', color: 'yellow'},
649
+ initials: "U4",
650
+ displayName: 'User4',
651
+ icon:{name: 'print', color: 'var(--sd-colour-state--in-progress)'},
595
652
  },
596
653
  {
597
654
  imageUrl: 'avatar-4.jpg',
598
- initials: "JL",
599
- displayName: null,
600
- icon:{name: 'print', color: 'orange'},
655
+ initials: "U5",
656
+ displayName: 'User5',
657
+ icon:{name: 'print', color: 'var(--sd-colour-highlight)'},
601
658
  },
602
659
  {
603
660
  imageUrl: null,
604
- initials: "KU",
605
- displayName: null,
606
- icon:{name: 'print', color: 'lime'},
661
+ initials: "U6",
662
+ displayName: 'User6',
663
+ icon:{name: 'print', color: 'var(--sd-colour-state--in-progress)'},
607
664
  },
608
665
  ];
609
666
 
@@ -223,7 +223,7 @@ export default class ButtonsDoc extends React.Component {
223
223
  <Markup.ReactMarkupPreview>
224
224
  <p className="docs-page__paragraph">// Large default and small</p>
225
225
  <div className="docs-page__content-row">
226
- <Button type="warning" icon="exclamation-sign" text="exclamation-sign" size="large" iconOnly={true} onClick={()=> false} />
226
+ <Button type="warning" icon="exclamation-sign" text="exclamation-sign" size="large" iconOnly={true} onClick={()=> false} />
227
227
  <Button type="primary" icon="plus-sign" text="plus-sign" style="hollow" size="large" iconOnly={true} onClick={()=> false} />
228
228
  <Button type="highlight" icon="bell" text="bell" size="large" iconOnly={true} onClick={()=> false} />
229
229
  <Button icon="info-sign" text="info-sign" iconOnly={true} onClick={()=> false} />
@@ -236,14 +236,16 @@ export default class ButtonsDoc extends React.Component {
236
236
 
237
237
  <p className="docs-page__paragraph">// Circle (large, default and small)</p>
238
238
  <div className="docs-page__content-row">
239
- <Button type="warning" icon="exclamation-sign" text="exclamation-sign" size="large" shape="round" iconOnly={true} onClick={()=> false} />
239
+ <Button type="warning" icon="exclamation-sign" text="exclamation-sign" size="large" shape="round" iconOnly={true} onClick={()=> false} />
240
240
  <Button type="primary" icon="plus-large" text="plus-large" style="hollow" size="large" shape="round" iconOnly={true} onClick={()=> false} />
241
+ <Button icon="chevron-up-thin" text="Pull up" style="hollow" shape="round" size="large" iconOnly={true} onClick={()=> false} />
241
242
  <Button type="highlight" icon="bell" text="bell" size="large" shape="round" iconOnly={true} onClick={()=> false} />
242
243
  <Button size="normal" icon="info-sign" text="info-sign" shape="round" iconOnly={true} onClick={()=> false} />
243
244
  <Button type="primary" icon="plus-large" text="plus-large" shape="round" iconOnly={true} onClick={()=> false} />
244
245
  <Button type="success" icon="ok" text="ok" shape="round" iconOnly={true} onClick={()=> false} />
245
246
  <Button type="alert" icon="close-small" text="close-small" size="small" shape="round" iconOnly={true} onClick={()=> false} />
246
- <Button type="primary" icon="plus-large" text="plus-large" size="small" shape="round" iconOnly={true} onClick={()=> false} />
247
+ <Button type="primary" icon="plus-large" text="Add New" size="small" shape="round" iconOnly={true} onClick={()=> false} />
248
+ <Button icon="chevron-up-thin" text="Pull up" size="small" shape="round" iconOnly={true} onClick={()=> false} />
247
249
  <Button type="sd-green" icon="star" text="star" size="small" shape="round" iconOnly={true} onClick={()=> false} />
248
250
  </div>
249
251
  </Markup.ReactMarkupPreview>