@illlustrations/avatars 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.
Files changed (45) hide show
  1. package/AI.md +84 -0
  2. package/ARTWORK.md +34 -0
  3. package/CHANGELOG.md +21 -0
  4. package/LICENSE +11 -0
  5. package/LICENSE-ARTWORK +9 -0
  6. package/LICENSE-CODE +21 -0
  7. package/README.md +170 -0
  8. package/dist/core/index.d.ts +4 -0
  9. package/dist/core/index.js +88 -0
  10. package/dist/core/types.d.ts +83 -0
  11. package/dist/core/types.js +2 -0
  12. package/dist/internal/render.d.ts +5 -0
  13. package/dist/internal/render.js +74 -0
  14. package/dist/internal/style.d.ts +7 -0
  15. package/dist/internal/style.js +71 -0
  16. package/dist/react/index.d.ts +8 -0
  17. package/dist/react/index.js +15 -0
  18. package/dist/styles/croods-presets.json +530 -0
  19. package/dist/styles/croods.d.ts +2 -0
  20. package/dist/styles/croods.js +2 -0
  21. package/dist/svg/croods-001.svg +68 -0
  22. package/dist/svg/croods-002.svg +52 -0
  23. package/dist/svg/croods-003.svg +61 -0
  24. package/dist/svg/croods-004.svg +37 -0
  25. package/dist/svg/croods-005.svg +77 -0
  26. package/dist/svg/croods-006.svg +52 -0
  27. package/dist/svg/croods-007.svg +64 -0
  28. package/dist/svg/croods-008.svg +57 -0
  29. package/dist/svg/croods-009.svg +44 -0
  30. package/dist/svg/croods-010.svg +68 -0
  31. package/dist/svg/croods-011.svg +72 -0
  32. package/dist/svg/croods-012.svg +51 -0
  33. package/dist/svg/croods-013.svg +73 -0
  34. package/dist/svg/croods-014.svg +34 -0
  35. package/dist/svg/croods-015.svg +70 -0
  36. package/dist/svg/croods-016.svg +58 -0
  37. package/dist/svg/croods-017.svg +72 -0
  38. package/dist/svg/croods-018.svg +68 -0
  39. package/dist/svg/croods-019.svg +38 -0
  40. package/dist/svg/croods-020.svg +66 -0
  41. package/dist/svg/croods-021.svg +64 -0
  42. package/dist/svg/croods-022.svg +63 -0
  43. package/dist/svg/croods-023.svg +58 -0
  44. package/dist/svg/croods-024.svg +38 -0
  45. package/package.json +94 -0
@@ -0,0 +1,71 @@
1
+ import { colorRoles, slots } from '../core/types.js';
2
+ const compiled = new WeakSet();
3
+ const identifier = /^[a-z][a-z0-9-]*$/;
4
+ export const isColor = (value) => typeof value === 'string' && /^(#[\da-f]{3}|#[\da-f]{4}|#[\da-f]{6}|#[\da-f]{8}|transparent)$/i.test(value);
5
+ export const isRoleColor = (value) => value === 'original' || isColor(value);
6
+ const own = (object, key) => Object.prototype.hasOwnProperty.call(object, key);
7
+ export function validateSelections(style, selections) {
8
+ for (const slot of slots) {
9
+ const id = selections[slot];
10
+ if (['face', 'facialHair', 'accessories'].includes(slot) && id === 'none')
11
+ continue;
12
+ if (!style.parts[slot].some(part => part.id === id))
13
+ throw new Error(`Unknown ${slot} part: ${id}`);
14
+ }
15
+ for (const { first, second } of style.incompatible ?? []) {
16
+ if (selections[first.slot] === first.id && selections[second.slot] === second.id) {
17
+ throw new Error(`Incompatible parts: ${first.slot}/${first.id} and ${second.slot}/${second.id}`);
18
+ }
19
+ }
20
+ }
21
+ function freeze(value) {
22
+ Object.freeze(value);
23
+ for (const child of Object.values(value))
24
+ if (child && typeof child === 'object' && !Object.isFrozen(child))
25
+ freeze(child);
26
+ }
27
+ /** Internal build output loader. Not a public arbitrary-SVG authoring API. */
28
+ export function defineStyle(definition) {
29
+ const style = JSON.parse(JSON.stringify(definition));
30
+ if (!identifier.test(style.id) || !style.version)
31
+ throw new Error('Invalid style identity');
32
+ for (const slot of slots) {
33
+ const ids = new Set();
34
+ for (const part of style.parts[slot]) {
35
+ if (!identifier.test(part.id) || part.id === 'none' || ids.has(part.id))
36
+ throw new Error(`Invalid or duplicate part: ${slot}/${part.id}`);
37
+ ids.add(part.id);
38
+ if (!Number.isFinite(part.zIndex))
39
+ throw new Error('Invalid part layer order');
40
+ if (!part.svg.startsWith('<svg ') || !part.svg.endsWith('</svg>'))
41
+ throw new Error('Expected compiled SVG');
42
+ const root = part.svg.match(/^<svg\b([^>]*)>/)?.[1] ?? '';
43
+ const nativeWidth = Number(root.match(/\swidth="([\d.]+)"/)?.[1]);
44
+ const nativeHeight = Number(root.match(/\sheight="([\d.]+)"/)?.[1]);
45
+ if (![nativeWidth, nativeHeight].every(value => Number.isFinite(value) && value > 0))
46
+ throw new Error('Expected compiled native SVG dimensions');
47
+ const { x, y, width, height } = part.position;
48
+ if (![x, y, width, height].every(Number.isFinite) || width <= 0 || height <= 0)
49
+ throw new Error('Invalid part position');
50
+ }
51
+ }
52
+ for (const role of colorRoles)
53
+ if (!isRoleColor(style.defaults.colors[role]))
54
+ throw new Error(`Invalid default ${role} color`);
55
+ validateSelections(style, style.defaults.selections);
56
+ if (!own(style.seedPools, style.defaultSeedPool))
57
+ throw new Error('Missing default seed pool');
58
+ for (const [id, pool] of Object.entries(style.seedPools)) {
59
+ if (!identifier.test(id) || pool.length === 0)
60
+ throw new Error('Invalid seed pool');
61
+ for (const selections of pool)
62
+ validateSelections(style, selections);
63
+ }
64
+ freeze(style);
65
+ compiled.add(style);
66
+ return style;
67
+ }
68
+ export function assertStyle(style) {
69
+ if (!style || !compiled.has(style))
70
+ throw new Error('Use a compiled style import; arbitrary SVG input is not supported');
71
+ }
@@ -0,0 +1,8 @@
1
+ import type { SVGProps } from 'react';
2
+ import type { AvatarOptions, AvatarStyle } from '../core/types.js';
3
+ export type { AvatarOptions, AvatarStyle } from '../core/types.js';
4
+ export type AvatarProps = AvatarOptions & Omit<SVGProps<SVGSVGElement>, keyof AvatarOptions | 'children' | 'dangerouslySetInnerHTML' | 'title' | 'viewBox' | 'width' | 'height'> & {
5
+ assets: AvatarStyle;
6
+ title?: string;
7
+ };
8
+ export declare function Avatar({ assets, theme, seed, seedPool, selections, colors, background, size, shape, title, style, ...props }: AvatarProps): import("react").JSX.Element;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useId } from 'react';
4
+ import { createAvatar } from '../core/index.js';
5
+ import { escapeXml, renderContents } from '../internal/render.js';
6
+ export function Avatar({ assets, theme, seed, seedPool, selections, colors, background, size = 64, shape, title, style, ...props }) {
7
+ const reactId = useId();
8
+ // Hex encoding is injective and works with both React 18 and 19's useId formats.
9
+ const prefix = `avatar-${Array.from(reactId, char => char.codePointAt(0).toString(16)).join('-')}`;
10
+ const state = createAvatar(assets, { theme, seed, seedPool, selections, colors, background, size, shape }).toJSON();
11
+ const labelled = Boolean(props['aria-label'] || props['aria-labelledby'] || title);
12
+ const titleMarkup = title ? `<title id="${prefix}-title">${escapeXml(title)}</title>` : '';
13
+ const variables = Object.fromEntries(Object.entries(state.colors).filter(([, value]) => value !== 'original').map(([role, value]) => [`--avatar-${role}`, value]));
14
+ return _jsx("svg", { ...props, xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: "0 0 600 600", width: size, height: size, role: props.role ?? (labelled ? 'img' : undefined), "aria-hidden": props['aria-hidden'] ?? (labelled ? undefined : true), "aria-labelledby": props['aria-labelledby'] ?? (title && !props['aria-label'] ? `${prefix}-title` : undefined), focusable: props.focusable ?? false, style: { ...variables, ...style }, dangerouslySetInnerHTML: { __html: titleMarkup + renderContents(assets, state, prefix, true) } });
15
+ }
@@ -0,0 +1,530 @@
1
+ [
2
+ {
3
+ "id": "croods-001",
4
+ "schemaVersion": 1,
5
+ "style": "croods",
6
+ "styleVersion": "1.0.0",
7
+ "selections": {
8
+ "upperBody": "blazer",
9
+ "head": "afro-1",
10
+ "face": "drool",
11
+ "facialHair": "beard",
12
+ "accessories": "glass"
13
+ },
14
+ "colors": {
15
+ "hair": "original",
16
+ "skin": "original",
17
+ "clothing": "original",
18
+ "stroke": "original"
19
+ },
20
+ "background": "#FFDAA5",
21
+ "size": 600,
22
+ "shape": "rounded"
23
+ },
24
+ {
25
+ "id": "croods-002",
26
+ "schemaVersion": 1,
27
+ "style": "croods",
28
+ "styleVersion": "1.0.0",
29
+ "selections": {
30
+ "upperBody": "hoodie-1",
31
+ "head": "afro-2",
32
+ "face": "drool-2",
33
+ "facialHair": "none",
34
+ "accessories": "none"
35
+ },
36
+ "colors": {
37
+ "hair": "original",
38
+ "skin": "original",
39
+ "clothing": "original",
40
+ "stroke": "original"
41
+ },
42
+ "background": "#F2F0EE",
43
+ "size": 600,
44
+ "shape": "rounded"
45
+ },
46
+ {
47
+ "id": "croods-003",
48
+ "schemaVersion": 1,
49
+ "style": "croods",
50
+ "styleVersion": "1.0.0",
51
+ "selections": {
52
+ "upperBody": "shirt-1",
53
+ "head": "bangs",
54
+ "face": "happy",
55
+ "facialHair": "none",
56
+ "accessories": "none"
57
+ },
58
+ "colors": {
59
+ "hair": "original",
60
+ "skin": "original",
61
+ "clothing": "original",
62
+ "stroke": "original"
63
+ },
64
+ "background": "#EDEDFF",
65
+ "size": 600,
66
+ "shape": "rounded"
67
+ },
68
+ {
69
+ "id": "croods-004",
70
+ "schemaVersion": 1,
71
+ "style": "croods",
72
+ "styleVersion": "1.0.0",
73
+ "selections": {
74
+ "upperBody": "t-shirt-1",
75
+ "head": "bowl-cut",
76
+ "face": "normal",
77
+ "facialHair": "none",
78
+ "accessories": "glass"
79
+ },
80
+ "colors": {
81
+ "hair": "original",
82
+ "skin": "original",
83
+ "clothing": "original",
84
+ "stroke": "original"
85
+ },
86
+ "background": "#9BF1D9",
87
+ "size": 600,
88
+ "shape": "rounded"
89
+ },
90
+ {
91
+ "id": "croods-005",
92
+ "schemaVersion": 1,
93
+ "style": "croods",
94
+ "styleVersion": "1.0.0",
95
+ "selections": {
96
+ "upperBody": "t-shirt-bag",
97
+ "head": "braid-2",
98
+ "face": "open-mouth-1",
99
+ "facialHair": "moustache",
100
+ "accessories": "none"
101
+ },
102
+ "colors": {
103
+ "hair": "original",
104
+ "skin": "original",
105
+ "clothing": "original",
106
+ "stroke": "original"
107
+ },
108
+ "background": "#FFE900",
109
+ "size": 600,
110
+ "shape": "rounded"
111
+ },
112
+ {
113
+ "id": "croods-006",
114
+ "schemaVersion": 1,
115
+ "style": "croods",
116
+ "styleVersion": "1.0.0",
117
+ "selections": {
118
+ "upperBody": "blazer",
119
+ "head": "bun-1",
120
+ "face": "sad",
121
+ "facialHair": "none",
122
+ "accessories": "none"
123
+ },
124
+ "colors": {
125
+ "hair": "original",
126
+ "skin": "original",
127
+ "clothing": "original",
128
+ "stroke": "original"
129
+ },
130
+ "background": "#FFDAA5",
131
+ "size": 600,
132
+ "shape": "rounded"
133
+ },
134
+ {
135
+ "id": "croods-007",
136
+ "schemaVersion": 1,
137
+ "style": "croods",
138
+ "styleVersion": "1.0.0",
139
+ "selections": {
140
+ "upperBody": "hoodie-1",
141
+ "head": "bun",
142
+ "face": "drool",
143
+ "facialHair": "none",
144
+ "accessories": "glass"
145
+ },
146
+ "colors": {
147
+ "hair": "original",
148
+ "skin": "original",
149
+ "clothing": "original",
150
+ "stroke": "original"
151
+ },
152
+ "background": "#F2F0EE",
153
+ "size": 600,
154
+ "shape": "rounded"
155
+ },
156
+ {
157
+ "id": "croods-008",
158
+ "schemaVersion": 1,
159
+ "style": "croods",
160
+ "styleVersion": "1.0.0",
161
+ "selections": {
162
+ "upperBody": "shirt-1",
163
+ "head": "default",
164
+ "face": "drool-2",
165
+ "facialHair": "none",
166
+ "accessories": "none"
167
+ },
168
+ "colors": {
169
+ "hair": "original",
170
+ "skin": "original",
171
+ "clothing": "original",
172
+ "stroke": "original"
173
+ },
174
+ "background": "#EDEDFF",
175
+ "size": 600,
176
+ "shape": "rounded"
177
+ },
178
+ {
179
+ "id": "croods-009",
180
+ "schemaVersion": 1,
181
+ "style": "croods",
182
+ "styleVersion": "1.0.0",
183
+ "selections": {
184
+ "upperBody": "t-shirt-1",
185
+ "head": "long-hair",
186
+ "face": "happy",
187
+ "facialHair": "stubble",
188
+ "accessories": "none"
189
+ },
190
+ "colors": {
191
+ "hair": "original",
192
+ "skin": "original",
193
+ "clothing": "original",
194
+ "stroke": "original"
195
+ },
196
+ "background": "#9BF1D9",
197
+ "size": 600,
198
+ "shape": "rounded"
199
+ },
200
+ {
201
+ "id": "croods-010",
202
+ "schemaVersion": 1,
203
+ "style": "croods",
204
+ "styleVersion": "1.0.0",
205
+ "selections": {
206
+ "upperBody": "t-shirt-bag",
207
+ "head": "long-hair-1",
208
+ "face": "normal",
209
+ "facialHair": "none",
210
+ "accessories": "glass"
211
+ },
212
+ "colors": {
213
+ "hair": "original",
214
+ "skin": "original",
215
+ "clothing": "original",
216
+ "stroke": "original"
217
+ },
218
+ "background": "#FFE900",
219
+ "size": 600,
220
+ "shape": "rounded"
221
+ },
222
+ {
223
+ "id": "croods-011",
224
+ "schemaVersion": 1,
225
+ "style": "croods",
226
+ "styleVersion": "1.0.0",
227
+ "selections": {
228
+ "upperBody": "blazer",
229
+ "head": "messy-afro",
230
+ "face": "open-mouth-1",
231
+ "facialHair": "none",
232
+ "accessories": "none"
233
+ },
234
+ "colors": {
235
+ "hair": "original",
236
+ "skin": "original",
237
+ "clothing": "original",
238
+ "stroke": "original"
239
+ },
240
+ "background": "#FFDAA5",
241
+ "size": 600,
242
+ "shape": "rounded"
243
+ },
244
+ {
245
+ "id": "croods-012",
246
+ "schemaVersion": 1,
247
+ "style": "croods",
248
+ "styleVersion": "1.0.0",
249
+ "selections": {
250
+ "upperBody": "hoodie-1",
251
+ "head": "messy",
252
+ "face": "sad",
253
+ "facialHair": "none",
254
+ "accessories": "none"
255
+ },
256
+ "colors": {
257
+ "hair": "original",
258
+ "skin": "original",
259
+ "clothing": "original",
260
+ "stroke": "original"
261
+ },
262
+ "background": "#F2F0EE",
263
+ "size": 600,
264
+ "shape": "rounded"
265
+ },
266
+ {
267
+ "id": "croods-013",
268
+ "schemaVersion": 1,
269
+ "style": "croods",
270
+ "styleVersion": "1.0.0",
271
+ "selections": {
272
+ "upperBody": "shirt-1",
273
+ "head": "no-hair",
274
+ "face": "drool",
275
+ "facialHair": "beard",
276
+ "accessories": "glass"
277
+ },
278
+ "colors": {
279
+ "hair": "original",
280
+ "skin": "original",
281
+ "clothing": "original",
282
+ "stroke": "original"
283
+ },
284
+ "background": "#EDEDFF",
285
+ "size": 600,
286
+ "shape": "rounded"
287
+ },
288
+ {
289
+ "id": "croods-014",
290
+ "schemaVersion": 1,
291
+ "style": "croods",
292
+ "styleVersion": "1.0.0",
293
+ "selections": {
294
+ "upperBody": "t-shirt-1",
295
+ "head": "normal",
296
+ "face": "drool-2",
297
+ "facialHair": "none",
298
+ "accessories": "none"
299
+ },
300
+ "colors": {
301
+ "hair": "original",
302
+ "skin": "original",
303
+ "clothing": "original",
304
+ "stroke": "original"
305
+ },
306
+ "background": "#9BF1D9",
307
+ "size": 600,
308
+ "shape": "rounded"
309
+ },
310
+ {
311
+ "id": "croods-015",
312
+ "schemaVersion": 1,
313
+ "style": "croods",
314
+ "styleVersion": "1.0.0",
315
+ "selections": {
316
+ "upperBody": "t-shirt-bag",
317
+ "head": "quiff-1",
318
+ "face": "happy",
319
+ "facialHair": "none",
320
+ "accessories": "none"
321
+ },
322
+ "colors": {
323
+ "hair": "original",
324
+ "skin": "original",
325
+ "clothing": "original",
326
+ "stroke": "original"
327
+ },
328
+ "background": "#FFE900",
329
+ "size": 600,
330
+ "shape": "rounded"
331
+ },
332
+ {
333
+ "id": "croods-016",
334
+ "schemaVersion": 1,
335
+ "style": "croods",
336
+ "styleVersion": "1.0.0",
337
+ "selections": {
338
+ "upperBody": "blazer",
339
+ "head": "quiff-2",
340
+ "face": "normal",
341
+ "facialHair": "none",
342
+ "accessories": "glass"
343
+ },
344
+ "colors": {
345
+ "hair": "original",
346
+ "skin": "original",
347
+ "clothing": "original",
348
+ "stroke": "original"
349
+ },
350
+ "background": "#FFDAA5",
351
+ "size": 600,
352
+ "shape": "rounded"
353
+ },
354
+ {
355
+ "id": "croods-017",
356
+ "schemaVersion": 1,
357
+ "style": "croods",
358
+ "styleVersion": "1.0.0",
359
+ "selections": {
360
+ "upperBody": "hoodie-1",
361
+ "head": "short-hair-1",
362
+ "face": "open-mouth-1",
363
+ "facialHair": "moustache",
364
+ "accessories": "none"
365
+ },
366
+ "colors": {
367
+ "hair": "original",
368
+ "skin": "original",
369
+ "clothing": "original",
370
+ "stroke": "original"
371
+ },
372
+ "background": "#F2F0EE",
373
+ "size": 600,
374
+ "shape": "rounded"
375
+ },
376
+ {
377
+ "id": "croods-018",
378
+ "schemaVersion": 1,
379
+ "style": "croods",
380
+ "styleVersion": "1.0.0",
381
+ "selections": {
382
+ "upperBody": "shirt-1",
383
+ "head": "short-hair-2",
384
+ "face": "sad",
385
+ "facialHair": "none",
386
+ "accessories": "none"
387
+ },
388
+ "colors": {
389
+ "hair": "original",
390
+ "skin": "original",
391
+ "clothing": "original",
392
+ "stroke": "original"
393
+ },
394
+ "background": "#EDEDFF",
395
+ "size": 600,
396
+ "shape": "rounded"
397
+ },
398
+ {
399
+ "id": "croods-019",
400
+ "schemaVersion": 1,
401
+ "style": "croods",
402
+ "styleVersion": "1.0.0",
403
+ "selections": {
404
+ "upperBody": "t-shirt-1",
405
+ "head": "short-hair-4",
406
+ "face": "drool",
407
+ "facialHair": "none",
408
+ "accessories": "glass"
409
+ },
410
+ "colors": {
411
+ "hair": "original",
412
+ "skin": "original",
413
+ "clothing": "original",
414
+ "stroke": "original"
415
+ },
416
+ "background": "#9BF1D9",
417
+ "size": 600,
418
+ "shape": "rounded"
419
+ },
420
+ {
421
+ "id": "croods-020",
422
+ "schemaVersion": 1,
423
+ "style": "croods",
424
+ "styleVersion": "1.0.0",
425
+ "selections": {
426
+ "upperBody": "t-shirt-bag",
427
+ "head": "short-hair-5",
428
+ "face": "drool-2",
429
+ "facialHair": "none",
430
+ "accessories": "none"
431
+ },
432
+ "colors": {
433
+ "hair": "original",
434
+ "skin": "original",
435
+ "clothing": "original",
436
+ "stroke": "original"
437
+ },
438
+ "background": "#FFE900",
439
+ "size": 600,
440
+ "shape": "rounded"
441
+ },
442
+ {
443
+ "id": "croods-021",
444
+ "schemaVersion": 1,
445
+ "style": "croods",
446
+ "styleVersion": "1.0.0",
447
+ "selections": {
448
+ "upperBody": "blazer",
449
+ "head": "short-hair-7",
450
+ "face": "happy",
451
+ "facialHair": "stubble",
452
+ "accessories": "none"
453
+ },
454
+ "colors": {
455
+ "hair": "original",
456
+ "skin": "original",
457
+ "clothing": "original",
458
+ "stroke": "original"
459
+ },
460
+ "background": "#FFDAA5",
461
+ "size": 600,
462
+ "shape": "rounded"
463
+ },
464
+ {
465
+ "id": "croods-022",
466
+ "schemaVersion": 1,
467
+ "style": "croods",
468
+ "styleVersion": "1.0.0",
469
+ "selections": {
470
+ "upperBody": "hoodie-1",
471
+ "head": "short-hair-8",
472
+ "face": "normal",
473
+ "facialHair": "none",
474
+ "accessories": "glass"
475
+ },
476
+ "colors": {
477
+ "hair": "original",
478
+ "skin": "original",
479
+ "clothing": "original",
480
+ "stroke": "original"
481
+ },
482
+ "background": "#F2F0EE",
483
+ "size": 600,
484
+ "shape": "rounded"
485
+ },
486
+ {
487
+ "id": "croods-023",
488
+ "schemaVersion": 1,
489
+ "style": "croods",
490
+ "styleVersion": "1.0.0",
491
+ "selections": {
492
+ "upperBody": "shirt-1",
493
+ "head": "straight-long",
494
+ "face": "open-mouth-1",
495
+ "facialHair": "none",
496
+ "accessories": "none"
497
+ },
498
+ "colors": {
499
+ "hair": "original",
500
+ "skin": "original",
501
+ "clothing": "original",
502
+ "stroke": "original"
503
+ },
504
+ "background": "#EDEDFF",
505
+ "size": 600,
506
+ "shape": "rounded"
507
+ },
508
+ {
509
+ "id": "croods-024",
510
+ "schemaVersion": 1,
511
+ "style": "croods",
512
+ "styleVersion": "1.0.0",
513
+ "selections": {
514
+ "upperBody": "t-shirt-1",
515
+ "head": "trimmed",
516
+ "face": "sad",
517
+ "facialHair": "none",
518
+ "accessories": "none"
519
+ },
520
+ "colors": {
521
+ "hair": "original",
522
+ "skin": "original",
523
+ "clothing": "original",
524
+ "stroke": "original"
525
+ },
526
+ "background": "#9BF1D9",
527
+ "size": 600,
528
+ "shape": "rounded"
529
+ }
530
+ ]
@@ -0,0 +1,2 @@
1
+ import type { AvatarStyle } from '../core/types.js';
2
+ export declare const croods: AvatarStyle;