@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,50 @@
1
+ import * as React from 'react';
2
+ import useLatest from '@digigov/ui/hooks/useLatest';
3
+
4
+ export const useDebounceCallback = <CallbackArgs extends any[]>(
5
+ callback: (...args: CallbackArgs) => void,
6
+ wait = 100,
7
+ leading = false
8
+ ): ((...args: CallbackArgs) => void) => {
9
+ const storedCallback = useLatest(callback);
10
+ const timeout = React.useRef<ReturnType<typeof setTimeout>>();
11
+ const deps = [wait, leading, storedCallback];
12
+ // Cleans up pending timeouts when the deps change
13
+ React.useEffect(
14
+ () => () => {
15
+ timeout.current && clearTimeout(timeout.current);
16
+ timeout.current = void 0;
17
+ },
18
+ deps
19
+ );
20
+
21
+ return React.useCallback(function () {
22
+ // eslint-disable-next-line prefer-rest-params
23
+ const args = arguments;
24
+ const { current } = timeout;
25
+ // Calls on leading edge
26
+ if (current === void 0 && leading) {
27
+ timeout.current = setTimeout(() => {
28
+ timeout.current = void 0;
29
+ }, wait);
30
+ // eslint-disable-next-line prefer-spread
31
+ return storedCallback.current.apply(null, args as any);
32
+ }
33
+ // Clear the timeout every call and start waiting again
34
+ current && clearTimeout(current);
35
+ // Waits for `wait` before invoking the callback
36
+ timeout.current = setTimeout(() => {
37
+ timeout.current = void 0;
38
+ storedCallback.current.apply(null, args as any);
39
+ }, wait);
40
+ }, deps);
41
+ };
42
+
43
+ export const useDebounce = <State extends any>(
44
+ initialState: State | (() => State),
45
+ wait?: number,
46
+ leading?: boolean
47
+ ): [State, React.Dispatch<React.SetStateAction<State>>] => {
48
+ const state = React.useState(initialState);
49
+ return [state[0], useDebounceCallback(state[1], wait, leading)];
50
+ };
@@ -0,0 +1,12 @@
1
+ // copied from https://github.com/jaredLunde/react-hook/blob/master/packages/latest/src/index.tsx
2
+ import * as React from 'react'
3
+
4
+ const useLatest = <T extends any>(current: T) => {
5
+ const storedValue = React.useRef(current)
6
+ React.useEffect(() => {
7
+ storedValue.current = current
8
+ })
9
+ return storedValue
10
+ }
11
+
12
+ export default useLatest
@@ -1,34 +1,35 @@
1
1
  import evaluateBrowserVersion from '@digigov/ui/utils/evaluateBrowserVersion';
2
- var DEFAULT_BROWSER_SUPPORT = {
3
- Chrome: 57,
4
- // Includes Chrome for mobile devices
2
+
3
+ const DEFAULT_BROWSER_SUPPORT = {
4
+ Chrome: 57, // Includes Chrome for mobile devices
5
5
  Edge: 39,
6
6
  Safari: 10,
7
7
  'Mobile Safari': 10,
8
8
  Firefox: 50,
9
9
  Opera: 50,
10
- IE: false
10
+ IE: false,
11
11
  };
12
- var browserUpdateLinks = {
12
+
13
+ const browserUpdateLinks = {
13
14
  Chrome: 'https://www.google.com/chrome/',
14
15
  Edge: 'https://www.microsoft.com/en-us/edge',
15
16
  Safari: 'https://www.apple.com/safari/',
16
17
  'Mobile Safari': 'https://www.apple.com/safari/',
17
18
  Firefox: 'https://www.mozilla.org/en-US/firefox/new/',
18
- Opera: 'https://www.opera.com/download'
19
+ Opera: 'https://www.opera.com/download',
19
20
  };
20
- var browserNames = Object.keys(DEFAULT_BROWSER_SUPPORT);
21
- export function useOutdatedBrowserCheck() {
22
- var browserSupport = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_BROWSER_SUPPORT;
23
- var currentBrowser = evaluateBrowserVersion();
24
21
 
22
+ const browserNames = Object.keys(DEFAULT_BROWSER_SUPPORT);
23
+
24
+ export function useOutdatedBrowserCheck(
25
+ browserSupport: Record<string, number | boolean> = DEFAULT_BROWSER_SUPPORT
26
+ ): [boolean, string] {
27
+ const currentBrowser = evaluateBrowserVersion();
25
28
  if (!currentBrowser.version || !currentBrowser.name) {
26
29
  return [true, browserUpdateLinks.Chrome];
27
30
  }
28
-
29
- var currentBrowserVersion = parseInt(currentBrowser.version);
30
- var currentBrowserName = currentBrowser.name;
31
-
31
+ const currentBrowserVersion = parseInt(currentBrowser.version);
32
+ const currentBrowserName = currentBrowser.name;
32
33
  if (browserNames.indexOf(currentBrowser.name) > -1) {
33
34
  if (browserSupport[currentBrowserName] === false) {
34
35
  return [true, browserUpdateLinks.Chrome];
@@ -43,4 +44,4 @@ export function useOutdatedBrowserCheck() {
43
44
  return [true, browserUpdateLinks.Chrome];
44
45
  }
45
46
  }
46
- export default useOutdatedBrowserCheck;
47
+ export default useOutdatedBrowserCheck;
@@ -0,0 +1,47 @@
1
+ import { useMemo } from 'react';
2
+
3
+ export function normalizeGreek(text) {
4
+ text = text
5
+ .replace(/Ά|Α|ά/g, 'α')
6
+ .replace(/Έ|Ε|έ/g, 'ε')
7
+ .replace(/Ή|Η|ή/g, 'η')
8
+ .replace(/Ί|Ϊ|Ι|ί|ΐ|ϊ/g, 'ι')
9
+ .replace(/Ό|Ο|ό/g, 'ο')
10
+ .replace(/Ύ|Ϋ|Υ|ύ|ΰ|ϋ/g, 'υ')
11
+ .replace(/Ώ|Ω|ώ/g, 'ω')
12
+ .replace(/Σ|ς/g, 'σ');
13
+ return text;
14
+ }
15
+
16
+ export function fullTextSearch(data: Object, search: string): boolean {
17
+ if (!search) {
18
+ return true;
19
+ }
20
+ const q = normalizeGreek(
21
+ search
22
+ .normalize('NFC')
23
+ .replace(/[\u0300-\u036f]/g, '')
24
+ .toLowerCase()
25
+ );
26
+ const index = Object.keys(data)
27
+ .map(k => {
28
+ return data[k] ? data[k].toString().toLowerCase() : '';
29
+ })
30
+ .join('');
31
+
32
+ return normalizeGreek(
33
+ index.normalize('NFC').replace(/[\u0300-\u036f]/g, '')
34
+ ).includes(q);
35
+ }
36
+
37
+ export function useSearch(
38
+ data: Array<Object>,
39
+ query?: string
40
+ ) {
41
+ if(!query) return data
42
+ return useMemo(() => {
43
+ return data.filter(t => fullTextSearch(t, query));
44
+ }, [data, query]);
45
+ }
46
+
47
+ export default useSearch
@@ -0,0 +1,102 @@
1
+ /* eslint-disable react-hooks/exhaustive-deps */
2
+ import { useRef, useState, useCallback, useMemo } from 'react';
3
+
4
+ export interface UseTogglableSectionsInterface {
5
+ toggleProperty: string;
6
+ singleOpen?: boolean;
7
+ onToggleProperty: string;
8
+ initial?: Record<string, boolean>;
9
+ firstOpen?: boolean;
10
+ ariaNavigation?: boolean;
11
+ }
12
+ export interface UseTogglableSectionsReturn {
13
+ register: (el: HTMLElement) => void;
14
+ registered: { current: Record<string, HTMLElement> };
15
+ opened: Record<string, boolean>;
16
+ toggle: (id: string) => void;
17
+ setOpened: (
18
+ opened:
19
+ | ((curOpened: Record<string, boolean>) => Record<string, boolean>)
20
+ | Record<string, boolean>
21
+ ) => void;
22
+ }
23
+ export function useTogglableSections({
24
+ toggleProperty,
25
+ singleOpen,
26
+ onToggleProperty,
27
+ initial,
28
+ firstOpen,
29
+ ariaNavigation,
30
+ }: UseTogglableSectionsInterface): UseTogglableSectionsReturn {
31
+ const [opened, setOpened] = useState(initial || {});
32
+ const registered = useRef<Record<string, HTMLElement>>({});
33
+ const sectionsOrder = useRef<string[]>([]);
34
+ const registerRef = useCallback((el) => {
35
+ if (!el) return;
36
+ const key = el.getAttribute('aria-controls') as string;
37
+ if (registered.current[key]) return;
38
+ registered.current[key] = el;
39
+ sectionsOrder.current.push(key);
40
+ if (firstOpen && sectionsOrder.current.length === 1) {
41
+ setOpened({
42
+ [key]: true,
43
+ });
44
+ }
45
+ }, []);
46
+ const toggle = useCallback((e) => {
47
+ const key = e.currentTarget.getAttribute('aria-controls') as string;
48
+ e.preventDefault();
49
+ if (singleOpen) {
50
+ setOpened({ [key]: true });
51
+ } else {
52
+ setOpened((prev) => ({ ...prev, [key]: !prev[key] }));
53
+ }
54
+ }, []);
55
+ const onKeyDown = useCallback((e) => {
56
+ const key = e.target.getAttribute('aria-controls');
57
+ const currentIndex = sectionsOrder.current.findIndex((k) => k === key);
58
+ const nextKey = sectionsOrder.current[currentIndex + 1];
59
+ const previousKey = sectionsOrder.current[currentIndex - 1];
60
+ switch (e.key) {
61
+ case 'ArrowRight':
62
+ case 'ArrowDown':
63
+ if (nextKey) {
64
+ registered.current[nextKey].focus();
65
+ }
66
+ break;
67
+ case 'ArrowLeft':
68
+ case 'ArrowUp':
69
+ if (previousKey) {
70
+ registered.current[previousKey].focus();
71
+ }
72
+ break;
73
+ case ' ':
74
+ case 'Enter':
75
+ toggle(e);
76
+ break;
77
+ }
78
+ }, []);
79
+ const register = useCallback(
80
+ (key) => {
81
+ const isOpen = !!opened[key];
82
+ return {
83
+ ref: registerRef,
84
+ [toggleProperty]: isOpen,
85
+ [onToggleProperty]: toggle,
86
+ 'aria-controls': `${key}`,
87
+ ...(ariaNavigation && { onKeyDown, tabIndex: opened[key] ? 0 : -1 }),
88
+ };
89
+ },
90
+ [opened]
91
+ );
92
+ return useMemo(
93
+ () => ({
94
+ register,
95
+ registered,
96
+ opened,
97
+ toggle,
98
+ setOpened,
99
+ }),
100
+ [opened]
101
+ );
102
+ }
File without changes
File without changes
@@ -1,3 +1,4 @@
1
1
  import Bottom from '@digigov/react-core/Bottom';
2
+
2
3
  export { Bottom };
3
4
  export default Bottom;
File without changes
@@ -0,0 +1,24 @@
1
+ import CoreContainer, {
2
+ ContainerProps as CoreContainerProps,
3
+ } from '@digigov/react-core/Container';
4
+ import withDeprecation from '@digigov/ui/utils/withDeprecation';
5
+
6
+ export type ContainerProps = CoreContainerProps;
7
+
8
+ export const Content = withDeprecation(CoreContainer, {
9
+ name: 'Content',
10
+ rename: 'Container',
11
+ props: {
12
+ maxWidth: {
13
+ error: true,
14
+ },
15
+ flex: {
16
+ error: true,
17
+ },
18
+ dense: {
19
+ error: true,
20
+ },
21
+ },
22
+ });
23
+
24
+ export default Content;
File without changes
@@ -1,3 +1,4 @@
1
1
  import Main from '@digigov/react-core/Main';
2
+
2
3
  export { Main };
3
4
  export default Main;
File without changes
@@ -1,4 +1,6 @@
1
1
  import Masthead from '@digigov/react-core/Masthead';
2
2
  import MastheadBody from '@digigov/react-core/MastheadBody';
3
+
3
4
  export { Masthead, MastheadBody };
5
+
4
6
  export default Masthead;
File without changes
@@ -1,7 +1,9 @@
1
1
  import Aside from '@digigov/react-core/Aside';
2
2
  import withDeprecation from '@digigov/ui/utils/withDeprecation';
3
- export var Side = withDeprecation(Aside, {
3
+
4
+ export const Side = withDeprecation(Aside, {
4
5
  name: 'Side',
5
- rename: 'Aside'
6
+ rename: 'Aside',
6
7
  });
7
- export default Side;
8
+
9
+ export default Side;
File without changes
@@ -1,11 +1,13 @@
1
1
  import CoreTop from '@digigov/react-core/Top';
2
2
  import withDeprecation from '@digigov/ui/utils/withDeprecation';
3
- export var Top = withDeprecation(CoreTop, {
3
+
4
+ export const Top = withDeprecation(CoreTop, {
4
5
  name: 'Top',
5
6
  props: {
6
7
  dense: {
7
- error: true
8
- }
9
- }
8
+ error: true,
9
+ },
10
+ },
10
11
  });
11
- export default Top;
12
+
13
+ export default Top;
File without changes
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import { mount } from 'enzyme';
3
+
4
+ import BasicLayout, {
5
+ Top,
6
+ Side,
7
+ Main,
8
+ Content,
9
+ Bottom,
10
+ } from '@digigov/ui/layouts/Basic';
11
+
12
+ it('renders the BasicLayout with Top, Content, Bottom, Main and Side children ', () => {
13
+ const jsx = (
14
+ <BasicLayout>
15
+ <Top>Header content</Top>
16
+ <Content>
17
+ <Main>Main content</Main>
18
+ <Side>Side content</Side>
19
+ </Content>
20
+ <Bottom>Bottom content</Bottom>
21
+ </BasicLayout>
22
+ );
23
+ expect(mount(jsx)).toMatchSnapshot();
24
+ });
@@ -1,8 +1,10 @@
1
1
  import Layout from '@digigov/react-core/Layout';
2
+
2
3
  export * from '@digigov/ui/layouts/Basic/Top';
3
4
  export * from '@digigov/ui/layouts/Basic/Side';
4
5
  export * from '@digigov/ui/layouts/Basic/Main';
5
6
  export * from '@digigov/ui/layouts/Basic/Content';
6
7
  export * from '@digigov/ui/layouts/Basic/Bottom';
7
8
  export * from '@digigov/ui/layouts/Basic/Masthead';
9
+
8
10
  export default Layout;
File without changes
@@ -0,0 +1,60 @@
1
+ export default {
2
+ form: {
3
+ label: {
4
+ day: 'Ημέρα',
5
+ month: 'Μήνας',
6
+ year: 'Έτος',
7
+ },
8
+ error: {
9
+ required: 'Το πεδίο είναι υποχρεωτικό.',
10
+ number: 'Συμπληρώστε έναν έγκυρο αριθμό',
11
+ positive_number: 'Συμπληρώστε έναν θετικό αριθμό',
12
+ string: 'Το πεδίο πρέπει να είναι string',
13
+ email: 'Συμπληρώστε μια έγκυρη ηλεκτρονική διεύθυνση (e-mail).',
14
+ afm: 'Ο Α.Φ.Μ που πληκτρολογήσατε είναι λανθασμένος.',
15
+ file_size: 'Το μέγεθος του αρχείου είναι μεγαλύτερο απο το επιτρεπόμενο.',
16
+ mobile_phone: 'Συμπληρώστε έναν έγκυρο αριθμό κινητού τηλεφώνου.',
17
+ uuid4: 'Ο κωδικός επιβεβαίωσης δεν είναι έγκυρος.',
18
+ date: {
19
+ invalid: 'Η ημερομηνία πρέπει να είναι έγκυρη.',
20
+ earlier_than: 'Συμπληρώστε μια ημερομηνία προγενέστερη της {{maxDate}}',
21
+ later_than: 'Συμπληρώστε μια ημερομηνία μεταγενέστερη της {{minDate}}',
22
+ },
23
+ },
24
+ },
25
+ button: {
26
+ start: 'Ξεκινήστε εδώ',
27
+ login: 'Σύνδεση',
28
+ back: 'Πίσω',
29
+ continue: 'Συνέχεια',
30
+ search_ref: 'Αναζητήστε',
31
+ scan: 'Σαρώστε QR Code',
32
+ save: 'Αποθήκευση',
33
+ logout: 'Εξοδος',
34
+ submit: 'Υποβολή',
35
+ delete: 'Διαγραφή',
36
+ },
37
+ footer: {
38
+ created_by: 'Υλοποίηση από το',
39
+ grnet: 'ΕΔΥΤΕ',
40
+ mindigital: 'Υπουργείο Ψηφιακής Διακυβέρνησης',
41
+ using: 'με χρήση',
42
+ open_source: 'Ανοιχτού Λογισμικού',
43
+ creative_commons: 'Άδεια χρήσης περιεχομένου',
44
+ },
45
+ notfound: {
46
+ page_not_found: 'Η σελίδα δεν βρέθηκε',
47
+ wrong_key_address:
48
+ 'Εάν έχετε πληκτρολογήσει τη διεύθυνση της σελίδας, ελέγξτε ότι είναι σωστή.',
49
+ wrong_cp_address:
50
+ 'Εάν έχετε επικολλήσει τη διεύθυνση της σελίδας, ελέγξτε ότι έχετε αντιγράψει ολόκληρη τη διεύθυνση.',
51
+ service_contact:
52
+ 'Εάν η διεύθυνση της σελίδας είναι σωστή ή έχετε επιλέξει κάποιον σύνδεσμο ή κουμπί, επικοινωνήστε με τη γραμμή εξυπηρέτησης σε περίπτωση που χρειαστείτε βοήθεια.',
53
+ },
54
+ outdated: {
55
+ mobile:
56
+ 'Η ιστοσελίδα ενδέχεται να μην λειτουργεί σωστά καθώς ο browser σας είτε δεν υποστηρίζεται είτε είναι μη επικαιροποιημένος. Παρακαλούμε επικαιροποιήστε τον browser σας.',
57
+ web:
58
+ 'Η ιστοσελίδα ενδέχεται να μην λειτουργεί σωστά καθώς ο browser σας είναι μη επικαιροποιημένος. Για να επικαιροποιήσετε τον browser σας επισκεφθείτε την ιστοσελίδα: ',
59
+ },
60
+ };
@@ -1,5 +1,10 @@
1
1
  export default {
2
2
  form: {
3
+ label: {
4
+ day: 'Day',
5
+ month: 'Month',
6
+ year: 'Year',
7
+ },
3
8
  error: {
4
9
  required: 'This field is required.',
5
10
  number: 'Please enter a valid number',
@@ -9,20 +14,25 @@ export default {
9
14
  afm: 'The VAT number you entered is incorrect.',
10
15
  file_size: 'File size is larger than allowed.',
11
16
  mobile_phone: 'Fill in a valid mobile phone number.',
12
- uuid4: 'Confirmation code is invalid.'
13
- }
17
+ uuid4: 'Confirmation code is invalid.',
18
+ date: {
19
+ invalid: 'Date must be a real date.',
20
+ earlier_than: 'The date must be earlier than {{maxDate}}.',
21
+ later_than: 'The date must be later than {{minDate}}',
22
+ },
23
+ },
14
24
  },
15
25
  button: {
16
26
  start: 'Start',
17
27
  login: 'Login',
18
28
  back: 'Back',
19
- "continue": 'Continue',
29
+ continue: 'Continue',
20
30
  search_ref: 'Search',
21
31
  scan: 'Scan QR Code',
22
32
  save: 'Save',
23
33
  logout: 'Logout',
24
34
  submit: 'Sumbit',
25
- "delete": 'Delete'
35
+ delete: 'Delete',
26
36
  },
27
37
  footer: {
28
38
  created_by: 'Created by',
@@ -30,16 +40,20 @@ export default {
30
40
  mindigital: 'Ministry of Digital Governance',
31
41
  using: 'using',
32
42
  open_source: 'Open Source Software',
33
- creative_commons: 'Creative Commons'
43
+ creative_commons: 'Creative Commons',
34
44
  },
35
45
  notfound: {
36
46
  page_not_found: 'Page not found',
37
47
  wrong_key_address: 'If you typed the web address, check it is correct.',
38
- wrong_cp_address: 'If you pasted the web address, check you copied the entire address..',
39
- service_contact: 'If the web address is correct or you selected a link or button, contact the Service Helpline if you need to speak to someone about your tax credits.'
48
+ wrong_cp_address:
49
+ 'If you pasted the web address, check you copied the entire address..',
50
+ service_contact:
51
+ 'If the web address is correct or you selected a link or button, contact the Service Helpline if you need to speak to someone about your tax credits.',
40
52
  },
41
53
  outdated: {
42
- mobile: 'This site may not work properly because your browser is either not supported or outdated. Please update your browser',
43
- web: 'This site may not work properly because your browser outdated. To update your browser visit: '
44
- }
45
- };
54
+ mobile:
55
+ 'This site may not work properly because your browser is either not supported or outdated. Please update your browser',
56
+ web:
57
+ 'This site may not work properly because your browser outdated. To update your browser visit: ',
58
+ },
59
+ };
File without changes
@@ -0,0 +1,28 @@
1
+ import React, { createContext, useContext } from 'react';
2
+
3
+ export type RouterInterface = {
4
+ children?: React.ReactNode;
5
+ router?: any;
6
+ };
7
+ export const RouterContext = createContext<RouterInterface>({});
8
+
9
+ export const useRouter = (): RouterInterface => {
10
+ return useContext(RouterContext);
11
+ };
12
+
13
+ export const RouterProvider: React.FC<RouterInterface> = ({
14
+ router,
15
+ children,
16
+ }) => {
17
+ return (
18
+ <RouterContext.Provider
19
+ value={{
20
+ router,
21
+ }}
22
+ >
23
+ {children}
24
+ </RouterContext.Provider>
25
+ );
26
+ };
27
+
28
+ export default RouterContext;
@@ -0,0 +1,9 @@
1
+ import { act } from '@testing-library/react';
2
+
3
+ export async function delay(ms): Promise<void> {
4
+ await act(
5
+ (): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms))
6
+ ); // still suspending
7
+ }
8
+
9
+ export default delay;
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { mount } from 'enzyme';
3
+ import { ThemeProvider, createMuiTheme } from '@material-ui/core/styles';
4
+
5
+ const mockTheme = createMuiTheme({
6
+ header: {
7
+ height: '',
8
+ logo: {
9
+ component: '',
10
+ height: '',
11
+ },
12
+ border: {
13
+ width: '',
14
+ height: '',
15
+ background: '',
16
+ },
17
+ },
18
+ footer: {
19
+ link: '',
20
+ contrastText: '',
21
+ main: '',
22
+ },
23
+ });
24
+
25
+ const mountWithTheme = (tree: React.ReactNode): any => {
26
+ return mount(
27
+ <>
28
+ <ThemeProvider theme={mockTheme}>{tree}</ThemeProvider>
29
+ </>
30
+ );
31
+ };
32
+
33
+ export default mountWithTheme;