import {
  Meta,
  Story,
  Preview,
  Title,
  Subtitle,
  Description,
  Props,
} from '@storybook/addon-docs/blocks';
import { withKnobs } from '@storybook/addon-knobs';
import { Box, ThemeProvider } from '@material-ui/core';

import MuiTheme from '../../../theme/mui';

import { Flex } from '../../Flex';
import { Password } from '../';
import { PasswordInput } from './password.stories.js';

<Meta title='Material/Inputs' component={Password} decorators={[withKnobs]}/>

<Title>Password Input</Title>

<Description>
  Input de senhas dos aplicativos Eureca, extendido do `TextField` do `Material-UI`.
</Description>
<Description>
  Contém todas as props definidas no [Material-UI](https://material-ui.com/components/text-fields/#text-field) e tem estilo definido pelo tema desta biblioteca.
</Description>

<Preview>
  <Story name="Password Input">
    <PasswordInput />
  </Story>
</Preview>

<Subtitle>Props</Subtitle>

|   Nome  |            Descrição            |   Default   |
|:-------:|:-------------------------------:|:-----------:|
| name | Nome do input do Material-UI <br /> string | - |
| label | Label input do Material-UI <br /> string | - |
| helperText | Texto localizado na parte inferior do input do Material-UI <br /> string | - |
| value | Valor do input do Material-UI <br /> string \| number | - |
| onChange | Função de onChange do input do Material-UI <br /> func| - |
| props | Todas as props aceitas pelo TextField do Material-UI <br /> | - |

<Subtitle>Variações</Subtitle>

<Preview>
  <ThemeProvider theme={MuiTheme}>
    <Password 
      label='Small'
      size='small'
      onChange={() => {}}
    />
    <Box width={300} mt={3}>
      <Password 
        label='Largura definida'
        onChange={() => {}}
      />
    </Box>
  </ThemeProvider>
</Preview>

<Subtitle>Exemplo de Aplicação</Subtitle>

```jsx
<Password
  name='input-name'
  label="Label"
  value={value}
  variant={variant}
  onChange={handleChange}
  helperText='Helper text'
  disabled={isDisabled}
  error={hasError}
/>
```