Skip to content

Commit 94affee

Browse files
committed
feat(segmented): add demos and fix disabled cursor on items
Add icon, disabled, and size demos. Fix cursor not showing not-allowed on individual items when the control is disabled.
1 parent 6c974e6 commit 94affee

5 files changed

Lines changed: 77 additions & 0 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<demo>
2+
3+
### Disabled
4+
5+
Disable the entire control or individual options.
6+
7+
```jsx live
8+
() => {
9+
return (
10+
<div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>
11+
<Segmented options={['Daily', 'Weekly', 'Monthly']} disabled />
12+
<Segmented
13+
options={[
14+
{ label: 'Active', value: 'active' },
15+
{ label: 'Disabled', value: 'disabled', disabled: true },
16+
{ label: 'Active', value: 'active2' },
17+
]}
18+
/>
19+
</div>
20+
);
21+
}
22+
```
23+
24+
</demo>

components/segmented/demo/icon.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<demo>
2+
3+
### With Icons
4+
5+
Add icons to segmented options using the `icon` property.
6+
7+
```jsx live
8+
() => {
9+
return (
10+
<Segmented
11+
options={[
12+
{ label: 'User', value: 'user', icon: <Icon name="user" /> },
13+
{ label: 'Star', value: 'star', icon: <Icon name="star" /> },
14+
{ label: 'Wifi', value: 'wifi', icon: <Icon name="wifi" /> },
15+
]}
16+
/>
17+
);
18+
}
19+
```
20+
21+
</demo>

components/segmented/demo/size.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<demo>
2+
3+
### Size
4+
5+
Three sizes: `sm`, `md`, and `lg`.
6+
7+
```jsx live
8+
() => {
9+
return (
10+
<div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>
11+
<Segmented options={['Small', 'Medium', 'Large']} size="sm" />
12+
<Segmented options={['Small', 'Medium', 'Large']} size="md" />
13+
<Segmented options={['Small', 'Medium', 'Large']} size="lg" />
14+
</div>
15+
);
16+
}
17+
```
18+
19+
</demo>

components/segmented/index.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import Basic from './demo/basic.md'
2+
import Disabled from './demo/disabled.md'
3+
import IconDemo from './demo/icon.md'
4+
import Size from './demo/size.md'
25

36
# Segmented
47

@@ -19,6 +22,11 @@ import { Segmented } from 'tiny-ui';
1922
<layout>
2023
<column>
2124
<Basic/>
25+
<IconDemo/>
26+
</column>
27+
<column>
28+
<Size/>
29+
<Disabled/>
2230
</column>
2331
</layout>
2432

components/segmented/style/_index.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@
2121
&_disabled {
2222
opacity: 0.5;
2323
cursor: not-allowed;
24+
25+
.#{$prefix}-segmented__item {
26+
cursor: not-allowed;
27+
pointer-events: none;
28+
}
2429
}
2530

2631
&_sm .#{$prefix}-segmented__item {

0 commit comments

Comments
 (0)