@salutejs/plasma-new-hope 0.88.0-canary.1222.9283214118.0 → 0.88.0-canary.1223.9301566220.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. package/package.json +4 -4
  2. package/styled-components/cjs/components/Accordion/Accordion.js +50 -0
  3. package/styled-components/cjs/components/Accordion/Accordion.styles.js +9 -0
  4. package/styled-components/cjs/components/Accordion/Accordion.tokens.js +42 -0
  5. package/styled-components/cjs/components/Accordion/Accordion.types.js +5 -0
  6. package/styled-components/cjs/components/Accordion/index.js +38 -0
  7. package/styled-components/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +96 -0
  8. package/styled-components/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +49 -0
  9. package/styled-components/cjs/components/Accordion/ui/AccordionItem/AccordionItem.types.js +5 -0
  10. package/styled-components/cjs/components/Accordion/variations/_size/base.js +8 -0
  11. package/styled-components/cjs/components/Accordion/variations/_size/tokens.json +6 -0
  12. package/styled-components/cjs/components/Accordion/variations/_stretching/base.js +8 -0
  13. package/styled-components/cjs/components/Accordion/variations/_stretching/tokens.json +1 -0
  14. package/styled-components/cjs/components/Accordion/variations/_view/base.js +8 -0
  15. package/styled-components/cjs/components/Accordion/variations/_view/tokens.json +8 -0
  16. package/styled-components/cjs/components/_Icon/Icon.assets/Minus.js +21 -0
  17. package/styled-components/cjs/components/_Icon/Icons/IconMinus.js +22 -0
  18. package/styled-components/cjs/components/_Icon/index.js +8 -1
  19. package/styled-components/cjs/examples/plasma_b2c/components/Accordion/Accordion.config.js +30 -0
  20. package/styled-components/cjs/examples/plasma_b2c/components/Accordion/Accordion.js +17 -0
  21. package/styled-components/cjs/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +75 -0
  22. package/styled-components/cjs/examples/plasma_web/components/Accordion/Accordion.config.js +30 -0
  23. package/styled-components/cjs/examples/plasma_web/components/Accordion/Accordion.js +17 -0
  24. package/styled-components/cjs/examples/plasma_web/components/Accordion/Accordion.stories.tsx +75 -0
  25. package/styled-components/es/components/Accordion/Accordion.js +41 -0
  26. package/styled-components/es/components/Accordion/Accordion.styles.js +3 -0
  27. package/styled-components/es/components/Accordion/Accordion.tokens.js +36 -0
  28. package/styled-components/es/components/Accordion/Accordion.types.js +1 -0
  29. package/styled-components/es/components/Accordion/index.js +3 -0
  30. package/styled-components/es/components/Accordion/ui/AccordionItem/AccordionItem.js +87 -0
  31. package/styled-components/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +42 -0
  32. package/styled-components/es/components/Accordion/ui/AccordionItem/AccordionItem.types.js +1 -0
  33. package/styled-components/es/components/Accordion/variations/_size/base.js +2 -0
  34. package/styled-components/es/components/Accordion/variations/_size/tokens.json +6 -0
  35. package/styled-components/es/components/Accordion/variations/_stretching/base.js +2 -0
  36. package/styled-components/es/components/Accordion/variations/_stretching/tokens.json +1 -0
  37. package/styled-components/es/components/Accordion/variations/_view/base.js +2 -0
  38. package/styled-components/es/components/Accordion/variations/_view/tokens.json +8 -0
  39. package/styled-components/es/components/_Icon/Icon.assets/Minus.js +14 -0
  40. package/styled-components/es/components/_Icon/Icons/IconMinus.js +15 -0
  41. package/styled-components/es/components/_Icon/index.js +2 -1
  42. package/styled-components/es/examples/plasma_b2c/components/Accordion/Accordion.config.js +24 -0
  43. package/styled-components/es/examples/plasma_b2c/components/Accordion/Accordion.js +6 -0
  44. package/styled-components/es/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +75 -0
  45. package/styled-components/es/examples/plasma_web/components/Accordion/Accordion.config.js +24 -0
  46. package/styled-components/es/examples/plasma_web/components/Accordion/Accordion.js +6 -0
  47. package/styled-components/es/examples/plasma_web/components/Accordion/Accordion.stories.tsx +75 -0
  48. package/types/components/Accordion/Accordion.d.ts +35 -0
  49. package/types/components/Accordion/Accordion.d.ts.map +1 -0
  50. package/types/components/Accordion/Accordion.styles.d.ts +2 -0
  51. package/types/components/Accordion/Accordion.styles.d.ts.map +1 -0
  52. package/types/components/Accordion/Accordion.tokens.d.ts +37 -0
  53. package/types/components/Accordion/Accordion.tokens.d.ts.map +1 -0
  54. package/types/components/Accordion/Accordion.types.d.ts +24 -0
  55. package/types/components/Accordion/Accordion.types.d.ts.map +1 -0
  56. package/types/components/Accordion/index.d.ts +5 -0
  57. package/types/components/Accordion/index.d.ts.map +1 -0
  58. package/types/components/Accordion/ui/AccordionItem/AccordionItem.d.ts +4 -0
  59. package/types/components/Accordion/ui/AccordionItem/AccordionItem.d.ts.map +1 -0
  60. package/types/components/Accordion/ui/AccordionItem/AccordionItem.styles.d.ts +13 -0
  61. package/types/components/Accordion/ui/AccordionItem/AccordionItem.styles.d.ts.map +1 -0
  62. package/types/components/Accordion/ui/AccordionItem/AccordionItem.types.d.ts +39 -0
  63. package/types/components/Accordion/ui/AccordionItem/AccordionItem.types.d.ts.map +1 -0
  64. package/types/components/Accordion/variations/_size/base.d.ts +2 -0
  65. package/types/components/Accordion/variations/_size/base.d.ts.map +1 -0
  66. package/types/components/Accordion/variations/_stretching/base.d.ts +2 -0
  67. package/types/components/Accordion/variations/_stretching/base.d.ts.map +1 -0
  68. package/types/components/Accordion/variations/_view/base.d.ts +2 -0
  69. package/types/components/Accordion/variations/_view/base.d.ts.map +1 -0
  70. package/types/components/_Icon/Icon.assets/Minus.d.ts +4 -0
  71. package/types/components/_Icon/Icon.assets/Minus.d.ts.map +1 -0
  72. package/types/components/_Icon/Icons/IconMinus.d.ts +4 -0
  73. package/types/components/_Icon/Icons/IconMinus.d.ts.map +1 -0
  74. package/types/components/_Icon/index.d.ts +1 -0
  75. package/types/components/_Icon/index.d.ts.map +1 -1
  76. package/types/examples/plasma_b2c/components/Accordion/Accordion.config.d.ts +23 -0
  77. package/types/examples/plasma_b2c/components/Accordion/Accordion.config.d.ts.map +1 -0
  78. package/types/examples/plasma_b2c/components/Accordion/Accordion.d.ts +26 -0
  79. package/types/examples/plasma_b2c/components/Accordion/Accordion.d.ts.map +1 -0
  80. package/types/examples/plasma_web/components/Accordion/Accordion.config.d.ts +23 -0
  81. package/types/examples/plasma_web/components/Accordion/Accordion.config.d.ts.map +1 -0
  82. package/types/examples/plasma_web/components/Accordion/Accordion.d.ts +26 -0
  83. package/types/examples/plasma_web/components/Accordion/Accordion.d.ts.map +1 -0
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.config = void 0;
7
+ var _styledComponents = /*#__PURE__*/require("styled-components");
8
+ var _Accordion = /*#__PURE__*/require("../../../../components/Accordion");
9
+ var config = exports.config = {
10
+ defaults: {
11
+ view: 'default',
12
+ size: 'm'
13
+ },
14
+ variations: {
15
+ view: {
16
+ "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":0.125rem;", ":20rem;", ":var(--surface-solid-card);", ":var(--text-primary);", ":var(--text-primary);", ":var(--surface-accent);", ":var(--surface-clear);"], _Accordion.accordionTokens.accordionGap, _Accordion.accordionTokens.accordionWidth, _Accordion.accordionTokens.accordionItemBackground, _Accordion.accordionTokens.accordionItemTitleColor, _Accordion.accordionTokens.accordionItemTextColor, _Accordion.accordionTokens.accordionItemFocus, _Accordion.accordionTokens.accordionBackground),
17
+ clear: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.125rem;", ":20rem;", ":0rem !important;", ":0rem !important;", ":var(--background-primary);", ":var(--text-primary);", ":var(--text-primary);", ":var(--surface-accent);", ":0rem !important;", ":var(--surface-solid-tertiary);"], _Accordion.accordionTokens.accordionGap, _Accordion.accordionTokens.accordionWidth, _Accordion.accordionTokens.accordionItemPaddingRight, _Accordion.accordionTokens.accordionItemPaddingLeft, _Accordion.accordionTokens.accordionItemBackground, _Accordion.accordionTokens.accordionItemTitleColor, _Accordion.accordionTokens.accordionItemTextColor, _Accordion.accordionTokens.accordionItemFocus, _Accordion.accordionTokens.accordionItemBorderRadius, _Accordion.accordionTokens.accordionBackground)
18
+ },
19
+ size: {
20
+ l: /*#__PURE__*/(0, _styledComponents.css)(["", ":1.0625rem;", ":1.25rem;", ":1.0625rem;", ":1.25rem;", ":0.5rem;", ":0.875rem;", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-bold-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);"], _Accordion.accordionTokens.accordionItemPaddingTop, _Accordion.accordionTokens.accordionItemPaddingRight, _Accordion.accordionTokens.accordionItemPaddingBottom, _Accordion.accordionTokens.accordionItemPaddingLeft, _Accordion.accordionTokens.accordionItemGap, _Accordion.accordionTokens.accordionItemBorderRadius, _Accordion.accordionTokens.accordionItemTitleFontFamily, _Accordion.accordionTokens.accordionItemTitleFontSize, _Accordion.accordionTokens.accordionItemTitleFontStyle, _Accordion.accordionTokens.accordionItemTitleFontWeight, _Accordion.accordionTokens.accordionItemTitleLetterSpacing, _Accordion.accordionTokens.accordionItemTitleLineHeight, _Accordion.accordionTokens.accordionItemTextFontFamily, _Accordion.accordionTokens.accordionItemTextFontSize, _Accordion.accordionTokens.accordionItemTextFontStyle, _Accordion.accordionTokens.accordionItemTextFontWeight, _Accordion.accordionTokens.accordionItemTextLetterSpacing, _Accordion.accordionTokens.accordionItemTextLineHeight),
21
+ m: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.875rem;", ":1.125rem;", ":0.875rem;", ":1.125rem;", ":0.375rem;", ":0.75rem;", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-bold-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);"], _Accordion.accordionTokens.accordionItemPaddingTop, _Accordion.accordionTokens.accordionItemPaddingRight, _Accordion.accordionTokens.accordionItemPaddingBottom, _Accordion.accordionTokens.accordionItemPaddingLeft, _Accordion.accordionTokens.accordionItemGap, _Accordion.accordionTokens.accordionItemBorderRadius, _Accordion.accordionTokens.accordionItemTitleFontFamily, _Accordion.accordionTokens.accordionItemTitleFontSize, _Accordion.accordionTokens.accordionItemTitleFontStyle, _Accordion.accordionTokens.accordionItemTitleFontWeight, _Accordion.accordionTokens.accordionItemTitleLetterSpacing, _Accordion.accordionTokens.accordionItemTitleLineHeight, _Accordion.accordionTokens.accordionItemTextFontFamily, _Accordion.accordionTokens.accordionItemTextFontSize, _Accordion.accordionTokens.accordionItemTextFontStyle, _Accordion.accordionTokens.accordionItemTextFontWeight, _Accordion.accordionTokens.accordionItemTextLetterSpacing, _Accordion.accordionTokens.accordionItemTextLineHeight),
22
+ s: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.6875rem;", ":0.875rem;", ":0.6875rem;", ":0.875rem;", ":0.375rem;", ":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-bold-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":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);"], _Accordion.accordionTokens.accordionItemPaddingTop, _Accordion.accordionTokens.accordionItemPaddingRight, _Accordion.accordionTokens.accordionItemPaddingBottom, _Accordion.accordionTokens.accordionItemPaddingLeft, _Accordion.accordionTokens.accordionItemGap, _Accordion.accordionTokens.accordionItemBorderRadius, _Accordion.accordionTokens.accordionItemTitleFontFamily, _Accordion.accordionTokens.accordionItemTitleFontSize, _Accordion.accordionTokens.accordionItemTitleFontStyle, _Accordion.accordionTokens.accordionItemTitleFontWeight, _Accordion.accordionTokens.accordionItemTitleLetterSpacing, _Accordion.accordionTokens.accordionItemTitleLineHeight, _Accordion.accordionTokens.accordionItemTextFontFamily, _Accordion.accordionTokens.accordionItemTextFontSize, _Accordion.accordionTokens.accordionItemTextFontStyle, _Accordion.accordionTokens.accordionItemTextFontWeight, _Accordion.accordionTokens.accordionItemTextLetterSpacing, _Accordion.accordionTokens.accordionItemTextLineHeight),
23
+ xs: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.5rem;", ":0.75rem;", ":0.5rem;", ":0.75rem;", ":0.25rem;", ":0.5rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);"], _Accordion.accordionTokens.accordionItemPaddingTop, _Accordion.accordionTokens.accordionItemPaddingRight, _Accordion.accordionTokens.accordionItemPaddingBottom, _Accordion.accordionTokens.accordionItemPaddingLeft, _Accordion.accordionTokens.accordionItemGap, _Accordion.accordionTokens.accordionItemBorderRadius, _Accordion.accordionTokens.accordionItemTitleFontFamily, _Accordion.accordionTokens.accordionItemTitleFontSize, _Accordion.accordionTokens.accordionItemTitleFontStyle, _Accordion.accordionTokens.accordionItemTitleFontWeight, _Accordion.accordionTokens.accordionItemTitleLetterSpacing, _Accordion.accordionTokens.accordionItemTitleLineHeight, _Accordion.accordionTokens.accordionItemTextFontFamily, _Accordion.accordionTokens.accordionItemTextFontSize, _Accordion.accordionTokens.accordionItemTextFontStyle, _Accordion.accordionTokens.accordionItemTextFontWeight, _Accordion.accordionTokens.accordionItemTextLetterSpacing, _Accordion.accordionTokens.accordionItemTextLineHeight)
24
+ },
25
+ stretching: {
26
+ filled: /*#__PURE__*/(0, _styledComponents.css)([""]),
27
+ fixed: /*#__PURE__*/(0, _styledComponents.css)([""])
28
+ }
29
+ }
30
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Accordion = void 0;
7
+ Object.defineProperty(exports, "AccordionItem", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _Accordion.AccordionItem;
11
+ }
12
+ });
13
+ var _Accordion = /*#__PURE__*/require("../../../../components/Accordion");
14
+ var _engines = /*#__PURE__*/require("../../../../engines");
15
+ var _Accordion2 = /*#__PURE__*/require("./Accordion.config");
16
+ var mergedConfig = /*#__PURE__*/(0, _engines.mergeConfig)(_Accordion.accordionConfig, _Accordion2.config);
17
+ var Accordion = exports.Accordion = /*#__PURE__*/(0, _engines.component)(mergedConfig);
@@ -0,0 +1,75 @@
1
+ import * as React from 'react';
2
+ import type { ComponentProps } from 'react';
3
+ import type { StoryObj, Meta } from '@storybook/react';
4
+ import { disableProps } from '@salutejs/plasma-sb-utils';
5
+
6
+ import { mergeConfig } from '../../../../engines';
7
+ import { WithTheme, argTypesFromConfig } from '../../../_helpers';
8
+ import { accordionConfig } from '../../../../components/Accordion';
9
+
10
+ import { config } from './Accordion.config';
11
+ import { Accordion, AccordionItem } from './Accordion';
12
+
13
+ const meta: Meta<typeof Accordion> = {
14
+ title: 'plasma_web/Accordion',
15
+ decorators: [WithTheme],
16
+ component: Accordion,
17
+ args: {
18
+ view: 'default',
19
+ size: 'm',
20
+ stretching: 'filled',
21
+ pin: 'square-square',
22
+ type: 'arrow',
23
+ title: 'Как оплатить заправку бонусами СберСпасибо?',
24
+ body:
25
+ 'После указания деталей заправки нажмите кнопку «К оплате». Откроется окно оплаты, где вы сможете списать бонусы и оплатить ими до 99% стоимости топлива',
26
+ },
27
+ argTypes: {
28
+ ...argTypesFromConfig(mergeConfig(accordionConfig, config)),
29
+ pin: {
30
+ options: [
31
+ 'square-square',
32
+ 'square-clear',
33
+ 'clear-square',
34
+ 'clear-clear',
35
+ 'clear-circle',
36
+ 'circle-clear',
37
+ 'circle-circle',
38
+ '',
39
+ ],
40
+ control: {
41
+ type: 'select',
42
+ },
43
+ table: { defaultValue: { summary: 'bottom' } },
44
+ },
45
+ stretching: {
46
+ options: ['filled', 'fixed'],
47
+ control: {
48
+ type: 'select',
49
+ },
50
+ },
51
+ type: {
52
+ options: ['arrow', 'sign', 'clear'],
53
+ control: {
54
+ type: 'select',
55
+ },
56
+ },
57
+ },
58
+ };
59
+
60
+ export default meta;
61
+
62
+ export const Default: StoryObj<ComponentProps<typeof Accordion>> = {
63
+ argTypes: { ...disableProps(['text']) },
64
+ render: (props: ComponentProps<typeof Accordion>) => {
65
+ const args = { ...props, text: undefined };
66
+
67
+ return (
68
+ <Accordion {...args}>
69
+ <AccordionItem type={args.type} pin={args.pin} title={args.title} body={args.body} />
70
+ <AccordionItem type={args.type} pin={args.pin} title={args.title} body={args.body} />
71
+ <AccordionItem type={args.type} pin={args.pin} title={args.title} body={args.body} />
72
+ </Accordion>
73
+ );
74
+ },
75
+ };
@@ -0,0 +1,41 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { cx } from '../../utils';
3
+ import { base } from './Accordion.styles';
4
+ import { classes } from './Accordion.tokens';
5
+ import { base as viewCSS } from './variations/_view/base';
6
+ import { base as sizeCSS } from './variations/_size/base';
7
+ export var accordionRoot = function accordionRoot(Root) {
8
+ return /*#__PURE__*/forwardRef(function (_ref, outerRootRef) {
9
+ var size = _ref.size,
10
+ view = _ref.view,
11
+ _ref$stretching = _ref.stretching,
12
+ stretching = _ref$stretching === void 0 ? 'filled' : _ref$stretching,
13
+ children = _ref.children,
14
+ className = _ref.className;
15
+ var stretchingClass = classes["".concat(stretching, "Stretching")];
16
+ return /*#__PURE__*/React.createElement(Root, {
17
+ ref: outerRootRef,
18
+ size: size,
19
+ view: view,
20
+ className: cx(stretchingClass, classes.accordionRoot, className)
21
+ }, children);
22
+ });
23
+ };
24
+ export var accordionConfig = {
25
+ name: 'Accordion',
26
+ tag: 'div',
27
+ layout: accordionRoot,
28
+ base: base,
29
+ variations: {
30
+ view: {
31
+ css: viewCSS
32
+ },
33
+ size: {
34
+ css: sizeCSS
35
+ }
36
+ },
37
+ defaults: {
38
+ view: 'default',
39
+ size: 'm'
40
+ }
41
+ };
@@ -0,0 +1,3 @@
1
+ import { css } from 'styled-components';
2
+ import { classes, tokens } from './Accordion.tokens';
3
+ export var base = /*#__PURE__*/css(["display:flex;flex-direction:column;gap:var(", ");align-items:stretch;height:auto;background:var(", ");&&.", "{width:var(", ");}&&.", "{width:100%;}"], tokens.accordionGap, tokens.accordionBackground, classes.fixedStretching, tokens.accordionWidth, classes.filledStretching);
@@ -0,0 +1,36 @@
1
+ export var classes = {
2
+ filledStretching: 'accordion-stretching-filled',
3
+ fixedStretching: 'accordion-stretching-fixed',
4
+ accordionRoot: 'accordion-root',
5
+ accordionItem: 'accordion-item',
6
+ clearAccordionItem: 'clear-accordion-item',
7
+ accordionItemShowBody: 'accordion-item-show-body',
8
+ accordionPlusAnimationElement: 'accordion-plus-animation-element'
9
+ };
10
+ export var tokens = {
11
+ accordionGap: '--plasma-accordion-gap',
12
+ accordionWidth: '--plasma-accordion-width',
13
+ accordionBackground: '--plasma-accordion-background',
14
+ accordionItemBackground: '--plasma-accordion-item-background',
15
+ accordionItemBorderRadius: '--plasma-accordion-item-border-radius',
16
+ accordionItemPaddingTop: '--plasma-accordion-item-padding-top',
17
+ accordionItemPaddingRight: '--plasma-accordion-item-padding-right',
18
+ accordionItemPaddingBottom: '--plasma-accordion-item-padding-bottom',
19
+ accordionItemPaddingLeft: '--plasma-accordion-item-padding-left',
20
+ accordionItemGap: '--plasma-accordion-item-gap',
21
+ accordionItemFocus: '--plasma-accordion-item-focus',
22
+ accordionItemTitleColor: '--plasma-accordion-item-title-color',
23
+ accordionItemTitleFontFamily: '--plasma-accordion-item-title-font-family',
24
+ accordionItemTitleFontSize: '--plasma-accordion-item-title-font-size',
25
+ accordionItemTitleFontStyle: '--plasma-accordion-item-title-font-style',
26
+ accordionItemTitleFontWeight: '--plasma-accordion-item-title-font-weight',
27
+ accordionItemTitleLetterSpacing: '--plasma-accordion-item-title-letter-spacing',
28
+ accordionItemTitleLineHeight: '--plasma-accordion-item-title-line-height',
29
+ accordionItemTextColor: '--plasma-accordion-item-text-color',
30
+ accordionItemTextFontFamily: '--plasma-accordion-item-text-font-family',
31
+ accordionItemTextFontSize: '--plasma-accordion-item-text-font-size',
32
+ accordionItemTextFontStyle: '--plasma-accordion-item-text-font-style',
33
+ accordionItemTextFontWeight: '--plasma-accordion-item-text-font-weight',
34
+ accordionItemTextLetterSpacing: '--plasma-accordion-item-text-letter-spacing',
35
+ accordionItemTextLineHeight: '--plasma-accordion-item-text-line-height'
36
+ };
@@ -0,0 +1,3 @@
1
+ export { accordionRoot, accordionConfig } from './Accordion';
2
+ export { AccordionItem } from './ui/AccordionItem/AccordionItem';
3
+ export { tokens as accordionTokens, classes as accordionClasses } from './Accordion.tokens';
@@ -0,0 +1,87 @@
1
+ var _StyledMinus, _StyledArrow;
2
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
+ import React, { useState, useRef, useEffect } from 'react';
9
+ import { convertRoundnessMatrix } from '../../../../utils/roundness';
10
+ import { classes, tokens } from '../../Accordion.tokens';
11
+ import { StyledAccordionItem, StyledAccordionHeader, StyledAccordionBody, StyledAccordionTitle, StyledAccordionContentLeft, StyledAccordionHeaderLeft, StyledAccordionContentRight, StyledArrow, StyledMinus, StyledPlus, StyledAccordionBodyAnimate } from './AccordionItem.styles';
12
+ export var AccordionItem = function AccordionItem(_ref) {
13
+ var value = _ref.value,
14
+ contentRight = _ref.contentRight,
15
+ contentLeft = _ref.contentLeft,
16
+ title = _ref.title,
17
+ _ref$pin = _ref.pin,
18
+ pin = _ref$pin === void 0 ? 'square-square' : _ref$pin,
19
+ body = _ref.body,
20
+ _ref$type = _ref.type,
21
+ type = _ref$type === void 0 ? 'sign' : _ref$type,
22
+ onChangeValue = _ref.onChangeValue;
23
+ var _useState = useState(value),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ show = _useState2[0],
26
+ setShow = _useState2[1];
27
+ var _useState3 = useState(),
28
+ _useState4 = _slicedToArray(_useState3, 2),
29
+ leftPadding = _useState4[0],
30
+ setLeftPadding = _useState4[1];
31
+ var showHandler = function showHandler() {
32
+ setShow(!show);
33
+ onChangeValue && onChangeValue(!show);
34
+ };
35
+ var onKeyPress = function onKeyPress(event) {
36
+ event.persist();
37
+ if (event.keyCode === 13) {
38
+ showHandler();
39
+ }
40
+ };
41
+ var leftContentRef = useRef(null);
42
+ useEffect(function () {
43
+ var _leftContentRef$curre, _leftContentRef$curre2;
44
+ var leftContentWidth = (_leftContentRef$curre = leftContentRef === null || leftContentRef === void 0 || (_leftContentRef$curre2 = leftContentRef.current) === null || _leftContentRef$curre2 === void 0 ? void 0 : _leftContentRef$curre2.offsetWidth) !== null && _leftContentRef$curre !== void 0 ? _leftContentRef$curre : 0;
45
+ var leftPaddingBody = leftContentWidth ? "calc(".concat(leftContentWidth, "px + var(").concat(tokens.accordionItemGap, "))") : 0;
46
+ setLeftPadding(leftPaddingBody);
47
+ }, [type, leftContentRef, setLeftPadding]);
48
+ var showedBody = show ? classes.accordionItemShowBody : undefined;
49
+ var StyledAnimationPLus = function StyledAnimationPLus() {
50
+ return /*#__PURE__*/React.createElement(StyledPlus, null, _StyledMinus || (_StyledMinus = /*#__PURE__*/React.createElement(StyledMinus, {
51
+ size: "s",
52
+ color: "inhert"
53
+ })), /*#__PURE__*/React.createElement(StyledMinus, {
54
+ size: "s",
55
+ color: "inhert",
56
+ className: showedBody !== null && showedBody !== void 0 ? showedBody : classes.accordionPlusAnimationElement
57
+ }));
58
+ };
59
+ var accordionBorderRadius = convertRoundnessMatrix(pin, "var(".concat(tokens.accordionItemBorderRadius, ")"));
60
+ var leftContent = contentLeft !== null && contentLeft !== void 0 ? contentLeft : type === 'arrow' ? _StyledArrow || (_StyledArrow = /*#__PURE__*/React.createElement(StyledArrow, {
61
+ size: "s",
62
+ color: "inhert"
63
+ })) : undefined;
64
+ var leftContentRotate = type === 'arrow' && show ? classes.accordionItemShowBody : undefined;
65
+ var rightContent = contentRight !== null && contentRight !== void 0 ? contentRight : type === 'sign' ? /*#__PURE__*/React.createElement(StyledAnimationPLus, null) : undefined;
66
+ var rightContentRotate = type === 'sign' && show ? classes.accordionItemShowBody : undefined;
67
+ return /*#__PURE__*/React.createElement(StyledAccordionItem, {
68
+ role: "tab",
69
+ tabIndex: 0,
70
+ style: {
71
+ borderRadius: accordionBorderRadius
72
+ },
73
+ onKeyDown: onKeyPress
74
+ }, /*#__PURE__*/React.createElement(StyledAccordionHeader, {
75
+ onClick: showHandler
76
+ }, /*#__PURE__*/React.createElement(StyledAccordionHeaderLeft, null, leftContent && /*#__PURE__*/React.createElement(StyledAccordionContentLeft, {
77
+ ref: leftContentRef,
78
+ className: leftContentRotate
79
+ }, leftContent), /*#__PURE__*/React.createElement(StyledAccordionTitle, null, title)), /*#__PURE__*/React.createElement(StyledAccordionContentRight, {
80
+ className: rightContentRotate
81
+ }, rightContent && rightContent)), /*#__PURE__*/React.createElement(StyledAccordionBodyAnimate, {
82
+ className: showedBody,
83
+ style: {
84
+ paddingLeft: "".concat(leftPadding)
85
+ }
86
+ }, /*#__PURE__*/React.createElement(StyledAccordionBody, null, body)));
87
+ };
@@ -0,0 +1,42 @@
1
+ import styled from 'styled-components';
2
+ import { IconChevronDown, IconMinus } from '../../../_Icon';
3
+ import { classes, tokens } from '../../Accordion.tokens';
4
+ import { addFocus } from '../../../../mixins';
5
+ export var StyledAccordionItem = /*#__PURE__*/styled.div.withConfig({
6
+ componentId: "plasma-new-hope__sc-20ij9z-0"
7
+ })(["background:var(", ");&:focus{outline:none;}", ""], tokens.accordionItemBackground, /*#__PURE__*/addFocus({
8
+ outlineOffset: '0.125rem',
9
+ outlineSize: '0.125rem',
10
+ outlineRadius: '0',
11
+ outlineColor: /*#__PURE__*/"var(".concat(tokens.accordionItemFocus, ")")
12
+ }));
13
+ export var StyledAccordionHeader = /*#__PURE__*/styled.div.withConfig({
14
+ componentId: "plasma-new-hope__sc-20ij9z-1"
15
+ })(["padding-top:var(", ");padding-right:var(", ");padding-bottom:var(", ");padding-left:var(", ");display:flex;gap:var(", ");justify-content:space-between;align-items:center;cursor:pointer;"], tokens.accordionItemPaddingTop, tokens.accordionItemPaddingRight, tokens.accordionItemPaddingBottom, tokens.accordionItemPaddingLeft, tokens.accordionItemGap);
16
+ export var StyledAccordionHeaderLeft = /*#__PURE__*/styled.div.withConfig({
17
+ componentId: "plasma-new-hope__sc-20ij9z-2"
18
+ })(["display:flex;gap:var(", ");justify-content:space-between;align-items:center;"], tokens.accordionItemGap);
19
+ export var StyledAccordionContentRight = /*#__PURE__*/styled.div.withConfig({
20
+ componentId: "plasma-new-hope__sc-20ij9z-3"
21
+ })(["transition:0.2s;transform:rotate(90deg);&&.", "{transition:0.2s;transform:rotate(0deg);}"], classes.accordionItemShowBody);
22
+ export var StyledAccordionContentLeft = /*#__PURE__*/styled.div.withConfig({
23
+ componentId: "plasma-new-hope__sc-20ij9z-4"
24
+ })(["transition:0.2s;display:flex;align-items:center;&&.", "{transition:0.2s;transform:rotate(180deg);}"], classes.accordionItemShowBody);
25
+ export var StyledAccordionTitle = /*#__PURE__*/styled.div.withConfig({
26
+ componentId: "plasma-new-hope__sc-20ij9z-5"
27
+ })(["color:var(", ");font-family:var(", ");font-size:var(", ");font-weight:var(", ");font-style:var(", ");letter-spacing:var(", ");line-height:var(", ");"], tokens.accordionItemTitleColor, tokens.accordionItemTitleFontWeight, tokens.accordionItemTitleFontSize, tokens.accordionItemTitleFontWeight, tokens.accordionItemTitleFontStyle, tokens.accordionItemTitleLetterSpacing, tokens.accordionItemTitleLineHeight);
28
+ export var StyledAccordionBodyAnimate = /*#__PURE__*/styled.div.withConfig({
29
+ componentId: "plasma-new-hope__sc-20ij9z-6"
30
+ })(["display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out;overflow:hidden;&&.", "{grid-template-rows:1fr;padding-bottom:var(", ");&.", "{transition:0.2s;transform:rotate(0deg);}}"], classes.accordionItemShowBody, tokens.accordionItemPaddingBottom, classes.accordionPlusAnimationElement);
31
+ export var StyledAccordionBody = /*#__PURE__*/styled.div.withConfig({
32
+ componentId: "plasma-new-hope__sc-20ij9z-7"
33
+ })(["color:var(", ");font-family:var(", ");font-size:var(", ");font-weight:var(", ");font-style:var(", ");letter-spacing:var(", ");line-height:var(", ");overflow:hidden;padding-right:var(", ");padding-left:var(", ");"], tokens.accordionItemTextColor, tokens.accordionItemTextFontWeight, tokens.accordionItemTextFontSize, tokens.accordionItemTextFontWeight, tokens.accordionItemTextFontStyle, tokens.accordionItemTextLetterSpacing, tokens.accordionItemTextLineHeight, tokens.accordionItemPaddingRight, tokens.accordionItemPaddingLeft);
34
+ export var StyledArrow = /*#__PURE__*/styled(IconChevronDown).withConfig({
35
+ componentId: "plasma-new-hope__sc-20ij9z-8"
36
+ })(["pointer-events:none;user-select:none;color:var(", ");"], tokens.accordionItemTextColor);
37
+ export var StyledMinus = /*#__PURE__*/styled(IconMinus).withConfig({
38
+ componentId: "plasma-new-hope__sc-20ij9z-9"
39
+ })(["pointer-events:none;user-select:none;color:var(", ");display:flex;align-items:center;position:absolute;top:0;left:0;&&.", "{transition:0.2s;transform:rotate(90deg);}&&.", "{transition:0.2s;transform:rotate(0deg);}"], tokens.accordionItemTextColor, classes.accordionPlusAnimationElement, classes.accordionItemShowBody);
40
+ export var StyledPlus = /*#__PURE__*/styled.div.withConfig({
41
+ componentId: "plasma-new-hope__sc-20ij9z-10"
42
+ })(["position:relative;height:1.5rem;display:flex;align-items:center;justify-content:center;width:1.5rem;"]);
@@ -0,0 +1,2 @@
1
+ import { css } from 'styled-components';
2
+ export var base = /*#__PURE__*/css([""]);
@@ -0,0 +1,6 @@
1
+ [
2
+ "--plasma-button-height",
3
+ "--plasma-button-padding",
4
+ "--plasma-button-radius",
5
+ { "name": "typography", "type": "enum", "value": "typo:body" }
6
+ ]
@@ -0,0 +1,2 @@
1
+ import { css } from 'styled-components';
2
+ export var base = /*#__PURE__*/css([""]);
@@ -0,0 +1,2 @@
1
+ import { css } from 'styled-components';
2
+ export var base = /*#__PURE__*/css([""]);
@@ -0,0 +1,8 @@
1
+ [
2
+ "--plasma-button-color",
3
+ "--plasma-button-bg-color",
4
+ "--plasma-button-color-hover",
5
+ "--plasma-button-bg-color-hover",
6
+ "--plasma-button-color-active",
7
+ "--plasma-button-bg-color-active"
8
+ ]
@@ -0,0 +1,14 @@
1
+ var _path;
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ import React from 'react';
4
+ export var Minus = function Minus(props) {
5
+ return /*#__PURE__*/React.createElement("svg", _extends({
6
+ width: "100%",
7
+ viewBox: "0 0 24 24",
8
+ fill: "none"
9
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
10
+ id: "icon",
11
+ d: "M3.25 12C3.25 11.58 3.58 11.25 4 11.25L20 11.25C20.41 11.25 20.75 11.58 20.75 12C20.75 12.41 20.41 12.75 20 12.75L4 12.75C3.58 12.75 3.25 12.41 3.25 12Z",
12
+ fill: "currentColor"
13
+ })));
14
+ };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { Minus } from '../Icon.assets/Minus';
3
+ import { IconRoot } from '../IconRoot';
4
+ export var IconMinus = function IconMinus(_ref) {
5
+ var _ref$size = _ref.size,
6
+ size = _ref$size === void 0 ? 's' : _ref$size,
7
+ color = _ref.color,
8
+ className = _ref.className;
9
+ return /*#__PURE__*/React.createElement(IconRoot, {
10
+ className: className,
11
+ size: size,
12
+ color: color,
13
+ icon: Minus
14
+ });
15
+ };
@@ -6,4 +6,5 @@ export { IconChevronDoubleLeft } from './Icons/IconChevronDoubleLeft';
6
6
  export { IconChevronDown } from './Icons/IconChevronDown';
7
7
  export { IconClose } from './Icons/IconClose';
8
8
  export { IconCross } from './Icons/IconCross';
9
- export { IconDone } from './Icons/IconDone';
9
+ export { IconDone } from './Icons/IconDone';
10
+ export { IconMinus } from './Icons/IconMinus';
@@ -0,0 +1,24 @@
1
+ import { css } from 'styled-components';
2
+ import { accordionTokens } from '../../../../components/Accordion';
3
+ export var config = {
4
+ defaults: {
5
+ view: 'default',
6
+ size: 'm'
7
+ },
8
+ variations: {
9
+ view: {
10
+ "default": /*#__PURE__*/css(["", ":0.125rem;", ":20rem;", ":var(--surface-solid-card);", ":var(--text-primary);", ":var(--text-primary);", ":var(--surface-accent);", ":var(--surface-clear);"], accordionTokens.accordionGap, accordionTokens.accordionWidth, accordionTokens.accordionItemBackground, accordionTokens.accordionItemTitleColor, accordionTokens.accordionItemTextColor, accordionTokens.accordionItemFocus, accordionTokens.accordionBackground),
11
+ clear: /*#__PURE__*/css(["", ":0.125rem;", ":20rem;", ":0rem !important;", ":0rem !important;", ":var(--background-primary);", ":var(--text-primary);", ":var(--text-primary);", ":var(--surface-accent);", ":0rem !important;", ":var(--surface-solid-tertiary);"], accordionTokens.accordionGap, accordionTokens.accordionWidth, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemBackground, accordionTokens.accordionItemTitleColor, accordionTokens.accordionItemTextColor, accordionTokens.accordionItemFocus, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionBackground)
12
+ },
13
+ size: {
14
+ l: /*#__PURE__*/css(["", ":1.0625rem;", ":1.25rem;", ":1.0625rem;", ":1.25rem;", ":0.5rem;", ":0.875rem;", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-bold-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);"], accordionTokens.accordionItemPaddingTop, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingBottom, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemGap, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionItemTitleFontFamily, accordionTokens.accordionItemTitleFontSize, accordionTokens.accordionItemTitleFontStyle, accordionTokens.accordionItemTitleFontWeight, accordionTokens.accordionItemTitleLetterSpacing, accordionTokens.accordionItemTitleLineHeight, accordionTokens.accordionItemTextFontFamily, accordionTokens.accordionItemTextFontSize, accordionTokens.accordionItemTextFontStyle, accordionTokens.accordionItemTextFontWeight, accordionTokens.accordionItemTextLetterSpacing, accordionTokens.accordionItemTextLineHeight),
15
+ m: /*#__PURE__*/css(["", ":0.875rem;", ":1.125rem;", ":0.875rem;", ":1.125rem;", ":0.375rem;", ":0.75rem;", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-bold-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);"], accordionTokens.accordionItemPaddingTop, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingBottom, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemGap, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionItemTitleFontFamily, accordionTokens.accordionItemTitleFontSize, accordionTokens.accordionItemTitleFontStyle, accordionTokens.accordionItemTitleFontWeight, accordionTokens.accordionItemTitleLetterSpacing, accordionTokens.accordionItemTitleLineHeight, accordionTokens.accordionItemTextFontFamily, accordionTokens.accordionItemTextFontSize, accordionTokens.accordionItemTextFontStyle, accordionTokens.accordionItemTextFontWeight, accordionTokens.accordionItemTextLetterSpacing, accordionTokens.accordionItemTextLineHeight),
16
+ s: /*#__PURE__*/css(["", ":0.6875rem;", ":0.875rem;", ":0.6875rem;", ":0.875rem;", ":0.375rem;", ":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-bold-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":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);"], accordionTokens.accordionItemPaddingTop, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingBottom, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemGap, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionItemTitleFontFamily, accordionTokens.accordionItemTitleFontSize, accordionTokens.accordionItemTitleFontStyle, accordionTokens.accordionItemTitleFontWeight, accordionTokens.accordionItemTitleLetterSpacing, accordionTokens.accordionItemTitleLineHeight, accordionTokens.accordionItemTextFontFamily, accordionTokens.accordionItemTextFontSize, accordionTokens.accordionItemTextFontStyle, accordionTokens.accordionItemTextFontWeight, accordionTokens.accordionItemTextLetterSpacing, accordionTokens.accordionItemTextLineHeight),
17
+ xs: /*#__PURE__*/css(["", ":0.5rem;", ":0.75rem;", ":0.5rem;", ":0.75rem;", ":0.25rem;", ":0.5rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);"], accordionTokens.accordionItemPaddingTop, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingBottom, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemGap, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionItemTitleFontFamily, accordionTokens.accordionItemTitleFontSize, accordionTokens.accordionItemTitleFontStyle, accordionTokens.accordionItemTitleFontWeight, accordionTokens.accordionItemTitleLetterSpacing, accordionTokens.accordionItemTitleLineHeight, accordionTokens.accordionItemTextFontFamily, accordionTokens.accordionItemTextFontSize, accordionTokens.accordionItemTextFontStyle, accordionTokens.accordionItemTextFontWeight, accordionTokens.accordionItemTextLetterSpacing, accordionTokens.accordionItemTextLineHeight)
18
+ },
19
+ stretching: {
20
+ filled: /*#__PURE__*/css([""]),
21
+ fixed: /*#__PURE__*/css([""])
22
+ }
23
+ }
24
+ };
@@ -0,0 +1,6 @@
1
+ import { accordionConfig, AccordionItem } from '../../../../components/Accordion';
2
+ import { component, mergeConfig } from '../../../../engines';
3
+ import { config } from './Accordion.config';
4
+ var mergedConfig = /*#__PURE__*/mergeConfig(accordionConfig, config);
5
+ export var Accordion = /*#__PURE__*/component(mergedConfig);
6
+ export { AccordionItem };
@@ -0,0 +1,75 @@
1
+ import * as React from 'react';
2
+ import type { ComponentProps } from 'react';
3
+ import type { StoryObj, Meta } from '@storybook/react';
4
+ import { disableProps } from '@salutejs/plasma-sb-utils';
5
+
6
+ import { mergeConfig } from '../../../../engines';
7
+ import { WithTheme, argTypesFromConfig } from '../../../_helpers';
8
+ import { accordionConfig } from '../../../../components/Accordion';
9
+
10
+ import { config } from './Accordion.config';
11
+ import { Accordion, AccordionItem } from './Accordion';
12
+
13
+ const meta: Meta<typeof Accordion> = {
14
+ title: 'plasma_b2c/Accordion',
15
+ decorators: [WithTheme],
16
+ component: Accordion,
17
+ args: {
18
+ view: 'default',
19
+ size: 'm',
20
+ stretching: 'filled',
21
+ pin: 'square-square',
22
+ type: 'arrow',
23
+ title: 'Как оплатить заправку бонусами СберСпасибо?',
24
+ body:
25
+ 'После указания деталей заправки нажмите кнопку «К оплате». Откроется окно оплаты, где вы сможете списать бонусы и оплатить ими до 99% стоимости топлива',
26
+ },
27
+ argTypes: {
28
+ ...argTypesFromConfig(mergeConfig(accordionConfig, config)),
29
+ pin: {
30
+ options: [
31
+ 'square-square',
32
+ 'square-clear',
33
+ 'clear-square',
34
+ 'clear-clear',
35
+ 'clear-circle',
36
+ 'circle-clear',
37
+ 'circle-circle',
38
+ '',
39
+ ],
40
+ control: {
41
+ type: 'select',
42
+ },
43
+ table: { defaultValue: { summary: 'bottom' } },
44
+ },
45
+ stretching: {
46
+ options: ['filled', 'fixed'],
47
+ control: {
48
+ type: 'select',
49
+ },
50
+ },
51
+ type: {
52
+ options: ['arrow', 'sign', 'clear'],
53
+ control: {
54
+ type: 'select',
55
+ },
56
+ },
57
+ },
58
+ };
59
+
60
+ export default meta;
61
+
62
+ export const Default: StoryObj<ComponentProps<typeof Accordion>> = {
63
+ argTypes: { ...disableProps(['text']) },
64
+ render: (props: ComponentProps<typeof Accordion>) => {
65
+ const args = { ...props, text: undefined };
66
+
67
+ return (
68
+ <Accordion {...args}>
69
+ <AccordionItem type={args.type} pin={args.pin} title={args.title} body={args.body} />
70
+ <AccordionItem type={args.type} pin={args.pin} title={args.title} body={args.body} />
71
+ <AccordionItem type={args.type} pin={args.pin} title={args.title} body={args.body} />
72
+ </Accordion>
73
+ );
74
+ },
75
+ };
@@ -0,0 +1,24 @@
1
+ import { css } from 'styled-components';
2
+ import { accordionTokens } from '../../../../components/Accordion';
3
+ export var config = {
4
+ defaults: {
5
+ view: 'default',
6
+ size: 'm'
7
+ },
8
+ variations: {
9
+ view: {
10
+ "default": /*#__PURE__*/css(["", ":0.125rem;", ":20rem;", ":var(--surface-solid-card);", ":var(--text-primary);", ":var(--text-primary);", ":var(--surface-accent);", ":var(--surface-clear);"], accordionTokens.accordionGap, accordionTokens.accordionWidth, accordionTokens.accordionItemBackground, accordionTokens.accordionItemTitleColor, accordionTokens.accordionItemTextColor, accordionTokens.accordionItemFocus, accordionTokens.accordionBackground),
11
+ clear: /*#__PURE__*/css(["", ":0.125rem;", ":20rem;", ":0rem !important;", ":0rem !important;", ":var(--background-primary);", ":var(--text-primary);", ":var(--text-primary);", ":var(--surface-accent);", ":0rem !important;", ":var(--surface-solid-tertiary);"], accordionTokens.accordionGap, accordionTokens.accordionWidth, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemBackground, accordionTokens.accordionItemTitleColor, accordionTokens.accordionItemTextColor, accordionTokens.accordionItemFocus, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionBackground)
12
+ },
13
+ size: {
14
+ l: /*#__PURE__*/css(["", ":1.0625rem;", ":1.25rem;", ":1.0625rem;", ":1.25rem;", ":0.5rem;", ":0.875rem;", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-bold-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);"], accordionTokens.accordionItemPaddingTop, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingBottom, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemGap, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionItemTitleFontFamily, accordionTokens.accordionItemTitleFontSize, accordionTokens.accordionItemTitleFontStyle, accordionTokens.accordionItemTitleFontWeight, accordionTokens.accordionItemTitleLetterSpacing, accordionTokens.accordionItemTitleLineHeight, accordionTokens.accordionItemTextFontFamily, accordionTokens.accordionItemTextFontSize, accordionTokens.accordionItemTextFontStyle, accordionTokens.accordionItemTextFontWeight, accordionTokens.accordionItemTextLetterSpacing, accordionTokens.accordionItemTextLineHeight),
15
+ m: /*#__PURE__*/css(["", ":0.875rem;", ":1.125rem;", ":0.875rem;", ":1.125rem;", ":0.375rem;", ":0.75rem;", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-bold-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);"], accordionTokens.accordionItemPaddingTop, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingBottom, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemGap, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionItemTitleFontFamily, accordionTokens.accordionItemTitleFontSize, accordionTokens.accordionItemTitleFontStyle, accordionTokens.accordionItemTitleFontWeight, accordionTokens.accordionItemTitleLetterSpacing, accordionTokens.accordionItemTitleLineHeight, accordionTokens.accordionItemTextFontFamily, accordionTokens.accordionItemTextFontSize, accordionTokens.accordionItemTextFontStyle, accordionTokens.accordionItemTextFontWeight, accordionTokens.accordionItemTextLetterSpacing, accordionTokens.accordionItemTextLineHeight),
16
+ s: /*#__PURE__*/css(["", ":0.6875rem;", ":0.875rem;", ":0.6875rem;", ":0.875rem;", ":0.375rem;", ":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-bold-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":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);"], accordionTokens.accordionItemPaddingTop, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingBottom, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemGap, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionItemTitleFontFamily, accordionTokens.accordionItemTitleFontSize, accordionTokens.accordionItemTitleFontStyle, accordionTokens.accordionItemTitleFontWeight, accordionTokens.accordionItemTitleLetterSpacing, accordionTokens.accordionItemTitleLineHeight, accordionTokens.accordionItemTextFontFamily, accordionTokens.accordionItemTextFontSize, accordionTokens.accordionItemTextFontStyle, accordionTokens.accordionItemTextFontWeight, accordionTokens.accordionItemTextLetterSpacing, accordionTokens.accordionItemTextLineHeight),
17
+ xs: /*#__PURE__*/css(["", ":0.5rem;", ":0.75rem;", ":0.5rem;", ":0.75rem;", ":0.25rem;", ":0.5rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);"], accordionTokens.accordionItemPaddingTop, accordionTokens.accordionItemPaddingRight, accordionTokens.accordionItemPaddingBottom, accordionTokens.accordionItemPaddingLeft, accordionTokens.accordionItemGap, accordionTokens.accordionItemBorderRadius, accordionTokens.accordionItemTitleFontFamily, accordionTokens.accordionItemTitleFontSize, accordionTokens.accordionItemTitleFontStyle, accordionTokens.accordionItemTitleFontWeight, accordionTokens.accordionItemTitleLetterSpacing, accordionTokens.accordionItemTitleLineHeight, accordionTokens.accordionItemTextFontFamily, accordionTokens.accordionItemTextFontSize, accordionTokens.accordionItemTextFontStyle, accordionTokens.accordionItemTextFontWeight, accordionTokens.accordionItemTextLetterSpacing, accordionTokens.accordionItemTextLineHeight)
18
+ },
19
+ stretching: {
20
+ filled: /*#__PURE__*/css([""]),
21
+ fixed: /*#__PURE__*/css([""])
22
+ }
23
+ }
24
+ };
@@ -0,0 +1,6 @@
1
+ import { accordionConfig, AccordionItem } from '../../../../components/Accordion';
2
+ import { component, mergeConfig } from '../../../../engines';
3
+ import { config } from './Accordion.config';
4
+ var mergedConfig = /*#__PURE__*/mergeConfig(accordionConfig, config);
5
+ export var Accordion = /*#__PURE__*/component(mergedConfig);
6
+ export { AccordionItem };