@@ -34,6 +34,12 @@ export type IconType =
34
34
| 'save'
35
35
| 'search'
36
36
| 'settings'
37
+ | 'panel-left-close'
38
+ | 'panel-left-open'
39
+ | 'panel-right-close'
40
+ | 'panel-right-open'
41
+ | 'panel-bottom-open'
42
+ | 'panel-bottom-close'
37
43
| 'error'
38
44
| 'suspend'
39
45
| 'undo'
@@ -46,8 +52,10 @@ type Props = {
46
52
type : IconType ,
47
53
} ;
48
54
55
+ const materialIconsViewBox = '0 -960 960 960' ;
49
56
export default function ButtonIcon ( { className = '' , type} : Props ) : React . Node {
50
57
let pathData = null ;
58
+ let viewBox = '0 0 24 24' ;
51
59
switch ( type ) {
52
60
case 'add' :
53
61
pathData = PATH_ADD ;
@@ -121,6 +129,30 @@ export default function ButtonIcon({className = '', type}: Props): React.Node {
121
129
case 'error' :
122
130
pathData = PATH_ERROR ;
123
131
break ;
132
+ case 'panel-left-close' :
133
+ pathData = PATH_MATERIAL_PANEL_LEFT_CLOSE ;
134
+ viewBox = materialIconsViewBox ;
135
+ break ;
136
+ case 'panel-left-open' :
137
+ pathData = PATH_MATERIAL_PANEL_LEFT_OPEN ;
138
+ viewBox = materialIconsViewBox ;
139
+ break ;
140
+ case 'panel-right-close' :
141
+ pathData = PATH_MATERIAL_PANEL_RIGHT_CLOSE ;
142
+ viewBox = materialIconsViewBox ;
143
+ break ;
144
+ case 'panel-right-open' :
145
+ pathData = PATH_MATERIAL_PANEL_RIGHT_OPEN ;
146
+ viewBox = materialIconsViewBox ;
147
+ break ;
148
+ case 'panel-bottom-open' :
149
+ pathData = PATH_MATERIAL_PANEL_BOTTOM_OPEN ;
150
+ viewBox = materialIconsViewBox ;
151
+ break ;
152
+ case 'panel-bottom-close' :
153
+ pathData = PATH_MATERIAL_PANEL_BOTTOM_CLOSE ;
154
+ viewBox = materialIconsViewBox ;
155
+ break ;
124
156
case 'suspend' :
125
157
pathData = PATH_SUSPEND ;
126
158
break ;
@@ -147,7 +179,7 @@ export default function ButtonIcon({className = '', type}: Props): React.Node {
147
179
className = { `${ styles . ButtonIcon } ${ className } ` }
148
180
width = "24"
149
181
height = "24"
150
- viewBox = "0 0 24 24" >
182
+ viewBox = { viewBox } >
151
183
< path d = "M0 0h24v24H0z" fill = "none" />
152
184
{ typeof pathData === 'string' ? (
153
185
< path fill = "currentColor" d = { pathData } />
@@ -276,3 +308,33 @@ const PATH_VIEW_SOURCE = `
276
308
const PATH_EDITOR = `
277
309
M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17L6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z
278
310
` ;
311
+
312
+ // Source: Material Design Icons left_panel_close
313
+ const PATH_MATERIAL_PANEL_LEFT_CLOSE = `
314
+ M648-324v-312L480-480l168 156ZM211-144q-27.64 0-47.32-19.68T144-211v-538q0-27.64 19.68-47.32T211-816h538q27.64 0 47.32 19.68T816-749v538q0 27.64-19.68 47.32T749-144H211Zm125-72v-528H216v528h120Zm72 0h336v-528H408v528Zm-72 0H216h120Z
315
+ ` ;
316
+
317
+ // Source: Material Design Icons left_panel_open
318
+ const PATH_MATERIAL_PANEL_LEFT_OPEN = `
319
+ M504-595v230q0 12.25 10.5 16.62Q525-344 534-352l110-102q11-11.18 11-26.09T644-506L534-608q-8.82-8-19.41-3.5T504-595ZM211-144q-27.64 0-47.32-19.68T144-211v-538q0-27.64 19.68-47.32T211-816h538q27.64 0 47.32 19.68T816-749v538q0 27.64-19.68 47.32T749-144H211Zm125-72v-528H216v528h120Zm72 0h336v-528H408v528Zm-72 0H216h120Z
320
+ ` ;
321
+
322
+ // Source: Material Design Icons right_panel_close
323
+ const PATH_MATERIAL_PANEL_RIGHT_CLOSE = `
324
+ M312-365q0 12.25 10.5 16.62Q333-344 342-352l110-102q11-11.18 11-26.09T452-506L342-608q-8.82-8-19.41-3.5T312-595v230ZM211-144q-27.64 0-47.32-19.68T144-211v-538q0-27.64 19.68-47.32T211-816h538q27.64 0 47.32 19.68T816-749v538q0 27.64-19.68 47.32T749-144H211Zm413-72h120v-528H624v528Zm-72 0v-528H216v528h336Zm72 0h120-120Z
325
+ ` ;
326
+
327
+ // Source: Material Design Icons right_panel_open
328
+ const PATH_MATERIAL_PANEL_RIGHT_OPEN = `
329
+ M456-365v-230q0-12.25-10.5-16.63Q435-616 426-608L316-506q-11 11.18-11 26.09T316-454l110 102q8.82 8 19.41 3.5T456-365ZM211-144q-27.64 0-47.32-19.68T144-211v-538q0-27.64 19.68-47.32T211-816h538q27.64 0 47.32 19.68T816-749v538q0 27.64-19.68 47.32T749-144H211Zm413-72h120v-528H624v528Zm-72 0v-528H216v528h336Zm72 0h120-120Z
330
+ ` ;
331
+
332
+ // Source: Material Design Icons bottom_panel_open
333
+ const PATH_MATERIAL_PANEL_BOTTOM_OPEN = `
334
+ M365-504h230q12.25 0 16.63-10.5Q616-525 608-534L506-644q-11.18-11-26.09-11T454-644L352-534q-8 8.82-3.5 19.41T365-504ZM211-144q-27.64 0-47.32-19.68T144-211v-538q0-27.64 19.68-47.32T211-816h538q27.64 0 47.32 19.68T816-749v538q0 27.64-19.68 47.32T749-144H211Zm5-192v120h528v-120H216Zm0-72h528v-336H216v336Zm0 72v120-120Z
335
+ ` ;
336
+
337
+ // Source: Material Design Icons bottom_panel_close
338
+ const PATH_MATERIAL_PANEL_BOTTOM_CLOSE = `
339
+ m506-508 102-110q8-8.82 3.5-19.41T595-648H365q-12.25 0-16.62 10.5Q344-627 352-618l102 110q11.18 11 26.09 11T506-508Zm243-308q27.64 0 47.32 19.68T816-749v538q0 27.64-19.68 47.32T749-144H211q-27.64 0-47.32-19.68T144-211v-538q0-27.64 19.68-47.32T211-816h538ZM216-336v120h528v-120H216Zm528-72v-336H216v336h528Zm-528 72v120-120Z
340
+ ` ;
0 commit comments