@dxc-technology/halstack-react 0.0.0-11b4a77 → 0.0.0-11fed82

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 (289) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +6 -18
  3. package/HalstackContext.d.ts +1347 -6
  4. package/HalstackContext.js +125 -110
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +116 -157
  8. package/accordion/Accordion.stories.tsx +101 -125
  9. package/accordion/Accordion.test.js +25 -41
  10. package/accordion/types.d.ts +5 -16
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +30 -98
  13. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  14. package/accordion-group/AccordionGroup.test.js +52 -105
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +11 -16
  18. package/alert/Alert.js +19 -55
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +29 -46
  21. package/alert/types.d.ts +5 -5
  22. package/badge/Badge.js +4 -17
  23. package/badge/types.d.ts +1 -1
  24. package/bleed/Bleed.js +13 -21
  25. package/bleed/Bleed.stories.tsx +1 -0
  26. package/bleed/types.d.ts +2 -2
  27. package/box/Box.d.ts +1 -1
  28. package/box/Box.js +18 -56
  29. package/box/Box.stories.tsx +38 -51
  30. package/box/Box.test.js +2 -7
  31. package/box/types.d.ts +3 -14
  32. package/bulleted-list/BulletedList.js +25 -46
  33. package/bulleted-list/BulletedList.stories.tsx +8 -92
  34. package/bulleted-list/types.d.ts +32 -5
  35. package/button/Button.d.ts +1 -1
  36. package/button/Button.js +61 -114
  37. package/button/Button.stories.tsx +160 -90
  38. package/button/Button.test.js +18 -17
  39. package/button/types.d.ts +12 -8
  40. package/card/Card.d.ts +1 -1
  41. package/card/Card.js +48 -89
  42. package/card/Card.stories.tsx +12 -42
  43. package/card/Card.test.js +11 -22
  44. package/card/types.d.ts +6 -11
  45. package/checkbox/Checkbox.d.ts +2 -2
  46. package/checkbox/Checkbox.js +141 -178
  47. package/checkbox/Checkbox.stories.tsx +128 -94
  48. package/checkbox/Checkbox.test.js +160 -39
  49. package/checkbox/types.d.ts +11 -3
  50. package/chip/Chip.js +39 -79
  51. package/chip/Chip.stories.tsx +121 -26
  52. package/chip/Chip.test.js +16 -31
  53. package/chip/types.d.ts +4 -4
  54. package/common/OpenSans.css +68 -80
  55. package/common/coreTokens.d.ts +237 -0
  56. package/common/coreTokens.js +184 -0
  57. package/common/utils.d.ts +1 -0
  58. package/common/utils.js +6 -12
  59. package/common/variables.d.ts +1499 -0
  60. package/common/variables.js +1019 -1134
  61. package/container/Container.d.ts +4 -0
  62. package/container/Container.js +187 -0
  63. package/container/Container.stories.tsx +214 -0
  64. package/container/types.d.ts +74 -0
  65. package/date-input/Calendar.d.ts +4 -0
  66. package/date-input/Calendar.js +214 -0
  67. package/date-input/DateInput.js +150 -299
  68. package/date-input/DateInput.stories.tsx +203 -56
  69. package/date-input/DateInput.test.js +700 -371
  70. package/date-input/DatePicker.d.ts +4 -0
  71. package/date-input/DatePicker.js +115 -0
  72. package/date-input/Icons.d.ts +6 -0
  73. package/date-input/Icons.js +58 -0
  74. package/date-input/YearPicker.d.ts +4 -0
  75. package/date-input/YearPicker.js +100 -0
  76. package/date-input/types.d.ts +72 -15
  77. package/dialog/Dialog.d.ts +1 -1
  78. package/dialog/Dialog.js +75 -106
  79. package/dialog/Dialog.stories.tsx +154 -171
  80. package/dialog/Dialog.test.js +287 -20
  81. package/dialog/types.d.ts +18 -25
  82. package/dropdown/Dropdown.d.ts +1 -1
  83. package/dropdown/Dropdown.js +243 -300
  84. package/dropdown/Dropdown.stories.tsx +245 -56
  85. package/dropdown/Dropdown.test.js +575 -165
  86. package/dropdown/DropdownMenu.d.ts +4 -0
  87. package/dropdown/DropdownMenu.js +63 -0
  88. package/dropdown/DropdownMenuItem.d.ts +4 -0
  89. package/dropdown/DropdownMenuItem.js +67 -0
  90. package/dropdown/types.d.ts +32 -14
  91. package/file-input/FileInput.d.ts +2 -2
  92. package/file-input/FileInput.js +241 -355
  93. package/file-input/FileInput.stories.tsx +123 -12
  94. package/file-input/FileInput.test.js +369 -367
  95. package/file-input/FileItem.d.ts +4 -14
  96. package/file-input/FileItem.js +45 -96
  97. package/file-input/types.d.ts +25 -8
  98. package/flex/Flex.d.ts +2 -1
  99. package/flex/Flex.js +45 -62
  100. package/flex/Flex.stories.tsx +35 -26
  101. package/flex/types.d.ts +86 -10
  102. package/footer/Footer.d.ts +1 -1
  103. package/footer/Footer.js +51 -101
  104. package/footer/Footer.stories.tsx +41 -19
  105. package/footer/Footer.test.js +33 -57
  106. package/footer/Icons.d.ts +2 -2
  107. package/footer/Icons.js +2 -7
  108. package/footer/types.d.ts +21 -22
  109. package/grid/Grid.d.ts +7 -0
  110. package/grid/Grid.js +76 -0
  111. package/grid/Grid.stories.tsx +219 -0
  112. package/grid/types.d.ts +115 -0
  113. package/header/Header.d.ts +4 -3
  114. package/header/Header.js +90 -162
  115. package/header/Header.stories.tsx +118 -39
  116. package/header/Header.test.js +13 -26
  117. package/header/Icons.d.ts +2 -2
  118. package/header/Icons.js +4 -9
  119. package/header/types.d.ts +5 -20
  120. package/heading/Heading.js +10 -32
  121. package/heading/Heading.test.js +71 -88
  122. package/heading/types.d.ts +7 -7
  123. package/image/Image.d.ts +4 -0
  124. package/image/Image.js +70 -0
  125. package/image/Image.stories.tsx +127 -0
  126. package/image/types.d.ts +72 -0
  127. package/inset/Inset.js +13 -21
  128. package/inset/Inset.stories.tsx +2 -1
  129. package/inset/types.d.ts +2 -2
  130. package/layout/ApplicationLayout.d.ts +15 -6
  131. package/layout/ApplicationLayout.js +44 -96
  132. package/layout/ApplicationLayout.stories.tsx +81 -45
  133. package/layout/Icons.d.ts +8 -5
  134. package/layout/Icons.js +51 -59
  135. package/layout/SidenavContext.d.ts +1 -1
  136. package/layout/SidenavContext.js +3 -9
  137. package/layout/types.d.ts +21 -32
  138. package/link/Link.js +25 -46
  139. package/link/Link.stories.tsx +72 -5
  140. package/link/Link.test.js +24 -44
  141. package/link/types.d.ts +14 -14
  142. package/main.d.ts +6 -8
  143. package/main.js +19 -85
  144. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  145. package/{tabs-nav → nav-tabs}/NavTabs.js +22 -57
  146. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +111 -7
  147. package/{tabs-nav → nav-tabs}/NavTabs.test.js +37 -44
  148. package/nav-tabs/Tab.js +117 -0
  149. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  150. package/number-input/NumberInput.d.ts +7 -0
  151. package/number-input/NumberInput.js +26 -35
  152. package/number-input/NumberInput.stories.tsx +42 -26
  153. package/number-input/NumberInput.test.js +701 -377
  154. package/number-input/types.d.ts +11 -5
  155. package/package.json +42 -45
  156. package/paginator/Icons.d.ts +5 -0
  157. package/paginator/Icons.js +21 -47
  158. package/paginator/Paginator.js +22 -55
  159. package/paginator/Paginator.stories.tsx +24 -0
  160. package/paginator/Paginator.test.js +253 -226
  161. package/paginator/types.d.ts +3 -3
  162. package/paragraph/Paragraph.d.ts +3 -4
  163. package/paragraph/Paragraph.js +6 -17
  164. package/paragraph/Paragraph.stories.tsx +0 -17
  165. package/password-input/Icons.d.ts +6 -0
  166. package/password-input/Icons.js +35 -0
  167. package/password-input/PasswordInput.js +57 -126
  168. package/password-input/PasswordInput.stories.tsx +1 -32
  169. package/password-input/PasswordInput.test.js +160 -142
  170. package/password-input/types.d.ts +8 -7
  171. package/progress-bar/ProgressBar.js +67 -87
  172. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
  173. package/progress-bar/ProgressBar.test.js +72 -44
  174. package/progress-bar/types.d.ts +3 -3
  175. package/quick-nav/QuickNav.js +15 -39
  176. package/quick-nav/QuickNav.stories.tsx +112 -20
  177. package/quick-nav/types.d.ts +10 -10
  178. package/radio-group/Radio.d.ts +1 -1
  179. package/radio-group/Radio.js +59 -76
  180. package/radio-group/RadioGroup.js +68 -116
  181. package/radio-group/RadioGroup.stories.tsx +132 -18
  182. package/radio-group/RadioGroup.test.js +518 -457
  183. package/radio-group/types.d.ts +10 -10
  184. package/resultset-table/Icons.d.ts +7 -0
  185. package/resultset-table/Icons.js +47 -0
  186. package/resultset-table/ResultsetTable.js +159 -0
  187. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
  188. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +101 -144
  189. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  190. package/select/Icons.d.ts +7 -7
  191. package/select/Icons.js +1 -5
  192. package/select/Listbox.js +17 -49
  193. package/select/Option.js +20 -50
  194. package/select/Select.js +105 -183
  195. package/select/Select.stories.tsx +497 -152
  196. package/select/Select.test.js +1930 -1758
  197. package/select/types.d.ts +16 -19
  198. package/sidenav/Icons.d.ts +7 -0
  199. package/sidenav/Icons.js +47 -0
  200. package/sidenav/Sidenav.d.ts +6 -5
  201. package/sidenav/Sidenav.js +129 -77
  202. package/sidenav/Sidenav.stories.tsx +251 -151
  203. package/sidenav/Sidenav.test.js +26 -45
  204. package/sidenav/types.d.ts +52 -26
  205. package/slider/Slider.d.ts +2 -2
  206. package/slider/Slider.js +144 -168
  207. package/slider/Slider.test.js +185 -81
  208. package/slider/types.d.ts +7 -3
  209. package/spinner/Spinner.js +27 -63
  210. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  211. package/spinner/Spinner.test.js +26 -35
  212. package/spinner/types.d.ts +3 -3
  213. package/switch/Switch.d.ts +2 -2
  214. package/switch/Switch.js +148 -124
  215. package/switch/Switch.stories.tsx +37 -60
  216. package/switch/Switch.test.js +138 -56
  217. package/switch/types.d.ts +7 -3
  218. package/table/Table.js +7 -26
  219. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  220. package/table/Table.test.js +3 -8
  221. package/table/types.d.ts +8 -8
  222. package/tabs/Tab.d.ts +4 -0
  223. package/tabs/Tab.js +113 -0
  224. package/tabs/Tabs.js +315 -141
  225. package/tabs/Tabs.stories.tsx +119 -5
  226. package/tabs/Tabs.test.js +223 -69
  227. package/tabs/types.d.ts +28 -18
  228. package/tag/Tag.js +29 -61
  229. package/tag/Tag.stories.tsx +14 -1
  230. package/tag/Tag.test.js +20 -31
  231. package/tag/types.d.ts +7 -7
  232. package/text-input/Icons.d.ts +8 -0
  233. package/text-input/Icons.js +56 -0
  234. package/text-input/Suggestion.js +40 -28
  235. package/text-input/Suggestions.d.ts +4 -0
  236. package/text-input/Suggestions.js +89 -0
  237. package/text-input/TextInput.js +280 -458
  238. package/text-input/TextInput.stories.tsx +266 -275
  239. package/text-input/TextInput.test.js +1402 -1375
  240. package/text-input/types.d.ts +43 -16
  241. package/textarea/Textarea.js +63 -100
  242. package/textarea/Textarea.stories.tsx +175 -0
  243. package/textarea/Textarea.test.js +152 -183
  244. package/textarea/types.d.ts +9 -5
  245. package/toggle-group/ToggleGroup.d.ts +2 -2
  246. package/toggle-group/ToggleGroup.js +95 -106
  247. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  248. package/toggle-group/ToggleGroup.test.js +69 -88
  249. package/toggle-group/types.d.ts +26 -17
  250. package/typography/Typography.d.ts +2 -2
  251. package/typography/Typography.js +15 -123
  252. package/typography/Typography.stories.tsx +1 -1
  253. package/typography/types.d.ts +1 -1
  254. package/useTheme.d.ts +1251 -1
  255. package/useTheme.js +2 -9
  256. package/useTranslatedLabels.d.ts +84 -1
  257. package/useTranslatedLabels.js +1 -7
  258. package/utils/BaseTypography.d.ts +21 -0
  259. package/utils/BaseTypography.js +94 -0
  260. package/utils/FocusLock.d.ts +13 -0
  261. package/utils/FocusLock.js +114 -0
  262. package/wizard/Wizard.js +24 -66
  263. package/wizard/Wizard.stories.tsx +40 -1
  264. package/wizard/Wizard.test.js +54 -81
  265. package/wizard/types.d.ts +7 -7
  266. package/card/ice-cream.jpg +0 -0
  267. package/common/RequiredComponent.js +0 -32
  268. package/number-input/NumberInputContext.d.ts +0 -4
  269. package/number-input/NumberInputContext.js +0 -19
  270. package/number-input/numberInputContextTypes.d.ts +0 -19
  271. package/resultsetTable/ResultsetTable.js +0 -254
  272. package/row/Row.d.ts +0 -3
  273. package/row/Row.js +0 -127
  274. package/row/Row.stories.tsx +0 -237
  275. package/row/types.d.ts +0 -28
  276. package/slider/Slider.stories.tsx +0 -177
  277. package/stack/Stack.d.ts +0 -4
  278. package/stack/Stack.js +0 -56
  279. package/stack/Stack.stories.tsx +0 -263
  280. package/stack/types.d.ts +0 -32
  281. package/tabs-nav/Tab.js +0 -132
  282. package/textarea/Textarea.stories.jsx +0 -157
  283. /package/{resultsetTable → container}/types.js +0 -0
  284. /package/{row → grid}/types.js +0 -0
  285. /package/{stack → image}/types.js +0 -0
  286. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  287. /package/{tabs-nav → nav-tabs}/types.js +0 -0
  288. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
  289. /package/{number-input/numberInputContextTypes.js → resultset-table/types.js} +0 -0
package/flex/types.d.ts CHANGED
@@ -1,21 +1,97 @@
1
1
  /// <reference types="react" />
2
- declare type Gap = {
3
- rowGap: string;
4
- columnGap: string;
5
- };
6
- declare type Props = {
7
- direction?: "row" | "row-reverse" | "column" | "column-reverse";
8
- wrap?: "nowrap" | "wrap" | "wrap-reverse";
2
+ type Spaces = "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "1rem" | "1.5rem" | "2rem" | "3rem" | "4rem" | "5rem";
3
+ type Gap = {
4
+ rowGap: Spaces;
5
+ columnGap?: Spaces;
6
+ } | {
7
+ rowGap?: Spaces;
8
+ columnGap: Spaces;
9
+ } | Spaces;
10
+ type CommonProps = {
11
+ /**
12
+ * Sets the justify-content CSS property.
13
+ *
14
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content
15
+ */
9
16
  justifyContent?: "flex-start" | "flex-end" | "start" | "end" | "left" | "right" | "center" | "space-between" | "space-around" | "space-evenly";
17
+ /**
18
+ * Sets the align-items CSS property.
19
+ *
20
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/align-items
21
+ */
10
22
  alignItems?: "stretch" | "flex-start" | "flex-end" | "start" | "end" | "self-start" | "self-end" | "center" | "baseline";
23
+ /**
24
+ * Sets the align-content CSS property.
25
+ *
26
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/align-content
27
+ */
11
28
  alignContent?: "normal" | "flex-start" | "flex-end" | "start" | "end" | "center" | "space-between" | "space-around" | "space-evenly" | "stretch";
12
- gap?: string | Gap;
29
+ /**
30
+ * Sets the align-self CSS property.
31
+ *
32
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/align-self
33
+ */
34
+ alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "baseline" | "stretch";
35
+ };
36
+ type Props = CommonProps & {
37
+ /**
38
+ * Sets the flex-direction CSS property.
39
+ *
40
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction
41
+ */
42
+ direction?: "row" | "row-reverse" | "column" | "column-reverse";
43
+ /**
44
+ * Sets the flex-wrap CSS property.
45
+ *
46
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap
47
+ */
48
+ wrap?: "nowrap" | "wrap" | "wrap-reverse";
49
+ /**
50
+ * Sets the gap CSS property.
51
+ *
52
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/gap
53
+ */
54
+ gap?: Gap;
55
+ /**
56
+ * Sets the order CSS property.
57
+ *
58
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/order
59
+ */
13
60
  order?: number;
61
+ /**
62
+ * Sets the flex-grow CSS property.
63
+ *
64
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow
65
+ */
14
66
  grow?: number;
67
+ /**
68
+ * Sets the flex-shrink CSS property.
69
+ *
70
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink
71
+ */
15
72
  shrink?: number;
73
+ /**
74
+ * Sets the flex-basis CSS property.
75
+ *
76
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis
77
+ */
16
78
  basis?: string;
17
- alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "baseline" | "stretch";
18
- as?: React.ElementType;
79
+ /**
80
+ * Sets a custom HTML tag.
81
+ */
82
+ as?: keyof HTMLElementTagNameMap;
83
+ /**
84
+ * Custom content inside the flex container.
85
+ */
19
86
  children: React.ReactNode;
20
87
  };
88
+ export type StyledProps = CommonProps & {
89
+ $direction?: "row" | "row-reverse" | "column" | "column-reverse";
90
+ $wrap?: "nowrap" | "wrap" | "wrap-reverse";
91
+ $gap?: Spaces | Gap;
92
+ $order?: number;
93
+ $grow?: number;
94
+ $shrink?: number;
95
+ $basis?: string;
96
+ };
21
97
  export default Props;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import FooterPropsType from "./types";
3
- declare const DxcFooter: ({ socialLinks, bottomLinks, copyright, children, padding, margin, tabIndex, }: FooterPropsType) => JSX.Element;
3
+ declare const DxcFooter: ({ socialLinks, bottomLinks, copyright, children, margin, tabIndex, }: FooterPropsType) => JSX.Element;
4
4
  export default DxcFooter;
package/footer/Footer.js CHANGED
@@ -1,127 +1,91 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
11
  var _react = _interopRequireWildcard(require("react"));
17
-
18
12
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
-
20
- var _variables = require("../common/variables.js");
21
-
13
+ var _variables = require("../common/variables");
22
14
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
-
24
15
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
25
-
26
16
  var _BackgroundColorContext = require("../BackgroundColorContext");
27
-
28
17
  var _Icons = require("./Icons");
29
-
30
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
31
-
32
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
-
34
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
-
18
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
19
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
20
+ 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); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
36
22
  var DxcFooter = function DxcFooter(_ref) {
37
23
  var socialLinks = _ref.socialLinks,
38
- bottomLinks = _ref.bottomLinks,
39
- copyright = _ref.copyright,
40
- children = _ref.children,
41
- padding = _ref.padding,
42
- margin = _ref.margin,
43
- _ref$tabIndex = _ref.tabIndex,
44
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
24
+ bottomLinks = _ref.bottomLinks,
25
+ copyright = _ref.copyright,
26
+ children = _ref.children,
27
+ margin = _ref.margin,
28
+ _ref$tabIndex = _ref.tabIndex,
29
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
45
30
  var colorsTheme = (0, _useTheme["default"])();
46
31
  var translatedLabels = (0, _useTranslatedLabels["default"])();
47
32
  var footerLogo = (0, _react.useMemo)(function () {
48
33
  if (!colorsTheme.footer.logo) {
49
34
  return _Icons.dxcLogo;
50
35
  }
51
-
52
36
  if (typeof colorsTheme.footer.logo === "string") {
53
37
  return /*#__PURE__*/_react["default"].createElement(LogoImg, {
54
38
  alt: translatedLabels.formFields.logoAlternativeText,
55
39
  src: colorsTheme.footer.logo
56
40
  });
57
41
  }
58
-
59
42
  return colorsTheme.footer.logo;
60
- }, [colorsTheme.footer.logo]);
61
- var socialLink = socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
43
+ }, [colorsTheme]);
44
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
45
+ theme: colorsTheme.footer
46
+ }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
47
+ margin: margin
48
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
49
+ justifyContent: "space-between",
50
+ alignItems: "center",
51
+ wrap: "wrap",
52
+ gap: "1.5rem"
53
+ }, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
62
54
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
55
+ href: link.href,
63
56
  tabIndex: tabIndex,
57
+ title: link.title,
58
+ "aria-label": link.title,
64
59
  key: "social".concat(index).concat(link.href),
65
- index: index,
66
- href: link && link.href ? link.href : ""
67
- }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(SocialIconImg, {
60
+ index: index
61
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
68
62
  src: link.logo
69
63
  }) : link.logo));
70
- });
71
- var bottomLink = bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
64
+ }))), /*#__PURE__*/_react["default"].createElement(ChildComponents, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
65
+ color: colorsTheme.footer.backgroundColor
66
+ }, children)), /*#__PURE__*/_react["default"].createElement(BottomContainer, null, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
72
67
  return /*#__PURE__*/_react["default"].createElement("span", {
73
68
  key: "bottom".concat(index).concat(link.text)
74
69
  }, /*#__PURE__*/_react["default"].createElement(BottomLink, {
75
- tabIndex: tabIndex,
76
- href: link && link.href ? link.href : ""
77
- }, link && link.text ? link.text : ""), /*#__PURE__*/_react["default"].createElement(Point, {
78
- index: index
79
- }, "\xB7"));
80
- });
81
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
82
- theme: colorsTheme.footer
83
- }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
84
- margin: margin
85
- }, /*#__PURE__*/_react["default"].createElement(FooterHeader, null, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement(SocialLinkContainer, null, socialLink)), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ChildComponents, {
86
- padding: padding
87
- }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
88
- color: colorsTheme.footer.backgroundColor
89
- }, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
90
- className: "footerFooter"
91
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear()))))));
70
+ href: link.href,
71
+ tabIndex: tabIndex
72
+ }, link.text));
73
+ })), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear())))));
92
74
  };
93
-
94
- var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n @media (min-width: ", "rem) {\n padding: 24px 36px 24px 36px;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n padding: 20px;\n }\n\n background-color: ", ";\n margin-top: ", ";\n width: 100%;\n box-sizing: border-box;\n min-height: ", ";\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
95
- return props.theme.backgroundColor;
75
+ var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n min-height: ", ";\n margin-top: ", ";\n background-color: ", ";\n\n @media (min-width: ", "rem) {\n padding: 24px 36px 24px 36px;\n }\n @media (max-width: ", "rem) {\n padding: 20px;\n }\n"])), function (props) {
76
+ return props.theme.height;
96
77
  }, function (props) {
97
78
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
98
79
  }, function (props) {
99
- return props.theme.height;
100
- });
101
-
102
- var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n row-gap: 24px;\n"])));
103
-
104
- var FooterFooter = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n\n @media (min-width: ", "rem) {\n flex-direction: row;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n flex-direction: column;\n align-items: center;\n }\n\n border-top: ", ";\n margin-top: 16px;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
80
+ return props.theme.backgroundColor;
81
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
82
+ var BottomContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n\n @media (min-width: ", "rem) {\n flex-direction: row;\n }\n @media (max-width: ", "rem) {\n flex-direction: column;\n align-items: center;\n }\n\n border-top: ", ";\n margin-top: 16px;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
105
83
  return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
106
84
  });
107
-
108
- var BottomLinks = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n display: inline-flex;\n flex-wrap: wrap;\n\n @media (min-width: ", "rem) {\n max-width: 60%;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 100%;\n width: 100%;\n }\n\n & > span:last-child span {\n display: none;\n }\n align-self: center;\n"])), function (props) {
85
+ var ChildComponents = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n overflow: hidden;\n"])));
86
+ var Copyright = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n\n @media (min-width: ", "rem) {\n max-width: 40%;\n text-align: right;\n }\n\n @media (max-width: ", "rem) {\n max-width: 100%;\n width: 100%;\n text-align: left;\n }\n"])), function (props) {
109
87
  return props.theme.bottomLinksDividerSpacing;
110
- }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
111
-
112
- var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (props) {
113
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
114
- }, function (props) {
115
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
116
- }, function (props) {
117
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
118
88
  }, function (props) {
119
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
120
- }, function (props) {
121
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
122
- });
123
-
124
- var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n\n @media (min-width: ", "rem) {\n max-width: 40%;\n text-align: right;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 100%;\n width: 100%;\n text-align: left;\n }\n\n padding-top: ", ";\n"])), function (props) {
125
89
  return props.theme.copyrightFontFamily;
126
90
  }, function (props) {
127
91
  return props.theme.copyrightFontSize;
@@ -131,43 +95,31 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
131
95
  return props.theme.copyrightFontWeight;
132
96
  }, function (props) {
133
97
  return props.theme.copyrightFontColor;
134
- }, _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
135
- return props.theme.bottomLinksDividerSpacing;
136
- });
137
-
138
- var LogoContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
98
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
99
+ var LogoContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
139
100
  return props.theme.logoHeight;
140
101
  }, function (props) {
141
102
  return props.theme.logoWidth;
142
103
  });
143
-
144
- var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
104
+ var LogoImg = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
145
105
  return props.theme.logoHeight;
146
106
  }, function (props) {
147
107
  return props.theme.logoWidth;
148
108
  });
149
-
150
- var SocialLinkContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-self: center;\n"])));
151
-
152
- var SocialAnchor = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
109
+ var SocialAnchor = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n margin-left: ", ";\n border-radius: 4px;\n\n &:focus {\n outline: 2px solid #0095ff;\n outline-offset: 2px;\n }\n"])), function (props) {
153
110
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
154
111
  });
155
-
156
- var SocialIconImg = _styledComponents["default"].img(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])([""])));
157
-
158
- var SocialIconContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n color: ", ";\n }\n\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
112
+ 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) {
159
113
  return props.theme.socialLinksSize;
160
114
  }, function (props) {
161
115
  return props.theme.socialLinksSize;
162
116
  }, function (props) {
163
117
  return props.theme.socialLinksColor;
164
118
  });
165
-
166
- var Point = _styledComponents["default"].span(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
167
- return props.theme.bottomLinksFontColor;
168
- });
169
-
170
- var BottomLink = _styledComponents["default"].a(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
119
+ 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) {
120
+ return props.theme.bottomLinksDividerSpacing;
121
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
122
+ var BottomLink = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n border-radius: 2px;\n\n &:focus {\n outline: 2px solid #0095ff;\n }\n"])), function (props) {
171
123
  return props.theme.bottomLinksTextDecoration;
172
124
  }, function (props) {
173
125
  return props.theme.bottomLinksFontColor;
@@ -180,6 +132,4 @@ var BottomLink = _styledComponents["default"].a(_templateObject14 || (_templateO
180
132
  }, function (props) {
181
133
  return props.theme.bottomLinksFontWeight;
182
134
  });
183
-
184
- var _default = DxcFooter;
185
- exports["default"] = _default;
135
+ var _default = exports["default"] = DxcFooter;
@@ -2,6 +2,7 @@ import React from "react";
2
2
  import DxcFooter from "./Footer";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
5
6
 
6
7
  const social = [
7
8
  {
@@ -25,10 +26,20 @@ const social = [
25
26
  </g>
26
27
  </svg>
27
28
  ),
29
+ title: "Linkedin",
28
30
  },
29
31
  {
30
- href: "https://twitter.com/dxctechnology",
31
- logo: "http://assets.stickpng.com/images/580b57fcd9996e24bc43c53e.png",
32
+ href: "https://x.com/dxctechnology",
33
+ logo: (
34
+ <svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
35
+ <rect width="256" height="256" rx="40" fill="white" />
36
+ <path
37
+ d="M140.192 118.205L187.848 64H176.556L135.158 111.056L102.117 64H64L113.975 135.163L64 192H75.2914L118.982 142.296L153.883 192H192L140.192 118.205ZM124.722 135.787L119.65 128.697L79.3634 72.3294H96.7094L129.232 117.837L134.282 124.927L176.551 184.076H159.205L124.722 135.787Z"
38
+ fill="#0F1419"
39
+ />
40
+ </svg>
41
+ ),
42
+ title: "X",
32
43
  },
33
44
  {
34
45
  href: "https://www.facebook.com/DXCTechnology/",
@@ -55,6 +66,7 @@ const social = [
55
66
  </g>
56
67
  </svg>
57
68
  ),
69
+ title: "Facebook",
58
70
  },
59
71
  ];
60
72
 
@@ -64,8 +76,8 @@ const bottom = [
64
76
  text: "Linkedin",
65
77
  },
66
78
  {
67
- href: "https://twitter.com/dxctechnology",
68
- text: "Twitter",
79
+ href: "https://x.com/dxctechnology",
80
+ text: "X",
69
81
  },
70
82
  {
71
83
  href: "https://www.facebook.com/DXCTechnology/",
@@ -78,6 +90,15 @@ export default {
78
90
  component: DxcFooter,
79
91
  };
80
92
 
93
+ const opinionatedTheme = {
94
+ footer: {
95
+ baseColor: "#000000",
96
+ fontColor: "#ffffff",
97
+ accentColor: "#0095ff",
98
+ logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
99
+ },
100
+ };
101
+
81
102
  export const Chromatic = () => (
82
103
  <>
83
104
  <ExampleContainer>
@@ -92,6 +113,14 @@ export const Chromatic = () => (
92
113
  </div>
93
114
  </DxcFooter>
94
115
  </ExampleContainer>
116
+ <ExampleContainer pseudoState="pseudo-focus">
117
+ <Title title="Focused bottom and social links" theme="light" level={4} />
118
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
119
+ <div>
120
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
121
+ </div>
122
+ </DxcFooter>
123
+ </ExampleContainer>
95
124
  <Title title="Margins" theme="light" level={2} />
96
125
  <ExampleContainer>
97
126
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -109,22 +138,15 @@ export const Chromatic = () => (
109
138
  <Title title="Xxlarge margin" theme="light" level={4} />
110
139
  <DxcFooter margin="xxlarge"></DxcFooter>
111
140
  </ExampleContainer>
112
- <Title title="Padding" theme="light" level={2} />
141
+ <Title title="Opinionated theme" theme="light" level={2} />
113
142
  <ExampleContainer>
114
- <Title title="Xxsmall padding" theme="light" level={4} />
115
- <DxcFooter padding="xxsmall"></DxcFooter>
116
- <Title title="Xsmall padding" theme="light" level={4} />
117
- <DxcFooter padding="xsmall"></DxcFooter>
118
- <Title title="Small padding" theme="light" level={4} />
119
- <DxcFooter padding="small"></DxcFooter>
120
- <Title title="Medium padding" theme="light" level={4} />
121
- <DxcFooter padding="medium"></DxcFooter>
122
- <Title title="Large padding" theme="light" level={4} />
123
- <DxcFooter padding="large"></DxcFooter>
124
- <Title title="Xlarge padding" theme="light" level={4} />
125
- <DxcFooter padding="xlarge"></DxcFooter>
126
- <Title title="Xxlarge padding" theme="light" level={4} />
127
- <DxcFooter padding="xxlarge"></DxcFooter>
143
+ <HalstackProvider theme={opinionatedTheme}>
144
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
145
+ <div>
146
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
147
+ </div>
148
+ </DxcFooter>
149
+ </HalstackProvider>
128
150
  </ExampleContainer>
129
151
  </>
130
152
  );
@@ -1,80 +1,65 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _react = _interopRequireDefault(require("react"));
6
-
7
5
  var _react2 = require("@testing-library/react");
8
-
9
- var _linkedin = _interopRequireDefault(require("../../app/src/images/linkedin.svg"));
10
-
11
- var _Footer = _interopRequireDefault(require("./Footer"));
12
-
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
+ }];
13
16
  describe("Footer component tests", function () {
14
17
  test("Footer renders with default logo", function () {
15
18
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
16
- getByTitle = _render.getByTitle;
17
-
19
+ getByTitle = _render.getByTitle;
18
20
  expect(getByTitle("DXC Logo")).toBeTruthy();
19
21
  });
20
22
  test("Footer renders with social links", function () {
21
- var social = [{
22
- href: "https://www.test.com/test",
23
- logo: _linkedin["default"]
24
- }];
25
-
26
23
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
27
- socialLinks: social
28
- })),
29
- getByRole = _render2.getByRole;
30
-
24
+ socialLinks: social
25
+ })),
26
+ getByRole = _render2.getByRole;
31
27
  var socialIcon = getByRole("link");
32
- expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/test");
28
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
33
29
  });
34
30
  test("Footer renders with bottom links", function () {
35
- var bottom = [{
36
- href: "https://www.test.com/test",
37
- text: "bottom-link-text"
38
- }];
39
-
40
31
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
41
- bottomLinks: bottom
42
- })),
43
- getByText = _render3.getByText;
44
-
32
+ bottomLinks: bottom
33
+ })),
34
+ getByText = _render3.getByText;
45
35
  var link = getByText("bottom-link-text");
46
- expect(link.getAttribute("href")).toBe("https://www.test.com/test");
36
+ expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
47
37
  });
48
38
  test("Footer renders with copyright text", function () {
49
39
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
50
- copyright: "test-copyright"
51
- })),
52
- getByText = _render4.getByText;
53
-
40
+ copyright: "test-copyright"
41
+ })),
42
+ getByText = _render4.getByText;
54
43
  expect(getByText("test-copyright")).toBeTruthy();
55
44
  });
56
45
  test("Footer renders with correct children", function () {
57
- //We need to force the offsetWidth value
46
+ // We need to force the offsetWidth value
58
47
  Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
59
48
  configurable: true,
60
49
  value: 1024
61
50
  });
62
-
63
51
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
64
- getByText = _render5.getByText;
65
-
52
+ getByText = _render5.getByText;
66
53
  expect(getByText("footer-child-text")).toBeTruthy();
67
54
  });
68
55
  test("Footer renders with children in mobile", function () {
69
- //425 is mobile width
56
+ // 425 is mobile width
70
57
  Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
71
58
  configurable: true,
72
59
  value: 425
73
60
  });
74
-
75
61
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
76
- queryByText = _render6.queryByText;
77
-
62
+ queryByText = _render6.queryByText;
78
63
  expect(queryByText("footer-child-text")).toBeTruthy();
79
64
  });
80
65
  test("Footer is fully rendered", function () {
@@ -82,25 +67,16 @@ describe("Footer component tests", function () {
82
67
  configurable: true,
83
68
  value: 1024
84
69
  });
85
- var social = [{
86
- href: "https://www.test.com/social",
87
- logo: _linkedin["default"]
88
- }];
89
- var bottom = [{
90
- href: "https://www.test.com/bottom",
91
- text: "bottom-link-text"
92
- }];
93
-
94
70
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
95
- socialLinks: social,
96
- bottomLinks: bottom,
97
- copyright: "test-copyright"
98
- }, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
99
- getAllByRole = _render7.getAllByRole,
100
- getByText = _render7.getByText;
101
-
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;
102
77
  var socialIcon = getAllByRole("link")[0];
103
78
  expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
79
+ expect(socialIcon.getAttribute("aria-label")).toBe("test");
104
80
  var bottomLink = getByText("bottom-link-text");
105
81
  expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
106
82
  expect(getByText("test-copyright")).toBeTruthy();
package/footer/Icons.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- /// <reference types="react" />
2
- export declare const dxcLogo: JSX.Element;
1
+ import React from "react";
2
+ export declare const dxcLogo: React.JSX.Element;
package/footer/Icons.js CHANGED
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.dxcLogo = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
- var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
9
+ var dxcLogo = exports.dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
13
10
  id: "g10",
14
11
  xmlns: "http://www.w3.org/2000/svg",
15
12
  width: "100%",
@@ -72,6 +69,4 @@ var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
72
69
  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",
73
70
  transform: "translate(-21.08 69.298)",
74
71
  fill: "#fff"
75
- })));
76
-
77
- exports.dxcLogo = dxcLogo;
72
+ })));