@dxc-technology/halstack-react 0.0.0-b41d935 → 0.0.0-b4fde6b

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 (205) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1329 -5
  4. package/HalstackContext.js +117 -77
  5. package/accordion/Accordion.js +13 -24
  6. package/accordion/Accordion.stories.tsx +102 -13
  7. package/accordion/Accordion.test.js +1 -1
  8. package/accordion/types.d.ts +3 -3
  9. package/accordion-group/AccordionGroup.d.ts +4 -3
  10. package/accordion-group/AccordionGroup.js +23 -44
  11. package/accordion-group/AccordionGroup.test.js +1 -1
  12. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  13. package/accordion-group/AccordionGroupAccordion.js +43 -0
  14. package/accordion-group/types.d.ts +2 -2
  15. package/alert/Alert.js +4 -8
  16. package/alert/Alert.stories.tsx +28 -0
  17. package/alert/Alert.test.js +1 -1
  18. package/bleed/Bleed.stories.tsx +1 -0
  19. package/box/Box.d.ts +1 -1
  20. package/box/Box.js +7 -26
  21. package/box/Box.stories.tsx +38 -51
  22. package/box/Box.test.js +1 -1
  23. package/box/types.d.ts +0 -12
  24. package/bulleted-list/BulletedList.js +4 -2
  25. package/bulleted-list/BulletedList.stories.tsx +7 -1
  26. package/bulleted-list/types.d.ts +31 -4
  27. package/button/Button.js +13 -16
  28. package/button/Button.stories.tsx +151 -9
  29. package/button/Button.test.js +1 -1
  30. package/button/types.d.ts +3 -3
  31. package/card/Card.js +12 -13
  32. package/card/Card.stories.tsx +12 -13
  33. package/card/Card.test.js +1 -1
  34. package/checkbox/Checkbox.d.ts +2 -2
  35. package/checkbox/Checkbox.js +7 -6
  36. package/checkbox/Checkbox.stories.tsx +52 -0
  37. package/checkbox/Checkbox.test.js +1 -1
  38. package/checkbox/types.d.ts +6 -2
  39. package/chip/Chip.js +28 -49
  40. package/chip/Chip.stories.tsx +121 -26
  41. package/chip/Chip.test.js +3 -5
  42. package/common/OpenSans.css +68 -80
  43. package/common/coreTokens.d.ts +146 -0
  44. package/common/coreTokens.js +167 -0
  45. package/common/utils.d.ts +1 -0
  46. package/common/utils.js +4 -4
  47. package/common/variables.d.ts +1482 -0
  48. package/common/variables.js +981 -1129
  49. package/date-input/Calendar.d.ts +4 -0
  50. package/date-input/Calendar.js +258 -0
  51. package/date-input/DateInput.js +134 -237
  52. package/date-input/DateInput.stories.tsx +199 -33
  53. package/date-input/DateInput.test.js +494 -138
  54. package/date-input/DatePicker.d.ts +4 -0
  55. package/date-input/DatePicker.js +146 -0
  56. package/date-input/Icons.d.ts +6 -0
  57. package/date-input/Icons.js +75 -0
  58. package/date-input/YearPicker.d.ts +4 -0
  59. package/date-input/YearPicker.js +126 -0
  60. package/date-input/types.d.ts +51 -0
  61. package/dialog/Dialog.d.ts +1 -1
  62. package/dialog/Dialog.js +55 -86
  63. package/dialog/Dialog.stories.tsx +145 -217
  64. package/dialog/Dialog.test.js +302 -3
  65. package/dialog/types.d.ts +0 -13
  66. package/dropdown/Dropdown.js +37 -37
  67. package/dropdown/Dropdown.stories.tsx +210 -84
  68. package/dropdown/Dropdown.test.js +20 -24
  69. package/dropdown/DropdownMenu.js +12 -18
  70. package/dropdown/DropdownMenuItem.js +4 -17
  71. package/dropdown/types.d.ts +3 -3
  72. package/file-input/FileInput.d.ts +2 -2
  73. package/file-input/FileInput.js +14 -15
  74. package/file-input/FileInput.stories.tsx +85 -2
  75. package/file-input/FileInput.test.js +1 -42
  76. package/file-input/FileItem.js +1 -0
  77. package/file-input/types.d.ts +4 -0
  78. package/flex/Flex.js +4 -2
  79. package/flex/Flex.stories.tsx +35 -26
  80. package/flex/types.d.ts +70 -5
  81. package/footer/Footer.d.ts +1 -1
  82. package/footer/Footer.js +8 -23
  83. package/footer/Footer.stories.tsx +18 -15
  84. package/footer/Footer.test.js +14 -26
  85. package/footer/types.d.ts +0 -6
  86. package/grid/Grid.d.ts +7 -0
  87. package/grid/Grid.js +91 -0
  88. package/grid/Grid.stories.tsx +219 -0
  89. package/grid/types.d.ts +115 -0
  90. package/header/Header.d.ts +3 -2
  91. package/header/Header.js +21 -23
  92. package/header/Header.stories.tsx +149 -6
  93. package/header/Header.test.js +2 -2
  94. package/header/types.d.ts +2 -2
  95. package/heading/Heading.js +1 -1
  96. package/heading/Heading.test.js +1 -1
  97. package/inset/Inset.stories.tsx +2 -1
  98. package/layout/ApplicationLayout.d.ts +4 -4
  99. package/layout/ApplicationLayout.js +1 -1
  100. package/layout/types.d.ts +2 -3
  101. package/link/Link.js +4 -4
  102. package/link/Link.stories.tsx +60 -0
  103. package/link/Link.test.js +2 -4
  104. package/link/types.d.ts +2 -2
  105. package/main.d.ts +3 -2
  106. package/main.js +9 -1
  107. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  108. package/{tabs-nav → nav-tabs}/NavTabs.js +8 -11
  109. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +110 -6
  110. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  111. package/{tabs-nav → nav-tabs}/Tab.js +48 -32
  112. package/{tabs-nav → nav-tabs}/types.d.ts +8 -9
  113. package/nav-tabs/types.js +5 -0
  114. package/number-input/NumberInput.test.js +6 -7
  115. package/package.json +8 -13
  116. package/paginator/Icons.d.ts +5 -0
  117. package/paginator/Icons.js +16 -28
  118. package/paginator/Paginator.js +7 -15
  119. package/paginator/Paginator.stories.tsx +24 -0
  120. package/paginator/Paginator.test.js +57 -47
  121. package/paragraph/Paragraph.d.ts +3 -4
  122. package/paragraph/Paragraph.js +5 -5
  123. package/password-input/PasswordInput.test.js +1 -1
  124. package/progress-bar/ProgressBar.d.ts +2 -2
  125. package/progress-bar/ProgressBar.js +5 -5
  126. package/progress-bar/ProgressBar.stories.jsx +35 -2
  127. package/progress-bar/ProgressBar.test.js +1 -1
  128. package/progress-bar/types.d.ts +4 -3
  129. package/quick-nav/QuickNav.stories.tsx +14 -0
  130. package/radio-group/Radio.js +10 -10
  131. package/radio-group/RadioGroup.js +8 -10
  132. package/radio-group/RadioGroup.stories.tsx +131 -18
  133. package/radio-group/RadioGroup.test.js +1 -1
  134. package/resultsetTable/Icons.d.ts +7 -0
  135. package/resultsetTable/Icons.js +51 -0
  136. package/resultsetTable/ResultsetTable.js +49 -106
  137. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  138. package/resultsetTable/ResultsetTable.test.js +41 -64
  139. package/resultsetTable/types.d.ts +1 -1
  140. package/select/Listbox.d.ts +1 -1
  141. package/select/Listbox.js +5 -34
  142. package/select/Option.js +11 -24
  143. package/select/Select.js +56 -35
  144. package/select/Select.stories.tsx +494 -150
  145. package/select/Select.test.js +76 -81
  146. package/select/types.d.ts +2 -2
  147. package/sidenav/Icons.d.ts +7 -0
  148. package/sidenav/Icons.js +51 -0
  149. package/sidenav/Sidenav.d.ts +2 -2
  150. package/sidenav/Sidenav.js +66 -96
  151. package/sidenav/Sidenav.stories.tsx +165 -63
  152. package/sidenav/types.d.ts +21 -18
  153. package/slider/Slider.d.ts +2 -2
  154. package/slider/Slider.js +11 -11
  155. package/slider/Slider.stories.tsx +57 -0
  156. package/slider/Slider.test.js +1 -1
  157. package/slider/types.d.ts +6 -2
  158. package/spinner/Spinner.js +17 -23
  159. package/spinner/Spinner.stories.jsx +53 -27
  160. package/spinner/Spinner.test.js +1 -1
  161. package/switch/Switch.d.ts +3 -3
  162. package/switch/Switch.js +7 -6
  163. package/switch/Switch.stories.tsx +33 -0
  164. package/switch/Switch.test.js +1 -1
  165. package/switch/types.d.ts +8 -3
  166. package/table/Table.js +2 -2
  167. package/table/Table.stories.jsx +80 -1
  168. package/table/Table.test.js +2 -2
  169. package/tabs/Tab.js +12 -15
  170. package/tabs/Tabs.js +11 -17
  171. package/tabs/Tabs.stories.tsx +45 -5
  172. package/tabs/Tabs.test.js +4 -5
  173. package/tabs/types.d.ts +2 -2
  174. package/tag/Tag.js +7 -9
  175. package/tag/Tag.stories.tsx +14 -1
  176. package/tag/Tag.test.js +1 -1
  177. package/text-input/Suggestion.js +34 -7
  178. package/text-input/TextInput.js +11 -15
  179. package/text-input/TextInput.stories.tsx +93 -5
  180. package/text-input/TextInput.test.js +587 -635
  181. package/textarea/Textarea.js +3 -4
  182. package/textarea/Textarea.stories.jsx +60 -1
  183. package/textarea/Textarea.test.js +2 -4
  184. package/toggle-group/ToggleGroup.d.ts +2 -2
  185. package/toggle-group/ToggleGroup.js +7 -4
  186. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  187. package/toggle-group/ToggleGroup.test.js +1 -1
  188. package/toggle-group/types.d.ts +1 -1
  189. package/typography/Typography.d.ts +2 -2
  190. package/typography/Typography.js +14 -113
  191. package/typography/Typography.stories.tsx +1 -1
  192. package/useTheme.d.ts +1234 -1
  193. package/useTheme.js +1 -1
  194. package/useTranslatedLabels.d.ts +84 -1
  195. package/utils/BaseTypography.d.ts +21 -0
  196. package/utils/BaseTypography.js +108 -0
  197. package/utils/FocusLock.d.ts +13 -0
  198. package/utils/FocusLock.js +138 -0
  199. package/wizard/Wizard.js +2 -2
  200. package/wizard/Wizard.stories.tsx +20 -0
  201. package/wizard/Wizard.test.js +1 -1
  202. package/wizard/types.d.ts +5 -6
  203. package/common/RequiredComponent.js +0 -32
  204. /package/{tabs-nav → grid}/types.js +0 -0
  205. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _ProgressBar = _interopRequireDefault(require("./ProgressBar"));
9
+ var _ProgressBar = _interopRequireDefault(require("./ProgressBar.tsx"));
10
10
 
11
11
  describe("ProgressBar component tests", function () {
12
12
  test("ProgressBar renders with label and helperText", function () {
@@ -1,11 +1,11 @@
1
- export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- export declare type Size = {
1
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ declare type Size = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- export declare type Props = {
8
+ declare type Props = {
9
9
  /**
10
10
  * Text to be placed above the progress bar.
11
11
  */
@@ -34,3 +34,4 @@ export declare type Props = {
34
34
  */
35
35
  margin?: Space | Size;
36
36
  };
37
+ export default Props;
@@ -5,12 +5,20 @@ import DxcHeading from "../heading/Heading";
5
5
  import DxcParagraph from "../paragraph/Paragraph";
6
6
  import Title from "../../.storybook/components/Title";
7
7
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
8
+ import { HalstackProvider } from "../HalstackContext";
8
9
 
9
10
  export default {
10
11
  title: "QuickNav",
11
12
  component: DxcQuickNav,
12
13
  };
13
14
 
15
+ const opinionatedTheme = {
16
+ quickNav: {
17
+ fontColor: "#666666",
18
+ accentColor: "#9a6bb2",
19
+ },
20
+ };
21
+
14
22
  const defaultLinks = [
15
23
  {
16
24
  label: "Overview",
@@ -315,6 +323,12 @@ export const Chromatic = () => (
315
323
  </QuickNavContainer>
316
324
  </Container>
317
325
  </ExampleContainer>
326
+ <Title title="Opinionated theme" level={2} />
327
+ <ExampleContainer>
328
+ <HalstackProvider theme={opinionatedTheme}>
329
+ <DxcQuickNav links={defaultLinks} />
330
+ </HalstackProvider>
331
+ </ExampleContainer>
318
332
  </>
319
333
  );
320
334
 
@@ -21,7 +21,9 @@ var _uuid = require("uuid");
21
21
 
22
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
24
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
25
+
26
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
25
27
 
26
28
  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); }
27
29
 
@@ -56,7 +58,7 @@ var DxcRadio = function DxcRadio(_ref) {
56
58
  firstUpdate = _useState4[0],
57
59
  setFirstUpdate = _useState4[1];
58
60
 
59
- (0, _react.useLayoutEffect)(function () {
61
+ (0, _react.useEffect)(function () {
60
62
  var _ref$current2;
61
63
 
62
64
  // Don't apply in the first render
@@ -69,7 +71,7 @@ var DxcRadio = function DxcRadio(_ref) {
69
71
  }, [focused]);
70
72
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
71
73
  theme: colorsTheme.radioGroup
72
- }, /*#__PURE__*/_react["default"].createElement(RadioMainContainer, null, /*#__PURE__*/_react["default"].createElement(RadioContainer, {
74
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(RadioContainer, {
73
75
  error: error,
74
76
  disabled: disabled,
75
77
  readonly: readonly,
@@ -107,11 +109,9 @@ var getRadioInputStateColor = function getRadioInputStateColor(props, state) {
107
109
  }
108
110
  };
109
111
 
110
- var RadioMainContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"])));
111
-
112
- var RadioInputContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n"])));
112
+ var RadioInputContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n"])));
113
113
 
114
- var RadioInput = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border: 2px solid ", ";\n border-radius: 50%;\n\n &:focus {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n ", "\n"])), function (props) {
114
+ var RadioInput = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border: 2px solid ", ";\n border-radius: 50%;\n\n &:focus {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n ", "\n"])), function (props) {
115
115
  return getRadioInputStateColor(props, "enabled");
116
116
  }, function (props) {
117
117
  return props.theme.focusBorderColor;
@@ -119,11 +119,11 @@ var RadioInput = _styledComponents["default"].span(_templateObject3 || (_templat
119
119
  return props.disabled && "pointer-events: none;";
120
120
  });
121
121
 
122
- var Dot = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background-color: ", ";\n"])), function (props) {
122
+ var Dot = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background-color: ", ";\n"])), function (props) {
123
123
  return getRadioInputStateColor(props, "enabled");
124
124
  });
125
125
 
126
- var Label = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n ", "\n"])), function (props) {
126
+ var Label = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n ", "\n"])), function (props) {
127
127
  return props.theme.radioInputLabelMargin;
128
128
  }, function (props) {
129
129
  return props.theme.fontFamily;
@@ -139,7 +139,7 @@ var Label = _styledComponents["default"].span(_templateObject5 || (_templateObje
139
139
  return props.disabled ? "color: ".concat(props.theme.disabledRadioInputLabelFontColor, ";") : "color: ".concat(props.theme.radioInputLabelFontColor);
140
140
  });
141
141
 
142
- var RadioContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n cursor: ", ";\n\n &:hover {\n ", " {\n border-color: ", ";\n }\n ", " {\n background-color: ", ";\n }\n }\n &:active {\n ", " {\n border-color: ", ";\n }\n ", " {\n background-color: ", ";\n }\n }\n"])), function (props) {
142
+ var RadioContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n cursor: ", ";\n\n &:hover {\n ", " {\n border-color: ", ";\n }\n ", " {\n background-color: ", ";\n }\n }\n &:active {\n ", " {\n border-color: ", ";\n }\n ", " {\n background-color: ", ";\n }\n }\n"])), function (props) {
143
143
  return props.disabled ? "not-allowed" : props.readonly ? "default" : "pointer";
144
144
  }, RadioInput, function (props) {
145
145
  return !props.disabled && getRadioInputStateColor(props, "hover");
@@ -83,14 +83,13 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
83
83
 
84
84
  var colorsTheme = (0, _useTheme["default"])();
85
85
  var translatedLabels = (0, _useTranslatedLabels["default"])();
86
- var optionalItem = {
87
- label: optionalItemLabel || translatedLabels.radioGroup.optionalItemLabelDefault,
88
- value: "",
89
- disabled: disabled
90
- };
91
86
  var innerOptions = (0, _react.useMemo)(function () {
92
- return optional ? [].concat((0, _toConsumableArray2["default"])(options), [optionalItem]) : options;
93
- }, [optional, options]);
87
+ return optional ? [].concat((0, _toConsumableArray2["default"])(options), [{
88
+ label: optionalItemLabel !== null && optionalItemLabel !== void 0 ? optionalItemLabel : translatedLabels.radioGroup.optionalItemLabelDefault,
89
+ value: "",
90
+ disabled: disabled
91
+ }]) : options;
92
+ }, [optional, options, optionalItemLabel, translatedLabels]);
94
93
 
95
94
  var _useState7 = (0, _react.useState)(getInitialFocusIndex(innerOptions, value !== null && value !== void 0 ? value : innerValue)),
96
95
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
@@ -202,8 +201,7 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
202
201
  name: name,
203
202
  disabled: disabled,
204
203
  value: (_ref2 = value !== null && value !== void 0 ? value : innerValue) !== null && _ref2 !== void 0 ? _ref2 : "",
205
- readOnly: true,
206
- "aria-hidden": "true"
204
+ readOnly: true
207
205
  }), innerOptions.map(function (option, index) {
208
206
  return /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
209
207
  key: "radio-".concat(index),
@@ -225,7 +223,7 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
225
223
  }, error)));
226
224
  });
227
225
 
228
- var RadioGroupContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n box-sizing: border-box;\n"])));
226
+ var RadioGroupContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: inline-flex;\n flex-direction: column;\n"])));
229
227
 
230
228
  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) {
231
229
  return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
@@ -2,6 +2,7 @@ import React from "react";
2
2
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import DxcRadioGroup from "./RadioGroup";
5
+ import { HalstackProvider } from "../HalstackContext";
5
6
 
6
7
  export default {
7
8
  title: "Radio Group",
@@ -19,83 +20,195 @@ const options = [
19
20
 
20
21
  const single_disabled_options = [{ label: "Option A", value: "A", disabled: true }];
21
22
 
23
+ const opinionatedTheme = {
24
+ radioGroup: {
25
+ baseColor: "#0086e6",
26
+ fontColor: "#000000",
27
+ },
28
+ };
29
+
22
30
  export const Chromatic = () => (
23
31
  <>
24
32
  <Title title="Radio input states" theme="light" level={2} />
25
33
  <ExampleContainer>
26
34
  <Title title="Enabled" theme="light" level={4} />
27
- <DxcRadioGroup label="Example" defaultValue="A" options={single_option} />
35
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
28
36
  </ExampleContainer>
29
37
  <ExampleContainer pseudoState="pseudo-hover">
30
38
  <Title title="Hovered" theme="light" level={4} />
31
- <DxcRadioGroup label="Example" defaultValue="A" options={single_option} />
39
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
32
40
  </ExampleContainer>
33
41
  <ExampleContainer pseudoState="pseudo-active">
34
42
  <Title title="Active" theme="light" level={4} />
35
- <DxcRadioGroup label="Example" defaultValue="A" options={single_option} />
43
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
36
44
  </ExampleContainer>
37
45
  <ExampleContainer pseudoState="pseudo-focus">
38
46
  <Title title="Focused" theme="light" level={4} />
39
- <DxcRadioGroup label="Example" defaultValue="A" options={single_option} />
47
+ <DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
40
48
  </ExampleContainer>
41
49
  <ExampleContainer>
42
50
  <Title title="Disabled" theme="light" level={4} />
43
- <DxcRadioGroup label="Example" options={single_disabled_options} defaultValue="A" />
51
+ <DxcRadioGroup label="Label" helperText="Helper text" options={single_disabled_options} defaultValue="A" />
44
52
  </ExampleContainer>
45
53
  <Title title="Readonly radio input sub-states" theme="light" level={3} />
46
54
  <ExampleContainer>
47
55
  <Title title="Enabled" theme="light" level={4} />
48
- <DxcRadioGroup label="Example" options={single_option} defaultValue="A" readonly />
56
+ <DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readonly />
49
57
  </ExampleContainer>
50
58
  <ExampleContainer pseudoState="pseudo-hover">
51
59
  <Title title="Hovered" theme="light" level={4} />
52
- <DxcRadioGroup label="Example" options={single_option} defaultValue="A" readonly />
60
+ <DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readonly />
53
61
  </ExampleContainer>
54
62
  <ExampleContainer pseudoState="pseudo-active">
55
63
  <Title title="Active" theme="light" level={4} />
56
- <DxcRadioGroup label="Example" options={single_option} defaultValue="A" readonly />
64
+ <DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readonly />
57
65
  </ExampleContainer>
58
66
  <Title title="Error radio input sub-states" theme="light" level={3} />
59
67
  <ExampleContainer>
60
68
  <Title title="Enabled" theme="light" level={4} />
61
- <DxcRadioGroup label="Example" options={single_option} defaultValue="A" error="Error message" />
69
+ <DxcRadioGroup
70
+ label="Label"
71
+ helperText="Helper text"
72
+ options={single_option}
73
+ defaultValue="A"
74
+ error="Error message"
75
+ />
62
76
  </ExampleContainer>
63
77
  <ExampleContainer pseudoState="pseudo-hover">
64
78
  <Title title="Hovered" theme="light" level={4} />
65
- <DxcRadioGroup label="Example" options={single_option} defaultValue="A" readonly error="Error message" />
79
+ <DxcRadioGroup
80
+ label="Label"
81
+ helperText="Helper text"
82
+ options={single_option}
83
+ defaultValue="A"
84
+ readonly
85
+ error="Error message"
86
+ />
66
87
  </ExampleContainer>
67
88
  <ExampleContainer pseudoState="pseudo-active">
68
89
  <Title title="Active" theme="light" level={4} />
69
- <DxcRadioGroup label="Example" options={single_option} defaultValue="A" readonly error="Error message" />
90
+ <DxcRadioGroup
91
+ label="Label"
92
+ helperText="Helper text"
93
+ options={single_option}
94
+ defaultValue="A"
95
+ readonly
96
+ error="Error message"
97
+ />
70
98
  </ExampleContainer>
71
99
  <Title title="Variants" theme="light" level={2} />
72
100
  <ExampleContainer>
73
101
  <Title title="Column" theme="light" level={4} />
74
- <DxcRadioGroup label="Example" helperText="Helper text" options={options} />
102
+ <DxcRadioGroup label="Label" helperText="Helper text" options={options} />
75
103
  </ExampleContainer>
76
104
  <ExampleContainer>
77
105
  <Title title="Row" theme="light" level={4} />
78
- <DxcRadioGroup label="Example" helperText="Helper text" options={options} stacking="row" />
106
+ <DxcRadioGroup label="Label" helperText="Helper text" options={options} stacking="row" />
79
107
  </ExampleContainer>
80
108
  <ExampleContainer>
81
109
  <Title title="Optional" theme="light" level={4} />
82
- <DxcRadioGroup label="Example" optional helperText="Helper text" options={options} stacking="row" />
110
+ <DxcRadioGroup label="Label" optional helperText="Helper text" options={options} stacking="row" />
83
111
  </ExampleContainer>
84
112
  <ExampleContainer>
85
113
  <Title title="Disabled" theme="light" level={4} />
86
- <DxcRadioGroup label="Example" helperText="Helper text" options={options} disabled />
114
+ <DxcRadioGroup label="Label" helperText="Helper text" options={options} disabled />
87
115
  </ExampleContainer>
88
116
  <ExampleContainer>
89
117
  <Title title="Readonly" theme="light" level={4} />
90
- <DxcRadioGroup label="Example" readonly helperText="Helper text" options={options} />
118
+ <DxcRadioGroup label="Label" readonly helperText="Helper text" options={options} />
91
119
  </ExampleContainer>
92
120
  <ExampleContainer>
93
121
  <Title title="Error space reserved" theme="light" level={4} />
94
- <DxcRadioGroup label="Example" error="" helperText="Helper text" options={options} />
122
+ <DxcRadioGroup label="Label" error="" helperText="Helper text" options={options} />
95
123
  </ExampleContainer>
96
124
  <ExampleContainer>
97
125
  <Title title="Error" theme="light" level={4} />
98
- <DxcRadioGroup label="Example" error="Error message" helperText="Helper text" options={options} />
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>
99
212
  </ExampleContainer>
100
213
  </>
101
214
  );
@@ -73,7 +73,7 @@ describe("Radio Group component tests", function () {
73
73
  expect(error.getAttribute("aria-live")).toBe("off");
74
74
  radios.forEach(function (radio, index) {
75
75
  // if no option was previously selected, first option is the focusable one
76
- index === 0 ? expect(radio.tabIndex).toBe(0) : expect(radio.tabIndex).toBe(-1);
76
+ if (index === 0) expect(radio.tabIndex).toBe(0);else expect(radio.tabIndex).toBe(-1);
77
77
  expect(radio.getAttribute("aria-checked")).toBe("false");
78
78
  expect(radio.getAttribute("aria-disabled")).toBe("false");
79
79
  expect(radio.getAttribute("aria-labelledby")).toBe(getByText("Option 0".concat(index + 1)).id);
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const icons: {
3
+ arrowUp: JSX.Element;
4
+ arrowDown: JSX.Element;
5
+ bothArrows: JSX.Element;
6
+ };
7
+ export default icons;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var icons = {
13
+ arrowUp: /*#__PURE__*/_react["default"].createElement("svg", {
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ height: "24",
16
+ viewBox: "0 0 24 24",
17
+ width: "24",
18
+ fill: "currentColor"
19
+ }, /*#__PURE__*/_react["default"].createElement("path", {
20
+ d: "M0 0h24v24H0V0z",
21
+ fill: "none"
22
+ }), /*#__PURE__*/_react["default"].createElement("path", {
23
+ d: "M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"
24
+ })),
25
+ arrowDown: /*#__PURE__*/_react["default"].createElement("svg", {
26
+ xmlns: "http://www.w3.org/2000/svg",
27
+ height: "24",
28
+ viewBox: "0 0 24 24",
29
+ width: "24",
30
+ fill: "currentColor"
31
+ }, /*#__PURE__*/_react["default"].createElement("path", {
32
+ d: "M0 0h24v24H0V0z",
33
+ fill: "none"
34
+ }), /*#__PURE__*/_react["default"].createElement("path", {
35
+ d: "M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"
36
+ })),
37
+ bothArrows: /*#__PURE__*/_react["default"].createElement("svg", {
38
+ xmlns: "http://www.w3.org/2000/svg",
39
+ height: "24",
40
+ viewBox: "0 0 24 24",
41
+ width: "24",
42
+ fill: "currentColor"
43
+ }, /*#__PURE__*/_react["default"].createElement("path", {
44
+ d: "M0 0h24v24H0z",
45
+ fill: "none"
46
+ }), /*#__PURE__*/_react["default"].createElement("path", {
47
+ d: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"
48
+ }))
49
+ };
50
+ var _default = icons;
51
+ exports["default"] = _default;