@dxc-technology/halstack-react 0.0.0-b7f3ffd → 0.0.0-b915415

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 (224) hide show
  1. package/README.md +1 -1
  2. package/babel.config.js +0 -1
  3. package/dist/ThemeContext.js +134 -100
  4. package/dist/V3Select/V3Select.js +549 -0
  5. package/dist/V3Select/index.d.ts +27 -0
  6. package/dist/V3Textarea/V3Textarea.js +264 -0
  7. package/dist/V3Textarea/index.d.ts +27 -0
  8. package/dist/accordion/Accordion.js +80 -83
  9. package/dist/accordion/index.d.ts +28 -0
  10. package/dist/accordion-group/AccordionGroup.js +1 -3
  11. package/dist/accordion-group/index.d.ts +16 -0
  12. package/dist/alert/Alert.js +168 -83
  13. package/dist/alert/index.d.ts +51 -0
  14. package/dist/badge/Badge.js +3 -1
  15. package/dist/box/Box.js +1 -9
  16. package/dist/box/index.d.ts +25 -0
  17. package/dist/button/Button.js +32 -22
  18. package/dist/button/Button.stories.js +14 -211
  19. package/dist/button/index.d.ts +24 -0
  20. package/dist/card/Card.js +15 -8
  21. package/dist/card/index.d.ts +22 -0
  22. package/dist/checkbox/Checkbox.js +89 -23
  23. package/dist/checkbox/index.d.ts +24 -0
  24. package/dist/chip/Chip.js +63 -21
  25. package/dist/chip/index.d.ts +22 -0
  26. package/dist/common/variables.js +1114 -422
  27. package/dist/date/Date.js +60 -38
  28. package/dist/date/index.d.ts +27 -0
  29. package/dist/date-input/DateInput.js +400 -0
  30. package/dist/date-input/index.d.ts +95 -0
  31. package/dist/dialog/Dialog.js +44 -29
  32. package/dist/dialog/index.d.ts +18 -0
  33. package/dist/dropdown/Dropdown.js +162 -74
  34. package/dist/dropdown/index.d.ts +26 -0
  35. package/dist/file-input/FileInput.js +644 -0
  36. package/dist/file-input/FileItem.js +287 -0
  37. package/dist/file-input/index.d.ts +81 -0
  38. package/dist/footer/Footer.js +69 -53
  39. package/dist/footer/Icons.js +77 -0
  40. package/dist/footer/index.d.ts +25 -0
  41. package/dist/header/Header.js +123 -84
  42. package/dist/header/Icons.js +59 -0
  43. package/dist/header/index.d.ts +25 -0
  44. package/dist/heading/Heading.js +13 -5
  45. package/dist/heading/index.d.ts +17 -0
  46. package/dist/input-text/Icons.js +22 -0
  47. package/dist/input-text/InputText.js +159 -63
  48. package/dist/input-text/index.d.ts +36 -0
  49. package/dist/layout/ApplicationLayout.js +7 -11
  50. package/dist/layout/Icons.js +55 -0
  51. package/dist/link/Link.js +71 -46
  52. package/dist/link/index.d.ts +23 -0
  53. package/dist/main.d.ts +40 -0
  54. package/dist/main.js +63 -15
  55. package/dist/number-input/NumberInput.js +136 -0
  56. package/dist/number-input/NumberInputContext.js +16 -0
  57. package/dist/number-input/index.d.ts +113 -0
  58. package/dist/paginator/Icons.js +66 -0
  59. package/dist/paginator/Paginator.js +60 -38
  60. package/dist/paginator/index.d.ts +20 -0
  61. package/dist/password-input/PasswordInput.js +203 -0
  62. package/dist/password-input/index.d.ts +94 -0
  63. package/dist/progress-bar/ProgressBar.js +63 -27
  64. package/dist/progress-bar/index.d.ts +18 -0
  65. package/dist/radio/Radio.js +28 -9
  66. package/dist/radio/index.d.ts +23 -0
  67. package/dist/resultsetTable/ResultsetTable.js +64 -38
  68. package/dist/resultsetTable/index.d.ts +19 -0
  69. package/dist/select/Select.js +888 -282
  70. package/dist/select/index.d.ts +53 -0
  71. package/dist/sidenav/Sidenav.js +11 -15
  72. package/dist/sidenav/index.d.ts +13 -0
  73. package/dist/slider/Slider.js +204 -67
  74. package/dist/slider/index.d.ts +29 -0
  75. package/dist/spinner/Spinner.js +226 -59
  76. package/dist/spinner/index.d.ts +17 -0
  77. package/dist/switch/Switch.js +3 -3
  78. package/dist/switch/index.d.ts +24 -0
  79. package/dist/table/Table.js +19 -5
  80. package/dist/table/index.d.ts +13 -0
  81. package/dist/tabs/Tabs.js +6 -10
  82. package/dist/tabs/index.d.ts +19 -0
  83. package/dist/tag/Tag.js +50 -36
  84. package/dist/tag/index.d.ts +24 -0
  85. package/dist/text-input/TextInput.js +974 -0
  86. package/dist/text-input/index.d.ts +135 -0
  87. package/dist/textarea/Textarea.js +238 -107
  88. package/dist/textarea/index.d.ts +117 -0
  89. package/dist/toggle/index.d.ts +21 -0
  90. package/dist/toggle-group/ToggleGroup.js +137 -40
  91. package/dist/toggle-group/index.d.ts +21 -0
  92. package/dist/upload/Upload.js +1 -5
  93. package/dist/upload/buttons-upload/ButtonsUpload.js +28 -16
  94. package/dist/upload/buttons-upload/Icons.js +40 -0
  95. package/dist/upload/dragAndDropArea/DragAndDropArea.js +61 -25
  96. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  97. package/dist/upload/file-upload/FileToUpload.js +52 -25
  98. package/dist/upload/file-upload/Icons.js +66 -0
  99. package/dist/upload/files-upload/FilesToUpload.js +3 -3
  100. package/dist/upload/index.d.ts +15 -0
  101. package/dist/upload/transaction/Icons.js +160 -0
  102. package/dist/upload/transaction/Transaction.js +37 -41
  103. package/dist/upload/transactions/Transactions.js +24 -8
  104. package/dist/wizard/Icons.js +65 -0
  105. package/dist/wizard/Wizard.js +85 -63
  106. package/dist/wizard/index.d.ts +18 -0
  107. package/package.json +17 -11
  108. package/test/Date.test.js +15 -13
  109. package/test/DateInput.test.js +242 -0
  110. package/test/Dropdown.test.js +15 -0
  111. package/test/FileInput.test.js +201 -0
  112. package/test/Footer.test.js +2 -7
  113. package/test/Header.test.js +5 -10
  114. package/test/Heading.test.js +60 -12
  115. package/test/InputText.test.js +1 -2
  116. package/test/Link.test.js +3 -2
  117. package/test/NumberInput.test.js +259 -0
  118. package/test/Paginator.test.js +6 -2
  119. package/test/PasswordInput.test.js +83 -0
  120. package/test/ResultsetTable.test.js +6 -6
  121. package/test/Select.test.js +371 -148
  122. package/test/Slider.test.js +9 -17
  123. package/test/Spinner.test.js +5 -0
  124. package/test/TextInput.test.js +732 -0
  125. package/test/Textarea.test.js +193 -0
  126. package/test/ToggleGroup.test.js +5 -1
  127. package/test/Upload.test.js +1 -1
  128. package/test/V3Select.test.js +212 -0
  129. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  130. package/dist/accordion/Accordion.stories.js +0 -207
  131. package/dist/accordion/readme.md +0 -96
  132. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  133. package/dist/accordion-group/readme.md +0 -70
  134. package/dist/alert/Alert.stories.js +0 -158
  135. package/dist/alert/close.svg +0 -4
  136. package/dist/alert/error.svg +0 -4
  137. package/dist/alert/info.svg +0 -4
  138. package/dist/alert/readme.md +0 -43
  139. package/dist/alert/success.svg +0 -4
  140. package/dist/alert/warning.svg +0 -4
  141. package/dist/button/readme.md +0 -93
  142. package/dist/checkbox/Checkbox.stories.js +0 -144
  143. package/dist/checkbox/readme.md +0 -116
  144. package/dist/date/Date.stories.js +0 -205
  145. package/dist/date/calendar.svg +0 -1
  146. package/dist/date/calendar_dark.svg +0 -1
  147. package/dist/date/readme.md +0 -73
  148. package/dist/dialog/Dialog.stories.js +0 -217
  149. package/dist/dialog/readme.md +0 -32
  150. package/dist/dropdown/Dropdown.stories.js +0 -249
  151. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  152. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  153. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  154. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  155. package/dist/dropdown/readme.md +0 -69
  156. package/dist/footer/Footer.stories.js +0 -94
  157. package/dist/footer/dxc_logo_wht.png +0 -0
  158. package/dist/footer/readme.md +0 -41
  159. package/dist/header/Header.stories.js +0 -176
  160. package/dist/header/close_icon.svg +0 -1
  161. package/dist/header/dxc_logo_black.png +0 -0
  162. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  163. package/dist/header/dxc_logo_white.png +0 -0
  164. package/dist/header/hamb_menu_black.svg +0 -1
  165. package/dist/header/hamb_menu_white.svg +0 -1
  166. package/dist/header/readme.md +0 -33
  167. package/dist/input-text/InputText.stories.js +0 -209
  168. package/dist/input-text/error.svg +0 -1
  169. package/dist/input-text/readme.md +0 -91
  170. package/dist/layout/facebook.svg +0 -45
  171. package/dist/layout/linkedin.svg +0 -50
  172. package/dist/layout/twitter.svg +0 -53
  173. package/dist/link/readme.md +0 -51
  174. package/dist/paginator/images/next.svg +0 -3
  175. package/dist/paginator/images/nextPage.svg +0 -3
  176. package/dist/paginator/images/previous.svg +0 -3
  177. package/dist/paginator/images/previousPage.svg +0 -3
  178. package/dist/paginator/readme.md +0 -50
  179. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  180. package/dist/progress-bar/readme.md +0 -63
  181. package/dist/radio/Radio.stories.js +0 -166
  182. package/dist/radio/readme.md +0 -70
  183. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  184. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  185. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  186. package/dist/select/Select.stories.js +0 -235
  187. package/dist/select/readme.md +0 -72
  188. package/dist/slider/Slider.stories.js +0 -241
  189. package/dist/slider/readme.md +0 -64
  190. package/dist/spinner/Spinner.stories.js +0 -183
  191. package/dist/spinner/readme.md +0 -65
  192. package/dist/switch/Switch.stories.js +0 -134
  193. package/dist/switch/readme.md +0 -133
  194. package/dist/tabs/Tabs.stories.js +0 -130
  195. package/dist/tabs/readme.md +0 -78
  196. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  197. package/dist/tabs-for-sections/readme.md +0 -78
  198. package/dist/toggle/Toggle.stories.js +0 -297
  199. package/dist/toggle/readme.md +0 -80
  200. package/dist/toggle-group/readme.md +0 -82
  201. package/dist/upload/Upload.stories.js +0 -72
  202. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  203. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  204. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  205. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  206. package/dist/upload/file-upload/audio-icon.svg +0 -4
  207. package/dist/upload/file-upload/close.svg +0 -4
  208. package/dist/upload/file-upload/file-icon.svg +0 -4
  209. package/dist/upload/file-upload/video-icon.svg +0 -4
  210. package/dist/upload/readme.md +0 -37
  211. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  212. package/dist/upload/transaction/audio-icon.svg +0 -4
  213. package/dist/upload/transaction/error-icon.svg +0 -4
  214. package/dist/upload/transaction/file-icon-err.svg +0 -4
  215. package/dist/upload/transaction/file-icon.svg +0 -4
  216. package/dist/upload/transaction/image-icon-err.svg +0 -4
  217. package/dist/upload/transaction/image-icon.svg +0 -4
  218. package/dist/upload/transaction/success-icon.svg +0 -4
  219. package/dist/upload/transaction/video-icon-err.svg +0 -4
  220. package/dist/upload/transaction/video-icon.svg +0 -4
  221. package/dist/wizard/invalid_icon.svg +0 -6
  222. package/dist/wizard/valid_icon.svg +0 -6
  223. package/dist/wizard/validation-wrong.svg +0 -6
  224. package/test/TabsForSections.test.js +0 -34
@@ -0,0 +1,117 @@
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
+
10
+ type Props = {
11
+ /**
12
+ * Text to be placed above the textarea.
13
+ */
14
+ label?: string;
15
+ /**
16
+ * Name attribute of the textarea element.
17
+ */
18
+ name?: string;
19
+ /**
20
+ * Value of the textarea. If undefined, the component will be uncontrolled and the value will be managed internally.
21
+ */
22
+ value?: string;
23
+ /**
24
+ * Helper text to be placed above the textarea.
25
+ */
26
+ helperText?: string;
27
+ /**
28
+ * Text to be put as placeholder of the textarea.
29
+ */
30
+ placeholder?: string;
31
+ /**
32
+ * If true, the component will be disabled.
33
+ */
34
+ disabled?: boolean;
35
+ /**
36
+ * If true, the textarea will be optional, showing '(Optional)'
37
+ * next to the label. Otherwise, the field will be considered required
38
+ * and an error will be passed as a parameter to the OnBlur and onChange functions
39
+ * when it has not been filled.
40
+ */
41
+ optional?: boolean;
42
+ /**
43
+ * Defines the textarea's ability to resize vertically. It can be:
44
+ * - 'auto': The textarea grows or shrinks automatically in order to fit the content.
45
+ * - 'manual': The height of the textarea is enabled to be manually modified.
46
+ * - 'none': The textarea has a fixed height and can't be modified.
47
+ */
48
+ verticalGrow?: "auto" | "manual" | "none";
49
+ /**
50
+ * Number of rows of the textarea.
51
+ */
52
+ rows?: number;
53
+ /**
54
+ * This function will be called when the user types within the textarea.
55
+ * An object including the current value and the error (if the value
56
+ * entered is not valid) will be passed to this function.
57
+ * If there is no error, error will be null.
58
+ */
59
+ onChange?: (val: { value: string; error: string }) => void;
60
+ /**
61
+ * This function will be called when the textarea loses the focus. An
62
+ * object including the textarea value and the error (if the value entered
63
+ * is not valid) will be passed to this function. If there is no error,
64
+ * error will be null.
65
+ */
66
+ onBlur?: (val: { value: string; error: string }) => void;
67
+ /**
68
+ * If it is defined, the component will change its appearance, showing
69
+ * the error below the textarea. If it is not defined, the error
70
+ * messages will be managed internally, but never displayed on its own.
71
+ */
72
+ error?: string;
73
+ /**
74
+ * Regular expression that defines the valid format allowed by the
75
+ * textarea. This will be checked both when the textarea loses the focus
76
+ * and while typing within it. If the string entered does not match the
77
+ * pattern, the onBlur and onChange functions will be called with the
78
+ * current value and an internal error informing that this value does not
79
+ * match the pattern. If the pattern is met, the error parameter of both
80
+ * events will be null.
81
+ */
82
+ pattern?: string;
83
+ /**
84
+ * Specifies the minimun and maximum length allowed by the textarea.
85
+ * This will be checked both when the textarea loses the
86
+ * focus and while typing within it. If the string entered does not
87
+ * comply the length, the onBlur and onChange functions will be called
88
+ * with the current value and an internal error informing that the value
89
+ * length does not comply the specified range. If a valid length is
90
+ * reached, the error parameter of both events will be null.
91
+ */
92
+ length?: { min: number; max: number };
93
+ /**
94
+ * HTML autocomplete attribute. Lets the user specify if any permission the user agent has to provide automated assistance in filling out the textarea value.
95
+ * Its value must be one of all the possible values of the HTML autocomplete attribute: 'on', 'off', 'email', 'username', 'new-password', ...
96
+ */
97
+ autocomplete?: string;
98
+ /**
99
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
100
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
101
+ */
102
+ margin?: Space | Margin;
103
+ /**
104
+ * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
105
+ */
106
+ size?: Size;
107
+ /**
108
+ * Value of the tabindex attribute.
109
+ */
110
+ tabIndex?: number;
111
+ /**
112
+ * Reference to the component.
113
+ */
114
+ ref?: React.RefObject<HTMLDivElement>;
115
+ };
116
+
117
+ export default function DxcTextarea(props: Props): JSX.Element;
@@ -0,0 +1,21 @@
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
+ top?: Space;
4
+ bottom?: Space;
5
+ left?: Space;
6
+ right?: Space;
7
+ };
8
+
9
+ type Props = {
10
+ label?: string;
11
+ helperText?: string;
12
+ value?: any;
13
+ onChange?: void;
14
+ disabled?: boolean,
15
+ options?: any;
16
+ multiple?: boolean;
17
+ margin?: Space | Margin;
18
+ tabIndex?: number;
19
+ };
20
+
21
+ export default function DxcToggle(props: Props): JSX.Element;
@@ -21,14 +21,46 @@ var _react = _interopRequireWildcard(require("react"));
21
21
 
22
22
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
23
 
24
+ var _uuid = require("uuid");
25
+
24
26
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
27
 
26
28
  var _variables = require("../common/variables.js");
27
29
 
28
30
  var _useTheme = _interopRequireDefault(require("../useTheme.js"));
29
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
+
52
+ function _templateObject7() {
53
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n"]);
54
+
55
+ _templateObject7 = function _templateObject7() {
56
+ return data;
57
+ };
58
+
59
+ return data;
60
+ }
61
+
30
62
  function _templateObject6() {
31
- var data = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
63
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"]);
32
64
 
33
65
  _templateObject6 = function _templateObject6() {
34
66
  return data;
@@ -38,7 +70,7 @@ function _templateObject6() {
38
70
  }
39
71
 
40
72
  function _templateObject5() {
41
- var data = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n"]);
73
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-right: ", ";\n\n ", "\n"]);
42
74
 
43
75
  _templateObject5 = function _templateObject5() {
44
76
  return data;
@@ -48,7 +80,7 @@ function _templateObject5() {
48
80
  }
49
81
 
50
82
  function _templateObject4() {
51
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n text-transform: ", ";\n letter-spacing: ", ";\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"]);
52
84
 
53
85
  _templateObject4 = function _templateObject4() {
54
86
  return data;
@@ -58,7 +90,7 @@ function _templateObject4() {
58
90
  }
59
91
 
60
92
  function _templateObject3() {
61
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n ", "\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"]);
62
94
 
63
95
  _templateObject3 = function _templateObject3() {
64
96
  return data;
@@ -68,7 +100,7 @@ function _templateObject3() {
68
100
  }
69
101
 
70
102
  function _templateObject2() {
71
- 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"]);
72
104
 
73
105
  _templateObject2 = function _templateObject2() {
74
106
  return data;
@@ -78,7 +110,7 @@ function _templateObject2() {
78
110
  }
79
111
 
80
112
  function _templateObject() {
81
- 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 opacity: 1;\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"]);
82
114
 
83
115
  _templateObject = function _templateObject() {
84
116
  return data;
@@ -88,7 +120,9 @@ function _templateObject() {
88
120
  }
89
121
 
90
122
  var DxcToggleGroup = function DxcToggleGroup(_ref) {
91
- var value = _ref.value,
123
+ var label = _ref.label,
124
+ helperText = _ref.helperText,
125
+ value = _ref.value,
92
126
  onChange = _ref.onChange,
93
127
  _ref$disabled = _ref.disabled,
94
128
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
@@ -106,6 +140,10 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
106
140
  selectedValue = _useState2[0],
107
141
  setSelectedValue = _useState2[1];
108
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
+
109
147
  var handleToggleChange = function handleToggleChange(selectedOption) {
110
148
  var newSelectedOptions;
111
149
 
@@ -123,19 +161,25 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
123
161
  }
124
162
 
125
163
  setSelectedValue(newSelectedOptions);
126
- } else {
127
- setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
128
- }
164
+ } else setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
129
165
  } else if (multiple) {
130
166
  newSelectedOptions = value.map(function (v) {
131
167
  return v;
132
168
  });
133
- newSelectedOptions.push(selectedOption);
134
- }
135
169
 
136
- if (typeof onChange === "function") {
137
- 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);
138
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);
139
183
  };
140
184
 
141
185
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
@@ -143,9 +187,19 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
143
187
  }, _react["default"].createElement(ToggleGroup, {
144
188
  margin: margin,
145
189
  disabled: disabled
146
- }, _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) {
147
199
  return _react["default"].createElement(ToggleContainer, {
148
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,
149
203
  tabIndex: !disabled ? tabIndex : -1,
150
204
  onClick: function onClick() {
151
205
  return !disabled && handleToggleChange(option.value);
@@ -153,17 +207,50 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
153
207
  isFirst: i === 0,
154
208
  isLast: i === options.length - 1,
155
209
  isIcon: option.iconSrc || option.icon,
210
+ optionLabel: option.label,
156
211
  disabled: disabled,
212
+ onKeyPress: function onKeyPress(event) {
213
+ handleKeyPress(event, option.value);
214
+ },
157
215
  key: "toggle-".concat(i, "-").concat(option.label)
158
- }, 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, {
159
- src: option.iconSrc
160
- }) : _react["default"].createElement(LabelContainer, {
161
- disabled: disabled
162
- }, 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)));
163
222
  }))));
164
223
  };
165
224
 
166
- var ToggleGroup = _styledComponents["default"].div(_templateObject(), function (props) {
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) {
167
254
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
168
255
  }, function (props) {
169
256
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -175,39 +262,49 @@ var ToggleGroup = _styledComponents["default"].div(_templateObject(), function (
175
262
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
176
263
  });
177
264
 
178
- var ToggleGroupContainer = _styledComponents["default"].div(_templateObject2());
179
-
180
- var ToggleContainer = _styledComponents["default"].div(_templateObject3(), function (props) {
181
- return "\n background-color: ".concat(props.selected ? props.disabled ? props.theme.disabledSelectedBackgroundColor : props.theme.selectedBackgroundColor : props.disabled ? props.theme.disabledUnselectedBackgroundColor : props.theme.unselectedBackgroundColor, ";\n &:focus {\n outline: ").concat(props.theme.focusColor, " auto 1px;\n }\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 ? "".concat(props.theme.iconPaddingTop, " ").concat(props.theme.iconPaddingRight, " ").concat(props.theme.iconPaddingBottom, " ").concat(props.theme.iconPaddingLeft) : "".concat(props.theme.labelPaddingTop, " ").concat(props.theme.labelPaddingRight, " ").concat(props.theme.labelPaddingBottom, " ").concat(props.theme.labelPaddingLeft), ";\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;") : "color: ".concat(props.selected ? props.theme.disabledSelectedFontColor : props.theme.disabledUnselectedFontColor, " !important;\n cursor: not-allowed;"), "\n ");
182
- });
183
-
184
- var LabelContainer = _styledComponents["default"].span(_templateObject4(), function (props) {
185
- return props.theme.fontFamily;
265
+ var OptionsContainer = _styledComponents["default"].div(_templateObject4(), function (props) {
266
+ return props.theme.containerBorderThickness;
186
267
  }, function (props) {
187
- return props.theme.fontSize;
268
+ return props.theme.containerBorderStyle;
188
269
  }, function (props) {
189
- return props.theme.fontStyle;
270
+ return props.theme.containerBorderRadius;
190
271
  }, function (props) {
191
- return props.theme.fontWeight;
272
+ return props.theme.containerBorderColor;
192
273
  }, function (props) {
193
- return props.theme.fontTextTransform;
274
+ return props.theme.containerBackgroundColor;
194
275
  }, function (props) {
195
- return props.theme.fontLetterSpacing;
276
+ return props.theme.containerMarginTop;
196
277
  });
197
278
 
198
- var Icon = _styledComponents["default"].img(_templateObject5(), function (props) {
199
- return props.theme.iconHeight;
279
+ var ToggleContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
280
+ return !props.isLast && "4px";
200
281
  }, function (props) {
201
- return props.theme.iconWidth;
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 ");
202
283
  });
203
284
 
204
- var IconContainer = _styledComponents["default"].div(_templateObject6(), function (props) {
205
- return props.theme.iconHeight;
285
+ var LabelContainer = _styledComponents["default"].span(_templateObject6(), function (props) {
286
+ return props.theme.optionLabelFontFamily;
287
+ }, function (props) {
288
+ return props.theme.optionLabelFontSize;
206
289
  }, function (props) {
207
- return props.theme.iconWidth;
290
+ return props.theme.optionLabelFontStyle;
291
+ }, function (props) {
292
+ return props.theme.optionLabelFontWeight;
293
+ });
294
+
295
+ var OptionContent = _styledComponents["default"].div(_templateObject7());
296
+
297
+ var Icon = _styledComponents["default"].img(_templateObject8(), function (props) {
298
+ return props.optionLabel && props.theme.iconMarginRight;
299
+ });
300
+
301
+ var IconContainer = _styledComponents["default"].div(_templateObject9(), function (props) {
302
+ return props.optionLabel && props.theme.iconMarginRight;
208
303
  });
209
304
 
210
305
  DxcToggleGroup.propTypes = {
306
+ label: _propTypes["default"].string,
307
+ helperText: _propTypes["default"].string,
211
308
  value: _propTypes["default"].any,
212
309
  onChange: _propTypes["default"].func,
213
310
  disabled: _propTypes["default"].bool,
@@ -0,0 +1,21 @@
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
+ top?: Space;
4
+ bottom?: Space;
5
+ left?: Space;
6
+ right?: Space;
7
+ };
8
+
9
+ type Props = {
10
+ label?: string;
11
+ helperText?: string;
12
+ value?: any;
13
+ onChange?: void;
14
+ disabled?: boolean;
15
+ options?: any;
16
+ multiple?: boolean;
17
+ margin?: Space | Margin;
18
+ tabIndex?: number;
19
+ };
20
+
21
+ export default function DxcToggleGroup(props: Props): JSX.Element;
@@ -32,7 +32,7 @@ var _Transactions = _interopRequireDefault(require("./transactions/Transactions"
32
32
  var _variables = require("../common/variables.js");
33
33
 
34
34
  function _templateObject() {
35
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\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"]);
36
36
 
37
37
  _templateObject = function _templateObject() {
38
38
  return data;
@@ -190,10 +190,6 @@ DxcUpload.propTypes = {
190
190
  };
191
191
 
192
192
  var DXCUpload = _styledComponents["default"].div(_templateObject(), function (props) {
193
- return props.theme.fontSizeBase;
194
- }, function (props) {
195
- return props.theme.fontFamily;
196
- }, function (props) {
197
193
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
198
194
  }, function (props) {
199
195
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -19,14 +19,14 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
20
20
  var _Button = _interopRequireDefault(require("../../button/Button"));
21
21
 
22
- var _uploadButton = _interopRequireDefault(require("./upload-button.svg"));
23
-
24
- var _dragDropIcon = _interopRequireDefault(require("./drag-drop-icon.svg"));
22
+ var _Icons = require("./Icons");
25
23
 
26
24
  var _useTheme = _interopRequireDefault(require("../../useTheme.js"));
27
25
 
26
+ var _BackgroundColorContext = require("../../BackgroundColorContext.js");
27
+
28
28
  function _templateObject3() {
29
- var data = (0, _taggedTemplateLiteral2["default"])(["\n background: url(\"", "\") no-repeat padding-box;\n width: 24px;\n height: 24px;\n margin-right: 5px;\n"]);
29
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n margin-right: 5px;\n & svg {\n fill: ", ";\n }\n"]);
30
30
 
31
31
  _templateObject3 = function _templateObject3() {
32
32
  return data;
@@ -36,7 +36,7 @@ function _templateObject3() {
36
36
  }
37
37
 
38
38
  function _templateObject2() {
39
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n font-style: ", ";\n font-size: ", ";\n color: ", ";\n margin-right: 50px;\n"]);
39
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n text-transform: ", ";\n color: ", ";\n margin-right: 50px;\n"]);
40
40
 
41
41
  _templateObject2 = function _templateObject2() {
42
42
  return data;
@@ -46,7 +46,7 @@ function _templateObject2() {
46
46
  }
47
47
 
48
48
  function _templateObject() {
49
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n margin-right: 80px;\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n"]);
49
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 80px;\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n"]);
50
50
 
51
51
  _templateObject = function _templateObject() {
52
52
  return data;
@@ -77,7 +77,9 @@ var DxcButtonsUpload = function DxcButtonsUpload(_ref) {
77
77
 
78
78
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
79
79
  theme: colorsTheme.upload
80
- }, _react["default"].createElement(DXCButtonsUpload, null, _react["default"].createElement(DragAndDropLabel, null, _react["default"].createElement(DragAndDropIcon, null), "Drag and Drop area"), _react["default"].createElement(_Button["default"], {
80
+ }, _react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
81
+ color: colorsTheme.upload.backgroundColor
82
+ }, _react["default"].createElement(DXCButtonsUpload, null, _react["default"].createElement(DragAndDropLabel, null, _react["default"].createElement(DragAndDropIconContainer, null, _Icons.dragAndDropIcon), "Drag and Drop area"), _react["default"].createElement(_Button["default"], {
81
83
  margin: {
82
84
  right: "small"
83
85
  },
@@ -95,9 +97,9 @@ var DxcButtonsUpload = function DxcButtonsUpload(_ref) {
95
97
  }), _react["default"].createElement(_Button["default"], {
96
98
  label: "UPLOAD",
97
99
  iconPosition: "after",
98
- iconSrc: _uploadButton["default"],
100
+ icon: _Icons.uploadIcon,
99
101
  onClick: onUpload
100
- })));
102
+ }))));
101
103
  };
102
104
 
103
105
  DxcButtonsUpload.propTypes = {
@@ -105,19 +107,29 @@ DxcButtonsUpload.propTypes = {
105
107
  onUpload: _propTypes["default"].func
106
108
  };
107
109
 
108
- var DXCButtonsUpload = _styledComponents["default"].div(_templateObject(), function (props) {
109
- return props.theme.fontFamily;
110
- });
110
+ var DXCButtonsUpload = _styledComponents["default"].div(_templateObject());
111
111
 
112
112
  var DragAndDropLabel = _styledComponents["default"].div(_templateObject2(), function (props) {
113
- return props.theme.fontStyle;
113
+ return props.theme.fontFamily;
114
+ }, function (props) {
115
+ return props.theme.dragAndDropAreaTextFontSize;
114
116
  }, function (props) {
115
- return props.theme.fontSize12;
117
+ return props.theme.dragAndDropAreaTextFontStyle;
116
118
  }, function (props) {
117
- return props.theme.fontColor;
119
+ return props.theme.dragAndDropAreaTextFontWeight;
120
+ }, function (props) {
121
+ return props.theme.dragAndDropAreaTextFontTextTransform;
122
+ }, function (props) {
123
+ return props.theme.dragAndDropAreaTextFontColor;
118
124
  });
119
125
 
120
- var DragAndDropIcon = _styledComponents["default"].div(_templateObject3(), _dragDropIcon["default"]);
126
+ var DragAndDropIconContainer = _styledComponents["default"].div(_templateObject3(), function (props) {
127
+ return props.theme.dragAndDropAreaIconSize;
128
+ }, function (props) {
129
+ return props.theme.dragAndDropAreaIconSize;
130
+ }, function (props) {
131
+ return props.theme.dragAndDropAreaIconColor;
132
+ });
121
133
 
122
134
  var _default = DxcButtonsUpload;
123
135
  exports["default"] = _default;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.dragAndDropIcon = exports.uploadIcon = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var uploadIcon = _react["default"].createElement("svg", {
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ width: "24",
15
+ height: "24",
16
+ viewBox: "0 0 24 24",
17
+ fill: "#FFFFFF"
18
+ }, _react["default"].createElement("path", {
19
+ d: "M0 0h24v24H0z",
20
+ fill: "none"
21
+ }), _react["default"].createElement("path", {
22
+ d: "M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"
23
+ }));
24
+
25
+ exports.uploadIcon = uploadIcon;
26
+
27
+ var dragAndDropIcon = _react["default"].createElement("svg", {
28
+ xmlns: "http://www.w3.org/2000/svg",
29
+ width: "24",
30
+ height: "24",
31
+ viewBox: "0 0 24 24",
32
+ fill: "#666666"
33
+ }, _react["default"].createElement("path", {
34
+ fill: "none",
35
+ d: "M0 0h24v24H0V0z"
36
+ }), _react["default"].createElement("path", {
37
+ d: "M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2 4v-2H3c0 1.1.89 2 2 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9c-1.11 0-2 .9-2 2v10c0 1.1.89 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v2zm-4 0h2v-2H7v2z"
38
+ }));
39
+
40
+ exports.dragAndDropIcon = dragAndDropIcon;