@developer-overheid-nl/don-register-components 1.1.0 → 1.3.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 (89) hide show
  1. package/CHANGELOG.md +118 -43
  2. package/LICENSE.md +291 -291
  3. package/README.md +20 -20
  4. package/package.json +3 -3
  5. package/src/alert/Alert.tsx +19 -19
  6. package/src/alert/styles.module.css +3 -3
  7. package/src/alignBox/AlignBox.tsx +114 -111
  8. package/src/alignBox/styles.module.css +110 -106
  9. package/src/amountLabel/AmountLabel.tsx +16 -0
  10. package/src/amountLabel/styles.module.css +11 -0
  11. package/src/analytics/PiwikPro.tsx +94 -72
  12. package/src/analytics/index.ts +1 -1
  13. package/src/article/Article.tsx +10 -10
  14. package/src/badgeList/BadgeList.tsx +34 -0
  15. package/src/badgeList/styles.module.css +37 -0
  16. package/src/block/Block.tsx +35 -35
  17. package/src/block/styles.module.css +29 -29
  18. package/src/button/Button.tsx +3 -3
  19. package/src/cardAsLink/CardAsLink.tsx +21 -21
  20. package/src/cardAsLink/styles.module.css +23 -23
  21. package/src/cardsList/CardsList.tsx +54 -54
  22. package/src/cardsList/styles.module.css +19 -19
  23. package/src/client.ts +7 -2
  24. package/src/container/Container.tsx +10 -10
  25. package/src/container/styles.module.css +28 -28
  26. package/src/copyButton/CopyButton.tsx +39 -39
  27. package/src/copyButton/styles.module.css +13 -13
  28. package/src/dataBadgeLink/DataBadgeLink.tsx +53 -50
  29. package/src/dataBadgeLink/styles.module.css +89 -43
  30. package/src/dataSummary/DataSummary.tsx +22 -22
  31. package/src/dataSummary/DataSummaryItem.tsx +21 -21
  32. package/src/dataSummary/styles.module.css +75 -70
  33. package/src/facetFilters/FacetFilters.tsx +367 -0
  34. package/src/facetFilters/styles.module.css +3 -0
  35. package/src/fieldset/FieldSet.tsx +3 -3
  36. package/src/filters/Filters.tsx +116 -115
  37. package/src/filters/styles.module.css +26 -26
  38. package/src/footer/Footer.tsx +76 -76
  39. package/src/footer/styles.module.css +103 -103
  40. package/src/formFieldCheckboxGroup/FormFieldCheckboxGroup.tsx +16 -0
  41. package/src/formFieldCheckboxGroup/styles.module.css +5 -0
  42. package/src/formFieldCheckboxOption/FormFieldCheckboxOption.tsx +26 -0
  43. package/src/formFieldCheckboxOption/styles.module.css +22 -0
  44. package/src/formFieldLabel/FormFieldLabel.tsx +23 -23
  45. package/src/formFieldRadioGroup/FormFieldRadioGroup.tsx +13 -0
  46. package/src/formFieldRadioGroup/styles.module.css +5 -0
  47. package/src/formFieldRadioOption/FormFieldRadioOption.tsx +75 -0
  48. package/src/formFieldRadioOption/styles.module.css +49 -0
  49. package/src/formFieldSwitch/FormFieldSwitch.tsx +79 -0
  50. package/src/formFieldSwitch/styles.module.css +32 -0
  51. package/src/formFieldTextInput/FormFieldTextInput.tsx +3 -3
  52. package/src/header/Header.tsx +137 -137
  53. package/src/header/styles.module.css +71 -71
  54. package/src/heading/Heading.tsx +15 -10
  55. package/src/headingGroup/HeadingGroup.tsx +48 -48
  56. package/src/headingGroup/styles.module.css +3 -3
  57. package/src/i18n.ts +25 -25
  58. package/src/iconBadge/IconBadge.tsx +35 -32
  59. package/src/iconBadge/getAppearance.ts +53 -47
  60. package/src/iconBadge/styles.module.css +19 -19
  61. package/src/iconsSprite/Icon.tsx +17 -17
  62. package/src/iconsSprite/IconsSprite.tsx +5 -5
  63. package/src/index.ts +107 -80
  64. package/src/infoButton/InfoButton.tsx +45 -0
  65. package/src/infoButton/styles.module.css +43 -0
  66. package/src/link/Link.tsx +10 -10
  67. package/src/markdown/Markdown.tsx +42 -42
  68. package/src/overlay/Overlay.tsx +18 -0
  69. package/src/overlay/styles.module.css +15 -0
  70. package/src/pagination/Pagination.tsx +267 -144
  71. package/src/pagination/styles.module.css +28 -13
  72. package/src/paragraph/Paragraph.tsx +24 -10
  73. package/src/paragraph/styles.module.css +6 -0
  74. package/src/pillBadge/PillBadge.examples.tsx +107 -107
  75. package/src/pillBadge/PillBadge.tsx +51 -51
  76. package/src/pillBadge/styles.module.css +214 -194
  77. package/src/readOnlyTextInput/ReadOnlyTextInput.tsx +24 -24
  78. package/src/readOnlyTextInput/styles.module.css +19 -19
  79. package/src/scoreBadge/ScoreBadge.tsx +133 -132
  80. package/src/search/Search.tsx +82 -66
  81. package/src/search/styles.module.css +39 -39
  82. package/src/siteLogo/SiteLogo.tsx +24 -24
  83. package/src/switch/Switch.tsx +86 -0
  84. package/src/switch/styles.module.css +7 -0
  85. package/src/toolTip/ToolTip.tsx +55 -0
  86. package/src/toolTip/styles.module.css +49 -0
  87. package/src/topNavigation/TopNavigation.tsx +67 -67
  88. package/src/topNavigation/styles.module.css +54 -54
  89. 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
+ }
@@ -0,0 +1,16 @@
1
+ import {
2
+ type FormFieldCheckboxGroupProps,
3
+ FormFieldCheckboxGroup as RHCFormFieldCheckboxGroup,
4
+ } from "@rijkshuisstijl-community/components-react";
5
+ import styles from "./styles.module.css";
6
+
7
+ const FormFieldCheckboxGroup = (props: FormFieldCheckboxGroupProps) => {
8
+ return (
9
+ <RHCFormFieldCheckboxGroup
10
+ className={styles.formFieldCheckboxGroup}
11
+ {...props}
12
+ />
13
+ );
14
+ };
15
+
16
+ export default FormFieldCheckboxGroup;
@@ -0,0 +1,5 @@
1
+ .formFieldCheckboxGroup {
2
+ :global(& > .utrecht-form-field__label) {
3
+ display: none;
4
+ }
5
+ }
@@ -0,0 +1,26 @@
1
+ import {
2
+ FormFieldCheckboxOption as RHCFormFieldCheckboxOption,
3
+ type FormFieldCheckboxOptionProps as RHCFormFieldCheckboxOptionProps,
4
+ } from "@rijkshuisstijl-community/components-react";
5
+ import clsx from "clsx";
6
+ import AmountLabel, { type AmountLabelProps } from "../amountLabel/AmountLabel";
7
+ import styles from "./styles.module.css";
8
+
9
+ export interface FormFieldCheckboxOptionProps
10
+ extends Omit<RHCFormFieldCheckboxOptionProps, "label">,
11
+ AmountLabelProps {}
12
+
13
+ const FormFieldCheckboxOption = (props: FormFieldCheckboxOptionProps) => {
14
+ const { amount, label, className, children, ...restProps } = props;
15
+ return (
16
+ <RHCFormFieldCheckboxOption
17
+ className={clsx(styles.checkbox, className)}
18
+ label={<AmountLabel label={label} amount={amount} />}
19
+ {...restProps}
20
+ >
21
+ <span className={styles.info}>{children}</span>
22
+ </RHCFormFieldCheckboxOption>
23
+ );
24
+ };
25
+
26
+ export default FormFieldCheckboxOption;
@@ -0,0 +1,22 @@
1
+ .checkbox.checkbox {
2
+ --utrecht-form-field-label-margin-block-end: 0;
3
+
4
+ grid-template-areas:
5
+ 'input label info'
6
+ 'input description description'
7
+ 'input error-message error-message'
8
+ 'input status status';
9
+
10
+ :global(.utrecht-form-label) {
11
+ display: flex;
12
+ }
13
+
14
+ :global(.utrecht-checkbox) {
15
+ order: initial;
16
+ margin-block-start: 0;
17
+ }
18
+ }
19
+
20
+ .info {
21
+ grid-area: info;
22
+ }
@@ -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;
@@ -0,0 +1,13 @@
1
+ import {
2
+ type FormFieldRadioGroupProps,
3
+ FormFieldRadioGroup as RHCFormFieldRadioGroup,
4
+ } from "@rijkshuisstijl-community/components-react";
5
+ import styles from "./styles.module.css";
6
+
7
+ const FormFieldRadioGroup = (props: FormFieldRadioGroupProps) => {
8
+ return (
9
+ <RHCFormFieldRadioGroup className={styles.formFieldRadioGroup} {...props} />
10
+ );
11
+ };
12
+
13
+ export default FormFieldRadioGroup;
@@ -0,0 +1,5 @@
1
+ .formFieldRadioGroup {
2
+ :global(& > .utrecht-form-field__label) {
3
+ display: none;
4
+ }
5
+ }
@@ -0,0 +1,75 @@
1
+ import {
2
+ type CustomFormFieldProps,
3
+ FormField,
4
+ Radio as RHCRadio,
5
+ } from "@rijkshuisstijl-community/components-react";
6
+ import clsx from "clsx";
7
+ import { Fragment, useId } from "react";
8
+ import AmountLabel, { type AmountLabelProps } from "../amountLabel/AmountLabel";
9
+ import styles from "./styles.module.css";
10
+
11
+ export interface FormFieldRadioOptionProps
12
+ extends Omit<
13
+ CustomFormFieldProps,
14
+ "label" | "statusId" | "errorMessageId" | "descriptionId" | "input"
15
+ >,
16
+ AmountLabelProps {
17
+ name: string;
18
+ value: string;
19
+ checked?: boolean;
20
+ defaultChecked?: boolean;
21
+ statusId?: CustomFormFieldProps["statusId"];
22
+ errorMessageId?: CustomFormFieldProps["errorMessageId"];
23
+ descriptionId?: CustomFormFieldProps["descriptionId"];
24
+ onChange?: React.ChangeEventHandler<HTMLInputElement>;
25
+ }
26
+
27
+ const FormFieldRadioOption = (props: FormFieldRadioOptionProps) => {
28
+ const genId = useId();
29
+ const {
30
+ id = genId,
31
+ statusId = genId,
32
+ errorMessageId = genId,
33
+ descriptionId = genId,
34
+ name,
35
+ value,
36
+ defaultChecked,
37
+ checked,
38
+ amount,
39
+ label,
40
+ className,
41
+ children,
42
+ onChange,
43
+ ...restProps
44
+ } = props;
45
+
46
+ return (
47
+ <FormField
48
+ type="radio" // although not exposed by RHC
49
+ className={clsx("utrecht-form-field--radio", styles.radio, className)}
50
+ statusId={statusId}
51
+ errorMessageId={errorMessageId}
52
+ descriptionId={descriptionId}
53
+ label={
54
+ <Fragment>
55
+ <RHCRadio
56
+ id={id}
57
+ name={name}
58
+ value={value}
59
+ checked={checked}
60
+ defaultChecked={defaultChecked}
61
+ className="utrecht-checkbox--custom utrecht-form-field__input"
62
+ onChange={onChange}
63
+ />
64
+ <AmountLabel label={label} amount={amount} />
65
+ </Fragment>
66
+ }
67
+ input={null}
68
+ {...restProps}
69
+ >
70
+ <span className={styles.info}>{children}</span>
71
+ </FormField>
72
+ );
73
+ };
74
+
75
+ export default FormFieldRadioOption;
@@ -0,0 +1,49 @@
1
+ .radio.radio {
2
+ --utrecht-form-field-label-margin-block-end: 0;
3
+
4
+ grid-template-areas:
5
+ 'input label info'
6
+ 'input description description'
7
+ 'input error-message error-message'
8
+ 'input status status';
9
+
10
+ :global(.utrecht-form-field--radio .utrecht-form-field__label) {
11
+ display: block;
12
+ }
13
+
14
+ :global(.utrecht-form-label) {
15
+ /* like checkbox */
16
+ display: flex;
17
+ font-weight: var(
18
+ --utrecht-form-label-checkbox-font-weight,
19
+ var(--utrecht-form-label-font-weight)
20
+ );
21
+ color: var(
22
+ --utrecht-form-label-checkbox-color,
23
+ var(--utrecht-form-label-color)
24
+ );
25
+ cursor: var(--utrecht-action-activate-cursor, revert);
26
+ }
27
+
28
+ :global(.utrecht-radio-button) {
29
+ order: initial;
30
+ margin-block-start: 0;
31
+ }
32
+
33
+ :global(
34
+ .utrecht-form-field--radio
35
+ .utrecht-form-field__label:has(.utrecht-form-field__input)
36
+ ) {
37
+ margin-inline-start: calc(
38
+ -1 *
39
+ (
40
+ var(--utrecht-radio-button-size) +
41
+ var(--utrecht-checkbox-margin-inline-end, 12px)
42
+ )
43
+ );
44
+ }
45
+ }
46
+
47
+ .info {
48
+ grid-area: info;
49
+ }