@dnanpm/styleguide 3.1.0 → 3.2.0

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 (274) hide show
  1. package/README.md +86 -86
  2. package/build/cjs/assets/{bundle-8de31ca3.css → bundle-f9dcdcfa.css} +129 -129
  3. package/build/cjs/components/Accordion/Accordion.d.ts +2 -1
  4. package/build/cjs/components/Accordion/Accordion.js +4 -4
  5. package/build/cjs/components/AccordionItem/AccordionItem.d.ts +4 -3
  6. package/build/cjs/components/AccordionItem/AccordionItem.js +2 -2
  7. package/build/cjs/components/Box/Box.d.ts +2 -1
  8. package/build/cjs/components/Box/Box.js +1 -1
  9. package/build/cjs/components/Button/Button.d.ts +4 -3
  10. package/build/cjs/components/Button/ButtonArrow.d.ts +2 -1
  11. package/build/cjs/components/Button/ButtonArrow.js +1 -3
  12. package/build/cjs/components/Checkbox/Checkbox.js +1 -1
  13. package/build/cjs/components/Chip/Chip.d.ts +3 -2
  14. package/build/cjs/components/DateTimePicker/DateTimePicker.d.ts +102 -0
  15. package/build/cjs/components/DateTimePicker/DateTimePicker.js +282 -0
  16. package/build/cjs/components/Divider/Divider.d.ts +2 -1
  17. package/build/cjs/components/DnaLogo/DnaLogo.d.ts +2 -1
  18. package/build/cjs/components/Drawer/Drawer.d.ts +2 -1
  19. package/build/cjs/components/EmptyState/EmptyState.d.ts +2 -1
  20. package/build/cjs/components/Floater/Floater.d.ts +2 -1
  21. package/build/cjs/components/Footer/Components/FooterComponents.d.ts +2 -67
  22. package/build/cjs/components/Footer/Components/FooterComponents.js +17 -67
  23. package/build/cjs/components/Footer/Footer.d.ts +4 -13
  24. package/build/cjs/components/Footer/Footer.js +2 -5
  25. package/build/cjs/components/Footer/context/FooterContext.d.ts +5 -4
  26. package/build/cjs/components/Footer/context/FooterContext.js +1 -5
  27. package/build/cjs/components/Icon/Icon.d.ts +3 -2
  28. package/build/cjs/components/Icons/hlLink.d.ts +4 -0
  29. package/build/cjs/components/Icons/hlLink.js +19 -0
  30. package/build/cjs/components/Icons/index.d.ts +1 -0
  31. package/build/cjs/components/Icons/index.js +2 -0
  32. package/build/cjs/components/Input/Input.d.ts +28 -11
  33. package/build/cjs/components/Input/Input.js +56 -29
  34. package/build/cjs/components/Label/Label.d.ts +2 -1
  35. package/build/cjs/components/LabelText/LabelText.d.ts +2 -1
  36. package/build/cjs/components/MainHeaderNavigation/ChildComponents/BusinessMenu.d.ts +6 -0
  37. package/build/cjs/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +70 -0
  38. package/build/cjs/components/MainHeaderNavigation/ChildComponents/DesktopMenu.d.ts +3 -0
  39. package/build/cjs/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +207 -0
  40. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LanguageSelector.d.ts +4 -0
  41. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +40 -0
  42. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.d.ts +10 -0
  43. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +44 -0
  44. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LoginTooltip.d.ts +7 -0
  45. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +24 -0
  46. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +193 -0
  47. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +120 -0
  48. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +169 -0
  49. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +68 -0
  50. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.d.ts +7 -0
  51. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +27 -0
  52. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.d.ts +3 -0
  53. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +196 -0
  54. package/build/cjs/components/MainHeaderNavigation/ChildComponents/PageSearch.d.ts +6 -0
  55. package/build/cjs/components/MainHeaderNavigation/ChildComponents/PageSearch.js +24 -0
  56. package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +36 -0
  57. package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.js +322 -0
  58. package/build/cjs/components/MainHeaderNavigation/context/MobileMenuContext.d.ts +6 -0
  59. package/build/cjs/components/MainHeaderNavigation/context/MobileMenuContext.js +11 -0
  60. package/build/cjs/components/MainHeaderNavigation/context/NavContext.d.ts +29 -0
  61. package/build/cjs/components/MainHeaderNavigation/context/NavContext.js +56 -0
  62. package/build/cjs/components/MainHeaderNavigation/globalNavStyles.d.ts +1482 -0
  63. package/build/cjs/components/MainHeaderNavigation/globalNavStyles.js +189 -0
  64. package/build/cjs/components/MainNavigation/ChildComponents/DesktopMenu.d.ts +2 -2
  65. package/build/cjs/components/MainNavigation/ChildComponents/DesktopMenu.js +33 -33
  66. package/build/cjs/components/MainNavigation/ChildComponents/HeaderNavigationElements.d.ts +2 -2
  67. package/build/cjs/components/MainNavigation/ChildComponents/HeaderNavigationElements.js +1 -1
  68. package/build/cjs/components/MainNavigation/ChildComponents/LanguageSelector.d.ts +1 -1
  69. package/build/cjs/components/MainNavigation/ChildComponents/LanguageSelector.js +11 -14
  70. package/build/cjs/components/MainNavigation/ChildComponents/LinkModifier.d.ts +1 -1
  71. package/build/cjs/components/MainNavigation/ChildComponents/LinkModifier.js +9 -9
  72. package/build/cjs/components/MainNavigation/ChildComponents/LoginTooltip.js +3 -5
  73. package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenu.d.ts +5 -4
  74. package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenu.js +10 -10
  75. package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +4 -2
  76. package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +2 -2
  77. package/build/cjs/components/MainNavigation/ChildComponents/MinicartTooltip.js +4 -6
  78. package/build/cjs/components/MainNavigation/ChildComponents/MobileMenu.d.ts +1 -1
  79. package/build/cjs/components/MainNavigation/ChildComponents/MobileMenu.js +21 -17
  80. package/build/cjs/components/MainNavigation/ChildComponents/PageSearch.js +3 -5
  81. package/build/cjs/components/MainNavigation/ChildComponents/Ribbon.d.ts +2 -2
  82. package/build/cjs/components/MainNavigation/MainNavigation.d.ts +5 -5
  83. package/build/cjs/components/MainNavigation/MainNavigation.js +100 -74
  84. package/build/cjs/components/MainNavigation/context/MobileMenuContext.d.ts +3 -3
  85. package/build/cjs/components/MainNavigation/context/MobileMenuContext.js +1 -5
  86. package/build/cjs/components/MainNavigation/context/NavContext.d.ts +14 -15
  87. package/build/cjs/components/MainNavigation/context/NavContext.js +6 -5
  88. package/build/cjs/components/MainNavigation/globalNavStyles.d.ts +4 -4
  89. package/build/cjs/components/Modal/Modal.d.ts +2 -1
  90. package/build/cjs/components/Notification/Notification.d.ts +3 -2
  91. package/build/cjs/components/NotificationBadge/NotificationBadge.d.ts +2 -1
  92. package/build/cjs/components/Pill/Pill.d.ts +3 -2
  93. package/build/cjs/components/ProgressIndicator/ProgressIndicator.d.ts +2 -1
  94. package/build/cjs/components/RadioButton/RadioButton.d.ts +2 -1
  95. package/build/cjs/components/ReadMore/ReadMore.d.ts +4 -4
  96. package/build/cjs/components/Search/Search.d.ts +7 -6
  97. package/build/cjs/components/Search/Search.js +1 -1
  98. package/build/cjs/components/SecondaryNavigation/SecondaryNavigation.d.ts +19 -2
  99. package/build/cjs/components/SecondaryNavigation/SecondaryNavigation.js +23 -29
  100. package/build/cjs/components/Selectbox/Selectbox.js +2 -2
  101. package/build/cjs/components/Selectbox/__tests__/Selectbox.spec.d.ts +1 -0
  102. package/build/cjs/components/Tabs/Tab.d.ts +5 -3
  103. package/build/cjs/components/Tabs/Tab.js +1 -1
  104. package/build/cjs/components/Tabs/Tabs.d.ts +18 -19
  105. package/build/cjs/components/Tabs/Tabs.js +3 -3
  106. package/build/cjs/components/Textarea/Textarea.d.ts +6 -5
  107. package/build/cjs/components/Toaster/Toaster.d.ts +3 -2
  108. package/build/cjs/components/Tooltip/Tooltip.d.ts +2 -1
  109. package/build/cjs/components/Tooltip/Tooltip.js +1 -1
  110. package/build/cjs/components/TooltipMenu/ChildComponents/TooltipMenuExportedStyles.d.ts +2 -2
  111. package/build/cjs/components/TooltipMenu/TooltipMenu.d.ts +2 -1
  112. package/build/cjs/components/index.d.ts +3 -1
  113. package/build/cjs/hooks/useCloseOutsideOrElementClicked.js +3 -2
  114. package/build/cjs/hooks/useDebounce.d.ts +2 -0
  115. package/build/cjs/hooks/useDebounce.js +23 -0
  116. package/build/cjs/hooks/useDocHeight.d.ts +2 -1
  117. package/build/cjs/hooks/useDocHeight.js +5 -25
  118. package/build/cjs/hooks/useResizeObserver.d.ts +6 -0
  119. package/build/cjs/hooks/{useElementDimensions.js → useResizeObserver.js} +5 -5
  120. package/build/cjs/hooks/useScrollPosition.d.ts +2 -3
  121. package/build/cjs/hooks/useScrollPosition.js +8 -14
  122. package/build/cjs/index.js +6 -0
  123. package/build/cjs/themes/globalStyles.d.ts +3 -3
  124. package/build/cjs/themes/styled.d.ts +7 -7
  125. package/build/cjs/themes/theme.d.ts +1 -1
  126. package/build/cjs/themes/themeComponents/navigation.d.ts +7 -0
  127. package/build/cjs/themes/themeComponents/navigation.js +13 -1
  128. package/build/cjs/utils/common.d.ts +2 -1
  129. package/build/cjs/utils/common.js +1 -1
  130. package/build/cjs/utils/createStyled.d.ts +163 -2
  131. package/build/cjs/utils/createStyled.js +2 -2
  132. package/build/cjs/utils/styledUtils.d.ts +1 -1
  133. package/build/es/assets/{bundle-8de31ca3.css → bundle-f9dcdcfa.css} +129 -129
  134. package/build/es/components/Accordion/Accordion.d.ts +2 -1
  135. package/build/es/components/Accordion/Accordion.js +5 -5
  136. package/build/es/components/AccordionItem/AccordionItem.d.ts +4 -3
  137. package/build/es/components/AccordionItem/AccordionItem.js +1 -1
  138. package/build/es/components/Box/Box.d.ts +2 -1
  139. package/build/es/components/Box/Box.js +1 -1
  140. package/build/es/components/Button/Button.d.ts +4 -3
  141. package/build/es/components/Button/ButtonArrow.d.ts +2 -1
  142. package/build/es/components/Button/ButtonArrow.js +2 -4
  143. package/build/es/components/Checkbox/Checkbox.js +1 -1
  144. package/build/es/components/Chip/Chip.d.ts +3 -2
  145. package/build/es/components/DateTimePicker/DateTimePicker.d.ts +102 -0
  146. package/build/es/components/DateTimePicker/DateTimePicker.js +272 -0
  147. package/build/es/components/Divider/Divider.d.ts +2 -1
  148. package/build/es/components/DnaLogo/DnaLogo.d.ts +2 -1
  149. package/build/es/components/Drawer/Drawer.d.ts +2 -1
  150. package/build/es/components/EmptyState/EmptyState.d.ts +2 -1
  151. package/build/es/components/Floater/Floater.d.ts +2 -1
  152. package/build/es/components/Footer/Components/FooterComponents.d.ts +2 -67
  153. package/build/es/components/Footer/Components/FooterComponents.js +18 -68
  154. package/build/es/components/Footer/Footer.d.ts +4 -13
  155. package/build/es/components/Footer/Footer.js +3 -6
  156. package/build/es/components/Footer/context/FooterContext.d.ts +5 -4
  157. package/build/es/components/Footer/context/FooterContext.js +2 -2
  158. package/build/es/components/Icon/Icon.d.ts +3 -2
  159. package/build/es/components/Icons/hlLink.d.ts +4 -0
  160. package/build/es/components/Icons/hlLink.js +11 -0
  161. package/build/es/components/Icons/index.d.ts +1 -0
  162. package/build/es/components/Icons/index.js +1 -0
  163. package/build/es/components/Input/Input.d.ts +28 -11
  164. package/build/es/components/Input/Input.js +56 -29
  165. package/build/es/components/Label/Label.d.ts +2 -1
  166. package/build/es/components/LabelText/LabelText.d.ts +2 -1
  167. package/build/es/components/MainHeaderNavigation/ChildComponents/BusinessMenu.d.ts +6 -0
  168. package/build/es/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +62 -0
  169. package/build/es/components/MainHeaderNavigation/ChildComponents/DesktopMenu.d.ts +3 -0
  170. package/build/es/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +199 -0
  171. package/build/es/components/MainHeaderNavigation/ChildComponents/LanguageSelector.d.ts +4 -0
  172. package/build/es/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +32 -0
  173. package/build/es/components/MainHeaderNavigation/ChildComponents/LinkModifier.d.ts +10 -0
  174. package/build/es/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +35 -0
  175. package/build/es/components/MainHeaderNavigation/ChildComponents/LoginTooltip.d.ts +7 -0
  176. package/build/es/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +16 -0
  177. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +193 -0
  178. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +111 -0
  179. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +169 -0
  180. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +63 -0
  181. package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.d.ts +7 -0
  182. package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +19 -0
  183. package/build/es/components/MainHeaderNavigation/ChildComponents/MobileMenu.d.ts +3 -0
  184. package/build/es/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +188 -0
  185. package/build/es/components/MainHeaderNavigation/ChildComponents/PageSearch.d.ts +6 -0
  186. package/build/es/components/MainHeaderNavigation/ChildComponents/PageSearch.js +16 -0
  187. package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +36 -0
  188. package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.js +314 -0
  189. package/build/es/components/MainHeaderNavigation/context/MobileMenuContext.d.ts +6 -0
  190. package/build/es/components/MainHeaderNavigation/context/MobileMenuContext.js +7 -0
  191. package/build/es/components/MainHeaderNavigation/context/NavContext.d.ts +29 -0
  192. package/build/es/components/MainHeaderNavigation/context/NavContext.js +52 -0
  193. package/build/es/components/MainHeaderNavigation/globalNavStyles.d.ts +1482 -0
  194. package/build/es/components/MainHeaderNavigation/globalNavStyles.js +177 -0
  195. package/build/es/components/MainNavigation/ChildComponents/DesktopMenu.d.ts +2 -2
  196. package/build/es/components/MainNavigation/ChildComponents/DesktopMenu.js +33 -33
  197. package/build/es/components/MainNavigation/ChildComponents/HeaderNavigationElements.d.ts +2 -2
  198. package/build/es/components/MainNavigation/ChildComponents/HeaderNavigationElements.js +1 -1
  199. package/build/es/components/MainNavigation/ChildComponents/LanguageSelector.d.ts +1 -1
  200. package/build/es/components/MainNavigation/ChildComponents/LanguageSelector.js +12 -15
  201. package/build/es/components/MainNavigation/ChildComponents/LinkModifier.d.ts +1 -1
  202. package/build/es/components/MainNavigation/ChildComponents/LinkModifier.js +9 -9
  203. package/build/es/components/MainNavigation/ChildComponents/LoginTooltip.js +4 -6
  204. package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenu.d.ts +5 -4
  205. package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenu.js +11 -11
  206. package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +4 -2
  207. package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +2 -3
  208. package/build/es/components/MainNavigation/ChildComponents/MinicartTooltip.js +5 -7
  209. package/build/es/components/MainNavigation/ChildComponents/MobileMenu.d.ts +1 -1
  210. package/build/es/components/MainNavigation/ChildComponents/MobileMenu.js +22 -18
  211. package/build/es/components/MainNavigation/ChildComponents/PageSearch.js +4 -6
  212. package/build/es/components/MainNavigation/ChildComponents/Ribbon.d.ts +2 -2
  213. package/build/es/components/MainNavigation/MainNavigation.d.ts +5 -5
  214. package/build/es/components/MainNavigation/MainNavigation.js +101 -75
  215. package/build/es/components/MainNavigation/context/MobileMenuContext.d.ts +3 -3
  216. package/build/es/components/MainNavigation/context/MobileMenuContext.js +2 -2
  217. package/build/es/components/MainNavigation/context/NavContext.d.ts +14 -15
  218. package/build/es/components/MainNavigation/context/NavContext.js +7 -2
  219. package/build/es/components/MainNavigation/globalNavStyles.d.ts +4 -4
  220. package/build/es/components/Modal/Modal.d.ts +2 -1
  221. package/build/es/components/Notification/Notification.d.ts +3 -2
  222. package/build/es/components/NotificationBadge/NotificationBadge.d.ts +2 -1
  223. package/build/es/components/Pill/Pill.d.ts +3 -2
  224. package/build/es/components/ProgressIndicator/ProgressIndicator.d.ts +2 -1
  225. package/build/es/components/RadioButton/RadioButton.d.ts +2 -1
  226. package/build/es/components/ReadMore/ReadMore.d.ts +4 -4
  227. package/build/es/components/Search/Search.d.ts +7 -6
  228. package/build/es/components/Search/Search.js +2 -2
  229. package/build/es/components/SecondaryNavigation/SecondaryNavigation.d.ts +19 -2
  230. package/build/es/components/SecondaryNavigation/SecondaryNavigation.js +23 -29
  231. package/build/es/components/Selectbox/Selectbox.js +2 -2
  232. package/build/es/components/Selectbox/__tests__/Selectbox.spec.d.ts +1 -0
  233. package/build/es/components/Tabs/Tab.d.ts +5 -3
  234. package/build/es/components/Tabs/Tab.js +2 -2
  235. package/build/es/components/Tabs/Tabs.d.ts +18 -19
  236. package/build/es/components/Tabs/Tabs.js +4 -4
  237. package/build/es/components/Textarea/Textarea.d.ts +6 -5
  238. package/build/es/components/Toaster/Toaster.d.ts +3 -2
  239. package/build/es/components/Tooltip/Tooltip.d.ts +2 -1
  240. package/build/es/components/Tooltip/Tooltip.js +1 -1
  241. package/build/es/components/TooltipMenu/ChildComponents/TooltipMenuExportedStyles.d.ts +2 -2
  242. package/build/es/components/TooltipMenu/TooltipMenu.d.ts +2 -1
  243. package/build/es/components/index.d.ts +3 -1
  244. package/build/es/hooks/useCloseOutsideOrElementClicked.js +3 -2
  245. package/build/es/hooks/useDebounce.d.ts +2 -0
  246. package/build/es/hooks/useDebounce.js +19 -0
  247. package/build/es/hooks/useDocHeight.d.ts +2 -1
  248. package/build/es/hooks/useDocHeight.js +6 -6
  249. package/build/es/hooks/useResizeObserver.d.ts +6 -0
  250. package/build/es/hooks/{useElementDimensions.js → useResizeObserver.js} +5 -5
  251. package/build/es/hooks/useScrollPosition.d.ts +2 -3
  252. package/build/es/hooks/useScrollPosition.js +9 -11
  253. package/build/es/index.js +3 -0
  254. package/build/es/themes/globalStyles.d.ts +3 -3
  255. package/build/es/themes/styled.d.ts +7 -7
  256. package/build/es/themes/theme.d.ts +1 -1
  257. package/build/es/themes/themeComponents/navigation.d.ts +7 -0
  258. package/build/es/themes/themeComponents/navigation.js +9 -2
  259. package/build/es/utils/common.d.ts +2 -1
  260. package/build/es/utils/common.js +1 -1
  261. package/build/es/utils/createStyled.d.ts +163 -2
  262. package/build/es/utils/createStyled.js +2 -2
  263. package/build/es/utils/styledUtils.d.ts +1 -1
  264. package/package.json +22 -11
  265. package/build/cjs/hooks/modifyBodyClass.d.ts +0 -1
  266. package/build/cjs/hooks/modifyBodyClass.js +0 -20
  267. package/build/cjs/hooks/useDebounceFunc.d.ts +0 -1
  268. package/build/cjs/hooks/useDebounceFunc.js +0 -39
  269. package/build/cjs/hooks/useElementDimensions.d.ts +0 -5
  270. package/build/es/hooks/modifyBodyClass.d.ts +0 -1
  271. package/build/es/hooks/modifyBodyClass.js +0 -16
  272. package/build/es/hooks/useDebounceFunc.d.ts +0 -1
  273. package/build/es/hooks/useDebounceFunc.js +0 -15
  274. package/build/es/hooks/useElementDimensions.d.ts +0 -5
@@ -0,0 +1,272 @@
1
+ import { __rest } from 'tslib';
2
+ import React__default, { useState } from 'react';
3
+ import ReactDatePicker from 'react-datepicker';
4
+ import styled__default from 'styled-components';
5
+ import theme from '../../themes/theme.js';
6
+ import { getMultipliedSize } from '../../utils/styledUtils.js';
7
+ import ButtonIcon from '../Button/ButtonIcon.js';
8
+ import hlChevronLeft from '../Icons/hlChevronLeft.js';
9
+ import hlChevronRight from '../Icons/hlChevronRight.js';
10
+ import Input from '../Input/Input.js';
11
+
12
+ /**
13
+ * Customized local copy of date-fns/locale/fi object to avoid importing unnecessary libraries
14
+ * Contains only used and functionality wise necessary properties
15
+ */
16
+ const localeData = {
17
+ // https://github.com/date-fns/date-fns/blob/main/src/locale/fi/index.ts
18
+ 'fi-FI': {
19
+ code: 'fi',
20
+ formatLong: {
21
+ date: () => 'eeee d. MMMM y',
22
+ time: () => 'HH.mm',
23
+ },
24
+ localize: {
25
+ day: (i) => ['Su', 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La'][i],
26
+ month: (i) => [
27
+ 'Tammikuu',
28
+ 'Helmikuu',
29
+ 'Maaliskuu',
30
+ 'Huhtikuu',
31
+ 'Toukokuu',
32
+ 'Kesäkuu',
33
+ 'Heinäkuu',
34
+ 'Elokuu',
35
+ 'Syyskuu',
36
+ 'Lokakuu',
37
+ 'Marraskuu',
38
+ 'Joulukuu',
39
+ ][i],
40
+ timeCaption: 'Aika',
41
+ },
42
+ options: {
43
+ weekStartsOn: 1,
44
+ firstWeekContainsDate: 4,
45
+ },
46
+ },
47
+ // Use react-datepicker default language
48
+ 'en-GB': undefined,
49
+ };
50
+ const sentenceCase = (string) => `${string[0].toUpperCase()}${string.slice(1)}`;
51
+ const Wrapper = styled__default.div `
52
+ position: relative;
53
+
54
+ & .react-datepicker {
55
+ position: absolute;
56
+ display: flex;
57
+ font-size: ${theme.fontSize.xs};
58
+ border-radius: ${theme.radius.default};
59
+ border: 1px solid ${theme.color.line.L03};
60
+ background-color: ${theme.color.background.white.default};
61
+ z-index: 1;
62
+
63
+ .react-datepicker__aria-live {
64
+ display: none;
65
+ }
66
+ }
67
+
68
+ & .react-datepicker__month-container + .react-datepicker__time-container {
69
+ border-left: 1px solid ${theme.color.line.L03};
70
+ }
71
+
72
+ & .react-datepicker__header {
73
+ display: flex;
74
+ flex-direction: column;
75
+ gap: ${getMultipliedSize(theme.base.baseWidth, 1)};
76
+ color: ${theme.color.text.black};
77
+ padding: ${getMultipliedSize(theme.base.baseWidth, 1)}
78
+ ${getMultipliedSize(theme.base.baseWidth, 1)}
79
+ ${getMultipliedSize(theme.base.baseWidth, 0.5)};
80
+ border-bottom: 1px solid ${theme.color.line.L03};
81
+ background-color: ${theme.color.background.sand.E01};
82
+
83
+ .react-datepicker-time__header {
84
+ font-size: ${theme.fontSize.default};
85
+ line-height: ${theme.lineHeight.default};
86
+ font-weight: ${theme.fontWeight.bold};
87
+ text-align: center;
88
+ }
89
+ }
90
+
91
+ & .react-datepicker__month,
92
+ .react-datepicker__time-list {
93
+ display: grid;
94
+ gap: ${getMultipliedSize(theme.base.baseWidth, 0.5)};
95
+ color: ${theme.color.text.gray};
96
+ padding: ${getMultipliedSize(theme.base.baseWidth, 0.5)}
97
+ ${getMultipliedSize(theme.base.baseWidth, 1)}
98
+ ${getMultipliedSize(theme.base.baseWidth, 1)};
99
+
100
+ .react-datepicker__day--outside-month {
101
+ visibility: hidden;
102
+ }
103
+ }
104
+
105
+ & .react-datepicker__day-names,
106
+ & .react-datepicker__week {
107
+ display: flex;
108
+ gap: ${getMultipliedSize(theme.base.baseWidth, 0.8)};
109
+
110
+ .react-datepicker__day-name,
111
+ .react-datepicker__day {
112
+ text-align: center;
113
+ font-weight: ${theme.fontWeight.book};
114
+ line-height: ${theme.lineHeight.default};
115
+ width: ${getMultipliedSize(theme.base.baseHeight, 2.4)};
116
+ height: ${getMultipliedSize(theme.base.baseHeight, 2.4)};
117
+ }
118
+
119
+ .react-datepicker__day {
120
+ cursor: pointer;
121
+ font-weight: ${theme.fontWeight.book};
122
+ border: 1px solid transparent;
123
+ border-radius: ${theme.radius.s};
124
+
125
+ &.react-datepicker__day--today {
126
+ color: ${theme.color.text.pink};
127
+ font-weight: ${theme.fontWeight.bold};
128
+ }
129
+
130
+ &.react-datepicker__day--in-selecting-range {
131
+ color: ${theme.color.text.white};
132
+ font-weight: ${theme.fontWeight.bold};
133
+ background-color: ${theme.color.background.pink.default};
134
+ }
135
+
136
+ &.react-datepicker__day--selected {
137
+ color: ${theme.color.text.white};
138
+ font-weight: ${theme.fontWeight.bold};
139
+ background-color: ${theme.color.background.pink.default};
140
+ }
141
+
142
+ &:hover {
143
+ color: ${theme.color.text.gray};
144
+ font-weight: ${theme.fontWeight.bold};
145
+ background-color: ${theme.color.background.sand.E01};
146
+ border: 1px solid ${theme.color.line.L03};
147
+ }
148
+
149
+ &.react-datepicker__day--selecting-range-start {
150
+ color: ${theme.color.text.white};
151
+ background-color: ${theme.color.background.pink.default};
152
+
153
+ &.react-datepicker__day--selecting-range-end {
154
+ color: ${theme.color.text.white};
155
+ background-color: ${theme.color.background.pink.default};
156
+ }
157
+ }
158
+
159
+ &.react-datepicker__day--selecting-range-end {
160
+ color: ${theme.color.text.black};
161
+ background-color: ${theme.color.background.pink.E02};
162
+
163
+ &:hover {
164
+ border: 1px solid ${theme.color.background.pink.E02};
165
+ }
166
+ }
167
+ }
168
+ }
169
+
170
+ & .react-datepicker__time {
171
+ width: ${getMultipliedSize(theme.base.baseWidth, 15)};
172
+
173
+ .react-datepicker__time-list {
174
+ padding-left: 0;
175
+ padding-right: 0;
176
+ list-style: none;
177
+ margin: 0;
178
+ gap: 0;
179
+ overflow-y: scroll;
180
+ height: ${getMultipliedSize(theme.base.baseHeight, 19)};
181
+
182
+ .react-datepicker__time-list-item {
183
+ cursor: pointer;
184
+ text-align: center;
185
+ font-weight: ${theme.fontWeight.book};
186
+ line-height: ${theme.lineHeight.h2S};
187
+ height: ${getMultipliedSize(theme.base.baseHeight, 3.2)};
188
+
189
+ &.react-datepicker__time-list-item--selected {
190
+ color: ${theme.color.text.white};
191
+ font-weight: ${theme.fontWeight.bold};
192
+ background-color: ${theme.color.background.pink.default};
193
+ }
194
+
195
+ &:hover {
196
+ color: ${theme.color.text.gray};
197
+ font-weight: ${theme.fontWeight.bold};
198
+ background-color: ${theme.color.background.sand.E01};
199
+ }
200
+ }
201
+ }
202
+ }
203
+ `;
204
+ const MonthSelector = styled__default.div `
205
+ display: flex;
206
+ align-items: center;
207
+ justify-content: space-between;
208
+
209
+ span.dnasg-icon > svg {
210
+ fill: ${theme.color.text.gray};
211
+ }
212
+ `;
213
+ const CurrentMonth = styled__default.div `
214
+ font-size: ${theme.fontSize.default};
215
+ line-height: ${theme.lineHeight.default};
216
+ font-weight: ${theme.fontWeight.bold};
217
+ `;
218
+ const DateTimePickerCustomHeader = ({ date, decreaseMonth, increaseMonth, locale, }) => (React__default.createElement(MonthSelector, null,
219
+ React__default.createElement(ButtonIcon, { icon: hlChevronLeft, onClick: decreaseMonth }),
220
+ React__default.createElement(CurrentMonth, null, sentenceCase(date.toLocaleString(locale, {
221
+ month: 'long',
222
+ year: 'numeric',
223
+ }))),
224
+ React__default.createElement(ButtonIcon, { icon: hlChevronRight, onClick: increaseMonth })));
225
+ /** @visibleName DateTime Picker */
226
+ const DateTimePicker = (_a) => {
227
+ var _b;
228
+ var { date: startDate, locale = 'fi-FI', isDatePicker = true, isTimePicker = false, timeInterval = 30, 'data-testid': dataTestId } = _a, props = __rest(_a, ["date", "locale", "isDatePicker", "isTimePicker", "timeInterval", 'data-testid']);
229
+ const [showReactDatePicker, setShowReactDatePicker] = useState(false);
230
+ const handleOnInputFocus = () => {
231
+ setShowReactDatePicker(true);
232
+ };
233
+ const handleOnInputChange = (_, e) => {
234
+ if (props.onInputChange) {
235
+ props.onInputChange(e);
236
+ }
237
+ };
238
+ const handleOnKeyDown = (e) => {
239
+ if (!props.isEditable &&
240
+ (e.key === 'Backspace' || e.key === 'Delete' || e.key === 'Clear')) {
241
+ props.onChange(null, e);
242
+ }
243
+ };
244
+ const handleClearable = (e) => {
245
+ props.onChange(null, e);
246
+ };
247
+ const handleOnReactDatePickerChange = (date, e) => {
248
+ setShowReactDatePicker(false);
249
+ props.onChange(date, e);
250
+ };
251
+ const handleOnReactDatePickerClickOutside = () => {
252
+ setShowReactDatePicker(false);
253
+ };
254
+ const formatInputValue = [startDate, props.endDate]
255
+ .filter(Boolean)
256
+ .map(date => date === null || date === void 0 ? void 0 : date.toLocaleString(locale, Object.assign(Object.assign({}, (isDatePicker && {
257
+ dateStyle: 'medium',
258
+ })), (props.endDate === undefined &&
259
+ isTimePicker && {
260
+ timeStyle: 'short',
261
+ }))))
262
+ .join(' - ');
263
+ const getDateTimePickerCustomHeader = (args) => DateTimePickerCustomHeader(Object.assign(Object.assign({}, args), { locale }));
264
+ return (React__default.createElement(Wrapper, { id: props.id, className: props.className, "data-testid": dataTestId },
265
+ React__default.createElement(Input, { id: `datetimepicker-input-${props.id}`, name: `datetimepicker-input-${props.id}`, label: props.label, placeholder: props.placeholder, value: formatInputValue, onFocus: handleOnInputFocus, onChange: handleOnInputChange, onKeyDown: handleOnKeyDown, onClearableButtonClick: handleClearable, className: "react-datepicker-ignore-onclickoutside", "data-testid": dataTestId && `${dataTestId}-datetimepicker-input`, disabled: props.isDisabled, required: props.isRequired, readonly: !props.isEditable, status: props.isInError ? 'error' : undefined, errorMessage: props.errorMessage }),
266
+ showReactDatePicker && (React__default.createElement(ReactDatePicker, { inline: true, selected: startDate, startDate: startDate, endDate: props.endDate, onChange: handleOnReactDatePickerChange, selectsRange: props.endDate !== undefined, showTimeSelect: props.endDate === undefined && isTimePicker, showTimeSelectOnly: props.endDate === undefined && !isDatePicker && isTimePicker, timeCaption: (_b = localeData[locale]) === null || _b === void 0 ? void 0 : _b.localize.timeCaption, timeIntervals: timeInterval, onClickOutside: handleOnReactDatePickerClickOutside, locale: localeData[locale],
267
+ // Used to format the date/time in internal ReactDatePicker input
268
+ // Currently ignored as date/time is shown in Styleguide Input instead, and formatted by using Intl.DateTimeFormat
269
+ dateFormat: [isDatePicker && 'P', isTimePicker && 'p'].filter(Boolean).join(''), renderCustomHeader: getDateTimePickerCustomHeader }))));
270
+ };
271
+
272
+ export { DateTimePicker as default };
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from 'react';
1
2
  import React from 'react';
2
3
  interface Props {
3
4
  /**
@@ -7,7 +8,7 @@ interface Props {
7
8
  /**
8
9
  * Content of Divider component
9
10
  */
10
- children?: React.ReactNode;
11
+ children?: ReactNode;
11
12
  /**
12
13
  * Allows to pass a custom margin
13
14
  *
@@ -1,3 +1,4 @@
1
+ import type { MouseEvent } from 'react';
1
2
  import React from 'react';
2
3
  type TypeEmblem = 'default' | 'white';
3
4
  type TypeLogotype = 'logotype-pink' | 'logotype-white' | 'logotype-black';
@@ -28,7 +29,7 @@ interface Props {
28
29
  /**
29
30
  * On Logo click callback
30
31
  */
31
- onClick?: (e: React.MouseEvent) => void;
32
+ onClick?: (e: MouseEvent) => void;
32
33
  /**
33
34
  * Minimum protected area of a DNA logo from another element or edge is 1/4 of the height.
34
35
  * When activated, value is calculated automatically from size property.
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from 'react';
1
2
  import React from 'react';
2
3
  import type { Props as ReactModalProps } from 'react-modal';
3
4
  type Size = 'small' | 'medium' | 'large';
@@ -13,7 +14,7 @@ interface Props {
13
14
  /**
14
15
  * Content of the component
15
16
  */
16
- children?: React.ReactNode;
17
+ children?: ReactNode;
17
18
  /**
18
19
  * Allows to hide application from assistive screenreaders and other assistive technologies while the drawer is open
19
20
  *
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from 'react';
1
2
  import React from 'react';
2
3
  import type { Props as IconProps } from '../Icon/Icon';
3
4
  interface Props {
@@ -8,7 +9,7 @@ interface Props {
8
9
  /**
9
10
  * Content of the component
10
11
  */
11
- children?: React.ReactNode;
12
+ children?: ReactNode;
12
13
  /**
13
14
  * Icon shown in the component
14
15
  *
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from 'react';
1
2
  import React from 'react';
2
3
  type Position = 'top' | 'bottom';
3
4
  interface Props {
@@ -27,7 +28,7 @@ interface Props {
27
28
  /**
28
29
  * Content of the component
29
30
  */
30
- children?: React.ReactNode;
31
+ children?: ReactNode;
31
32
  /**
32
33
  * Allows to pass a custom className
33
34
  */
@@ -1,69 +1,5 @@
1
1
  import React from 'react';
2
- import type { LangProps } from '../../../types/language.d';
3
- interface PrincipalProps {
4
- titles: LangProps;
5
- urls: LangProps;
6
- type?: string;
7
- }
8
- interface CategoriesProps {
9
- description: LangProps;
10
- category: CategoryProps[];
11
- }
12
- interface CategoryArrayProps {
13
- currentIndex: number;
14
- category: CategoriesProps;
15
- }
16
- type CategoryProps = PrincipalProps;
17
- interface ServicesProps extends PrincipalProps {
18
- descriptions: LangProps;
19
- }
20
- export interface FooterNavigationProps {
21
- services?: ServicesProps[];
22
- categories?: CategoriesProps[];
23
- languageSelector?: LanguageSelectorProps;
24
- customLinks?: LanguageProps[];
25
- generalInformation?: GeneralInformationProps;
26
- socialMedia?: SocialMediaProps;
27
- }
28
- export interface LanguageProps {
29
- [key: string]: string;
30
- title: string;
31
- url: string;
32
- }
33
- interface LanguageSelectorProps {
34
- urls: LanguageProps;
35
- }
36
- interface LanguageComponentProps {
37
- languages: LanguageProps[];
38
- }
39
- interface GeneralInformationComponentProps {
40
- generalInformation?: GeneralInformationProps;
41
- }
42
- interface GeneralInformationProps {
43
- privacyPolicy: PrincipalProps;
44
- cookieSettings: Pick<PrincipalProps, 'titles' | 'type'>;
45
- terms: PrincipalProps;
46
- }
47
- interface SocialMediaProps {
48
- [key: string]: {
49
- urls: LangProps;
50
- } | undefined;
51
- facebook?: {
52
- urls: LangProps;
53
- };
54
- twitter?: {
55
- urls: LangProps;
56
- };
57
- linkedIn?: {
58
- urls: LangProps;
59
- };
60
- instagram?: {
61
- urls: LangProps;
62
- };
63
- youtube?: {
64
- urls: LangProps;
65
- };
66
- }
2
+ import type { CategoryArrayProps, FooterNavigationProps, GeneralInformationComponentProps, LanguageComponentProps, LanguageSelectorProps } from '../types/footerProps';
67
3
  export declare const mapCorporateSelector: (languagesObject: LanguageSelectorProps) => {
68
4
  title: string;
69
5
  url: string;
@@ -72,6 +8,5 @@ export declare const Services: ({ services }: FooterNavigationProps) => React.JS
72
8
  export declare const CategoryDisplay: ({ category, currentIndex }: CategoryArrayProps) => React.JSX.Element;
73
9
  export declare const Categories: ({ categories }: FooterNavigationProps) => React.JSX.Element;
74
10
  export declare const LanguageLinks: ({ languages }: LanguageComponentProps) => React.JSX.Element;
75
- export declare const GeneralInformation: ({ generalInformation }: GeneralInformationComponentProps) => React.JSX.Element;
11
+ export declare const GeneralInformation: ({ generalInformation }: GeneralInformationComponentProps) => React.JSX.Element | null;
76
12
  export declare const SocialMediaLinks: ({ socialMedia }: FooterNavigationProps) => React.JSX.Element;
77
- export {};
@@ -1,4 +1,4 @@
1
- import React__default from 'react';
1
+ import React__default, { useContext } from 'react';
2
2
  import styled from '../../../themes/styled.js';
3
3
  import theme from '../../../themes/theme.js';
4
4
  import { getMultipliedSize } from '../../../utils/styledUtils.js';
@@ -6,7 +6,9 @@ import Icon from '../../Icon/Icon.js';
6
6
  import 'tslib';
7
7
  import hlPlus from '../../Icons/hlPlus.js';
8
8
  import FooterContext from '../context/FooterContext.js';
9
+ import Button from '../../Button/Button.js';
9
10
 
11
+ /* eslint-disable react/no-array-index-key */
10
12
  const ServicesContainer = styled.div `
11
13
  display: flex;
12
14
  justify-content: space-between;
@@ -43,7 +45,6 @@ const CategoryContainer = styled.div `
43
45
  const CategoryWrapper = styled.div `
44
46
  display: inline-flex;
45
47
  width: 100%;
46
- overflow: hidden;
47
48
  flex-direction: column;
48
49
 
49
50
  span.dnasg-icon {
@@ -60,14 +61,6 @@ const CategoryWrapper = styled.div `
60
61
  }
61
62
  &:first-of-type {
62
63
  padding-left: 0;
63
-
64
- ul {
65
- margin-left: ${getMultipliedSize(theme.base.baseWidth, 2)};
66
- }
67
- span.dnasg-icon {
68
- display: block;
69
- margin-right: ${getMultipliedSize(theme.base.baseWidth, 0.5)};
70
- }
71
64
  }
72
65
  }
73
66
  `;
@@ -169,44 +162,6 @@ const GeneralInformationContainer = styled.div `
169
162
  flex-grow: 1;
170
163
  flex-shrink: 1;
171
164
  `;
172
- const CallToActionButton = styled.a `
173
- display: inline-block;
174
- text-align: center;
175
- font-family: ${theme.fontFamily.default};
176
- font-weight: ${theme.fontWeight.bold};
177
- font-size: ${theme.fontSize.default};
178
- line-height: ${theme.lineHeight.default};
179
- min-width: ${getMultipliedSize(theme.base.baseWidth, 12.5)};
180
- width: 100%;
181
- cursor: pointer;
182
- color: ${theme.color.text.white};
183
- background-color: transparent;
184
- border-radius: ${theme.radius.pill};
185
- border: 2px solid ${theme.color.default.white};
186
- padding: ${getMultipliedSize(theme.base.baseHeight, 0.6)}
187
- ${getMultipliedSize(theme.base.baseWidth, 4)};
188
- text-decoration: none;
189
-
190
- &:focus {
191
- color: ${theme.color.text.plum};
192
- background-color: ${theme.color.default.white};
193
- border: 2px solid ${theme.color.focus.dark};
194
- outline: 2px solid ${theme.color.focus.light};
195
- }
196
-
197
- &:hover {
198
- color: ${theme.color.text.plum};
199
- background-color: ${theme.color.default.white};
200
- text-decoration: none;
201
- }
202
-
203
- &:active {
204
- color: ${theme.color.text.plum};
205
- background-color: ${theme.color.default.white + theme.color.transparency.T90};
206
- border: 2px solid ${theme.color.default.white + theme.color.transparency.T90};
207
- outline: none;
208
- }
209
- `;
210
165
  const GeneralInformationLink = styled.a `
211
166
  text-decoration: underline;
212
167
 
@@ -226,23 +181,16 @@ const mapCorporateSelector = (languagesObject) => Object.keys(languagesObject.ur
226
181
  url: languagesObject.urls[e],
227
182
  }));
228
183
  const Services = ({ services }) => {
229
- const { collapseSize, language } = React__default.useContext(FooterContext);
184
+ const { collapseSize, language } = useContext(FooterContext);
230
185
  return (React__default.createElement(ServicesContainer, { collapseSize: collapseSize }, services === null || services === void 0 ? void 0 : services.map((service, index) => (React__default.createElement(ServiceWrapper, { key: `service-section-${index}`, "data-testid": `service-section-${index}`, collapseSize: collapseSize },
231
- React__default.createElement(CallToActionButton, { href: service.urls[language] }, service.titles[language]),
186
+ React__default.createElement(Button, { darkBg: true, href: service.urls[language] }, service.titles[language]),
232
187
  React__default.createElement(SmallText, null, service.descriptions[language]))))));
233
188
  };
234
189
  const CategoryDisplay = ({ category, currentIndex }) => {
235
190
  const categoryLinkArray = category.category;
236
- const { collapseSize, language, isCollapsed, setIsCollapsed, isMobileFooter } = React__default.useContext(FooterContext);
191
+ const { collapseSize, language, isCollapsed, setIsCollapsed, isMobileFooter } = useContext(FooterContext);
237
192
  const toggleCollapse = () => {
238
- if (!isMobileFooter) {
239
- setIsCollapsed({
240
- 0: !isCollapsed[0],
241
- 1: !isCollapsed[0],
242
- 2: !isCollapsed[0],
243
- });
244
- }
245
- else {
193
+ if (isMobileFooter) {
246
194
  setIsCollapsed(Object.assign(Object.assign({}, isCollapsed), { [currentIndex]: !isCollapsed[currentIndex] }));
247
195
  }
248
196
  };
@@ -250,21 +198,21 @@ const CategoryDisplay = ({ category, currentIndex }) => {
250
198
  React__default.createElement(CategoryHeader, { collapseSize: collapseSize, active: isCollapsed[currentIndex], onClick: toggleCollapse },
251
199
  React__default.createElement(Icon, { icon: hlPlus, size: "1rem" }),
252
200
  category.description[language]),
253
- React__default.createElement(CategoryLinks, { active: isCollapsed[currentIndex], collapseSize: collapseSize }, categoryLinkArray.map((categoryLink, index) => (React__default.createElement(CategoryLinksListEl, { key: `category-${currentIndex}-link-${index}`, "data-testid": `category-${currentIndex}-link-${index}`, collapseSize: collapseSize },
201
+ React__default.createElement(CategoryLinks, { active: isMobileFooter ? isCollapsed[currentIndex] : true, collapseSize: collapseSize }, categoryLinkArray.map((categoryLink, index) => (React__default.createElement(CategoryLinksListEl, { key: `category-${currentIndex}-link-${index}`, "data-testid": `category-${currentIndex}-link-${index}`, collapseSize: collapseSize },
254
202
  React__default.createElement("a", { href: categoryLink.urls[language] }, categoryLink.titles[language])))))));
255
203
  };
256
204
  const Categories = ({ categories }) => {
257
- const { collapseSize } = React__default.useContext(FooterContext);
205
+ const { collapseSize } = useContext(FooterContext);
258
206
  return (React__default.createElement(CategoryContainer, { collapseSize: collapseSize, "data-testid": "category-container" }, categories === null || categories === void 0 ? void 0 : categories.map((category, index) => (React__default.createElement(CategoryDisplay, { category: category, currentIndex: index, key: `category-${index}` })))));
259
207
  };
260
208
  const LanguageLinks = ({ languages }) => {
261
- const { collapseSize } = React__default.useContext(FooterContext);
262
- return (React__default.createElement(LanguageLinksContainer, { collapseSize: collapseSize, "data-testid": "language-selector-section" }, languages.map((language, index) => (React__default.createElement("a", { href: language.url, key: `language-link-${index}` }, language.title)))));
209
+ const { collapseSize } = useContext(FooterContext);
210
+ return (React__default.createElement(LanguageLinksContainer, { collapseSize: collapseSize, "data-testid": "language-selector-section" }, languages.map((language) => (React__default.createElement("a", { href: language.url, key: language.title }, language.title)))));
263
211
  };
264
212
  const GeneralInformation = ({ generalInformation }) => {
265
- const { language } = React__default.useContext(FooterContext);
213
+ const { language } = useContext(FooterContext);
266
214
  if (!generalInformation) {
267
- return React__default.createElement(React__default.Fragment, null);
215
+ return null;
268
216
  }
269
217
  const currentYear = new Date().getFullYear();
270
218
  const orderMap = ['privacyPolicy', 'cookieSettings', 'terms'];
@@ -279,10 +227,12 @@ const GeneralInformation = ({ generalInformation }) => {
279
227
  currentYear)));
280
228
  };
281
229
  const SocialMediaLinks = ({ socialMedia }) => {
282
- const { language } = React__default.useContext(FooterContext);
283
- const socialMediaKeys = Object.keys(socialMedia || {}).filter((key) => key !== '__typename');
230
+ const { language } = useContext(FooterContext);
284
231
  return (React__default.createElement(SocialMediaLinksContainer, { "data-testid": "social-media-section" }, socialMedia &&
285
- socialMediaKeys.map((socialMediaKey) => {
232
+ Object.keys(socialMedia || {}).map((socialMediaKey) => {
233
+ if (socialMediaKey === '__typename') {
234
+ return null;
235
+ }
286
236
  const socialMediaName = socialMediaKey.charAt(0).toUpperCase() +
287
237
  socialMediaKey.toLowerCase().slice(1);
288
238
  const currentObject = socialMedia[socialMediaKey];
@@ -1,21 +1,12 @@
1
1
  import React from 'react';
2
- import type { FooterNavigationProps } from './Components/FooterComponents';
3
- interface FooterItemProps {
4
- businessId: string;
5
- footerNavigation: FooterNavigationProps;
6
- }
7
- export interface IsCollapsedProps {
8
- [key: number]: boolean;
9
- 0: boolean;
10
- 1: boolean;
11
- 2: boolean;
12
- }
2
+ import type { FooterItemProps } from './types/footerProps';
13
3
  export interface FooterProps {
14
4
  items?: FooterItemProps;
15
5
  language: string;
16
6
  zIndex?: number;
17
7
  collapseSize: number;
18
8
  }
9
+ /** @visibleName Footer */
10
+ declare const Footer: ({ items, language, zIndex, collapseSize, }: FooterProps) => React.JSX.Element;
19
11
  /** @component */
20
- declare const _default: React.FunctionComponent<any>;
21
- export default _default;
12
+ export default Footer;
@@ -1,4 +1,4 @@
1
- import React__default, { useState } from 'react';
1
+ import React__default, { useState, useMemo } from 'react';
2
2
  import useWindowSize from '../../hooks/useWindowSize.js';
3
3
  import styled from '../../themes/styled.js';
4
4
  import theme from '../../themes/theme.js';
@@ -69,10 +69,7 @@ const Footer = ({ items = { businessId: 'NONE', footerNavigation: {} }, language
69
69
  const { isMobile } = useWindowSize(collapseSize);
70
70
  // Resets menu states when menu content alters between mobile and desktop
71
71
  const footerChanged = previousValue !== isMobile;
72
- const services = items.footerNavigation.services || [];
73
- const categories = items.footerNavigation.categories || [];
74
- const { generalInformation } = items.footerNavigation;
75
- const socialMedia = items.footerNavigation.socialMedia || {};
72
+ const { categories = [], generalInformation, services = [], socialMedia = {}, } = items.footerNavigation;
76
73
  let languages = [];
77
74
  if (items.businessId === 'Corporate') {
78
75
  const languagesObject = items.footerNavigation.languageSelector;
@@ -91,7 +88,7 @@ const Footer = ({ items = { businessId: 'NONE', footerNavigation: {} }, language
91
88
  resetFooter();
92
89
  previousValue = isMobile;
93
90
  }
94
- const footerContextData = React__default.useMemo(() => ({
91
+ const footerContextData = useMemo(() => ({
95
92
  language,
96
93
  collapseSize,
97
94
  isCollapsed,
@@ -1,9 +1,10 @@
1
- import React from 'react';
2
- import type { FooterProps, IsCollapsedProps } from '../Footer';
1
+ import type { Dispatch, SetStateAction } from 'react';
2
+ import type { FooterProps } from '../Footer';
3
+ import type { IsCollapsedProps } from '../types/footerProps';
3
4
  interface FooterContextProps extends Pick<FooterProps, 'collapseSize' | 'language'> {
4
5
  isCollapsed: IsCollapsedProps;
5
- setIsCollapsed: React.Dispatch<React.SetStateAction<IsCollapsedProps>>;
6
+ setIsCollapsed: Dispatch<SetStateAction<IsCollapsedProps>>;
6
7
  isMobileFooter?: boolean;
7
8
  }
8
- declare const FooterContext: React.Context<FooterContextProps>;
9
+ declare const FooterContext: import("react").Context<FooterContextProps>;
9
10
  export default FooterContext;
@@ -1,7 +1,7 @@
1
- import React__default from 'react';
1
+ import { createContext } from 'react';
2
2
  import breakpoints from '../../../themes/themeComponents/breakpoints.js';
3
3
 
4
- const FooterContext = React__default.createContext({
4
+ const FooterContext = createContext({
5
5
  language: 'fi',
6
6
  collapseSize: breakpoints.md,
7
7
  isCollapsed: {