@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
package/CHANGELOG.md CHANGED
@@ -1,6 +1,27 @@
1
1
  # Change Log - @digigov/ui
2
2
 
3
- This log was last generated on Mon, 14 Feb 2022 09:56:29 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 25 Feb 2022 12:45:57 GMT and should not be manually modified.
4
+
5
+ ## 0.12.2
6
+ Fri, 25 Feb 2022 12:45:57 GMT
7
+
8
+ ### Patches
9
+
10
+ - fix defaultTranslate func to return the translated text
11
+
12
+ ## 0.12.1
13
+ Thu, 24 Feb 2022 14:51:06 GMT
14
+
15
+ ### Patches
16
+
17
+ - comment out variant prop in Button, add Table and Button in index for exporting
18
+
19
+ ## 0.12.0
20
+ Wed, 16 Feb 2022 12:49:28 GMT
21
+
22
+ ### Minor changes
23
+
24
+ - Add new locales for DateInput and three-block dates
4
25
 
5
26
  ## 0.11.0
6
27
  Mon, 14 Feb 2022 09:56:29 GMT
@@ -0,0 +1 @@
1
+ # Components
@@ -0,0 +1,93 @@
1
+ ---
2
+ title: Create a new service
3
+ parent: docs/ui/introduction
4
+ order: 0
5
+ ---
6
+
7
+ ### Prerequisites
8
+
9
+ In order to follow the guide, make sure that you have already installed
10
+ [nodejs](https://nodejs.org/) v12.16.0 LTS and the
11
+ [Yarn Package Manager](https://classic.yarnpkg.com/) v1.22.4.
12
+
13
+ ## Create Digigov app
14
+
15
+ The fastest way to start a service from scratch using the gov.gr specifications
16
+ is to use our generator tool. You can directly run this command with the
17
+ `yarn create` command, without installing a NPM module. By giving the name of
18
+ the service as the first parameter, it will create a folder that contains
19
+ everything you need. A [Git](https://git-scm.com/) repository with a basic
20
+ scaffold of an app, tools to develop and build your code.
21
+
22
+ Let's assume we want to create a new application called `my-new-service`.
23
+
24
+ ```bash
25
+ $ yarn create digigov-app my-new-service
26
+ ```
27
+
28
+ > Keep in mind that the name you give is essentially an identifier for the code
29
+ > repository and should eventually be used in the Github/Gitlab repository, CI/CD
30
+ > pipelines, configurations and as a reference between engineers as well.
31
+
32
+ By running this command, you will be asked to fill in some details, eg. a short
33
+ description of the service, the name of your team etc. Next, the generator tool
34
+ will automatically create an empty codebase and it will install all dependencies
35
+ using Yarn. This may take a few minutes to complete, depending on your network
36
+ connection and computer capabilities.
37
+
38
+ ## Running the service for the first time
39
+
40
+ If everything was successful, you should be able to test the service in a
41
+ development environment in no time. Just run the following commands.
42
+
43
+ ```bash
44
+ $ cd my-new-service
45
+ $ yarn dev
46
+ ```
47
+
48
+ The service is now available on [http://localhost:3000](http://localhost:3000).
49
+ The start page should look like this.
50
+
51
+ ![An image of our fresh service that was autogenerated](/images/create-an-application-1.png)
52
+
53
+ As you might have guessed, the service is currently empty. For instance, the
54
+ title «My Service» is hardcoded and not descriptive of what our service does.
55
+
56
+ ## Change the title
57
+
58
+ In order to change the title, you should change the `app.name` key in the
59
+ `src/locales/el.json` inside the directory. This file may eventually be used
60
+ to translate the service in multiple languages without changing the code.
61
+
62
+ ```json
63
+ {
64
+ "app": {
65
+ - "name": "My Service",
66
+ + "name": "Έκδοση πιστοποιητικού δημόσιας υπηρεσίας",
67
+ "intro_text": "Welcome to My Service"
68
+ }
69
+ }
70
+ ```
71
+
72
+ Now if you visit [http://localhost:3000](http://localhost:3000), we see the
73
+ new title in our page, both in the `Header` and `Main` sections.
74
+
75
+ ![An image of the start page after the title has changed](/images/create-an-application-2.png)
76
+
77
+ Coming up next, we're going to see how we can bring the start page in life.
78
+
79
+ [Continue to the next section “Edit start page“](/docs/ui/edit-start-page)
80
+
81
+ #### Helpful content
82
+
83
+ - [Downloading and installing Node.js and NPM - Official Node.js docs](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
84
+ - [Install Yarn - Official Yarn Docs](https://yarnpkg.com/getting-started/install)
85
+ - Get familiar with next.js and learn how to set up new pages for your service
86
+ - [Next.js Tutorial](https://nextjs.org/learn/basics/getting-started)
87
+ - [Next.js Docs](https://nextjs.org/docs/getting-started)
88
+ - Learn how to design your service by following the DigiGOV guidelines
89
+ - [DigiGOV Design System](/docs/site/design)
90
+ - Become familiar with the available components
91
+ - [@digigov/ui components](/docs/ui/components)
92
+
93
+ [Continue in the next section “Edit start page“](/docs/ui/edit-start-page)
@@ -0,0 +1,205 @@
1
+ ---
2
+ title: Create common page layout
3
+ parent: docs/ui/introduction
4
+ order: 3
5
+ ---
6
+
7
+ Eventually the project that we started will start to take form, expanding into
8
+ multiple pages that most likely share a same design structure and layout. In
9
+ most cases we want to use the [two-thirds page layout](/service-manual/layout),
10
+ adding our main content in the left two-third column, and optional helpful
11
+ information or links in the right one-third column.
12
+
13
+ ## What are we going to build
14
+
15
+ Given the specifications above, we need a React component that will act as a
16
+ wrapper for page content. Most of the time, the content will be located in the
17
+ main and will contain a main content, spanning two-thirds of the page width,
18
+ and a side content, spanning the rest of the one-third width. The side content
19
+ might be empty. This layout looks like this:
20
+
21
+ ![An image of the two-thirds layout as a basic example of how it might
22
+ look](/images/create-common-page-layout-1.png)
23
+
24
+ On the other hand, it is safe to assume that we will eventually stumble upon a
25
+ page that doesn't use a standard layout. That means that will have to support
26
+ passing down custom children as page content.
27
+
28
+ To recap, we want to build a React component that accepts content for
29
+
30
+ - **Main content**, two-thirds page width
31
+ - **Side content**, one-third page width
32
+ - or **custom content**, page width not strictly specified, but should be
33
+ flexible for future expansion
34
+
35
+ ## Let's start coding
36
+
37
+ Before we start with the actual code, let's start with some basic code for the
38
+ React component. Create a new component file in
39
+ `src/components/pages/common/Layout.js`:
40
+
41
+ ```jsx
42
+ import React from 'react';
43
+ import { useTranslation } from 'react-i18next';
44
+
45
+ const CommonLayout = (props) => {
46
+ const { t } = useTranslation();
47
+ return (
48
+
49
+ );
50
+ };
51
+
52
+ export default BasicLayout;
53
+ ```
54
+
55
+ Now let's add some JSX to the `render` function. What we need is a `BasicLayout`
56
+ that contains a `Top` section, a `Content` section and finally a `Bottom`
57
+ section. We are going to use the respective components from `@digigov/ui`:
58
+
59
+ ```jsx
60
+ import React from 'react';
61
+ import { useTranslation } from 'react-i18next';
62
+ +import BasicLayout, {
63
+ + Top,
64
+ + Content,
65
+ + Bottom
66
+ +} from '@digigov/ui/layouts/Basic';
67
+
68
+ const CommonLayout = (props) => {
69
+ const { t } = useTranslation();
70
+ return (
71
+ + <BasicLayout>
72
+ + <Top></Top>
73
+ + <Content></Content>
74
+ + <Bottom></Bottom>
75
+ + </BasicLayout>
76
+ );
77
+ };
78
+
79
+ export default CommonLayout;
80
+ ```
81
+
82
+ With this code in place, we can start coding each section of the page.
83
+
84
+ ## Adding the GovGr Header and Footer
85
+
86
+ First off, we should start with the official GovGr Header. It is very important
87
+ to maintain the same look and feel of the Header across the whole GovGr
88
+ ecosystem, both in services and static pages.
89
+
90
+ Again, here we import to use the `Header` and `HeaderTitle` components from
91
+ `@digigov/ui` as well as the official GovGr logo and finally the `ServiceBadge`
92
+ component that's going to inform users about the design stage of our service
93
+ (alpha, beta etc.). Then we can use all these components inside the `Top`
94
+ section like so. The same applies to the `GovGrFooter` components.
95
+
96
+ ```jsx
97
+ import React from 'react';
98
+ import { useTranslation } from 'react-i18next';
99
+ import BasicLayout, {
100
+ Top,
101
+ Content,
102
+ Bottom,
103
+ } from '@digigov/ui/layouts/Basic';
104
+ +import Header, { HeaderTitle } from '@digigov/ui/app/Header';
105
+ +import ServiceBadge from '@digigov/ui/core/ServiceBadge'
106
+ +import GovGRLogo from '@digigov/ui/govgr/Logo';
107
+ +import GovGrFooter from '@digigov/ui/govgr/Footer';
108
+
109
+ const CommonLayout = (props) => {
110
+ const { t } = useTranslation();
111
+ return (
112
+ <BasicLayout>
113
+ <Top>
114
+ + <Header>
115
+ + <GovGRLogo />
116
+ + <HeaderTitle>
117
+ + {t('app.name')}
118
+ + <ServiceBadge label="ALPHA" />
119
+ + </HeaderTitle>
120
+ + </Header>
121
+ </Top>
122
+ <Content>
123
+ </Content>
124
+ <Bottom>
125
+ + <GovGrFooter />
126
+ </Bottom>
127
+ </BasicLayout>
128
+ );
129
+ };
130
+ export default CommonLayout;
131
+ ```
132
+
133
+ If we could render the layout right now, it would look like this.
134
+
135
+ ![An image showcasing how the layout looks like
136
+ empty](/images/create-common-page-layout-2.png)
137
+
138
+ Now let's use in the start page of our service and remove all the extra code.
139
+
140
+ ## Adding the main content
141
+
142
+ It is time to update the code in our start page, which is located in
143
+ `src/pages/index.js`, in order to use the new common layout that we have created.
144
+
145
+ Let's remove some of the old lines and add the new ones:
146
+
147
+ ```jsx
148
+ import React from 'react';
149
+ -import Head from 'next/head'
150
+ import { useTranslation } from 'react-i18next';
151
+
152
+ -import BasicLayout, {
153
+ - Top,
154
+ - Content,
155
+ - Main,
156
+ - Side,
157
+ - Bottom,
158
+ } from '@digigov/ui/layouts/Basic';
159
+ +import { Main } from '@digigov/ui/layouts/Basic';
160
+ -import Header, { HeaderTitle } from '@digigov/ui/app/Header';
161
+ -import ServiceBadge from '@digigov/ui/core/ServiceBadge';
162
+ -import GovGRLogo from '@digigov/ui/govgr/Logo';
163
+ -import GovGRFooter from '@digigov/ui/govgr/Footer';
164
+ import PageTitle, { PageTitleHeading } from '@digigov/ui/app/PageTitle';
165
+ +import CommonLayout from 'my-new-service/components/pages/common/Layout.js'
166
+
167
+ const Home = () => {
168
+ const { t } = useTranslation();
169
+ return (
170
+ - <BasicLayout>
171
+ + <CommonLayout>
172
+ - <Head>
173
+ - <title>{t('app.name')}</title>
174
+ - </Head>
175
+ - <Top>
176
+ - <Header>
177
+ - <GovGRLogo />
178
+ - <HeaderTitle>
179
+ - {t('app.name')}
180
+ - <ServiceBadge label="ALPHA" />
181
+ - </HeaderTitle>
182
+ - </Header>
183
+ - </Top>
184
+ - <Content>
185
+ <Main>
186
+ <PageTitle>
187
+ <PageTitleHeading>{t('app.name')}</PageTitleHeading>
188
+ </PageTitle>
189
+ <div>{t('app.intro_text')}</div>
190
+ </Main>
191
+ - <Side></Side>
192
+ - </Content>
193
+ - <Bottom>
194
+ - <GovGRFooter />
195
+ - </Bottom>
196
+ - </BasicLayout>
197
+ + </CommonLayout>
198
+ );
199
+ };
200
+
201
+ export default Home;
202
+ ```
203
+
204
+ So currently we have the start page with the `CommonLayout` that we set in
205
+ `src/pages/index.js`.
@@ -0,0 +1,179 @@
1
+ ---
2
+ title: Create a static page
3
+ parent: docs/ui/introduction
4
+ order: 2
5
+ ---
6
+
7
+ Using the same principles with the Start page, we can create multiple other
8
+ static pages that can be used to host useful information for our users that
9
+ don't belong to the start page, eg. FAQ pages.
10
+
11
+ ## Create a new source file
12
+
13
+ First of all, let's define the URL in which our users will access our new
14
+ static page. This page will be about frequently asked questions about our
15
+ service for the citizens. Therefore, we can give this page the URL `/faq`.
16
+ The source file that should be created will be located in `src/pages/faq.js`.
17
+ The source code is essentially the same with the start page, so we're can go
18
+ ahead and copy the following in the newly created file.
19
+
20
+ ```jsx additions={1,30-35} deletions={5-10} highlight={3}
21
+ import React from 'react';
22
+ import Head from 'next/head';
23
+ import { useTranslation } from 'react-i18next';
24
+
25
+ import BasicLayout, {
26
+ Top,
27
+ Content,
28
+ Main,
29
+ Side,
30
+ Bottom,
31
+ } from '@digigov/ui/layouts/Basic';
32
+ import Header, { HeaderTitle } from '@digigov/ui/app/Header';
33
+ import ServiceBadge from '@digigov/ui/core/ServiceBadge';
34
+ import GovGRLogo from '@digigov/ui/govgr/Logo';
35
+ import GovGRFooter from '@digigov/ui/govgr/Footer';
36
+ import PageTitle, { PageTitleHeading } from '@digigov/ui/app/PageTitle';
37
+
38
+ const Faq = () => {
39
+ const { t } = useTranslation();
40
+ return (
41
+ <BasicLayout>
42
+ <Head>
43
+ <title>{t('app.name')}</title>
44
+ </Head>
45
+ <Top>
46
+ <Header>
47
+ <GovGRLogo />
48
+ <HeaderTitle>
49
+ {t('app.name')}
50
+ <ServiceBadge label="ALPHA" />
51
+ </HeaderTitle>
52
+ </Header>
53
+ </Top>
54
+ <Content>
55
+ <Main>
56
+ <PageTitle>
57
+ <PageTitleHeading></PageTitleHeading>
58
+ </PageTitle>
59
+ </Main>
60
+ <Side></Side>
61
+ </Content>
62
+ <Bottom>
63
+ <GovGRFooter />
64
+ </Bottom>
65
+ </BasicLayout>
66
+ );
67
+ };
68
+
69
+ export default Faq;
70
+ ```
71
+
72
+ So now we have a `.js` file that simultaneously defines the route URL by each
73
+ filename and specifies the content and layout of the page. The only thing that's
74
+ left to do is to write the texts in the locale file, otherwise this page will
75
+ look totally empty.
76
+
77
+ ![Image of the new static page that has no content](/images/create-static-page-1.png)
78
+
79
+ ## Adding texts in locale file
80
+
81
+ Let's edit the `src/locales/el.json` file and add the following:
82
+
83
+ ```json
84
+ {
85
+ "app": {
86
+ "name": "Έκδοση πιστοποιητικού δημόσιας υπηρεσίας",
87
+ "cta": "Ξεκινήστε εδώ"
88
+ },
89
+ "home": {
90
+ "intro": {
91
+ "paragraph": "Χρησιμοποιήστε την εφαρμογή προκειμένου να:",
92
+ "list1": "εκδώσετε έγγραφα σε ηλεκτρονική μορφή",
93
+ "list2": "ελέγξετε την εγκυρότητα ενός εγγράφου"
94
+ }
95
+ + },
96
+ + "faq": {
97
+ + "title": "Συχνές ερωτήσεις",
98
+ + "question1": "1. Ποιες ληξιαρχικές πράξεις μπορώ να αναζητήσω ηλεκτρονικά;",
99
+ + "answer1": "Διαθέσιμες ηλεκτρονικά είναι οι ληξιαρχικές πράξεις που εκδόθηκαν από το 2013 και μετά, ή παλαιότερες, οι οποίες μεταβλήθηκαν ή/και για τις οποίες εκδόθηκε απόσπασμα από το 2018 και μετά.",
100
+ + "question2": "3. Προσπαθώ να βγάλω απόσπασμα ληξιαρχικής πράξης και μου βγάζει μήνυμα «Δε βρέθηκε Λ.Π. στο Πληροφοριακό Σύστημα του Μητρώου Πολιτών για τα δεδομένα στοιχεία πολίτη.»",
101
+ + "answer2": "Διαθέσιμες ηλεκτρονικά είναι οι ληξιαρχικες πράξεις που εκδόθηκαν από το 2013 και μετά, ή παλαιότερες, οι οποίες μεταβλήθηκαν ή/και για τις οποίες εκδόθηκε απόσπασμα από το 2018 και μετά. Η ληξιαρχική πράξη που ζητήσατε μπορεί να εκδοθεί μόνο από το Δήμο. Είτε δεν ταυτοποιήθηκαν τα στοιχεία σας στο Μητρώο πολιτών, είτε έχετε λανθασμένα στοιχεία στο φορολογικό μητρώο. Αν μπορείτε να εκδώσετε πιστοποιητικό οικογενειακής κατάστασης από το gov.gr τότε τα στοιχεία του φορολογικού μητρώου είναι σωστά και το πρόβλημα εντοπίζεται στα στοιχεία σας στην ληξιαρχική πράξη. Στην περίπτωση αυτή θα πρέπει να απευθυνθείτε στο Δήμο σας. Αν κάποιο από τα στοιχεία σας στο φορολογικό μητρώο είναι λάθος ή είναι γραμμένο με λατινικούς χαρακτήρες θα πρέπει να το διορθώσετε στη ΔΟΥ σας."
102
+ }
103
+ }
104
+ ```
105
+
106
+ ## Adding typography components
107
+
108
+ Since we have all of our content saved in the locale file, we can start using
109
+ it in our page. We're going to use the `Title` and `Paragraph` components from
110
+ the `@digigov/ui` module.
111
+
112
+ ```jsx
113
+ import React from 'react';
114
+ import Head from 'next/head';
115
+ import { useTranslation } from 'react-i18next';
116
+
117
+ import BasicLayout, {
118
+ Top,
119
+ Content,
120
+ Main,
121
+ Side,
122
+ Bottom,
123
+ } from '@digigov/ui/layouts/Basic';
124
+ import Header, { HeaderTitle } from '@digigov/ui/app/Header';
125
+ import ServiceBadge from '@digigov/ui/core/ServiceBadge';
126
+ import GovGRLogo from '@digigov/ui/govgr/Logo';
127
+ import GovGRFooter from '@digigov/ui/govgr/Footer';
128
+ import PageTitle, { PageTitleHeading } from '@digigov/ui/app/PageTitle';
129
+ +import Title from '@digigov/ui/typography/Title';
130
+ +import Paragraph from '@digigov/ui/typography/Paragraph';
131
+
132
+ const Faq = () => {
133
+ const { t } = useTranslation();
134
+ const asdf = 123 + 234;
135
+ return (
136
+ <BasicLayout>
137
+ <Head>
138
+ <title>{t('app.name')}</title>
139
+ </Head>
140
+ <Top>
141
+ <Header>
142
+ <GovGRLogo />
143
+ <HeaderTitle>
144
+ {t('app.name')}
145
+ <ServiceBadge label="ALPHA" />
146
+ </HeaderTitle>
147
+ </Header>
148
+ </Top>
149
+ <Content>
150
+ <Main>
151
+ <PageTitle>
152
+ + <PageTitleHeading>{t('faq.title')}</PageTitleHeading>
153
+ </PageTitle>
154
+ + <Title>{t('faq.question1')}</Title>
155
+ + <Paragraph>{t('faq.answer1')}</Paragraph>
156
+ + <Title>{t('faq.question2')}</Title>
157
+ + <Paragraph>{t('faq.answer2')}</Paragraph>
158
+ </Main>
159
+ <Side></Side>
160
+ </Content>
161
+ <Bottom>
162
+ <GovGRFooter />
163
+ </Bottom>
164
+ </BasicLayout>
165
+ );
166
+ };
167
+
168
+ export default Faq;
169
+ ```
170
+
171
+ Now the FAQ page looks like this.
172
+
173
+ ![Image of the FAQ page after the content and typography changes](/images/create-static-page-2.png)
174
+
175
+ Most of the code that we're using in this page will be commonly used in more
176
+ than one page. It is wise to create a common page layout that many pages will
177
+ use and extend.
178
+
179
+ [Continue to the next section “Create a common page layout“](/docs/ui/create-common-page-layout)
@@ -0,0 +1,143 @@
1
+ ---
2
+ title: Edit start page
3
+ parent: docs/ui/introduction
4
+ order: 1
5
+ ---
6
+
7
+ Given that [we have created a new service](/docs/ui/create-a-new-application),
8
+ it is time to start adding content. When we generate a new codebase, the only
9
+ page that exists is the start page. This is the first page that users will be
10
+ seeing when landing in our service and it is accessible in the root URL `/` for
11
+ our domain. The actual code is located in `src/pages/index.js` file and it
12
+ matches the `/` index route.
13
+
14
+ In a fresh service, this file should contain the following code.
15
+
16
+ ```jsx
17
+ import React from 'react';
18
+ import Head from 'next/head';
19
+ import { useTranslation } from 'react-i18next';
20
+
21
+ import BasicLayout, {
22
+ Top,
23
+ Content,
24
+ Main,
25
+ Side,
26
+ Bottom,
27
+ } from '@digigov/ui/layouts/Basic';
28
+ import Header, { HeaderTitle } from '@digigov/ui/app/Header';
29
+ import ServiceBadge from '@digigov/ui/core/ServiceBadge';
30
+ import GovGRLogo from '@digigov/ui/govgr/Logo';
31
+ import GovGRFooter from '@digigov/ui/govgr/Footer';
32
+ import PageTitle, { PageTitleHeading } from '@digigov/ui/app/PageTitle';
33
+
34
+ const Home = () => {
35
+ const { t } = useTranslation();
36
+ return (
37
+ <BasicLayout>
38
+ <Head>
39
+ <title>{t('app.name')}</title>
40
+ </Head>
41
+ <Top>
42
+ <Header>
43
+ <GovGRLogo />
44
+ <HeaderTitle>
45
+ {t('app.name')}
46
+ <ServiceBadge label="ALPHA" />
47
+ </HeaderTitle>
48
+ </Header>
49
+ </Top>
50
+ <Content>
51
+ <Main>
52
+ <PageTitle>
53
+ <PageTitleHeading>{t('app.name')}</PageTitleHeading>
54
+ </PageTitle>
55
+ <div>{t('app.intro_text')}</div>
56
+ </Main>
57
+ <Side></Side>
58
+ </Content>
59
+ <Bottom>
60
+ <GovGRFooter />
61
+ </Bottom>
62
+ </BasicLayout>
63
+ );
64
+ };
65
+
66
+ export default Home;
67
+ ```
68
+
69
+ As discussed in the previous section, the content is in the `src/locales/el.json`
70
+ file, entirely separate from code. Naturally, you can write content inside the
71
+ code, but it's **highly recommended** to keep all texts in the locale file for
72
+ facilitating future translations and avoiding the repetitive task of migrating
73
+ all content later, thus creating a lot of technical debt.
74
+
75
+ Let's take a closer look at what elements we're going to need.
76
+
77
+ - A paragraph with text «Χρησιμοποιήστε την εφαρμογή προκειμένου να:»
78
+ - A list containing two items: «εκδώσετε έγγραφα σε ηλεκτρονική μορφή» and
79
+ «ελέγξετε την εγκυρότητα ενός εγγράφου»
80
+ - A start button with text «Ξεκινήστε εδώ»
81
+
82
+ ## Add content to the locale file
83
+
84
+ The first step is to add the texts under a new key `app.home` in the
85
+ `src/locales/el.json` file.
86
+
87
+ ```json
88
+ {
89
+ "app": {
90
+ "name": "Έκδοση πιστοποιητικού δημόσιας υπηρεσίας",
91
+ "cta": "Ξεκινήστε εδώ"
92
+ + },
93
+ + "home": {
94
+ + "intro": {
95
+ + "paragraph": "Χρησιμοποιήστε την εφαρμογή προκειμένου να:",
96
+ + "list1": "εκδώσετε έγγραφα σε ηλεκτρονική μορφή",
97
+ + "list2": "ελέγξετε την εγκυρότητα ενός εγγράφου"
98
+ + }
99
+ }
100
+ }
101
+ ```
102
+
103
+ > It's recommended to create a separate key for every page related to the url.
104
+ > This way you will avoid polluting the locale file and keep it clean and tidy.
105
+
106
+ ## Render the typography elements
107
+
108
+ Since we added our text, we can go ahead and add the typography elements in
109
+ our page. We import the React components from the `@digigov/ui` module that is
110
+ already installed in our service.
111
+
112
+ Just below line 16 in the `src/pages/index.js` file we add the following code:
113
+
114
+ ```jsx
115
+ import CallToAction from '@digigov/ui/core/Button/CallToAction';
116
+ import Paragraph from '@digigov/ui/typography/Paragraph';
117
+ ```
118
+
119
+ Then we make the following changes inside the `Main` component in the same file:
120
+
121
+ ```jsx
122
+ <Main>
123
+ <PageTitle>
124
+ <PageTitleHeading>{t('app.name')}</PageTitleHeading>
125
+ </PageTitle>
126
+ <Paragraph>{t('home.intro.paragraph')}</Paragraph>
127
+ <Paragraph>
128
+ <ul>
129
+ <li>{t('home.intro.list1')}</li>
130
+ <li>{t('home.intro.list2')}</li>
131
+ </ul>
132
+ </Paragraph>
133
+ <CallToAction href="/start" label={t('app.cta')} />
134
+ </Main>
135
+ ```
136
+
137
+ The `ul` and `li` components are plain HTML elements that we wrap in a
138
+ `Paragraph` component, so that we can inherit its styles. The start page now
139
+ looks like this:
140
+
141
+ ![An image of the start page with the new texts](/images/edit-start-page.png)
142
+
143
+ [Continue in the next section “Create a static page“](/docs/ui/create-static-page)