@dxc-technology/halstack-react 0.0.0-9b45027 → 0.0.0-9bd9511

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 (294) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -11
  3. package/HalstackContext.d.ts +13 -0
  4. package/HalstackContext.js +318 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +124 -179
  7. package/accordion/Accordion.stories.tsx +115 -27
  8. package/accordion/Accordion.test.js +56 -0
  9. package/accordion/types.d.ts +12 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +28 -77
  12. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  13. package/accordion-group/AccordionGroup.test.js +108 -0
  14. package/accordion-group/types.d.ts +19 -12
  15. package/alert/Alert.js +18 -46
  16. package/alert/Alert.stories.tsx +28 -0
  17. package/alert/Alert.test.js +75 -0
  18. package/alert/types.d.ts +3 -3
  19. package/badge/Badge.d.ts +4 -0
  20. package/badge/Badge.js +6 -16
  21. package/badge/types.d.ts +5 -0
  22. package/bleed/Bleed.d.ts +2 -2
  23. package/bleed/Bleed.js +14 -55
  24. package/bleed/Bleed.stories.tsx +94 -95
  25. package/bleed/types.d.ts +26 -2
  26. package/box/Box.js +34 -63
  27. package/box/Box.stories.tsx +15 -0
  28. package/box/Box.test.js +13 -0
  29. package/box/types.d.ts +5 -4
  30. package/bulleted-list/BulletedList.d.ts +7 -0
  31. package/bulleted-list/BulletedList.js +98 -0
  32. package/bulleted-list/BulletedList.stories.tsx +200 -0
  33. package/bulleted-list/types.d.ts +11 -0
  34. package/bulleted-list/types.js +5 -0
  35. package/button/Button.js +61 -100
  36. package/button/Button.stories.tsx +159 -8
  37. package/button/Button.test.js +26 -0
  38. package/button/types.d.ts +8 -8
  39. package/card/Card.js +44 -70
  40. package/card/Card.test.js +39 -0
  41. package/card/types.d.ts +4 -3
  42. package/checkbox/Checkbox.d.ts +2 -2
  43. package/checkbox/Checkbox.js +115 -162
  44. package/checkbox/Checkbox.stories.tsx +198 -130
  45. package/checkbox/Checkbox.test.js +128 -0
  46. package/checkbox/types.d.ts +14 -6
  47. package/chip/Chip.d.ts +1 -1
  48. package/chip/Chip.js +29 -91
  49. package/chip/Chip.stories.tsx +98 -13
  50. package/chip/Chip.test.js +42 -0
  51. package/chip/types.d.ts +8 -16
  52. package/common/utils.js +1 -6
  53. package/common/variables.d.ts +1431 -0
  54. package/common/variables.js +480 -554
  55. package/date-input/Calendar.d.ts +4 -0
  56. package/date-input/Calendar.js +215 -0
  57. package/date-input/DateInput.js +164 -300
  58. package/date-input/DateInput.stories.tsx +199 -33
  59. package/date-input/DateInput.test.js +648 -0
  60. package/date-input/DatePicker.d.ts +4 -0
  61. package/date-input/DatePicker.js +116 -0
  62. package/date-input/Icons.d.ts +6 -0
  63. package/date-input/Icons.js +63 -0
  64. package/date-input/YearPicker.d.ts +4 -0
  65. package/date-input/YearPicker.js +101 -0
  66. package/date-input/types.d.ts +71 -13
  67. package/dialog/Dialog.js +52 -84
  68. package/dialog/Dialog.stories.tsx +99 -22
  69. package/dialog/Dialog.test.js +56 -0
  70. package/dialog/types.d.ts +4 -3
  71. package/dropdown/Dropdown.d.ts +1 -1
  72. package/dropdown/Dropdown.js +240 -323
  73. package/dropdown/Dropdown.stories.tsx +255 -64
  74. package/dropdown/Dropdown.test.js +479 -0
  75. package/dropdown/DropdownMenu.d.ts +4 -0
  76. package/dropdown/DropdownMenu.js +60 -0
  77. package/dropdown/DropdownMenuItem.d.ts +4 -0
  78. package/dropdown/DropdownMenuItem.js +70 -0
  79. package/dropdown/types.d.ts +30 -19
  80. package/file-input/FileInput.d.ts +2 -2
  81. package/file-input/FileInput.js +224 -351
  82. package/file-input/FileInput.stories.tsx +122 -11
  83. package/file-input/FileInput.test.js +445 -0
  84. package/file-input/FileItem.d.ts +4 -14
  85. package/file-input/FileItem.js +48 -97
  86. package/file-input/types.d.ts +24 -7
  87. package/flex/Flex.d.ts +4 -0
  88. package/flex/Flex.js +57 -0
  89. package/flex/Flex.stories.tsx +103 -0
  90. package/flex/types.d.ts +32 -0
  91. package/flex/types.js +5 -0
  92. package/footer/Footer.js +36 -143
  93. package/footer/Footer.stories.tsx +99 -1
  94. package/footer/Footer.test.js +92 -0
  95. package/footer/Icons.js +1 -5
  96. package/footer/types.d.ts +7 -6
  97. package/header/Header.js +112 -177
  98. package/header/Header.stories.tsx +189 -36
  99. package/header/Header.test.js +66 -0
  100. package/header/Icons.js +2 -6
  101. package/header/types.d.ts +4 -3
  102. package/heading/Heading.js +8 -29
  103. package/heading/Heading.test.js +169 -0
  104. package/heading/types.d.ts +3 -3
  105. package/inset/Inset.js +14 -55
  106. package/inset/Inset.stories.tsx +36 -36
  107. package/inset/types.d.ts +26 -2
  108. package/layout/ApplicationLayout.d.ts +16 -6
  109. package/layout/ApplicationLayout.js +71 -164
  110. package/layout/ApplicationLayout.stories.tsx +84 -93
  111. package/layout/Icons.d.ts +5 -0
  112. package/layout/Icons.js +11 -10
  113. package/layout/SidenavContext.d.ts +5 -0
  114. package/layout/SidenavContext.js +15 -0
  115. package/layout/types.d.ts +18 -33
  116. package/link/Link.d.ts +3 -2
  117. package/link/Link.js +61 -106
  118. package/link/Link.stories.tsx +159 -52
  119. package/link/Link.test.js +65 -0
  120. package/link/types.d.ts +9 -29
  121. package/main.d.ts +11 -15
  122. package/main.js +48 -121
  123. package/nav-tabs/NavTabs.d.ts +8 -0
  124. package/nav-tabs/NavTabs.js +95 -0
  125. package/nav-tabs/NavTabs.stories.tsx +260 -0
  126. package/nav-tabs/NavTabs.test.js +75 -0
  127. package/nav-tabs/Tab.d.ts +4 -0
  128. package/nav-tabs/Tab.js +120 -0
  129. package/nav-tabs/types.d.ts +53 -0
  130. package/nav-tabs/types.js +5 -0
  131. package/number-input/NumberInput.js +21 -38
  132. package/number-input/NumberInput.stories.tsx +5 -5
  133. package/number-input/NumberInput.test.js +406 -0
  134. package/number-input/NumberInputContext.js +0 -5
  135. package/number-input/numberInputContextTypes.d.ts +1 -1
  136. package/number-input/types.d.ts +21 -14
  137. package/package.json +22 -25
  138. package/paginator/Icons.d.ts +5 -0
  139. package/paginator/Icons.js +16 -38
  140. package/paginator/Paginator.js +31 -82
  141. package/paginator/Paginator.stories.tsx +24 -0
  142. package/paginator/Paginator.test.js +266 -0
  143. package/paginator/types.d.ts +1 -1
  144. package/paragraph/Paragraph.d.ts +6 -0
  145. package/paragraph/Paragraph.js +28 -0
  146. package/paragraph/Paragraph.stories.tsx +44 -0
  147. package/password-input/PasswordInput.js +28 -54
  148. package/password-input/PasswordInput.test.js +138 -0
  149. package/password-input/types.d.ts +18 -15
  150. package/progress-bar/ProgressBar.d.ts +2 -2
  151. package/progress-bar/ProgressBar.js +65 -84
  152. package/progress-bar/ProgressBar.stories.jsx +47 -12
  153. package/progress-bar/ProgressBar.test.js +93 -0
  154. package/progress-bar/types.d.ts +3 -4
  155. package/quick-nav/QuickNav.d.ts +4 -0
  156. package/quick-nav/QuickNav.js +95 -0
  157. package/quick-nav/QuickNav.stories.tsx +356 -0
  158. package/quick-nav/types.d.ts +21 -0
  159. package/quick-nav/types.js +5 -0
  160. package/radio-group/Radio.d.ts +1 -1
  161. package/radio-group/Radio.js +61 -66
  162. package/radio-group/RadioGroup.js +99 -129
  163. package/radio-group/RadioGroup.stories.tsx +171 -36
  164. package/radio-group/RadioGroup.test.js +620 -0
  165. package/radio-group/types.d.ts +85 -7
  166. package/resultsetTable/Icons.d.ts +7 -0
  167. package/resultsetTable/Icons.js +48 -0
  168. package/resultsetTable/ResultsetTable.js +66 -157
  169. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  170. package/resultsetTable/ResultsetTable.test.js +292 -0
  171. package/resultsetTable/types.d.ts +5 -5
  172. package/select/Icons.d.ts +10 -0
  173. package/select/Icons.js +90 -0
  174. package/select/Listbox.d.ts +4 -0
  175. package/select/Listbox.js +144 -0
  176. package/select/Option.d.ts +4 -0
  177. package/select/Option.js +81 -0
  178. package/select/Select.js +201 -485
  179. package/select/Select.stories.tsx +600 -201
  180. package/select/Select.test.js +1845 -0
  181. package/select/types.d.ts +62 -22
  182. package/sidenav/Sidenav.d.ts +6 -5
  183. package/sidenav/Sidenav.js +164 -74
  184. package/sidenav/Sidenav.stories.tsx +249 -149
  185. package/sidenav/Sidenav.test.js +37 -0
  186. package/sidenav/types.d.ts +50 -27
  187. package/slider/Slider.d.ts +2 -2
  188. package/slider/Slider.js +143 -164
  189. package/slider/Slider.stories.tsx +72 -9
  190. package/slider/Slider.test.js +222 -0
  191. package/slider/types.d.ts +11 -3
  192. package/spinner/Spinner.js +12 -41
  193. package/spinner/Spinner.stories.jsx +27 -1
  194. package/spinner/Spinner.test.js +55 -0
  195. package/spinner/types.d.ts +3 -3
  196. package/switch/Switch.d.ts +2 -2
  197. package/switch/Switch.js +148 -107
  198. package/switch/Switch.stories.tsx +53 -42
  199. package/switch/Switch.test.js +180 -0
  200. package/switch/types.d.ts +13 -5
  201. package/table/Table.js +5 -23
  202. package/table/Table.stories.jsx +80 -1
  203. package/table/Table.test.js +21 -0
  204. package/table/types.d.ts +3 -3
  205. package/tabs/Tab.d.ts +4 -0
  206. package/tabs/Tab.js +115 -0
  207. package/tabs/Tabs.d.ts +1 -1
  208. package/tabs/Tabs.js +318 -139
  209. package/tabs/Tabs.stories.tsx +119 -13
  210. package/tabs/Tabs.test.js +295 -0
  211. package/tabs/types.d.ts +21 -7
  212. package/tag/Tag.d.ts +1 -1
  213. package/tag/Tag.js +36 -75
  214. package/tag/Tag.stories.tsx +37 -27
  215. package/tag/Tag.test.js +49 -0
  216. package/tag/types.d.ts +25 -16
  217. package/text-input/Icons.d.ts +8 -0
  218. package/text-input/Icons.js +57 -0
  219. package/text-input/Suggestion.d.ts +4 -0
  220. package/text-input/Suggestion.js +68 -0
  221. package/text-input/Suggestions.d.ts +4 -0
  222. package/text-input/Suggestions.js +109 -0
  223. package/text-input/TextInput.js +232 -438
  224. package/text-input/TextInput.stories.tsx +310 -197
  225. package/text-input/TextInput.test.js +1404 -0
  226. package/text-input/types.d.ts +55 -17
  227. package/textarea/Textarea.js +53 -96
  228. package/textarea/Textarea.stories.jsx +93 -13
  229. package/textarea/Textarea.test.js +360 -0
  230. package/textarea/types.d.ts +22 -15
  231. package/toggle-group/ToggleGroup.d.ts +1 -1
  232. package/toggle-group/ToggleGroup.js +23 -57
  233. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  234. package/toggle-group/ToggleGroup.test.js +124 -0
  235. package/toggle-group/types.d.ts +19 -11
  236. package/translatedLabelsType.d.ts +82 -0
  237. package/translatedLabelsType.js +5 -0
  238. package/typography/Typography.d.ts +4 -0
  239. package/typography/Typography.js +119 -0
  240. package/typography/Typography.stories.tsx +198 -0
  241. package/typography/types.d.ts +18 -0
  242. package/typography/types.js +5 -0
  243. package/useTheme.d.ts +1 -1
  244. package/useTheme.js +3 -9
  245. package/useTranslatedLabels.d.ts +3 -0
  246. package/useTranslatedLabels.js +15 -0
  247. package/wizard/Wizard.d.ts +1 -1
  248. package/wizard/Wizard.js +68 -98
  249. package/wizard/Wizard.stories.tsx +48 -19
  250. package/wizard/Wizard.test.js +114 -0
  251. package/wizard/types.d.ts +12 -7
  252. package/ThemeContext.d.ts +0 -15
  253. package/ThemeContext.js +0 -243
  254. package/V3Select/V3Select.js +0 -455
  255. package/V3Select/index.d.ts +0 -27
  256. package/V3Textarea/V3Textarea.js +0 -260
  257. package/V3Textarea/index.d.ts +0 -27
  258. package/common/RequiredComponent.js +0 -32
  259. package/date/Date.js +0 -373
  260. package/date/index.d.ts +0 -27
  261. package/input-text/Icons.js +0 -22
  262. package/input-text/InputText.js +0 -611
  263. package/input-text/index.d.ts +0 -36
  264. package/list/List.d.ts +0 -8
  265. package/list/List.js +0 -47
  266. package/list/List.stories.tsx +0 -95
  267. package/radio/Radio.d.ts +0 -4
  268. package/radio/Radio.js +0 -174
  269. package/radio/Radio.stories.tsx +0 -192
  270. package/radio/types.d.ts +0 -54
  271. package/row/Row.d.ts +0 -11
  272. package/row/Row.js +0 -127
  273. package/row/Row.stories.tsx +0 -239
  274. package/stack/Stack.d.ts +0 -10
  275. package/stack/Stack.js +0 -97
  276. package/stack/Stack.stories.tsx +0 -166
  277. package/text/Text.d.ts +0 -7
  278. package/text/Text.js +0 -30
  279. package/text/Text.stories.tsx +0 -19
  280. package/toggle/Toggle.js +0 -186
  281. package/toggle/index.d.ts +0 -21
  282. package/upload/Upload.js +0 -201
  283. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  284. package/upload/buttons-upload/Icons.js +0 -40
  285. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  286. package/upload/dragAndDropArea/Icons.js +0 -39
  287. package/upload/file-upload/FileToUpload.js +0 -115
  288. package/upload/file-upload/Icons.js +0 -66
  289. package/upload/files-upload/FilesToUpload.js +0 -109
  290. package/upload/index.d.ts +0 -15
  291. package/upload/transaction/Icons.js +0 -160
  292. package/upload/transaction/Transaction.js +0 -104
  293. package/upload/transactions/Transactions.js +0 -94
  294. /package/{radio → badge}/types.js +0 -0
@@ -3,6 +3,7 @@ import { userEvent, within } from "@storybook/testing-library";
3
3
  import DxcToggleGroup from "./ToggleGroup";
4
4
  import Title from "../../.storybook/components/Title";
5
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import { HalstackProvider } from "../HalstackContext";
6
7
 
7
8
  export default {
8
9
  title: "ToggleGroup",
@@ -89,6 +90,16 @@ const twoOptions = [
89
90
  label: "Twitter",
90
91
  },
91
92
  ];
93
+
94
+ const opinionatedTheme = {
95
+ toggleGroup: {
96
+ selectedBaseColor: "#5f249f",
97
+ selectedFontColor: "#ffffff",
98
+ unselectedBaseColor: "#e6e6e6",
99
+ unselectedFontColor: "#000000",
100
+ },
101
+ };
102
+
92
103
  export const Chromatic = () => (
93
104
  <>
94
105
  <ExampleContainer>
@@ -97,7 +108,7 @@ export const Chromatic = () => (
97
108
  </ExampleContainer>
98
109
  <ExampleContainer>
99
110
  <Title title="Selected" theme="light" level={4} />
100
- <DxcToggleGroup label="Selected" helperText="HelperText" value={2} options={options} />
111
+ <DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
101
112
  </ExampleContainer>
102
113
  <ExampleContainer>
103
114
  <Title title="Icons toggle group" theme="light" level={4} />
@@ -109,11 +120,11 @@ export const Chromatic = () => (
109
120
  </ExampleContainer>
110
121
  <ExampleContainer>
111
122
  <Title title="Disabled" theme="light" level={4} />
112
- <DxcToggleGroup label="Disabled" value={2} options={options} disabled />
123
+ <DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
113
124
  </ExampleContainer>
114
125
  <ExampleContainer pseudoState="pseudo-hover">
115
126
  <Title title="Hovered" theme="light" level={4} />
116
- <DxcToggleGroup label="Hovered" options={twoOptions} value={2} />
127
+ <DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
117
128
  </ExampleContainer>
118
129
  <ExampleContainer>
119
130
  <Title title="Multiple toggleGroup" theme="light" level={4} />
@@ -121,7 +132,7 @@ export const Chromatic = () => (
121
132
  label="Toggle group"
122
133
  helperText="Please select one or more"
123
134
  options={options}
124
- value={[1, 3]}
135
+ defaultValue={[1, 3]}
125
136
  multiple
126
137
  ></DxcToggleGroup>
127
138
  </ExampleContainer>
@@ -154,6 +165,37 @@ export const Chromatic = () => (
154
165
  <Title title="xxLarge" theme="light" level={4} />
155
166
  <DxcToggleGroup label="xxLarge margin" options={options} margin="xxlarge" />
156
167
  </ExampleContainer>
168
+ <Title title="Opinionated theme" theme="light" level={2} />
169
+ <ExampleContainer>
170
+ <HalstackProvider theme={opinionatedTheme}>
171
+ <Title title="Selected" theme="light" level={4} />
172
+ <DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
173
+ </HalstackProvider>
174
+ </ExampleContainer>
175
+ <ExampleContainer>
176
+ <HalstackProvider theme={opinionatedTheme}>
177
+ <Title title="Icons & label toggle group" theme="light" level={4} />
178
+ <DxcToggleGroup label="Icons & label" options={optionsWithIconAndLabel} />
179
+ </HalstackProvider>
180
+ </ExampleContainer>
181
+ <ExampleContainer>
182
+ <HalstackProvider theme={opinionatedTheme}>
183
+ <Title title="Disabled" theme="light" level={4} />
184
+ <DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
185
+ </HalstackProvider>
186
+ </ExampleContainer>
187
+ <ExampleContainer pseudoState="pseudo-hover">
188
+ <Title title="Hovered" theme="light" level={4} />
189
+ <HalstackProvider theme={opinionatedTheme}>
190
+ <DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
191
+ </HalstackProvider>
192
+ </ExampleContainer>
193
+ <ExampleContainer pseudoState="pseudo-active">
194
+ <Title title="Actived" theme="light" level={4} />
195
+ <HalstackProvider theme={opinionatedTheme}>
196
+ <DxcToggleGroup label="Actived" options={twoOptions} defaultValue={2} />
197
+ </HalstackProvider>
198
+ </ExampleContainer>
157
199
  </>
158
200
  );
159
201
  const OptionSelected = () => <DxcToggleGroup label="Toggle group" helperText="HelperText" options={options} />;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup"));
7
+ var options = [{
8
+ value: 1,
9
+ label: "Amazon"
10
+ }, {
11
+ value: 2,
12
+ label: "Ebay"
13
+ }, {
14
+ value: 3,
15
+ label: "Apple"
16
+ }, {
17
+ value: 4,
18
+ label: "Google"
19
+ }];
20
+ describe("Toggle group component tests", function () {
21
+ test("Toggle group renders with correct labels", function () {
22
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
23
+ label: "Toggle group label",
24
+ helperText: "Toggle group helper text",
25
+ options: options
26
+ })),
27
+ getByText = _render.getByText;
28
+ expect(getByText("Toggle group label")).toBeTruthy();
29
+ expect(getByText("Toggle group helper text")).toBeTruthy();
30
+ expect(getByText("Amazon")).toBeTruthy();
31
+ expect(getByText("Ebay")).toBeTruthy();
32
+ expect(getByText("Apple")).toBeTruthy();
33
+ expect(getByText("Google")).toBeTruthy();
34
+ });
35
+ test("Uncontrolled toggle group calls correct function on change with value", function () {
36
+ var onChange = jest.fn();
37
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
38
+ options: options,
39
+ onChange: onChange
40
+ })),
41
+ getByText = _render2.getByText;
42
+ var option = getByText("Ebay");
43
+ _react2.fireEvent.click(option);
44
+ expect(onChange).toHaveBeenCalledWith(2);
45
+ });
46
+ test("Controlled toggle group calls correct function on change with value", function () {
47
+ var onChange = jest.fn();
48
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
49
+ options: options,
50
+ onChange: onChange,
51
+ value: 1
52
+ })),
53
+ getByText = _render3.getByText;
54
+ var option = getByText("Ebay");
55
+ _react2.fireEvent.click(option);
56
+ expect(onChange).toHaveBeenCalledWith(2);
57
+ });
58
+ test("Function on change is not called when disable", function () {
59
+ var onChange = jest.fn();
60
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
61
+ options: options,
62
+ onChange: onChange,
63
+ disabled: true
64
+ })),
65
+ getByText = _render4.getByText;
66
+ var option = getByText("Ebay");
67
+ _react2.fireEvent.click(option);
68
+ expect(onChange).toHaveBeenCalledTimes(0);
69
+ });
70
+ test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", function () {
71
+ var onChange = jest.fn();
72
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
73
+ options: options,
74
+ onChange: onChange,
75
+ multiple: true
76
+ })),
77
+ getAllByRole = _render5.getAllByRole;
78
+ var toggleOptions = getAllByRole("switch");
79
+ _react2.fireEvent.click(toggleOptions[0]);
80
+ expect(onChange).toHaveBeenCalledWith([1]);
81
+ _react2.fireEvent.click(toggleOptions[1]);
82
+ _react2.fireEvent.click(toggleOptions[3]);
83
+ expect(onChange).toHaveBeenCalledWith([1, 2, 4]);
84
+ expect(toggleOptions[0].getAttribute("aria-checked")).toBe("true");
85
+ expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
86
+ expect(toggleOptions[3].getAttribute("aria-checked")).toBe("true");
87
+ });
88
+ test("Controlled multiple toggle returns always same values", function () {
89
+ var onChange = jest.fn();
90
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
91
+ options: options,
92
+ onChange: onChange,
93
+ value: [1],
94
+ multiple: true
95
+ })),
96
+ getByText = _render6.getByText;
97
+ var option = getByText("Ebay");
98
+ _react2.fireEvent.click(option);
99
+ expect(onChange).toHaveBeenCalledWith([1, 2]);
100
+ var option2 = getByText("Google");
101
+ _react2.fireEvent.click(option2);
102
+ expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
103
+ });
104
+ test("Single selection: Renders with correct default value", function () {
105
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
106
+ options: options,
107
+ defaultValue: 2
108
+ })),
109
+ getAllByRole = _render7.getAllByRole;
110
+ var toggleOptions = getAllByRole("radio");
111
+ expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
112
+ });
113
+ test("Multiple selection: Renders with correct default value", function () {
114
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
115
+ options: options,
116
+ defaultValue: [2, 4],
117
+ multiple: true
118
+ })),
119
+ getAllByRole = _render8.getAllByRole;
120
+ var toggleOptions = getAllByRole("switch");
121
+ expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
122
+ expect(toggleOptions[3].getAttribute("aria-checked")).toBe("true");
123
+ });
124
+ });
@@ -1,19 +1,19 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement>;
10
- declare type OptionCommons = {
9
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ type OptionCommons = {
11
11
  /**
12
12
  * Number with the option inner value.
13
13
  */
14
14
  value: number;
15
15
  };
16
- declare type OptionIcon = OptionCommons & {
16
+ type OptionIcon = OptionCommons & {
17
17
  /**
18
18
  * String with the option display value.
19
19
  */
@@ -23,7 +23,7 @@ declare type OptionIcon = OptionCommons & {
23
23
  */
24
24
  icon: string | SVG;
25
25
  };
26
- declare type OptionLabel = OptionCommons & {
26
+ type OptionLabel = OptionCommons & {
27
27
  /**
28
28
  * String with the option display value.
29
29
  */
@@ -33,8 +33,8 @@ declare type OptionLabel = OptionCommons & {
33
33
  */
34
34
  icon?: string | SVG;
35
35
  };
36
- declare type Option = OptionIcon | OptionLabel;
37
- declare type CommonProps = {
36
+ type Option = OptionIcon | OptionLabel;
37
+ type CommonProps = {
38
38
  /**
39
39
  * Text to be placed above the component.
40
40
  */
@@ -61,11 +61,15 @@ declare type CommonProps = {
61
61
  */
62
62
  tabIndex?: number;
63
63
  };
64
- declare type SingleSelectionToggle = CommonProps & {
64
+ type SingleSelectionToggle = CommonProps & {
65
65
  /**
66
66
  * If true, the toggle group will support multiple selection. In that case, value must be an array of numbers with the keys of the selected values.
67
67
  */
68
68
  multiple?: false;
69
+ /**
70
+ * The key of the initially selected value.
71
+ */
72
+ defaultValue?: number;
69
73
  /**
70
74
  * The key of the selected value. If the component allows multiple selection, value must be an array.
71
75
  * If undefined, the component will be uncontrolled and the value will be managed internally by the component.
@@ -77,11 +81,15 @@ declare type SingleSelectionToggle = CommonProps & {
77
81
  */
78
82
  onChange?: (optionIndex: number) => void;
79
83
  };
80
- declare type MultipleSelectionToggle = CommonProps & {
84
+ type MultipleSelectionToggle = CommonProps & {
81
85
  /**
82
86
  * If true, the toggle group will support multiple selection. In that case, value must be an array of numbers with the keys of the selected values.
83
87
  */
84
88
  multiple: true;
89
+ /**
90
+ * The array of keys with the initially selected values.
91
+ */
92
+ defaultValue?: number[];
85
93
  /**
86
94
  * An array with the keys of the selected values.
87
95
  * If undefined, the component will be uncontrolled and the value will be managed internally by the component.
@@ -93,5 +101,5 @@ declare type MultipleSelectionToggle = CommonProps & {
93
101
  */
94
102
  onChange?: (optionIndex: number[]) => void;
95
103
  };
96
- declare type Props = SingleSelectionToggle | MultipleSelectionToggle;
104
+ type Props = SingleSelectionToggle | MultipleSelectionToggle;
97
105
  export default Props;
@@ -0,0 +1,82 @@
1
+ type TranslatedLabelsContextTypes = {
2
+ formFields: {
3
+ optionalLabel: string;
4
+ requiredSelectionErrorMessage: string;
5
+ requiredValueErrorMessage: string;
6
+ formatRequestedErrorMessage: string;
7
+ lengthErrorMessage: (minLength: number, maxLength: number) => string;
8
+ logoAlternativeText: string;
9
+ };
10
+ applicationLayout: {
11
+ visibilityToggleTitle: string;
12
+ };
13
+ alert: {
14
+ infoTitleText: string;
15
+ successTitleText: string;
16
+ warningTitleText: string;
17
+ errorTitleText: string;
18
+ };
19
+ dateInput: {
20
+ invalidDateErrorMessage: string;
21
+ };
22
+ fileInput: {
23
+ fileSizeGreaterThanErrorMessage: string;
24
+ fileSizeLessThanErrorMessage: string;
25
+ multipleButtonLabelDefault: string;
26
+ singleButtonLabelDefault: string;
27
+ dropAreaButtonLabelDefault: string;
28
+ multipleDropAreaLabelDefault: string;
29
+ singleDropAreaLabelDefault: string;
30
+ deleteFileActionTitle: string;
31
+ };
32
+ footer: {
33
+ copyrightText: (year: number) => string;
34
+ };
35
+ header: {
36
+ closeIcon: string;
37
+ hamburguerTitle: string;
38
+ };
39
+ numberInput: {
40
+ valueGreaterThanOrEqualToErrorMessage: (minLength: number) => string;
41
+ valueLessThanOrEqualToErrorMessage: (maxLength: number) => string;
42
+ decrementValueTitle: string;
43
+ incrementValueTitle: string;
44
+ };
45
+ paginator: {
46
+ itemsPerPageText: string;
47
+ minToMaxOfText: (minNumberOfItems: number, maxNumberOfItems: number, totalItems: number) => string;
48
+ goToPageText: string;
49
+ pageOfText: (pageNumber: number, totalPagesNumber: number) => string;
50
+ };
51
+ passwordInput: {
52
+ inputShowPasswordTitle: string;
53
+ inputHidePasswordTitle: string;
54
+ };
55
+ quickNav: {
56
+ contentTitle: string;
57
+ };
58
+ radioGroup: {
59
+ optionalItemLabelDefault: string;
60
+ };
61
+ select: {
62
+ noMatchesErrorMessage: string;
63
+ actionClearSelectionTitle: string;
64
+ actionClearSearchTitle: string;
65
+ };
66
+ tabs: {
67
+ scrollLeft: string;
68
+ scrollRight: string;
69
+ };
70
+ textInput: {
71
+ clearFieldActionTitle: string;
72
+ searchingMessage: string;
73
+ fetchingDataErrorMessage: string;
74
+ };
75
+ calendar: {
76
+ daysShort: string[];
77
+ months: string[];
78
+ previousMonthTitle: string;
79
+ nextMonthTitle: string;
80
+ };
81
+ };
82
+ export default TranslatedLabelsContextTypes;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import TypographyPropsTypes from "./types";
3
+ declare const Typography: ({ as, display, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign, color, textDecoration, textOverflow, whiteSpace, children, }: TypographyPropsTypes) => JSX.Element;
4
+ export default Typography;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
12
+ var _templateObject;
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ var TypographyContext = /*#__PURE__*/_react["default"].createContext(null);
16
+ var Typography = function Typography(_ref) {
17
+ var as = _ref.as,
18
+ display = _ref.display,
19
+ fontFamily = _ref.fontFamily,
20
+ fontSize = _ref.fontSize,
21
+ fontStyle = _ref.fontStyle,
22
+ fontWeight = _ref.fontWeight,
23
+ letterSpacing = _ref.letterSpacing,
24
+ lineHeight = _ref.lineHeight,
25
+ textAlign = _ref.textAlign,
26
+ color = _ref.color,
27
+ textDecoration = _ref.textDecoration,
28
+ textOverflow = _ref.textOverflow,
29
+ whiteSpace = _ref.whiteSpace,
30
+ children = _ref.children;
31
+ var componentContext = (0, _react.useContext)(TypographyContext);
32
+ var asValue = as !== null && as !== void 0 ? as : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.as) || "span";
33
+ var displayValue = display !== null && display !== void 0 ? display : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.display) || "inline";
34
+ var fontFamilyValue = fontFamily !== null && fontFamily !== void 0 ? fontFamily : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontFamily) || "Open Sans, sans-serif";
35
+ var fontSizeValue = fontSize !== null && fontSize !== void 0 ? fontSize : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontSize) || "1rem";
36
+ var fontStyleValue = fontStyle !== null && fontStyle !== void 0 ? fontStyle : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontStyle) || "normal";
37
+ var fontWeightValue = fontWeight !== null && fontWeight !== void 0 ? fontWeight : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontWeight) || "400";
38
+ var letterSpacingValue = letterSpacing !== null && letterSpacing !== void 0 ? letterSpacing : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.letterSpacing) || "0em";
39
+ var lineHeightValue = lineHeight !== null && lineHeight !== void 0 ? lineHeight : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.lineHeight) || "1.5em";
40
+ var textAlignValue = textAlign !== null && textAlign !== void 0 ? textAlign : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.textAlign) || "left";
41
+ var colorValue = color !== null && color !== void 0 ? color : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.color) || "#000000";
42
+ var textDecorationValue = textDecoration !== null && textDecoration !== void 0 ? textDecoration : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.textDecoration) || "none";
43
+ var textOverflowValue = textOverflow !== null && textOverflow !== void 0 ? textOverflow : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.textOverflow) || "unset";
44
+ var whiteSpaceValue = whiteSpace !== null && whiteSpace !== void 0 ? whiteSpace : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.whiteSpace) || "normal";
45
+ return /*#__PURE__*/_react["default"].createElement(TypographyContext.Provider, {
46
+ value: {
47
+ as: asValue,
48
+ display: displayValue,
49
+ fontFamily: fontFamilyValue,
50
+ fontSize: fontSizeValue,
51
+ fontStyle: fontStyleValue,
52
+ fontWeight: fontWeightValue,
53
+ letterSpacing: letterSpacingValue,
54
+ lineHeight: lineHeightValue,
55
+ textAlign: textAlignValue,
56
+ color: colorValue,
57
+ textDecoration: textDecorationValue,
58
+ textOverflow: textOverflowValue,
59
+ whiteSpace: whiteSpaceValue
60
+ }
61
+ }, /*#__PURE__*/_react["default"].createElement(StyledTypography, {
62
+ as: asValue,
63
+ display: displayValue,
64
+ fontFamily: fontFamilyValue,
65
+ fontSize: fontSizeValue,
66
+ fontStyle: fontStyleValue,
67
+ fontWeight: fontWeightValue,
68
+ letterSpacing: letterSpacingValue,
69
+ lineHeight: lineHeightValue,
70
+ textAlign: textAlignValue,
71
+ color: colorValue,
72
+ textDecoration: textDecorationValue,
73
+ textOverflow: textOverflowValue,
74
+ whiteSpace: whiteSpaceValue
75
+ }, children));
76
+ };
77
+ var StyledTypography = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px;\n display: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n text-align: ", ";\n line-height: ", ";\n text-decoration: ", ";\n text-overflow: ", ";\n white-space: ", ";\n overflow: ", ";\n"])), function (_ref2) {
78
+ var display = _ref2.display;
79
+ return display;
80
+ }, function (_ref3) {
81
+ var color = _ref3.color;
82
+ return color;
83
+ }, function (_ref4) {
84
+ var fontFamily = _ref4.fontFamily;
85
+ return fontFamily;
86
+ }, function (_ref5) {
87
+ var fontSize = _ref5.fontSize;
88
+ return fontSize;
89
+ }, function (_ref6) {
90
+ var fontStyle = _ref6.fontStyle;
91
+ return fontStyle;
92
+ }, function (_ref7) {
93
+ var fontWeight = _ref7.fontWeight;
94
+ return fontWeight;
95
+ }, function (_ref8) {
96
+ var letterSpacing = _ref8.letterSpacing;
97
+ return letterSpacing;
98
+ }, function (_ref9) {
99
+ var textAlign = _ref9.textAlign;
100
+ return textAlign;
101
+ }, function (_ref10) {
102
+ var lineHeight = _ref10.lineHeight;
103
+ return lineHeight;
104
+ }, function (_ref11) {
105
+ var textDecoration = _ref11.textDecoration;
106
+ return textDecoration;
107
+ }, function (_ref12) {
108
+ var textOverflow = _ref12.textOverflow;
109
+ return textOverflow;
110
+ }, function (_ref13) {
111
+ var whiteSpace = _ref13.whiteSpace,
112
+ textOverflow = _ref13.textOverflow;
113
+ return whiteSpace !== "normal" ? whiteSpace : textOverflow !== "unset" ? "nowrap" : "normal";
114
+ }, function (_ref14) {
115
+ var textOverflow = _ref14.textOverflow;
116
+ return textOverflow !== "unset" ? "hidden" : "visible";
117
+ });
118
+ var _default = Typography;
119
+ exports["default"] = _default;