@dxc-technology/halstack-react 0.0.0-ff5083e → 0.0.0-ff6c8bf

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 (403) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1240 -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 +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 +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 +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/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  49. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  50. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  51. package/breadcrumbs/Breadcrumbs.js +79 -0
  52. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  53. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  54. package/breadcrumbs/Breadcrumbs.test.js +169 -0
  55. package/breadcrumbs/Item.d.ts +4 -0
  56. package/breadcrumbs/Item.js +52 -0
  57. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  58. package/breadcrumbs/dropdownTheme.js +62 -0
  59. package/breadcrumbs/types.d.ts +16 -0
  60. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  61. package/bulleted-list/BulletedList.js +35 -63
  62. package/bulleted-list/BulletedList.stories.tsx +18 -106
  63. package/bulleted-list/types.d.ts +32 -5
  64. package/button/Button.accessibility.test.js +127 -0
  65. package/button/Button.d.ts +1 -1
  66. package/button/Button.js +64 -117
  67. package/button/Button.stories.tsx +151 -100
  68. package/button/Button.test.js +20 -17
  69. package/button/types.d.ts +12 -8
  70. package/card/Card.accessibility.test.js +36 -0
  71. package/card/Card.d.ts +1 -1
  72. package/card/Card.js +49 -89
  73. package/card/Card.stories.tsx +12 -42
  74. package/card/Card.test.js +11 -22
  75. package/card/types.d.ts +6 -11
  76. package/checkbox/Checkbox.accessibility.test.js +87 -0
  77. package/checkbox/Checkbox.d.ts +2 -2
  78. package/checkbox/Checkbox.js +139 -181
  79. package/checkbox/Checkbox.stories.tsx +128 -94
  80. package/checkbox/Checkbox.test.js +160 -39
  81. package/checkbox/types.d.ts +11 -3
  82. package/chip/Chip.accessibility.test.js +67 -0
  83. package/chip/Chip.js +45 -80
  84. package/chip/Chip.stories.tsx +107 -27
  85. package/chip/Chip.test.js +18 -33
  86. package/chip/types.d.ts +4 -4
  87. package/common/coreTokens.d.ts +237 -0
  88. package/common/coreTokens.js +184 -0
  89. package/common/utils.d.ts +1 -0
  90. package/common/utils.js +6 -12
  91. package/common/variables.d.ts +1392 -0
  92. package/common/variables.js +984 -1206
  93. package/container/Container.d.ts +4 -0
  94. package/container/Container.js +194 -0
  95. package/container/Container.stories.tsx +214 -0
  96. package/container/types.d.ts +74 -0
  97. package/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
  98. package/contextual-menu/ContextualMenu.d.ts +5 -0
  99. package/contextual-menu/ContextualMenu.js +88 -0
  100. package/contextual-menu/ContextualMenu.stories.tsx +232 -0
  101. package/contextual-menu/ContextualMenu.test.js +205 -0
  102. package/contextual-menu/GroupItem.d.ts +4 -0
  103. package/contextual-menu/GroupItem.js +67 -0
  104. package/contextual-menu/ItemAction.d.ts +4 -0
  105. package/contextual-menu/ItemAction.js +51 -0
  106. package/contextual-menu/MenuItem.d.ts +4 -0
  107. package/contextual-menu/MenuItem.js +29 -0
  108. package/contextual-menu/SingleItem.d.ts +4 -0
  109. package/contextual-menu/SingleItem.js +38 -0
  110. package/contextual-menu/types.d.ts +58 -0
  111. package/date-input/Calendar.d.ts +4 -0
  112. package/date-input/Calendar.js +214 -0
  113. package/date-input/DateInput.accessibility.test.js +228 -0
  114. package/date-input/DateInput.js +149 -299
  115. package/date-input/DateInput.stories.tsx +210 -56
  116. package/date-input/DateInput.test.js +700 -371
  117. package/date-input/DatePicker.d.ts +4 -0
  118. package/date-input/DatePicker.js +121 -0
  119. package/date-input/YearPicker.d.ts +4 -0
  120. package/date-input/YearPicker.js +100 -0
  121. package/date-input/types.d.ts +72 -15
  122. package/dialog/Dialog.accessibility.test.js +69 -0
  123. package/dialog/Dialog.d.ts +1 -1
  124. package/dialog/Dialog.js +61 -106
  125. package/dialog/Dialog.stories.tsx +326 -167
  126. package/dialog/Dialog.test.js +287 -20
  127. package/dialog/types.d.ts +18 -25
  128. package/divider/Divider.accessibility.test.js +33 -0
  129. package/divider/Divider.d.ts +4 -0
  130. package/divider/Divider.js +36 -0
  131. package/divider/Divider.stories.tsx +223 -0
  132. package/divider/Divider.test.js +38 -0
  133. package/divider/types.d.ts +21 -0
  134. package/dropdown/Dropdown.accessibility.test.js +180 -0
  135. package/dropdown/Dropdown.d.ts +1 -1
  136. package/dropdown/Dropdown.js +233 -303
  137. package/dropdown/Dropdown.stories.tsx +235 -57
  138. package/dropdown/Dropdown.test.js +575 -165
  139. package/dropdown/DropdownMenu.d.ts +4 -0
  140. package/dropdown/DropdownMenu.js +63 -0
  141. package/dropdown/DropdownMenuItem.d.ts +4 -0
  142. package/dropdown/DropdownMenuItem.js +71 -0
  143. package/dropdown/types.d.ts +35 -19
  144. package/file-input/FileInput.accessibility.test.js +160 -0
  145. package/file-input/FileInput.d.ts +2 -2
  146. package/file-input/FileInput.js +241 -391
  147. package/file-input/FileInput.stories.tsx +123 -12
  148. package/file-input/FileInput.test.js +306 -367
  149. package/file-input/FileItem.d.ts +4 -14
  150. package/file-input/FileItem.js +56 -117
  151. package/file-input/types.d.ts +25 -8
  152. package/flex/Flex.d.ts +4 -0
  153. package/flex/Flex.js +57 -0
  154. package/flex/Flex.stories.tsx +112 -0
  155. package/flex/types.d.ts +97 -0
  156. package/footer/Footer.accessibility.test.js +125 -0
  157. package/footer/Footer.d.ts +1 -1
  158. package/footer/Footer.js +73 -118
  159. package/footer/Footer.stories.tsx +99 -21
  160. package/footer/Footer.test.js +33 -57
  161. package/footer/Icons.d.ts +3 -2
  162. package/footer/Icons.js +54 -23
  163. package/footer/types.d.ts +26 -27
  164. package/grid/Grid.d.ts +7 -0
  165. package/grid/Grid.js +76 -0
  166. package/grid/Grid.stories.tsx +219 -0
  167. package/grid/types.d.ts +115 -0
  168. package/grid/types.js +5 -0
  169. package/header/Header.accessibility.test.js +93 -0
  170. package/header/Header.d.ts +4 -3
  171. package/header/Header.js +90 -183
  172. package/header/Header.stories.tsx +133 -38
  173. package/header/Header.test.js +13 -26
  174. package/header/Icons.d.ts +2 -2
  175. package/header/Icons.js +5 -15
  176. package/header/types.d.ts +7 -21
  177. package/heading/Heading.accessibility.test.js +33 -0
  178. package/heading/Heading.js +10 -32
  179. package/heading/Heading.test.js +71 -88
  180. package/heading/types.d.ts +7 -7
  181. package/icon/Icon.accessibility.test.js +30 -0
  182. package/icon/Icon.d.ts +4 -0
  183. package/icon/Icon.js +33 -0
  184. package/icon/Icon.stories.tsx +28 -0
  185. package/icon/types.d.ts +4 -0
  186. package/icon/types.js +5 -0
  187. package/image/Image.accessibility.test.js +56 -0
  188. package/image/Image.d.ts +4 -0
  189. package/image/Image.js +70 -0
  190. package/image/Image.stories.tsx +129 -0
  191. package/image/types.d.ts +72 -0
  192. package/image/types.js +5 -0
  193. package/inset/Inset.js +13 -21
  194. package/inset/Inset.stories.tsx +5 -4
  195. package/inset/types.d.ts +2 -2
  196. package/layout/ApplicationLayout.d.ts +15 -6
  197. package/layout/ApplicationLayout.js +57 -119
  198. package/layout/ApplicationLayout.stories.tsx +81 -45
  199. package/layout/Icons.d.ts +7 -5
  200. package/layout/Icons.js +41 -59
  201. package/layout/types.d.ts +21 -32
  202. package/link/Link.accessibility.test.js +108 -0
  203. package/link/Link.js +32 -51
  204. package/link/Link.stories.tsx +76 -9
  205. package/link/Link.test.js +24 -44
  206. package/link/types.d.ts +14 -14
  207. package/main.d.ts +14 -12
  208. package/main.js +51 -88
  209. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  210. package/nav-tabs/NavTabs.d.ts +7 -0
  211. package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
  212. package/nav-tabs/NavTabs.stories.tsx +279 -0
  213. package/nav-tabs/NavTabs.test.js +77 -0
  214. package/nav-tabs/NavTabsContext.d.ts +3 -0
  215. package/nav-tabs/NavTabsContext.js +8 -0
  216. package/nav-tabs/Tab.js +117 -0
  217. package/{tabs-nav → nav-tabs}/types.d.ts +15 -16
  218. package/nav-tabs/types.js +5 -0
  219. package/number-input/NumberInput.accessibility.test.js +228 -0
  220. package/number-input/NumberInput.js +46 -36
  221. package/number-input/NumberInput.stories.tsx +42 -26
  222. package/number-input/NumberInput.test.js +860 -377
  223. package/number-input/NumberInputContext.d.ts +3 -4
  224. package/number-input/NumberInputContext.js +3 -14
  225. package/number-input/types.d.ts +17 -5
  226. package/package.json +51 -51
  227. package/paginator/Paginator.accessibility.test.js +79 -0
  228. package/paginator/Paginator.js +35 -68
  229. package/paginator/Paginator.stories.tsx +24 -0
  230. package/paginator/Paginator.test.js +280 -211
  231. package/paginator/types.d.ts +3 -3
  232. package/paragraph/Paragraph.accessibility.test.js +28 -0
  233. package/paragraph/Paragraph.d.ts +3 -4
  234. package/paragraph/Paragraph.js +7 -23
  235. package/paragraph/Paragraph.stories.tsx +1 -18
  236. package/password-input/PasswordInput.accessibility.test.js +153 -0
  237. package/password-input/PasswordInput.js +58 -127
  238. package/password-input/PasswordInput.stories.tsx +1 -33
  239. package/password-input/PasswordInput.test.js +160 -142
  240. package/password-input/types.d.ts +8 -7
  241. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  242. package/progress-bar/ProgressBar.js +68 -92
  243. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
  244. package/progress-bar/ProgressBar.test.js +72 -44
  245. package/progress-bar/types.d.ts +3 -3
  246. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  247. package/quick-nav/QuickNav.js +24 -42
  248. package/quick-nav/QuickNav.stories.tsx +146 -27
  249. package/quick-nav/types.d.ts +10 -10
  250. package/radio-group/Radio.d.ts +1 -1
  251. package/radio-group/Radio.js +59 -76
  252. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  253. package/radio-group/RadioGroup.js +68 -114
  254. package/radio-group/RadioGroup.stories.tsx +132 -18
  255. package/radio-group/RadioGroup.test.js +518 -457
  256. package/radio-group/types.d.ts +10 -10
  257. package/resultset-table/Icons.d.ts +7 -0
  258. package/resultset-table/Icons.js +47 -0
  259. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  260. package/resultset-table/ResultsetTable.d.ts +7 -0
  261. package/resultset-table/ResultsetTable.js +171 -0
  262. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +168 -30
  263. package/resultset-table/ResultsetTable.test.js +381 -0
  264. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  265. package/resultset-table/types.js +5 -0
  266. package/select/Listbox.d.ts +1 -1
  267. package/select/Listbox.js +68 -65
  268. package/select/Option.js +35 -56
  269. package/select/Select.accessibility.test.js +228 -0
  270. package/select/Select.js +171 -214
  271. package/select/Select.stories.tsx +515 -190
  272. package/select/Select.test.js +1934 -1789
  273. package/select/types.d.ts +17 -21
  274. package/sidenav/Sidenav.accessibility.test.js +59 -0
  275. package/sidenav/Sidenav.d.ts +6 -5
  276. package/sidenav/Sidenav.js +132 -78
  277. package/sidenav/Sidenav.stories.tsx +246 -151
  278. package/sidenav/Sidenav.test.js +26 -45
  279. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  280. package/{layout → sidenav}/SidenavContext.js +3 -9
  281. package/sidenav/types.d.ts +52 -26
  282. package/slider/Slider.accessibility.test.js +104 -0
  283. package/slider/Slider.d.ts +2 -2
  284. package/slider/Slider.js +149 -181
  285. package/slider/Slider.stories.tsx +64 -61
  286. package/slider/Slider.test.js +185 -81
  287. package/slider/types.d.ts +7 -3
  288. package/spinner/Spinner.accessibility.test.js +96 -0
  289. package/spinner/Spinner.js +34 -74
  290. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  291. package/spinner/Spinner.test.js +26 -35
  292. package/spinner/types.d.ts +3 -3
  293. package/status-light/StatusLight.accessibility.test.js +157 -0
  294. package/status-light/StatusLight.d.ts +4 -0
  295. package/status-light/StatusLight.js +51 -0
  296. package/status-light/StatusLight.stories.tsx +74 -0
  297. package/status-light/StatusLight.test.js +25 -0
  298. package/status-light/types.d.ts +17 -0
  299. package/status-light/types.js +5 -0
  300. package/switch/Switch.accessibility.test.js +98 -0
  301. package/switch/Switch.d.ts +2 -2
  302. package/switch/Switch.js +145 -126
  303. package/switch/Switch.stories.tsx +49 -60
  304. package/switch/Switch.test.js +138 -56
  305. package/switch/types.d.ts +7 -3
  306. package/table/DropdownTheme.js +62 -0
  307. package/table/Table.accessibility.test.js +93 -0
  308. package/table/Table.d.ts +6 -2
  309. package/table/Table.js +78 -35
  310. package/table/Table.stories.tsx +663 -0
  311. package/table/Table.test.js +95 -8
  312. package/table/types.d.ts +34 -6
  313. package/tabs/Tab.d.ts +4 -0
  314. package/tabs/Tab.js +117 -0
  315. package/tabs/Tabs.accessibility.test.js +56 -0
  316. package/tabs/Tabs.js +303 -141
  317. package/tabs/Tabs.stories.tsx +124 -6
  318. package/tabs/Tabs.test.js +213 -77
  319. package/tabs/types.d.ts +30 -20
  320. package/tag/Tag.accessibility.test.js +69 -0
  321. package/tag/Tag.js +35 -67
  322. package/tag/Tag.stories.tsx +18 -8
  323. package/tag/Tag.test.js +18 -37
  324. package/tag/types.d.ts +9 -9
  325. package/text-input/Suggestion.js +40 -28
  326. package/text-input/Suggestions.d.ts +4 -0
  327. package/text-input/Suggestions.js +94 -0
  328. package/text-input/TextInput.accessibility.test.js +321 -0
  329. package/text-input/TextInput.js +316 -515
  330. package/text-input/TextInput.stories.tsx +276 -276
  331. package/text-input/TextInput.test.js +1419 -1375
  332. package/text-input/types.d.ts +43 -16
  333. package/textarea/Textarea.accessibility.test.js +155 -0
  334. package/textarea/Textarea.js +71 -113
  335. package/textarea/Textarea.stories.tsx +174 -0
  336. package/textarea/Textarea.test.js +152 -183
  337. package/textarea/types.d.ts +9 -5
  338. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  339. package/toggle-group/ToggleGroup.d.ts +2 -2
  340. package/toggle-group/ToggleGroup.js +94 -107
  341. package/toggle-group/ToggleGroup.stories.tsx +52 -7
  342. package/toggle-group/ToggleGroup.test.js +69 -88
  343. package/toggle-group/types.d.ts +28 -19
  344. package/typography/Typography.accessibility.test.js +339 -0
  345. package/typography/Typography.d.ts +2 -2
  346. package/typography/Typography.js +16 -124
  347. package/typography/Typography.stories.tsx +185 -162
  348. package/typography/types.d.ts +1 -1
  349. package/useTheme.d.ts +1144 -1
  350. package/useTheme.js +2 -9
  351. package/useTranslatedLabels.d.ts +84 -1
  352. package/useTranslatedLabels.js +1 -7
  353. package/utils/BaseTypography.d.ts +21 -0
  354. package/utils/BaseTypography.js +94 -0
  355. package/utils/FocusLock.d.ts +13 -0
  356. package/utils/FocusLock.js +124 -0
  357. package/wizard/Wizard.accessibility.test.js +55 -0
  358. package/wizard/Wizard.js +34 -87
  359. package/wizard/Wizard.stories.tsx +59 -1
  360. package/wizard/Wizard.test.js +54 -81
  361. package/wizard/types.d.ts +9 -9
  362. package/card/ice-cream.jpg +0 -0
  363. package/common/OpenSans.css +0 -81
  364. package/common/RequiredComponent.js +0 -32
  365. package/common/fonts/OpenSans-Bold.ttf +0 -0
  366. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  367. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  368. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  369. package/common/fonts/OpenSans-Italic.ttf +0 -0
  370. package/common/fonts/OpenSans-Light.ttf +0 -0
  371. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  372. package/common/fonts/OpenSans-Regular.ttf +0 -0
  373. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  374. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  375. package/number-input/numberInputContextTypes.d.ts +0 -19
  376. package/paginator/Icons.js +0 -66
  377. package/resultsetTable/ResultsetTable.d.ts +0 -4
  378. package/resultsetTable/ResultsetTable.js +0 -254
  379. package/resultsetTable/ResultsetTable.test.js +0 -306
  380. package/row/Row.d.ts +0 -3
  381. package/row/Row.js +0 -127
  382. package/row/Row.stories.tsx +0 -237
  383. package/row/types.d.ts +0 -28
  384. package/select/Icons.d.ts +0 -10
  385. package/select/Icons.js +0 -93
  386. package/stack/Stack.d.ts +0 -3
  387. package/stack/Stack.js +0 -97
  388. package/stack/Stack.stories.tsx +0 -164
  389. package/stack/types.d.ts +0 -24
  390. package/table/Table.stories.jsx +0 -277
  391. package/tabs-nav/NavTabs.d.ts +0 -8
  392. package/tabs-nav/NavTabs.stories.tsx +0 -170
  393. package/tabs-nav/NavTabs.test.js +0 -82
  394. package/tabs-nav/Tab.js +0 -132
  395. package/textarea/Textarea.stories.jsx +0 -157
  396. package/typography/typographyContextTypes.d.ts +0 -16
  397. /package/{resultsetTable → action-icon}/types.js +0 -0
  398. /package/{row → breadcrumbs}/types.js +0 -0
  399. /package/{stack → container}/types.js +0 -0
  400. /package/{tabs-nav → contextual-menu}/types.js +0 -0
  401. /package/{number-input/numberInputContextTypes.js → divider/types.js} +0 -0
  402. /package/{typography/typographyContextTypes.js → flex/types.js} +0 -0
  403. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -0,0 +1,125 @@
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 _Footer = _interopRequireDefault(require("./Footer.tsx"));
10
+ var _disabledRules = require("../../test/accessibility/rules/specific/footer/disabledRules.js");
11
+ var disabledRules = {
12
+ rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
13
+ rulesObj[rule] = {
14
+ enabled: false
15
+ };
16
+ return rulesObj;
17
+ }, {})
18
+ };
19
+ var social = [{
20
+ href: "https://www.linkedin.com/company/dxctechnology",
21
+ logo: /*#__PURE__*/_react["default"].createElement("svg", {
22
+ version: "1.1",
23
+ x: "0px",
24
+ y: "0px",
25
+ viewBox: "0 0 438.536 438.536",
26
+ fill: "currentColor"
27
+ }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
28
+ 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"
29
+ }))),
30
+ title: "Linkedin"
31
+ }, {
32
+ href: "https://x.com/dxctechnology",
33
+ logo: /*#__PURE__*/_react["default"].createElement("svg", {
34
+ width: "256",
35
+ height: "256",
36
+ viewBox: "0 0 256 256",
37
+ fill: "none",
38
+ xmlns: "http://www.w3.org/2000/svg"
39
+ }, /*#__PURE__*/_react["default"].createElement("rect", {
40
+ width: "256",
41
+ height: "256",
42
+ rx: "40",
43
+ fill: "white"
44
+ }), /*#__PURE__*/_react["default"].createElement("path", {
45
+ 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",
46
+ fill: "#0F1419"
47
+ })),
48
+ title: "X"
49
+ }, {
50
+ href: "https://www.facebook.com/DXCTechnology/",
51
+ logo: /*#__PURE__*/_react["default"].createElement("svg", {
52
+ version: "1.1",
53
+ x: "0px",
54
+ y: "0px",
55
+ viewBox: "0 0 438.536 438.536",
56
+ fill: "currentColor",
57
+ width: "1000px",
58
+ height: "500px"
59
+ }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
60
+ 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"
61
+ }))),
62
+ title: "Facebook"
63
+ }];
64
+ var bottom = [{
65
+ href: "https://www.linkedin.com/company/dxctechnology",
66
+ text: "Linkedin"
67
+ }, {
68
+ href: "https://x.com/dxctechnology",
69
+ text: "X"
70
+ }, {
71
+ href: "https://www.facebook.com/DXCTechnology/",
72
+ text: "Facebook"
73
+ }];
74
+ describe("Footer component accessibility tests", function () {
75
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
76
+ var _render, container, results;
77
+ return _regenerator["default"].wrap(function _callee$(_context) {
78
+ while (1) switch (_context.prev = _context.next) {
79
+ case 0:
80
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
81
+ copyright: "Copyright",
82
+ socialLinks: social,
83
+ bottomLinks: bottom,
84
+ margin: "small",
85
+ mode: "default"
86
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("a", {
87
+ href: "https://www.linkedin.com/company/dxctechnology"
88
+ }, "Linkedin")))), container = _render.container;
89
+ _context.next = 3;
90
+ return (0, _axeHelper.axe)(container, disabledRules);
91
+ case 3:
92
+ results = _context.sent;
93
+ expect(results).toHaveNoViolations();
94
+ case 5:
95
+ case "end":
96
+ return _context.stop();
97
+ }
98
+ }, _callee);
99
+ })));
100
+ it("Should not have basic accessibility issues for reduced mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
101
+ var _render2, container, results;
102
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
103
+ while (1) switch (_context2.prev = _context2.next) {
104
+ case 0:
105
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
106
+ copyright: "Copyright",
107
+ socialLinks: social,
108
+ bottomLinks: bottom,
109
+ margin: "small",
110
+ mode: "reduced"
111
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("a", {
112
+ href: "https://www.linkedin.com/company/dxctechnology"
113
+ }, "Linkedin")))), container = _render2.container;
114
+ _context2.next = 3;
115
+ return (0, _axeHelper.axe)(container, disabledRules);
116
+ case 3:
117
+ results = _context2.sent;
118
+ expect(results).toHaveNoViolations();
119
+ case 5:
120
+ case "end":
121
+ return _context2.stop();
122
+ }
123
+ }, _callee2);
124
+ })));
125
+ });
@@ -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 && {}.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,17 @@ 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";
8
+ import preview from "../../.storybook/preview";
9
+ import { disabledRules } from "../../test/accessibility/rules/specific/footer/disabledRules";
5
10
 
6
11
  const social = [
7
12
  {
8
13
  href: "https://www.linkedin.com/company/dxctechnology",
9
14
  logo: (
10
- <svg version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
15
+ <svg version="1.1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
11
16
  <g>
12
17
  <path
13
18
  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 +30,26 @@ const social = [
25
30
  </g>
26
31
  </svg>
27
32
  ),
33
+ title: "Linkedin",
28
34
  },
29
35
  {
30
- href: "https://twitter.com/dxctechnology",
31
- logo: "http://assets.stickpng.com/images/580b57fcd9996e24bc43c53e.png",
36
+ href: "https://x.com/dxctechnology",
37
+ logo: (
38
+ <svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
39
+ <rect width="256" height="256" rx="40" fill="white" />
40
+ <path
41
+ 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"
42
+ fill="#0F1419"
43
+ />
44
+ </svg>
45
+ ),
46
+ title: "X",
32
47
  },
33
48
  {
34
49
  href: "https://www.facebook.com/DXCTechnology/",
35
50
  logo: (
36
51
  <svg
37
52
  version="1.1"
38
- id="Capa_1"
39
53
  x="0px"
40
54
  y="0px"
41
55
  viewBox="0 0 438.536 438.536"
@@ -55,6 +69,25 @@ const social = [
55
69
  </g>
56
70
  </svg>
57
71
  ),
72
+ title: "Facebook",
73
+ },
74
+ ];
75
+
76
+ const socialMaterialIcons = [
77
+ {
78
+ href: "https://www.linkedin.com/company/dxctechnology",
79
+ logo: "person",
80
+ title: "Linkedin",
81
+ },
82
+ {
83
+ href: "https://x.com/dxctechnology",
84
+ logo: "group",
85
+ title: "X",
86
+ },
87
+ {
88
+ href: "https://www.facebook.com/DXCTechnology/",
89
+ logo: "thumb_up",
90
+ title: "Facebook",
58
91
  },
59
92
  ];
60
93
 
@@ -64,8 +97,8 @@ const bottom = [
64
97
  text: "Linkedin",
65
98
  },
66
99
  {
67
- href: "https://twitter.com/dxctechnology",
68
- text: "Twitter",
100
+ href: "https://x.com/dxctechnology",
101
+ text: "X",
69
102
  },
70
103
  {
71
104
  href: "https://www.facebook.com/DXCTechnology/",
@@ -76,8 +109,32 @@ const bottom = [
76
109
  export default {
77
110
  title: "Footer",
78
111
  component: DxcFooter,
112
+ parameters: {
113
+ a11y: {
114
+ config: {
115
+ rules: [
116
+ ...disabledRules.map((ruleId) => ({ id: ruleId, enabled: false })),
117
+ ...preview?.parameters?.a11y?.config?.rules,
118
+ ],
119
+ },
120
+ },
121
+ },
122
+ };
123
+
124
+ const opinionatedTheme = {
125
+ footer: {
126
+ baseColor: "#000000",
127
+ fontColor: "#ffffff",
128
+ accentColor: "#0095ff",
129
+ logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
130
+ },
79
131
  };
80
132
 
133
+ const info = [
134
+ { label: "Example Label", text: "Example" },
135
+ { label: "Example Label", text: "Example" },
136
+ ];
137
+
81
138
  export const Chromatic = () => (
82
139
  <>
83
140
  <ExampleContainer>
@@ -92,6 +149,34 @@ export const Chromatic = () => (
92
149
  </div>
93
150
  </DxcFooter>
94
151
  </ExampleContainer>
152
+ <ExampleContainer>
153
+ <Title title="With children, copyright, bottom links and social links from material" theme="light" level={4} />
154
+ <DxcFooter copyright="Copyright" socialLinks={socialMaterialIcons} bottomLinks={bottom}>
155
+ <div>
156
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
157
+ </div>
158
+ </DxcFooter>
159
+ </ExampleContainer>
160
+ <ExampleContainer pseudoState="pseudo-focus">
161
+ <Title title="Focused bottom and social links" theme="light" level={4} />
162
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
163
+ <div>
164
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
165
+ </div>
166
+ </DxcFooter>
167
+ </ExampleContainer>
168
+ <ExampleContainer>
169
+ <Title title="Reduced" theme="light" level={4} />
170
+ <DxcFooter mode="reduced">
171
+ <DxcFlex justifyContent="center" alignItems="center" gap={"1rem"}>
172
+ {info.map((tag, index) => (
173
+ <DxcTypography color="white" key={`tag${index}${tag.label}${tag.text}`}>
174
+ {tag.label}: {tag.text}
175
+ </DxcTypography>
176
+ ))}
177
+ </DxcFlex>
178
+ </DxcFooter>
179
+ </ExampleContainer>
95
180
  <Title title="Margins" theme="light" level={2} />
96
181
  <ExampleContainer>
97
182
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -109,22 +194,15 @@ export const Chromatic = () => (
109
194
  <Title title="Xxlarge margin" theme="light" level={4} />
110
195
  <DxcFooter margin="xxlarge"></DxcFooter>
111
196
  </ExampleContainer>
112
- <Title title="Padding" theme="light" level={2} />
197
+ <Title title="Opinionated theme" theme="light" level={2} />
113
198
  <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>
199
+ <HalstackProvider theme={opinionatedTheme}>
200
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
201
+ <div>
202
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
203
+ </div>
204
+ </DxcFooter>
205
+ </HalstackProvider>
128
206
  </ExampleContainer>
129
207
  </>
130
208
  );