@react-ui-org/react-ui 0.52.1 → 0.54.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/README.md +10 -7
- package/dist/react-ui.css +5 -3
- package/dist/react-ui.development.css +11302 -0
- package/dist/react-ui.development.js +1588 -0
- package/dist/react-ui.js +1 -1
- package/package.json +66 -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 +28 -19
- package/src/{lib/components → components}/InputGroup/InputGroup.scss +4 -5
- package/src/{lib/components/InputGroup/README.mdx → components/InputGroup/README.md} +162 -165
- 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,25 +1,7 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: InputGroup
|
|
3
|
-
menu: 'Layouts'
|
|
4
|
-
route: /components/input-group
|
|
5
|
-
---
|
|
6
|
-
|
|
7
1
|
# InputGroup
|
|
8
2
|
|
|
9
3
|
InputGroup visually groups related form fields and actions together.
|
|
10
4
|
|
|
11
|
-
import {
|
|
12
|
-
Playground,
|
|
13
|
-
Props,
|
|
14
|
-
} from 'docz'
|
|
15
|
-
import Icon from '../../../docs/_components/Icon'
|
|
16
|
-
import {
|
|
17
|
-
Button,
|
|
18
|
-
InputGroup,
|
|
19
|
-
SelectField,
|
|
20
|
-
TextField,
|
|
21
|
-
} from '../..'
|
|
22
|
-
|
|
23
5
|
## Basic Usage
|
|
24
6
|
|
|
25
7
|
To implement the InputGroup component, you need to import it first:
|
|
@@ -30,40 +12,40 @@ import { InputGroup } from '@react-ui-org/react-ui';
|
|
|
30
12
|
|
|
31
13
|
And use it:
|
|
32
14
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
15
|
+
```docoff-react-preview
|
|
16
|
+
React.createElement(() => {
|
|
17
|
+
const [fruit, setFruit] = React.useState('apple');
|
|
18
|
+
const options = [
|
|
19
|
+
{
|
|
20
|
+
label: 'Apple',
|
|
21
|
+
value: 'apple',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
label: 'Pear',
|
|
25
|
+
value: 'pear',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
label: 'Cherry',
|
|
29
|
+
value: 'cherry',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
return (
|
|
33
|
+
<InputGroup label="Your favourite fruit">
|
|
34
|
+
<SelectField
|
|
35
|
+
label="Your favourite fruit"
|
|
36
|
+
onChange={(e) => setFruit(e.target.value)}
|
|
37
|
+
options={options}
|
|
38
|
+
value={fruit}
|
|
39
|
+
/>
|
|
40
|
+
<TextField
|
|
41
|
+
label="Variety"
|
|
42
|
+
placeholder="Eg. Golden delicious"
|
|
43
|
+
/>
|
|
44
|
+
<Button label="Submit" />
|
|
45
|
+
</InputGroup>
|
|
46
|
+
);
|
|
47
|
+
})
|
|
48
|
+
```
|
|
67
49
|
|
|
68
50
|
See [API](#api) for all available options.
|
|
69
51
|
|
|
@@ -83,11 +65,11 @@ See [API](#api) for all available options.
|
|
|
83
65
|
group with a form outside. Consult [the MDN docs][fieldset] to learn more.
|
|
84
66
|
|
|
85
67
|
- InputGroup currently **supports grouping of**
|
|
86
|
-
[TextField](/components/
|
|
87
|
-
and [Button](/components/
|
|
68
|
+
[TextField](/components/TextField), [SelectField](/components/SelectField),
|
|
69
|
+
and [Button](/components/Button) components.
|
|
88
70
|
|
|
89
|
-
- To group [Buttons](/components/
|
|
90
|
-
[ButtonGroup](/components/
|
|
71
|
+
- To group [Buttons](/components/Button) only, use the
|
|
72
|
+
[ButtonGroup](/components/ButtonGroup) component which is designed
|
|
91
73
|
specifically for that purpose.
|
|
92
74
|
|
|
93
75
|
## Sizes
|
|
@@ -95,26 +77,26 @@ See [API](#api) for all available options.
|
|
|
95
77
|
All existing field and button sizes are also available on the input group level:
|
|
96
78
|
small, medium, and large.
|
|
97
79
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
80
|
+
```docoff-react-preview
|
|
81
|
+
<InputGroup
|
|
82
|
+
label="Small size"
|
|
83
|
+
size="small"
|
|
84
|
+
>
|
|
85
|
+
<TextField label="Input" />
|
|
86
|
+
<Button label="Submit" />
|
|
87
|
+
</InputGroup>
|
|
88
|
+
<InputGroup label="Medium size">
|
|
89
|
+
<TextField label="Input" />
|
|
90
|
+
<Button label="Submit" />
|
|
91
|
+
</InputGroup>
|
|
92
|
+
<InputGroup
|
|
93
|
+
label="Large size"
|
|
94
|
+
size="large"
|
|
95
|
+
>
|
|
96
|
+
<TextField label="Input" />
|
|
97
|
+
<Button label="Submit" />
|
|
98
|
+
</InputGroup>
|
|
99
|
+
```
|
|
118
100
|
|
|
119
101
|
### Shared Property
|
|
120
102
|
|
|
@@ -135,22 +117,22 @@ simple forms, it's dangerous to hide labels from users in most cases. Keep in
|
|
|
135
117
|
mind you should **provide another visual clue** so users know what to fill into
|
|
136
118
|
the input.
|
|
137
119
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
120
|
+
```docoff-react-preview
|
|
121
|
+
<InputGroup
|
|
122
|
+
isLabelVisible={false}
|
|
123
|
+
label="First and last name"
|
|
124
|
+
>
|
|
125
|
+
<TextField
|
|
126
|
+
label="First name"
|
|
127
|
+
placeholder="Eg. John"
|
|
128
|
+
/>
|
|
129
|
+
<TextField
|
|
130
|
+
label="Last name"
|
|
131
|
+
placeholder="Eg. Doe"
|
|
132
|
+
/>
|
|
133
|
+
<Button label="Submit" />
|
|
134
|
+
</InputGroup>
|
|
135
|
+
```
|
|
154
136
|
|
|
155
137
|
## Horizontal layout
|
|
156
138
|
|
|
@@ -158,15 +140,15 @@ The default vertical layout is very easy to use and work with. However, there
|
|
|
158
140
|
are situations where horizontal layout suits better — and that's why React UI
|
|
159
141
|
supports this kind of layout as well.
|
|
160
142
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
143
|
+
```docoff-react-preview
|
|
144
|
+
<InputGroup
|
|
145
|
+
label="Horizontal layout"
|
|
146
|
+
layout="horizontal"
|
|
147
|
+
>
|
|
148
|
+
<TextField label="Label" />
|
|
149
|
+
<Button label="Submit" />
|
|
150
|
+
</InputGroup>
|
|
151
|
+
```
|
|
170
152
|
|
|
171
153
|
## States
|
|
172
154
|
|
|
@@ -174,12 +156,12 @@ supports this kind of layout as well.
|
|
|
174
156
|
|
|
175
157
|
Disables all fields and buttons inside the group.
|
|
176
158
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
159
|
+
```docoff-react-preview
|
|
160
|
+
<InputGroup disabled label="Disabled group">
|
|
161
|
+
<TextField label="Label" />
|
|
162
|
+
<Button label="Submit" />
|
|
163
|
+
</InputGroup>
|
|
164
|
+
```
|
|
183
165
|
|
|
184
166
|
### Validation States
|
|
185
167
|
|
|
@@ -194,61 +176,76 @@ not show any `validationText`, they only show their respective `validationState`
|
|
|
194
176
|
Validation messages passed to input elements' `validationText` prop will be
|
|
195
177
|
ignored.
|
|
196
178
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
179
|
+
👉 While there is a `required` property to visually denote the whole input group
|
|
180
|
+
is required, there is no functional effect as there is no such HTML attribute
|
|
181
|
+
for the underlying `<fieldset>` element.
|
|
182
|
+
|
|
183
|
+
```docoff-react-preview
|
|
184
|
+
<InputGroup
|
|
185
|
+
label="First and last name"
|
|
186
|
+
required
|
|
187
|
+
validationTexts={[
|
|
188
|
+
"First name must be filled in.",
|
|
189
|
+
"Last name must be filled in.",
|
|
190
|
+
]}
|
|
191
|
+
>
|
|
192
|
+
<TextField
|
|
193
|
+
label="First name"
|
|
194
|
+
placeholder="Eg. John"
|
|
195
|
+
required
|
|
196
|
+
validationState="invalid"
|
|
197
|
+
/>
|
|
198
|
+
<TextField
|
|
199
|
+
label="Last name"
|
|
200
|
+
placeholder="Eg. Doe"
|
|
201
|
+
required
|
|
202
|
+
validationState="invalid"
|
|
203
|
+
/>
|
|
204
|
+
<Button label="Submit" />
|
|
205
|
+
</InputGroup>
|
|
206
|
+
<InputGroup
|
|
207
|
+
label="First and last name"
|
|
208
|
+
required
|
|
209
|
+
validationTexts={[
|
|
210
|
+
"Last name should not include any digits.",
|
|
211
|
+
]}
|
|
212
|
+
>
|
|
213
|
+
<TextField
|
|
214
|
+
label="First name"
|
|
215
|
+
placeholder="Eg. John"
|
|
216
|
+
required
|
|
217
|
+
value="John"
|
|
218
|
+
/>
|
|
219
|
+
<TextField
|
|
220
|
+
label="Last name"
|
|
221
|
+
placeholder="Eg. Doe"
|
|
222
|
+
required
|
|
223
|
+
validationState="warning"
|
|
224
|
+
value="123Doe"
|
|
225
|
+
/>
|
|
226
|
+
<Button label="Submit" />
|
|
227
|
+
</InputGroup>
|
|
228
|
+
<InputGroup
|
|
229
|
+
label="First and last name"
|
|
230
|
+
required
|
|
231
|
+
>
|
|
232
|
+
<TextField
|
|
233
|
+
label="First name"
|
|
234
|
+
placeholder="Eg. John"
|
|
235
|
+
required
|
|
236
|
+
validationState="valid"
|
|
237
|
+
value="John"
|
|
238
|
+
/>
|
|
239
|
+
<TextField
|
|
240
|
+
label="Last name"
|
|
241
|
+
placeholder="Eg. Doe"
|
|
242
|
+
required
|
|
243
|
+
validationState="valid"
|
|
244
|
+
value="Doe"
|
|
245
|
+
/>
|
|
246
|
+
<Button label="Submit" />
|
|
247
|
+
</InputGroup>
|
|
248
|
+
```
|
|
252
249
|
|
|
253
250
|
## Forwarding HTML Attributes
|
|
254
251
|
|
|
@@ -259,11 +256,11 @@ element which wraps elements to be grouped. This enables making the component
|
|
|
259
256
|
interactive and helps to improve its accessibility.
|
|
260
257
|
|
|
261
258
|
👉 Refer to the MDN reference for the full list of supported attributes of the
|
|
262
|
-
[
|
|
259
|
+
[fieldset][fieldset-attributes] element.
|
|
263
260
|
|
|
264
261
|
## API
|
|
265
262
|
|
|
266
|
-
<
|
|
263
|
+
<docoff-react-props src="/components/InputGroup/InputGroup.jsx"></docoff-react-props>
|
|
267
264
|
|
|
268
265
|
## Theming
|
|
269
266
|
|
|
@@ -275,4 +272,4 @@ interactive and helps to improve its accessibility.
|
|
|
275
272
|
[fieldset]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset
|
|
276
273
|
[accessibility]: https://www.w3.org/WAI/tutorials/forms/grouping/
|
|
277
274
|
[React synthetic events]: https://reactjs.org/docs/events.html
|
|
278
|
-
[
|
|
275
|
+
[fieldset-attributes]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset#attributes
|
|
@@ -38,8 +38,8 @@ const preRender = (
|
|
|
38
38
|
onClick={(e) => {
|
|
39
39
|
e.stopPropagation();
|
|
40
40
|
}}
|
|
41
|
-
role="presentation"
|
|
42
41
|
ref={childrenWrapperRef}
|
|
42
|
+
role="presentation"
|
|
43
43
|
>
|
|
44
44
|
{children}
|
|
45
45
|
</div>
|
|
@@ -98,7 +98,7 @@ Modal.defaultProps = {
|
|
|
98
98
|
closeButtonRef: null,
|
|
99
99
|
portalId: null,
|
|
100
100
|
position: 'center',
|
|
101
|
-
preventScrollUnderneath:
|
|
101
|
+
preventScrollUnderneath: window.document.body,
|
|
102
102
|
primaryButtonRef: null,
|
|
103
103
|
size: 'medium',
|
|
104
104
|
};
|
|
@@ -137,15 +137,15 @@ Modal.propTypes = {
|
|
|
137
137
|
position: PropTypes.oneOf(['top', 'center']),
|
|
138
138
|
/**
|
|
139
139
|
* Mode in which Modal prevents scroll of elements bellow:
|
|
140
|
-
* * `default` - Modal prevents scroll on the `body` element
|
|
141
140
|
* * `off` - Modal does not prevent any scroll
|
|
141
|
+
* * [HTMLElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement) - Modal prevents scroll on this HTML element
|
|
142
142
|
* * object
|
|
143
|
-
*
|
|
144
|
-
*
|
|
143
|
+
* * `reset` - method called on Modal's unmount to reset scroll prevention
|
|
144
|
+
* * `start` - method called on Modal's mount to custom scroll prevention
|
|
145
145
|
*/
|
|
146
146
|
preventScrollUnderneath: PropTypes.oneOfType([
|
|
147
147
|
PropTypes.oneOf([
|
|
148
|
-
|
|
148
|
+
HTMLElement,
|
|
149
149
|
'off',
|
|
150
150
|
]),
|
|
151
151
|
PropTypes.shape({
|