@salutejs/sdds-serv 0.225.1-canary.1707.12823225023.0 → 0.226.0-dev.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. package/api/sdds-serv.api.md +72 -59
  2. package/components/Accordion/Accordion.config.js +1 -1
  3. package/components/Attach/Attach.config.js +1 -1
  4. package/components/Autocomplete/Autocomplete.config.js +1 -1
  5. package/components/Avatar/Avatar.config.d.ts +18 -0
  6. package/components/Avatar/Avatar.config.js +19 -1
  7. package/components/Avatar/Avatar.config.js.map +1 -1
  8. package/components/Avatar/Avatar.config_1buqzeq.css +21 -0
  9. package/components/Avatar/Avatar.css +21 -7
  10. package/components/Avatar/Avatar.d.ts +138 -6
  11. package/components/Badge/Badge.config.js +1 -1
  12. package/components/Badge/Badge.d.ts +8 -48
  13. package/components/Breadcrumbs/Breadcrumbs.config.js +1 -1
  14. package/components/Button/Button.config.js +1 -1
  15. package/components/ButtonGroup/ButtonGroup.config.js +1 -1
  16. package/components/Calendar/CalendarBase.config.js +1 -1
  17. package/components/Calendar/CalendarDouble.config.js +1 -1
  18. package/components/Cell/Cell.config.js +1 -1
  19. package/components/Checkbox/Checkbox.config.js +1 -1
  20. package/components/Chip/Chip.config.js +1 -1
  21. package/components/ChipGroup/ChipGroup.config.js +1 -1
  22. package/components/Combobox/Combobox.config.js +1 -1
  23. package/components/Combobox/Combobox.js +1 -5
  24. package/components/Combobox/Combobox.js.map +1 -1
  25. package/components/Counter/Counter.config.js +1 -1
  26. package/components/Counter/Counter.d.ts +1 -6
  27. package/components/DatePicker/DatePicker.config.js +1 -1
  28. package/components/Divider/Divider.config.js +1 -1
  29. package/components/Drawer/Drawer.config.js +1 -1
  30. package/components/Dropdown/Dropdown.config.js +1 -1
  31. package/components/Dropdown/Dropdown.js +1 -5
  32. package/components/Dropdown/Dropdown.js.map +1 -1
  33. package/components/Dropzone/Dropzone.config.js +1 -1
  34. package/components/EmptyState/EmptyState.config.js +1 -1
  35. package/components/Grid/Grid.config.js +1 -1
  36. package/components/IconButton/IconButton.config.js +1 -1
  37. package/components/Indicator/Indicator.config.js +1 -1
  38. package/components/Link/Link.config.js +1 -1
  39. package/components/Modal/Modal.config.js +1 -1
  40. package/components/Note/Note.config.js +1 -1
  41. package/components/Notification/Notification.config.js +1 -1
  42. package/components/Notification/Notification.js +1 -5
  43. package/components/Notification/Notification.js.map +1 -1
  44. package/components/NumberInput/NumberInput.config.js +1 -1
  45. package/components/NumberInput/NumberInput.d.ts +2 -2
  46. package/components/Pagination/Pagination.config.js +1 -1
  47. package/components/Popover/Popover.config.js +1 -1
  48. package/components/Progress/Progress.config.js +1 -1
  49. package/components/Radiobox/Radiobox.config.js +1 -1
  50. package/components/Range/Range.config.js +1 -1
  51. package/components/Rating/Rating.config.js +1 -1
  52. package/components/Segment/SegmentGroup.config.js +1 -1
  53. package/components/Segment/SegmentItem.config.js +1 -1
  54. package/components/Select/Select.config.js +1 -1
  55. package/components/Select/Select.js +1 -5
  56. package/components/Select/Select.js.map +1 -1
  57. package/components/Sheet/Sheet.config.js +1 -1
  58. package/components/Skeleton/LineSkeleton.config.js +1 -1
  59. package/components/Slider/Slider.config.js +1 -1
  60. package/components/Spinner/Spinner.config.js +1 -1
  61. package/components/Steps/Steps.config.js +1 -1
  62. package/components/Switch/Switch.config.js +1 -1
  63. package/components/Tabs/TabItem.js +2 -6
  64. package/components/Tabs/TabItem.js.map +1 -1
  65. package/components/Tabs/Tabs.js +2 -6
  66. package/components/Tabs/Tabs.js.map +1 -1
  67. package/components/Tabs/horizontal/HorizontalTabItem.config.js +1 -1
  68. package/components/Tabs/horizontal/HorizontalTabs.config.js +1 -1
  69. package/components/Tabs/vertical/VerticalTabItem.config.js +1 -1
  70. package/components/Tabs/vertical/VerticalTabs.config.js +1 -1
  71. package/components/TextArea/TextArea.config.js +1 -1
  72. package/components/TextField/TextField.config.js +1 -1
  73. package/components/TextFieldGroup/TextFieldGroup.config.js +1 -1
  74. package/components/Toast/Toast.config.js +1 -1
  75. package/components/Toolbar/Toolbar.config.js +1 -1
  76. package/components/Tooltip/Tooltip.config.js +1 -1
  77. package/components/Tree/Tree.config.js +1 -1
  78. package/components/Typography/Body.config.js +1 -1
  79. package/components/Typography/Dspl.config.js +1 -1
  80. package/components/Typography/Heading.config.js +1 -1
  81. package/components/Typography/Text.config.js +1 -1
  82. package/components/ViewContainer/ViewContainer.config.js +1 -1
  83. package/emotion/cjs/components/Avatar/Avatar.config.js +23 -5
  84. package/emotion/cjs/components/Avatar/Avatar.stories.tsx +120 -3
  85. package/emotion/es/components/Avatar/Avatar.config.js +23 -5
  86. package/emotion/es/components/Avatar/Avatar.stories.tsx +120 -3
  87. package/es/components/Avatar/Avatar.config.js +19 -1
  88. package/es/components/Avatar/Avatar.config.js.map +1 -1
  89. package/es/components/Avatar/Avatar.config_1buqzeq.css +21 -0
  90. package/es/components/Avatar/Avatar.css +21 -7
  91. package/es/index.css +21 -7
  92. package/package.json +9 -8
  93. package/styled-components/cjs/components/Avatar/Avatar.config.js +23 -5
  94. package/styled-components/es/components/Avatar/Avatar.config.js +23 -5
  95. package/components/Avatar/Avatar.config_weecw4.css +0 -7
  96. package/es/components/Avatar/Avatar.config_weecw4.css +0 -7
@@ -1,4 +1,4 @@
1
- require('./HorizontalTabs.config_r01l94.css');
1
+ import './HorizontalTabs.config_r01l94.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./VerticalTabItem.config_1b9301p.css');
1
+ import './VerticalTabItem.config_1b9301p.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./VerticalTabs.config_cqbb3f.css');
1
+ import './VerticalTabs.config_cqbb3f.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./TextArea.config_1mpq6sw.css');
1
+ import './TextArea.config_1mpq6sw.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./TextField.config_sjc8tu.css');
1
+ import './TextField.config_sjc8tu.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./TextFieldGroup.config_1gikqtw.css');
1
+ import './TextFieldGroup.config_1gikqtw.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./Toast.config_7vhrqm.css');
1
+ import './Toast.config_7vhrqm.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./Toolbar.config_1yum23z.css');
1
+ import './Toolbar.config_1yum23z.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./Tooltip.config_19fazns.css');
1
+ import './Tooltip.config_19fazns.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./Tree.config_1adspmr.css');
1
+ import './Tree.config_1adspmr.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./Body.config_endr2e.css');
1
+ import './Body.config_endr2e.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./Dspl.config_owrt7v.css');
1
+ import './Dspl.config_owrt7v.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./Heading.config_1fd36gz.css');
1
+ import './Heading.config_1fd36gz.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./Text.config_ta1h5z.css');
1
+ import './Text.config_ta1h5z.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- require('./ViewContainer.config_10lsxqu.css');
1
+ import './ViewContainer.config_10lsxqu.css';
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.config = void 0;
7
7
  var _emotion = /*#__PURE__*/require("@salutejs/plasma-new-hope/emotion");
8
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
8
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21;
9
9
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
10
10
  var config = exports.config = {
11
11
  defaults: {
@@ -18,14 +18,32 @@ var config = exports.config = {
18
18
  },
19
19
  size: {
20
20
  // TODO: #1044 токены типографики в Avatar
21
- xxl: /*#__PURE__*/(0, _emotion.css)(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 6.25rem;\n ", ": 2rem;\n ", ": 600;\n ", ": 2rem;\n ", ": 0.75rem;\n "])), _emotion.avatarTokens.avatarSize, _emotion.avatarTokens.fontSize, _emotion.avatarTokens.fontWeight, _emotion.avatarTokens.lineHeight, _emotion.avatarTokens.statusIconSize),
22
- l: /*#__PURE__*/(0, _emotion.css)(_templateObject3 || (_templateObject3 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 3rem;\n ", ": 1.25rem;\n ", ": 600;\n ", ": 1.25rem;\n ", ": 0.5rem;\n "])), _emotion.avatarTokens.avatarSize, _emotion.avatarTokens.fontSize, _emotion.avatarTokens.fontWeight, _emotion.avatarTokens.lineHeight, _emotion.avatarTokens.statusIconSize),
23
- m: /*#__PURE__*/(0, _emotion.css)(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 2.25rem;\n ", ": 0.875rem;\n ", ": 600;\n ", ": 0.875rem;\n ", ": 0.5rem;\n "])), _emotion.avatarTokens.avatarSize, _emotion.avatarTokens.fontSize, _emotion.avatarTokens.fontWeight, _emotion.avatarTokens.lineHeight, _emotion.avatarTokens.statusIconSize),
24
- s: /*#__PURE__*/(0, _emotion.css)(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 1.5rem;\n ", ": 0.5rem;\n ", ": 600;\n ", ": 0.5rem;\n ", ": 0.375rem;\n "])), _emotion.avatarTokens.avatarSize, _emotion.avatarTokens.fontSize, _emotion.avatarTokens.fontWeight, _emotion.avatarTokens.lineHeight, _emotion.avatarTokens.statusIconSize),
21
+ xxl: /*#__PURE__*/(0, _emotion.css)(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 6.25rem;\n ", ": 2rem;\n ", ": 600;\n ", ": 2rem;\n ", ": 0.75rem;\n\n ", ": 0.5rem;\n ", ": 1.75rem;\n ", ": 0 0.688rem;\n ", ": 0 0.375rem;\n\n ", ": var(--plasma-typo-body-s-font-family);\n ", ": var(--plasma-typo-body-s-font-size);\n ", ": var(--plasma-typo-body-s-font-style);\n ", ": var(--plasma-typo-body-s-font-weight);\n ", ": var(--plasma-typo-body-s-letter-spacing);\n ", ": var(--plasma-typo-body-s-line-height);\n\n ", ": -0.063rem;\n ", ": 0.25rem;\n\n ", ": 0.25rem;\n ", ": -0.063rem;\n ", ": 1.25rem;\n\n ", ": 1rem;\n ", ": 1.75rem;\n ", ": 0 0.625rem;\n ", ": var(--plasma-typo-body-s-font-family);\n ", ": var(--plasma-typo-body-s-font-size);\n ", ": var(--plasma-typo-body-s-font-style);\n ", ": var(--plasma-typo-body-s-font-weight);\n ", ": var(--plasma-typo-body-s-letter-spacing);\n ", ": var(--plasma-typo-body-s-line-height);\n "])), _emotion.avatarTokens.avatarSize, _emotion.avatarTokens.fontSize, _emotion.avatarTokens.fontWeight, _emotion.avatarTokens.lineHeight, _emotion.avatarTokens.statusIconSize, _emotion.avatarTokens.badgeBorderRadius, _emotion.avatarTokens.badgeHeight, _emotion.avatarTokens.badgePadding, _emotion.avatarTokens.badgePaddingIconOnly, _emotion.avatarTokens.badgeFontFamily, _emotion.avatarTokens.badgeFontSize, _emotion.avatarTokens.badgeFontStyle, _emotion.avatarTokens.badgeFontWeight, _emotion.avatarTokens.badgeLetterSpacing, _emotion.avatarTokens.badgeLineHeight, _emotion.avatarTokens.badgeLeftContentMarginLeft, _emotion.avatarTokens.badgeLeftContentMarginRight, _emotion.avatarTokens.badgeRightContentMarginLeft, _emotion.avatarTokens.badgeRightContentMarginRight, _emotion.avatarTokens.badgePilledBorderRadius, _emotion.avatarTokens.counterBorderRadius, _emotion.avatarTokens.counterHeight, _emotion.avatarTokens.counterPadding, _emotion.avatarTokens.counterFontFamily, _emotion.avatarTokens.counterFontSize, _emotion.avatarTokens.counterFontStyle, _emotion.avatarTokens.counterFontWeight, _emotion.avatarTokens.counterLetterSpacing, _emotion.avatarTokens.counterLineHeight),
22
+ l: /*#__PURE__*/(0, _emotion.css)(_templateObject3 || (_templateObject3 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 3rem;\n ", ": 1.25rem;\n ", ": 600;\n ", ": 1.25rem;\n ", ": 0.5rem;\n\n ", ": 2;\n\n ", ": 0.375rem;\n ", ": 1.25rem;\n ", ": 0 0.438rem;\n ", ": 0 0.25rem;\n\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n\n ", ": -0.063rem;\n ", ": 0.125rem;\n\n ", ": 0.125rem;\n ", ": -0.063rem;\n ", ": 1.25rem;\n\n ", ": 1rem;\n ", ": 1.25rem;\n ", ": 0 0.375rem;\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n "])), _emotion.avatarTokens.avatarSize, _emotion.avatarTokens.fontSize, _emotion.avatarTokens.fontWeight, _emotion.avatarTokens.lineHeight, _emotion.avatarTokens.statusIconSize, _emotion.avatarTokens.extraPlacementFactor, _emotion.avatarTokens.badgeBorderRadius, _emotion.avatarTokens.badgeHeight, _emotion.avatarTokens.badgePadding, _emotion.avatarTokens.badgePaddingIconOnly, _emotion.avatarTokens.badgeFontFamily, _emotion.avatarTokens.badgeFontSize, _emotion.avatarTokens.badgeFontStyle, _emotion.avatarTokens.badgeFontWeight, _emotion.avatarTokens.badgeLetterSpacing, _emotion.avatarTokens.badgeLineHeight, _emotion.avatarTokens.badgeLeftContentMarginLeft, _emotion.avatarTokens.badgeLeftContentMarginRight, _emotion.avatarTokens.badgeRightContentMarginLeft, _emotion.avatarTokens.badgeRightContentMarginRight, _emotion.avatarTokens.badgePilledBorderRadius, _emotion.avatarTokens.counterBorderRadius, _emotion.avatarTokens.counterHeight, _emotion.avatarTokens.counterPadding, _emotion.avatarTokens.counterFontFamily, _emotion.avatarTokens.counterFontSize, _emotion.avatarTokens.counterFontStyle, _emotion.avatarTokens.counterFontWeight, _emotion.avatarTokens.counterLetterSpacing, _emotion.avatarTokens.counterLineHeight),
23
+ m: /*#__PURE__*/(0, _emotion.css)(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 2.25rem;\n ", ": 0.875rem;\n ", ": 600;\n ", ": 0.875rem;\n ", ": 0.5rem;\n\n ", ": 2;\n\n ", ": 0.25rem;\n ", ": 1rem;\n ", ": 0 0.25rem;\n ", ": 0 0.188rem;\n\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n\n ", ": -0.063rem;\n ", ": 0.125rem;\n\n ", ": 0.125rem;\n ", ": -0.063rem;\n ", ": 1.25rem;\n\n ", ": 1rem;\n ", ": 1rem;\n ", ": 0 0.25rem;\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n "])), _emotion.avatarTokens.avatarSize, _emotion.avatarTokens.fontSize, _emotion.avatarTokens.fontWeight, _emotion.avatarTokens.lineHeight, _emotion.avatarTokens.statusIconSize, _emotion.avatarTokens.extraPlacementFactor, _emotion.avatarTokens.badgeBorderRadius, _emotion.avatarTokens.badgeHeight, _emotion.avatarTokens.badgePadding, _emotion.avatarTokens.badgePaddingIconOnly, _emotion.avatarTokens.badgeFontFamily, _emotion.avatarTokens.badgeFontSize, _emotion.avatarTokens.badgeFontStyle, _emotion.avatarTokens.badgeFontWeight, _emotion.avatarTokens.badgeLetterSpacing, _emotion.avatarTokens.badgeLineHeight, _emotion.avatarTokens.badgeLeftContentMarginLeft, _emotion.avatarTokens.badgeLeftContentMarginRight, _emotion.avatarTokens.badgeRightContentMarginLeft, _emotion.avatarTokens.badgeRightContentMarginRight, _emotion.avatarTokens.badgePilledBorderRadius, _emotion.avatarTokens.counterBorderRadius, _emotion.avatarTokens.counterHeight, _emotion.avatarTokens.counterPadding, _emotion.avatarTokens.counterFontFamily, _emotion.avatarTokens.counterFontSize, _emotion.avatarTokens.counterFontStyle, _emotion.avatarTokens.counterFontWeight, _emotion.avatarTokens.counterLetterSpacing, _emotion.avatarTokens.counterLineHeight),
24
+ s: /*#__PURE__*/(0, _emotion.css)(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 1.5rem;\n ", ": 0.5rem;\n ", ": 600;\n ", ": 0.5rem;\n ", ": 0.375rem;\n\n ", ": 1;\n\n ", ": 1rem;\n ", ": 0.75rem;\n ", ": 0 0.125rem;\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n "])), _emotion.avatarTokens.avatarSize, _emotion.avatarTokens.fontSize, _emotion.avatarTokens.fontWeight, _emotion.avatarTokens.lineHeight, _emotion.avatarTokens.statusIconSize, _emotion.avatarTokens.extraPlacementFactor, _emotion.avatarTokens.counterBorderRadius, _emotion.avatarTokens.counterHeight, _emotion.avatarTokens.counterPadding, _emotion.avatarTokens.counterFontFamily, _emotion.avatarTokens.counterFontSize, _emotion.avatarTokens.counterFontStyle, _emotion.avatarTokens.counterFontWeight, _emotion.avatarTokens.counterLetterSpacing, _emotion.avatarTokens.counterLineHeight),
25
25
  fit: /*#__PURE__*/(0, _emotion.css)(_templateObject6 || (_templateObject6 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 100%;\n ", ": 0;\n ", ": 0;\n ", ": 0;\n ", ": 0;\n "])), _emotion.avatarTokens.avatarSize, _emotion.avatarTokens.fontSize, _emotion.avatarTokens.fontWeight, _emotion.avatarTokens.lineHeight, _emotion.avatarTokens.statusIconSize)
26
26
  },
27
27
  focused: {
28
28
  "true": /*#__PURE__*/(0, _emotion.css)(_templateObject7 || (_templateObject7 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 0.1rem;\n ", ": -0.2rem;\n ", ": var(--surface-accent);\n "])), _emotion.avatarTokens.outlineSize, _emotion.avatarTokens.outlineOffset, _emotion.avatarTokens.outlineColor)
29
+ },
30
+ badgeView: {
31
+ "default": /*#__PURE__*/(0, _emotion.css)(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--inverse-text-primary);\n ", ": var(--surface-solid-default);\n\n ", ": var(--text-primary);\n ", ": var(--surface-transparent-secondary);\n\n ", ": var(--text-primary);\n ", ": var(--surface-clear);\n "])), _emotion.avatarTokens.badgeColor, _emotion.avatarTokens.badgeBackground, _emotion.avatarTokens.badgeColorTransparent, _emotion.avatarTokens.badgeBackgroundTransparent, _emotion.avatarTokens.badgeColorClear, _emotion.avatarTokens.badgeBackgroundClear),
32
+ accent: /*#__PURE__*/(0, _emotion.css)(_templateObject9 || (_templateObject9 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-accent);\n\n ", ": var(--text-accent);\n ", ": var(--surface-transparent-accent);\n\n ", ": var(--text-accent);\n ", ": var(--surface-clear);\n "])), _emotion.avatarTokens.badgeColor, _emotion.avatarTokens.badgeBackground, _emotion.avatarTokens.badgeColorTransparent, _emotion.avatarTokens.badgeBackgroundTransparent, _emotion.avatarTokens.badgeColorClear, _emotion.avatarTokens.badgeBackgroundClear),
33
+ positive: /*#__PURE__*/(0, _emotion.css)(_templateObject10 || (_templateObject10 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-positive);\n\n ", ": var(--text-positive);\n ", ": var(--surface-transparent-positive);\n\n ", ": var(--text-positive);\n ", ": var(--surface-clear);\n "])), _emotion.avatarTokens.badgeColor, _emotion.avatarTokens.badgeBackground, _emotion.avatarTokens.badgeColorTransparent, _emotion.avatarTokens.badgeBackgroundTransparent, _emotion.avatarTokens.badgeColorClear, _emotion.avatarTokens.badgeBackgroundClear),
34
+ warning: /*#__PURE__*/(0, _emotion.css)(_templateObject11 || (_templateObject11 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-warning);\n\n ", ": var(--text-warning);\n ", ": var(--surface-transparent-warning);\n\n ", ": var(--text-warning);\n ", ": var(--surface-clear);\n "])), _emotion.avatarTokens.badgeColor, _emotion.avatarTokens.badgeBackground, _emotion.avatarTokens.badgeColorTransparent, _emotion.avatarTokens.badgeBackgroundTransparent, _emotion.avatarTokens.badgeColorClear, _emotion.avatarTokens.badgeBackgroundClear),
35
+ negative: /*#__PURE__*/(0, _emotion.css)(_templateObject12 || (_templateObject12 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-negative);\n\n ", ": var(--text-negative);\n ", ": var(--surface-transparent-negative);\n\n ", ": var(--text-negative);\n ", ": var(--surface-clear);\n "])), _emotion.avatarTokens.badgeColor, _emotion.avatarTokens.badgeBackground, _emotion.avatarTokens.badgeColorTransparent, _emotion.avatarTokens.badgeBackgroundTransparent, _emotion.avatarTokens.badgeColorClear, _emotion.avatarTokens.badgeBackgroundClear),
36
+ dark: /*#__PURE__*/(0, _emotion.css)(_templateObject13 || (_templateObject13 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--on-light-surface-solid-default);\n\n ", ": var(--on-dark-text-primary);\n ", ": var(--on-light-surface-transparent-deep);\n\n ", ": var(--on-light-text-primary);\n ", ": var(--surface-clear);\n "])), _emotion.avatarTokens.badgeColor, _emotion.avatarTokens.badgeBackground, _emotion.avatarTokens.badgeColorTransparent, _emotion.avatarTokens.badgeBackgroundTransparent, _emotion.avatarTokens.badgeColorClear, _emotion.avatarTokens.badgeBackgroundClear),
37
+ light: /*#__PURE__*/(0, _emotion.css)(_templateObject14 || (_templateObject14 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-light-text-primary);\n ", ": var(--on-dark-surface-solid-default);\n\n ", ": var(--on-dark-text-primary);\n ", ": var(--on-dark-surface-transparent-card);\n\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-clear);\n "])), _emotion.avatarTokens.badgeColor, _emotion.avatarTokens.badgeBackground, _emotion.avatarTokens.badgeColorTransparent, _emotion.avatarTokens.badgeBackgroundTransparent, _emotion.avatarTokens.badgeColorClear, _emotion.avatarTokens.badgeBackgroundClear)
38
+ },
39
+ counterView: {
40
+ "default": /*#__PURE__*/(0, _emotion.css)(_templateObject15 || (_templateObject15 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--inverse-text-primary);\n ", ": var(--surface-solid-default);\n "])), _emotion.avatarTokens.counterColor, _emotion.avatarTokens.counterBackground),
41
+ accent: /*#__PURE__*/(0, _emotion.css)(_templateObject16 || (_templateObject16 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-accent);\n "])), _emotion.avatarTokens.counterColor, _emotion.avatarTokens.counterBackground),
42
+ positive: /*#__PURE__*/(0, _emotion.css)(_templateObject17 || (_templateObject17 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-positive);\n "])), _emotion.avatarTokens.counterColor, _emotion.avatarTokens.counterBackground),
43
+ warning: /*#__PURE__*/(0, _emotion.css)(_templateObject18 || (_templateObject18 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-warning);\n "])), _emotion.avatarTokens.counterColor, _emotion.avatarTokens.counterBackground),
44
+ negative: /*#__PURE__*/(0, _emotion.css)(_templateObject19 || (_templateObject19 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-negative);\n "])), _emotion.avatarTokens.counterColor, _emotion.avatarTokens.counterBackground),
45
+ dark: /*#__PURE__*/(0, _emotion.css)(_templateObject20 || (_templateObject20 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--on-light-surface-solid-default);\n "])), _emotion.avatarTokens.counterColor, _emotion.avatarTokens.counterBackground),
46
+ light: /*#__PURE__*/(0, _emotion.css)(_templateObject21 || (_templateObject21 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-light-text-primary);\n ", ": var(--on-dark-surface-solid-default);\n "])), _emotion.avatarTokens.counterColor, _emotion.avatarTokens.counterBackground)
29
47
  }
30
48
  }
31
49
  };
@@ -1,9 +1,15 @@
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';
4
5
 
5
6
  import { Avatar } from './Avatar';
6
7
 
8
+ const extraPlacements = ['top-left', 'top-right', 'bottom-left', 'bottom-right'];
9
+ const extraType = ['', 'badge', 'counter'];
10
+ const counterViews = ['default', 'accent', 'positive', 'warning', 'negative', 'dark', 'light'];
11
+ const badgeViews = ['default', 'accent', 'positive', 'warning', 'negative', 'dark', 'light'];
12
+
7
13
  const meta: Meta<typeof Avatar> = {
8
14
  title: 'Data Display/Avatar',
9
15
  component: Avatar,
@@ -11,12 +17,69 @@ const meta: Meta<typeof Avatar> = {
11
17
  view: { control: 'inline-radio', options: ['default'] },
12
18
  size: { control: 'select', options: ['xxl', 'l', 'm', 's', 'fit'] },
13
19
  status: { control: 'select', options: ['active', 'inactive'] },
20
+ type: {
21
+ control: 'select',
22
+ options: extraType,
23
+ if: { arg: 'hasExtra', truthy: true },
24
+ },
25
+ extraPlacement: {
26
+ control: 'select',
27
+ options: extraPlacements,
28
+ if: { arg: 'hasExtra', truthy: true },
29
+ },
30
+ counterView: {
31
+ control: 'select',
32
+ options: counterViews,
33
+ if: { arg: 'type', eq: 'counter' },
34
+ },
35
+ count: {
36
+ control: 'number',
37
+ if: { arg: 'type', eq: 'counter' },
38
+ },
39
+ maxCount: {
40
+ control: 'number',
41
+ if: { arg: 'type', eq: 'counter' },
42
+ },
43
+ badgeView: {
44
+ control: 'select',
45
+ options: badgeViews,
46
+ if: { arg: 'type', eq: 'badge' },
47
+ },
48
+ text: {
49
+ control: 'text',
50
+ if: { arg: 'type', eq: 'badge' },
51
+ },
52
+ customColor: {
53
+ control: 'color',
54
+ if: { arg: 'type', eq: 'badge' },
55
+ },
56
+ customBackgroundColor: {
57
+ control: 'color',
58
+ if: { arg: 'type', eq: 'badge' },
59
+ },
60
+ pilled: {
61
+ control: 'boolean',
62
+ if: { arg: 'type', eq: 'badge' },
63
+ },
14
64
  },
15
65
  };
16
66
 
17
67
  export default meta;
18
68
 
19
- type Story = StoryObj<ComponentProps<typeof Avatar>>;
69
+ type StoryProps = ComponentProps<typeof Avatar> & {
70
+ enableContentLeft: boolean;
71
+ enableContentRight: boolean;
72
+ };
73
+ type Story = StoryObj<StoryProps>;
74
+
75
+ const BellIcon = (props) => (
76
+ <svg width="100%" viewBox="0 0 24 24" fill="none" {...props}>
77
+ <path
78
+ 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"
79
+ fill="currentColor"
80
+ />
81
+ </svg>
82
+ );
20
83
 
21
84
  export const Default: Story = {
22
85
  args: {
@@ -24,21 +87,75 @@ export const Default: Story = {
24
87
  size: 'xxl',
25
88
  name: 'Иван Фадеев',
26
89
  url: 'https://avatars.githubusercontent.com/u/1813468?v=4',
27
- status: 'active',
28
90
  isScalable: false,
91
+ hasExtra: false,
92
+ extraPlacement: 'top-right',
93
+ type: undefined,
94
+ counterView: 'accent',
95
+ count: 3,
96
+ maxCount: 10,
97
+ badgeView: 'accent',
98
+ text: '31',
99
+ pilled: true,
100
+ enableContentLeft: false,
101
+ enableContentRight: false,
29
102
  },
30
103
  argTypes: {
104
+ enableContentLeft: {
105
+ control: { type: 'boolean' },
106
+ if: { arg: 'type', eq: 'badge' },
107
+ },
108
+ enableContentRight: {
109
+ control: { type: 'boolean' },
110
+ if: { arg: 'type', eq: 'badge' },
111
+ },
31
112
  ...disableProps(['focused']),
32
113
  },
114
+ render: ({ enableContentLeft, enableContentRight, size, ...rest }: StoryProps) => {
115
+ const iconSize = () => {
116
+ switch (size) {
117
+ case 'xxl':
118
+ return '1rem';
119
+ case 'm':
120
+ return '0.625rem';
121
+ default:
122
+ return '0.75rem';
123
+ }
124
+ };
125
+
126
+ return (
127
+ <>
128
+ <Avatar
129
+ contentLeft={enableContentLeft ? <BellIcon width={iconSize()} height={iconSize()} /> : undefined}
130
+ contentRight={
131
+ !enableContentLeft && enableContentRight ? (
132
+ <BellIcon width={iconSize()} height={iconSize()} />
133
+ ) : undefined
134
+ }
135
+ size={size}
136
+ {...rest}
137
+ />
138
+ </>
139
+ );
140
+ },
33
141
  };
34
142
 
35
143
  export const Accessibility: Story = {
36
144
  args: {
37
145
  role: 'button',
146
+ name: 'Иван Фадеев',
38
147
  tabIndex: 0,
39
148
  view: 'default',
40
149
  size: 'xxl',
41
- name: 'Иван Фадеев',
42
150
  status: 'active',
151
+ focused: true,
152
+ hasExtra: false,
153
+ extraPlacement: 'top-right',
154
+ type: undefined,
155
+ counterView: 'accent',
156
+ count: 3,
157
+ maxCount: 10,
158
+ badgeView: 'accent',
159
+ text: '31',
43
160
  },
44
161
  };
@@ -1,4 +1,4 @@
1
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
1
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21;
2
2
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
3
3
  import { css, avatarTokens as tokens } from '@salutejs/plasma-new-hope/emotion';
4
4
  export var config = {
@@ -12,14 +12,32 @@ export var config = {
12
12
  },
13
13
  size: {
14
14
  // TODO: #1044 токены типографики в Avatar
15
- xxl: /*#__PURE__*/css(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 6.25rem;\n ", ": 2rem;\n ", ": 600;\n ", ": 2rem;\n ", ": 0.75rem;\n "])), tokens.avatarSize, tokens.fontSize, tokens.fontWeight, tokens.lineHeight, tokens.statusIconSize),
16
- l: /*#__PURE__*/css(_templateObject3 || (_templateObject3 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 3rem;\n ", ": 1.25rem;\n ", ": 600;\n ", ": 1.25rem;\n ", ": 0.5rem;\n "])), tokens.avatarSize, tokens.fontSize, tokens.fontWeight, tokens.lineHeight, tokens.statusIconSize),
17
- m: /*#__PURE__*/css(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 2.25rem;\n ", ": 0.875rem;\n ", ": 600;\n ", ": 0.875rem;\n ", ": 0.5rem;\n "])), tokens.avatarSize, tokens.fontSize, tokens.fontWeight, tokens.lineHeight, tokens.statusIconSize),
18
- s: /*#__PURE__*/css(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 1.5rem;\n ", ": 0.5rem;\n ", ": 600;\n ", ": 0.5rem;\n ", ": 0.375rem;\n "])), tokens.avatarSize, tokens.fontSize, tokens.fontWeight, tokens.lineHeight, tokens.statusIconSize),
15
+ xxl: /*#__PURE__*/css(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 6.25rem;\n ", ": 2rem;\n ", ": 600;\n ", ": 2rem;\n ", ": 0.75rem;\n\n ", ": 0.5rem;\n ", ": 1.75rem;\n ", ": 0 0.688rem;\n ", ": 0 0.375rem;\n\n ", ": var(--plasma-typo-body-s-font-family);\n ", ": var(--plasma-typo-body-s-font-size);\n ", ": var(--plasma-typo-body-s-font-style);\n ", ": var(--plasma-typo-body-s-font-weight);\n ", ": var(--plasma-typo-body-s-letter-spacing);\n ", ": var(--plasma-typo-body-s-line-height);\n\n ", ": -0.063rem;\n ", ": 0.25rem;\n\n ", ": 0.25rem;\n ", ": -0.063rem;\n ", ": 1.25rem;\n\n ", ": 1rem;\n ", ": 1.75rem;\n ", ": 0 0.625rem;\n ", ": var(--plasma-typo-body-s-font-family);\n ", ": var(--plasma-typo-body-s-font-size);\n ", ": var(--plasma-typo-body-s-font-style);\n ", ": var(--plasma-typo-body-s-font-weight);\n ", ": var(--plasma-typo-body-s-letter-spacing);\n ", ": var(--plasma-typo-body-s-line-height);\n "])), tokens.avatarSize, tokens.fontSize, tokens.fontWeight, tokens.lineHeight, tokens.statusIconSize, tokens.badgeBorderRadius, tokens.badgeHeight, tokens.badgePadding, tokens.badgePaddingIconOnly, tokens.badgeFontFamily, tokens.badgeFontSize, tokens.badgeFontStyle, tokens.badgeFontWeight, tokens.badgeLetterSpacing, tokens.badgeLineHeight, tokens.badgeLeftContentMarginLeft, tokens.badgeLeftContentMarginRight, tokens.badgeRightContentMarginLeft, tokens.badgeRightContentMarginRight, tokens.badgePilledBorderRadius, tokens.counterBorderRadius, tokens.counterHeight, tokens.counterPadding, tokens.counterFontFamily, tokens.counterFontSize, tokens.counterFontStyle, tokens.counterFontWeight, tokens.counterLetterSpacing, tokens.counterLineHeight),
16
+ l: /*#__PURE__*/css(_templateObject3 || (_templateObject3 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 3rem;\n ", ": 1.25rem;\n ", ": 600;\n ", ": 1.25rem;\n ", ": 0.5rem;\n\n ", ": 2;\n\n ", ": 0.375rem;\n ", ": 1.25rem;\n ", ": 0 0.438rem;\n ", ": 0 0.25rem;\n\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n\n ", ": -0.063rem;\n ", ": 0.125rem;\n\n ", ": 0.125rem;\n ", ": -0.063rem;\n ", ": 1.25rem;\n\n ", ": 1rem;\n ", ": 1.25rem;\n ", ": 0 0.375rem;\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n "])), tokens.avatarSize, tokens.fontSize, tokens.fontWeight, tokens.lineHeight, tokens.statusIconSize, tokens.extraPlacementFactor, tokens.badgeBorderRadius, tokens.badgeHeight, tokens.badgePadding, tokens.badgePaddingIconOnly, tokens.badgeFontFamily, tokens.badgeFontSize, tokens.badgeFontStyle, tokens.badgeFontWeight, tokens.badgeLetterSpacing, tokens.badgeLineHeight, tokens.badgeLeftContentMarginLeft, tokens.badgeLeftContentMarginRight, tokens.badgeRightContentMarginLeft, tokens.badgeRightContentMarginRight, tokens.badgePilledBorderRadius, tokens.counterBorderRadius, tokens.counterHeight, tokens.counterPadding, tokens.counterFontFamily, tokens.counterFontSize, tokens.counterFontStyle, tokens.counterFontWeight, tokens.counterLetterSpacing, tokens.counterLineHeight),
17
+ m: /*#__PURE__*/css(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 2.25rem;\n ", ": 0.875rem;\n ", ": 600;\n ", ": 0.875rem;\n ", ": 0.5rem;\n\n ", ": 2;\n\n ", ": 0.25rem;\n ", ": 1rem;\n ", ": 0 0.25rem;\n ", ": 0 0.188rem;\n\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n\n ", ": -0.063rem;\n ", ": 0.125rem;\n\n ", ": 0.125rem;\n ", ": -0.063rem;\n ", ": 1.25rem;\n\n ", ": 1rem;\n ", ": 1rem;\n ", ": 0 0.25rem;\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n "])), tokens.avatarSize, tokens.fontSize, tokens.fontWeight, tokens.lineHeight, tokens.statusIconSize, tokens.extraPlacementFactor, tokens.badgeBorderRadius, tokens.badgeHeight, tokens.badgePadding, tokens.badgePaddingIconOnly, tokens.badgeFontFamily, tokens.badgeFontSize, tokens.badgeFontStyle, tokens.badgeFontWeight, tokens.badgeLetterSpacing, tokens.badgeLineHeight, tokens.badgeLeftContentMarginLeft, tokens.badgeLeftContentMarginRight, tokens.badgeRightContentMarginLeft, tokens.badgeRightContentMarginRight, tokens.badgePilledBorderRadius, tokens.counterBorderRadius, tokens.counterHeight, tokens.counterPadding, tokens.counterFontFamily, tokens.counterFontSize, tokens.counterFontStyle, tokens.counterFontWeight, tokens.counterLetterSpacing, tokens.counterLineHeight),
18
+ s: /*#__PURE__*/css(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 1.5rem;\n ", ": 0.5rem;\n ", ": 600;\n ", ": 0.5rem;\n ", ": 0.375rem;\n\n ", ": 1;\n\n ", ": 1rem;\n ", ": 0.75rem;\n ", ": 0 0.125rem;\n ", ": var(--plasma-typo-body-xxs-font-family);\n ", ": var(--plasma-typo-body-xxs-font-size);\n ", ": var(--plasma-typo-body-xxs-font-style);\n ", ": var(--plasma-typo-body-xxs-font-weight);\n ", ": var(--plasma-typo-body-xxs-letter-spacing);\n ", ": var(--plasma-typo-body-xxs-line-height);\n "])), tokens.avatarSize, tokens.fontSize, tokens.fontWeight, tokens.lineHeight, tokens.statusIconSize, tokens.extraPlacementFactor, tokens.counterBorderRadius, tokens.counterHeight, tokens.counterPadding, tokens.counterFontFamily, tokens.counterFontSize, tokens.counterFontStyle, tokens.counterFontWeight, tokens.counterLetterSpacing, tokens.counterLineHeight),
19
19
  fit: /*#__PURE__*/css(_templateObject6 || (_templateObject6 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 100%;\n ", ": 0;\n ", ": 0;\n ", ": 0;\n ", ": 0;\n "])), tokens.avatarSize, tokens.fontSize, tokens.fontWeight, tokens.lineHeight, tokens.statusIconSize)
20
20
  },
21
21
  focused: {
22
22
  "true": /*#__PURE__*/css(_templateObject7 || (_templateObject7 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": 0.1rem;\n ", ": -0.2rem;\n ", ": var(--surface-accent);\n "])), tokens.outlineSize, tokens.outlineOffset, tokens.outlineColor)
23
+ },
24
+ badgeView: {
25
+ "default": /*#__PURE__*/css(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--inverse-text-primary);\n ", ": var(--surface-solid-default);\n\n ", ": var(--text-primary);\n ", ": var(--surface-transparent-secondary);\n\n ", ": var(--text-primary);\n ", ": var(--surface-clear);\n "])), tokens.badgeColor, tokens.badgeBackground, tokens.badgeColorTransparent, tokens.badgeBackgroundTransparent, tokens.badgeColorClear, tokens.badgeBackgroundClear),
26
+ accent: /*#__PURE__*/css(_templateObject9 || (_templateObject9 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-accent);\n\n ", ": var(--text-accent);\n ", ": var(--surface-transparent-accent);\n\n ", ": var(--text-accent);\n ", ": var(--surface-clear);\n "])), tokens.badgeColor, tokens.badgeBackground, tokens.badgeColorTransparent, tokens.badgeBackgroundTransparent, tokens.badgeColorClear, tokens.badgeBackgroundClear),
27
+ positive: /*#__PURE__*/css(_templateObject10 || (_templateObject10 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-positive);\n\n ", ": var(--text-positive);\n ", ": var(--surface-transparent-positive);\n\n ", ": var(--text-positive);\n ", ": var(--surface-clear);\n "])), tokens.badgeColor, tokens.badgeBackground, tokens.badgeColorTransparent, tokens.badgeBackgroundTransparent, tokens.badgeColorClear, tokens.badgeBackgroundClear),
28
+ warning: /*#__PURE__*/css(_templateObject11 || (_templateObject11 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-warning);\n\n ", ": var(--text-warning);\n ", ": var(--surface-transparent-warning);\n\n ", ": var(--text-warning);\n ", ": var(--surface-clear);\n "])), tokens.badgeColor, tokens.badgeBackground, tokens.badgeColorTransparent, tokens.badgeBackgroundTransparent, tokens.badgeColorClear, tokens.badgeBackgroundClear),
29
+ negative: /*#__PURE__*/css(_templateObject12 || (_templateObject12 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-negative);\n\n ", ": var(--text-negative);\n ", ": var(--surface-transparent-negative);\n\n ", ": var(--text-negative);\n ", ": var(--surface-clear);\n "])), tokens.badgeColor, tokens.badgeBackground, tokens.badgeColorTransparent, tokens.badgeBackgroundTransparent, tokens.badgeColorClear, tokens.badgeBackgroundClear),
30
+ dark: /*#__PURE__*/css(_templateObject13 || (_templateObject13 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--on-light-surface-solid-default);\n\n ", ": var(--on-dark-text-primary);\n ", ": var(--on-light-surface-transparent-deep);\n\n ", ": var(--on-light-text-primary);\n ", ": var(--surface-clear);\n "])), tokens.badgeColor, tokens.badgeBackground, tokens.badgeColorTransparent, tokens.badgeBackgroundTransparent, tokens.badgeColorClear, tokens.badgeBackgroundClear),
31
+ light: /*#__PURE__*/css(_templateObject14 || (_templateObject14 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-light-text-primary);\n ", ": var(--on-dark-surface-solid-default);\n\n ", ": var(--on-dark-text-primary);\n ", ": var(--on-dark-surface-transparent-card);\n\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-clear);\n "])), tokens.badgeColor, tokens.badgeBackground, tokens.badgeColorTransparent, tokens.badgeBackgroundTransparent, tokens.badgeColorClear, tokens.badgeBackgroundClear)
32
+ },
33
+ counterView: {
34
+ "default": /*#__PURE__*/css(_templateObject15 || (_templateObject15 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--inverse-text-primary);\n ", ": var(--surface-solid-default);\n "])), tokens.counterColor, tokens.counterBackground),
35
+ accent: /*#__PURE__*/css(_templateObject16 || (_templateObject16 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-accent);\n "])), tokens.counterColor, tokens.counterBackground),
36
+ positive: /*#__PURE__*/css(_templateObject17 || (_templateObject17 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-positive);\n "])), tokens.counterColor, tokens.counterBackground),
37
+ warning: /*#__PURE__*/css(_templateObject18 || (_templateObject18 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-warning);\n "])), tokens.counterColor, tokens.counterBackground),
38
+ negative: /*#__PURE__*/css(_templateObject19 || (_templateObject19 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--surface-negative);\n "])), tokens.counterColor, tokens.counterBackground),
39
+ dark: /*#__PURE__*/css(_templateObject20 || (_templateObject20 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-dark-text-primary);\n ", ": var(--on-light-surface-solid-default);\n "])), tokens.counterColor, tokens.counterBackground),
40
+ light: /*#__PURE__*/css(_templateObject21 || (_templateObject21 = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ": var(--on-light-text-primary);\n ", ": var(--on-dark-surface-solid-default);\n "])), tokens.counterColor, tokens.counterBackground)
23
41
  }
24
42
  }
25
43
  };
@@ -1,9 +1,15 @@
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';
4
5
 
5
6
  import { Avatar } from './Avatar';
6
7
 
8
+ const extraPlacements = ['top-left', 'top-right', 'bottom-left', 'bottom-right'];
9
+ const extraType = ['', 'badge', 'counter'];
10
+ const counterViews = ['default', 'accent', 'positive', 'warning', 'negative', 'dark', 'light'];
11
+ const badgeViews = ['default', 'accent', 'positive', 'warning', 'negative', 'dark', 'light'];
12
+
7
13
  const meta: Meta<typeof Avatar> = {
8
14
  title: 'Data Display/Avatar',
9
15
  component: Avatar,
@@ -11,12 +17,69 @@ const meta: Meta<typeof Avatar> = {
11
17
  view: { control: 'inline-radio', options: ['default'] },
12
18
  size: { control: 'select', options: ['xxl', 'l', 'm', 's', 'fit'] },
13
19
  status: { control: 'select', options: ['active', 'inactive'] },
20
+ type: {
21
+ control: 'select',
22
+ options: extraType,
23
+ if: { arg: 'hasExtra', truthy: true },
24
+ },
25
+ extraPlacement: {
26
+ control: 'select',
27
+ options: extraPlacements,
28
+ if: { arg: 'hasExtra', truthy: true },
29
+ },
30
+ counterView: {
31
+ control: 'select',
32
+ options: counterViews,
33
+ if: { arg: 'type', eq: 'counter' },
34
+ },
35
+ count: {
36
+ control: 'number',
37
+ if: { arg: 'type', eq: 'counter' },
38
+ },
39
+ maxCount: {
40
+ control: 'number',
41
+ if: { arg: 'type', eq: 'counter' },
42
+ },
43
+ badgeView: {
44
+ control: 'select',
45
+ options: badgeViews,
46
+ if: { arg: 'type', eq: 'badge' },
47
+ },
48
+ text: {
49
+ control: 'text',
50
+ if: { arg: 'type', eq: 'badge' },
51
+ },
52
+ customColor: {
53
+ control: 'color',
54
+ if: { arg: 'type', eq: 'badge' },
55
+ },
56
+ customBackgroundColor: {
57
+ control: 'color',
58
+ if: { arg: 'type', eq: 'badge' },
59
+ },
60
+ pilled: {
61
+ control: 'boolean',
62
+ if: { arg: 'type', eq: 'badge' },
63
+ },
14
64
  },
15
65
  };
16
66
 
17
67
  export default meta;
18
68
 
19
- type Story = StoryObj<ComponentProps<typeof Avatar>>;
69
+ type StoryProps = ComponentProps<typeof Avatar> & {
70
+ enableContentLeft: boolean;
71
+ enableContentRight: boolean;
72
+ };
73
+ type Story = StoryObj<StoryProps>;
74
+
75
+ const BellIcon = (props) => (
76
+ <svg width="100%" viewBox="0 0 24 24" fill="none" {...props}>
77
+ <path
78
+ 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"
79
+ fill="currentColor"
80
+ />
81
+ </svg>
82
+ );
20
83
 
21
84
  export const Default: Story = {
22
85
  args: {
@@ -24,21 +87,75 @@ export const Default: Story = {
24
87
  size: 'xxl',
25
88
  name: 'Иван Фадеев',
26
89
  url: 'https://avatars.githubusercontent.com/u/1813468?v=4',
27
- status: 'active',
28
90
  isScalable: false,
91
+ hasExtra: false,
92
+ extraPlacement: 'top-right',
93
+ type: undefined,
94
+ counterView: 'accent',
95
+ count: 3,
96
+ maxCount: 10,
97
+ badgeView: 'accent',
98
+ text: '31',
99
+ pilled: true,
100
+ enableContentLeft: false,
101
+ enableContentRight: false,
29
102
  },
30
103
  argTypes: {
104
+ enableContentLeft: {
105
+ control: { type: 'boolean' },
106
+ if: { arg: 'type', eq: 'badge' },
107
+ },
108
+ enableContentRight: {
109
+ control: { type: 'boolean' },
110
+ if: { arg: 'type', eq: 'badge' },
111
+ },
31
112
  ...disableProps(['focused']),
32
113
  },
114
+ render: ({ enableContentLeft, enableContentRight, size, ...rest }: StoryProps) => {
115
+ const iconSize = () => {
116
+ switch (size) {
117
+ case 'xxl':
118
+ return '1rem';
119
+ case 'm':
120
+ return '0.625rem';
121
+ default:
122
+ return '0.75rem';
123
+ }
124
+ };
125
+
126
+ return (
127
+ <>
128
+ <Avatar
129
+ contentLeft={enableContentLeft ? <BellIcon width={iconSize()} height={iconSize()} /> : undefined}
130
+ contentRight={
131
+ !enableContentLeft && enableContentRight ? (
132
+ <BellIcon width={iconSize()} height={iconSize()} />
133
+ ) : undefined
134
+ }
135
+ size={size}
136
+ {...rest}
137
+ />
138
+ </>
139
+ );
140
+ },
33
141
  };
34
142
 
35
143
  export const Accessibility: Story = {
36
144
  args: {
37
145
  role: 'button',
146
+ name: 'Иван Фадеев',
38
147
  tabIndex: 0,
39
148
  view: 'default',
40
149
  size: 'xxl',
41
- name: 'Иван Фадеев',
42
150
  status: 'active',
151
+ focused: true,
152
+ hasExtra: false,
153
+ extraPlacement: 'top-right',
154
+ type: undefined,
155
+ counterView: 'accent',
156
+ count: 3,
157
+ maxCount: 10,
158
+ badgeView: 'accent',
159
+ text: '31',
43
160
  },
44
161
  };
@@ -1,4 +1,4 @@
1
- import './Avatar.config_weecw4.css';
1
+ import './Avatar.config_1buqzeq.css';
2
2
  var config = {
3
3
  defaults: {
4
4
  view: 'default',
@@ -18,6 +18,24 @@ var config = {
18
18
  },
19
19
  focused: {
20
20
  "true": "t12fbiph"
21
+ },
22
+ badgeView: {
23
+ "default": "d1v24dm1",
24
+ accent: "aklmhlm",
25
+ positive: "pts1qri",
26
+ warning: "wu8qekr",
27
+ negative: "nc00x8o",
28
+ dark: "d4vpurz",
29
+ light: "lh713v8"
30
+ },
31
+ counterView: {
32
+ "default": "d18xlm4d",
33
+ accent: "a19kwqy5",
34
+ positive: "p1jpkhmc",
35
+ warning: "w1rt05zb",
36
+ negative: "n18uzb5o",
37
+ dark: "dwmydiz",
38
+ light: "l84jq18"
21
39
  }
22
40
  }
23
41
  };