@developer-overheid-nl/don-register-components 1.3.1 → 1.6.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.
Files changed (139) hide show
  1. package/CHANGELOG.md +176 -130
  2. package/LICENSE.md +291 -291
  3. package/README.md +20 -20
  4. package/package.json +10 -8
  5. package/src/Introduction.mdx +52 -0
  6. package/src/alert/Alert.stories.tsx +57 -0
  7. package/src/alert/Alert.tsx +19 -19
  8. package/src/alert/styles.module.css +3 -3
  9. package/src/alignBox/AlignBox.stories.tsx +84 -0
  10. package/src/alignBox/AlignBox.tsx +114 -114
  11. package/src/alignBox/styles.module.css +110 -110
  12. package/src/amountLabel/AmountLabel.stories.tsx +28 -0
  13. package/src/amountLabel/AmountLabel.tsx +21 -16
  14. package/src/amountLabel/styles.module.css +11 -11
  15. package/src/analytics/PiwikPro.tsx +94 -94
  16. package/src/analytics/index.ts +1 -1
  17. package/src/article/Article.stories.tsx +53 -0
  18. package/src/article/Article.tsx +10 -10
  19. package/src/badgeList/BadgeList.tsx +34 -34
  20. package/src/badgeList/styles.module.css +37 -37
  21. package/src/block/Block.stories.tsx +58 -0
  22. package/src/block/Block.tsx +35 -35
  23. package/src/block/styles.module.css +29 -29
  24. package/src/button/Button.stories.tsx +56 -0
  25. package/src/button/Button.tsx +3 -3
  26. package/src/button/ButtonAction.stories.tsx +62 -0
  27. package/src/button/ButtonAction.tsx +51 -0
  28. package/src/cardAsLink/CardAsLink.stories.tsx +81 -0
  29. package/src/cardAsLink/CardAsLink.tsx +21 -21
  30. package/src/cardAsLink/styles.module.css +23 -23
  31. package/src/cardsList/CardsList.tsx +56 -56
  32. package/src/cardsList/styles.module.css +18 -19
  33. package/src/client.ts +7 -7
  34. package/src/container/Container.stories.tsx +21 -0
  35. package/src/container/Container.tsx +10 -10
  36. package/src/container/styles.module.css +28 -28
  37. package/src/copyButton/CopyButton.stories.tsx +41 -0
  38. package/src/copyButton/CopyButton.tsx +45 -39
  39. package/src/copyButton/styles.module.css +13 -13
  40. package/src/dataBadgeLink/DataBadgeLink.stories.tsx +137 -0
  41. package/src/dataBadgeLink/DataBadgeLink.tsx +59 -53
  42. package/src/dataBadgeLink/styles.module.css +89 -89
  43. package/src/dataSummary/DataSummary.tsx +22 -22
  44. package/src/dataSummary/DataSummaryItem.tsx +21 -21
  45. package/src/dataSummary/styles.module.css +75 -75
  46. package/src/facetFilters/FacetFilters.stories.tsx +93 -0
  47. package/src/facetFilters/FacetFilters.tsx +424 -419
  48. package/src/facetFilters/styles.module.css +3 -3
  49. package/src/fieldset/FieldSet.stories.tsx +45 -0
  50. package/src/fieldset/FieldSet.tsx +3 -3
  51. package/src/filters/Filters.stories.tsx +45 -0
  52. package/src/filters/Filters.tsx +116 -116
  53. package/src/filters/styles.module.css +26 -26
  54. package/src/footer/Footer.stories.tsx +127 -0
  55. package/src/footer/Footer.tsx +81 -76
  56. package/src/footer/styles.module.css +103 -103
  57. package/src/formFieldCheckboxGroup/FormFieldCheckboxGroup.stories.tsx +48 -0
  58. package/src/formFieldCheckboxGroup/FormFieldCheckboxGroup.tsx +16 -16
  59. package/src/formFieldCheckboxGroup/styles.module.css +5 -5
  60. package/src/formFieldCheckboxOption/FormFieldCheckboxOption.stories.tsx +61 -0
  61. package/src/formFieldCheckboxOption/FormFieldCheckboxOption.tsx +26 -26
  62. package/src/formFieldCheckboxOption/styles.module.css +22 -22
  63. package/src/formFieldLabel/FormFieldLabel.stories.tsx +21 -0
  64. package/src/formFieldLabel/FormFieldLabel.tsx +23 -23
  65. package/src/formFieldRadioGroup/FormFieldRadioGroup.stories.tsx +57 -0
  66. package/src/formFieldRadioGroup/FormFieldRadioGroup.tsx +13 -13
  67. package/src/formFieldRadioGroup/styles.module.css +5 -5
  68. package/src/formFieldRadioOption/FormFieldRadioOption.stories.tsx +48 -0
  69. package/src/formFieldRadioOption/FormFieldRadioOption.tsx +75 -75
  70. package/src/formFieldRadioOption/styles.module.css +49 -49
  71. package/src/formFieldSwitch/FormFieldSwitch.stories.tsx +61 -0
  72. package/src/formFieldSwitch/FormFieldSwitch.tsx +82 -79
  73. package/src/formFieldSwitch/styles.module.css +32 -32
  74. package/src/formFieldTextInput/FormFieldTextInput.stories.tsx +45 -0
  75. package/src/formFieldTextInput/FormFieldTextInput.tsx +3 -3
  76. package/src/grid/Grid.stories.tsx +37 -0
  77. package/src/grid/Grid.tsx +48 -0
  78. package/src/grid/styles.module.css +24 -0
  79. package/src/header/Header.stories.tsx +54 -0
  80. package/src/header/Header.tsx +137 -137
  81. package/src/header/styles.module.css +71 -71
  82. package/src/heading/Heading.stories.tsx +60 -0
  83. package/src/heading/Heading.tsx +15 -15
  84. package/src/headingGroup/HeadingGroup.stories.tsx +57 -0
  85. package/src/headingGroup/HeadingGroup.tsx +48 -48
  86. package/src/headingGroup/styles.module.css +3 -3
  87. package/src/i18n.ts +24 -25
  88. package/src/iconBadge/IconBadge.stories.tsx +46 -0
  89. package/src/iconBadge/IconBadge.tsx +35 -35
  90. package/src/iconBadge/getAppearance.ts +53 -53
  91. package/src/iconBadge/styles.module.css +19 -19
  92. package/src/iconsSprite/Icon.stories.tsx +73 -0
  93. package/src/iconsSprite/Icon.tsx +17 -17
  94. package/src/iconsSprite/IconsSprite.tsx +5 -5
  95. package/src/index.ts +117 -107
  96. package/src/infoButton/InfoButton.stories.tsx +52 -0
  97. package/src/infoButton/InfoButton.tsx +45 -45
  98. package/src/infoButton/styles.module.css +43 -43
  99. package/src/link/Link.stories.tsx +49 -0
  100. package/src/link/Link.tsx +10 -10
  101. package/src/markdown/Markdown.stories.tsx +48 -0
  102. package/src/markdown/Markdown.tsx +42 -42
  103. package/src/overlay/Overlay.stories.tsx +38 -0
  104. package/src/overlay/Overlay.tsx +18 -18
  105. package/src/overlay/styles.module.css +15 -15
  106. package/src/pagination/Pagination.stories.tsx +91 -0
  107. package/src/pagination/Pagination.tsx +267 -267
  108. package/src/pagination/styles.module.css +28 -28
  109. package/src/paragraph/Paragraph.stories.tsx +45 -0
  110. package/src/paragraph/Paragraph.tsx +24 -24
  111. package/src/paragraph/styles.module.css +6 -6
  112. package/src/pillBadge/PillBadge.examples.tsx +107 -107
  113. package/src/pillBadge/PillBadge.stories.tsx +257 -0
  114. package/src/pillBadge/PillBadge.tsx +60 -51
  115. package/src/pillBadge/styles.module.css +214 -214
  116. package/src/readOnlyTextInput/ReadOnlyTextInput.stories.tsx +49 -0
  117. package/src/readOnlyTextInput/ReadOnlyTextInput.tsx +24 -24
  118. package/src/readOnlyTextInput/styles.module.css +19 -19
  119. package/src/scoreBadge/ScoreBadge.stories.tsx +45 -0
  120. package/src/scoreBadge/ScoreBadge.tsx +135 -133
  121. package/src/search/Search.stories.tsx +65 -0
  122. package/src/search/Search.tsx +82 -82
  123. package/src/search/styles.module.css +40 -39
  124. package/src/siteLogo/ExampleLogo.stories.tsx +40 -0
  125. package/src/siteLogo/SiteLogo.stories.tsx +28 -0
  126. package/src/siteLogo/SiteLogo.tsx +24 -24
  127. package/src/sortForm/SortForm.stories.tsx +111 -0
  128. package/src/sortForm/SortForm.tsx +121 -0
  129. package/src/sortForm/styles.module.css +40 -0
  130. package/src/switch/Switch.stories.tsx +68 -0
  131. package/src/switch/Switch.tsx +152 -86
  132. package/src/switch/styles.module.css +54 -7
  133. package/src/toolTip/ToolTip.stories.tsx +131 -0
  134. package/src/toolTip/ToolTip.tsx +55 -55
  135. package/src/toolTip/styles.module.css +49 -49
  136. package/src/topNavigation/TopNavigation.stories.tsx +71 -0
  137. package/src/topNavigation/TopNavigation.tsx +67 -67
  138. package/src/topNavigation/styles.module.css +54 -54
  139. package/tsconfig.json +122 -121
@@ -1,214 +1,214 @@
1
- :root {
2
- --don-pill-badge-font-size: 0.875rem;
3
- --don-pill-badge-gap: 0.5rem;
4
- --don-pill-badge-border-radius: 5px;
5
- --don-pill-badge-padding-inline: 0.5rem;
6
- --don-pill-badge-padding-block: 0.25rem;
7
- --don-pill-badge-background-color: var(--rhc-color-cool-grey-200);
8
- --don-pill-badge-start-color: var(--rhc-color-foreground-on-dark-color);
9
- --don-pill-badge-start-background-color: var(--rhc-color-cool-grey-700);
10
- --don-pill-badge-end-color: var(--rhc-color-foreground-on-light-color);
11
- --don-pill-badge-end-background-color: var(--rhc-color-groen-100);
12
- --don-pill-badge-border-color: linear-gradient(
13
- to top,
14
- rgba(51, 51, 51, 0.25),
15
- rgba(204, 204, 204, 0.25)
16
- );
17
- --don-pill-badge-outline-hover-color: var(--rhc-color-cool-grey-300);
18
- --don-pill-badge-border-width: 1px;
19
- }
20
-
21
- .pill-badge-figure {
22
- display: contents;
23
- }
24
-
25
- .pill-badge {
26
- --percentage: 100%;
27
- position: relative;
28
- display: inline-block;
29
- align-items: center;
30
- width: fit-content;
31
- height: auto;
32
- overflow: clip;
33
- font-size: var(--don-pill-badge-font-size);
34
- background-color: var(--don-pill-badge-background-color);
35
- border-radius: var(--don-pill-badge-border-radius);
36
-
37
- a:any-link:has(&) {
38
- text-decoration: none;
39
-
40
- &:hover {
41
- outline-width: 2px;
42
- outline-style: auto;
43
- outline-color: var(--don-pill-badge-outline-hover-color);
44
- outline-offset: 0.125rem;
45
- border-radius: var(--don-pill-badge-border-radius);
46
- }
47
-
48
- &:focus,
49
- &:focus-visible {
50
- outline-style: auto;
51
- outline-offset: 0.125rem;
52
- border-radius: var(--don-pill-badge-border-radius);
53
- }
54
- }
55
-
56
- /* Because Biome CSS parser does not yet support modern attr() some of the following is commented out.
57
- * Fixme: remove this workaround when https://github.com/biomejs/biome/issues/6183 is closed and tested */
58
-
59
- /* Browser has modern attr() support */
60
- /*
61
- @supports (x: attr(x type(*))) {
62
- --percentage: attr(data-percentage %, 100%);
63
- }
64
- */
65
-
66
- /* Browser does not have modern attr() support */
67
- /* @supports not (x: attr(x type(*))) { */
68
- &[data-percentage^='1'] {
69
- --percentage: 10%;
70
- }
71
- &[data-percentage^='2'] {
72
- --percentage: 20%;
73
- }
74
- &[data-percentage^='3'] {
75
- --percentage: 30%;
76
- }
77
- &[data-percentage^='4'] {
78
- --percentage: 40%;
79
- }
80
- &[data-percentage^='5'] {
81
- --percentage: 50%;
82
- }
83
- &[data-percentage^='6'] {
84
- --percentage: 60%;
85
- }
86
- &[data-percentage^='7'] {
87
- --percentage: 70%;
88
- }
89
- &[data-percentage^='8'] {
90
- --percentage: 80%;
91
- }
92
- &[data-percentage^='9'] {
93
- --percentage: 90%;
94
- }
95
- &[data-percentage='100'] {
96
- --percentage: 100%;
97
- }
98
- &[data-percentage='9'],
99
- &[data-percentage='8'],
100
- &[data-percentage='7'],
101
- &[data-percentage='6'],
102
- &[data-percentage='5'],
103
- &[data-percentage='4'],
104
- &[data-percentage='3'],
105
- &[data-percentage='2'],
106
- &[data-percentage='1'],
107
- &[data-percentage='0'] {
108
- --percentage: 0%;
109
- }
110
- /*}*/
111
-
112
- /* --_don-pill-badge-end-color: attr(data-color type(<color>), var(--don-pill-badge-end-color));*/
113
- }
114
-
115
- .pill-badge::before {
116
- position: absolute;
117
- inset: 0;
118
- content: '';
119
- background: var(--don-pill-badge-border-color) border-box;
120
- border: var(--don-pill-badge-border-width) solid transparent;
121
- border-radius: var(--don-pill-badge-border-radius);
122
- mask:
123
- linear-gradient(#000 0 0) content-box,
124
- linear-gradient(#000 0 0);
125
- mask-composite: exclude;
126
- }
127
-
128
- .pill-badge__start {
129
- padding-block: var(--don-pill-badge-padding-block);
130
- padding-inline: var(--don-pill-badge-padding-inline);
131
- padding-inline-end: calc(0.5 * var(--don-pill-badge-gap));
132
- color: var(--don-pill-badge-start-color);
133
- background-color: var(--don-pill-badge-start-background-color);
134
- }
135
-
136
- .pill-badge__end {
137
- padding-block: var(--don-pill-badge-padding-block);
138
- padding-inline: var(--don-pill-badge-padding-inline);
139
- padding-inline-start: calc(0.5 * var(--don-pill-badge-gap));
140
- color: var(--don-pill-badge-end-color);
141
- background-color: var(--don-pill-badge-end-background-color);
142
- }
143
-
144
- .pill-badge--type-percentage .pill-badge__end {
145
- background: linear-gradient(
146
- to right,
147
- var(--don-pill-badge-end-background-color) var(--percentage),
148
- var(--don-pill-badge-background-color) var(--percentage)
149
- );
150
- }
151
-
152
- /* Pre-defined Rijkshuisstijl colors,
153
- * AA contrast checked, most are AAA prove, but not all because of font-size
154
- */
155
- [data-color='robijnrood'] .pill-badge__end {
156
- --don-pill-badge-end-background-color: var(--rhc-color-robijnrood-200);
157
- }
158
- [data-color='roze'] .pill-badge__end {
159
- --don-pill-badge-end-background-color: var(--rhc-color-roze-300);
160
- }
161
- [data-color='rood'] .pill-badge__end {
162
- /* Not AAA prove */
163
- --don-pill-badge-end-background-color: var(--rhc-color-rood-500);
164
- --don-pill-badge-end-color: var(--rhc-color-foreground-on-dark-color);
165
- --don-pill-badge-background-color: var(--rhc-color-cool-grey-500);
166
- }
167
- [data-color='oranje'] .pill-badge__end {
168
- --don-pill-badge-end-background-color: var(--rhc-color-oranje-300);
169
- }
170
- [data-color='donkergeel'] .pill-badge__end {
171
- --don-pill-badge-end-background-color: var(--rhc-color-donkergeel-400);
172
- }
173
- [data-color='geel'] .pill-badge__end {
174
- --don-pill-badge-end-background-color: var(--rhc-color-geel-400);
175
- }
176
- [data-color='donkergroen'] .pill-badge__end {
177
- --don-pill-badge-end-background-color: var(--rhc-color-donkergroen-500);
178
- --don-pill-badge-end-color: var(--rhc-color-foreground-on-dark-color);
179
- --don-pill-badge-background-color: var(--rhc-color-cool-grey-500);
180
- }
181
- [data-color='groen'] .pill-badge__end {
182
- --don-pill-badge-end-background-color: var(--rhc-color-groen-300);
183
- }
184
- [data-color='mosgroen'] .pill-badge__end {
185
- --don-pill-badge-end-background-color: var(--rhc-color-mosgroen-300);
186
- }
187
- [data-color='mintgroen'] .pill-badge__end {
188
- --don-pill-badge-end-background-color: var(--rhc-color-mintgroen-400);
189
- }
190
- [data-color='donkerblauw'] .pill-badge__end {
191
- /* Not AAA prove */
192
- --don-pill-badge-end-background-color: var(--rhc-color-donkerblauw-500);
193
- --don-pill-badge-end-color: var(--rhc-color-foreground-on-dark-color);
194
- --don-pill-badge-background-color: var(--rhc-color-cool-grey-500);
195
- }
196
- [data-color='hemelblauw'] .pill-badge__end {
197
- --don-pill-badge-end-background-color: var(--rhc-color-hemelblauw-200);
198
- }
199
- [data-color='paars'] .pill-badge__end {
200
- --don-pill-badge-end-background-color: var(--rhc-color-paars-500);
201
- --don-pill-badge-end-color: var(--rhc-color-foreground-on-dark-color);
202
- --don-pill-badge-background-color: var(--rhc-color-cool-grey-500);
203
- }
204
- [data-color='violet'] .pill-badge__end {
205
- --don-pill-badge-end-background-color: var(--rhc-color-violet-200);
206
- }
207
- [data-color='lichtblauw'] .pill-badge__end {
208
- --don-pill-badge-end-background-color: var(--rhc-color-lichtblauw-300);
209
- }
210
- [data-color='coolgrey'] .pill-badge__end,
211
- [data-color='grijs'] .pill-badge__end,
212
- [data-color='grey'] .pill-badge__end {
213
- --don-pill-badge-end-background-color: var(--rhc-color-cool-grey-300);
214
- }
1
+ :root {
2
+ --don-pill-badge-font-size: 0.875rem;
3
+ --don-pill-badge-gap: 0.5rem;
4
+ --don-pill-badge-border-radius: 5px;
5
+ --don-pill-badge-padding-inline: 0.5rem;
6
+ --don-pill-badge-padding-block: 0.25rem;
7
+ --don-pill-badge-background-color: var(--rhc-color-cool-grey-200);
8
+ --don-pill-badge-start-color: var(--rhc-color-foreground-on-dark-color);
9
+ --don-pill-badge-start-background-color: var(--rhc-color-cool-grey-700);
10
+ --don-pill-badge-end-color: var(--rhc-color-foreground-on-light-color);
11
+ --don-pill-badge-end-background-color: var(--rhc-color-groen-100);
12
+ --don-pill-badge-border-color: linear-gradient(
13
+ to top,
14
+ rgba(51, 51, 51, 0.25),
15
+ rgba(204, 204, 204, 0.25)
16
+ );
17
+ --don-pill-badge-outline-hover-color: var(--rhc-color-cool-grey-300);
18
+ --don-pill-badge-border-width: 1px;
19
+ }
20
+
21
+ .pill-badge-figure {
22
+ display: contents;
23
+ }
24
+
25
+ .pill-badge {
26
+ --percentage: 100%;
27
+ position: relative;
28
+ display: inline-block;
29
+ align-items: center;
30
+ width: fit-content;
31
+ height: auto;
32
+ overflow: clip;
33
+ font-size: var(--don-pill-badge-font-size);
34
+ background-color: var(--don-pill-badge-background-color);
35
+ border-radius: var(--don-pill-badge-border-radius);
36
+
37
+ a:any-link:has(&) {
38
+ text-decoration: none;
39
+
40
+ &:hover {
41
+ outline-width: 2px;
42
+ outline-style: auto;
43
+ outline-color: var(--don-pill-badge-outline-hover-color);
44
+ outline-offset: 0.125rem;
45
+ border-radius: var(--don-pill-badge-border-radius);
46
+ }
47
+
48
+ &:focus,
49
+ &:focus-visible {
50
+ outline-style: auto;
51
+ outline-offset: 0.125rem;
52
+ border-radius: var(--don-pill-badge-border-radius);
53
+ }
54
+ }
55
+
56
+ /* Because Biome CSS parser does not yet support modern attr() some of the following is commented out.
57
+ * Fixme: remove this workaround when https://github.com/biomejs/biome/issues/6183 is closed and tested */
58
+
59
+ /* Browser has modern attr() support */
60
+ /*
61
+ @supports (x: attr(x type(*))) {
62
+ --percentage: attr(data-percentage %, 100%);
63
+ }
64
+ */
65
+
66
+ /* Browser does not have modern attr() support */
67
+ /* @supports not (x: attr(x type(*))) { */
68
+ &[data-percentage^='1'] {
69
+ --percentage: 10%;
70
+ }
71
+ &[data-percentage^='2'] {
72
+ --percentage: 20%;
73
+ }
74
+ &[data-percentage^='3'] {
75
+ --percentage: 30%;
76
+ }
77
+ &[data-percentage^='4'] {
78
+ --percentage: 40%;
79
+ }
80
+ &[data-percentage^='5'] {
81
+ --percentage: 50%;
82
+ }
83
+ &[data-percentage^='6'] {
84
+ --percentage: 60%;
85
+ }
86
+ &[data-percentage^='7'] {
87
+ --percentage: 70%;
88
+ }
89
+ &[data-percentage^='8'] {
90
+ --percentage: 80%;
91
+ }
92
+ &[data-percentage^='9'] {
93
+ --percentage: 90%;
94
+ }
95
+ &[data-percentage='100'] {
96
+ --percentage: 100%;
97
+ }
98
+ &[data-percentage='9'],
99
+ &[data-percentage='8'],
100
+ &[data-percentage='7'],
101
+ &[data-percentage='6'],
102
+ &[data-percentage='5'],
103
+ &[data-percentage='4'],
104
+ &[data-percentage='3'],
105
+ &[data-percentage='2'],
106
+ &[data-percentage='1'],
107
+ &[data-percentage='0'] {
108
+ --percentage: 0%;
109
+ }
110
+ /*}*/
111
+
112
+ /* --_don-pill-badge-end-color: attr(data-color type(<color>), var(--don-pill-badge-end-color));*/
113
+ }
114
+
115
+ .pill-badge::before {
116
+ position: absolute;
117
+ inset: 0;
118
+ content: '';
119
+ background: var(--don-pill-badge-border-color) border-box;
120
+ border: var(--don-pill-badge-border-width) solid transparent;
121
+ border-radius: var(--don-pill-badge-border-radius);
122
+ mask:
123
+ linear-gradient(#000 0 0) content-box,
124
+ linear-gradient(#000 0 0);
125
+ mask-composite: exclude;
126
+ }
127
+
128
+ .pill-badge__start {
129
+ padding-block: var(--don-pill-badge-padding-block);
130
+ padding-inline: var(--don-pill-badge-padding-inline);
131
+ padding-inline-end: calc(0.5 * var(--don-pill-badge-gap));
132
+ color: var(--don-pill-badge-start-color);
133
+ background-color: var(--don-pill-badge-start-background-color);
134
+ }
135
+
136
+ .pill-badge__end {
137
+ padding-block: var(--don-pill-badge-padding-block);
138
+ padding-inline: var(--don-pill-badge-padding-inline);
139
+ padding-inline-start: calc(0.5 * var(--don-pill-badge-gap));
140
+ color: var(--don-pill-badge-end-color);
141
+ background-color: var(--don-pill-badge-end-background-color);
142
+ }
143
+
144
+ .pill-badge--type-percentage .pill-badge__end {
145
+ background: linear-gradient(
146
+ to right,
147
+ var(--don-pill-badge-end-background-color) var(--percentage),
148
+ var(--don-pill-badge-background-color) var(--percentage)
149
+ );
150
+ }
151
+
152
+ /* Pre-defined Rijkshuisstijl colors,
153
+ * AA contrast checked, most are AAA prove, but not all because of font-size
154
+ */
155
+ [data-color='robijnrood'] .pill-badge__end {
156
+ --don-pill-badge-end-background-color: var(--rhc-color-robijnrood-200);
157
+ }
158
+ [data-color='roze'] .pill-badge__end {
159
+ --don-pill-badge-end-background-color: var(--rhc-color-roze-300);
160
+ }
161
+ [data-color='rood'] .pill-badge__end {
162
+ /* Not AAA prove */
163
+ --don-pill-badge-end-background-color: var(--rhc-color-rood-500);
164
+ --don-pill-badge-end-color: var(--rhc-color-foreground-on-dark-color);
165
+ --don-pill-badge-background-color: var(--rhc-color-cool-grey-500);
166
+ }
167
+ [data-color='oranje'] .pill-badge__end {
168
+ --don-pill-badge-end-background-color: var(--rhc-color-oranje-300);
169
+ }
170
+ [data-color='donkergeel'] .pill-badge__end {
171
+ --don-pill-badge-end-background-color: var(--rhc-color-donkergeel-400);
172
+ }
173
+ [data-color='geel'] .pill-badge__end {
174
+ --don-pill-badge-end-background-color: var(--rhc-color-geel-400);
175
+ }
176
+ [data-color='donkergroen'] .pill-badge__end {
177
+ --don-pill-badge-end-background-color: var(--rhc-color-donkergroen-500);
178
+ --don-pill-badge-end-color: var(--rhc-color-foreground-on-dark-color);
179
+ --don-pill-badge-background-color: var(--rhc-color-cool-grey-500);
180
+ }
181
+ [data-color='groen'] .pill-badge__end {
182
+ --don-pill-badge-end-background-color: var(--rhc-color-groen-300);
183
+ }
184
+ [data-color='mosgroen'] .pill-badge__end {
185
+ --don-pill-badge-end-background-color: var(--rhc-color-mosgroen-300);
186
+ }
187
+ [data-color='mintgroen'] .pill-badge__end {
188
+ --don-pill-badge-end-background-color: var(--rhc-color-mintgroen-400);
189
+ }
190
+ [data-color='donkerblauw'] .pill-badge__end {
191
+ /* Not AAA prove */
192
+ --don-pill-badge-end-background-color: var(--rhc-color-donkerblauw-500);
193
+ --don-pill-badge-end-color: var(--rhc-color-foreground-on-dark-color);
194
+ --don-pill-badge-background-color: var(--rhc-color-cool-grey-500);
195
+ }
196
+ [data-color='hemelblauw'] .pill-badge__end {
197
+ --don-pill-badge-end-background-color: var(--rhc-color-hemelblauw-200);
198
+ }
199
+ [data-color='paars'] .pill-badge__end {
200
+ --don-pill-badge-end-background-color: var(--rhc-color-paars-500);
201
+ --don-pill-badge-end-color: var(--rhc-color-foreground-on-dark-color);
202
+ --don-pill-badge-background-color: var(--rhc-color-cool-grey-500);
203
+ }
204
+ [data-color='violet'] .pill-badge__end {
205
+ --don-pill-badge-end-background-color: var(--rhc-color-violet-200);
206
+ }
207
+ [data-color='lichtblauw'] .pill-badge__end {
208
+ --don-pill-badge-end-background-color: var(--rhc-color-lichtblauw-300);
209
+ }
210
+ [data-color='coolgrey'] .pill-badge__end,
211
+ [data-color='grijs'] .pill-badge__end,
212
+ [data-color='grey'] .pill-badge__end {
213
+ --don-pill-badge-end-background-color: var(--rhc-color-cool-grey-300);
214
+ }
@@ -0,0 +1,49 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import ReadOnlyTextInput from "./ReadOnlyTextInput";
3
+
4
+ /**
5
+ * ReadOnlyTextInput is een altijd-alleen-lezen tekstinvoerveld, bijvoorbeeld
6
+ * voor het tonen van een ID of code. `fontVariant` kan een monospace of
7
+ * "slashed zero"-lettertype toepassen om tekens beter te onderscheiden.
8
+ */
9
+ const meta = {
10
+ title: "Components/Form/ReadOnlyTextInput",
11
+ component: ReadOnlyTextInput,
12
+ tags: ["autodocs", "custom"],
13
+ argTypes: {
14
+ fontVariant: {
15
+ control: "select",
16
+ options: ["normal", "monospace", "slashed-zero"],
17
+ },
18
+ },
19
+ args: {
20
+ value: "c7819a6f-3e12-4b1a-9d0e-1f2a3b4c5d6e",
21
+ fontVariant: "normal",
22
+ },
23
+ } satisfies Meta<typeof ReadOnlyTextInput>;
24
+
25
+ export default meta;
26
+ type Story = StoryObj<typeof meta>;
27
+
28
+ export const Default: Story = {};
29
+
30
+ export const Monospace: Story = {
31
+ args: {
32
+ fontVariant: "monospace",
33
+ },
34
+ };
35
+
36
+ export const SlashedZero: Story = {
37
+ args: {
38
+ fontVariant: "slashed-zero",
39
+ value: "0100200300",
40
+ },
41
+ parameters: {
42
+ docs: {
43
+ description: {
44
+ story:
45
+ "Past `font-variant-numeric: slashed-zero` toe, maar het huidige Rijkshuisstijl-lettertype ondersteunt deze OpenType-variant nog niet, dus is er (nog) geen visueel verschil te zien.",
46
+ },
47
+ },
48
+ },
49
+ };
@@ -1,24 +1,24 @@
1
- import {
2
- TextInput,
3
- type TextInputProps,
4
- } from "@rijkshuisstijl-community/components-react";
5
- import { clsx } from "clsx";
6
- import styles from "./styles.module.css";
7
-
8
- interface ReadOnlyTextInputProps extends TextInputProps {
9
- fontVariant?: "slashed-zero" | "monospace" | "normal";
10
- }
11
-
12
- const ReadOnlyTextInput = (props: ReadOnlyTextInputProps) => {
13
- const { className, fontVariant = "normal", ...restProps } = props;
14
-
15
- return (
16
- <TextInput
17
- readOnly
18
- className={clsx(styles.input, styles[fontVariant], className)}
19
- {...restProps}
20
- />
21
- );
22
- };
23
-
24
- export default ReadOnlyTextInput;
1
+ import {
2
+ TextInput,
3
+ type TextInputProps,
4
+ } from "@rijkshuisstijl-community/components-react";
5
+ import { clsx } from "clsx";
6
+ import styles from "./styles.module.css";
7
+
8
+ interface ReadOnlyTextInputProps extends TextInputProps {
9
+ fontVariant?: "slashed-zero" | "monospace" | "normal";
10
+ }
11
+
12
+ const ReadOnlyTextInput = (props: ReadOnlyTextInputProps) => {
13
+ const { className, fontVariant = "normal", ...restProps } = props;
14
+
15
+ return (
16
+ <TextInput
17
+ readOnly
18
+ className={clsx(styles.input, styles[fontVariant], className)}
19
+ {...restProps}
20
+ />
21
+ );
22
+ };
23
+
24
+ export default ReadOnlyTextInput;
@@ -1,19 +1,19 @@
1
- .input.input {
2
- --utrecht-textbox-max-inline-size: none;
3
- --utrecht-pointer-target-min-size: 36px;
4
- /* field-sizing: content; */
5
- inline-size: -webkit-fill-available;
6
- }
7
-
8
- .normal {
9
- font-variant: normal;
10
- }
11
-
12
- .input.slashed-zero {
13
- /* find a way to use RO font with slashed zero */
14
- font-variant-numeric: slashed-zero;
15
- }
16
-
17
- .input.monospace {
18
- font-family: monospace;
19
- }
1
+ .input.input {
2
+ --utrecht-textbox-max-inline-size: none;
3
+ --utrecht-pointer-target-min-size: 36px;
4
+ /* field-sizing: content; */
5
+ inline-size: -webkit-fill-available;
6
+ }
7
+
8
+ .normal {
9
+ font-variant: normal;
10
+ }
11
+
12
+ .input.slashed-zero {
13
+ /* find a way to use RO font with slashed zero */
14
+ font-variant-numeric: slashed-zero;
15
+ }
16
+
17
+ .input.monospace {
18
+ font-family: monospace;
19
+ }
@@ -0,0 +1,45 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import ScoreBadge from "./ScoreBadge";
3
+
4
+ /**
5
+ * ScoreBadge toont een score als een cirkelvormige meter, optioneel met het
6
+ * maximum en/of als percentage.
7
+ *
8
+ * Verouderd: niet meer in gebruik.
9
+ */
10
+ const meta = {
11
+ title: "Components/ScoreBadge",
12
+ component: ScoreBadge,
13
+ tags: ["autodocs", "deprecated", "custom"],
14
+ args: {
15
+ name: "score",
16
+ ariaLabelPrefix: "Score: ",
17
+ score: 7,
18
+ max: 10,
19
+ },
20
+ } satisfies Meta<typeof ScoreBadge>;
21
+
22
+ export default meta;
23
+ type Story = StoryObj<typeof meta>;
24
+
25
+ export const Default: Story = {};
26
+
27
+ export const WithMaxShown: Story = {
28
+ args: {
29
+ showMax: true,
30
+ },
31
+ };
32
+
33
+ export const Percentage: Story = {
34
+ args: {
35
+ score: 82,
36
+ max: 100,
37
+ inPercentage: true,
38
+ },
39
+ };
40
+
41
+ export const Empty: Story = {
42
+ args: {
43
+ score: null,
44
+ },
45
+ };