@dxc-technology/halstack-react 0.0.0-64f5836 → 0.0.0-6501724

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 (383) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +2 -5
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +120 -175
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +69 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +8 -0
  12. package/accordion-group/AccordionGroup.js +56 -112
  13. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  14. package/accordion-group/AccordionGroup.test.js +126 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +43 -0
  17. package/accordion-group/types.d.ts +79 -0
  18. package/accordion-group/types.js +5 -0
  19. package/alert/Alert.d.ts +4 -0
  20. package/alert/Alert.js +10 -30
  21. package/alert/Alert.stories.tsx +198 -0
  22. package/alert/Alert.test.js +92 -0
  23. package/alert/types.d.ts +49 -0
  24. package/alert/types.js +5 -0
  25. package/badge/Badge.d.ts +4 -0
  26. package/badge/Badge.js +6 -4
  27. package/badge/types.d.ts +5 -0
  28. package/badge/types.js +5 -0
  29. package/bleed/Bleed.d.ts +3 -0
  30. package/bleed/Bleed.js +51 -0
  31. package/bleed/Bleed.stories.tsx +342 -0
  32. package/bleed/types.d.ts +37 -0
  33. package/bleed/types.js +5 -0
  34. package/box/Box.d.ts +4 -0
  35. package/box/Box.js +31 -69
  36. package/box/Box.stories.tsx +147 -0
  37. package/box/Box.test.js +18 -0
  38. package/box/types.d.ts +44 -0
  39. package/box/types.js +5 -0
  40. package/bulleted-list/BulletedList.d.ts +7 -0
  41. package/bulleted-list/BulletedList.js +125 -0
  42. package/bulleted-list/BulletedList.stories.tsx +206 -0
  43. package/bulleted-list/types.d.ts +38 -0
  44. package/bulleted-list/types.js +5 -0
  45. package/button/Button.d.ts +1 -1
  46. package/button/Button.js +59 -88
  47. package/button/Button.stories.tsx +403 -284
  48. package/button/Button.test.js +35 -0
  49. package/button/types.d.ts +12 -16
  50. package/card/Card.d.ts +4 -0
  51. package/card/Card.js +47 -87
  52. package/card/Card.stories.tsx +200 -0
  53. package/card/Card.test.js +50 -0
  54. package/card/ice-cream.jpg +0 -0
  55. package/card/types.d.ts +68 -0
  56. package/card/types.js +5 -0
  57. package/checkbox/Checkbox.d.ts +2 -2
  58. package/checkbox/Checkbox.js +108 -111
  59. package/checkbox/Checkbox.stories.tsx +260 -0
  60. package/checkbox/Checkbox.test.js +155 -0
  61. package/checkbox/types.d.ts +13 -6
  62. package/chip/Chip.d.ts +4 -0
  63. package/chip/Chip.js +37 -118
  64. package/chip/Chip.stories.tsx +214 -0
  65. package/chip/Chip.test.js +54 -0
  66. package/chip/types.d.ts +45 -0
  67. package/chip/types.js +5 -0
  68. package/common/OpenSans.css +68 -80
  69. package/common/coreTokens.d.ts +146 -0
  70. package/common/coreTokens.js +167 -0
  71. package/common/utils.d.ts +1 -0
  72. package/common/utils.js +4 -4
  73. package/common/variables.d.ts +1482 -0
  74. package/common/variables.js +1100 -1308
  75. package/date-input/Calendar.d.ts +4 -0
  76. package/date-input/Calendar.js +258 -0
  77. package/date-input/DateInput.d.ts +4 -0
  78. package/date-input/DateInput.js +173 -300
  79. package/date-input/DateInput.stories.tsx +304 -0
  80. package/date-input/DateInput.test.js +835 -0
  81. package/date-input/DatePicker.d.ts +4 -0
  82. package/date-input/DatePicker.js +146 -0
  83. package/date-input/Icons.d.ts +6 -0
  84. package/date-input/Icons.js +75 -0
  85. package/date-input/YearPicker.d.ts +4 -0
  86. package/date-input/YearPicker.js +126 -0
  87. package/date-input/types.d.ts +158 -0
  88. package/date-input/types.js +5 -0
  89. package/dialog/Dialog.d.ts +4 -0
  90. package/dialog/Dialog.js +68 -121
  91. package/dialog/Dialog.stories.tsx +195 -0
  92. package/dialog/Dialog.test.js +369 -0
  93. package/dialog/types.d.ts +31 -0
  94. package/dialog/types.js +5 -0
  95. package/dropdown/Dropdown.d.ts +4 -0
  96. package/dropdown/Dropdown.js +244 -306
  97. package/dropdown/Dropdown.stories.tsx +438 -0
  98. package/dropdown/Dropdown.test.js +586 -0
  99. package/dropdown/DropdownMenu.d.ts +4 -0
  100. package/dropdown/DropdownMenu.js +74 -0
  101. package/dropdown/DropdownMenuItem.d.ts +4 -0
  102. package/dropdown/DropdownMenuItem.js +79 -0
  103. package/dropdown/types.d.ts +100 -0
  104. package/dropdown/types.js +5 -0
  105. package/file-input/FileInput.d.ts +4 -0
  106. package/file-input/FileInput.js +183 -168
  107. package/file-input/FileInput.stories.tsx +618 -0
  108. package/file-input/FileInput.test.js +457 -0
  109. package/file-input/FileItem.d.ts +4 -0
  110. package/file-input/FileItem.js +50 -81
  111. package/file-input/types.d.ts +129 -0
  112. package/file-input/types.js +5 -0
  113. package/flex/Flex.d.ts +4 -0
  114. package/flex/Flex.js +71 -0
  115. package/flex/Flex.stories.tsx +112 -0
  116. package/flex/types.d.ts +97 -0
  117. package/flex/types.js +5 -0
  118. package/footer/Footer.d.ts +4 -0
  119. package/footer/Footer.js +37 -151
  120. package/footer/Footer.stories.tsx +228 -0
  121. package/footer/Footer.test.js +97 -0
  122. package/footer/Icons.d.ts +2 -0
  123. package/footer/Icons.js +4 -4
  124. package/footer/types.d.ts +66 -0
  125. package/footer/types.js +5 -0
  126. package/grid/Grid.d.ts +7 -0
  127. package/grid/Grid.js +91 -0
  128. package/grid/Grid.stories.tsx +219 -0
  129. package/grid/types.d.ts +115 -0
  130. package/grid/types.js +5 -0
  131. package/header/Header.d.ts +8 -0
  132. package/header/Header.js +127 -150
  133. package/header/Header.stories.tsx +315 -0
  134. package/header/Header.test.js +79 -0
  135. package/header/Icons.d.ts +2 -0
  136. package/header/Icons.js +4 -29
  137. package/header/types.d.ts +48 -0
  138. package/header/types.js +5 -0
  139. package/heading/Heading.d.ts +4 -0
  140. package/heading/Heading.js +8 -25
  141. package/heading/Heading.stories.tsx +54 -0
  142. package/heading/Heading.test.js +186 -0
  143. package/heading/types.d.ts +33 -0
  144. package/heading/types.js +5 -0
  145. package/inset/Inset.d.ts +3 -0
  146. package/inset/Inset.js +51 -0
  147. package/inset/Inset.stories.tsx +230 -0
  148. package/inset/types.d.ts +37 -0
  149. package/inset/types.js +5 -0
  150. package/layout/ApplicationLayout.d.ts +20 -0
  151. package/layout/ApplicationLayout.js +72 -136
  152. package/layout/ApplicationLayout.stories.tsx +162 -0
  153. package/layout/Icons.d.ts +5 -0
  154. package/layout/Icons.js +13 -2
  155. package/layout/SidenavContext.d.ts +5 -0
  156. package/layout/SidenavContext.js +19 -0
  157. package/layout/types.d.ts +41 -0
  158. package/layout/types.js +5 -0
  159. package/link/Link.d.ts +4 -0
  160. package/link/Link.js +62 -109
  161. package/link/Link.stories.tsx +253 -0
  162. package/link/Link.test.js +81 -0
  163. package/link/types.d.ts +54 -0
  164. package/link/types.js +5 -0
  165. package/main.d.ts +13 -12
  166. package/main.js +68 -54
  167. package/nav-tabs/NavTabs.d.ts +8 -0
  168. package/nav-tabs/NavTabs.js +122 -0
  169. package/nav-tabs/NavTabs.stories.tsx +274 -0
  170. package/nav-tabs/NavTabs.test.js +82 -0
  171. package/nav-tabs/Tab.d.ts +4 -0
  172. package/nav-tabs/Tab.js +146 -0
  173. package/nav-tabs/types.d.ts +52 -0
  174. package/nav-tabs/types.js +5 -0
  175. package/number-input/NumberInput.d.ts +4 -0
  176. package/number-input/NumberInput.js +16 -68
  177. package/number-input/NumberInput.stories.tsx +115 -0
  178. package/number-input/NumberInput.test.js +542 -0
  179. package/number-input/NumberInputContext.d.ts +4 -0
  180. package/number-input/NumberInputContext.js +5 -2
  181. package/number-input/numberInputContextTypes.d.ts +19 -0
  182. package/number-input/numberInputContextTypes.js +5 -0
  183. package/number-input/types.d.ts +124 -0
  184. package/number-input/types.js +5 -0
  185. package/package.json +22 -23
  186. package/paginator/Icons.d.ts +5 -0
  187. package/paginator/Icons.js +16 -28
  188. package/paginator/Paginator.js +22 -57
  189. package/paginator/Paginator.stories.tsx +87 -0
  190. package/paginator/Paginator.test.js +318 -0
  191. package/paragraph/Paragraph.d.ts +5 -0
  192. package/paragraph/Paragraph.js +38 -0
  193. package/paragraph/Paragraph.stories.tsx +44 -0
  194. package/password-input/PasswordInput.d.ts +4 -0
  195. package/password-input/PasswordInput.js +24 -57
  196. package/password-input/PasswordInput.stories.tsx +131 -0
  197. package/password-input/PasswordInput.test.js +181 -0
  198. package/password-input/types.d.ts +110 -0
  199. package/password-input/types.js +5 -0
  200. package/progress-bar/ProgressBar.d.ts +4 -0
  201. package/progress-bar/ProgressBar.js +64 -76
  202. package/progress-bar/ProgressBar.stories.jsx +93 -0
  203. package/progress-bar/ProgressBar.test.js +110 -0
  204. package/progress-bar/types.d.ts +37 -0
  205. package/progress-bar/types.js +5 -0
  206. package/quick-nav/QuickNav.d.ts +4 -0
  207. package/quick-nav/QuickNav.js +117 -0
  208. package/quick-nav/QuickNav.stories.tsx +356 -0
  209. package/quick-nav/types.d.ts +21 -0
  210. package/quick-nav/types.js +5 -0
  211. package/radio-group/Radio.d.ts +4 -0
  212. package/radio-group/Radio.js +156 -0
  213. package/radio-group/RadioGroup.d.ts +4 -0
  214. package/radio-group/RadioGroup.js +281 -0
  215. package/radio-group/RadioGroup.stories.tsx +214 -0
  216. package/radio-group/RadioGroup.test.js +722 -0
  217. package/radio-group/types.d.ts +114 -0
  218. package/radio-group/types.js +5 -0
  219. package/resultsetTable/Icons.d.ts +7 -0
  220. package/resultsetTable/Icons.js +51 -0
  221. package/resultsetTable/ResultsetTable.d.ts +4 -0
  222. package/resultsetTable/ResultsetTable.js +54 -133
  223. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  224. package/resultsetTable/ResultsetTable.test.js +325 -0
  225. package/resultsetTable/types.d.ts +67 -0
  226. package/resultsetTable/types.js +5 -0
  227. package/select/Icons.d.ts +10 -0
  228. package/select/Icons.js +93 -0
  229. package/select/Listbox.d.ts +4 -0
  230. package/select/Listbox.js +169 -0
  231. package/select/Option.d.ts +4 -0
  232. package/select/Option.js +97 -0
  233. package/select/Select.d.ts +4 -0
  234. package/select/Select.js +202 -401
  235. package/select/Select.stories.tsx +971 -0
  236. package/select/Select.test.js +2228 -0
  237. package/select/types.d.ts +210 -0
  238. package/select/types.js +5 -0
  239. package/sidenav/Icons.d.ts +7 -0
  240. package/sidenav/Icons.js +51 -0
  241. package/sidenav/Sidenav.d.ts +10 -0
  242. package/sidenav/Sidenav.js +147 -54
  243. package/sidenav/Sidenav.stories.tsx +282 -0
  244. package/sidenav/Sidenav.test.js +44 -0
  245. package/sidenav/types.d.ts +76 -0
  246. package/sidenav/types.js +5 -0
  247. package/slider/Slider.d.ts +4 -0
  248. package/slider/Slider.js +160 -158
  249. package/slider/Slider.stories.tsx +240 -0
  250. package/slider/Slider.test.js +250 -0
  251. package/slider/types.d.ts +86 -0
  252. package/slider/types.js +5 -0
  253. package/spinner/Spinner.d.ts +4 -0
  254. package/spinner/Spinner.js +26 -49
  255. package/spinner/Spinner.stories.jsx +129 -0
  256. package/spinner/Spinner.test.js +64 -0
  257. package/spinner/types.d.ts +32 -0
  258. package/spinner/types.js +5 -0
  259. package/switch/Switch.d.ts +2 -2
  260. package/switch/Switch.js +153 -70
  261. package/switch/Switch.stories.tsx +171 -0
  262. package/switch/Switch.test.js +225 -0
  263. package/switch/types.d.ts +10 -2
  264. package/table/Table.d.ts +4 -0
  265. package/table/Table.js +6 -6
  266. package/table/Table.stories.jsx +356 -0
  267. package/table/Table.test.js +26 -0
  268. package/table/types.d.ts +21 -0
  269. package/table/types.js +5 -0
  270. package/tabs/Tab.d.ts +4 -0
  271. package/tabs/Tab.js +132 -0
  272. package/tabs/Tabs.d.ts +4 -0
  273. package/tabs/Tabs.js +361 -159
  274. package/tabs/Tabs.stories.tsx +226 -0
  275. package/tabs/Tabs.test.js +350 -0
  276. package/tabs/types.d.ts +92 -0
  277. package/tabs/types.js +5 -0
  278. package/tag/Tag.d.ts +4 -0
  279. package/tag/Tag.js +38 -65
  280. package/tag/Tag.stories.tsx +155 -0
  281. package/tag/Tag.test.js +60 -0
  282. package/tag/types.d.ts +69 -0
  283. package/tag/types.js +5 -0
  284. package/text-input/Icons.d.ts +8 -0
  285. package/text-input/Icons.js +60 -0
  286. package/text-input/Suggestion.d.ts +4 -0
  287. package/text-input/Suggestion.js +84 -0
  288. package/text-input/Suggestions.d.ts +4 -0
  289. package/text-input/Suggestions.js +134 -0
  290. package/text-input/TextInput.d.ts +4 -0
  291. package/text-input/TextInput.js +236 -388
  292. package/text-input/TextInput.stories.tsx +569 -0
  293. package/text-input/TextInput.test.js +1723 -0
  294. package/text-input/types.d.ts +197 -0
  295. package/text-input/types.js +5 -0
  296. package/textarea/Textarea.d.ts +4 -0
  297. package/textarea/Textarea.js +41 -82
  298. package/textarea/Textarea.stories.jsx +216 -0
  299. package/textarea/Textarea.test.js +435 -0
  300. package/textarea/types.d.ts +137 -0
  301. package/textarea/types.js +5 -0
  302. package/toggle-group/ToggleGroup.d.ts +4 -0
  303. package/toggle-group/ToggleGroup.js +24 -49
  304. package/toggle-group/ToggleGroup.stories.tsx +215 -0
  305. package/toggle-group/ToggleGroup.test.js +156 -0
  306. package/toggle-group/types.d.ts +105 -0
  307. package/toggle-group/types.js +5 -0
  308. package/typography/Typography.d.ts +4 -0
  309. package/typography/Typography.js +32 -0
  310. package/typography/Typography.stories.tsx +198 -0
  311. package/typography/types.d.ts +18 -0
  312. package/typography/types.js +5 -0
  313. package/useTheme.d.ts +1235 -0
  314. package/useTheme.js +3 -3
  315. package/useTranslatedLabels.d.ts +85 -0
  316. package/useTranslatedLabels.js +20 -0
  317. package/utils/BaseTypography.d.ts +21 -0
  318. package/utils/BaseTypography.js +108 -0
  319. package/utils/FocusLock.d.ts +13 -0
  320. package/utils/FocusLock.js +138 -0
  321. package/wizard/Wizard.d.ts +4 -0
  322. package/wizard/Wizard.js +119 -105
  323. package/wizard/Wizard.stories.tsx +253 -0
  324. package/wizard/Wizard.test.js +141 -0
  325. package/wizard/types.d.ts +64 -0
  326. package/wizard/types.js +5 -0
  327. package/ThemeContext.js +0 -246
  328. package/V3Select/V3Select.js +0 -455
  329. package/V3Select/index.d.ts +0 -27
  330. package/V3Textarea/V3Textarea.js +0 -260
  331. package/V3Textarea/index.d.ts +0 -27
  332. package/accordion/index.d.ts +0 -28
  333. package/accordion-group/index.d.ts +0 -16
  334. package/alert/index.d.ts +0 -51
  335. package/box/index.d.ts +0 -25
  336. package/card/index.d.ts +0 -22
  337. package/chip/index.d.ts +0 -22
  338. package/common/RequiredComponent.js +0 -32
  339. package/date/Date.js +0 -373
  340. package/date/index.d.ts +0 -27
  341. package/date-input/index.d.ts +0 -95
  342. package/dialog/index.d.ts +0 -18
  343. package/dropdown/index.d.ts +0 -26
  344. package/file-input/index.d.ts +0 -81
  345. package/footer/index.d.ts +0 -25
  346. package/header/index.d.ts +0 -25
  347. package/heading/index.d.ts +0 -17
  348. package/input-text/Icons.js +0 -22
  349. package/input-text/InputText.js +0 -611
  350. package/input-text/index.d.ts +0 -36
  351. package/link/index.d.ts +0 -23
  352. package/number-input/index.d.ts +0 -113
  353. package/password-input/index.d.ts +0 -94
  354. package/progress-bar/index.d.ts +0 -18
  355. package/radio/Radio.js +0 -195
  356. package/radio/index.d.ts +0 -23
  357. package/resultsetTable/index.d.ts +0 -19
  358. package/select/index.d.ts +0 -131
  359. package/sidenav/index.d.ts +0 -13
  360. package/slider/index.d.ts +0 -29
  361. package/spinner/index.d.ts +0 -17
  362. package/table/index.d.ts +0 -13
  363. package/tabs/index.d.ts +0 -19
  364. package/tag/index.d.ts +0 -24
  365. package/text-input/index.d.ts +0 -135
  366. package/textarea/index.d.ts +0 -117
  367. package/toggle/Toggle.js +0 -186
  368. package/toggle/index.d.ts +0 -21
  369. package/toggle-group/index.d.ts +0 -21
  370. package/upload/Upload.js +0 -201
  371. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  372. package/upload/buttons-upload/Icons.js +0 -40
  373. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  374. package/upload/dragAndDropArea/Icons.js +0 -39
  375. package/upload/file-upload/FileToUpload.js +0 -115
  376. package/upload/file-upload/Icons.js +0 -66
  377. package/upload/files-upload/FilesToUpload.js +0 -109
  378. package/upload/index.d.ts +0 -15
  379. package/upload/transaction/Icons.js +0 -160
  380. package/upload/transaction/Transaction.js +0 -104
  381. package/upload/transactions/Transactions.js +0 -94
  382. package/wizard/Icons.js +0 -65
  383. package/wizard/index.d.ts +0 -18
package/footer/Footer.js CHANGED
@@ -9,156 +9,87 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
13
 
18
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
19
15
 
20
16
  var _react = _interopRequireWildcard(require("react"));
21
17
 
22
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
19
 
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
20
+ var _variables = require("../common/variables");
25
21
 
26
- var _variables = require("../common/variables.js");
22
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
27
23
 
28
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
24
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
29
25
 
30
- var _BackgroundColorContext = require("../BackgroundColorContext.js");
26
+ var _BackgroundColorContext = require("../BackgroundColorContext");
31
27
 
32
- var _Icons = _interopRequireDefault(require("./Icons"));
28
+ var _Icons = require("./Icons");
33
29
 
34
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
30
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
35
31
 
36
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); }
37
33
 
38
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; }
39
35
 
40
36
  var DxcFooter = function DxcFooter(_ref) {
41
- var _ref$socialLinks = _ref.socialLinks,
42
- socialLinks = _ref$socialLinks === void 0 ? [] : _ref$socialLinks,
43
- _ref$bottomLinks = _ref.bottomLinks,
44
- bottomLinks = _ref$bottomLinks === void 0 ? [] : _ref$bottomLinks,
45
- _ref$copyright = _ref.copyright,
46
- copyright = _ref$copyright === void 0 ? "" : _ref$copyright,
37
+ var socialLinks = _ref.socialLinks,
38
+ bottomLinks = _ref.bottomLinks,
39
+ copyright = _ref.copyright,
47
40
  children = _ref.children,
48
41
  padding = _ref.padding,
49
42
  margin = _ref.margin,
50
43
  _ref$tabIndex = _ref.tabIndex,
51
44
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
52
- var ref = (0, _react.useRef)(null);
53
-
54
- var _useState = (0, _react.useState)(),
55
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
56
- refSize = _useState2[0],
57
- setRefSize = _useState2[1];
58
-
59
- var _useState3 = (0, _react.useState)(false),
60
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
61
- isResponsiveTablet = _useState4[0],
62
- setIsResponsiveTablet = _useState4[1];
63
-
64
- var _useState5 = (0, _react.useState)(false),
65
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
66
- isResponsivePhone = _useState6[0],
67
- setIsResponsivePhone = _useState6[1];
68
-
69
45
  var colorsTheme = (0, _useTheme["default"])();
46
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
70
47
  var footerLogo = (0, _react.useMemo)(function () {
71
48
  if (!colorsTheme.footer.logo) {
72
- return _Icons["default"];
49
+ return _Icons.dxcLogo;
73
50
  }
74
51
 
75
52
  if (typeof colorsTheme.footer.logo === "string") {
76
53
  return /*#__PURE__*/_react["default"].createElement(LogoImg, {
77
- alt: "Logo",
54
+ alt: translatedLabels.formFields.logoAlternativeText,
78
55
  src: colorsTheme.footer.logo
79
56
  });
80
57
  }
81
58
 
82
59
  return colorsTheme.footer.logo;
83
60
  }, [colorsTheme.footer.logo]);
84
-
85
- var handleResize = function handleResize(refWidth) {
86
- if (ref.current) {
87
- setRefSize(refWidth);
88
-
89
- if (refWidth <= _variables.responsiveSizes.tablet && refWidth > _variables.responsiveSizes.mobileLarge) {
90
- setIsResponsiveTablet(true);
91
- setIsResponsivePhone(false);
92
- } else if (refWidth <= _variables.responsiveSizes.tablet && refWidth <= _variables.responsiveSizes.mobileLarge) {
93
- setIsResponsivePhone(true);
94
- setIsResponsiveTablet(false);
95
- } else {
96
- setIsResponsiveTablet(false);
97
- setIsResponsivePhone(false);
98
- }
99
- }
100
- };
101
-
102
- var handleEventListener = function handleEventListener() {
103
- handleResize(ref.current.offsetWidth);
104
- };
105
-
106
- (0, _react.useEffect)(function () {
107
- window.addEventListener("resize", handleEventListener);
108
- handleResize(ref.current.offsetWidth);
109
- return function () {
110
- window.removeEventListener("resize", handleEventListener);
111
- };
112
- }, []);
113
- var socialLink = socialLinks.map(function (link, index) {
61
+ var socialLink = socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
114
62
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
115
63
  tabIndex: tabIndex,
116
64
  key: "social".concat(index).concat(link.href),
117
65
  index: index,
118
66
  href: link && link.href ? link.href : ""
119
- }, link.logo ? /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, (0, _typeof2["default"])(link.logo) === "object" ? link.logo : /*#__PURE__*/_react["default"].createElement(link.logo)) : link && link.logoSrc && /*#__PURE__*/_react["default"].createElement(SocialIcon, {
120
- src: link.logoSrc
121
- }));
67
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(SocialIconImg, {
68
+ src: link.logo
69
+ }) : link.logo));
122
70
  });
123
- var bottomLink = bottomLinks.map(function (link, index) {
71
+ var bottomLink = bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
124
72
  return /*#__PURE__*/_react["default"].createElement("span", {
125
73
  key: "bottom".concat(index).concat(link.text)
126
74
  }, /*#__PURE__*/_react["default"].createElement(BottomLink, {
127
75
  tabIndex: tabIndex,
128
76
  href: link && link.href ? link.href : ""
129
- }, link && link.text ? link.text : ""), /*#__PURE__*/_react["default"].createElement(Point, {
130
- index: index
131
- }, "\xB7"));
77
+ }, link && link.text ? link.text : ""), /*#__PURE__*/_react["default"].createElement(Point, null, "\xB7"));
132
78
  });
133
79
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
134
80
  theme: colorsTheme.footer
135
81
  }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
136
- margin: margin,
137
- refSize: refSize,
138
- ref: ref
139
- }, /*#__PURE__*/_react["default"].createElement(FooterHeader, null, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement("div", null, socialLink)), isResponsivePhone && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(FooterFooter, {
140
- className: "footerFooter",
141
- refSize: refSize
142
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
143
- refSize: refSize
144
- }, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
145
- refSize: refSize
146
- }, copyright))), (!isResponsiveTablet && !isResponsivePhone || isResponsiveTablet) && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ChildComponents, {
82
+ margin: margin
83
+ }, /*#__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, {
147
84
  padding: padding
148
85
  }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
149
86
  color: colorsTheme.footer.backgroundColor
150
87
  }, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
151
88
  className: "footerFooter"
152
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
153
- refSize: refSize
154
- }, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
155
- refSize: refSize
156
- }, copyright)))));
89
+ }, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear()))))));
157
90
  };
158
91
 
159
- var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\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"])), function (props) {
160
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "20px 20px 20px 20px" : "24px 36px 24px 36px";
161
- }, function (props) {
92
+ 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 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) {
162
93
  return props.theme.backgroundColor;
163
94
  }, function (props) {
164
95
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -166,27 +97,17 @@ var FooterContainer = _styledComponents["default"].footer(_templateObject || (_t
166
97
  return props.theme.height;
167
98
  });
168
99
 
169
- var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n"])));
100
+ 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"])));
170
101
 
171
- var FooterFooter = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n flex-direction: ", ";\n align-items: ", ";\n border-top: ", ";\n"])), function (props) {
172
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "column" : "row";
173
- }, function (props) {
174
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "";
175
- }, function (props) {
102
+ 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 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) {
176
103
  return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
177
104
  });
178
105
 
179
- var BottomLinks = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n display: inline-flex;\n flex-wrap: wrap;\n max-width: ", ";\n width: ", ";\n & > span:last-child span {\n display: none;\n }\n margin: ", ";\n"])), function (props) {
106
+ 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 max-width: 100%;\n width: 100%;\n }\n\n & > span:last-child span {\n display: none;\n }\n align-self: center;\n"])), function (props) {
180
107
  return props.theme.bottomLinksDividerSpacing;
181
- }, function (props) {
182
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "60%";
183
- }, function (props) {
184
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
185
- }, function (props) {
186
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "40px 0 40px 0" : "";
187
- });
108
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
188
109
 
189
- var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 15px;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (props) {
110
+ 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) {
190
111
  return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
191
112
  }, function (props) {
192
113
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
@@ -198,7 +119,7 @@ var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_tem
198
119
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
199
120
  });
200
121
 
201
- 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 max-width: ", ";\n width: ", ";\n text-align: ", ";\n padding-top: ", ";\n"])), function (props) {
122
+ 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 max-width: 100%;\n width: 100%;\n text-align: left;\n }\n\n padding-top: ", ";\n"])), function (props) {
202
123
  return props.theme.copyrightFontFamily;
203
124
  }, function (props) {
204
125
  return props.theme.copyrightFontSize;
@@ -208,13 +129,7 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
208
129
  return props.theme.copyrightFontWeight;
209
130
  }, function (props) {
210
131
  return props.theme.copyrightFontColor;
211
- }, function (props) {
212
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "40%";
213
- }, function (props) {
214
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
215
- }, function (props) {
216
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "right";
217
- }, function (props) {
132
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
218
133
  return props.theme.bottomLinksDividerSpacing;
219
134
  });
220
135
 
@@ -230,19 +145,15 @@ var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObj
230
145
  return props.theme.logoWidth;
231
146
  });
232
147
 
233
- var SocialAnchor = _styledComponents["default"].a(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
148
+ var SocialLinkContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-self: center;\n"])));
149
+
150
+ var SocialAnchor = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
234
151
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
235
152
  });
236
153
 
237
- var SocialIcon = _styledComponents["default"].img(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n fill: ", ";\n }\n"])), function (props) {
238
- return props.theme.socialLinksSize;
239
- }, function (props) {
240
- return props.theme.socialLinksSize;
241
- }, function (props) {
242
- return props.theme.socialLinksColor;
243
- });
154
+ var SocialIconImg = _styledComponents["default"].img(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])([""])));
244
155
 
245
- var SocialIconContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n color: ", ";\n }\n\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
156
+ 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) {
246
157
  return props.theme.socialLinksSize;
247
158
  }, function (props) {
248
159
  return props.theme.socialLinksSize;
@@ -250,11 +161,11 @@ var SocialIconContainer = _styledComponents["default"].div(_templateObject11 ||
250
161
  return props.theme.socialLinksColor;
251
162
  });
252
163
 
253
- var Point = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
164
+ var Point = _styledComponents["default"].span(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
254
165
  return props.theme.bottomLinksFontColor;
255
166
  });
256
167
 
257
- var BottomLink = _styledComponents["default"].a(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
168
+ 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) {
258
169
  return props.theme.bottomLinksTextDecoration;
259
170
  }, function (props) {
260
171
  return props.theme.bottomLinksFontColor;
@@ -268,30 +179,5 @@ var BottomLink = _styledComponents["default"].a(_templateObject13 || (_templateO
268
179
  return props.theme.bottomLinksFontWeight;
269
180
  });
270
181
 
271
- DxcFooter.propTypes = {
272
- socialLinks: _propTypes["default"].arrayOf(_propTypes["default"].shape({
273
- logo: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
274
- logoSrc: _propTypes["default"].string.isRequired,
275
- href: _propTypes["default"].string
276
- })),
277
- bottomLinks: _propTypes["default"].arrayOf(_propTypes["default"].shape({
278
- text: _propTypes["default"].string.isRequired,
279
- href: _propTypes["default"].string
280
- })),
281
- copyright: _propTypes["default"].string,
282
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
283
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
284
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
285
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
286
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
287
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
288
- padding: _propTypes["default"].oneOfType([_propTypes["default"].shape({
289
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
290
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
291
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
292
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
293
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
294
- tabIndex: _propTypes["default"].number
295
- };
296
182
  var _default = DxcFooter;
297
183
  exports["default"] = _default;
@@ -0,0 +1,228 @@
1
+ import React from "react";
2
+ import DxcFooter from "./Footer";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
6
+
7
+ const social = [
8
+ {
9
+ href: "https://www.linkedin.com/company/dxctechnology",
10
+ logo: (
11
+ <svg version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
12
+ <g>
13
+ <path
14
+ 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
15
+ 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
16
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
17
+ C438.532,59.576,430.49,40.204,414.41,24.123z M133.618,367.157H67.666V169.016h65.952V367.157z M127.626,132.332
18
+ 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
19
+ 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
20
+ 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
21
+ 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
22
+ 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
23
+ 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
24
+ H370.873z"
25
+ />
26
+ </g>
27
+ </svg>
28
+ ),
29
+ },
30
+ {
31
+ href: "https://twitter.com/dxctechnology",
32
+ logo: (
33
+ <svg viewBox="0 0 248 204" fill="currentColor">
34
+ <path
35
+ fill="#1d9bf0"
36
+ d="M221.95 51.29c.15 2.17.15 4.34.15 6.53 0 66.73-50.8 143.69-143.69 143.69v-.04c-27.44.04-54.31-7.82-77.41-22.64 3.99.48 8 .72 12.02.73 22.74.02 44.83-7.61 62.72-21.66-21.61-.41-40.56-14.5-47.18-35.07 7.57 1.46 15.37 1.16 22.8-.87-23.56-4.76-40.51-25.46-40.51-49.5v-.64c7.02 3.91 14.88 6.08 22.92 6.32C11.58 63.31 4.74 33.79 18.14 10.71c25.64 31.55 63.47 50.73 104.08 52.76-4.07-17.54 1.49-35.92 14.61-48.25 20.34-19.12 52.33-18.14 71.45 2.19 11.31-2.23 22.15-6.38 32.07-12.26-3.77 11.69-11.66 21.62-22.2 27.93 10.01-1.18 19.79-3.86 29-7.95-6.78 10.16-15.32 19.01-25.2 26.16z"
37
+ />
38
+ </svg>
39
+ ),
40
+ },
41
+ {
42
+ href: "https://www.facebook.com/DXCTechnology/",
43
+ logo: (
44
+ <svg
45
+ version="1.1"
46
+ id="Capa_1"
47
+ x="0px"
48
+ y="0px"
49
+ viewBox="0 0 438.536 438.536"
50
+ fill="currentColor"
51
+ width="1000px"
52
+ height="500px"
53
+ >
54
+ <g>
55
+ <path
56
+ 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
57
+ 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
58
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
59
+ 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
60
+ 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
61
+ 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"
62
+ />
63
+ </g>
64
+ </svg>
65
+ ),
66
+ },
67
+ ];
68
+
69
+ const bottom = [
70
+ {
71
+ href: "https://www.linkedin.com/company/dxctechnology",
72
+ text: "Linkedin",
73
+ },
74
+ {
75
+ href: "https://twitter.com/dxctechnology",
76
+ text: "Twitter",
77
+ },
78
+ {
79
+ href: "https://www.facebook.com/DXCTechnology/",
80
+ text: "Facebook",
81
+ },
82
+ ];
83
+
84
+ export default {
85
+ title: "Footer",
86
+ component: DxcFooter,
87
+ };
88
+
89
+ const opinionatedTheme = {
90
+ footer: {
91
+ baseColor: "#000000",
92
+ fontColor: "#ffffff",
93
+ accentColor: "#0095ff",
94
+ logo: (
95
+ <svg id="g10" xmlns="http://www.w3.org/2000/svg" width="280.781" height="32" viewBox="0 0 280.781 32">
96
+ <g id="g12">
97
+ <path
98
+ id="path14"
99
+ d="M171.5-54.124v12.539h-3.6V-54.124h-4.973v-3.191h13.54v3.191H171.5"
100
+ transform="translate(-68.528 65.45)"
101
+ fill="#fff"
102
+ />
103
+ <path
104
+ id="path16"
105
+ d="M189.96-41.585V-57.315h12.326v3.079h-8.753v3.191h7.7v3.078h-7.7v3.3h8.87v3.078H189.96"
106
+ transform="translate(-77.56 65.45)"
107
+ fill="#fff"
108
+ />
109
+ <path
110
+ id="path18"
111
+ d="M223.558-41.438a8.1,8.1,0,0,1-8.382-8.1v-.045a8.161,8.161,0,0,1,8.522-8.146,8.6,8.6,0,0,1,6.444,2.431l-2.289,2.543a6.133,6.133,0,0,0-4.178-1.778,4.743,4.743,0,0,0-4.738,4.905v.045a4.752,4.752,0,0,0,4.738,4.95,6,6,0,0,0,4.295-1.845l2.288,2.228a8.491,8.491,0,0,1-6.7,2.813"
112
+ transform="translate(-86.019 65.583)"
113
+ fill="#fff"
114
+ />
115
+ <path
116
+ id="path20"
117
+ d="M254.988-41.585V-47.9h-6.63v6.315h-3.6V-57.315h3.6v6.225h6.63v-6.225h3.594v15.731h-3.594"
118
+ transform="translate(-95.903 65.45)"
119
+ fill="#fff"
120
+ />
121
+ <path
122
+ id="path22"
123
+ d="M285.991-41.585l-7.914-10v10h-3.549V-57.315h3.316l7.657,9.685v-9.685h3.549v15.731h-3.058"
124
+ transform="translate(-105.869 65.45)"
125
+ fill="#fff"
126
+ />
127
+ <path
128
+ id="path24"
129
+ d="M317.2-49.583a4.869,4.869,0,0,0-4.949-4.95,4.793,4.793,0,0,0-4.9,4.905v.045a4.869,4.869,0,0,0,4.949,4.95,4.793,4.793,0,0,0,4.9-4.905Zm-4.949,8.145c-5.043,0-8.661-3.623-8.661-8.1v-.045c0-4.478,3.666-8.146,8.708-8.146s8.66,3.623,8.66,8.1v.045c0,4.477-3.664,8.145-8.708,8.145"
130
+ transform="translate(-115.631 65.583)"
131
+ fill="#fff"
132
+ />
133
+ <path
134
+ id="path26"
135
+ d="M336.786-41.585V-57.315h3.6v12.584h8.148v3.146H336.786"
136
+ transform="translate(-126.654 65.45)"
137
+ fill="#fff"
138
+ />
139
+ <path
140
+ id="path28"
141
+ d="M372.78-49.583a4.87,4.87,0,0,0-4.949-4.95,4.794,4.794,0,0,0-4.9,4.905v.045a4.869,4.869,0,0,0,4.949,4.95,4.794,4.794,0,0,0,4.9-4.905Zm-4.949,8.145c-5.043,0-8.662-3.623-8.662-8.1v-.045c0-4.478,3.666-8.146,8.708-8.146s8.661,3.623,8.661,8.1v.045c0,4.477-3.666,8.145-8.708,8.145"
142
+ transform="translate(-135.016 65.583)"
143
+ fill="#fff"
144
+ />
145
+ <path
146
+ id="path30"
147
+ d="M399.735-41.438c-5.09,0-8.592-3.443-8.592-8.1v-.045a8.243,8.243,0,0,1,8.568-8.146,9.18,9.18,0,0,1,6.42,2.16l-2.265,2.634a6.141,6.141,0,0,0-4.272-1.6,4.807,4.807,0,0,0-4.692,4.905v.045a4.8,4.8,0,0,0,4.949,4.995,5.89,5.89,0,0,0,3.384-.945v-2.25h-3.618v-2.992h7.1v6.841a10.837,10.837,0,0,1-6.98,2.5"
148
+ transform="translate(-145.284 65.583)"
149
+ fill="#fff"
150
+ />
151
+ <path
152
+ id="path32"
153
+ d="M428.664-47.855v6.27h-3.6v-6.2l-6.28-9.528h4.2L426.89-51l3.968-6.315h4.085l-6.28,9.46"
154
+ transform="translate(-154.162 65.45)"
155
+ fill="#fff"
156
+ />
157
+ <path
158
+ id="path34"
159
+ d="M84.218-55.737a10.063,10.063,0,0,1,2.589-4.4,9.792,9.792,0,0,1,6.985-2.77h11.328V-69.3H93.792a17.041,17.041,0,0,0-11.8,4.759,16.344,16.344,0,0,0-3.547,5.115,13.247,13.247,0,0,0-1.122,3.688Zm0,4.877a10.065,10.065,0,0,0,2.589,4.4,9.793,9.793,0,0,0,6.985,2.77h11.328V-37.3H93.792a17.042,17.042,0,0,1-11.8-4.759,16.339,16.339,0,0,1-3.547-5.114,13.251,13.251,0,0,1-1.122-3.688ZM63.1-47.98,54.45-37.3H45.873l12.957-16-12.957-16H54.45L63.1-58.619l8.65-10.68h8.578l-12.957,16,12.957,16H71.749ZM48.875-55.737a13.212,13.212,0,0,0-1.122-3.688,16.359,16.359,0,0,0-3.546-5.115,17.043,17.043,0,0,0-11.8-4.759H21.08v6.393H32.408a9.79,9.79,0,0,1,6.985,2.77,10.072,10.072,0,0,1,2.59,4.4Zm0,4.877a13.215,13.215,0,0,1-1.122,3.688,16.353,16.353,0,0,1-3.546,5.114,17.044,17.044,0,0,1-11.8,4.759H21.08v-6.393H32.408a9.791,9.791,0,0,0,6.985-2.77,10.074,10.074,0,0,0,2.59-4.4h6.892"
160
+ transform="translate(-21.08 69.298)"
161
+ fill="#fff"
162
+ />
163
+ </g>
164
+ </svg>
165
+ ),
166
+ },
167
+ };
168
+
169
+ export const Chromatic = () => (
170
+ <>
171
+ <ExampleContainer>
172
+ <Title title="Default" theme="light" level={4} />
173
+ <DxcFooter />
174
+ </ExampleContainer>
175
+ <ExampleContainer>
176
+ <Title title="With children, copyright, bottom links and social links" theme="light" level={4} />
177
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
178
+ <div>
179
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
180
+ </div>
181
+ </DxcFooter>
182
+ </ExampleContainer>
183
+ <Title title="Margins" theme="light" level={2} />
184
+ <ExampleContainer>
185
+ <Title title="Xxsmall margin" theme="light" level={4} />
186
+ <DxcFooter margin="xxsmall"></DxcFooter>
187
+ <Title title="Xsmall margin" theme="light" level={4} />
188
+ <DxcFooter margin="xsmall"></DxcFooter>
189
+ <Title title="Small margin" theme="light" level={4} />
190
+ <DxcFooter margin="small"></DxcFooter>
191
+ <Title title="Medium margin" theme="light" level={4} />
192
+ <DxcFooter margin="medium"></DxcFooter>
193
+ <Title title="Large margin" theme="light" level={4} />
194
+ <DxcFooter margin="large"></DxcFooter>
195
+ <Title title="Xlarge margin" theme="light" level={4} />
196
+ <DxcFooter margin="xlarge"></DxcFooter>
197
+ <Title title="Xxlarge margin" theme="light" level={4} />
198
+ <DxcFooter margin="xxlarge"></DxcFooter>
199
+ </ExampleContainer>
200
+ <Title title="Padding" theme="light" level={2} />
201
+ <ExampleContainer>
202
+ <Title title="Xxsmall padding" theme="light" level={4} />
203
+ <DxcFooter padding="xxsmall"></DxcFooter>
204
+ <Title title="Xsmall padding" theme="light" level={4} />
205
+ <DxcFooter padding="xsmall"></DxcFooter>
206
+ <Title title="Small padding" theme="light" level={4} />
207
+ <DxcFooter padding="small"></DxcFooter>
208
+ <Title title="Medium padding" theme="light" level={4} />
209
+ <DxcFooter padding="medium"></DxcFooter>
210
+ <Title title="Large padding" theme="light" level={4} />
211
+ <DxcFooter padding="large"></DxcFooter>
212
+ <Title title="Xlarge padding" theme="light" level={4} />
213
+ <DxcFooter padding="xlarge"></DxcFooter>
214
+ <Title title="Xxlarge padding" theme="light" level={4} />
215
+ <DxcFooter padding="xxlarge"></DxcFooter>
216
+ </ExampleContainer>
217
+ <Title title="Opinionated theme" theme="light" level={2} />
218
+ <ExampleContainer>
219
+ <HalstackProvider theme={opinionatedTheme}>
220
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
221
+ <div>
222
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
223
+ </div>
224
+ </DxcFooter>
225
+ </HalstackProvider>
226
+ </ExampleContainer>
227
+ </>
228
+ );
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Footer = _interopRequireDefault(require("./Footer.tsx"));
10
+
11
+ var social = [{
12
+ href: "https://www.test.com/social",
13
+ logo: "https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png"
14
+ }];
15
+ var bottom = [{
16
+ href: "https://www.test.com/bottom",
17
+ text: "bottom-link-text"
18
+ }];
19
+ describe("Footer component tests", function () {
20
+ test("Footer renders with default logo", function () {
21
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
22
+ getByTitle = _render.getByTitle;
23
+
24
+ expect(getByTitle("DXC Logo")).toBeTruthy();
25
+ });
26
+ test("Footer renders with social links", function () {
27
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
28
+ socialLinks: social
29
+ })),
30
+ getByRole = _render2.getByRole;
31
+
32
+ var socialIcon = getByRole("link");
33
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
34
+ });
35
+ test("Footer renders with bottom links", function () {
36
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
37
+ bottomLinks: bottom
38
+ })),
39
+ getByText = _render3.getByText;
40
+
41
+ var link = getByText("bottom-link-text");
42
+ expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
43
+ });
44
+ test("Footer renders with copyright text", function () {
45
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
46
+ copyright: "test-copyright"
47
+ })),
48
+ getByText = _render4.getByText;
49
+
50
+ expect(getByText("test-copyright")).toBeTruthy();
51
+ });
52
+ test("Footer renders with correct children", function () {
53
+ // We need to force the offsetWidth value
54
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
55
+ configurable: true,
56
+ value: 1024
57
+ });
58
+
59
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
60
+ getByText = _render5.getByText;
61
+
62
+ expect(getByText("footer-child-text")).toBeTruthy();
63
+ });
64
+ test("Footer renders with children in mobile", function () {
65
+ // 425 is mobile width
66
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
67
+ configurable: true,
68
+ value: 425
69
+ });
70
+
71
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
72
+ queryByText = _render6.queryByText;
73
+
74
+ expect(queryByText("footer-child-text")).toBeTruthy();
75
+ });
76
+ test("Footer is fully rendered", function () {
77
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
78
+ configurable: true,
79
+ value: 1024
80
+ });
81
+
82
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
83
+ socialLinks: social,
84
+ bottomLinks: bottom,
85
+ copyright: "test-copyright"
86
+ }, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
87
+ getAllByRole = _render7.getAllByRole,
88
+ getByText = _render7.getByText;
89
+
90
+ var socialIcon = getAllByRole("link")[0];
91
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
92
+ var bottomLink = getByText("bottom-link-text");
93
+ expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
94
+ expect(getByText("test-copyright")).toBeTruthy();
95
+ expect(getByText("footer-child-text")).toBeTruthy();
96
+ });
97
+ });
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const dxcLogo: JSX.Element;