@salutejs/plasma-new-hope 0.131.0-canary.1390.10557448117.0 → 0.131.0-canary.1392.10557537816.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/Segment/tokens.js +15 -1
- package/cjs/components/Segment/tokens.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.css +10 -4
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +160 -83
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +37 -1
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles_1rr47x4.css +8 -0
- package/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +9 -0
- package/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base.js.map +1 -0
- package/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base_11agnr.css +1 -0
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.css +7 -3
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +4 -2
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js +31 -2
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles_f1jpip.css +6 -0
- package/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js +1 -1
- package/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentItem/variations/_view/base_168a47w.css +1 -0
- package/cjs/components/Tabs/ui/Tabs/Tabs.js +2 -2
- package/cjs/components/Tabs/ui/Tabs/Tabs.js.map +1 -1
- package/cjs/components/_Icon/Icon.assets/DisclosureDown.js +22 -0
- package/cjs/components/_Icon/Icon.assets/DisclosureDown.js.map +1 -0
- package/cjs/components/_Icon/Icon.assets/DisclosureUp.js +22 -0
- package/cjs/components/_Icon/Icon.assets/DisclosureUp.js.map +1 -0
- package/cjs/components/_Icon/Icons/IconDisclosureDown.js +23 -0
- package/cjs/components/_Icon/Icons/IconDisclosureDown.js.map +1 -0
- package/cjs/components/_Icon/Icons/IconDisclosureUp.js +23 -0
- package/cjs/components/_Icon/Icons/IconDisclosureUp.js.map +1 -0
- package/cjs/index.css +17 -7
- package/emotion/cjs/components/Segment/README.md +61 -0
- package/emotion/cjs/components/Segment/tokens.js +15 -1
- package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +156 -82
- package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +25 -17
- package/emotion/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +10 -0
- package/emotion/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/tokens.json +1 -0
- package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +4 -2
- package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js +28 -6
- package/emotion/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
- package/emotion/cjs/components/Tabs/ui/Tabs/Tabs.js +2 -2
- package/emotion/cjs/components/_Icon/Icon.assets/DisclosureDown.js +21 -0
- package/emotion/cjs/components/_Icon/Icon.assets/DisclosureUp.js +21 -0
- package/emotion/cjs/components/_Icon/Icons/IconDisclosureDown.js +22 -0
- package/emotion/cjs/components/_Icon/Icons/IconDisclosureUp.js +22 -0
- package/emotion/cjs/components/_Icon/index.js +14 -0
- package/emotion/cjs/examples/plasma_web/components/Segment/Segment.stories.tsx +143 -2
- package/emotion/cjs/examples/plasma_web/components/Segment/SegmentGroup.config.js +12 -9
- package/emotion/cjs/examples/plasma_web/components/Segment/SegmentItem.config.js +9 -9
- package/emotion/es/components/Segment/README.md +61 -0
- package/emotion/es/components/Segment/tokens.js +15 -1
- package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +159 -85
- package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +25 -17
- package/emotion/es/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +4 -0
- package/emotion/es/components/Segment/ui/SegmentGroup/variations/_vertical/tokens.json +1 -0
- package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +5 -3
- package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js +27 -5
- package/emotion/es/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
- package/emotion/es/components/Tabs/ui/Tabs/Tabs.js +2 -2
- package/emotion/es/components/_Icon/Icon.assets/DisclosureDown.js +14 -0
- package/emotion/es/components/_Icon/Icon.assets/DisclosureUp.js +14 -0
- package/emotion/es/components/_Icon/Icons/IconDisclosureDown.js +15 -0
- package/emotion/es/components/_Icon/Icons/IconDisclosureUp.js +15 -0
- package/emotion/es/components/_Icon/index.js +2 -0
- package/emotion/es/examples/plasma_web/components/Segment/Segment.stories.tsx +143 -2
- package/emotion/es/examples/plasma_web/components/Segment/SegmentGroup.config.js +12 -9
- package/emotion/es/examples/plasma_web/components/Segment/SegmentItem.config.js +9 -9
- package/es/components/Segment/tokens.js +15 -1
- package/es/components/Segment/tokens.js.map +1 -1
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.css +10 -4
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +163 -87
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +34 -2
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js.map +1 -1
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles_1rr47x4.css +8 -0
- package/es/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +5 -0
- package/es/components/Segment/ui/SegmentGroup/variations/_vertical/base.js.map +1 -0
- package/es/components/Segment/ui/SegmentGroup/variations/_vertical/base_11agnr.css +1 -0
- package/es/components/Segment/ui/SegmentItem/SegmentItem.css +7 -3
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js +5 -3
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js +30 -3
- package/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js.map +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.styles_f1jpip.css +6 -0
- package/es/components/Segment/ui/SegmentItem/variations/_view/base.js +1 -1
- package/es/components/Segment/ui/SegmentItem/variations/_view/base.js.map +1 -1
- package/es/components/Segment/ui/SegmentItem/variations/_view/base_168a47w.css +1 -0
- package/es/components/Tabs/ui/Tabs/Tabs.js +2 -2
- package/es/components/Tabs/ui/Tabs/Tabs.js.map +1 -1
- package/es/components/_Icon/Icon.assets/DisclosureDown.js +18 -0
- package/es/components/_Icon/Icon.assets/DisclosureDown.js.map +1 -0
- package/es/components/_Icon/Icon.assets/DisclosureUp.js +18 -0
- package/es/components/_Icon/Icon.assets/DisclosureUp.js.map +1 -0
- package/es/components/_Icon/Icons/IconDisclosureDown.js +19 -0
- package/es/components/_Icon/Icons/IconDisclosureDown.js.map +1 -0
- package/es/components/_Icon/Icons/IconDisclosureUp.js +19 -0
- package/es/components/_Icon/Icons/IconDisclosureUp.js.map +1 -0
- package/es/index.css +17 -7
- package/package.json +2 -2
- package/styled-components/cjs/components/Segment/README.md +61 -0
- package/styled-components/cjs/components/Segment/tokens.js +15 -1
- package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +156 -82
- package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +16 -4
- package/styled-components/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +10 -0
- package/styled-components/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/tokens.json +1 -0
- package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +4 -2
- package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js +23 -5
- package/styled-components/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
- package/styled-components/cjs/components/Tabs/ui/Tabs/Tabs.js +2 -2
- package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureDown.js +21 -0
- package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureUp.js +21 -0
- package/styled-components/cjs/components/_Icon/Icons/IconDisclosureDown.js +22 -0
- package/styled-components/cjs/components/_Icon/Icons/IconDisclosureUp.js +22 -0
- package/styled-components/cjs/components/_Icon/index.js +14 -0
- package/styled-components/cjs/examples/plasma_web/components/Segment/Segment.stories.tsx +143 -2
- package/styled-components/cjs/examples/plasma_web/components/Segment/SegmentGroup.config.js +7 -4
- package/styled-components/cjs/examples/plasma_web/components/Segment/SegmentItem.config.js +8 -8
- package/styled-components/es/components/Segment/README.md +61 -0
- package/styled-components/es/components/Segment/tokens.js +15 -1
- package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +159 -85
- package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +16 -4
- package/styled-components/es/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +4 -0
- package/styled-components/es/components/Segment/ui/SegmentGroup/variations/_vertical/tokens.json +1 -0
- package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +5 -3
- package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js +22 -4
- package/styled-components/es/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
- package/styled-components/es/components/Tabs/ui/Tabs/Tabs.js +2 -2
- package/styled-components/es/components/_Icon/Icon.assets/DisclosureDown.js +14 -0
- package/styled-components/es/components/_Icon/Icon.assets/DisclosureUp.js +14 -0
- package/styled-components/es/components/_Icon/Icons/IconDisclosureDown.js +15 -0
- package/styled-components/es/components/_Icon/Icons/IconDisclosureUp.js +15 -0
- package/styled-components/es/components/_Icon/index.js +2 -0
- package/styled-components/es/examples/plasma_web/components/Segment/Segment.stories.tsx +143 -2
- package/styled-components/es/examples/plasma_web/components/Segment/SegmentGroup.config.js +7 -4
- package/styled-components/es/examples/plasma_web/components/Segment/SegmentItem.config.js +8 -8
- package/types/components/Segment/tokens.d.ts +14 -0
- package/types/components/Segment/tokens.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +7 -0
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.styles.d.ts +12 -0
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.styles.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.types.d.ts +5 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.types.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentGroup/variations/_vertical/base.d.ts +2 -0
- package/types/components/Segment/ui/SegmentGroup/variations/_vertical/base.d.ts.map +1 -0
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +4 -0
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.styles.d.ts +9 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.styles.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.types.d.ts +8 -0
- package/types/components/Segment/ui/SegmentItem/SegmentItem.types.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentItem/variations/_view/base.d.ts.map +1 -1
- package/types/components/Tabs/ui/Tabs/Tabs.d.ts.map +1 -1
- package/types/components/_Icon/Icon.assets/DisclosureDown.d.ts +4 -0
- package/types/components/_Icon/Icon.assets/DisclosureDown.d.ts.map +1 -0
- package/types/components/_Icon/Icon.assets/DisclosureUp.d.ts +4 -0
- package/types/components/_Icon/Icon.assets/DisclosureUp.d.ts.map +1 -0
- package/types/components/_Icon/Icons/IconDisclosureDown.d.ts +4 -0
- package/types/components/_Icon/Icons/IconDisclosureDown.d.ts.map +1 -0
- package/types/components/_Icon/Icons/IconDisclosureUp.d.ts +4 -0
- package/types/components/_Icon/Icons/IconDisclosureUp.d.ts.map +1 -0
- package/types/components/_Icon/index.d.ts +2 -0
- package/types/components/_Icon/index.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Segment/Segment.d.ts +3 -0
- package/types/examples/plasma_b2c/components/Segment/Segment.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Segment/Segment.d.ts +6 -0
- package/types/examples/plasma_web/components/Segment/Segment.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Segment/SegmentGroup.config.d.ts +3 -0
- package/types/examples/plasma_web/components/Segment/SegmentGroup.config.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Segment/SegmentItem.config.d.ts.map +1 -1
- package/types/examples/sds_engineer/components/Segment/Segment.d.ts +3 -0
- package/types/examples/sds_engineer/components/Segment/Segment.d.ts.map +1 -1
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles_m9i9p0.css +0 -4
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles_18h1p52.css +0 -2
- package/cjs/components/Segment/ui/SegmentItem/variations/_view/base_1m1u2ys.css +0 -1
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles_m9i9p0.css +0 -4
- package/es/components/Segment/ui/SegmentItem/SegmentItem.styles_18h1p52.css +0 -2
- package/es/components/Segment/ui/SegmentItem/variations/_view/base_1m1u2ys.css +0 -1
@@ -1,4 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
|
+
import styled from 'styled-components';
|
2
3
|
import type { ComponentProps } from 'react';
|
3
4
|
import type { StoryObj, Meta } from '@storybook/react';
|
4
5
|
|
@@ -6,6 +7,8 @@ import { segmentGroupConfig } from '../../../../components/Segment';
|
|
6
7
|
import { mergeConfig } from '../../../../engines';
|
7
8
|
import { WithTheme, argTypesFromConfig } from '../../../_helpers';
|
8
9
|
import { SegmentProvider } from '../../../../components/Segment/SegmentProvider';
|
10
|
+
import { IconMic } from '../../../../components/_Icon';
|
11
|
+
import { Counter } from '../Counter/Counter';
|
9
12
|
|
10
13
|
import { config } from './SegmentGroup.config';
|
11
14
|
import { SegmentItem, SegmentGroup } from './Segment';
|
@@ -19,6 +22,40 @@ type CustomStorySegmentProps = {
|
|
19
22
|
|
20
23
|
type StorySegmentProps = ComponentProps<typeof SegmentGroup> & CustomStorySegmentProps;
|
21
24
|
|
25
|
+
const sizes = ['xs', 's', 'm', 'l'] as const;
|
26
|
+
|
27
|
+
type Size = typeof sizes[number];
|
28
|
+
|
29
|
+
const contentLeftOptions = ['none', 'icon'];
|
30
|
+
const contentRightOptions = ['none', 'text', 'counter', 'icon'];
|
31
|
+
|
32
|
+
const getContentLeft = (contentLeftOption: string, size: Size) => {
|
33
|
+
const iconSize = size === 'xs' ? 'xs' : 's';
|
34
|
+
return contentLeftOption === 'icon' ? <IconMic size={iconSize} color="inherit" /> : undefined;
|
35
|
+
};
|
36
|
+
|
37
|
+
const getContentRight = (contentRightOption: string, size: Size) => {
|
38
|
+
const iconSize = size === 'xs' ? 'xs' : 's';
|
39
|
+
const counterSize = size === 'xs' ? 'xxs' : 'xs';
|
40
|
+
|
41
|
+
switch (contentRightOption) {
|
42
|
+
case 'icon':
|
43
|
+
return <IconMic size={iconSize} color="inherit" />;
|
44
|
+
case 'counter':
|
45
|
+
return <Counter size={counterSize} count={1} view="positive" />;
|
46
|
+
case 'text':
|
47
|
+
return <div>Text</div>;
|
48
|
+
default:
|
49
|
+
return undefined;
|
50
|
+
}
|
51
|
+
};
|
52
|
+
|
53
|
+
const Column = styled.div`
|
54
|
+
display: flex;
|
55
|
+
flex-direction: column;
|
56
|
+
align-items: flex-start;
|
57
|
+
`;
|
58
|
+
|
22
59
|
const meta: Meta<StorySegmentProps> = {
|
23
60
|
title: 'plasma_web/Segment',
|
24
61
|
decorators: [WithTheme],
|
@@ -37,12 +74,32 @@ const meta: Meta<StorySegmentProps> = {
|
|
37
74
|
type: 'select',
|
38
75
|
},
|
39
76
|
},
|
77
|
+
contentLeft: {
|
78
|
+
options: contentLeftOptions,
|
79
|
+
control: {
|
80
|
+
type: 'select',
|
81
|
+
},
|
82
|
+
},
|
83
|
+
contentRight: {
|
84
|
+
options: contentRightOptions,
|
85
|
+
control: {
|
86
|
+
type: 'select',
|
87
|
+
},
|
88
|
+
},
|
40
89
|
},
|
41
90
|
};
|
42
91
|
|
43
92
|
export default meta;
|
44
93
|
|
45
|
-
const StoryDefault = ({
|
94
|
+
const StoryDefault = ({
|
95
|
+
contentItemsNumber,
|
96
|
+
selectionMode,
|
97
|
+
segmentItemView,
|
98
|
+
view,
|
99
|
+
contentLeft: contentLeftOption,
|
100
|
+
contentRight: contentRightOption,
|
101
|
+
...args
|
102
|
+
}: StorySegmentProps) => {
|
46
103
|
const contentItems = Array(contentItemsNumber).fill(0);
|
47
104
|
|
48
105
|
return (
|
@@ -56,6 +113,8 @@ const StoryDefault = ({ contentItemsNumber, selectionMode, segmentItemView, view
|
|
56
113
|
label={`Label ${i}`}
|
57
114
|
value={`label_${i}`}
|
58
115
|
key={`label_${i}`}
|
116
|
+
contentLeft={getContentLeft(contentLeftOption, args.size as Size)}
|
117
|
+
contentRight={getContentRight(contentRightOption, args.size as Size)}
|
59
118
|
{...args}
|
60
119
|
/>
|
61
120
|
))}
|
@@ -64,13 +123,20 @@ const StoryDefault = ({ contentItemsNumber, selectionMode, segmentItemView, view
|
|
64
123
|
|
65
124
|
<h3>Segment with fixed width</h3>
|
66
125
|
<SegmentProvider>
|
67
|
-
<SegmentGroup
|
126
|
+
<SegmentGroup
|
127
|
+
view={view}
|
128
|
+
style={{ width: '329px' /* , position: 'relative', background: 'lightblue'*/ }}
|
129
|
+
selectionMode={selectionMode}
|
130
|
+
{...args}
|
131
|
+
>
|
68
132
|
{contentItems.map((_, i) => (
|
69
133
|
<SegmentItem
|
70
134
|
view={segmentItemView}
|
71
135
|
label={`Label ${i}`}
|
72
136
|
value={`label_${i}`}
|
73
137
|
key={`label_${i}`}
|
138
|
+
contentLeft={getContentLeft(contentLeftOption, args.size as Size)}
|
139
|
+
contentRight={getContentRight(contentRightOption, args.size as Size)}
|
74
140
|
{...args}
|
75
141
|
/>
|
76
142
|
))}
|
@@ -90,6 +156,81 @@ export const Default: StoryObj<StorySegmentProps> = {
|
|
90
156
|
pilled: false,
|
91
157
|
filledBackground: false,
|
92
158
|
disabled: false,
|
159
|
+
vertical: false,
|
93
160
|
},
|
94
161
|
render: (args) => <StoryDefault {...args} />,
|
95
162
|
};
|
163
|
+
|
164
|
+
const StorySegmentItem = ({
|
165
|
+
contentItemsNumber,
|
166
|
+
selectionMode,
|
167
|
+
segmentItemView,
|
168
|
+
view,
|
169
|
+
contentLeft: contentLeftOption,
|
170
|
+
contentRight: contentRightOption,
|
171
|
+
...args
|
172
|
+
}: StorySegmentProps) => {
|
173
|
+
return (
|
174
|
+
<>
|
175
|
+
<h3>Items</h3>
|
176
|
+
<Column>
|
177
|
+
<SegmentProvider>
|
178
|
+
<SegmentItem view={segmentItemView} size={args.size} label="Label" value="label_value" />
|
179
|
+
<SegmentItem
|
180
|
+
view={segmentItemView}
|
181
|
+
label="Label"
|
182
|
+
value="label_value"
|
183
|
+
contentLeft={<IconMic color="inherit" />}
|
184
|
+
{...args}
|
185
|
+
/>
|
186
|
+
<SegmentItem
|
187
|
+
view={segmentItemView}
|
188
|
+
label="Label"
|
189
|
+
value="label_value"
|
190
|
+
contentRight={<IconMic color="inherit" />}
|
191
|
+
{...args}
|
192
|
+
/>
|
193
|
+
<SegmentItem
|
194
|
+
view={segmentItemView}
|
195
|
+
label="Label"
|
196
|
+
value="label_value"
|
197
|
+
contentLeft={<IconMic color="inherit" />}
|
198
|
+
contentRight={<IconMic color="inherit" />}
|
199
|
+
{...args}
|
200
|
+
/>
|
201
|
+
<SegmentItem
|
202
|
+
view={segmentItemView}
|
203
|
+
label="Label"
|
204
|
+
value="label_value"
|
205
|
+
contentLeft={<IconMic color="inherit" />}
|
206
|
+
contentRight="HelpText"
|
207
|
+
{...args}
|
208
|
+
/>
|
209
|
+
<SegmentItem
|
210
|
+
view={segmentItemView}
|
211
|
+
label="Label"
|
212
|
+
value="label_value"
|
213
|
+
contentLeft={getContentLeft(contentLeftOption, args.size as Size)}
|
214
|
+
contentRight={getContentRight(contentRightOption, args.size as Size)}
|
215
|
+
{...args}
|
216
|
+
/>
|
217
|
+
</SegmentProvider>
|
218
|
+
</Column>
|
219
|
+
</>
|
220
|
+
);
|
221
|
+
};
|
222
|
+
|
223
|
+
export const SegmentItemPage: StoryObj<StorySegmentProps> = {
|
224
|
+
args: {
|
225
|
+
view: 'clear',
|
226
|
+
size: 'xs',
|
227
|
+
segmentItemView: 'clear',
|
228
|
+
selectionMode: 'single',
|
229
|
+
contentItemsNumber: 11,
|
230
|
+
pilled: false,
|
231
|
+
filledBackground: false,
|
232
|
+
disabled: false,
|
233
|
+
vertical: false,
|
234
|
+
},
|
235
|
+
render: (args) => <StorySegmentItem {...args} />,
|
236
|
+
};
|
@@ -17,10 +17,10 @@ var config = exports.config = {
|
|
17
17
|
filled: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-secondary);", ":transparent;", ":var(--plasma-colors-button-focused);"], _Segment.segmentTokens.arrowColor, _Segment.segmentTokens.groupBackgroundColor, _Segment.segmentTokens.outlineFocusColor)
|
18
18
|
},
|
19
19
|
size: {
|
20
|
-
xs: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.5rem;", ":auto;", ":auto;"], _Segment.segmentTokens.groupBorderRadius, _Segment.segmentTokens.groupWidth, _Segment.segmentTokens.groupHeight),
|
21
|
-
s: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.625rem;", ":auto;", ":auto;"], _Segment.segmentTokens.groupBorderRadius, _Segment.segmentTokens.groupWidth, _Segment.segmentTokens.groupHeight),
|
22
|
-
m: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.75rem;", ":auto;", ":auto;"], _Segment.segmentTokens.groupBorderRadius, _Segment.segmentTokens.groupWidth, _Segment.segmentTokens.groupHeight),
|
23
|
-
l: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.75rem;", ":auto;", ":auto;"], _Segment.segmentTokens.groupBorderRadius, _Segment.segmentTokens.groupWidth, _Segment.segmentTokens.groupHeight)
|
20
|
+
xs: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.5rem;", ":auto;", ":auto;", ":11.25rem;", ":0.25rem 0.75rem;", ":0.75rem 0;"], _Segment.segmentTokens.groupBorderRadius, _Segment.segmentTokens.groupWidth, _Segment.segmentTokens.groupHeight, _Segment.segmentTokens.groupVerticalHeight, _Segment.segmentTokens.groupArrowPadding, _Segment.segmentTokens.groupVerticalArrowPadding),
|
21
|
+
s: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.625rem;", ":auto;", ":auto;", ":11.25rem;", ":0.5rem 0.875rem;", ":0.875rem 0;"], _Segment.segmentTokens.groupBorderRadius, _Segment.segmentTokens.groupWidth, _Segment.segmentTokens.groupHeight, _Segment.segmentTokens.groupVerticalHeight, _Segment.segmentTokens.groupArrowPadding, _Segment.segmentTokens.groupVerticalArrowPadding),
|
22
|
+
m: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.75rem;", ":auto;", ":auto;", ":16.25rem;", ":0.75rem 1.25rem;", ":1.25rem 0;"], _Segment.segmentTokens.groupBorderRadius, _Segment.segmentTokens.groupWidth, _Segment.segmentTokens.groupHeight, _Segment.segmentTokens.groupVerticalHeight, _Segment.segmentTokens.groupArrowPadding, _Segment.segmentTokens.groupVerticalArrowPadding),
|
23
|
+
l: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.75rem;", ":auto;", ":auto;", ":18.75rem;", ":1rem 1.375rem;", ":1.375rem 0;"], _Segment.segmentTokens.groupBorderRadius, _Segment.segmentTokens.groupWidth, _Segment.segmentTokens.groupHeight, _Segment.segmentTokens.groupVerticalHeight, _Segment.segmentTokens.groupArrowPadding, _Segment.segmentTokens.groupVerticalArrowPadding)
|
24
24
|
},
|
25
25
|
disabled: {
|
26
26
|
"true": /*#__PURE__*/(0, _styledComponents.css)(["", ":0.4;"], _Segment.segmentTokens.disabledOpacity)
|
@@ -30,6 +30,9 @@ var config = exports.config = {
|
|
30
30
|
},
|
31
31
|
filledBackground: {
|
32
32
|
"true": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--plasma-colors-surface-liquid02);"], _Segment.segmentTokens.groupFilledBackgroundColor)
|
33
|
+
},
|
34
|
+
vertical: {
|
35
|
+
"true": /*#__PURE__*/(0, _styledComponents.css)([""])
|
33
36
|
}
|
34
37
|
}
|
35
38
|
};
|
@@ -13,21 +13,21 @@ var config = exports.config = {
|
|
13
13
|
},
|
14
14
|
variations: {
|
15
15
|
view: {
|
16
|
-
clear: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-secondary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--plasma-colors-button-focused);"], _Segment.segmentTokens.itemColor, _Segment.segmentTokens.itemBackgroundColor, _Segment.segmentTokens.itemColorHover, _Segment.segmentTokens.itemBackgroundColorHover, _Segment.segmentTokens.itemSelectedColor, _Segment.segmentTokens.itemSelectedBackgroundColor, _Segment.segmentTokens.itemSelectedColorHover, _Segment.segmentTokens.itemSelectedBackgroundColorHover, _Segment.segmentTokens.outlineFocusColor),
|
17
|
-
secondary: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-primary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--text-primary);", ":var(--surface-solid-card);", ":var(--text-primary);", ":var(--surface-solid-card);", ":var(--plasma-colors-button-focused);"], _Segment.segmentTokens.itemColor, _Segment.segmentTokens.itemBackgroundColor, _Segment.segmentTokens.itemColorHover, _Segment.segmentTokens.itemBackgroundColorHover, _Segment.segmentTokens.itemSelectedColor, _Segment.segmentTokens.itemSelectedBackgroundColor, _Segment.segmentTokens.itemSelectedColorHover, _Segment.segmentTokens.itemSelectedBackgroundColorHover, _Segment.segmentTokens.outlineFocusColor),
|
18
|
-
"default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-primary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--inverse-text-primary);", ":var(--surface-solid-default);", ":var(--inverse-text-primary);", ":var(--surface-solid-default);", ":var(--plasma-colors-button-focused);"], _Segment.segmentTokens.itemColor, _Segment.segmentTokens.itemBackgroundColor, _Segment.segmentTokens.itemColorHover, _Segment.segmentTokens.itemBackgroundColorHover, _Segment.segmentTokens.itemSelectedColor, _Segment.segmentTokens.itemSelectedBackgroundColor, _Segment.segmentTokens.itemSelectedColorHover, _Segment.segmentTokens.itemSelectedBackgroundColorHover, _Segment.segmentTokens.outlineFocusColor)
|
16
|
+
clear: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-secondary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--text-tertiary);", ":var(--text-secondary);", ":var(--text-primary);", ":var(--inverse-text-secondary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--plasma-colors-button-focused);"], _Segment.segmentTokens.itemColor, _Segment.segmentTokens.itemBackgroundColor, _Segment.segmentTokens.itemColorHover, _Segment.segmentTokens.itemBackgroundColorHover, _Segment.segmentTokens.itemAdditionalColor, _Segment.segmentTokens.itemAdditionalColorHover, _Segment.segmentTokens.itemSelectedColor, _Segment.segmentTokens.itemSelectedColorSecondary, _Segment.segmentTokens.itemSelectedBackgroundColor, _Segment.segmentTokens.itemSelectedColorHover, _Segment.segmentTokens.itemSelectedBackgroundColorHover, _Segment.segmentTokens.itemSelectedAdditionalColor, _Segment.segmentTokens.itemSelectedAdditionalColorHover, _Segment.segmentTokens.outlineFocusColor),
|
17
|
+
secondary: /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-primary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--text-primary);", ":var(--inverse-text-secondary);", ":var(--surface-solid-card);", ":var(--text-primary);", ":var(--surface-solid-card);", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--plasma-colors-button-focused);"], _Segment.segmentTokens.itemColor, _Segment.segmentTokens.itemBackgroundColor, _Segment.segmentTokens.itemColorHover, _Segment.segmentTokens.itemBackgroundColorHover, _Segment.segmentTokens.itemAdditionalColor, _Segment.segmentTokens.itemAdditionalColorHover, _Segment.segmentTokens.itemSelectedColor, _Segment.segmentTokens.itemSelectedColorSecondary, _Segment.segmentTokens.itemSelectedBackgroundColor, _Segment.segmentTokens.itemSelectedColorHover, _Segment.segmentTokens.itemSelectedBackgroundColorHover, _Segment.segmentTokens.itemSelectedAdditionalColor, _Segment.segmentTokens.itemSelectedAdditionalColorHover, _Segment.segmentTokens.outlineFocusColor),
|
18
|
+
"default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-primary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--inverse-text-primary);", ":var(--inverse-text-secondary);", ":var(--surface-solid-default);", ":var(--inverse-text-primary);", ":var(--surface-solid-default);", ":var(--inverse-text-secondary);", ":var(--inverse-text-secondary);", ":var(--plasma-colors-button-focused);"], _Segment.segmentTokens.itemColor, _Segment.segmentTokens.itemBackgroundColor, _Segment.segmentTokens.itemColorHover, _Segment.segmentTokens.itemBackgroundColorHover, _Segment.segmentTokens.itemAdditionalColor, _Segment.segmentTokens.itemAdditionalColorHover, _Segment.segmentTokens.itemSelectedColor, _Segment.segmentTokens.itemSelectedColorSecondary, _Segment.segmentTokens.itemSelectedBackgroundColor, _Segment.segmentTokens.itemSelectedColorHover, _Segment.segmentTokens.itemSelectedBackgroundColorHover, _Segment.segmentTokens.itemSelectedAdditionalColor, _Segment.segmentTokens.itemSelectedAdditionalColorHover, _Segment.segmentTokens.outlineFocusColor)
|
19
19
|
},
|
20
20
|
size: {
|
21
|
-
xs: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.
|
22
|
-
s: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.
|
23
|
-
m: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.
|
24
|
-
l: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.
|
21
|
+
xs: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.5rem;", ":auto;", ":2rem;", ":0.5rem 0.75rem;", ":0.0625rem 0.125rem;", ":0.125rem;", ":0;", ":var(--plasma-typo-body-xs-bold-font-family);", ":var(--plasma-typo-body-xs-bold-font-size);", ":var(--plasma-typo-body-xs-bold-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-bold-letter-spacing);", ":var(--plasma-typo-body-xs-bold-line-height);"], _Segment.segmentTokens.itemBorderRadius, _Segment.segmentTokens.itemWidth, _Segment.segmentTokens.itemHeight, _Segment.segmentTokens.itemPadding, _Segment.segmentTokens.itemContentPadding, _Segment.segmentTokens.itemIconMargin, _Segment.segmentTokens.itemMarginLeft, _Segment.segmentTokens.fontFamily, _Segment.segmentTokens.fontSize, _Segment.segmentTokens.fontStyle, _Segment.segmentTokens.fontWeight, _Segment.segmentTokens.letterSpacing, _Segment.segmentTokens.lineHeight),
|
22
|
+
s: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.625rem;", ":auto;", ":2.5rem;", ":0.5rem 1rem;", ":0.1875rem 0.125rem;", ":0.125rem;", ":0rem;", ":var(--plasma-typo-body-s-bold-font-family);", ":var(--plasma-typo-body-s-bold-font-size);", ":var(--plasma-typo-body-s-bold-font-style);", ":var(--plasma-typo-body-s-bold-font-weight);", ":var(--plasma-typo-body-s-bold-letter-spacing);", ":var(--plasma-typo-body-s-bold-line-height);"], _Segment.segmentTokens.itemBorderRadius, _Segment.segmentTokens.itemWidth, _Segment.segmentTokens.itemHeight, _Segment.segmentTokens.itemPadding, _Segment.segmentTokens.itemContentPadding, _Segment.segmentTokens.itemIconMargin, _Segment.segmentTokens.itemMarginLeft, _Segment.segmentTokens.fontFamily, _Segment.segmentTokens.fontSize, _Segment.segmentTokens.fontStyle, _Segment.segmentTokens.fontWeight, _Segment.segmentTokens.letterSpacing, _Segment.segmentTokens.lineHeight),
|
23
|
+
m: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.75rem;", ":auto;", ":3rem;", ":0.75rem 1.25rem;", ":0.125rem;", ":0.25rem;", ":0rem;", ":var(--plasma-typo-body-m-bold-font-family);", ":var(--plasma-typo-body-m-bold-font-size);", ":var(--plasma-typo-body-m-bold-font-style);", ":var(--plasma-typo-body-m-bold-font-weight);", ":var(--plasma-typo-body-m-bold-letter-spacing);", ":var(--plasma-typo-body-m-bold-line-height);"], _Segment.segmentTokens.itemBorderRadius, _Segment.segmentTokens.itemWidth, _Segment.segmentTokens.itemHeight, _Segment.segmentTokens.itemPadding, _Segment.segmentTokens.itemContentPadding, _Segment.segmentTokens.itemIconMargin, _Segment.segmentTokens.itemMarginLeft, _Segment.segmentTokens.fontFamily, _Segment.segmentTokens.fontSize, _Segment.segmentTokens.fontStyle, _Segment.segmentTokens.fontWeight, _Segment.segmentTokens.letterSpacing, _Segment.segmentTokens.lineHeight),
|
24
|
+
l: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.875rem;", ":auto;", ":3.5rem;", ":1rem 1.5rem;", ":0.0625rem 0.125rem;", ":0.375rem;", ":0;", ":var(--plasma-typo-body-l-bold-font-family);", ":var(--plasma-typo-body-l-bold-font-size);", ":var(--plasma-typo-body-l-bold-font-style);", ":var(--plasma-typo-body-l-bold-font-weight);", ":var(--plasma-typo-body-l-bold-letter-spacing);", ":var(--plasma-typo-body-l-bold-line-height);"], _Segment.segmentTokens.itemBorderRadius, _Segment.segmentTokens.itemWidth, _Segment.segmentTokens.itemHeight, _Segment.segmentTokens.itemPadding, _Segment.segmentTokens.itemContentPadding, _Segment.segmentTokens.itemIconMargin, _Segment.segmentTokens.itemMarginLeft, _Segment.segmentTokens.fontFamily, _Segment.segmentTokens.fontSize, _Segment.segmentTokens.fontStyle, _Segment.segmentTokens.fontWeight, _Segment.segmentTokens.letterSpacing, _Segment.segmentTokens.lineHeight)
|
25
25
|
},
|
26
26
|
disabled: {
|
27
27
|
"true": /*#__PURE__*/(0, _styledComponents.css)(["", ":0.4;"], _Segment.segmentTokens.disabledOpacity)
|
28
28
|
},
|
29
29
|
pilled: {
|
30
|
-
"true": /*#__PURE__*/(0, _styledComponents.css)(["", ":1.
|
30
|
+
"true": /*#__PURE__*/(0, _styledComponents.css)(["", ":1.75rem;"], _Segment.segmentTokens.itemPilledBorderRadius)
|
31
31
|
}
|
32
32
|
}
|
33
33
|
};
|
@@ -0,0 +1,61 @@
|
|
1
|
+
https://mui.com/material-ui/api/select/
|
2
|
+
|
3
|
+
Segment
|
4
|
+
|
5
|
+
SegmentGroup
|
6
|
+
variations/
|
7
|
+
SegmentGroup.tsx
|
8
|
+
SegmentGroup.styles.ts
|
9
|
+
SegmentGroup.types.ts
|
10
|
+
|
11
|
+
SegmentItem
|
12
|
+
variations/
|
13
|
+
SegmentItem.tsx
|
14
|
+
SegmentItem.styles.ts
|
15
|
+
SegmentItem.types.ts
|
16
|
+
|
17
|
+
```ts
|
18
|
+
type SegmentValue = string | number;
|
19
|
+
|
20
|
+
interface SegmentItem {
|
21
|
+
value: SegmentValue;
|
22
|
+
label?: string;
|
23
|
+
}
|
24
|
+
|
25
|
+
interface SegmentGroup {
|
26
|
+
defaultValue?: SegmentValue | SegmentValue[];
|
27
|
+
value?: SegmentValue | SegmentValue[];
|
28
|
+
items: SegmentItem[];
|
29
|
+
customItem?: ({ item, selected, vertical }: { item: SegmentItem; selected: boolean; vertical: boolean }) => void;
|
30
|
+
onChange?: ({ item, selected }: { item: SegmentItem; selected: boolean }) => void;
|
31
|
+
view?: 'clear' | 'filled';
|
32
|
+
size?: 'm' | 's' | 'l' | 'xs';
|
33
|
+
disabled?: boolean;
|
34
|
+
pilled?: boolean;
|
35
|
+
filledBackground?: boolean;
|
36
|
+
stretch?: boolean;
|
37
|
+
vertical?: boolean;
|
38
|
+
selectionMode?: 'multiple' | 'single';
|
39
|
+
}
|
40
|
+
|
41
|
+
interface SegmentItem {
|
42
|
+
view?: 'clear' | 'filled';
|
43
|
+
size?: 'm' | 's' | 'l' | 'xs';
|
44
|
+
pilled?: boolean;
|
45
|
+
label?: ReactNode;
|
46
|
+
stretch?: boolean;
|
47
|
+
selectionMode?: 'multiple' | 'single';
|
48
|
+
}
|
49
|
+
```
|
50
|
+
|
51
|
+
```jsx
|
52
|
+
<SegmentGroup
|
53
|
+
defaultValue={['a']}
|
54
|
+
value={''}
|
55
|
+
items={[
|
56
|
+
{ value: 'a', label: 'A' },
|
57
|
+
{ value: 'b', label: 'B' },
|
58
|
+
]}
|
59
|
+
onChange(({ value }) => void)
|
60
|
+
/>
|
61
|
+
```
|
@@ -2,7 +2,11 @@ export var classes = {
|
|
2
2
|
selectedSegmentItem: 'selected-segment-item',
|
3
3
|
segmentPilled: 'segment-pilled',
|
4
4
|
segmentGroupFilledBackground: 'segment-group-filled-background',
|
5
|
-
segmentStretch: 'segment-stretched'
|
5
|
+
segmentStretch: 'segment-stretched',
|
6
|
+
segmentVertical: 'segment-vertical',
|
7
|
+
segmentArrowPadding: 'segment-arrow-padding',
|
8
|
+
segmentGroupClipScroll: 'segment-group-clip-scroll',
|
9
|
+
segmentGroupClipShowAll: 'segment-group-clip-show-all'
|
6
10
|
};
|
7
11
|
export var tokens = {
|
8
12
|
fontFamily: '--plasma-segment-item-font-family',
|
@@ -17,6 +21,9 @@ export var tokens = {
|
|
17
21
|
groupPilledBorderRadius: '--plasma-segment-group-pilled-border-radius',
|
18
22
|
groupWidth: '--plasma-segment-group-width',
|
19
23
|
groupHeight: '--plasma-segment-group-height',
|
24
|
+
groupVerticalHeight: '--plasma-segment-group-vertical-height',
|
25
|
+
groupArrowPadding: '--plasma-segment-group-arrow-padding',
|
26
|
+
groupVerticalArrowPadding: '--plasma-segment-group-vertical-arrow-padding',
|
20
27
|
groupBackgroundColor: '--plasma-segment-group-background-color',
|
21
28
|
groupFilledBackgroundColor: '--plasma-segment-group-filled-background-color',
|
22
29
|
itemBorderRadius: '--plasma-segment-item-border-radius',
|
@@ -25,13 +32,20 @@ export var tokens = {
|
|
25
32
|
itemHeight: '--plasma-segment-item-height',
|
26
33
|
itemPadding: '--plasma-segment-item-padding',
|
27
34
|
itemMarginLeft: '--plasma-segment-item-margin-left',
|
35
|
+
itemContentPadding: '--plasma-segment-item-content-padding',
|
36
|
+
itemIconMargin: '--plasma-segment-item-content-icon-margin',
|
28
37
|
itemColor: '--plasma-segment-item-color',
|
29
38
|
itemBackgroundColor: '--plasma-segment-item-background-color',
|
30
39
|
itemColorHover: '--plasma-segment-item-color-hover',
|
31
40
|
itemBackgroundColorHover: '--plasma-segment-item-background-color-hover',
|
41
|
+
itemAdditionalColor: '--plasma-segment-item-additional-color',
|
42
|
+
itemAdditionalColorHover: '--plasma-segment-item-additional-color-hover',
|
32
43
|
itemSelectedColor: '--plasma-segment-item-selected-color',
|
44
|
+
itemSelectedColorSecondary: '--plasma-segment-item-selected-color-secondary',
|
33
45
|
itemSelectedBackgroundColor: '--plasma-segment-item-selected-background-color',
|
34
46
|
itemSelectedColorHover: '--plasma-segment-item-selected-color-hover',
|
35
47
|
itemSelectedBackgroundColorHover: '--plasma-segment-item-selected-background-color-hover',
|
48
|
+
itemSelectedAdditionalColor: '--plasma-segment-item-selected-additional-color',
|
49
|
+
itemSelectedAdditionalColorHover: '--plasma-segment-item-selected-additional-color-hover',
|
36
50
|
disabledOpacity: '--plasma-segment-disabled-opacity'
|
37
51
|
};
|