@dxc-technology/halstack-react 0.0.0-506547 → 0.0.0-5145b03

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 (125) hide show
  1. package/README.md +1 -1
  2. package/dist/BackgroundColorContext.js +46 -0
  3. package/dist/ThemeContext.js +211 -141
  4. package/dist/V3Textarea/V3Textarea.js +264 -0
  5. package/dist/accordion/Accordion.js +131 -46
  6. package/dist/accordion-group/AccordionGroup.js +36 -9
  7. package/dist/alert/Alert.js +180 -80
  8. package/dist/alert/index.d.ts +51 -0
  9. package/dist/badge/Badge.js +28 -7
  10. package/dist/box/Box.js +29 -18
  11. package/dist/button/Button.js +60 -21
  12. package/dist/card/Card.js +72 -35
  13. package/dist/checkbox/Checkbox.js +97 -26
  14. package/dist/chip/Chip.js +93 -31
  15. package/dist/common/utils.js +2 -22
  16. package/dist/common/variables.js +1406 -203
  17. package/dist/date/Date.js +74 -52
  18. package/dist/date-input/DateInput.js +400 -0
  19. package/dist/date-input/index.d.ts +95 -0
  20. package/dist/dialog/Dialog.js +54 -31
  21. package/dist/dropdown/Dropdown.js +173 -75
  22. package/dist/file-input/FileInput.js +644 -0
  23. package/dist/file-input/FileItem.js +280 -0
  24. package/dist/file-input/index.d.ts +81 -0
  25. package/dist/footer/Footer.js +73 -44
  26. package/dist/footer/dxc_logo.svg +15 -0
  27. package/dist/header/Header.js +91 -56
  28. package/dist/header/dxc_logo_black.svg +8 -0
  29. package/dist/heading/Heading.js +81 -16
  30. package/dist/input-text/InputText.js +250 -113
  31. package/dist/layout/ApplicationLayout.js +11 -12
  32. package/dist/link/Link.js +84 -34
  33. package/dist/main.d.ts +8 -0
  34. package/dist/main.js +71 -7
  35. package/dist/new-select/NewSelect.js +836 -0
  36. package/dist/new-select/index.d.ts +53 -0
  37. package/dist/new-textarea/NewTextarea.js +369 -0
  38. package/dist/new-textarea/index.d.ts +117 -0
  39. package/dist/number-input/NumberInput.js +136 -0
  40. package/dist/number-input/NumberInputContext.js +16 -0
  41. package/dist/number-input/index.d.ts +113 -0
  42. package/dist/paginator/Paginator.js +64 -29
  43. package/dist/password-input/PasswordInput.js +198 -0
  44. package/dist/password-input/index.d.ts +94 -0
  45. package/dist/progress-bar/ProgressBar.js +91 -33
  46. package/dist/radio/Radio.js +30 -11
  47. package/dist/resultsetTable/ResultsetTable.js +79 -48
  48. package/dist/select/Select.js +225 -144
  49. package/dist/sidenav/Sidenav.js +65 -11
  50. package/dist/slider/Slider.js +198 -61
  51. package/dist/spinner/Spinner.js +246 -57
  52. package/dist/switch/Switch.js +51 -19
  53. package/dist/table/Table.js +49 -21
  54. package/dist/tabs/Tabs.js +58 -17
  55. package/dist/tag/Tag.js +68 -35
  56. package/dist/text-input/TextInput.js +971 -0
  57. package/dist/text-input/index.d.ts +135 -0
  58. package/dist/toggle/Toggle.js +16 -19
  59. package/dist/toggle-group/ToggleGroup.js +141 -37
  60. package/dist/upload/Upload.js +16 -11
  61. package/dist/upload/buttons-upload/ButtonsUpload.js +31 -14
  62. package/dist/upload/dragAndDropArea/DragAndDropArea.js +78 -28
  63. package/dist/upload/file-upload/FileToUpload.js +50 -24
  64. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  65. package/dist/upload/readme.md +2 -2
  66. package/dist/upload/transaction/Transaction.js +44 -24
  67. package/dist/upload/transactions/Transactions.js +38 -20
  68. package/dist/wizard/Wizard.js +125 -42
  69. package/dist/wizard/invalid_icon.svg +4 -5
  70. package/dist/wizard/valid_icon.svg +4 -5
  71. package/package.json +6 -4
  72. package/test/AccordionGroup.test.js +16 -0
  73. package/test/Date.test.js +49 -45
  74. package/test/DateInput.test.js +242 -0
  75. package/test/Dropdown.test.js +15 -0
  76. package/test/FileInput.test.js +201 -0
  77. package/test/InputText.test.js +25 -17
  78. package/test/Link.test.js +3 -2
  79. package/test/NewTextarea.test.js +195 -0
  80. package/test/NumberInput.test.js +259 -0
  81. package/test/Paginator.test.js +1 -1
  82. package/test/PasswordInput.test.js +83 -0
  83. package/test/ResultsetTable.test.js +1 -2
  84. package/test/Select.test.js +44 -24
  85. package/test/Spinner.test.js +5 -0
  86. package/test/TextInput.test.js +732 -0
  87. package/test/ToggleGroup.test.js +5 -1
  88. package/test/Upload.test.js +5 -5
  89. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  90. package/dist/accordion/Accordion.stories.js +0 -207
  91. package/dist/accordion/readme.md +0 -96
  92. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  93. package/dist/accordion-group/readme.md +0 -70
  94. package/dist/alert/Alert.stories.js +0 -158
  95. package/dist/alert/close.svg +0 -4
  96. package/dist/alert/error.svg +0 -4
  97. package/dist/alert/info.svg +0 -4
  98. package/dist/alert/readme.md +0 -43
  99. package/dist/alert/success.svg +0 -4
  100. package/dist/alert/warning.svg +0 -4
  101. package/dist/button/Button.stories.js +0 -224
  102. package/dist/button/readme.md +0 -93
  103. package/dist/common/services/example-service.js +0 -10
  104. package/dist/common/services/example-service.test.js +0 -12
  105. package/dist/date/calendar.svg +0 -1
  106. package/dist/date/calendar_dark.svg +0 -1
  107. package/dist/dialog/Dialog.stories.js +0 -217
  108. package/dist/dialog/readme.md +0 -32
  109. package/dist/dropdown/Dropdown.stories.js +0 -249
  110. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  111. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  112. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  113. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  114. package/dist/dropdown/readme.md +0 -69
  115. package/dist/footer/Footer.stories.js +0 -94
  116. package/dist/footer/dxc_logo_wht.png +0 -0
  117. package/dist/header/dxc_logo_black.png +0 -0
  118. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  119. package/dist/header/dxc_logo_white.png +0 -0
  120. package/dist/input-text/InputText.stories.js +0 -209
  121. package/dist/select/Select.stories.js +0 -235
  122. package/dist/select/readme.md +0 -72
  123. package/dist/slider/Slider.stories.js +0 -241
  124. package/dist/textarea/Textarea.js +0 -224
  125. package/dist/toggle-group/readme.md +0 -82
@@ -0,0 +1,135 @@
1
+ type Size = "small" | "medium" | "large" | "fillParent";
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ type SVG = string | (HTMLElement & SVGElement);
10
+ type Action = {
11
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
12
+ icon: SVG;
13
+ };
14
+
15
+ type Props = {
16
+ /**
17
+ * Text to be placed above the input. This label will be used as the aria-label attribute of the list of suggestions.
18
+ */
19
+ label?: string;
20
+ /**
21
+ * Name attribute of the input element.
22
+ */
23
+ name?: string;
24
+ /**
25
+ * Value of the input. If undefined, the component will be uncontrolled and the value will be managed internally by the component.
26
+ */
27
+ value?: string;
28
+ /**
29
+ * Helper text to be placed above the input.
30
+ */
31
+ helperText?: string;
32
+ /**
33
+ * Text to be put as placeholder of the input.
34
+ */
35
+ placeholder?: string;
36
+ /**
37
+ * Action to be shown in the input. This is an object composed of an onClick function and an icon,
38
+ * being the latter either an inline svg or a URL to the image.
39
+ */
40
+ action?: Action;
41
+ /**
42
+ * If true, the input will have an action to clear the entered value.
43
+ */
44
+ clearable?: boolean;
45
+ /**
46
+ * If true, the component will be disabled.
47
+ */
48
+ disabled?: boolean;
49
+ /**
50
+ * If true, the input will be optional, showing '(Optional)'
51
+ * next to the label. Otherwise, the field will be considered required and an error will be
52
+ * passed as a parameter to the OnBlur and onChange functions when it has
53
+ * not been filled.
54
+ */
55
+ optional?: boolean;
56
+ /**
57
+ * Prefix to be placed before the input value.
58
+ */
59
+ prefix?: string;
60
+ /**
61
+ * Suffix to be placed after the input value.
62
+ */
63
+ suffix?: string;
64
+ /**
65
+ * This function will be called when the user types within the input
66
+ * element of the component. An object including the current value and
67
+ * the error (if the value entered is not valid) will be passed to this
68
+ * function. If there is no error, error will be null.
69
+ */
70
+ onChange?: (val: { value: string; error: string }) => void;
71
+ /**
72
+ * This function will be called when the input element loses the focus.
73
+ * An object including the input value and the error (if the value
74
+ * entered is not valid) will be passed to this function. If there is no error,
75
+ * error will be null.
76
+ */
77
+ onBlur?: (obj: { value: string; error: string }) => void;
78
+ /**
79
+ * If it is defined, the component will change its appearance, showing
80
+ * the error below the input component. If it is not defined, the error
81
+ * messages will be managed internally, but never displayed on its own.
82
+ */
83
+ error?: string;
84
+ /**
85
+ * These are the options to be displayed as suggestions. It can be either an array or a function:
86
+ * - Array: Array of options that will be filtered by the component.
87
+ * - Function: This function will be called when the user changes the value, we will send as a parameter the new value;
88
+ * apart from that this function should return one promise on which we should make 'then' to get the suggestions filtered.
89
+ */
90
+ suggestions?: string[] | (() => void);
91
+ /**
92
+ * Regular expression that defines the valid format allowed by the input.
93
+ * This will be checked both when the input element loses the focus and
94
+ * while typing within it. If the string entered does not match the
95
+ * pattern, the onBlur and onChange functions will be called with the
96
+ * current value and an internal error informing that this value does not
97
+ * match the pattern. If the pattern is met, the error parameter of both
98
+ * events will be null.
99
+ */
100
+ pattern?: string;
101
+ /**
102
+ * Specifies the minimun and maximum length allowed by the input.
103
+ * This will be checked both when the input element loses the
104
+ * focus and while typing within it. If the string entered does not
105
+ * comply the length, the onBlur and onChange functions will be called
106
+ * with the current value and an internal error informing that the value
107
+ * length does not comply the specified range. If a valid length is
108
+ * reached, the error parameter of both events will be null.
109
+ */
110
+ length?: { min?: number; max?: number };
111
+ /**
112
+ * HTML autocomplete attribute. Lets the user specify if any permission the user agent has to provide automated assistance in filling out the input value.
113
+ * Its value must be one of all the possible values of the HTML autocomplete attribute: 'on', 'off', 'email', 'username', 'new-password', ...
114
+ */
115
+ autocomplete?: string;
116
+ /**
117
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
118
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
119
+ */
120
+ margin?: Space | Margin;
121
+ /**
122
+ * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
123
+ */
124
+ size?: Size;
125
+ /**
126
+ * Value of the tabindex attribute.
127
+ */
128
+ tabIndex?: number;
129
+ /**
130
+ * Reference to the component.
131
+ */
132
+ ref?: React.RefObject<HTMLDivElement>;
133
+ };
134
+
135
+ export default function DxcTextInput(props: Props): JSX.Element;
@@ -15,7 +15,7 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
15
 
16
16
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
17
 
18
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = _interopRequireDefault(require("react"));
19
19
 
20
20
  var _lab = require("@material-ui/lab");
21
21
 
@@ -23,13 +23,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
25
25
 
26
- require("../common/OpenSans.css");
27
-
28
- var _variables = require("../common/variables.js");
29
-
30
26
  var _utils = require("../common/utils.js");
31
27
 
32
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
28
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
33
29
 
34
30
  function _templateObject4() {
35
31
  var data = (0, _taggedTemplateLiteral2["default"])([""]);
@@ -62,7 +58,7 @@ function _templateObject2() {
62
58
  }
63
59
 
64
60
  function _templateObject() {
65
- var data = (0, _taggedTemplateLiteral2["default"])(["\n & {\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n opacity: ", ";\n cursor: ", ";\n display: inline-block;\n width: ", ";\n }\n\n .MuiToggleButton-label {\n font-size: 14px;\n font-family: \"Open Sans\", sans-serif;\n color: ", ";\n }\n .MuiButtonBase-root {\n width: ", ";\n min-height: ", ";\n background-color: ", ";\n &:hover {\n background-color: ", ";\n .MuiToggleButton-label {\n color: ", ";\n }\n }\n }\n\n .MuiToggleButton-root {\n min-width: 42px;\n height: 43px;\n border: ", ";\n\n border-radius: 4px !important;\n }\n\n .MuiToggleButton-root.Mui-selected {\n background-color: ", ";\n &:hover {\n background-color: ", ";\n .MuiToggleButton-label {\n color: ", ";\n }\n }\n }\n\n .MuiToggleButton-root:last-child,\n .MuiToggleButton-root:first-child,\n .MuiToggleButton-root:not(:first-child) {\n padding: ", ";\n }\n\n .MuiTouchRipple-child {\n background-color: ", ";\n }\n"]);
61
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n & {\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n opacity: ", ";\n cursor: ", ";\n display: inline-block;\n width: ", ";\n }\n\n .MuiToggleButton-label {\n font-size: 14px;\n font-family: ", ";\n color: ", ";\n }\n .MuiButtonBase-root {\n width: ", ";\n min-height: ", ";\n background-color: ", ";\n &:hover {\n background-color: ", ";\n .MuiToggleButton-label {\n color: ", ";\n }\n }\n }\n\n .MuiToggleButton-root {\n min-width: 42px;\n height: 43px;\n border: ", ";\n\n border-radius: 4px !important;\n }\n\n .MuiToggleButton-root.Mui-selected {\n background-color: ", ";\n &:hover {\n background-color: ", ";\n .MuiToggleButton-label {\n color: ", ";\n }\n }\n }\n\n .MuiToggleButton-root:last-child,\n .MuiToggleButton-root:first-child,\n .MuiToggleButton-root:not(:first-child) {\n padding: ", ";\n }\n\n .MuiTouchRipple-child {\n background-color: ", ";\n }\n"]);
66
62
 
67
63
  _templateObject = function _templateObject() {
68
64
  return data;
@@ -92,8 +88,7 @@ var DxcToggle = function DxcToggle(_ref) {
92
88
  margin = _ref.margin,
93
89
  _ref$size = _ref.size,
94
90
  size = _ref$size === void 0 ? "fitContent" : _ref$size;
95
-
96
- var colorsTheme = (0, _react.useContext)(_ThemeContext["default"]) || _variables.globalTokens;
91
+ var colorsTheme = (0, _useTheme["default"])();
97
92
 
98
93
  var handlerToggleClick = function handlerToggleClick() {
99
94
  if (!disabled && typeof onClick === "function") {
@@ -149,21 +144,23 @@ var calculateWidth = function calculateWidth(margin, size) {
149
144
  };
150
145
 
151
146
  var DxcToggleContainer = _styledComponents["default"].div(_templateObject(), function (props) {
152
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
147
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? spaces[props.margin] : "0px";
153
148
  }, function (props) {
154
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
149
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? spaces[props.margin.top] : "";
155
150
  }, function (props) {
156
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
151
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? spaces[props.margin.right] : "";
157
152
  }, function (props) {
158
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
153
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? spaces[props.margin.bottom] : "";
159
154
  }, function (props) {
160
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
155
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? spaces[props.margin.left] : "";
161
156
  }, function (props) {
162
157
  return props.disabled ? "0.5" : "1";
163
158
  }, function (props) {
164
159
  return props.disabled ? "not-allowed" : "pointer";
165
160
  }, function (props) {
166
161
  return calculateWidth(props.margin, props.size);
162
+ }, function (props) {
163
+ return props.theme.fontFamily;
167
164
  }, function (props) {
168
165
  return props.brightness === "dark" && props.mode === "outlined" ? props.theme.white : props.theme.black;
169
166
  }, function (props) {
@@ -213,11 +210,11 @@ DxcToggle.propTypes = {
213
210
  disableRipple: _propTypes["default"].bool,
214
211
  onClick: _propTypes["default"].func,
215
212
  margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
216
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
217
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
218
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
219
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
220
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
213
+ top: _propTypes["default"].oneOf(Object.keys(spaces)),
214
+ bottom: _propTypes["default"].oneOf(Object.keys(spaces)),
215
+ left: _propTypes["default"].oneOf(Object.keys(spaces)),
216
+ right: _propTypes["default"].oneOf(Object.keys(spaces))
217
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(spaces)))])
221
218
  };
222
219
  var _default = DxcToggle;
223
220
  exports["default"] = _default;
@@ -21,18 +21,36 @@ var _react = _interopRequireWildcard(require("react"));
21
21
 
22
22
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
23
 
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
24
+ var _uuid = require("uuid");
25
25
 
26
- require("../common/OpenSans.css");
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
27
 
28
28
  var _variables = require("../common/variables.js");
29
29
 
30
- var _utils = require("../common/utils.js");
31
-
32
30
  var _useTheme = _interopRequireDefault(require("../useTheme.js"));
33
31
 
32
+ function _templateObject9() {
33
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n height: 24px;\n width: 24px;\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
34
+
35
+ _templateObject9 = function _templateObject9() {
36
+ return data;
37
+ };
38
+
39
+ return data;
40
+ }
41
+
42
+ function _templateObject8() {
43
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n height: 24px;\n width: 24px;\n margin-right: ", ";\n"]);
44
+
45
+ _templateObject8 = function _templateObject8() {
46
+ return data;
47
+ };
48
+
49
+ return data;
50
+ }
51
+
34
52
  function _templateObject7() {
35
- var data = (0, _taggedTemplateLiteral2["default"])(["\n height: 20px;\n width: 20px;\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
53
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n"]);
36
54
 
37
55
  _templateObject7 = function _templateObject7() {
38
56
  return data;
@@ -42,7 +60,7 @@ function _templateObject7() {
42
60
  }
43
61
 
44
62
  function _templateObject6() {
45
- var data = (0, _taggedTemplateLiteral2["default"])(["\n height: 20px;\n width: 20px;\n"]);
63
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"]);
46
64
 
47
65
  _templateObject6 = function _templateObject6() {
48
66
  return data;
@@ -52,7 +70,7 @@ function _templateObject6() {
52
70
  }
53
71
 
54
72
  function _templateObject5() {
55
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font: normal normal normal 14px/19px Open Sans;\n letter-spacing: 1.25px;\n text-transform: uppercase;\n"]);
73
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-right: ", ";\n\n ", "\n"]);
56
74
 
57
75
  _templateObject5 = function _templateObject5() {
58
76
  return data;
@@ -62,7 +80,7 @@ function _templateObject5() {
62
80
  }
63
81
 
64
82
  function _templateObject4() {
65
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n ", "\n"]);
83
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n opacity: 1;\n height: calc(48px - 4px - 4px);\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n border-color: ", ";\n background-color: ", ";\n padding: 4px;\n margin-top: ", ";\n"]);
66
84
 
67
85
  _templateObject4 = function _templateObject4() {
68
86
  return data;
@@ -72,7 +90,7 @@ function _templateObject4() {
72
90
  }
73
91
 
74
92
  function _templateObject3() {
75
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: \"Open Sans\", sans-serif;\n font-size: 16px;\n margin-bottom: 5px;\n"]);
93
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
76
94
 
77
95
  _templateObject3 = function _templateObject3() {
78
96
  return data;
@@ -82,7 +100,7 @@ function _templateObject3() {
82
100
  }
83
101
 
84
102
  function _templateObject2() {
85
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"]);
103
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"]);
86
104
 
87
105
  _templateObject2 = function _templateObject2() {
88
106
  return data;
@@ -92,7 +110,7 @@ function _templateObject2() {
92
110
  }
93
111
 
94
112
  function _templateObject() {
95
- var data = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n display: flex;\n flex-direction: column;\n ", "\n"]);
113
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"]);
96
114
 
97
115
  _templateObject = function _templateObject() {
98
116
  return data;
@@ -102,7 +120,9 @@ function _templateObject() {
102
120
  }
103
121
 
104
122
  var DxcToggleGroup = function DxcToggleGroup(_ref) {
105
- var value = _ref.value,
123
+ var label = _ref.label,
124
+ helperText = _ref.helperText,
125
+ value = _ref.value,
106
126
  onChange = _ref.onChange,
107
127
  _ref$disabled = _ref.disabled,
108
128
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
@@ -110,7 +130,9 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
110
130
  options = _ref$options === void 0 ? [] : _ref$options,
111
131
  margin = _ref.margin,
112
132
  _ref$multiple = _ref.multiple,
113
- multiple = _ref$multiple === void 0 ? false : _ref$multiple;
133
+ multiple = _ref$multiple === void 0 ? false : _ref$multiple,
134
+ _ref$tabIndex = _ref.tabIndex,
135
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
114
136
  var colorsTheme = (0, _useTheme["default"])();
115
137
 
116
138
  var _useState = (0, _react.useState)(multiple ? [] : null),
@@ -118,6 +140,10 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
118
140
  selectedValue = _useState2[0],
119
141
  setSelectedValue = _useState2[1];
120
142
 
143
+ var _useState3 = (0, _react.useState)("toggle-group-".concat((0, _uuid.v4)())),
144
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
145
+ toggleGroupId = _useState4[0];
146
+
121
147
  var handleToggleChange = function handleToggleChange(selectedOption) {
122
148
  var newSelectedOptions;
123
149
 
@@ -135,19 +161,25 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
135
161
  }
136
162
 
137
163
  setSelectedValue(newSelectedOptions);
138
- } else {
139
- setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
140
- }
164
+ } else setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
141
165
  } else if (multiple) {
142
166
  newSelectedOptions = value.map(function (v) {
143
167
  return v;
144
168
  });
145
- newSelectedOptions.push(selectedOption);
146
- }
147
169
 
148
- if (typeof onChange === "function") {
149
- onChange(multiple ? newSelectedOptions : selectedOption);
170
+ if (newSelectedOptions.includes(selectedOption)) {
171
+ var _index = newSelectedOptions.indexOf(selectedOption);
172
+
173
+ newSelectedOptions.splice(_index, 1);
174
+ } else newSelectedOptions.push(selectedOption);
150
175
  }
176
+
177
+ typeof onChange === "function" && onChange(multiple ? newSelectedOptions : selectedOption);
178
+ };
179
+
180
+ var handleKeyPress = function handleKeyPress(event, optionValue) {
181
+ event.preventDefault();
182
+ if (!disabled && (event.nativeEvent.code === "Enter" || event.nativeEvent.code === "Space")) handleToggleChange(optionValue);
151
183
  };
152
184
 
153
185
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
@@ -155,25 +187,71 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
155
187
  }, _react["default"].createElement(ToggleGroup, {
156
188
  margin: margin,
157
189
  disabled: disabled
158
- }, _react["default"].createElement(ToggleGroupContainer, null, options.map(function (option, i) {
190
+ }, _react["default"].createElement(Label, {
191
+ htmlFor: toggleGroupId,
192
+ disabled: disabled
193
+ }, label), _react["default"].createElement(HelperText, {
194
+ disabled: disabled
195
+ }, helperText), _react["default"].createElement(OptionsContainer, {
196
+ id: toggleGroupId,
197
+ role: multiple ? "group" : "radiogroup"
198
+ }, options.map(function (option, i) {
159
199
  return _react["default"].createElement(ToggleContainer, {
160
200
  selected: multiple ? value ? value.includes(option.value) : selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue,
201
+ role: multiple ? "switch" : "radio",
202
+ "aria-checked": multiple ? value ? value.includes(option.value) : selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue,
203
+ tabIndex: !disabled ? tabIndex : -1,
161
204
  onClick: function onClick() {
162
205
  return !disabled && handleToggleChange(option.value);
163
206
  },
164
207
  isFirst: i === 0,
165
208
  isLast: i === options.length - 1,
166
209
  isIcon: option.iconSrc || option.icon,
210
+ optionLabel: option.label,
167
211
  disabled: disabled,
212
+ onKeyPress: function onKeyPress(event) {
213
+ handleKeyPress(event, option.value);
214
+ },
168
215
  key: "toggle-".concat(i, "-").concat(option.label)
169
- }, option.icon ? _react["default"].createElement(IconContainer, null, (0, _typeof2["default"])(option.icon) === "object" ? option.icon : _react["default"].createElement(option.icon)) : option.iconSrc ? _react["default"].createElement(Icon, {
170
- src: option.iconSrc
171
- }) : _react["default"].createElement(LabelContainer, null, option.label));
216
+ }, _react["default"].createElement(OptionContent, null, option.icon && _react["default"].createElement(IconContainer, {
217
+ optionLabel: option.label
218
+ }, (0, _typeof2["default"])(option.icon) === "object" ? option.icon : _react["default"].createElement(option.icon)), option.iconSrc && _react["default"].createElement(Icon, {
219
+ src: option.iconSrc,
220
+ optionLabel: option.label
221
+ }), option.label && _react["default"].createElement(LabelContainer, null, option.label)));
172
222
  }))));
173
223
  };
174
224
 
175
- var ToggleGroup = _styledComponents["default"].div(_templateObject(), function (props) {
176
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "15px";
225
+ var Label = _styledComponents["default"].label(_templateObject(), function (props) {
226
+ return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
227
+ }, function (props) {
228
+ return props.theme.labelFontFamily;
229
+ }, function (props) {
230
+ return props.theme.labelFontSize;
231
+ }, function (props) {
232
+ return props.theme.labelFontStyle;
233
+ }, function (props) {
234
+ return props.theme.labelFontWeight;
235
+ }, function (props) {
236
+ return props.theme.labelLineHeight;
237
+ });
238
+
239
+ var HelperText = _styledComponents["default"].span(_templateObject2(), function (props) {
240
+ return props.disabled ? props.theme.disabledHelperTextFontcolor : props.theme.helperTextFontColor;
241
+ }, function (props) {
242
+ return props.theme.helperTextFontFamily;
243
+ }, function (props) {
244
+ return props.theme.helperTextFontSize;
245
+ }, function (props) {
246
+ return props.theme.helperTextFontStyle;
247
+ }, function (props) {
248
+ return props.theme.helperTextFontWeight;
249
+ }, function (props) {
250
+ return props.theme.helperTextLineHeight;
251
+ });
252
+
253
+ var ToggleGroup = _styledComponents["default"].div(_templateObject3(), function (props) {
254
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
177
255
  }, function (props) {
178
256
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
179
257
  }, function (props) {
@@ -182,26 +260,51 @@ var ToggleGroup = _styledComponents["default"].div(_templateObject(), function (
182
260
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
183
261
  }, function (props) {
184
262
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
185
- }, function (props) {
186
- return props.disabled && "opacity: ".concat(props.theme.disabledOpacity, ";");
187
263
  });
188
264
 
189
- var ToggleGroupContainer = _styledComponents["default"].div(_templateObject2());
265
+ var OptionsContainer = _styledComponents["default"].div(_templateObject4(), function (props) {
266
+ return props.theme.containerBorderThickness;
267
+ }, function (props) {
268
+ return props.theme.containerBorderStyle;
269
+ }, function (props) {
270
+ return props.theme.containerBorderRadius;
271
+ }, function (props) {
272
+ return props.theme.containerBorderColor;
273
+ }, function (props) {
274
+ return props.theme.containerBackgroundColor;
275
+ }, function (props) {
276
+ return props.theme.containerMarginTop;
277
+ });
190
278
 
191
- var ToggleGroupLabel = _styledComponents["default"].div(_templateObject3());
279
+ var ToggleContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
280
+ return !props.isLast && "4px";
281
+ }, function (props) {
282
+ return "\n background-color: ".concat(props.selected ? props.disabled ? props.theme.selectedDisabledBackgroundColor : props.theme.selectedBackgroundColor : props.disabled ? props.theme.unselectedDisabledBackgroundColor : props.theme.unselectedBackgroundColor, ";\n border-width: ").concat(props.theme.optionBorderThickness, ";\n border-style: ").concat(props.theme.optionBorderStyle, ";\n border-radius: ").concat(props.theme.optionBorderRadius, ";\n padding-left: ").concat(props.optionLabel && props.isIcon || props.optionLabel && !props.isIcon ? props.theme.labelPaddingLeft : props.theme.iconPaddingLeft, ";\n padding-right: ").concat(props.optionLabel && props.isIcon || props.optionLabel && !props.isIcon ? props.theme.labelPaddingRight : props.theme.iconPaddingRight, ";\n ").concat(!props.disabled ? ":hover {\n background-color: ".concat(props.selected ? props.theme.selectedHoverBackgroundColor : props.theme.unselectedHoverBackgroundColor, ";\n }\n :active {\n background-color: ").concat(props.selected ? props.theme.selectedActiveBackgroundColor : props.theme.unselectedActiveBackgroundColor, ";\n color: #ffffff;\n } \n :focus {\n border-color: transparent;\n box-shadow: 0 0 0 ").concat(props.theme.optionFocusBorderThickness, " ").concat(props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor, ";\n }\n &:focus-visible {\n outline: none;\n }\n cursor: pointer;\n color: ").concat(props.selected ? props.theme.selectedFontColor : props.theme.unselectedFontColor, ";\n") : "color: ".concat(props.selected ? props.theme.selectedDisabledFontColor : props.theme.unselectedDisabledFontColor, ";\n cursor: not-allowed;"), "\n ");
283
+ });
192
284
 
193
- var ToggleContainer = _styledComponents["default"].div(_templateObject4(), function (props) {
194
- return "\n background-color: ".concat(props.selected ? props.disabled ? props.theme.disabledSelectedBackgroundColor : props.theme.selectedBackgroundColor : props.disabled ? props.theme.disabledUnselectedBackgroundColor : props.theme.unselectedBackgroundColor, "\n border-radius: ").concat(props.isFirst ? "4px 0 0 4px" : props.isLast ? "0 4px 4px 0" : "0", ";\n color: ").concat(props.selected ? props.theme.selectedFontColor : props.theme.unselectedFontColor, ";\n padding: ").concat(props.isIcon ? "10px 12px" : "12px 30px", ";\n ").concat(!props.disabled ? "&:hover {\n background-color: ".concat(props.selected ? props.theme.selectedBackgroundHoverColor : props.theme.unselectedBackgroundHoverColor, ";\n color: ").concat(props.selected ? props.theme.selectedHoverFontColor : props.theme.unselectedHoverFontColor, " !important;\n }\n cursor: pointer;") : "cursor: not-allowed;", "\n ");
285
+ var LabelContainer = _styledComponents["default"].span(_templateObject6(), function (props) {
286
+ return props.theme.optionLabelFontFamily;
287
+ }, function (props) {
288
+ return props.theme.optionLabelFontSize;
289
+ }, function (props) {
290
+ return props.theme.optionLabelFontStyle;
291
+ }, function (props) {
292
+ return props.theme.optionLabelFontWeight;
195
293
  });
196
294
 
197
- var LabelContainer = _styledComponents["default"].span(_templateObject5());
295
+ var OptionContent = _styledComponents["default"].div(_templateObject7());
198
296
 
199
- var Icon = _styledComponents["default"].img(_templateObject6());
297
+ var Icon = _styledComponents["default"].img(_templateObject8(), function (props) {
298
+ return props.optionLabel && props.theme.iconMarginRight;
299
+ });
200
300
 
201
- var IconContainer = _styledComponents["default"].div(_templateObject7());
301
+ var IconContainer = _styledComponents["default"].div(_templateObject9(), function (props) {
302
+ return props.optionLabel && props.theme.iconMarginRight;
303
+ });
202
304
 
203
305
  DxcToggleGroup.propTypes = {
204
- //label: PropTypes.string,
306
+ label: _propTypes["default"].string,
307
+ helperText: _propTypes["default"].string,
205
308
  value: _propTypes["default"].any,
206
309
  onChange: _propTypes["default"].func,
207
310
  disabled: _propTypes["default"].bool,
@@ -217,7 +320,8 @@ DxcToggleGroup.propTypes = {
217
320
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
218
321
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
219
322
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
220
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
323
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
324
+ tabIndex: _propTypes["default"].number
221
325
  };
222
326
  var _default = DxcToggleGroup;
223
327
  exports["default"] = _default;
@@ -21,8 +21,6 @@ var _react = _interopRequireWildcard(require("react"));
21
21
 
22
22
  var _styledComponents = _interopRequireDefault(require("styled-components"));
23
23
 
24
- require("../common/OpenSans.css");
25
-
26
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
25
 
28
26
  var _DragAndDropArea = _interopRequireDefault(require("./dragAndDropArea/DragAndDropArea"));
@@ -34,7 +32,7 @@ var _Transactions = _interopRequireDefault(require("./transactions/Transactions"
34
32
  var _variables = require("../common/variables.js");
35
33
 
36
34
  function _templateObject() {
37
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: \"Open Sans\", sans-serif;\n max-width: 100%;\n height: 400px;\n box-shadow: 0px 3px 6px #00000029;\n border-radius: 4px;\n display: flex;\n flex-direction: row;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
35
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n max-width: 100%;\n height: 400px;\n box-shadow: 0px 3px 6px #00000029;\n border-radius: 4px;\n display: flex;\n flex-direction: row;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
38
36
 
39
37
  _templateObject = function _templateObject() {
40
38
  return data;
@@ -43,9 +41,11 @@ function _templateObject() {
43
41
  return data;
44
42
  }
45
43
 
46
- var DxcUpload = function DxcUpload(_ref) {
44
+ var V3DxcUpload = function V3DxcUpload(_ref) {
47
45
  var callbackUpload = _ref.callbackUpload,
48
- margin = _ref.margin;
46
+ margin = _ref.margin,
47
+ _ref$tabIndex = _ref.tabIndex,
48
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
49
49
 
50
50
  var _useState = (0, _react.useState)([]),
51
51
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -160,28 +160,33 @@ var DxcUpload = function DxcUpload(_ref) {
160
160
  return _react["default"].createElement(DXCUpload, {
161
161
  margin: margin
162
162
  }, transactionFiles && transactionFiles.length !== 0 && _react["default"].createElement(_Transactions["default"], {
163
+ tabIndexValue: tabIndex,
163
164
  transactions: transactionFiles
164
165
  }), filesToUpload && filesToUpload.length === 0 && transactionFiles && transactionFiles.length === 0 && _react["default"].createElement(_DragAndDropArea["default"], {
165
166
  dashed: false,
166
- addFile: onDragHandler
167
+ addFile: onDragHandler,
168
+ tabIndexValue: tabIndex
167
169
  }) || filesToUpload && filesToUpload.length === 0 && transactionFiles && transactionFiles.length !== 0 && _react["default"].createElement(_DragAndDropArea["default"], {
168
170
  dashed: true,
169
- addFile: onDragHandler
171
+ addFile: onDragHandler,
172
+ tabIndexValue: tabIndex
170
173
  }), filesToUpload && filesToUpload.length !== 0 && _react["default"].createElement(_FilesToUpload["default"], {
171
174
  filesToUpload: filesToUpload,
172
175
  addFile: onDragHandler,
173
- onUpload: onUploadHandler
176
+ onUpload: onUploadHandler,
177
+ tabIndexValue: tabIndex
174
178
  }));
175
179
  };
176
180
 
177
- DxcUpload.propTypes = {
181
+ V3DxcUpload.propTypes = {
178
182
  callbackUpload: _propTypes["default"].func,
179
183
  margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
180
184
  top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
181
185
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
182
186
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
183
187
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
184
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
188
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
189
+ tabIndex: _propTypes["default"].number
185
190
  };
186
191
 
187
192
  var DXCUpload = _styledComponents["default"].div(_templateObject(), function (props) {
@@ -196,5 +201,5 @@ var DXCUpload = _styledComponents["default"].div(_templateObject(), function (pr
196
201
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
197
202
  });
198
203
 
199
- var _default = DxcUpload;
204
+ var _default = V3DxcUpload;
200
205
  exports["default"] = _default;