@react-ui-org/react-ui 0.52.1 → 0.54.0

Sign up to get free protection for your applications and to get access to all the features.
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,19 +1,7 @@
1
- ---
2
- name: Radio
3
- menu: 'Inputs'
4
- route: /components/radio
5
- ---
6
-
7
1
  # Radio
8
2
 
9
3
  Radio allows users to select one option from a set.
10
4
 
11
- import {
12
- Playground,
13
- Props,
14
- } from 'docz'
15
- import { Radio } from '../..'
16
-
17
5
  ## Basic Usage
18
6
 
19
7
  To implement the Radio component, you need to import it first:
@@ -24,45 +12,45 @@ import { Radio } from '@react-ui-org/react-ui';
24
12
 
25
13
  And use it:
26
14
 
27
- <Playground>
28
- {() => {
29
- const [fruit, setFruit] = React.useState('apple');
30
- return (
31
- <Radio
32
- label="Your favourite fruit"
33
- onChange={(e) => setFruit(e.target.value)}
34
- options={[
35
- {
36
- label: 'Apple',
37
- value: 'apple',
38
- },
39
- {
40
- label: 'Banana',
41
- value: 'banana',
42
- },
43
- {
44
- label: 'Grapefruit',
45
- value: 'grapefruit',
46
- },
47
- ]}
48
- value={fruit}
49
- />
50
- );
51
- }}
52
- </Playground>
15
+ ```docoff-react-preview
16
+ React.createElement(() => {
17
+ const [fruit, setFruit] = React.useState('apple');
18
+ return (
19
+ <Radio
20
+ label="Your favourite fruit"
21
+ onChange={(e) => setFruit(e.target.value)}
22
+ options={[
23
+ {
24
+ label: 'Apple',
25
+ value: 'apple',
26
+ },
27
+ {
28
+ label: 'Banana',
29
+ value: 'banana',
30
+ },
31
+ {
32
+ label: 'Grapefruit',
33
+ value: 'grapefruit',
34
+ },
35
+ ]}
36
+ value={fruit}
37
+ />
38
+ );
39
+ })
40
+ ```
53
41
 
54
42
  See [API](#api) for all available options.
55
43
 
56
44
  ## General Guidelines
57
45
 
58
46
  - Use Radio for **just a few options**. For larger sets of many options (say 4
59
- and more) consider using the [SelectField](/components/select-field)
47
+ and more) consider using the [SelectField](/components/SelectField)
60
48
  component. This will help keep your UI clean and uncluttered and prevent your
61
49
  users from being overwhelmed by too many options.
62
50
 
63
51
  - **Don't use for boolean** (true/false) selection or to toggle things on and
64
- off. [CheckboxField](/components/checkbox-field) and
65
- [Toggle](/components/toggle) are more suitable for such cases.
52
+ off. [CheckboxField](/components/CheckboxField) and
53
+ [Toggle](/components/Toggle) are more suitable for such cases.
66
54
 
67
55
  - Use **short and descriptive labels**, ideally nouns rather than seemingly
68
56
  polite phrases like _Please select your favourite fruit_. Short labels will
@@ -91,33 +79,33 @@ simple forms, it's dangerous to hide labels from users in most cases. Keep in
91
79
  mind you should **provide another visual clue** so users know what to fill into
92
80
  the input.
93
81
 
94
- <Playground>
95
- {() => {
96
- const [frequency, setFrequency] = React.useState('weekly');
97
- return (
98
- <Radio
99
- isLabelVisible={false}
100
- label="Newsletter frequency"
101
- onChange={(e) => setFrequency(e.target.value)}
102
- options={[
103
- {
104
- label: 'I want to subscribe to the weekly newsletter',
105
- value: 'weekly',
106
- },
107
- {
108
- label: 'I want to subscribe to the monthly newsletter',
109
- value: 'monthly',
110
- },
111
- {
112
- label: "I don't wish to receive anything",
113
- value: 'never',
114
- },
115
- ]}
116
- value={frequency}
117
- />
118
- );
119
- }}
120
- </Playground>
82
+ ```docoff-react-preview
83
+ React.createElement(() => {
84
+ const [frequency, setFrequency] = React.useState('weekly');
85
+ return (
86
+ <Radio
87
+ isLabelVisible={false}
88
+ label="Newsletter frequency"
89
+ onChange={(e) => setFrequency(e.target.value)}
90
+ options={[
91
+ {
92
+ label: 'I want to subscribe to the weekly newsletter',
93
+ value: 'weekly',
94
+ },
95
+ {
96
+ label: 'I want to subscribe to the monthly newsletter',
97
+ value: 'monthly',
98
+ },
99
+ {
100
+ label: "I don't wish to receive anything",
101
+ value: 'never',
102
+ },
103
+ ]}
104
+ value={frequency}
105
+ />
106
+ );
107
+ })
108
+ ```
121
109
 
122
110
  ## Horizontal Layout
123
111
 
@@ -125,66 +113,66 @@ The default vertical layout is very easy to use and work with. However, there
125
113
  are situations where horizontal layout suits better — and that's why React UI
126
114
  supports this kind of layout as well.
127
115
 
128
- <Playground>
129
- {() => {
130
- const [frequency, setFrequency] = React.useState('weekly');
131
- return (
132
- <Radio
133
- label="Newsletter frequency"
134
- layout="horizontal"
135
- onChange={(e) => setFrequency(e.target.value)}
136
- options={[
137
- {
138
- label: 'I want to subscribe to the weekly newsletter',
139
- value: 'weekly',
140
- },
141
- {
142
- label: 'I want to subscribe to the monthly newsletter',
143
- value: 'monthly',
144
- },
145
- {
146
- label: "I don't wish to receive anything",
147
- value: 'never',
148
- },
149
- ]}
150
- value={frequency}
151
- />
152
- );
153
- }}
154
- </Playground>
116
+ ```docoff-react-preview
117
+ React.createElement(() => {
118
+ const [frequency, setFrequency] = React.useState('weekly');
119
+ return (
120
+ <Radio
121
+ label="Newsletter frequency"
122
+ layout="horizontal"
123
+ onChange={(e) => setFrequency(e.target.value)}
124
+ options={[
125
+ {
126
+ label: 'I want to subscribe to the weekly newsletter',
127
+ value: 'weekly',
128
+ },
129
+ {
130
+ label: 'I want to subscribe to the monthly newsletter',
131
+ value: 'monthly',
132
+ },
133
+ {
134
+ label: "I don't wish to receive anything",
135
+ value: 'never',
136
+ },
137
+ ]}
138
+ value={frequency}
139
+ />
140
+ );
141
+ })
142
+ ```
155
143
 
156
144
  ## Help Text
157
145
 
158
146
  You may provide an additional help text to clarify how the input should be
159
147
  filled.
160
148
 
161
- <Playground>
162
- {() => {
163
- const [fruit, setFruit] = React.useState('apple');
164
- return (
165
- <Radio
166
- helpText="What do you prefer?"
167
- label="Your favourite fruit"
168
- onChange={(e) => setFruit(e.target.value)}
169
- options={[
170
- {
171
- label: 'Apple',
172
- value: 'apple',
173
- },
174
- {
175
- label: 'Banana',
176
- value: 'banana',
177
- },
178
- {
179
- label: 'Grapefruit',
180
- value: 'grapefruit',
181
- },
182
- ]}
183
- value={fruit}
184
- />
185
- );
186
- }}
187
- </Playground>
149
+ ```docoff-react-preview
150
+ React.createElement(() => {
151
+ const [fruit, setFruit] = React.useState('apple');
152
+ return (
153
+ <Radio
154
+ helpText="What do you prefer?"
155
+ label="Your favourite fruit"
156
+ onChange={(e) => setFruit(e.target.value)}
157
+ options={[
158
+ {
159
+ label: 'Apple',
160
+ value: 'apple',
161
+ },
162
+ {
163
+ label: 'Banana',
164
+ value: 'banana',
165
+ },
166
+ {
167
+ label: 'Grapefruit',
168
+ value: 'grapefruit',
169
+ },
170
+ ]}
171
+ value={fruit}
172
+ />
173
+ );
174
+ })
175
+ ```
188
176
 
189
177
  ## States
190
178
 
@@ -195,8 +183,8 @@ should always **provide a validation message for states other than valid** so
195
183
  users know what happened and what action they should take or what options they
196
184
  have.
197
185
 
198
- <Playground>
199
- {() => {
186
+ ```docoff-react-preview
187
+ React.createElement(() => {
200
188
  const [fruit, setFruit] = React.useState('apple');
201
189
  const options = [
202
190
  {
@@ -243,15 +231,15 @@ have.
243
231
  />
244
232
  </>
245
233
  );
246
- }}
247
- </Playground>
234
+ })
235
+ ```
248
236
 
249
237
  ### Disabled State
250
238
 
251
239
  It's possible to disable just some options or the whole set.
252
240
 
253
- <Playground>
254
- {() => {
241
+ ```docoff-react-preview
242
+ React.createElement(() => {
255
243
  const [fruit, setFruit] = React.useState('apple');
256
244
  const options = [
257
245
  {
@@ -285,27 +273,27 @@ It's possible to disable just some options or the whole set.
285
273
  />
286
274
  </>
287
275
  );
288
- }}
289
- </Playground>
276
+ })
277
+ ```
290
278
 
291
279
  ## Forwarding HTML Attributes
292
280
 
293
281
  In addition to the options below in the [component's API](#api) section, you
294
282
  can specify [React synthetic events] or you can **add whatever HTML attribute
295
283
  you like.** All attributes that don't interfere with the API are forwarded to
296
- the native HTML `<input>`. This enables making the component interactive and helps
297
- to improve its accessibility.
284
+ the native HTML `<input>` elements. This enables making the component
285
+ interactive and helps to improve its accessibility.
298
286
 
299
287
  👉 Refer to the MDN reference for the full list of supported attributes of the
300
288
  [radio] input type.
301
289
 
302
290
  ## API
303
291
 
304
- <Props table of={Radio} />
292
+ <docoff-react-props src="/components/Radio/Radio.jsx"></docoff-react-props>
305
293
 
306
294
  ## Theming
307
295
 
308
- Head to [Forms Theming](/customize/theming/forms) to see shared form theming
296
+ Head to [Forms Theming](/docs/customize/theming/forms) to see shared form theming
309
297
  options. On top of that, the following options are available for Radio.
310
298
 
311
299
  | Custom Property | Description |
@@ -26,7 +26,6 @@ export const Radio = ({
26
26
 
27
27
  return (
28
28
  <fieldset
29
- {...transferProps(restProps)}
30
29
  className={classNames(
31
30
  styles.root,
32
31
  context && styles.isRootInFormLayout,
@@ -46,16 +45,15 @@ export const Radio = ({
46
45
  >
47
46
  {label}
48
47
  </legend>
49
- <div
50
- aria-hidden
51
- className={classNames(
52
- styles.label,
53
- !isLabelVisible && styles.isLabelHidden,
54
- )}
55
- id={id && `${id}__displayLabel`}
56
- >
57
- {label}
58
- </div>
48
+ {isLabelVisible && (
49
+ <div
50
+ aria-hidden
51
+ className={styles.label}
52
+ id={id && `${id}__displayLabel`}
53
+ >
54
+ {label}
55
+ </div>
56
+ )}
59
57
  <div className={styles.field}>
60
58
  <div className={styles.options}>
61
59
  {
@@ -69,10 +67,11 @@ export const Radio = ({
69
67
  key={key}
70
68
  >
71
69
  <input
72
- className={styles.input}
70
+ {...transferProps(restProps)}
73
71
  checked={restProps.onChange
74
72
  ? (value === option.value) || false
75
73
  : undefined}
74
+ className={styles.input}
76
75
  disabled={disabled || option.disabled}
77
76
  id={id && `${id}__item__${key}`}
78
77
  name={id}
@@ -64,11 +64,6 @@
64
64
  @include variants.validation(warning);
65
65
  }
66
66
 
67
- // Invisible label
68
- .isLabelHidden {
69
- @include accessibility.hide-text();
70
- }
71
-
72
67
  // Layouts
73
68
  .isRootLayoutVertical,
74
69
  .isRootLayoutHorizontal {