@developer-overheid-nl/don-register-components 1.0.0 → 1.1.0

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 (64) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/LICENSE.md +291 -291
  3. package/README.md +20 -20
  4. package/package.json +10 -7
  5. package/src/alert/Alert.tsx +19 -19
  6. package/src/alert/styles.module.css +3 -3
  7. package/src/alignBox/AlignBox.tsx +111 -110
  8. package/src/alignBox/styles.module.css +106 -106
  9. package/src/analytics/PiwikPro.tsx +72 -0
  10. package/src/analytics/index.ts +1 -0
  11. package/src/article/Article.tsx +10 -10
  12. package/src/block/Block.tsx +35 -35
  13. package/src/block/styles.module.css +29 -29
  14. package/src/button/Button.tsx +3 -3
  15. package/src/cardAsLink/CardAsLink.tsx +21 -21
  16. package/src/cardAsLink/styles.module.css +23 -23
  17. package/src/cardsList/CardsList.tsx +54 -54
  18. package/src/cardsList/styles.module.css +19 -19
  19. package/src/client.ts +2 -2
  20. package/src/container/Container.tsx +10 -10
  21. package/src/container/styles.module.css +28 -28
  22. package/src/copyButton/CopyButton.tsx +39 -39
  23. package/src/copyButton/styles.module.css +13 -13
  24. package/src/dataBadgeLink/DataBadgeLink.tsx +50 -50
  25. package/src/dataBadgeLink/styles.module.css +43 -43
  26. package/src/dataSummary/DataSummary.tsx +22 -22
  27. package/src/dataSummary/DataSummaryItem.tsx +21 -21
  28. package/src/dataSummary/styles.module.css +70 -70
  29. package/src/fieldset/FieldSet.tsx +3 -3
  30. package/src/filters/Filters.tsx +115 -115
  31. package/src/filters/styles.module.css +26 -26
  32. package/src/footer/Footer.tsx +76 -76
  33. package/src/footer/styles.module.css +103 -103
  34. package/src/formFieldLabel/FormFieldLabel.tsx +23 -23
  35. package/src/formFieldTextInput/FormFieldTextInput.tsx +3 -3
  36. package/src/header/Header.tsx +137 -137
  37. package/src/header/styles.module.css +71 -71
  38. package/src/heading/Heading.tsx +10 -10
  39. package/src/headingGroup/HeadingGroup.tsx +48 -48
  40. package/src/headingGroup/styles.module.css +3 -3
  41. package/src/i18n.ts +25 -24
  42. package/src/iconBadge/IconBadge.tsx +32 -32
  43. package/src/iconBadge/getAppearance.ts +47 -47
  44. package/src/iconBadge/styles.module.css +19 -19
  45. package/src/iconsSprite/Icon.tsx +17 -17
  46. package/src/iconsSprite/IconsSprite.tsx +5 -5
  47. package/src/index.ts +80 -80
  48. package/src/link/Link.tsx +10 -10
  49. package/src/markdown/Markdown.tsx +42 -42
  50. package/src/pagination/Pagination.tsx +144 -144
  51. package/src/pagination/styles.module.css +13 -13
  52. package/src/paragraph/Paragraph.tsx +10 -10
  53. package/src/pillBadge/PillBadge.examples.tsx +107 -107
  54. package/src/pillBadge/PillBadge.tsx +51 -51
  55. package/src/pillBadge/styles.module.css +194 -194
  56. package/src/readOnlyTextInput/ReadOnlyTextInput.tsx +24 -24
  57. package/src/readOnlyTextInput/styles.module.css +19 -19
  58. package/src/scoreBadge/ScoreBadge.tsx +132 -132
  59. package/src/search/Search.tsx +66 -66
  60. package/src/search/styles.module.css +39 -39
  61. package/src/siteLogo/SiteLogo.tsx +24 -24
  62. package/src/topNavigation/TopNavigation.tsx +67 -64
  63. package/src/topNavigation/styles.module.css +54 -54
  64. package/tsconfig.json +121 -121
@@ -1,76 +1,76 @@
1
- import {
2
- LinkList,
3
- LinkListLink,
4
- Footer as RHCFooter,
5
- } from "@rijkshuisstijl-community/components-react";
6
- import clsx from "clsx";
7
- import { type PropsWithChildren, useId } from "react";
8
- import Heading from "../heading/Heading";
9
- import Markdown from "../markdown/Markdown";
10
- import {
11
- type NavBarItem,
12
- processNavBarItems,
13
- } from "../topNavigation/TopNavigation";
14
- import styles from "./styles.module.css";
15
-
16
- export interface ColumnProps {
17
- title: string;
18
- items?: NavBarItem[];
19
- text?: string;
20
- }
21
-
22
- export interface FooterProps extends React.HTMLAttributes<HTMLElement> {
23
- className?: string;
24
- columns?: ColumnProps[];
25
- }
26
-
27
- // TODO: refactor icons together with TopNavigation
28
- const FooterColumns = (props: ColumnProps) => {
29
- const id = useId();
30
- const { title, items, text } = props;
31
- const processedItems = items && processNavBarItems(items);
32
-
33
- return (
34
- <nav className={styles.column} aria-describedby={id}>
35
- <Heading level={2} appearanceLevel={5} id={id}>
36
- {title}
37
- </Heading>
38
- {text && <Markdown>{text}</Markdown>}
39
- {processedItems && (
40
- <LinkList>
41
- {processedItems.map((item, index) => (
42
- <LinkListLink
43
- key={item.id || index}
44
- href={item.href}
45
- icon={item.icon}
46
- >
47
- {item.label}
48
- </LinkListLink>
49
- ))}
50
- </LinkList>
51
- )}
52
- </nav>
53
- );
54
- };
55
-
56
- const Footer = (props: PropsWithChildren<FooterProps>) => {
57
- const { className, columns, ...restProps } = props;
58
- const columnsClass = `numColumns${Math.min(Number(columns?.length), 4)}`;
59
-
60
- return (
61
- <RHCFooter
62
- className={clsx(className, styles.footer, styles[columnsClass])}
63
- background="primary-outlined"
64
- preFooter
65
- {...restProps}
66
- >
67
- {columns &&
68
- columns.length > 0 &&
69
- columns.map((column, index) => (
70
- <FooterColumns key={column.title || index} {...column} />
71
- ))}
72
- </RHCFooter>
73
- );
74
- };
75
-
76
- export default Footer;
1
+ import {
2
+ LinkList,
3
+ LinkListLink,
4
+ Footer as RHCFooter,
5
+ } from "@rijkshuisstijl-community/components-react";
6
+ import clsx from "clsx";
7
+ import { type PropsWithChildren, useId } from "react";
8
+ import Heading from "../heading/Heading";
9
+ import Markdown from "../markdown/Markdown";
10
+ import {
11
+ type NavBarItem,
12
+ processNavBarItems,
13
+ } from "../topNavigation/TopNavigation";
14
+ import styles from "./styles.module.css";
15
+
16
+ export interface ColumnProps {
17
+ title: string;
18
+ items?: NavBarItem[];
19
+ text?: string;
20
+ }
21
+
22
+ export interface FooterProps extends React.HTMLAttributes<HTMLElement> {
23
+ className?: string;
24
+ columns?: ColumnProps[];
25
+ }
26
+
27
+ // TODO: refactor icons together with TopNavigation
28
+ const FooterColumns = (props: ColumnProps) => {
29
+ const id = useId();
30
+ const { title, items, text } = props;
31
+ const processedItems = items && processNavBarItems(items);
32
+
33
+ return (
34
+ <nav className={styles.column} aria-describedby={id}>
35
+ <Heading level={2} appearanceLevel={5} id={id}>
36
+ {title}
37
+ </Heading>
38
+ {text && <Markdown>{text}</Markdown>}
39
+ {processedItems && (
40
+ <LinkList>
41
+ {processedItems.map((item, index) => (
42
+ <LinkListLink
43
+ key={item.id || index}
44
+ href={item.href}
45
+ icon={item.icon}
46
+ >
47
+ {item.label}
48
+ </LinkListLink>
49
+ ))}
50
+ </LinkList>
51
+ )}
52
+ </nav>
53
+ );
54
+ };
55
+
56
+ const Footer = (props: PropsWithChildren<FooterProps>) => {
57
+ const { className, columns, ...restProps } = props;
58
+ const columnsClass = `numColumns${Math.min(Number(columns?.length), 4)}`;
59
+
60
+ return (
61
+ <RHCFooter
62
+ className={clsx(className, styles.footer, styles[columnsClass])}
63
+ background="primary-outlined"
64
+ preFooter
65
+ {...restProps}
66
+ >
67
+ {columns &&
68
+ columns.length > 0 &&
69
+ columns.map((column, index) => (
70
+ <FooterColumns key={column.title || index} {...column} />
71
+ ))}
72
+ </RHCFooter>
73
+ );
74
+ };
75
+
76
+ export default Footer;
@@ -1,103 +1,103 @@
1
- .footer {
2
- --utrecht-page-footer-padding-block-end: 2rem;
3
- --utrecht-page-footer-padding-block-start: 1rem;
4
- --utrecht-page-footer-padding-inline-end: var(
5
- --rhc-nav-bar-link-padding-inline-end
6
- );
7
- --utrecht-page-footer-padding-inline-start: var(
8
- --rhc-nav-bar-link-padding-inline-start
9
- );
10
- --rhc-page-footer-outlined-color: #154273;
11
- --rhc-page-footer-outlined-border-color: var(--rhc-nav-bar-border-color);
12
- --rhc-page-footer-border-block-start-width: var(
13
- --rhc-nav-bar-border-block-end-width
14
- );
15
- }
16
-
17
- .footer {
18
- :global(.utrecht-column-layout) {
19
- display: flex;
20
- justify-content: space-between;
21
- inline-size: 100%;
22
-
23
- > * {
24
- flex-grow: 0;
25
- flex-shrink: 0;
26
- }
27
- }
28
-
29
- &.numColumns,
30
- &.numColumns1 {
31
- :global(.utrecht-column-layout) {
32
- row-gap: 0.5rem;
33
-
34
- > * {
35
- flex-basis: 100%;
36
- }
37
- }
38
- }
39
-
40
- &.numColumns2 {
41
- :global(.utrecht-column-layout) {
42
- > * {
43
- flex-basis: calc(50% - var(--utrecht-column-layout-gap, 2em));
44
- }
45
- }
46
- }
47
-
48
- &.numColumns3 {
49
- :global(.utrecht-column-layout) {
50
- > * {
51
- flex-basis: calc(33.333% - var(--utrecht-column-layout-gap, 2em));
52
- }
53
- }
54
- }
55
- &.numColumns4 {
56
- :global(.utrecht-column-layout) {
57
- flex-wrap: wrap;
58
-
59
- > * {
60
- flex-basis: calc(25% - var(--utrecht-column-layout-gap, 2em));
61
- }
62
- }
63
- }
64
-
65
- :global(.utrecht-link-list__link) {
66
- align-items: center;
67
- :global(.don-icon-externe-link-inline) {
68
- order: 1;
69
- }
70
- }
71
- }
72
-
73
- @media (--xs-and-below-viewport) {
74
- .footer.footer {
75
- :global(.utrecht-column-layout) {
76
- row-gap: 0.5rem;
77
-
78
- > * {
79
- flex-basis: calc(50% - var(--utrecht-column-layout-gap, 2em));
80
- }
81
- }
82
- }
83
- }
84
-
85
- @media (--xxs-and-below-viewport) {
86
- .footer.footer {
87
- :global(.utrecht-column-layout) {
88
- row-gap: 0.5rem;
89
-
90
- > * {
91
- flex-basis: 100%;
92
- }
93
- }
94
- }
95
- }
96
-
97
- :global(.rhc-page-prefooter.rhc-page-prefooter) {
98
- margin-block-start: 2rem;
99
-
100
- &:before {
101
- background-color: var(--rhc-nav-bar-border-color);
102
- }
103
- }
1
+ .footer {
2
+ --utrecht-page-footer-padding-block-end: 2rem;
3
+ --utrecht-page-footer-padding-block-start: 1rem;
4
+ --utrecht-page-footer-padding-inline-end: var(
5
+ --rhc-nav-bar-link-padding-inline-end
6
+ );
7
+ --utrecht-page-footer-padding-inline-start: var(
8
+ --rhc-nav-bar-link-padding-inline-start
9
+ );
10
+ --rhc-page-footer-outlined-color: #154273;
11
+ --rhc-page-footer-outlined-border-color: var(--rhc-nav-bar-border-color);
12
+ --rhc-page-footer-border-block-start-width: var(
13
+ --rhc-nav-bar-border-block-end-width
14
+ );
15
+ }
16
+
17
+ .footer {
18
+ :global(.utrecht-column-layout) {
19
+ display: flex;
20
+ justify-content: space-between;
21
+ inline-size: 100%;
22
+
23
+ > * {
24
+ flex-grow: 0;
25
+ flex-shrink: 0;
26
+ }
27
+ }
28
+
29
+ &.numColumns,
30
+ &.numColumns1 {
31
+ :global(.utrecht-column-layout) {
32
+ row-gap: 0.5rem;
33
+
34
+ > * {
35
+ flex-basis: 100%;
36
+ }
37
+ }
38
+ }
39
+
40
+ &.numColumns2 {
41
+ :global(.utrecht-column-layout) {
42
+ > * {
43
+ flex-basis: calc(50% - var(--utrecht-column-layout-gap, 2em));
44
+ }
45
+ }
46
+ }
47
+
48
+ &.numColumns3 {
49
+ :global(.utrecht-column-layout) {
50
+ > * {
51
+ flex-basis: calc(33.333% - var(--utrecht-column-layout-gap, 2em));
52
+ }
53
+ }
54
+ }
55
+ &.numColumns4 {
56
+ :global(.utrecht-column-layout) {
57
+ flex-wrap: wrap;
58
+
59
+ > * {
60
+ flex-basis: calc(25% - var(--utrecht-column-layout-gap, 2em));
61
+ }
62
+ }
63
+ }
64
+
65
+ :global(.utrecht-link-list__link) {
66
+ align-items: center;
67
+ :global(.don-icon-externe-link-inline) {
68
+ order: 1;
69
+ }
70
+ }
71
+ }
72
+
73
+ @media (--xs-and-below-viewport) {
74
+ .footer.footer {
75
+ :global(.utrecht-column-layout) {
76
+ row-gap: 0.5rem;
77
+
78
+ > * {
79
+ flex-basis: calc(50% - var(--utrecht-column-layout-gap, 2em));
80
+ }
81
+ }
82
+ }
83
+ }
84
+
85
+ @media (--xxs-and-below-viewport) {
86
+ .footer.footer {
87
+ :global(.utrecht-column-layout) {
88
+ row-gap: 0.5rem;
89
+
90
+ > * {
91
+ flex-basis: 100%;
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ :global(.rhc-page-prefooter.rhc-page-prefooter) {
98
+ margin-block-start: 2rem;
99
+
100
+ &:before {
101
+ background-color: var(--rhc-nav-bar-border-color);
102
+ }
103
+ }
@@ -1,23 +1,23 @@
1
- import clsx from "clsx";
2
- import type React from "react";
3
-
4
- interface FormFieldLabelProps {
5
- htmlFor?: string;
6
- children: React.ReactNode;
7
- required?: boolean;
8
- className?: string;
9
- }
10
-
11
- const FormFieldLabel: React.FC<FormFieldLabelProps> = ({
12
- htmlFor,
13
- children,
14
- className,
15
- }) => {
16
- return (
17
- <label htmlFor={htmlFor} className={clsx("utrecht-form-label", className)}>
18
- {children}
19
- </label>
20
- );
21
- };
22
-
23
- export default FormFieldLabel;
1
+ import clsx from "clsx";
2
+ import type React from "react";
3
+
4
+ interface FormFieldLabelProps {
5
+ htmlFor?: string;
6
+ children: React.ReactNode;
7
+ required?: boolean;
8
+ className?: string;
9
+ }
10
+
11
+ const FormFieldLabel: React.FC<FormFieldLabelProps> = ({
12
+ htmlFor,
13
+ children,
14
+ className,
15
+ }) => {
16
+ return (
17
+ <label htmlFor={htmlFor} className={clsx("utrecht-form-label", className)}>
18
+ {children}
19
+ </label>
20
+ );
21
+ };
22
+
23
+ export default FormFieldLabel;
@@ -1,3 +1,3 @@
1
- import { FormFieldTextInput } from "@rijkshuisstijl-community/components-react";
2
-
3
- export default FormFieldTextInput;
1
+ import { FormFieldTextInput } from "@rijkshuisstijl-community/components-react";
2
+
3
+ export default FormFieldTextInput;