@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,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 {