@dxc-technology/halstack-react 0.0.0-b92e300 → 0.0.0-b94d9fc

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 (393) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1249 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +118 -194
  8. package/accordion/Accordion.stories.tsx +283 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +39 -108
  13. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +18 -23
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +24 -60
  24. package/alert/Alert.stories.tsx +198 -0
  25. package/alert/Alert.test.js +75 -0
  26. package/alert/types.d.ts +6 -6
  27. package/badge/Badge.d.ts +4 -0
  28. package/badge/Badge.js +141 -41
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +54 -0
  32. package/badge/types.js +5 -0
  33. package/bleed/Bleed.d.ts +3 -0
  34. package/bleed/Bleed.js +43 -0
  35. package/bleed/Bleed.stories.tsx +342 -0
  36. package/bleed/types.d.ts +37 -0
  37. package/bleed/types.js +5 -0
  38. package/box/Box.d.ts +4 -0
  39. package/box/Box.js +32 -109
  40. package/box/Box.stories.tsx +119 -0
  41. package/box/Box.test.js +13 -0
  42. package/box/types.d.ts +32 -0
  43. package/box/types.js +5 -0
  44. package/bulleted-list/BulletedList.d.ts +7 -0
  45. package/bulleted-list/BulletedList.js +89 -0
  46. package/bulleted-list/BulletedList.stories.tsx +115 -0
  47. package/bulleted-list/types.d.ts +38 -0
  48. package/bulleted-list/types.js +5 -0
  49. package/button/Button.d.ts +1 -1
  50. package/button/Button.js +65 -127
  51. package/button/Button.stories.tsx +329 -278
  52. package/button/Button.test.js +38 -0
  53. package/button/types.d.ts +18 -18
  54. package/card/Card.d.ts +1 -1
  55. package/card/Card.js +59 -104
  56. package/card/Card.stories.tsx +171 -0
  57. package/card/Card.test.js +39 -0
  58. package/card/types.d.ts +8 -15
  59. package/checkbox/Checkbox.d.ts +2 -2
  60. package/checkbox/Checkbox.js +145 -183
  61. package/checkbox/Checkbox.stories.tsx +222 -0
  62. package/checkbox/Checkbox.test.js +199 -0
  63. package/checkbox/types.d.ts +20 -8
  64. package/chip/Chip.d.ts +4 -0
  65. package/chip/Chip.js +48 -148
  66. package/chip/Chip.stories.tsx +214 -0
  67. package/chip/Chip.test.js +41 -0
  68. package/chip/types.d.ts +45 -0
  69. package/chip/types.js +5 -0
  70. package/common/OpenSans.css +68 -80
  71. package/common/coreTokens.d.ts +237 -0
  72. package/common/coreTokens.js +184 -0
  73. package/common/utils.d.ts +1 -0
  74. package/common/utils.js +6 -12
  75. package/common/variables.d.ts +1395 -0
  76. package/common/variables.js +1033 -1335
  77. package/container/Container.d.ts +4 -0
  78. package/container/Container.js +194 -0
  79. package/container/Container.stories.tsx +214 -0
  80. package/container/types.d.ts +74 -0
  81. package/container/types.js +5 -0
  82. package/date-input/Calendar.d.ts +4 -0
  83. package/date-input/Calendar.js +214 -0
  84. package/date-input/DateInput.js +175 -313
  85. package/date-input/DateInput.stories.tsx +285 -0
  86. package/date-input/DateInput.test.js +808 -0
  87. package/date-input/DatePicker.d.ts +4 -0
  88. package/date-input/DatePicker.js +115 -0
  89. package/date-input/Icons.d.ts +6 -0
  90. package/date-input/Icons.js +58 -0
  91. package/date-input/YearPicker.d.ts +4 -0
  92. package/date-input/YearPicker.js +100 -0
  93. package/date-input/types.d.ts +86 -22
  94. package/dialog/Dialog.d.ts +4 -0
  95. package/dialog/Dialog.js +69 -149
  96. package/dialog/Dialog.stories.tsx +365 -0
  97. package/dialog/Dialog.test.js +307 -0
  98. package/dialog/types.d.ts +36 -0
  99. package/dialog/types.js +5 -0
  100. package/dropdown/Dropdown.d.ts +4 -0
  101. package/dropdown/Dropdown.js +251 -365
  102. package/dropdown/Dropdown.stories.tsx +438 -0
  103. package/dropdown/Dropdown.test.js +599 -0
  104. package/dropdown/DropdownMenu.d.ts +4 -0
  105. package/dropdown/DropdownMenu.js +63 -0
  106. package/dropdown/DropdownMenuItem.d.ts +4 -0
  107. package/dropdown/DropdownMenuItem.js +67 -0
  108. package/dropdown/types.d.ts +98 -0
  109. package/dropdown/types.js +5 -0
  110. package/file-input/FileInput.d.ts +4 -0
  111. package/file-input/FileInput.js +274 -327
  112. package/file-input/FileInput.stories.tsx +618 -0
  113. package/file-input/FileInput.test.js +459 -0
  114. package/file-input/FileItem.d.ts +4 -0
  115. package/file-input/FileItem.js +54 -112
  116. package/file-input/types.d.ts +129 -0
  117. package/file-input/types.js +5 -0
  118. package/flex/Flex.d.ts +4 -0
  119. package/flex/Flex.js +57 -0
  120. package/flex/Flex.stories.tsx +112 -0
  121. package/flex/types.d.ts +97 -0
  122. package/flex/types.js +5 -0
  123. package/footer/Footer.d.ts +4 -0
  124. package/footer/Footer.js +74 -233
  125. package/footer/Footer.stories.tsx +171 -0
  126. package/footer/Footer.test.js +85 -0
  127. package/footer/Icons.d.ts +3 -0
  128. package/footer/Icons.js +67 -8
  129. package/footer/types.d.ts +64 -0
  130. package/footer/types.js +5 -0
  131. package/grid/Grid.d.ts +7 -0
  132. package/grid/Grid.js +76 -0
  133. package/grid/Grid.stories.tsx +219 -0
  134. package/grid/types.d.ts +115 -0
  135. package/grid/types.js +5 -0
  136. package/header/Header.d.ts +8 -0
  137. package/header/Header.js +115 -221
  138. package/header/Header.stories.tsx +251 -0
  139. package/header/Header.test.js +66 -0
  140. package/header/Icons.d.ts +2 -0
  141. package/header/Icons.js +5 -35
  142. package/header/types.d.ts +33 -0
  143. package/header/types.js +5 -0
  144. package/heading/Heading.d.ts +4 -0
  145. package/heading/Heading.js +16 -55
  146. package/heading/Heading.stories.tsx +54 -0
  147. package/heading/Heading.test.js +169 -0
  148. package/heading/types.d.ts +33 -0
  149. package/heading/types.js +5 -0
  150. package/image/Image.d.ts +4 -0
  151. package/image/Image.js +70 -0
  152. package/image/Image.stories.tsx +129 -0
  153. package/image/types.d.ts +72 -0
  154. package/image/types.js +5 -0
  155. package/inset/Inset.d.ts +3 -0
  156. package/inset/Inset.js +43 -0
  157. package/inset/Inset.stories.tsx +230 -0
  158. package/inset/types.d.ts +37 -0
  159. package/inset/types.js +5 -0
  160. package/layout/ApplicationLayout.d.ts +20 -0
  161. package/layout/ApplicationLayout.js +83 -184
  162. package/layout/ApplicationLayout.stories.tsx +162 -0
  163. package/layout/Icons.d.ts +8 -0
  164. package/layout/Icons.js +51 -48
  165. package/layout/SidenavContext.d.ts +5 -0
  166. package/layout/SidenavContext.js +13 -0
  167. package/layout/types.d.ts +41 -0
  168. package/layout/types.js +5 -0
  169. package/link/Link.d.ts +4 -0
  170. package/link/Link.js +65 -133
  171. package/link/Link.stories.tsx +253 -0
  172. package/link/Link.test.js +63 -0
  173. package/link/types.d.ts +54 -0
  174. package/link/types.js +5 -0
  175. package/main.d.ts +17 -14
  176. package/main.js +78 -98
  177. package/nav-tabs/NavTabs.d.ts +8 -0
  178. package/nav-tabs/NavTabs.js +93 -0
  179. package/nav-tabs/NavTabs.stories.tsx +276 -0
  180. package/nav-tabs/NavTabs.test.js +76 -0
  181. package/nav-tabs/Tab.d.ts +4 -0
  182. package/nav-tabs/Tab.js +118 -0
  183. package/nav-tabs/types.d.ts +52 -0
  184. package/nav-tabs/types.js +5 -0
  185. package/number-input/NumberInput.d.ts +11 -0
  186. package/number-input/NumberInput.js +49 -91
  187. package/number-input/NumberInput.stories.tsx +131 -0
  188. package/number-input/NumberInput.test.js +989 -0
  189. package/number-input/types.d.ts +130 -0
  190. package/number-input/types.js +5 -0
  191. package/package.json +46 -45
  192. package/paginator/Icons.d.ts +5 -0
  193. package/paginator/Icons.js +21 -47
  194. package/paginator/Paginator.js +35 -98
  195. package/paginator/Paginator.stories.tsx +87 -0
  196. package/paginator/Paginator.test.js +335 -0
  197. package/paginator/types.d.ts +3 -3
  198. package/paragraph/Paragraph.d.ts +5 -0
  199. package/paragraph/Paragraph.js +22 -0
  200. package/paragraph/Paragraph.stories.tsx +27 -0
  201. package/password-input/Icons.d.ts +6 -0
  202. package/password-input/Icons.js +35 -0
  203. package/password-input/PasswordInput.d.ts +4 -0
  204. package/password-input/PasswordInput.js +60 -162
  205. package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +3 -35
  206. package/password-input/PasswordInput.test.js +198 -0
  207. package/password-input/types.d.ts +111 -0
  208. package/password-input/types.js +5 -0
  209. package/progress-bar/ProgressBar.js +67 -93
  210. package/progress-bar/ProgressBar.stories.tsx +93 -0
  211. package/progress-bar/ProgressBar.test.js +93 -0
  212. package/progress-bar/types.d.ts +3 -3
  213. package/quick-nav/QuickNav.d.ts +4 -0
  214. package/quick-nav/QuickNav.js +94 -0
  215. package/quick-nav/QuickNav.stories.tsx +356 -0
  216. package/quick-nav/types.d.ts +21 -0
  217. package/quick-nav/types.js +5 -0
  218. package/radio-group/Radio.d.ts +4 -0
  219. package/radio-group/Radio.js +124 -0
  220. package/radio-group/RadioGroup.d.ts +4 -0
  221. package/radio-group/RadioGroup.js +235 -0
  222. package/radio-group/RadioGroup.stories.tsx +214 -0
  223. package/radio-group/RadioGroup.test.js +756 -0
  224. package/radio-group/types.d.ts +114 -0
  225. package/radio-group/types.js +5 -0
  226. package/resultset-table/Icons.d.ts +7 -0
  227. package/resultset-table/Icons.js +47 -0
  228. package/resultset-table/ResultsetTable.d.ts +7 -0
  229. package/resultset-table/ResultsetTable.js +166 -0
  230. package/resultset-table/ResultsetTable.stories.tsx +397 -0
  231. package/resultset-table/ResultsetTable.test.js +371 -0
  232. package/resultset-table/types.d.ts +73 -0
  233. package/resultset-table/types.js +5 -0
  234. package/select/Icons.d.ts +10 -0
  235. package/select/Icons.js +89 -0
  236. package/select/Listbox.d.ts +4 -0
  237. package/select/Listbox.js +143 -0
  238. package/select/Option.d.ts +4 -0
  239. package/select/Option.js +87 -0
  240. package/select/Select.d.ts +4 -0
  241. package/select/Select.js +240 -515
  242. package/select/Select.stories.tsx +971 -0
  243. package/select/Select.test.js +2370 -0
  244. package/select/types.d.ts +209 -0
  245. package/select/types.js +5 -0
  246. package/sidenav/Icons.d.ts +7 -0
  247. package/sidenav/Icons.js +47 -0
  248. package/sidenav/Sidenav.d.ts +10 -0
  249. package/sidenav/Sidenav.js +132 -81
  250. package/sidenav/Sidenav.stories.tsx +282 -0
  251. package/sidenav/Sidenav.test.js +37 -0
  252. package/sidenav/types.d.ts +76 -0
  253. package/sidenav/types.js +5 -0
  254. package/slider/Slider.d.ts +2 -2
  255. package/slider/Slider.js +162 -183
  256. package/slider/Slider.test.js +254 -0
  257. package/slider/types.d.ts +13 -10
  258. package/spinner/Spinner.d.ts +4 -0
  259. package/spinner/Spinner.js +38 -99
  260. package/spinner/Spinner.stories.tsx +129 -0
  261. package/spinner/Spinner.test.js +55 -0
  262. package/spinner/types.d.ts +32 -0
  263. package/spinner/types.js +5 -0
  264. package/status-light/StatusLight.d.ts +4 -0
  265. package/status-light/StatusLight.js +51 -0
  266. package/status-light/StatusLight.stories.tsx +74 -0
  267. package/status-light/StatusLight.test.js +25 -0
  268. package/status-light/types.d.ts +17 -0
  269. package/status-light/types.js +5 -0
  270. package/switch/Switch.d.ts +2 -2
  271. package/switch/Switch.js +150 -115
  272. package/switch/Switch.stories.tsx +137 -0
  273. package/switch/Switch.test.js +180 -0
  274. package/switch/types.d.ts +13 -5
  275. package/table/DropdownTheme.js +62 -0
  276. package/table/Table.d.ts +8 -0
  277. package/table/Table.js +89 -37
  278. package/table/Table.stories.tsx +658 -0
  279. package/table/Table.test.js +113 -0
  280. package/table/types.d.ts +63 -0
  281. package/table/types.js +5 -0
  282. package/tabs/Tab.d.ts +4 -0
  283. package/tabs/Tab.js +116 -0
  284. package/tabs/Tabs.d.ts +4 -0
  285. package/tabs/Tabs.js +319 -194
  286. package/tabs/Tabs.stories.tsx +226 -0
  287. package/tabs/Tabs.test.js +294 -0
  288. package/tabs/types.d.ts +92 -0
  289. package/tabs/types.js +5 -0
  290. package/tag/Tag.d.ts +4 -0
  291. package/tag/Tag.js +55 -112
  292. package/tag/Tag.stories.tsx +155 -0
  293. package/tag/Tag.test.js +49 -0
  294. package/tag/types.d.ts +69 -0
  295. package/tag/types.js +5 -0
  296. package/text-input/Icons.d.ts +8 -0
  297. package/text-input/Icons.js +56 -0
  298. package/text-input/Suggestion.d.ts +4 -0
  299. package/text-input/Suggestion.js +67 -0
  300. package/text-input/Suggestions.d.ts +4 -0
  301. package/text-input/Suggestions.js +84 -0
  302. package/text-input/TextInput.d.ts +4 -0
  303. package/text-input/TextInput.js +333 -593
  304. package/text-input/TextInput.stories.tsx +465 -0
  305. package/text-input/TextInput.test.js +1756 -0
  306. package/text-input/types.d.ts +205 -0
  307. package/text-input/types.js +5 -0
  308. package/textarea/Textarea.d.ts +4 -0
  309. package/textarea/Textarea.js +98 -181
  310. package/textarea/Textarea.stories.tsx +174 -0
  311. package/textarea/Textarea.test.js +406 -0
  312. package/textarea/types.d.ts +141 -0
  313. package/textarea/types.js +5 -0
  314. package/toggle-group/ToggleGroup.d.ts +4 -0
  315. package/toggle-group/ToggleGroup.js +100 -142
  316. package/toggle-group/ToggleGroup.stories.tsx +218 -0
  317. package/toggle-group/ToggleGroup.test.js +137 -0
  318. package/toggle-group/types.d.ts +114 -0
  319. package/toggle-group/types.js +5 -0
  320. package/typography/Typography.d.ts +4 -0
  321. package/typography/Typography.js +23 -0
  322. package/typography/Typography.stories.tsx +198 -0
  323. package/typography/types.d.ts +18 -0
  324. package/typography/types.js +5 -0
  325. package/useTheme.d.ts +1148 -0
  326. package/useTheme.js +4 -11
  327. package/useTranslatedLabels.d.ts +85 -0
  328. package/useTranslatedLabels.js +14 -0
  329. package/utils/BaseTypography.d.ts +21 -0
  330. package/utils/BaseTypography.js +94 -0
  331. package/utils/FocusLock.d.ts +13 -0
  332. package/utils/FocusLock.js +124 -0
  333. package/wizard/Wizard.d.ts +4 -0
  334. package/wizard/Wizard.js +130 -151
  335. package/wizard/Wizard.stories.tsx +253 -0
  336. package/wizard/Wizard.test.js +114 -0
  337. package/wizard/types.d.ts +64 -0
  338. package/wizard/types.js +5 -0
  339. package/ThemeContext.js +0 -246
  340. package/V3Select/V3Select.js +0 -455
  341. package/V3Select/index.d.ts +0 -27
  342. package/V3Textarea/V3Textarea.js +0 -260
  343. package/V3Textarea/index.d.ts +0 -27
  344. package/box/index.d.ts +0 -25
  345. package/chip/index.d.ts +0 -22
  346. package/common/RequiredComponent.js +0 -32
  347. package/date/Date.js +0 -373
  348. package/date/index.d.ts +0 -27
  349. package/dialog/index.d.ts +0 -18
  350. package/dropdown/index.d.ts +0 -26
  351. package/file-input/index.d.ts +0 -81
  352. package/footer/index.d.ts +0 -25
  353. package/header/index.d.ts +0 -25
  354. package/heading/index.d.ts +0 -17
  355. package/input-text/Icons.js +0 -22
  356. package/input-text/InputText.js +0 -611
  357. package/input-text/index.d.ts +0 -36
  358. package/link/index.d.ts +0 -23
  359. package/number-input/NumberInputContext.js +0 -16
  360. package/number-input/index.d.ts +0 -113
  361. package/password-input/index.d.ts +0 -94
  362. package/radio/Radio.d.ts +0 -4
  363. package/radio/Radio.js +0 -174
  364. package/radio/types.d.ts +0 -54
  365. package/resultsetTable/ResultsetTable.js +0 -274
  366. package/resultsetTable/index.d.ts +0 -19
  367. package/select/index.d.ts +0 -131
  368. package/sidenav/index.d.ts +0 -13
  369. package/spinner/index.d.ts +0 -17
  370. package/table/index.d.ts +0 -13
  371. package/tabs/index.d.ts +0 -19
  372. package/tag/index.d.ts +0 -24
  373. package/text-input/index.d.ts +0 -135
  374. package/textarea/Textarea.stories.jsx +0 -135
  375. package/textarea/index.d.ts +0 -117
  376. package/toggle/Toggle.js +0 -186
  377. package/toggle/index.d.ts +0 -21
  378. package/toggle-group/index.d.ts +0 -21
  379. package/upload/Upload.js +0 -201
  380. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  381. package/upload/buttons-upload/Icons.js +0 -40
  382. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  383. package/upload/dragAndDropArea/Icons.js +0 -39
  384. package/upload/file-upload/FileToUpload.js +0 -115
  385. package/upload/file-upload/Icons.js +0 -66
  386. package/upload/files-upload/FilesToUpload.js +0 -109
  387. package/upload/index.d.ts +0 -15
  388. package/upload/transaction/Icons.js +0 -160
  389. package/upload/transaction/Transaction.js +0 -104
  390. package/upload/transactions/Transactions.js +0 -94
  391. package/wizard/Icons.js +0 -65
  392. package/wizard/index.d.ts +0 -18
  393. /package/{radio → action-icon}/types.js +0 -0
package/flex/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import FooterPropsType from "./types";
3
+ declare const DxcFooter: ({ socialLinks, bottomLinks, copyright, children, margin, tabIndex, mode, }: FooterPropsType) => JSX.Element;
4
+ export default DxcFooter;
package/footer/Footer.js CHANGED
@@ -1,204 +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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
-
18
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
-
20
10
  var _react = _interopRequireWildcard(require("react"));
21
-
22
11
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
-
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _variables = require("../common/variables.js");
27
-
28
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
29
-
30
- var _BackgroundColorContext = require("../BackgroundColorContext.js");
31
-
32
- var _Icons = _interopRequireDefault(require("./Icons"));
33
-
34
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
35
-
36
- 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
-
38
- 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
-
12
+ var _variables = require("../common/variables");
13
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
14
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
15
+ var _Icons = require("./Icons");
16
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
17
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
18
+ 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); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
40
20
  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,
47
- children = _ref.children,
48
- padding = _ref.padding,
49
- margin = _ref.margin,
50
- _ref$tabIndex = _ref.tabIndex,
51
- 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
-
21
+ var socialLinks = _ref.socialLinks,
22
+ bottomLinks = _ref.bottomLinks,
23
+ copyright = _ref.copyright,
24
+ children = _ref.children,
25
+ margin = _ref.margin,
26
+ _ref$tabIndex = _ref.tabIndex,
27
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
28
+ _ref$mode = _ref.mode,
29
+ mode = _ref$mode === void 0 ? "default" : _ref$mode;
69
30
  var colorsTheme = (0, _useTheme["default"])();
31
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
70
32
  var footerLogo = (0, _react.useMemo)(function () {
71
- if (!colorsTheme.footer.logo) {
72
- return _Icons["default"];
73
- }
74
-
75
- if (typeof colorsTheme.footer.logo === "string") {
76
- return /*#__PURE__*/_react["default"].createElement(LogoImg, {
77
- alt: "Logo",
78
- src: colorsTheme.footer.logo
79
- });
80
- }
81
-
82
- return colorsTheme.footer.logo;
83
- }, [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) {
33
+ return !colorsTheme.footer.logo ? mode === "default" ? _Icons.dxcLogo : _Icons.dxcSmallLogo : typeof colorsTheme.footer.logo === "string" ? /*#__PURE__*/_react["default"].createElement(LogoImg, {
34
+ mode: mode,
35
+ alt: translatedLabels.formFields.logoAlternativeText,
36
+ src: colorsTheme.footer.logo
37
+ }) : colorsTheme.footer.logo;
38
+ }, [colorsTheme]);
39
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
40
+ theme: colorsTheme.footer
41
+ }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
42
+ margin: margin,
43
+ mode: mode
44
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
45
+ justifyContent: "space-between",
46
+ alignItems: "center",
47
+ wrap: "wrap",
48
+ gap: "1.5rem"
49
+ }, /*#__PURE__*/_react["default"].createElement(LogoContainer, {
50
+ mode: mode
51
+ }, footerLogo), mode === "default" && /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
114
52
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
53
+ href: link.href,
115
54
  tabIndex: tabIndex,
55
+ title: link.title,
56
+ "aria-label": link.title,
116
57
  key: "social".concat(index).concat(link.href),
117
- index: index,
118
- 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
- }));
122
- });
123
- var bottomLink = bottomLinks.map(function (link, index) {
58
+ index: index
59
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
60
+ src: link.logo,
61
+ alt: link.title
62
+ }) : link.logo));
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) {
124
64
  return /*#__PURE__*/_react["default"].createElement("span", {
125
65
  key: "bottom".concat(index).concat(link.text)
126
66
  }, /*#__PURE__*/_react["default"].createElement(BottomLink, {
127
- tabIndex: tabIndex,
128
- href: link && link.href ? link.href : ""
129
- }, link && link.text ? link.text : ""), /*#__PURE__*/_react["default"].createElement(Point, {
130
- index: index
131
- }, "\xB7"));
132
- });
133
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
134
- theme: colorsTheme.footer
135
- }, /*#__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, {
147
- padding: padding
148
- }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
149
- color: colorsTheme.footer.backgroundColor
150
- }, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
151
- className: "footerFooter"
152
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
153
- refSize: refSize
154
- }, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
155
- refSize: refSize
156
- }, copyright)))));
67
+ href: link.href,
68
+ tabIndex: tabIndex
69
+ }, link.text));
70
+ })), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear())))));
157
71
  };
158
-
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) {
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) {
162
73
  return props.theme.backgroundColor;
163
74
  }, function (props) {
164
- 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";
165
76
  }, function (props) {
166
- return props.theme.height;
167
- });
168
-
169
- var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n"])));
170
-
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";
77
+ return props.margin ? _variables.spaces[props.margin] : "0px";
173
78
  }, function (props) {
174
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "";
79
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? props.theme.height : "40px";
175
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) {
176
86
  return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
177
87
  });
178
-
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) {
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) {
180
90
  return props.theme.bottomLinksDividerSpacing;
181
91
  }, 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
- });
188
-
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) {
190
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
191
- }, function (props) {
192
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
193
- }, function (props) {
194
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
195
- }, function (props) {
196
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
197
- }, function (props) {
198
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
199
- });
200
-
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) {
202
92
  return props.theme.copyrightFontFamily;
203
93
  }, function (props) {
204
94
  return props.theme.copyrightFontSize;
@@ -208,53 +98,31 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
208
98
  return props.theme.copyrightFontWeight;
209
99
  }, function (props) {
210
100
  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) {
218
- return props.theme.bottomLinksDividerSpacing;
219
- });
220
-
221
- var LogoContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
222
- 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";
223
104
  }, function (props) {
224
105
  return props.theme.logoWidth;
225
106
  });
226
-
227
- var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
228
- 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";
229
109
  }, function (props) {
230
110
  return props.theme.logoWidth;
231
111
  });
232
-
233
- var SocialAnchor = _styledComponents["default"].a(_templateObject9 || (_templateObject9 = (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) {
234
113
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
235
114
  });
236
-
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) {
115
+ var SocialIconContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n height: ", ";\n width: ", ";\n color: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
238
116
  return props.theme.socialLinksSize;
239
117
  }, function (props) {
240
118
  return props.theme.socialLinksSize;
241
119
  }, function (props) {
242
120
  return props.theme.socialLinksColor;
243
121
  });
244
-
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) {
246
- return props.theme.socialLinksSize;
247
- }, function (props) {
248
- return props.theme.socialLinksSize;
249
- }, function (props) {
250
- return props.theme.socialLinksColor;
251
- });
252
-
253
- var Point = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
254
- return props.theme.bottomLinksFontColor;
255
- });
256
-
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) {
122
+ 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) {
123
+ return props.theme.bottomLinksDividerSpacing;
124
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
125
+ 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) {
258
126
  return props.theme.bottomLinksTextDecoration;
259
127
  }, function (props) {
260
128
  return props.theme.bottomLinksFontColor;
@@ -267,31 +135,4 @@ var BottomLink = _styledComponents["default"].a(_templateObject13 || (_templateO
267
135
  }, function (props) {
268
136
  return props.theme.bottomLinksFontWeight;
269
137
  });
270
-
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
- var _default = DxcFooter;
297
- exports["default"] = _default;
138
+ var _default = exports["default"] = DxcFooter;
@@ -0,0 +1,171 @@
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
+ import DxcFlex from "../flex/Flex";
7
+ import DxcTypography from "../typography/Typography";
8
+
9
+ const social = [
10
+ {
11
+ href: "https://www.linkedin.com/company/dxctechnology",
12
+ logo: (
13
+ <svg version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
14
+ <g>
15
+ <path
16
+ d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
17
+ 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
18
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
19
+ C438.532,59.576,430.49,40.204,414.41,24.123z M133.618,367.157H67.666V169.016h65.952V367.157z M127.626,132.332
20
+ 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
21
+ 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
22
+ 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
23
+ 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
24
+ 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
25
+ 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
26
+ H370.873z"
27
+ />
28
+ </g>
29
+ </svg>
30
+ ),
31
+ title: "Linkedin",
32
+ },
33
+ {
34
+ href: "https://x.com/dxctechnology",
35
+ logo: (
36
+ <svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
37
+ <rect width="256" height="256" rx="40" fill="white" />
38
+ <path
39
+ d="M140.192 118.205L187.848 64H176.556L135.158 111.056L102.117 64H64L113.975 135.163L64 192H75.2914L118.982 142.296L153.883 192H192L140.192 118.205ZM124.722 135.787L119.65 128.697L79.3634 72.3294H96.7094L129.232 117.837L134.282 124.927L176.551 184.076H159.205L124.722 135.787Z"
40
+ fill="#0F1419"
41
+ />
42
+ </svg>
43
+ ),
44
+ title: "X",
45
+ },
46
+ {
47
+ href: "https://www.facebook.com/DXCTechnology/",
48
+ logo: (
49
+ <svg
50
+ version="1.1"
51
+ id="Capa_1"
52
+ x="0px"
53
+ y="0px"
54
+ viewBox="0 0 438.536 438.536"
55
+ fill="currentColor"
56
+ width="1000px"
57
+ height="500px"
58
+ >
59
+ <g>
60
+ <path
61
+ 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
62
+ 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
63
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
64
+ 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
65
+ 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
66
+ 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"
67
+ />
68
+ </g>
69
+ </svg>
70
+ ),
71
+ title: "Facebook",
72
+ },
73
+ ];
74
+
75
+ const bottom = [
76
+ {
77
+ href: "https://www.linkedin.com/company/dxctechnology",
78
+ text: "Linkedin",
79
+ },
80
+ {
81
+ href: "https://x.com/dxctechnology",
82
+ text: "X",
83
+ },
84
+ {
85
+ href: "https://www.facebook.com/DXCTechnology/",
86
+ text: "Facebook",
87
+ },
88
+ ];
89
+
90
+ export default {
91
+ title: "Footer",
92
+ component: DxcFooter,
93
+ };
94
+
95
+ const opinionatedTheme = {
96
+ footer: {
97
+ baseColor: "#000000",
98
+ fontColor: "#ffffff",
99
+ accentColor: "#0095ff",
100
+ logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
101
+ },
102
+ };
103
+
104
+ const info = [
105
+ { label: "Example Label", text: "Example" },
106
+ { label: "Example Label", text: "Example" },
107
+ ];
108
+
109
+ export const Chromatic = () => (
110
+ <>
111
+ <ExampleContainer>
112
+ <Title title="Default" theme="light" level={4} />
113
+ <DxcFooter />
114
+ </ExampleContainer>
115
+ <ExampleContainer>
116
+ <Title title="With children, copyright, bottom links and social links" theme="light" level={4} />
117
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
118
+ <div>
119
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
120
+ </div>
121
+ </DxcFooter>
122
+ </ExampleContainer>
123
+ <ExampleContainer pseudoState="pseudo-focus">
124
+ <Title title="Focused bottom and social links" theme="light" level={4} />
125
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
126
+ <div>
127
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
128
+ </div>
129
+ </DxcFooter>
130
+ </ExampleContainer>
131
+ <ExampleContainer>
132
+ <Title title="Reduced" theme="light" level={4} />
133
+ <DxcFooter mode="reduced">
134
+ <DxcFlex justifyContent="center" alignItems="center" gap={"1rem"}>
135
+ {info.map((tag, index) => (
136
+ <DxcTypography color="white" key={`tag${index}${tag.label}${tag.text}`} >
137
+ {tag.label}: {tag.text}
138
+ </DxcTypography>
139
+ ))}
140
+ </DxcFlex>
141
+ </DxcFooter>
142
+ </ExampleContainer>
143
+ <Title title="Margins" theme="light" level={2} />
144
+ <ExampleContainer>
145
+ <Title title="Xxsmall margin" theme="light" level={4} />
146
+ <DxcFooter margin="xxsmall"></DxcFooter>
147
+ <Title title="Xsmall margin" theme="light" level={4} />
148
+ <DxcFooter margin="xsmall"></DxcFooter>
149
+ <Title title="Small margin" theme="light" level={4} />
150
+ <DxcFooter margin="small"></DxcFooter>
151
+ <Title title="Medium margin" theme="light" level={4} />
152
+ <DxcFooter margin="medium"></DxcFooter>
153
+ <Title title="Large margin" theme="light" level={4} />
154
+ <DxcFooter margin="large"></DxcFooter>
155
+ <Title title="Xlarge margin" theme="light" level={4} />
156
+ <DxcFooter margin="xlarge"></DxcFooter>
157
+ <Title title="Xxlarge margin" theme="light" level={4} />
158
+ <DxcFooter margin="xxlarge"></DxcFooter>
159
+ </ExampleContainer>
160
+ <Title title="Opinionated theme" theme="light" level={2} />
161
+ <ExampleContainer>
162
+ <HalstackProvider theme={opinionatedTheme}>
163
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
164
+ <div>
165
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
166
+ </div>
167
+ </DxcFooter>
168
+ </HalstackProvider>
169
+ </ExampleContainer>
170
+ </>
171
+ );
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _Footer = _interopRequireDefault(require("./Footer.tsx"));
7
+ var social = [{
8
+ href: "https://www.test.com/social",
9
+ logo: "https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png",
10
+ title: "test"
11
+ }];
12
+ var bottom = [{
13
+ href: "https://www.test.com/bottom",
14
+ text: "bottom-link-text"
15
+ }];
16
+ describe("Footer component tests", function () {
17
+ test("Footer renders with default logo", function () {
18
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
19
+ getByTitle = _render.getByTitle;
20
+ expect(getByTitle("DXC Logo")).toBeTruthy();
21
+ });
22
+ test("Footer renders with social links", function () {
23
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
24
+ socialLinks: social
25
+ })),
26
+ getByRole = _render2.getByRole;
27
+ var socialIcon = getByRole("link");
28
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
29
+ });
30
+ test("Footer renders with bottom links", function () {
31
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
32
+ bottomLinks: bottom
33
+ })),
34
+ getByText = _render3.getByText;
35
+ var link = getByText("bottom-link-text");
36
+ expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
37
+ });
38
+ test("Footer renders with copyright text", function () {
39
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
40
+ copyright: "test-copyright"
41
+ })),
42
+ getByText = _render4.getByText;
43
+ expect(getByText("test-copyright")).toBeTruthy();
44
+ });
45
+ test("Footer renders with correct children", function () {
46
+ // We need to force the offsetWidth value
47
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
48
+ configurable: true,
49
+ value: 1024
50
+ });
51
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
52
+ getByText = _render5.getByText;
53
+ expect(getByText("footer-child-text")).toBeTruthy();
54
+ });
55
+ test("Footer renders with children in mobile", function () {
56
+ // 425 is mobile width
57
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
58
+ configurable: true,
59
+ value: 425
60
+ });
61
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
62
+ queryByText = _render6.queryByText;
63
+ expect(queryByText("footer-child-text")).toBeTruthy();
64
+ });
65
+ test("Footer is fully rendered", function () {
66
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
67
+ configurable: true,
68
+ value: 1024
69
+ });
70
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
71
+ socialLinks: social,
72
+ bottomLinks: bottom,
73
+ copyright: "test-copyright"
74
+ }, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
75
+ getAllByRole = _render7.getAllByRole,
76
+ getByText = _render7.getByText;
77
+ var socialIcon = getAllByRole("link")[0];
78
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
79
+ expect(socialIcon.getAttribute("aria-label")).toBe("test");
80
+ var bottomLink = getByText("bottom-link-text");
81
+ expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
82
+ expect(getByText("test-copyright")).toBeTruthy();
83
+ expect(getByText("footer-child-text")).toBeTruthy();
84
+ });
85
+ });