@dxc-technology/halstack-react 0.0.0-7ffdc43 → 0.0.0-816f33d

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 (379) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1242 -6
  4. package/HalstackContext.js +126 -111
  5. package/README.md +47 -0
  6. package/accordion/Accordion.accessibility.test.js +71 -0
  7. package/accordion/Accordion.d.ts +1 -1
  8. package/accordion/Accordion.js +105 -160
  9. package/accordion/Accordion.stories.tsx +82 -148
  10. package/accordion/Accordion.test.js +25 -41
  11. package/accordion/types.d.ts +6 -17
  12. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  13. package/accordion-group/AccordionGroup.d.ts +2 -2
  14. package/accordion-group/AccordionGroup.js +30 -98
  15. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  16. package/accordion-group/AccordionGroup.test.js +52 -105
  17. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  18. package/accordion-group/AccordionGroupAccordion.js +31 -0
  19. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  20. package/accordion-group/AccordionGroupContext.js +8 -0
  21. package/accordion-group/types.d.ts +12 -17
  22. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  23. package/action-icon/ActionIcon.d.ts +4 -0
  24. package/action-icon/ActionIcon.js +48 -0
  25. package/action-icon/ActionIcon.stories.tsx +41 -0
  26. package/action-icon/ActionIcon.test.js +64 -0
  27. package/action-icon/types.d.ts +26 -0
  28. package/alert/Alert.accessibility.test.js +95 -0
  29. package/alert/Alert.js +37 -127
  30. package/alert/Alert.stories.tsx +28 -0
  31. package/alert/Alert.test.js +29 -46
  32. package/alert/types.d.ts +5 -5
  33. package/badge/Badge.accessibility.test.js +129 -0
  34. package/badge/Badge.d.ts +1 -1
  35. package/badge/Badge.js +142 -42
  36. package/badge/Badge.stories.tsx +210 -0
  37. package/badge/Badge.test.js +30 -0
  38. package/badge/types.d.ts +52 -3
  39. package/bleed/Bleed.js +13 -21
  40. package/bleed/Bleed.stories.tsx +1 -0
  41. package/bleed/types.d.ts +2 -2
  42. package/box/Box.accessibility.test.js +33 -0
  43. package/box/Box.d.ts +1 -1
  44. package/box/Box.js +19 -60
  45. package/box/Box.stories.tsx +38 -51
  46. package/box/Box.test.js +2 -7
  47. package/box/types.d.ts +3 -14
  48. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  49. package/bulleted-list/BulletedList.js +22 -53
  50. package/bulleted-list/BulletedList.stories.tsx +8 -93
  51. package/bulleted-list/types.d.ts +32 -5
  52. package/button/Button.accessibility.test.js +127 -0
  53. package/button/Button.d.ts +1 -1
  54. package/button/Button.js +71 -106
  55. package/button/Button.stories.tsx +143 -101
  56. package/button/Button.test.js +20 -17
  57. package/button/types.d.ts +9 -5
  58. package/card/Card.accessibility.test.js +36 -0
  59. package/card/Card.d.ts +1 -1
  60. package/card/Card.js +49 -89
  61. package/card/Card.stories.tsx +12 -42
  62. package/card/Card.test.js +11 -22
  63. package/card/types.d.ts +6 -11
  64. package/checkbox/Checkbox.accessibility.test.js +87 -0
  65. package/checkbox/Checkbox.d.ts +2 -2
  66. package/checkbox/Checkbox.js +139 -181
  67. package/checkbox/Checkbox.stories.tsx +128 -94
  68. package/checkbox/Checkbox.test.js +160 -39
  69. package/checkbox/types.d.ts +11 -3
  70. package/chip/Chip.accessibility.test.js +67 -0
  71. package/chip/Chip.js +45 -80
  72. package/chip/Chip.stories.tsx +107 -27
  73. package/chip/Chip.test.js +18 -33
  74. package/chip/types.d.ts +4 -4
  75. package/common/coreTokens.d.ts +237 -0
  76. package/common/coreTokens.js +184 -0
  77. package/common/utils.d.ts +1 -0
  78. package/common/utils.js +6 -12
  79. package/common/variables.d.ts +1394 -0
  80. package/common/variables.js +935 -1166
  81. package/container/Container.d.ts +4 -0
  82. package/container/Container.js +194 -0
  83. package/container/Container.stories.tsx +214 -0
  84. package/container/types.d.ts +74 -0
  85. package/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
  86. package/contextual-menu/ContextualMenu.d.ts +5 -0
  87. package/contextual-menu/ContextualMenu.js +88 -0
  88. package/contextual-menu/ContextualMenu.stories.tsx +232 -0
  89. package/contextual-menu/ContextualMenu.test.js +205 -0
  90. package/contextual-menu/GroupItem.d.ts +4 -0
  91. package/contextual-menu/GroupItem.js +67 -0
  92. package/contextual-menu/ItemAction.d.ts +4 -0
  93. package/contextual-menu/ItemAction.js +52 -0
  94. package/contextual-menu/MenuItem.d.ts +4 -0
  95. package/contextual-menu/MenuItem.js +29 -0
  96. package/contextual-menu/SingleItem.d.ts +4 -0
  97. package/contextual-menu/SingleItem.js +38 -0
  98. package/contextual-menu/types.d.ts +58 -0
  99. package/date-input/Calendar.d.ts +4 -0
  100. package/date-input/Calendar.js +214 -0
  101. package/date-input/DateInput.accessibility.test.js +228 -0
  102. package/date-input/DateInput.js +149 -299
  103. package/date-input/DateInput.stories.tsx +210 -56
  104. package/date-input/DateInput.test.js +700 -371
  105. package/date-input/DatePicker.d.ts +4 -0
  106. package/date-input/DatePicker.js +121 -0
  107. package/date-input/YearPicker.d.ts +4 -0
  108. package/date-input/YearPicker.js +100 -0
  109. package/date-input/types.d.ts +72 -15
  110. package/dialog/Dialog.accessibility.test.js +69 -0
  111. package/dialog/Dialog.d.ts +1 -1
  112. package/dialog/Dialog.js +61 -106
  113. package/dialog/Dialog.stories.tsx +326 -167
  114. package/dialog/Dialog.test.js +287 -20
  115. package/dialog/types.d.ts +18 -25
  116. package/divider/Divider.accessibility.test.js +33 -0
  117. package/divider/Divider.d.ts +4 -0
  118. package/divider/Divider.js +36 -0
  119. package/divider/Divider.stories.tsx +223 -0
  120. package/divider/Divider.test.js +38 -0
  121. package/divider/types.d.ts +21 -0
  122. package/divider/types.js +5 -0
  123. package/dropdown/Dropdown.accessibility.test.js +180 -0
  124. package/dropdown/Dropdown.d.ts +1 -1
  125. package/dropdown/Dropdown.js +233 -303
  126. package/dropdown/Dropdown.stories.tsx +235 -57
  127. package/dropdown/Dropdown.test.js +575 -165
  128. package/dropdown/DropdownMenu.d.ts +4 -0
  129. package/dropdown/DropdownMenu.js +63 -0
  130. package/dropdown/DropdownMenuItem.d.ts +4 -0
  131. package/dropdown/DropdownMenuItem.js +71 -0
  132. package/dropdown/types.d.ts +35 -19
  133. package/file-input/FileInput.accessibility.test.js +160 -0
  134. package/file-input/FileInput.d.ts +2 -2
  135. package/file-input/FileInput.js +241 -391
  136. package/file-input/FileInput.stories.tsx +123 -12
  137. package/file-input/FileInput.test.js +292 -367
  138. package/file-input/FileItem.d.ts +4 -14
  139. package/file-input/FileItem.js +56 -117
  140. package/file-input/types.d.ts +25 -8
  141. package/flex/Flex.d.ts +1 -1
  142. package/flex/Flex.js +40 -40
  143. package/flex/Flex.stories.tsx +35 -26
  144. package/flex/types.d.ts +85 -9
  145. package/footer/Footer.accessibility.test.js +125 -0
  146. package/footer/Footer.d.ts +1 -1
  147. package/footer/Footer.js +73 -118
  148. package/footer/Footer.stories.tsx +99 -21
  149. package/footer/Footer.test.js +33 -57
  150. package/footer/Icons.d.ts +3 -2
  151. package/footer/Icons.js +53 -22
  152. package/footer/types.d.ts +26 -27
  153. package/grid/Grid.d.ts +7 -0
  154. package/grid/Grid.js +76 -0
  155. package/grid/Grid.stories.tsx +219 -0
  156. package/grid/types.d.ts +115 -0
  157. package/grid/types.js +5 -0
  158. package/header/Header.accessibility.test.js +93 -0
  159. package/header/Header.d.ts +4 -3
  160. package/header/Header.js +90 -183
  161. package/header/Header.stories.tsx +133 -38
  162. package/header/Header.test.js +13 -26
  163. package/header/Icons.d.ts +2 -2
  164. package/header/Icons.js +5 -15
  165. package/header/types.d.ts +7 -21
  166. package/heading/Heading.accessibility.test.js +33 -0
  167. package/heading/Heading.js +10 -32
  168. package/heading/Heading.test.js +71 -88
  169. package/heading/types.d.ts +7 -7
  170. package/icon/Icon.accessibility.test.js +30 -0
  171. package/icon/Icon.d.ts +4 -0
  172. package/icon/Icon.js +33 -0
  173. package/icon/Icon.stories.tsx +28 -0
  174. package/icon/types.d.ts +4 -0
  175. package/icon/types.js +5 -0
  176. package/image/Image.accessibility.test.js +56 -0
  177. package/image/Image.d.ts +4 -0
  178. package/image/Image.js +70 -0
  179. package/image/Image.stories.tsx +129 -0
  180. package/image/types.d.ts +72 -0
  181. package/image/types.js +5 -0
  182. package/inset/Inset.js +13 -21
  183. package/inset/Inset.stories.tsx +2 -1
  184. package/inset/types.d.ts +2 -2
  185. package/layout/ApplicationLayout.d.ts +5 -5
  186. package/layout/ApplicationLayout.js +36 -70
  187. package/layout/ApplicationLayout.stories.tsx +2 -1
  188. package/layout/Icons.d.ts +7 -5
  189. package/layout/Icons.js +41 -59
  190. package/layout/types.d.ts +5 -6
  191. package/link/Link.accessibility.test.js +108 -0
  192. package/link/Link.js +32 -51
  193. package/link/Link.stories.tsx +64 -4
  194. package/link/Link.test.js +24 -44
  195. package/link/types.d.ts +14 -14
  196. package/main.d.ts +10 -5
  197. package/main.js +47 -59
  198. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  199. package/nav-tabs/NavTabs.d.ts +7 -0
  200. package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
  201. package/nav-tabs/NavTabs.stories.tsx +279 -0
  202. package/nav-tabs/NavTabs.test.js +77 -0
  203. package/nav-tabs/NavTabsContext.d.ts +3 -0
  204. package/nav-tabs/NavTabsContext.js +8 -0
  205. package/nav-tabs/Tab.js +117 -0
  206. package/{tabs-nav → nav-tabs}/types.d.ts +15 -16
  207. package/nav-tabs/types.js +5 -0
  208. package/number-input/NumberInput.accessibility.test.js +228 -0
  209. package/number-input/NumberInput.js +46 -36
  210. package/number-input/NumberInput.stories.tsx +42 -26
  211. package/number-input/NumberInput.test.js +860 -377
  212. package/number-input/NumberInputContext.d.ts +3 -4
  213. package/number-input/NumberInputContext.js +3 -14
  214. package/number-input/types.d.ts +17 -5
  215. package/package.json +49 -52
  216. package/paginator/Paginator.accessibility.test.js +79 -0
  217. package/paginator/Paginator.js +35 -68
  218. package/paginator/Paginator.stories.tsx +24 -0
  219. package/paginator/Paginator.test.js +253 -226
  220. package/paginator/types.d.ts +3 -3
  221. package/paragraph/Paragraph.accessibility.test.js +28 -0
  222. package/paragraph/Paragraph.d.ts +3 -4
  223. package/paragraph/Paragraph.js +6 -22
  224. package/paragraph/Paragraph.stories.tsx +0 -17
  225. package/password-input/PasswordInput.accessibility.test.js +153 -0
  226. package/password-input/PasswordInput.js +58 -127
  227. package/password-input/PasswordInput.stories.tsx +1 -33
  228. package/password-input/PasswordInput.test.js +160 -142
  229. package/password-input/types.d.ts +8 -7
  230. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  231. package/progress-bar/ProgressBar.js +68 -92
  232. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
  233. package/progress-bar/ProgressBar.test.js +72 -44
  234. package/progress-bar/types.d.ts +3 -3
  235. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  236. package/quick-nav/QuickNav.js +15 -39
  237. package/quick-nav/QuickNav.stories.tsx +112 -20
  238. package/quick-nav/types.d.ts +10 -10
  239. package/radio-group/Radio.d.ts +1 -1
  240. package/radio-group/Radio.js +59 -76
  241. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  242. package/radio-group/RadioGroup.js +69 -116
  243. package/radio-group/RadioGroup.stories.tsx +132 -18
  244. package/radio-group/RadioGroup.test.js +518 -457
  245. package/radio-group/types.d.ts +10 -10
  246. package/resultset-table/Icons.d.ts +7 -0
  247. package/resultset-table/Icons.js +47 -0
  248. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  249. package/resultset-table/ResultsetTable.d.ts +7 -0
  250. package/resultset-table/ResultsetTable.js +171 -0
  251. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +168 -30
  252. package/resultset-table/ResultsetTable.test.js +381 -0
  253. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  254. package/resultset-table/types.js +5 -0
  255. package/select/Listbox.js +44 -64
  256. package/select/Option.js +35 -56
  257. package/select/Select.accessibility.test.js +228 -0
  258. package/select/Select.js +152 -210
  259. package/select/Select.stories.tsx +496 -203
  260. package/select/Select.test.js +1919 -1816
  261. package/select/types.d.ts +17 -20
  262. package/sidenav/Sidenav.accessibility.test.js +59 -0
  263. package/sidenav/Sidenav.d.ts +2 -2
  264. package/sidenav/Sidenav.js +90 -157
  265. package/sidenav/Sidenav.stories.tsx +160 -63
  266. package/sidenav/Sidenav.test.js +3 -10
  267. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  268. package/{layout → sidenav}/SidenavContext.js +3 -9
  269. package/sidenav/types.d.ts +33 -30
  270. package/slider/Slider.accessibility.test.js +104 -0
  271. package/slider/Slider.d.ts +2 -2
  272. package/slider/Slider.js +149 -181
  273. package/slider/Slider.test.js +185 -81
  274. package/slider/types.d.ts +7 -3
  275. package/spinner/Spinner.accessibility.test.js +96 -0
  276. package/spinner/Spinner.js +34 -74
  277. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  278. package/spinner/Spinner.test.js +26 -35
  279. package/spinner/types.d.ts +3 -3
  280. package/status-light/StatusLight.accessibility.test.js +157 -0
  281. package/status-light/StatusLight.d.ts +4 -0
  282. package/status-light/StatusLight.js +51 -0
  283. package/status-light/StatusLight.stories.tsx +74 -0
  284. package/status-light/StatusLight.test.js +25 -0
  285. package/status-light/types.d.ts +17 -0
  286. package/status-light/types.js +5 -0
  287. package/switch/Switch.accessibility.test.js +98 -0
  288. package/switch/Switch.d.ts +2 -2
  289. package/switch/Switch.js +145 -126
  290. package/switch/Switch.stories.tsx +49 -60
  291. package/switch/Switch.test.js +138 -56
  292. package/switch/types.d.ts +7 -3
  293. package/table/DropdownTheme.js +62 -0
  294. package/table/Table.accessibility.test.js +93 -0
  295. package/table/Table.d.ts +6 -2
  296. package/table/Table.js +78 -35
  297. package/table/Table.stories.tsx +663 -0
  298. package/table/Table.test.js +95 -8
  299. package/table/types.d.ts +34 -6
  300. package/tabs/Tab.d.ts +4 -0
  301. package/tabs/Tab.js +117 -0
  302. package/tabs/Tabs.accessibility.test.js +56 -0
  303. package/tabs/Tabs.js +303 -141
  304. package/tabs/Tabs.stories.tsx +124 -6
  305. package/tabs/Tabs.test.js +213 -77
  306. package/tabs/types.d.ts +30 -20
  307. package/tag/Tag.accessibility.test.js +69 -0
  308. package/tag/Tag.js +35 -67
  309. package/tag/Tag.stories.tsx +18 -8
  310. package/tag/Tag.test.js +18 -37
  311. package/tag/types.d.ts +9 -9
  312. package/text-input/Suggestion.js +40 -28
  313. package/text-input/Suggestions.d.ts +4 -0
  314. package/text-input/Suggestions.js +94 -0
  315. package/text-input/TextInput.accessibility.test.js +321 -0
  316. package/text-input/TextInput.js +316 -515
  317. package/text-input/TextInput.stories.tsx +276 -276
  318. package/text-input/TextInput.test.js +1419 -1375
  319. package/text-input/types.d.ts +43 -16
  320. package/textarea/Textarea.accessibility.test.js +155 -0
  321. package/textarea/Textarea.js +71 -113
  322. package/textarea/Textarea.stories.tsx +174 -0
  323. package/textarea/Textarea.test.js +152 -183
  324. package/textarea/types.d.ts +9 -5
  325. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  326. package/toggle-group/ToggleGroup.d.ts +2 -2
  327. package/toggle-group/ToggleGroup.js +94 -107
  328. package/toggle-group/ToggleGroup.stories.tsx +52 -7
  329. package/toggle-group/ToggleGroup.test.js +69 -88
  330. package/toggle-group/types.d.ts +28 -19
  331. package/typography/Typography.accessibility.test.js +339 -0
  332. package/typography/Typography.d.ts +2 -2
  333. package/typography/Typography.js +15 -123
  334. package/typography/Typography.stories.tsx +1 -1
  335. package/typography/types.d.ts +1 -1
  336. package/useTheme.d.ts +1146 -1
  337. package/useTheme.js +2 -9
  338. package/useTranslatedLabels.d.ts +84 -1
  339. package/useTranslatedLabels.js +1 -7
  340. package/utils/BaseTypography.d.ts +21 -0
  341. package/utils/BaseTypography.js +94 -0
  342. package/utils/FocusLock.d.ts +13 -0
  343. package/utils/FocusLock.js +124 -0
  344. package/wizard/Wizard.accessibility.test.js +55 -0
  345. package/wizard/Wizard.js +29 -75
  346. package/wizard/Wizard.stories.tsx +39 -0
  347. package/wizard/Wizard.test.js +54 -81
  348. package/wizard/types.d.ts +10 -11
  349. package/card/ice-cream.jpg +0 -0
  350. package/common/OpenSans.css +0 -81
  351. package/common/RequiredComponent.js +0 -32
  352. package/common/fonts/OpenSans-Bold.ttf +0 -0
  353. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  354. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  355. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  356. package/common/fonts/OpenSans-Italic.ttf +0 -0
  357. package/common/fonts/OpenSans-Light.ttf +0 -0
  358. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  359. package/common/fonts/OpenSans-Regular.ttf +0 -0
  360. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  361. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  362. package/number-input/numberInputContextTypes.d.ts +0 -19
  363. package/paginator/Icons.js +0 -66
  364. package/resultsetTable/ResultsetTable.d.ts +0 -4
  365. package/resultsetTable/ResultsetTable.js +0 -254
  366. package/resultsetTable/ResultsetTable.test.js +0 -348
  367. package/select/Icons.d.ts +0 -10
  368. package/select/Icons.js +0 -93
  369. package/slider/Slider.stories.tsx +0 -177
  370. package/table/Table.stories.jsx +0 -277
  371. package/tabs-nav/NavTabs.d.ts +0 -8
  372. package/tabs-nav/NavTabs.stories.tsx +0 -170
  373. package/tabs-nav/NavTabs.test.js +0 -82
  374. package/tabs-nav/Tab.js +0 -132
  375. package/textarea/Textarea.stories.jsx +0 -157
  376. /package/{resultsetTable → action-icon}/types.js +0 -0
  377. /package/{tabs-nav → container}/types.js +0 -0
  378. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  379. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -0,0 +1,219 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
4
+ import styled from "styled-components";
5
+ import DxcGrid from "./Grid";
6
+ import DxcInset from "../inset/Inset";
7
+
8
+ export default {
9
+ title: "Grid",
10
+ component: DxcGrid,
11
+ };
12
+
13
+ export const Chromatic = () => (
14
+ <>
15
+ <Title title="Default" level={4} />
16
+ <ExampleContainer>
17
+ <DxcGrid>
18
+ <ColoredContainer />
19
+ <ColoredContainer />
20
+ <ColoredContainer />
21
+ </DxcGrid>
22
+ </ExampleContainer>
23
+ <Title title="Place items" level={4} />
24
+ <ExampleContainer>
25
+ <DxcGrid templateRows={["200px"]} placeItems="center">
26
+ <ColoredContainer height="50px" width="50px" />
27
+ </DxcGrid>
28
+ <DxcGrid placeItems={{ justifyItems: "end" }}>
29
+ <ColoredContainer />
30
+ <ColoredContainer />
31
+ <ColoredContainer />
32
+ </DxcGrid>
33
+ <DxcGrid templateRows={["repeat(3, 100px)"]} placeItems={{ alignItems: "end", justifyItems: "center" }}>
34
+ <ColoredContainer height="50px" width="50px" />
35
+ <ColoredContainer height="50px" width="50px" />
36
+ <ColoredContainer height="50px" width="50px" />
37
+ </DxcGrid>
38
+ </ExampleContainer>
39
+ <Title title="Place content" level={4} />
40
+ <Container height="200px">
41
+ <DxcGrid placeContent="center">
42
+ <ColoredContainer height="50px" width="50px" />
43
+ <ColoredContainer height="50px" width="50px" />
44
+ </DxcGrid>
45
+ </Container>
46
+ <Container height="200px">
47
+ <DxcGrid placeContent={{ alignContent: "center" }}>
48
+ <ColoredContainer height="50px" width="50px" />
49
+ </DxcGrid>
50
+ </Container>
51
+ <Container height="200px">
52
+ <DxcGrid placeContent={{ alignContent: "center", justifyContent: "end" }}>
53
+ <ColoredContainer height="50px" width="50px" />
54
+ </DxcGrid>
55
+ </Container>
56
+ <Title title="Place self" level={4} />
57
+ <ExampleContainer>
58
+ <DxcGrid templateRows={["repeat(3, 100px)"]}>
59
+ <DxcGrid.Item placeSelf="center">
60
+ <ColoredContainer height="50px" width="50px" />
61
+ </DxcGrid.Item>
62
+ <DxcGrid.Item placeSelf={{ alignSelf: "end" }}>
63
+ <ColoredContainer height="40px" width="40px" />
64
+ <ColoredContainer height="30px" width="30px" />
65
+ </DxcGrid.Item>
66
+ <DxcGrid.Item placeSelf={{ alignSelf: "center", justifySelf: "end" }}>
67
+ <ColoredContainer height="50px" width="50px" />
68
+ </DxcGrid.Item>
69
+ </DxcGrid>
70
+ </ExampleContainer>
71
+ <Title title="Halstack layout using template areas" level={4} />
72
+ <ExampleContainer>
73
+ <DxcGrid
74
+ templateColumns={["repeat(4, 1fr)"]}
75
+ templateRows={["40px", "200px", "60px"]}
76
+ templateAreas={["header header header header", "sidenav main main main", "sidenav footer footer footer"]}
77
+ gap={{ rowGap: "0.5rem", columnGap: "1rem" }}
78
+ >
79
+ <DxcGrid.Item areaName="header" as="header">
80
+ <ColoredContainer height="100%" />
81
+ </DxcGrid.Item>
82
+ <DxcGrid.Item areaName="main" as="main">
83
+ <ColoredContainer height="100%" />
84
+ </DxcGrid.Item>
85
+ <DxcGrid.Item areaName="sidenav" as="nav">
86
+ <ColoredContainer height="100%" />
87
+ </DxcGrid.Item>
88
+ <DxcGrid.Item areaName="footer" as="footer">
89
+ <ColoredContainer height="100%" />
90
+ </DxcGrid.Item>
91
+ </DxcGrid>
92
+ </ExampleContainer>
93
+ <Title title="Template rows and columns with flexible sizes" level={4} />
94
+ <ExampleContainer>
95
+ <DxcGrid templateColumns={["1fr", "1fr", "1fr"]} templateRows={["1fr", "3fr", "1fr"]} gap="0.5rem">
96
+ <DxcGrid.Item column={{ start: 1, end: -1 }}>
97
+ <ColoredContainer color="yellow" height="100%">
98
+ Header
99
+ </ColoredContainer>
100
+ </DxcGrid.Item>
101
+ <DxcGrid.Item column={1}>
102
+ <ColoredContainer color="lightcyan" height="100%">
103
+ Sidenav
104
+ </ColoredContainer>
105
+ </DxcGrid.Item>
106
+ <DxcGrid
107
+ column={{ start: 2, end: -1 }}
108
+ templateRows={["repeat(4, 1fr)"]}
109
+ templateColumns={["repeat(2, 1fr)"]}
110
+ gap="1rem"
111
+ >
112
+ <ColoredContainer />
113
+ <ColoredContainer />
114
+ <ColoredContainer />
115
+ <ColoredContainer />
116
+ <ColoredContainer />
117
+ <ColoredContainer />
118
+ <ColoredContainer />
119
+ <ColoredContainer />
120
+ </DxcGrid>
121
+ <DxcGrid.Item column={{ start: 1, end: -1 }}>
122
+ <ColoredContainer color="black" height="100%">
123
+ Footer
124
+ </ColoredContainer>
125
+ </DxcGrid.Item>
126
+ </DxcGrid>
127
+ </ExampleContainer>
128
+ <Title title="Overlapping" level={4} />
129
+ <DxcInset bottom="2rem">
130
+ <ExampleContainer>
131
+ <DxcGrid templateRows={["50px", "50px"]}>
132
+ <ColoredContainer color="yellow" height="100px">
133
+ 1
134
+ </ColoredContainer>
135
+ <ColoredContainer color="transparent" height="100px">
136
+ 2
137
+ </ColoredContainer>
138
+ </DxcGrid>
139
+ </ExampleContainer>
140
+ </DxcInset>
141
+ <Title title="Implicit rows and columns" level={4} />
142
+ <ExampleContainer>
143
+ <DxcGrid templateColumns={["50px"]} templateRows={["50px", "50px"]} autoRows="50px" autoColumns="50px">
144
+ <DxcGrid.Item>
145
+ <ColoredContainer height="50px">1</ColoredContainer>
146
+ </DxcGrid.Item>
147
+ <DxcGrid.Item row={2}>
148
+ <ColoredContainer height="50px">3</ColoredContainer>
149
+ </DxcGrid.Item>
150
+ <DxcGrid.Item row={6} column={1}>
151
+ <ColoredContainer height="50px">5</ColoredContainer>
152
+ </DxcGrid.Item>
153
+ <DxcGrid.Item row={3}>
154
+ <ColoredContainer height="50px">4</ColoredContainer>
155
+ </DxcGrid.Item>
156
+ <DxcGrid.Item row={{ start: 1, end: 2 }} column={{ start: 5, end: "span 2" }}>
157
+ <ColoredContainer height="50px">2</ColoredContainer>
158
+ </DxcGrid.Item>
159
+ </DxcGrid>
160
+ </ExampleContainer>
161
+ <Title title="Autoflow 'row' (default)" level={4} />
162
+ <ExampleContainer>
163
+ <DxcGrid templateColumns={["repeat(5, 1fr)"]} templateRows={["1fr", "1fr"]} autoFlow="row" autoColumns="1fr">
164
+ <DxcGrid.Item row={{ start: 1, end: "span 2" }} column={1}>
165
+ <ColoredContainer height="100%">1</ColoredContainer>
166
+ </DxcGrid.Item>
167
+ <ColoredContainer color="lightyellow">2</ColoredContainer>
168
+ <ColoredContainer color="lightcyan">3</ColoredContainer>
169
+ <ColoredContainer color="lightgreen">4</ColoredContainer>
170
+ <DxcGrid.Item row={{ start: 1, end: -1 }} column={-2}>
171
+ <ColoredContainer color="lightpink" height="100%">
172
+ 5
173
+ </ColoredContainer>
174
+ </DxcGrid.Item>
175
+ </DxcGrid>
176
+ </ExampleContainer>
177
+ <Title title="Autoflow 'column'" level={4} />
178
+ <ExampleContainer>
179
+ <DxcGrid templateColumns={["repeat(5, 1fr)"]} templateRows={["1fr", "1fr"]} autoFlow="column" autoColumns="1fr">
180
+ <DxcGrid.Item row={{ start: 1, end: -1 }} column={1}>
181
+ <ColoredContainer height="100%">1</ColoredContainer>
182
+ </DxcGrid.Item>
183
+ <ColoredContainer color="lightyellow">2</ColoredContainer>
184
+ <ColoredContainer color="lightcyan">3</ColoredContainer>
185
+ <ColoredContainer color="lightgreen">4</ColoredContainer>
186
+ <DxcGrid.Item row={{ start: 1, end: -1 }} column={-2}>
187
+ <ColoredContainer color="lightpink" height="100%">
188
+ 5
189
+ </ColoredContainer>
190
+ </DxcGrid.Item>
191
+ </DxcGrid>
192
+ </ExampleContainer>
193
+ </>
194
+ );
195
+
196
+ const Container = styled.div<{ height?: string }>`
197
+ display: grid;
198
+ overflow: auto;
199
+ margin: 2.5rem;
200
+ ${({ height }) => height && `height: ${height}`};
201
+ `;
202
+
203
+ const ColoredContainer = styled.div<{ color?: string; width?: string; height?: string }>`
204
+ box-sizing: border-box;
205
+ display: flex;
206
+ justify-content: center;
207
+ align-items: center;
208
+ background-color: ${({ color }) => color ?? "#e5d5f6"};
209
+ padding: 1rem;
210
+ border: 1px solid #a46ede;
211
+ border-radius: 0.5rem;
212
+ font-family: Open Sans, sans-serif;
213
+ font-size: 1.5rem;
214
+ font-weight: bold;
215
+ color: #a46ede;
216
+
217
+ ${({ width }) => width && `width: ${width}`};
218
+ ${({ height }) => height && `height: ${height}`};
219
+ `;
@@ -0,0 +1,115 @@
1
+ /// <reference types="react" />
2
+ type Spaces = "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "1rem" | "1.5rem" | "2rem" | "3rem" | "4rem" | "5rem";
3
+ type Gap = {
4
+ rowGap: Spaces;
5
+ columnGap?: Spaces;
6
+ } | {
7
+ rowGap?: Spaces;
8
+ columnGap: Spaces;
9
+ } | Spaces;
10
+ type GridCell = {
11
+ start: number | string;
12
+ end: number | string;
13
+ };
14
+ type PlaceSelfValues = "auto" | "start" | "end" | "center" | "stretch" | "baseline";
15
+ type PlaceContentValues = "normal" | "start" | "end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | "baseline";
16
+ type PlaceItemsValues = "normal" | "start" | "end" | "center" | "stretch" | "baseline";
17
+ type PlaceObject<Type, Suffix extends string> = {
18
+ [Property in keyof Type as `${string & Property}${Capitalize<string & Suffix>}`]: Type[Property];
19
+ };
20
+ type PlaceGeneric<PlaceValues, Element extends string> = PlaceObject<{
21
+ justify?: PlaceValues;
22
+ align: PlaceValues;
23
+ }, Element> | PlaceObject<{
24
+ justify: PlaceValues;
25
+ align?: PlaceValues;
26
+ }, Element> | PlaceValues;
27
+ export type GridItemProps = {
28
+ /**
29
+ * Sets the name of an item so that it can be referenced by a template created with the grid-template-areas property.
30
+ */
31
+ areaName?: string;
32
+ /**
33
+ * Sets the grid-column CSS property.
34
+ *
35
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column
36
+ */
37
+ column?: number | string | GridCell;
38
+ /**
39
+ * Sets the grid-row CSS property.
40
+ *
41
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row
42
+ */
43
+ row?: number | string | GridCell;
44
+ /**
45
+ * Sets the place-self CSS property.
46
+ *
47
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/place-self
48
+ */
49
+ placeSelf?: PlaceGeneric<PlaceSelfValues, "self">;
50
+ /**
51
+ * Sets a custom HTML tag.
52
+ */
53
+ as?: keyof HTMLElementTagNameMap;
54
+ /**
55
+ * Custom content inside the grid container.
56
+ */
57
+ children: React.ReactNode;
58
+ };
59
+ type Props = GridItemProps & {
60
+ /**
61
+ * Sets the grid-auto-columns CSS property.
62
+ *
63
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns
64
+ */
65
+ autoColumns?: string;
66
+ /**
67
+ * Sets the grid-auto-flow CSS property.
68
+ *
69
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow
70
+ */
71
+ autoFlow?: "row" | "column" | "row dense" | "column dense";
72
+ /**
73
+ * Sets the grid-auto-rows CSS property.
74
+ *
75
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-rows
76
+ */
77
+ autoRows?: string;
78
+ /**
79
+ * Sets the gap CSS property.
80
+ *
81
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/gap
82
+ */
83
+ gap?: Spaces | Gap;
84
+ /**
85
+ * Sets the place-content CSS property.
86
+ *
87
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/place-content
88
+ */
89
+ placeContent?: PlaceGeneric<PlaceContentValues, "content">;
90
+ /**
91
+ * Sets the place-items CSS property.
92
+ *
93
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/place-items
94
+ */
95
+ placeItems?: PlaceGeneric<PlaceItemsValues, "items">;
96
+ /**
97
+ * Sets the grid-template-areas CSS property.
98
+ *
99
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas
100
+ */
101
+ templateAreas?: string[];
102
+ /**
103
+ * Sets the grid-template-columns CSS property.
104
+ *
105
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns
106
+ */
107
+ templateColumns?: string[];
108
+ /**
109
+ * Sets the grid-template-rows CSS property.
110
+ *
111
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows
112
+ */
113
+ templateRows?: string[];
114
+ };
115
+ export default Props;
package/grid/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
9
+ var _Header = _interopRequireDefault(require("./Header.tsx"));
10
+ var _Flex = _interopRequireDefault(require("../flex/Flex.tsx"));
11
+ var _Link = _interopRequireDefault(require("../link/Link.tsx"));
12
+ var _disabledRules = require("../../test/accessibility/rules/specific/header/disabledRules.js");
13
+ var disabledRules = {
14
+ rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
15
+ rulesObj[rule] = {
16
+ enabled: false
17
+ };
18
+ return rulesObj;
19
+ }, {})
20
+ };
21
+ var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
22
+ viewBox: "0 0 24 24",
23
+ height: "24",
24
+ width: "24",
25
+ fill: "currentColor"
26
+ }, /*#__PURE__*/_react["default"].createElement("path", {
27
+ d: "M0 0h24v24H0z",
28
+ fill: "none"
29
+ }), /*#__PURE__*/_react["default"].createElement("path", {
30
+ d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"
31
+ }));
32
+ var iconUrl = "https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png";
33
+ var options = [{
34
+ value: "1",
35
+ label: "Amazon",
36
+ icon: iconUrl
37
+ }, {
38
+ value: "2",
39
+ label: "Ebay",
40
+ icon: iconUrl
41
+ }, {
42
+ value: "3",
43
+ label: "Wallapop",
44
+ icon: iconSVG
45
+ }, {
46
+ value: "4",
47
+ label: "Aliexpress",
48
+ icon: iconSVG
49
+ }];
50
+ describe("Header component accessibility tests", function () {
51
+ beforeAll(function () {
52
+ Object.defineProperty(window, "matchMedia", {
53
+ writable: true,
54
+ value: jest.fn().mockImplementation(function () {
55
+ return {
56
+ matches: false
57
+ };
58
+ })
59
+ });
60
+ });
61
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
62
+ var _render, container, results;
63
+ return _regenerator["default"].wrap(function _callee$(_context) {
64
+ while (1) switch (_context.prev = _context.next) {
65
+ case 0:
66
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
67
+ content: /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
68
+ alignItems: "center",
69
+ gap: "4rem"
70
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], null, "Link 1"), /*#__PURE__*/_react["default"].createElement(_Link["default"], null, "Link 2"), /*#__PURE__*/_react["default"].createElement(_Link["default"], null, "Link 3"), /*#__PURE__*/_react["default"].createElement(_Header["default"].Dropdown, {
71
+ options: options,
72
+ label: "dropdown-test",
73
+ icon: iconSVG,
74
+ iconPosition: "after",
75
+ margin: "medium",
76
+ size: "medium",
77
+ optionsIconPosition: "after"
78
+ })),
79
+ margin: "medium",
80
+ underlined: true
81
+ })), container = _render.container;
82
+ _context.next = 3;
83
+ return (0, _axeHelper.axe)(container, disabledRules);
84
+ case 3:
85
+ results = _context.sent;
86
+ expect(results).toHaveNoViolations();
87
+ case 5:
88
+ case "end":
89
+ return _context.stop();
90
+ }
91
+ }, _callee);
92
+ })));
93
+ });
@@ -1,7 +1,8 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
+ import DxcDropdown from "../dropdown/Dropdown";
2
3
  import HeaderPropsType from "./types";
3
4
  declare const DxcHeader: {
4
- ({ underlined, content, responsiveContent, onClick, margin, padding, tabIndex, }: HeaderPropsType): JSX.Element;
5
- Dropdown: (props: any) => JSX.Element;
5
+ ({ underlined, content, responsiveContent, onClick, margin, tabIndex, }: HeaderPropsType): JSX.Element;
6
+ Dropdown: (props: React.ComponentProps<typeof DxcDropdown>) => React.JSX.Element;
6
7
  };
7
8
  export default DxcHeader;