Skip to content

Commit 929a878

Browse files
jhchill666levithomason
authored andcommitted
Button: update to v1 API (#295)
* feat(Button): update to v1 API * docs(Button): refactor to v1 structure * fix(Button): disallow children with shorthand props * fix(Button): fix tests and element type * test(Confirm): fix button tests * feat(Button): support labeled buttons * refactor(Button): use debug for debugging * docs(Button): fix active example * docs(Button): fix loading example * docs(Button): fix toggle example * feat(Button): add social colors * feat(ButtonGroup): add attached variation * docs(ButtonGroup): add attached variation * feat(ButtonGroup): begin group variation support * fix(Button): fix icon/label propTypes * test(Button): add common labeled test * feat(Button): finish docs and tests * fix(ButtonGroupBasicColoredExample): happy linter * feat(Button): add "animated" and "or" * refactor(Button): complete button TODOs
1 parent a147937 commit 929a878

File tree

100 files changed

+1651
-775
lines changed

Some content is hidden

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

100 files changed

+1651
-775
lines changed

.gitignore

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ node_modules/
33
bower_components/
44
coverage/
55
dist/
6-
docs/build
6+
docs/build/
77
docs/app/docgenInfo.json
8-
dll
8+
dll/
99

1010
.DS_Store
1111
.idea/

docs/app/Examples/collections/Form/Types/FormOnSubmitExample.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class FormOnSubmitExample extends Component {
5959
</Form.Group>
6060
<Form.TextArea name='details' label='Details' placeholder='Anything else we should know?' rows='3' />
6161
<Form.Checkbox name='terms' label='I agree to the Terms and Conditions' />
62-
<Button className='primary' type='submit'>Submit</Button>
62+
<Button primary type='submit'>Submit</Button>
6363

6464
<Message>
6565
<pre>serializedForm: {JSON.stringify(serializedForm, null, 2)}</pre>

docs/app/Examples/collections/Menu/Content/Buttons.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import React from 'react'
22
import { Button, Menu } from 'stardust'
33

4-
// TODO: Update <Button> usage after its update to v1 API
5-
64
const Buttons = () => {
75
return (
86
<Menu>
97
<Menu.Item>
10-
<Button className='primary'>Sign up</Button>
8+
<Button primary>Sign up</Button>
119
</Menu.Item>
1210

1311
<Menu.Item>

docs/app/Examples/collections/Menu/Variations/SizeHuge.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import React, { Component } from 'react'
22
import { Button, Dropdown, Menu } from 'stardust'
33

4-
// TODO: Update <Button> usage after its update to v1 API
5-
64
export default class SizeHuge extends Component {
75
state = { activeItem: 'home' }
86

@@ -26,7 +24,7 @@ export default class SizeHuge extends Component {
2624
</Dropdown>
2725

2826
<Menu.Item>
29-
<Button className='primary'>Sign Up</Button>
27+
<Button primary>Sign Up</Button>
3028
</Menu.Item>
3129
</Menu.Menu>
3230
</Menu>

docs/app/Examples/collections/Menu/Variations/SizeLarge.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import React, { Component } from 'react'
22
import { Button, Dropdown, Menu } from 'stardust'
33

4-
// TODO: Update <Button> usage after its update to v1 API
5-
64
export default class SizeLarge extends Component {
75
state = { activeItem: 'home' }
86

@@ -26,7 +24,7 @@ export default class SizeLarge extends Component {
2624
</Dropdown>
2725

2826
<Menu.Item>
29-
<Button className='primary'>Sign Up</Button>
27+
<Button primary>Sign Up</Button>
3028
</Menu.Item>
3129
</Menu.Menu>
3230
</Menu>

docs/app/Examples/collections/Menu/Variations/SizeMassive.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import React, { Component } from 'react'
22
import { Button, Dropdown, Menu } from 'stardust'
33

4-
// TODO: Update <Button> usage after its update to v1 API
5-
64
export default class SizeMassive extends Component {
75
state = { activeItem: 'home' }
86

@@ -26,7 +24,7 @@ export default class SizeMassive extends Component {
2624
</Dropdown>
2725

2826
<Menu.Item>
29-
<Button className='primary'>Sign Up</Button>
27+
<Button primary>Sign Up</Button>
3028
</Menu.Item>
3129
</Menu.Menu>
3230
</Menu>

docs/app/Examples/collections/Menu/Variations/SizeMini.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import React, { Component } from 'react'
22
import { Button, Dropdown, Menu } from 'stardust'
33

4-
// TODO: Update <Button> usage after its update to v1 API
5-
64
export default class SizeMini extends Component {
75
state = { activeItem: 'home' }
86

@@ -26,7 +24,7 @@ export default class SizeMini extends Component {
2624
</Dropdown>
2725

2826
<Menu.Item>
29-
<Button className='primary'>Sign Up</Button>
27+
<Button primary>Sign Up</Button>
3028
</Menu.Item>
3129
</Menu.Menu>
3230
</Menu>

docs/app/Examples/collections/Menu/Variations/SizeSmall.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import React, { Component } from 'react'
22
import { Button, Dropdown, Menu } from 'stardust'
33

4-
// TODO: Update <Button> usage after its update to v1 API
5-
64
export default class SizeSmall extends Component {
75
state = { activeItem: 'home' }
86

@@ -26,7 +24,7 @@ export default class SizeSmall extends Component {
2624
</Dropdown>
2725

2826
<Menu.Item>
29-
<Button className='primary'>Sign Up</Button>
27+
<Button primary>Sign Up</Button>
3028
</Menu.Item>
3129
</Menu.Menu>
3230
</Menu>

docs/app/Examples/collections/Menu/Variations/SizeTiny.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import React, { Component } from 'react'
22
import { Button, Dropdown, Menu } from 'stardust'
33

4-
// TODO: Update <Button> usage after its update to v1 API
5-
64
export default class SizeTiny extends Component {
75
state = { activeItem: 'home' }
86

@@ -26,7 +24,7 @@ export default class SizeTiny extends Component {
2624
</Dropdown>
2725

2826
<Menu.Item>
29-
<Button className='primary'>Sign Up</Button>
27+
<Button primary>Sign Up</Button>
3028
</Menu.Item>
3129
</Menu.Menu>
3230
</Menu>

docs/app/Examples/collections/Message/Variations/MessageAttachedExample.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import React from 'react'
22
import { Button, Checkbox, Form, Icon, Message } from 'stardust'
33

4-
// TODO update Button usage after they're updated to v1 API
5-
64
const MessageAttachedExample = () => (
75
<div>
86
<Message
@@ -18,7 +16,7 @@ const MessageAttachedExample = () => (
1816
<Form.Input label='Username' placeholder='Username' type='text' />
1917
<Form.Input label='Password' type='password' />
2018
<Form.Checkbox inline label='I agree to the terms and conditions' />
21-
<Button className='blue submit button'>Submit</Button>
19+
<Button color='blue'>Submit</Button>
2220
</Form>
2321
<Message attached='bottom' warning>
2422
<Icon name='help' />

docs/app/Examples/elements/Button/ButtonExamples.js

-20
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
import React, { Component } from 'react'
2-
import { Buttons, Button } from 'stardust'
1+
import React from 'react'
2+
import { Button } from 'stardust'
33

4-
export default class ButtonConditionalsExample extends Component {
5-
render() {
6-
return (
7-
<Buttons>
8-
<Button>Cancel</Button>
9-
<div className='or' />
10-
<Button className='positive'>Save</Button>
11-
</Buttons>
12-
)
13-
}
14-
}
4+
const ButtonConditionalsExample = () => (
5+
<Button.Group>
6+
<Button>Cancel</Button>
7+
<Button.Or />
8+
<Button positive>Save</Button>
9+
</Button.Group>
10+
)
11+
12+
export default ButtonConditionalsExample

docs/app/Examples/elements/Button/Content/ButtonContentExamples.js

-23
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import React from 'react'
2+
import { Button } from 'stardust'
3+
4+
const ButtonMultipleConditionalsExample = () => (
5+
<Button.Group>
6+
<Button>One</Button>
7+
<Button.Or />
8+
<Button>Two</Button>
9+
<Button.Or />
10+
<Button>Three</Button>
11+
</Button.Group>
12+
)
13+
14+
export default ButtonMultipleConditionalsExample
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import React from 'react'
2+
import ComponentExample from 'docs/app/Components/ComponentDoc/ComponentExample'
3+
import ExampleSection from 'docs/app/Components/ComponentDoc/ExampleSection'
4+
5+
const ButtonContentExamples = () => (
6+
<ExampleSection title='Content'>
7+
<ComponentExample
8+
title='Conditionals'
9+
description='Button groups can contain conditionals'
10+
examplePath='elements/Button/Content/ButtonConditionalsExample'
11+
/>
12+
<ComponentExample
13+
examplePath='elements/Button/Content/ButtonMultipleConditionalsExample'
14+
/>
15+
</ExampleSection>
16+
)
17+
18+
export default ButtonContentExamples
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import React from 'react'
2+
import { Button } from 'stardust'
3+
4+
const ButtonGroupBasicColoredExample = () => (
5+
<Button.Group>
6+
<Button basic color='red'>One</Button>
7+
<Button basic color='green'>Two</Button>
8+
<Button basic color='blue'>Three</Button>
9+
</Button.Group>
10+
)
11+
12+
export default ButtonGroupBasicColoredExample
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import React from 'react'
2+
import { Button, Divider } from 'stardust'
3+
4+
const ButtonGroupBasicExample = () => (
5+
<div>
6+
<Button.Group basic>
7+
<Button>One</Button>
8+
<Button>Two</Button>
9+
<Button>Three</Button>
10+
</Button.Group>
11+
<Divider />
12+
<Button.Group basic vertical>
13+
<Button>One</Button>
14+
<Button>Two</Button>
15+
<Button>Three</Button>
16+
</Button.Group>
17+
</div>
18+
)
19+
20+
export default ButtonGroupBasicExample
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import React from 'react'
2+
import { Button } from 'stardust'
3+
4+
const ButtonGroupColoredExample = () => (
5+
<Button.Group color='blue'>
6+
<Button>One</Button>
7+
<Button>Two</Button>
8+
<Button>Three</Button>
9+
</Button.Group>
10+
)
11+
12+
export default ButtonGroupColoredExample
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import React from 'react'
2+
import { Button, Divider } from 'stardust'
3+
4+
const ButtonGroupEqualWidthExample = () => (
5+
<div>
6+
<Button.Group widths='5'>
7+
<Button>Overview</Button>
8+
<Button>Specs</Button>
9+
<Button>Warranty</Button>
10+
<Button>Reviews</Button>
11+
<Button>Support</Button>
12+
</Button.Group>
13+
<Divider />
14+
<Button.Group widths='3'>
15+
<Button>Overview</Button>
16+
<Button>Specs</Button>
17+
<Button>Support</Button>
18+
</Button.Group>
19+
</div>
20+
)
21+
22+
export default ButtonGroupEqualWidthExample
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import React from 'react'
2+
import { Button, Icon } from 'stardust'
3+
4+
const ButtonGroupIconExample = () => (
5+
<Button.Group icon>
6+
<Button>
7+
<Icon name='play' />
8+
</Button>
9+
<Button>
10+
<Icon name='pause' />
11+
</Button>
12+
<Button>
13+
<Icon name='shuffle' />
14+
</Button>
15+
</Button.Group>
16+
)
17+
18+
export default ButtonGroupIconExample
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import React from 'react'
2+
import { Button } from 'stardust'
3+
4+
const ButtonGroupIconShorthandExample = () => (
5+
<Button.Group>
6+
<Button icon='play' />
7+
<Button icon='pause' />
8+
<Button icon='shuffle' />
9+
</Button.Group>
10+
)
11+
12+
export default ButtonGroupIconShorthandExample
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import React from 'react'
2+
import { Button } from 'stardust'
3+
4+
const ButtonGroupIconSizeExample = () => (
5+
<Button.Group basic size='small'>
6+
<Button icon='file' />
7+
<Button icon='save' />
8+
<Button icon='upload' />
9+
<Button icon='download' />
10+
</Button.Group>
11+
)
12+
13+
export default ButtonGroupIconSizeExample
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import React from 'react'
2+
import { Button } from 'stardust'
3+
4+
const ButtonGroupLabeledIconExample = () => (
5+
<Button.Group labeled>
6+
<Button icon='play' content='Play' />
7+
<Button icon='pause' content='Pause' />
8+
<Button icon='shuffle' content='Shuffle' />
9+
</Button.Group>
10+
)
11+
12+
export default ButtonGroupLabeledIconExample

0 commit comments

Comments
 (0)