@digigov/ui 0.11.0 → 0.12.2

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 (661) hide show
  1. package/.eslintrc.js +4 -0
  2. package/.prettierrc.js +3 -0
  3. package/.rush/temp/package-deps_build.json +176 -0
  4. package/.rush/temp/shrinkwrap-deps.json +278 -0
  5. package/CHANGELOG.json +796 -0
  6. package/CHANGELOG.md +22 -1
  7. package/docs/components.mdx +1 -0
  8. package/docs/create-a-new-service.mdx +93 -0
  9. package/docs/create-common-page-layout.mdx +205 -0
  10. package/docs/create-static-page.mdx +179 -0
  11. package/docs/edit-start-page.mdx +143 -0
  12. package/docs/index.mdx +66 -0
  13. package/docs/introduction.mdx +34 -0
  14. package/package.json +31 -8
  15. package/src/api/APIErrors.tsx +44 -0
  16. package/src/api/APIProvider.tsx +27 -0
  17. package/src/api/fetchAPI.ts +45 -0
  18. package/src/api/index.spec.tsx +419 -0
  19. package/{esm/api/index.js → src/api/index.tsx} +6 -3
  20. package/{api → src/api}/introduction.md +0 -0
  21. package/src/api/useResource.tsx +96 -0
  22. package/src/api/useResourceAction.tsx +80 -0
  23. package/src/api/useResourceQuery.tsx +177 -0
  24. package/src/api/utils.tsx +156 -0
  25. package/src/app/App.tsx +33 -0
  26. package/{app/Confirmation/index.d.ts → src/app/Confirmation/index.tsx} +0 -0
  27. package/{app/Footer/index.d.ts → src/app/Footer/index.tsx} +0 -0
  28. package/{es/app/Header/HeaderLogo.js → src/app/Header/HeaderLogo.tsx} +9 -7
  29. package/src/app/Header/HeaderSection.tsx +13 -0
  30. package/src/app/Header/HeaderTitle.tsx +24 -0
  31. package/{app → src/app}/Header/__snapshots__/index.spec.tsx.snap +0 -0
  32. package/{app → src/app}/Header/index.mdx +0 -0
  33. package/src/app/Header/index.spec.tsx +32 -0
  34. package/{esm/app/Header/index.js → src/app/Header/index.tsx} +10 -4
  35. package/src/app/NotFound/index.tsx +21 -0
  36. package/src/app/OutdatedBrowserBanner.tsx +37 -0
  37. package/src/app/PageTitle.tsx +70 -0
  38. package/{app → src/app}/QrCodeScanner/__snapshots__/index.spec.tsx.snap +0 -0
  39. package/{app → src/app}/QrCodeScanner/index.mdx +0 -0
  40. package/src/app/QrCodeScanner/index.spec.tsx +19 -0
  41. package/src/app/QrCodeScanner/index.tsx +90 -0
  42. package/src/app/i18n.tsx +44 -0
  43. package/{app/index.d.ts → src/app/index.ts} +0 -0
  44. package/{core → src/core}/Accordion/__snapshots__/index.spec.tsx.snap +0 -0
  45. package/{core → src/core}/Accordion/index.mdx +0 -0
  46. package/src/core/Accordion/index.spec.tsx +30 -0
  47. package/src/core/Accordion/index.tsx +86 -0
  48. package/{core → src/core}/Blockquote/__snapshots__/index.spec.tsx.snap +0 -0
  49. package/{core → src/core}/Blockquote/index.mdx +0 -0
  50. package/src/core/Blockquote/index.spec.tsx +10 -0
  51. package/{esm/core/Blockquote/index.js → src/core/Blockquote/index.tsx} +9 -7
  52. package/{core/Breadcrumbs/index.d.ts → src/core/Breadcrumbs/index.tsx} +0 -0
  53. package/{esm/core/Button/BackButton.js → src/core/Button/BackButton.tsx} +10 -8
  54. package/src/core/Button/ButtonLink.tsx +20 -0
  55. package/src/core/Button/CallToAction.tsx +31 -0
  56. package/src/core/Button/Icon.tsx +9 -0
  57. package/{core → src/core}/Button/__snapshots__/index.spec.tsx.snap +0 -0
  58. package/{core → src/core}/Button/index.mdx +0 -0
  59. package/src/core/Button/index.spec.tsx +8 -0
  60. package/src/core/Button/index.tsx +46 -0
  61. package/{core/Card/index.d.ts → src/core/Card/index.tsx} +0 -0
  62. package/{core → src/core}/Details/__snapshots__/index.spec.tsx.snap +0 -0
  63. package/{core → src/core}/Details/index.mdx +0 -0
  64. package/src/core/Details/index.spec.tsx +38 -0
  65. package/{core/Details/index.d.ts → src/core/Details/index.tsx} +2 -0
  66. package/src/core/Divider/index.tsx +13 -0
  67. package/{core → src/core}/ErrorSummary/__snapshots__/index.spec.tsx.snap +0 -0
  68. package/{core → src/core}/ErrorSummary/index.mdx +0 -0
  69. package/src/core/ErrorSummary/index.spec.tsx +10 -0
  70. package/{core/ErrorSummary/index.d.ts → src/core/ErrorSummary/index.tsx} +1 -0
  71. package/{core/Hidden/index.d.ts → src/core/Hidden/index.tsx} +0 -0
  72. package/{core → src/core}/Link/__snapshots__/index.spec.tsx.snap +0 -0
  73. package/src/core/Link/index.spec.tsx +22 -0
  74. package/src/core/Link/index.tsx +41 -0
  75. package/{core/List/List.d.ts → src/core/List/List.tsx} +2 -0
  76. package/{core/List/ListItem.d.ts → src/core/List/ListItem.tsx} +2 -0
  77. package/src/core/List/ListItemContent.tsx +32 -0
  78. package/src/core/List/ListItemIcon.tsx +31 -0
  79. package/src/core/List/ListItemText.tsx +23 -0
  80. package/src/core/List/ListItemTitle.tsx +37 -0
  81. package/{core → src/core}/List/__snapshots__/index.spec.tsx.snap +0 -0
  82. package/{core → src/core}/List/index.mdx +0 -0
  83. package/src/core/List/index.spec.tsx +10 -0
  84. package/{core/List/index.d.ts → src/core/List/index.tsx} +0 -0
  85. package/src/core/NavList/NavList.tsx +103 -0
  86. package/src/core/NavList/NavListContext.tsx +85 -0
  87. package/src/core/NavList/NavListItem.tsx +143 -0
  88. package/src/core/NavList/NavListItemBase.tsx +146 -0
  89. package/src/core/NavList/NavListSubMenu.tsx +33 -0
  90. package/{core → src/core}/NavList/__snapshots__/index.spec.tsx.snap +0 -0
  91. package/{core → src/core}/NavList/index.mdx +0 -0
  92. package/src/core/NavList/index.spec.tsx +10 -0
  93. package/{core/NavList/index.d.ts → src/core/NavList/index.tsx} +0 -0
  94. package/{core → src/core}/NotificationBanner/__snapshots__/index.spec.tsx.snap +0 -0
  95. package/{core → src/core}/NotificationBanner/index.mdx +0 -0
  96. package/src/core/NotificationBanner/index.spec.tsx +27 -0
  97. package/src/core/NotificationBanner/index.tsx +52 -0
  98. package/{core → src/core}/ServiceBadge/ServiceBadge.mdx +0 -0
  99. package/{core → src/core}/ServiceBadge/index.mdx +0 -0
  100. package/src/core/ServiceBadge/index.tsx +35 -0
  101. package/{core → src/core}/SummaryList/__snapshots__/index.spec.tsx.snap +0 -0
  102. package/{core → src/core}/SummaryList/index.mdx +0 -0
  103. package/src/core/SummaryList/index.spec.tsx +28 -0
  104. package/{core/SummaryList/index.d.ts → src/core/SummaryList/index.tsx} +2 -0
  105. package/{core/Table/index.d.ts → src/core/Table/index.tsx} +0 -0
  106. package/{core → src/core}/Tabs/index.mdx +0 -0
  107. package/src/core/Tabs/index.tsx +36 -0
  108. package/{core/VisuallyHidden/index.d.ts → src/core/VisuallyHidden/index.tsx} +0 -0
  109. package/{core → src/core}/WarningText/__snapshots__/index.spec.tsx.snap +0 -0
  110. package/{core → src/core}/WarningText/index.mdx +0 -0
  111. package/src/core/WarningText/index.spec.tsx +10 -0
  112. package/{core/WarningText/index.d.ts → src/core/WarningText/index.tsx} +1 -0
  113. package/{core/index.d.ts → src/core/index.ts} +3 -0
  114. package/src/custom.d.ts +8 -0
  115. package/{es → src}/form/inputs/Input/index.mdx +0 -0
  116. package/src/govgr/Footer/Copyright.tsx +64 -0
  117. package/{govgr/Footer/HellenicRepublicLogo.d.ts → src/govgr/Footer/HellenicRepublicLogo.tsx} +1 -0
  118. package/src/govgr/Footer/LicenseCCSA.tsx +24 -0
  119. package/{es → src}/govgr/Footer/index.mdx +0 -0
  120. package/src/govgr/Footer/index.tsx +49 -0
  121. package/{esm/govgr/Footer/logo.js → src/govgr/Footer/logo.ts} +1 -1
  122. package/{esm/govgr/Footer/logos/logo-el.js → src/govgr/Footer/logos/logo-el.ts} +1 -1
  123. package/{esm/govgr/Footer/logos/logo-en.js → src/govgr/Footer/logos/logo-en.ts} +1 -1
  124. package/{es → src}/govgr/Logo/govgr-logo.svg +0 -0
  125. package/{govgr/Logo/index.d.ts → src/govgr/Logo/index.tsx} +2 -0
  126. package/{es/govgr/Logo/logo.js → src/govgr/Logo/logo.ts} +1 -1
  127. package/{govgr/index.d.ts → src/govgr/index.ts} +0 -0
  128. package/src/hooks/useDebounce.ts +50 -0
  129. package/src/hooks/useLatest.ts +12 -0
  130. package/{esm/hooks/useOutdatedBrowserCheck.js → src/hooks/useOutdatedBrowserCheck.ts} +16 -15
  131. package/src/hooks/useSearch.ts +47 -0
  132. package/src/hooks/useTogglableSections.tsx +102 -0
  133. package/{index.d.ts → src/index.ts} +0 -0
  134. package/{es → src}/layouts/Basic/Bottom/index.mdx +0 -0
  135. package/{layouts/Basic/Bottom/index.d.ts → src/layouts/Basic/Bottom/index.tsx} +1 -0
  136. package/{es → src}/layouts/Basic/Content/index.mdx +0 -0
  137. package/src/layouts/Basic/Content/index.tsx +24 -0
  138. package/{es → src}/layouts/Basic/Main/index.mdx +0 -0
  139. package/{layouts/Basic/Main/index.d.ts → src/layouts/Basic/Main/index.tsx} +1 -0
  140. package/{es → src}/layouts/Basic/Masthead/index.mdx +0 -0
  141. package/{layouts/Basic/Masthead/index.d.ts → src/layouts/Basic/Masthead/index.tsx} +2 -0
  142. package/{es → src}/layouts/Basic/Side/index.mdx +0 -0
  143. package/{esm/layouts/Basic/Side/index.js → src/layouts/Basic/Side/index.tsx} +5 -3
  144. package/{es → src}/layouts/Basic/Top/index.mdx +0 -0
  145. package/{es/layouts/Basic/Top/index.js → src/layouts/Basic/Top/index.tsx} +7 -5
  146. package/{es → src}/layouts/Basic/__snapshots__/index.spec.tsx.snap +0 -0
  147. package/{es → src}/layouts/Basic/index.mdx +0 -0
  148. package/src/layouts/Basic/index.spec.tsx +24 -0
  149. package/{layouts/Basic/index.d.ts → src/layouts/Basic/index.tsx} +2 -0
  150. package/{layouts/Grid/index.d.ts → src/layouts/Grid/index.tsx} +0 -0
  151. package/{layouts/index.d.ts → src/layouts/index.ts} +0 -0
  152. package/src/locales/el.ts +60 -0
  153. package/{esm/locales/en.js → src/locales/en.ts} +25 -11
  154. package/{es → src}/router/index.mdx +0 -0
  155. package/src/router/index.tsx +28 -0
  156. package/src/test-utils/delay.ts +9 -0
  157. package/src/test-utils/mountWithTheme.tsx +33 -0
  158. package/{es → src}/themes/govgr.js +33 -29
  159. package/src/themes/grnet.js +109 -0
  160. package/src/themes/index.tsx +38 -0
  161. package/src/typography/Caption.tsx +15 -0
  162. package/src/typography/NormalText.tsx +7 -0
  163. package/src/typography/Paragraph.tsx +9 -0
  164. package/src/typography/Title.tsx +51 -0
  165. package/{es → src}/typography/index.mdx +0 -0
  166. package/{typography/index.d.ts → src/typography/index.ts} +0 -0
  167. package/src/utils/evaluateBrowserVersion.ts +346 -0
  168. package/src/utils/withDeprecation.tsx +97 -0
  169. package/tsconfig.json +18 -0
  170. package/tsconfig.production.json +27 -0
  171. package/ui.build.log +17 -0
  172. package/LICENSE +0 -0
  173. package/api/APIErrors.d.ts +0 -22
  174. package/api/APIErrors.js +0 -117
  175. package/api/APIProvider.d.ts +0 -15
  176. package/api/APIProvider.js +0 -43
  177. package/api/fetchAPI.d.ts +0 -18
  178. package/api/fetchAPI.js +0 -64
  179. package/api/index.d.ts +0 -9
  180. package/api/index.js +0 -104
  181. package/api/index.spec.d.ts +0 -1
  182. package/api/index.spec.js +0 -584
  183. package/api/useResource.d.ts +0 -11
  184. package/api/useResource.js +0 -144
  185. package/api/useResourceAction.d.ts +0 -2
  186. package/api/useResourceAction.js +0 -157
  187. package/api/useResourceQuery.d.ts +0 -18
  188. package/api/useResourceQuery.js +0 -229
  189. package/api/utils.d.ts +0 -6
  190. package/api/utils.js +0 -250
  191. package/app/App.d.ts +0 -14
  192. package/app/App.js +0 -49
  193. package/app/Confirmation/index.js +0 -44
  194. package/app/Footer/index.js +0 -200
  195. package/app/Header/HeaderLogo.d.ts +0 -3
  196. package/app/Header/HeaderLogo.js +0 -30
  197. package/app/Header/HeaderSection.d.ts +0 -5
  198. package/app/Header/HeaderSection.js +0 -20
  199. package/app/Header/HeaderTitle.d.ts +0 -5
  200. package/app/Header/HeaderTitle.js +0 -30
  201. package/app/Header/index.d.ts +0 -11
  202. package/app/Header/index.js +0 -106
  203. package/app/Header/index.spec.d.ts +0 -1
  204. package/app/Header/index.spec.js +0 -45
  205. package/app/NotFound/index.d.ts +0 -3
  206. package/app/NotFound/index.js +0 -29
  207. package/app/OutdatedBrowserBanner.d.ts +0 -2
  208. package/app/OutdatedBrowserBanner.js +0 -41
  209. package/app/PageTitle.d.ts +0 -10
  210. package/app/PageTitle.js +0 -76
  211. package/app/QrCodeScanner/index.d.ts +0 -29
  212. package/app/QrCodeScanner/index.js +0 -85
  213. package/app/QrCodeScanner/index.spec.d.ts +0 -1
  214. package/app/QrCodeScanner/index.spec.js +0 -26
  215. package/app/i18n.d.ts +0 -10
  216. package/app/i18n.js +0 -57
  217. package/app/index.js +0 -70
  218. package/core/Accordion/index.d.ts +0 -21
  219. package/core/Accordion/index.js +0 -127
  220. package/core/Accordion/index.spec.d.ts +0 -1
  221. package/core/Accordion/index.spec.js +0 -19
  222. package/core/Blockquote/index.d.ts +0 -3
  223. package/core/Blockquote/index.js +0 -29
  224. package/core/Blockquote/index.spec.d.ts +0 -1
  225. package/core/Blockquote/index.spec.js +0 -21
  226. package/core/Breadcrumbs/index.js +0 -44
  227. package/core/Button/BackButton.d.ts +0 -3
  228. package/core/Button/BackButton.js +0 -34
  229. package/core/Button/ButtonLink.d.ts +0 -4
  230. package/core/Button/ButtonLink.js +0 -28
  231. package/core/Button/CallToAction.d.ts +0 -7
  232. package/core/Button/CallToAction.js +0 -41
  233. package/core/Button/Icon.d.ts +0 -2
  234. package/core/Button/Icon.js +0 -19
  235. package/core/Button/index.d.ts +0 -15
  236. package/core/Button/index.js +0 -121
  237. package/core/Button/index.spec.d.ts +0 -1
  238. package/core/Button/index.spec.js +0 -21
  239. package/core/Card/index.js +0 -57
  240. package/core/Details/index.js +0 -35
  241. package/core/Details/index.spec.d.ts +0 -1
  242. package/core/Details/index.spec.js +0 -27
  243. package/core/Divider/index.d.ts +0 -5
  244. package/core/Divider/index.js +0 -20
  245. package/core/ErrorSummary/index.js +0 -19
  246. package/core/ErrorSummary/index.spec.d.ts +0 -1
  247. package/core/ErrorSummary/index.spec.js +0 -21
  248. package/core/Hidden/index.js +0 -18
  249. package/core/Link/index.d.ts +0 -12
  250. package/core/Link/index.js +0 -50
  251. package/core/Link/index.spec.d.ts +0 -1
  252. package/core/Link/index.spec.js +0 -31
  253. package/core/List/List.js +0 -19
  254. package/core/List/ListItem.js +0 -19
  255. package/core/List/ListItemContent.d.ts +0 -7
  256. package/core/List/ListItemContent.js +0 -45
  257. package/core/List/ListItemIcon.d.ts +0 -7
  258. package/core/List/ListItemIcon.js +0 -48
  259. package/core/List/ListItemText.d.ts +0 -8
  260. package/core/List/ListItemText.js +0 -36
  261. package/core/List/ListItemTitle.d.ts +0 -10
  262. package/core/List/ListItemTitle.js +0 -44
  263. package/core/List/index.js +0 -96
  264. package/core/List/index.spec.d.ts +0 -1
  265. package/core/List/index.spec.js +0 -21
  266. package/core/NavList/NavList.d.ts +0 -17
  267. package/core/NavList/NavList.js +0 -99
  268. package/core/NavList/NavListContext.d.ts +0 -20
  269. package/core/NavList/NavListContext.js +0 -102
  270. package/core/NavList/NavListItem.d.ts +0 -13
  271. package/core/NavList/NavListItem.js +0 -171
  272. package/core/NavList/NavListItemBase.d.ts +0 -16
  273. package/core/NavList/NavListItemBase.js +0 -161
  274. package/core/NavList/NavListSubMenu.d.ts +0 -8
  275. package/core/NavList/NavListSubMenu.js +0 -52
  276. package/core/NavList/index.js +0 -68
  277. package/core/NavList/index.spec.d.ts +0 -1
  278. package/core/NavList/index.spec.js +0 -21
  279. package/core/NotificationBanner/index.d.ts +0 -18
  280. package/core/NotificationBanner/index.js +0 -78
  281. package/core/NotificationBanner/index.spec.d.ts +0 -1
  282. package/core/NotificationBanner/index.spec.js +0 -32
  283. package/core/ServiceBadge/index.d.ts +0 -9
  284. package/core/ServiceBadge/index.js +0 -36
  285. package/core/SummaryList/index.js +0 -79
  286. package/core/SummaryList/index.spec.d.ts +0 -1
  287. package/core/SummaryList/index.spec.js +0 -19
  288. package/core/Table/index.js +0 -96
  289. package/core/Tabs/index.d.ts +0 -16
  290. package/core/Tabs/index.js +0 -88
  291. package/core/VisuallyHidden/index.js +0 -18
  292. package/core/WarningText/index.js +0 -19
  293. package/core/WarningText/index.spec.d.ts +0 -1
  294. package/core/WarningText/index.spec.js +0 -21
  295. package/core/index.js +0 -199
  296. package/custom.d.js +0 -1
  297. package/es/api/APIErrors.js +0 -96
  298. package/es/api/APIProvider.js +0 -25
  299. package/es/api/fetchAPI.js +0 -49
  300. package/es/api/index.js +0 -13
  301. package/es/api/index.spec.js +0 -546
  302. package/es/api/introduction.md +0 -6
  303. package/es/api/useResource.js +0 -128
  304. package/es/api/useResourceAction.js +0 -141
  305. package/es/api/useResourceQuery.js +0 -208
  306. package/es/api/utils.js +0 -233
  307. package/es/app/App.js +0 -27
  308. package/es/app/Confirmation/index.js +0 -3
  309. package/es/app/Footer/index.js +0 -15
  310. package/es/app/Header/HeaderSection.js +0 -7
  311. package/es/app/Header/HeaderTitle.js +0 -17
  312. package/es/app/Header/__snapshots__/index.spec.tsx.snap +0 -393
  313. package/es/app/Header/index.js +0 -13
  314. package/es/app/Header/index.mdx +0 -50
  315. package/es/app/Header/index.spec.js +0 -32
  316. package/es/app/NotFound/index.js +0 -12
  317. package/es/app/OutdatedBrowserBanner.js +0 -24
  318. package/es/app/PageTitle.js +0 -57
  319. package/es/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +0 -22
  320. package/es/app/QrCodeScanner/index.js +0 -64
  321. package/es/app/QrCodeScanner/index.mdx +0 -22
  322. package/es/app/QrCodeScanner/index.spec.js +0 -13
  323. package/es/app/i18n.js +0 -36
  324. package/es/app/index.js +0 -5
  325. package/es/core/Accordion/__snapshots__/index.spec.tsx.snap +0 -78
  326. package/es/core/Accordion/index.js +0 -67
  327. package/es/core/Accordion/index.mdx +0 -104
  328. package/es/core/Accordion/index.spec.js +0 -9
  329. package/es/core/Blockquote/__snapshots__/index.spec.tsx.snap +0 -13
  330. package/es/core/Blockquote/index.js +0 -16
  331. package/es/core/Blockquote/index.mdx +0 -61
  332. package/es/core/Blockquote/index.spec.js +0 -9
  333. package/es/core/Breadcrumbs/index.js +0 -3
  334. package/es/core/Button/BackButton.js +0 -21
  335. package/es/core/Button/ButtonLink.js +0 -16
  336. package/es/core/Button/CallToAction.js +0 -27
  337. package/es/core/Button/Icon.js +0 -7
  338. package/es/core/Button/__snapshots__/index.spec.tsx.snap +0 -13
  339. package/es/core/Button/index.js +0 -36
  340. package/es/core/Button/index.mdx +0 -65
  341. package/es/core/Button/index.spec.js +0 -9
  342. package/es/core/Card/index.js +0 -4
  343. package/es/core/Details/__snapshots__/index.spec.tsx.snap +0 -50
  344. package/es/core/Details/index.js +0 -5
  345. package/es/core/Details/index.mdx +0 -34
  346. package/es/core/Details/index.spec.js +0 -17
  347. package/es/core/Divider/index.js +0 -7
  348. package/es/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +0 -322
  349. package/es/core/ErrorSummary/index.js +0 -3
  350. package/es/core/ErrorSummary/index.mdx +0 -61
  351. package/es/core/ErrorSummary/index.spec.js +0 -9
  352. package/es/core/Hidden/index.js +0 -1
  353. package/es/core/Link/__snapshots__/index.spec.tsx.snap +0 -31
  354. package/es/core/Link/index.js +0 -26
  355. package/es/core/Link/index.spec.js +0 -21
  356. package/es/core/List/List.js +0 -3
  357. package/es/core/List/ListItem.js +0 -3
  358. package/es/core/List/ListItemContent.js +0 -27
  359. package/es/core/List/ListItemIcon.js +0 -29
  360. package/es/core/List/ListItemText.js +0 -19
  361. package/es/core/List/ListItemTitle.js +0 -25
  362. package/es/core/List/__snapshots__/index.spec.tsx.snap +0 -322
  363. package/es/core/List/index.js +0 -7
  364. package/es/core/List/index.mdx +0 -40
  365. package/es/core/List/index.spec.js +0 -9
  366. package/es/core/NavList/NavList.js +0 -78
  367. package/es/core/NavList/NavListContext.js +0 -80
  368. package/es/core/NavList/NavListItem.js +0 -141
  369. package/es/core/NavList/NavListItemBase.js +0 -133
  370. package/es/core/NavList/NavListSubMenu.js +0 -27
  371. package/es/core/NavList/__snapshots__/index.spec.tsx.snap +0 -334
  372. package/es/core/NavList/index.js +0 -5
  373. package/es/core/NavList/index.mdx +0 -185
  374. package/es/core/NavList/index.spec.js +0 -9
  375. package/es/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +0 -737
  376. package/es/core/NotificationBanner/index.js +0 -35
  377. package/es/core/NotificationBanner/index.mdx +0 -77
  378. package/es/core/NotificationBanner/index.spec.js +0 -20
  379. package/es/core/ServiceBadge/ServiceBadge.mdx +0 -0
  380. package/es/core/ServiceBadge/index.js +0 -20
  381. package/es/core/ServiceBadge/index.mdx +0 -42
  382. package/es/core/SummaryList/__snapshots__/index.spec.tsx.snap +0 -57
  383. package/es/core/SummaryList/index.js +0 -7
  384. package/es/core/SummaryList/index.mdx +0 -82
  385. package/es/core/SummaryList/index.spec.js +0 -9
  386. package/es/core/Table/index.js +0 -7
  387. package/es/core/Tabs/index.js +0 -37
  388. package/es/core/Tabs/index.mdx +0 -54
  389. package/es/core/VisuallyHidden/index.js +0 -1
  390. package/es/core/WarningText/__snapshots__/index.spec.tsx.snap +0 -336
  391. package/es/core/WarningText/index.js +0 -3
  392. package/es/core/WarningText/index.mdx +0 -46
  393. package/es/core/WarningText/index.spec.js +0 -9
  394. package/es/core/index.js +0 -14
  395. package/es/custom.d.js +0 -0
  396. package/es/govgr/Footer/Copyright.js +0 -37
  397. package/es/govgr/Footer/HellenicRepublicLogo.js +0 -3
  398. package/es/govgr/Footer/LicenseCCSA.js +0 -18
  399. package/es/govgr/Footer/index.js +0 -21
  400. package/es/govgr/Footer/logo.js +0 -1
  401. package/es/govgr/Footer/logos/logo-el.js +0 -1
  402. package/es/govgr/Footer/logos/logo-en.js +0 -1
  403. package/es/govgr/Logo/index.js +0 -3
  404. package/es/govgr/index.js +0 -4
  405. package/es/hooks/useDebounce.js +0 -41
  406. package/es/hooks/useLatest.js +0 -12
  407. package/es/hooks/useOutdatedBrowserCheck.js +0 -46
  408. package/es/hooks/useSearch.js +0 -25
  409. package/es/hooks/useTogglableSections.js +0 -96
  410. package/es/index.js +0 -5
  411. package/es/layouts/Basic/Bottom/index.js +0 -3
  412. package/es/layouts/Basic/Content/index.js +0 -18
  413. package/es/layouts/Basic/Main/index.js +0 -3
  414. package/es/layouts/Basic/Masthead/index.js +0 -4
  415. package/es/layouts/Basic/Side/index.js +0 -7
  416. package/es/layouts/Basic/index.js +0 -8
  417. package/es/layouts/Basic/index.spec.js +0 -10
  418. package/es/layouts/Grid/index.js +0 -1
  419. package/es/layouts/index.js +0 -2
  420. package/es/locales/el.js +0 -45
  421. package/es/locales/en.js +0 -45
  422. package/es/router/index.js +0 -15
  423. package/es/test-utils/delay.js +0 -31
  424. package/es/test-utils/mountWithTheme.js +0 -30
  425. package/es/themes/grnet.js +0 -110
  426. package/es/themes/index.js +0 -2
  427. package/es/typography/Caption.js +0 -7
  428. package/es/typography/NormalText.js +0 -3
  429. package/es/typography/Paragraph.js +0 -2
  430. package/es/typography/Title.js +0 -48
  431. package/es/typography/index.js +0 -8
  432. package/es/utils/evaluateBrowserVersion.js +0 -201
  433. package/es/utils/withDeprecation.js +0 -103
  434. package/esm/api/APIErrors.js +0 -96
  435. package/esm/api/APIProvider.js +0 -25
  436. package/esm/api/fetchAPI.js +0 -49
  437. package/esm/api/index.spec.js +0 -546
  438. package/esm/api/introduction.md +0 -6
  439. package/esm/api/useResource.js +0 -128
  440. package/esm/api/useResourceAction.js +0 -141
  441. package/esm/api/useResourceQuery.js +0 -208
  442. package/esm/api/utils.js +0 -233
  443. package/esm/app/App.js +0 -27
  444. package/esm/app/Confirmation/index.js +0 -3
  445. package/esm/app/Footer/index.js +0 -15
  446. package/esm/app/Header/HeaderLogo.js +0 -17
  447. package/esm/app/Header/HeaderSection.js +0 -7
  448. package/esm/app/Header/HeaderTitle.js +0 -17
  449. package/esm/app/Header/__snapshots__/index.spec.tsx.snap +0 -393
  450. package/esm/app/Header/index.mdx +0 -50
  451. package/esm/app/Header/index.spec.js +0 -32
  452. package/esm/app/NotFound/index.js +0 -12
  453. package/esm/app/OutdatedBrowserBanner.js +0 -24
  454. package/esm/app/PageTitle.js +0 -57
  455. package/esm/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +0 -22
  456. package/esm/app/QrCodeScanner/index.js +0 -64
  457. package/esm/app/QrCodeScanner/index.mdx +0 -22
  458. package/esm/app/QrCodeScanner/index.spec.js +0 -13
  459. package/esm/app/i18n.js +0 -36
  460. package/esm/app/index.js +0 -5
  461. package/esm/core/Accordion/__snapshots__/index.spec.tsx.snap +0 -78
  462. package/esm/core/Accordion/index.js +0 -67
  463. package/esm/core/Accordion/index.mdx +0 -104
  464. package/esm/core/Accordion/index.spec.js +0 -9
  465. package/esm/core/Blockquote/__snapshots__/index.spec.tsx.snap +0 -13
  466. package/esm/core/Blockquote/index.mdx +0 -61
  467. package/esm/core/Blockquote/index.spec.js +0 -9
  468. package/esm/core/Breadcrumbs/index.js +0 -3
  469. package/esm/core/Button/ButtonLink.js +0 -16
  470. package/esm/core/Button/CallToAction.js +0 -27
  471. package/esm/core/Button/Icon.js +0 -7
  472. package/esm/core/Button/__snapshots__/index.spec.tsx.snap +0 -13
  473. package/esm/core/Button/index.js +0 -36
  474. package/esm/core/Button/index.mdx +0 -65
  475. package/esm/core/Button/index.spec.js +0 -9
  476. package/esm/core/Card/index.js +0 -4
  477. package/esm/core/Details/__snapshots__/index.spec.tsx.snap +0 -50
  478. package/esm/core/Details/index.js +0 -5
  479. package/esm/core/Details/index.mdx +0 -34
  480. package/esm/core/Details/index.spec.js +0 -17
  481. package/esm/core/Divider/index.js +0 -7
  482. package/esm/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +0 -322
  483. package/esm/core/ErrorSummary/index.js +0 -3
  484. package/esm/core/ErrorSummary/index.mdx +0 -61
  485. package/esm/core/ErrorSummary/index.spec.js +0 -9
  486. package/esm/core/Hidden/index.js +0 -1
  487. package/esm/core/Link/__snapshots__/index.spec.tsx.snap +0 -31
  488. package/esm/core/Link/index.js +0 -26
  489. package/esm/core/Link/index.spec.js +0 -21
  490. package/esm/core/List/List.js +0 -3
  491. package/esm/core/List/ListItem.js +0 -3
  492. package/esm/core/List/ListItemContent.js +0 -27
  493. package/esm/core/List/ListItemIcon.js +0 -29
  494. package/esm/core/List/ListItemText.js +0 -19
  495. package/esm/core/List/ListItemTitle.js +0 -25
  496. package/esm/core/List/__snapshots__/index.spec.tsx.snap +0 -322
  497. package/esm/core/List/index.js +0 -7
  498. package/esm/core/List/index.mdx +0 -40
  499. package/esm/core/List/index.spec.js +0 -9
  500. package/esm/core/NavList/NavList.js +0 -78
  501. package/esm/core/NavList/NavListContext.js +0 -80
  502. package/esm/core/NavList/NavListItem.js +0 -141
  503. package/esm/core/NavList/NavListItemBase.js +0 -133
  504. package/esm/core/NavList/NavListSubMenu.js +0 -27
  505. package/esm/core/NavList/__snapshots__/index.spec.tsx.snap +0 -334
  506. package/esm/core/NavList/index.js +0 -5
  507. package/esm/core/NavList/index.mdx +0 -185
  508. package/esm/core/NavList/index.spec.js +0 -9
  509. package/esm/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +0 -737
  510. package/esm/core/NotificationBanner/index.js +0 -35
  511. package/esm/core/NotificationBanner/index.mdx +0 -77
  512. package/esm/core/NotificationBanner/index.spec.js +0 -20
  513. package/esm/core/ServiceBadge/ServiceBadge.mdx +0 -0
  514. package/esm/core/ServiceBadge/index.js +0 -20
  515. package/esm/core/ServiceBadge/index.mdx +0 -42
  516. package/esm/core/SummaryList/__snapshots__/index.spec.tsx.snap +0 -57
  517. package/esm/core/SummaryList/index.js +0 -7
  518. package/esm/core/SummaryList/index.mdx +0 -82
  519. package/esm/core/SummaryList/index.spec.js +0 -9
  520. package/esm/core/Table/index.js +0 -7
  521. package/esm/core/Tabs/index.js +0 -37
  522. package/esm/core/Tabs/index.mdx +0 -54
  523. package/esm/core/VisuallyHidden/index.js +0 -1
  524. package/esm/core/WarningText/__snapshots__/index.spec.tsx.snap +0 -336
  525. package/esm/core/WarningText/index.js +0 -3
  526. package/esm/core/WarningText/index.mdx +0 -46
  527. package/esm/core/WarningText/index.spec.js +0 -9
  528. package/esm/core/index.js +0 -14
  529. package/esm/custom.d.js +0 -0
  530. package/esm/form/inputs/Input/index.mdx +0 -10
  531. package/esm/govgr/Footer/Copyright.js +0 -37
  532. package/esm/govgr/Footer/HellenicRepublicLogo.js +0 -3
  533. package/esm/govgr/Footer/LicenseCCSA.js +0 -18
  534. package/esm/govgr/Footer/index.js +0 -21
  535. package/esm/govgr/Footer/index.mdx +0 -97
  536. package/esm/govgr/Logo/govgr-logo.svg +0 -1
  537. package/esm/govgr/Logo/index.js +0 -3
  538. package/esm/govgr/Logo/logo.js +0 -1
  539. package/esm/govgr/index.js +0 -4
  540. package/esm/hooks/useDebounce.js +0 -41
  541. package/esm/hooks/useLatest.js +0 -12
  542. package/esm/hooks/useSearch.js +0 -25
  543. package/esm/hooks/useTogglableSections.js +0 -96
  544. package/esm/index.js +0 -10
  545. package/esm/layouts/Basic/Bottom/index.js +0 -3
  546. package/esm/layouts/Basic/Bottom/index.mdx +0 -37
  547. package/esm/layouts/Basic/Content/index.js +0 -18
  548. package/esm/layouts/Basic/Content/index.mdx +0 -64
  549. package/esm/layouts/Basic/Main/index.js +0 -3
  550. package/esm/layouts/Basic/Main/index.mdx +0 -64
  551. package/esm/layouts/Basic/Masthead/index.js +0 -4
  552. package/esm/layouts/Basic/Masthead/index.mdx +0 -74
  553. package/esm/layouts/Basic/Side/index.mdx +0 -71
  554. package/esm/layouts/Basic/Top/index.js +0 -11
  555. package/esm/layouts/Basic/Top/index.mdx +0 -74
  556. package/esm/layouts/Basic/__snapshots__/index.spec.tsx.snap +0 -54
  557. package/esm/layouts/Basic/index.js +0 -8
  558. package/esm/layouts/Basic/index.mdx +0 -62
  559. package/esm/layouts/Basic/index.spec.js +0 -10
  560. package/esm/layouts/Grid/index.js +0 -1
  561. package/esm/layouts/index.js +0 -2
  562. package/esm/locales/el.js +0 -45
  563. package/esm/router/index.js +0 -15
  564. package/esm/router/index.mdx +0 -40
  565. package/esm/test-utils/delay.js +0 -31
  566. package/esm/test-utils/mountWithTheme.js +0 -30
  567. package/esm/themes/govgr.js +0 -79
  568. package/esm/themes/grnet.js +0 -110
  569. package/esm/themes/index.js +0 -2
  570. package/esm/typography/Caption.js +0 -7
  571. package/esm/typography/NormalText.js +0 -3
  572. package/esm/typography/Paragraph.js +0 -2
  573. package/esm/typography/Title.js +0 -48
  574. package/esm/typography/index.js +0 -8
  575. package/esm/typography/index.mdx +0 -32
  576. package/esm/utils/evaluateBrowserVersion.js +0 -201
  577. package/esm/utils/withDeprecation.js +0 -103
  578. package/form/inputs/Input/index.mdx +0 -10
  579. package/govgr/Footer/Copyright.d.ts +0 -8
  580. package/govgr/Footer/Copyright.js +0 -52
  581. package/govgr/Footer/HellenicRepublicLogo.js +0 -19
  582. package/govgr/Footer/LicenseCCSA.d.ts +0 -3
  583. package/govgr/Footer/LicenseCCSA.js +0 -33
  584. package/govgr/Footer/index.d.ts +0 -13
  585. package/govgr/Footer/index.js +0 -39
  586. package/govgr/Footer/index.mdx +0 -97
  587. package/govgr/Footer/logo.d.ts +0 -2
  588. package/govgr/Footer/logo.js +0 -8
  589. package/govgr/Footer/logos/logo-el.d.ts +0 -2
  590. package/govgr/Footer/logos/logo-el.js +0 -8
  591. package/govgr/Footer/logos/logo-en.d.ts +0 -2
  592. package/govgr/Footer/logos/logo-en.js +0 -8
  593. package/govgr/Logo/govgr-logo.svg +0 -1
  594. package/govgr/Logo/index.js +0 -19
  595. package/govgr/Logo/logo.d.ts +0 -2
  596. package/govgr/Logo/logo.js +0 -8
  597. package/govgr/index.js +0 -57
  598. package/hooks/useDebounce.d.ts +0 -3
  599. package/hooks/useDebounce.js +0 -63
  600. package/hooks/useLatest.d.ts +0 -3
  601. package/hooks/useLatest.js +0 -26
  602. package/hooks/useOutdatedBrowserCheck.d.ts +0 -2
  603. package/hooks/useOutdatedBrowserCheck.js +0 -60
  604. package/hooks/useSearch.d.ts +0 -4
  605. package/hooks/useSearch.js +0 -40
  606. package/hooks/useTogglableSections.d.ts +0 -18
  607. package/hooks/useTogglableSections.js +0 -108
  608. package/index.js +0 -70
  609. package/layouts/Basic/Bottom/index.js +0 -19
  610. package/layouts/Basic/Bottom/index.mdx +0 -37
  611. package/layouts/Basic/Content/index.d.ts +0 -5
  612. package/layouts/Basic/Content/index.js +0 -31
  613. package/layouts/Basic/Content/index.mdx +0 -64
  614. package/layouts/Basic/Main/index.js +0 -19
  615. package/layouts/Basic/Main/index.mdx +0 -64
  616. package/layouts/Basic/Masthead/index.js +0 -27
  617. package/layouts/Basic/Masthead/index.mdx +0 -74
  618. package/layouts/Basic/Side/index.d.ts +0 -3
  619. package/layouts/Basic/Side/index.js +0 -20
  620. package/layouts/Basic/Side/index.mdx +0 -71
  621. package/layouts/Basic/Top/index.d.ts +0 -3
  622. package/layouts/Basic/Top/index.js +0 -24
  623. package/layouts/Basic/Top/index.mdx +0 -74
  624. package/layouts/Basic/__snapshots__/index.spec.tsx.snap +0 -54
  625. package/layouts/Basic/index.js +0 -97
  626. package/layouts/Basic/index.mdx +0 -62
  627. package/layouts/Basic/index.spec.d.ts +0 -1
  628. package/layouts/Basic/index.spec.js +0 -20
  629. package/layouts/Grid/index.js +0 -18
  630. package/layouts/index.js +0 -34
  631. package/locales/el.d.ts +0 -46
  632. package/locales/el.js +0 -52
  633. package/locales/en.d.ts +0 -46
  634. package/locales/en.js +0 -52
  635. package/router/index.d.ts +0 -9
  636. package/router/index.js +0 -37
  637. package/router/index.mdx +0 -40
  638. package/test-utils/delay.d.ts +0 -2
  639. package/test-utils/delay.js +0 -45
  640. package/test-utils/mountWithTheme.d.ts +0 -3
  641. package/test-utils/mountWithTheme.js +0 -43
  642. package/themes/govgr.d.ts +0 -3
  643. package/themes/govgr.js +0 -89
  644. package/themes/grnet.d.ts +0 -2
  645. package/themes/grnet.js +0 -128
  646. package/themes/index.d.ts +0 -32
  647. package/themes/index.js +0 -19
  648. package/typography/Caption.d.ts +0 -7
  649. package/typography/Caption.js +0 -20
  650. package/typography/NormalText.d.ts +0 -5
  651. package/typography/NormalText.js +0 -19
  652. package/typography/Paragraph.d.ts +0 -6
  653. package/typography/Paragraph.js +0 -13
  654. package/typography/Title.d.ts +0 -9
  655. package/typography/Title.js +0 -63
  656. package/typography/index.js +0 -97
  657. package/typography/index.mdx +0 -32
  658. package/utils/evaluateBrowserVersion.d.ts +0 -15
  659. package/utils/evaluateBrowserVersion.js +0 -216
  660. package/utils/withDeprecation.d.ts +0 -16
  661. package/utils/withDeprecation.js +0 -116
@@ -0,0 +1,13 @@
1
+ import CoreSectionBreak, {
2
+ SectionBreakProps as CoreSectionBreakProps,
3
+ } from '@digigov/react-core/SectionBreak';
4
+ import withDeprecation from '@digigov/ui/utils/withDeprecation';
5
+
6
+ export type SectionBreakProps = CoreSectionBreakProps;
7
+
8
+ export const SectionBreak = withDeprecation(CoreSectionBreak, {
9
+ name: 'Divider',
10
+ rename: 'SectionBreak',
11
+ });
12
+
13
+ export default SectionBreak;
File without changes
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import mountWithTheme from '@digigov/ui/test-utils/mountWithTheme';
3
+
4
+ import Component from '.';
5
+
6
+ it('renders the ErrorSummary with sample data', () => {
7
+ expect(
8
+ mountWithTheme(<Component>this is some random warning text</Component>)
9
+ ).toMatchSnapshot();
10
+ });
@@ -1,3 +1,4 @@
1
1
  import ErrorSummary from '@digigov/react-core/ErrorSummary';
2
+
2
3
  export { ErrorSummary };
3
4
  export default ErrorSummary;
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ import { mount } from 'enzyme';
3
+
4
+ import Component, { LinkProvider } from '@digigov/ui/core/Link';
5
+
6
+ const CustomLink: React.FC<{}> = (props) => {
7
+ return <div>{props.children}</div>;
8
+ };
9
+
10
+ it('renders the Link', () => {
11
+ expect(mount(<Component>hello</Component>)).toMatchSnapshot();
12
+ });
13
+
14
+ it('Provider', () => {
15
+ expect(
16
+ mount(
17
+ <LinkProvider component={CustomLink}>
18
+ <Component>hello</Component>
19
+ </LinkProvider>
20
+ )
21
+ ).toMatchSnapshot();
22
+ });
@@ -0,0 +1,41 @@
1
+ import * as React from 'react';
2
+ import { LinkProps as CoreLinkProps } from '@digigov/react-core/Link';
3
+
4
+ export interface LinkComponentContextProps {
5
+ component: React.ElementType<LinkProps>;
6
+ }
7
+
8
+ export const CommonLink: React.FC<LinkProps> = (props) => (
9
+ <a {...props}>{props.children}</a>
10
+ );
11
+
12
+ const LinkComponentContext = React.createContext<React.ElementType<LinkProps>>(
13
+ CommonLink
14
+ );
15
+ export const LinkProvider: React.FC<LinkComponentContextProps> = (props) => {
16
+ return (
17
+ <LinkComponentContext.Provider value={props.component}>
18
+ {props.children}
19
+ </LinkComponentContext.Provider>
20
+ );
21
+ };
22
+
23
+ export interface LinkProps extends CoreLinkProps {
24
+ ref?: React.Ref<HTMLAnchorElement>;
25
+ }
26
+
27
+ const Link: React.ExoticComponent<LinkProps> = React.forwardRef(
28
+ function WrappedLink(
29
+ { children, href = '', ...props },
30
+ ref: React.Ref<HTMLAnchorElement>
31
+ ) {
32
+ const LinkComponent = React.useContext(LinkComponentContext);
33
+ return (
34
+ <LinkComponent ref={ref} href={href} {...props}>
35
+ {children}
36
+ </LinkComponent>
37
+ );
38
+ }
39
+ );
40
+
41
+ export default Link;
@@ -1,3 +1,5 @@
1
1
  import List from '@digigov/react-core/List';
2
+
2
3
  export { List };
4
+
3
5
  export default List;
@@ -1,3 +1,5 @@
1
1
  import ListItem from '@digigov/react-core/ListItem';
2
+
2
3
  export { ListItem };
4
+
3
5
  export default ListItem;
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import clsx from 'clsx';
3
+ import { makeStyles } from '@material-ui/core/styles';
4
+
5
+ export const useListItemContenttyles = makeStyles(
6
+ (theme) => ({
7
+ root: {
8
+ flexGrow: 1,
9
+ padding: theme.spacing(0, 2),
10
+ },
11
+ }),
12
+ { name: 'MuiListItemContent' }
13
+ );
14
+
15
+ export interface ListItemContentProps {
16
+ className?: string;
17
+ }
18
+
19
+ export const ListItemContent: React.FC<ListItemContentProps> = ({
20
+ className,
21
+ children,
22
+ ...props
23
+ }) => {
24
+ const classes = useListItemContenttyles();
25
+ return (
26
+ <div className={clsx(className, classes.root)} {...props}>
27
+ {children}
28
+ </div>
29
+ );
30
+ };
31
+
32
+ export default ListItemContent;
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import clsx from 'clsx';
3
+ import { makeStyles } from '@material-ui/core/styles';
4
+ import Avatar, { AvatarProps } from '@material-ui/core/Avatar';
5
+
6
+ export const useListItemIconStyles = makeStyles(
7
+ () => ({
8
+ root: {},
9
+ }),
10
+ { name: 'MuiListItemIcon' }
11
+ );
12
+
13
+ export interface ListItemIconProps extends AvatarProps {}
14
+
15
+ export const ListItemIcon: React.FC<ListItemIconProps> = ({
16
+ className,
17
+ children,
18
+ style,
19
+ ...props
20
+ }) => {
21
+ const classes = useListItemIconStyles();
22
+ return (
23
+ <div style={style} className={clsx(className, classes.root)}>
24
+ <Avatar variant="rounded" {...props}>
25
+ {children}
26
+ </Avatar>
27
+ </div>
28
+ );
29
+ };
30
+
31
+ export default ListItemIcon;
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { makeStyles } from '@material-ui/core/styles';
3
+ import NormalText, { NormalTextProps } from '@digigov/ui/typography/NormalText';
4
+
5
+ export const useListItemTextStyles = makeStyles(
6
+ () => ({
7
+ root: {},
8
+ }),
9
+ { name: 'MuiListItemText' }
10
+ );
11
+
12
+ export interface ListItemTextProps extends NormalTextProps {
13
+ ref?: React.Ref<HTMLSpanElement>;
14
+ }
15
+
16
+ export const ListItemText: React.FC<ListItemTextProps> = ({
17
+ children,
18
+ ...props
19
+ }) => {
20
+ return <NormalText {...props}>{children}</NormalText>;
21
+ };
22
+
23
+ export default ListItemText;
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { makeStyles } from '@material-ui/core/styles';
3
+ import Title, { TitleProps } from '@digigov/ui/typography/Title';
4
+ import Link, { LinkProps } from '@digigov/ui/core/Link';
5
+
6
+ export const useListItemTitleStyles = makeStyles(
7
+ () => ({
8
+ root: {},
9
+ }),
10
+ { name: 'MuiListItemTitle' }
11
+ );
12
+
13
+ export interface ListItemTitleProps extends TitleProps {
14
+ href?: string;
15
+ linkProps?: Omit<LinkProps, 'href'>;
16
+ }
17
+
18
+ export const ListItemTitle: React.FC<ListItemTitleProps> = ({
19
+ href,
20
+ linkProps,
21
+ children,
22
+ ...props
23
+ }) => {
24
+ return (
25
+ <Title {...props}>
26
+ {href ? (
27
+ <Link href={href} {...linkProps}>
28
+ {children}
29
+ </Link>
30
+ ) : (
31
+ children
32
+ )}
33
+ </Title>
34
+ );
35
+ };
36
+
37
+ export default ListItemTitle;
File without changes
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import mountWithTheme from '@digigov/ui/test-utils/mountWithTheme';
3
+
4
+ import Component from '@digigov/ui/core/List';
5
+
6
+ it('renders the ErrorSummary with sample data', () => {
7
+ expect(
8
+ mountWithTheme(<Component>this is some random warning text</Component>)
9
+ ).toMatchSnapshot();
10
+ });
@@ -0,0 +1,103 @@
1
+ import React from 'react';
2
+ import clsx from 'clsx';
3
+ import { makeStyles } from '@material-ui/core/styles';
4
+ import {
5
+ NavLinkInterface,
6
+ NavListProvider,
7
+ } from '@digigov/ui/core/NavList/NavListContext';
8
+ import { BaseCSSProperties } from '@material-ui/core/styles/withStyles';
9
+
10
+ export const useNavListStyles = makeStyles(
11
+ (theme) => ({
12
+ root: {
13
+ padding: theme.spacing(0),
14
+ margin: theme.spacing(0),
15
+ display: 'flex',
16
+ '&$vertical': {
17
+ flexDirection: 'column',
18
+ },
19
+ },
20
+ subMenu: {
21
+ marginLeft: theme.spacing(3),
22
+ },
23
+ floating: {
24
+ left: 0,
25
+ zIndex: 99,
26
+ position: 'absolute',
27
+ background: theme.palette.grey['100'],
28
+ borderTop: `1px solid ${theme.palette.grey['500']}`,
29
+ borderRight: `1px solid ${theme.palette.grey['500']}`,
30
+ borderLeft: `1px solid ${theme.palette.grey['500']}`,
31
+ margin: theme.spacing(1.5, 0, 0, 0),
32
+ boxShadow: theme.shadows[3],
33
+ '& > li': {
34
+ width: '100%',
35
+ borderBottom: `1px solid ${theme.palette.grey['500']}`,
36
+ margin: 0,
37
+ },
38
+ },
39
+ vertical: {},
40
+ floatClear: {
41
+ clear: 'both',
42
+ },
43
+ }),
44
+ { name: 'MuiNavList' }
45
+ );
46
+
47
+ export interface NavListProps {
48
+ children?: React.ReactNode;
49
+ className?: string;
50
+ horizontal?: boolean;
51
+ openSubMenus?: boolean;
52
+ floating?: boolean;
53
+ subMenu?: boolean;
54
+ links?: NavLinkInterface[];
55
+ style?: BaseCSSProperties;
56
+ }
57
+
58
+ export const NavListBase: React.FC<NavListProps> = ({
59
+ className,
60
+ children,
61
+ floating,
62
+ horizontal,
63
+ subMenu,
64
+ ...props
65
+ }) => {
66
+ const classes = useNavListStyles();
67
+ return (
68
+ <nav>
69
+ <ul
70
+ style={props.style}
71
+ className={clsx(
72
+ className,
73
+ classes.root,
74
+ subMenu && classes.subMenu,
75
+ floating && classes.floating,
76
+ !horizontal && classes.vertical
77
+ )}
78
+ >
79
+ {children}
80
+ </ul>
81
+ <div className={classes.floatClear} />
82
+ </nav>
83
+ );
84
+ };
85
+
86
+ export const NavList: React.FC<NavListProps> = ({
87
+ horizontal,
88
+ openSubMenus = false,
89
+ links = [],
90
+ ...props
91
+ }) => {
92
+ return (
93
+ <NavListProvider
94
+ openSubMenus={openSubMenus}
95
+ horizontal={horizontal}
96
+ links={links}
97
+ >
98
+ <NavListBase horizontal={horizontal} {...props} />
99
+ </NavListProvider>
100
+ );
101
+ };
102
+
103
+ export default NavList;
@@ -0,0 +1,85 @@
1
+ import React, { createContext, useEffect, useState } from 'react';
2
+
3
+ export interface NavLinkInterface {
4
+ name?: string;
5
+ label?: string;
6
+ href?: string;
7
+ children?: React.ReactNode;
8
+ subMenu?: NavLinkInterface[];
9
+ }
10
+
11
+ export interface NavListContextInterface {
12
+ openSubMenus?: boolean;
13
+ horizontal?: boolean;
14
+ showDividers?: boolean;
15
+ links: NavLinkInterface[];
16
+ activeLink?: NavLinkInterface;
17
+ activeSubMenu?: NavLinkInterface[];
18
+ onSubMenuActive?: (name: string) => void;
19
+ }
20
+
21
+ export const NavListContext = createContext<NavListContextInterface>({
22
+ horizontal: false,
23
+ openSubMenus: false,
24
+ links: [],
25
+ activeLink: {},
26
+ activeSubMenu: [],
27
+ });
28
+
29
+ const TRAILING_SLASH = /\/$/gm;
30
+ export const NavListProvider: React.FC<NavListContextInterface> = ({
31
+ children,
32
+ openSubMenus = false,
33
+ horizontal = false,
34
+ showDividers = false,
35
+ links = [],
36
+ }) => {
37
+ const [activeSubMenu, setActiveSubMenu] = useState<NavLinkInterface[]>([]);
38
+ const [activeLink, setActiveLink] = useState<NavLinkInterface>({});
39
+ useEffect(() => {
40
+ const currentActiveLink = links.find((link) => {
41
+ if (link.subMenu?.length) {
42
+ return !!~link.subMenu.findIndex(
43
+ (subMenuLink) =>
44
+ window?.location.pathname.replace(TRAILING_SLASH, '') ===
45
+ subMenuLink.href?.replace(TRAILING_SLASH, '')
46
+ );
47
+ } else {
48
+ return (
49
+ window?.location.pathname.replace(TRAILING_SLASH, '') ===
50
+ link.href?.replace(TRAILING_SLASH, '') || false
51
+ );
52
+ }
53
+ }) || { label: '', href: '' };
54
+ setActiveLink(currentActiveLink);
55
+ }, [links]);
56
+ const onSubMenuActive = (href: string): void => {
57
+ if (href === null) {
58
+ setActiveSubMenu([]);
59
+ }
60
+ const link = links.find(
61
+ (link) => link.href === href && link.subMenu && link.subMenu.length
62
+ );
63
+ if (link && link.subMenu) {
64
+ setActiveSubMenu(link.subMenu);
65
+ }
66
+ };
67
+
68
+ return (
69
+ <NavListContext.Provider
70
+ value={{
71
+ openSubMenus,
72
+ horizontal,
73
+ showDividers,
74
+ links,
75
+ activeLink,
76
+ activeSubMenu,
77
+ onSubMenuActive,
78
+ }}
79
+ >
80
+ {children}
81
+ </NavListContext.Provider>
82
+ );
83
+ };
84
+
85
+ export default NavListContext;
@@ -0,0 +1,143 @@
1
+ import React, { useContext, useEffect, useRef, useState } from 'react';
2
+ import clsx from 'clsx';
3
+ import Divider from '@digigov/react-core/SectionBreak';
4
+ import { makeStyles } from '@material-ui/core/styles';
5
+ import NavListItemBase from '@digigov/ui/core/NavList/NavListItemBase';
6
+ import NavListSubMenu from '@digigov/ui/core/NavList/NavListSubMenu';
7
+ import NavListContext from '@digigov/ui/core/NavList/NavListContext';
8
+ import { BaseCSSProperties } from '@material-ui/core/styles/withStyles';
9
+
10
+ export interface NavListItemProps {
11
+ name?: string;
12
+ label?: string;
13
+ children?: React.ReactNode;
14
+ className?: string;
15
+ href?: string;
16
+ selected?: boolean;
17
+ expandOn?: 'hover' | 'click';
18
+ }
19
+
20
+ export const useNavListItemStyles = makeStyles(
21
+ (theme) => ({
22
+ root: {},
23
+ link: {
24
+ padding: theme.spacing(0.5, 2),
25
+ textDecoration: 'none',
26
+ '&:hover': {
27
+ textDecoration: 'underline',
28
+ },
29
+ },
30
+ selected: {
31
+ borderStyle: 'solid',
32
+ borderColor: theme.palette.secondary.main,
33
+ fontWeight: 'bolder',
34
+ },
35
+ }),
36
+ { name: 'MuiNavListItem' }
37
+ );
38
+
39
+ export const NavListItem: React.FC<NavListItemProps> = ({
40
+ name,
41
+ expandOn = 'click',
42
+ children,
43
+ href,
44
+ className,
45
+ selected: passSelected,
46
+ ...props
47
+ }) => {
48
+ const [open, setOpen] = useState(false);
49
+ const [style, setStyle] = useState<BaseCSSProperties>({});
50
+ const ref = useRef<HTMLLIElement>(null);
51
+ const [delayHandler, setDelayHandler] = useState<
52
+ ReturnType<typeof setTimeout>
53
+ >();
54
+ const [selected, setSelected] = useState(passSelected || false);
55
+ const classes = useNavListItemStyles();
56
+ const {
57
+ openSubMenus,
58
+ horizontal,
59
+ showDividers,
60
+ activeLink,
61
+ links,
62
+ } = useContext(NavListContext);
63
+ const { href: contextHref, label, subMenu } =
64
+ links.find((link) => link.name === name) || {};
65
+
66
+ useEffect(() => {
67
+ if (activeLink?.name && name) {
68
+ setSelected(activeLink.name === name);
69
+ }
70
+ // eslint-disable-next-line react-hooks/exhaustive-deps
71
+ }, [activeLink?.name]);
72
+
73
+ const toggleOpen = (): void => {
74
+ setOpen(!open);
75
+ };
76
+ const handleOpen = (): void => {
77
+ if (subMenu && subMenu.length) {
78
+ setDelayHandler(
79
+ setTimeout(() => {
80
+ setOpen(true);
81
+ }, 300)
82
+ );
83
+ }
84
+ };
85
+ const handleClose = (): void => {
86
+ if (subMenu && subMenu.length) {
87
+ if (delayHandler) clearTimeout(delayHandler);
88
+ setOpen(false);
89
+ }
90
+ };
91
+ useEffect(() => {
92
+ if (
93
+ ref?.current?.clientWidth &&
94
+ horizontal &&
95
+ ref.current.clientWidth !== style.width
96
+ ) {
97
+ setStyle({
98
+ top: ref.current.clientHeight - 12,
99
+ width: ref.current.clientWidth,
100
+ });
101
+ }
102
+ }, [
103
+ horizontal,
104
+ style.width,
105
+ ref.current?.clientWidth,
106
+ ref.current?.clientHeight,
107
+ ]);
108
+
109
+ const handlerProps =
110
+ expandOn === 'hover'
111
+ ? {
112
+ onMouseEnter: handleOpen,
113
+ onMouseLeave: handleClose,
114
+ }
115
+ : {
116
+ onClick: toggleOpen,
117
+ };
118
+
119
+ return (
120
+ <>
121
+ <NavListItemBase
122
+ ref={ref}
123
+ href={contextHref || href}
124
+ label={label || children}
125
+ expandOn={expandOn}
126
+ open={open}
127
+ selected={selected}
128
+ isNested={subMenu && subMenu.length > 0}
129
+ horizontal={horizontal}
130
+ className={clsx(className, classes.root)}
131
+ {...handlerProps}
132
+ {...props}
133
+ >
134
+ {(open || openSubMenus) && subMenu && subMenu.length && (
135
+ <NavListSubMenu style={style} links={subMenu} />
136
+ )}
137
+ </NavListItemBase>
138
+ {!horizontal && showDividers && <Divider />}
139
+ </>
140
+ );
141
+ };
142
+
143
+ export default NavListItem;