Skip to content

Commit 4f32ebb

Browse files
committed
feat: add more snippets, use options for variant props, make some props deletable
BREAKING CHANGE: I'm labeling this as a breaking change just because some of the snippets behave quite a bit differently now and I don't want it to be too much of a surprise to people.
1 parent 7ddb61b commit 4f32ebb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+408
-193
lines changed

README.md

Lines changed: 156 additions & 106 deletions
Large diffs are not rendered by default.

src/snip.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,21 @@ export interface CompiledSnippet {
99
parameters: Set<Parameter>
1010
}
1111

12-
export default function snip([body]: TemplateStringsArray): CompiledSnippet {
13-
body = body.replace(/\s+$/gm, '')
12+
export default function snip(
13+
strings: TemplateStringsArray,
14+
...expressions: any[]
15+
): CompiledSnippet {
16+
const parts = []
17+
for (let i = 0; i < strings.length - 1; i++) {
18+
parts.push(strings[i])
19+
parts.push(
20+
Array.isArray(expressions[i])
21+
? `|${expressions[i].join(',')}|`
22+
: String(expressions[i])
23+
)
24+
}
25+
parts.push(...strings.slice(expressions.length))
26+
const body = parts.join('').replace(/\s+$/gm, '')
1427

1528
const parameters: Set<Parameter> = new Set()
1629

src/snippets/mui-app-bar-menu.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import snip from '../snip'
2+
import { positions, colors } from './mui-app-bar'
23

34
export const description = 'Material-UI <AppBar> with menu icon'
45

56
export const body = snip`
6-
<AppBar position="\${#:static}">
7-
<Toolbar $#>
7+
<AppBar position="\${#${positions}}" color="\${#${colors}}">
8+
<Toolbar$#>
89
<IconButton edge="start" color="inherit" aria-label="menu">
910
<MenuIcon />
1011
</IconButton>
11-
<Typography variant="h6" $#>
12+
<Typography variant="h6"$#>
1213
$0
1314
</Typography>
1415
</Toolbar>

src/snippets/mui-app-bar.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
import snip from '../snip'
22

3+
export const colors = [
4+
'primary',
5+
'default',
6+
'inherit',
7+
'secondary',
8+
'transparent',
9+
]
10+
11+
export const positions = ['fixed', 'absolute', 'relative', 'static', 'sticky']
12+
313
export const description = 'Material-UI <AppBar>'
414

515
export const body = snip`
6-
<AppBar position="\${#:static}">
7-
<Toolbar $#>
8-
<Typography variant="h6" $#>
16+
<AppBar position="\${#${positions}}" color="\${#${colors}}">
17+
<Toolbar$#>
18+
<Typography variant="h6"$#>
919
$0
1020
</Typography>
1121
</Toolbar>

src/snippets/mui-bottom-navigation-action.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ import snip from '../snip'
33
export const description = 'Material-UI <BottomNavigationAction>'
44

55
export const body = snip`
6-
<BottomNavigationAction label="$#" value={$#} icon={$#} $0 />
6+
<BottomNavigationAction label="$#" value={$#} icon={$#}$0 />
77
`

src/snippets/mui-button-group-size.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import snip from '../snip'
2+
import { variants, colors, sizes } from './mui-button'
3+
4+
export const description = 'Material-UI <ButtonGroup> with size'
5+
export const body = snip`
6+
<ButtonGroup variant="\${#${variants}}" color="\${#${colors}}" size="\${#${sizes}}" aria-label="$#"$#>
7+
<Button>$#</Button>
8+
<Button>$#</Button>
9+
$0
10+
</ButtonGroup>
11+
`

src/snippets/mui-button-group-vertical.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import snip from '../snip'
2+
import { variants, colors } from './mui-button'
23

34
export const description = 'Material-UI vertical <ButtonGroup>'
45
export const body = snip`
5-
<ButtonGroup orientation="vertical" variant="\${#:outlined}" color="\${#:primary}" aria-label="$#" $#>
6+
<ButtonGroup orientation="vertical" variant="\${#${variants}}" color="\${#${colors}}" aria-label="$#"$#>
67
<Button>$#</Button>
78
<Button>$#</Button>
89
$0

src/snippets/mui-button-group.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import snip from '../snip'
2+
import { variants, colors } from './mui-button'
23

34
export const description = 'Material-UI <ButtonGroup>'
45
export const body = snip`
5-
<ButtonGroup variant="\${#:outlined}" color="\${#:primary}" aria-label="$#" $#>
6+
<ButtonGroup variant="\${#${variants}}" color="\${#${colors}}" aria-label="$#"$#>
67
<Button>$#</Button>
78
<Button>$#</Button>
89
$0

src/snippets/mui-button-size.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import snip from '../snip'
2+
import { variants, colors, sizes } from './mui-button'
3+
4+
export const description = 'Material-UI <Button> with size'
5+
export const body = snip`
6+
<Button variant="\${#${variants}}" color="\${#${colors}}" size="\${#${sizes}}"$#>
7+
$0
8+
</Button>
9+
`

src/snippets/mui-button-text.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import snip from '../snip'
2+
import { colors } from './mui-button'
23

34
export const description = 'Material-UI text <Button>'
45
export const body = snip`
5-
<Button color="\${#:primary}" $#>
6+
<Button color="\${#${colors}}"$#>
67
$0
78
</Button>
89
`

0 commit comments

Comments
 (0)