thomas-uikit-core 1.0.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.
@@ -0,0 +1,704 @@
1
+ import React from 'react'
2
+
3
+ export type IconName =
4
+ | 'filter'
5
+ | 'search'
6
+ | 'add'
7
+ | 'edit'
8
+ | 'delete'
9
+ | 'close'
10
+ | 'check'
11
+ | 'arrow-down'
12
+ | 'arrow-up'
13
+ | 'arrow-left'
14
+ | 'pause'
15
+ | 'download'
16
+ | 'arrow-down-select'
17
+ | 'home'
18
+ | 'list'
19
+ | 'file'
20
+ | 'task'
21
+ | 'company'
22
+ | 'notification'
23
+ | 'user'
24
+
25
+ interface IconProps {
26
+ name: IconName
27
+ size?: number
28
+ className?: string
29
+ color?: string
30
+ }
31
+
32
+ const icons: Record<IconName, React.FC<React.SVGProps<SVGSVGElement>>> = {
33
+ company: (props) => (
34
+ <svg
35
+ xmlns="http://www.w3.org/2000/svg"
36
+ width="20"
37
+ height="20"
38
+ viewBox="0 0 20 20"
39
+ fill="none"
40
+ {...props}
41
+ >
42
+ <g clipPath="url(#clip0_29345_12597)">
43
+ <path
44
+ d="M2.5 17.5H17.5"
45
+ stroke="#3B5AF7"
46
+ strokeWidth="1.5"
47
+ strokeLinecap="round"
48
+ strokeLinejoin="round"
49
+ />
50
+ <path
51
+ d="M4.16675 17.5V5.83333L10.8334 2.5V17.5"
52
+ stroke="#3B5AF7"
53
+ strokeWidth="1.5"
54
+ strokeLinecap="round"
55
+ strokeLinejoin="round"
56
+ />
57
+ <path
58
+ d="M15.8333 17.4999V9.16659L10.8333 5.83325"
59
+ stroke="#3B5AF7"
60
+ strokeWidth="1.5"
61
+ strokeLinecap="round"
62
+ strokeLinejoin="round"
63
+ />
64
+ <path
65
+ d="M7.5 7.5V7.50833"
66
+ stroke="#3B5AF7"
67
+ strokeWidth="1.5"
68
+ strokeLinecap="round"
69
+ strokeLinejoin="round"
70
+ />
71
+ <path
72
+ d="M7.5 10V10.0083"
73
+ stroke="#3B5AF7"
74
+ strokeWidth="1.5"
75
+ strokeLinecap="round"
76
+ strokeLinejoin="round"
77
+ />
78
+ <path
79
+ d="M7.5 12.5V12.5083"
80
+ stroke="#3B5AF7"
81
+ strokeWidth="1.5"
82
+ strokeLinecap="round"
83
+ strokeLinejoin="round"
84
+ />
85
+ <path
86
+ d="M7.5 15V15.0083"
87
+ stroke="#3B5AF7"
88
+ strokeWidth="1.5"
89
+ strokeLinecap="round"
90
+ strokeLinejoin="round"
91
+ />
92
+ </g>
93
+ <defs>
94
+ <clipPath id="clip0_29345_12597">
95
+ <rect width="20" height="20" fill="white" />
96
+ </clipPath>
97
+ </defs>
98
+ </svg>
99
+ ),
100
+ notification: (props) => (
101
+ <svg
102
+ width="24"
103
+ height="24"
104
+ viewBox="0 0 24 24"
105
+ fill="none"
106
+ xmlns="http://www.w3.org/2000/svg"
107
+ {...props}
108
+ >
109
+ <path
110
+ d="M10.3335 6.16667C10.3335 5.72464 10.5091 5.30072 10.8217 4.98816C11.1342 4.67559 11.5581 4.5 12.0002 4.5C12.4422 4.5 12.8661 4.67559 13.1787 4.98816C13.4912 5.30072 13.6668 5.72464 13.6668 6.16667C14.6238 6.61919 15.4397 7.32361 16.0269 8.20442C16.6141 9.08523 16.9505 10.1092 17.0002 11.1667V13.6667C17.0629 14.1848 17.2464 14.6809 17.5358 15.1151C17.8253 15.5493 18.2127 15.9095 18.6668 16.1667H5.3335C5.78761 15.9095 6.175 15.5493 6.46449 15.1151C6.75397 14.6809 6.93745 14.1848 7.00016 13.6667V11.1667C7.0498 10.1092 7.38625 9.08523 7.97345 8.20442C8.56066 7.32361 9.37649 6.61919 10.3335 6.16667Z"
111
+ stroke="black"
112
+ strokeWidth="1.5"
113
+ strokeLinecap="round"
114
+ strokeLinejoin="round"
115
+ />
116
+ <path
117
+ d="M9.5 16.1667V17C9.5 17.6631 9.76339 18.2989 10.2322 18.7678C10.7011 19.2366 11.337 19.5 12 19.5C12.663 19.5 13.2989 19.2366 13.7678 18.7678C14.2366 18.2989 14.5 17.6631 14.5 17V16.1667"
118
+ stroke="black"
119
+ strokeWidth="1.5"
120
+ strokeLinecap="round"
121
+ strokeLinejoin="round"
122
+ />
123
+ </svg>
124
+ ),
125
+ user: (props) => (
126
+ <svg
127
+ width="24"
128
+ height="24"
129
+ viewBox="0 0 24 24"
130
+ fill="none"
131
+ xmlns="http://www.w3.org/2000/svg"
132
+ {...props}
133
+ >
134
+ <g clip-path="url(#clip0_15856_33162)">
135
+ <path
136
+ d="M8.6665 8.00002C8.6665 8.88408 9.01769 9.73192 9.64281 10.357C10.2679 10.9822 11.1158 11.3334 11.9998 11.3334C12.8839 11.3334 13.7317 10.9822 14.3569 10.357C14.982 9.73192 15.3332 8.88408 15.3332 8.00002C15.3332 7.11597 14.982 6.26812 14.3569 5.643C13.7317 5.01788 12.8839 4.66669 11.9998 4.66669C11.1158 4.66669 10.2679 5.01788 9.64281 5.643C9.01769 6.26812 8.6665 7.11597 8.6665 8.00002Z"
137
+ stroke="black"
138
+ strokeWidth="1.5"
139
+ strokeLinecap="round"
140
+ strokeLinejoin="round"
141
+ />
142
+ <path
143
+ d="M7 19.3333V17.6666C7 16.7826 7.35119 15.9347 7.97631 15.3096C8.60143 14.6845 9.44928 14.3333 10.3333 14.3333H13.6667C14.5507 14.3333 15.3986 14.6845 16.0237 15.3096C16.6488 15.9347 17 16.7826 17 17.6666V19.3333"
144
+ stroke="black"
145
+ strokeWidth="1.5"
146
+ strokeLinecap="round"
147
+ strokeLinejoin="round"
148
+ />
149
+ </g>
150
+ <defs>
151
+ <clipPath id="clip0_15856_33162">
152
+ <rect width="24" height="24" rx="12" fill="white" />
153
+ </clipPath>
154
+ </defs>
155
+ </svg>
156
+ ),
157
+ home: (props) => (
158
+ <svg
159
+ xmlns="http://www.w3.org/2000/svg"
160
+ width="20"
161
+ height="20"
162
+ viewBox="0 0 20 20"
163
+ fill="none"
164
+ {...props}
165
+ >
166
+ <g clipPath="url(#clip0_29149_9500)">
167
+ <path
168
+ d="M4.16667 10H2.5L10 2.5L17.5 10H15.8333"
169
+ stroke="currentColor"
170
+ strokeWidth="1.5"
171
+ strokeLinecap="round"
172
+ strokeLinejoin="round"
173
+ />
174
+ <path
175
+ d="M4.16675 10V15.8333C4.16675 16.2754 4.34234 16.6993 4.6549 17.0118C4.96746 17.3244 5.39139 17.5 5.83341 17.5H14.1667C14.6088 17.5 15.0327 17.3244 15.3453 17.0118C15.6578 16.6993 15.8334 16.2754 15.8334 15.8333V10"
176
+ stroke="currentColor"
177
+ strokeWidth="1.5"
178
+ strokeLinecap="round"
179
+ strokeLinejoin="round"
180
+ />
181
+ <path
182
+ d="M7.5 17.4999V12.4999C7.5 12.0579 7.6756 11.634 7.98816 11.3214C8.30072 11.0088 8.72464 10.8333 9.16667 10.8333H10.8333C11.2754 10.8333 11.6993 11.0088 12.0118 11.3214C12.3244 11.634 12.5 12.0579 12.5 12.4999V17.4999"
183
+ stroke="currentColor"
184
+ strokeWidth="1.5"
185
+ strokeLinecap="round"
186
+ strokeLinejoin="round"
187
+ />
188
+ </g>
189
+ <defs>
190
+ <clipPath id="clip0_29149_9500">
191
+ <rect width="20" height="20" fill="white" />
192
+ </clipPath>
193
+ </defs>
194
+ </svg>
195
+ ),
196
+ list: (props) => (
197
+ <svg
198
+ xmlns="http://www.w3.org/2000/svg"
199
+ width="20"
200
+ height="20"
201
+ viewBox="0 0 20 20"
202
+ fill="none"
203
+ {...props}
204
+ >
205
+ <g clipPath="url(#clip0_29149_9508)">
206
+ <path
207
+ d="M11.6665 2.5V5.83333C11.6665 6.05435 11.7543 6.26631 11.9106 6.42259C12.0669 6.57887 12.2788 6.66667 12.4998 6.66667H15.8332"
208
+ stroke="currentColor"
209
+ strokeWidth="1.5"
210
+ strokeLinecap="round"
211
+ strokeLinejoin="round"
212
+ />
213
+ <path
214
+ d="M14.1665 17.5H5.83317C5.39114 17.5 4.96722 17.3244 4.65466 17.0118C4.3421 16.6993 4.1665 16.2754 4.1665 15.8333V4.16667C4.1665 3.72464 4.3421 3.30072 4.65466 2.98816C4.96722 2.67559 5.39114 2.5 5.83317 2.5H11.6665L15.8332 6.66667V15.8333C15.8332 16.2754 15.6576 16.6993 15.345 17.0118C15.0325 17.3244 14.6085 17.5 14.1665 17.5Z"
215
+ stroke="currentColor"
216
+ strokeWidth="1.5"
217
+ strokeLinecap="round"
218
+ strokeLinejoin="round"
219
+ />
220
+ <path
221
+ d="M7.5 7.5H8.33333"
222
+ stroke="currentColor"
223
+ strokeWidth="1.5"
224
+ strokeLinecap="round"
225
+ strokeLinejoin="round"
226
+ />
227
+ <path
228
+ d="M7.5 10.8333H12.5"
229
+ stroke="currentColor"
230
+ strokeWidth="1.5"
231
+ strokeLinecap="round"
232
+ strokeLinejoin="round"
233
+ />
234
+ <path
235
+ d="M7.5 14.1667H12.5"
236
+ stroke="currentColor"
237
+ strokeWidth="1.5"
238
+ strokeLinecap="round"
239
+ strokeLinejoin="round"
240
+ />
241
+ </g>
242
+ <defs>
243
+ <clipPath id="clip0_29149_9508">
244
+ <rect width="20" height="20" fill="white" />
245
+ </clipPath>
246
+ </defs>
247
+ </svg>
248
+ ),
249
+ file: (props) => (
250
+ <svg
251
+ xmlns="http://www.w3.org/2000/svg"
252
+ width="20"
253
+ height="20"
254
+ viewBox="0 0 20 20"
255
+ fill="none"
256
+ {...props}
257
+ >
258
+ <g clipPath="url(#clip0_29149_1912)">
259
+ <path
260
+ d="M11.25 15.8333H4.16667C3.72464 15.8333 3.30072 15.6577 2.98816 15.3451C2.67559 15.0325 2.5 14.6086 2.5 14.1666V4.99992C2.5 4.55789 2.67559 4.13397 2.98816 3.82141C3.30072 3.50885 3.72464 3.33325 4.16667 3.33325H7.5L10 5.83325H15.8333C16.2754 5.83325 16.6993 6.00885 17.0118 6.32141C17.3244 6.63397 17.5 7.05789 17.5 7.49992V8.74992"
261
+ stroke="currentColor"
262
+ strokeWidth="1.5"
263
+ strokeLinecap="round"
264
+ strokeLinejoin="round"
265
+ />
266
+ <path
267
+ d="M17.5001 12.5H15.4167C15.0852 12.5 14.7673 12.6317 14.5329 12.8661C14.2984 13.1005 14.1667 13.4185 14.1667 13.75C14.1667 14.0815 14.2984 14.3995 14.5329 14.6339C14.7673 14.8683 15.0852 15 15.4167 15H16.2501C16.5816 15 16.8995 15.1317 17.134 15.3661C17.3684 15.6005 17.5001 15.9185 17.5001 16.25C17.5001 16.5815 17.3684 16.8995 17.134 17.1339C16.8995 17.3683 16.5816 17.5 16.2501 17.5H14.1667"
268
+ stroke="currentColor"
269
+ strokeWidth="1.5"
270
+ strokeLinecap="round"
271
+ strokeLinejoin="round"
272
+ />
273
+ <path
274
+ d="M15.8333 17.5001V18.3334M15.8333 11.6667V12.5001"
275
+ stroke="currentColor"
276
+ strokeWidth="1.5"
277
+ strokeLinecap="round"
278
+ strokeLinejoin="round"
279
+ />
280
+ </g>
281
+ <defs>
282
+ <clipPath id="clip0_29149_1912">
283
+ <rect width="20" height="20" fill="white" />
284
+ </clipPath>
285
+ </defs>
286
+ </svg>
287
+ ),
288
+ task: (props) => (
289
+ <svg
290
+ xmlns="http://www.w3.org/2000/svg"
291
+ width="20"
292
+ height="20"
293
+ viewBox="0 0 20 20"
294
+ fill="none"
295
+ {...props}
296
+ >
297
+ <g clipPath="url(#clip0_29149_8563)">
298
+ <path
299
+ d="M6.66667 17.5001H5C4.33696 17.5001 3.70107 17.2367 3.23223 16.7678C2.76339 16.299 2.5 15.6631 2.5 15.0001V14.1667H7.08333"
300
+ stroke="currentColor"
301
+ strokeWidth="1.5"
302
+ strokeLinecap="round"
303
+ strokeLinejoin="round"
304
+ />
305
+ <path
306
+ d="M14.1667 7.08333V4.16667C14.1667 3.83703 14.2645 3.5148 14.4476 3.24072C14.6308 2.96664 14.8911 2.75301 15.1956 2.62687C15.5002 2.50072 15.8353 2.46772 16.1586 2.53203C16.4819 2.59633 16.7788 2.75507 17.0119 2.98816C17.245 3.22124 17.4037 3.51822 17.4681 3.84152C17.5324 4.16482 17.4994 4.49993 17.3732 4.80447C17.2471 5.10902 17.0334 5.36931 16.7594 5.55245C16.4853 5.73559 16.1631 5.83333 15.8334 5.83333H14.1667"
307
+ stroke="currentColor"
308
+ strokeWidth="1.5"
309
+ strokeLinecap="round"
310
+ strokeLinejoin="round"
311
+ />
312
+ <path
313
+ d="M15.8334 2.5H6.66675C6.00371 2.5 5.36782 2.76339 4.89898 3.23223C4.43014 3.70107 4.16675 4.33696 4.16675 5V14.1667"
314
+ stroke="currentColor"
315
+ strokeWidth="1.5"
316
+ strokeLinecap="round"
317
+ strokeLinejoin="round"
318
+ />
319
+ <path
320
+ d="M7.5 5.83325H10.8333"
321
+ stroke="currentColor"
322
+ strokeWidth="1.5"
323
+ strokeLinecap="round"
324
+ strokeLinejoin="round"
325
+ />
326
+ <path
327
+ d="M7.5 9.16675H10.8333"
328
+ stroke="currentColor"
329
+ strokeWidth="1.5"
330
+ strokeLinecap="round"
331
+ strokeLinejoin="round"
332
+ />
333
+ <path
334
+ d="M15.35 10.5084C15.6782 10.1802 16.1233 9.99585 16.5875 9.99585C17.0517 9.99585 17.4968 10.1802 17.825 10.5084C18.1532 10.8366 18.3376 11.2818 18.3376 11.7459C18.3376 12.2101 18.1532 12.6552 17.825 12.9834L12.5 18.3334H10V15.8334L15.35 10.5084Z"
335
+ stroke="currentColor"
336
+ strokeWidth="1.5"
337
+ strokeLinecap="round"
338
+ strokeLinejoin="round"
339
+ />
340
+ </g>
341
+ <defs>
342
+ <clipPath id="clip0_29149_8563">
343
+ <rect width="20" height="20" fill="white" />
344
+ </clipPath>
345
+ </defs>
346
+ </svg>
347
+ ),
348
+ filter: (props) => (
349
+ <svg
350
+ xmlns="http://www.w3.org/2000/svg"
351
+ width="16"
352
+ height="16"
353
+ viewBox="0 0 16 16"
354
+ fill="none"
355
+ {...props}
356
+ >
357
+ <path
358
+ fillRule="evenodd"
359
+ clipRule="evenodd"
360
+ d="M2.16699 2.6665C2.16699 2.39036 2.39085 2.1665 2.66699 2.1665H13.3337C13.6098 2.1665 13.8337 2.39036 13.8337 2.6665V4.1145C13.8336 4.60067 13.6404 5.06699 13.2965 5.41072C13.2965 5.41074 13.2966 5.41071 13.2965 5.41072L10.5003 8.20694V12.6665C10.5003 12.8817 10.3626 13.0728 10.1584 13.1408L6.15844 14.4742C6.00597 14.525 5.83835 14.4994 5.70797 14.4055C5.57759 14.3115 5.50033 14.1606 5.50033 13.9998V8.52647L2.64369 5.38417C2.33702 5.04677 2.16704 4.60717 2.16699 4.15122V2.6665ZM3.16699 3.1665V4.15112C3.16699 4.15114 3.16699 4.1511 3.16699 4.15112C3.16703 4.35833 3.24426 4.55815 3.38363 4.7115C3.38364 4.71151 3.38362 4.71149 3.38363 4.7115L6.3703 7.99683C6.45396 8.08887 6.50033 8.20879 6.50033 8.33317V13.3061L9.50033 12.3061V7.99984C9.50033 7.86723 9.553 7.74005 9.64677 7.64628L12.5894 4.70362C12.7457 4.5474 12.8336 4.33546 12.8337 4.1145C12.8337 4.11447 12.8337 4.11454 12.8337 4.1145V3.1665H3.16699Z"
361
+ fill="currentColor"
362
+ />
363
+ </svg>
364
+ ),
365
+ search: (props) => (
366
+ <svg
367
+ xmlns="http://www.w3.org/2000/svg"
368
+ width="16"
369
+ height="16"
370
+ viewBox="0 0 16 16"
371
+ fill="none"
372
+ {...props}
373
+ >
374
+ <path
375
+ d="M7 12C9.76142 12 12 9.76142 12 7C12 4.23858 9.76142 2 7 2C4.23858 2 2 4.23858 2 7C2 9.76142 4.23858 12 7 12Z"
376
+ stroke="currentColor"
377
+ strokeWidth="1.5"
378
+ strokeLinecap="round"
379
+ strokeLinejoin="round"
380
+ fill="none"
381
+ />
382
+ <path
383
+ d="M10.5 10.5L14 14"
384
+ stroke="currentColor"
385
+ strokeWidth="1.5"
386
+ strokeLinecap="round"
387
+ strokeLinejoin="round"
388
+ />
389
+ </svg>
390
+ ),
391
+ add: (props) => (
392
+ <svg
393
+ xmlns="http://www.w3.org/2000/svg"
394
+ width="16"
395
+ height="16"
396
+ viewBox="0 0 16 16"
397
+ fill="none"
398
+ {...props}
399
+ >
400
+ <path
401
+ d="M8 3V13M3 8H13"
402
+ stroke="currentColor"
403
+ strokeWidth="1.5"
404
+ strokeLinecap="round"
405
+ strokeLinejoin="round"
406
+ />
407
+ </svg>
408
+ ),
409
+ edit: (props) => (
410
+ <svg
411
+ xmlns="http://www.w3.org/2000/svg"
412
+ width="17"
413
+ height="17"
414
+ viewBox="0 0 17 17"
415
+ fill="none"
416
+ {...props}
417
+ >
418
+ <path
419
+ d="M13.0491 5.92764C13.3112 5.66556 13.4585 5.31007 13.4586 4.93937C13.4586 4.56868 13.3114 4.21315 13.0493 3.951C12.7872 3.68885 12.4317 3.54155 12.061 3.5415C11.6904 3.54146 11.3348 3.68867 11.0727 3.95076L4.45528 10.5696C4.34016 10.6844 4.25502 10.8257 4.20737 10.9812L3.55237 13.139C3.53956 13.1819 3.53859 13.2275 3.54957 13.2709C3.56055 13.3142 3.58307 13.3539 3.61475 13.3855C3.64642 13.4171 3.68606 13.4396 3.72946 13.4505C3.77287 13.4614 3.81842 13.4603 3.86128 13.4475L6.01964 12.793C6.17492 12.7457 6.31623 12.6611 6.43118 12.5465L13.0491 5.92764Z"
420
+ stroke="#414143"
421
+ strokeLinecap="round"
422
+ strokeLinejoin="round"
423
+ />
424
+ <path
425
+ d="M9.9873 5.0293L11.9706 7.01263"
426
+ stroke="#414143"
427
+ strokeLinecap="round"
428
+ strokeLinejoin="round"
429
+ />
430
+ </svg>
431
+ ),
432
+ delete: (props) => (
433
+ <svg
434
+ xmlns="http://www.w3.org/2000/svg"
435
+ width="17"
436
+ height="17"
437
+ viewBox="0 0 17 17"
438
+ fill="none"
439
+ {...props}
440
+ >
441
+ <path
442
+ d="M3.40039 5.19434H13.6004"
443
+ stroke="#414143"
444
+ strokeLinecap="round"
445
+ strokeLinejoin="round"
446
+ />
447
+ <path
448
+ d="M7.22461 7.83887V11.8055"
449
+ stroke="#414143"
450
+ strokeLinecap="round"
451
+ strokeLinejoin="round"
452
+ />
453
+ <path
454
+ d="M9.77441 7.83887V11.8055"
455
+ stroke="#414143"
456
+ strokeLinecap="round"
457
+ strokeLinejoin="round"
458
+ />
459
+ <path
460
+ d="M4.03711 5.19434L4.67461 13.1277C4.67461 13.4784 4.80894 13.8147 5.04805 14.0627C5.28716 14.3106 5.61146 14.4499 5.94961 14.4499H11.0496C11.3878 14.4499 11.7121 14.3106 11.9512 14.0627C12.1903 13.8147 12.3246 13.4784 12.3246 13.1277L12.9621 5.19434"
461
+ stroke="#414143"
462
+ strokeLinecap="round"
463
+ strokeLinejoin="round"
464
+ />
465
+ <path
466
+ d="M6.58691 5.19426V3.21092C6.58691 3.03558 6.65408 2.86742 6.77363 2.74344C6.89319 2.61946 7.05534 2.5498 7.22441 2.5498H9.77441C9.94349 2.5498 10.1056 2.61946 10.2252 2.74344C10.3447 2.86742 10.4119 3.03558 10.4119 3.21092V5.19426"
467
+ stroke="#414143"
468
+ strokeLinecap="round"
469
+ strokeLinejoin="round"
470
+ />
471
+ </svg>
472
+ ),
473
+ close: (props) => (
474
+ <svg
475
+ xmlns="http://www.w3.org/2000/svg"
476
+ width="16"
477
+ height="16"
478
+ viewBox="0 0 16 16"
479
+ fill="none"
480
+ {...props}
481
+ >
482
+ <path
483
+ d="M4 4L12 12M12 4L4 12"
484
+ stroke="currentColor"
485
+ strokeWidth="1.5"
486
+ strokeLinecap="round"
487
+ strokeLinejoin="round"
488
+ />
489
+ </svg>
490
+ ),
491
+ check: (props) => (
492
+ <svg
493
+ xmlns="http://www.w3.org/2000/svg"
494
+ width="16"
495
+ height="16"
496
+ viewBox="0 0 16 16"
497
+ fill="none"
498
+ {...props}
499
+ >
500
+ <path
501
+ d="M3 8L6 11L13 4"
502
+ stroke="currentColor"
503
+ strokeWidth="1.5"
504
+ strokeLinecap="round"
505
+ strokeLinejoin="round"
506
+ fill="none"
507
+ />
508
+ </svg>
509
+ ),
510
+ 'arrow-down': (props) => (
511
+ <svg
512
+ xmlns="http://www.w3.org/2000/svg"
513
+ width="16"
514
+ height="16"
515
+ viewBox="0 0 16 16"
516
+ fill="none"
517
+ {...props}
518
+ >
519
+ <path
520
+ d="M4 6L8 10L12 6"
521
+ stroke="currentColor"
522
+ strokeWidth="1.5"
523
+ strokeLinecap="round"
524
+ strokeLinejoin="round"
525
+ fill="none"
526
+ />
527
+ </svg>
528
+ ),
529
+ 'arrow-up': (props) => (
530
+ <svg
531
+ xmlns="http://www.w3.org/2000/svg"
532
+ width="16"
533
+ height="16"
534
+ viewBox="0 0 16 16"
535
+ fill="none"
536
+ {...props}
537
+ >
538
+ <path
539
+ d="M4 10L8 6L12 10"
540
+ stroke="currentColor"
541
+ strokeWidth="1.5"
542
+ strokeLinecap="round"
543
+ strokeLinejoin="round"
544
+ fill="none"
545
+ />
546
+ </svg>
547
+ ),
548
+ 'arrow-left': (props) => (
549
+ <svg
550
+ xmlns="http://www.w3.org/2000/svg"
551
+ width="16"
552
+ height="16"
553
+ viewBox="0 0 16 16"
554
+ fill="none"
555
+ {...props}
556
+ >
557
+ <g clip-path="url(#clip0_20456_23073)">
558
+ <path
559
+ d="M3.33325 8H12.6666"
560
+ stroke="black"
561
+ strokeWidth="1.5"
562
+ strokeLinecap="round"
563
+ strokeLinejoin="round"
564
+ />
565
+ <path
566
+ d="M3.33325 8H12.6666"
567
+ stroke="black"
568
+ strokeOpacity="0.2"
569
+ strokeWidth="1.5"
570
+ strokeLinecap="round"
571
+ strokeLinejoin="round"
572
+ />
573
+ <path
574
+ d="M3.33325 8L7.33325 12"
575
+ stroke="black"
576
+ strokeWidth="1.5"
577
+ strokeLinecap="round"
578
+ strokeLinejoin="round"
579
+ />
580
+ <path
581
+ d="M3.33325 8L7.33325 12"
582
+ stroke="black"
583
+ strokeOpacity="0.2"
584
+ strokeWidth="1.5"
585
+ strokeLinecap="round"
586
+ strokeLinejoin="round"
587
+ />
588
+ <path
589
+ d="M3.33325 8L7.33325 4"
590
+ stroke="black"
591
+ strokeWidth="1.5"
592
+ strokeLinecap="round"
593
+ strokeLinejoin="round"
594
+ />
595
+ <path
596
+ d="M3.33325 8L7.33325 4"
597
+ stroke="black"
598
+ strokeOpacity="0.2"
599
+ strokeWidth="1.5"
600
+ strokeLinecap="round"
601
+ strokeLinejoin="round"
602
+ />
603
+ </g>
604
+ <defs>
605
+ <clipPath id="clip0_20456_23073">
606
+ <rect width="16" height="16" fill="white" />
607
+ </clipPath>
608
+ </defs>
609
+ </svg>
610
+ ),
611
+ 'arrow-down-select': (props) => (
612
+ <svg
613
+ xmlns="http://www.w3.org/2000/svg"
614
+ width="9"
615
+ height="5"
616
+ viewBox="0 0 9 5"
617
+ fill="none"
618
+ {...props}
619
+ >
620
+ <path
621
+ fillRule="evenodd"
622
+ clipRule="evenodd"
623
+ d="M0.146447 0.146447C0.341709 -0.0488155 0.658291 -0.0488155 0.853553 0.146447L4.5 3.79289L8.14645 0.146447C8.34171 -0.0488155 8.65829 -0.0488155 8.85355 0.146447C9.04882 0.341709 9.04882 0.658291 8.85355 0.853553L4.85355 4.85355C4.65829 5.04882 4.34171 5.04882 4.14645 4.85355L0.146447 0.853553C-0.0488155 0.658291 -0.0488155 0.341709 0.146447 0.146447Z"
624
+ fill="#414143"
625
+ />
626
+ </svg>
627
+ ),
628
+ pause: (props) => (
629
+ <svg
630
+ xmlns="http://www.w3.org/2000/svg"
631
+ width="16"
632
+ height="16"
633
+ viewBox="0 0 16 16"
634
+ fill="none"
635
+ {...props}
636
+ >
637
+ <path
638
+ d="M11.1997 3.2002H9.59974C9.30519 3.2002 9.06641 3.43898 9.06641 3.73353V12.2669C9.06641 12.5614 9.30519 12.8002 9.59974 12.8002H11.1997C11.4943 12.8002 11.7331 12.5614 11.7331 12.2669V3.73353C11.7331 3.43898 11.4943 3.2002 11.1997 3.2002Z"
639
+ stroke="#414143"
640
+ strokeLinecap="round"
641
+ strokeLinejoin="round"
642
+ />
643
+ <path
644
+ d="M6.39994 3.2002H4.79993C4.50538 3.2002 4.2666 3.43898 4.2666 3.73353V12.2669C4.2666 12.5614 4.50538 12.8002 4.79993 12.8002H6.39994C6.69449 12.8002 6.93327 12.5614 6.93327 12.2669V3.73353C6.93327 3.43898 6.69449 3.2002 6.39994 3.2002Z"
645
+ stroke="#414143"
646
+ strokeLinecap="round"
647
+ strokeLinejoin="round"
648
+ />
649
+ </svg>
650
+ ),
651
+ download: (props) => (
652
+ <svg
653
+ xmlns="http://www.w3.org/2000/svg"
654
+ width="20"
655
+ height="20"
656
+ viewBox="0 0 20 20"
657
+ fill="none"
658
+ {...props}
659
+ >
660
+ <g clipPath="url(#clip0_29149_6026)">
661
+ <path
662
+ d="M3.33325 14.1667V15.8334C3.33325 16.2754 3.50885 16.6994 3.82141 17.0119C4.13397 17.3245 4.55789 17.5001 4.99992 17.5001H14.9999C15.4419 17.5001 15.8659 17.3245 16.1784 17.0119C16.491 16.6994 16.6666 16.2754 16.6666 15.8334V14.1667"
663
+ stroke="black"
664
+ strokeLinecap="round"
665
+ strokeLinejoin="round"
666
+ />
667
+ <path
668
+ d="M5.83325 9.16675L9.99992 13.3334L14.1666 9.16675"
669
+ stroke="black"
670
+ strokeLinecap="round"
671
+ strokeLinejoin="round"
672
+ />
673
+ <path d="M10 3.33325V13.3333" stroke="black" strokeLinecap="round" strokeLinejoin="round" />
674
+ </g>
675
+ <defs>
676
+ <clipPath id="clip0_29149_6026">
677
+ <rect width="20" height="20" fill="white" />
678
+ </clipPath>
679
+ </defs>
680
+ </svg>
681
+ ),
682
+ }
683
+
684
+ export const Icon: React.FC<IconProps> = ({ name, size = 16, className = '', color }) => {
685
+ const IconComponent = icons[name]
686
+
687
+ if (!IconComponent) {
688
+ console.warn(`Icon "${name}" not found`)
689
+ return null
690
+ }
691
+
692
+ return (
693
+ <IconComponent
694
+ width={size}
695
+ height={size}
696
+ className={className}
697
+ style={{
698
+ minWidth: size,
699
+ minHeight: size,
700
+ ...(color ? { color } : {}),
701
+ }}
702
+ />
703
+ )
704
+ }