@react-ui-org/react-ui 0.52.1 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CODEOWNERS +23 -0
- package/README.md +10 -7
- package/dist/react-ui.css +5 -3
- package/dist/react-ui.js +1 -1
- package/package.json +64 -77
- package/src/{lib/components → components}/Alert/Alert.jsx +1 -1
- package/src/{lib/components/Alert/README.mdx → components/Alert/README.md} +84 -100
- package/src/{lib/components → components}/Badge/Badge.jsx +1 -1
- package/src/{lib/components → components}/Badge/Badge.scss +1 -1
- package/src/components/Badge/README.md +103 -0
- package/src/{lib/components → components}/Button/Button.jsx +1 -1
- package/src/components/Button/README.md +580 -0
- package/src/{lib/components → components}/ButtonGroup/ButtonGroup.jsx +11 -9
- package/src/{lib/components/ButtonGroup/README.mdx → components/ButtonGroup/README.md} +128 -134
- package/src/{lib/components → components}/Card/Card.jsx +1 -1
- package/src/components/Card/README.md +314 -0
- package/src/{lib/components/CheckboxField/README.mdx → components/CheckboxField/README.md} +96 -108
- package/src/{lib/components/FileInputField/README.mdx → components/FileInputField/README.md} +83 -95
- package/src/{lib/components → components}/FormLayout/FormLayout.jsx +4 -4
- package/src/components/FormLayout/README.md +462 -0
- package/src/{lib/components → components}/Grid/Grid.jsx +2 -2
- package/src/components/Grid/README.md +281 -0
- package/src/{lib/components → components}/InputGroup/InputGroup.jsx +20 -19
- package/src/{lib/components → components}/InputGroup/InputGroup.scss +0 -5
- package/src/{lib/components/InputGroup/README.mdx → components/InputGroup/README.md} +145 -163
- package/src/{lib/components → components}/Modal/Modal.jsx +6 -6
- package/src/components/Modal/README.md +1090 -0
- package/src/components/Modal/_hooks/useModalScrollPrevention.js +37 -0
- package/src/{lib/components/Paper/README.mdx → components/Paper/README.md} +18 -30
- package/src/{lib/components/Popover/README.mdx → components/Popover/README.md} +102 -132
- package/src/{lib/components/Radio/README.mdx → components/Radio/README.md} +122 -134
- package/src/{lib/components → components}/Radio/Radio.jsx +11 -12
- package/src/{lib/components → components}/Radio/Radio.scss +0 -5
- package/src/components/ScrollView/README.md +503 -0
- package/src/{lib/components → components}/ScrollView/ScrollView.jsx +12 -3
- package/src/components/SelectField/README.md +681 -0
- package/src/components/Table/README.md +259 -0
- package/src/{lib/components → components}/Table/Table.jsx +4 -1
- package/src/{lib/components → components}/Table/_components/TableHeaderCell/TableHeaderCell.jsx +1 -1
- package/src/{lib/components/Tabs/README.mdx → components/Tabs/README.md} +117 -134
- package/src/{lib/components → components}/Tabs/TabsItem.jsx +3 -3
- package/src/components/Text/README.md +220 -0
- package/src/components/TextArea/README.md +359 -0
- package/src/{lib/components/TextField/README.mdx → components/TextField/README.md} +336 -342
- package/src/{lib/components/TextLink/README.mdx → components/TextLink/README.md} +19 -31
- package/src/{lib/components/Toggle/README.mdx → components/Toggle/README.md} +98 -110
- package/src/components/Toolbar/README.md +359 -0
- package/src/{lib/components → components}/Toolbar/_helpers/getAlignClassName.js +12 -4
- package/src/components/_helpers/getRootPriorityClassName.js +15 -0
- package/src/{lib/index.js → index.js} +6 -0
- package/src/{lib/provider → provider}/RUIProvider.jsx +17 -11
- package/src/{lib/styles → styles}/tools/_caret.scss +1 -1
- package/src/{lib/styles → styles}/tools/form-fields/_box-field-elements.scss +1 -1
- package/src/{lib/styles → styles}/tools/form-fields/_inline-field-elements.scss +2 -2
- package/src/{lib/theme.scss → theme.scss} +4 -3
- package/CONTRIBUTING.md +0 -137
- package/dist/lib.development.js +0 -3179
- package/dist/lib.js +0 -1
- package/public/racom.svg +0 -11
- package/src/lib/components/Badge/README.mdx +0 -126
- package/src/lib/components/Button/README.mdx +0 -581
- package/src/lib/components/Card/README.mdx +0 -326
- package/src/lib/components/FormLayout/README.mdx +0 -501
- package/src/lib/components/Grid/README.mdx +0 -299
- package/src/lib/components/Modal/README.mdx +0 -1360
- package/src/lib/components/Modal/_hooks/useModalScrollPrevention.js +0 -35
- package/src/lib/components/ScrollView/README.mdx +0 -521
- package/src/lib/components/SelectField/README.mdx +0 -693
- package/src/lib/components/Table/README.mdx +0 -275
- package/src/lib/components/Text/README.mdx +0 -241
- package/src/lib/components/TextArea/README.mdx +0 -366
- package/src/lib/components/Toolbar/README.mdx +0 -386
- package/src/{lib/components → components}/Alert/Alert.scss +0 -0
- package/src/{lib/components → components}/Alert/_settings.scss +0 -0
- package/src/{lib/components → components}/Alert/_theme.scss +0 -0
- package/src/{lib/components → components}/Alert/_tools.scss +0 -0
- package/src/{lib/components → components}/Alert/index.js +0 -0
- package/src/{lib/components → components}/Badge/index.js +0 -0
- package/src/{lib/components → components}/Button/Button.scss +0 -0
- package/src/{lib/components → components}/Button/_base.scss +0 -0
- package/src/{lib/components → components}/Button/_priorities.scss +0 -0
- package/src/{lib/components → components}/Button/_settings.scss +0 -0
- package/src/{lib/components → components}/Button/_theme.scss +0 -0
- package/src/{lib/components → components}/Button/_tools.scss +0 -0
- package/src/{lib/components → components}/Button/helpers/getRootLabelVisibilityClassName.js +0 -0
- package/src/{lib/components/_helpers → components/Button/helpers}/getRootPriorityClassName.js +0 -0
- package/src/{lib/components → components}/Button/index.js +0 -0
- package/src/{lib/components → components}/ButtonGroup/ButtonGroup.scss +0 -0
- package/src/{lib/components → components}/ButtonGroup/ButtonGroupContext.js +0 -0
- package/src/{lib/components → components}/ButtonGroup/_theme.scss +0 -0
- package/src/{lib/components → components}/ButtonGroup/index.js +0 -0
- package/src/{lib/components → components}/Card/Card.scss +0 -0
- package/src/{lib/components → components}/Card/CardBody.jsx +0 -0
- package/src/{lib/components → components}/Card/CardFooter.jsx +0 -0
- package/src/{lib/components → components}/Card/_theme.scss +0 -0
- package/src/{lib/components → components}/Card/_tools.scss +0 -0
- package/src/{lib/components → components}/Card/index.js +0 -0
- package/src/{lib/components → components}/CheckboxField/CheckboxField.jsx +0 -0
- package/src/{lib/components → components}/CheckboxField/CheckboxField.scss +0 -0
- package/src/{lib/components → components}/CheckboxField/index.js +0 -0
- package/src/{lib/components → components}/FileInputField/FileInputField.jsx +0 -0
- package/src/{lib/components → components}/FileInputField/FileInputField.scss +0 -0
- package/src/{lib/components → components}/FileInputField/index.js +0 -0
- package/src/{lib/components → components}/FormLayout/FormLayout.scss +0 -0
- package/src/{lib/components → components}/FormLayout/FormLayoutContext.js +0 -0
- package/src/{lib/components → components}/FormLayout/FormLayoutCustomField.jsx +4 -4
- package/src/{lib/components → components}/FormLayout/FormLayoutCustomField.scss +0 -0
- package/src/{lib/components → components}/FormLayout/_theme.scss +0 -0
- package/src/{lib/components → components}/FormLayout/index.js +0 -0
- package/src/{lib/components → components}/Grid/Grid.scss +0 -0
- package/src/{lib/components → components}/Grid/GridSpan.jsx +0 -0
- package/src/{lib/components → components}/Grid/_helpers/generateResponsiveCustomProperties.js +0 -0
- package/src/{lib/components → components}/Grid/_settings.scss +0 -0
- package/src/{lib/components → components}/Grid/_tools.scss +0 -0
- package/src/{lib/components → components}/Grid/index.js +0 -0
- package/src/{lib/components → components}/InputGroup/InputGroupContext.js +0 -0
- package/src/{lib/components → components}/InputGroup/_theme.scss +0 -0
- package/src/{lib/components → components}/InputGroup/index.js +0 -0
- package/src/{lib/components → components}/Modal/Modal.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalBody.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalBody.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalCloseButton.jsx +1 -1
- package/src/{lib/components → components}/Modal/ModalCloseButton.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalContent.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalContent.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalFooter.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalFooter.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalHeader.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalHeader.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalTitle.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalTitle.scss +0 -0
- package/src/{lib/components → components}/Modal/_helpers/getJustifyClassName.js +0 -0
- package/src/{lib/components → components}/Modal/_helpers/getPositionClassName.js +0 -0
- package/src/{lib/components → components}/Modal/_helpers/getScrollingClassName.js +0 -0
- package/src/{lib/components → components}/Modal/_helpers/getSizeClassName.js +0 -0
- package/src/{lib/components → components}/Modal/_hooks/useModalFocus.js +0 -0
- package/src/{lib/components → components}/Modal/_settings.scss +0 -0
- package/src/{lib/components → components}/Modal/_theme.scss +0 -0
- package/src/{lib/components → components}/Modal/index.js +0 -0
- package/src/{lib/components → components}/Paper/Paper.jsx +0 -0
- package/src/{lib/components → components}/Paper/Paper.scss +0 -0
- package/src/{lib/components → components}/Paper/_theme.scss +0 -0
- package/src/{lib/components → components}/Paper/index.js +0 -0
- package/src/{lib/components → components}/Popover/Popover.jsx +0 -0
- package/src/{lib/components → components}/Popover/Popover.scss +0 -0
- package/src/{lib/components → components}/Popover/PopoverWrapper.jsx +0 -0
- package/src/{lib/components → components}/Popover/PopoverWrapper.scss +0 -0
- package/src/{lib/components → components}/Popover/_helpers/getRootAlignmentClassName.js +0 -0
- package/src/{lib/components → components}/Popover/_helpers/getRootSideClassName.js +0 -0
- package/src/{lib/components → components}/Popover/_theme.scss +0 -0
- package/src/{lib/components → components}/Popover/index.js +0 -0
- package/src/{lib/components → components}/Radio/index.js +0 -0
- package/src/{lib/components → components}/ScrollView/ScrollView.scss +0 -0
- package/src/{lib/components → components}/ScrollView/_helpers/getElementsPositionDifference.js +0 -0
- package/src/{lib/components → components}/ScrollView/_hooks/useLoadResizeHook.js +0 -0
- package/src/{lib/components → components}/ScrollView/_hooks/useScrollPositionHook.js +0 -0
- package/src/{lib/components → components}/ScrollView/index.js +0 -0
- package/src/{lib/components → components}/SelectField/SelectField.jsx +0 -0
- package/src/{lib/components → components}/SelectField/SelectField.scss +0 -0
- package/src/{lib/components → components}/SelectField/_components/Option/Option.jsx +0 -0
- package/src/{lib/components → components}/SelectField/_components/Option/index.js +0 -0
- package/src/{lib/components → components}/SelectField/index.js +0 -0
- package/src/{lib/components → components}/Table/Table.scss +0 -0
- package/src/{lib/components → components}/Table/_components/TableBodyCell/TableBodyCell.jsx +0 -0
- package/src/{lib/components → components}/Table/_components/TableBodyCell/index.js +0 -0
- package/src/{lib/components → components}/Table/_components/TableCell.scss +0 -0
- package/src/{lib/components → components}/Table/_components/TableHeaderCell/index.js +0 -0
- package/src/{lib/components → components}/Table/_settings.scss +0 -0
- package/src/{lib/components → components}/Table/index.js +0 -0
- package/src/{lib/components → components}/Tabs/Tabs.jsx +0 -0
- package/src/{lib/components → components}/Tabs/Tabs.scss +0 -0
- package/src/{lib/components → components}/Tabs/TabsItem.scss +0 -0
- package/src/{lib/components → components}/Tabs/_theme.scss +0 -0
- package/src/{lib/components → components}/Tabs/index.js +0 -0
- package/src/{lib/components → components}/Text/Text.jsx +0 -0
- package/src/{lib/components → components}/Text/Text.scss +0 -0
- package/src/{lib/components → components}/Text/_helpers/getRootClampClassName.js +0 -0
- package/src/{lib/components → components}/Text/_helpers/getRootHyphensClassName.js +0 -0
- package/src/{lib/components → components}/Text/_helpers/getRootWordWrappingClassName.js +0 -0
- package/src/{lib/components → components}/Text/index.js +0 -0
- package/src/{lib/components → components}/TextArea/TextArea.jsx +0 -0
- package/src/{lib/components → components}/TextArea/TextArea.scss +0 -0
- package/src/{lib/components → components}/TextArea/index.js +0 -0
- package/src/{lib/components → components}/TextField/TextField.jsx +0 -0
- package/src/{lib/components → components}/TextField/TextField.scss +0 -0
- package/src/{lib/components → components}/TextField/index.js +0 -0
- package/src/{lib/components → components}/TextLink/TextLink.jsx +1 -1
- /package/src/{lib/components → components}/TextLink/TextLink.scss +0 -0
- /package/src/{lib/components → components}/TextLink/_theme.scss +0 -0
- /package/src/{lib/components → components}/TextLink/index.js +0 -0
- /package/src/{lib/components → components}/Toggle/Toggle.jsx +0 -0
- /package/src/{lib/components → components}/Toggle/Toggle.scss +0 -0
- /package/src/{lib/components → components}/Toggle/index.js +0 -0
- /package/src/{lib/components → components}/Toolbar/Toolbar.jsx +0 -0
- /package/src/{lib/components → components}/Toolbar/Toolbar.scss +0 -0
- /package/src/{lib/components → components}/Toolbar/ToolbarGroup.jsx +0 -0
- /package/src/{lib/components → components}/Toolbar/ToolbarItem.jsx +0 -0
- /package/src/{lib/components → components}/Toolbar/_helpers/getJustifyClassName.js +0 -0
- /package/src/{lib/components → components}/Toolbar/_theme.scss +0 -0
- /package/src/{lib/components → components}/Toolbar/index.js +0 -0
- /package/src/{lib/components → components}/_helpers/getRootColorClassName.js +0 -0
- /package/src/{lib/components → components}/_helpers/getRootSizeClassName.js +0 -0
- /package/src/{lib/components → components}/_helpers/getRootValidationStateClassName.js +0 -0
- /package/src/{lib/components → components}/_helpers/isChildrenEmpty.js +0 -0
- /package/src/{lib/components → components}/_helpers/resolveContextOrProp.js +0 -0
- /package/src/{lib/components → components}/_helpers/transferProps.js +0 -0
- /package/src/{lib/foundation.scss → foundation.scss} +0 -0
- /package/src/{lib/helpers.scss → helpers.scss} +0 -0
- /package/src/{lib/provider → provider}/RUIContext.jsx +0 -0
- /package/src/{lib/provider → provider}/index.js +0 -0
- /package/src/{lib/provider → provider}/withGlobalProps.jsx +0 -0
- /package/src/{lib/styles → styles}/_utilities.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_code.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_links.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_lists.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_page.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_rulers.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_small.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_box-sizing.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_focus.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_forms.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_reset.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_shared.scss +0 -0
- /package/src/{lib/styles → styles}/helpers/_animation.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_animations.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_breakpoints.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_escaped-characters.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_form-fields.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_forms.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_utilities.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_z-indexes.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_accessibility.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_borders.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_code.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_form-fields.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_links.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_lists.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_page.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_spacing.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_typography.scss +0 -0
- /package/src/{lib/styles → styles}/theme-constants/_breakpoints.scss +0 -0
- /package/src/{lib/styles → styles}/theme-constants/_colors.scss +0 -0
- /package/src/{lib/styles → styles}/theme-constants/_svg.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_accessibility.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_breakpoint.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_colors.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_reset.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_scrollbar.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_spacing.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_string.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_svg.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_transition.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_utilities.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_box-field-layout.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_box-field-sizes.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_foundation.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_inline-field-layout.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_variants.scss +0 -0
- /package/src/{lib/translations → translations}/en.js +0 -0
- /package/src/{lib/utils → utils}/classNames.js +0 -0
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: TextField
|
|
3
|
-
menu: 'Inputs'
|
|
4
|
-
route: /components/text-field
|
|
5
|
-
---
|
|
6
|
-
|
|
7
1
|
# TextField
|
|
8
2
|
|
|
9
3
|
TextField allows users to input text information.
|
|
10
4
|
|
|
11
|
-
import {
|
|
12
|
-
Playground,
|
|
13
|
-
Props,
|
|
14
|
-
} from 'docz'
|
|
15
|
-
import { TextField } from '../..'
|
|
16
|
-
|
|
17
5
|
## Basic Usage
|
|
18
6
|
|
|
19
7
|
To implement the TextField component, you need to import it first:
|
|
@@ -24,9 +12,9 @@ import { TextField } from '@react-ui-org/react-ui';
|
|
|
24
12
|
|
|
25
13
|
And use it:
|
|
26
14
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
```docoff-react-preview
|
|
16
|
+
<TextField label="First name" />
|
|
17
|
+
```
|
|
30
18
|
|
|
31
19
|
See [API](#api) for all available options.
|
|
32
20
|
|
|
@@ -72,106 +60,106 @@ To satisfy the design requirements of your project, all input fields in React UI
|
|
|
72
60
|
come in **two design variants** to choose from: outline and filled. Both can be
|
|
73
61
|
further [customized](#theming) with CSS custom properties.
|
|
74
62
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
63
|
+
```docoff-react-preview
|
|
64
|
+
<TextField
|
|
65
|
+
label="First name"
|
|
66
|
+
/>
|
|
67
|
+
<TextField
|
|
68
|
+
label="First name"
|
|
69
|
+
variant="filled"
|
|
70
|
+
/>
|
|
71
|
+
```
|
|
84
72
|
|
|
85
73
|
## Sizes
|
|
86
74
|
|
|
87
75
|
Aside from the default (medium) size, two additional sizes are available: small
|
|
88
76
|
and large.
|
|
89
77
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
78
|
+
```docoff-react-preview
|
|
79
|
+
<TextField
|
|
80
|
+
label="First name"
|
|
81
|
+
size="small"
|
|
82
|
+
/>
|
|
83
|
+
<TextField
|
|
84
|
+
label="First name"
|
|
85
|
+
/>
|
|
86
|
+
<TextField
|
|
87
|
+
label="First name"
|
|
88
|
+
size="large"
|
|
89
|
+
/>
|
|
90
|
+
<TextField
|
|
91
|
+
label="First name"
|
|
92
|
+
size="small"
|
|
93
|
+
variant="filled"
|
|
94
|
+
/>
|
|
95
|
+
<TextField
|
|
96
|
+
label="First name"
|
|
97
|
+
variant="filled"
|
|
98
|
+
/>
|
|
99
|
+
<TextField
|
|
100
|
+
label="First name"
|
|
101
|
+
size="large"
|
|
102
|
+
variant="filled"
|
|
103
|
+
/>
|
|
104
|
+
```
|
|
117
105
|
|
|
118
106
|
Full-width fields span the full width of a parent:
|
|
119
107
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
108
|
+
```docoff-react-preview
|
|
109
|
+
<TextField
|
|
110
|
+
label="First name"
|
|
111
|
+
fullWidth
|
|
112
|
+
/>
|
|
113
|
+
<TextField
|
|
114
|
+
label="First name"
|
|
115
|
+
variant="filled"
|
|
116
|
+
fullWidth
|
|
117
|
+
/>
|
|
118
|
+
```
|
|
131
119
|
|
|
132
120
|
## Input Types
|
|
133
121
|
|
|
134
122
|
Aside from the common `text` type, there are also `email`, `number`, `password`,
|
|
135
123
|
and `tel` types at your disposal.
|
|
136
124
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
125
|
+
```docoff-react-preview
|
|
126
|
+
<TextField
|
|
127
|
+
label="Email"
|
|
128
|
+
type="email"
|
|
129
|
+
/>
|
|
130
|
+
<TextField
|
|
131
|
+
label="Email"
|
|
132
|
+
variant="filled"
|
|
133
|
+
type="email"
|
|
134
|
+
/>
|
|
135
|
+
<TextField
|
|
136
|
+
label="Age"
|
|
137
|
+
type="number"
|
|
138
|
+
/>
|
|
139
|
+
<TextField
|
|
140
|
+
label="Age"
|
|
141
|
+
variant="filled"
|
|
142
|
+
type="number"
|
|
143
|
+
/>
|
|
144
|
+
<TextField
|
|
145
|
+
label="Password"
|
|
146
|
+
type="password"
|
|
147
|
+
/>
|
|
148
|
+
<TextField
|
|
149
|
+
label="Password"
|
|
150
|
+
variant="filled"
|
|
151
|
+
type="password"
|
|
152
|
+
/>
|
|
153
|
+
<TextField
|
|
154
|
+
label="Phone"
|
|
155
|
+
type="tel"
|
|
156
|
+
/>
|
|
157
|
+
<TextField
|
|
158
|
+
label="Phone"
|
|
159
|
+
variant="filled"
|
|
160
|
+
type="tel"
|
|
161
|
+
/>
|
|
162
|
+
```
|
|
175
163
|
|
|
176
164
|
## Input Size
|
|
177
165
|
|
|
@@ -192,28 +180,28 @@ by `inputSize` API option) is
|
|
|
192
180
|
it suitable. Just keep in mind the `size` attribute will not be present in the
|
|
193
181
|
DOM for numeric inputs.
|
|
194
182
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
183
|
+
```docoff-react-preview
|
|
184
|
+
<TextField
|
|
185
|
+
inputSize={3}
|
|
186
|
+
label="Title"
|
|
187
|
+
/>
|
|
188
|
+
<TextField
|
|
189
|
+
inputSize={3}
|
|
190
|
+
label="Title"
|
|
191
|
+
variant="filled"
|
|
192
|
+
/>
|
|
193
|
+
<TextField
|
|
194
|
+
inputSize={3}
|
|
195
|
+
label="Age"
|
|
196
|
+
type="number"
|
|
197
|
+
/>
|
|
198
|
+
<TextField
|
|
199
|
+
inputSize={3}
|
|
200
|
+
label="Age"
|
|
201
|
+
type="number"
|
|
202
|
+
variant="filled"
|
|
203
|
+
/>
|
|
204
|
+
```
|
|
217
205
|
|
|
218
206
|
## Invisible Label
|
|
219
207
|
|
|
@@ -225,19 +213,19 @@ simple forms, it's dangerous to hide labels from users in most cases. Keep in
|
|
|
225
213
|
mind you should **provide another visual clue** so users know what to fill into
|
|
226
214
|
the input.
|
|
227
215
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
216
|
+
```docoff-react-preview
|
|
217
|
+
<TextField
|
|
218
|
+
label="User name"
|
|
219
|
+
isLabelVisible={false}
|
|
220
|
+
placeholder="Eg. john@example.com"
|
|
221
|
+
/>
|
|
222
|
+
<TextField
|
|
223
|
+
label="User name"
|
|
224
|
+
isLabelVisible={false}
|
|
225
|
+
variant="filled"
|
|
226
|
+
placeholder="Eg. john@example.com"
|
|
227
|
+
/>
|
|
228
|
+
```
|
|
241
229
|
|
|
242
230
|
## Horizontal Layout
|
|
243
231
|
|
|
@@ -245,135 +233,135 @@ The default vertical layout is very easy to use and work with. However, there
|
|
|
245
233
|
are situations where horizontal layout suits better — and that's why React UI
|
|
246
234
|
supports this kind of layout as well.
|
|
247
235
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
236
|
+
```docoff-react-preview
|
|
237
|
+
<TextField
|
|
238
|
+
inputSize={3}
|
|
239
|
+
label="Title"
|
|
240
|
+
layout="horizontal"
|
|
241
|
+
/>
|
|
242
|
+
<TextField
|
|
243
|
+
inputSize={3}
|
|
244
|
+
label="Title"
|
|
245
|
+
layout="horizontal"
|
|
246
|
+
variant="filled"
|
|
247
|
+
/>
|
|
248
|
+
<TextField
|
|
249
|
+
label="First name"
|
|
250
|
+
layout="horizontal"
|
|
251
|
+
/>
|
|
252
|
+
<TextField
|
|
253
|
+
label="First name"
|
|
254
|
+
layout="horizontal"
|
|
255
|
+
variant="filled"
|
|
256
|
+
/>
|
|
257
|
+
<TextField
|
|
258
|
+
label="First name"
|
|
259
|
+
layout="horizontal"
|
|
260
|
+
fullWidth
|
|
261
|
+
/>
|
|
262
|
+
<TextField
|
|
263
|
+
label="First name"
|
|
264
|
+
layout="horizontal"
|
|
265
|
+
variant="filled"
|
|
266
|
+
fullWidth
|
|
267
|
+
/>
|
|
268
|
+
<TextField
|
|
269
|
+
isLabelVisible={false}
|
|
270
|
+
label="First name"
|
|
271
|
+
layout="horizontal"
|
|
272
|
+
placeholder="First name"
|
|
273
|
+
fullWidth
|
|
274
|
+
/>
|
|
275
|
+
<TextField
|
|
276
|
+
isLabelVisible={false}
|
|
277
|
+
label="First name"
|
|
278
|
+
layout="horizontal"
|
|
279
|
+
placeholder="First name"
|
|
280
|
+
variant="filled"
|
|
281
|
+
fullWidth
|
|
282
|
+
/>
|
|
283
|
+
```
|
|
296
284
|
|
|
297
285
|
## Help Text
|
|
298
286
|
|
|
299
287
|
You may provide an additional help text to clarify how the input should be
|
|
300
288
|
filled.
|
|
301
289
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
290
|
+
```docoff-react-preview
|
|
291
|
+
<TextField
|
|
292
|
+
label="First name"
|
|
293
|
+
helpText="Choose one or more kinds of fruit to feel happy."
|
|
294
|
+
/>
|
|
295
|
+
<TextField
|
|
296
|
+
label="First name"
|
|
297
|
+
variant="filled"
|
|
298
|
+
helpText="Choose one or more kinds of fruit to feel happy."
|
|
299
|
+
/>
|
|
300
|
+
<TextField
|
|
301
|
+
label="First name"
|
|
302
|
+
layout="horizontal"
|
|
303
|
+
helpText="Choose one or more kinds of fruit to feel happy."
|
|
304
|
+
/>
|
|
305
|
+
<TextField
|
|
306
|
+
label="First name"
|
|
307
|
+
layout="horizontal"
|
|
308
|
+
helpText="Choose one or more kinds of fruit to feel happy."
|
|
309
|
+
variant="filled"
|
|
310
|
+
/>
|
|
311
|
+
<TextField
|
|
312
|
+
label="First name"
|
|
313
|
+
layout="horizontal"
|
|
314
|
+
helpText="Choose one or more kinds of fruit to feel happy."
|
|
315
|
+
fullWidth
|
|
316
|
+
/>
|
|
317
|
+
<TextField
|
|
318
|
+
label="First name"
|
|
319
|
+
layout="horizontal"
|
|
320
|
+
variant="filled"
|
|
321
|
+
helpText="Choose one or more kinds of fruit to feel happy."
|
|
322
|
+
fullWidth
|
|
323
|
+
/>
|
|
324
|
+
```
|
|
337
325
|
|
|
338
326
|
Keep in mind that **long help texts don't play well with small input sizes,**
|
|
339
327
|
especially in vertical layout. To fix this at least for horizontal layout, help
|
|
340
328
|
text expands over the full field width when the desired input width (based on
|
|
341
329
|
`inputSize` option) is 10 characters or smaller.
|
|
342
330
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
331
|
+
```docoff-react-preview
|
|
332
|
+
<TextField
|
|
333
|
+
inputSize={3}
|
|
334
|
+
label="Title"
|
|
335
|
+
layout="horizontal"
|
|
336
|
+
helpText="What academic degree do you hold?"
|
|
337
|
+
/>
|
|
338
|
+
<TextField
|
|
339
|
+
inputSize={3}
|
|
340
|
+
label="Title"
|
|
341
|
+
layout="horizontal"
|
|
342
|
+
variant="filled"
|
|
343
|
+
helpText="What academic degree do you hold?"
|
|
344
|
+
/>
|
|
345
|
+
<TextField
|
|
346
|
+
label="Age"
|
|
347
|
+
layout="horizontal"
|
|
348
|
+
min={13}
|
|
349
|
+
max={120}
|
|
350
|
+
inputSize={3}
|
|
351
|
+
type="number"
|
|
352
|
+
helpText="How old do you see yourself?"
|
|
353
|
+
/>
|
|
354
|
+
<TextField
|
|
355
|
+
label="Age"
|
|
356
|
+
layout="horizontal"
|
|
357
|
+
min={13}
|
|
358
|
+
max={120}
|
|
359
|
+
inputSize={3}
|
|
360
|
+
variant="filled"
|
|
361
|
+
type="number"
|
|
362
|
+
helpText="How old do you see yourself?"
|
|
363
|
+
/>
|
|
364
|
+
```
|
|
377
365
|
|
|
378
366
|
## States
|
|
379
367
|
|
|
@@ -384,69 +372,75 @@ should always **provide a validation message for states other than valid** so
|
|
|
384
372
|
users know what happened and what action they should take or what options they
|
|
385
373
|
have.
|
|
386
374
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
375
|
+
```docoff-react-preview
|
|
376
|
+
<TextField
|
|
377
|
+
label="User name"
|
|
378
|
+
onChange={() => {}}
|
|
379
|
+
validationState="valid"
|
|
380
|
+
validationText="Looks good!"
|
|
381
|
+
value="johnny1986"
|
|
382
|
+
required
|
|
383
|
+
/>
|
|
384
|
+
<TextField
|
|
385
|
+
label="User name"
|
|
386
|
+
onChange={() => {}}
|
|
387
|
+
validationState="warning"
|
|
388
|
+
validationText="Account with this name already exists, pick a different one."
|
|
389
|
+
value="joe"
|
|
390
|
+
required
|
|
391
|
+
/>
|
|
392
|
+
<TextField
|
|
393
|
+
label="User name"
|
|
394
|
+
validationState="invalid"
|
|
395
|
+
validationText="Please enter a user name of your choice."
|
|
396
|
+
required
|
|
397
|
+
/>
|
|
398
|
+
<TextField
|
|
399
|
+
label="User name"
|
|
400
|
+
onChange={() => {}}
|
|
401
|
+
validationState="valid"
|
|
402
|
+
validationText="Looks good!"
|
|
403
|
+
variant="filled"
|
|
404
|
+
value="johnny1986"
|
|
405
|
+
required
|
|
406
|
+
/>
|
|
407
|
+
<TextField
|
|
408
|
+
label="User name"
|
|
409
|
+
onChange={() => {}}
|
|
410
|
+
validationState="warning"
|
|
411
|
+
validationText="Account with this name already exists, pick a different one."
|
|
412
|
+
variant="filled"
|
|
413
|
+
value="joe"
|
|
414
|
+
required
|
|
415
|
+
/>
|
|
416
|
+
<TextField
|
|
417
|
+
label="User name"
|
|
418
|
+
validationState="invalid"
|
|
419
|
+
validationText="Please enter a user name of your choice."
|
|
420
|
+
variant="filled"
|
|
421
|
+
required
|
|
422
|
+
/>
|
|
423
|
+
```
|
|
432
424
|
|
|
433
425
|
### Disabled State
|
|
434
426
|
|
|
435
427
|
It's possible to disable the whole input.
|
|
436
428
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
429
|
+
```docoff-react-preview
|
|
430
|
+
<TextField
|
|
431
|
+
label="First name"
|
|
432
|
+
onChange={() => {}}
|
|
433
|
+
value="John"
|
|
434
|
+
disabled
|
|
435
|
+
/>
|
|
436
|
+
<TextField
|
|
437
|
+
label="First name"
|
|
438
|
+
onChange={() => {}}
|
|
439
|
+
variant="filled"
|
|
440
|
+
value="John"
|
|
441
|
+
disabled
|
|
442
|
+
/>
|
|
443
|
+
```
|
|
450
444
|
|
|
451
445
|
## Forwarding HTML Attributes
|
|
452
446
|
|
|
@@ -456,36 +450,36 @@ you like.** All attributes that don't interfere with the API are forwarded to
|
|
|
456
450
|
the native HTML `<input>`. This enables making the component interactive and
|
|
457
451
|
helps to improve its accessibility.
|
|
458
452
|
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
453
|
+
```docoff-react-preview
|
|
454
|
+
<TextField
|
|
455
|
+
label="Address"
|
|
456
|
+
autoComplete="street-address"
|
|
457
|
+
minLength={3}
|
|
458
|
+
maxLength={80}
|
|
459
|
+
/>
|
|
460
|
+
<TextField
|
|
461
|
+
label="Address"
|
|
462
|
+
variant="filled"
|
|
463
|
+
autoComplete="street-address"
|
|
464
|
+
minLength={3}
|
|
465
|
+
maxLength={80}
|
|
466
|
+
/>
|
|
467
|
+
<TextField
|
|
468
|
+
inputSize={3}
|
|
469
|
+
min={13}
|
|
470
|
+
max={120}
|
|
471
|
+
label="Age"
|
|
472
|
+
type="number"
|
|
473
|
+
/>
|
|
474
|
+
<TextField
|
|
475
|
+
inputSize={3}
|
|
476
|
+
min={13}
|
|
477
|
+
max={120}
|
|
478
|
+
label="Age"
|
|
479
|
+
type="number"
|
|
480
|
+
variant="filled"
|
|
481
|
+
/>
|
|
482
|
+
```
|
|
489
483
|
|
|
490
484
|
👉 Refer to the MDN reference for the full list of supported attributes of the
|
|
491
485
|
[text][input-text], [email][input-email], [number][input-number],
|
|
@@ -497,7 +491,7 @@ If you provide [ref], it is forwarded to the native HTML `<input>` element.
|
|
|
497
491
|
|
|
498
492
|
## API
|
|
499
493
|
|
|
500
|
-
<
|
|
494
|
+
<docoff-react-props src="/components/TextField/TextField.jsx"></docoff-react-props>
|
|
501
495
|
|
|
502
496
|
## Theming
|
|
503
497
|
|
|
@@ -513,6 +507,6 @@ Head to [Forms Theming][theming-forms] to see shared form theming options.
|
|
|
513
507
|
[input-number]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#additional_attributes
|
|
514
508
|
[input-tel]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/tel#additional_attributes
|
|
515
509
|
[input-password]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password#additional_attributes
|
|
516
|
-
[theming-forms]: /customize/theming/forms
|
|
510
|
+
[theming-forms]: /docs/customize/theming/forms
|
|
517
511
|
[React synthetic events]: https://reactjs.org/docs/events.html
|
|
518
512
|
[ref]: https://reactjs.org/docs/refs-and-the-dom.html
|