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

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 (213) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +12 -2
  3. package/HalstackContext.d.ts +1330 -7
  4. package/HalstackContext.js +84 -67
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +74 -55
  7. package/accordion/Accordion.stories.tsx +3 -101
  8. package/accordion/Accordion.test.js +34 -19
  9. package/accordion/types.d.ts +4 -16
  10. package/accordion-group/AccordionGroup.d.ts +4 -3
  11. package/accordion-group/AccordionGroup.js +49 -42
  12. package/accordion-group/AccordionGroup.stories.tsx +77 -76
  13. package/accordion-group/AccordionGroup.test.js +62 -54
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +6 -18
  17. package/alert/Alert.js +47 -20
  18. package/alert/Alert.test.js +46 -29
  19. package/alert/types.d.ts +3 -3
  20. package/badge/Badge.js +14 -2
  21. package/badge/types.d.ts +1 -1
  22. package/bleed/Bleed.js +21 -13
  23. package/bleed/Bleed.stories.tsx +1 -0
  24. package/bleed/types.d.ts +2 -2
  25. package/box/Box.d.ts +1 -1
  26. package/box/Box.js +33 -33
  27. package/box/Box.stories.tsx +25 -53
  28. package/box/Box.test.js +7 -2
  29. package/box/types.d.ts +3 -15
  30. package/bulleted-list/BulletedList.js +36 -9
  31. package/bulleted-list/BulletedList.stories.tsx +7 -1
  32. package/bulleted-list/types.d.ts +32 -5
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +83 -71
  35. package/button/Button.stories.tsx +4 -4
  36. package/button/Button.test.js +28 -8
  37. package/button/types.d.ts +8 -4
  38. package/card/Card.d.ts +1 -1
  39. package/card/Card.js +67 -62
  40. package/card/Card.stories.tsx +12 -42
  41. package/card/Card.test.js +22 -11
  42. package/card/types.d.ts +4 -10
  43. package/checkbox/Checkbox.js +71 -27
  44. package/checkbox/Checkbox.test.js +60 -33
  45. package/checkbox/types.d.ts +4 -4
  46. package/chip/Chip.js +51 -48
  47. package/chip/Chip.stories.tsx +25 -17
  48. package/chip/Chip.test.js +29 -17
  49. package/chip/types.d.ts +4 -4
  50. package/common/OpenSans.css +68 -80
  51. package/common/coreTokens.d.ts +146 -0
  52. package/common/coreTokens.js +167 -0
  53. package/common/utils.d.ts +1 -0
  54. package/common/utils.js +8 -3
  55. package/common/variables.d.ts +226 -175
  56. package/common/variables.js +956 -1133
  57. package/date-input/Calendar.js +55 -12
  58. package/date-input/DateInput.js +82 -35
  59. package/date-input/DateInput.test.js +351 -164
  60. package/date-input/DatePicker.js +38 -8
  61. package/date-input/Icons.js +12 -0
  62. package/date-input/YearPicker.js +30 -5
  63. package/date-input/types.d.ts +7 -7
  64. package/dialog/Dialog.d.ts +1 -1
  65. package/dialog/Dialog.js +83 -86
  66. package/dialog/Dialog.stories.tsx +127 -221
  67. package/dialog/Dialog.test.js +331 -18
  68. package/dialog/types.d.ts +1 -14
  69. package/dropdown/Dropdown.js +86 -32
  70. package/dropdown/Dropdown.test.js +211 -104
  71. package/dropdown/DropdownMenu.js +22 -8
  72. package/dropdown/DropdownMenuItem.js +15 -6
  73. package/dropdown/types.d.ts +8 -8
  74. package/file-input/FileInput.js +218 -134
  75. package/file-input/FileInput.test.js +343 -331
  76. package/file-input/FileItem.js +39 -12
  77. package/file-input/types.d.ts +10 -10
  78. package/flex/Flex.js +39 -25
  79. package/flex/Flex.stories.tsx +35 -26
  80. package/flex/types.d.ts +74 -9
  81. package/footer/Footer.d.ts +1 -1
  82. package/footer/Footer.js +80 -68
  83. package/footer/Footer.stories.tsx +12 -89
  84. package/footer/Footer.test.js +47 -40
  85. package/footer/Icons.js +4 -0
  86. package/footer/types.d.ts +15 -17
  87. package/grid/Grid.d.ts +7 -0
  88. package/grid/Grid.js +91 -0
  89. package/grid/Grid.stories.tsx +219 -0
  90. package/grid/types.d.ts +115 -0
  91. package/header/Header.d.ts +4 -3
  92. package/header/Header.js +72 -55
  93. package/header/Header.stories.tsx +7 -71
  94. package/header/Header.test.js +26 -13
  95. package/header/Icons.js +4 -0
  96. package/header/types.d.ts +2 -16
  97. package/heading/Heading.js +28 -7
  98. package/heading/Heading.test.js +88 -71
  99. package/heading/types.d.ts +3 -3
  100. package/inset/Inset.js +21 -13
  101. package/inset/Inset.stories.tsx +2 -1
  102. package/inset/types.d.ts +2 -2
  103. package/layout/ApplicationLayout.d.ts +5 -5
  104. package/layout/ApplicationLayout.js +57 -15
  105. package/layout/Icons.js +10 -0
  106. package/layout/SidenavContext.d.ts +1 -1
  107. package/layout/SidenavContext.js +4 -0
  108. package/layout/types.d.ts +5 -6
  109. package/link/Link.js +41 -21
  110. package/link/Link.test.js +42 -26
  111. package/link/types.d.ts +4 -4
  112. package/main.d.ts +2 -1
  113. package/main.js +55 -0
  114. package/nav-tabs/NavTabs.d.ts +2 -2
  115. package/nav-tabs/NavTabs.js +43 -16
  116. package/nav-tabs/NavTabs.stories.tsx +14 -0
  117. package/nav-tabs/NavTabs.test.js +44 -37
  118. package/nav-tabs/Tab.js +71 -45
  119. package/nav-tabs/types.d.ts +10 -11
  120. package/number-input/NumberInput.js +30 -20
  121. package/number-input/NumberInput.test.js +249 -113
  122. package/number-input/NumberInputContext.js +5 -0
  123. package/number-input/numberInputContextTypes.d.ts +1 -1
  124. package/number-input/types.d.ts +4 -4
  125. package/package.json +7 -7
  126. package/paginator/Icons.js +10 -0
  127. package/paginator/Paginator.js +39 -17
  128. package/paginator/Paginator.test.js +156 -104
  129. package/paginator/types.d.ts +1 -1
  130. package/paragraph/Paragraph.d.ts +3 -4
  131. package/paragraph/Paragraph.js +18 -8
  132. package/password-input/PasswordInput.js +51 -22
  133. package/password-input/PasswordInput.test.js +94 -51
  134. package/password-input/types.d.ts +4 -4
  135. package/progress-bar/ProgressBar.d.ts +2 -2
  136. package/progress-bar/ProgressBar.js +39 -14
  137. package/progress-bar/ProgressBar.test.js +53 -36
  138. package/progress-bar/types.d.ts +4 -3
  139. package/quick-nav/QuickNav.js +24 -2
  140. package/quick-nav/types.d.ts +2 -2
  141. package/radio-group/Radio.js +53 -22
  142. package/radio-group/RadioGroup.js +84 -41
  143. package/radio-group/RadioGroup.test.js +288 -186
  144. package/radio-group/types.d.ts +4 -4
  145. package/resultsetTable/Icons.js +3 -0
  146. package/resultsetTable/ResultsetTable.js +56 -21
  147. package/resultsetTable/ResultsetTable.test.js +75 -42
  148. package/resultsetTable/types.d.ts +5 -5
  149. package/select/Icons.js +3 -0
  150. package/select/Listbox.js +35 -10
  151. package/select/Option.js +24 -8
  152. package/select/Select.js +143 -56
  153. package/select/Select.test.js +839 -456
  154. package/select/types.d.ts +12 -12
  155. package/sidenav/Icons.d.ts +7 -0
  156. package/sidenav/Icons.js +51 -0
  157. package/sidenav/Sidenav.d.ts +2 -2
  158. package/sidenav/Sidenav.js +116 -104
  159. package/sidenav/Sidenav.stories.tsx +60 -60
  160. package/sidenav/Sidenav.test.js +10 -3
  161. package/sidenav/types.d.ts +26 -23
  162. package/slider/Slider.js +84 -38
  163. package/slider/Slider.test.js +104 -76
  164. package/slider/types.d.ts +4 -4
  165. package/spinner/Spinner.js +51 -28
  166. package/spinner/Spinner.stories.jsx +28 -28
  167. package/spinner/Spinner.test.js +35 -26
  168. package/spinner/types.d.ts +3 -3
  169. package/switch/Switch.js +66 -24
  170. package/switch/Switch.test.js +97 -52
  171. package/switch/types.d.ts +4 -4
  172. package/table/Table.js +22 -4
  173. package/table/Table.test.js +7 -2
  174. package/table/types.d.ts +3 -3
  175. package/tabs/Tab.js +39 -22
  176. package/tabs/Tabs.js +131 -62
  177. package/tabs/Tabs.test.js +122 -67
  178. package/tabs/types.d.ts +8 -8
  179. package/tag/Tag.js +54 -27
  180. package/tag/Tag.test.js +31 -20
  181. package/tag/types.d.ts +7 -7
  182. package/text-input/Icons.js +3 -0
  183. package/text-input/Suggestion.js +24 -8
  184. package/text-input/Suggestions.js +36 -11
  185. package/text-input/TextInput.js +144 -59
  186. package/text-input/TextInput.stories.tsx +1 -1
  187. package/text-input/TextInput.test.js +858 -539
  188. package/text-input/types.d.ts +9 -9
  189. package/textarea/Textarea.js +73 -38
  190. package/textarea/Textarea.test.js +173 -98
  191. package/textarea/types.d.ts +4 -4
  192. package/toggle-group/ToggleGroup.d.ts +2 -2
  193. package/toggle-group/ToggleGroup.js +59 -21
  194. package/toggle-group/ToggleGroup.test.js +72 -40
  195. package/toggle-group/types.d.ts +11 -11
  196. package/typography/Typography.d.ts +2 -2
  197. package/typography/Typography.js +23 -110
  198. package/typography/Typography.stories.tsx +1 -1
  199. package/typography/types.d.ts +1 -1
  200. package/useTheme.d.ts +1234 -1
  201. package/useTheme.js +6 -0
  202. package/useTranslatedLabels.d.ts +84 -2
  203. package/useTranslatedLabels.js +5 -0
  204. package/utils/BaseTypography.d.ts +21 -0
  205. package/utils/BaseTypography.js +108 -0
  206. package/utils/FocusLock.d.ts +13 -0
  207. package/utils/FocusLock.js +138 -0
  208. package/wizard/Wizard.js +47 -13
  209. package/wizard/Wizard.test.js +81 -54
  210. package/wizard/types.d.ts +7 -8
  211. package/card/ice-cream.jpg +0 -0
  212. package/translatedLabelsType.d.ts +0 -82
  213. /package/{translatedLabelsType.js → grid/types.js} +0 -0
@@ -1,5 +1,7 @@
1
1
  import React from "react";
2
2
  import DxcSidenav from "./Sidenav";
3
+ import DxcSelect from "../select/Select";
4
+ import DxcInset from "../inset/Inset";
3
5
  import Title from "../../.storybook/components/Title";
4
6
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
7
  import { userEvent, within } from "@storybook/testing-library";
@@ -150,13 +152,13 @@ export const Chromatic = () => (
150
152
  </>
151
153
  );
152
154
 
153
- const CollapsedGroup = () => (
155
+ const CollapsedGroupSidenav = () => (
154
156
  <>
155
157
  <ExampleContainer>
156
- <Title title="Default sidenav" theme="light" level={4} />
158
+ <Title title="Collapsed group with a selected link" theme="light" level={4} />
157
159
  <DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
158
160
  <DxcSidenav.Section>
159
- <DxcSidenav.Group collapsable={true} title="Collapsable Group" icon={iconSVG}>
161
+ <DxcSidenav.Group collapsable={true} title="Collapsed Group" icon={iconSVG}>
160
162
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
161
163
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
162
164
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
@@ -164,11 +166,11 @@ const CollapsedGroup = () => (
164
166
  </DxcSidenav.Group>
165
167
  </DxcSidenav.Section>
166
168
  <DxcSidenav.Section>
167
- <DxcSidenav.Group collapsable={true} title="Collapsable Group">
168
- <DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
169
+ <DxcSidenav.Group collapsable={true} title="Collapsed Group">
169
170
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
171
+ <DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
170
172
  </DxcSidenav.Group>
171
- <DxcSidenav.Group collapsable={false} title="Section Group">
173
+ <DxcSidenav.Group collapsable={true} title="Section Group">
172
174
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
173
175
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
174
176
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
@@ -179,14 +181,14 @@ const CollapsedGroup = () => (
179
181
  </>
180
182
  );
181
183
 
182
- const HoverSidenav = () => (
184
+ const HoveredGroupSidenav = () => (
183
185
  <ExampleContainer pseudoState="pseudo-hover">
184
- <Title title="Default sidenav" theme="light" level={4} />
186
+ <Title title="Hover state for groups (selected and not)" theme="light" level={4} />
185
187
  <DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
186
188
  <DxcSidenav.Section>
187
189
  <DxcSidenav.Link>Single Link</DxcSidenav.Link>
188
190
  <DxcSidenav.Link>Single Link</DxcSidenav.Link>
189
- <DxcSidenav.Group collapsable={true} title="Collapsable Group">
191
+ <DxcSidenav.Group collapsable={true} title="Collapsed Group">
190
192
  <DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
191
193
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
192
194
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
@@ -200,13 +202,12 @@ const HoverSidenav = () => (
200
202
  </DxcSidenav.Group>
201
203
  <DxcSidenav.Link>Single Link</DxcSidenav.Link>
202
204
  <DxcSidenav.Link>Single Link</DxcSidenav.Link>
203
- <DxcSidenav.Group collapsable={true} title="Collapsable Group">
205
+ <DxcSidenav.Group collapsable={true} title="Collapsed Group">
204
206
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
205
207
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
206
208
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
207
209
  </DxcSidenav.Group>
208
-
209
- <DxcSidenav.Group collapsable={true} title="Collapsable Group">
210
+ <DxcSidenav.Group collapsable={true} title="Collapsed Group">
210
211
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
211
212
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
212
213
  <DxcSidenav.Link>Group Link</DxcSidenav.Link>
@@ -216,67 +217,66 @@ const HoverSidenav = () => (
216
217
  </ExampleContainer>
217
218
  );
218
219
 
219
- const HoverSidenavOpinionated = () => (
220
- <ExampleContainer pseudoState="pseudo-hover">
221
- <Title title="Default sidenav" theme="light" level={4} />
222
- <HalstackProvider theme={opinionatedTheme}>
223
- <DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
224
- <DxcSidenav.Section>
225
- <DxcSidenav.Link>Single Link</DxcSidenav.Link>
226
- <DxcSidenav.Link>Single Link</DxcSidenav.Link>
227
- <DxcSidenav.Group collapsable={true} title="Collapsable Group">
228
- <DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
229
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
230
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
231
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
232
- </DxcSidenav.Group>
233
- </DxcSidenav.Section>
234
- <DxcSidenav.Section>
235
- <DxcSidenav.Group collapsable={true} title="Not Collapsed Group">
236
- <DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
237
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
238
- </DxcSidenav.Group>
239
- <DxcSidenav.Link>Single Link</DxcSidenav.Link>
240
- <DxcSidenav.Link>Single Link</DxcSidenav.Link>
241
- <DxcSidenav.Group collapsable={true} title="Collapsable Group">
242
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
243
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
244
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
245
- </DxcSidenav.Group>
246
- <DxcSidenav.Group collapsable={true} title="Collapsable Group">
247
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
248
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
249
- <DxcSidenav.Link>Group Link</DxcSidenav.Link>
250
- </DxcSidenav.Group>
251
- </DxcSidenav.Section>
252
- </DxcSidenav>
253
- </HalstackProvider>
220
+ const ActiveGroupSidenav = () => (
221
+ <ExampleContainer pseudoState="pseudo-active">
222
+ <Title title="Active state for groups (selected and not)" theme="light" level={4} />
223
+ <DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
224
+ <DxcSidenav.Section>
225
+ <DxcInset space="1rem">
226
+ <DxcSelect
227
+ defaultValue="1"
228
+ options={[
229
+ { label: "v1.0.0", value: "1" },
230
+ { label: "v2.0.0", value: "2" },
231
+ { label: "v3.0.0", value: "3" },
232
+ { label: "v4.0.0", value: "4" },
233
+ ]}
234
+ size="fillParent"
235
+ />
236
+ </DxcInset>
237
+ </DxcSidenav.Section>
238
+ <DxcSidenav.Section>
239
+ <DxcSidenav.Group collapsable={true} title="Collapsed Group">
240
+ <DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
241
+ <DxcSidenav.Link>Group Link</DxcSidenav.Link>
242
+ <DxcSidenav.Link>Group Link</DxcSidenav.Link>
243
+ <DxcSidenav.Link>Group Link</DxcSidenav.Link>
244
+ </DxcSidenav.Group>
245
+ </DxcSidenav.Section>
246
+ <DxcSidenav.Section>
247
+ <DxcSidenav.Group collapsable={true} title="Not Collapsed Group">
248
+ <DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
249
+ <DxcSidenav.Link>Group Link</DxcSidenav.Link>
250
+ </DxcSidenav.Group>
251
+ <DxcSidenav.Link>Single Link</DxcSidenav.Link>
252
+ <DxcSidenav.Link>Single Link</DxcSidenav.Link>
253
+ </DxcSidenav.Section>
254
+ </DxcSidenav>
254
255
  </ExampleContainer>
255
256
  );
256
257
 
257
- export const CollapseGroup = CollapsedGroup.bind({});
258
- CollapseGroup.play = async ({ canvasElement }) => {
258
+ export const CollapsableGroup = CollapsedGroupSidenav.bind({});
259
+ CollapsableGroup.play = async ({ canvasElement }) => {
259
260
  const canvas = within(canvasElement);
260
- const collapsableGroups = canvas.getAllByText("Collapsable Group");
261
+ const collapsableGroups = canvas.getAllByText("Collapsed Group");
261
262
  collapsableGroups.forEach((group) => {
262
263
  userEvent.click(group);
263
264
  });
264
265
  };
265
266
 
266
- export const CollapseHoverGroup = HoverSidenav.bind({});
267
- CollapseHoverGroup.play = async ({ canvasElement }) => {
267
+ export const CollapsedHoverGroup = HoveredGroupSidenav.bind({});
268
+ CollapsedHoverGroup.play = async ({ canvasElement }) => {
268
269
  const canvas = within(canvasElement);
269
- const collapsableGroups = canvas.getAllByText("Collapsable Group");
270
+ const collapsableGroups = canvas.getAllByText("Collapsed Group");
270
271
  collapsableGroups.forEach((group) => {
271
272
  userEvent.click(group);
272
273
  });
274
+ await new Promise((resolve) => setTimeout(resolve, 1000));
273
275
  };
274
276
 
275
- export const CollapseHoverGroupOpinionated = HoverSidenavOpinionated.bind({});
276
- CollapseHoverGroupOpinionated.play = async ({ canvasElement }) => {
277
+ export const CollapsedActiveGroup = ActiveGroupSidenav.bind({});
278
+ CollapsedActiveGroup.play = async ({ canvasElement }) => {
277
279
  const canvas = within(canvasElement);
278
- const collapsableGroups = canvas.getAllByText("Collapsable Group");
279
- collapsableGroups.forEach((group) => {
280
- userEvent.click(group);
281
- });
282
- };
280
+ const collapsableGroups = canvas.getAllByText("Collapsed Group");
281
+ userEvent.click(collapsableGroups[0]);
282
+ };
@@ -1,15 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _react = _interopRequireDefault(require("react"));
6
+
5
7
  var _react2 = require("@testing-library/react");
8
+
6
9
  var _Sidenav = _interopRequireDefault(require("./Sidenav.tsx"));
10
+
7
11
  describe("Sidenav component tests", function () {
8
12
  test("Sidenav renders anchors and Section correctly", function () {
9
13
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Sidenav["default"], null, /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Section, null, /*#__PURE__*/_react["default"].createElement("p", null, "nav-content-test"), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
10
- href: "#"
11
- }, "Link")))),
12
- getByText = _render.getByText;
14
+ href: "#"
15
+ }, "Link")))),
16
+ getByText = _render.getByText;
17
+
13
18
  expect(getByText("nav-content-test")).toBeTruthy();
14
19
  var link = getByText("Link");
15
20
  expect(link.closest("a").getAttribute("href")).toBe("#");
@@ -31,7 +36,9 @@ describe("Sidenav component tests", function () {
31
36
  }, "Lorem ipsum")))));
32
37
  expect(sidenav.getByText("Collapsable")).toBeTruthy();
33
38
  expect(sidenav.getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
39
+
34
40
  _react2.fireEvent.click(sidenav.getByText("Collapsable"));
41
+
35
42
  expect(sidenav.getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
36
43
  });
37
44
  });
@@ -1,50 +1,47 @@
1
1
  /// <reference types="react" />
2
- type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
3
- type SidenavPropsType = {
4
- /**
5
- * The area inside the sidenav. This area can be used to render the content inside the sidenav.
6
- */
7
- children: React.ReactNode;
2
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
3
+ declare type SidenavPropsType = {
8
4
  /**
9
5
  * The area assigned to render the sidenav title. It is highly recommended to use the sidenav title.
10
6
  */
11
7
  title?: React.ReactNode;
12
- };
13
- export type SidenavTitlePropsType = {
14
8
  /**
15
- * The area inside the sidenav title. This area can be used to render custom content.
9
+ * The area inside the sidenav. This area can be used to render the content inside the sidenav.
16
10
  */
17
11
  children: React.ReactNode;
18
12
  };
19
- export type SidenavSectionPropsType = {
13
+ export declare type SidenavTitlePropsType = {
20
14
  /**
21
- * The area inside the sidenav section. This area can be used to render sidenav groups, links and custom content.
15
+ * The area inside the sidenav title. This area can be used to render custom content.
22
16
  */
23
17
  children: React.ReactNode;
24
18
  };
25
- export type SidenavGroupPropsType = {
19
+ export declare type SidenavSectionPropsType = {
26
20
  /**
27
- * The area inside the sidenav group. This area can be used to render sidenav links.
21
+ * The area inside the sidenav section. This area can be used to render sidenav groups, links and custom content.
28
22
  */
29
23
  children: React.ReactNode;
24
+ };
25
+ export declare type SidenavGroupPropsType = {
30
26
  /**
31
27
  * The title of the sidenav group.
32
28
  */
33
29
  title?: string;
34
30
  /**
35
- * If true the sidenav group title will be considered a button and the group will be collapsable.
31
+ * If true, the sidenav group will be a button that will allow you to collapse the links contained within it.
32
+ * In addition, if it's collapsed and contains the currently selected link, the group title will also be marked as selected.
36
33
  */
37
34
  collapsable?: boolean;
38
35
  /**
39
36
  * The icon to be displayed next to the title of the group.
40
37
  */
41
38
  icon?: string | SVG;
42
- };
43
- export type SidenavLinkPropsType = {
44
39
  /**
45
- * Value of the tabindex.
40
+ * The area inside the sidenav group. This area can be used to render sidenav links.
46
41
  */
47
- tabIndex?: number;
42
+ children: React.ReactNode;
43
+ };
44
+ export declare type SidenavLinkPropsType = {
48
45
  /**
49
46
  * Page to be opened when the user clicks on the link.
50
47
  */
@@ -58,16 +55,22 @@ export type SidenavLinkPropsType = {
58
55
  */
59
56
  icon?: string | SVG;
60
57
  /**
61
- * If true, the link will be marked as selected. This can also affect the group if it is closed to indicate that one of its links is selected.
58
+ * If true, the link will be marked as selected. Moreover, in that same case,
59
+ * if it is contained within a collapsed group, and consequently, the currently selected link is not visible,
60
+ * the group title will appear as selected too.
62
61
  */
63
62
  selected?: boolean;
64
63
  /**
65
- * The area inside the sidenav link.
64
+ * This function will be called when the user clicks the link and the event will be passed to this function.
66
65
  */
67
- children: string;
66
+ onClick?: ($event: React.MouseEvent<HTMLAnchorElement>) => void;
68
67
  /**
69
- * This function will be called when the user clicks the link.
68
+ * Value of the tabindex.
69
+ */
70
+ tabIndex?: number;
71
+ /**
72
+ * The area inside the sidenav link.
70
73
  */
71
- onClick?: ($event: any) => void;
74
+ children: React.ReactNode;
72
75
  };
73
76
  export default SidenavPropsType;
package/slider/Slider.js CHANGED
@@ -1,67 +1,89 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = void 0;
11
+
9
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
10
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
11
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
12
18
  var _react = _interopRequireWildcard(require("react"));
19
+
13
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+
14
22
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
23
+
15
24
  var _variables = require("../common/variables");
16
- var _utils = require("../common/utils.js");
25
+
26
+ var _utils = require("../common/utils");
27
+
17
28
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
+
18
30
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
31
+
19
32
  var _uuid = require("uuid");
33
+
20
34
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
35
+
21
36
  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); }
37
+
22
38
  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
+
23
40
  var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
24
41
  var _ref$label = _ref.label,
25
- label = _ref$label === void 0 ? "" : _ref$label,
26
- _ref$name = _ref.name,
27
- name = _ref$name === void 0 ? "" : _ref$name,
28
- defaultValue = _ref.defaultValue,
29
- value = _ref.value,
30
- _ref$helperText = _ref.helperText,
31
- helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
32
- _ref$minValue = _ref.minValue,
33
- minValue = _ref$minValue === void 0 ? 0 : _ref$minValue,
34
- _ref$maxValue = _ref.maxValue,
35
- maxValue = _ref$maxValue === void 0 ? 100 : _ref$maxValue,
36
- _ref$step = _ref.step,
37
- step = _ref$step === void 0 ? 1 : _ref$step,
38
- _ref$showLimitsValues = _ref.showLimitsValues,
39
- showLimitsValues = _ref$showLimitsValues === void 0 ? false : _ref$showLimitsValues,
40
- _ref$showInput = _ref.showInput,
41
- showInput = _ref$showInput === void 0 ? false : _ref$showInput,
42
- _ref$disabled = _ref.disabled,
43
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
44
- _ref$marks = _ref.marks,
45
- marks = _ref$marks === void 0 ? false : _ref$marks,
46
- onChange = _ref.onChange,
47
- onDragEnd = _ref.onDragEnd,
48
- labelFormatCallback = _ref.labelFormatCallback,
49
- margin = _ref.margin,
50
- _ref$size = _ref.size,
51
- size = _ref$size === void 0 ? "fillParent" : _ref$size;
42
+ label = _ref$label === void 0 ? "" : _ref$label,
43
+ _ref$name = _ref.name,
44
+ name = _ref$name === void 0 ? "" : _ref$name,
45
+ defaultValue = _ref.defaultValue,
46
+ value = _ref.value,
47
+ _ref$helperText = _ref.helperText,
48
+ helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
49
+ _ref$minValue = _ref.minValue,
50
+ minValue = _ref$minValue === void 0 ? 0 : _ref$minValue,
51
+ _ref$maxValue = _ref.maxValue,
52
+ maxValue = _ref$maxValue === void 0 ? 100 : _ref$maxValue,
53
+ _ref$step = _ref.step,
54
+ step = _ref$step === void 0 ? 1 : _ref$step,
55
+ _ref$showLimitsValues = _ref.showLimitsValues,
56
+ showLimitsValues = _ref$showLimitsValues === void 0 ? false : _ref$showLimitsValues,
57
+ _ref$showInput = _ref.showInput,
58
+ showInput = _ref$showInput === void 0 ? false : _ref$showInput,
59
+ _ref$disabled = _ref.disabled,
60
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
61
+ _ref$marks = _ref.marks,
62
+ marks = _ref$marks === void 0 ? false : _ref$marks,
63
+ onChange = _ref.onChange,
64
+ onDragEnd = _ref.onDragEnd,
65
+ labelFormatCallback = _ref.labelFormatCallback,
66
+ margin = _ref.margin,
67
+ _ref$size = _ref.size,
68
+ size = _ref$size === void 0 ? "fillParent" : _ref$size;
69
+
52
70
  var _useState = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : 0),
53
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
54
- innerValue = _useState2[0],
55
- setInnerValue = _useState2[1];
71
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
72
+ innerValue = _useState2[0],
73
+ setInnerValue = _useState2[1];
74
+
56
75
  var _useState3 = (0, _react.useState)(false),
57
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
58
- dragging = _useState4[0],
59
- setDragging = _useState4[1];
76
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
77
+ dragging = _useState4[0],
78
+ setDragging = _useState4[1];
79
+
60
80
  var colorsTheme = (0, _useTheme["default"])();
61
81
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
82
+
62
83
  var _useState5 = (0, _react.useState)("label-".concat((0, _uuid.v4)())),
63
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
64
- labelId = _useState6[0];
84
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
85
+ labelId = _useState6[0];
86
+
65
87
  var minLabel = (0, _react.useMemo)(function () {
66
88
  return labelFormatCallback ? labelFormatCallback(minValue) : minValue;
67
89
  }, [labelFormatCallback, minValue]);
@@ -73,6 +95,7 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
73
95
  var numberOfMarks = Math.floor(maxValue / step - minValue / step);
74
96
  var index = 0;
75
97
  var range = maxValue - minValue;
98
+
76
99
  if (marks) {
77
100
  while (index <= numberOfMarks) {
78
101
  ticks.push( /*#__PURE__*/_react["default"].createElement(TickMark, {
@@ -83,37 +106,45 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
83
106
  }));
84
107
  index++;
85
108
  }
109
+
86
110
  return ticks;
87
111
  } else {
88
112
  return null;
89
113
  }
90
114
  }, [minValue, maxValue, step, value, innerValue]);
115
+
91
116
  var handleSliderChange = function handleSliderChange(event) {
92
117
  var valueToCheck = event.target.value;
93
118
  (valueToCheck !== value || valueToCheck !== innerValue) && setInnerValue(valueToCheck);
94
119
  onChange === null || onChange === void 0 ? void 0 : onChange(valueToCheck);
95
120
  };
121
+
96
122
  var handleSliderDragging = function handleSliderDragging() {
97
123
  setDragging(true);
98
124
  };
125
+
99
126
  var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event) {
100
127
  if (dragging) {
101
128
  setDragging(false);
102
129
  onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event.target.value);
103
130
  }
104
131
  };
132
+
105
133
  var handlerInputChange = function handlerInputChange(event) {
106
134
  var intValue = parseInt(event.value, 10);
135
+
107
136
  if (value == null) {
108
137
  if (!Number.isNaN(intValue)) setInnerValue(intValue > maxValue ? maxValue : intValue);
109
138
  }
139
+
110
140
  if (!Number.isNaN(intValue)) {
111
141
  onChange === null || onChange === void 0 ? void 0 : onChange(intValue > maxValue ? maxValue : intValue);
112
142
  }
113
143
  };
144
+
114
145
  var isFirefox = navigator.userAgent.indexOf("Firefox") !== -1;
115
146
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
116
- theme: colorsTheme["slider"]
147
+ theme: colorsTheme.slider
117
148
  }, /*#__PURE__*/_react["default"].createElement(Container, {
118
149
  margin: margin,
119
150
  size: size,
@@ -135,7 +166,6 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
135
166
  min: minValue,
136
167
  max: maxValue,
137
168
  step: step,
138
- marks: marks,
139
169
  disabled: disabled,
140
170
  "aria-labelledby": labelId,
141
171
  "aria-orientation": "horizontal",
@@ -160,20 +190,25 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
160
190
  size: "fillParent"
161
191
  })))));
162
192
  });
193
+
163
194
  var sizes = {
164
195
  medium: "360px",
165
196
  large: "480px",
166
197
  fillParent: "100%"
167
198
  };
199
+
168
200
  var calculateWidth = function calculateWidth(margin, size) {
169
201
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
170
202
  };
203
+
171
204
  var getChromeStyles = function getChromeStyles() {
172
205
  return "\n width: 100%;\n margin-right: 4px;";
173
206
  };
207
+
174
208
  var getFireFoxStyles = function getFireFoxStyles() {
175
209
  return "\n width: calc(100% - 16px);\n margin-right: 3px;";
176
210
  };
211
+
177
212
  var Container = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n"])), function (props) {
178
213
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
179
214
  }, function (props) {
@@ -187,6 +222,7 @@ var Container = _styledComponents["default"].div(_templateObject || (_templateOb
187
222
  }, function (props) {
188
223
  return calculateWidth(props.margin, props.size);
189
224
  });
225
+
190
226
  var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
191
227
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
192
228
  }, function (props) {
@@ -200,6 +236,7 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
200
236
  }, function (props) {
201
237
  return props.theme.labelLineHeight;
202
238
  });
239
+
203
240
  var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
204
241
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
205
242
  }, function (props) {
@@ -213,6 +250,7 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
213
250
  }, function (props) {
214
251
  return props.theme.helperTextLineHeight;
215
252
  });
253
+
216
254
  var SliderInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n min-width: 240px;\n height: ", ";\n display: inline-block;\n vertical-align: middle;\n -webkit-appearance: none;\n background-color: ", ";\n background-image: ", ";\n background-repeat: no-repeat;\n background-size: ", ";\n border-radius: 5px;\n cursor: ", ";\n &::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n margin: 0px -8px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n ", "\n }\n &:hover {\n ", "\n }\n }\n &::-moz-range-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n }\n &::-moz-range-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n background: ", ";\n transform: scale(1.16667);\n }\n &:hover {\n ", "\n }\n }\n &:focus {\n outline: none;\n &::-webkit-slider-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n &::-moz-range-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n }\n"])), function (props) {
217
255
  return props.theme.trackLineThickness;
218
256
  }, function (props) {
@@ -254,7 +292,9 @@ var SliderInput = _styledComponents["default"].input(_templateObject4 || (_templ
254
292
  }, function (props) {
255
293
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
256
294
  });
295
+
257
296
  var SliderContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n"])));
297
+
258
298
  var LimitLabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n white-space: nowrap;\n"])), function (props) {
259
299
  return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
260
300
  }, function (props) {
@@ -268,16 +308,20 @@ var LimitLabelContainer = _styledComponents["default"].span(_templateObject6 ||
268
308
  }, function (props) {
269
309
  return props.theme.limitValuesFontLetterSpacing;
270
310
  });
311
+
271
312
  var MinLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n"])), function (props) {
272
313
  return props.theme.floorLabelMarginRight;
273
314
  });
274
315
  var MaxLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n"])), function (props) {
275
316
  return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
276
317
  });
318
+
277
319
  var SliderInputContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: -2px;\n padding-top: 1px;\n z-index: 0;\n"])));
320
+
278
321
  var MarksContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n position: absolute;\n pointer-events: none;\n height: 100%;\n display: flex;\n align-items: center;\n"])), function (props) {
279
322
  return props.isFirefox ? getFireFoxStyles() : getChromeStyles();
280
323
  });
324
+
281
325
  var TickMark = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n background: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n left: ", ";\n z-index: ", ";\n"])), function (props) {
282
326
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor : props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
283
327
  }, function (props) {
@@ -289,8 +333,10 @@ var TickMark = _styledComponents["default"].span(_templateObject11 || (_template
289
333
  }, function (props) {
290
334
  return "".concat(props.stepPosition <= props.stepValue ? "-1" : "0");
291
335
  });
336
+
292
337
  var StyledTextInput = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n max-width: 70px;\n"])), function (props) {
293
338
  return props.theme.inputMarginLeft;
294
339
  });
340
+
295
341
  var _default = DxcSlider;
296
342
  exports["default"] = _default;