@dxc-technology/halstack-react 0.0.0-c680086 → 0.0.0-c6bd008

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 (202) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +7 -28
  5. package/accordion/Accordion.stories.tsx +11 -11
  6. package/accordion/Accordion.test.js +72 -0
  7. package/accordion/types.d.ts +4 -0
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +14 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +151 -0
  12. package/accordion-group/types.d.ts +4 -0
  13. package/alert/Alert.js +4 -1
  14. package/alert/Alert.test.js +92 -0
  15. package/badge/Badge.d.ts +4 -0
  16. package/badge/Badge.js +5 -3
  17. package/badge/types.d.ts +5 -0
  18. package/{radio → badge}/types.js +0 -0
  19. package/bleed/Bleed.js +1 -34
  20. package/bleed/Bleed.stories.tsx +62 -63
  21. package/bleed/types.d.ts +25 -1
  22. package/box/Box.js +22 -32
  23. package/box/Box.test.js +18 -0
  24. package/button/Button.js +14 -11
  25. package/button/Button.test.js +35 -0
  26. package/card/Card.js +24 -27
  27. package/card/Card.test.js +50 -0
  28. package/checkbox/Checkbox.d.ts +1 -1
  29. package/checkbox/Checkbox.js +43 -39
  30. package/checkbox/Checkbox.stories.tsx +124 -128
  31. package/checkbox/Checkbox.test.js +78 -0
  32. package/checkbox/types.d.ts +7 -3
  33. package/chip/Chip.test.js +56 -0
  34. package/common/variables.js +181 -322
  35. package/date-input/DateInput.js +53 -39
  36. package/date-input/DateInput.stories.tsx +7 -7
  37. package/date-input/DateInput.test.js +479 -0
  38. package/date-input/types.d.ts +16 -9
  39. package/dialog/Dialog.js +4 -32
  40. package/dialog/Dialog.test.js +40 -0
  41. package/dropdown/Dropdown.js +13 -17
  42. package/dropdown/Dropdown.test.js +189 -0
  43. package/file-input/FileInput.js +9 -6
  44. package/file-input/FileInput.test.js +457 -0
  45. package/file-input/FileItem.js +7 -5
  46. package/footer/Footer.js +15 -88
  47. package/footer/Footer.test.js +109 -0
  48. package/footer/Icons.js +1 -1
  49. package/header/Header.js +27 -48
  50. package/header/Header.stories.tsx +46 -36
  51. package/header/Header.test.js +79 -0
  52. package/heading/Heading.test.js +186 -0
  53. package/inline/Inline.d.ts +4 -0
  54. package/inline/Inline.js +56 -0
  55. package/inline/Inline.stories.tsx +264 -0
  56. package/inline/types.d.ts +32 -0
  57. package/inline/types.js +5 -0
  58. package/inset/Inset.js +1 -34
  59. package/inset/Inset.stories.tsx +33 -33
  60. package/inset/types.d.ts +25 -1
  61. package/layout/ApplicationLayout.d.ts +4 -3
  62. package/layout/ApplicationLayout.js +84 -110
  63. package/layout/ApplicationLayout.stories.tsx +14 -59
  64. package/layout/Icons.d.ts +5 -0
  65. package/layout/Icons.js +13 -2
  66. package/layout/SidenavContext.d.ts +5 -0
  67. package/layout/SidenavContext.js +19 -0
  68. package/layout/types.d.ts +5 -10
  69. package/link/Link.d.ts +3 -2
  70. package/link/Link.js +57 -74
  71. package/link/Link.stories.tsx +87 -52
  72. package/link/Link.test.js +83 -0
  73. package/link/types.d.ts +7 -23
  74. package/list/List.js +1 -1
  75. package/list/List.stories.tsx +16 -22
  76. package/list/types.d.ts +1 -1
  77. package/main.d.ts +7 -8
  78. package/main.js +39 -41
  79. package/number-input/NumberInput.js +11 -18
  80. package/number-input/NumberInput.stories.tsx +5 -5
  81. package/number-input/NumberInput.test.js +506 -0
  82. package/number-input/types.d.ts +17 -10
  83. package/package.json +7 -5
  84. package/paginator/Paginator.js +17 -38
  85. package/paginator/Paginator.test.js +308 -0
  86. package/password-input/PasswordInput.js +7 -4
  87. package/password-input/PasswordInput.test.js +180 -0
  88. package/password-input/types.d.ts +14 -11
  89. package/progress-bar/ProgressBar.js +1 -1
  90. package/progress-bar/ProgressBar.stories.jsx +11 -11
  91. package/progress-bar/ProgressBar.test.js +65 -0
  92. package/quick-nav/QuickNav.d.ts +4 -0
  93. package/quick-nav/QuickNav.js +116 -0
  94. package/quick-nav/QuickNav.stories.tsx +237 -0
  95. package/quick-nav/types.d.ts +21 -0
  96. package/quick-nav/types.js +5 -0
  97. package/radio-group/Radio.d.ts +1 -1
  98. package/radio-group/Radio.js +25 -24
  99. package/radio-group/RadioGroup.js +46 -37
  100. package/radio-group/RadioGroup.stories.tsx +60 -39
  101. package/radio-group/RadioGroup.test.js +530 -83
  102. package/radio-group/types.d.ts +80 -2
  103. package/resultsetTable/ResultsetTable.test.js +348 -0
  104. package/row/types.d.ts +18 -0
  105. package/select/Icons.d.ts +10 -0
  106. package/select/Icons.js +93 -0
  107. package/select/Listbox.d.ts +4 -0
  108. package/select/Listbox.js +175 -0
  109. package/select/Option.d.ts +4 -0
  110. package/select/Option.js +110 -0
  111. package/select/Select.js +148 -351
  112. package/select/Select.stories.tsx +230 -176
  113. package/select/Select.test.js +2162 -0
  114. package/select/types.d.ts +53 -11
  115. package/sidenav/Sidenav.d.ts +1 -1
  116. package/sidenav/Sidenav.js +20 -9
  117. package/sidenav/Sidenav.test.js +56 -0
  118. package/slider/Slider.d.ts +1 -1
  119. package/slider/Slider.js +2 -1
  120. package/slider/Slider.stories.tsx +8 -8
  121. package/slider/Slider.test.js +150 -0
  122. package/slider/types.d.ts +4 -0
  123. package/spinner/Spinner.js +1 -1
  124. package/spinner/Spinner.test.js +64 -0
  125. package/stack/Stack.d.ts +2 -1
  126. package/stack/Stack.js +26 -71
  127. package/stack/Stack.stories.tsx +139 -78
  128. package/stack/types.d.ts +23 -4
  129. package/switch/Switch.d.ts +1 -1
  130. package/switch/Switch.js +35 -19
  131. package/switch/Switch.stories.tsx +14 -14
  132. package/switch/Switch.test.js +98 -0
  133. package/switch/types.d.ts +6 -2
  134. package/table/Table.test.js +26 -0
  135. package/tabs/Tabs.d.ts +1 -1
  136. package/tabs/Tabs.js +9 -11
  137. package/tabs/Tabs.stories.tsx +0 -8
  138. package/tabs/Tabs.test.js +140 -0
  139. package/tabs/types.d.ts +4 -0
  140. package/tabs-nav/NavTabs.d.ts +8 -0
  141. package/tabs-nav/NavTabs.js +125 -0
  142. package/tabs-nav/NavTabs.stories.tsx +170 -0
  143. package/tabs-nav/NavTabs.test.js +82 -0
  144. package/tabs-nav/Tab.d.ts +4 -0
  145. package/tabs-nav/Tab.js +132 -0
  146. package/tabs-nav/types.d.ts +53 -0
  147. package/tabs-nav/types.js +5 -0
  148. package/tag/Tag.js +14 -19
  149. package/tag/Tag.stories.tsx +12 -8
  150. package/tag/Tag.test.js +60 -0
  151. package/text-input/Suggestion.d.ts +4 -0
  152. package/text-input/Suggestion.js +55 -0
  153. package/text-input/TextInput.js +56 -80
  154. package/text-input/TextInput.stories.tsx +30 -12
  155. package/text-input/TextInput.test.js +1712 -0
  156. package/text-input/types.d.ts +31 -12
  157. package/textarea/Textarea.js +20 -27
  158. package/textarea/Textarea.stories.jsx +33 -12
  159. package/textarea/Textarea.test.js +437 -0
  160. package/textarea/types.d.ts +18 -11
  161. package/toggle-group/ToggleGroup.d.ts +1 -1
  162. package/toggle-group/ToggleGroup.js +5 -4
  163. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  164. package/toggle-group/ToggleGroup.test.js +156 -0
  165. package/toggle-group/types.d.ts +8 -0
  166. package/useTheme.js +2 -2
  167. package/useTranslatedLabels.d.ts +2 -0
  168. package/useTranslatedLabels.js +20 -0
  169. package/wizard/Wizard.d.ts +1 -1
  170. package/wizard/Wizard.js +55 -44
  171. package/wizard/Wizard.stories.tsx +13 -23
  172. package/wizard/Wizard.test.js +141 -0
  173. package/wizard/types.d.ts +6 -2
  174. package/ThemeContext.d.ts +0 -15
  175. package/ThemeContext.js +0 -243
  176. package/V3Select/V3Select.js +0 -455
  177. package/V3Select/index.d.ts +0 -27
  178. package/V3Textarea/V3Textarea.js +0 -260
  179. package/V3Textarea/index.d.ts +0 -27
  180. package/date/Date.js +0 -373
  181. package/date/index.d.ts +0 -27
  182. package/input-text/Icons.js +0 -22
  183. package/input-text/InputText.js +0 -611
  184. package/input-text/index.d.ts +0 -36
  185. package/radio/Radio.d.ts +0 -4
  186. package/radio/Radio.js +0 -174
  187. package/radio/Radio.stories.tsx +0 -192
  188. package/radio/types.d.ts +0 -54
  189. package/toggle/Toggle.js +0 -186
  190. package/toggle/index.d.ts +0 -21
  191. package/upload/Upload.js +0 -201
  192. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  193. package/upload/buttons-upload/Icons.js +0 -40
  194. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  195. package/upload/dragAndDropArea/Icons.js +0 -39
  196. package/upload/file-upload/FileToUpload.js +0 -115
  197. package/upload/file-upload/Icons.js +0 -66
  198. package/upload/files-upload/FilesToUpload.js +0 -109
  199. package/upload/index.d.ts +0 -15
  200. package/upload/transaction/Icons.js +0 -160
  201. package/upload/transaction/Transaction.js +0 -104
  202. package/upload/transactions/Transactions.js +0 -94
package/stack/Stack.js CHANGED
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = Stack;
8
+ exports["default"] = void 0;
9
9
 
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
11
 
@@ -15,83 +15,38 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
15
 
16
16
  var _templateObject, _templateObject2;
17
17
 
18
- function Stack(_ref) {
19
- var gutter = _ref.gutter,
20
- divider = _ref.divider,
21
- align = _ref.align,
18
+ var DxcStack = function DxcStack(_ref) {
19
+ var _ref$alignX = _ref.alignX,
20
+ alignX = _ref$alignX === void 0 ? "stretch" : _ref$alignX,
22
21
  _ref$as = _ref.as,
23
22
  as = _ref$as === void 0 ? "div" : _ref$as,
23
+ _ref$divider = _ref.divider,
24
+ divider = _ref$divider === void 0 ? false : _ref$divider,
25
+ _ref$gutter = _ref.gutter,
26
+ gutter = _ref$gutter === void 0 ? "0rem" : _ref$gutter,
27
+ _ref$reverse = _ref.reverse,
28
+ reverse = _ref$reverse === void 0 ? false : _ref$reverse,
24
29
  children = _ref.children;
25
- return /*#__PURE__*/_react["default"].createElement(StyledStack, {
30
+ return /*#__PURE__*/_react["default"].createElement(Stack, {
26
31
  gutter: gutter,
27
- divider: divider,
28
- align: align,
29
- as: as
32
+ alignX: alignX,
33
+ reverse: reverse,
34
+ as: as,
35
+ divider: divider
30
36
  }, _react["default"].Children.map(children, function (child, index) {
31
37
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, child, divider && index !== _react["default"].Children.count(children) - 1 && /*#__PURE__*/_react["default"].createElement(Divider, null));
32
38
  }));
33
- }
39
+ };
34
40
 
35
- var Divider = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n height: 1px;\n background-color: #999999;\n"])));
41
+ var Divider = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color: #999999;\n"])));
36
42
 
37
- var StyledStack = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n align-items: ", ";\n gap: ", ";\n margin: 0;\n padding: 0;\n"])), function (_ref2) {
38
- var align = _ref2.align;
39
-
40
- switch (align) {
41
- case "start":
42
- return "flex-start";
43
-
44
- case "center":
45
- return "center";
46
-
47
- case "end":
48
- return "flex-end";
49
-
50
- case "baseline":
51
- return "baseline";
52
-
53
- case "stretch":
54
- return "stretch";
55
-
56
- default:
57
- return "initial";
58
- }
59
- }, function (_ref3) {
60
- var gutter = _ref3.gutter,
61
- divider = _ref3.divider;
62
-
63
- switch (gutter) {
64
- case "none":
65
- return "0";
66
-
67
- case "xxxsmall":
68
- return "calc(0.125rem / ".concat(divider ? 2 : 1, ")");
69
-
70
- case "xxsmall":
71
- return "calc(0.25rem / ".concat(divider ? 2 : 1, ")");
72
-
73
- case "xsmall":
74
- return "calc(0.5rem / ".concat(divider ? 2 : 1, ")");
75
-
76
- case "small":
77
- return "calc(1rem / ".concat(divider ? 2 : 1, ")");
78
-
79
- case "medium":
80
- return "calc(1.5rem / ".concat(divider ? 2 : 1, ")");
81
-
82
- case "large":
83
- return "calc(2rem / ".concat(divider ? 2 : 1, ")");
84
-
85
- case "xlarge":
86
- return "calc(3rem / ".concat(divider ? 2 : 1, ")");
87
-
88
- case "xxlarge":
89
- return "calc(4rem / ".concat(divider ? 2 : 1, ")");
90
-
91
- case "xxxlarge":
92
- return "calc(5rem / ".concat(divider ? 2 : 1, ")");
43
+ var Stack = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n ", "\n padding: 0px;\n margin: 0px;\n"])), function (_ref2) {
44
+ var alignX = _ref2.alignX,
45
+ gutter = _ref2.gutter,
46
+ reverse = _ref2.reverse,
47
+ divider = _ref2.divider;
48
+ return "\n flex-direction: ".concat(reverse ? "column-reverse" : "column", ";\n align-items: ").concat(alignX === "start" || alignX === "end" ? "flex-".concat(alignX) : alignX, ";\n gap: ").concat(divider ? "calc(".concat(gutter, "/2 - 1px)") : gutter, ";\n ");
49
+ });
93
50
 
94
- default:
95
- return "0";
96
- }
97
- });
51
+ var _default = DxcStack;
52
+ exports["default"] = _default;
@@ -13,148 +13,209 @@ export const Chromatic = () => (
13
13
  <Title title="Default" theme="light" level={4} />
14
14
  <Container>
15
15
  <DxcStack>
16
- <Placeholder></Placeholder>
17
- <Placeholder></Placeholder>
18
- <Placeholder></Placeholder>
16
+ <Placeholder />
17
+ <Placeholder />
18
+ <Placeholder />
19
+ <Placeholder />
20
+ <Placeholder />
19
21
  </DxcStack>
20
22
  </Container>
21
- <Title title="Align = baseline" theme="light" level={4} />
23
+ <Title title="Default with divider" theme="light" level={4} />
22
24
  <Container>
23
- <DxcStack align="baseline">
24
- <Placeholder paddingLeft={20}></Placeholder>
25
- <Placeholder></Placeholder>
26
- <Placeholder paddingRight={60}></Placeholder>
25
+ <DxcStack divider>
26
+ <Placeholder />
27
+ <Placeholder />
28
+ <Placeholder />
27
29
  </DxcStack>
28
30
  </Container>
29
- <Title title="Align = center" theme="light" level={4} />
31
+ <Title title="Alignment with divider" theme="light" level={4} />
30
32
  <Container>
31
- <DxcStack align="center">
33
+ <DxcStack alignX="end" divider>
32
34
  <Placeholder paddingLeft={20}></Placeholder>
33
- <Placeholder></Placeholder>
35
+ <Placeholder />
34
36
  <Placeholder paddingLeft={60}></Placeholder>
35
37
  </DxcStack>
36
38
  </Container>
37
- <Title title="Align = end" theme="light" level={4} />
39
+ <Title title="Default with one child" theme="light" level={4} />
40
+ <Container>
41
+ <DxcStack divider>
42
+ <Placeholder />
43
+ </DxcStack>
44
+ </Container>
45
+ <Title title="Wrap" theme="light" level={4} />
46
+ <FlexContainer customHeight>
47
+ <DxcStack>
48
+ <Placeholder />
49
+ <Placeholder />
50
+ <Placeholder />
51
+ <Placeholder />
52
+ <Placeholder />
53
+ </DxcStack>
54
+ </FlexContainer>
55
+ <Title title="AlignX = start" theme="light" level={4} />
56
+ <Container>
57
+ <DxcStack alignX="start">
58
+ <Placeholder paddingLeft={20}></Placeholder>
59
+ <Placeholder />
60
+ <Placeholder paddingRight={60}></Placeholder>
61
+ <Placeholder paddingLeft={20}></Placeholder>
62
+ </DxcStack>
63
+ </Container>
64
+ <Title title="AlignX = end" theme="light" level={4} />
38
65
  <Container>
39
- <DxcStack align="end">
66
+ <DxcStack alignX="end">
40
67
  <Placeholder paddingLeft={20}></Placeholder>
41
- <Placeholder></Placeholder>
68
+ <Placeholder />
42
69
  <Placeholder paddingLeft={60}></Placeholder>
43
70
  </DxcStack>
44
71
  </Container>
45
- <Title title="Align = start" theme="light" level={4} />
72
+ <Title title="AlignX = center" theme="light" level={4} />
46
73
  <Container>
47
- <DxcStack align="start">
74
+ <DxcStack alignX="center">
48
75
  <Placeholder paddingLeft={20}></Placeholder>
49
- <Placeholder></Placeholder>
76
+ <Placeholder />
50
77
  <Placeholder paddingLeft={60}></Placeholder>
78
+ <Placeholder paddingLeft={20}></Placeholder>
51
79
  </DxcStack>
52
80
  </Container>
53
- <Title title="Align = stretch" theme="light" level={4} />
81
+ <Title title="AlignX = baseline" theme="light" level={4} />
54
82
  <Container>
55
- <DxcStack align="stretch">
83
+ <DxcStack alignX="baseline">
56
84
  <Placeholder paddingLeft={20}></Placeholder>
57
- <Placeholder></Placeholder>
85
+ <Placeholder />
58
86
  <Placeholder paddingLeft={60}></Placeholder>
59
87
  </DxcStack>
60
88
  </Container>
61
- <Title title="gutter = xxxsmall" theme="light" level={4} />
89
+ <Title title="AlignX with wrapped items" theme="light" level={4} />
90
+ <FlexContainer customHeight>
91
+ <DxcStack alignX="center">
92
+ <Placeholder />
93
+ <Placeholder paddingRight={60} />
94
+ <Placeholder paddingLeft={20} />
95
+ <Placeholder />
96
+ <Placeholder paddingRight={20} />
97
+ <Placeholder paddingLeft={60} />
98
+ </DxcStack>
99
+ </FlexContainer>
100
+ <Title title="Gutter = 0rem" theme="light" level={4} />
62
101
  <Container>
63
- <DxcStack gutter="xxxsmall">
64
- <Placeholder></Placeholder>
65
- <Placeholder></Placeholder>
66
- <Placeholder></Placeholder>
102
+ <DxcStack gutter="0rem">
103
+ <Placeholder />
104
+ <Placeholder />
105
+ <Placeholder />
106
+ <Placeholder />
107
+ <Placeholder />
67
108
  </DxcStack>
68
109
  </Container>
69
- <Title title="gutter = xxsmall" theme="light" level={4} />
110
+ <Title title="Gutter = 0.125rem" theme="light" level={4} />
70
111
  <Container>
71
- <DxcStack gutter="xxsmall">
72
- <Placeholder></Placeholder>
73
- <Placeholder></Placeholder>
74
- <Placeholder></Placeholder>
112
+ <DxcStack gutter="0.125rem">
113
+ <Placeholder />
114
+ <Placeholder />
115
+ <Placeholder />
75
116
  </DxcStack>
76
117
  </Container>
77
- <Title title="gutter = xsmall" theme="light" level={4} />
118
+ <Title title="Gutter = 0.25rem" theme="light" level={4} />
78
119
  <Container>
79
- <DxcStack gutter="xsmall">
80
- <Placeholder></Placeholder>
81
- <Placeholder></Placeholder>
82
- <Placeholder></Placeholder>
120
+ <DxcStack gutter="0.25rem">
121
+ <Placeholder />
122
+ <Placeholder />
123
+ <Placeholder />
124
+ <Placeholder />
125
+ <Placeholder />
83
126
  </DxcStack>
84
127
  </Container>
85
- <Title title="gutter = small" theme="light" level={4} />
128
+ <Title title="Gutter = 0.5rem" theme="light" level={4} />
86
129
  <Container>
87
- <DxcStack gutter="small">
88
- <Placeholder></Placeholder>
89
- <Placeholder></Placeholder>
90
- <Placeholder></Placeholder>
130
+ <DxcStack gutter="0.5rem">
131
+ <Placeholder />
132
+ <Placeholder />
133
+ <Placeholder />
91
134
  </DxcStack>
92
135
  </Container>
93
- <Title title="gutter = medium" theme="light" level={4} />
136
+ <Title title="Gutter = 0.75rem" theme="light" level={4} />
94
137
  <Container>
95
- <DxcStack gutter="medium">
96
- <Placeholder></Placeholder>
97
- <Placeholder></Placeholder>
98
- <Placeholder></Placeholder>
138
+ <DxcStack gutter="0.75rem">
139
+ <Placeholder />
140
+ <Placeholder />
141
+ <Placeholder />
142
+ <Placeholder />
143
+ <Placeholder />
99
144
  </DxcStack>
100
145
  </Container>
101
- <Title title="gutter = large" theme="light" level={4} />
146
+ <Title title="Gutter = 1rem" theme="light" level={4} />
102
147
  <Container>
103
- <DxcStack gutter="large">
104
- <Placeholder></Placeholder>
105
- <Placeholder></Placeholder>
106
- <Placeholder></Placeholder>
148
+ <DxcStack gutter="1rem">
149
+ <Placeholder />
150
+ <Placeholder />
151
+ <Placeholder />
107
152
  </DxcStack>
108
153
  </Container>
109
- <Title title="gutter = xlarge" theme="light" level={4} />
154
+ <Title title="Gutter = 1.5rem" theme="light" level={4} />
110
155
  <Container>
111
- <DxcStack gutter="xlarge">
112
- <Placeholder></Placeholder>
113
- <Placeholder></Placeholder>
114
- <Placeholder></Placeholder>
156
+ <DxcStack gutter="1.5rem">
157
+ <Placeholder />
158
+ <Placeholder />
159
+ <Placeholder />
160
+ <Placeholder />
161
+ <Placeholder />
115
162
  </DxcStack>
116
163
  </Container>
117
- <Title title="gutter = xxlarge" theme="light" level={4} />
164
+ <Title title="Gutter = 2rem & divider" theme="light" level={4} />
118
165
  <Container>
119
- <DxcStack gutter="xxlarge">
120
- <Placeholder></Placeholder>
121
- <Placeholder></Placeholder>
122
- <Placeholder></Placeholder>
166
+ <DxcStack gutter="2rem" divider>
167
+ <Placeholder />
168
+ <Placeholder />
169
+ <Placeholder />
123
170
  </DxcStack>
124
171
  </Container>
125
- <Title title="gutter = xxxlarge" theme="light" level={4} />
172
+ <Title title="Gutter = 3rem" theme="light" level={4} />
126
173
  <Container>
127
- <DxcStack gutter="xxxlarge">
128
- <Placeholder></Placeholder>
129
- <Placeholder></Placeholder>
130
- <Placeholder></Placeholder>
174
+ <DxcStack gutter="3rem">
175
+ <Placeholder />
176
+ <Placeholder />
177
+ <Placeholder />
131
178
  </DxcStack>
132
179
  </Container>
133
- <Title title="gutter = xxlarge && divider" theme="light" level={4} />
180
+ <Title title="Gutter = 4rem" theme="light" level={4} />
134
181
  <Container>
135
- <DxcStack gutter="xxlarge" divider>
136
- <Placeholder></Placeholder>
137
- <Placeholder></Placeholder>
138
- <Placeholder></Placeholder>
182
+ <DxcStack gutter="4rem">
183
+ <Placeholder />
184
+ <Placeholder />
139
185
  </DxcStack>
140
186
  </Container>
141
- <Title title="gutter = none" theme="light" level={4} />
187
+ <Title title="Gutter = 5rem" theme="light" level={4} />
142
188
  <Container>
143
- <DxcStack gutter="none">
144
- <Placeholder></Placeholder>
145
- <Placeholder></Placeholder>
146
- <Placeholder></Placeholder>
189
+ <DxcStack gutter="5rem">
190
+ <Placeholder />
191
+ <Placeholder />
192
+ </DxcStack>
193
+ </Container>
194
+ <Title title="Reverse" theme="light" level={4} />
195
+ <Container>
196
+ <DxcStack reverse>
197
+ <Placeholder>1</Placeholder>
198
+ <Placeholder>2</Placeholder>
199
+ <Placeholder>3</Placeholder>
200
+ <Placeholder>4</Placeholder>
147
201
  </DxcStack>
148
202
  </Container>
149
203
  </>
150
204
  );
151
205
 
152
- const Container = styled.div`
206
+ const FlexContainer = styled.div<{ customHeight?: boolean }>`
207
+ display: flex;
208
+ ${({ customHeight }) => customHeight && `height: 100px;`};
153
209
  background: #f2eafa;
154
- padding: 10px;
155
210
  `;
156
211
 
157
- const Placeholder = styled.div`
212
+ const Container = styled.div<{ customHeight?: boolean }>`
213
+ background: #f2eafa;
214
+ `;
215
+
216
+ type PlaceholderProps = { paddingLeft?: number; paddingRight?: number };
217
+
218
+ const Placeholder = styled.div<PlaceholderProps>`
158
219
  min-height: 40px;
159
220
  min-width: 120px;
160
221
  border: 1px solid #a46ede;
package/stack/types.d.ts CHANGED
@@ -1,9 +1,28 @@
1
1
  /// <reference types="react" />
2
2
  declare type Props = {
3
- gutter?: "none" | "xxxsmall" | "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge" | "xxxlarge";
4
- divider?: boolean;
5
- align?: "start" | "center" | "end" | "baseline" | "stretch";
3
+ /**
4
+ * Alignment applied to children in the main axis.
5
+ */
6
+ alignX?: "start" | "end" | "center" | "baseline" | "stretch";
7
+ /**
8
+ * Specifies the HTML tag or component that is rendered as the wrapper element.
9
+ */
6
10
  as?: React.ElementType;
7
- children: React.ReactNode;
11
+ /**
12
+ * If true, a divider is shown between children.
13
+ */
14
+ divider?: boolean;
15
+ /**
16
+ * Space applied between each child.
17
+ */
18
+ gutter?: "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "0.75rem" | "1rem" | "1.5rem" | "2rem" | "3rem" | "4rem" | "5rem";
19
+ /**
20
+ * Change the direction of the stack to reverse.
21
+ */
22
+ reverse?: boolean;
23
+ /**
24
+ * Custom content inside the stack.
25
+ */
26
+ children: React.ReactNode[] | React.ReactNode;
8
27
  };
9
28
  export default Props;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import SwitchPropsType from "./types";
3
- declare const DxcSwitch: ({ checked, value, label, labelPosition, name, disabled, onChange, required, margin, size, tabIndex, }: SwitchPropsType) => JSX.Element;
3
+ declare const DxcSwitch: ({ defaultChecked, checked, value, label, labelPosition, name, disabled, optional, onChange, margin, size, tabIndex, }: SwitchPropsType) => JSX.Element;
4
4
  export default DxcSwitch;
package/switch/Switch.js CHANGED
@@ -21,7 +21,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
22
  var _core = require("@material-ui/core");
23
23
 
24
- var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
24
+ var _uuid = require("uuid");
25
25
 
26
26
  var _variables = require("../common/variables.js");
27
27
 
@@ -29,6 +29,8 @@ var _utils = require("../common/utils.js");
29
29
 
30
30
  var _useTheme = _interopRequireDefault(require("../useTheme"));
31
31
 
32
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
33
+
32
34
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
35
 
34
36
  var _templateObject, _templateObject2;
@@ -38,7 +40,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
38
40
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
41
 
40
42
  var DxcSwitch = function DxcSwitch(_ref) {
41
- var checked = _ref.checked,
43
+ var defaultChecked = _ref.defaultChecked,
44
+ checked = _ref.checked,
42
45
  value = _ref.value,
43
46
  _ref$label = _ref.label,
44
47
  label = _ref$label === void 0 ? "" : _ref$label,
@@ -48,21 +51,28 @@ var DxcSwitch = function DxcSwitch(_ref) {
48
51
  name = _ref$name === void 0 ? "" : _ref$name,
49
52
  _ref$disabled = _ref.disabled,
50
53
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
54
+ _ref$optional = _ref.optional,
55
+ optional = _ref$optional === void 0 ? false : _ref$optional,
51
56
  onChange = _ref.onChange,
52
- _ref$required = _ref.required,
53
- required = _ref$required === void 0 ? false : _ref$required,
54
57
  margin = _ref.margin,
55
58
  _ref$size = _ref.size,
56
59
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
57
60
  _ref$tabIndex = _ref.tabIndex,
58
61
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
59
62
 
60
- var _useState = (0, _react.useState)(false),
61
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
- innerChecked = _useState2[0],
63
- setInnerChecked = _useState2[1];
63
+ var _useState = (0, _react.useState)("switch-".concat((0, _uuid.v4)())),
64
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
65
+ switchId = _useState2[0];
66
+
67
+ var labelId = "label-".concat(switchId);
68
+
69
+ var _useState3 = (0, _react.useState)(defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : false),
70
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
71
+ innerChecked = _useState4[0],
72
+ setInnerChecked = _useState4[1];
64
73
 
65
74
  var colorsTheme = (0, _useTheme["default"])();
75
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
66
76
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
67
77
 
68
78
  var handlerSwitchChange = function handlerSwitchChange(event) {
@@ -75,6 +85,14 @@ var DxcSwitch = function DxcSwitch(_ref) {
75
85
  } else onChange === null || onChange === void 0 ? void 0 : onChange(!checked);
76
86
  };
77
87
 
88
+ var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
89
+ id: labelId,
90
+ labelPosition: labelPosition,
91
+ onClick: !disabled && handlerSwitchChange,
92
+ disabled: disabled,
93
+ backgroundType: backgroundType
94
+ }, labelPosition === "before" ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, label, " ", optional && /*#__PURE__*/_react["default"].createElement("span", null, translatedLabels.formFields.optionalLabel)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, optional && /*#__PURE__*/_react["default"].createElement("span", null, translatedLabels.formFields.optionalLabel), " ", label));
95
+
78
96
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
79
97
  theme: colorsTheme["switch"]
80
98
  }, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
@@ -83,22 +101,20 @@ var DxcSwitch = function DxcSwitch(_ref) {
83
101
  labelPosition: labelPosition,
84
102
  size: size,
85
103
  backgroundType: backgroundType
86
- }, /*#__PURE__*/_react["default"].createElement(_core.Switch, {
104
+ }, labelPosition === "before" && labelComponent, /*#__PURE__*/_react["default"].createElement(_core.Switch, {
87
105
  checked: checked !== null && checked !== void 0 ? checked : innerChecked,
88
106
  inputProps: {
89
107
  name: name,
108
+ "aria-labelledby": labelId,
109
+ role: "switch",
110
+ "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
90
111
  tabIndex: tabIndex
91
112
  },
92
113
  onChange: handlerSwitchChange,
93
114
  value: value,
94
115
  disabled: disabled,
95
116
  disableRipple: true
96
- }), /*#__PURE__*/_react["default"].createElement(LabelContainer, {
97
- labelPosition: labelPosition,
98
- onClick: !disabled && handlerSwitchChange,
99
- disabled: disabled,
100
- backgroundType: backgroundType
101
- }, required && /*#__PURE__*/_react["default"].createElement(_RequiredComponent["default"], null), label)));
117
+ }), labelPosition === "after" && labelComponent));
102
118
  };
103
119
 
104
120
  var sizes = {
@@ -113,10 +129,8 @@ var calculateWidth = function calculateWidth(margin, size) {
113
129
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
114
130
  };
115
131
 
116
- var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n display: inline-flex;\n align-items: center;\n flex-direction: ", ";\n \n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n cursor: ", ";\n\n .MuiSwitch-root {\n align-items: center;\n width: ", ";\n height: 45px;\n margin: 3px;\n\n .Mui-focusVisible {\n outline: ", ";\n outline-offset: -3px;\n }\n\n .MuiSwitch-track {\n /*Enabled and unchecked bar*/\n background-color: ", ";\n height: ", ";\n }\n\n .MuiSwitch-switchBase + .MuiSwitch-track {\n opacity: 1;\n }\n\n .MuiIconButton-root {\n /*Enabled and unchecked*/\n top: unset;\n .MuiSwitch-thumb {\n /*Only for thumb in all states*/\n width: ", ";\n height: ", ";\n }\n color: ", ";\n &:hover {\n background-color: transparent;\n }\n &.Mui-disabled {\n /*Disabled and unchecked*/\n color: ", ";\n + .MuiSwitch-track {\n /*Disabled and unchecked bar*/\n background-color: ", ";\n }\n }\n &.Mui-disabled.Mui-checked {\n /*Disabled and checked*/\n color: ", ";\n + .MuiSwitch-track {\n /*Disabled and checked bar*/\n background-color: ", ";\n }\n }\n &.Mui-checked {\n /*Enabled and checked*/\n color: ", ";\n transform: translateX(", ");\n &:hover {\n background-color: transparent;\n }\n + .MuiSwitch-track {\n /*Enabled and checked bar*/\n background-color: ", ";\n }\n }\n }\n }\n"])), function (props) {
132
+ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n display: inline-flex;\n align-items: center;\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n cursor: ", ";\n\n .MuiSwitch-root {\n align-items: center;\n width: ", ";\n height: 45px;\n margin: 3px;\n\n .Mui-focusVisible {\n outline: ", ";\n outline-offset: -3px;\n }\n\n .MuiSwitch-track {\n /*Enabled and unchecked bar*/\n background-color: ", ";\n height: ", ";\n }\n\n .MuiSwitch-switchBase + .MuiSwitch-track {\n opacity: 1;\n }\n\n .MuiIconButton-root {\n /*Enabled and unchecked*/\n top: unset;\n .MuiSwitch-thumb {\n /*Only for thumb in all states*/\n width: ", ";\n height: ", ";\n }\n color: ", ";\n &:hover {\n background-color: transparent;\n }\n &.Mui-disabled {\n /*Disabled and unchecked*/\n color: ", ";\n + .MuiSwitch-track {\n /*Disabled and unchecked bar*/\n background-color: ", ";\n }\n }\n &.Mui-disabled.Mui-checked {\n /*Disabled and checked*/\n color: ", ";\n + .MuiSwitch-track {\n /*Disabled and checked bar*/\n background-color: ", ";\n }\n }\n &.Mui-checked {\n /*Enabled and checked*/\n color: ", ";\n transform: translateX(", ");\n &:hover {\n background-color: transparent;\n }\n + .MuiSwitch-track {\n /*Enabled and checked bar*/\n background-color: ", ";\n }\n }\n }\n }\n"])), function (props) {
117
133
  return calculateWidth(props.margin, props.size);
118
- }, function (props) {
119
- return props.labelPosition === "after" ? "row" : "row-reverse";
120
134
  }, function (props) {
121
135
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
122
136
  }, function (props) {
@@ -159,7 +173,7 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
159
173
  return props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
160
174
  });
161
175
 
162
- var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n cursor: ", ";\n ", "\n"])), function (props) {
176
+ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n cursor: ", ";\n ", "\n\n ", "\n"])), function (props) {
163
177
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
164
178
  }, function (props) {
165
179
  return props.theme.labelFontFamily;
@@ -173,6 +187,8 @@ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_tem
173
187
  return props.disabled === true ? "not-allowed" : "pointer";
174
188
  }, function (props) {
175
189
  return props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
190
+ }, function (props) {
191
+ return props.labelPosition === "before" && "order: -1";
176
192
  });
177
193
 
178
194
  var _default = DxcSwitch;