@@ -15,9 +15,14 @@ import ElementLabel from '../../ElementLabel/ElementLabel';
15
15
16
16
export interface SegmentedToggleItemProps
17
17
extends Omit < ComponentPropsWithRef < 'input' > , 'size' > {
18
+ /** Text label for the item */
18
19
label : string ;
20
+ /** Value for the item */
19
21
value : string | number ;
22
+ /** Unique identifier for the item */
20
23
itemId : string ;
24
+ /** Optional count number displayed next to the label */
25
+ count ?: number ;
21
26
}
22
27
23
28
export interface SegmentedToggleProps {
@@ -120,10 +125,11 @@ const SegmentedToggleLabel = styled.label`
120
125
padding: var(--sscds-space-1x) var(--sscds-space-2x);
121
126
text-align: center;
122
127
transition: var(--sscds-action-transition);
128
+ cursor: pointer;
123
129
` ;
124
130
125
131
const Radio = styled . input `
126
- /* transform: translateX(-100%); */
132
+ transform: translateX(-100%);
127
133
position: absolute;
128
134
pointer-events: none;
129
135
opacity: 0;
@@ -164,7 +170,7 @@ const Radio = styled.input`
164
170
export const SegmentedToggleItem = forwardRef <
165
171
HTMLInputElement ,
166
172
SegmentedToggleItemProps
167
- > ( ( { label, value, itemId, ...props } , ref ) => {
173
+ > ( ( { label, value, itemId, count , ...props } , ref ) => {
168
174
const { name, disabled, onChange } = useContext ( ) ;
169
175
170
176
return (
@@ -180,9 +186,16 @@ export const SegmentedToggleItem = forwardRef<
180
186
onChange = { onChange }
181
187
/>
182
188
< SegmentedToggleLabel htmlFor = { itemId } >
183
- < ElementLabel color = { disabled ? 'disabled' : 'default' } >
184
- { label }
185
- </ ElementLabel >
189
+ < Inline gap = "1x" >
190
+ < ElementLabel color = { disabled ? 'disabled' : 'default' } >
191
+ { label }
192
+ </ ElementLabel >
193
+ { count && (
194
+ < ElementLabel color = { disabled ? 'disabled' : 'default' } isStrong >
195
+ { count }
196
+ </ ElementLabel >
197
+ ) }
198
+ </ Inline >
186
199
</ SegmentedToggleLabel >
187
200
</ SegmentedToggleItemRoot >
188
201
) ;
0 commit comments