@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.
- package/.eslintrc.js +4 -0
- package/.prettierrc.js +3 -0
- package/.rush/temp/package-deps_build.json +176 -0
- package/.rush/temp/shrinkwrap-deps.json +278 -0
- package/CHANGELOG.json +796 -0
- package/CHANGELOG.md +22 -1
- package/docs/components.mdx +1 -0
- package/docs/create-a-new-service.mdx +93 -0
- package/docs/create-common-page-layout.mdx +205 -0
- package/docs/create-static-page.mdx +179 -0
- package/docs/edit-start-page.mdx +143 -0
- package/docs/index.mdx +66 -0
- package/docs/introduction.mdx +34 -0
- package/package.json +31 -8
- package/src/api/APIErrors.tsx +44 -0
- package/src/api/APIProvider.tsx +27 -0
- package/src/api/fetchAPI.ts +45 -0
- package/src/api/index.spec.tsx +419 -0
- package/{esm/api/index.js → src/api/index.tsx} +6 -3
- package/{api → src/api}/introduction.md +0 -0
- package/src/api/useResource.tsx +96 -0
- package/src/api/useResourceAction.tsx +80 -0
- package/src/api/useResourceQuery.tsx +177 -0
- package/src/api/utils.tsx +156 -0
- package/src/app/App.tsx +33 -0
- package/{app/Confirmation/index.d.ts → src/app/Confirmation/index.tsx} +0 -0
- package/{app/Footer/index.d.ts → src/app/Footer/index.tsx} +0 -0
- package/{es/app/Header/HeaderLogo.js → src/app/Header/HeaderLogo.tsx} +9 -7
- package/src/app/Header/HeaderSection.tsx +13 -0
- package/src/app/Header/HeaderTitle.tsx +24 -0
- package/{app → src/app}/Header/__snapshots__/index.spec.tsx.snap +0 -0
- package/{app → src/app}/Header/index.mdx +0 -0
- package/src/app/Header/index.spec.tsx +32 -0
- package/{esm/app/Header/index.js → src/app/Header/index.tsx} +10 -4
- package/src/app/NotFound/index.tsx +21 -0
- package/src/app/OutdatedBrowserBanner.tsx +37 -0
- package/src/app/PageTitle.tsx +70 -0
- package/{app → src/app}/QrCodeScanner/__snapshots__/index.spec.tsx.snap +0 -0
- package/{app → src/app}/QrCodeScanner/index.mdx +0 -0
- package/src/app/QrCodeScanner/index.spec.tsx +19 -0
- package/src/app/QrCodeScanner/index.tsx +90 -0
- package/src/app/i18n.tsx +44 -0
- package/{app/index.d.ts → src/app/index.ts} +0 -0
- package/{core → src/core}/Accordion/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/Accordion/index.mdx +0 -0
- package/src/core/Accordion/index.spec.tsx +30 -0
- package/src/core/Accordion/index.tsx +86 -0
- package/{core → src/core}/Blockquote/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/Blockquote/index.mdx +0 -0
- package/src/core/Blockquote/index.spec.tsx +10 -0
- package/{esm/core/Blockquote/index.js → src/core/Blockquote/index.tsx} +9 -7
- package/{core/Breadcrumbs/index.d.ts → src/core/Breadcrumbs/index.tsx} +0 -0
- package/{esm/core/Button/BackButton.js → src/core/Button/BackButton.tsx} +10 -8
- package/src/core/Button/ButtonLink.tsx +20 -0
- package/src/core/Button/CallToAction.tsx +31 -0
- package/src/core/Button/Icon.tsx +9 -0
- package/{core → src/core}/Button/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/Button/index.mdx +0 -0
- package/src/core/Button/index.spec.tsx +8 -0
- package/src/core/Button/index.tsx +46 -0
- package/{core/Card/index.d.ts → src/core/Card/index.tsx} +0 -0
- package/{core → src/core}/Details/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/Details/index.mdx +0 -0
- package/src/core/Details/index.spec.tsx +38 -0
- package/{core/Details/index.d.ts → src/core/Details/index.tsx} +2 -0
- package/src/core/Divider/index.tsx +13 -0
- package/{core → src/core}/ErrorSummary/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/ErrorSummary/index.mdx +0 -0
- package/src/core/ErrorSummary/index.spec.tsx +10 -0
- package/{core/ErrorSummary/index.d.ts → src/core/ErrorSummary/index.tsx} +1 -0
- package/{core/Hidden/index.d.ts → src/core/Hidden/index.tsx} +0 -0
- package/{core → src/core}/Link/__snapshots__/index.spec.tsx.snap +0 -0
- package/src/core/Link/index.spec.tsx +22 -0
- package/src/core/Link/index.tsx +41 -0
- package/{core/List/List.d.ts → src/core/List/List.tsx} +2 -0
- package/{core/List/ListItem.d.ts → src/core/List/ListItem.tsx} +2 -0
- package/src/core/List/ListItemContent.tsx +32 -0
- package/src/core/List/ListItemIcon.tsx +31 -0
- package/src/core/List/ListItemText.tsx +23 -0
- package/src/core/List/ListItemTitle.tsx +37 -0
- package/{core → src/core}/List/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/List/index.mdx +0 -0
- package/src/core/List/index.spec.tsx +10 -0
- package/{core/List/index.d.ts → src/core/List/index.tsx} +0 -0
- package/src/core/NavList/NavList.tsx +103 -0
- package/src/core/NavList/NavListContext.tsx +85 -0
- package/src/core/NavList/NavListItem.tsx +143 -0
- package/src/core/NavList/NavListItemBase.tsx +146 -0
- package/src/core/NavList/NavListSubMenu.tsx +33 -0
- package/{core → src/core}/NavList/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/NavList/index.mdx +0 -0
- package/src/core/NavList/index.spec.tsx +10 -0
- package/{core/NavList/index.d.ts → src/core/NavList/index.tsx} +0 -0
- package/{core → src/core}/NotificationBanner/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/NotificationBanner/index.mdx +0 -0
- package/src/core/NotificationBanner/index.spec.tsx +27 -0
- package/src/core/NotificationBanner/index.tsx +52 -0
- package/{core → src/core}/ServiceBadge/ServiceBadge.mdx +0 -0
- package/{core → src/core}/ServiceBadge/index.mdx +0 -0
- package/src/core/ServiceBadge/index.tsx +35 -0
- package/{core → src/core}/SummaryList/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/SummaryList/index.mdx +0 -0
- package/src/core/SummaryList/index.spec.tsx +28 -0
- package/{core/SummaryList/index.d.ts → src/core/SummaryList/index.tsx} +2 -0
- package/{core/Table/index.d.ts → src/core/Table/index.tsx} +0 -0
- package/{core → src/core}/Tabs/index.mdx +0 -0
- package/src/core/Tabs/index.tsx +36 -0
- package/{core/VisuallyHidden/index.d.ts → src/core/VisuallyHidden/index.tsx} +0 -0
- package/{core → src/core}/WarningText/__snapshots__/index.spec.tsx.snap +0 -0
- package/{core → src/core}/WarningText/index.mdx +0 -0
- package/src/core/WarningText/index.spec.tsx +10 -0
- package/{core/WarningText/index.d.ts → src/core/WarningText/index.tsx} +1 -0
- package/{core/index.d.ts → src/core/index.ts} +3 -0
- package/src/custom.d.ts +8 -0
- package/{es → src}/form/inputs/Input/index.mdx +0 -0
- package/src/govgr/Footer/Copyright.tsx +64 -0
- package/{govgr/Footer/HellenicRepublicLogo.d.ts → src/govgr/Footer/HellenicRepublicLogo.tsx} +1 -0
- package/src/govgr/Footer/LicenseCCSA.tsx +24 -0
- package/{es → src}/govgr/Footer/index.mdx +0 -0
- package/src/govgr/Footer/index.tsx +49 -0
- package/{esm/govgr/Footer/logo.js → src/govgr/Footer/logo.ts} +1 -1
- package/{esm/govgr/Footer/logos/logo-el.js → src/govgr/Footer/logos/logo-el.ts} +1 -1
- package/{esm/govgr/Footer/logos/logo-en.js → src/govgr/Footer/logos/logo-en.ts} +1 -1
- package/{es → src}/govgr/Logo/govgr-logo.svg +0 -0
- package/{govgr/Logo/index.d.ts → src/govgr/Logo/index.tsx} +2 -0
- package/{es/govgr/Logo/logo.js → src/govgr/Logo/logo.ts} +1 -1
- package/{govgr/index.d.ts → src/govgr/index.ts} +0 -0
- package/src/hooks/useDebounce.ts +50 -0
- package/src/hooks/useLatest.ts +12 -0
- package/{esm/hooks/useOutdatedBrowserCheck.js → src/hooks/useOutdatedBrowserCheck.ts} +16 -15
- package/src/hooks/useSearch.ts +47 -0
- package/src/hooks/useTogglableSections.tsx +102 -0
- package/{index.d.ts → src/index.ts} +0 -0
- package/{es → src}/layouts/Basic/Bottom/index.mdx +0 -0
- package/{layouts/Basic/Bottom/index.d.ts → src/layouts/Basic/Bottom/index.tsx} +1 -0
- package/{es → src}/layouts/Basic/Content/index.mdx +0 -0
- package/src/layouts/Basic/Content/index.tsx +24 -0
- package/{es → src}/layouts/Basic/Main/index.mdx +0 -0
- package/{layouts/Basic/Main/index.d.ts → src/layouts/Basic/Main/index.tsx} +1 -0
- package/{es → src}/layouts/Basic/Masthead/index.mdx +0 -0
- package/{layouts/Basic/Masthead/index.d.ts → src/layouts/Basic/Masthead/index.tsx} +2 -0
- package/{es → src}/layouts/Basic/Side/index.mdx +0 -0
- package/{esm/layouts/Basic/Side/index.js → src/layouts/Basic/Side/index.tsx} +5 -3
- package/{es → src}/layouts/Basic/Top/index.mdx +0 -0
- package/{es/layouts/Basic/Top/index.js → src/layouts/Basic/Top/index.tsx} +7 -5
- package/{es → src}/layouts/Basic/__snapshots__/index.spec.tsx.snap +0 -0
- package/{es → src}/layouts/Basic/index.mdx +0 -0
- package/src/layouts/Basic/index.spec.tsx +24 -0
- package/{layouts/Basic/index.d.ts → src/layouts/Basic/index.tsx} +2 -0
- package/{layouts/Grid/index.d.ts → src/layouts/Grid/index.tsx} +0 -0
- package/{layouts/index.d.ts → src/layouts/index.ts} +0 -0
- package/src/locales/el.ts +60 -0
- package/{esm/locales/en.js → src/locales/en.ts} +25 -11
- package/{es → src}/router/index.mdx +0 -0
- package/src/router/index.tsx +28 -0
- package/src/test-utils/delay.ts +9 -0
- package/src/test-utils/mountWithTheme.tsx +33 -0
- package/{es → src}/themes/govgr.js +33 -29
- package/src/themes/grnet.js +109 -0
- package/src/themes/index.tsx +38 -0
- package/src/typography/Caption.tsx +15 -0
- package/src/typography/NormalText.tsx +7 -0
- package/src/typography/Paragraph.tsx +9 -0
- package/src/typography/Title.tsx +51 -0
- package/{es → src}/typography/index.mdx +0 -0
- package/{typography/index.d.ts → src/typography/index.ts} +0 -0
- package/src/utils/evaluateBrowserVersion.ts +346 -0
- package/src/utils/withDeprecation.tsx +97 -0
- package/tsconfig.json +18 -0
- package/tsconfig.production.json +27 -0
- package/ui.build.log +17 -0
- package/LICENSE +0 -0
- package/api/APIErrors.d.ts +0 -22
- package/api/APIErrors.js +0 -117
- package/api/APIProvider.d.ts +0 -15
- package/api/APIProvider.js +0 -43
- package/api/fetchAPI.d.ts +0 -18
- package/api/fetchAPI.js +0 -64
- package/api/index.d.ts +0 -9
- package/api/index.js +0 -104
- package/api/index.spec.d.ts +0 -1
- package/api/index.spec.js +0 -584
- package/api/useResource.d.ts +0 -11
- package/api/useResource.js +0 -144
- package/api/useResourceAction.d.ts +0 -2
- package/api/useResourceAction.js +0 -157
- package/api/useResourceQuery.d.ts +0 -18
- package/api/useResourceQuery.js +0 -229
- package/api/utils.d.ts +0 -6
- package/api/utils.js +0 -250
- package/app/App.d.ts +0 -14
- package/app/App.js +0 -49
- package/app/Confirmation/index.js +0 -44
- package/app/Footer/index.js +0 -200
- package/app/Header/HeaderLogo.d.ts +0 -3
- package/app/Header/HeaderLogo.js +0 -30
- package/app/Header/HeaderSection.d.ts +0 -5
- package/app/Header/HeaderSection.js +0 -20
- package/app/Header/HeaderTitle.d.ts +0 -5
- package/app/Header/HeaderTitle.js +0 -30
- package/app/Header/index.d.ts +0 -11
- package/app/Header/index.js +0 -106
- package/app/Header/index.spec.d.ts +0 -1
- package/app/Header/index.spec.js +0 -45
- package/app/NotFound/index.d.ts +0 -3
- package/app/NotFound/index.js +0 -29
- package/app/OutdatedBrowserBanner.d.ts +0 -2
- package/app/OutdatedBrowserBanner.js +0 -41
- package/app/PageTitle.d.ts +0 -10
- package/app/PageTitle.js +0 -76
- package/app/QrCodeScanner/index.d.ts +0 -29
- package/app/QrCodeScanner/index.js +0 -85
- package/app/QrCodeScanner/index.spec.d.ts +0 -1
- package/app/QrCodeScanner/index.spec.js +0 -26
- package/app/i18n.d.ts +0 -10
- package/app/i18n.js +0 -57
- package/app/index.js +0 -70
- package/core/Accordion/index.d.ts +0 -21
- package/core/Accordion/index.js +0 -127
- package/core/Accordion/index.spec.d.ts +0 -1
- package/core/Accordion/index.spec.js +0 -19
- package/core/Blockquote/index.d.ts +0 -3
- package/core/Blockquote/index.js +0 -29
- package/core/Blockquote/index.spec.d.ts +0 -1
- package/core/Blockquote/index.spec.js +0 -21
- package/core/Breadcrumbs/index.js +0 -44
- package/core/Button/BackButton.d.ts +0 -3
- package/core/Button/BackButton.js +0 -34
- package/core/Button/ButtonLink.d.ts +0 -4
- package/core/Button/ButtonLink.js +0 -28
- package/core/Button/CallToAction.d.ts +0 -7
- package/core/Button/CallToAction.js +0 -41
- package/core/Button/Icon.d.ts +0 -2
- package/core/Button/Icon.js +0 -19
- package/core/Button/index.d.ts +0 -15
- package/core/Button/index.js +0 -121
- package/core/Button/index.spec.d.ts +0 -1
- package/core/Button/index.spec.js +0 -21
- package/core/Card/index.js +0 -57
- package/core/Details/index.js +0 -35
- package/core/Details/index.spec.d.ts +0 -1
- package/core/Details/index.spec.js +0 -27
- package/core/Divider/index.d.ts +0 -5
- package/core/Divider/index.js +0 -20
- package/core/ErrorSummary/index.js +0 -19
- package/core/ErrorSummary/index.spec.d.ts +0 -1
- package/core/ErrorSummary/index.spec.js +0 -21
- package/core/Hidden/index.js +0 -18
- package/core/Link/index.d.ts +0 -12
- package/core/Link/index.js +0 -50
- package/core/Link/index.spec.d.ts +0 -1
- package/core/Link/index.spec.js +0 -31
- package/core/List/List.js +0 -19
- package/core/List/ListItem.js +0 -19
- package/core/List/ListItemContent.d.ts +0 -7
- package/core/List/ListItemContent.js +0 -45
- package/core/List/ListItemIcon.d.ts +0 -7
- package/core/List/ListItemIcon.js +0 -48
- package/core/List/ListItemText.d.ts +0 -8
- package/core/List/ListItemText.js +0 -36
- package/core/List/ListItemTitle.d.ts +0 -10
- package/core/List/ListItemTitle.js +0 -44
- package/core/List/index.js +0 -96
- package/core/List/index.spec.d.ts +0 -1
- package/core/List/index.spec.js +0 -21
- package/core/NavList/NavList.d.ts +0 -17
- package/core/NavList/NavList.js +0 -99
- package/core/NavList/NavListContext.d.ts +0 -20
- package/core/NavList/NavListContext.js +0 -102
- package/core/NavList/NavListItem.d.ts +0 -13
- package/core/NavList/NavListItem.js +0 -171
- package/core/NavList/NavListItemBase.d.ts +0 -16
- package/core/NavList/NavListItemBase.js +0 -161
- package/core/NavList/NavListSubMenu.d.ts +0 -8
- package/core/NavList/NavListSubMenu.js +0 -52
- package/core/NavList/index.js +0 -68
- package/core/NavList/index.spec.d.ts +0 -1
- package/core/NavList/index.spec.js +0 -21
- package/core/NotificationBanner/index.d.ts +0 -18
- package/core/NotificationBanner/index.js +0 -78
- package/core/NotificationBanner/index.spec.d.ts +0 -1
- package/core/NotificationBanner/index.spec.js +0 -32
- package/core/ServiceBadge/index.d.ts +0 -9
- package/core/ServiceBadge/index.js +0 -36
- package/core/SummaryList/index.js +0 -79
- package/core/SummaryList/index.spec.d.ts +0 -1
- package/core/SummaryList/index.spec.js +0 -19
- package/core/Table/index.js +0 -96
- package/core/Tabs/index.d.ts +0 -16
- package/core/Tabs/index.js +0 -88
- package/core/VisuallyHidden/index.js +0 -18
- package/core/WarningText/index.js +0 -19
- package/core/WarningText/index.spec.d.ts +0 -1
- package/core/WarningText/index.spec.js +0 -21
- package/core/index.js +0 -199
- package/custom.d.js +0 -1
- package/es/api/APIErrors.js +0 -96
- package/es/api/APIProvider.js +0 -25
- package/es/api/fetchAPI.js +0 -49
- package/es/api/index.js +0 -13
- package/es/api/index.spec.js +0 -546
- package/es/api/introduction.md +0 -6
- package/es/api/useResource.js +0 -128
- package/es/api/useResourceAction.js +0 -141
- package/es/api/useResourceQuery.js +0 -208
- package/es/api/utils.js +0 -233
- package/es/app/App.js +0 -27
- package/es/app/Confirmation/index.js +0 -3
- package/es/app/Footer/index.js +0 -15
- package/es/app/Header/HeaderSection.js +0 -7
- package/es/app/Header/HeaderTitle.js +0 -17
- package/es/app/Header/__snapshots__/index.spec.tsx.snap +0 -393
- package/es/app/Header/index.js +0 -13
- package/es/app/Header/index.mdx +0 -50
- package/es/app/Header/index.spec.js +0 -32
- package/es/app/NotFound/index.js +0 -12
- package/es/app/OutdatedBrowserBanner.js +0 -24
- package/es/app/PageTitle.js +0 -57
- package/es/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +0 -22
- package/es/app/QrCodeScanner/index.js +0 -64
- package/es/app/QrCodeScanner/index.mdx +0 -22
- package/es/app/QrCodeScanner/index.spec.js +0 -13
- package/es/app/i18n.js +0 -36
- package/es/app/index.js +0 -5
- package/es/core/Accordion/__snapshots__/index.spec.tsx.snap +0 -78
- package/es/core/Accordion/index.js +0 -67
- package/es/core/Accordion/index.mdx +0 -104
- package/es/core/Accordion/index.spec.js +0 -9
- package/es/core/Blockquote/__snapshots__/index.spec.tsx.snap +0 -13
- package/es/core/Blockquote/index.js +0 -16
- package/es/core/Blockquote/index.mdx +0 -61
- package/es/core/Blockquote/index.spec.js +0 -9
- package/es/core/Breadcrumbs/index.js +0 -3
- package/es/core/Button/BackButton.js +0 -21
- package/es/core/Button/ButtonLink.js +0 -16
- package/es/core/Button/CallToAction.js +0 -27
- package/es/core/Button/Icon.js +0 -7
- package/es/core/Button/__snapshots__/index.spec.tsx.snap +0 -13
- package/es/core/Button/index.js +0 -36
- package/es/core/Button/index.mdx +0 -65
- package/es/core/Button/index.spec.js +0 -9
- package/es/core/Card/index.js +0 -4
- package/es/core/Details/__snapshots__/index.spec.tsx.snap +0 -50
- package/es/core/Details/index.js +0 -5
- package/es/core/Details/index.mdx +0 -34
- package/es/core/Details/index.spec.js +0 -17
- package/es/core/Divider/index.js +0 -7
- package/es/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +0 -322
- package/es/core/ErrorSummary/index.js +0 -3
- package/es/core/ErrorSummary/index.mdx +0 -61
- package/es/core/ErrorSummary/index.spec.js +0 -9
- package/es/core/Hidden/index.js +0 -1
- package/es/core/Link/__snapshots__/index.spec.tsx.snap +0 -31
- package/es/core/Link/index.js +0 -26
- package/es/core/Link/index.spec.js +0 -21
- package/es/core/List/List.js +0 -3
- package/es/core/List/ListItem.js +0 -3
- package/es/core/List/ListItemContent.js +0 -27
- package/es/core/List/ListItemIcon.js +0 -29
- package/es/core/List/ListItemText.js +0 -19
- package/es/core/List/ListItemTitle.js +0 -25
- package/es/core/List/__snapshots__/index.spec.tsx.snap +0 -322
- package/es/core/List/index.js +0 -7
- package/es/core/List/index.mdx +0 -40
- package/es/core/List/index.spec.js +0 -9
- package/es/core/NavList/NavList.js +0 -78
- package/es/core/NavList/NavListContext.js +0 -80
- package/es/core/NavList/NavListItem.js +0 -141
- package/es/core/NavList/NavListItemBase.js +0 -133
- package/es/core/NavList/NavListSubMenu.js +0 -27
- package/es/core/NavList/__snapshots__/index.spec.tsx.snap +0 -334
- package/es/core/NavList/index.js +0 -5
- package/es/core/NavList/index.mdx +0 -185
- package/es/core/NavList/index.spec.js +0 -9
- package/es/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +0 -737
- package/es/core/NotificationBanner/index.js +0 -35
- package/es/core/NotificationBanner/index.mdx +0 -77
- package/es/core/NotificationBanner/index.spec.js +0 -20
- package/es/core/ServiceBadge/ServiceBadge.mdx +0 -0
- package/es/core/ServiceBadge/index.js +0 -20
- package/es/core/ServiceBadge/index.mdx +0 -42
- package/es/core/SummaryList/__snapshots__/index.spec.tsx.snap +0 -57
- package/es/core/SummaryList/index.js +0 -7
- package/es/core/SummaryList/index.mdx +0 -82
- package/es/core/SummaryList/index.spec.js +0 -9
- package/es/core/Table/index.js +0 -7
- package/es/core/Tabs/index.js +0 -37
- package/es/core/Tabs/index.mdx +0 -54
- package/es/core/VisuallyHidden/index.js +0 -1
- package/es/core/WarningText/__snapshots__/index.spec.tsx.snap +0 -336
- package/es/core/WarningText/index.js +0 -3
- package/es/core/WarningText/index.mdx +0 -46
- package/es/core/WarningText/index.spec.js +0 -9
- package/es/core/index.js +0 -14
- package/es/custom.d.js +0 -0
- package/es/govgr/Footer/Copyright.js +0 -37
- package/es/govgr/Footer/HellenicRepublicLogo.js +0 -3
- package/es/govgr/Footer/LicenseCCSA.js +0 -18
- package/es/govgr/Footer/index.js +0 -21
- package/es/govgr/Footer/logo.js +0 -1
- package/es/govgr/Footer/logos/logo-el.js +0 -1
- package/es/govgr/Footer/logos/logo-en.js +0 -1
- package/es/govgr/Logo/index.js +0 -3
- package/es/govgr/index.js +0 -4
- package/es/hooks/useDebounce.js +0 -41
- package/es/hooks/useLatest.js +0 -12
- package/es/hooks/useOutdatedBrowserCheck.js +0 -46
- package/es/hooks/useSearch.js +0 -25
- package/es/hooks/useTogglableSections.js +0 -96
- package/es/index.js +0 -5
- package/es/layouts/Basic/Bottom/index.js +0 -3
- package/es/layouts/Basic/Content/index.js +0 -18
- package/es/layouts/Basic/Main/index.js +0 -3
- package/es/layouts/Basic/Masthead/index.js +0 -4
- package/es/layouts/Basic/Side/index.js +0 -7
- package/es/layouts/Basic/index.js +0 -8
- package/es/layouts/Basic/index.spec.js +0 -10
- package/es/layouts/Grid/index.js +0 -1
- package/es/layouts/index.js +0 -2
- package/es/locales/el.js +0 -45
- package/es/locales/en.js +0 -45
- package/es/router/index.js +0 -15
- package/es/test-utils/delay.js +0 -31
- package/es/test-utils/mountWithTheme.js +0 -30
- package/es/themes/grnet.js +0 -110
- package/es/themes/index.js +0 -2
- package/es/typography/Caption.js +0 -7
- package/es/typography/NormalText.js +0 -3
- package/es/typography/Paragraph.js +0 -2
- package/es/typography/Title.js +0 -48
- package/es/typography/index.js +0 -8
- package/es/utils/evaluateBrowserVersion.js +0 -201
- package/es/utils/withDeprecation.js +0 -103
- package/esm/api/APIErrors.js +0 -96
- package/esm/api/APIProvider.js +0 -25
- package/esm/api/fetchAPI.js +0 -49
- package/esm/api/index.spec.js +0 -546
- package/esm/api/introduction.md +0 -6
- package/esm/api/useResource.js +0 -128
- package/esm/api/useResourceAction.js +0 -141
- package/esm/api/useResourceQuery.js +0 -208
- package/esm/api/utils.js +0 -233
- package/esm/app/App.js +0 -27
- package/esm/app/Confirmation/index.js +0 -3
- package/esm/app/Footer/index.js +0 -15
- package/esm/app/Header/HeaderLogo.js +0 -17
- package/esm/app/Header/HeaderSection.js +0 -7
- package/esm/app/Header/HeaderTitle.js +0 -17
- package/esm/app/Header/__snapshots__/index.spec.tsx.snap +0 -393
- package/esm/app/Header/index.mdx +0 -50
- package/esm/app/Header/index.spec.js +0 -32
- package/esm/app/NotFound/index.js +0 -12
- package/esm/app/OutdatedBrowserBanner.js +0 -24
- package/esm/app/PageTitle.js +0 -57
- package/esm/app/QrCodeScanner/__snapshots__/index.spec.tsx.snap +0 -22
- package/esm/app/QrCodeScanner/index.js +0 -64
- package/esm/app/QrCodeScanner/index.mdx +0 -22
- package/esm/app/QrCodeScanner/index.spec.js +0 -13
- package/esm/app/i18n.js +0 -36
- package/esm/app/index.js +0 -5
- package/esm/core/Accordion/__snapshots__/index.spec.tsx.snap +0 -78
- package/esm/core/Accordion/index.js +0 -67
- package/esm/core/Accordion/index.mdx +0 -104
- package/esm/core/Accordion/index.spec.js +0 -9
- package/esm/core/Blockquote/__snapshots__/index.spec.tsx.snap +0 -13
- package/esm/core/Blockquote/index.mdx +0 -61
- package/esm/core/Blockquote/index.spec.js +0 -9
- package/esm/core/Breadcrumbs/index.js +0 -3
- package/esm/core/Button/ButtonLink.js +0 -16
- package/esm/core/Button/CallToAction.js +0 -27
- package/esm/core/Button/Icon.js +0 -7
- package/esm/core/Button/__snapshots__/index.spec.tsx.snap +0 -13
- package/esm/core/Button/index.js +0 -36
- package/esm/core/Button/index.mdx +0 -65
- package/esm/core/Button/index.spec.js +0 -9
- package/esm/core/Card/index.js +0 -4
- package/esm/core/Details/__snapshots__/index.spec.tsx.snap +0 -50
- package/esm/core/Details/index.js +0 -5
- package/esm/core/Details/index.mdx +0 -34
- package/esm/core/Details/index.spec.js +0 -17
- package/esm/core/Divider/index.js +0 -7
- package/esm/core/ErrorSummary/__snapshots__/index.spec.tsx.snap +0 -322
- package/esm/core/ErrorSummary/index.js +0 -3
- package/esm/core/ErrorSummary/index.mdx +0 -61
- package/esm/core/ErrorSummary/index.spec.js +0 -9
- package/esm/core/Hidden/index.js +0 -1
- package/esm/core/Link/__snapshots__/index.spec.tsx.snap +0 -31
- package/esm/core/Link/index.js +0 -26
- package/esm/core/Link/index.spec.js +0 -21
- package/esm/core/List/List.js +0 -3
- package/esm/core/List/ListItem.js +0 -3
- package/esm/core/List/ListItemContent.js +0 -27
- package/esm/core/List/ListItemIcon.js +0 -29
- package/esm/core/List/ListItemText.js +0 -19
- package/esm/core/List/ListItemTitle.js +0 -25
- package/esm/core/List/__snapshots__/index.spec.tsx.snap +0 -322
- package/esm/core/List/index.js +0 -7
- package/esm/core/List/index.mdx +0 -40
- package/esm/core/List/index.spec.js +0 -9
- package/esm/core/NavList/NavList.js +0 -78
- package/esm/core/NavList/NavListContext.js +0 -80
- package/esm/core/NavList/NavListItem.js +0 -141
- package/esm/core/NavList/NavListItemBase.js +0 -133
- package/esm/core/NavList/NavListSubMenu.js +0 -27
- package/esm/core/NavList/__snapshots__/index.spec.tsx.snap +0 -334
- package/esm/core/NavList/index.js +0 -5
- package/esm/core/NavList/index.mdx +0 -185
- package/esm/core/NavList/index.spec.js +0 -9
- package/esm/core/NotificationBanner/__snapshots__/index.spec.tsx.snap +0 -737
- package/esm/core/NotificationBanner/index.js +0 -35
- package/esm/core/NotificationBanner/index.mdx +0 -77
- package/esm/core/NotificationBanner/index.spec.js +0 -20
- package/esm/core/ServiceBadge/ServiceBadge.mdx +0 -0
- package/esm/core/ServiceBadge/index.js +0 -20
- package/esm/core/ServiceBadge/index.mdx +0 -42
- package/esm/core/SummaryList/__snapshots__/index.spec.tsx.snap +0 -57
- package/esm/core/SummaryList/index.js +0 -7
- package/esm/core/SummaryList/index.mdx +0 -82
- package/esm/core/SummaryList/index.spec.js +0 -9
- package/esm/core/Table/index.js +0 -7
- package/esm/core/Tabs/index.js +0 -37
- package/esm/core/Tabs/index.mdx +0 -54
- package/esm/core/VisuallyHidden/index.js +0 -1
- package/esm/core/WarningText/__snapshots__/index.spec.tsx.snap +0 -336
- package/esm/core/WarningText/index.js +0 -3
- package/esm/core/WarningText/index.mdx +0 -46
- package/esm/core/WarningText/index.spec.js +0 -9
- package/esm/core/index.js +0 -14
- package/esm/custom.d.js +0 -0
- package/esm/form/inputs/Input/index.mdx +0 -10
- package/esm/govgr/Footer/Copyright.js +0 -37
- package/esm/govgr/Footer/HellenicRepublicLogo.js +0 -3
- package/esm/govgr/Footer/LicenseCCSA.js +0 -18
- package/esm/govgr/Footer/index.js +0 -21
- package/esm/govgr/Footer/index.mdx +0 -97
- package/esm/govgr/Logo/govgr-logo.svg +0 -1
- package/esm/govgr/Logo/index.js +0 -3
- package/esm/govgr/Logo/logo.js +0 -1
- package/esm/govgr/index.js +0 -4
- package/esm/hooks/useDebounce.js +0 -41
- package/esm/hooks/useLatest.js +0 -12
- package/esm/hooks/useSearch.js +0 -25
- package/esm/hooks/useTogglableSections.js +0 -96
- package/esm/index.js +0 -10
- package/esm/layouts/Basic/Bottom/index.js +0 -3
- package/esm/layouts/Basic/Bottom/index.mdx +0 -37
- package/esm/layouts/Basic/Content/index.js +0 -18
- package/esm/layouts/Basic/Content/index.mdx +0 -64
- package/esm/layouts/Basic/Main/index.js +0 -3
- package/esm/layouts/Basic/Main/index.mdx +0 -64
- package/esm/layouts/Basic/Masthead/index.js +0 -4
- package/esm/layouts/Basic/Masthead/index.mdx +0 -74
- package/esm/layouts/Basic/Side/index.mdx +0 -71
- package/esm/layouts/Basic/Top/index.js +0 -11
- package/esm/layouts/Basic/Top/index.mdx +0 -74
- package/esm/layouts/Basic/__snapshots__/index.spec.tsx.snap +0 -54
- package/esm/layouts/Basic/index.js +0 -8
- package/esm/layouts/Basic/index.mdx +0 -62
- package/esm/layouts/Basic/index.spec.js +0 -10
- package/esm/layouts/Grid/index.js +0 -1
- package/esm/layouts/index.js +0 -2
- package/esm/locales/el.js +0 -45
- package/esm/router/index.js +0 -15
- package/esm/router/index.mdx +0 -40
- package/esm/test-utils/delay.js +0 -31
- package/esm/test-utils/mountWithTheme.js +0 -30
- package/esm/themes/govgr.js +0 -79
- package/esm/themes/grnet.js +0 -110
- package/esm/themes/index.js +0 -2
- package/esm/typography/Caption.js +0 -7
- package/esm/typography/NormalText.js +0 -3
- package/esm/typography/Paragraph.js +0 -2
- package/esm/typography/Title.js +0 -48
- package/esm/typography/index.js +0 -8
- package/esm/typography/index.mdx +0 -32
- package/esm/utils/evaluateBrowserVersion.js +0 -201
- package/esm/utils/withDeprecation.js +0 -103
- package/form/inputs/Input/index.mdx +0 -10
- package/govgr/Footer/Copyright.d.ts +0 -8
- package/govgr/Footer/Copyright.js +0 -52
- package/govgr/Footer/HellenicRepublicLogo.js +0 -19
- package/govgr/Footer/LicenseCCSA.d.ts +0 -3
- package/govgr/Footer/LicenseCCSA.js +0 -33
- package/govgr/Footer/index.d.ts +0 -13
- package/govgr/Footer/index.js +0 -39
- package/govgr/Footer/index.mdx +0 -97
- package/govgr/Footer/logo.d.ts +0 -2
- package/govgr/Footer/logo.js +0 -8
- package/govgr/Footer/logos/logo-el.d.ts +0 -2
- package/govgr/Footer/logos/logo-el.js +0 -8
- package/govgr/Footer/logos/logo-en.d.ts +0 -2
- package/govgr/Footer/logos/logo-en.js +0 -8
- package/govgr/Logo/govgr-logo.svg +0 -1
- package/govgr/Logo/index.js +0 -19
- package/govgr/Logo/logo.d.ts +0 -2
- package/govgr/Logo/logo.js +0 -8
- package/govgr/index.js +0 -57
- package/hooks/useDebounce.d.ts +0 -3
- package/hooks/useDebounce.js +0 -63
- package/hooks/useLatest.d.ts +0 -3
- package/hooks/useLatest.js +0 -26
- package/hooks/useOutdatedBrowserCheck.d.ts +0 -2
- package/hooks/useOutdatedBrowserCheck.js +0 -60
- package/hooks/useSearch.d.ts +0 -4
- package/hooks/useSearch.js +0 -40
- package/hooks/useTogglableSections.d.ts +0 -18
- package/hooks/useTogglableSections.js +0 -108
- package/index.js +0 -70
- package/layouts/Basic/Bottom/index.js +0 -19
- package/layouts/Basic/Bottom/index.mdx +0 -37
- package/layouts/Basic/Content/index.d.ts +0 -5
- package/layouts/Basic/Content/index.js +0 -31
- package/layouts/Basic/Content/index.mdx +0 -64
- package/layouts/Basic/Main/index.js +0 -19
- package/layouts/Basic/Main/index.mdx +0 -64
- package/layouts/Basic/Masthead/index.js +0 -27
- package/layouts/Basic/Masthead/index.mdx +0 -74
- package/layouts/Basic/Side/index.d.ts +0 -3
- package/layouts/Basic/Side/index.js +0 -20
- package/layouts/Basic/Side/index.mdx +0 -71
- package/layouts/Basic/Top/index.d.ts +0 -3
- package/layouts/Basic/Top/index.js +0 -24
- package/layouts/Basic/Top/index.mdx +0 -74
- package/layouts/Basic/__snapshots__/index.spec.tsx.snap +0 -54
- package/layouts/Basic/index.js +0 -97
- package/layouts/Basic/index.mdx +0 -62
- package/layouts/Basic/index.spec.d.ts +0 -1
- package/layouts/Basic/index.spec.js +0 -20
- package/layouts/Grid/index.js +0 -18
- package/layouts/index.js +0 -34
- package/locales/el.d.ts +0 -46
- package/locales/el.js +0 -52
- package/locales/en.d.ts +0 -46
- package/locales/en.js +0 -52
- package/router/index.d.ts +0 -9
- package/router/index.js +0 -37
- package/router/index.mdx +0 -40
- package/test-utils/delay.d.ts +0 -2
- package/test-utils/delay.js +0 -45
- package/test-utils/mountWithTheme.d.ts +0 -3
- package/test-utils/mountWithTheme.js +0 -43
- package/themes/govgr.d.ts +0 -3
- package/themes/govgr.js +0 -89
- package/themes/grnet.d.ts +0 -2
- package/themes/grnet.js +0 -128
- package/themes/index.d.ts +0 -32
- package/themes/index.js +0 -19
- package/typography/Caption.d.ts +0 -7
- package/typography/Caption.js +0 -20
- package/typography/NormalText.d.ts +0 -5
- package/typography/NormalText.js +0 -19
- package/typography/Paragraph.d.ts +0 -6
- package/typography/Paragraph.js +0 -13
- package/typography/Title.d.ts +0 -9
- package/typography/Title.js +0 -63
- package/typography/index.js +0 -97
- package/typography/index.mdx +0 -32
- package/utils/evaluateBrowserVersion.d.ts +0 -15
- package/utils/evaluateBrowserVersion.js +0 -216
- package/utils/withDeprecation.d.ts +0 -16
- package/utils/withDeprecation.js +0 -116
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import CoreSectionBreak, {
|
|
2
|
+
SectionBreakProps as CoreSectionBreakProps,
|
|
3
|
+
} from '@digigov/react-core/SectionBreak';
|
|
4
|
+
import withDeprecation from '@digigov/ui/utils/withDeprecation';
|
|
5
|
+
|
|
6
|
+
export type SectionBreakProps = CoreSectionBreakProps;
|
|
7
|
+
|
|
8
|
+
export const SectionBreak = withDeprecation(CoreSectionBreak, {
|
|
9
|
+
name: 'Divider',
|
|
10
|
+
rename: 'SectionBreak',
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export default SectionBreak;
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import mountWithTheme from '@digigov/ui/test-utils/mountWithTheme';
|
|
3
|
+
|
|
4
|
+
import Component from '.';
|
|
5
|
+
|
|
6
|
+
it('renders the ErrorSummary with sample data', () => {
|
|
7
|
+
expect(
|
|
8
|
+
mountWithTheme(<Component>this is some random warning text</Component>)
|
|
9
|
+
).toMatchSnapshot();
|
|
10
|
+
});
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { mount } from 'enzyme';
|
|
3
|
+
|
|
4
|
+
import Component, { LinkProvider } from '@digigov/ui/core/Link';
|
|
5
|
+
|
|
6
|
+
const CustomLink: React.FC<{}> = (props) => {
|
|
7
|
+
return <div>{props.children}</div>;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
it('renders the Link', () => {
|
|
11
|
+
expect(mount(<Component>hello</Component>)).toMatchSnapshot();
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('Provider', () => {
|
|
15
|
+
expect(
|
|
16
|
+
mount(
|
|
17
|
+
<LinkProvider component={CustomLink}>
|
|
18
|
+
<Component>hello</Component>
|
|
19
|
+
</LinkProvider>
|
|
20
|
+
)
|
|
21
|
+
).toMatchSnapshot();
|
|
22
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { LinkProps as CoreLinkProps } from '@digigov/react-core/Link';
|
|
3
|
+
|
|
4
|
+
export interface LinkComponentContextProps {
|
|
5
|
+
component: React.ElementType<LinkProps>;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const CommonLink: React.FC<LinkProps> = (props) => (
|
|
9
|
+
<a {...props}>{props.children}</a>
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
const LinkComponentContext = React.createContext<React.ElementType<LinkProps>>(
|
|
13
|
+
CommonLink
|
|
14
|
+
);
|
|
15
|
+
export const LinkProvider: React.FC<LinkComponentContextProps> = (props) => {
|
|
16
|
+
return (
|
|
17
|
+
<LinkComponentContext.Provider value={props.component}>
|
|
18
|
+
{props.children}
|
|
19
|
+
</LinkComponentContext.Provider>
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export interface LinkProps extends CoreLinkProps {
|
|
24
|
+
ref?: React.Ref<HTMLAnchorElement>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const Link: React.ExoticComponent<LinkProps> = React.forwardRef(
|
|
28
|
+
function WrappedLink(
|
|
29
|
+
{ children, href = '', ...props },
|
|
30
|
+
ref: React.Ref<HTMLAnchorElement>
|
|
31
|
+
) {
|
|
32
|
+
const LinkComponent = React.useContext(LinkComponentContext);
|
|
33
|
+
return (
|
|
34
|
+
<LinkComponent ref={ref} href={href} {...props}>
|
|
35
|
+
{children}
|
|
36
|
+
</LinkComponent>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
export default Link;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
4
|
+
|
|
5
|
+
export const useListItemContenttyles = makeStyles(
|
|
6
|
+
(theme) => ({
|
|
7
|
+
root: {
|
|
8
|
+
flexGrow: 1,
|
|
9
|
+
padding: theme.spacing(0, 2),
|
|
10
|
+
},
|
|
11
|
+
}),
|
|
12
|
+
{ name: 'MuiListItemContent' }
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
export interface ListItemContentProps {
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const ListItemContent: React.FC<ListItemContentProps> = ({
|
|
20
|
+
className,
|
|
21
|
+
children,
|
|
22
|
+
...props
|
|
23
|
+
}) => {
|
|
24
|
+
const classes = useListItemContenttyles();
|
|
25
|
+
return (
|
|
26
|
+
<div className={clsx(className, classes.root)} {...props}>
|
|
27
|
+
{children}
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default ListItemContent;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
4
|
+
import Avatar, { AvatarProps } from '@material-ui/core/Avatar';
|
|
5
|
+
|
|
6
|
+
export const useListItemIconStyles = makeStyles(
|
|
7
|
+
() => ({
|
|
8
|
+
root: {},
|
|
9
|
+
}),
|
|
10
|
+
{ name: 'MuiListItemIcon' }
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
export interface ListItemIconProps extends AvatarProps {}
|
|
14
|
+
|
|
15
|
+
export const ListItemIcon: React.FC<ListItemIconProps> = ({
|
|
16
|
+
className,
|
|
17
|
+
children,
|
|
18
|
+
style,
|
|
19
|
+
...props
|
|
20
|
+
}) => {
|
|
21
|
+
const classes = useListItemIconStyles();
|
|
22
|
+
return (
|
|
23
|
+
<div style={style} className={clsx(className, classes.root)}>
|
|
24
|
+
<Avatar variant="rounded" {...props}>
|
|
25
|
+
{children}
|
|
26
|
+
</Avatar>
|
|
27
|
+
</div>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default ListItemIcon;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
3
|
+
import NormalText, { NormalTextProps } from '@digigov/ui/typography/NormalText';
|
|
4
|
+
|
|
5
|
+
export const useListItemTextStyles = makeStyles(
|
|
6
|
+
() => ({
|
|
7
|
+
root: {},
|
|
8
|
+
}),
|
|
9
|
+
{ name: 'MuiListItemText' }
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
export interface ListItemTextProps extends NormalTextProps {
|
|
13
|
+
ref?: React.Ref<HTMLSpanElement>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const ListItemText: React.FC<ListItemTextProps> = ({
|
|
17
|
+
children,
|
|
18
|
+
...props
|
|
19
|
+
}) => {
|
|
20
|
+
return <NormalText {...props}>{children}</NormalText>;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default ListItemText;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
3
|
+
import Title, { TitleProps } from '@digigov/ui/typography/Title';
|
|
4
|
+
import Link, { LinkProps } from '@digigov/ui/core/Link';
|
|
5
|
+
|
|
6
|
+
export const useListItemTitleStyles = makeStyles(
|
|
7
|
+
() => ({
|
|
8
|
+
root: {},
|
|
9
|
+
}),
|
|
10
|
+
{ name: 'MuiListItemTitle' }
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
export interface ListItemTitleProps extends TitleProps {
|
|
14
|
+
href?: string;
|
|
15
|
+
linkProps?: Omit<LinkProps, 'href'>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const ListItemTitle: React.FC<ListItemTitleProps> = ({
|
|
19
|
+
href,
|
|
20
|
+
linkProps,
|
|
21
|
+
children,
|
|
22
|
+
...props
|
|
23
|
+
}) => {
|
|
24
|
+
return (
|
|
25
|
+
<Title {...props}>
|
|
26
|
+
{href ? (
|
|
27
|
+
<Link href={href} {...linkProps}>
|
|
28
|
+
{children}
|
|
29
|
+
</Link>
|
|
30
|
+
) : (
|
|
31
|
+
children
|
|
32
|
+
)}
|
|
33
|
+
</Title>
|
|
34
|
+
);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export default ListItemTitle;
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import mountWithTheme from '@digigov/ui/test-utils/mountWithTheme';
|
|
3
|
+
|
|
4
|
+
import Component from '@digigov/ui/core/List';
|
|
5
|
+
|
|
6
|
+
it('renders the ErrorSummary with sample data', () => {
|
|
7
|
+
expect(
|
|
8
|
+
mountWithTheme(<Component>this is some random warning text</Component>)
|
|
9
|
+
).toMatchSnapshot();
|
|
10
|
+
});
|
|
File without changes
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
4
|
+
import {
|
|
5
|
+
NavLinkInterface,
|
|
6
|
+
NavListProvider,
|
|
7
|
+
} from '@digigov/ui/core/NavList/NavListContext';
|
|
8
|
+
import { BaseCSSProperties } from '@material-ui/core/styles/withStyles';
|
|
9
|
+
|
|
10
|
+
export const useNavListStyles = makeStyles(
|
|
11
|
+
(theme) => ({
|
|
12
|
+
root: {
|
|
13
|
+
padding: theme.spacing(0),
|
|
14
|
+
margin: theme.spacing(0),
|
|
15
|
+
display: 'flex',
|
|
16
|
+
'&$vertical': {
|
|
17
|
+
flexDirection: 'column',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
subMenu: {
|
|
21
|
+
marginLeft: theme.spacing(3),
|
|
22
|
+
},
|
|
23
|
+
floating: {
|
|
24
|
+
left: 0,
|
|
25
|
+
zIndex: 99,
|
|
26
|
+
position: 'absolute',
|
|
27
|
+
background: theme.palette.grey['100'],
|
|
28
|
+
borderTop: `1px solid ${theme.palette.grey['500']}`,
|
|
29
|
+
borderRight: `1px solid ${theme.palette.grey['500']}`,
|
|
30
|
+
borderLeft: `1px solid ${theme.palette.grey['500']}`,
|
|
31
|
+
margin: theme.spacing(1.5, 0, 0, 0),
|
|
32
|
+
boxShadow: theme.shadows[3],
|
|
33
|
+
'& > li': {
|
|
34
|
+
width: '100%',
|
|
35
|
+
borderBottom: `1px solid ${theme.palette.grey['500']}`,
|
|
36
|
+
margin: 0,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
vertical: {},
|
|
40
|
+
floatClear: {
|
|
41
|
+
clear: 'both',
|
|
42
|
+
},
|
|
43
|
+
}),
|
|
44
|
+
{ name: 'MuiNavList' }
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
export interface NavListProps {
|
|
48
|
+
children?: React.ReactNode;
|
|
49
|
+
className?: string;
|
|
50
|
+
horizontal?: boolean;
|
|
51
|
+
openSubMenus?: boolean;
|
|
52
|
+
floating?: boolean;
|
|
53
|
+
subMenu?: boolean;
|
|
54
|
+
links?: NavLinkInterface[];
|
|
55
|
+
style?: BaseCSSProperties;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export const NavListBase: React.FC<NavListProps> = ({
|
|
59
|
+
className,
|
|
60
|
+
children,
|
|
61
|
+
floating,
|
|
62
|
+
horizontal,
|
|
63
|
+
subMenu,
|
|
64
|
+
...props
|
|
65
|
+
}) => {
|
|
66
|
+
const classes = useNavListStyles();
|
|
67
|
+
return (
|
|
68
|
+
<nav>
|
|
69
|
+
<ul
|
|
70
|
+
style={props.style}
|
|
71
|
+
className={clsx(
|
|
72
|
+
className,
|
|
73
|
+
classes.root,
|
|
74
|
+
subMenu && classes.subMenu,
|
|
75
|
+
floating && classes.floating,
|
|
76
|
+
!horizontal && classes.vertical
|
|
77
|
+
)}
|
|
78
|
+
>
|
|
79
|
+
{children}
|
|
80
|
+
</ul>
|
|
81
|
+
<div className={classes.floatClear} />
|
|
82
|
+
</nav>
|
|
83
|
+
);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const NavList: React.FC<NavListProps> = ({
|
|
87
|
+
horizontal,
|
|
88
|
+
openSubMenus = false,
|
|
89
|
+
links = [],
|
|
90
|
+
...props
|
|
91
|
+
}) => {
|
|
92
|
+
return (
|
|
93
|
+
<NavListProvider
|
|
94
|
+
openSubMenus={openSubMenus}
|
|
95
|
+
horizontal={horizontal}
|
|
96
|
+
links={links}
|
|
97
|
+
>
|
|
98
|
+
<NavListBase horizontal={horizontal} {...props} />
|
|
99
|
+
</NavListProvider>
|
|
100
|
+
);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export default NavList;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import React, { createContext, useEffect, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface NavLinkInterface {
|
|
4
|
+
name?: string;
|
|
5
|
+
label?: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
subMenu?: NavLinkInterface[];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface NavListContextInterface {
|
|
12
|
+
openSubMenus?: boolean;
|
|
13
|
+
horizontal?: boolean;
|
|
14
|
+
showDividers?: boolean;
|
|
15
|
+
links: NavLinkInterface[];
|
|
16
|
+
activeLink?: NavLinkInterface;
|
|
17
|
+
activeSubMenu?: NavLinkInterface[];
|
|
18
|
+
onSubMenuActive?: (name: string) => void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const NavListContext = createContext<NavListContextInterface>({
|
|
22
|
+
horizontal: false,
|
|
23
|
+
openSubMenus: false,
|
|
24
|
+
links: [],
|
|
25
|
+
activeLink: {},
|
|
26
|
+
activeSubMenu: [],
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const TRAILING_SLASH = /\/$/gm;
|
|
30
|
+
export const NavListProvider: React.FC<NavListContextInterface> = ({
|
|
31
|
+
children,
|
|
32
|
+
openSubMenus = false,
|
|
33
|
+
horizontal = false,
|
|
34
|
+
showDividers = false,
|
|
35
|
+
links = [],
|
|
36
|
+
}) => {
|
|
37
|
+
const [activeSubMenu, setActiveSubMenu] = useState<NavLinkInterface[]>([]);
|
|
38
|
+
const [activeLink, setActiveLink] = useState<NavLinkInterface>({});
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
const currentActiveLink = links.find((link) => {
|
|
41
|
+
if (link.subMenu?.length) {
|
|
42
|
+
return !!~link.subMenu.findIndex(
|
|
43
|
+
(subMenuLink) =>
|
|
44
|
+
window?.location.pathname.replace(TRAILING_SLASH, '') ===
|
|
45
|
+
subMenuLink.href?.replace(TRAILING_SLASH, '')
|
|
46
|
+
);
|
|
47
|
+
} else {
|
|
48
|
+
return (
|
|
49
|
+
window?.location.pathname.replace(TRAILING_SLASH, '') ===
|
|
50
|
+
link.href?.replace(TRAILING_SLASH, '') || false
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
}) || { label: '', href: '' };
|
|
54
|
+
setActiveLink(currentActiveLink);
|
|
55
|
+
}, [links]);
|
|
56
|
+
const onSubMenuActive = (href: string): void => {
|
|
57
|
+
if (href === null) {
|
|
58
|
+
setActiveSubMenu([]);
|
|
59
|
+
}
|
|
60
|
+
const link = links.find(
|
|
61
|
+
(link) => link.href === href && link.subMenu && link.subMenu.length
|
|
62
|
+
);
|
|
63
|
+
if (link && link.subMenu) {
|
|
64
|
+
setActiveSubMenu(link.subMenu);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
return (
|
|
69
|
+
<NavListContext.Provider
|
|
70
|
+
value={{
|
|
71
|
+
openSubMenus,
|
|
72
|
+
horizontal,
|
|
73
|
+
showDividers,
|
|
74
|
+
links,
|
|
75
|
+
activeLink,
|
|
76
|
+
activeSubMenu,
|
|
77
|
+
onSubMenuActive,
|
|
78
|
+
}}
|
|
79
|
+
>
|
|
80
|
+
{children}
|
|
81
|
+
</NavListContext.Provider>
|
|
82
|
+
);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export default NavListContext;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import React, { useContext, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import Divider from '@digigov/react-core/SectionBreak';
|
|
4
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
5
|
+
import NavListItemBase from '@digigov/ui/core/NavList/NavListItemBase';
|
|
6
|
+
import NavListSubMenu from '@digigov/ui/core/NavList/NavListSubMenu';
|
|
7
|
+
import NavListContext from '@digigov/ui/core/NavList/NavListContext';
|
|
8
|
+
import { BaseCSSProperties } from '@material-ui/core/styles/withStyles';
|
|
9
|
+
|
|
10
|
+
export interface NavListItemProps {
|
|
11
|
+
name?: string;
|
|
12
|
+
label?: string;
|
|
13
|
+
children?: React.ReactNode;
|
|
14
|
+
className?: string;
|
|
15
|
+
href?: string;
|
|
16
|
+
selected?: boolean;
|
|
17
|
+
expandOn?: 'hover' | 'click';
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const useNavListItemStyles = makeStyles(
|
|
21
|
+
(theme) => ({
|
|
22
|
+
root: {},
|
|
23
|
+
link: {
|
|
24
|
+
padding: theme.spacing(0.5, 2),
|
|
25
|
+
textDecoration: 'none',
|
|
26
|
+
'&:hover': {
|
|
27
|
+
textDecoration: 'underline',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
selected: {
|
|
31
|
+
borderStyle: 'solid',
|
|
32
|
+
borderColor: theme.palette.secondary.main,
|
|
33
|
+
fontWeight: 'bolder',
|
|
34
|
+
},
|
|
35
|
+
}),
|
|
36
|
+
{ name: 'MuiNavListItem' }
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
export const NavListItem: React.FC<NavListItemProps> = ({
|
|
40
|
+
name,
|
|
41
|
+
expandOn = 'click',
|
|
42
|
+
children,
|
|
43
|
+
href,
|
|
44
|
+
className,
|
|
45
|
+
selected: passSelected,
|
|
46
|
+
...props
|
|
47
|
+
}) => {
|
|
48
|
+
const [open, setOpen] = useState(false);
|
|
49
|
+
const [style, setStyle] = useState<BaseCSSProperties>({});
|
|
50
|
+
const ref = useRef<HTMLLIElement>(null);
|
|
51
|
+
const [delayHandler, setDelayHandler] = useState<
|
|
52
|
+
ReturnType<typeof setTimeout>
|
|
53
|
+
>();
|
|
54
|
+
const [selected, setSelected] = useState(passSelected || false);
|
|
55
|
+
const classes = useNavListItemStyles();
|
|
56
|
+
const {
|
|
57
|
+
openSubMenus,
|
|
58
|
+
horizontal,
|
|
59
|
+
showDividers,
|
|
60
|
+
activeLink,
|
|
61
|
+
links,
|
|
62
|
+
} = useContext(NavListContext);
|
|
63
|
+
const { href: contextHref, label, subMenu } =
|
|
64
|
+
links.find((link) => link.name === name) || {};
|
|
65
|
+
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
if (activeLink?.name && name) {
|
|
68
|
+
setSelected(activeLink.name === name);
|
|
69
|
+
}
|
|
70
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
71
|
+
}, [activeLink?.name]);
|
|
72
|
+
|
|
73
|
+
const toggleOpen = (): void => {
|
|
74
|
+
setOpen(!open);
|
|
75
|
+
};
|
|
76
|
+
const handleOpen = (): void => {
|
|
77
|
+
if (subMenu && subMenu.length) {
|
|
78
|
+
setDelayHandler(
|
|
79
|
+
setTimeout(() => {
|
|
80
|
+
setOpen(true);
|
|
81
|
+
}, 300)
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const handleClose = (): void => {
|
|
86
|
+
if (subMenu && subMenu.length) {
|
|
87
|
+
if (delayHandler) clearTimeout(delayHandler);
|
|
88
|
+
setOpen(false);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
useEffect(() => {
|
|
92
|
+
if (
|
|
93
|
+
ref?.current?.clientWidth &&
|
|
94
|
+
horizontal &&
|
|
95
|
+
ref.current.clientWidth !== style.width
|
|
96
|
+
) {
|
|
97
|
+
setStyle({
|
|
98
|
+
top: ref.current.clientHeight - 12,
|
|
99
|
+
width: ref.current.clientWidth,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}, [
|
|
103
|
+
horizontal,
|
|
104
|
+
style.width,
|
|
105
|
+
ref.current?.clientWidth,
|
|
106
|
+
ref.current?.clientHeight,
|
|
107
|
+
]);
|
|
108
|
+
|
|
109
|
+
const handlerProps =
|
|
110
|
+
expandOn === 'hover'
|
|
111
|
+
? {
|
|
112
|
+
onMouseEnter: handleOpen,
|
|
113
|
+
onMouseLeave: handleClose,
|
|
114
|
+
}
|
|
115
|
+
: {
|
|
116
|
+
onClick: toggleOpen,
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
return (
|
|
120
|
+
<>
|
|
121
|
+
<NavListItemBase
|
|
122
|
+
ref={ref}
|
|
123
|
+
href={contextHref || href}
|
|
124
|
+
label={label || children}
|
|
125
|
+
expandOn={expandOn}
|
|
126
|
+
open={open}
|
|
127
|
+
selected={selected}
|
|
128
|
+
isNested={subMenu && subMenu.length > 0}
|
|
129
|
+
horizontal={horizontal}
|
|
130
|
+
className={clsx(className, classes.root)}
|
|
131
|
+
{...handlerProps}
|
|
132
|
+
{...props}
|
|
133
|
+
>
|
|
134
|
+
{(open || openSubMenus) && subMenu && subMenu.length && (
|
|
135
|
+
<NavListSubMenu style={style} links={subMenu} />
|
|
136
|
+
)}
|
|
137
|
+
</NavListItemBase>
|
|
138
|
+
{!horizontal && showDividers && <Divider />}
|
|
139
|
+
</>
|
|
140
|
+
);
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
export default NavListItem;
|