@conduction/components 2.0.2 → 2.0.4

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 (166) hide show
  1. package/.github/workflows/npm-publish.yml +39 -39
  2. package/.prettierrc +30 -30
  3. package/README.md +15 -13
  4. package/lib/components/card/detailsCard/DetailsCard.d.ts +14 -14
  5. package/lib/components/card/detailsCard/DetailsCard.js +10 -10
  6. package/lib/components/card/detailsCard/DetailsCard.module.css +51 -51
  7. package/lib/components/card/downloadCard/DownloadCard.d.ts +10 -10
  8. package/lib/components/card/downloadCard/DownloadCard.js +8 -8
  9. package/lib/components/card/downloadCard/DownloadCard.module.css +27 -27
  10. package/lib/components/card/horizontalImageCard/HorizontalImageCard.d.ts +13 -13
  11. package/lib/components/card/horizontalImageCard/HorizontalImageCard.js +9 -9
  12. package/lib/components/card/horizontalImageCard/HorizontalImageCard.module.css +34 -34
  13. package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.d.ts +14 -14
  14. package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.js +9 -9
  15. package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.module.css +63 -63
  16. package/lib/components/card/index.d.ts +7 -7
  17. package/lib/components/card/index.js +7 -7
  18. package/lib/components/card/infoCard/InfoCard.d.ts +8 -7
  19. package/lib/components/card/infoCard/InfoCard.js +6 -5
  20. package/lib/components/card/infoCard/InfoCard.module.css +26 -26
  21. package/lib/components/card/richContentCard/RichContentCard.d.ts +19 -19
  22. package/lib/components/card/richContentCard/RichContentCard.js +15 -15
  23. package/lib/components/card/richContentCard/RichContentCard.module.css +93 -93
  24. package/lib/components/container/Container.d.ts +6 -6
  25. package/lib/components/container/Container.js +4 -4
  26. package/lib/components/container/Container.module.css +9 -9
  27. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
  28. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.d.ts +17 -17
  29. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.js +20 -20
  30. package/lib/components/denhaag-wrappers/pagination/Pagination.css +120 -120
  31. package/lib/components/denhaag-wrappers/pagination/Pagination.d.ts +9 -9
  32. package/lib/components/denhaag-wrappers/pagination/Pagination.js +15 -15
  33. package/lib/components/editableTableRow/EditableTableRow.d.ts +14 -14
  34. package/lib/components/editableTableRow/EditableTableRow.js +31 -31
  35. package/lib/components/editableTableRow/EditableTableRow.module.css +25 -25
  36. package/lib/components/formFields/checkbox.d.ts +7 -7
  37. package/lib/components/formFields/checkbox.js +3 -3
  38. package/lib/components/formFields/index.d.ts +6 -6
  39. package/lib/components/formFields/index.js +6 -6
  40. package/lib/components/formFields/input.d.ts +19 -19
  41. package/lib/components/formFields/input.js +13 -13
  42. package/lib/components/formFields/radio.d.ts +9 -9
  43. package/lib/components/formFields/radio.js +3 -3
  44. package/lib/components/formFields/select/select.d.ts +17 -17
  45. package/lib/components/formFields/select/select.js +14 -14
  46. package/lib/components/formFields/select/select.module.css +35 -35
  47. package/lib/components/formFields/textarea.d.ts +8 -8
  48. package/lib/components/formFields/textarea.js +3 -3
  49. package/lib/components/formFields/types.d.ts +6 -6
  50. package/lib/components/formFields/types.js +1 -1
  51. package/lib/components/imageDivider/ImageDivider.d.ts +7 -7
  52. package/lib/components/imageDivider/ImageDivider.js +6 -6
  53. package/lib/components/imageDivider/imageDivider.module.css +5 -5
  54. package/lib/components/logo/Logo.d.ts +8 -8
  55. package/lib/components/logo/Logo.js +10 -10
  56. package/lib/components/logo/Logo.module.css +15 -15
  57. package/lib/components/metaIcon/MetaIcon.d.ts +7 -7
  58. package/lib/components/metaIcon/MetaIcon.js +3 -3
  59. package/lib/components/metaIcon/MetaIcon.module.css +29 -29
  60. package/lib/components/modals/NotificationModal.d.ts +21 -0
  61. package/lib/components/modals/NotificationModal.js +34 -0
  62. package/lib/components/modals/NotificationModal.module.css +56 -0
  63. package/lib/components/notificationPopUp/{NotificationPopUp.module.css → NotificationPopUP.module.css} +61 -61
  64. package/lib/components/notificationPopUp/NotificationPopUp.d.ts +22 -22
  65. package/lib/components/notificationPopUp/NotificationPopUp.js +31 -31
  66. package/lib/components/privateRoute/PrivateRoute.d.ts +6 -6
  67. package/lib/components/privateRoute/PrivateRoute.js +15 -15
  68. package/lib/components/quoteWrapper/QuoteWrapper.d.ts +7 -7
  69. package/lib/components/quoteWrapper/QuoteWrapper.js +5 -5
  70. package/lib/components/quoteWrapper/QuoteWrapper.module.css +12 -12
  71. package/lib/components/statusSteps/StatusSteps.d.ts +13 -13
  72. package/lib/components/statusSteps/StatusSteps.js +5 -5
  73. package/lib/components/tag/Tag.d.ts +6 -6
  74. package/lib/components/tag/Tag.js +3 -3
  75. package/lib/components/tag/Tag.module.css +20 -20
  76. package/lib/components/topNav/TopNav.d.ts +12 -0
  77. package/lib/components/topNav/TopNav.js +10 -0
  78. package/lib/components/topNav/TopNav.module.css +71 -0
  79. package/lib/components/topNav/index.d.ts +3 -3
  80. package/lib/components/topNav/index.js +3 -3
  81. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.d.ts +17 -17
  82. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.js +7 -7
  83. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.module.css +60 -60
  84. package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.d.ts +11 -11
  85. package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.js +7 -7
  86. package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.module.css +43 -43
  87. package/lib/index.d.ts +24 -24
  88. package/lib/index.js +17 -17
  89. package/lib/pages/index.d.ts +3 -0
  90. package/lib/pages/index.js +5 -0
  91. package/lib/templates/landing/LandingTemplate.d.ts +2 -0
  92. package/lib/templates/landing/LandingTemplate.js +6 -0
  93. package/lib/templates/landing/LandingTemplate.module.css +17 -0
  94. package/lib/templates/testing/TestingTemplate.d.ts +2 -0
  95. package/lib/templates/testing/TestingTemplate.js +6 -0
  96. package/lib/templates/testing/TestingTemplate.module.css +0 -0
  97. package/package.json +42 -42
  98. package/src/components/card/detailsCard/DetailsCard.module.css +51 -51
  99. package/src/components/card/detailsCard/DetailsCard.tsx +56 -56
  100. package/src/components/card/downloadCard/DownloadCard.js +10 -10
  101. package/src/components/card/downloadCard/DownloadCard.module.css +27 -27
  102. package/src/components/card/downloadCard/DownloadCard.tsx +31 -31
  103. package/src/components/card/horizontalImageCard/HorizontalImageCard.js +9 -9
  104. package/src/components/card/horizontalImageCard/HorizontalImageCard.module.css +34 -34
  105. package/src/components/card/horizontalImageCard/HorizontalImageCard.tsx +37 -37
  106. package/src/components/card/imageAndDetailsCard/ImageAndDetailsCard.js +9 -9
  107. package/src/components/card/imageAndDetailsCard/ImageAndDetailsCard.module.css +63 -63
  108. package/src/components/card/imageAndDetailsCard/ImageAndDetailsCard.tsx +49 -49
  109. package/src/components/card/index.js +5 -5
  110. package/src/components/card/index.tsx +8 -8
  111. package/src/components/card/infoCard/InfoCard.module.css +26 -26
  112. package/src/components/card/infoCard/InfoCard.tsx +19 -17
  113. package/src/components/card/richContentCard/RichContentCard.js +17 -17
  114. package/src/components/card/richContentCard/RichContentCard.module.css +93 -93
  115. package/src/components/card/richContentCard/RichContentCard.tsx +98 -98
  116. package/src/components/container/Container.js +3 -3
  117. package/src/components/container/Container.module.css +9 -9
  118. package/src/components/container/Container.tsx +11 -11
  119. package/src/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
  120. package/src/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.js +20 -20
  121. package/src/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.tsx +89 -89
  122. package/src/components/denhaag-wrappers/pagination/Pagination.css +120 -120
  123. package/src/components/denhaag-wrappers/pagination/Pagination.tsx +112 -112
  124. package/src/components/editableTableRow/EditableTableRow.js +34 -34
  125. package/src/components/editableTableRow/EditableTableRow.module.css +25 -25
  126. package/src/components/editableTableRow/EditableTableRow.tsx +138 -138
  127. package/src/components/formFields/checkbox.js +3 -3
  128. package/src/components/formFields/checkbox.tsx +14 -14
  129. package/src/components/formFields/index.js +4 -4
  130. package/src/components/formFields/index.tsx +19 -19
  131. package/src/components/formFields/input.js +12 -12
  132. package/src/components/formFields/input.tsx +123 -123
  133. package/src/components/formFields/radio.tsx +21 -21
  134. package/src/components/formFields/select/select.module.css +35 -35
  135. package/src/components/formFields/select/select.tsx +63 -63
  136. package/src/components/formFields/textarea.js +3 -3
  137. package/src/components/formFields/textarea.tsx +13 -13
  138. package/src/components/formFields/types.js +1 -1
  139. package/src/components/formFields/types.ts +7 -7
  140. package/src/components/imageDivider/ImageDivider.js +6 -6
  141. package/src/components/imageDivider/ImageDivider.tsx +12 -12
  142. package/src/components/imageDivider/imageDivider.module.css +5 -5
  143. package/src/components/logo/Logo.js +10 -10
  144. package/src/components/logo/Logo.module.css +15 -15
  145. package/src/components/logo/Logo.tsx +25 -25
  146. package/src/components/metaIcon/MetaIcon.js +3 -3
  147. package/src/components/metaIcon/MetaIcon.module.css +29 -29
  148. package/src/components/metaIcon/MetaIcon.tsx +18 -18
  149. package/src/components/notificationPopUp/NotificationPopUp.module.css +61 -61
  150. package/src/components/notificationPopUp/NotificationPopUp.tsx +82 -82
  151. package/src/components/privateRoute/PrivateRoute.js +15 -15
  152. package/src/components/privateRoute/PrivateRoute.tsx +22 -22
  153. package/src/components/quoteWrapper/QuoteWrapper.module.css +12 -12
  154. package/src/components/quoteWrapper/QuoteWrapper.tsx +15 -15
  155. package/src/components/statusSteps/StatusSteps.js +5 -5
  156. package/src/components/statusSteps/StatusSteps.tsx +54 -54
  157. package/src/components/tag/Tag.module.css +20 -20
  158. package/src/components/tag/Tag.tsx +8 -8
  159. package/src/components/topNav/index.ts +4 -4
  160. package/src/components/topNav/primaryTopNav/PrimaryTopNav.module.css +60 -60
  161. package/src/components/topNav/primaryTopNav/PrimaryTopNav.tsx +52 -52
  162. package/src/components/topNav/secondaryTopNav/SecondaryTopNav.module.css +43 -43
  163. package/src/components/topNav/secondaryTopNav/SecondaryTopNav.tsx +27 -27
  164. package/src/custom.d.ts +4 -4
  165. package/src/index.js +14 -14
  166. package/src/index.ts +73 -73
@@ -1,25 +1,25 @@
1
- import clsx from "clsx";
2
- import { Link } from "gatsby";
3
- import * as React from "react";
4
- import * as styles from "./Logo.module.css";
5
-
6
- interface LogoProps {
7
- layoutClassName: string;
8
- href?: string;
9
- }
10
-
11
- export const AuthenticatedLogo: React.FC<LogoProps> = ({ layoutClassName, href }) => {
12
- return (
13
- <Link className={styles.logoContainer} to={href ?? "#"}>
14
- <div className={clsx(styles.authenticatedLogo, styles.logo, layoutClassName)} />
15
- </Link>
16
- );
17
- };
18
-
19
- export const UnauthenticatedLogo: React.FC<LogoProps> = ({ layoutClassName, href }) => {
20
- return (
21
- <Link className={styles.logoContainer} to={href ?? "#"}>
22
- <div className={clsx(styles.unauthenticatedLogo, styles.logo, layoutClassName)} />
23
- </Link>
24
- );
25
- };
1
+ import clsx from "clsx";
2
+ import { Link } from "gatsby";
3
+ import * as React from "react";
4
+ import * as styles from "./Logo.module.css";
5
+
6
+ interface LogoProps {
7
+ layoutClassName: string;
8
+ href?: string;
9
+ }
10
+
11
+ export const AuthenticatedLogo: React.FC<LogoProps> = ({ layoutClassName, href }) => {
12
+ return (
13
+ <Link className={styles.logoContainer} to={href ?? "#"}>
14
+ <div className={clsx(styles.authenticatedLogo, styles.logo, layoutClassName)} />
15
+ </Link>
16
+ );
17
+ };
18
+
19
+ export const UnauthenticatedLogo: React.FC<LogoProps> = ({ layoutClassName, href }) => {
20
+ return (
21
+ <Link className={styles.logoContainer} to={href ?? "#"}>
22
+ <div className={clsx(styles.unauthenticatedLogo, styles.logo, layoutClassName)} />
23
+ </Link>
24
+ );
25
+ };
@@ -1,3 +1,3 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as styles from "./MetaIcon.module.css";
3
- export const MetaIcon = ({ icon, label, value }) => (_jsxs("div", { className: styles.container, children: [_jsx("span", { className: styles.icon, children: icon }), _jsx("span", { children: label }), _jsx("span", { className: styles.value, children: value })] }));
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as styles from "./MetaIcon.module.css";
3
+ export const MetaIcon = ({ icon, label, value }) => (_jsxs("div", { className: styles.container, children: [_jsx("span", { className: styles.icon, children: icon }), _jsx("span", { children: label }), _jsx("span", { className: styles.value, children: value })] }));
@@ -1,29 +1,29 @@
1
- :root {
2
- --conduction-meta-icon-icon-size: var(--skeleton-size-lg);
3
- --conduction-meta-icon-icon-color: var(--skeleton-color-secondary-4);
4
- }
5
-
6
- .container {
7
- display: flex;
8
- align-items: center;
9
- flex-direction: column;
10
- }
11
-
12
- .container > *:not(:last-child) {
13
- margin-block-end: var(--skeleton-size-xs);
14
- }
15
-
16
- .icon {
17
- color: var(--conduction-meta-icon-icon-color);
18
- height: var(--conduction-meta-icon-icon-size);
19
- width: var(--conduction-meta-icon-icon-size);
20
- }
21
-
22
- .icon > svg {
23
- height: 100%;
24
- width: 100%;
25
- }
26
-
27
- .value {
28
- font-weight: var(--skeleton-font-weight-bold);
29
- }
1
+ :root {
2
+ --conduction-meta-icon-icon-size: var(--skeleton-size-lg);
3
+ --conduction-meta-icon-icon-color: var(--skeleton-color-secondary-4);
4
+ }
5
+
6
+ .container {
7
+ display: flex;
8
+ align-items: center;
9
+ flex-direction: column;
10
+ }
11
+
12
+ .container > *:not(:last-child) {
13
+ margin-block-end: var(--skeleton-size-xs);
14
+ }
15
+
16
+ .icon {
17
+ color: var(--conduction-meta-icon-icon-color);
18
+ height: var(--conduction-meta-icon-icon-size);
19
+ width: var(--conduction-meta-icon-icon-size);
20
+ }
21
+
22
+ .icon > svg {
23
+ height: 100%;
24
+ width: 100%;
25
+ }
26
+
27
+ .value {
28
+ font-weight: var(--skeleton-font-weight-bold);
29
+ }
@@ -1,18 +1,18 @@
1
- import * as React from "react";
2
- import * as styles from "./MetaIcon.module.css";
3
-
4
- export interface MetaIconProps {
5
- icon: JSX.Element;
6
- label: string;
7
- value: string;
8
- }
9
-
10
- export const MetaIcon: React.FC<MetaIconProps> = ({ icon, label, value }) => (
11
- <div className={styles.container}>
12
- <span className={styles.icon}>{icon}</span>
13
-
14
- <span>{label}</span>
15
-
16
- <span className={styles.value}>{value}</span>
17
- </div>
18
- );
1
+ import * as React from "react";
2
+ import * as styles from "./MetaIcon.module.css";
3
+
4
+ export interface MetaIconProps {
5
+ icon: JSX.Element;
6
+ label: string;
7
+ value: string;
8
+ }
9
+
10
+ export const MetaIcon: React.FC<MetaIconProps> = ({ icon, label, value }) => (
11
+ <div className={styles.container}>
12
+ <span className={styles.icon}>{icon}</span>
13
+
14
+ <span>{label}</span>
15
+
16
+ <span className={styles.value}>{value}</span>
17
+ </div>
18
+ );
@@ -1,61 +1,61 @@
1
- :root {
2
- --conduction-notification-pop-up-box-shadow: 0px 0px 6px 6px rgb(0 0 0 / 15%);
3
- --conduction-notification-pop-up-border: 1px solid var(--skeleton-color-grey-2);
4
- }
5
-
6
- :export {
7
- animationDuration: 200ms;
8
- }
9
-
10
- .modal {
11
- animation-fill-mode: both;
12
- background: var(--skeleton-color-grey-1);
13
- padding-inline-start: var(--skeleton-size-lg);
14
- padding-inline-end: var(--skeleton-size-lg);
15
- padding-block-start: var(--skeleton-size-lg);
16
- padding-block-end: var(--skeleton-size-lg);
17
- border-radius: var(--skeleton-border-radius-md);
18
- box-shadow: var(--conduction-notification-pop-up-box-shadow);
19
- }
20
-
21
- .modal > *:not(:last-child) {
22
- margin-block-end: var(--skeleton-size-md);
23
- }
24
-
25
- .buttons {
26
- display: flex;
27
- justify-content: flex-end;
28
- align-items: center;
29
- }
30
-
31
- .buttons > *:not(:last-child) {
32
- margin-inline-end: var(--skeleton-size-md);
33
- }
34
-
35
- .visible {
36
- animation-name: fadeInBottom;
37
- }
38
-
39
- @keyframes fadeInBottom {
40
- from {
41
- opacity: 0;
42
- transform: translateY(100%);
43
- }
44
- to {
45
- opacity: 1;
46
- }
47
- }
48
-
49
- .modal:not(.visible) {
50
- animation-name: fadeOutBottom;
51
- }
52
-
53
- @keyframes fadeOutBottom {
54
- from {
55
- opacity: 1;
56
- }
57
- to {
58
- opacity: 0;
59
- transform: translateY(100%);
60
- }
61
- }
1
+ :root {
2
+ --conduction-notification-pop-up-box-shadow: 0px 0px 6px 6px rgb(0 0 0 / 15%);
3
+ --conduction-notification-pop-up-border: 1px solid var(--skeleton-color-grey-2);
4
+ }
5
+
6
+ :export {
7
+ animationDuration: 200ms;
8
+ }
9
+
10
+ .modal {
11
+ animation-fill-mode: both;
12
+ background: var(--skeleton-color-grey-1);
13
+ padding-inline-start: var(--skeleton-size-lg);
14
+ padding-inline-end: var(--skeleton-size-lg);
15
+ padding-block-start: var(--skeleton-size-lg);
16
+ padding-block-end: var(--skeleton-size-lg);
17
+ border-radius: var(--skeleton-border-radius-md);
18
+ box-shadow: var(--conduction-notification-pop-up-box-shadow);
19
+ }
20
+
21
+ .modal > *:not(:last-child) {
22
+ margin-block-end: var(--skeleton-size-md);
23
+ }
24
+
25
+ .buttons {
26
+ display: flex;
27
+ justify-content: flex-end;
28
+ align-items: center;
29
+ }
30
+
31
+ .buttons > *:not(:last-child) {
32
+ margin-inline-end: var(--skeleton-size-md);
33
+ }
34
+
35
+ .visible {
36
+ animation-name: fadeInBottom;
37
+ }
38
+
39
+ @keyframes fadeInBottom {
40
+ from {
41
+ opacity: 0;
42
+ transform: translateY(100%);
43
+ }
44
+ to {
45
+ opacity: 1;
46
+ }
47
+ }
48
+
49
+ .modal:not(.visible) {
50
+ animation-name: fadeOutBottom;
51
+ }
52
+
53
+ @keyframes fadeOutBottom {
54
+ from {
55
+ opacity: 1;
56
+ }
57
+ to {
58
+ opacity: 0;
59
+ transform: translateY(100%);
60
+ }
61
+ }
@@ -1,82 +1,82 @@
1
- import * as React from "react";
2
- import * as styles from "./NotificationPopUp.module.css";
3
- import ReactDOM from "react-dom";
4
- import { Button, Heading3, Link, Paragraph, StylesProvider } from "@gemeente-denhaag/components-react";
5
- import clsx from "clsx";
6
- import { CloseIcon, ArrowRightIcon } from "@gemeente-denhaag/icons";
7
-
8
- export interface NotificationPopUpProps {
9
- title: string;
10
- description: string | JSX.Element;
11
- isVisible: boolean;
12
- hide: () => void;
13
- primaryButton: {
14
- label: string;
15
- handleClick: () => any;
16
- };
17
- secondaryButton?: {
18
- label: string;
19
- handleClick: () => any;
20
- };
21
- layoutClassName?: string;
22
- }
23
-
24
- export const NotificationPopUp: React.FC<NotificationPopUpProps> = ({
25
- title,
26
- description,
27
- isVisible,
28
- hide,
29
- primaryButton,
30
- secondaryButton,
31
- layoutClassName,
32
- }) => {
33
- const [animationVisible, setAnimationVisible] = React.useState<boolean>(true);
34
-
35
- const animationDuration = parseInt(styles.animationDuration, 10);
36
-
37
- const handleClick = (clickFunction?: () => any) => {
38
- setAnimationVisible(!setAnimationVisible);
39
- clickFunction && clickFunction();
40
- setTimeout(() => {
41
- hide();
42
- setAnimationVisible(true);
43
- }, animationDuration);
44
- };
45
-
46
- const modal = (
47
- <StylesProvider>
48
- <div
49
- style={{ animationDuration: `${animationDuration}ms` }}
50
- className={clsx(styles.modal, animationVisible && styles.visible, layoutClassName)}
51
- >
52
- <Heading3>{title}</Heading3>
53
- <Paragraph>{description}</Paragraph>
54
- <div className={styles.buttons}>
55
- {secondaryButton && (
56
- <div onClick={() => handleClick(secondaryButton.handleClick)}>
57
- <Link icon={<CloseIcon />} iconAlign="start">
58
- {secondaryButton.label}
59
- </Link>
60
- </div>
61
- )}
62
- <Button icon={<ArrowRightIcon />} onClick={() => handleClick(primaryButton.handleClick)}>
63
- {primaryButton.label}
64
- </Button>
65
- </div>
66
- </div>
67
- </StylesProvider>
68
- );
69
-
70
- return isVisible ? ReactDOM.createPortal(modal, document.body) : null;
71
- };
72
-
73
- export const NotificationPopUpController = () => {
74
- const [isVisible, setIsVisible] = React.useState<boolean>(false);
75
- const show = () => setIsVisible(true);
76
- const hide = () => setIsVisible(false);
77
- return {
78
- isVisible,
79
- show,
80
- hide,
81
- };
82
- };
1
+ import * as React from "react";
2
+ import * as styles from "./NotificationPopUp.module.css";
3
+ import ReactDOM from "react-dom";
4
+ import { Button, Heading3, Link, Paragraph, StylesProvider } from "@gemeente-denhaag/components-react";
5
+ import clsx from "clsx";
6
+ import { CloseIcon, ArrowRightIcon } from "@gemeente-denhaag/icons";
7
+
8
+ export interface NotificationPopUpProps {
9
+ title: string;
10
+ description: string | JSX.Element;
11
+ isVisible: boolean;
12
+ hide: () => void;
13
+ primaryButton: {
14
+ label: string;
15
+ handleClick: () => any;
16
+ };
17
+ secondaryButton?: {
18
+ label: string;
19
+ handleClick: () => any;
20
+ };
21
+ layoutClassName?: string;
22
+ }
23
+
24
+ export const NotificationPopUp: React.FC<NotificationPopUpProps> = ({
25
+ title,
26
+ description,
27
+ isVisible,
28
+ hide,
29
+ primaryButton,
30
+ secondaryButton,
31
+ layoutClassName,
32
+ }) => {
33
+ const [animationVisible, setAnimationVisible] = React.useState<boolean>(true);
34
+
35
+ const animationDuration = parseInt(styles.animationDuration, 10);
36
+
37
+ const handleClick = (clickFunction?: () => any) => {
38
+ setAnimationVisible(!setAnimationVisible);
39
+ clickFunction && clickFunction();
40
+ setTimeout(() => {
41
+ hide();
42
+ setAnimationVisible(true);
43
+ }, animationDuration);
44
+ };
45
+
46
+ const modal = (
47
+ <StylesProvider>
48
+ <div
49
+ style={{ animationDuration: `${animationDuration}ms` }}
50
+ className={clsx(styles.modal, animationVisible && styles.visible, layoutClassName)}
51
+ >
52
+ <Heading3>{title}</Heading3>
53
+ <Paragraph>{description}</Paragraph>
54
+ <div className={styles.buttons}>
55
+ {secondaryButton && (
56
+ <div onClick={() => handleClick(secondaryButton.handleClick)}>
57
+ <Link icon={<CloseIcon />} iconAlign="start">
58
+ {secondaryButton.label}
59
+ </Link>
60
+ </div>
61
+ )}
62
+ <Button icon={<ArrowRightIcon />} onClick={() => handleClick(primaryButton.handleClick)}>
63
+ {primaryButton.label}
64
+ </Button>
65
+ </div>
66
+ </div>
67
+ </StylesProvider>
68
+ );
69
+
70
+ return isVisible ? ReactDOM.createPortal(modal, document.body) : null;
71
+ };
72
+
73
+ export const NotificationPopUpController = () => {
74
+ const [isVisible, setIsVisible] = React.useState<boolean>(false);
75
+ const show = () => setIsVisible(true);
76
+ const hide = () => setIsVisible(false);
77
+ return {
78
+ isVisible,
79
+ show,
80
+ hide,
81
+ };
82
+ };
@@ -1,15 +1,15 @@
1
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
- import React from "react";
3
- import { navigate } from "gatsby";
4
- export const PrivateRoute = ({ children, isLoggedIn }) => {
5
- const [authenticated, setAuthenticated] = React.useState(false);
6
- React.useEffect(() => {
7
- if (!isLoggedIn && window.location.pathname !== "/login") {
8
- navigate("/login");
9
- }
10
- isLoggedIn && setAuthenticated(true);
11
- }, [isLoggedIn]);
12
- if (!authenticated)
13
- return _jsx(_Fragment, {});
14
- return _jsx(_Fragment, { children: children });
15
- };
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { navigate } from "gatsby";
4
+ export const PrivateRoute = ({ children, isLoggedIn }) => {
5
+ const [authenticated, setAuthenticated] = React.useState(false);
6
+ React.useEffect(() => {
7
+ if (!isLoggedIn && window.location.pathname !== "/login") {
8
+ navigate("/login");
9
+ }
10
+ isLoggedIn && setAuthenticated(true);
11
+ }, [isLoggedIn]);
12
+ if (!authenticated)
13
+ return _jsx(_Fragment, {});
14
+ return _jsx(_Fragment, { children: children });
15
+ };
@@ -1,22 +1,22 @@
1
- import React from "react";
2
- import { navigate } from "gatsby";
3
-
4
- interface PrivateRouteProps {
5
- authenticated: boolean;
6
- }
7
-
8
- export const PrivateRoute: React.FC<PrivateRouteProps> = ({ children, authenticated }) => {
9
- const [_authenticated, setAuthenticated] = React.useState<boolean>(false);
10
-
11
- React.useEffect(() => {
12
- if (!authenticated && window.location.pathname !== "/login") {
13
- navigate("/login");
14
- }
15
-
16
- authenticated && setAuthenticated(true);
17
- }, [authenticated]);
18
-
19
- if (!_authenticated) return <></>;
20
-
21
- return <>{children}</>;
22
- };
1
+ import React from "react";
2
+ import { navigate } from "gatsby";
3
+
4
+ interface PrivateRouteProps {
5
+ authenticated: boolean;
6
+ }
7
+
8
+ export const PrivateRoute: React.FC<PrivateRouteProps> = ({ children, authenticated }) => {
9
+ const [_authenticated, setAuthenticated] = React.useState<boolean>(false);
10
+
11
+ React.useEffect(() => {
12
+ if (!authenticated && window.location.pathname !== "/login") {
13
+ navigate("/login");
14
+ }
15
+
16
+ authenticated && setAuthenticated(true);
17
+ }, [authenticated]);
18
+
19
+ if (!_authenticated) return <></>;
20
+
21
+ return <>{children}</>;
22
+ };
@@ -1,12 +1,12 @@
1
- :root {
2
- --conduction-quote-wrapper-border-width: var(--skeleton-size-sm);
3
- --conduction-quote-wrapper-border-color: var(--skeleton-color-grey-1);
4
- --conduction-quote-wrapper-padding-inline: var(--skeleton-size-lg);
5
- }
6
-
7
- .container {
8
- border-left-width: var(--conduction-quote-wrapper-border-width);
9
- border-left-style: solid;
10
- border-left-color: var(--conduction-quote-wrapper-border-color);
11
- padding-inline-start: var(--conduction-quote-wrapper-padding-inline);
12
- }
1
+ :root {
2
+ --conduction-quote-wrapper-border-width: var(--skeleton-size-sm);
3
+ --conduction-quote-wrapper-border-color: var(--skeleton-color-grey-1);
4
+ --conduction-quote-wrapper-padding-inline: var(--skeleton-size-lg);
5
+ }
6
+
7
+ .container {
8
+ border-left-width: var(--conduction-quote-wrapper-border-width);
9
+ border-left-style: solid;
10
+ border-left-color: var(--conduction-quote-wrapper-border-color);
11
+ padding-inline-start: var(--conduction-quote-wrapper-padding-inline);
12
+ }
@@ -1,15 +1,15 @@
1
- import * as React from "react";
2
- import * as styles from "./QuoteWrapper.module.css";
3
-
4
- interface QuoteWrapperProps {
5
- borderColor?: string;
6
- borderWidth?: string;
7
- }
8
-
9
- export const QuoteWrapper: React.FC<QuoteWrapperProps> = ({ children, borderColor, borderWidth }) => {
10
- return (
11
- <div style={{ borderLeftColor: borderColor, borderLeftWidth: borderWidth }} className={styles.container}>
12
- {children}
13
- </div>
14
- );
15
- };
1
+ import * as React from "react";
2
+ import * as styles from "./QuoteWrapper.module.css";
3
+
4
+ interface QuoteWrapperProps {
5
+ borderColor?: string;
6
+ borderWidth?: string;
7
+ }
8
+
9
+ export const QuoteWrapper: React.FC<QuoteWrapperProps> = ({ children, borderColor, borderWidth }) => {
10
+ return (
11
+ <div style={{ borderLeftColor: borderColor, borderLeftWidth: borderWidth }} className={styles.container}>
12
+ {children}
13
+ </div>
14
+ );
15
+ };
@@ -1,5 +1,5 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Step, StepExpandedIcon, StepHeader, StepHeading, StepList, StepMarker, StepSection, SubStep, SubStepHeading, SubStepList, SubStepMarker, } from "@gemeente-denhaag/process-steps";
3
- export const StatusSteps = ({ steps }) => {
4
- return (_jsx(StepList, { children: steps.map(({ title, checked, current, expanded, subSteps }, idx) => (_jsxs(Step, { ...{ checked, current, expanded }, children: [_jsx(StepSection, { children: _jsxs(StepHeader, { children: [_jsx(StepMarker, { children: idx + 1 }), _jsx(StepHeading, { children: title }), subSteps && _jsx(StepExpandedIcon, {})] }) }), subSteps && (_jsx(SubStepList, { children: subSteps.map((subStep) => (_jsxs(SubStep, { children: [_jsx(SubStepMarker, {}), _jsx(SubStepHeading, { children: subStep })] }, idx))) }))] }, idx))) }));
5
- };
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Step, StepExpandedIcon, StepHeader, StepHeading, StepList, StepMarker, StepSection, SubStep, SubStepHeading, SubStepList, SubStepMarker, } from "@gemeente-denhaag/process-steps";
3
+ export const StatusSteps = ({ steps }) => {
4
+ return (_jsx(StepList, { children: steps.map(({ title, checked, current, expanded, subSteps }, idx) => (_jsxs(Step, { ...{ checked, current, expanded }, children: [_jsx(StepSection, { children: _jsxs(StepHeader, { children: [_jsx(StepMarker, { children: idx + 1 }), _jsx(StepHeading, { children: title }), subSteps && _jsx(StepExpandedIcon, {})] }) }), subSteps && (_jsx(SubStepList, { children: subSteps.map((subStep) => (_jsxs(SubStep, { children: [_jsx(SubStepMarker, {}), _jsx(SubStepHeading, { children: subStep })] }, idx))) }))] }, idx))) }));
5
+ };