@dxc-technology/halstack-react 0.0.0-d3ac293 → 0.0.0-d3df47e

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 (269) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +4 -21
  3. package/HalstackContext.d.ts +24 -139
  4. package/HalstackContext.js +11 -36
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +26 -83
  8. package/accordion/Accordion.stories.tsx +2 -114
  9. package/accordion/Accordion.test.js +18 -33
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +27 -75
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +43 -71
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -18
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +17 -56
  24. package/alert/Alert.test.js +28 -45
  25. package/alert/types.d.ts +5 -5
  26. package/badge/Badge.d.ts +1 -1
  27. package/badge/Badge.js +142 -42
  28. package/badge/Badge.stories.tsx +210 -0
  29. package/badge/Badge.test.js +30 -0
  30. package/badge/types.d.ts +52 -3
  31. package/bleed/Bleed.js +13 -21
  32. package/bleed/Bleed.stories.tsx +1 -0
  33. package/bleed/types.d.ts +2 -2
  34. package/box/Box.d.ts +1 -1
  35. package/box/Box.js +16 -55
  36. package/box/Box.stories.tsx +25 -53
  37. package/box/Box.test.js +1 -6
  38. package/box/types.d.ts +3 -15
  39. package/bulleted-list/BulletedList.js +19 -53
  40. package/bulleted-list/BulletedList.stories.tsx +8 -93
  41. package/bulleted-list/types.d.ts +32 -5
  42. package/button/Button.d.ts +1 -1
  43. package/button/Button.js +66 -100
  44. package/button/Button.stories.tsx +9 -90
  45. package/button/Button.test.js +19 -16
  46. package/button/types.d.ts +8 -4
  47. package/card/Card.d.ts +1 -1
  48. package/card/Card.js +47 -88
  49. package/card/Card.stories.tsx +12 -42
  50. package/card/Card.test.js +10 -21
  51. package/card/types.d.ts +6 -12
  52. package/checkbox/Checkbox.js +85 -120
  53. package/checkbox/Checkbox.stories.tsx +16 -54
  54. package/checkbox/Checkbox.test.js +107 -63
  55. package/checkbox/types.d.ts +8 -4
  56. package/chip/Chip.js +34 -68
  57. package/chip/Chip.stories.tsx +25 -17
  58. package/chip/Chip.test.js +15 -28
  59. package/chip/types.d.ts +4 -4
  60. package/common/OpenSans.css +68 -80
  61. package/common/coreTokens.d.ts +237 -0
  62. package/common/coreTokens.js +184 -0
  63. package/common/utils.js +2 -8
  64. package/common/variables.d.ts +24 -282
  65. package/common/variables.js +860 -1125
  66. package/container/Container.d.ts +4 -0
  67. package/container/Container.js +194 -0
  68. package/container/Container.stories.tsx +214 -0
  69. package/container/types.d.ts +74 -0
  70. package/date-input/Calendar.js +15 -59
  71. package/date-input/DateInput.js +50 -96
  72. package/date-input/DateInput.stories.tsx +11 -30
  73. package/date-input/DateInput.test.js +674 -701
  74. package/date-input/DatePicker.js +11 -42
  75. package/date-input/Icons.d.ts +6 -6
  76. package/date-input/Icons.js +6 -23
  77. package/date-input/YearPicker.js +8 -34
  78. package/date-input/types.d.ts +27 -21
  79. package/dialog/Dialog.d.ts +1 -1
  80. package/dialog/Dialog.js +15 -60
  81. package/dialog/Dialog.stories.tsx +215 -169
  82. package/dialog/Dialog.test.js +125 -187
  83. package/dialog/types.d.ts +18 -26
  84. package/dropdown/Dropdown.js +39 -93
  85. package/dropdown/Dropdown.test.js +391 -378
  86. package/dropdown/DropdownMenu.js +13 -20
  87. package/dropdown/DropdownMenuItem.js +5 -19
  88. package/dropdown/types.d.ts +17 -19
  89. package/file-input/FileInput.js +180 -249
  90. package/file-input/FileInput.stories.tsx +1 -1
  91. package/file-input/FileInput.test.js +356 -354
  92. package/file-input/FileItem.js +14 -41
  93. package/file-input/types.d.ts +10 -10
  94. package/flex/Flex.js +27 -39
  95. package/flex/Flex.stories.tsx +35 -26
  96. package/flex/types.d.ts +74 -9
  97. package/footer/Footer.d.ts +1 -1
  98. package/footer/Footer.js +69 -116
  99. package/footer/Footer.stories.tsx +38 -95
  100. package/footer/Footer.test.js +21 -33
  101. package/footer/Icons.d.ts +3 -2
  102. package/footer/Icons.js +66 -7
  103. package/footer/types.d.ts +25 -27
  104. package/grid/Grid.d.ts +7 -0
  105. package/grid/Grid.js +76 -0
  106. package/grid/Grid.stories.tsx +219 -0
  107. package/grid/types.d.ts +115 -0
  108. package/grid/types.js +5 -0
  109. package/header/Header.d.ts +4 -3
  110. package/header/Header.js +33 -116
  111. package/header/Header.stories.tsx +7 -71
  112. package/header/Header.test.js +12 -25
  113. package/header/Icons.d.ts +2 -2
  114. package/header/Icons.js +2 -7
  115. package/header/types.d.ts +5 -20
  116. package/heading/Heading.js +9 -31
  117. package/heading/Heading.test.js +70 -87
  118. package/heading/types.d.ts +7 -7
  119. package/image/Image.d.ts +4 -0
  120. package/image/Image.js +70 -0
  121. package/image/Image.stories.tsx +127 -0
  122. package/image/types.d.ts +72 -0
  123. package/image/types.js +5 -0
  124. package/inset/Inset.js +13 -21
  125. package/inset/Inset.stories.tsx +2 -1
  126. package/inset/types.d.ts +2 -2
  127. package/layout/ApplicationLayout.d.ts +5 -5
  128. package/layout/ApplicationLayout.js +28 -65
  129. package/layout/ApplicationLayout.stories.tsx +1 -1
  130. package/layout/Icons.d.ts +8 -5
  131. package/layout/Icons.js +51 -59
  132. package/layout/SidenavContext.d.ts +1 -1
  133. package/layout/SidenavContext.js +3 -9
  134. package/layout/types.d.ts +5 -6
  135. package/link/Link.js +23 -44
  136. package/link/Link.test.js +23 -41
  137. package/link/types.d.ts +14 -14
  138. package/main.d.ts +7 -4
  139. package/main.js +32 -58
  140. package/nav-tabs/NavTabs.d.ts +2 -2
  141. package/nav-tabs/NavTabs.js +22 -54
  142. package/nav-tabs/NavTabs.stories.tsx +21 -5
  143. package/nav-tabs/NavTabs.test.js +38 -44
  144. package/nav-tabs/Tab.js +40 -72
  145. package/nav-tabs/types.d.ts +14 -15
  146. package/number-input/NumberInput.d.ts +7 -0
  147. package/number-input/NumberInput.js +26 -35
  148. package/number-input/NumberInput.stories.tsx +42 -26
  149. package/number-input/NumberInput.test.js +700 -412
  150. package/number-input/types.d.ts +11 -5
  151. package/package.json +30 -28
  152. package/paginator/Icons.d.ts +5 -5
  153. package/paginator/Icons.js +5 -19
  154. package/paginator/Paginator.js +17 -47
  155. package/paginator/Paginator.test.js +229 -199
  156. package/paginator/types.d.ts +3 -3
  157. package/paragraph/Paragraph.d.ts +2 -3
  158. package/paragraph/Paragraph.js +3 -19
  159. package/paragraph/Paragraph.stories.tsx +0 -17
  160. package/password-input/Icons.d.ts +6 -0
  161. package/password-input/Icons.js +35 -0
  162. package/password-input/PasswordInput.js +57 -126
  163. package/password-input/PasswordInput.stories.tsx +1 -33
  164. package/password-input/PasswordInput.test.js +157 -140
  165. package/password-input/types.d.ts +8 -7
  166. package/progress-bar/ProgressBar.d.ts +2 -2
  167. package/progress-bar/ProgressBar.js +21 -53
  168. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  169. package/progress-bar/ProgressBar.test.js +35 -52
  170. package/progress-bar/types.d.ts +4 -3
  171. package/quick-nav/QuickNav.js +4 -27
  172. package/quick-nav/QuickNav.stories.tsx +1 -1
  173. package/quick-nav/types.d.ts +10 -10
  174. package/radio-group/Radio.d.ts +1 -1
  175. package/radio-group/Radio.js +31 -63
  176. package/radio-group/RadioGroup.js +45 -93
  177. package/radio-group/RadioGroup.stories.tsx +10 -10
  178. package/radio-group/RadioGroup.test.js +504 -470
  179. package/radio-group/types.d.ts +8 -8
  180. package/resultset-table/Icons.d.ts +7 -0
  181. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  182. package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +1 -1
  183. package/{resultsetTable → resultset-table}/ResultsetTable.js +33 -63
  184. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +19 -0
  185. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +72 -92
  186. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  187. package/resultset-table/types.js +5 -0
  188. package/select/Icons.d.ts +7 -7
  189. package/select/Icons.js +1 -5
  190. package/select/Listbox.js +13 -39
  191. package/select/Option.js +17 -27
  192. package/select/Select.js +92 -166
  193. package/select/Select.stories.tsx +3 -3
  194. package/select/Select.test.js +1946 -1804
  195. package/select/types.d.ts +14 -15
  196. package/sidenav/Icons.d.ts +7 -0
  197. package/sidenav/Icons.js +47 -0
  198. package/sidenav/Sidenav.d.ts +2 -2
  199. package/sidenav/Sidenav.js +80 -150
  200. package/sidenav/Sidenav.stories.tsx +60 -60
  201. package/sidenav/Sidenav.test.js +3 -10
  202. package/sidenav/types.d.ts +31 -28
  203. package/slider/Slider.js +68 -126
  204. package/slider/Slider.test.js +107 -103
  205. package/slider/types.d.ts +4 -4
  206. package/spinner/Spinner.js +28 -72
  207. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +28 -28
  208. package/spinner/Spinner.test.js +25 -34
  209. package/spinner/types.d.ts +3 -3
  210. package/status-light/StatusLight.d.ts +4 -0
  211. package/status-light/StatusLight.js +51 -0
  212. package/status-light/StatusLight.stories.tsx +74 -0
  213. package/status-light/StatusLight.test.js +25 -0
  214. package/status-light/types.d.ts +17 -0
  215. package/status-light/types.js +5 -0
  216. package/switch/Switch.js +49 -97
  217. package/switch/Switch.stories.tsx +0 -34
  218. package/switch/Switch.test.js +51 -96
  219. package/switch/types.d.ts +4 -4
  220. package/table/Table.d.ts +1 -1
  221. package/table/Table.js +23 -30
  222. package/table/{Table.stories.jsx → Table.stories.tsx} +98 -0
  223. package/table/Table.test.js +1 -6
  224. package/table/types.d.ts +12 -6
  225. package/tabs/Tab.js +19 -36
  226. package/tabs/Tabs.js +61 -144
  227. package/tabs/Tabs.stories.tsx +1 -1
  228. package/tabs/Tabs.test.js +65 -121
  229. package/tabs/types.d.ts +19 -19
  230. package/tag/Tag.js +26 -58
  231. package/tag/Tag.test.js +19 -30
  232. package/tag/types.d.ts +7 -7
  233. package/text-input/Icons.d.ts +5 -5
  234. package/text-input/Icons.js +1 -5
  235. package/text-input/Suggestion.js +11 -28
  236. package/text-input/Suggestions.d.ts +1 -1
  237. package/text-input/Suggestions.js +15 -65
  238. package/text-input/TextInput.js +217 -318
  239. package/text-input/TextInput.stories.tsx +48 -152
  240. package/text-input/TextInput.test.js +1210 -1194
  241. package/text-input/types.d.ts +25 -17
  242. package/textarea/Textarea.js +68 -111
  243. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
  244. package/textarea/Textarea.test.js +151 -182
  245. package/textarea/types.d.ts +9 -5
  246. package/toggle-group/ToggleGroup.d.ts +2 -2
  247. package/toggle-group/ToggleGroup.js +91 -105
  248. package/toggle-group/ToggleGroup.stories.tsx +7 -4
  249. package/toggle-group/ToggleGroup.test.js +68 -87
  250. package/toggle-group/types.d.ts +26 -17
  251. package/typography/Typography.js +4 -13
  252. package/typography/types.d.ts +1 -1
  253. package/useTheme.d.ts +21 -136
  254. package/useTheme.js +1 -8
  255. package/useTranslatedLabels.js +1 -7
  256. package/utils/BaseTypography.d.ts +2 -2
  257. package/utils/BaseTypography.js +16 -30
  258. package/utils/FocusLock.js +28 -43
  259. package/wizard/Wizard.js +15 -50
  260. package/wizard/Wizard.test.js +53 -80
  261. package/wizard/types.d.ts +8 -9
  262. package/card/ice-cream.jpg +0 -0
  263. package/number-input/NumberInputContext.d.ts +0 -4
  264. package/number-input/NumberInputContext.js +0 -19
  265. package/number-input/numberInputContextTypes.d.ts +0 -19
  266. package/resultsetTable/Icons.d.ts +0 -7
  267. package/slider/Slider.stories.tsx +0 -240
  268. /package/{resultsetTable → action-icon}/types.js +0 -0
  269. /package/{number-input/numberInputContextTypes.js → container/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,20 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _react = _interopRequireDefault(require("react"));
6
-
7
5
  var _react2 = require("@testing-library/react");
8
-
9
6
  var _Sidenav = _interopRequireDefault(require("./Sidenav.tsx"));
10
-
11
7
  describe("Sidenav component tests", function () {
12
8
  test("Sidenav renders anchors and Section correctly", function () {
13
9
  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, {
14
- href: "#"
15
- }, "Link")))),
16
- getByText = _render.getByText;
17
-
10
+ href: "#"
11
+ }, "Link")))),
12
+ getByText = _render.getByText;
18
13
  expect(getByText("nav-content-test")).toBeTruthy();
19
14
  var link = getByText("Link");
20
15
  expect(link.closest("a").getAttribute("href")).toBe("#");
@@ -36,9 +31,7 @@ describe("Sidenav component tests", function () {
36
31
  }, "Lorem ipsum")))));
37
32
  expect(sidenav.getByText("Collapsable")).toBeTruthy();
38
33
  expect(sidenav.getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
39
-
40
34
  _react2.fireEvent.click(sidenav.getByText("Collapsable"));
41
-
42
35
  expect(sidenav.getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
43
36
  });
44
37
  });
@@ -1,50 +1,37 @@
1
1
  /// <reference types="react" />
2
- declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
3
- declare 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;
8
- /**
9
- * The area assigned to render the sidenav title. It is highly recommended to use the sidenav title.
10
- */
11
- title?: React.ReactNode;
12
- };
13
- export declare type SidenavTitlePropsType = {
2
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
3
+ export type SidenavTitlePropsType = {
14
4
  /**
15
5
  * The area inside the sidenav title. This area can be used to render custom content.
16
6
  */
17
7
  children: React.ReactNode;
18
8
  };
19
- export declare type SidenavSectionPropsType = {
9
+ export type SidenavSectionPropsType = {
20
10
  /**
21
11
  * The area inside the sidenav section. This area can be used to render sidenav groups, links and custom content.
22
12
  */
23
13
  children: React.ReactNode;
24
14
  };
25
- export declare type SidenavGroupPropsType = {
26
- /**
27
- * The area inside the sidenav group. This area can be used to render sidenav links.
28
- */
29
- children: React.ReactNode;
15
+ export type SidenavGroupPropsType = {
30
16
  /**
31
17
  * The title of the sidenav group.
32
18
  */
33
19
  title?: string;
34
20
  /**
35
- * If true the sidenav group title will be considered a button and the group will be collapsable.
21
+ * If true, the sidenav group will be a button that will allow you to collapse the links contained within it.
22
+ * In addition, if it's collapsed and contains the currently selected link, the group title will also be marked as selected.
36
23
  */
37
24
  collapsable?: boolean;
38
25
  /**
39
26
  * The icon to be displayed next to the title of the group.
40
27
  */
41
28
  icon?: string | SVG;
42
- };
43
- export declare type SidenavLinkPropsType = {
44
29
  /**
45
- * Value of the tabindex.
30
+ * The area inside the sidenav group. This area can be used to render sidenav links.
46
31
  */
47
- tabIndex?: number;
32
+ children: React.ReactNode;
33
+ };
34
+ export type SidenavLinkPropsType = {
48
35
  /**
49
36
  * Page to be opened when the user clicks on the link.
50
37
  */
@@ -58,16 +45,32 @@ export declare type SidenavLinkPropsType = {
58
45
  */
59
46
  icon?: string | SVG;
60
47
  /**
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.
48
+ * If true, the link will be marked as selected. Moreover, in that same case,
49
+ * if it is contained within a collapsed group, and consequently, the currently selected link is not visible,
50
+ * the group title will appear as selected too.
62
51
  */
63
52
  selected?: boolean;
53
+ /**
54
+ * This function will be called when the user clicks the link and the event will be passed to this function.
55
+ */
56
+ onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
64
57
  /**
65
58
  * The area inside the sidenav link.
66
59
  */
67
- children: string;
60
+ children: React.ReactNode;
61
+ /**
62
+ * Value of the tabindex.
63
+ */
64
+ tabIndex?: number;
65
+ };
66
+ type Props = {
67
+ /**
68
+ * The area assigned to render the sidenav title. It is highly recommended to use the sidenav title.
69
+ */
70
+ title?: React.ReactNode;
68
71
  /**
69
- * This function will be called when the user clicks the link.
72
+ * The area inside the sidenav. This area can be used to render the content inside the sidenav.
70
73
  */
71
- onClick?: ($event: any) => void;
74
+ children: React.ReactNode;
72
75
  };
73
- export default SidenavPropsType;
76
+ export default Props;