@salutejs/plasma-new-hope 0.238.1-canary.1692.12540362812.0 → 0.239.0-canary.1696.12710467472.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 (91) hide show
  1. package/cjs/components/Avatar/Avatar.js +39 -3
  2. package/cjs/components/Avatar/Avatar.js.map +1 -1
  3. package/cjs/components/Avatar/Avatar.styles.js +32 -1
  4. package/cjs/components/Avatar/Avatar.styles.js.map +1 -1
  5. package/cjs/components/Avatar/Avatar.styles_131qvfx.css +8 -0
  6. package/cjs/components/Avatar/Avatar.tokens.js +41 -2
  7. package/cjs/components/Avatar/Avatar.tokens.js.map +1 -1
  8. package/cjs/components/Avatar/utils/index.js +21 -0
  9. package/cjs/components/Avatar/utils/index.js.map +1 -0
  10. package/cjs/index.css +8 -5
  11. package/emotion/cjs/components/Avatar/Avatar.js +39 -4
  12. package/emotion/cjs/components/Avatar/Avatar.styles.js +29 -10
  13. package/emotion/cjs/components/Avatar/Avatar.template-doc.mdx +54 -0
  14. package/emotion/cjs/components/Avatar/Avatar.tokens.js +41 -2
  15. package/emotion/cjs/components/Avatar/utils/index.js +15 -1
  16. package/emotion/cjs/examples/plasma_b2c/components/Avatar/Avatar.config.js +25 -7
  17. package/emotion/cjs/examples/plasma_b2c/components/Avatar/Avatar.stories.tsx +134 -1
  18. package/emotion/cjs/examples/plasma_web/components/Avatar/Avatar.config.js +25 -7
  19. package/emotion/cjs/examples/plasma_web/components/Avatar/Avatar.stories.tsx +134 -1
  20. package/emotion/es/components/Avatar/Avatar.js +41 -6
  21. package/emotion/es/components/Avatar/Avatar.styles.js +29 -10
  22. package/emotion/es/components/Avatar/Avatar.template-doc.mdx +54 -0
  23. package/emotion/es/components/Avatar/Avatar.tokens.js +41 -2
  24. package/emotion/es/components/Avatar/utils/index.js +14 -1
  25. package/emotion/es/examples/plasma_b2c/components/Avatar/Avatar.config.js +25 -7
  26. package/emotion/es/examples/plasma_b2c/components/Avatar/Avatar.stories.tsx +134 -1
  27. package/emotion/es/examples/plasma_web/components/Avatar/Avatar.config.js +25 -7
  28. package/emotion/es/examples/plasma_web/components/Avatar/Avatar.stories.tsx +134 -1
  29. package/es/components/Avatar/Avatar.js +40 -4
  30. package/es/components/Avatar/Avatar.js.map +1 -1
  31. package/es/components/Avatar/Avatar.styles.js +30 -2
  32. package/es/components/Avatar/Avatar.styles.js.map +1 -1
  33. package/es/components/Avatar/Avatar.styles_131qvfx.css +8 -0
  34. package/es/components/Avatar/Avatar.tokens.js +41 -2
  35. package/es/components/Avatar/Avatar.tokens.js.map +1 -1
  36. package/es/components/Avatar/utils/index.js +17 -0
  37. package/es/components/Avatar/utils/index.js.map +1 -0
  38. package/es/index.css +8 -5
  39. package/package.json +5 -5
  40. package/styled-components/cjs/components/Avatar/Avatar.js +38 -3
  41. package/styled-components/cjs/components/Avatar/Avatar.styles.js +18 -2
  42. package/styled-components/cjs/components/Avatar/Avatar.template-doc.mdx +54 -0
  43. package/styled-components/cjs/components/Avatar/Avatar.tokens.js +41 -2
  44. package/styled-components/cjs/components/Avatar/utils/index.js +15 -1
  45. package/styled-components/cjs/examples/plasma_b2c/components/Avatar/Avatar.config.js +22 -4
  46. package/styled-components/cjs/examples/plasma_b2c/components/Avatar/Avatar.stories.tsx +134 -1
  47. package/styled-components/cjs/examples/plasma_web/components/Avatar/Avatar.config.js +22 -4
  48. package/styled-components/cjs/examples/plasma_web/components/Avatar/Avatar.stories.tsx +134 -1
  49. package/styled-components/es/components/Avatar/Avatar.js +40 -5
  50. package/styled-components/es/components/Avatar/Avatar.styles.js +18 -2
  51. package/styled-components/es/components/Avatar/Avatar.template-doc.mdx +54 -0
  52. package/styled-components/es/components/Avatar/Avatar.tokens.js +41 -2
  53. package/styled-components/es/components/Avatar/utils/index.js +14 -1
  54. package/styled-components/es/examples/plasma_b2c/components/Avatar/Avatar.config.js +22 -4
  55. package/styled-components/es/examples/plasma_b2c/components/Avatar/Avatar.stories.tsx +134 -1
  56. package/styled-components/es/examples/plasma_web/components/Avatar/Avatar.config.js +22 -4
  57. package/styled-components/es/examples/plasma_web/components/Avatar/Avatar.stories.tsx +134 -1
  58. package/types/components/Avatar/Avatar.d.ts +3 -21
  59. package/types/components/Avatar/Avatar.d.ts.map +1 -1
  60. package/types/components/Avatar/Avatar.styles.d.ts +59 -0
  61. package/types/components/Avatar/Avatar.styles.d.ts.map +1 -1
  62. package/types/components/Avatar/Avatar.tokens.d.ts +37 -0
  63. package/types/components/Avatar/Avatar.tokens.d.ts.map +1 -1
  64. package/types/components/Avatar/Avatar.types.d.ts +47 -2
  65. package/types/components/Avatar/Avatar.types.d.ts.map +1 -1
  66. package/types/components/Avatar/utils/index.d.ts +1 -0
  67. package/types/components/Avatar/utils/index.d.ts.map +1 -1
  68. package/types/components/Badge/Badge.types.d.ts +8 -21
  69. package/types/components/Badge/Badge.types.d.ts.map +1 -1
  70. package/types/components/Counter/Counter.d.ts +2 -12
  71. package/types/components/Counter/Counter.d.ts.map +1 -1
  72. package/types/components/Counter/Counter.types.d.ts +1 -2
  73. package/types/components/Counter/Counter.types.d.ts.map +1 -1
  74. package/types/examples/plasma_b2c/components/Avatar/Avatar.config.d.ts +18 -0
  75. package/types/examples/plasma_b2c/components/Avatar/Avatar.config.d.ts.map +1 -1
  76. package/types/examples/plasma_b2c/components/Avatar/Avatar.d.ts +138 -6
  77. package/types/examples/plasma_b2c/components/Avatar/Avatar.d.ts.map +1 -1
  78. package/types/examples/plasma_b2c/components/Badge/Badge.d.ts +8 -48
  79. package/types/examples/plasma_b2c/components/Badge/Badge.d.ts.map +1 -1
  80. package/types/examples/plasma_b2c/components/Counter/Counter.d.ts +1 -6
  81. package/types/examples/plasma_b2c/components/Counter/Counter.d.ts.map +1 -1
  82. package/types/examples/plasma_web/components/Avatar/Avatar.config.d.ts +18 -0
  83. package/types/examples/plasma_web/components/Avatar/Avatar.config.d.ts.map +1 -1
  84. package/types/examples/plasma_web/components/Avatar/Avatar.d.ts +138 -6
  85. package/types/examples/plasma_web/components/Avatar/Avatar.d.ts.map +1 -1
  86. package/types/examples/plasma_web/components/Badge/Badge.d.ts +8 -48
  87. package/types/examples/plasma_web/components/Badge/Badge.d.ts.map +1 -1
  88. package/types/examples/plasma_web/components/Counter/Counter.d.ts +1 -6
  89. package/types/examples/plasma_web/components/Counter/Counter.d.ts.map +1 -1
  90. package/cjs/components/Avatar/Avatar.styles_1gd252x.css +0 -5
  91. package/es/components/Avatar/Avatar.styles_1gd252x.css +0 -5
@@ -15,7 +15,7 @@ var _Avatar2 = /*#__PURE__*/require("./Avatar.styles");
15
15
  var _base = /*#__PURE__*/require("./variations/_size/base");
16
16
  var _base2 = /*#__PURE__*/require("./variations/_focused/base");
17
17
  var _utils2 = /*#__PURE__*/require("./utils");
18
- var _excluded = ["size", "name", "url", "customText", "status", "className", "focused", "isScalable", "statusLabels"];
18
+ var _excluded = ["size", "name", "url", "customText", "status", "className", "focused", "isScalable", "statusLabels", "hasExtra", "extraPlacement", "type", "counterView", "count", "maxCount", "badgeView", "text", "customColor", "customBackgroundColor", "contentLeft", "contentRight", "pilled"];
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
@@ -82,6 +82,19 @@ var avatarRoot = exports.avatarRoot = function avatarRoot(Root) {
82
82
  isScalable = props.isScalable,
83
83
  _props$statusLabels = props.statusLabels,
84
84
  statusLabels = _props$statusLabels === void 0 ? StatusLabelsDefault : _props$statusLabels,
85
+ hasExtra = props.hasExtra,
86
+ extraPlacement = props.extraPlacement,
87
+ type = props.type,
88
+ counterView = props.counterView,
89
+ count = props.count,
90
+ maxCount = props.maxCount,
91
+ badgeView = props.badgeView,
92
+ text = props.text,
93
+ customColor = props.customColor,
94
+ customBackgroundColor = props.customBackgroundColor,
95
+ contentLeft = props.contentLeft,
96
+ contentRight = props.contentRight,
97
+ pilled = props.pilled,
85
98
  rest = _objectWithoutProperties(props, _excluded);
86
99
  var initials = (0, _react.useMemo)(function () {
87
100
  return (0, _utils2.getInitialsForName)(name);
@@ -89,13 +102,18 @@ var avatarRoot = exports.avatarRoot = function avatarRoot(Root) {
89
102
  var ariaLabel = getAriaLabel(_objectSpread(_objectSpread({}, props), {}, {
90
103
  statusLabels: statusLabels
91
104
  }));
105
+ var extraViewProp = type === 'badge' ? {
106
+ badgeView: badgeView
107
+ } : {
108
+ counterView: counterView
109
+ };
92
110
  return /*#__PURE__*/_react["default"].createElement(Root, _extends({
93
111
  ref: ref,
94
112
  size: avatarSize,
95
113
  className: (0, _utils.cx)(_Avatar.classes.avatarItem, className),
96
114
  "aria-label": ariaLabel,
97
115
  focused: focused
98
- }, rest), /*#__PURE__*/_react["default"].createElement(_Avatar2.Wrapper, {
116
+ }, extraViewProp, rest), /*#__PURE__*/_react["default"].createElement(_Avatar2.Wrapper, {
99
117
  isScalable: isScalable
100
118
  }, getAvatarContent({
101
119
  customText: customText,
@@ -105,7 +123,24 @@ var avatarRoot = exports.avatarRoot = function avatarRoot(Root) {
105
123
  })), status && /*#__PURE__*/_react["default"].createElement(_Avatar2.StatusIcon, null, /*#__PURE__*/_react["default"].createElement(StyledIndicator, {
106
124
  "aria-label": statusLabels[status],
107
125
  status: status
108
- })));
126
+ })), hasExtra && avatarSize !== 'fit' && /*#__PURE__*/_react["default"].createElement(_Avatar2.ExtraContent, {
127
+ className: (0, _utils2.extraPlacementMap)(extraPlacement)
128
+ }, type === 'counter' ? /*#__PURE__*/_react["default"].createElement(_Avatar2.ExtraCounter, {
129
+ view: counterView,
130
+ count: count || 1,
131
+ maxCount: maxCount
132
+ }) : avatarSize !== 's' && /*#__PURE__*/_react["default"].createElement(_Avatar2.ExtraBadge, _extends({
133
+ view: badgeView,
134
+ text: text,
135
+ customColor: customColor,
136
+ customBackgroundColor: customBackgroundColor,
137
+ pilled: pilled,
138
+ maxWidth: "100%"
139
+ }, contentLeft ? {
140
+ contentLeft: contentLeft
141
+ } : {
142
+ contentRight: contentRight
143
+ }))));
109
144
  });
110
145
  };
111
146
  var avatarConfig = exports.avatarConfig = {
@@ -4,13 +4,20 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.base = exports.Wrapper = exports.Text = exports.StatusIcon = exports.Image = void 0;
7
+ exports.base = exports.Wrapper = exports.Text = exports.StatusIcon = exports.Image = exports.ExtraCounter = exports.ExtraContent = exports.ExtraBadge = void 0;
8
8
  var _styledComponents = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("styled-components"));
9
+ var _engines = /*#__PURE__*/require("../../engines");
10
+ var _Badge = /*#__PURE__*/require("../Badge");
11
+ var _Counter = /*#__PURE__*/require("../Counter");
9
12
  var _Avatar = /*#__PURE__*/require("./Avatar.tokens");
10
13
  var _templateObject;
11
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
13
16
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
17
+ var mergedBadgeConfig = /*#__PURE__*/(0, _engines.mergeConfig)(_Badge.badgeConfig);
18
+ var Badge = /*#__PURE__*/(0, _engines.component)(mergedBadgeConfig);
19
+ var mergedCounterConfig = /*#__PURE__*/(0, _engines.mergeConfig)(_Counter.counterConfig);
20
+ var Counter = /*#__PURE__*/(0, _engines.component)(mergedCounterConfig);
14
21
  var base = exports.base = /*#__PURE__*/(0, _styledComponents.css)(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteral(["\n position: relative;\n"])));
15
22
  var Wrapper = exports.Wrapper = /*#__PURE__*/_styledComponents["default"].div.withConfig({
16
23
  componentId: "plasma-new-hope__sc-t16ccn-0"
@@ -29,4 +36,13 @@ var Image = exports.Image = /*#__PURE__*/_styledComponents["default"].img.withCo
29
36
  })(["width:100%;height:100%;border-radius:50%;"]);
30
37
  var Text = exports.Text = /*#__PURE__*/_styledComponents["default"].span.withConfig({
31
38
  componentId: "plasma-new-hope__sc-t16ccn-3"
32
- })(["font-size:var(", ");font-family:var(", ");font-weight:var(", ");line-height:var(", ");background-image:var(", ");background-color:var(", ");background-size:100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;"], _Avatar.tokens.fontSize, _Avatar.tokens.fontFamily, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.color, _Avatar.tokens.color);
39
+ })(["font-size:var(", ");font-family:var(", ");font-weight:var(", ");line-height:var(", ");background-image:var(", ");background-color:var(", ");background-size:100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;"], _Avatar.tokens.fontSize, _Avatar.tokens.fontFamily, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.color, _Avatar.tokens.color);
40
+ var ExtraContent = exports.ExtraContent = /*#__PURE__*/_styledComponents["default"].div.withConfig({
41
+ componentId: "plasma-new-hope__sc-t16ccn-4"
42
+ })(["max-width:100%;display:flex;position:absolute;z-index:2;&.", "{top:calc(-0.063rem * var(", ",0));left:calc(-0.063rem * var(", ",0));}&.", "{top:calc(-0.063rem * var(", ",0));right:calc(-0.063rem * var(", ",0));}&.", "{bottom:calc(-0.063rem * var(", ",0));right:calc(-0.063rem * var(", ",0));}&.", "{bottom:calc(-0.063rem * var(", ",0));left:calc(-0.063rem * var(", ",0));}"], _Avatar.classes.extraPlacementTopLeft, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.extraPlacementFactor, _Avatar.classes.extraPlacementTopRight, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.extraPlacementFactor, _Avatar.classes.extraPlacementBottomRight, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.extraPlacementFactor, _Avatar.classes.extraPlacementBottomLeft, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.extraPlacementFactor);
43
+ var ExtraBadge = exports.ExtraBadge = /*#__PURE__*/(0, _styledComponents["default"])(Badge).withConfig({
44
+ componentId: "plasma-new-hope__sc-t16ccn-5"
45
+ })(["", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");"], _Badge.badgeTokens.background, _Avatar.tokens.badgeBackground, _Badge.badgeTokens.color, _Avatar.tokens.badgeColor, _Badge.badgeTokens.backgroundTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Badge.badgeTokens.colorTransparent, _Avatar.tokens.badgeColorTransparent, _Badge.badgeTokens.colorClear, _Avatar.tokens.badgeColorClear, _Badge.badgeTokens.backgroundClear, _Avatar.tokens.badgeBackgroundClear, _Badge.badgeTokens.borderRadius, _Avatar.tokens.badgeBorderRadius, _Badge.badgeTokens.pilledBorderRadius, _Avatar.tokens.badgePilledBorderRadius, _Badge.badgeTokens.height, _Avatar.tokens.badgeHeight, _Badge.badgeTokens.padding, _Avatar.tokens.badgePadding, _Badge.badgeTokens.paddingIconOnly, _Avatar.tokens.badgePaddingIconOnly, _Badge.badgeTokens.fontFamily, _Avatar.tokens.badgeFontFamily, _Badge.badgeTokens.fontSize, _Avatar.tokens.badgeFontSize, _Badge.badgeTokens.fontStyle, _Avatar.tokens.badgeFontStyle, _Badge.badgeTokens.fontWeight, _Avatar.tokens.badgeFontWeight, _Badge.badgeTokens.letterSpacing, _Avatar.tokens.badgeLetterSpacing, _Badge.badgeTokens.lineHeight, _Avatar.tokens.badgeLineHeight, _Badge.badgeTokens.leftContentMarginLeft, _Avatar.tokens.badgeLeftContentMarginLeft, _Badge.badgeTokens.leftContentMarginRight, _Avatar.tokens.badgeLeftContentMarginRight, _Badge.badgeTokens.rightContentMarginLeft, _Avatar.tokens.badgeRightContentMarginLeft, _Badge.badgeTokens.rightContentMarginRight, _Avatar.tokens.badgeRightContentMarginRight);
46
+ var ExtraCounter = exports.ExtraCounter = /*#__PURE__*/(0, _styledComponents["default"])(Counter).withConfig({
47
+ componentId: "plasma-new-hope__sc-t16ccn-6"
48
+ })(["", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");", ":var(", ");"], _Counter.counterTokens.background, _Avatar.tokens.counterBackground, _Counter.counterTokens.color, _Avatar.tokens.counterColor, _Counter.counterTokens.borderRadius, _Avatar.tokens.counterBorderRadius, _Counter.counterTokens.height, _Avatar.tokens.counterHeight, _Counter.counterTokens.padding, _Avatar.tokens.counterPadding, _Counter.counterTokens.fontFamily, _Avatar.tokens.counterFontFamily, _Counter.counterTokens.fontSize, _Avatar.tokens.counterFontSize, _Counter.counterTokens.fontStyle, _Avatar.tokens.counterFontStyle, _Counter.counterTokens.fontWeight, _Avatar.tokens.counterFontWeight, _Counter.counterTokens.letterSpacing, _Avatar.tokens.counterLetterSpacing, _Counter.counterTokens.lineHeight, _Avatar.tokens.counterLineHeight);
@@ -147,3 +147,57 @@ export function App() {
147
147
  Опциональное свойство для корректной озвучки значений свойства `status`.
148
148
 
149
149
  По-умолчанию стоит значение для русскоговорящих `{ active: 'Активен', inactive: 'Неактивен' }`.
150
+
151
+ #### Avatar и дополнительный контент
152
+
153
+ Чтобы отобразить дополнительный контент нужно передать свойство `hasExtra`.
154
+ Тип дополнительного контента задается с помощью свойства `type`, а его вид с помощью `badgeView` и `counterView` соответственно.
155
+ За положение дополнительного контента отвечает `extraPlacement`:
156
+
157
+ ```tsx live
158
+ import React from 'react';
159
+ import { Avatar } from '@salutejs/{{ package }}';
160
+
161
+ export function App() {
162
+ return (
163
+ <>
164
+ <Avatar
165
+ size="l"
166
+ name="Иван Фадеев"
167
+ extraPlacement="top-left"
168
+ type="counter"
169
+ count={33}
170
+ counterView="positive"
171
+ hasExtra
172
+ />
173
+ <Avatar
174
+ size="l"
175
+ name="Иван Фадеев"
176
+ extraPlacement="top-right"
177
+ type="counter"
178
+ count={33}
179
+ counterView="accent"
180
+ hasExtra
181
+ />
182
+ <Avatar
183
+ size="l"
184
+ name="Иван Фадеев"
185
+ extraPlacement="bottom-right"
186
+ type="badge"
187
+ text="15"
188
+ badgeView="warning"
189
+ hasExtra
190
+ />
191
+ <Avatar
192
+ size="l"
193
+ name="Иван Фадеев"
194
+ extraPlacement="bottom-left"
195
+ type="badge"
196
+ text="15"
197
+ badgeView="negative"
198
+ hasExtra
199
+ />
200
+ </>
201
+ );
202
+ }
203
+ ```
@@ -5,7 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.tokens = exports.classes = void 0;
7
7
  var classes = exports.classes = {
8
- avatarItem: 'avatar-item'
8
+ avatarItem: 'avatar-item',
9
+ extraPlacementTopRight: 'avatar-extra-placement-top-right',
10
+ extraPlacementTopLeft: 'avatar-extra-placement-top-left',
11
+ extraPlacementBottomLeft: 'avatar-extra-placement-bottom-left',
12
+ extraPlacementBottomRight: 'avatar-extra-placement-bottom-right'
9
13
  };
10
14
  var tokens = exports.tokens = {
11
15
  avatarSize: '--plasma-avatar-size',
@@ -21,5 +25,40 @@ var tokens = exports.tokens = {
21
25
  outlineColor: '--plasma-avatar-outline-color',
22
26
  outlineSize: '--plasma-avatar-outline-size',
23
27
  outlineOffset: '--plasma-avatar-outline-offset',
24
- scaleHover: '--plasma-avatar-scale-hover'
28
+ scaleHover: '--plasma-avatar-scale-hover',
29
+ extraPlacementFactor: '--plasma-avatar-extra-placement-factor',
30
+ // extra badge tokens
31
+ badgeBackground: '--plasma-avatar-extra-badge-background',
32
+ badgeColor: '--plasma-avatar-extra-badge-color',
33
+ badgeBackgroundTransparent: '--plasma-avatar-extra-badge-background-transparent',
34
+ badgeColorTransparent: '--plasma-avatar-extra-badge-color-transparent',
35
+ badgeColorClear: '--plasma-avatar-extra-badge-color-clear',
36
+ badgeBackgroundClear: '--plasma-avatar-extra-badge-background-clear',
37
+ badgeBorderRadius: '--plasma-avatar-extra-badge-border-radius',
38
+ badgePilledBorderRadius: '--plasma-avatar-extra-badge-pilled-border-radius',
39
+ badgeHeight: '--plasma-avatar-extra-badge-height',
40
+ badgePadding: '--plasma-avatar-extra-badge-padding',
41
+ badgePaddingIconOnly: '--plasma-avatar-extra-badge-padding-icon-only',
42
+ badgeFontFamily: '--plasma-avatar-extra-badge-font-family',
43
+ badgeFontSize: '--plasma-avatar-extra-badge-font-size',
44
+ badgeFontStyle: '--plasma-avatar-extra-badge-font-style',
45
+ badgeFontWeight: '--plasma-avatar-extra-badge-font-weight',
46
+ badgeLetterSpacing: '--plasma-avatar-extra-badge-letter-spacing',
47
+ badgeLineHeight: '--plasma-avatar-extra-badge-lineheight',
48
+ badgeLeftContentMarginLeft: '--plasma-avatar-extra-badge-left-content-margin-left',
49
+ badgeLeftContentMarginRight: '--plasma-avatar-extra-badge-left-content-margin-right',
50
+ badgeRightContentMarginLeft: '--plasma-avatar-extra-badge-right-content-margin-left',
51
+ badgeRightContentMarginRight: '--plasma-avatar-extra-badge-right-content-margin-right',
52
+ // extra counter tokens
53
+ counterBackground: '--plasma-avatar-extra-counter-background',
54
+ counterColor: '--plasma-avatar-extra-counter-color',
55
+ counterBorderRadius: '--plasma-avatar-extra-counter-border-radius',
56
+ counterHeight: '--plasma-avatar-extra-counter-height',
57
+ counterPadding: '--plasma-avatar-extra-counter-padding',
58
+ counterFontFamily: '--plasma-avatar-extra-counter-font-family',
59
+ counterFontSize: '--plasma-avatar-extra-counter-font-size',
60
+ counterFontStyle: '--plasma-avatar-extra-counter-font-style',
61
+ counterFontWeight: '--plasma-avatar-extra-counter-font-weight',
62
+ counterLetterSpacing: '--plasma-avatar-extra-counter-letter-spacing',
63
+ counterLineHeight: '--plasma-avatar-extra-counter-lineheight'
25
64
  };
@@ -3,10 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.extraPlacementMap = void 0;
6
7
  Object.defineProperty(exports, "getInitialsForName", {
7
8
  enumerable: true,
8
9
  get: function get() {
9
10
  return _getInitialsForName.getInitialsForName;
10
11
  }
11
12
  });
12
- var _getInitialsForName = /*#__PURE__*/require("./getInitialsForName");
13
+ var _Avatar = /*#__PURE__*/require("../Avatar.tokens");
14
+ var _getInitialsForName = /*#__PURE__*/require("./getInitialsForName");
15
+ var extraPlacementMap = exports.extraPlacementMap = function extraPlacementMap(extraPlacement) {
16
+ switch (extraPlacement) {
17
+ case 'top-left':
18
+ return _Avatar.classes.extraPlacementTopLeft;
19
+ case 'bottom-left':
20
+ return _Avatar.classes.extraPlacementBottomLeft;
21
+ case 'bottom-right':
22
+ return _Avatar.classes.extraPlacementBottomRight;
23
+ default:
24
+ return _Avatar.classes.extraPlacementTopRight;
25
+ }
26
+ };
@@ -16,14 +16,32 @@ var config = exports.config = {
16
16
  "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-accent-gradient);", ":linear-gradient(94deg,rgba(62,121,240,0.2) 6.49%,rgba(39,198,229,0.2) 93.51%);", ":var(--surface-positive);", ":var(--surface-solid-tertiary);", ":1.02;"], _Avatar.tokens.color, _Avatar.tokens.backgroundColor, _Avatar.tokens.statusOnlineColor, _Avatar.tokens.statusOfflineColor, _Avatar.tokens.scaleHover)
17
17
  },
18
18
  size: {
19
- xxl: /*#__PURE__*/(0, _styledComponents.css)(["", ":6.25rem;", ":2rem;", ":600;", ":2rem;", ":0.75rem;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize),
20
- l: /*#__PURE__*/(0, _styledComponents.css)(["", ":3rem;", ":1.25rem;", ":600;", ":1.25rem;", ":0.5rem;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize),
21
- m: /*#__PURE__*/(0, _styledComponents.css)(["", ":2.25rem;", ":0.875rem;", ":600;", ":0.875rem;", ":0.5rem;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize),
22
- s: /*#__PURE__*/(0, _styledComponents.css)(["", ":1.5rem;", ":0.5rem;", ":600;", ":0.5rem;", ":0.375rem;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize),
19
+ xxl: /*#__PURE__*/(0, _styledComponents.css)(["", ":6.25rem;", ":2rem;", ":600;", ":2rem;", ":0.75rem;", ":0.5rem;", ":1.75rem;", ":0 0.6875rem;", ":0 0.375rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":-0.0625rem;", ":0.25rem;", ":0.25rem;", ":-0.0625rem;", ":1.25rem;", ":1rem;", ":1.75rem;", ":0 0.625rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize, _Avatar.tokens.badgeBorderRadius, _Avatar.tokens.badgeHeight, _Avatar.tokens.badgePadding, _Avatar.tokens.badgePaddingIconOnly, _Avatar.tokens.badgeFontFamily, _Avatar.tokens.badgeFontSize, _Avatar.tokens.badgeFontStyle, _Avatar.tokens.badgeFontWeight, _Avatar.tokens.badgeLetterSpacing, _Avatar.tokens.badgeLineHeight, _Avatar.tokens.badgeLeftContentMarginLeft, _Avatar.tokens.badgeLeftContentMarginRight, _Avatar.tokens.badgeRightContentMarginLeft, _Avatar.tokens.badgeRightContentMarginRight, _Avatar.tokens.badgePilledBorderRadius, _Avatar.tokens.counterBorderRadius, _Avatar.tokens.counterHeight, _Avatar.tokens.counterPadding, _Avatar.tokens.counterFontFamily, _Avatar.tokens.counterFontSize, _Avatar.tokens.counterFontStyle, _Avatar.tokens.counterFontWeight, _Avatar.tokens.counterLetterSpacing, _Avatar.tokens.counterLineHeight),
20
+ l: /*#__PURE__*/(0, _styledComponents.css)(["", ":3rem;", ":1.25rem;", ":600;", ":1.25rem;", ":0.5rem;", ":2;", ":0.375rem;", ":1.25rem;", ":0 0.4375rem;", ":0 0.25rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);", ":-0.0625rem;", ":0.125rem;", ":0.125rem;", ":-0.0625rem;", ":1.25rem;", ":1rem;", ":1.25rem;", ":0 0.375rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.badgeBorderRadius, _Avatar.tokens.badgeHeight, _Avatar.tokens.badgePadding, _Avatar.tokens.badgePaddingIconOnly, _Avatar.tokens.badgeFontFamily, _Avatar.tokens.badgeFontSize, _Avatar.tokens.badgeFontStyle, _Avatar.tokens.badgeFontWeight, _Avatar.tokens.badgeLetterSpacing, _Avatar.tokens.badgeLineHeight, _Avatar.tokens.badgeLeftContentMarginLeft, _Avatar.tokens.badgeLeftContentMarginRight, _Avatar.tokens.badgeRightContentMarginLeft, _Avatar.tokens.badgeRightContentMarginRight, _Avatar.tokens.badgePilledBorderRadius, _Avatar.tokens.counterBorderRadius, _Avatar.tokens.counterHeight, _Avatar.tokens.counterPadding, _Avatar.tokens.counterFontFamily, _Avatar.tokens.counterFontSize, _Avatar.tokens.counterFontStyle, _Avatar.tokens.counterFontWeight, _Avatar.tokens.counterLetterSpacing, _Avatar.tokens.counterLineHeight),
21
+ m: /*#__PURE__*/(0, _styledComponents.css)(["", ":2.25rem;", ":0.875rem;", ":600;", ":0.875rem;", ":0.5rem;", ":2;", ":0.25rem;", ":1rem;", ":0 0.25rem;", ":0 0.188rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);", ":-0.0625rem;", ":0.125rem;", ":0.125rem;", ":-0.0625rem;", ":1.25rem;", ":1rem;", ":1rem;", ":0 0.25rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.badgeBorderRadius, _Avatar.tokens.badgeHeight, _Avatar.tokens.badgePadding, _Avatar.tokens.badgePaddingIconOnly, _Avatar.tokens.badgeFontFamily, _Avatar.tokens.badgeFontSize, _Avatar.tokens.badgeFontStyle, _Avatar.tokens.badgeFontWeight, _Avatar.tokens.badgeLetterSpacing, _Avatar.tokens.badgeLineHeight, _Avatar.tokens.badgeLeftContentMarginLeft, _Avatar.tokens.badgeLeftContentMarginRight, _Avatar.tokens.badgeRightContentMarginLeft, _Avatar.tokens.badgeRightContentMarginRight, _Avatar.tokens.badgePilledBorderRadius, _Avatar.tokens.counterBorderRadius, _Avatar.tokens.counterHeight, _Avatar.tokens.counterPadding, _Avatar.tokens.counterFontFamily, _Avatar.tokens.counterFontSize, _Avatar.tokens.counterFontStyle, _Avatar.tokens.counterFontWeight, _Avatar.tokens.counterLetterSpacing, _Avatar.tokens.counterLineHeight),
22
+ s: /*#__PURE__*/(0, _styledComponents.css)(["", ":1.5rem;", ":0.5rem;", ":600;", ":0.5rem;", ":0.375rem;", ":1;", ":1rem;", ":0.75rem;", ":0 0.125rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.counterBorderRadius, _Avatar.tokens.counterHeight, _Avatar.tokens.counterPadding, _Avatar.tokens.counterFontFamily, _Avatar.tokens.counterFontSize, _Avatar.tokens.counterFontStyle, _Avatar.tokens.counterFontWeight, _Avatar.tokens.counterLetterSpacing, _Avatar.tokens.counterLineHeight),
23
23
  fit: /*#__PURE__*/(0, _styledComponents.css)(["", ":100%;", ":0;", ":0;", ":0;", ":0;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize)
24
24
  },
25
25
  focused: {
26
26
  "true": /*#__PURE__*/(0, _styledComponents.css)(["", ":0.1rem;", ":-0.2rem;", ":var(--surface-accent);"], _Avatar.tokens.outlineSize, _Avatar.tokens.outlineOffset, _Avatar.tokens.outlineColor)
27
+ },
28
+ badgeView: {
29
+ "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--inverse-text-primary);", ":var(--surface-solid-default);", ":var(--text-primary);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":var(--surface-clear);"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
30
+ accent: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-accent);", ":var(--text-accent);", ":var(--surface-transparent-accent);", ":var(--text-accent);", ":var(--surface-clear)"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
31
+ positive: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-positive);", ":var(--text-positive);", ":var(--surface-transparent-positive);", ":var(--text-positive);", ":var(--surface-clear)"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
32
+ warning: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-warning);", ":var(--text-warning);", ":var(--surface-transparent-warning);", ":var(--text-warning);", ":var(--surface-clear)"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
33
+ negative: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-negative);", ":var(--text-negative);", ":var(--surface-transparent-negative);", ":var(--text-negative);", ":var(--surface-clear)"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
34
+ dark: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--on-light-surface-solid-default);", ":var(--on-dark-text-primary);", ":var(--on-light-surface-transparent-deep);", ":var(--on-light-text-pri ", ":var(--surface-clear)mary);"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
35
+ light: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-light-text-primary);", ":var(--on-dark-surface-solid-default);", ":var(--on-dark-text-primary);", ":var(--on-dark-surface-transparent-card);", ":var(--on-dark-text-prima ", ":var(--surface-clear)ry);"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear)
36
+ },
37
+ counterView: {
38
+ "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--inverse-text-primary);", ":var(--surface-solid-default);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
39
+ accent: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-accent);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
40
+ positive: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-positive);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
41
+ warning: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-warning);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
42
+ negative: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-negative);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
43
+ dark: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--on-light-surface-solid-default);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
44
+ light: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-light-text-primary);", ":var(--on-dark-surface-solid-default);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground)
27
45
  }
28
46
  }
29
47
  };
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ComponentProps } from 'react';
2
3
  import type { StoryObj, Meta } from '@storybook/react';
3
4
  import { disableProps } from '@salutejs/plasma-sb-utils';
@@ -6,6 +7,11 @@ import { argTypesFromConfig, WithTheme } from '../../../_helpers';
6
7
 
7
8
  import { Avatar, mergedConfig } from './Avatar';
8
9
 
10
+ const extraPlacements = ['top-left', 'top-right', 'bottom-left', 'bottom-right'];
11
+ const extraType = ['', 'badge', 'counter'];
12
+ const counterViews = ['default', 'accent', 'positive', 'warning', 'negative', 'dark', 'light'];
13
+ const badgeViews = ['default', 'accent', 'positive', 'warning', 'negative', 'dark', 'light'];
14
+
9
15
  const meta: Meta<typeof Avatar> = {
10
16
  title: 'b2c/Data Display/Avatar',
11
17
  decorators: [WithTheme],
@@ -13,12 +19,69 @@ const meta: Meta<typeof Avatar> = {
13
19
  argTypes: {
14
20
  ...argTypesFromConfig(mergedConfig),
15
21
  status: { control: 'select', options: ['active', 'inactive'] },
22
+ type: {
23
+ control: 'select',
24
+ options: extraType,
25
+ if: { arg: 'hasExtra', truthy: true },
26
+ },
27
+ extraPlacement: {
28
+ control: 'select',
29
+ options: extraPlacements,
30
+ if: { arg: 'hasExtra', truthy: true },
31
+ },
32
+ counterView: {
33
+ control: 'select',
34
+ options: counterViews,
35
+ if: { arg: 'type', eq: 'counter' },
36
+ },
37
+ count: {
38
+ control: 'number',
39
+ if: { arg: 'type', eq: 'counter' },
40
+ },
41
+ maxCount: {
42
+ control: 'number',
43
+ if: { arg: 'type', eq: 'counter' },
44
+ },
45
+ badgeView: {
46
+ control: 'select',
47
+ options: badgeViews,
48
+ if: { arg: 'type', eq: 'badge' },
49
+ },
50
+ text: {
51
+ control: 'text',
52
+ if: { arg: 'type', eq: 'badge' },
53
+ },
54
+ customColor: {
55
+ control: 'color',
56
+ if: { arg: 'type', eq: 'badge' },
57
+ },
58
+ customBackgroundColor: {
59
+ control: 'color',
60
+ if: { arg: 'type', eq: 'badge' },
61
+ },
62
+ pilled: {
63
+ control: 'boolean',
64
+ if: { arg: 'type', eq: 'badge' },
65
+ },
16
66
  },
17
67
  };
18
68
 
19
69
  export default meta;
20
70
 
21
- type Story = StoryObj<ComponentProps<typeof Avatar>>;
71
+ type StoryProps = ComponentProps<typeof Avatar> & {
72
+ enableContentLeft: boolean;
73
+ enableContentRight: boolean;
74
+ };
75
+ type Story = StoryObj<StoryProps>;
76
+
77
+ const BellIcon = (props) => (
78
+ <svg width="100%" viewBox="0 0 24 24" fill="none" {...props}>
79
+ <path
80
+ d="M11.501 21.28c1.088 0 1.978-.889 1.978-1.977H9.524c0 1.088.88 1.978 1.977 1.978zm5.933-5.932v-4.944c0-3.035-1.622-5.576-4.45-6.248v-.673c0-.82-.662-1.483-1.483-1.483-.82 0-1.483.662-1.483 1.483v.672c-2.838.673-4.45 3.204-4.45 6.25v4.943l-1.275 1.276c-.623.623-.188 1.69.692 1.69h13.022c.88 0 1.325-1.067.702-1.69l-1.275-1.276z"
81
+ fill="currentColor"
82
+ />
83
+ </svg>
84
+ );
22
85
 
23
86
  export const Default: Story = {
24
87
  args: {
@@ -27,10 +90,56 @@ export const Default: Story = {
27
90
  name: 'Иван Фадеев',
28
91
  url: 'https://avatars.githubusercontent.com/u/1813468?v=4',
29
92
  isScalable: false,
93
+ hasExtra: false,
94
+ extraPlacement: 'top-right',
95
+ type: undefined,
96
+ counterView: 'accent',
97
+ count: 3,
98
+ maxCount: 10,
99
+ badgeView: 'accent',
100
+ text: '31',
101
+ pilled: true,
102
+ enableContentLeft: false,
103
+ enableContentRight: false,
30
104
  },
31
105
  argTypes: {
106
+ enableContentLeft: {
107
+ control: { type: 'boolean' },
108
+ if: { arg: 'type', eq: 'badge' },
109
+ },
110
+ enableContentRight: {
111
+ control: { type: 'boolean' },
112
+ if: { arg: 'type', eq: 'badge' },
113
+ },
32
114
  ...disableProps(['focused']),
33
115
  },
116
+ render: ({ enableContentLeft, enableContentRight, size, ...rest }: StoryProps) => {
117
+ const iconSize = () => {
118
+ switch (size) {
119
+ case 'xxl':
120
+ return '1rem';
121
+ case 'm':
122
+ return '0.625rem';
123
+ default:
124
+ return '0.75rem';
125
+ }
126
+ };
127
+
128
+ return (
129
+ <>
130
+ <Avatar
131
+ contentLeft={enableContentLeft ? <BellIcon width={iconSize()} height={iconSize()} /> : undefined}
132
+ contentRight={
133
+ !enableContentLeft && enableContentRight ? (
134
+ <BellIcon width={iconSize()} height={iconSize()} />
135
+ ) : undefined
136
+ }
137
+ size={size}
138
+ {...rest}
139
+ />
140
+ </>
141
+ );
142
+ },
34
143
  };
35
144
 
36
145
  export const Accessibility: Story = {
@@ -42,6 +151,14 @@ export const Accessibility: Story = {
42
151
  size: 'xxl',
43
152
  status: 'active',
44
153
  focused: true,
154
+ hasExtra: false,
155
+ extraPlacement: 'top-right',
156
+ type: undefined,
157
+ counterView: 'accent',
158
+ count: 3,
159
+ maxCount: 10,
160
+ badgeView: 'accent',
161
+ text: '31',
45
162
  },
46
163
  };
47
164
 
@@ -55,6 +172,14 @@ export const AccessibilityWithURL: Story = {
55
172
  focused: true,
56
173
  name: 'Микула Селянинович',
57
174
  url: 'https://avatars.githubusercontent.com/u/1813468?v=4',
175
+ hasExtra: false,
176
+ extraPlacement: 'top-right',
177
+ type: undefined,
178
+ counterView: 'accent',
179
+ count: 3,
180
+ maxCount: 10,
181
+ badgeView: 'accent',
182
+ text: '31',
58
183
  },
59
184
  };
60
185
 
@@ -67,5 +192,13 @@ export const AccessibilityWithCustomText: Story = {
67
192
  status: 'inactive',
68
193
  focused: true,
69
194
  customText: 'ФИО',
195
+ hasExtra: false,
196
+ extraPlacement: 'top-right',
197
+ type: undefined,
198
+ counterView: 'accent',
199
+ count: 3,
200
+ maxCount: 10,
201
+ badgeView: 'accent',
202
+ text: '31',
70
203
  },
71
204
  };
@@ -16,14 +16,32 @@ var config = exports.config = {
16
16
  "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-accent-gradient);", ":linear-gradient(94deg,rgba(62,121,240,0.2) 6.49%,rgba(39,198,229,0.2) 93.51%);", ":var(--surface-positive);", ":var(--surface-solid-tertiary);", ":1.02;"], _Avatar.tokens.color, _Avatar.tokens.backgroundColor, _Avatar.tokens.statusOnlineColor, _Avatar.tokens.statusOfflineColor, _Avatar.tokens.scaleHover)
17
17
  },
18
18
  size: {
19
- xxl: /*#__PURE__*/(0, _styledComponents.css)(["", ":6.25rem;", ":2rem;", ":600;", ":2rem;", ":0.75rem;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize),
20
- l: /*#__PURE__*/(0, _styledComponents.css)(["", ":3rem;", ":1.25rem;", ":600;", ":1.25rem;", ":0.5rem;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize),
21
- m: /*#__PURE__*/(0, _styledComponents.css)(["", ":2.25rem;", ":0.875rem;", ":600;", ":0.875rem;", ":0.5rem;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize),
22
- s: /*#__PURE__*/(0, _styledComponents.css)(["", ":1.5rem;", ":0.5rem;", ":600;", ":0.5rem;", ":0.375rem;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize),
19
+ xxl: /*#__PURE__*/(0, _styledComponents.css)(["", ":6.25rem;", ":2rem;", ":600;", ":2rem;", ":0.75rem;", ":0.5rem;", ":1.75rem;", ":0 0.6875rem;", ":0 0.375rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":-0.0625rem;", ":0.25rem;", ":0.25rem;", ":-0.0625rem;", ":1.25rem;", ":1rem;", ":1.75rem;", ":0 0.625rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize, _Avatar.tokens.badgeBorderRadius, _Avatar.tokens.badgeHeight, _Avatar.tokens.badgePadding, _Avatar.tokens.badgePaddingIconOnly, _Avatar.tokens.badgeFontFamily, _Avatar.tokens.badgeFontSize, _Avatar.tokens.badgeFontStyle, _Avatar.tokens.badgeFontWeight, _Avatar.tokens.badgeLetterSpacing, _Avatar.tokens.badgeLineHeight, _Avatar.tokens.badgeLeftContentMarginLeft, _Avatar.tokens.badgeLeftContentMarginRight, _Avatar.tokens.badgeRightContentMarginLeft, _Avatar.tokens.badgeRightContentMarginRight, _Avatar.tokens.badgePilledBorderRadius, _Avatar.tokens.counterBorderRadius, _Avatar.tokens.counterHeight, _Avatar.tokens.counterPadding, _Avatar.tokens.counterFontFamily, _Avatar.tokens.counterFontSize, _Avatar.tokens.counterFontStyle, _Avatar.tokens.counterFontWeight, _Avatar.tokens.counterLetterSpacing, _Avatar.tokens.counterLineHeight),
20
+ l: /*#__PURE__*/(0, _styledComponents.css)(["", ":3rem;", ":1.25rem;", ":600;", ":1.25rem;", ":0.5rem;", ":2;", ":0.375rem;", ":1.25rem;", ":0 0.4375rem;", ":0 0.25rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);", ":-0.0625rem;", ":0.125rem;", ":0.125rem;", ":-0.0625rem;", ":1.25rem;", ":1rem;", ":1.25rem;", ":0 0.375rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.badgeBorderRadius, _Avatar.tokens.badgeHeight, _Avatar.tokens.badgePadding, _Avatar.tokens.badgePaddingIconOnly, _Avatar.tokens.badgeFontFamily, _Avatar.tokens.badgeFontSize, _Avatar.tokens.badgeFontStyle, _Avatar.tokens.badgeFontWeight, _Avatar.tokens.badgeLetterSpacing, _Avatar.tokens.badgeLineHeight, _Avatar.tokens.badgeLeftContentMarginLeft, _Avatar.tokens.badgeLeftContentMarginRight, _Avatar.tokens.badgeRightContentMarginLeft, _Avatar.tokens.badgeRightContentMarginRight, _Avatar.tokens.badgePilledBorderRadius, _Avatar.tokens.counterBorderRadius, _Avatar.tokens.counterHeight, _Avatar.tokens.counterPadding, _Avatar.tokens.counterFontFamily, _Avatar.tokens.counterFontSize, _Avatar.tokens.counterFontStyle, _Avatar.tokens.counterFontWeight, _Avatar.tokens.counterLetterSpacing, _Avatar.tokens.counterLineHeight),
21
+ m: /*#__PURE__*/(0, _styledComponents.css)(["", ":2.25rem;", ":0.875rem;", ":600;", ":0.875rem;", ":0.5rem;", ":2;", ":0.25rem;", ":1rem;", ":0 0.25rem;", ":0 0.188rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);", ":-0.0625rem;", ":0.125rem;", ":0.125rem;", ":-0.0625rem;", ":1.25rem;", ":1rem;", ":1rem;", ":0 0.25rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.badgeBorderRadius, _Avatar.tokens.badgeHeight, _Avatar.tokens.badgePadding, _Avatar.tokens.badgePaddingIconOnly, _Avatar.tokens.badgeFontFamily, _Avatar.tokens.badgeFontSize, _Avatar.tokens.badgeFontStyle, _Avatar.tokens.badgeFontWeight, _Avatar.tokens.badgeLetterSpacing, _Avatar.tokens.badgeLineHeight, _Avatar.tokens.badgeLeftContentMarginLeft, _Avatar.tokens.badgeLeftContentMarginRight, _Avatar.tokens.badgeRightContentMarginLeft, _Avatar.tokens.badgeRightContentMarginRight, _Avatar.tokens.badgePilledBorderRadius, _Avatar.tokens.counterBorderRadius, _Avatar.tokens.counterHeight, _Avatar.tokens.counterPadding, _Avatar.tokens.counterFontFamily, _Avatar.tokens.counterFontSize, _Avatar.tokens.counterFontStyle, _Avatar.tokens.counterFontWeight, _Avatar.tokens.counterLetterSpacing, _Avatar.tokens.counterLineHeight),
22
+ s: /*#__PURE__*/(0, _styledComponents.css)(["", ":1.5rem;", ":0.5rem;", ":600;", ":0.5rem;", ":0.375rem;", ":1;", ":1rem;", ":0.75rem;", ":0 0.125rem;", ":var(--plasma-typo-body-xxs-font-family);", ":var(--plasma-typo-body-xxs-font-size);", ":var(--plasma-typo-body-xxs-font-style);", ":var(--plasma-typo-body-xxs-font-weight);", ":var(--plasma-typo-body-xxs-letter-spacing);", ":var(--plasma-typo-body-xxs-line-height);"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize, _Avatar.tokens.extraPlacementFactor, _Avatar.tokens.counterBorderRadius, _Avatar.tokens.counterHeight, _Avatar.tokens.counterPadding, _Avatar.tokens.counterFontFamily, _Avatar.tokens.counterFontSize, _Avatar.tokens.counterFontStyle, _Avatar.tokens.counterFontWeight, _Avatar.tokens.counterLetterSpacing, _Avatar.tokens.counterLineHeight),
23
23
  fit: /*#__PURE__*/(0, _styledComponents.css)(["", ":100%;", ":0;", ":0;", ":0;", ":0;"], _Avatar.tokens.avatarSize, _Avatar.tokens.fontSize, _Avatar.tokens.fontWeight, _Avatar.tokens.lineHeight, _Avatar.tokens.statusIconSize)
24
24
  },
25
25
  focused: {
26
26
  "true": /*#__PURE__*/(0, _styledComponents.css)(["", ":0.1rem;", ":-0.2rem;", ":var(--surface-accent);"], _Avatar.tokens.outlineSize, _Avatar.tokens.outlineOffset, _Avatar.tokens.outlineColor)
27
+ },
28
+ badgeView: {
29
+ "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--inverse-text-primary);", ":var(--surface-solid-default);", ":var(--text-primary);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":var(--surface-clear);"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
30
+ accent: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-accent);", ":var(--text-accent);", ":var(--surface-transparent-accent);", ":var(--text-accent);", ":var(--surface-clear)"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
31
+ positive: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-positive);", ":var(--text-positive);", ":var(--surface-transparent-positive);", ":var(--text-positive);", ":var(--surface-clear)"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
32
+ warning: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-warning);", ":var(--text-warning);", ":var(--surface-transparent-warning);", ":var(--text-warning);", ":var(--surface-clear)"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
33
+ negative: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-negative);", ":var(--text-negative);", ":var(--surface-transparent-negative);", ":var(--text-negative);", ":var(--surface-clear)"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
34
+ dark: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--on-light-surface-solid-default);", ":var(--on-dark-text-primary);", ":var(--on-light-surface-transparent-deep);", ":var(--on-light-text-pri ", ":var(--surface-clear)mary);"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear),
35
+ light: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-light-text-primary);", ":var(--on-dark-surface-solid-default);", ":var(--on-dark-text-primary);", ":var(--on-dark-surface-transparent-card);", ":var(--on-dark-text-prima ", ":var(--surface-clear)ry);"], _Avatar.tokens.badgeColor, _Avatar.tokens.badgeBackground, _Avatar.tokens.badgeColorTransparent, _Avatar.tokens.badgeBackgroundTransparent, _Avatar.tokens.badgeColorClear, _Avatar.tokens.badgeBackgroundClear)
36
+ },
37
+ counterView: {
38
+ "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--inverse-text-primary);", ":var(--surface-solid-default);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
39
+ accent: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-accent);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
40
+ positive: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-positive);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
41
+ warning: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-warning);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
42
+ negative: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-negative);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
43
+ dark: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--on-light-surface-solid-default);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground),
44
+ light: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-light-text-primary);", ":var(--on-dark-surface-solid-default);"], _Avatar.tokens.counterColor, _Avatar.tokens.counterBackground)
27
45
  }
28
46
  }
29
47
  };