@dxc-technology/halstack-react 0.0.0-f0d662d → 0.0.0-f18281d

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 (361) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1237 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +117 -193
  8. package/accordion/Accordion.stories.tsx +103 -127
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +11 -22
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +38 -107
  13. package/accordion-group/AccordionGroup.stories.tsx +95 -68
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +17 -22
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +23 -59
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +75 -0
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +4 -0
  28. package/badge/Badge.js +142 -40
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +54 -0
  32. package/bleed/Bleed.js +14 -55
  33. package/bleed/Bleed.stories.tsx +95 -95
  34. package/bleed/types.d.ts +26 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +30 -81
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +13 -0
  39. package/box/types.d.ts +3 -14
  40. package/bulleted-list/BulletedList.d.ts +7 -0
  41. package/bulleted-list/BulletedList.js +89 -0
  42. package/bulleted-list/BulletedList.stories.tsx +115 -0
  43. package/bulleted-list/types.d.ts +38 -0
  44. package/button/Button.d.ts +1 -1
  45. package/button/Button.js +62 -113
  46. package/button/Button.stories.tsx +160 -90
  47. package/button/Button.test.js +38 -0
  48. package/button/types.d.ts +12 -8
  49. package/card/Card.d.ts +1 -1
  50. package/card/Card.js +58 -102
  51. package/card/Card.stories.tsx +12 -42
  52. package/card/Card.test.js +39 -0
  53. package/card/types.d.ts +6 -11
  54. package/checkbox/Checkbox.d.ts +2 -2
  55. package/checkbox/Checkbox.js +144 -182
  56. package/checkbox/Checkbox.stories.tsx +166 -136
  57. package/checkbox/Checkbox.test.js +199 -0
  58. package/checkbox/types.d.ts +18 -6
  59. package/chip/Chip.d.ts +1 -1
  60. package/chip/Chip.js +46 -124
  61. package/chip/Chip.stories.tsx +123 -30
  62. package/chip/Chip.test.js +41 -0
  63. package/chip/types.d.ts +8 -16
  64. package/common/OpenSans.css +68 -80
  65. package/common/coreTokens.d.ts +237 -0
  66. package/common/coreTokens.js +184 -0
  67. package/common/utils.d.ts +1 -0
  68. package/common/utils.js +6 -12
  69. package/common/variables.d.ts +1383 -0
  70. package/common/variables.js +1017 -1374
  71. package/container/Container.d.ts +4 -0
  72. package/container/Container.js +194 -0
  73. package/container/Container.stories.tsx +214 -0
  74. package/container/types.d.ts +74 -0
  75. package/date-input/Calendar.d.ts +4 -0
  76. package/date-input/Calendar.js +214 -0
  77. package/date-input/DateInput.js +171 -306
  78. package/date-input/DateInput.stories.tsx +203 -56
  79. package/date-input/DateInput.test.js +808 -0
  80. package/date-input/DatePicker.d.ts +4 -0
  81. package/date-input/DatePicker.js +115 -0
  82. package/date-input/Icons.d.ts +6 -0
  83. package/date-input/Icons.js +58 -0
  84. package/date-input/YearPicker.d.ts +4 -0
  85. package/date-input/YearPicker.js +100 -0
  86. package/date-input/types.d.ts +86 -22
  87. package/dialog/Dialog.d.ts +1 -1
  88. package/dialog/Dialog.js +68 -130
  89. package/dialog/Dialog.stories.tsx +320 -167
  90. package/dialog/Dialog.test.js +307 -0
  91. package/dialog/types.d.ts +18 -25
  92. package/dropdown/Dropdown.d.ts +1 -1
  93. package/dropdown/Dropdown.js +249 -330
  94. package/dropdown/Dropdown.stories.tsx +255 -64
  95. package/dropdown/Dropdown.test.js +599 -0
  96. package/dropdown/DropdownMenu.d.ts +4 -0
  97. package/dropdown/DropdownMenu.js +63 -0
  98. package/dropdown/DropdownMenuItem.d.ts +4 -0
  99. package/dropdown/DropdownMenuItem.js +67 -0
  100. package/dropdown/types.d.ts +36 -27
  101. package/file-input/FileInput.d.ts +2 -2
  102. package/file-input/FileInput.js +246 -357
  103. package/file-input/FileInput.stories.tsx +123 -12
  104. package/file-input/FileInput.test.js +459 -0
  105. package/file-input/FileItem.d.ts +4 -14
  106. package/file-input/FileItem.js +50 -99
  107. package/file-input/types.d.ts +25 -8
  108. package/flex/Flex.d.ts +4 -0
  109. package/flex/Flex.js +57 -0
  110. package/flex/Flex.stories.tsx +112 -0
  111. package/flex/types.d.ts +97 -0
  112. package/footer/Footer.d.ts +1 -1
  113. package/footer/Footer.js +70 -190
  114. package/footer/Footer.stories.tsx +60 -19
  115. package/footer/Footer.test.js +85 -0
  116. package/footer/Icons.d.ts +3 -2
  117. package/footer/Icons.js +67 -8
  118. package/footer/types.d.ts +25 -26
  119. package/grid/Grid.d.ts +7 -0
  120. package/grid/Grid.js +76 -0
  121. package/grid/Grid.stories.tsx +219 -0
  122. package/grid/types.d.ts +115 -0
  123. package/header/Header.d.ts +4 -3
  124. package/header/Header.js +99 -203
  125. package/header/Header.stories.tsx +152 -63
  126. package/header/Header.test.js +66 -0
  127. package/header/Icons.d.ts +2 -2
  128. package/header/Icons.js +4 -9
  129. package/header/types.d.ts +5 -19
  130. package/heading/Heading.js +10 -32
  131. package/heading/Heading.test.js +169 -0
  132. package/heading/types.d.ts +7 -7
  133. package/image/Image.d.ts +4 -0
  134. package/image/Image.js +70 -0
  135. package/image/Image.stories.tsx +127 -0
  136. package/image/types.d.ts +72 -0
  137. package/image/types.js +5 -0
  138. package/inset/Inset.js +14 -55
  139. package/inset/Inset.stories.tsx +37 -36
  140. package/inset/types.d.ts +26 -2
  141. package/layout/ApplicationLayout.d.ts +16 -6
  142. package/layout/ApplicationLayout.js +83 -174
  143. package/layout/ApplicationLayout.stories.tsx +85 -94
  144. package/layout/Icons.d.ts +8 -0
  145. package/layout/Icons.js +51 -48
  146. package/layout/SidenavContext.d.ts +5 -0
  147. package/layout/SidenavContext.js +13 -0
  148. package/layout/types.d.ts +19 -35
  149. package/link/Link.d.ts +3 -2
  150. package/link/Link.js +64 -110
  151. package/link/Link.stories.tsx +159 -52
  152. package/link/Link.test.js +63 -0
  153. package/link/types.d.ts +15 -35
  154. package/main.d.ts +17 -18
  155. package/main.js +68 -120
  156. package/nav-tabs/NavTabs.d.ts +8 -0
  157. package/nav-tabs/NavTabs.js +93 -0
  158. package/nav-tabs/NavTabs.stories.tsx +276 -0
  159. package/nav-tabs/NavTabs.test.js +76 -0
  160. package/nav-tabs/Tab.d.ts +4 -0
  161. package/nav-tabs/Tab.js +118 -0
  162. package/nav-tabs/types.d.ts +52 -0
  163. package/nav-tabs/types.js +5 -0
  164. package/number-input/NumberInput.d.ts +7 -0
  165. package/number-input/NumberInput.js +27 -43
  166. package/number-input/NumberInput.stories.tsx +44 -28
  167. package/number-input/NumberInput.test.js +830 -0
  168. package/number-input/types.d.ts +28 -15
  169. package/package.json +46 -47
  170. package/paginator/Icons.d.ts +5 -0
  171. package/paginator/Icons.js +21 -47
  172. package/paginator/Paginator.js +34 -91
  173. package/paginator/Paginator.stories.tsx +24 -0
  174. package/paginator/Paginator.test.js +335 -0
  175. package/paginator/types.d.ts +3 -3
  176. package/paragraph/Paragraph.d.ts +5 -0
  177. package/paragraph/Paragraph.js +22 -0
  178. package/paragraph/Paragraph.stories.tsx +27 -0
  179. package/password-input/Icons.d.ts +6 -0
  180. package/password-input/Icons.js +35 -0
  181. package/password-input/PasswordInput.js +57 -123
  182. package/password-input/PasswordInput.stories.tsx +1 -33
  183. package/password-input/PasswordInput.test.js +198 -0
  184. package/password-input/types.d.ts +21 -17
  185. package/progress-bar/ProgressBar.js +65 -91
  186. package/progress-bar/ProgressBar.stories.tsx +93 -0
  187. package/progress-bar/ProgressBar.test.js +93 -0
  188. package/progress-bar/types.d.ts +3 -3
  189. package/quick-nav/QuickNav.d.ts +4 -0
  190. package/quick-nav/QuickNav.js +94 -0
  191. package/quick-nav/QuickNav.stories.tsx +356 -0
  192. package/quick-nav/types.d.ts +21 -0
  193. package/quick-nav/types.js +5 -0
  194. package/radio-group/Radio.d.ts +1 -1
  195. package/radio-group/Radio.js +64 -80
  196. package/radio-group/RadioGroup.js +101 -139
  197. package/radio-group/RadioGroup.stories.tsx +171 -36
  198. package/radio-group/RadioGroup.test.js +691 -183
  199. package/radio-group/types.d.ts +89 -11
  200. package/resultset-table/Icons.d.ts +7 -0
  201. package/resultset-table/Icons.js +47 -0
  202. package/resultset-table/ResultsetTable.d.ts +7 -0
  203. package/resultset-table/ResultsetTable.js +167 -0
  204. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +136 -30
  205. package/resultset-table/ResultsetTable.test.js +371 -0
  206. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  207. package/resultset-table/types.js +5 -0
  208. package/select/Icons.d.ts +10 -0
  209. package/select/Icons.js +89 -0
  210. package/select/Listbox.d.ts +4 -0
  211. package/select/Listbox.js +143 -0
  212. package/select/Option.d.ts +4 -0
  213. package/select/Option.js +87 -0
  214. package/select/Select.js +229 -502
  215. package/select/Select.stories.tsx +603 -204
  216. package/select/Select.test.js +2370 -0
  217. package/select/types.d.ts +64 -25
  218. package/sidenav/Icons.d.ts +7 -0
  219. package/sidenav/Icons.js +47 -0
  220. package/sidenav/Sidenav.d.ts +6 -5
  221. package/sidenav/Sidenav.js +131 -71
  222. package/sidenav/Sidenav.stories.tsx +251 -151
  223. package/sidenav/Sidenav.test.js +37 -0
  224. package/sidenav/types.d.ts +52 -26
  225. package/slider/Slider.d.ts +2 -2
  226. package/slider/Slider.js +148 -180
  227. package/slider/Slider.test.js +254 -0
  228. package/slider/types.d.ts +11 -3
  229. package/spinner/Spinner.js +31 -75
  230. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  231. package/spinner/Spinner.test.js +55 -0
  232. package/spinner/types.d.ts +3 -3
  233. package/status-light/StatusLight.d.ts +4 -0
  234. package/status-light/StatusLight.js +51 -0
  235. package/status-light/StatusLight.stories.tsx +74 -0
  236. package/status-light/StatusLight.test.js +25 -0
  237. package/status-light/types.d.ts +17 -0
  238. package/status-light/types.js +5 -0
  239. package/switch/Switch.d.ts +2 -2
  240. package/switch/Switch.js +149 -114
  241. package/switch/Switch.stories.tsx +44 -67
  242. package/switch/Switch.test.js +180 -0
  243. package/switch/types.d.ts +13 -5
  244. package/table/ActionsCell.d.ts +4 -0
  245. package/table/ActionsCell.js +54 -0
  246. package/table/DropdownTheme.js +57 -0
  247. package/table/Table.d.ts +4 -1
  248. package/table/Table.js +27 -32
  249. package/table/Table.stories.tsx +615 -0
  250. package/table/Table.test.js +113 -0
  251. package/table/types.d.ts +45 -6
  252. package/tabs/Tab.d.ts +4 -0
  253. package/tabs/Tab.js +116 -0
  254. package/tabs/Tabs.d.ts +1 -1
  255. package/tabs/Tabs.js +316 -145
  256. package/tabs/Tabs.stories.tsx +120 -14
  257. package/tabs/Tabs.test.js +294 -0
  258. package/tabs/types.d.ts +29 -15
  259. package/tag/Tag.d.ts +1 -1
  260. package/tag/Tag.js +43 -85
  261. package/tag/Tag.stories.tsx +37 -27
  262. package/tag/Tag.test.js +49 -0
  263. package/tag/types.d.ts +25 -16
  264. package/text-input/Icons.d.ts +8 -0
  265. package/text-input/Icons.js +56 -0
  266. package/text-input/Suggestion.d.ts +4 -0
  267. package/text-input/Suggestion.js +67 -0
  268. package/text-input/Suggestions.d.ts +4 -0
  269. package/text-input/Suggestions.js +84 -0
  270. package/text-input/TextInput.js +326 -548
  271. package/text-input/TextInput.stories.tsx +281 -272
  272. package/text-input/TextInput.test.js +1739 -0
  273. package/text-input/types.d.ts +70 -24
  274. package/textarea/Textarea.js +85 -135
  275. package/textarea/Textarea.stories.tsx +174 -0
  276. package/textarea/Textarea.test.js +406 -0
  277. package/textarea/types.d.ts +27 -16
  278. package/toggle-group/ToggleGroup.d.ts +2 -2
  279. package/toggle-group/ToggleGroup.js +92 -105
  280. package/toggle-group/ToggleGroup.stories.tsx +53 -8
  281. package/toggle-group/ToggleGroup.test.js +137 -0
  282. package/toggle-group/types.d.ts +34 -17
  283. package/typography/Typography.d.ts +4 -0
  284. package/typography/Typography.js +23 -0
  285. package/typography/Typography.stories.tsx +198 -0
  286. package/typography/types.d.ts +18 -0
  287. package/typography/types.js +5 -0
  288. package/useTheme.d.ts +1135 -1
  289. package/useTheme.js +4 -11
  290. package/useTranslatedLabels.d.ts +85 -0
  291. package/useTranslatedLabels.js +14 -0
  292. package/utils/BaseTypography.d.ts +21 -0
  293. package/utils/BaseTypography.js +94 -0
  294. package/utils/FocusLock.d.ts +13 -0
  295. package/utils/FocusLock.js +124 -0
  296. package/wizard/Wizard.d.ts +1 -1
  297. package/wizard/Wizard.js +70 -101
  298. package/wizard/Wizard.stories.tsx +48 -19
  299. package/wizard/Wizard.test.js +114 -0
  300. package/wizard/types.d.ts +12 -8
  301. package/ThemeContext.d.ts +0 -15
  302. package/ThemeContext.js +0 -243
  303. package/V3Select/V3Select.js +0 -455
  304. package/V3Select/index.d.ts +0 -27
  305. package/V3Textarea/V3Textarea.js +0 -260
  306. package/V3Textarea/index.d.ts +0 -27
  307. package/card/ice-cream.jpg +0 -0
  308. package/common/RequiredComponent.js +0 -32
  309. package/date/Date.js +0 -373
  310. package/date/index.d.ts +0 -27
  311. package/input-text/Icons.js +0 -22
  312. package/input-text/InputText.js +0 -611
  313. package/input-text/index.d.ts +0 -36
  314. package/list/List.d.ts +0 -4
  315. package/list/List.js +0 -47
  316. package/list/List.stories.tsx +0 -95
  317. package/list/types.d.ts +0 -7
  318. package/number-input/NumberInputContext.d.ts +0 -4
  319. package/number-input/NumberInputContext.js +0 -19
  320. package/number-input/numberInputContextTypes.d.ts +0 -19
  321. package/progress-bar/ProgressBar.stories.jsx +0 -58
  322. package/radio/Radio.d.ts +0 -4
  323. package/radio/Radio.js +0 -174
  324. package/radio/Radio.stories.tsx +0 -192
  325. package/radio/types.d.ts +0 -54
  326. package/resultsetTable/ResultsetTable.d.ts +0 -4
  327. package/resultsetTable/ResultsetTable.js +0 -251
  328. package/row/Row.d.ts +0 -3
  329. package/row/Row.js +0 -127
  330. package/row/Row.stories.tsx +0 -237
  331. package/row/types.d.ts +0 -10
  332. package/slider/Slider.stories.tsx +0 -177
  333. package/stack/Stack.d.ts +0 -3
  334. package/stack/Stack.js +0 -97
  335. package/stack/Stack.stories.tsx +0 -164
  336. package/stack/types.d.ts +0 -9
  337. package/table/Table.stories.jsx +0 -277
  338. package/text/Text.d.ts +0 -7
  339. package/text/Text.js +0 -30
  340. package/text/Text.stories.tsx +0 -19
  341. package/textarea/Textarea.stories.jsx +0 -136
  342. package/toggle/Toggle.js +0 -186
  343. package/toggle/index.d.ts +0 -21
  344. package/upload/Upload.js +0 -201
  345. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  346. package/upload/buttons-upload/Icons.js +0 -40
  347. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  348. package/upload/dragAndDropArea/Icons.js +0 -39
  349. package/upload/file-upload/FileToUpload.js +0 -115
  350. package/upload/file-upload/Icons.js +0 -66
  351. package/upload/files-upload/FilesToUpload.js +0 -109
  352. package/upload/index.d.ts +0 -15
  353. package/upload/transaction/Icons.js +0 -160
  354. package/upload/transaction/Transaction.js +0 -104
  355. package/upload/transactions/Transactions.js +0 -94
  356. /package/{list → action-icon}/types.js +0 -0
  357. /package/{radio → badge}/types.js +0 -0
  358. /package/{resultsetTable → bulleted-list}/types.js +0 -0
  359. /package/{row → container}/types.js +0 -0
  360. /package/{stack → flex}/types.js +0 -0
  361. /package/{number-input/numberInputContextTypes.js → grid/types.js} +0 -0
@@ -1,173 +1,142 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
14
  var _uuid = require("uuid");
23
-
24
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
-
16
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
26
17
  var _Radio = _interopRequireDefault(require("./Radio"));
27
-
28
18
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
34
21
  var getInitialFocusIndex = function getInitialFocusIndex(innerOptions, value) {
35
22
  var initialSelectedOptionIndex = innerOptions.findIndex(function (option) {
36
23
  return option.value === value;
37
24
  });
38
25
  return initialSelectedOptionIndex !== -1 ? initialSelectedOptionIndex : 0;
39
26
  };
40
-
41
27
  var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
28
+ var _ref2;
42
29
  var label = _ref.label,
43
- name = _ref.name,
44
- helperText = _ref.helperText,
45
- options = _ref.options,
46
- _ref$disabled = _ref.disabled,
47
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
48
- _ref$optional = _ref.optional,
49
- optional = _ref$optional === void 0 ? false : _ref$optional,
50
- _ref$optionalItemLabe = _ref.optionalItemLabel,
51
- optionalItemLabel = _ref$optionalItemLabe === void 0 ? "N/A" : _ref$optionalItemLabe,
52
- _ref$readonly = _ref.readonly,
53
- readonly = _ref$readonly === void 0 ? false : _ref$readonly,
54
- _ref$stacking = _ref.stacking,
55
- stacking = _ref$stacking === void 0 ? "column" : _ref$stacking,
56
- defaultValue = _ref.defaultValue,
57
- value = _ref.value,
58
- onChange = _ref.onChange,
59
- onBlur = _ref.onBlur,
60
- error = _ref.error;
61
-
30
+ name = _ref.name,
31
+ helperText = _ref.helperText,
32
+ options = _ref.options,
33
+ _ref$disabled = _ref.disabled,
34
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
35
+ _ref$optional = _ref.optional,
36
+ optional = _ref$optional === void 0 ? false : _ref$optional,
37
+ optionalItemLabel = _ref.optionalItemLabel,
38
+ _ref$readOnly = _ref.readOnly,
39
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
40
+ _ref$stacking = _ref.stacking,
41
+ stacking = _ref$stacking === void 0 ? "column" : _ref$stacking,
42
+ defaultValue = _ref.defaultValue,
43
+ value = _ref.value,
44
+ onChange = _ref.onChange,
45
+ onBlur = _ref.onBlur,
46
+ error = _ref.error,
47
+ _ref$tabIndex = _ref.tabIndex,
48
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
62
49
  var _useState = (0, _react.useState)("radio-group-".concat((0, _uuid.v4)())),
63
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
64
- radioGroupId = _useState2[0];
65
-
50
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
51
+ radioGroupId = _useState2[0];
66
52
  var radioGroupLabelId = "label-".concat(radioGroupId);
67
53
  var errorId = "error-".concat(radioGroupId);
68
-
69
54
  var _useState3 = (0, _react.useState)(defaultValue),
70
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
71
- innerValue = _useState4[0],
72
- setInnerValue = _useState4[1];
73
-
55
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
56
+ innerValue = _useState4[0],
57
+ setInnerValue = _useState4[1];
74
58
  var _useState5 = (0, _react.useState)(true),
75
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
76
- firstTimeFocus = _useState6[0],
77
- setFirstTimeFocus = _useState6[1];
78
-
79
- var optionalItem = {
80
- label: optionalItemLabel,
81
- value: "",
82
- disabled: disabled
83
- };
59
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
60
+ firstTimeFocus = _useState6[0],
61
+ setFirstTimeFocus = _useState6[1];
62
+ var colorsTheme = (0, _useTheme["default"])();
63
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
84
64
  var innerOptions = (0, _react.useMemo)(function () {
85
- return optional ? [].concat((0, _toConsumableArray2["default"])(options), [optionalItem]) : options;
86
- }, [optional, options]);
87
-
65
+ return optional ? [].concat((0, _toConsumableArray2["default"])(options), [{
66
+ label: optionalItemLabel !== null && optionalItemLabel !== void 0 ? optionalItemLabel : translatedLabels.radioGroup.optionalItemLabelDefault,
67
+ value: "",
68
+ disabled: disabled
69
+ }]) : options;
70
+ }, [optional, options, optionalItemLabel, translatedLabels]);
88
71
  var _useState7 = (0, _react.useState)(getInitialFocusIndex(innerOptions, value !== null && value !== void 0 ? value : innerValue)),
89
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
90
- currentFocusIndex = _useState8[0],
91
- setCurrentFocusIndex = _useState8[1];
92
-
93
- var colorsTheme = (0, _useTheme["default"])();
72
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
73
+ currentFocusIndex = _useState8[0],
74
+ setCurrentFocusIndex = _useState8[1];
94
75
  var handleOnChange = (0, _react.useCallback)(function (newValue) {
95
76
  var currentValue = value !== null && value !== void 0 ? value : innerValue;
96
-
97
- if (newValue !== currentValue && !readonly) {
77
+ if (newValue !== currentValue && !readOnly) {
98
78
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
99
79
  onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
100
80
  }
101
- }, [value, innerValue, setInnerValue, onChange]);
102
-
103
- var handleOnBlur = function handleOnBlur(e) {
81
+ }, [value, innerValue, onChange]);
82
+ var handleOnBlur = function handleOnBlur(event) {
104
83
  // If the radio group loses the focus to an element not contained inside it...
105
- !e.currentTarget.contains(e.relatedTarget) && setFirstTimeFocus(true);
106
- var currentValue = value !== null && value !== void 0 ? value : innerValue;
107
- !optional && !Boolean(currentValue) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
108
- value: currentValue,
109
- error: "This field is required. Please, choose an option."
110
- }) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
111
- value: currentValue
112
- });
113
- };
114
-
115
- var setPreviousRadioChecked = function setPreviousRadioChecked() {
116
- if (!disabled) {
117
- setCurrentFocusIndex(function (currentFocusIndex) {
118
- var index = currentFocusIndex === 0 ? innerOptions.length - 1 : currentFocusIndex - 1;
119
-
120
- while (innerOptions[index].disabled) {
121
- index = index === 0 ? innerOptions.length - 1 : index - 1;
122
- }
123
-
124
- return index;
84
+ if (!event.currentTarget.contains(event.relatedTarget)) {
85
+ setFirstTimeFocus(true);
86
+ var currentValue = value !== null && value !== void 0 ? value : innerValue;
87
+ !optional && !Boolean(currentValue) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
88
+ value: currentValue,
89
+ error: translatedLabels.formFields.requiredSelectionErrorMessage
90
+ }) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
91
+ value: currentValue
125
92
  });
126
93
  }
127
94
  };
128
-
95
+ var handleOnFocus = function handleOnFocus() {
96
+ firstTimeFocus && setFirstTimeFocus(false);
97
+ };
98
+ var setPreviousRadioChecked = function setPreviousRadioChecked() {
99
+ setCurrentFocusIndex(function (currentFocusIndex) {
100
+ var index = currentFocusIndex === 0 ? innerOptions.length - 1 : currentFocusIndex - 1;
101
+ while (innerOptions[index].disabled) {
102
+ index = index === 0 ? innerOptions.length - 1 : index - 1;
103
+ }
104
+ handleOnChange(innerOptions[index].value);
105
+ return index;
106
+ });
107
+ };
129
108
  var setNextRadioChecked = function setNextRadioChecked() {
130
- if (!disabled) {
131
- setCurrentFocusIndex(function (currentFocusIndex) {
132
- var index = currentFocusIndex === innerOptions.length - 1 ? 0 : currentFocusIndex + 1;
133
-
134
- while (innerOptions[index].disabled) {
135
- index = index === innerOptions.length - 1 ? 0 : index + 1;
136
- }
137
-
138
- return index;
139
- });
140
- }
109
+ setCurrentFocusIndex(function (currentFocusIndex) {
110
+ var index = currentFocusIndex === innerOptions.length - 1 ? 0 : currentFocusIndex + 1;
111
+ while (innerOptions[index].disabled) {
112
+ index = index === innerOptions.length - 1 ? 0 : index + 1;
113
+ }
114
+ handleOnChange(innerOptions[index].value);
115
+ return index;
116
+ });
141
117
  };
142
-
143
118
  var handleOnKeyDown = function handleOnKeyDown(event) {
144
- switch (event.keyCode) {
145
- case 37: // arrow left
146
-
147
- case 38:
148
- // arrow up
119
+ switch (event.key) {
120
+ case "Left":
121
+ case "ArrowLeft":
122
+ case "Up":
123
+ case "ArrowUp":
149
124
  event.preventDefault();
150
125
  setPreviousRadioChecked();
151
126
  break;
152
-
153
- case 39: // arrow right
154
-
155
- case 40:
156
- // arrow down
127
+ case "Right":
128
+ case "ArrowRight":
129
+ case "Down":
130
+ case "ArrowDown":
157
131
  event.preventDefault();
158
132
  setNextRadioChecked();
159
133
  break;
160
-
161
- case 13: // enter
162
-
163
- case 32:
164
- // space
134
+ case " ":
165
135
  event.preventDefault();
166
136
  handleOnChange(innerOptions[currentFocusIndex].value);
167
137
  break;
168
138
  }
169
139
  };
170
-
171
140
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
172
141
  theme: colorsTheme.radioGroup
173
142
  }, /*#__PURE__*/_react["default"].createElement(RadioGroupContainer, {
@@ -176,47 +145,47 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
176
145
  id: radioGroupLabelId,
177
146
  helperText: helperText,
178
147
  disabled: disabled
179
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
148
+ }, label, optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, " ".concat(translatedLabels.formFields.optionalLabel))), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
180
149
  disabled: disabled
181
150
  }, helperText), /*#__PURE__*/_react["default"].createElement(RadioGroup, {
182
151
  onBlur: handleOnBlur,
152
+ onFocus: handleOnFocus,
183
153
  onKeyDown: handleOnKeyDown,
184
154
  stacking: stacking,
185
155
  role: "radiogroup",
186
156
  "aria-disabled": disabled,
187
157
  "aria-labelledby": radioGroupLabelId,
188
- "aria-invalid": error ? "true" : "false",
158
+ "aria-invalid": error ? true : false,
189
159
  "aria-errormessage": error ? errorId : undefined,
190
- "aria-required": !optional
160
+ "aria-required": !disabled && !readOnly && !optional,
161
+ "aria-readonly": readOnly,
162
+ "aria-orientation": stacking === "column" ? "vertical" : "horizontal"
191
163
  }, /*#__PURE__*/_react["default"].createElement(ValueInput, {
192
164
  name: name,
193
- value: value !== null && value !== void 0 ? value : innerValue,
194
- readOnly: true,
195
- "aria-hidden": "true"
165
+ disabled: disabled,
166
+ value: (_ref2 = value !== null && value !== void 0 ? value : innerValue) !== null && _ref2 !== void 0 ? _ref2 : "",
167
+ readOnly: true
196
168
  }), innerOptions.map(function (option, index) {
197
169
  return /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
198
- option: option,
199
- currentValue: value !== null && value !== void 0 ? value : innerValue,
170
+ key: "radio-".concat(index),
171
+ label: option.label,
172
+ checked: (value !== null && value !== void 0 ? value : innerValue) === option.value,
200
173
  onClick: function onClick() {
201
174
  handleOnChange(option.value);
202
175
  setCurrentFocusIndex(index);
203
176
  },
204
- onFocus: function onFocus() {
205
- !firstTimeFocus ? handleOnChange(option.value) : setFirstTimeFocus(false);
206
- },
207
177
  error: error,
208
178
  disabled: option.disabled || disabled,
209
179
  focused: currentFocusIndex === index,
210
- readonly: readonly
180
+ readOnly: readOnly,
181
+ tabIndex: tabIndex
211
182
  });
212
183
  })), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
213
184
  id: errorId,
214
185
  "aria-live": error ? "assertive" : "off"
215
186
  }, error)));
216
187
  });
217
-
218
- var RadioGroupContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n box-sizing: border-box;\n"])));
219
-
188
+ var RadioGroupContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: inline-flex;\n flex-direction: column;\n"])));
220
189
  var Label = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n ", "\n"])), function (props) {
221
190
  return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
222
191
  }, function (props) {
@@ -232,11 +201,9 @@ var Label = _styledComponents["default"].span(_templateObject2 || (_templateObje
232
201
  }, function (props) {
233
202
  return !props.helperText && "margin-bottom: ".concat(props.theme.groupLabelMargin);
234
203
  });
235
-
236
204
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
237
205
  return props.theme.optionalLabelFontWeight;
238
206
  });
239
-
240
207
  var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-bottom: ", ";\n"])), function (props) {
241
208
  return props.disabled ? props.theme.disabledHelperTextFontColor : props.theme.helperTextFontColor;
242
209
  }, function (props) {
@@ -252,22 +219,17 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
252
219
  }, function (props) {
253
220
  return props.theme.groupLabelMargin;
254
221
  });
255
-
256
- var RadioGroup = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n flex-direction: ", ";\n\n row-gap: ", ";\n column-gap: ", ";\n"])), function (props) {
222
+ var RadioGroup = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n flex-direction: ", ";\n row-gap: ", ";\n column-gap: ", ";\n"])), function (props) {
257
223
  return props.stacking;
258
224
  }, function (props) {
259
225
  return props.theme.groupVerticalGutter;
260
226
  }, function (props) {
261
227
  return props.theme.groupHorizontalGutter;
262
228
  });
263
-
264
229
  var ValueInput = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
265
-
266
230
  var Error = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.5em;\n margin-top: 0.5rem;\n"])), function (props) {
267
231
  return props.theme.errorMessageColor;
268
232
  }, function (props) {
269
233
  return props.theme.fontFamily;
270
234
  });
271
-
272
- var _default = DxcRadioGroup;
273
- exports["default"] = _default;
235
+ var _default = exports["default"] = DxcRadioGroup;
@@ -1,12 +1,16 @@
1
+ import React from "react";
1
2
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
2
3
  import Title from "../../.storybook/components/Title";
3
4
  import DxcRadioGroup from "./RadioGroup";
5
+ import { HalstackProvider } from "../HalstackContext";
4
6
 
5
7
  export default {
6
8
  title: "Radio Group",
7
9
  component: DxcRadioGroup,
8
10
  };
9
11
 
12
+ const single_option = [{ label: "Option A", value: "A" }];
13
+
10
14
  const options = [
11
15
  { label: "Option 1", value: "1" },
12
16
  { label: "Option 2", value: "2" },
@@ -14,66 +18,197 @@ const options = [
14
18
  { label: "Option 4", value: "4" },
15
19
  ];
16
20
 
17
- const single_disabled_options = [
18
- { label: "Option 1", value: "1" },
19
- { label: "Option 2", value: "2", disabled: true },
20
- { label: "Option 3", value: "3" },
21
- ];
21
+ const single_disabled_options = [{ label: "Option A", value: "A", disabled: true }];
22
+
23
+ const opinionatedTheme = {
24
+ radioGroup: {
25
+ baseColor: "#0086e6",
26
+ fontColor: "#000000",
27
+ },
28
+ };
22
29
 
23
30
  export const Chromatic = () => (
24
31
  <>
32
+ <Title title="Radio input states" theme="light" level={2} />
25
33
  <ExampleContainer>
26
- <Title title="Label only" theme="light" level={4} />
27
- <DxcRadioGroup label="Example of a label only" options={options} />
34
+ <Title title="Enabled" theme="light" level={4} />
35
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
28
36
  </ExampleContainer>
29
- <ExampleContainer>
30
- <Title title="Column" theme="light" level={4} />
31
- <DxcRadioGroup label="Example" helperText="Helper text" options={options} defaultValue="3" />
37
+ <ExampleContainer pseudoState="pseudo-hover">
38
+ <Title title="Hovered" theme="light" level={4} />
39
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
32
40
  </ExampleContainer>
33
- <ExampleContainer>
34
- <Title title="Row" theme="light" level={4} />
35
- <DxcRadioGroup label="Example" helperText="Helper text" options={options} stacking="row" />
41
+ <ExampleContainer pseudoState="pseudo-active">
42
+ <Title title="Active" theme="light" level={4} />
43
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
44
+ </ExampleContainer>
45
+ <ExampleContainer pseudoState="pseudo-focus">
46
+ <Title title="Focused" theme="light" level={4} />
47
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
36
48
  </ExampleContainer>
37
49
  <ExampleContainer>
38
50
  <Title title="Disabled" theme="light" level={4} />
39
- <DxcRadioGroup
40
- label="Disabled"
41
- error="Error message"
42
- helperText="Helper text"
43
- options={options}
44
- disabled
45
- optional
46
- defaultValue="2"
47
- />
51
+ <DxcRadioGroup label="Label" helperText="Helper text" options={single_disabled_options} defaultValue="A" />
48
52
  </ExampleContainer>
53
+ <Title title="Readonly radio input sub-states" theme="light" level={3} />
49
54
  <ExampleContainer>
50
- <Title title="Single disabled" theme="light" level={4} />
51
- <DxcRadioGroup label="Disabled" helperText="Helper text" options={single_disabled_options} defaultValue="3" />
55
+ <Title title="Enabled" theme="light" level={4} />
56
+ <DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readOnly />
57
+ </ExampleContainer>
58
+ <ExampleContainer pseudoState="pseudo-hover">
59
+ <Title title="Hovered" theme="light" level={4} />
60
+ <DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readOnly />
52
61
  </ExampleContainer>
62
+ <ExampleContainer pseudoState="pseudo-active">
63
+ <Title title="Active" theme="light" level={4} />
64
+ <DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readOnly />
65
+ </ExampleContainer>
66
+ <Title title="Error radio input sub-states" theme="light" level={3} />
53
67
  <ExampleContainer>
54
- <Title title="Optional" theme="light" level={4} />
68
+ <Title title="Enabled" theme="light" level={4} />
55
69
  <DxcRadioGroup
56
- label="Example"
57
- optionalItemLabel="No selection"
58
- optional
70
+ label="Label"
59
71
  helperText="Helper text"
60
- options={options}
61
- stacking="row"
72
+ options={single_option}
73
+ defaultValue="A"
74
+ error="Error message"
62
75
  />
63
76
  </ExampleContainer>
64
- <ExampleContainer>
65
- <Title title="Error" theme="light" level={4} />
77
+ <ExampleContainer pseudoState="pseudo-hover">
78
+ <Title title="Hovered" theme="light" level={4} />
66
79
  <DxcRadioGroup
67
- label="Example"
80
+ label="Label"
81
+ helperText="Helper text"
82
+ options={single_option}
83
+ defaultValue="A"
84
+ readOnly
68
85
  error="Error message"
86
+ />
87
+ </ExampleContainer>
88
+ <ExampleContainer pseudoState="pseudo-active">
89
+ <Title title="Active" theme="light" level={4} />
90
+ <DxcRadioGroup
91
+ label="Label"
69
92
  helperText="Helper text"
70
- options={options}
71
- defaultValue="2"
93
+ options={single_option}
94
+ defaultValue="A"
95
+ readOnly
96
+ error="Error message"
72
97
  />
73
98
  </ExampleContainer>
99
+ <Title title="Variants" theme="light" level={2} />
100
+ <ExampleContainer>
101
+ <Title title="Column" theme="light" level={4} />
102
+ <DxcRadioGroup label="Label" helperText="Helper text" options={options} />
103
+ </ExampleContainer>
104
+ <ExampleContainer>
105
+ <Title title="Row" theme="light" level={4} />
106
+ <DxcRadioGroup label="Label" helperText="Helper text" options={options} stacking="row" />
107
+ </ExampleContainer>
108
+ <ExampleContainer>
109
+ <Title title="Optional" theme="light" level={4} />
110
+ <DxcRadioGroup label="Label" optional helperText="Helper text" options={options} stacking="row" />
111
+ </ExampleContainer>
112
+ <ExampleContainer>
113
+ <Title title="Disabled" theme="light" level={4} />
114
+ <DxcRadioGroup label="Label" helperText="Helper text" options={options} disabled />
115
+ </ExampleContainer>
74
116
  <ExampleContainer>
75
117
  <Title title="Readonly" theme="light" level={4} />
76
- <DxcRadioGroup label="Example" readonly helperText="Helper text" options={options} defaultValue="2" />
118
+ <DxcRadioGroup label="Label" readOnly helperText="Helper text" options={options} />
119
+ </ExampleContainer>
120
+ <ExampleContainer>
121
+ <Title title="Error space reserved" theme="light" level={4} />
122
+ <DxcRadioGroup label="Label" error="" helperText="Helper text" options={options} />
123
+ </ExampleContainer>
124
+ <ExampleContainer>
125
+ <Title title="Error" theme="light" level={4} />
126
+ <DxcRadioGroup label="Label" error="Error message" helperText="Helper text" options={options} />
127
+ </ExampleContainer>
128
+ <Title title="Opinionated theme" theme="light" level={2} />
129
+ <ExampleContainer>
130
+ <Title title="Enabled" theme="light" level={4} />
131
+ <HalstackProvider theme={opinionatedTheme}>
132
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
133
+ </HalstackProvider>
134
+ </ExampleContainer>
135
+ <ExampleContainer pseudoState="pseudo-hover">
136
+ <Title title="Hovered" theme="light" level={4} />
137
+ <HalstackProvider theme={opinionatedTheme}>
138
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
139
+ </HalstackProvider>
140
+ </ExampleContainer>
141
+ <ExampleContainer pseudoState="pseudo-active">
142
+ <Title title="Active" theme="light" level={4} />
143
+ <HalstackProvider theme={opinionatedTheme}>
144
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
145
+ </HalstackProvider>
146
+ </ExampleContainer>
147
+ <ExampleContainer pseudoState="pseudo-focus">
148
+ <Title title="Focused" theme="light" level={4} />
149
+ <HalstackProvider theme={opinionatedTheme}>
150
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
151
+ </HalstackProvider>
152
+ </ExampleContainer>
153
+ <ExampleContainer>
154
+ <Title title="Disabled" theme="light" level={4} />
155
+ <HalstackProvider theme={opinionatedTheme}>
156
+ <DxcRadioGroup label="Label" helperText="Helper text" options={single_disabled_options} defaultValue="A" />
157
+ </HalstackProvider>
158
+ </ExampleContainer>
159
+ <ExampleContainer>
160
+ <Title title="Readonly enabled" theme="light" level={4} />
161
+ <HalstackProvider theme={opinionatedTheme}>
162
+ <DxcRadioGroup label="Label" options={single_option} defaultValue="A" readOnly />
163
+ </HalstackProvider>
164
+ </ExampleContainer>
165
+ <ExampleContainer pseudoState="pseudo-hover">
166
+ <Title title="Readonly hovered" theme="light" level={4} />
167
+ <HalstackProvider theme={opinionatedTheme}>
168
+ <DxcRadioGroup label="Label" options={single_option} defaultValue="A" readOnly />
169
+ </HalstackProvider>
170
+ </ExampleContainer>
171
+ <ExampleContainer pseudoState="pseudo-active">
172
+ <Title title="Readonly active" theme="light" level={4} />
173
+ <HalstackProvider theme={opinionatedTheme}>
174
+ <DxcRadioGroup label="Label" options={single_option} defaultValue="A" readOnly />
175
+ </HalstackProvider>
176
+ </ExampleContainer>
177
+ <ExampleContainer pseudoState="pseudo-focus">
178
+ <Title title="Readonly focused" theme="light" level={4} />
179
+ <HalstackProvider theme={opinionatedTheme}>
180
+ <DxcRadioGroup label="Label" options={single_option} defaultValue="A" readOnly />
181
+ </HalstackProvider>
182
+ </ExampleContainer>
183
+ <ExampleContainer>
184
+ <Title title="Enabled" theme="light" level={4} />
185
+ <HalstackProvider theme={opinionatedTheme}>
186
+ <DxcRadioGroup label="Label" options={single_option} defaultValue="A" error="Error message" />
187
+ </HalstackProvider>
188
+ </ExampleContainer>
189
+ <ExampleContainer pseudoState="pseudo-hover">
190
+ <Title title="Hovered" theme="light" level={4} />
191
+ <HalstackProvider theme={opinionatedTheme}>
192
+ <DxcRadioGroup label="Label" options={single_option} defaultValue="A" error="Error message" />
193
+ </HalstackProvider>
194
+ </ExampleContainer>
195
+ <ExampleContainer pseudoState="pseudo-active">
196
+ <Title title="Active" theme="light" level={4} />
197
+ <HalstackProvider theme={opinionatedTheme}>
198
+ <DxcRadioGroup label="Label" options={single_option} defaultValue="A" error="Error message" />
199
+ </HalstackProvider>
200
+ </ExampleContainer>
201
+ <ExampleContainer pseudoState="pseudo-focus">
202
+ <Title title="Focused" theme="light" level={4} />
203
+ <HalstackProvider theme={opinionatedTheme}>
204
+ <DxcRadioGroup label="Label" options={single_option} defaultValue="A" error="Error message" />
205
+ </HalstackProvider>
206
+ </ExampleContainer>
207
+ <ExampleContainer>
208
+ <Title title="Disabled" theme="light" level={4} />
209
+ <HalstackProvider theme={opinionatedTheme}>
210
+ <DxcRadioGroup label="Label" helperText="Helper text" options={options} disabled defaultValue="A" />
211
+ </HalstackProvider>
77
212
  </ExampleContainer>
78
213
  </>
79
214
  );