react-toolbox/components/input
Javi Velasco 81acda7162 Migrate styles to PostCSS (#666)
* Add postcss-next postcss-include and reporter

* Add stylelint

* Add CSS colors

* Add CSS custom media queries

* Use dashes for CSS colors

* Add base CSS variables

* Remove AppBar SASS dependency from spec page

* Migrate AppBar style to PostCSS

* Migrate Avatar style to PostCSS

* Migrate Ripple style to PostCSS

* Remove unneeded media CSS import in Avatar

* Add shadows to CSS variables

* Migrate Button style to PostCSS

* Update webpack test config and linting from npm

* Migrate Input style to PostCSS

* Add missing input config variables for Dropdown and Autocomplete

* Migrate Chip style to PostCSS

* Migrate Autocomplete style to PostCSS

* Migrate Dropdown style to PostCSS

* Migrate animations to PostCSS

* Migrate Card style to PostCSS

* Migrate Checkbox style to PostCSS

* Migrate DataPicker style to PostCSS

* Migrate Dialog style to PostCSS

* Migrate Drawer style to PostCSS

* Add postcss-mixins and postcss-each

* Migrate Layout style to PostCSS

* Fix bug in button theme

* Bugfix in avatar css

* Add some missing nesting notations

* Migrate Link style to PostCSS

* Migrate List style to PostCSS

* Migrate Menu style to PostCSS

* Migrate Navigation style to PostCSS

* Migrate Overlay style to PostCSS

* Migrate ProgressBar style to PostCSS

* Migrate Radio style to PostCSS

* Migrate Slider style to PostCSS

* Migrate Snackbar style to PostCSS

* Migrate Switch style to PostCSS

* Migrate Table style to PostCSS

* Migrate Tabs style to PostCSS

* Migrate TimePicker to PostCSS

* Migrate Tooltip styles to PostCSS

* Update webpack config for testing and tests

* Migrate commons to PostCSS

* Remove sass from main project

* Bye from docs to sass

* Build with CSS

* Remove unneded deps for sass in docs subproject

* Fix tests

* use 4p shadow in AppBar as spec indicates

* Fixed typo in list/config.css

* Fix tests

* Fix linter errors

* Latest build

* Release 2.0.0-beta.0

* Remove sass lint

* fixes old sass var in css config

* Update linter

* New Table implementation

* Fix old sass var in list/config.css

See da0c47041e.

* Remove normalize.css from commons.css

* Update dependencies

* Latest build

* Input ready to accept visible hint

* Prepare slider and progress to be disabled

* Render Snackbar using Portal

* Refactor Dialog, Drawer and Overlay to be used in Layout

* Add inner layer to AppBar

* New layout

* Use Layout in spec

* Latest build

* remove layout playground example

* add smTablet and lgTablet to NavDrawer in Layout readme

* add default prop className to Layout, NavDrawer and Sidebar

* fix css linter errors in card and slider

* Typings for Table component

* Add missing Drawer identifier

* Update lib build

* Adds onQueryChange callback property to Autocomplete

The onQueryChange callback is called when the value of the query changes in Autocomplete.
It is called with the new query value.

* Fix #966

* Fix #965

* Fixes #976

* Updated css-related dependencies

Removed usages of `addDependencyTo` since it's deprecated and not needed anymore.
See https://github.com/postcss/postcss-import#adddependencyto

* Enabled HMR for styles by disabling extracting them to a CSS file

* Remove lib from repo

* Remove lib

* Fixes #1021

* Build using Gulp

* Export ThemeProvider from react-css-themr

* Add CHANGELOG to release command

* Release 2.0.0-beta.1

* Remove immutability helper

* Update dependencies

* Fix Tooltip trying to render after it's been unmounted

* Fixes #1038

* Release 2.0.0-beta.2

* Add ramda, refactor utils and remove slide animation modules

* Remove separate slide animations modules

* Remove box-sizing reset and body rule

* Remove commons.css

* Release 2.0.0-beta.4

* Update dependencies

* Fixes #1061

* More aggresive guard condition for multiple autocomplete

* Fix typeof check in isBrowser function

* Fixes an issue when specs are opened with browsers that do not support Object.entries().

* Import from ramda using the 'import XXX from "ramda/src/XXX"' pattern so that bundle sizes will be smaller for not including the whole ramda package.

* Fix #1032

* Fix tests

* Update yarn.lock

* Fixes #1064
2017-01-05 02:42:18 +01:00
..
Input.js refactor propTypes more descriptive 2016-12-14 11:42:24 +09:00
config.css Migrate styles to PostCSS (#666) 2017-01-05 02:42:18 +01:00
index.d.ts update typings to 1.3.3 2016-12-19 20:13:36 +01:00
index.js Migrate styles to PostCSS (#666) 2017-01-05 02:42:18 +01:00
readme.md refactor propTypes more descriptive 2016-12-14 11:42:24 +09:00
theme.css Migrate styles to PostCSS (#666) 2017-01-05 02:42:18 +01:00

readme.md

Input

Although we are calling them Inputs they actually correspond to Material Design Text fields. It allows a user to input text and it's the base for other components like the autocomplete.

import Input from 'react-toolbox/lib/input';

class InputTest extends React.Component {
  state = { name: '', phone: '', email: '', hint: '' };

  handleChange = (name, value) => {
    this.setState({...this.state, [name]: value});
  };

  render () {
    return (
      <section>
        <Input type='text' label='Name' name='name' value={this.state.name} onChange={this.handleChange.bind(this, 'name')} maxLength={16 } />
        <Input type='text' label='Disabled field' disabled />
        <Input type='email' label='Email address' icon='email' value={this.state.email} onChange={this.handleChange.bind(this, 'email')} />
        <Input type='tel' label='Phone' name='phone' icon='phone' value={this.state.phone} onChange={this.handleChange.bind(this, 'phone')} />
        <Input type='text' value={this.state.hint} label='Required Field' hint='With Hint' required onChange={this.handleChange.bind(this, 'hint')} icon={<span>J</span>} />
      </section>
    );
  }
}

If you want to provide a theme via context, the component key is RTInput.

Properties

Name Type Default Description
className String '' Sets a class name to give custom styles.
disabled Boolean false If true, component will be disabled.
error String or Node Give an error node to display under the field.
floating Boolean true Indicates if the label is floating in the input field or not.
hint String or Node '' The text string to use for hint text element.
icon String or Element Name of an icon to use as a label for the input.
label String or Node The text string to use for the floating label element.
maxLength Number Specifies the maximum number of characters allowed in the component.
multiline Boolean false If true, a textarea element will be rendered. The textarea also grows and shrinks according to the number of lines.
rows Number The number of rows the multiline input field has.
onBlur Function Callback function that is fired when component is blurred.
onChange Function Callback function that is fired when the component's value changes.
onFocus Function Callback function that is fired when component is focused.
onKeyPress Function Callback function that is fired when a key is pressed.
required Boolean false If true, the html input has a required attribute.
type String text Type of the input element. It can be a valid HTML5 input type
value Any Current value of the input element.

Theming

Name Description
bar Used for the bar under the input.
counter Used for the counter element.
disabled Added to the root class when input is disabled.
error Used for the text error.
errored Added to the root class when input is errored.
hidden Used when the input is hidden.
hint Used for the hint text.
icon Used for the icon in case the input has icon.
input Used as root class for the component.
inputElement Used for the HTML input element.
label Used for the label when the input has a label.
required Used in case the input is required.
withIcon Added to the root class if the input has icon.

Methods

The Input component has some imperative methods that are used as a bypass to the native rendered DOM element. To call this methods you will need to retrieve the instance of the component. Check the Install section for details on how to do this. The methods included for the Input are:

  • blur used to blur the input element.
  • focus used to focus the input element.