@digigov/ui 0.30.0-navlist.alpha.3 → 0.30.1

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 (293) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/admin/Drawer/__stories__/Default.js +43 -9
  3. package/admin/Pagination/index.d.ts +1 -1
  4. package/app/BottomInfoContainer/index.d.ts +9 -0
  5. package/app/BottomInfoContainer/index.js +35 -0
  6. package/app/BottomInfoContent/index.d.ts +9 -0
  7. package/app/BottomInfoContent/index.js +48 -0
  8. package/app/Header/__snapshots__/index.spec.tsx.snap +29 -370
  9. package/app/Header/__stories__/WithHeaderNavigation.js +6 -6
  10. package/app/Header/__stories__/WithNavigation.js +49 -18
  11. package/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +6 -15
  12. package/app/QrCodeScanner/index.spec.js +4 -2
  13. package/app/ThemeSelectorOptions/index.d.ts +2 -0
  14. package/app/ThemeSelectorOptions/index.js +80 -0
  15. package/app/index.d.ts +3 -0
  16. package/app/index.js +39 -0
  17. package/core/Accordion/__snapshots__/index.spec.tsx.snap +141 -68
  18. package/core/Accordion/index.d.ts +2 -2
  19. package/core/Blockquote/__snapshots__/index.spec.tsx.snap +7 -4
  20. package/core/Button/BackButton.d.ts +1 -1
  21. package/core/Button/__snapshots__/index.spec.tsx.snap +9 -5
  22. package/core/Details/__snapshots__/index.spec.tsx.snap +63 -32
  23. package/core/Divider/index.d.ts +1 -1
  24. package/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +3 -318
  25. package/core/Link/__snapshots__/index.spec.tsx.snap +16 -9
  26. package/core/List/__snapshots__/index.spec.tsx.snap +3 -318
  27. package/core/NavList/Nav.d.ts +3 -0
  28. package/core/NavList/Nav.js +30 -0
  29. package/core/NavList/NavList.d.ts +2 -3
  30. package/core/NavList/NavList.js +20 -32
  31. package/core/NavList/NavList.stories.d.ts +2 -0
  32. package/core/NavList/NavList.stories.js +28 -0
  33. package/core/NavList/NavList.stories.playwright.json +12 -12
  34. package/core/NavList/NavListAuto.d.ts +4 -0
  35. package/core/NavList/NavListAuto.js +42 -0
  36. package/core/NavList/NavListBase.d.ts +2 -2
  37. package/core/NavList/NavListBase.js +11 -6
  38. package/core/NavList/NavListContext.d.ts +7 -1
  39. package/core/NavList/NavListContext.js +19 -5
  40. package/core/NavList/NavListItem.d.ts +1 -10
  41. package/core/NavList/NavListItem.js +17 -121
  42. package/core/NavList/NavListItemAuto.d.ts +8 -0
  43. package/core/NavList/NavListItemAuto.js +65 -0
  44. package/core/NavList/NavListItemBase.d.ts +9 -11
  45. package/core/NavList/NavListItemBase.js +47 -139
  46. package/core/NavList/NavListItemButton.d.ts +3 -0
  47. package/core/NavList/NavListItemButton.js +30 -0
  48. package/core/NavList/NavListItemLink.d.ts +3 -0
  49. package/core/NavList/NavListItemLink.js +30 -0
  50. package/core/NavList/NavListSubMenu.d.ts +2 -2
  51. package/core/NavList/NavListSubMenu.js +3 -5
  52. package/core/NavList/NavMenu.d.ts +1 -1
  53. package/core/NavList/NavMenu.js +19 -8
  54. package/core/NavList/NavMenuContainer.d.ts +1 -1
  55. package/core/NavList/NavMenuContainer.js +19 -8
  56. package/core/NavList/NavMenuContainerContent.d.ts +1 -1
  57. package/core/NavList/NavMenuContainerContent.js +19 -8
  58. package/core/NavList/NavMenuContainerContentList.d.ts +1 -1
  59. package/core/NavList/NavMenuContainerContentList.js +19 -8
  60. package/core/NavList/NavMenuContainerContentListItem.d.ts +1 -1
  61. package/core/NavList/NavMenuContainerContentListItem.js +19 -8
  62. package/core/NavList/NavMenuContainerTitle.d.ts +1 -1
  63. package/core/NavList/NavMenuContainerTitle.js +19 -8
  64. package/core/NavList/NavVertical.d.ts +1 -1
  65. package/core/NavList/NavVertical.js +19 -8
  66. package/core/NavList/NavVerticalItem.d.ts +1 -1
  67. package/core/NavList/NavVerticalItem.js +19 -8
  68. package/core/NavList/__snapshots__/index.spec.tsx.snap +3 -330
  69. package/core/NavList/__stories__/Default.js +54 -13
  70. package/core/NavList/__stories__/NavHorizontalLayout.js +42 -16
  71. package/core/NavList/__stories__/NavListAutoExample.d.ts +2 -0
  72. package/core/NavList/__stories__/NavListAutoExample.js +63 -0
  73. package/core/NavList/__stories__/NavListEpathlaExample.d.ts +2 -0
  74. package/core/NavList/__stories__/NavListEpathlaExample.js +141 -0
  75. package/core/NavList/index.d.ts +8 -15
  76. package/core/NavList/index.js +38 -84
  77. package/core/NavList/types.d.ts +8 -3
  78. package/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +11 -725
  79. package/core/NotificationBanner/__stories__/Default.js +1 -1
  80. package/core/NotificationBanner/__stories__/Success.js +1 -1
  81. package/core/SummaryList/__snapshots__/index.spec.tsx.snap +87 -47
  82. package/core/SvgIcon/index.d.ts +1 -0
  83. package/core/SvgIcon/index.js +14 -0
  84. package/core/WarningText/__snapshots__/index.spec.tsx.snap +3 -332
  85. package/es/admin/Drawer/__stories__/Default.js +41 -10
  86. package/es/app/BottomInfoContainer/index.js +20 -0
  87. package/es/app/BottomInfoContent/index.js +33 -0
  88. package/es/app/Header/__snapshots__/index.spec.tsx.snap +29 -370
  89. package/es/app/Header/__stories__/WithHeaderNavigation.js +6 -6
  90. package/es/app/Header/__stories__/WithNavigation.js +48 -18
  91. package/es/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +6 -15
  92. package/es/app/QrCodeScanner/index.spec.js +4 -2
  93. package/es/app/ThemeSelectorOptions/index.js +55 -0
  94. package/es/app/index.js +4 -1
  95. package/es/core/Accordion/__snapshots__/index.spec.tsx.snap +141 -68
  96. package/es/core/Blockquote/__snapshots__/index.spec.tsx.snap +7 -4
  97. package/es/core/Button/__snapshots__/index.spec.tsx.snap +9 -5
  98. package/es/core/Details/__snapshots__/index.spec.tsx.snap +63 -32
  99. package/es/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +3 -318
  100. package/es/core/Link/__snapshots__/index.spec.tsx.snap +16 -9
  101. package/es/core/List/__snapshots__/index.spec.tsx.snap +3 -318
  102. package/es/core/NavList/Nav.js +3 -0
  103. package/es/core/NavList/NavList.js +2 -24
  104. package/es/core/NavList/NavList.stories.js +2 -0
  105. package/es/core/NavList/NavList.stories.playwright.json +12 -12
  106. package/es/core/NavList/NavListAuto.js +25 -0
  107. package/es/core/NavList/NavListBase.js +10 -6
  108. package/es/core/NavList/NavListContext.js +17 -5
  109. package/es/core/NavList/NavListItem.js +17 -113
  110. package/es/core/NavList/NavListItemAuto.js +40 -0
  111. package/es/core/NavList/NavListItemBase.js +42 -130
  112. package/es/core/NavList/NavListItemButton.js +3 -0
  113. package/es/core/NavList/NavListItemLink.js +3 -0
  114. package/es/core/NavList/NavListSubMenu.js +3 -5
  115. package/es/core/NavList/NavMenu.js +1 -1
  116. package/es/core/NavList/NavMenuContainer.js +1 -1
  117. package/es/core/NavList/NavMenuContainerContent.js +1 -1
  118. package/es/core/NavList/NavMenuContainerContentList.js +1 -1
  119. package/es/core/NavList/NavMenuContainerContentListItem.js +1 -1
  120. package/es/core/NavList/NavMenuContainerTitle.js +1 -1
  121. package/es/core/NavList/NavVertical.js +1 -1
  122. package/es/core/NavList/NavVerticalItem.js +1 -1
  123. package/es/core/NavList/__snapshots__/index.spec.tsx.snap +3 -330
  124. package/es/core/NavList/__stories__/Default.js +45 -13
  125. package/es/core/NavList/__stories__/NavHorizontalLayout.js +34 -15
  126. package/es/core/NavList/__stories__/NavListAutoExample.js +48 -0
  127. package/es/core/NavList/__stories__/NavListEpathlaExample.js +123 -0
  128. package/es/core/NavList/index.js +8 -43
  129. package/es/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +11 -725
  130. package/es/core/NotificationBanner/__stories__/Default.js +1 -1
  131. package/es/core/NotificationBanner/__stories__/Success.js +1 -1
  132. package/es/core/SummaryList/__snapshots__/index.spec.tsx.snap +87 -47
  133. package/es/core/SvgIcon/index.js +1 -0
  134. package/es/core/WarningText/__snapshots__/index.spec.tsx.snap +3 -332
  135. package/es/govgr/Footer/Copyright.js +5 -2
  136. package/es/hooks/useNavList.js +36 -0
  137. package/es/hooks/useTheme.js +43 -0
  138. package/es/hooks/useTogglableSections.js +2 -2
  139. package/es/layouts/Basic/__snapshots__/index.spec.tsx.snap +73 -38
  140. package/es/registry.js +20 -10
  141. package/esm/admin/Drawer/__stories__/Default.js +41 -10
  142. package/esm/app/BottomInfoContainer/index.js +20 -0
  143. package/esm/app/BottomInfoContent/index.js +33 -0
  144. package/esm/app/Header/__snapshots__/index.spec.tsx.snap +29 -370
  145. package/esm/app/Header/__stories__/WithHeaderNavigation.js +6 -6
  146. package/esm/app/Header/__stories__/WithNavigation.js +48 -18
  147. package/esm/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +6 -15
  148. package/esm/app/QrCodeScanner/index.spec.js +4 -2
  149. package/esm/app/ThemeSelectorOptions/index.js +55 -0
  150. package/esm/app/index.js +4 -1
  151. package/esm/core/Accordion/__snapshots__/index.spec.tsx.snap +141 -68
  152. package/esm/core/Blockquote/__snapshots__/index.spec.tsx.snap +7 -4
  153. package/esm/core/Button/__snapshots__/index.spec.tsx.snap +9 -5
  154. package/esm/core/Details/__snapshots__/index.spec.tsx.snap +63 -32
  155. package/esm/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +3 -318
  156. package/esm/core/Link/__snapshots__/index.spec.tsx.snap +16 -9
  157. package/esm/core/List/__snapshots__/index.spec.tsx.snap +3 -318
  158. package/esm/core/NavList/Nav.js +3 -0
  159. package/esm/core/NavList/NavList.js +2 -24
  160. package/esm/core/NavList/NavList.stories.js +2 -0
  161. package/esm/core/NavList/NavList.stories.playwright.json +12 -12
  162. package/esm/core/NavList/NavListAuto.js +25 -0
  163. package/esm/core/NavList/NavListBase.js +10 -6
  164. package/esm/core/NavList/NavListContext.js +17 -5
  165. package/esm/core/NavList/NavListItem.js +17 -113
  166. package/esm/core/NavList/NavListItemAuto.js +40 -0
  167. package/esm/core/NavList/NavListItemBase.js +42 -130
  168. package/esm/core/NavList/NavListItemButton.js +3 -0
  169. package/esm/core/NavList/NavListItemLink.js +3 -0
  170. package/esm/core/NavList/NavListSubMenu.js +3 -5
  171. package/esm/core/NavList/NavMenu.js +1 -1
  172. package/esm/core/NavList/NavMenuContainer.js +1 -1
  173. package/esm/core/NavList/NavMenuContainerContent.js +1 -1
  174. package/esm/core/NavList/NavMenuContainerContentList.js +1 -1
  175. package/esm/core/NavList/NavMenuContainerContentListItem.js +1 -1
  176. package/esm/core/NavList/NavMenuContainerTitle.js +1 -1
  177. package/esm/core/NavList/NavVertical.js +1 -1
  178. package/esm/core/NavList/NavVerticalItem.js +1 -1
  179. package/esm/core/NavList/__snapshots__/index.spec.tsx.snap +3 -330
  180. package/esm/core/NavList/__stories__/Default.js +45 -13
  181. package/esm/core/NavList/__stories__/NavHorizontalLayout.js +34 -15
  182. package/esm/core/NavList/__stories__/NavListAutoExample.js +48 -0
  183. package/esm/core/NavList/__stories__/NavListEpathlaExample.js +123 -0
  184. package/esm/core/NavList/index.js +8 -43
  185. package/esm/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +11 -725
  186. package/esm/core/NotificationBanner/__stories__/Default.js +1 -1
  187. package/esm/core/NotificationBanner/__stories__/Success.js +1 -1
  188. package/esm/core/SummaryList/__snapshots__/index.spec.tsx.snap +87 -47
  189. package/esm/core/SvgIcon/index.js +1 -0
  190. package/esm/core/WarningText/__snapshots__/index.spec.tsx.snap +3 -332
  191. package/esm/govgr/Footer/Copyright.js +5 -2
  192. package/esm/hooks/useNavList.js +36 -0
  193. package/esm/hooks/useTheme.js +43 -0
  194. package/esm/hooks/useTogglableSections.js +2 -2
  195. package/esm/index.js +1 -1
  196. package/esm/layouts/Basic/__snapshots__/index.spec.tsx.snap +73 -38
  197. package/esm/registry.js +20 -10
  198. package/govgr/Footer/Copyright.js +7 -2
  199. package/hooks/useNavList.d.ts +8 -0
  200. package/hooks/useNavList.js +52 -0
  201. package/hooks/useTheme.d.ts +8 -0
  202. package/hooks/useTheme.js +58 -0
  203. package/hooks/useTogglableSections.d.ts +2 -2
  204. package/hooks/useTogglableSections.js +2 -2
  205. package/layouts/Basic/Content/index.d.ts +1 -1
  206. package/layouts/Basic/Side/index.d.ts +1 -1
  207. package/layouts/Basic/__snapshots__/index.spec.tsx.snap +73 -38
  208. package/package.json +3 -3
  209. package/registry.d.ts +10 -5
  210. package/registry.js +29 -14
  211. package/src/admin/Drawer/__stories__/Default.tsx +59 -11
  212. package/src/app/BottomInfoContainer/index.tsx +19 -0
  213. package/src/app/BottomInfoContent/index.tsx +32 -0
  214. package/src/app/Header/__snapshots__/index.spec.tsx.snap +29 -370
  215. package/src/app/Header/__stories__/WithHeaderNavigation.tsx +10 -10
  216. package/src/app/Header/__stories__/WithNavigation.tsx +50 -41
  217. package/src/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +6 -15
  218. package/src/app/QrCodeScanner/index.spec.tsx +10 -8
  219. package/src/app/ThemeSelectorOptions/index.tsx +54 -0
  220. package/src/app/index.ts +3 -0
  221. package/src/core/Accordion/__snapshots__/index.spec.tsx.snap +141 -68
  222. package/src/core/Blockquote/__snapshots__/index.spec.tsx.snap +7 -4
  223. package/src/core/Button/__snapshots__/index.spec.tsx.snap +9 -5
  224. package/src/core/Details/__snapshots__/index.spec.tsx.snap +63 -32
  225. package/src/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +3 -318
  226. package/src/core/Link/__snapshots__/index.spec.tsx.snap +16 -9
  227. package/src/core/List/__snapshots__/index.spec.tsx.snap +3 -318
  228. package/src/core/NavList/Nav.tsx +3 -0
  229. package/src/core/NavList/NavList.stories.js +2 -0
  230. package/src/core/NavList/NavList.stories.playwright.json +12 -12
  231. package/src/core/NavList/NavList.tsx +2 -23
  232. package/src/core/NavList/NavListAuto.tsx +20 -0
  233. package/src/core/NavList/NavListBase.tsx +8 -7
  234. package/src/core/NavList/NavListContext.tsx +17 -5
  235. package/src/core/NavList/NavListItem.tsx +30 -115
  236. package/src/core/NavList/NavListItemAuto.tsx +41 -0
  237. package/src/core/NavList/NavListItemBase.tsx +56 -139
  238. package/src/core/NavList/NavListItemButton.tsx +3 -0
  239. package/src/core/NavList/NavListItemLink.tsx +3 -0
  240. package/src/core/NavList/NavListSubMenu.tsx +6 -12
  241. package/src/core/NavList/NavMenu.tsx +1 -2
  242. package/src/core/NavList/NavMenuContainer.tsx +1 -2
  243. package/src/core/NavList/NavMenuContainerContent.tsx +1 -2
  244. package/src/core/NavList/NavMenuContainerContentList.tsx +1 -2
  245. package/src/core/NavList/NavMenuContainerContentListItem.tsx +1 -2
  246. package/src/core/NavList/NavMenuContainerTitle.tsx +1 -2
  247. package/src/core/NavList/NavVertical.tsx +1 -2
  248. package/src/core/NavList/NavVerticalItem.tsx +1 -2
  249. package/src/core/NavList/__snapshots__/index.spec.tsx.snap +3 -330
  250. package/src/core/NavList/__stories__/Default.tsx +61 -16
  251. package/src/core/NavList/__stories__/NavHorizontalLayout.tsx +50 -45
  252. package/src/core/NavList/__stories__/NavListAutoExample.tsx +53 -0
  253. package/src/core/NavList/__stories__/NavListEpathlaExample.tsx +174 -0
  254. package/src/core/NavList/index.tsx +8 -48
  255. package/src/core/NavList/types.tsx +10 -4
  256. package/src/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +11 -725
  257. package/src/core/NotificationBanner/__stories__/Default.tsx +1 -1
  258. package/src/core/NotificationBanner/__stories__/Success.tsx +1 -1
  259. package/src/core/SummaryList/__snapshots__/index.spec.tsx.snap +87 -47
  260. package/src/core/SvgIcon/index.tsx +1 -0
  261. package/src/core/WarningText/__snapshots__/index.spec.tsx.snap +3 -332
  262. package/src/govgr/Footer/Copyright.tsx +2 -1
  263. package/src/hooks/useNavList.ts +36 -0
  264. package/src/hooks/useTheme.ts +49 -0
  265. package/src/hooks/useTogglableSections.tsx +3 -3
  266. package/src/layouts/Basic/__snapshots__/index.spec.tsx.snap +73 -38
  267. package/src/registry.js +20 -10
  268. package/typography/Caption/index.d.ts +1 -1
  269. package/core/NavList/NavHorizontal.d.ts +0 -3
  270. package/core/NavList/NavHorizontal.js +0 -19
  271. package/core/NavList/NavHorizontalList.d.ts +0 -3
  272. package/core/NavList/NavHorizontalList.js +0 -19
  273. package/core/NavList/NavHorizontalListItem.d.ts +0 -4
  274. package/core/NavList/NavHorizontalListItem.js +0 -30
  275. package/core/NavList/NavHorizontalListItemButton.d.ts +0 -3
  276. package/core/NavList/NavHorizontalListItemButton.js +0 -19
  277. package/core/NavList/NavHorizontalListItemLink.d.ts +0 -3
  278. package/core/NavList/NavHorizontalListItemLink.js +0 -19
  279. package/es/core/NavList/NavHorizontal.js +0 -3
  280. package/es/core/NavList/NavHorizontalList.js +0 -3
  281. package/es/core/NavList/NavHorizontalListItem.js +0 -13
  282. package/es/core/NavList/NavHorizontalListItemButton.js +0 -3
  283. package/es/core/NavList/NavHorizontalListItemLink.js +0 -3
  284. package/esm/core/NavList/NavHorizontal.js +0 -3
  285. package/esm/core/NavList/NavHorizontalList.js +0 -3
  286. package/esm/core/NavList/NavHorizontalListItem.js +0 -13
  287. package/esm/core/NavList/NavHorizontalListItemButton.js +0 -3
  288. package/esm/core/NavList/NavHorizontalListItemLink.js +0 -3
  289. package/src/core/NavList/NavHorizontal.tsx +0 -4
  290. package/src/core/NavList/NavHorizontalList.tsx +0 -4
  291. package/src/core/NavList/NavHorizontalListItem.tsx +0 -32
  292. package/src/core/NavList/NavHorizontalListItemButton.tsx +0 -3
  293. package/src/core/NavList/NavHorizontalListItemLink.tsx +0 -3
@@ -0,0 +1,41 @@
1
+ import React, { useContext } from 'react';
2
+ import Divider from '@digigov/react-core/SectionBreak';
3
+ import NavListItemBase from '@digigov/ui/core/NavList/NavListItemBase';
4
+ import NavListSubMenu from '@digigov/ui/core/NavList/NavListSubMenu';
5
+ import NavListContext from '@digigov/ui/core/NavList/NavListContext';
6
+
7
+ export interface NavListItemAutoProps {
8
+ item?: any;
9
+ children?: React.ReactNode;
10
+ role?: string;
11
+ }
12
+
13
+ export const NavListItemAuto: React.FC<NavListItemAutoProps> = ({
14
+ item,
15
+ children,
16
+ role,
17
+ ...props
18
+ }) => {
19
+ const { layout, showDividers, links, container, setRegister } = useContext(
20
+ NavListContext
21
+ );
22
+ const { subMenu } = links.find((link) => link.name === item.name) || {};
23
+
24
+ return (
25
+ <React.Fragment>
26
+ <NavListItemBase
27
+ container={container}
28
+ setRegister={setRegister}
29
+ item={item}
30
+ layout={layout}
31
+ role={role}
32
+ {...props}
33
+ >
34
+ {subMenu && subMenu?.length > 0 && <NavListSubMenu links={subMenu} />}
35
+ </NavListItemBase>
36
+ {showDividers && <Divider />}
37
+ </React.Fragment>
38
+ );
39
+ };
40
+
41
+ export default NavListItemAuto;
@@ -1,149 +1,66 @@
1
- import React, { useState, useEffect } from 'react';
2
- import clsx from 'clsx';
3
- import { makeStyles } from '@material-ui/core/styles';
4
- import ExpandMore from '@material-ui/icons/ExpandMore';
1
+ import React from 'react';
5
2
  import Link from '@digigov/ui/core/Link';
6
- import { useRouter } from '@digigov/ui/router';
3
+ import {
4
+ isNavListItemLinkInterface,
5
+ NavListLayout,
6
+ } from '@digigov/ui/core/NavList/types';
7
+ import NavListItem from '@digigov/ui/core/NavList/NavListItem';
8
+ import NavMenu from '@digigov/ui/core/NavList/NavMenu';
9
+ import NavMenuContainer from '@digigov/ui/core/NavList/NavMenuContainer';
10
+ import NavMenuContainerTitle from '@digigov/ui/core/NavList/NavMenuContainerTitle';
11
+ import NavMenuContainerContent from '@digigov/ui/core/NavList/NavMenuContainerContent';
12
+ import NavMenuContainerContentList from '@digigov/ui/core/NavList/NavMenuContainerContentList';
13
+ import NavMenuContainerContentListItem from '@digigov/ui/core/NavList/NavMenuContainerContentListItem';
7
14
 
8
- const TRAILING_SLASH = /\/$/gm;
9
- export const useNavListItemBaseStyles = makeStyles(
10
- (theme) => {
11
- const transition = {
12
- duration: theme.transitions.duration.shortest,
13
- };
14
- return {
15
- root: {
16
- position: 'relative',
17
- listStyle: 'none',
18
- boxSizing: 'border-box',
19
- textAlign: 'left',
20
- margin: theme.spacing(0),
21
- ...theme.typography.body1,
22
- '&$horizontal': {
23
- flexDirection: 'column',
24
- },
25
- },
26
- link: {
27
- display: 'flex',
28
- flexGrow: 1,
29
- padding: theme.spacing(1),
30
- textDecoration: 'none',
31
- '&:hover': {
32
- textDecoration: 'underline',
33
- },
34
- },
35
- selected: {
36
- fontWeight: 'bolder',
37
- '&$horizontal': {
38
- borderStyle: 'solid',
39
- borderColor: theme.palette.secondary.main,
40
- borderTop: 0,
41
- borderLeft: 0,
42
- borderRight: 0,
43
- },
44
- '&$vertical': {
45
- border: 0,
46
- },
47
- },
48
- // Pseudoclasses - do not remove //
49
- horizontal: {},
50
- vertical: {},
51
- // End Pseudoclasses //
52
- label: {
53
- display: 'flex',
54
- alignItems: 'center',
55
- flex: 'auto',
56
- },
57
- icon: {
58
- display: 'flex',
59
- alignItems: 'center',
60
- transform: 'rotate(0deg)',
61
- transition: theme.transitions.create('transform', transition),
62
- '&$open': {
63
- transform: 'rotate(180deg)',
64
- },
65
- },
66
- submenu: {
67
- display: 'flex',
68
- },
69
- /* Pseudo-class applied to the Expand icon if `open={true}`. */
70
- open: {},
71
- };
72
- },
73
- { name: 'MuiNavListItemBase' }
74
- );
75
15
  export interface NavListItemBaseProps {
16
+ container?: (key: string) => { active: boolean; id: string };
17
+ setRegister?: (name: string) => any;
76
18
  children?: React.ReactNode;
77
- href?: string;
78
- label?: React.ReactNode;
79
- className?: string;
80
- expandOn?: 'hover' | 'click';
81
- selected?: boolean;
82
- isNested?: boolean;
83
- horizontal?: boolean;
84
- open?: boolean;
85
- onClick?: (e: any) => void;
19
+ item?: any;
20
+ layout?: NavListLayout;
86
21
  role?: string;
87
22
  }
88
23
 
89
- export const NavListItemBase = React.forwardRef<
90
- HTMLLIElement,
91
- NavListItemBaseProps
92
- >(function NavListItemBase(
93
- {
94
- href = '#',
95
- label,
96
- children,
97
- className,
98
- open = false,
99
- horizontal = false,
100
- selected = false,
101
- isNested,
102
- expandOn,
103
- onClick,
104
- role,
105
- ...props
106
- },
107
- ref
108
- ) {
109
- const classes = useNavListItemBaseStyles();
110
- const [privateSelected, setPrivateSelected] = useState<boolean>(selected);
111
- const { router } = useRouter();
112
-
113
- useEffect(() => {
114
- const asPath = router?.asPath.split('?').shift();
115
- const isSelected =
116
- asPath?.replace(TRAILING_SLASH, '') === href.replace(TRAILING_SLASH, '');
117
- if (isSelected !== privateSelected) {
118
- setPrivateSelected(isSelected);
119
- }
120
- }, [href, router?.asPath, selected, privateSelected]);
24
+ export const NavListItemBase: React.FC<NavListItemBaseProps> = ({
25
+ container,
26
+ setRegister,
27
+ children,
28
+ item,
29
+ layout = 'horizontal',
30
+ role,
31
+ ...props
32
+ }) => {
121
33
  return (
122
- <li
123
- ref={ref}
124
- className={clsx(
125
- className,
126
- classes.root,
127
- horizontal && classes.horizontal
128
- )}
129
- onClick={onClick}
130
- role="none"
131
- >
132
- <div
133
- className={clsx(
134
- horizontal ? classes.horizontal : classes.vertical,
135
- (selected || privateSelected) && classes.selected
136
- )}
137
- >
138
- <Link href={href} className={classes.link} {...props} role={role}>
139
- <span className={classes.label}>{label}</span>
140
- <span className={clsx(classes.icon, open && classes.open)}>
141
- {isNested && <ExpandMore />}
142
- </span>
143
- </Link>
144
- </div>
145
- <div className={classes.submenu}>{children}</div>
146
- </li>
34
+ <>
35
+ <NavListItem
36
+ layout={layout}
37
+ link={item}
38
+ setRegister={setRegister}
39
+ role="menuitem"
40
+ {...props}
41
+ />
42
+ <NavMenu layout={layout} {...(container && container(item.name))}>
43
+ <NavMenuContainer layout={layout} paddingLeft={5} paddingRight={5}>
44
+ <NavMenuContainerTitle layout={layout}>
45
+ {item.label}
46
+ </NavMenuContainerTitle>
47
+ <NavMenuContainerContent>
48
+ <NavMenuContainerContentList layout={layout}>
49
+ {item.subMenu?.map((subMenu, menuIndex) => {
50
+ return (
51
+ isNavListItemLinkInterface(subMenu) && (
52
+ <NavMenuContainerContentListItem key={menuIndex}>
53
+ <Link href={subMenu.href}>{subMenu.label}</Link>
54
+ </NavMenuContainerContentListItem>
55
+ )
56
+ );
57
+ })}
58
+ </NavMenuContainerContentList>
59
+ </NavMenuContainerContent>
60
+ </NavMenuContainer>
61
+ </NavMenu>
62
+ </>
147
63
  );
148
- });
64
+ };
65
+
149
66
  export default NavListItemBase;
@@ -0,0 +1,3 @@
1
+ import NavListItemButton from '@digigov/react-core/NavListItemButton';
2
+ export * from '@digigov/react-core/NavListItemButton';
3
+ export default NavListItemButton;
@@ -0,0 +1,3 @@
1
+ import NavListItemLink from '@digigov/react-core/NavListItemLink';
2
+ export * from '@digigov/react-core/NavListItemLink';
3
+ export default NavListItemLink;
@@ -1,12 +1,12 @@
1
1
  import React, { useContext } from 'react';
2
- import { NavListProps } from '@digigov/ui/core/NavList/types';
2
+ import { NavListAutoProps } from '@digigov/ui/core/NavList/types';
3
3
  import { NavListBase } from '@digigov/ui/core/NavList/NavListBase';
4
4
  import NavListItemBase from '@digigov/ui/core/NavList/NavListItemBase';
5
5
  import NavListContext, {
6
6
  NavLinkInterface,
7
7
  } from '@digigov/ui/core/NavList/NavListContext';
8
8
 
9
- export interface NavListSubMenuProps extends NavListProps {
9
+ export interface NavListSubMenuProps extends NavListAutoProps {
10
10
  links: NavLinkInterface[];
11
11
  }
12
12
 
@@ -14,19 +14,13 @@ export const NavListSubMenu: React.FC<NavListSubMenuProps> = ({
14
14
  links,
15
15
  ...props
16
16
  }) => {
17
- const { horizontal } = useContext(NavListContext);
17
+ const { layout } = useContext(NavListContext);
18
+
18
19
  return (
19
- <NavListBase subMenu floating={horizontal} {...props}>
20
+ <NavListBase subMenu floating={layout === 'horizontal'} {...props}>
20
21
  {links &&
21
22
  links.map((subMenuLink, key) => {
22
- return (
23
- <NavListItemBase
24
- expandOn="hover"
25
- key={key}
26
- href={subMenuLink.href}
27
- label={subMenuLink.label}
28
- />
29
- );
23
+ return <NavListItemBase key={key} item={subMenuLink} />;
30
24
  })}
31
25
  </NavListBase>
32
26
  );
@@ -1,4 +1,3 @@
1
1
  import NavMenu from '@digigov/react-core/NavMenu';
2
-
3
- export { NavMenu };
2
+ export * from '@digigov/react-core/NavMenu';
4
3
  export default NavMenu;
@@ -1,4 +1,3 @@
1
1
  import NavMenuContainer from '@digigov/react-core/NavMenuContainer';
2
-
3
- export { NavMenuContainer };
2
+ export * from '@digigov/react-core/NavMenuContainer';
4
3
  export default NavMenuContainer;
@@ -1,4 +1,3 @@
1
1
  import NavMenuContainerContent from '@digigov/react-core/NavMenuContainerContent';
2
-
3
- export { NavMenuContainerContent };
2
+ export * from '@digigov/react-core/NavMenuContainerContent';
4
3
  export default NavMenuContainerContent;
@@ -1,4 +1,3 @@
1
1
  import NavMenuContainerContentList from '@digigov/react-core/NavMenuContainerContentList';
2
-
3
- export { NavMenuContainerContentList };
2
+ export * from '@digigov/react-core/NavMenuContainerContentList';
4
3
  export default NavMenuContainerContentList;
@@ -1,4 +1,3 @@
1
1
  import NavMenuContainerContentListItem from '@digigov/react-core/NavMenuContainerContentListItem';
2
-
3
- export { NavMenuContainerContentListItem };
2
+ export * from '@digigov/react-core/NavMenuContainerContentListItem';
4
3
  export default NavMenuContainerContentListItem;
@@ -1,4 +1,3 @@
1
1
  import NavMenuContainerTitle from '@digigov/react-core/NavMenuContainerTitle';
2
-
3
- export { NavMenuContainerTitle };
2
+ export * from '@digigov/react-core/NavMenuContainerTitle';
4
3
  export default NavMenuContainerTitle;
@@ -1,4 +1,3 @@
1
1
  import NavVertical from '@digigov/react-core/NavVertical';
2
-
3
- export { NavVertical };
2
+ export * from '@digigov/react-core/NavVertical';
4
3
  export default NavVertical;
@@ -1,4 +1,3 @@
1
1
  import NavVerticalItem from '@digigov/react-core/NavVerticalItem';
2
-
3
- export { NavVerticalItem };
2
+ export * from '@digigov/react-core/NavVerticalItem';
4
3
  export default NavVerticalItem;