@conduction/components 1.0.23 → 1.0.27

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.
@@ -22,6 +22,10 @@
22
22
  padding-block-start: var(--nlportal-space-block-lg);
23
23
  padding-block-end: var(--nlportal-space-block-lg);
24
24
  border: var(--nlportal-document-border, 1px solid);
25
+ height: calc(
26
+ 100% - var(--conduction-image-and-details-card-image-height) -
27
+ var(--nlportal-space-block-lg) - var(--nlportal-space-block-lg) - 2px
28
+ ); /* height = 100% - imageHeight - padding - border */
25
29
  }
26
30
 
27
31
  .content > *:not(:last-child) {
@@ -51,4 +55,5 @@
51
55
  .link {
52
56
  display: flex;
53
57
  justify-content: flex-end;
58
+ margin-block-start: auto;
54
59
  }
@@ -69,3 +69,7 @@
69
69
  .secondary .li:hover {
70
70
  background-color: var(--conduction-top-nav-background-color-secondary-hover);
71
71
  }
72
+
73
+ .secondary .link a {
74
+ text-decoration: none;
75
+ }
@@ -0,0 +1,3 @@
1
+ import { PrimaryTopNav } from "./primaryTopNav/PrimaryTopNav";
2
+ import { SecondaryTopNav } from "./secondaryTopNav/SecondaryTopNav";
3
+ export { PrimaryTopNav, SecondaryTopNav };
@@ -0,0 +1,3 @@
1
+ import { PrimaryTopNav } from "./primaryTopNav/PrimaryTopNav";
2
+ import { SecondaryTopNav } from "./secondaryTopNav/SecondaryTopNav";
3
+ export { PrimaryTopNav, SecondaryTopNav };
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ interface ITopNavItem {
3
+ label: string;
4
+ icon?: JSX.Element;
5
+ handleClick?: () => any;
6
+ subItems?: {
7
+ label: string;
8
+ icon?: JSX.Element;
9
+ handleClick?: () => any;
10
+ }[];
11
+ }
12
+ export interface TopNavProps {
13
+ items: ITopNavItem[];
14
+ layoutClassName?: string;
15
+ }
16
+ export declare const PrimaryTopNav: React.FC<TopNavProps>;
17
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Link } from "@gemeente-denhaag/components-react";
3
+ import * as styles from "./PrimaryTopNav.module.css";
4
+ import clsx from "clsx";
5
+ export const PrimaryTopNav = ({ items, layoutClassName }) => {
6
+ return (_jsx("div", { className: clsx(styles.primary, layoutClassName && layoutClassName), children: _jsx("nav", { className: styles.primary, children: _jsx("ul", { className: styles.ul, children: items.map(({ label, icon, handleClick, subItems }, idx) => (_jsxs("li", { className: styles.li, children: [_jsx("div", { onClick: handleClick, children: _jsx(Link, { className: styles.link, icon: icon, iconAlign: "start", children: label }) }), subItems && (_jsx("ul", { className: styles.dropdown, children: subItems.map(({ label, icon, handleClick }, idx) => (_jsx("li", { className: styles.li, onClick: handleClick, children: _jsx(Link, { className: styles.link, icon: icon, iconAlign: "start", children: label }) }, idx))) }))] }, idx))) }) }) }));
7
+ };
@@ -0,0 +1,59 @@
1
+ :root {
2
+ --conduction-top-nav-space-inline-lg: 1.25rem;
3
+
4
+ --conduction-top-nav-color-primary: #ffffff;
5
+ --conduction-top-nav-background-color-primary: #0b71a1;
6
+ --conduction-top-nav-background-color-primary-hover: rgba(255, 255, 255, 0.2);
7
+ }
8
+
9
+ .primary:hover {
10
+ cursor: pointer;
11
+ }
12
+
13
+ .ul {
14
+ margin: unset;
15
+ display: flex;
16
+ padding-inline-start: unset;
17
+ align-items: center;
18
+ }
19
+
20
+ .li {
21
+ list-style-type: none;
22
+ display: block;
23
+ position: relative;
24
+ }
25
+
26
+ .primary {
27
+ font-weight: 500;
28
+ width: fit-content;
29
+ background-color: var(--conduction-top-nav-background-color-primary);
30
+ }
31
+
32
+ .primary .link {
33
+ display: block;
34
+ color: var(--conduction-top-nav-color-primary);
35
+ padding-inline-start: var(--conduction-top-nav-space-inline-lg);
36
+ padding-inline-end: var(--conduction-top-nav-space-inline-lg);
37
+ padding-block-start: var(--conduction-top-nav-space-inline-lg);
38
+ padding-block-end: var(--conduction-top-nav-space-inline-lg);
39
+ }
40
+
41
+ .primary .li:hover {
42
+ background-color: var(--conduction-top-nav-background-color-primary-hover);
43
+ }
44
+
45
+ .primary .li:hover .dropdown {
46
+ display: block;
47
+ }
48
+
49
+ .dropdown {
50
+ left: 0;
51
+ padding: 0;
52
+ width: 100%;
53
+ display: none;
54
+ position: absolute;
55
+ list-style-type: none;
56
+ background-color: var(--conduction-top-nav-background-color-primary);
57
+ border-bottom-right-radius: var(--nlportal-border-radius);
58
+ border-bottom-left-radius: var(--nlportal-border-radius);
59
+ }
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ interface TopNavProps {
3
+ items: {
4
+ label: string;
5
+ icon?: JSX.Element;
6
+ handleClick: () => any;
7
+ }[];
8
+ layoutClassName?: string;
9
+ }
10
+ export declare const SecondaryTopNav: React.FC<TopNavProps>;
11
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./SecondaryTopnav.module.css";
3
+ import { Link } from "@gemeente-denhaag/components-react";
4
+ import clsx from "clsx";
5
+ export const SecondaryTopNav = ({ items, layoutClassName }) => {
6
+ return (_jsx("div", { className: clsx(styles.secondary, layoutClassName && layoutClassName), children: _jsx("nav", { children: _jsx("ul", { className: styles.ul, children: items.map(({ label, icon, handleClick }, idx) => (_jsx("li", { className: styles.li, onClick: handleClick, children: _jsx(Link, { className: styles.link, icon: icon, iconAlign: "start", children: label }) }, idx))) }) }) }));
7
+ };
@@ -1,20 +1,12 @@
1
1
  :root {
2
2
  --conduction-top-nav-space-inline-lg: 1.25rem;
3
3
 
4
- --conduction-top-nav-color-primary: #ffffff;
5
- --conduction-top-nav-background-color-primary: #0b71a1;
6
- --conduction-top-nav-background-color-primary-hover: rgba(255, 255, 255, 0.2);
7
-
8
4
  --conduction-top-nav-font-size-secondary: 16px;
9
5
  --conduction-top-nav-color-secondary: #ffffff;
10
6
  --conduction-top-nav-background-color-secondary: #084f70;
11
7
  --conduction-top-nav-background-color-secondary-hover: rgba(0, 0, 0, 0.2);
12
8
  }
13
9
 
14
- /*
15
- * Global
16
- */
17
- .primary:hover,
18
10
  .secondary:hover {
19
11
  cursor: pointer;
20
12
  }
@@ -35,26 +27,6 @@
35
27
  padding-block-end: var(--conduction-top-nav-space-inline-lg);
36
28
  }
37
29
 
38
- /*
39
- * Primary Top Navigation
40
- */
41
- .primary {
42
- font-weight: 500;
43
- width: fit-content;
44
- background-color: var(--conduction-top-nav-background-color-primary);
45
- }
46
-
47
- .primary .link {
48
- color: var(--conduction-top-nav-color-primary);
49
- }
50
-
51
- .primary .li:hover {
52
- background-color: var(--conduction-top-nav-background-color-primary-hover);
53
- }
54
-
55
- /*
56
- * Secondary Top Navigation
57
- */
58
30
  .secondary {
59
31
  font-weight: 100;
60
32
  width: fit-content;
package/lib/index.d.ts CHANGED
@@ -9,7 +9,7 @@ import { AuthenticatedLogo, UnauthenticatedLogo } from "./components/logo/Logo";
9
9
  import { MetaIcon } from "./components/metaIcon/MetaIcon";
10
10
  import { PrivateRoute } from "./components/privateRoute/PrivateRoute";
11
11
  import { StatusSteps } from "./components/statusSteps/StatusSteps";
12
- import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav/TopNav";
12
+ import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav";
13
13
  import { Tag } from "./components/tag/Tag";
14
14
  declare const NotificationPopUp: {
15
15
  controller: () => {
package/lib/index.js CHANGED
@@ -8,7 +8,7 @@ import { AuthenticatedLogo, UnauthenticatedLogo } from "./components/logo/Logo";
8
8
  import { MetaIcon } from "./components/metaIcon/MetaIcon";
9
9
  import { PrivateRoute } from "./components/privateRoute/PrivateRoute";
10
10
  import { StatusSteps } from "./components/statusSteps/StatusSteps";
11
- import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav/TopNav";
11
+ import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav";
12
12
  import { Tag } from "./components/tag/Tag";
13
13
  import { NotificationPopUpController, NotificationPopUp as _NotificationPopUp, } from "./components/notificationPopUp/NotificationPopUp";
14
14
  const NotificationPopUp = { controller: NotificationPopUpController, NotificationPopUp: _NotificationPopUp };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@conduction/components",
3
- "version": "1.0.23",
3
+ "version": "1.0.27",
4
4
  "description": "React (Gatsby) components used within the Conduction Skeleton Application (and its implementations)",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -22,6 +22,10 @@
22
22
  padding-block-start: var(--nlportal-space-block-lg);
23
23
  padding-block-end: var(--nlportal-space-block-lg);
24
24
  border: var(--nlportal-document-border, 1px solid);
25
+ height: calc(
26
+ 100% - var(--conduction-image-and-details-card-image-height) -
27
+ var(--nlportal-space-block-lg) - var(--nlportal-space-block-lg) - 2px
28
+ ); /* height = 100% - imageHeight - padding - border */
25
29
  }
26
30
 
27
31
  .content > *:not(:last-child) {
@@ -51,4 +55,5 @@
51
55
  .link {
52
56
  display: flex;
53
57
  justify-content: flex-end;
58
+ margin-block-start: auto;
54
59
  }
@@ -0,0 +1,4 @@
1
+ import { PrimaryTopNav } from "./primaryTopNav/PrimaryTopNav";
2
+ import { SecondaryTopNav } from "./secondaryTopNav/SecondaryTopNav";
3
+
4
+ export { PrimaryTopNav, SecondaryTopNav };
@@ -0,0 +1,59 @@
1
+ :root {
2
+ --conduction-top-nav-space-inline-lg: 1.25rem;
3
+
4
+ --conduction-top-nav-color-primary: #ffffff;
5
+ --conduction-top-nav-background-color-primary: #0b71a1;
6
+ --conduction-top-nav-background-color-primary-hover: rgba(255, 255, 255, 0.2);
7
+ }
8
+
9
+ .primary:hover {
10
+ cursor: pointer;
11
+ }
12
+
13
+ .ul {
14
+ margin: unset;
15
+ display: flex;
16
+ padding-inline-start: unset;
17
+ align-items: center;
18
+ }
19
+
20
+ .li {
21
+ list-style-type: none;
22
+ display: block;
23
+ position: relative;
24
+ }
25
+
26
+ .primary {
27
+ font-weight: 500;
28
+ width: fit-content;
29
+ background-color: var(--conduction-top-nav-background-color-primary);
30
+ }
31
+
32
+ .primary .link {
33
+ display: block;
34
+ color: var(--conduction-top-nav-color-primary);
35
+ padding-inline-start: var(--conduction-top-nav-space-inline-lg);
36
+ padding-inline-end: var(--conduction-top-nav-space-inline-lg);
37
+ padding-block-start: var(--conduction-top-nav-space-inline-lg);
38
+ padding-block-end: var(--conduction-top-nav-space-inline-lg);
39
+ }
40
+
41
+ .primary .li:hover {
42
+ background-color: var(--conduction-top-nav-background-color-primary-hover);
43
+ }
44
+
45
+ .primary .li:hover .dropdown {
46
+ display: block;
47
+ }
48
+
49
+ .dropdown {
50
+ left: 0;
51
+ padding: 0;
52
+ width: 100%;
53
+ display: none;
54
+ position: absolute;
55
+ list-style-type: none;
56
+ background-color: var(--conduction-top-nav-background-color-primary);
57
+ border-bottom-right-radius: var(--nlportal-border-radius);
58
+ border-bottom-left-radius: var(--nlportal-border-radius);
59
+ }
@@ -0,0 +1,52 @@
1
+ import * as React from "react";
2
+ import { Link } from "@gemeente-denhaag/components-react";
3
+ import * as styles from "./PrimaryTopNav.module.css";
4
+ import clsx from "clsx";
5
+
6
+ interface ITopNavItem {
7
+ label: string;
8
+ icon?: JSX.Element;
9
+ handleClick?: () => any;
10
+ subItems?: {
11
+ label: string;
12
+ icon?: JSX.Element;
13
+ handleClick?: () => any;
14
+ }[];
15
+ }
16
+
17
+ export interface TopNavProps {
18
+ items: ITopNavItem[];
19
+ layoutClassName?: string;
20
+ }
21
+
22
+ export const PrimaryTopNav: React.FC<TopNavProps> = ({ items, layoutClassName }) => {
23
+ return (
24
+ <div className={clsx(styles.primary, layoutClassName && layoutClassName)}>
25
+ <nav className={styles.primary}>
26
+ <ul className={styles.ul}>
27
+ {items.map(({ label, icon, handleClick, subItems }, idx) => (
28
+ <li className={styles.li} key={idx}>
29
+ <div onClick={handleClick}>
30
+ <Link className={styles.link} icon={icon} iconAlign="start">
31
+ {label}
32
+ </Link>
33
+ </div>
34
+
35
+ {subItems && (
36
+ <ul className={styles.dropdown}>
37
+ {subItems.map(({ label, icon, handleClick }, idx) => (
38
+ <li key={idx} className={styles.li} onClick={handleClick}>
39
+ <Link className={styles.link} icon={icon} iconAlign="start">
40
+ {label}
41
+ </Link>
42
+ </li>
43
+ ))}
44
+ </ul>
45
+ )}
46
+ </li>
47
+ ))}
48
+ </ul>
49
+ </nav>
50
+ </div>
51
+ );
52
+ };
@@ -0,0 +1,43 @@
1
+ :root {
2
+ --conduction-top-nav-space-inline-lg: 1.25rem;
3
+
4
+ --conduction-top-nav-font-size-secondary: 16px;
5
+ --conduction-top-nav-color-secondary: #ffffff;
6
+ --conduction-top-nav-background-color-secondary: #084f70;
7
+ --conduction-top-nav-background-color-secondary-hover: rgba(0, 0, 0, 0.2);
8
+ }
9
+
10
+ .secondary:hover {
11
+ cursor: pointer;
12
+ }
13
+
14
+ .ul {
15
+ margin: unset;
16
+ display: flex;
17
+ padding-inline-start: unset;
18
+ align-items: center;
19
+ }
20
+
21
+ .li {
22
+ list-style-type: none;
23
+ display: block;
24
+ padding-inline-start: var(--conduction-top-nav-space-inline-lg);
25
+ padding-inline-end: var(--conduction-top-nav-space-inline-lg);
26
+ padding-block-start: var(--conduction-top-nav-space-inline-lg);
27
+ padding-block-end: var(--conduction-top-nav-space-inline-lg);
28
+ }
29
+
30
+ .secondary {
31
+ font-weight: 100;
32
+ width: fit-content;
33
+ font-size: var(--conduction-top-nav-font-size-secondary);
34
+ background-color: var(--conduction-top-nav-background-color-secondary);
35
+ }
36
+
37
+ .secondary .link {
38
+ color: var(--conduction-top-nav-color-secondary);
39
+ }
40
+
41
+ .secondary .li:hover {
42
+ background-color: var(--conduction-top-nav-background-color-secondary-hover);
43
+ }
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
+ import * as styles from "./SecondaryTopnav.module.css";
2
3
  import { Link } from "@gemeente-denhaag/components-react";
3
- import * as styles from "./TopNav.module.css";
4
4
  import clsx from "clsx";
5
5
 
6
6
  interface TopNavProps {
@@ -8,24 +8,6 @@ interface TopNavProps {
8
8
  layoutClassName?: string;
9
9
  }
10
10
 
11
- export const PrimaryTopNav: React.FC<TopNavProps> = ({ items, layoutClassName }) => {
12
- return (
13
- <div className={clsx(styles.primary, layoutClassName && layoutClassName)}>
14
- <nav className={styles.primary}>
15
- <ul className={styles.ul}>
16
- {items.map(({ label, icon, handleClick }, idx) => (
17
- <li className={styles.li} key={idx} onClick={handleClick}>
18
- <Link className={styles.link} icon={icon} iconAlign="start">
19
- {label}
20
- </Link>
21
- </li>
22
- ))}
23
- </ul>
24
- </nav>
25
- </div>
26
- );
27
- };
28
-
29
11
  export const SecondaryTopNav: React.FC<TopNavProps> = ({ items, layoutClassName }) => {
30
12
  return (
31
13
  <div className={clsx(styles.secondary, layoutClassName && layoutClassName)}>
package/src/index.ts CHANGED
@@ -27,7 +27,7 @@ import { AuthenticatedLogo, UnauthenticatedLogo } from "./components/logo/Logo";
27
27
  import { MetaIcon } from "./components/metaIcon/MetaIcon";
28
28
  import { PrivateRoute } from "./components/privateRoute/PrivateRoute";
29
29
  import { StatusSteps } from "./components/statusSteps/StatusSteps";
30
- import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav/TopNav";
30
+ import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav";
31
31
  import { Tag } from "./components/tag/Tag";
32
32
  import {
33
33
  NotificationPopUpController,
@@ -1,10 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as styles from "./TopNav.module.css";
3
- import { Link } from "@gemeente-denhaag/components-react";
4
- import { navigate } from "gatsby";
5
- export const PrimaryTopNav = ({ items }) => {
6
- return (_jsx("nav", { className: styles.primary, children: _jsx("ul", { className: styles.ul, children: items.map(({ label, href, icon }, idx) => (_jsx("li", { className: styles.li, onClick: () => navigate(href), children: _jsx(Link, { icon: icon, iconAlign: "start", children: label }) }, idx))) }) }));
7
- };
8
- export const SecondaryTopNav = ({ items }) => {
9
- return (_jsx("nav", { className: styles.secondary, children: _jsx("ul", { className: styles.ul, children: items.map(({ label, href, icon }, idx) => (_jsx("li", { className: styles.li, onClick: () => navigate(href), children: _jsx(Link, { icon: icon, iconAlign: "start", children: label }) }, idx))) }) }));
10
- };