Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
levithomason committed Aug 18, 2016
1 parent 15e04d2 commit a5a8ff6
Show file tree
Hide file tree
Showing 46 changed files with 978 additions and 173 deletions.
7 changes: 6 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -376,9 +376,14 @@ common.hasUIClassName()
common.hasSubComponents()
common.isTabbable()
common.rendersChildren()
common.implementsAlignedProp()
common.implementsColumnsProp()
common.implementsIconProp()
common.implementsImageProp()
common.implementsNumberToWordProp()
common.implementsTextAlignProp()
common.implementsVerticalAlignProp()
common.propKeyOnlyToClassName()
common.propValueOnlyToClassName()
common.propKeyAndValueToClassName()
Expand Down
32 changes: 32 additions & 0 deletions docs/app/Examples/collections/Form/Content/FormControlExample.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import React, { Component } from 'react'
import { Form } from 'stardust'

// TODO: update use Button once
const options = [{ text: 'Male', value: 'male' }, { text: 'Female', value: 'female' }]

class FormControlExample extends Component {
state = {}

handleRadioClick = (e, { value }) => this.setState({ value })

render() {
const { value } = this.state
return (
<Form>
<Form.Input label='A Form.Input' />
<Form.Dropdown label='A Form.Dropdown' options={options} />
<Form.Select label='A Form.Select' options={options} />
<Form.Checkbox label='I agree to the Terms and Conditions' />
<Form.Group>
<label>A <code>Form.Group</code> of <code>Form.Radio</code>s</label>
<Form.Radio label='Foo' name='radios' value='foo' checked={value === 'foo'} onClick={this.handleRadioClick} />
<Form.Radio label='Bar' name='radios' value='bar' checked={value === 'bar'} onClick={this.handleRadioClick} />
<Form.Radio label='Baz' name='radios' value='baz' checked={value === 'baz'} onClick={this.handleRadioClick} />
</Form.Group>
<Form.TextArea label='A Form.TextArea' />
</Form>
)
}
}

export default FormControlExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from 'react'
import { Form } from 'stardust'

const FormFieldHTMLControlExample = () => (
<Form>
<Form.Field control='input' label='An input' />
<Form.Field control='select' label='A select'>
<option value='male'>Male</option>
<option value='female'>Female</option>
</Form.Field>
<Form.Field control='textarea' label='A textarea' />
<Form.Field control='button' label='A button'>
HTML Button
</Form.Field>
</Form>
)

export default FormFieldHTMLControlExample
25 changes: 12 additions & 13 deletions docs/app/Examples/collections/Form/Content/FormFieldExample.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import React, { Component } from 'react'
import { Form, Input } from 'stardust'
import React from 'react'
import { Form } from 'stardust'

export default class FormFieldExample extends Component {
render() {
return (
<Form>
<Form.Field label='User Input'>
<Input placeholder='User Input' />
</Form.Field>
</Form>
)
}
}
const FormFieldExample = () => (
<Form>
<Form.Field>
<label>User Input</label>
<input />
</Form.Field>
</Form>
)

export default FormFieldExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import React, { Component } from 'react'
import { Form } from 'stardust'

const options = [{ text: 'Male', value: 'male' }, { text: 'Female', value: 'female' }]

export default class FormControlExample extends Component {
state = {}

handleRadioClick = (e, { value }) => this.setState({ value })

render() {
const { value } = this.state
return (
<Form>
<Form.Input label='A Form.Input' />
<Form.Dropdown label='A Form.Dropdown' options={options} />
<Form.Select label='A Form.Select' options={options} />
<Form.Checkbox label='I agree to the Terms and Conditions' />
<Form.Group>
<label>A <code>Form.Group</code> of <code>Form.Radio</code>s</label>
<Form.Radio label='Foo' name='radios' value='foo' checked={value === 'foo'} onClick={this.handleRadioClick} />
<Form.Radio label='Bar' name='radios' value='bar' checked={value === 'bar'} onClick={this.handleRadioClick} />
<Form.Radio label='Baz' name='radios' value='baz' checked={value === 'baz'} onClick={this.handleRadioClick} />
</Form.Group>
<Form.TextArea label='A Form.TextArea' />
</Form>
)
}
}

export default FormControlExample
45 changes: 45 additions & 0 deletions docs/app/Examples/collections/Form/Content/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,51 @@ export default class FormTypesExamples extends Component {
description='A field is a form element containing a label and an input.'
examplePath='collections/Form/Content/FormFieldExample'
/>
<ComponentExample
title='Field Control'
description='A field can define a control prop.'
examplePath='collections/Form/Content/FormFieldControlExample'
/>
<ComponentExample
description='A field control can be a plain HTML element'
examplePath='collections/Form/Content/FormFieldHTMLControlExample'
/>
{/* Component */}
<ComponentExample
description='A field control can be a Button'
examplePath='collections/Form/Content/FormFieldButtonControlExample'
/>
<ComponentExample
description='A field control can be a Checkbox'
examplePath='collections/Form/Content/FormFieldCheckboxControlExample'
/>
<ComponentExample
description='A field control can be a Form'
examplePath='collections/Form/Content/FormFieldFormControlExample'
/>
<ComponentExample
description='A field control can be a Input'
examplePath='collections/Form/Content/FormFieldInputControlExample'
/>
<ComponentExample
description='A field control can be a Radio'
examplePath='collections/Form/Content/FormFieldRadioControlExample'
/>
<ComponentExample
description='A field control can be a Select'
examplePath='collections/Form/Content/FormFieldSelectControlExample'
/>
<ComponentExample
description='A field control can be a TextArea'
examplePath='collections/Form/Content/FormFieldTextAreaControlExample'
/>
{/*
<ComponentExample
title='Field Input'
description='A field has an Input.'
examplePath='collections/Form/Content/FormFieldInputExample'
/>
*/}
</ExampleSection>
)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from 'react'
import { Form } from 'stardust'

const { Field } = Form

const FormControlButtonExample = () => (
<Form>
<Field control='input'></Field>
<Field control='input' />
<Field.Button />
<Field.Checkbox />
<Form.ButtonField label='A Form.Button'>
Form.Button
</Form.ButtonField>
</Form>
)

export default FormControlButtonExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import React from 'react'
import { Form } from 'stardust'

const FormControlCheckboxExample = () => (
<Form>
<Form.Checkbox label='I agree to the Terms and Conditions' />
</Form>
)

export default FormControlCheckboxExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import React from 'react'
import { Form } from 'stardust'

const FormControlInputExample = () => (
<Form>
<Form.Input label='A Form.Input' />
</Form>
)

export default FormControlInputExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import React, { Component } from 'react'
import { Form } from 'stardust'

class FormControlRadioExample extends Component {
state = {}

handleRadioClick = (e, { value }) => this.setState({ value })

render() {
return (
<Form>
<Form.Group className='grouped'>
<label>A <code>Form.Group</code> of <code>Form.Radio</code>s</label>
<Form.Radio
label='Foo'
name='formRadios'
value='foo'
checked={this.state.value === 'foo'}
onClick={this.handleRadioClick}
/>
<Form.Radio
label='Bar'
name='formRadios'
value='bar'
checked={this.state.value === 'bar'}
onClick={this.handleRadioClick}
/>
<Form.Radio
label='Baz'
name='formRadios'
value='baz'
checked={this.state.value === 'baz'}
onClick={this.handleRadioClick}
/>
</Form.Group>
</Form>
)
}
}

export default FormControlRadioExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import React from 'react'
import { Form } from 'stardust'

const options = [
{ text: 'Male', value: 'male' },
{ text: 'Female', value: 'female' },
]

const FormControlSelectExample = () => (
<Form>
<Form.Select label='A Form.Select' options={options} />
</Form>
)

export default FormControlSelectExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import React from 'react'
import { Form } from 'stardust'

const FormControlTextAreaExample = () => (
<Form>
<Form.TextArea label='A Form.TextArea' />
</Form>
)

export default FormControlTextAreaExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from 'react'
import { Button, Form } from 'stardust'

// TODO: update Button usage once Button is updated to v1 API

const FormFieldControlButtonExample = () => (
<Form>
<Form.Field control={Button} label='A Button'>
A Button
</Form.Field>
</Form>
)

export default FormFieldControlButtonExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import React from 'react'
import { Checkbox, Form } from 'stardust'

const FormFieldControlCheckboxExample = () => (
<Form>
<Form.Field control={Checkbox} label='I agree to the Terms and Conditions' />
</Form>
)

export default FormFieldControlCheckboxExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import React from 'react'
import { Input, Form } from 'stardust'

const FormFieldControlInputExample = () => (
<Form>
<Form.Field control={Input} label='A Input' />
</Form>
)

export default FormFieldControlInputExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import React, { Component } from 'react'
import { Form, Radio } from 'stardust'

class FormFieldControlRadioExample extends Component {
state = {}

handleRadioClick = (e, { value }) => this.setState({ value })

render() {
const { value } = this.state
return (
<Form>
<Form.Group>
<label>A <code>Form.Group</code> containing <code>Form.Radio</code>s</label>
<Form.Field
control={Radio}
label='Foo'
name='fieldControlRadios'
value='foo'
checked={value === 'foo'}
onClick={this.handleRadioClick}
/>
<Form.Field
control={Radio}
label='Bar'
name='fieldControlRadios'
value='bar'
checked={value === 'bar'}
onClick={this.handleRadioClick}
/>
<Form.Field
control={Radio}
label='Baz'
name='fieldControlRadios'
value='baz'
checked={value === 'baz'}
onClick={this.handleRadioClick}
/>
</Form.Group>
</Form>
)
}
}

export default FormFieldControlRadioExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import React from 'react'
import { Select, Form } from 'stardust'

const options = [
{ text: 'Male', value: 'male' },
{ text: 'Female', value: 'female' },
]

const FormFieldControlSelectExample = () => (
<Form>
<Form.Field control={Select} label='A Select' options={options} />
</Form>
)

export default FormFieldControlSelectExample
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import React from 'react'
import { TextArea, Form } from 'stardust'

const FormFieldControlTextAreaExample = () => (
<Form>
<Form.Field control={TextArea} label='A TextArea' />
</Form>
)

export default FormFieldControlTextAreaExample
Loading

0 comments on commit a5a8ff6

Please sign in to comment.