Skip to content

Commit 938bf38

Browse files
asynclizcopybara-github
authored andcommitted
feat(chips): add scrolling chip set example
PiperOrigin-RevId: 538832683
1 parent 2ef3606 commit 938bf38

File tree

2 files changed

+64
-37
lines changed

2 files changed

+64
-37
lines changed

chips/demo/demo.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const collection =
1717
new Knob('label', {defaultValue: '', ui: textInput()}),
1818
new Knob('elevated', {defaultValue: false, ui: boolInput()}),
1919
new Knob('disabled', {defaultValue: false, ui: boolInput()}),
20+
new Knob('scrolling', {defaultValue: false, ui: boolInput()}),
2021
]);
2122

2223
collection.addStories(...materialInitsToStoryInits(stories));

chips/demo/stories.ts

Lines changed: 63 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ import '@material/web/chips/input-chip.js';
1212
import '@material/web/chips/suggestion-chip.js';
1313

1414
import {MaterialStoryInit} from './material-collection.js';
15-
import {html, svg} from 'lit';
15+
import {css, html, svg} from 'lit';
16+
import {classMap} from 'lit/directives/class-map.js';
1617

1718
/** Knob types for chips stories. */
1819
export interface StoryKnobs {
1920
label: string;
2021
elevated: boolean;
2122
disabled: boolean;
23+
scrolling: boolean;
2224
}
2325

2426
const GOOGLE_LOGO = svg`
@@ -31,20 +33,32 @@ const GOOGLE_LOGO = svg`
3133
</svg>
3234
`;
3335

36+
const styles = css`
37+
md-chip-set.scrolling {
38+
flex-wrap: nowrap;
39+
max-width: 512px;
40+
overflow: scroll;
41+
/** Add room for focus ring. */
42+
padding: 8px;
43+
}
44+
`;
45+
3446
const standard: MaterialStoryInit<StoryKnobs> = {
3547
name: 'Assist chips',
36-
render({label, elevated, disabled}) {
48+
styles,
49+
render({label, elevated, disabled, scrolling}) {
50+
const classes = {scrolling};
3751
return html`
38-
<md-chip-set>
52+
<md-chip-set class=${classMap(classes)}>
3953
<md-assist-chip
4054
label=${label || 'Assist chip'}
41-
?disabled=${disabled ?? false}
42-
?elevated=${elevated ?? false}
55+
?disabled=${disabled}
56+
?elevated=${elevated}
4357
></md-assist-chip>
4458
<md-assist-chip
4559
label=${label || 'Assist chip with icon'}
46-
?disabled=${disabled ?? false}
47-
?elevated=${elevated ?? false}
60+
?disabled=${disabled}
61+
?elevated=${elevated}
4862
>
4963
<md-icon slot="icon" aria-hidden="true">local_laundry_service</md-icon>
5064
</md-assist-chip>
@@ -55,13 +69,15 @@ const standard: MaterialStoryInit<StoryKnobs> = {
5569

5670
const links: MaterialStoryInit<StoryKnobs> = {
5771
name: 'Assist link chips',
58-
render({label, elevated, disabled}) {
72+
styles,
73+
render({label, elevated, disabled, scrolling}) {
74+
const classes = {scrolling};
5975
return html`
60-
<md-chip-set>
76+
<md-chip-set class=${classMap(classes)}>
6177
<md-assist-chip
6278
label=${label || 'Assist link chip'}
63-
?disabled=${disabled ?? false}
64-
?elevated=${elevated ?? false}
79+
?disabled=${disabled}
80+
?elevated=${elevated}
6581
href="https://google.com"
6682
target="_blank"
6783
>${GOOGLE_LOGO}</md-assist-chip>
@@ -72,25 +88,27 @@ const links: MaterialStoryInit<StoryKnobs> = {
7288

7389
const filters: MaterialStoryInit<StoryKnobs> = {
7490
name: 'Filter chips',
75-
render({label, elevated, disabled}) {
91+
styles,
92+
render({label, elevated, disabled, scrolling}) {
93+
const classes = {scrolling};
7694
return html`
77-
<md-chip-set>
95+
<md-chip-set class=${classMap(classes)}>
7896
<md-filter-chip
7997
label=${label || 'Filter chip'}
80-
?disabled=${disabled ?? false}
81-
?elevated=${elevated ?? false}
98+
?disabled=${disabled}
99+
?elevated=${elevated}
82100
></md-filter-chip>
83101
<md-filter-chip
84102
label=${label || 'Filter chip with icon'}
85-
?disabled=${disabled ?? false}
86-
?elevated=${elevated ?? false}
103+
?disabled=${disabled}
104+
?elevated=${elevated}
87105
>
88106
<md-icon slot="icon" aria-hidden="true">local_laundry_service</md-icon>
89107
</md-filter-chip>
90108
<md-filter-chip
91109
label=${label || 'Removable filter chip'}
92110
?disabled=${disabled}
93-
?elevated=${elevated ?? false}
111+
?elevated=${elevated}
94112
removable
95113
></md-filter-chip>
96114
</md-chip-set>
@@ -100,29 +118,31 @@ const filters: MaterialStoryInit<StoryKnobs> = {
100118

101119
const inputs: MaterialStoryInit<StoryKnobs> = {
102120
name: 'Input chips',
103-
render({label, disabled}) {
121+
styles,
122+
render({label, disabled, scrolling}) {
123+
const classes = {scrolling};
104124
return html`
105-
<md-chip-set>
125+
<md-chip-set class=${classMap(classes)}>
106126
<md-input-chip
107127
label=${label || 'Input chip'}
108-
?disabled=${disabled ?? false}
128+
?disabled=${disabled}
109129
></md-input-chip>
110130
<md-input-chip
111131
label=${label || 'Input chip with icon'}
112-
?disabled=${disabled ?? false}
132+
?disabled=${disabled}
113133
>
114134
<md-icon slot="icon">local_laundry_service</md-icon>
115135
</md-input-chip>
116136
<md-input-chip
117137
label=${label || 'Input chip with avatar'}
118-
?disabled=${disabled ?? false}
138+
?disabled=${disabled}
119139
avatar
120140
>
121141
<img slot="icon" src="https://lh3.googleusercontent.com/a/default-user=s48">
122142
</md-input-chip>
123143
<md-input-chip
124144
label=${label || 'Remove-only input chip'}
125-
?disabled=${disabled ?? false}
145+
?disabled=${disabled}
126146
remove-only
127147
></md-input-chip>
128148
</md-chip-set>
@@ -132,12 +152,14 @@ const inputs: MaterialStoryInit<StoryKnobs> = {
132152

133153
const inputLinks: MaterialStoryInit<StoryKnobs> = {
134154
name: 'Input link chips',
135-
render({label, disabled}) {
155+
styles,
156+
render({label, disabled, scrolling}) {
157+
const classes = {scrolling};
136158
return html`
137-
<md-chip-set>
159+
<md-chip-set class=${classMap(classes)}>
138160
<md-input-chip
139161
label=${label || 'Input link chip'}
140-
?disabled=${disabled ?? false}
162+
?disabled=${disabled}
141163
href="https://google.com"
142164
target="_blank"
143165
>${GOOGLE_LOGO}</md-input-chip>
@@ -148,18 +170,20 @@ const inputLinks: MaterialStoryInit<StoryKnobs> = {
148170

149171
const suggestions: MaterialStoryInit<StoryKnobs> = {
150172
name: 'Suggestion chips',
151-
render({label, elevated, disabled}) {
173+
styles,
174+
render({label, elevated, disabled, scrolling}) {
175+
const classes = {scrolling};
152176
return html`
153-
<md-chip-set>
177+
<md-chip-set class=${classMap(classes)}>
154178
<md-suggestion-chip
155179
label=${label || 'Suggestion chip'}
156-
?disabled=${disabled ?? false}
157-
?elevated=${elevated ?? false}
180+
?disabled=${disabled}
181+
?elevated=${elevated}
158182
></md-suggestion-chip>
159183
<md-suggestion-chip
160184
label=${label || 'Suggestion chip with icon'}
161-
?disabled=${disabled ?? false}
162-
?elevated=${elevated ?? false}
185+
?disabled=${disabled}
186+
?elevated=${elevated}
163187
>
164188
<md-icon slot="icon" aria-hidden="true">local_laundry_service</md-icon>
165189
</md-suggestion-chip>
@@ -170,13 +194,15 @@ const suggestions: MaterialStoryInit<StoryKnobs> = {
170194

171195
const suggestionLinks: MaterialStoryInit<StoryKnobs> = {
172196
name: 'Suggestion link chips',
173-
render({label, elevated, disabled}) {
197+
styles,
198+
render({label, elevated, disabled, scrolling}) {
199+
const classes = {scrolling};
174200
return html`
175-
<md-chip-set>
201+
<md-chip-set class=${classMap(classes)}>
176202
<md-suggestion-chip
177203
label=${label || 'Suggestion link chip'}
178-
?disabled=${disabled ?? false}
179-
?elevated=${elevated ?? false}
204+
?disabled=${disabled}
205+
?elevated=${elevated}
180206
href="https://google.com"
181207
target="_blank"
182208
>${GOOGLE_LOGO}</md-suggestion-chip>

0 commit comments

Comments
 (0)