@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,21 @@
1
+ import React from 'react';
2
+ import PageTitle from '@digigov/react-core/PageTitle';
3
+ import PageTitleHeading from '@digigov/react-core/PageTitleHeading';
4
+ import Paragraph from '@digigov/react-core/Paragraph';
5
+ import { useTranslation } from '@digigov/ui/app';
6
+
7
+ export const NotFound: React.FC = () => {
8
+ const { t } = useTranslation();
9
+ return (
10
+ <>
11
+ <PageTitle>
12
+ <PageTitleHeading>{t('notfound.page_not_found')}</PageTitleHeading>
13
+ </PageTitle>
14
+ <Paragraph>{t('notfound.wrong_key_address')}</Paragraph>
15
+ <Paragraph>{t('notfound.wrong_cp_address')}</Paragraph>
16
+ <Paragraph>{t('notfound.service_contact')}</Paragraph>
17
+ </>
18
+ );
19
+ };
20
+
21
+ export default NotFound;
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { WarningText } from '@digigov/ui/core/WarningText';
3
+ import Paragraph from '@digigov/ui/typography/Paragraph';
4
+ import useOutdatedBrowserCheck from '@digigov/ui/hooks/useOutdatedBrowserCheck';
5
+ import Link from '@digigov/ui/core/Link';
6
+ import { isMobile } from '@digigov/ui/utils/evaluateBrowserVersion';
7
+ import { useTranslation } from '@digigov/ui/app/';
8
+
9
+ export default function OutdatedBrowserBanner(): JSX.Element {
10
+ const mob = isMobile;
11
+ const [shouldUpdate, updateLink] = useOutdatedBrowserCheck();
12
+ const { t } = useTranslation();
13
+ return (
14
+ <WarningText>
15
+ {shouldUpdate ? (
16
+ <>
17
+ {mob.any() ? (
18
+ <>
19
+ <Paragraph>{t('outdated.mobile')}</Paragraph>
20
+ </>
21
+ ) : (
22
+ <>
23
+ <Paragraph>
24
+ {t('outdated.web')}
25
+ <Link href={updateLink} target="_blank">
26
+ {updateLink}{' '}
27
+ </Link>
28
+ </Paragraph>
29
+ </>
30
+ )}
31
+ </>
32
+ ) : (
33
+ <></>
34
+ )}
35
+ </WarningText>
36
+ );
37
+ }
@@ -0,0 +1,70 @@
1
+ import React from 'react';
2
+ import Caption, { CaptionProps } from '@digigov/ui/typography/Caption';
3
+ import Title, { TitleProps } from '@digigov/ui/typography/Title';
4
+ import withDeprecation from '@digigov/ui/utils/withDeprecation';
5
+
6
+ export const PageTitle: React.FC<{}> = withDeprecation(
7
+ ({ children }) => {
8
+ return <>{children}</>;
9
+ },
10
+ {
11
+ name: 'PageTitle',
12
+ warning:
13
+ 'There is no need to use PageTitle components anymore. It will be removed in a later version',
14
+ }
15
+ );
16
+
17
+ export default PageTitle;
18
+
19
+ export const PageTitleSection: React.FC<{}> = withDeprecation(
20
+ ({ children }) => {
21
+ return <>{children}</>;
22
+ },
23
+ {
24
+ name: 'PageTitleSection',
25
+ warning:
26
+ 'There is no need to use PageTitleSection components anymore. It will be removed in a later version',
27
+ }
28
+ );
29
+
30
+ export const PageTitleCaption: React.FC<CaptionProps> = withDeprecation(
31
+ Caption,
32
+ {
33
+ name: 'PageTitleCaption',
34
+ rename: 'Caption',
35
+ }
36
+ );
37
+
38
+ export interface PageTitleHeadingProps extends TitleProps { }
39
+
40
+ export const PageTitleHeading: React.FC<TitleProps> = withDeprecation(
41
+ ({ component, children, ...props }) => {
42
+ return (
43
+ <Title size="xl" element={component} {...props}>
44
+ {children}
45
+ </Title>
46
+ );
47
+ },
48
+ {
49
+ name: 'PageTitleHeading',
50
+ props: {
51
+ dense: {
52
+ error: true,
53
+ },
54
+ size: {
55
+ values: {
56
+ xs: {
57
+ error: true,
58
+ },
59
+ },
60
+ },
61
+ component: {
62
+ values: {
63
+ h5: {
64
+ error: true,
65
+ },
66
+ },
67
+ },
68
+ },
69
+ }
70
+ );
File without changes
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { mount } from 'enzyme';
3
+
4
+ import QrCodeScanner from '@digigov/ui/app/QrCodeScanner';
5
+
6
+ it('renders the qr code scanner', () => {
7
+ expect(
8
+ mount(
9
+ <QrCodeScanner
10
+ onScan={(args) => {
11
+ console.log(args);
12
+ }}
13
+ onError={(args) => {
14
+ console.log(args);
15
+ }}
16
+ />
17
+ )
18
+ ).toMatchSnapshot();
19
+ });
@@ -0,0 +1,90 @@
1
+ import React from 'react';
2
+
3
+ const QrReader = React.lazy(() => import('react-qr-reader'));
4
+
5
+ export interface QrCodeScannerProps {
6
+ className?: string;
7
+ dataType?: 'url' | 'text';
8
+ children?: React.ReactNode;
9
+ legacyMode?: boolean;
10
+ validate?: (...args) => boolean;
11
+ onScan: (...args) => void;
12
+ onError: (err: any) => void;
13
+ }
14
+
15
+ /**
16
+ * QRCodeScanner assumes that the data provided inside the QR code image,
17
+ * are a HTTP link, thus it uses the `encodeURI` function to escape
18
+ * all scanned data that will be forwarded to the `onScan` function
19
+ *
20
+ * When a QR code is scanned, before we run the `onScan` callback function,
21
+ * we do the following:
22
+ *
23
+ * 1. Run a validator function provided in the props of QrCodeScanner component
24
+ * that receives the *raw* scanned data and returns a boolean type. (eg. check
25
+ * if it's a gov.gr subdomain, or that it matches the current domain)
26
+ * 2. If the validator returns `true`, then construct a URL object from the data provided
27
+ * and check if the protocol is `https` and the `origin` is the same as the origin of this page
28
+ * 2. Automatically fallback to the `onError` callback function, if the validation or url check fail
29
+ * 3. Finally, run `onScan` callback function with the scanned data encoded as a URI.
30
+ *
31
+ */
32
+
33
+ export const QrCodeScanner: React.FC<QrCodeScannerProps> = ({
34
+ className,
35
+ children,
36
+ validate,
37
+ onScan,
38
+ onError,
39
+ dataType = 'url',
40
+ legacyMode = false,
41
+ }) => {
42
+ if (dataType === 'text') {
43
+ console.warn(
44
+ `Security Warning! The \`text\` dataType could be used to inject XSS code to your application database or user DOM.
45
+
46
+ In order to be safe, you can:
47
+ 1. Use a sanitizer function inside the \`onScan\` callback function that makes sure the data is not posing a threat to your app
48
+ 2. Contact @digigov-ui for any further details and feature requests.
49
+ 3. Read more about xss https://owasp.org/www-community/attacks/xss/
50
+ `
51
+ );
52
+ }
53
+ const handleOnScan = (data) => {
54
+ if (data) {
55
+ if (dataType === 'url') {
56
+ if (
57
+ !data.match(
58
+ /^https?:\/\/([a-z0-9-]*\.?)*(:?)(([a-z0-9-]*)\/)*([a-z0-9-]*)$/gi
59
+ )
60
+ ) {
61
+ return onError(
62
+ new Error(
63
+ '@digigov-ui XSS Validation failed: qr code payload should follow the pattern `https://example.com/data/:id`'
64
+ )
65
+ );
66
+ }
67
+ }
68
+ // run a validator function provided by the application code
69
+ if (validate && !validate(data)) {
70
+ return onError(new Error('Custom QR Code payload validation failed'));
71
+ }
72
+ // proceed with application defined callback function
73
+ onScan(data);
74
+ }
75
+ };
76
+ return (
77
+ <>
78
+ <QrReader
79
+ className={className}
80
+ delay={100}
81
+ onError={onError}
82
+ onScan={handleOnScan}
83
+ legacyMode={legacyMode}
84
+ />
85
+ {children}
86
+ </>
87
+ );
88
+ };
89
+
90
+ export default QrCodeScanner;
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import el from '@digigov/ui/locales/el';
3
+ export interface I18NContextProps {
4
+ t: (str: string) => string;
5
+ children?: React.ReactNode;
6
+ i18n?: any;
7
+ }
8
+ const defaultTranslate = (key) => {
9
+ try {
10
+ if (key.split('.').length > 0) {
11
+ return key.split('.').reduce((locale, path) => {
12
+ return locale[path] ? locale[path] : key;
13
+ }, el);
14
+ } else if (el[key]) {
15
+ return el[key];
16
+ } else {
17
+ return key;
18
+ }
19
+ } catch (err) {
20
+ console.error(`Translation key \`${key}\` not found`);
21
+ return key;
22
+ }
23
+ };
24
+ export const I18NContext = React.createContext<I18NContextProps>({
25
+ t: defaultTranslate,
26
+ });
27
+
28
+ export const I18NProvider: React.FC<I18NContextProps> = ({
29
+ t = defaultTranslate,
30
+ children,
31
+ ...props
32
+ }: I18NContextProps) => {
33
+ return (
34
+ <I18NContext.Provider value={{ t, ...props }}>
35
+ {children}
36
+ </I18NContext.Provider>
37
+ );
38
+ };
39
+
40
+ export const useTranslation = (): I18NContextProps => {
41
+ return React.useContext(I18NContext);
42
+ };
43
+
44
+ export default I18NProvider;
File without changes
File without changes
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ import { mount } from 'enzyme';
3
+
4
+ import {
5
+ Accordion,
6
+ AccordionItem,
7
+ AccordionItemDetails,
8
+ AccordionItemSummary,
9
+ } from '@digigov/ui/core/Accordion';
10
+
11
+ it('renders the Accordion', () => {
12
+ expect(
13
+ mount(
14
+ <Accordion>
15
+ <AccordionItem>
16
+ <AccordionItemSummary>Βασικες Ρυθμισεις</AccordionItemSummary>
17
+ <AccordionItemDetails>
18
+ Περιεχομενο Βασικων Ρυθμισεων
19
+ </AccordionItemDetails>
20
+ </AccordionItem>
21
+ <AccordionItem>
22
+ <AccordionItemSummary>Υπολοιπες Ρυθμισεις</AccordionItemSummary>
23
+ <AccordionItemDetails>
24
+ Περιεχομενο Υπολοιπων Ρυθμισεων
25
+ </AccordionItemDetails>
26
+ </AccordionItem>
27
+ </Accordion>
28
+ )
29
+ ).toMatchSnapshot();
30
+ });
@@ -0,0 +1,86 @@
1
+ /* eslint-disable react-hooks/exhaustive-deps */
2
+ import Accordion from '@digigov/react-core/Accordion';
3
+ import AccordionSection from '@digigov/react-core/AccordionSection';
4
+ import AccordionSectionContent from '@digigov/react-core/AccordionSectionContent';
5
+ import AccordionSectionHeader from '@digigov/react-core/AccordionSectionHeader';
6
+ import AccordionControls from '@digigov/react-core/AccordionControls';
7
+ import withDeprecation from '@digigov/ui/utils/withDeprecation';
8
+ import {
9
+ useTogglableSections,
10
+ UseTogglableSectionsReturn,
11
+ } from '@digigov/ui/hooks/useTogglableSections';
12
+ import React, { useCallback, useMemo } from 'react';
13
+
14
+ export const AccordionItemDetails = withDeprecation(AccordionSectionContent, {
15
+ name: 'AccordionItemDetails',
16
+ rename: 'AccordionSectionContent',
17
+ });
18
+
19
+ export const AccordionItemSummary = withDeprecation(AccordionSectionHeader, {
20
+ name: 'AccordionItemSummary',
21
+ rename: 'AccordionSectionHeader',
22
+ });
23
+
24
+ export const AccordionItem = withDeprecation(
25
+ React.memo(AccordionSection, (prev, next) => prev.open === next.open),
26
+ {
27
+ name: 'AccordionItem',
28
+ rename: 'AccordionSection',
29
+ }
30
+ );
31
+ export interface UseAccordionProps {
32
+ singleOpen?: boolean;
33
+ }
34
+ export interface UseAccordionReturn extends UseTogglableSectionsReturn {
35
+ isOpenAll: boolean;
36
+ openAll: () => void;
37
+ closeAll: () => void;
38
+ }
39
+ const useAccordion = (props: UseAccordionProps): UseAccordionReturn => {
40
+ const {
41
+ register,
42
+ setOpened,
43
+ opened,
44
+ registered,
45
+ ...rest
46
+ } = useTogglableSections({
47
+ toggleProperty: 'open',
48
+ onToggleProperty: 'onClick',
49
+ singleOpen: props && !!props.singleOpen,
50
+ });
51
+ const keys = useMemo(() => Object.keys(registered.current), [
52
+ registered.current.length,
53
+ ]);
54
+ const openAll = useCallback(() => {
55
+ setOpened(
56
+ keys.reduce(
57
+ (newOpened, key) => ({
58
+ ...newOpened,
59
+ [key]: true,
60
+ }),
61
+ {}
62
+ )
63
+ );
64
+ }, [keys]);
65
+ const closeAll = useCallback(() => setOpened({}), []);
66
+
67
+ return {
68
+ register,
69
+ openAll,
70
+ closeAll,
71
+ isOpenAll: keys.length ? keys.every((v) => opened[v]) : false,
72
+ setOpened,
73
+ opened,
74
+ registered,
75
+ ...rest,
76
+ };
77
+ };
78
+ export {
79
+ Accordion,
80
+ AccordionControls,
81
+ AccordionSection,
82
+ AccordionSectionContent,
83
+ AccordionSectionHeader,
84
+ useAccordion,
85
+ };
86
+ export default Accordion;
File without changes
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { mount } from 'enzyme';
3
+
4
+ import Component from '@digigov/ui/core/Blockquote';
5
+
6
+ it('renders the Blockquote with sample data', () => {
7
+ expect(
8
+ mount(<Component>this is some random data</Component>)
9
+ ).toMatchSnapshot();
10
+ });
@@ -1,16 +1,18 @@
1
1
  import CoreBlockquote from '@digigov/react-core/Blockquote';
2
2
  import withDeprecation from '@digigov/ui/utils/withDeprecation';
3
- export var Blockquote = withDeprecation(CoreBlockquote, {
3
+
4
+ export const Blockquote = withDeprecation(CoreBlockquote, {
4
5
  name: 'Blockquote',
5
6
  props: {
6
7
  variant: {
7
8
  values: {
8
9
  info: {
9
- warning: true
10
- }
10
+ warning: true,
11
+ },
11
12
  },
12
- error: true
13
- }
14
- }
13
+ error: true,
14
+ },
15
+ },
15
16
  });
16
- export default Blockquote;
17
+
18
+ export default Blockquote;
@@ -1,21 +1,23 @@
1
1
  import BackLink from '@digigov/react-core/BackLink';
2
2
  import withDeprecation from '@digigov/ui/utils/withDeprecation';
3
- export var BackButton = withDeprecation(BackLink, {
3
+
4
+ export const BackButton = withDeprecation(BackLink, {
4
5
  name: 'BackButton',
5
6
  rename: 'BackLink',
6
7
  props: {
7
8
  variant: {
8
- error: true
9
+ error: true,
9
10
  },
10
11
  size: {
11
- error: true
12
+ error: true,
12
13
  },
13
14
  xsFullWidth: {
14
- error: true
15
+ error: true,
15
16
  },
16
17
  startIcon: {
17
- error: true
18
- }
19
- }
18
+ error: true,
19
+ },
20
+ },
20
21
  });
21
- export default BackButton;
22
+
23
+ export default BackButton;
@@ -0,0 +1,20 @@
1
+ import CoreButtonLink, {
2
+ ButtonLinkProps as CoreButtonLinkProps,
3
+ } from '@digigov/react-core/ButtonLink';
4
+ import withDeprecation from '@digigov/ui/utils/withDeprecation';
5
+
6
+ export type ButtonLinkProps = CoreButtonLinkProps;
7
+ export const ButtonLink = withDeprecation(CoreButtonLink, {
8
+ name: 'ButtonLink',
9
+ props: {
10
+ variant: {
11
+ error: true,
12
+ },
13
+ size: {
14
+ error: true,
15
+ },
16
+ xsFullWidth: {
17
+ error: true,
18
+ },
19
+ },
20
+ });
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import CoreCallToAction, {
3
+ CallToActionProps as CoreCallToActionProps,
4
+ } from '@digigov/react-core/CallToAction';
5
+ import withDeprecation from '@digigov/ui/utils/withDeprecation';
6
+
7
+ export interface CallToActionProps extends CoreCallToActionProps {
8
+ label?: string;
9
+ }
10
+
11
+ export const CallToAction: React.FC<CallToActionProps> = withDeprecation(
12
+ ({ label = 'Start here', children, ...props }) => {
13
+ return <CoreCallToAction {...props}>{children || label}</CoreCallToAction>;
14
+ },
15
+ {
16
+ name: 'CallToAction',
17
+ props: {
18
+ variant: {
19
+ error: true,
20
+ },
21
+ size: {
22
+ error: true,
23
+ },
24
+ xsFullWidth: {
25
+ error: true,
26
+ },
27
+ },
28
+ }
29
+ );
30
+
31
+ export default CallToAction;
@@ -0,0 +1,9 @@
1
+ import withDeprecation from '@digigov/ui/utils/withDeprecation';
2
+
3
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
4
+ export const ButtonIcon = withDeprecation(() => {}, {
5
+ name: 'ButtonIcon',
6
+ error: true,
7
+ });
8
+
9
+ export default ButtonIcon;
File without changes
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { mount } from 'enzyme';
3
+
4
+ import Component from '@digigov/ui/core/Button';
5
+
6
+ it('renders the button', () => {
7
+ expect(mount(<Component>hello</Component>)).toMatchSnapshot();
8
+ });
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import CoreButton, {
3
+ ButtonProps as CoreButtonProps,
4
+ } from '@digigov/react-core/Button';
5
+ import withDeprecation from '@digigov/ui/utils/withDeprecation';
6
+
7
+ export type ButtonProps = CoreButtonProps;
8
+
9
+ export const Button = withDeprecation(CoreButton, {
10
+ name: 'Button',
11
+ props: {
12
+ href: {
13
+ error: 'To use a button with a link import ButtonLink instead',
14
+ },
15
+ /* variant: {
16
+ error: true,
17
+ }, */
18
+ size: {
19
+ error: true,
20
+ },
21
+ xsFullWidth: {
22
+ error: true,
23
+ },
24
+ },
25
+ });
26
+
27
+ export default Button;
28
+
29
+ export interface ContinueButtonProps extends ButtonProps {
30
+ label?: string;
31
+ ref?: React.Ref<HTMLButtonElement>;
32
+ }
33
+
34
+ export const ContinueButton: React.FC<ContinueButtonProps> = ({
35
+ label = 'Continue',
36
+ children,
37
+ ...props
38
+ }) => {
39
+ return <Button {...props}>{label || children}</Button>;
40
+ };
41
+
42
+ export * from '@digigov/ui/core/Button/BackButton';
43
+ export * from '@digigov/ui/core/Button/CallToAction';
44
+ export * from '@digigov/ui/core/Button/ButtonLink';
45
+ export * from '@digigov/ui/core/Button/Icon';
46
+ export * from '@digigov/react-core/ButtonGroup';
File without changes
@@ -0,0 +1,38 @@
1
+ import * as React from 'react';
2
+ import { mount } from 'enzyme';
3
+
4
+ import {
5
+ Details,
6
+ DetailsContent,
7
+ DetailsSummary,
8
+ } from '@digigov/ui/core/Details';
9
+
10
+ it('renders the closed Details component', () => {
11
+ expect(
12
+ mount(
13
+ <Details>
14
+ <DetailsSummary>Help with nationality</DetailsSummary>
15
+ <DetailsContent>
16
+ We need to know your nationality so we can work out which elections
17
+ you’re entitled to vote in. If you cannot provide your nationality,
18
+ you’ll have to send copies of identity documents through the post.
19
+ </DetailsContent>
20
+ </Details>
21
+ )
22
+ ).toMatchSnapshot();
23
+ });
24
+
25
+ it('renders the open Details component', () => {
26
+ expect(
27
+ mount(
28
+ <Details open>
29
+ <DetailsSummary>Help with nationality</DetailsSummary>
30
+ <DetailsContent>
31
+ We need to know your nationality so we can work out which elections
32
+ you’re entitled to vote in. If you cannot provide your nationality,
33
+ you’ll have to send copies of identity documents through the post.
34
+ </DetailsContent>
35
+ </Details>
36
+ )
37
+ ).toMatchSnapshot();
38
+ });
@@ -1,5 +1,7 @@
1
1
  import Details from '@digigov/react-core/Details';
2
2
  import DetailsContent from '@digigov/react-core/DetailsContent';
3
3
  import DetailsSummary from '@digigov/react-core/DetailsSummary';
4
+
4
5
  export { Details, DetailsContent, DetailsSummary };
6
+
5
7
  export default Details;