@dxc-technology/halstack-react 0.0.0-c291a0c → 0.0.0-c293b72

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 (396) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1243 -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 +104 -161
  9. package/accordion/Accordion.stories.tsx +84 -140
  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 +31 -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 +32 -125
  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 +64 -63
  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 +107 -0
  49. package/bulleted-list/BulletedList.d.ts +7 -0
  50. package/bulleted-list/BulletedList.js +92 -0
  51. package/bulleted-list/BulletedList.stories.tsx +115 -0
  52. package/bulleted-list/types.d.ts +38 -0
  53. package/button/Button.accessibility.test.js +127 -0
  54. package/button/Button.d.ts +1 -1
  55. package/button/Button.js +64 -117
  56. package/button/Button.stories.tsx +151 -100
  57. package/button/Button.test.js +20 -17
  58. package/button/types.d.ts +12 -8
  59. package/card/Card.accessibility.test.js +36 -0
  60. package/card/Card.d.ts +1 -1
  61. package/card/Card.js +48 -89
  62. package/card/Card.stories.tsx +12 -42
  63. package/card/Card.test.js +11 -22
  64. package/card/types.d.ts +6 -11
  65. package/checkbox/Checkbox.accessibility.test.js +87 -0
  66. package/checkbox/Checkbox.d.ts +2 -2
  67. package/checkbox/Checkbox.js +140 -182
  68. package/checkbox/Checkbox.stories.tsx +128 -94
  69. package/checkbox/Checkbox.test.js +160 -39
  70. package/checkbox/types.d.ts +11 -3
  71. package/chip/Chip.accessibility.test.js +67 -0
  72. package/chip/Chip.js +43 -80
  73. package/chip/Chip.stories.tsx +102 -26
  74. package/chip/Chip.test.js +18 -33
  75. package/chip/types.d.ts +4 -4
  76. package/common/coreTokens.d.ts +237 -0
  77. package/common/coreTokens.js +184 -0
  78. package/common/utils.d.ts +1 -0
  79. package/common/utils.js +6 -12
  80. package/common/variables.d.ts +1395 -0
  81. package/common/variables.js +942 -1145
  82. package/container/Container.d.ts +4 -0
  83. package/container/Container.js +194 -0
  84. package/container/Container.stories.tsx +214 -0
  85. package/container/types.d.ts +74 -0
  86. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  87. package/contextual-menu/ContextualMenu.d.ts +7 -0
  88. package/contextual-menu/ContextualMenu.js +71 -0
  89. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  90. package/contextual-menu/ContextualMenu.test.js +71 -0
  91. package/contextual-menu/MenuItemAction.d.ts +4 -0
  92. package/contextual-menu/MenuItemAction.js +46 -0
  93. package/contextual-menu/types.d.ts +22 -0
  94. package/date-input/Calendar.d.ts +4 -0
  95. package/date-input/Calendar.js +214 -0
  96. package/date-input/DateInput.accessibility.test.js +216 -0
  97. package/date-input/DateInput.js +149 -299
  98. package/date-input/DateInput.stories.tsx +203 -56
  99. package/date-input/DateInput.test.js +700 -371
  100. package/date-input/DatePicker.d.ts +4 -0
  101. package/date-input/DatePicker.js +121 -0
  102. package/date-input/YearPicker.d.ts +4 -0
  103. package/date-input/YearPicker.js +100 -0
  104. package/date-input/types.d.ts +72 -15
  105. package/dialog/Dialog.accessibility.test.js +69 -0
  106. package/dialog/Dialog.d.ts +1 -1
  107. package/dialog/Dialog.js +73 -107
  108. package/dialog/Dialog.stories.tsx +320 -167
  109. package/dialog/Dialog.test.js +287 -20
  110. package/dialog/types.d.ts +18 -25
  111. package/divider/Divider.accessibility.test.js +33 -0
  112. package/divider/Divider.d.ts +4 -0
  113. package/divider/Divider.js +36 -0
  114. package/divider/Divider.stories.tsx +223 -0
  115. package/divider/Divider.test.js +38 -0
  116. package/divider/types.d.ts +21 -0
  117. package/dropdown/Dropdown.accessibility.test.js +180 -0
  118. package/dropdown/Dropdown.d.ts +1 -1
  119. package/dropdown/Dropdown.js +231 -303
  120. package/dropdown/Dropdown.stories.tsx +235 -57
  121. package/dropdown/Dropdown.test.js +575 -165
  122. package/dropdown/DropdownMenu.d.ts +4 -0
  123. package/dropdown/DropdownMenu.js +63 -0
  124. package/dropdown/DropdownMenuItem.d.ts +4 -0
  125. package/dropdown/DropdownMenuItem.js +70 -0
  126. package/dropdown/types.d.ts +35 -19
  127. package/file-input/FileInput.accessibility.test.js +160 -0
  128. package/file-input/FileInput.d.ts +2 -2
  129. package/file-input/FileInput.js +241 -391
  130. package/file-input/FileInput.stories.tsx +123 -12
  131. package/file-input/FileInput.test.js +292 -367
  132. package/file-input/FileItem.d.ts +4 -14
  133. package/file-input/FileItem.js +52 -117
  134. package/file-input/types.d.ts +25 -8
  135. package/flex/Flex.d.ts +4 -0
  136. package/flex/Flex.js +57 -0
  137. package/flex/Flex.stories.tsx +112 -0
  138. package/flex/types.d.ts +97 -0
  139. package/footer/Footer.accessibility.test.js +117 -0
  140. package/footer/Footer.d.ts +1 -1
  141. package/footer/Footer.js +73 -118
  142. package/footer/Footer.stories.tsx +87 -21
  143. package/footer/Footer.test.js +33 -57
  144. package/footer/Icons.d.ts +3 -2
  145. package/footer/Icons.js +66 -7
  146. package/footer/types.d.ts +26 -27
  147. package/grid/Grid.d.ts +7 -0
  148. package/grid/Grid.js +76 -0
  149. package/grid/Grid.stories.tsx +219 -0
  150. package/grid/types.d.ts +115 -0
  151. package/header/Header.accessibility.test.js +84 -0
  152. package/header/Header.d.ts +4 -3
  153. package/header/Header.js +88 -182
  154. package/header/Header.stories.tsx +118 -39
  155. package/header/Header.test.js +13 -26
  156. package/header/Icons.d.ts +2 -2
  157. package/header/Icons.js +4 -9
  158. package/header/types.d.ts +7 -21
  159. package/heading/Heading.accessibility.test.js +33 -0
  160. package/heading/Heading.js +10 -32
  161. package/heading/Heading.test.js +71 -88
  162. package/heading/types.d.ts +7 -7
  163. package/icon/Icon.accessibility.test.js +30 -0
  164. package/icon/Icon.d.ts +4 -0
  165. package/icon/Icon.js +33 -0
  166. package/icon/Icon.stories.tsx +28 -0
  167. package/icon/types.d.ts +4 -0
  168. package/icon/types.js +5 -0
  169. package/image/Image.accessibility.test.js +56 -0
  170. package/image/Image.d.ts +4 -0
  171. package/image/Image.js +70 -0
  172. package/image/Image.stories.tsx +129 -0
  173. package/image/types.d.ts +72 -0
  174. package/image/types.js +5 -0
  175. package/inset/Inset.js +13 -21
  176. package/inset/Inset.stories.tsx +5 -4
  177. package/inset/types.d.ts +2 -2
  178. package/layout/ApplicationLayout.d.ts +15 -6
  179. package/layout/ApplicationLayout.js +51 -116
  180. package/layout/ApplicationLayout.stories.tsx +81 -45
  181. package/layout/Icons.d.ts +8 -5
  182. package/layout/Icons.js +49 -59
  183. package/layout/types.d.ts +21 -32
  184. package/link/Link.accessibility.test.js +112 -0
  185. package/link/Link.js +32 -51
  186. package/link/Link.stories.tsx +74 -7
  187. package/link/Link.test.js +24 -44
  188. package/link/types.d.ts +14 -14
  189. package/main.d.ts +14 -13
  190. package/main.js +59 -103
  191. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  192. package/nav-tabs/NavTabs.d.ts +7 -0
  193. package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
  194. package/nav-tabs/NavTabs.stories.tsx +279 -0
  195. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -46
  196. package/nav-tabs/NavTabsContext.d.ts +3 -0
  197. package/nav-tabs/NavTabsContext.js +8 -0
  198. package/nav-tabs/Tab.js +117 -0
  199. package/{tabs-nav → nav-tabs}/types.d.ts +15 -16
  200. package/nav-tabs/types.js +5 -0
  201. package/number-input/NumberInput.accessibility.test.js +228 -0
  202. package/number-input/NumberInput.js +46 -36
  203. package/number-input/NumberInput.stories.tsx +42 -26
  204. package/number-input/NumberInput.test.js +860 -377
  205. package/number-input/NumberInputContext.d.ts +3 -4
  206. package/number-input/NumberInputContext.js +3 -14
  207. package/number-input/types.d.ts +17 -5
  208. package/package.json +49 -52
  209. package/paginator/Icons.d.ts +5 -0
  210. package/paginator/Icons.js +21 -47
  211. package/paginator/Paginator.accessibility.test.js +79 -0
  212. package/paginator/Paginator.js +23 -59
  213. package/paginator/Paginator.stories.tsx +24 -0
  214. package/paginator/Paginator.test.js +253 -226
  215. package/paginator/types.d.ts +3 -3
  216. package/paragraph/Paragraph.accessibility.test.js +28 -0
  217. package/paragraph/Paragraph.d.ts +5 -0
  218. package/paragraph/Paragraph.js +22 -0
  219. package/paragraph/Paragraph.stories.tsx +27 -0
  220. package/password-input/PasswordInput.accessibility.test.js +153 -0
  221. package/password-input/PasswordInput.js +56 -126
  222. package/password-input/PasswordInput.stories.tsx +1 -33
  223. package/password-input/PasswordInput.test.js +160 -142
  224. package/password-input/types.d.ts +8 -7
  225. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  226. package/progress-bar/ProgressBar.js +65 -91
  227. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
  228. package/progress-bar/ProgressBar.test.js +72 -44
  229. package/progress-bar/types.d.ts +3 -3
  230. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  231. package/quick-nav/QuickNav.js +27 -45
  232. package/quick-nav/QuickNav.stories.tsx +146 -27
  233. package/quick-nav/types.d.ts +10 -10
  234. package/radio-group/Radio.d.ts +1 -1
  235. package/radio-group/Radio.js +59 -76
  236. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  237. package/radio-group/RadioGroup.js +67 -114
  238. package/radio-group/RadioGroup.stories.tsx +132 -18
  239. package/radio-group/RadioGroup.test.js +518 -457
  240. package/radio-group/types.d.ts +10 -10
  241. package/resultset-table/Icons.d.ts +7 -0
  242. package/resultset-table/Icons.js +47 -0
  243. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  244. package/resultset-table/ResultsetTable.d.ts +7 -0
  245. package/resultset-table/ResultsetTable.js +170 -0
  246. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +156 -30
  247. package/resultset-table/ResultsetTable.test.js +381 -0
  248. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  249. package/resultset-table/types.js +5 -0
  250. package/select/Listbox.js +22 -52
  251. package/select/Option.js +33 -55
  252. package/select/Select.accessibility.test.js +217 -0
  253. package/select/Select.js +146 -208
  254. package/select/Select.stories.tsx +484 -203
  255. package/select/Select.test.js +1928 -1814
  256. package/select/types.d.ts +17 -20
  257. package/sidenav/Sidenav.accessibility.test.js +59 -0
  258. package/sidenav/Sidenav.d.ts +6 -5
  259. package/sidenav/Sidenav.js +132 -78
  260. package/sidenav/Sidenav.stories.tsx +246 -151
  261. package/sidenav/Sidenav.test.js +26 -45
  262. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  263. package/{layout → sidenav}/SidenavContext.js +3 -9
  264. package/sidenav/types.d.ts +52 -26
  265. package/slider/Slider.accessibility.test.js +104 -0
  266. package/slider/Slider.d.ts +2 -2
  267. package/slider/Slider.js +148 -181
  268. package/slider/Slider.test.js +185 -81
  269. package/slider/types.d.ts +7 -3
  270. package/spinner/Spinner.accessibility.test.js +96 -0
  271. package/spinner/Spinner.js +31 -75
  272. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  273. package/spinner/Spinner.test.js +26 -35
  274. package/spinner/types.d.ts +3 -3
  275. package/status-light/StatusLight.accessibility.test.js +157 -0
  276. package/status-light/StatusLight.d.ts +4 -0
  277. package/status-light/StatusLight.js +51 -0
  278. package/status-light/StatusLight.stories.tsx +74 -0
  279. package/status-light/StatusLight.test.js +25 -0
  280. package/status-light/types.d.ts +17 -0
  281. package/status-light/types.js +5 -0
  282. package/switch/Switch.accessibility.test.js +89 -0
  283. package/switch/Switch.d.ts +2 -2
  284. package/switch/Switch.js +145 -126
  285. package/switch/Switch.stories.tsx +37 -60
  286. package/switch/Switch.test.js +138 -56
  287. package/switch/types.d.ts +7 -3
  288. package/table/DropdownTheme.js +62 -0
  289. package/table/Table.accessibility.test.js +82 -0
  290. package/table/Table.d.ts +6 -2
  291. package/table/Table.js +78 -35
  292. package/table/Table.stories.tsx +651 -0
  293. package/table/Table.test.js +95 -8
  294. package/table/types.d.ts +34 -6
  295. package/tabs/Tab.d.ts +4 -0
  296. package/tabs/Tab.js +117 -0
  297. package/tabs/Tabs.accessibility.test.js +56 -0
  298. package/tabs/Tabs.js +303 -141
  299. package/tabs/Tabs.stories.tsx +118 -6
  300. package/tabs/Tabs.test.js +213 -77
  301. package/tabs/types.d.ts +30 -20
  302. package/tag/Tag.accessibility.test.js +69 -0
  303. package/tag/Tag.js +35 -67
  304. package/tag/Tag.stories.tsx +18 -8
  305. package/tag/Tag.test.js +18 -37
  306. package/tag/types.d.ts +9 -9
  307. package/text-input/Suggestion.js +40 -28
  308. package/text-input/Suggestions.d.ts +4 -0
  309. package/text-input/Suggestions.js +86 -0
  310. package/text-input/TextInput.accessibility.test.js +321 -0
  311. package/text-input/TextInput.js +311 -514
  312. package/text-input/TextInput.stories.tsx +266 -275
  313. package/text-input/TextInput.test.js +1419 -1375
  314. package/text-input/types.d.ts +43 -16
  315. package/textarea/Textarea.accessibility.test.js +155 -0
  316. package/textarea/Textarea.js +70 -113
  317. package/textarea/Textarea.stories.tsx +174 -0
  318. package/textarea/Textarea.test.js +152 -183
  319. package/textarea/types.d.ts +9 -5
  320. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  321. package/toggle-group/ToggleGroup.d.ts +2 -2
  322. package/toggle-group/ToggleGroup.js +94 -107
  323. package/toggle-group/ToggleGroup.stories.tsx +52 -7
  324. package/toggle-group/ToggleGroup.test.js +69 -88
  325. package/toggle-group/types.d.ts +28 -19
  326. package/typography/Typography.accessibility.test.js +339 -0
  327. package/typography/Typography.d.ts +4 -0
  328. package/typography/Typography.js +23 -0
  329. package/typography/Typography.stories.tsx +198 -0
  330. package/typography/types.d.ts +18 -0
  331. package/typography/types.js +5 -0
  332. package/useTheme.d.ts +1147 -1
  333. package/useTheme.js +2 -9
  334. package/useTranslatedLabels.d.ts +84 -1
  335. package/useTranslatedLabels.js +1 -7
  336. package/utils/BaseTypography.d.ts +21 -0
  337. package/utils/BaseTypography.js +94 -0
  338. package/utils/FocusLock.d.ts +13 -0
  339. package/utils/FocusLock.js +124 -0
  340. package/wizard/Wizard.accessibility.test.js +55 -0
  341. package/wizard/Wizard.js +34 -79
  342. package/wizard/Wizard.stories.tsx +59 -1
  343. package/wizard/Wizard.test.js +54 -81
  344. package/wizard/types.d.ts +9 -9
  345. package/card/ice-cream.jpg +0 -0
  346. package/common/OpenSans.css +0 -81
  347. package/common/RequiredComponent.js +0 -32
  348. package/common/fonts/OpenSans-Bold.ttf +0 -0
  349. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  350. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  351. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  352. package/common/fonts/OpenSans-Italic.ttf +0 -0
  353. package/common/fonts/OpenSans-Light.ttf +0 -0
  354. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  355. package/common/fonts/OpenSans-Regular.ttf +0 -0
  356. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  357. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  358. package/inline/Inline.d.ts +0 -4
  359. package/inline/Inline.js +0 -54
  360. package/inline/Inline.stories.tsx +0 -264
  361. package/inline/types.d.ts +0 -32
  362. package/list/List.d.ts +0 -4
  363. package/list/List.js +0 -47
  364. package/list/List.stories.tsx +0 -89
  365. package/list/types.d.ts +0 -7
  366. package/number-input/numberInputContextTypes.d.ts +0 -19
  367. package/resultsetTable/ResultsetTable.d.ts +0 -4
  368. package/resultsetTable/ResultsetTable.js +0 -254
  369. package/resultsetTable/ResultsetTable.test.js +0 -348
  370. package/row/Row.d.ts +0 -3
  371. package/row/Row.js +0 -127
  372. package/row/Row.stories.tsx +0 -237
  373. package/row/types.d.ts +0 -28
  374. package/select/Icons.d.ts +0 -10
  375. package/select/Icons.js +0 -93
  376. package/slider/Slider.stories.tsx +0 -177
  377. package/stack/Stack.d.ts +0 -4
  378. package/stack/Stack.js +0 -50
  379. package/stack/Stack.stories.tsx +0 -225
  380. package/stack/types.d.ts +0 -28
  381. package/table/Table.stories.jsx +0 -277
  382. package/tabs-nav/NavTabs.d.ts +0 -8
  383. package/tabs-nav/NavTabs.stories.tsx +0 -170
  384. package/tabs-nav/Tab.js +0 -132
  385. package/text/Text.d.ts +0 -7
  386. package/text/Text.js +0 -30
  387. package/text/Text.stories.tsx +0 -19
  388. package/textarea/Textarea.stories.jsx +0 -157
  389. /package/{inline → action-icon}/types.js +0 -0
  390. /package/{list → bulleted-list}/types.js +0 -0
  391. /package/{resultsetTable → container}/types.js +0 -0
  392. /package/{row → contextual-menu}/types.js +0 -0
  393. /package/{stack → divider}/types.js +0 -0
  394. /package/{tabs-nav → flex}/types.js +0 -0
  395. /package/{number-input/numberInputContextTypes.js → grid/types.js} +0 -0
  396. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -0,0 +1,117 @@
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 _jestAxe = require("jest-axe");
9
+ var _Footer = _interopRequireDefault(require("./Footer.tsx"));
10
+ var social = [{
11
+ href: "https://www.linkedin.com/company/dxctechnology",
12
+ logo: /*#__PURE__*/_react["default"].createElement("svg", {
13
+ version: "1.1",
14
+ id: "Capa_1",
15
+ x: "0px",
16
+ y: "0px",
17
+ viewBox: "0 0 438.536 438.536",
18
+ fill: "currentColor"
19
+ }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
20
+ d: "M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123 C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126 h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225 C438.532,59.576,430.49,40.204,414.41,24.123z M133.618,367.157H67.666V169.016h65.952V367.157z M127.626,132.332 c-6.851,6.567-15.893,9.851-27.124,9.851h-0.288c-10.848,0-19.648-3.284-26.407-9.851c-6.76-6.567-10.138-14.703-10.138-24.41 c0-9.897,3.476-18.083,10.421-24.556c6.95-6.471,15.942-9.708,26.98-9.708c11.039,0,19.89,3.237,26.553,9.708 c6.661,6.473,10.088,14.659,10.277,24.556C137.899,117.625,134.477,125.761,127.626,132.332z M370.873,367.157h-65.952v-105.92 c0-29.879-11.036-44.823-33.116-44.823c-8.374,0-15.42,2.331-21.128,6.995c-5.715,4.661-9.996,10.324-12.847,16.991 c-1.335,3.422-1.999,8.75-1.999,15.981v110.775h-65.952c0.571-119.529,0.571-185.579,0-198.142h65.952v27.974 c13.867-21.681,33.558-32.544,59.101-32.544c22.84,0,41.21,7.52,55.104,22.554c13.895,15.037,20.841,37.214,20.841,66.519v113.64 H370.873z"
21
+ }))),
22
+ title: "Linkedin"
23
+ }, {
24
+ href: "https://x.com/dxctechnology",
25
+ logo: /*#__PURE__*/_react["default"].createElement("svg", {
26
+ width: "256",
27
+ height: "256",
28
+ viewBox: "0 0 256 256",
29
+ fill: "none",
30
+ xmlns: "http://www.w3.org/2000/svg"
31
+ }, /*#__PURE__*/_react["default"].createElement("rect", {
32
+ width: "256",
33
+ height: "256",
34
+ rx: "40",
35
+ fill: "white"
36
+ }), /*#__PURE__*/_react["default"].createElement("path", {
37
+ d: "M140.192 118.205L187.848 64H176.556L135.158 111.056L102.117 64H64L113.975 135.163L64 192H75.2914L118.982 142.296L153.883 192H192L140.192 118.205ZM124.722 135.787L119.65 128.697L79.3634 72.3294H96.7094L129.232 117.837L134.282 124.927L176.551 184.076H159.205L124.722 135.787Z",
38
+ fill: "#0F1419"
39
+ })),
40
+ title: "X"
41
+ }, {
42
+ href: "https://www.facebook.com/DXCTechnology/",
43
+ logo: /*#__PURE__*/_react["default"].createElement("svg", {
44
+ version: "1.1",
45
+ x: "0px",
46
+ y: "0px",
47
+ viewBox: "0 0 438.536 438.536",
48
+ fill: "currentColor",
49
+ width: "1000px",
50
+ height: "500px"
51
+ }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
52
+ d: "M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123 C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126 h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225 C438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402 c0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401 c-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
53
+ }))),
54
+ title: "Facebook"
55
+ }];
56
+ var bottom = [{
57
+ href: "https://www.linkedin.com/company/dxctechnology",
58
+ text: "Linkedin"
59
+ }, {
60
+ href: "https://x.com/dxctechnology",
61
+ text: "X"
62
+ }, {
63
+ href: "https://www.facebook.com/DXCTechnology/",
64
+ text: "Facebook"
65
+ }];
66
+ describe("Footer component accessibility tests", function () {
67
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
68
+ var _render, container, results;
69
+ return _regenerator["default"].wrap(function _callee$(_context) {
70
+ while (1) switch (_context.prev = _context.next) {
71
+ case 0:
72
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
73
+ copyright: "Copyright",
74
+ socialLinks: social,
75
+ bottomLinks: bottom,
76
+ margin: "small",
77
+ mode: "default"
78
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("a", {
79
+ href: "https://www.linkedin.com/company/dxctechnology"
80
+ }, "Linkedin")))), container = _render.container;
81
+ _context.next = 3;
82
+ return (0, _jestAxe.axe)(container);
83
+ case 3:
84
+ results = _context.sent;
85
+ expect(results).toHaveNoViolations();
86
+ case 5:
87
+ case "end":
88
+ return _context.stop();
89
+ }
90
+ }, _callee);
91
+ })));
92
+ it("Should not have basic accessibility issues for reduced mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
93
+ var _render2, container, results;
94
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
95
+ while (1) switch (_context2.prev = _context2.next) {
96
+ case 0:
97
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
98
+ copyright: "Copyright",
99
+ socialLinks: social,
100
+ bottomLinks: bottom,
101
+ margin: "small",
102
+ mode: "reduced"
103
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("a", {
104
+ href: "https://www.linkedin.com/company/dxctechnology"
105
+ }, "Linkedin")))), container = _render2.container;
106
+ _context2.next = 3;
107
+ return (0, _jestAxe.axe)(container);
108
+ case 3:
109
+ results = _context2.sent;
110
+ expect(results).toHaveNoViolations();
111
+ case 5:
112
+ case "end":
113
+ return _context2.stop();
114
+ }
115
+ }, _callee2);
116
+ })));
117
+ });
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import FooterPropsType from "./types";
3
- declare const DxcFooter: ({ socialLinks, bottomLinks, copyright, children, padding, margin, tabIndex, }: FooterPropsType) => JSX.Element;
3
+ declare const DxcFooter: ({ socialLinks, bottomLinks, copyright, children, margin, tabIndex, mode, }: FooterPropsType) => JSX.Element;
4
4
  export default DxcFooter;
package/footer/Footer.js CHANGED
@@ -1,127 +1,94 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
10
  var _react = _interopRequireWildcard(require("react"));
17
-
18
11
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
-
20
- var _variables = require("../common/variables.js");
21
-
12
+ var _variables = require("../common/variables");
22
13
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
-
24
14
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
25
-
26
- var _BackgroundColorContext = require("../BackgroundColorContext");
27
-
28
15
  var _Icons = require("./Icons");
29
-
30
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
31
-
32
- 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); }
33
-
34
- 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; }
35
-
16
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
17
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
18
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
36
21
  var DxcFooter = function DxcFooter(_ref) {
37
22
  var socialLinks = _ref.socialLinks,
38
- bottomLinks = _ref.bottomLinks,
39
- copyright = _ref.copyright,
40
- children = _ref.children,
41
- padding = _ref.padding,
42
- margin = _ref.margin,
43
- _ref$tabIndex = _ref.tabIndex,
44
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
23
+ bottomLinks = _ref.bottomLinks,
24
+ copyright = _ref.copyright,
25
+ children = _ref.children,
26
+ margin = _ref.margin,
27
+ _ref$tabIndex = _ref.tabIndex,
28
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
29
+ _ref$mode = _ref.mode,
30
+ mode = _ref$mode === void 0 ? "default" : _ref$mode;
45
31
  var colorsTheme = (0, _useTheme["default"])();
46
32
  var translatedLabels = (0, _useTranslatedLabels["default"])();
47
33
  var footerLogo = (0, _react.useMemo)(function () {
48
- if (!colorsTheme.footer.logo) {
49
- return _Icons.dxcLogo;
50
- }
51
-
52
- if (typeof colorsTheme.footer.logo === "string") {
53
- return /*#__PURE__*/_react["default"].createElement(LogoImg, {
54
- alt: translatedLabels.formFields.logoAlternativeText,
55
- src: colorsTheme.footer.logo
56
- });
57
- }
58
-
59
- return colorsTheme.footer.logo;
60
- }, [colorsTheme.footer.logo]);
61
- var socialLink = socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
34
+ return !colorsTheme.footer.logo ? mode === "default" ? _Icons.dxcLogo : _Icons.dxcSmallLogo : typeof colorsTheme.footer.logo === "string" ? /*#__PURE__*/_react["default"].createElement(LogoImg, {
35
+ mode: mode,
36
+ alt: translatedLabels.formFields.logoAlternativeText,
37
+ src: colorsTheme.footer.logo
38
+ }) : colorsTheme.footer.logo;
39
+ }, [colorsTheme]);
40
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
41
+ theme: colorsTheme.footer
42
+ }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
43
+ margin: margin,
44
+ mode: mode
45
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
46
+ justifyContent: "space-between",
47
+ alignItems: "center",
48
+ wrap: "wrap",
49
+ gap: "1.5rem"
50
+ }, /*#__PURE__*/_react["default"].createElement(LogoContainer, {
51
+ mode: mode
52
+ }, footerLogo), mode === "default" && /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
62
53
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
54
+ href: link.href,
63
55
  tabIndex: tabIndex,
56
+ title: link.title,
57
+ "aria-label": link.title,
64
58
  key: "social".concat(index).concat(link.href),
65
- index: index,
66
- href: link && link.href ? link.href : ""
67
- }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(SocialIconImg, {
68
- src: link.logo
59
+ index: index
60
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
61
+ icon: link.logo
69
62
  }) : link.logo));
70
- });
71
- var bottomLink = bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
63
+ }))), /*#__PURE__*/_react["default"].createElement(ChildComponents, null, children), mode === "default" && /*#__PURE__*/_react["default"].createElement(BottomContainer, null, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
72
64
  return /*#__PURE__*/_react["default"].createElement("span", {
73
65
  key: "bottom".concat(index).concat(link.text)
74
66
  }, /*#__PURE__*/_react["default"].createElement(BottomLink, {
75
- tabIndex: tabIndex,
76
- href: link && link.href ? link.href : ""
77
- }, link && link.text ? link.text : ""), /*#__PURE__*/_react["default"].createElement(Point, {
78
- index: index
79
- }, "\xB7"));
80
- });
81
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
82
- theme: colorsTheme.footer
83
- }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
84
- margin: margin
85
- }, /*#__PURE__*/_react["default"].createElement(FooterHeader, null, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement(SocialLinkContainer, null, socialLink)), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ChildComponents, {
86
- padding: padding
87
- }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
88
- color: colorsTheme.footer.backgroundColor
89
- }, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
90
- className: "footerFooter"
91
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear()))))));
67
+ href: link.href,
68
+ tabIndex: tabIndex
69
+ }, link.text));
70
+ })), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear())))));
92
71
  };
93
-
94
- var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n @media (min-width: ", "rem) {\n padding: 24px 36px 24px 36px;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n padding: 20px;\n }\n\n background-color: ", ";\n margin-top: ", ";\n width: 100%;\n box-sizing: border-box;\n min-height: ", ";\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
72
+ var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n box-sizing: border-box;\n display: flex;\n flex-direction: ", ";\n justify-content: space-between;\n margin-top: ", ";\n min-height: ", ";\n width: 100%;\n gap: ", ";\n @media (min-width: ", "rem) {\n padding: ", ";\n }\n @media (max-width: ", "rem) {\n padding: 20px;\n flex-direction: column;\n }\n"])), function (props) {
95
73
  return props.theme.backgroundColor;
96
74
  }, function (props) {
97
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
75
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? "column" : "row";
98
76
  }, function (props) {
99
- return props.theme.height;
100
- });
101
-
102
- var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n row-gap: 24px;\n"])));
103
-
104
- var FooterFooter = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n\n @media (min-width: ", "rem) {\n flex-direction: row;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n flex-direction: column;\n align-items: center;\n }\n\n border-top: ", ";\n margin-top: 16px;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
77
+ return props.margin ? _variables.spaces[props.margin] : "0px";
78
+ }, function (props) {
79
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? props.theme.height : "40px";
80
+ }, function (props) {
81
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? "0px" : "32px";
82
+ }, _variables.responsiveSizes.small, function (props) {
83
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? "24px 32px" : "12px 32px";
84
+ }, _variables.responsiveSizes.small);
85
+ var BottomContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n\n @media (min-width: ", "rem) {\n flex-direction: row;\n }\n @media (max-width: ", "rem) {\n flex-direction: column;\n align-items: center;\n }\n\n border-top: ", ";\n margin-top: 16px;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
105
86
  return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
106
87
  });
107
-
108
- var BottomLinks = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n display: inline-flex;\n flex-wrap: wrap;\n\n @media (min-width: ", "rem) {\n max-width: 60%;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 100%;\n width: 100%;\n }\n\n & > span:last-child span {\n display: none;\n }\n align-self: center;\n"])), function (props) {
88
+ var ChildComponents = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n overflow: hidden;\n"])));
89
+ var Copyright = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n\n @media (min-width: ", "rem) {\n max-width: 40%;\n text-align: right;\n }\n\n @media (max-width: ", "rem) {\n max-width: 100%;\n width: 100%;\n text-align: left;\n }\n"])), function (props) {
109
90
  return props.theme.bottomLinksDividerSpacing;
110
- }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
111
-
112
- var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (props) {
113
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
114
- }, function (props) {
115
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
116
- }, function (props) {
117
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
118
- }, function (props) {
119
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
120
91
  }, function (props) {
121
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
122
- });
123
-
124
- var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n\n @media (min-width: ", "rem) {\n max-width: 40%;\n text-align: right;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 100%;\n width: 100%;\n text-align: left;\n }\n\n padding-top: ", ";\n"])), function (props) {
125
92
  return props.theme.copyrightFontFamily;
126
93
  }, function (props) {
127
94
  return props.theme.copyrightFontSize;
@@ -131,43 +98,33 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
131
98
  return props.theme.copyrightFontWeight;
132
99
  }, function (props) {
133
100
  return props.theme.copyrightFontColor;
134
- }, _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
135
- return props.theme.bottomLinksDividerSpacing;
136
- });
137
-
138
- var LogoContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
139
- return props.theme.logoHeight;
101
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
102
+ var LogoContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
103
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? props.theme.logoHeight : "16px";
140
104
  }, function (props) {
141
105
  return props.theme.logoWidth;
142
106
  });
143
-
144
- var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
145
- return props.theme.logoHeight;
107
+ var LogoImg = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
108
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? props.theme.logoHeight : "16px";
146
109
  }, function (props) {
147
110
  return props.theme.logoWidth;
148
111
  });
149
-
150
- var SocialLinkContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-self: center;\n"])));
151
-
152
- var SocialAnchor = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
112
+ var SocialAnchor = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n margin-left: ", ";\n border-radius: 4px;\n\n &:focus {\n outline: 2px solid #0095ff;\n outline-offset: 2px;\n }\n"])), function (props) {
153
113
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
154
114
  });
155
-
156
- var SocialIconImg = _styledComponents["default"].img(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])([""])));
157
-
158
- var SocialIconContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n color: ", ";\n }\n\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
115
+ var SocialIconContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n color: ", ";\n overflow: hidden;\n font-size: ", ";\n\n svg {\n height: ", ";\n width: ", ";\n }\n"])), function (props) {
116
+ return props.theme.socialLinksColor;
117
+ }, function (props) {
159
118
  return props.theme.socialLinksSize;
160
119
  }, function (props) {
161
120
  return props.theme.socialLinksSize;
162
121
  }, function (props) {
163
- return props.theme.socialLinksColor;
164
- });
165
-
166
- var Point = _styledComponents["default"].span(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
167
- return props.theme.bottomLinksFontColor;
122
+ return props.theme.socialLinksSize;
168
123
  });
169
-
170
- var BottomLink = _styledComponents["default"].a(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
124
+ var BottomLinks = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-wrap: wrap;\n align-self: center;\n padding-top: ", ";\n color: #fff;\n\n @media (min-width: ", "rem) {\n max-width: 60%;\n }\n @media (max-width: ", "rem) {\n max-width: 100%;\n width: 100%;\n }\n\n & > span:not(:first-child):before {\n content: \"\xB7\";\n padding: 0 0.5rem;\n }\n"])), function (props) {
125
+ return props.theme.bottomLinksDividerSpacing;
126
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
127
+ var BottomLink = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n border-radius: 2px;\n\n &:focus {\n outline: 2px solid #0095ff;\n }\n"])), function (props) {
171
128
  return props.theme.bottomLinksTextDecoration;
172
129
  }, function (props) {
173
130
  return props.theme.bottomLinksFontColor;
@@ -180,6 +137,4 @@ var BottomLink = _styledComponents["default"].a(_templateObject14 || (_templateO
180
137
  }, function (props) {
181
138
  return props.theme.bottomLinksFontWeight;
182
139
  });
183
-
184
- var _default = DxcFooter;
185
- exports["default"] = _default;
140
+ var _default = exports["default"] = DxcFooter;
@@ -2,12 +2,15 @@ import React from "react";
2
2
  import DxcFooter from "./Footer";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
6
+ import DxcFlex from "../flex/Flex";
7
+ import DxcTypography from "../typography/Typography";
5
8
 
6
9
  const social = [
7
10
  {
8
11
  href: "https://www.linkedin.com/company/dxctechnology",
9
12
  logo: (
10
- <svg version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
13
+ <svg version="1.1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
11
14
  <g>
12
15
  <path
13
16
  d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
@@ -25,17 +28,26 @@ const social = [
25
28
  </g>
26
29
  </svg>
27
30
  ),
31
+ title: "Linkedin",
28
32
  },
29
33
  {
30
- href: "https://twitter.com/dxctechnology",
31
- logo: "http://assets.stickpng.com/images/580b57fcd9996e24bc43c53e.png",
34
+ href: "https://x.com/dxctechnology",
35
+ logo: (
36
+ <svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
37
+ <rect width="256" height="256" rx="40" fill="white" />
38
+ <path
39
+ d="M140.192 118.205L187.848 64H176.556L135.158 111.056L102.117 64H64L113.975 135.163L64 192H75.2914L118.982 142.296L153.883 192H192L140.192 118.205ZM124.722 135.787L119.65 128.697L79.3634 72.3294H96.7094L129.232 117.837L134.282 124.927L176.551 184.076H159.205L124.722 135.787Z"
40
+ fill="#0F1419"
41
+ />
42
+ </svg>
43
+ ),
44
+ title: "X",
32
45
  },
33
46
  {
34
47
  href: "https://www.facebook.com/DXCTechnology/",
35
48
  logo: (
36
49
  <svg
37
50
  version="1.1"
38
- id="Capa_1"
39
51
  x="0px"
40
52
  y="0px"
41
53
  viewBox="0 0 438.536 438.536"
@@ -55,6 +67,25 @@ const social = [
55
67
  </g>
56
68
  </svg>
57
69
  ),
70
+ title: "Facebook",
71
+ },
72
+ ];
73
+
74
+ const socialMaterialIcons = [
75
+ {
76
+ href: "https://www.linkedin.com/company/dxctechnology",
77
+ logo: "person",
78
+ title: "Linkedin",
79
+ },
80
+ {
81
+ href: "https://x.com/dxctechnology",
82
+ logo: "group",
83
+ title: "X",
84
+ },
85
+ {
86
+ href: "https://www.facebook.com/DXCTechnology/",
87
+ logo: "thumb_up",
88
+ title: "Facebook",
58
89
  },
59
90
  ];
60
91
 
@@ -64,8 +95,8 @@ const bottom = [
64
95
  text: "Linkedin",
65
96
  },
66
97
  {
67
- href: "https://twitter.com/dxctechnology",
68
- text: "Twitter",
98
+ href: "https://x.com/dxctechnology",
99
+ text: "X",
69
100
  },
70
101
  {
71
102
  href: "https://www.facebook.com/DXCTechnology/",
@@ -78,6 +109,20 @@ export default {
78
109
  component: DxcFooter,
79
110
  };
80
111
 
112
+ const opinionatedTheme = {
113
+ footer: {
114
+ baseColor: "#000000",
115
+ fontColor: "#ffffff",
116
+ accentColor: "#0095ff",
117
+ logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
118
+ },
119
+ };
120
+
121
+ const info = [
122
+ { label: "Example Label", text: "Example" },
123
+ { label: "Example Label", text: "Example" },
124
+ ];
125
+
81
126
  export const Chromatic = () => (
82
127
  <>
83
128
  <ExampleContainer>
@@ -92,6 +137,34 @@ export const Chromatic = () => (
92
137
  </div>
93
138
  </DxcFooter>
94
139
  </ExampleContainer>
140
+ <ExampleContainer>
141
+ <Title title="With children, copyright, bottom links and social links from material" theme="light" level={4} />
142
+ <DxcFooter copyright="Copyright" socialLinks={socialMaterialIcons} bottomLinks={bottom}>
143
+ <div>
144
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
145
+ </div>
146
+ </DxcFooter>
147
+ </ExampleContainer>
148
+ <ExampleContainer pseudoState="pseudo-focus">
149
+ <Title title="Focused bottom and social links" theme="light" level={4} />
150
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
151
+ <div>
152
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
153
+ </div>
154
+ </DxcFooter>
155
+ </ExampleContainer>
156
+ <ExampleContainer>
157
+ <Title title="Reduced" theme="light" level={4} />
158
+ <DxcFooter mode="reduced">
159
+ <DxcFlex justifyContent="center" alignItems="center" gap={"1rem"}>
160
+ {info.map((tag, index) => (
161
+ <DxcTypography color="white" key={`tag${index}${tag.label}${tag.text}`}>
162
+ {tag.label}: {tag.text}
163
+ </DxcTypography>
164
+ ))}
165
+ </DxcFlex>
166
+ </DxcFooter>
167
+ </ExampleContainer>
95
168
  <Title title="Margins" theme="light" level={2} />
96
169
  <ExampleContainer>
97
170
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -109,22 +182,15 @@ export const Chromatic = () => (
109
182
  <Title title="Xxlarge margin" theme="light" level={4} />
110
183
  <DxcFooter margin="xxlarge"></DxcFooter>
111
184
  </ExampleContainer>
112
- <Title title="Padding" theme="light" level={2} />
185
+ <Title title="Opinionated theme" theme="light" level={2} />
113
186
  <ExampleContainer>
114
- <Title title="Xxsmall padding" theme="light" level={4} />
115
- <DxcFooter padding="xxsmall"></DxcFooter>
116
- <Title title="Xsmall padding" theme="light" level={4} />
117
- <DxcFooter padding="xsmall"></DxcFooter>
118
- <Title title="Small padding" theme="light" level={4} />
119
- <DxcFooter padding="small"></DxcFooter>
120
- <Title title="Medium padding" theme="light" level={4} />
121
- <DxcFooter padding="medium"></DxcFooter>
122
- <Title title="Large padding" theme="light" level={4} />
123
- <DxcFooter padding="large"></DxcFooter>
124
- <Title title="Xlarge padding" theme="light" level={4} />
125
- <DxcFooter padding="xlarge"></DxcFooter>
126
- <Title title="Xxlarge padding" theme="light" level={4} />
127
- <DxcFooter padding="xxlarge"></DxcFooter>
187
+ <HalstackProvider theme={opinionatedTheme}>
188
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
189
+ <div>
190
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
191
+ </div>
192
+ </DxcFooter>
193
+ </HalstackProvider>
128
194
  </ExampleContainer>
129
195
  </>
130
196
  );