@digigov/react-core 1.0.0-55e4210c → 1.0.0-60addd4a
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.
- package/Icon/__snapshots__/index.test.tsx.snap +343 -0
- package/Icon/index.d.ts +25 -0
- package/Icon/index.js +58 -0
- package/Icon/index.test.d.ts +1 -0
- package/Icon/index.test.js +88 -0
- package/es/Icon/__snapshots__/index.test.tsx.snap +343 -0
- package/es/Icon/index.js +34 -0
- package/es/Icon/index.test.js +82 -0
- package/es/index.js +1 -0
- package/es/registry.js +2 -0
- package/esm/Icon/__snapshots__/index.test.tsx.snap +343 -0
- package/esm/Icon/index.js +34 -0
- package/esm/Icon/index.test.js +82 -0
- package/esm/index.js +2 -1
- package/esm/registry.js +2 -0
- package/index.d.ts +1 -0
- package/index.js +13 -0
- package/package.json +3 -3
- package/registry.d.ts +1 -0
- package/registry.js +3 -0
- package/src/Icon/__snapshots__/index.test.tsx.snap +343 -0
- package/src/Icon/index.test.tsx +36 -0
- package/src/Icon/index.tsx +63 -0
- package/src/index.ts +1 -0
- package/src/registry.js +2 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`renders the Icon prop icon= "caret" 1`] = `
|
|
4
|
+
<ForwardRef(Icon)
|
|
5
|
+
icon="caret"
|
|
6
|
+
>
|
|
7
|
+
<ForwardRef(SvgIcon)
|
|
8
|
+
className="govgr-svg-icon--caret"
|
|
9
|
+
>
|
|
10
|
+
<ForwardRef(Base)
|
|
11
|
+
aria-hidden="true"
|
|
12
|
+
as="svg"
|
|
13
|
+
className="govgr-svg-icon--caret govgr-svg-icon"
|
|
14
|
+
focusable="false"
|
|
15
|
+
viewBox="0 0 24 24"
|
|
16
|
+
>
|
|
17
|
+
<svg
|
|
18
|
+
aria-hidden="true"
|
|
19
|
+
className="govgr-svg-icon--caret govgr-svg-icon"
|
|
20
|
+
focusable="false"
|
|
21
|
+
viewBox="0 0 24 24"
|
|
22
|
+
>
|
|
23
|
+
<caret>
|
|
24
|
+
<path
|
|
25
|
+
d="M18,22V2L6,12L18,22z"
|
|
26
|
+
/>
|
|
27
|
+
</caret>
|
|
28
|
+
</svg>
|
|
29
|
+
</ForwardRef(Base)>
|
|
30
|
+
</ForwardRef(SvgIcon)>
|
|
31
|
+
</ForwardRef(Icon)>
|
|
32
|
+
`;
|
|
33
|
+
|
|
34
|
+
exports[`renders the Icon prop icon= "caret" and direction=left 1`] = `
|
|
35
|
+
<ForwardRef(Icon)
|
|
36
|
+
direction="left"
|
|
37
|
+
icon="caret"
|
|
38
|
+
>
|
|
39
|
+
<ForwardRef(SvgIcon)
|
|
40
|
+
className="govgr-svg-icon--caret"
|
|
41
|
+
>
|
|
42
|
+
<ForwardRef(Base)
|
|
43
|
+
aria-hidden="true"
|
|
44
|
+
as="svg"
|
|
45
|
+
className="govgr-svg-icon--caret govgr-svg-icon"
|
|
46
|
+
focusable="false"
|
|
47
|
+
viewBox="0 0 24 24"
|
|
48
|
+
>
|
|
49
|
+
<svg
|
|
50
|
+
aria-hidden="true"
|
|
51
|
+
className="govgr-svg-icon--caret govgr-svg-icon"
|
|
52
|
+
focusable="false"
|
|
53
|
+
viewBox="0 0 24 24"
|
|
54
|
+
>
|
|
55
|
+
<caret
|
|
56
|
+
direction="left"
|
|
57
|
+
>
|
|
58
|
+
<path
|
|
59
|
+
d="M18,22V2L6,12L18,22z"
|
|
60
|
+
/>
|
|
61
|
+
</caret>
|
|
62
|
+
</svg>
|
|
63
|
+
</ForwardRef(Base)>
|
|
64
|
+
</ForwardRef(SvgIcon)>
|
|
65
|
+
</ForwardRef(Icon)>
|
|
66
|
+
`;
|
|
67
|
+
|
|
68
|
+
exports[`renders the Icon prop icon= "check" 1`] = `
|
|
69
|
+
<ForwardRef(Icon)
|
|
70
|
+
icon="check"
|
|
71
|
+
>
|
|
72
|
+
<ForwardRef(SvgIcon)
|
|
73
|
+
className="govgr-svg-icon--check"
|
|
74
|
+
>
|
|
75
|
+
<ForwardRef(Base)
|
|
76
|
+
aria-hidden="true"
|
|
77
|
+
as="svg"
|
|
78
|
+
className="govgr-svg-icon--check govgr-svg-icon"
|
|
79
|
+
focusable="false"
|
|
80
|
+
viewBox="0 0 24 24"
|
|
81
|
+
>
|
|
82
|
+
<svg
|
|
83
|
+
aria-hidden="true"
|
|
84
|
+
className="govgr-svg-icon--check govgr-svg-icon"
|
|
85
|
+
focusable="false"
|
|
86
|
+
viewBox="0 0 24 24"
|
|
87
|
+
>
|
|
88
|
+
<check>
|
|
89
|
+
<polygon
|
|
90
|
+
points="9.49 14.94 4.16 9.67 1.84 12.01 9.5 19.6 22.16 7.05 19.84 4.7 9.5 14.94"
|
|
91
|
+
/>
|
|
92
|
+
</check>
|
|
93
|
+
</svg>
|
|
94
|
+
</ForwardRef(Base)>
|
|
95
|
+
</ForwardRef(SvgIcon)>
|
|
96
|
+
</ForwardRef(Icon)>
|
|
97
|
+
`;
|
|
98
|
+
|
|
99
|
+
exports[`renders the Icon prop icon= "close" 1`] = `
|
|
100
|
+
<ForwardRef(Icon)
|
|
101
|
+
icon="close"
|
|
102
|
+
>
|
|
103
|
+
<ForwardRef(SvgIcon)
|
|
104
|
+
className="govgr-svg-icon--close"
|
|
105
|
+
>
|
|
106
|
+
<ForwardRef(Base)
|
|
107
|
+
aria-hidden="true"
|
|
108
|
+
as="svg"
|
|
109
|
+
className="govgr-svg-icon--close govgr-svg-icon"
|
|
110
|
+
focusable="false"
|
|
111
|
+
viewBox="0 0 24 24"
|
|
112
|
+
>
|
|
113
|
+
<svg
|
|
114
|
+
aria-hidden="true"
|
|
115
|
+
className="govgr-svg-icon--close govgr-svg-icon"
|
|
116
|
+
focusable="false"
|
|
117
|
+
viewBox="0 0 24 24"
|
|
118
|
+
>
|
|
119
|
+
<close>
|
|
120
|
+
<polygon
|
|
121
|
+
points="14.4,11.8 22,4.2 19.7,1.8 12,9.4 4.4,1.8 2,4.2 9.7,11.9 2.1,19.5 4.4,21.9 12.1,14.3 19.7,21.9 22.1,19.5 "
|
|
122
|
+
/>
|
|
123
|
+
</close>
|
|
124
|
+
</svg>
|
|
125
|
+
</ForwardRef(Base)>
|
|
126
|
+
</ForwardRef(SvgIcon)>
|
|
127
|
+
</ForwardRef(Icon)>
|
|
128
|
+
`;
|
|
129
|
+
|
|
130
|
+
exports[`renders the Icon prop icon= "uncheck" 1`] = `
|
|
131
|
+
<ForwardRef(Icon)
|
|
132
|
+
icon="uncheck"
|
|
133
|
+
>
|
|
134
|
+
<ForwardRef(SvgIcon)
|
|
135
|
+
className="govgr-svg-icon--uncheck"
|
|
136
|
+
>
|
|
137
|
+
<ForwardRef(Base)
|
|
138
|
+
aria-hidden="true"
|
|
139
|
+
as="svg"
|
|
140
|
+
className="govgr-svg-icon--uncheck govgr-svg-icon"
|
|
141
|
+
focusable="false"
|
|
142
|
+
viewBox="0 0 24 24"
|
|
143
|
+
>
|
|
144
|
+
<svg
|
|
145
|
+
aria-hidden="true"
|
|
146
|
+
className="govgr-svg-icon--uncheck govgr-svg-icon"
|
|
147
|
+
focusable="false"
|
|
148
|
+
viewBox="0 0 24 24"
|
|
149
|
+
>
|
|
150
|
+
<uncheck>
|
|
151
|
+
<polygon
|
|
152
|
+
points="20.59 5.74 18.26 3.41 12 9.67 5.742 3.41 3.41 5.74 9.67 12 3.41 18.26 5.74 20.6 12 14.33 18.26 20.59 20.59 18.26 14.33 12 20.59 5.74"
|
|
153
|
+
/>
|
|
154
|
+
</uncheck>
|
|
155
|
+
</svg>
|
|
156
|
+
</ForwardRef(Base)>
|
|
157
|
+
</ForwardRef(SvgIcon)>
|
|
158
|
+
</ForwardRef(Icon)>
|
|
159
|
+
`;
|
|
160
|
+
|
|
161
|
+
exports[`renders the Icon props icon= "moreVert" 1`] = `
|
|
162
|
+
<ForwardRef(Icon)
|
|
163
|
+
icon="moreVert"
|
|
164
|
+
>
|
|
165
|
+
<ForwardRef(SvgIcon)
|
|
166
|
+
className="govgr-svg-icon--moreVert"
|
|
167
|
+
>
|
|
168
|
+
<ForwardRef(Base)
|
|
169
|
+
aria-hidden="true"
|
|
170
|
+
as="svg"
|
|
171
|
+
className="govgr-svg-icon--moreVert govgr-svg-icon"
|
|
172
|
+
focusable="false"
|
|
173
|
+
viewBox="0 0 24 24"
|
|
174
|
+
>
|
|
175
|
+
<svg
|
|
176
|
+
aria-hidden="true"
|
|
177
|
+
className="govgr-svg-icon--moreVert govgr-svg-icon"
|
|
178
|
+
focusable="false"
|
|
179
|
+
viewBox="0 0 24 24"
|
|
180
|
+
>
|
|
181
|
+
<moreVert>
|
|
182
|
+
<circle
|
|
183
|
+
cx="12"
|
|
184
|
+
cy="5"
|
|
185
|
+
r="2"
|
|
186
|
+
/>
|
|
187
|
+
<circle
|
|
188
|
+
cx="12"
|
|
189
|
+
cy="12"
|
|
190
|
+
r="2"
|
|
191
|
+
/>
|
|
192
|
+
<circle
|
|
193
|
+
cx="12"
|
|
194
|
+
cy="19"
|
|
195
|
+
r="2"
|
|
196
|
+
/>
|
|
197
|
+
</moreVert>
|
|
198
|
+
</svg>
|
|
199
|
+
</ForwardRef(Base)>
|
|
200
|
+
</ForwardRef(SvgIcon)>
|
|
201
|
+
</ForwardRef(Icon)>
|
|
202
|
+
`;
|
|
203
|
+
|
|
204
|
+
exports[`renders the Icon with no props 1`] = `
|
|
205
|
+
<ForwardRef(Icon)>
|
|
206
|
+
<ForwardRef(SvgIcon)
|
|
207
|
+
className="govgr-svg-icon--arrow"
|
|
208
|
+
>
|
|
209
|
+
<ForwardRef(Base)
|
|
210
|
+
aria-hidden="true"
|
|
211
|
+
as="svg"
|
|
212
|
+
className="govgr-svg-icon--arrow govgr-svg-icon"
|
|
213
|
+
focusable="false"
|
|
214
|
+
viewBox="0 0 24 24"
|
|
215
|
+
>
|
|
216
|
+
<svg
|
|
217
|
+
aria-hidden="true"
|
|
218
|
+
className="govgr-svg-icon--arrow govgr-svg-icon"
|
|
219
|
+
focusable="false"
|
|
220
|
+
viewBox="0 0 24 24"
|
|
221
|
+
>
|
|
222
|
+
<arrow>
|
|
223
|
+
<path
|
|
224
|
+
d="M8.5,2L6.1,4.3l7.6,7.7l-7.6,7.6L8.5,22l10-10L8.5,2z"
|
|
225
|
+
/>
|
|
226
|
+
</arrow>
|
|
227
|
+
</svg>
|
|
228
|
+
</ForwardRef(Base)>
|
|
229
|
+
</ForwardRef(SvgIcon)>
|
|
230
|
+
</ForwardRef(Icon)>
|
|
231
|
+
`;
|
|
232
|
+
|
|
233
|
+
exports[`renders the Icon with prop icon=arrow and direction=up 1`] = `
|
|
234
|
+
<ForwardRef(Icon)
|
|
235
|
+
direction="up"
|
|
236
|
+
>
|
|
237
|
+
<ForwardRef(SvgIcon)
|
|
238
|
+
className="govgr-svg-icon--arrow"
|
|
239
|
+
>
|
|
240
|
+
<ForwardRef(Base)
|
|
241
|
+
aria-hidden="true"
|
|
242
|
+
as="svg"
|
|
243
|
+
className="govgr-svg-icon--arrow govgr-svg-icon"
|
|
244
|
+
focusable="false"
|
|
245
|
+
viewBox="0 0 24 24"
|
|
246
|
+
>
|
|
247
|
+
<svg
|
|
248
|
+
aria-hidden="true"
|
|
249
|
+
className="govgr-svg-icon--arrow govgr-svg-icon"
|
|
250
|
+
focusable="false"
|
|
251
|
+
viewBox="0 0 24 24"
|
|
252
|
+
>
|
|
253
|
+
<arrow
|
|
254
|
+
direction="up"
|
|
255
|
+
>
|
|
256
|
+
<path
|
|
257
|
+
d="M2,15.8l2.3,2.4l7.7-7.6l7.6,7.6l2.4-2.4l-10-10L2,15.8z"
|
|
258
|
+
/>
|
|
259
|
+
</arrow>
|
|
260
|
+
</svg>
|
|
261
|
+
</ForwardRef(Base)>
|
|
262
|
+
</ForwardRef(SvgIcon)>
|
|
263
|
+
</ForwardRef(Icon)>
|
|
264
|
+
`;
|
|
265
|
+
|
|
266
|
+
exports[`renders the Icon with prop prop icon=burger 1`] = `
|
|
267
|
+
<ForwardRef(Icon)
|
|
268
|
+
icon="burger"
|
|
269
|
+
>
|
|
270
|
+
<ForwardRef(SvgIcon)
|
|
271
|
+
className="govgr-svg-icon--burger"
|
|
272
|
+
>
|
|
273
|
+
<ForwardRef(Base)
|
|
274
|
+
aria-hidden="true"
|
|
275
|
+
as="svg"
|
|
276
|
+
className="govgr-svg-icon--burger govgr-svg-icon"
|
|
277
|
+
focusable="false"
|
|
278
|
+
viewBox="0 0 24 24"
|
|
279
|
+
>
|
|
280
|
+
<svg
|
|
281
|
+
aria-hidden="true"
|
|
282
|
+
className="govgr-svg-icon--burger govgr-svg-icon"
|
|
283
|
+
focusable="false"
|
|
284
|
+
viewBox="0 0 24 24"
|
|
285
|
+
>
|
|
286
|
+
<burger>
|
|
287
|
+
<g
|
|
288
|
+
className=""
|
|
289
|
+
>
|
|
290
|
+
<rect
|
|
291
|
+
height="3.3"
|
|
292
|
+
id="govgr-svg-icon--burger__line-1"
|
|
293
|
+
width="20"
|
|
294
|
+
/>
|
|
295
|
+
<rect
|
|
296
|
+
height="3.3"
|
|
297
|
+
id="govgr-svg-icon--burger__line-2"
|
|
298
|
+
width="20"
|
|
299
|
+
/>
|
|
300
|
+
<rect
|
|
301
|
+
height="3.3"
|
|
302
|
+
id="govgr-svg-icon--burger__line-3"
|
|
303
|
+
width="20"
|
|
304
|
+
/>
|
|
305
|
+
</g>
|
|
306
|
+
</burger>
|
|
307
|
+
</svg>
|
|
308
|
+
</ForwardRef(Base)>
|
|
309
|
+
</ForwardRef(SvgIcon)>
|
|
310
|
+
</ForwardRef(Icon)>
|
|
311
|
+
`;
|
|
312
|
+
|
|
313
|
+
exports[`renders the Icon with prop prop icon=globe 1`] = `
|
|
314
|
+
<ForwardRef(Icon)
|
|
315
|
+
icon="globe"
|
|
316
|
+
>
|
|
317
|
+
<ForwardRef(SvgIcon)
|
|
318
|
+
className="govgr-svg-icon--globe"
|
|
319
|
+
>
|
|
320
|
+
<ForwardRef(Base)
|
|
321
|
+
aria-hidden="true"
|
|
322
|
+
as="svg"
|
|
323
|
+
className="govgr-svg-icon--globe govgr-svg-icon"
|
|
324
|
+
focusable="false"
|
|
325
|
+
viewBox="0 0 24 24"
|
|
326
|
+
>
|
|
327
|
+
<svg
|
|
328
|
+
aria-hidden="true"
|
|
329
|
+
className="govgr-svg-icon--globe govgr-svg-icon"
|
|
330
|
+
focusable="false"
|
|
331
|
+
viewBox="0 0 24 24"
|
|
332
|
+
>
|
|
333
|
+
<globe>
|
|
334
|
+
<path
|
|
335
|
+
d="M12,0C5.4,0,0,5.4,0,12s5.4,12,12,12s12-5.4,12-12S18.6,0,12,0z M22.4,13.1C22.4,13.1,22.4,13.2,22.4,13.1 c0,0.4-0.1,0.8-0.2,1.1v0h-3.6c0.2-1.5,0.2-3,0-4.5h3.6v0c0.1,0.4,0.1,0.7,0.2,1.1c0,0,0,0,0,0C22.5,11.6,22.5,12.4,22.4,13.1z M16,21.7c1.1-1.5,2-3.5,2.4-6h3.4c0,0,0,0,0,0C20.8,18.4,18.7,20.6,16,21.7z M21.8,8.2C21.8,8.2,21.8,8.2,21.8,8.2l-3.4,0 c-0.4-2.4-1.3-4.5-2.4-6C18.7,3.4,20.8,5.6,21.8,8.2L21.8,8.2z M17.1,9.7c0.2,1.5,0.2,3,0,4.5h-4.4V9.7L17.1,9.7L17.1,9.7z M12.7,8.2V1.6c1.9,0.6,3.5,3.2,4.1,6.6L12.7,8.2L12.7,8.2z M12.7,15.7h4.1c-0.7,3.4-2.3,6.1-4.1,6.6V15.7L12.7,15.7z M2.2,15.8 C2.2,15.8,2.2,15.8,2.2,15.8l3.4,0c0.4,2.4,1.3,4.5,2.4,6C5.3,20.6,3.2,18.4,2.2,15.8L2.2,15.8z M8,2.3c-1.1,1.5-2,3.5-2.4,6H2.2 c0,0,0,0,0,0C3.2,5.6,5.3,3.4,8,2.3z M6.9,14.3c-0.2-1.5-0.2-3,0-4.5h4.4v4.5H6.9L6.9,14.3z M11.2,15.8v6.6 c-1.9-0.6-3.5-3.2-4.1-6.6L11.2,15.8L11.2,15.8z M11.2,8.3H7.1c0.7-3.4,2.3-6.1,4.1-6.6V8.3L11.2,8.3z M1.6,10.9 C1.6,10.9,1.6,10.8,1.6,10.9c0-0.4,0.1-0.8,0.2-1.1v0h3.6c-0.2,1.5-0.2,3,0,4.5H1.7v0c-0.1-0.4-0.1-0.7-0.2-1.1c0,0,0,0,0,0 C1.5,12.4,1.5,11.6,1.6,10.9z"
|
|
336
|
+
/>
|
|
337
|
+
|
|
338
|
+
</globe>
|
|
339
|
+
</svg>
|
|
340
|
+
</ForwardRef(Base)>
|
|
341
|
+
</ForwardRef(SvgIcon)>
|
|
342
|
+
</ForwardRef(Icon)>
|
|
343
|
+
`;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { mount } from 'enzyme';
|
|
3
|
+
|
|
4
|
+
import Icon from '@digigov/react-core/Icon';
|
|
5
|
+
|
|
6
|
+
it('renders the Icon with no props', () => {
|
|
7
|
+
expect(mount(<Icon />)).toMatchSnapshot();
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
it('renders the Icon with prop icon=arrow and direction=up', () => {
|
|
11
|
+
expect(mount(<Icon direction="up" />)).toMatchSnapshot();
|
|
12
|
+
});
|
|
13
|
+
it('renders the Icon with prop prop icon=burger', () => {
|
|
14
|
+
expect(mount(<Icon icon="burger" />)).toMatchSnapshot();
|
|
15
|
+
});
|
|
16
|
+
it('renders the Icon prop icon= "caret"', () => {
|
|
17
|
+
expect(mount(<Icon icon="caret" />)).toMatchSnapshot();
|
|
18
|
+
});
|
|
19
|
+
it('renders the Icon prop icon= "caret" and direction=left', () => {
|
|
20
|
+
expect(mount(<Icon icon="caret" direction="left" />)).toMatchSnapshot();
|
|
21
|
+
});
|
|
22
|
+
it('renders the Icon prop icon= "check"', () => {
|
|
23
|
+
expect(mount(<Icon icon="check" />)).toMatchSnapshot();
|
|
24
|
+
});
|
|
25
|
+
it('renders the Icon prop icon= "close"', () => {
|
|
26
|
+
expect(mount(<Icon icon="close" />)).toMatchSnapshot();
|
|
27
|
+
});
|
|
28
|
+
it('renders the Icon with prop prop icon=globe', () => {
|
|
29
|
+
expect(mount(<Icon icon="globe" />)).toMatchSnapshot();
|
|
30
|
+
});
|
|
31
|
+
it('renders the Icon props icon= "moreVert"', () => {
|
|
32
|
+
expect(mount(<Icon icon="moreVert" />)).toMatchSnapshot();
|
|
33
|
+
});
|
|
34
|
+
it('renders the Icon prop icon= "uncheck"', () => {
|
|
35
|
+
expect(mount(<Icon icon="uncheck" />)).toMatchSnapshot();
|
|
36
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import SvgIcon, { SvgIconProps } from '@digigov/react-core/SvgIcon';
|
|
4
|
+
import * as icons from '@digigov/react-icons/icons';
|
|
5
|
+
import type { IconTypes } from '@digigov/react-icons/icons';
|
|
6
|
+
|
|
7
|
+
export type IconProps<N extends keyof IconTypes> = SvgIconProps &
|
|
8
|
+
IconTypes[N] & {
|
|
9
|
+
/**
|
|
10
|
+
* ref is optional.
|
|
11
|
+
* ref prop declares the reference of the svg icon component.
|
|
12
|
+
* It can be used to to access the DOM element and the React element.
|
|
13
|
+
*/
|
|
14
|
+
ref?: React.Ref<SVGSVGElement>;
|
|
15
|
+
/**
|
|
16
|
+
* icon is optional, but strongly recommended.
|
|
17
|
+
* Default value is 'arrow'.
|
|
18
|
+
* Use this prop to display the icon you want.
|
|
19
|
+
*/
|
|
20
|
+
icon?: N;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type IconComponent = <C extends keyof IconTypes>(
|
|
24
|
+
props: IconProps<C>
|
|
25
|
+
) => React.ReactElement | null;
|
|
26
|
+
export type IconNames = keyof IconTypes;
|
|
27
|
+
/**
|
|
28
|
+
* Icon is used whenever we need a GOV.GR icon.
|
|
29
|
+
* Choose the icon from the list in icon prop.
|
|
30
|
+
*/
|
|
31
|
+
export const Icon: IconComponent = React.forwardRef<
|
|
32
|
+
SVGSVGElement,
|
|
33
|
+
IconProps<IconNames>
|
|
34
|
+
>(function Icon(
|
|
35
|
+
{ icon = 'arrow', className, ...props }: IconProps<IconNames>,
|
|
36
|
+
ref
|
|
37
|
+
) {
|
|
38
|
+
const IconComponent = icons[icon];
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
const iconProps = IconComponent?.props.reduce((compProps, propName) => {
|
|
42
|
+
const value = props[propName];
|
|
43
|
+
delete props[propName];
|
|
44
|
+
return {
|
|
45
|
+
...compProps,
|
|
46
|
+
[propName]: value,
|
|
47
|
+
};
|
|
48
|
+
}, {});
|
|
49
|
+
|
|
50
|
+
return (
|
|
51
|
+
<SvgIcon
|
|
52
|
+
ref={ref}
|
|
53
|
+
{...props}
|
|
54
|
+
className={clsx(className, {
|
|
55
|
+
[`govgr-svg-icon--${icon}`]: true,
|
|
56
|
+
})}
|
|
57
|
+
>
|
|
58
|
+
<IconComponent {...iconProps} />
|
|
59
|
+
</SvgIcon>
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
export default Icon;
|
package/src/index.ts
CHANGED
|
@@ -117,6 +117,7 @@ export * from '@digigov/react-core/SummaryListItemAction';
|
|
|
117
117
|
export * from '@digigov/react-core/SummaryListItemKey';
|
|
118
118
|
export * from '@digigov/react-core/SummaryListItemValue';
|
|
119
119
|
export * from '@digigov/react-core/SvgIcon';
|
|
120
|
+
export * from '@digigov/react-core/Icon';
|
|
120
121
|
export * from '@digigov/react-core/Table';
|
|
121
122
|
export * from '@digigov/react-core/TableBody';
|
|
122
123
|
export * from '@digigov/react-core/TableCaption';
|
package/src/registry.js
CHANGED
|
@@ -122,6 +122,7 @@ import * as _digigov_react_core_HellenicRepublicLogo_logo_inverted_el from '@dig
|
|
|
122
122
|
import * as _digigov_react_core_HellenicRepublicLogo_logo_inverted_en from '@digigov/react-core/HellenicRepublicLogo/logo-inverted-en';
|
|
123
123
|
import * as _digigov_react_core_Hidden from '@digigov/react-core/Hidden';
|
|
124
124
|
import * as _digigov_react_core_Hint from '@digigov/react-core/Hint';
|
|
125
|
+
import * as _digigov_react_core_Icon from '@digigov/react-core/Icon';
|
|
125
126
|
import * as _digigov_react_core from '@digigov/react-core';
|
|
126
127
|
import * as _digigov_react_core_KitchenSinkAllComponents from '@digigov/react-core/KitchenSinkAllComponents';
|
|
127
128
|
import * as _digigov_react_core_KitchenSinkCard from '@digigov/react-core/KitchenSinkCard';
|
|
@@ -388,6 +389,7 @@ export default {
|
|
|
388
389
|
'@digigov/react-core/HellenicRepublicLogo/logo-inverted-en': lazyImport(_digigov_react_core_HellenicRepublicLogo_logo_inverted_en),
|
|
389
390
|
'@digigov/react-core/Hidden': lazyImport(_digigov_react_core_Hidden),
|
|
390
391
|
'@digigov/react-core/Hint': lazyImport(_digigov_react_core_Hint),
|
|
392
|
+
'@digigov/react-core/Icon': lazyImport(_digigov_react_core_Icon),
|
|
391
393
|
'@digigov/react-core': lazyImport(_digigov_react_core),
|
|
392
394
|
'@digigov/react-core/KitchenSinkAllComponents': lazyImport(_digigov_react_core_KitchenSinkAllComponents),
|
|
393
395
|
'@digigov/react-core/KitchenSinkCard': lazyImport(_digigov_react_core_KitchenSinkCard),
|