@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.
Files changed (261) hide show
  1. package/README.md +10 -7
  2. package/dist/react-ui.css +5 -3
  3. package/dist/react-ui.development.css +11302 -0
  4. package/dist/react-ui.development.js +1588 -0
  5. package/dist/react-ui.js +1 -1
  6. package/package.json +66 -77
  7. package/src/{lib/components → components}/Alert/Alert.jsx +1 -1
  8. package/src/{lib/components/Alert/README.mdx → components/Alert/README.md} +84 -100
  9. package/src/{lib/components → components}/Badge/Badge.jsx +1 -1
  10. package/src/{lib/components → components}/Badge/Badge.scss +1 -1
  11. package/src/components/Badge/README.md +103 -0
  12. package/src/{lib/components → components}/Button/Button.jsx +1 -1
  13. package/src/components/Button/README.md +580 -0
  14. package/src/{lib/components → components}/ButtonGroup/ButtonGroup.jsx +11 -9
  15. package/src/{lib/components/ButtonGroup/README.mdx → components/ButtonGroup/README.md} +128 -134
  16. package/src/{lib/components → components}/Card/Card.jsx +1 -1
  17. package/src/components/Card/README.md +314 -0
  18. package/src/{lib/components/CheckboxField/README.mdx → components/CheckboxField/README.md} +96 -108
  19. package/src/{lib/components/FileInputField/README.mdx → components/FileInputField/README.md} +83 -95
  20. package/src/{lib/components → components}/FormLayout/FormLayout.jsx +4 -4
  21. package/src/components/FormLayout/README.md +462 -0
  22. package/src/{lib/components → components}/Grid/Grid.jsx +2 -2
  23. package/src/components/Grid/README.md +281 -0
  24. package/src/{lib/components → components}/InputGroup/InputGroup.jsx +28 -19
  25. package/src/{lib/components → components}/InputGroup/InputGroup.scss +4 -5
  26. package/src/{lib/components/InputGroup/README.mdx → components/InputGroup/README.md} +162 -165
  27. package/src/{lib/components → components}/Modal/Modal.jsx +6 -6
  28. package/src/components/Modal/README.md +1090 -0
  29. package/src/components/Modal/_hooks/useModalScrollPrevention.js +37 -0
  30. package/src/{lib/components/Paper/README.mdx → components/Paper/README.md} +18 -30
  31. package/src/{lib/components/Popover/README.mdx → components/Popover/README.md} +102 -132
  32. package/src/{lib/components/Radio/README.mdx → components/Radio/README.md} +122 -134
  33. package/src/{lib/components → components}/Radio/Radio.jsx +11 -12
  34. package/src/{lib/components → components}/Radio/Radio.scss +0 -5
  35. package/src/components/ScrollView/README.md +503 -0
  36. package/src/{lib/components → components}/ScrollView/ScrollView.jsx +12 -3
  37. package/src/components/SelectField/README.md +681 -0
  38. package/src/components/Table/README.md +259 -0
  39. package/src/{lib/components → components}/Table/Table.jsx +4 -1
  40. package/src/{lib/components → components}/Table/_components/TableHeaderCell/TableHeaderCell.jsx +1 -1
  41. package/src/{lib/components/Tabs/README.mdx → components/Tabs/README.md} +117 -134
  42. package/src/{lib/components → components}/Tabs/TabsItem.jsx +3 -3
  43. package/src/components/Text/README.md +220 -0
  44. package/src/components/TextArea/README.md +359 -0
  45. package/src/{lib/components/TextField/README.mdx → components/TextField/README.md} +336 -342
  46. package/src/{lib/components/TextLink/README.mdx → components/TextLink/README.md} +19 -31
  47. package/src/{lib/components/Toggle/README.mdx → components/Toggle/README.md} +98 -110
  48. package/src/components/Toolbar/README.md +359 -0
  49. package/src/{lib/components → components}/Toolbar/_helpers/getAlignClassName.js +12 -4
  50. package/src/components/_helpers/getRootPriorityClassName.js +15 -0
  51. package/src/{lib/index.js → index.js} +6 -0
  52. package/src/{lib/provider → provider}/RUIProvider.jsx +17 -11
  53. package/src/{lib/styles → styles}/tools/_caret.scss +1 -1
  54. package/src/{lib/styles → styles}/tools/form-fields/_box-field-elements.scss +1 -1
  55. package/src/{lib/styles → styles}/tools/form-fields/_inline-field-elements.scss +2 -2
  56. package/src/{lib/theme.scss → theme.scss} +4 -3
  57. package/CONTRIBUTING.md +0 -137
  58. package/dist/lib.development.js +0 -3179
  59. package/dist/lib.js +0 -1
  60. package/public/racom.svg +0 -11
  61. package/src/lib/components/Badge/README.mdx +0 -126
  62. package/src/lib/components/Button/README.mdx +0 -581
  63. package/src/lib/components/Card/README.mdx +0 -326
  64. package/src/lib/components/FormLayout/README.mdx +0 -501
  65. package/src/lib/components/Grid/README.mdx +0 -299
  66. package/src/lib/components/Modal/README.mdx +0 -1360
  67. package/src/lib/components/Modal/_hooks/useModalScrollPrevention.js +0 -35
  68. package/src/lib/components/ScrollView/README.mdx +0 -521
  69. package/src/lib/components/SelectField/README.mdx +0 -693
  70. package/src/lib/components/Table/README.mdx +0 -275
  71. package/src/lib/components/Text/README.mdx +0 -241
  72. package/src/lib/components/TextArea/README.mdx +0 -366
  73. package/src/lib/components/Toolbar/README.mdx +0 -386
  74. package/src/{lib/components → components}/Alert/Alert.scss +0 -0
  75. package/src/{lib/components → components}/Alert/_settings.scss +0 -0
  76. package/src/{lib/components → components}/Alert/_theme.scss +0 -0
  77. package/src/{lib/components → components}/Alert/_tools.scss +0 -0
  78. package/src/{lib/components → components}/Alert/index.js +0 -0
  79. package/src/{lib/components → components}/Badge/index.js +0 -0
  80. package/src/{lib/components → components}/Button/Button.scss +0 -0
  81. package/src/{lib/components → components}/Button/_base.scss +0 -0
  82. package/src/{lib/components → components}/Button/_priorities.scss +0 -0
  83. package/src/{lib/components → components}/Button/_settings.scss +0 -0
  84. package/src/{lib/components → components}/Button/_theme.scss +0 -0
  85. package/src/{lib/components → components}/Button/_tools.scss +0 -0
  86. package/src/{lib/components → components}/Button/helpers/getRootLabelVisibilityClassName.js +0 -0
  87. package/src/{lib/components/_helpers → components/Button/helpers}/getRootPriorityClassName.js +0 -0
  88. package/src/{lib/components → components}/Button/index.js +0 -0
  89. package/src/{lib/components → components}/ButtonGroup/ButtonGroup.scss +0 -0
  90. package/src/{lib/components → components}/ButtonGroup/ButtonGroupContext.js +0 -0
  91. package/src/{lib/components → components}/ButtonGroup/_theme.scss +0 -0
  92. package/src/{lib/components → components}/ButtonGroup/index.js +0 -0
  93. package/src/{lib/components → components}/Card/Card.scss +0 -0
  94. package/src/{lib/components → components}/Card/CardBody.jsx +0 -0
  95. package/src/{lib/components → components}/Card/CardFooter.jsx +0 -0
  96. package/src/{lib/components → components}/Card/_theme.scss +0 -0
  97. package/src/{lib/components → components}/Card/_tools.scss +0 -0
  98. package/src/{lib/components → components}/Card/index.js +0 -0
  99. package/src/{lib/components → components}/CheckboxField/CheckboxField.jsx +0 -0
  100. package/src/{lib/components → components}/CheckboxField/CheckboxField.scss +0 -0
  101. package/src/{lib/components → components}/CheckboxField/index.js +0 -0
  102. package/src/{lib/components → components}/FileInputField/FileInputField.jsx +0 -0
  103. package/src/{lib/components → components}/FileInputField/FileInputField.scss +0 -0
  104. package/src/{lib/components → components}/FileInputField/index.js +0 -0
  105. package/src/{lib/components → components}/FormLayout/FormLayout.scss +0 -0
  106. package/src/{lib/components → components}/FormLayout/FormLayoutContext.js +0 -0
  107. package/src/{lib/components → components}/FormLayout/FormLayoutCustomField.jsx +4 -4
  108. package/src/{lib/components → components}/FormLayout/FormLayoutCustomField.scss +0 -0
  109. package/src/{lib/components → components}/FormLayout/_theme.scss +0 -0
  110. package/src/{lib/components → components}/FormLayout/index.js +0 -0
  111. package/src/{lib/components → components}/Grid/Grid.scss +0 -0
  112. package/src/{lib/components → components}/Grid/GridSpan.jsx +0 -0
  113. package/src/{lib/components → components}/Grid/_helpers/generateResponsiveCustomProperties.js +0 -0
  114. package/src/{lib/components → components}/Grid/_settings.scss +0 -0
  115. package/src/{lib/components → components}/Grid/_tools.scss +0 -0
  116. package/src/{lib/components → components}/Grid/index.js +0 -0
  117. package/src/{lib/components → components}/InputGroup/InputGroupContext.js +0 -0
  118. package/src/{lib/components → components}/InputGroup/_theme.scss +0 -0
  119. package/src/{lib/components → components}/InputGroup/index.js +0 -0
  120. package/src/{lib/components → components}/Modal/Modal.scss +0 -0
  121. package/src/{lib/components → components}/Modal/ModalBody.jsx +0 -0
  122. package/src/{lib/components → components}/Modal/ModalBody.scss +0 -0
  123. package/src/{lib/components → components}/Modal/ModalCloseButton.jsx +1 -1
  124. package/src/{lib/components → components}/Modal/ModalCloseButton.scss +0 -0
  125. package/src/{lib/components → components}/Modal/ModalContent.jsx +0 -0
  126. package/src/{lib/components → components}/Modal/ModalContent.scss +0 -0
  127. package/src/{lib/components → components}/Modal/ModalFooter.jsx +0 -0
  128. package/src/{lib/components → components}/Modal/ModalFooter.scss +0 -0
  129. package/src/{lib/components → components}/Modal/ModalHeader.jsx +0 -0
  130. package/src/{lib/components → components}/Modal/ModalHeader.scss +0 -0
  131. package/src/{lib/components → components}/Modal/ModalTitle.jsx +0 -0
  132. package/src/{lib/components → components}/Modal/ModalTitle.scss +0 -0
  133. package/src/{lib/components → components}/Modal/_helpers/getJustifyClassName.js +0 -0
  134. package/src/{lib/components → components}/Modal/_helpers/getPositionClassName.js +0 -0
  135. package/src/{lib/components → components}/Modal/_helpers/getScrollingClassName.js +0 -0
  136. package/src/{lib/components → components}/Modal/_helpers/getSizeClassName.js +0 -0
  137. package/src/{lib/components → components}/Modal/_hooks/useModalFocus.js +0 -0
  138. package/src/{lib/components → components}/Modal/_settings.scss +0 -0
  139. package/src/{lib/components → components}/Modal/_theme.scss +0 -0
  140. package/src/{lib/components → components}/Modal/index.js +0 -0
  141. package/src/{lib/components → components}/Paper/Paper.jsx +0 -0
  142. package/src/{lib/components → components}/Paper/Paper.scss +0 -0
  143. package/src/{lib/components → components}/Paper/_theme.scss +0 -0
  144. package/src/{lib/components → components}/Paper/index.js +0 -0
  145. package/src/{lib/components → components}/Popover/Popover.jsx +0 -0
  146. package/src/{lib/components → components}/Popover/Popover.scss +0 -0
  147. package/src/{lib/components → components}/Popover/PopoverWrapper.jsx +0 -0
  148. package/src/{lib/components → components}/Popover/PopoverWrapper.scss +0 -0
  149. package/src/{lib/components → components}/Popover/_helpers/getRootAlignmentClassName.js +0 -0
  150. package/src/{lib/components → components}/Popover/_helpers/getRootSideClassName.js +0 -0
  151. package/src/{lib/components → components}/Popover/_theme.scss +0 -0
  152. package/src/{lib/components → components}/Popover/index.js +0 -0
  153. package/src/{lib/components → components}/Radio/index.js +0 -0
  154. package/src/{lib/components → components}/ScrollView/ScrollView.scss +0 -0
  155. package/src/{lib/components → components}/ScrollView/_helpers/getElementsPositionDifference.js +0 -0
  156. package/src/{lib/components → components}/ScrollView/_hooks/useLoadResizeHook.js +0 -0
  157. package/src/{lib/components → components}/ScrollView/_hooks/useScrollPositionHook.js +0 -0
  158. package/src/{lib/components → components}/ScrollView/index.js +0 -0
  159. package/src/{lib/components → components}/SelectField/SelectField.jsx +0 -0
  160. package/src/{lib/components → components}/SelectField/SelectField.scss +0 -0
  161. package/src/{lib/components → components}/SelectField/_components/Option/Option.jsx +0 -0
  162. package/src/{lib/components → components}/SelectField/_components/Option/index.js +0 -0
  163. package/src/{lib/components → components}/SelectField/index.js +0 -0
  164. package/src/{lib/components → components}/Table/Table.scss +0 -0
  165. package/src/{lib/components → components}/Table/_components/TableBodyCell/TableBodyCell.jsx +0 -0
  166. package/src/{lib/components → components}/Table/_components/TableBodyCell/index.js +0 -0
  167. package/src/{lib/components → components}/Table/_components/TableCell.scss +0 -0
  168. package/src/{lib/components → components}/Table/_components/TableHeaderCell/index.js +0 -0
  169. package/src/{lib/components → components}/Table/_settings.scss +0 -0
  170. package/src/{lib/components → components}/Table/index.js +0 -0
  171. package/src/{lib/components → components}/Tabs/Tabs.jsx +0 -0
  172. package/src/{lib/components → components}/Tabs/Tabs.scss +0 -0
  173. package/src/{lib/components → components}/Tabs/TabsItem.scss +0 -0
  174. package/src/{lib/components → components}/Tabs/_theme.scss +0 -0
  175. package/src/{lib/components → components}/Tabs/index.js +0 -0
  176. package/src/{lib/components → components}/Text/Text.jsx +0 -0
  177. package/src/{lib/components → components}/Text/Text.scss +0 -0
  178. package/src/{lib/components → components}/Text/_helpers/getRootClampClassName.js +0 -0
  179. package/src/{lib/components → components}/Text/_helpers/getRootHyphensClassName.js +0 -0
  180. package/src/{lib/components → components}/Text/_helpers/getRootWordWrappingClassName.js +0 -0
  181. package/src/{lib/components → components}/Text/index.js +0 -0
  182. package/src/{lib/components → components}/TextArea/TextArea.jsx +0 -0
  183. package/src/{lib/components → components}/TextArea/TextArea.scss +0 -0
  184. package/src/{lib/components → components}/TextArea/index.js +0 -0
  185. package/src/{lib/components → components}/TextField/TextField.jsx +0 -0
  186. package/src/{lib/components → components}/TextField/TextField.scss +0 -0
  187. package/src/{lib/components → components}/TextField/index.js +0 -0
  188. package/src/{lib/components → components}/TextLink/TextLink.jsx +1 -1
  189. /package/src/{lib/components → components}/TextLink/TextLink.scss +0 -0
  190. /package/src/{lib/components → components}/TextLink/_theme.scss +0 -0
  191. /package/src/{lib/components → components}/TextLink/index.js +0 -0
  192. /package/src/{lib/components → components}/Toggle/Toggle.jsx +0 -0
  193. /package/src/{lib/components → components}/Toggle/Toggle.scss +0 -0
  194. /package/src/{lib/components → components}/Toggle/index.js +0 -0
  195. /package/src/{lib/components → components}/Toolbar/Toolbar.jsx +0 -0
  196. /package/src/{lib/components → components}/Toolbar/Toolbar.scss +0 -0
  197. /package/src/{lib/components → components}/Toolbar/ToolbarGroup.jsx +0 -0
  198. /package/src/{lib/components → components}/Toolbar/ToolbarItem.jsx +0 -0
  199. /package/src/{lib/components → components}/Toolbar/_helpers/getJustifyClassName.js +0 -0
  200. /package/src/{lib/components → components}/Toolbar/_theme.scss +0 -0
  201. /package/src/{lib/components → components}/Toolbar/index.js +0 -0
  202. /package/src/{lib/components → components}/_helpers/getRootColorClassName.js +0 -0
  203. /package/src/{lib/components → components}/_helpers/getRootSizeClassName.js +0 -0
  204. /package/src/{lib/components → components}/_helpers/getRootValidationStateClassName.js +0 -0
  205. /package/src/{lib/components → components}/_helpers/isChildrenEmpty.js +0 -0
  206. /package/src/{lib/components → components}/_helpers/resolveContextOrProp.js +0 -0
  207. /package/src/{lib/components → components}/_helpers/transferProps.js +0 -0
  208. /package/src/{lib/foundation.scss → foundation.scss} +0 -0
  209. /package/src/{lib/helpers.scss → helpers.scss} +0 -0
  210. /package/src/{lib/provider → provider}/RUIContext.jsx +0 -0
  211. /package/src/{lib/provider → provider}/index.js +0 -0
  212. /package/src/{lib/provider → provider}/withGlobalProps.jsx +0 -0
  213. /package/src/{lib/styles → styles}/_utilities.scss +0 -0
  214. /package/src/{lib/styles → styles}/elements/_code.scss +0 -0
  215. /package/src/{lib/styles → styles}/elements/_links.scss +0 -0
  216. /package/src/{lib/styles → styles}/elements/_lists.scss +0 -0
  217. /package/src/{lib/styles → styles}/elements/_page.scss +0 -0
  218. /package/src/{lib/styles → styles}/elements/_rulers.scss +0 -0
  219. /package/src/{lib/styles → styles}/elements/_small.scss +0 -0
  220. /package/src/{lib/styles → styles}/generic/_box-sizing.scss +0 -0
  221. /package/src/{lib/styles → styles}/generic/_focus.scss +0 -0
  222. /package/src/{lib/styles → styles}/generic/_forms.scss +0 -0
  223. /package/src/{lib/styles → styles}/generic/_reset.scss +0 -0
  224. /package/src/{lib/styles → styles}/generic/_shared.scss +0 -0
  225. /package/src/{lib/styles → styles}/helpers/_animation.scss +0 -0
  226. /package/src/{lib/styles → styles}/settings/_animations.scss +0 -0
  227. /package/src/{lib/styles → styles}/settings/_breakpoints.scss +0 -0
  228. /package/src/{lib/styles → styles}/settings/_escaped-characters.scss +0 -0
  229. /package/src/{lib/styles → styles}/settings/_form-fields.scss +0 -0
  230. /package/src/{lib/styles → styles}/settings/_forms.scss +0 -0
  231. /package/src/{lib/styles → styles}/settings/_utilities.scss +0 -0
  232. /package/src/{lib/styles → styles}/settings/_z-indexes.scss +0 -0
  233. /package/src/{lib/styles → styles}/theme/_accessibility.scss +0 -0
  234. /package/src/{lib/styles → styles}/theme/_borders.scss +0 -0
  235. /package/src/{lib/styles → styles}/theme/_code.scss +0 -0
  236. /package/src/{lib/styles → styles}/theme/_form-fields.scss +0 -0
  237. /package/src/{lib/styles → styles}/theme/_links.scss +0 -0
  238. /package/src/{lib/styles → styles}/theme/_lists.scss +0 -0
  239. /package/src/{lib/styles → styles}/theme/_page.scss +0 -0
  240. /package/src/{lib/styles → styles}/theme/_spacing.scss +0 -0
  241. /package/src/{lib/styles → styles}/theme/_typography.scss +0 -0
  242. /package/src/{lib/styles → styles}/theme-constants/_breakpoints.scss +0 -0
  243. /package/src/{lib/styles → styles}/theme-constants/_colors.scss +0 -0
  244. /package/src/{lib/styles → styles}/theme-constants/_svg.scss +0 -0
  245. /package/src/{lib/styles → styles}/tools/_accessibility.scss +0 -0
  246. /package/src/{lib/styles → styles}/tools/_breakpoint.scss +0 -0
  247. /package/src/{lib/styles → styles}/tools/_colors.scss +0 -0
  248. /package/src/{lib/styles → styles}/tools/_reset.scss +0 -0
  249. /package/src/{lib/styles → styles}/tools/_scrollbar.scss +0 -0
  250. /package/src/{lib/styles → styles}/tools/_spacing.scss +0 -0
  251. /package/src/{lib/styles → styles}/tools/_string.scss +0 -0
  252. /package/src/{lib/styles → styles}/tools/_svg.scss +0 -0
  253. /package/src/{lib/styles → styles}/tools/_transition.scss +0 -0
  254. /package/src/{lib/styles → styles}/tools/_utilities.scss +0 -0
  255. /package/src/{lib/styles → styles}/tools/form-fields/_box-field-layout.scss +0 -0
  256. /package/src/{lib/styles → styles}/tools/form-fields/_box-field-sizes.scss +0 -0
  257. /package/src/{lib/styles → styles}/tools/form-fields/_foundation.scss +0 -0
  258. /package/src/{lib/styles → styles}/tools/form-fields/_inline-field-layout.scss +0 -0
  259. /package/src/{lib/styles → styles}/tools/form-fields/_variants.scss +0 -0
  260. /package/src/{lib/translations → translations}/en.js +0 -0
  261. /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
- <Playground>
34
- {() => {
35
- const [fruit, setFruit] = React.useState('apple');
36
- const options = [
37
- {
38
- label: 'Apple',
39
- value: 'apple',
40
- },
41
- {
42
- label: 'Pear',
43
- value: 'pear',
44
- },
45
- {
46
- label: 'Cherry',
47
- value: 'cherry',
48
- },
49
- ];
50
- return (
51
- <InputGroup label="Your favourite fruit">
52
- <SelectField
53
- label="Your favourite fruit"
54
- onChange={(e) => setFruit(e.target.value)}
55
- options={options}
56
- value={fruit}
57
- />
58
- <TextField
59
- label="Variety"
60
- placeholder="Eg. Golden delicious"
61
- />
62
- <Button label="Submit" />
63
- </InputGroup>
64
- );
65
- }}
66
- </Playground>
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/text-field), [SelectField](/components/select-field),
87
- and [Button](/components/button) components.
68
+ [TextField](/components/TextField), [SelectField](/components/SelectField),
69
+ and [Button](/components/Button) components.
88
70
 
89
- - To group [Buttons](/components/button) only, use the
90
- [ButtonGroup](/components/button-group) component which is designed
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
- <Playground>
99
- <InputGroup
100
- label="Small size"
101
- size="small"
102
- >
103
- <TextField label="Input" />
104
- <Button label="Submit" />
105
- </InputGroup>
106
- <InputGroup label="Medium size">
107
- <TextField label="Input" />
108
- <Button label="Submit" />
109
- </InputGroup>
110
- <InputGroup
111
- label="Large size"
112
- size="large"
113
- >
114
- <TextField label="Input" />
115
- <Button label="Submit" />
116
- </InputGroup>
117
- </Playground>
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
- <Playground>
139
- <InputGroup
140
- isLabelVisible={false}
141
- label="First and last name"
142
- >
143
- <TextField
144
- label="First name"
145
- placeholder="Eg. John"
146
- />
147
- <TextField
148
- label="Last name"
149
- placeholder="Eg. Doe"
150
- />
151
- <Button label="Submit" />
152
- </InputGroup>
153
- </Playground>
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
- <Playground>
162
- <InputGroup
163
- label="Horizontal layout"
164
- layout="horizontal"
165
- >
166
- <TextField label="Label" />
167
- <Button label="Submit" />
168
- </InputGroup>
169
- </Playground>
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
- <Playground>
178
- <InputGroup disabled label="Disabled group">
179
- <TextField label="Label" />
180
- <Button label="Submit" />
181
- </InputGroup>
182
- </Playground>
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
- <Playground>
198
- <InputGroup
199
- label="First and last name"
200
- validationTexts={[
201
- "First name must be filled in.",
202
- "Last name must be filled in.",
203
- ]}
204
- >
205
- <TextField
206
- label="First name"
207
- placeholder="Eg. John"
208
- validationState="invalid"
209
- />
210
- <TextField
211
- label="Last name"
212
- placeholder="Eg. Doe"
213
- validationState="invalid"
214
- />
215
- <Button label="Submit" />
216
- </InputGroup>
217
- <InputGroup
218
- label="First and last name"
219
- validationTexts={[
220
- "Last name should not include any digits.",
221
- ]}
222
- >
223
- <TextField
224
- label="First name"
225
- placeholder="Eg. John"
226
- value="John"
227
- />
228
- <TextField
229
- label="Last name"
230
- placeholder="Eg. Doe"
231
- validationState="warning"
232
- value="123Doe"
233
- />
234
- <Button label="Submit" />
235
- </InputGroup>
236
- <InputGroup label="First and last name">
237
- <TextField
238
- label="First name"
239
- placeholder="Eg. John"
240
- validationState="valid"
241
- value="John"
242
- />
243
- <TextField
244
- label="Last name"
245
- placeholder="Eg. Doe"
246
- validationState="valid"
247
- value="Doe"
248
- />
249
- <Button label="Submit" />
250
- </InputGroup>
251
- </Playground>
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
- [div] element.
259
+ [fieldset][fieldset-attributes] element.
263
260
 
264
261
  ## API
265
262
 
266
- <Props table of={InputGroup} />
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
- [div]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div#attributes
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: 'default',
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
- * * * `reset` - method called on Modal's unmount to reset scroll prevention
144
- * * * `start` - method called on Modal's mount to custom scroll prevention
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
- 'default',
148
+ HTMLElement,
149
149
  'off',
150
150
  ]),
151
151
  PropTypes.shape({