@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
@@ -1,4 +1,4 @@
1
- import React__default, { useContext } from 'react';
1
+ import React__default, { useContext, useRef, useMemo } from 'react';
2
2
  import { useSpring, animated } from 'react-spring';
3
3
  import styled from '../../../themes/styled.js';
4
4
  import theme from '../../../themes/theme.js';
@@ -14,7 +14,6 @@ import { MenuLink, MenuList, MenuItem, MenuLinkWithChildren } from '../globalNav
14
14
  import BusinessMenu from './BusinessMenu.js';
15
15
  import LinkModifier, { isSelected } from './LinkModifier.js';
16
16
 
17
- // @ts-nocheck
18
17
  const MobileMenuWrapper = styled.div `
19
18
  width: ${100 * menuLevelsAmount}%;
20
19
  `;
@@ -93,7 +92,7 @@ const MobileMenu = styled.div `
93
92
  }
94
93
  `;
95
94
  const MenuItemBackLink = ({ currentLevel }) => {
96
- const { handleNavMenuClick, lang: language, menuLevel: { scrollPosition }, level1Items, level2Items, getBackLink, } = useContext(NavContext);
95
+ const { handleNavMenuClick, lang, menuLevel: { scrollPosition }, level1Items, level2Items, getBackLink, } = useContext(NavContext);
97
96
  const levels = {
98
97
  level1Items,
99
98
  level2Items,
@@ -107,19 +106,21 @@ const MenuItemBackLink = ({ currentLevel }) => {
107
106
  const tabNavigationDisabled = scrollPosition !== currentLevel - 1;
108
107
  const backLink = getBackLink(menuElements, currentLevel - 1);
109
108
  return (React__default.createElement(MenuItem, { key: `back-${backLink.id}`, "data-testid": `mobile-nav-menu-backlink-level-${currentLevel}` },
110
- React__default.createElement(MenuLinkBackLink, { role: "menu-item", as: "button", onClick: mobileMenuBackClick, tabIndex: tabNavigationDisabled ? -1 : undefined },
109
+ React__default.createElement(MenuLinkBackLink, { role: "menuitem", as: "button", onClick: mobileMenuBackClick, tabIndex: tabNavigationDisabled ? -1 : undefined },
111
110
  React__default.createElement(Icon, { icon: hlChevronLeft, size: "1rem" }),
112
- backLink.titles[language])));
111
+ backLink.titles[lang])));
113
112
  };
114
113
  const CreateSubMenuItem = ({ menuItem, currentLevel, itemIndex }) => {
115
- const { handleNavMenuClick, menuLevel: { scrollPosition }, lang: language, currentUrl, } = useContext(NavContext);
114
+ var _a;
115
+ const { handleNavMenuClick, menuLevel: { scrollPosition }, lang, currentUrl, } = useContext(NavContext);
116
116
  const { mobileMenuRef } = useContext(MobileMenuContext);
117
- const hasChildren = menuItem.pages && menuItem.pages.length;
117
+ const hasChildren = (_a = menuItem === null || menuItem === void 0 ? void 0 : menuItem.pages) === null || _a === void 0 ? void 0 : _a.length;
118
118
  const indexLevel = currentLevel - 1;
119
119
  const tabNavigationDisabled = () => scrollPosition !== indexLevel;
120
- const menuUrl = menuItem.urls[language] || '';
120
+ const menuUrl = menuItem.urls[lang] || '';
121
121
  const mobileMenuClick = (element) => (e) => {
122
- if (typeof mobileMenuRef.current.scroll === 'function') {
122
+ var _a;
123
+ if (typeof ((_a = mobileMenuRef === null || mobileMenuRef === void 0 ? void 0 : mobileMenuRef.current) === null || _a === void 0 ? void 0 : _a.scroll) === 'function') {
123
124
  mobileMenuRef.current.scroll({
124
125
  top: 0,
125
126
  left: 0,
@@ -132,7 +133,7 @@ const CreateSubMenuItem = ({ menuItem, currentLevel, itemIndex }) => {
132
133
  if (hasChildren && currentLevel < 3) {
133
134
  return (React__default.createElement(MenuItem, { key: menuItem.id, "aria-haspopup": "true", "data-testid": `mobile-menu-level-${currentLevel}-link-${itemIndex + 1}`, isActive: isSelected(currentUrl, menuUrl) },
134
135
  React__default.createElement(MenuLink, { as: "button", onClick: mobileMenuClick(menuItem), role: "menuitem", tabIndex: tabNavigationDisabled() ? -1 : undefined },
135
- menuItem.titles[language],
136
+ menuItem.titles[lang],
136
137
  React__default.createElement(Icon, { icon: hlChevronRight, size: "1rem" }))));
137
138
  }
138
139
  return (React__default.createElement(MenuItem, { key: menuItem.id, role: "menuitem", "data-testid": `mobile-menu-level-${currentLevel}-link-${itemIndex + 1}`, isActive: isSelected(currentUrl, menuUrl, true) },
@@ -148,9 +149,9 @@ const SubMenuMobile = ({ currentLevel, menuItem }) => {
148
149
  navElements.map((subMenuItem, index) => (React__default.createElement(CreateSubMenuItem, { menuItem: subMenuItem, currentLevel: currentLevel, key: subMenuItem.id, itemIndex: index })))));
149
150
  };
150
151
  const NavigationMenuMobile = () => {
151
- const { items: data, menuLevel, level1Items, level2Items } = useContext(NavContext);
152
- const { mainNavigation } = data;
153
- if (!mainNavigation.pages.length) {
152
+ const { items, menuLevel, level1Items, level2Items } = useContext(NavContext);
153
+ const { mainNavigation } = items;
154
+ if (!(mainNavigation === null || mainNavigation === void 0 ? void 0 : mainNavigation.pages.length)) {
154
155
  return null;
155
156
  }
156
157
  return (React__default.createElement(React__default.Fragment, null,
@@ -165,19 +166,22 @@ const NavigationMenuMobile = () => {
165
166
  };
166
167
  const RenderMobileMenu = () => {
167
168
  const { menuLevel, isMobileMenuOpen } = useContext(NavContext);
168
- const mobileMenuRef = React__default.useRef(null);
169
+ const mobileMenuRef = useRef(null);
169
170
  const slidingMenuAnimation = useSpring({
170
171
  transform: `translateX(${(menuLevel.scrollPosition / menuLevelsAmount) * -100}%)`,
171
172
  });
172
- const mobileMenuContext = {
173
+ const mobileMenuContext = useMemo(() => ({
173
174
  mobileMenuRef,
174
- };
175
- return (React__default.createElement(React__default.Fragment, null, isMobileMenuOpen && (React__default.createElement(MobileMenuContainer, { ref: mobileMenuRef },
175
+ }), [mobileMenuRef]);
176
+ if (!isMobileMenuOpen) {
177
+ return null;
178
+ }
179
+ return (React__default.createElement(MobileMenuContainer, { ref: mobileMenuRef },
176
180
  React__default.createElement(MobileMenuContext.Provider, { value: mobileMenuContext },
177
181
  React__default.createElement(MobileMenu, null,
178
182
  React__default.createElement(MobileMenuWrapper, null,
179
183
  React__default.createElement(animated.div, { style: slidingMenuAnimation },
180
- React__default.createElement(NavigationMenuMobile, null)))))))));
184
+ React__default.createElement(NavigationMenuMobile, null)))))));
181
185
  };
182
186
 
183
187
  export { RenderMobileMenu as default };
@@ -1,18 +1,16 @@
1
- import React__default from 'react';
1
+ import React__default, { useContext } from 'react';
2
2
  import Icon from '../../Icon/Icon.js';
3
3
  import 'tslib';
4
4
  import hlMagnifyingGlass from '../../Icons/hlMagnifyingGlass.js';
5
5
  import NavContext from '../context/NavContext.js';
6
6
  import MainNavTooltipMenu from './MainNavTooltipMenu.js';
7
- import { TooltipWrapper } from './MainNavTooltipMenuExportedStyles.js';
8
7
 
9
8
  const PageSearch = ({ searchLabel }) => {
10
9
  const globalStateString = 'search';
11
- const { navZIndex, searchComponent: SearchComponent, collapseSize, tooltipItems, } = React__default.useContext(NavContext);
10
+ const { navZIndex, searchComponent: SearchComponent } = useContext(NavContext);
12
11
  return (React__default.createElement(MainNavTooltipMenu, { zIndex: navZIndex + 1, tooltipRight: "0", contentComponent: SearchComponent, contentWidth: "100%", globalStateString: globalStateString, fullWidthDesktop: true, closeWhenTagClicked: ['a'] },
13
- React__default.createElement(TooltipWrapper, { collapseSize: collapseSize, isHighlighted: tooltipItems[globalStateString] },
14
- React__default.createElement(Icon, { icon: hlMagnifyingGlass, size: "2rem" }),
15
- React__default.createElement("span", null, searchLabel))));
12
+ React__default.createElement(Icon, { icon: hlMagnifyingGlass, size: "2rem" }),
13
+ React__default.createElement("span", null, searchLabel)));
16
14
  };
17
15
 
18
16
  export { PageSearch as default };
@@ -5,9 +5,9 @@ export interface RibbonDataProps {
5
5
  ribbonIcon: string;
6
6
  ribbonTexts: LangProps;
7
7
  }
8
- interface Ribbon {
8
+ interface Props {
9
9
  ribbonData: RibbonDataProps[];
10
10
  lang?: string;
11
11
  }
12
- declare const Ribbon: ({ ribbonData, lang }: Ribbon) => React.JSX.Element;
12
+ declare const Ribbon: ({ ribbonData, lang }: Props) => React.JSX.Element;
13
13
  export default Ribbon;
@@ -1,29 +1,29 @@
1
+ import type { ReactNode } from 'react';
1
2
  import React from 'react';
2
3
  import type { RibbonDataProps } from './ChildComponents/Ribbon';
3
4
  import type { GlobalNavItems } from './types/globalNavProps';
4
5
  export interface MainNavigationProps {
5
6
  /** Allows to pass a custom className */
6
7
  className?: string;
7
- children?: React.ReactNode;
8
8
  items?: GlobalNavItems;
9
9
  language?: string;
10
10
  zIndex?: number;
11
11
  search?: boolean;
12
12
  searchText?: string;
13
- searchComponent?: React.ReactNode | boolean;
13
+ searchComponent?: ReactNode | boolean;
14
14
  minicart?: boolean;
15
15
  minicartText?: string;
16
16
  minicartAmount?: number;
17
- minicartComponent?: React.ReactNode | boolean;
17
+ minicartComponent?: ReactNode | boolean;
18
18
  showMinicart?: boolean;
19
19
  showLoginTooltip?: boolean;
20
20
  login?: boolean;
21
21
  loginText?: string;
22
- loginComponent?: React.ReactNode | boolean;
22
+ loginComponent?: ReactNode | boolean;
23
23
  isLoggedIn?: boolean;
24
24
  collapseSize?: number;
25
25
  languageSelector?: boolean;
26
- nextJSLinkComponent: React.ReactNode | boolean;
26
+ nextJSLinkComponent: ReactNode | boolean;
27
27
  ribbon?: boolean;
28
28
  ribbonData?: RibbonDataProps[];
29
29
  currentUrl?: string;
@@ -1,6 +1,5 @@
1
1
  import { prop, indexBy } from 'ramda';
2
- import React__default, { useRef, useMemo, useState } from 'react';
3
- import useBodyClass from '../../hooks/modifyBodyClass.js';
2
+ import React__default, { useRef, useMemo, useState, useEffect } from 'react';
4
3
  import useScrollPosition from '../../hooks/useScrollPosition.js';
5
4
  import useWindowSize from '../../hooks/useWindowSize.js';
6
5
  import styled, { createGlobalStyle, keyframes } from '../../themes/styled.js';
@@ -20,7 +19,7 @@ const GlobalStyle = createGlobalStyle `
20
19
  `;
21
20
  // detect common touch screen devices
22
21
  const isIosDevice = () => {
23
- const validate = new RegExp(/iPad|iPhone|iPod|iPad Simulator|iPhone Simulator/i);
22
+ const validate = /iPad|iPhone|iPod|iPad Simulator|iPhone Simulator/i;
24
23
  if (typeof navigator !== 'undefined' && typeof window !== 'undefined') {
25
24
  return (validate.test(navigator.userAgent) &&
26
25
  !window.MSStream);
@@ -43,7 +42,7 @@ const fadeIn = keyframes `
43
42
  }
44
43
  `;
45
44
  const preventBodyScroll = () => {
46
- const scrollY = window.scrollY;
45
+ const { scrollY } = window;
47
46
  document.body.style.position = 'fixed';
48
47
  document.body.style.top = `-${scrollY}px`;
49
48
  };
@@ -54,7 +53,7 @@ const resumeBodyScroll = () => {
54
53
  // if the call to close overlay is done multiple times, scroll only the first time
55
54
  if (scrollY) {
56
55
  setTimeout(() => {
57
- window.scrollTo(0, parseInt(scrollY, undefined) * -1);
56
+ window.scrollTo(0, parseInt(scrollY, 10) * -1);
58
57
  });
59
58
  }
60
59
  };
@@ -112,7 +111,6 @@ const initiateScrollToHeader = (componentRef) => {
112
111
  };
113
112
  /** @visibleName Main Navigation */
114
113
  const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSelector = false, search = true, searchText = 'Haku', searchComponent = false, minicart = true, minicartText = 'Ostoskori', minicartComponent = false, minicartAmount = 0, showMinicart = false, showLoginTooltip = false, login = true, loginText = 'Kirjaudu', loginComponent, isLoggedIn = false, collapseSize = 767, nextJSLinkComponent = false, ribbon = true, ribbonData, className, currentUrl = '', notificationText = '', }) => {
115
- var _a, _b;
116
114
  const { isMobile } = useWindowSize(collapseSize);
117
115
  const props = {
118
116
  items,
@@ -139,14 +137,14 @@ const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSe
139
137
  };
140
138
  const navigationEl = useRef(null);
141
139
  const key = prop('id');
142
- const level1 = (_b = (_a = items.mainNavigation) === null || _a === void 0 ? void 0 : _a.pages) !== null && _b !== void 0 ? _b : [];
143
140
  // Index & memoize menu levels
141
+ const level1 = useMemo(() => { var _a, _b; return (_b = (_a = items.mainNavigation) === null || _a === void 0 ? void 0 : _a.pages) !== null && _b !== void 0 ? _b : []; }, [items.mainNavigation]);
144
142
  const level1Items = useMemo(() => indexBy(key, level1), [level1, key]);
145
143
  const level2 = useMemo(() => level1.map(item => indexBy(key, item.pages)), [level1, key]);
146
144
  const level2Items = Object.assign({}, ...level2);
147
145
  // All states to for handling menus
148
146
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
149
- const [menuLevel, setMenuLevel] = React__default.useState({
147
+ const [menuLevel, setMenuLevel] = useState({
150
148
  level1: null,
151
149
  animate1: true,
152
150
  level2: null,
@@ -157,26 +155,11 @@ const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSe
157
155
  hideOnScroll: false,
158
156
  });
159
157
  const [lang] = useState(language);
160
- const handleNavMenuClick = (newValue, updatedLevel) => {
161
- let clickedItself = false;
162
- switch (updatedLevel) {
163
- case 'level1':
164
- clickedItself = newValue === menuLevel.level1;
165
- setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level1: !clickedItself ? newValue : null, animate1: !clickedItself, level2: null, animate2: true }));
166
- break;
167
- case 'level2':
168
- clickedItself = newValue === menuLevel.level2;
169
- setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level2: newValue !== menuLevel.level2 ? newValue : null, animate1: false, animate2: !clickedItself }));
170
- break;
171
- case 'level1Mobile':
172
- setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level1Mobile: newValue || menuLevel.level1Mobile, scrollPosition: newValue ? 1 : 0 }));
173
- break;
174
- case 'level2Mobile':
175
- setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level2Mobile: newValue || menuLevel.level2Mobile, scrollPosition: newValue ? 2 : 1 }));
176
- break;
177
- }
158
+ // As scroll position cannot be always retained, close mobile menu when orientation changes
159
+ const initRotation = () => {
160
+ setIsMobileMenuOpen(false);
178
161
  };
179
- React__default.useEffect(() => {
162
+ useEffect(() => {
180
163
  if (iosDevice && isMobileMenuOpen) {
181
164
  window.addEventListener('orientationchange', initRotation, false);
182
165
  preventBodyScroll();
@@ -190,83 +173,126 @@ const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSe
190
173
  resumeBodyScroll();
191
174
  };
192
175
  }, [isMobileMenuOpen]);
193
- // As scroll position cannot be always retained, close mobile menu when orientation changes
194
- const initRotation = () => {
195
- setIsMobileMenuOpen(false);
196
- };
197
- const handleToggleClick = () => {
198
- resetMenuEvents();
199
- initiateScrollToHeader(navigationEl);
200
- setIsMobileMenuOpen(!isMobileMenuOpen);
201
- };
202
- const initialTooltipItems = {
176
+ const [tooltipItems, setTooltipItems] = useState(useMemo(() => ({
203
177
  minicart: false,
204
178
  login: false,
205
179
  search: false,
206
- };
207
- const [tooltipItems, setTooltipItems] = useState(initialTooltipItems);
180
+ }), []));
208
181
  const tooltipMenuActive = tooltipItems.minicart || tooltipItems.login || tooltipItems.search;
209
182
  const freezeOverflow = isMobileMenuOpen || (tooltipMenuActive && isMobile);
210
183
  const isPageOverlay = tooltipMenuActive || menuLevel.level1 || menuLevel.level2;
211
- useBodyClass(freezeOverflow ? 'overflow-hidden' : 'overflow-shown');
212
- const resetMenuEvents = () => {
213
- setMenuLevel({
214
- level2: null,
215
- animate2: true,
216
- level1: null,
217
- animate1: true,
218
- level1Mobile: null,
219
- level2Mobile: null,
220
- scrollPosition: 0,
221
- hideOnScroll: false,
222
- });
223
- if (isMobileMenuOpen) {
224
- setIsMobileMenuOpen(false);
184
+ useEffect(() => {
185
+ const bodyClasses = ['overflow-shown', 'overflow-hidden'];
186
+ document.body.classList.remove(...bodyClasses);
187
+ document.body.classList.add(bodyClasses[Number(Boolean(freezeOverflow))]);
188
+ }, [freezeOverflow]);
189
+ const navigationContext = useMemo(() => {
190
+ const handleNavMenuClick = (newValue, updatedLevel) => {
191
+ let clickedItself = false;
192
+ switch (updatedLevel) {
193
+ case 'level1':
194
+ clickedItself = newValue === menuLevel.level1;
195
+ setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level1: !clickedItself ? newValue : null, animate1: !clickedItself, level2: null, animate2: true }));
196
+ break;
197
+ case 'level2':
198
+ clickedItself = newValue === menuLevel.level2;
199
+ setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level2: newValue !== menuLevel.level2 ? newValue : null, animate1: false, animate2: !clickedItself }));
200
+ break;
201
+ case 'level1Mobile':
202
+ setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level1Mobile: newValue || menuLevel.level1Mobile, scrollPosition: newValue ? 1 : 0 }));
203
+ break;
204
+ case 'level2Mobile':
205
+ setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level2Mobile: newValue || menuLevel.level2Mobile, scrollPosition: newValue ? 2 : 1 }));
206
+ break;
207
+ }
208
+ };
209
+ const resetMenuEvents = () => {
210
+ setMenuLevel({
211
+ level2: null,
212
+ animate2: true,
213
+ level1: null,
214
+ animate1: true,
215
+ level1Mobile: null,
216
+ level2Mobile: null,
217
+ scrollPosition: 0,
218
+ hideOnScroll: false,
219
+ });
220
+ if (isMobileMenuOpen) {
221
+ setIsMobileMenuOpen(false);
222
+ }
223
+ setTooltipItems({
224
+ minicart: false,
225
+ login: false,
226
+ search: false,
227
+ });
228
+ };
229
+ const handleToggleClick = () => {
230
+ resetMenuEvents();
231
+ initiateScrollToHeader(navigationEl);
232
+ setIsMobileMenuOpen(!isMobileMenuOpen);
233
+ };
234
+ const getBackLink = (menuElements, i) => {
235
+ const idValue = menuLevel[`level${i}Mobile`];
236
+ return menuElements[idValue];
237
+ };
238
+ // Resets menu states when menu content alters between mobile and desktop
239
+ const menuChanged = previousValue !== isMobile;
240
+ if (menuChanged) {
241
+ resetMenuEvents();
242
+ previousValue = isMobile;
225
243
  }
226
- setTooltipItems(initialTooltipItems);
227
- };
228
- const getBackLink = (menuElements, i) => {
229
- const idValue = menuLevel[`level${i}Mobile`];
230
- return menuElements[idValue];
231
- };
232
- const navigationContext = {
244
+ return {
245
+ lang,
246
+ navZIndex: zIndex,
247
+ menuLevel,
248
+ handleNavMenuClick,
249
+ getBackLink,
250
+ isMobileMenu: isMobile,
251
+ items,
252
+ level1Items,
253
+ level2Items,
254
+ resetMenuEvents,
255
+ handleToggleClick,
256
+ isMobileMenuOpen,
257
+ nextJSLinkComponent,
258
+ loginComponent,
259
+ isLoggedIn,
260
+ collapseSize,
261
+ tooltipItems,
262
+ setTooltipItems,
263
+ minicartComponent,
264
+ showMinicart,
265
+ showLoginTooltip,
266
+ searchComponent,
267
+ currentUrl,
268
+ };
269
+ }, [
270
+ isMobile,
233
271
  lang,
234
- navZIndex: zIndex,
272
+ zIndex,
235
273
  menuLevel,
236
- handleNavMenuClick,
237
- getBackLink,
238
- isMobileMenu: isMobile,
239
274
  items,
240
275
  level1Items,
241
276
  level2Items,
242
- resetMenuEvents,
243
- handleToggleClick,
244
277
  isMobileMenuOpen,
245
278
  nextJSLinkComponent,
246
279
  loginComponent,
247
280
  isLoggedIn,
248
281
  collapseSize,
249
282
  tooltipItems,
250
- setTooltipItems,
251
283
  minicartComponent,
252
284
  showMinicart,
253
285
  showLoginTooltip,
254
286
  searchComponent,
255
287
  currentUrl,
256
- };
257
- // Resets menu states when menu content alters between mobile and desktop
258
- const menuChanged = previousValue !== isMobile;
259
- if (menuChanged) {
260
- resetMenuEvents();
261
- previousValue = isMobile;
262
- }
288
+ ]);
263
289
  useScrollPosition(({ prevPos, currPos }) => {
264
290
  const overThreshold = checkThreshold(prevPos.y, currPos.y);
265
291
  const isShow = currPos.y < prevPos.y;
266
292
  if (isShow !== menuLevel.hideOnScroll && overThreshold && !menuLevel.level1) {
267
293
  setMenuLevel(Object.assign(Object.assign({}, menuLevel), { animate1: false, animate2: false, hideOnScroll: isShow }));
268
294
  }
269
- }, [menuLevel], undefined, false, 200);
295
+ }, undefined, false, 200);
270
296
  return (React__default.createElement(React__default.Fragment, null,
271
297
  isPageOverlay && React__default.createElement(PageOverlay, { "data-testid": "navigation-overlay", navZIndex: zIndex }),
272
298
  React__default.createElement(GlobalNavigationContainer, { className: className, ref: navigationEl, collapseSize: collapseSize, menuLevel: menuLevel, "data-testid": "main-navigation", navZIndex: zIndex, tooltipMenuActive: tooltipMenuActive },
@@ -1,6 +1,6 @@
1
- import React from 'react';
1
+ import type { RefObject } from 'react';
2
2
  interface MobileMenuContextProps {
3
- mobileMenuRef: HTMLElement | null;
3
+ mobileMenuRef: RefObject<HTMLElement> | null;
4
4
  }
5
- declare const MobileMenuContext: React.Context<MobileMenuContextProps>;
5
+ declare const MobileMenuContext: import("react").Context<MobileMenuContextProps>;
6
6
  export default MobileMenuContext;
@@ -1,6 +1,6 @@
1
- import React__default from 'react';
1
+ import { createContext } from 'react';
2
2
 
3
- const MobileMenuContext = React__default.createContext({
3
+ const MobileMenuContext = createContext({
4
4
  mobileMenuRef: null,
5
5
  });
6
6
 
@@ -1,30 +1,29 @@
1
- import React from 'react';
2
- import { GlobalNavItems, MenuLevelItem, MenuStates } from '../types/globalNavProps';
1
+ import type { Dispatch, ReactNode, SetStateAction } from 'react';
2
+ import type { GlobalNavItems, MenuLevelItem, MenuStates, MenuTooltipItems, MobileMenuLevel } from '../types/globalNavProps';
3
3
  export interface NavContextProps {
4
4
  collapseSize: number;
5
5
  currentUrl: string;
6
- getBackLink: (menuElements: {
7
- [key: string]: MenuLevelItem;
8
- }, i: number) => MenuLevelItem;
6
+ getBackLink: (menuElements: MenuLevelItem[], i: number) => MenuLevelItem;
9
7
  handleNavMenuClick: (id: string | null, level: string) => void;
10
8
  handleToggleClick: () => void;
11
9
  isLoggedIn: boolean;
12
10
  isMobileMenu: boolean;
13
11
  isMobileMenuOpen: boolean;
14
12
  items: GlobalNavItems;
13
+ level1Items: MobileMenuLevel;
14
+ level2Items: MobileMenuLevel;
15
15
  lang: string;
16
- loginComponent?: React.ReactNode | boolean | undefined;
16
+ loginComponent?: ReactNode | boolean | undefined;
17
17
  menuLevel: MenuStates;
18
- minicartComponent?: React.ReactNode | boolean | undefined;
18
+ minicartComponent?: ReactNode | boolean | undefined;
19
19
  navZIndex: number;
20
- nextJSLinkComponent: React.ReactNode | boolean;
20
+ nextJSLinkComponent: ReactNode | boolean;
21
21
  resetMenuEvents: () => void;
22
- searchComponent?: React.ReactNode | boolean | undefined;
23
- tooltipItems: {
24
- minicart: boolean;
25
- login: boolean;
26
- search: boolean;
27
- };
22
+ searchComponent?: ReactNode | boolean | undefined;
23
+ setTooltipItems: Dispatch<SetStateAction<MenuTooltipItems>>;
24
+ showLoginTooltip: boolean;
25
+ showMinicart: boolean;
26
+ tooltipItems: MenuTooltipItems;
28
27
  }
29
- declare const NavContext: React.Context<NavContextProps>;
28
+ declare const NavContext: import("react").Context<NavContextProps>;
30
29
  export default NavContext;
@@ -1,6 +1,6 @@
1
- import React__default from 'react';
1
+ import { createContext } from 'react';
2
2
 
3
- const NavContext = React__default.createContext({
3
+ const NavContext = createContext({
4
4
  collapseSize: 767,
5
5
  currentUrl: '',
6
6
  getBackLink: () => ({ id: '', pages: [], titles: {}, urls: {} }),
@@ -11,6 +11,8 @@ const NavContext = React__default.createContext({
11
11
  isMobileMenuOpen: false,
12
12
  items: {},
13
13
  lang: 'fi',
14
+ level1Items: { level1: { id: '', pages: [], titles: {}, urls: {} } },
15
+ level2Items: { level2: { id: '', pages: [], titles: {}, urls: {} } },
14
16
  loginComponent: false,
15
17
  menuLevel: {
16
18
  level1: null,
@@ -27,6 +29,9 @@ const NavContext = React__default.createContext({
27
29
  nextJSLinkComponent: false,
28
30
  resetMenuEvents: () => { },
29
31
  searchComponent: false,
32
+ setTooltipItems: () => { },
33
+ showLoginTooltip: false,
34
+ showMinicart: true,
30
35
  tooltipItems: {
31
36
  minicart: false,
32
37
  login: false,
@@ -152,7 +152,7 @@ export declare const MenuItem: import("styled-components").StyledComponent<"li",
152
152
  h1: string;
153
153
  h2: string;
154
154
  };
155
- media: Record<string | number, (l: TemplateStringsArray, ...p: any[]) => string>;
155
+ media: Record<string | number, (l: TemplateStringsArray, ...p: (string | number)[]) => string>;
156
156
  radius: {
157
157
  default: string;
158
158
  s: string;
@@ -317,7 +317,7 @@ export declare const MenuLink: import("styled-components").StyledComponent<"a",
317
317
  h1: string;
318
318
  h2: string;
319
319
  };
320
- media: Record<string | number, (l: TemplateStringsArray, ...p: any[]) => string>;
320
+ media: Record<string | number, (l: TemplateStringsArray, ...p: (string | number)[]) => string>;
321
321
  radius: {
322
322
  default: string;
323
323
  s: string;
@@ -482,7 +482,7 @@ export declare const MenuLinkWithChildren: import("styled-components").StyledCom
482
482
  h1: string;
483
483
  h2: string;
484
484
  };
485
- media: Record<string | number, (l: TemplateStringsArray, ...p: any[]) => string>;
485
+ media: Record<string | number, (l: TemplateStringsArray, ...p: (string | number)[]) => string>;
486
486
  radius: {
487
487
  default: string;
488
488
  s: string;
@@ -648,7 +648,7 @@ export declare const MenuList: import("styled-components").StyledComponent<"ul",
648
648
  h1: string;
649
649
  h2: string;
650
650
  };
651
- media: Record<string | number, (l: TemplateStringsArray, ...p: any[]) => string>;
651
+ media: Record<string | number, (l: TemplateStringsArray, ...p: (string | number)[]) => string>;
652
652
  radius: {
653
653
  default: string;
654
654
  s: string;
@@ -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
  interface Props {
@@ -16,7 +17,7 @@ interface Props {
16
17
  /**
17
18
  * Content of the component
18
19
  */
19
- children?: React.ReactNode;
20
+ children?: ReactNode;
20
21
  /**
21
22
  * Allows to hide application from assistive screenreaders and other assistive technologies while the modal is open
22
23
  *
@@ -1,3 +1,4 @@
1
+ import type { MouseEvent, ReactNode } from 'react';
1
2
  import React from 'react';
2
3
  type NotificationType = 'info' | 'success' | 'warning' | 'error';
3
4
  interface Props {
@@ -15,7 +16,7 @@ interface Props {
15
16
  /**
16
17
  * Content of the component
17
18
  */
18
- children?: React.ReactNode;
19
+ children?: ReactNode;
19
20
  /**
20
21
  * Allows to show and hide close button
21
22
  *
@@ -25,7 +26,7 @@ interface Props {
25
26
  /**
26
27
  * On close button click callback
27
28
  */
28
- onClickCloseButton?: (e: React.MouseEvent<HTMLElement>) => void;
29
+ onClickCloseButton?: (e: MouseEvent<HTMLElement>) => void;
29
30
  /**
30
31
  * Allows to dismiss the notification programmatically
31
32
  *
@@ -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 the component
9
10
  */
10
- children?: React.ReactNode;
11
+ children?: ReactNode;
11
12
  /**
12
13
  * Allows to change CSS property `position`
13
14
  *
@@ -1,3 +1,4 @@
1
+ import type { ChangeEvent, ReactNode } from 'react';
1
2
  import React from 'react';
2
3
  type PillType = 'none' | 'checkbox' | 'radio';
3
4
  type Position = 'auto' | 'left' | 'right' | 'middle';
@@ -29,7 +30,7 @@ interface Props {
29
30
  /**
30
31
  * On checkbox/radiobutton change callback
31
32
  */
32
- onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
33
+ onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
33
34
  /**
34
35
  * Allows to set position of component relative to other content and adds appropriate margins
35
36
  *
@@ -62,7 +63,7 @@ interface Props {
62
63
  /**
63
64
  * Content of the component
64
65
  */
65
- children?: React.ReactNode;
66
+ children?: ReactNode;
66
67
  /**
67
68
  * Allows to pass testid string for testing purposes
68
69
  */
@@ -1,3 +1,4 @@
1
+ import type { MouseEvent } from 'react';
1
2
  import React from 'react';
2
3
  type ProgressIndicatorStatus = 'error';
3
4
  interface Props {
@@ -14,7 +15,7 @@ interface Props {
14
15
  * On Progress Indicator Item label or number click callback
15
16
  * Use `e.currentTarget.parentElement` to get Progress Indicator Item element
16
17
  */
17
- onStepClick?: (stepIndex: number, e: React.MouseEvent<HTMLElement>) => void;
18
+ onStepClick?: (stepIndex: number, e: MouseEvent<HTMLElement>) => void;
18
19
  /**
19
20
  * Allows to change version of component to small
20
21
  */