@dicebear/micah 5.0.0-alpha.31 → 5.0.0-alpha.32

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 (43) hide show
  1. package/lib/components/base.js +1 -1
  2. package/lib/components/earrings.js +2 -2
  3. package/lib/components/ears.js +2 -2
  4. package/lib/components/eyebrows.js +4 -4
  5. package/lib/components/eyes.js +4 -4
  6. package/lib/components/facialHair.js +2 -3
  7. package/lib/components/glasses.js +2 -2
  8. package/lib/components/hair.js +7 -7
  9. package/lib/components/mouth.js +8 -8
  10. package/lib/components/shirt.js +3 -3
  11. package/lib/hooks/onPostCreate.js +2 -2
  12. package/lib/hooks/onPreCreate.js +3 -3
  13. package/lib/index.d.ts +0 -11
  14. package/lib/index.js +1 -2
  15. package/lib/schema.js +72 -204
  16. package/lib/types.d.ts +1 -5
  17. package/lib/utils/getColors.js +11 -51
  18. package/lib/utils/pickComponent.js +2 -5
  19. package/package.json +45 -45
  20. package/lib/colors/base.d.ts +0 -2
  21. package/lib/colors/base.js +0 -15
  22. package/lib/colors/earring.d.ts +0 -2
  23. package/lib/colors/earring.js +0 -15
  24. package/lib/colors/eyeShadow.d.ts +0 -2
  25. package/lib/colors/eyeShadow.js +0 -15
  26. package/lib/colors/eyebrows.d.ts +0 -2
  27. package/lib/colors/eyebrows.js +0 -15
  28. package/lib/colors/eyes.d.ts +0 -2
  29. package/lib/colors/eyes.js +0 -15
  30. package/lib/colors/facialHair.d.ts +0 -2
  31. package/lib/colors/facialHair.js +0 -15
  32. package/lib/colors/glasses.d.ts +0 -2
  33. package/lib/colors/glasses.js +0 -15
  34. package/lib/colors/hair.d.ts +0 -2
  35. package/lib/colors/hair.js +0 -15
  36. package/lib/colors/index.d.ts +0 -10
  37. package/lib/colors/index.js +0 -10
  38. package/lib/colors/mouth.d.ts +0 -2
  39. package/lib/colors/mouth.js +0 -3
  40. package/lib/colors/shirt.d.ts +0 -2
  41. package/lib/colors/shirt.js +0 -15
  42. package/lib/utils/pickColor.d.ts +0 -9
  43. package/lib/utils/pickColor.js +0 -13
@@ -2,6 +2,6 @@ import { escape } from '@dicebear/core';
2
2
  export const base = {
3
3
  standard: (components, colors) => {
4
4
  var _a, _b;
5
- return `<path d="M154 319.5c-14.4-20-25.67-58.67-27-78L58.5 212 30 319.5h124Z" fill="${escape.xml(colors.base.value)}" stroke="#000" stroke-width="4"/><mask id="baseStandard-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="30" y="212" width="124" height="118"><path d="M154 329.5c-14.4-20-25.67-68.67-27-88L58.5 212 30 329.5h124Z" fill="${escape.xml(colors.base.value)}"/></mask><g mask="url(#baseStandard-a)"><ellipse cx="124" cy="210" rx="59" ry="54" fill="#000" style="mix-blend-mode:multiply"/></g><path d="M181.94 151.37v.01l.1.4.14.65A75.72 75.72 0 0 1 34.93 187.7l-.2-.74L18 117.13l-.06-.29A75.72 75.72 0 0 1 165.2 81.55l.05.21.02.08.05.2.05.2v.01l16.4 68.44.08.34.08.34Z" fill="${escape.xml(colors.base.value)}" stroke="#000" stroke-width="4"/><g transform="translate(34 102.3)">${(_b = (_a = components.facialHair) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
5
+ return `<path d="M154 319.5c-14.4-20-25.67-58.67-27-78L58.5 212 30 319.5h124Z" fill="${escape.xml(`#${colors.base}`)}" stroke="#000" stroke-width="4"/><mask id="baseStandard-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="30" y="212" width="124" height="118"><path d="M154 329.5c-14.4-20-25.67-68.67-27-88L58.5 212 30 329.5h124Z" fill="${escape.xml(`#${colors.base}`)}"/></mask><g mask="url(#baseStandard-a)"><ellipse cx="124" cy="210" rx="59" ry="54" fill="#000" style="mix-blend-mode:multiply"/></g><path d="M181.94 151.37v.01l.1.4.14.65A75.72 75.72 0 0 1 34.93 187.7l-.2-.74L18 117.13l-.06-.29A75.72 75.72 0 0 1 165.2 81.55l.05.21.02.08.05.2.05.2v.01l16.4 68.44.08.34.08.34Z" fill="${escape.xml(`#${colors.base}`)}" stroke="#000" stroke-width="4"/><g transform="translate(34 102.3)">${(_b = (_a = components.facialHair) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
6
6
  },
7
7
  };
@@ -1,5 +1,5 @@
1
1
  import { escape } from '@dicebear/core';
2
2
  export const earrings = {
3
- hoop: (components, colors) => `<path d="M24 0A24 24 0 1 1 0 24c0-6.4 3.5-11.5 6.57-16.5L7.5 6" stroke="${escape.xml(colors.earring.value)}" stroke-width="4"/>`,
4
- stud: (components, colors) => `<circle cx="25" cy="2" r="4" fill="${escape.xml(colors.earring.value)}"/><circle cx="26" cy="1" r="1" fill="#fff"/>`,
3
+ hoop: (components, colors) => `<path d="M24 0A24 24 0 1 1 0 24c0-6.4 3.5-11.5 6.57-16.5L7.5 6" stroke="${escape.xml(`#${colors.earring}`)}" stroke-width="4"/>`,
4
+ stud: (components, colors) => `<circle cx="25" cy="2" r="4" fill="${escape.xml(`#${colors.earring}`)}"/><circle cx="26" cy="1" r="1" fill="#fff"/>`,
5
5
  };
@@ -2,10 +2,10 @@ import { escape } from '@dicebear/core';
2
2
  export const ears = {
3
3
  attached: (components, colors) => {
4
4
  var _a, _b;
5
- return `<path d="M30.5 6.18A23.78 23.78 0 0 0 23.08 5c-10.5 0-19 6.5-18 18.5 1.04 12.5 8.5 17 19 17A19.6 19.6 0 0 0 31 39.23" stroke="#000" stroke-width="8"/><path d="M31.5 39.04a19.38 19.38 0 0 1-7.42 1.46c-10.5 0-17.96-4.5-19-17-1-12 7.5-18.5 18-18.5 3.14 0 6.19.6 8.92 1.73l-.5 32.3Z" fill="${escape.xml(colors.base.value)}"/><path d="M27.5 13.5c-4-1.83-12.8-2.8-16 8" stroke="#000" stroke-width="4"/><path d="M17 14c2.17 1.83 6.3 7.5 5.5 15.5" stroke="#000" stroke-width="4"/><g transform="translate(3 35)">${(_b = (_a = components.earrings) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
5
+ return `<path d="M30.5 6.18A23.78 23.78 0 0 0 23.08 5c-10.5 0-19 6.5-18 18.5 1.04 12.5 8.5 17 19 17A19.6 19.6 0 0 0 31 39.23" stroke="#000" stroke-width="8"/><path d="M31.5 39.04a19.38 19.38 0 0 1-7.42 1.46c-10.5 0-17.96-4.5-19-17-1-12 7.5-18.5 18-18.5 3.14 0 6.19.6 8.92 1.73l-.5 32.3Z" fill="${escape.xml(`#${colors.base}`)}"/><path d="M27.5 13.5c-4-1.83-12.8-2.8-16 8" stroke="#000" stroke-width="4"/><path d="M17 14c2.17 1.83 6.3 7.5 5.5 15.5" stroke="#000" stroke-width="4"/><g transform="translate(3 35)">${(_b = (_a = components.earrings) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
6
6
  },
7
7
  detached: (components, colors) => {
8
8
  var _a, _b;
9
- return `<path d="M37 8.25V7.13l-.95-.59A24.91 24.91 0 0 0 23.08 3C17.44 3 12.16 4.75 8.4 8.3c-3.8 3.58-5.86 8.83-5.31 15.37.52 6.37 2.66 11.06 6.2 14.17-.29 1-.37 2.08-.24 3.21a8.98 8.98 0 0 0 4.6 7.08C16.09 49.5 19.2 50 22.52 50c5.48 0 10.29-2.95 13.95-6.89l.53-.57V8.25Z" stroke="#000" stroke-width="4"/><path d="M42.97 23.98c.07-.65.1-1.3.1-1.98 0-10.22-9.5-17-20-17C12.6 5 4.09 11.5 5.09 23.5c.56 6.68 2.95 11.07 6.65 13.72a5.7 5.7 0 0 0-.68 3.6C11.68 46.1 16.19 48 22.52 48c11.1 0 19.9-14.05 20.45-24.02Z" fill="${escape.xml(colors.base.value)}"/><path d="M27.5 13.5c-4-1.83-12.8-2.8-16 8" stroke="#000" stroke-width="4"/><path d="M17 14c2.17 1.83 6.3 7.5 5.5 15.5" stroke="#000" stroke-width="4"/><g transform="translate(3 42)">${(_b = (_a = components.earrings) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
9
+ return `<path d="M37 8.25V7.13l-.95-.59A24.91 24.91 0 0 0 23.08 3C17.44 3 12.16 4.75 8.4 8.3c-3.8 3.58-5.86 8.83-5.31 15.37.52 6.37 2.66 11.06 6.2 14.17-.29 1-.37 2.08-.24 3.21a8.98 8.98 0 0 0 4.6 7.08C16.09 49.5 19.2 50 22.52 50c5.48 0 10.29-2.95 13.95-6.89l.53-.57V8.25Z" stroke="#000" stroke-width="4"/><path d="M42.97 23.98c.07-.65.1-1.3.1-1.98 0-10.22-9.5-17-20-17C12.6 5 4.09 11.5 5.09 23.5c.56 6.68 2.95 11.07 6.65 13.72a5.7 5.7 0 0 0-.68 3.6C11.68 46.1 16.19 48 22.52 48c11.1 0 19.9-14.05 20.45-24.02Z" fill="${escape.xml(`#${colors.base}`)}"/><path d="M27.5 13.5c-4-1.83-12.8-2.8-16 8" stroke="#000" stroke-width="4"/><path d="M17 14c2.17 1.83 6.3 7.5 5.5 15.5" stroke="#000" stroke-width="4"/><g transform="translate(3 42)">${(_b = (_a = components.earrings) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
10
10
  },
11
11
  };
@@ -1,7 +1,7 @@
1
1
  import { escape } from '@dicebear/core';
2
2
  export const eyebrows = {
3
- up: (components, colors) => `<path d="M99 10.21c5.67-2.66 19-5.1 27 6.5M23.58 35.52c2.07-5.9 9.68-17.12 23.56-14.7" stroke="${escape.xml(colors.eyebrows.value)}" stroke-width="4" stroke-linecap="round"/>`,
4
- down: (components, colors) => `<path d="M27 26.5c6.17 2.5 21.1 3 31.5-15M94 4c5.17 5.33 18.1 12.8 28.5 0" stroke="${escape.xml(colors.eyebrows.value)}" stroke-width="4" stroke-linecap="round"/>`,
5
- eyelashesUp: (components, colors) => `<path d="M99 10.21c5.67-2.66 19-5.1 27 6.5M23.58 35.52c2.07-5.9 9.68-17.12 23.56-14.7M26.07 29.46l-6.14-5.43M122.96 11.16l6.15-5.43M32.52 23.81l-4.04-7.13M115.51 7.51l4.05-7.13M40.6 20.2l-2.2-7.9M106.44 6.9l2.2-7.9" stroke="${escape.xml(colors.eyebrows.value)}" stroke-width="4" stroke-linecap="round"/>`,
6
- eyelashesDown: (components, colors) => `<path d="M27 26.5c6.17 2.5 21.1 3 31.5-15M94 4c5.17 5.33 18.1 12.8 28.5 0M37.15 26.46 31 21.03M116.22 9.44l1.78-8M45.6 22.81l-4.05-7.13M108.14 9.02l.94-8.15M52.67 17.2l-2.2-7.9M100 8.03l-.78-8.16" stroke="${escape.xml(colors.eyebrows.value)}" stroke-width="4" stroke-linecap="round"/>`,
3
+ up: (components, colors) => `<path d="M99 10.21c5.67-2.66 19-5.1 27 6.5M23.58 35.52c2.07-5.9 9.68-17.12 23.56-14.7" stroke="${escape.xml(`#${colors.eyebrows}`)}" stroke-width="4" stroke-linecap="round"/>`,
4
+ down: (components, colors) => `<path d="M27 26.5c6.17 2.5 21.1 3 31.5-15M94 4c5.17 5.33 18.1 12.8 28.5 0" stroke="${escape.xml(`#${colors.eyebrows}`)}" stroke-width="4" stroke-linecap="round"/>`,
5
+ eyelashesUp: (components, colors) => `<path d="M99 10.21c5.67-2.66 19-5.1 27 6.5M23.58 35.52c2.07-5.9 9.68-17.12 23.56-14.7M26.07 29.46l-6.14-5.43M122.96 11.16l6.15-5.43M32.52 23.81l-4.04-7.13M115.51 7.51l4.05-7.13M40.6 20.2l-2.2-7.9M106.44 6.9l2.2-7.9" stroke="${escape.xml(`#${colors.eyebrows}`)}" stroke-width="4" stroke-linecap="round"/>`,
6
+ eyelashesDown: (components, colors) => `<path d="M27 26.5c6.17 2.5 21.1 3 31.5-15M94 4c5.17 5.33 18.1 12.8 28.5 0M37.15 26.46 31 21.03M116.22 9.44l1.78-8M45.6 22.81l-4.05-7.13M108.14 9.02l.94-8.15M52.67 17.2l-2.2-7.9M100 8.03l-.78-8.16" stroke="${escape.xml(`#${colors.eyebrows}`)}" stroke-width="4" stroke-linecap="round"/>`,
7
7
  };
@@ -2,18 +2,18 @@ import { escape } from '@dicebear/core';
2
2
  export const eyes = {
3
3
  eyes: (components, colors) => {
4
4
  var _a, _b;
5
- return `<g fill="${escape.xml(colors.eyes.value)}"><ellipse cx="16.53" cy="29.4" rx="9" ry="13.5" transform="rotate(-6.78 16.53 29.4)"/><ellipse cx="80.53" cy="19.4" rx="9" ry="13.5" transform="rotate(-6.28 80.53 19.4)"/></g><g transform="translate(-40 -8)">${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
5
+ return `<g fill="${escape.xml(`#${colors.eyes}`)}"><ellipse cx="16.53" cy="29.4" rx="9" ry="13.5" transform="rotate(-6.78 16.53 29.4)"/><ellipse cx="80.53" cy="19.4" rx="9" ry="13.5" transform="rotate(-6.28 80.53 19.4)"/></g><g transform="translate(-40 -8)">${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
6
6
  },
7
7
  round: (components, colors) => {
8
8
  var _a, _b;
9
- return `<g fill="${escape.xml(colors.eyes.value)}"><ellipse cx="16.12" cy="28.93" rx="9" ry="10" transform="rotate(-6.78 16.12 28.93)"/><ellipse cx="80.15" cy="18.92" rx="9" ry="10" transform="rotate(-6.28 80.15 18.92)"/></g><g transform="translate(-40 -8)">${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
9
+ return `<g fill="${escape.xml(`#${colors.eyes}`)}"><ellipse cx="16.12" cy="28.93" rx="9" ry="10" transform="rotate(-6.78 16.12 28.93)"/><ellipse cx="80.15" cy="18.92" rx="9" ry="10" transform="rotate(-6.28 80.15 18.92)"/></g><g transform="translate(-40 -8)">${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
10
10
  },
11
11
  eyesShadow: (components, colors) => {
12
12
  var _a, _b;
13
- return `<circle cx="15.24" cy="20.24" r="12" transform="rotate(-6.28 15.24 20.24)" fill="${escape.xml(colors.eyeShadow.value)}"/><ellipse cx="16.53" cy="29.4" rx="9" ry="13.5" transform="rotate(-6.78 16.53 29.4)" fill="${escape.xml(colors.eyes.value)}"/><circle cx="79.02" cy="11.61" r="12" transform="rotate(-6.28 79.02 11.61)" fill="${escape.xml(colors.eyeShadow.value)}"/><ellipse cx="80.53" cy="19.4" rx="9" ry="13.5" transform="rotate(-6.28 80.53 19.4)" fill="${escape.xml(colors.eyes.value)}"/><g transform="translate(-40 -8)">${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
13
+ return `<circle cx="15.24" cy="20.24" r="12" transform="rotate(-6.28 15.24 20.24)" fill="${escape.xml(`#${colors.eyeShadow}`)}"/><ellipse cx="16.53" cy="29.4" rx="9" ry="13.5" transform="rotate(-6.78 16.53 29.4)" fill="${escape.xml(`#${colors.eyes}`)}"/><circle cx="79.02" cy="11.61" r="12" transform="rotate(-6.28 79.02 11.61)" fill="${escape.xml(`#${colors.eyeShadow}`)}"/><ellipse cx="80.53" cy="19.4" rx="9" ry="13.5" transform="rotate(-6.28 80.53 19.4)" fill="${escape.xml(`#${colors.eyes}`)}"/><g transform="translate(-40 -8)">${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
14
14
  },
15
15
  smiling: (components, colors) => {
16
16
  var _a, _b;
17
- return `<path d="M5.29 34.07c.11.82 1.14 1 1.72.41 2.46-2.52 6.25-4.36 10.65-4.89 2.6-.3 5.1-.12 7.32.48.75.2 1.5-.44 1.23-1.17A10.84 10.84 0 0 0 5.3 34.07ZM69.38 24.07c.12.82 1.15 1 1.73.41 2.44-2.48 6.19-4.3 10.54-4.83 2.56-.3 5.03-.12 7.23.47.75.2 1.5-.44 1.23-1.17a10.74 10.74 0 0 0-20.73 5.12Z" fill="${escape.xml(colors.eyes.value)}"/><g transform="translate(-40 -8)">${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
17
+ return `<path d="M5.29 34.07c.11.82 1.14 1 1.72.41 2.46-2.52 6.25-4.36 10.65-4.89 2.6-.3 5.1-.12 7.32.48.75.2 1.5-.44 1.23-1.17A10.84 10.84 0 0 0 5.3 34.07ZM69.38 24.07c.12.82 1.15 1 1.73.41 2.44-2.48 6.19-4.3 10.54-4.83 2.56-.3 5.03-.12 7.23.47.75.2 1.5-.44 1.23-1.17a10.74 10.74 0 0 0-20.73 5.12Z" fill="${escape.xml(`#${colors.eyes}`)}"/><g transform="translate(-40 -8)">${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g>`;
18
18
  },
19
19
  };
@@ -1,5 +1,4 @@
1
- import { escape } from '@dicebear/core';
2
1
  export const facialHair = {
3
- beard: (components, colors) => `<path d="M146.13 49.15A73.74 73.74 0 0 1 27.69 123.4C10.5 107.5 6.5 56 2.7 31.65c14 31.5 49.62 33.94 83.5 28 28.5-5 51.3-6 51.3-45 1.88 2.62 6.97 27.59 8.63 34.5Z" fill="${escape.xml(colors.facialHair.value)}"/>`,
4
- scruff: (components, colors) => `<g fill="${escape.xml(colors.facialHair.value)}" stroke="${escape.xml(colors.facialHair.value)}"><path d="M31 109a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM83 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM79 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM99 121a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 111a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM120 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM130 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM21 88a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 104a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM51 124a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM69 128a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM103 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM117 106a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM109 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM123 92a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM30 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM58 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM85 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM96 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM113 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM113 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM133 89a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM33 81a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM43 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM39 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM79 103a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM91 105a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM77 135a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 84a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 66a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM124 81a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM131 71a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM42 90a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM42 101a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM63 86a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM63 68a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM75 82a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM87 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"/><path d="M113 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM139 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM61 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM72 110a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM68 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM92 93a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM43 75a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM80 91a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM80 73a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM115 87a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM115 69a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM122 71a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM137 62a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM31 109a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM83 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM79 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM99 121a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 111a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM120 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM130 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM21 88a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 104a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM51 124a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM69 128a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM103 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM117 106a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM109 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM123 92a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM30 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM58 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM85 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM96 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM113 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"/><path d="M113 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM133 89a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM33 81a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM43 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM39 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM79 103a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM91 105a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM77 135a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 84a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 66a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM124 81a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM131 71a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM42 90a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM42 101a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM63 86a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM63 68a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM75 82a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM87 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"/><path d="M113 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM139 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM61 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM72 110a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM68 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM92 93a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM43 75a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM80 91a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM80 73a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM115 87a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM115 69a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM122 71a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM137 62a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"/></g>`,
2
+ beard: (components, colors) => `<path d="M146.13 49.15A73.74 73.74 0 0 1 27.69 123.4C10.5 107.5 6.5 56 2.7 31.65c14 31.5 49.62 33.94 83.5 28 28.5-5 51.3-6 51.3-45 1.88 2.62 6.97 27.59 8.63 34.5Z" fill="#000"/>`,
3
+ scruff: (components, colors) => `<path d="M31 109a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM83 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM79 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM99 121a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 111a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM120 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM130 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM21 88a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 104a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM51 124a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM69 128a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM103 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM117 106a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM109 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM123 92a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM30 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM58 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM85 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM96 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM113 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM113 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM133 89a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM33 81a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM43 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM39 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM79 103a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM91 105a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM77 135a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 84a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 66a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM124 81a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM131 71a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM42 90a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM42 101a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM63 86a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM63 68a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM75 82a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM87 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" fill="#000"/><path d="M113 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM139 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM61 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM72 110a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM68 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM92 93a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM43 75a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM80 91a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM80 73a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM115 87a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM115 69a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM122 71a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM137 62a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" fill="#000"/><path d="M31 109a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM83 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM79 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM99 121a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 111a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM120 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM130 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM21 88a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 104a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM51 124a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM69 128a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM103 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM117 106a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM109 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM123 92a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM30 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM54 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM58 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM85 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM96 130a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM113 94a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM113 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM133 89a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM33 81a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM43 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM39 123a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM79 103a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM91 105a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM77 135a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 84a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 66a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM124 81a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM131 71a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM42 90a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM42 101a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM63 86a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM63 68a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM75 82a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM87 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM100 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" stroke="#000"/><path d="M113 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM139 76a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM61 116a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM72 110a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM68 102a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM92 93a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM43 75a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM80 91a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM80 73a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM115 87a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM115 69a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM122 71a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM137 62a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" stroke="#000"/>`,
5
4
  };
@@ -1,5 +1,5 @@
1
1
  import { escape } from '@dicebear/core';
2
2
  export const glasses = {
3
- round: (components, colors) => `<g stroke="${escape.xml(colors.glasses.value)}" stroke-width="4"><circle cx="122.5" cy="28" r="26"/><circle cx="55.5" cy="37" r="26"/><path d="M97.5 35a8 8 0 0 0-16 0M30 39 0 44.5"/></g>`,
4
- square: (components, colors) => `<g stroke="${escape.xml(colors.glasses.value)}" stroke-width="4"><path d="M34.5 42.5 0 49.12" stroke-linecap="round"/><path d="M35.47 18.53 74.2 13.1a6 6 0 0 1 6.77 5.1l5.57 39.62a6 6 0 0 1-5.1 6.78l-34.48 4.84a6 6 0 0 1-6.65-4.48l-9.81-39.01a6 6 0 0 1 4.98-7.4ZM145.92 3.22 107.2 8.66a6 6 0 0 0-5.1 6.78l5.56 39.6a6 6 0 0 0 6.78 5.11l34.47-4.84a6 6 0 0 0 5.16-6.14l-1.32-40.2a6 6 0 0 0-6.83-5.75ZM83.5 37.12l22-3.5"/></g>`,
3
+ round: (components, colors) => `<g stroke="${escape.xml(`#${colors.glasses}`)}" stroke-width="4"><circle cx="122.5" cy="28" r="26"/><circle cx="55.5" cy="37" r="26"/><path d="M97.5 35a8 8 0 0 0-16 0M30 39 0 44.5"/></g>`,
4
+ square: (components, colors) => `<g stroke="${escape.xml(`#${colors.glasses}`)}" stroke-width="4"><path d="M34.5 42.5 0 49.12" stroke-linecap="round"/><path d="M35.47 18.53 74.2 13.1a6 6 0 0 1 6.77 5.1l5.57 39.62a6 6 0 0 1-5.1 6.78l-34.48 4.84a6 6 0 0 1-6.65-4.48l-9.81-39.01a6 6 0 0 1 4.98-7.4ZM145.92 3.22 107.2 8.66a6 6 0 0 0-5.1 6.78l5.56 39.6a6 6 0 0 0 6.78 5.11l34.47-4.84a6 6 0 0 0 5.16-6.14l-1.32-40.2a6 6 0 0 0-6.83-5.75ZM83.5 37.12l22-3.5"/></g>`,
5
5
  };
@@ -1,11 +1,11 @@
1
1
  import { escape } from '@dicebear/core';
2
2
  export const hair = {
3
- fonze: (components, colors) => `<path d="M210.18 49.4c-1.27 6.05-4.6 11.32-9.43 15.9 9.4 34.06 9.6 53.87 4.38 57.65l-14.8-49.99C158.4 91.7 98.65 94.9 83.69 94.9c-1.55.17-3.02.4-4.43.67-14.65 9-2.6 52.12 11.75 70.43l-11 2c-5.14-24.97-17.41-22.92-26.61-21.38l-.32.05c2.2 13.63 6.72 27.74 10.45 39.32.95 2.99 1.86 5.8 2.66 8.4-.79.1-1.48.3-2.12.47-5.5 1.53-7.41 2.06-33.38-61.97-6.47-15.95-6.03-30.16-.97-42.62-4.78-4.8-14.37-7.14-19.71-7.78 10.44-6.12 20.58-4.87 25.54-3.1.5-.75 1.02-1.49 1.56-2.22-.97-4.41-7.96-9.46-12.11-11.82 8.55-4.3 18.6-2.03 22.98-.2C67.63 47.13 97.03 35.05 122 29 170.81 17.17 189.5.5 189.5.5c20.68 8.5 25.62 25.22 20.68 48.9Z" fill="${escape.xml(colors.hair.value)}" stroke="#000" stroke-width="4"/>`,
4
- mrT: (components, colors) => `<g fill="${escape.xml(colors.hair.value)}"><path opacity=".1" d="M187.99 77.18c-8-6.4-21.84-7-27.5-6.5l-8-26.5c13.6 3.2 32 24 35.5 33Z"/><path d="M85.8 11.76S91.52 7.8 115.74 1.7c24.21-6.1 33.04-3.72 33.04-3.72l11.8 72.84s-8.05-.18-28.04 4.19c-20 4.38-29.56 9.67-29.56 9.67l-17.2-72.9Z"/><path d="M48.99 86.68c-6.8-41.6 23.33-68.17 37-75.5l16.98 73.5c-19.2-39.6-45.33-15.17-54 2Z"/><path opacity=".1" d="M67.49 130.68c-7.2-27.2 22-41.84 35.5-46-7-16.34-23-31-42.5-13-18 30.5-11 54-5.5 72l12.5-13Z"/></g>`,
5
- dougFunny: (components, colors) => `<path d="M140 56c14.67-.67 40.4-8.8 26-36M114 54c14.67-.67 40.4-8.8 26-36M78 65c14.67-.67 40.4-8.8 26-36" stroke="${escape.xml(colors.hair.value)}" stroke-width="4"/>`,
3
+ fonze: (components, colors) => `<path d="M210.18 49.4c-1.27 6.05-4.6 11.32-9.43 15.9 9.4 34.06 9.6 53.87 4.38 57.65l-14.8-49.99C158.4 91.7 98.65 94.9 83.69 94.9c-1.55.17-3.02.4-4.43.67-14.65 9-2.6 52.12 11.75 70.43l-11 2c-5.14-24.97-17.41-22.92-26.61-21.38l-.32.05c2.2 13.63 6.72 27.74 10.45 39.32.95 2.99 1.86 5.8 2.66 8.4-.79.1-1.48.3-2.12.47-5.5 1.53-7.41 2.06-33.38-61.97-6.47-15.95-6.03-30.16-.97-42.62-4.78-4.8-14.37-7.14-19.71-7.78 10.44-6.12 20.58-4.87 25.54-3.1.5-.75 1.02-1.49 1.56-2.22-.97-4.41-7.96-9.46-12.11-11.82 8.55-4.3 18.6-2.03 22.98-.2C67.63 47.13 97.03 35.05 122 29 170.81 17.17 189.5.5 189.5.5c20.68 8.5 25.62 25.22 20.68 48.9Z" fill="${escape.xml(`#${colors.hair}`)}" stroke="#000" stroke-width="4"/>`,
4
+ mrT: (components, colors) => `<g fill="${escape.xml(`#${colors.hair}`)}"><path opacity=".1" d="M187.99 77.18c-8-6.4-21.84-7-27.5-6.5l-8-26.5c13.6 3.2 32 24 35.5 33Z"/><path d="M85.8 11.76S91.52 7.8 115.74 1.7c24.21-6.1 33.04-3.72 33.04-3.72l11.8 72.84s-8.05-.18-28.04 4.19c-20 4.38-29.56 9.67-29.56 9.67l-17.2-72.9Z"/><path d="M48.99 86.68c-6.8-41.6 23.33-68.17 37-75.5l16.98 73.5c-19.2-39.6-45.33-15.17-54 2Z"/><path opacity=".1" d="M67.49 130.68c-7.2-27.2 22-41.84 35.5-46-7-16.34-23-31-42.5-13-18 30.5-11 54-5.5 72l12.5-13Z"/></g>`,
5
+ dougFunny: (components, colors) => `<path d="M140 56c14.67-.67 40.4-8.8 26-36M114 54c14.67-.67 40.4-8.8 26-36M78 65c14.67-.67 40.4-8.8 26-36" stroke="${escape.xml(`#${colors.hair}`)}" stroke-width="4"/>`,
6
6
  mrClean: (components, colors) => `<ellipse cx="147.85" cy="58.18" rx="6.86" ry="18.44" transform="rotate(117 147.85 58.18)" fill="#FCFDFF"/>`,
7
- dannyPhantom: (components, colors) => `<path d="M123.79 17.49H123.94a96.78 96.78 0 0 1 62.07 24.36c14.06 12.4 22.45 26.87 25.19 36.73-4.06 2.32-11.01 4.31-19.88 5.95-9.68 1.78-21.3 3.08-33.15 4.01-23.7 1.86-48.2 2.2-59.63 1.96l-6.07-.13 4.8 3.71c2.5 1.93 5.83 3.28 9.34 4.22 3.55.95 7.42 1.54 11.14 1.87 3.82.34 7.55.42 10.64.34-10.59 8.16-24.06 14.44-37.35 19.09a225.88 225.88 0 0 1-39.83 9.92l-2.15.32.5 2.11c3.34 14.43 9.5 39.65 13.62 56.57 1.83 7.5 3.26 13.38 3.87 15.94 1.09 4.56 4.5 11.05 8.4 17.03 3.6 5.52 7.78 10.89 11.32 14.2l-7.84 31.81H49.37c8.34-12.71 10.1-27.4 8.4-42.98-1.84-16.87-7.76-35-14-53.17l-1.85-5.36c-5.69-16.46-11.36-32.88-14.43-48.6-3.4-17.44-3.56-33.75 2.83-48.09 10.34-23.21 28.66-36.7 47-44.12 18.37-7.45 36.61-8.76 46.46-7.71Z" fill="${escape.xml(colors.hair.value)}" stroke="#000" stroke-width="4"/>`,
8
- full: (components, colors) => `<path d="m-13.4 312.86-.62-1.64c-.56-1.55-1.35-3.84-2.23-6.74a163.21 163.21 0 0 1-5.28-23.98c-2.81-19.77-2.8-45.8 8.4-71.12 1.8-4.09 4.07-8.3 6.52-12.85 9.47-17.6 21.77-40.46 21.77-82.45 0-30.59 14.84-56.35 36.7-74.51 21.88-18.18 50.7-28.66 78.38-28.66 15.13 0 27.3 1.73 37.07 7.64 9.72 5.87 17.37 16.05 23.05 33.58a3.47 3.47 0 0 0 4.36 2.27c11.31-3.67 28.47.04 42.95 9.5 14.42 9.4 25.62 24.15 25.62 41.91 0 15.43-2.64 25.85-5.22 36-3.12 12.3-6.13 24.16-4 43.5.7 6.45 2.15 11.03 4.16 14.82 1.98 3.73 4.48 6.62 7.12 9.66l.05.07c6.28 7.25 9.13 13.22 10.06 18.47.92 5.23-.05 9.98-1.84 14.9-.9 2.48-2 4.97-3.15 7.59l-.1.22c-1.12 2.53-2.3 5.19-3.35 7.98-2.18 5.77-3.89 12.2-3.72 19.83.15 6.48 1.3 10.91 3.01 14.27 1.7 3.32 3.89 5.44 5.8 7.3l.05.05c1.74 1.68 3.2 3.1 4.27 5.1.96 1.78 1.67 4.13 1.79 7.66a172.14 172.14 0 0 1-87.4 23.9 110.86 110.86 0 0 1-7.28-.28c-6.15-9.4-11.75-24.88-16.1-40.8-4.21-15.46-7.18-31.08-8.3-41.4 37.08-10.72 60.32-48.98 54.73-88.46l-.01-.12a5.97 5.97 0 0 0-.08-.47 76.68 76.68 0 0 0-.43-2.25 486.97 486.97 0 0 0-6.53-28.2 276.64 276.64 0 0 0-7.45-24.2c-2.76-7.5-5.83-14.15-9.1-18.24l-.3-.37-.44-.2c-1.93-.83-3.94-1.77-6.03-2.74-9.93-4.62-21.84-10.17-37.26-10.78-18.78-.74-42.56 5.78-74.7 29.09l-2.02 1.46 1.95 1.57c15.92 12.83 19.37 29.86 18.63 44.3a89.2 89.2 0 0 1-5.24 25.1c-1.16-1.69-1.9-3.82-2.45-6.33a85.19 85.19 0 0 1-.96-5.45l-.05-.3c-.3-2-.63-4.08-1.1-6.09-.96-4.01-2.57-8.02-6.14-10.86-3.58-2.84-8.8-4.25-16.4-3.83l-2.22.13.46 2.18 11.36 53.31.02.08.03.09a79.8 79.8 0 0 0 19.91 32.81 65.49 65.49 0 0 1 1.54 2.68c1.01 1.82 2.37 4.38 3.76 7.33 2.82 5.94 5.66 13.24 6.2 19.2.57 6.05-.96 13.86-2.7 20.31a129.63 129.63 0 0 1-2.84 9.14c-5.03-2.4-9.53-2.23-13.38.01-4.16 2.43-7.21 7.06-9.48 12.22-4.15 9.42-6.14 21.64-7.06 29.22A601.65 601.65 0 0 1 6.2 320.1 353.85 353.85 0 0 1-9 314.64a190.8 190.8 0 0 1-4.4-1.77Z" fill="${escape.xml(colors.hair.value)}" stroke="#000" stroke-width="3.82"/>`,
9
- turban: (components, colors) => `<g stroke="#000" stroke-width="4"><path d="M222.73 100.8c0-66.1-36.46-110.8-80.87-110.8C84.96-10 27 11.34 27 112.25c0 24.97 10.66 43.58 25.56 57.29a42.88 42.88 0 0 1-3.5-4.92c-2.88-26.98 29.17-47.7 60.54-67.96 16.65-10.75 33.11-21.39 44.05-32.76 9.6 5.43 37.79 28.2 43.16 37.42 2.88 4.94 7.51 21.87 10.67 41.63 10.34-12.42 15.25-24.84 15.25-42.16Z" fill="${escape.xml(colors.hair.value)}"/><path d="M154.26 63.25c13.18-11.95 32.89-39.21 31.62-56.92"/></g>`,
10
- pixie: (components, colors) => `<g stroke="#000"><path d="m105.84 88.82 1.88.3v.08l-.04.16-.12.52c-.12.45-.3 1.09-.6 1.9a41.7 41.7 0 0 1-3.4 6.92c-3.17 5.32-8.7 12.66-18.31 21.6 29.97.74 55-8.92 72.82-19.04a156.35 156.35 0 0 0 21.71-14.87 118.43 118.43 0 0 0 7.5-6.7l.1-.1.01-.01 2.29-2.38.93 3.16-1.84.54 1.84-.54v.05l.05.13.15.52a817.06 817.06 0 0 1 2.69 9.28c1.75 6.14 4.14 14.58 6.66 23.77 5.03 18.35 10.6 39.81 12.7 51.97 3.49 20.32-1.91 35.74-5.1 44.87-.63 1.77-1.17 3.3-1.54 4.6.06.04.12.1.22.16.6.42 1.65.91 3.18 1.4 3.02.96 7.32 1.74 11.92 2.19 4.6.44 9.38.53 13.34.14 1.98-.2 3.7-.5 5.08-.92a6.85 6.85 0 0 0 2.58-1.27c.02-.08.03-.29-.02-.68-.1-.78-.4-1.87-.93-3.32-.8-2.15-1.97-4.8-3.35-7.88l-1.46-3.3c-3.93-8.94-8.65-20.56-9.68-32.4-1.15-13.16 1.45-24.42 3.79-34.54l.11-.48c2.39-10.34 4.38-19.32 2.34-28.42-3.1-13.8-7.32-25.3-13.8-33.57-6.42-8.17-15.13-13.27-27.5-14.21l-1.28-.1-.4-1.22c-5.7-17.57-13.38-29.05-23.18-36.17-9.8-7.12-21.96-10.05-36.94-10.05-27.7 0-57.5 10.52-79.88 28.72-22.35 18.18-37.14 43.9-35.2 74.33 2.13 33.6-.3 59.06-5.8 77.72-5 17-12.59 28.46-21.68 35.14 1.19.61 2.78 1.39 4.77 2.27 5.02 2.24 12.59 5.2 22.67 8.03 19.34 5.43 47.95 10.38 85.71 8.89-8.32-7.15-16.72-15.83-23.37-25-7.63-10.53-13.14-21.94-13.3-32.58-.19-12.62.67-45.67.93-52.5.62-15.9 10.82-28.15 20.54-36.3a96.6 96.6 0 0 1 18.96-12.34l.2-.1.13-.06.1-.05h.02v-.01l.8 1.74Zm0 0 1.88.3.56-3.5-3.23 1.46.79 1.74Zm100.23 126.57.03.04-.03-.04Z" fill="${escape.xml(colors.hair.value)}" stroke-width="3.82"/><path d="M191 58c.5 4.5-.3 13.5-1.5 19.5" stroke-width="4"/></g>`,
7
+ dannyPhantom: (components, colors) => `<path d="M123.79 17.49H123.94a96.78 96.78 0 0 1 62.07 24.36c14.06 12.4 22.45 26.87 25.19 36.73-4.06 2.32-11.01 4.31-19.88 5.95-9.68 1.78-21.3 3.08-33.15 4.01-23.7 1.86-48.2 2.2-59.63 1.96l-6.07-.13 4.8 3.71c2.5 1.93 5.83 3.28 9.34 4.22 3.55.95 7.42 1.54 11.14 1.87 3.82.34 7.55.42 10.64.34-10.59 8.16-24.06 14.44-37.35 19.09a225.88 225.88 0 0 1-39.83 9.92l-2.15.32.5 2.11c3.34 14.43 9.5 39.65 13.62 56.57 1.83 7.5 3.26 13.38 3.87 15.94 1.09 4.56 4.5 11.05 8.4 17.03 3.6 5.52 7.78 10.89 11.32 14.2l-7.84 31.81H49.37c8.34-12.71 10.1-27.4 8.4-42.98-1.84-16.87-7.76-35-14-53.17l-1.85-5.36c-5.69-16.46-11.36-32.88-14.43-48.6-3.4-17.44-3.56-33.75 2.83-48.09 10.34-23.21 28.66-36.7 47-44.12 18.37-7.45 36.61-8.76 46.46-7.71Z" fill="${escape.xml(`#${colors.hair}`)}" stroke="#000" stroke-width="4"/>`,
8
+ full: (components, colors) => `<path d="m-13.4 312.86-.62-1.64c-.56-1.55-1.35-3.84-2.23-6.74a163.21 163.21 0 0 1-5.28-23.98c-2.81-19.77-2.8-45.8 8.4-71.12 1.8-4.09 4.07-8.3 6.52-12.85 9.47-17.6 21.77-40.46 21.77-82.45 0-30.59 14.84-56.35 36.7-74.51 21.88-18.18 50.7-28.66 78.38-28.66 15.13 0 27.3 1.73 37.07 7.64 9.72 5.87 17.37 16.05 23.05 33.58a3.47 3.47 0 0 0 4.36 2.27c11.31-3.67 28.47.04 42.95 9.5 14.42 9.4 25.62 24.15 25.62 41.91 0 15.43-2.64 25.85-5.22 36-3.12 12.3-6.13 24.16-4 43.5.7 6.45 2.15 11.03 4.16 14.82 1.98 3.73 4.48 6.62 7.12 9.66l.05.07c6.28 7.25 9.13 13.22 10.06 18.47.92 5.23-.05 9.98-1.84 14.9-.9 2.48-2 4.97-3.15 7.59l-.1.22c-1.12 2.53-2.3 5.19-3.35 7.98-2.18 5.77-3.89 12.2-3.72 19.83.15 6.48 1.3 10.91 3.01 14.27 1.7 3.32 3.89 5.44 5.8 7.3l.05.05c1.74 1.68 3.2 3.1 4.27 5.1.96 1.78 1.67 4.13 1.79 7.66a172.14 172.14 0 0 1-87.4 23.9 110.86 110.86 0 0 1-7.28-.28c-6.15-9.4-11.75-24.88-16.1-40.8-4.21-15.46-7.18-31.08-8.3-41.4 37.08-10.72 60.32-48.98 54.73-88.46l-.01-.12a5.97 5.97 0 0 0-.08-.47 76.68 76.68 0 0 0-.43-2.25 486.97 486.97 0 0 0-6.53-28.2 276.64 276.64 0 0 0-7.45-24.2c-2.76-7.5-5.83-14.15-9.1-18.24l-.3-.37-.44-.2c-1.93-.83-3.94-1.77-6.03-2.74-9.93-4.62-21.84-10.17-37.26-10.78-18.78-.74-42.56 5.78-74.7 29.09l-2.02 1.46 1.95 1.57c15.92 12.83 19.37 29.86 18.63 44.3a89.2 89.2 0 0 1-5.24 25.1c-1.16-1.69-1.9-3.82-2.45-6.33a85.19 85.19 0 0 1-.96-5.45l-.05-.3c-.3-2-.63-4.08-1.1-6.09-.96-4.01-2.57-8.02-6.14-10.86-3.58-2.84-8.8-4.25-16.4-3.83l-2.22.13.46 2.18 11.36 53.31.02.08.03.09a79.8 79.8 0 0 0 19.91 32.81 65.49 65.49 0 0 1 1.54 2.68c1.01 1.82 2.37 4.38 3.76 7.33 2.82 5.94 5.66 13.24 6.2 19.2.57 6.05-.96 13.86-2.7 20.31a129.63 129.63 0 0 1-2.84 9.14c-5.03-2.4-9.53-2.23-13.38.01-4.16 2.43-7.21 7.06-9.48 12.22-4.15 9.42-6.14 21.64-7.06 29.22A601.65 601.65 0 0 1 6.2 320.1 353.85 353.85 0 0 1-9 314.64a190.8 190.8 0 0 1-4.4-1.77Z" fill="${escape.xml(`#${colors.hair}`)}" stroke="#000" stroke-width="3.82"/>`,
9
+ turban: (components, colors) => `<g stroke="#000" stroke-width="4"><path d="M222.73 100.8c0-66.1-36.46-110.8-80.87-110.8C84.96-10 27 11.34 27 112.25c0 24.97 10.66 43.58 25.56 57.29a42.88 42.88 0 0 1-3.5-4.92c-2.88-26.98 29.17-47.7 60.54-67.96 16.65-10.75 33.11-21.39 44.05-32.76 9.6 5.43 37.79 28.2 43.16 37.42 2.88 4.94 7.51 21.87 10.67 41.63 10.34-12.42 15.25-24.84 15.25-42.16Z" fill="${escape.xml(`#${colors.hair}`)}"/><path d="M154.26 63.25c13.18-11.95 32.89-39.21 31.62-56.92"/></g>`,
10
+ pixie: (components, colors) => `<g stroke="#000"><path d="m105.84 88.82 1.88.3v.08l-.04.16-.12.52c-.12.45-.3 1.09-.6 1.9a41.7 41.7 0 0 1-3.4 6.92c-3.17 5.32-8.7 12.66-18.31 21.6 29.97.74 55-8.92 72.82-19.04a156.35 156.35 0 0 0 21.71-14.87 118.43 118.43 0 0 0 7.5-6.7l.1-.1.01-.01 2.29-2.38.93 3.16-1.84.54 1.84-.54v.05l.05.13.15.52a817.06 817.06 0 0 1 2.69 9.28c1.75 6.14 4.14 14.58 6.66 23.77 5.03 18.35 10.6 39.81 12.7 51.97 3.49 20.32-1.91 35.74-5.1 44.87-.63 1.77-1.17 3.3-1.54 4.6.06.04.12.1.22.16.6.42 1.65.91 3.18 1.4 3.02.96 7.32 1.74 11.92 2.19 4.6.44 9.38.53 13.34.14 1.98-.2 3.7-.5 5.08-.92a6.85 6.85 0 0 0 2.58-1.27c.02-.08.03-.29-.02-.68-.1-.78-.4-1.87-.93-3.32-.8-2.15-1.97-4.8-3.35-7.88l-1.46-3.3c-3.93-8.94-8.65-20.56-9.68-32.4-1.15-13.16 1.45-24.42 3.79-34.54l.11-.48c2.39-10.34 4.38-19.32 2.34-28.42-3.1-13.8-7.32-25.3-13.8-33.57-6.42-8.17-15.13-13.27-27.5-14.21l-1.28-.1-.4-1.22c-5.7-17.57-13.38-29.05-23.18-36.17-9.8-7.12-21.96-10.05-36.94-10.05-27.7 0-57.5 10.52-79.88 28.72-22.35 18.18-37.14 43.9-35.2 74.33 2.13 33.6-.3 59.06-5.8 77.72-5 17-12.59 28.46-21.68 35.14 1.19.61 2.78 1.39 4.77 2.27 5.02 2.24 12.59 5.2 22.67 8.03 19.34 5.43 47.95 10.38 85.71 8.89-8.32-7.15-16.72-15.83-23.37-25-7.63-10.53-13.14-21.94-13.3-32.58-.19-12.62.67-45.67.93-52.5.62-15.9 10.82-28.15 20.54-36.3a96.6 96.6 0 0 1 18.96-12.34l.2-.1.13-.06.1-.05h.02v-.01l.8 1.74Zm0 0 1.88.3.56-3.5-3.23 1.46.79 1.74Zm100.23 126.57.03.04-.03-.04Z" fill="${escape.xml(`#${colors.hair}`)}" stroke-width="3.82"/><path d="M191 58c.5 4.5-.3 13.5-1.5 19.5" stroke-width="4"/></g>`,
11
11
  };
@@ -1,11 +1,11 @@
1
1
  import { escape } from '@dicebear/core';
2
2
  export const mouth = {
3
- surprised: (components, colors) => `<path d="M36.05 54.9c10.83-1.97 17.18-13.95 14.97-26.15-2.2-12.2-12.35-21.19-23.18-19.23C17 11.48 10.65 23.46 12.86 35.66c2.2 12.2 12.35 21.2 23.19 19.23Z" fill="${escape.xml(colors.mouth.value)}" stroke="${escape.xml(colors.mouth.value)}" stroke-width="3.59"/><mask id="mouthSurprised-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="11" width="36" height="43"><ellipse cx="31.94" cy="32.21" rx="17.6" ry="21.26" transform="rotate(-10.26 31.94 32.2)" fill="#171921"/></mask><g mask="url(#mouthSurprised-a)"><ellipse cx="35.2" cy="50.22" rx="20.2" ry="18.3" transform="rotate(-10.26 35.2 50.22)" fill="#FC909F"/></g>`,
4
- laughing: (components, colors) => `<path d="M62.8 25.18a34 34 0 0 0 1.12-11.85 2.98 2.98 0 0 0-4.08-2.51c-4.22 1.66-18.21 6.96-28.08 8.32-10.82 1.49-27.2-.32-31.95-.9a2.98 2.98 0 0 0-3.32 3.43 34 34 0 0 0 66.32 3.5Z" fill="${escape.xml(colors.mouth.value)}" stroke="${escape.xml(colors.mouth.value)}" stroke-width="4"/><mask id="mouthLaughing-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="-2" y="12" width="65" height="37"><path d="M61.8 12.2a32 32 0 0 1-63.52 7.85l63.51-7.86Z" fill="#171921"/></mask><g mask="url(#mouthLaughing-a)"><circle cx="34.52" cy="52.31" r="21.5" transform="rotate(-7.05 34.52 52.31)" fill="#FC909F"/></g>`,
5
- nervous: (components, colors) => `<rect x="-6.75" y="17.47" width="70" height="24" rx="4" transform="rotate(-4 -6.75 17.47)" fill="${escape.xml(colors.mouth.value)}"/><path d="m56.82 13.03-57.32 4 1.84 7a6 6 0 0 0 6.23 4.47 6 6 0 0 0-5.54 5.28l-.85 7.2 57.32-4.01-1.84-7a6 6 0 0 0-6.23-4.47 6 6 0 0 0 5.54-5.28l.85-7.2Z" fill="#fff"/><path d="M66.42 31.7 65.4 17.13a6.06 6.06 0 0 0-7.32-5.48c-6.94 1.49-20.22 4.13-29.82 4.8-9.6.68-23.1-.1-30.2-.6a6.06 6.06 0 0 0-6.48 6.45l1.02 14.57a6.06 6.06 0 0 0 7.32 5.48c6.94-1.49 20.22-4.13 29.82-4.8 9.6-.68 23.1.1 30.2.6a6.06 6.06 0 0 0 6.48-6.45Z" stroke="${escape.xml(colors.mouth.value)}" stroke-width="4"/>`,
6
- smile: (components, colors) => `<path d="M-.5 17.5c2.5 17 31 25 57 5.5" stroke="${escape.xml(colors.mouth.value)}" stroke-width="4"/>`,
7
- sad: (components, colors) => `<path d="M13 46c1.72-7.96 8.07-24.77 19.77-28.35 11.7-3.58 17.7 8.46 19.23 14.92" stroke="${escape.xml(colors.mouth.value)}" stroke-width="4"/>`,
8
- pucker: (components, colors) => `<path d="M26 16.7c4.17-2.34 21-5.3 21 1.5 0 8.5-11.5 8-11.5 8s13.04-3.16 10.5 6c-2.5 9-9.5 5.5-11.5 4.5" stroke="${escape.xml(colors.mouth.value)}" stroke-width="4"/>`,
9
- frown: (components, colors) => `<path d="M-5 41c3.21-7.96 15.1-24.77 37-28.35 21.9-3.58 33.13 8.46 36 14.92" stroke="${escape.xml(colors.mouth.value)}" stroke-width="4"/>`,
10
- smirk: (components, colors) => `<path d="M10 24.16c4.94 6.45 12.43 13.6 23.98 11.96 11.55-1.62 16.68-9.6 15.17-16.04" stroke="${escape.xml(colors.mouth.value)}" stroke-width="4"/>`,
3
+ surprised: (components, colors) => `<path d="M36.05 54.9c10.83-1.97 17.18-13.95 14.97-26.15-2.2-12.2-12.35-21.19-23.18-19.23C17 11.48 10.65 23.46 12.86 35.66c2.2 12.2 12.35 21.2 23.19 19.23Z" fill="${escape.xml(`#${colors.mouth}`)}" stroke="${escape.xml(`#${colors.mouth}`)}" stroke-width="3.59"/><mask id="mouthSurprised-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="11" width="36" height="43"><ellipse cx="31.94" cy="32.21" rx="17.6" ry="21.26" transform="rotate(-10.26 31.94 32.2)" fill="#171921"/></mask><g mask="url(#mouthSurprised-a)"><ellipse cx="35.2" cy="50.22" rx="20.2" ry="18.3" transform="rotate(-10.26 35.2 50.22)" fill="#FC909F"/></g>`,
4
+ laughing: (components, colors) => `<path d="M62.8 25.18a34 34 0 0 0 1.12-11.85 2.98 2.98 0 0 0-4.08-2.51c-4.22 1.66-18.21 6.96-28.08 8.32-10.82 1.49-27.2-.32-31.95-.9a2.98 2.98 0 0 0-3.32 3.43 34 34 0 0 0 66.32 3.5Z" fill="${escape.xml(`#${colors.mouth}`)}" stroke="${escape.xml(`#${colors.mouth}`)}" stroke-width="4"/><mask id="mouthLaughing-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="-2" y="12" width="65" height="37"><path d="M61.8 12.2a32 32 0 0 1-63.52 7.85l63.51-7.86Z" fill="#171921"/></mask><g mask="url(#mouthLaughing-a)"><circle cx="34.52" cy="52.31" r="21.5" transform="rotate(-7.05 34.52 52.31)" fill="#FC909F"/></g>`,
5
+ nervous: (components, colors) => `<rect x="-6.75" y="17.47" width="70" height="24" rx="4" transform="rotate(-4 -6.75 17.47)" fill="${escape.xml(`#${colors.mouth}`)}"/><path d="m56.82 13.03-57.32 4 1.84 7a6 6 0 0 0 6.23 4.47 6 6 0 0 0-5.54 5.28l-.85 7.2 57.32-4.01-1.84-7a6 6 0 0 0-6.23-4.47 6 6 0 0 0 5.54-5.28l.85-7.2Z" fill="#fff"/><path d="M66.42 31.7 65.4 17.13a6.06 6.06 0 0 0-7.32-5.48c-6.94 1.49-20.22 4.13-29.82 4.8-9.6.68-23.1-.1-30.2-.6a6.06 6.06 0 0 0-6.48 6.45l1.02 14.57a6.06 6.06 0 0 0 7.32 5.48c6.94-1.49 20.22-4.13 29.82-4.8 9.6-.68 23.1.1 30.2.6a6.06 6.06 0 0 0 6.48-6.45Z" stroke="${escape.xml(`#${colors.mouth}`)}" stroke-width="4"/>`,
6
+ smile: (components, colors) => `<path d="M-.5 17.5c2.5 17 31 25 57 5.5" stroke="${escape.xml(`#${colors.mouth}`)}" stroke-width="4"/>`,
7
+ sad: (components, colors) => `<path d="M13 46c1.72-7.96 8.07-24.77 19.77-28.35 11.7-3.58 17.7 8.46 19.23 14.92" stroke="${escape.xml(`#${colors.mouth}`)}" stroke-width="4"/>`,
8
+ pucker: (components, colors) => `<path d="M26 16.7c4.17-2.34 21-5.3 21 1.5 0 8.5-11.5 8-11.5 8s13.04-3.16 10.5 6c-2.5 9-9.5 5.5-11.5 4.5" stroke="${escape.xml(`#${colors.mouth}`)}" stroke-width="4"/>`,
9
+ frown: (components, colors) => `<path d="M-5 41c3.21-7.96 15.1-24.77 37-28.35 21.9-3.58 33.13 8.46 36 14.92" stroke="${escape.xml(`#${colors.mouth}`)}" stroke-width="4"/>`,
10
+ smirk: (components, colors) => `<path d="M10 24.16c4.94 6.45 12.43 13.6 23.98 11.96 11.55-1.62 16.68-9.6 15.17-16.04" stroke="${escape.xml(`#${colors.mouth}`)}" stroke-width="4"/>`,
11
11
  };
@@ -1,6 +1,6 @@
1
1
  import { escape } from '@dicebear/core';
2
2
  export const shirt = {
3
- open: (components, colors) => `<path d="M260.37 90.86H-12.54l.1-.2C-7.89 81.38.5 64.31 11.4 49.03c6.2-8.67 13.13-16.65 20.54-22.27 7.41-5.61 15.12-8.73 22.95-8.04 15.06 1.31 28.46 9.56 41.93 17.83l3.83 2.35c14.48 8.82 29.35 17.02 45.72 13.43 5.53-1.2 9.26-3.8 11.6-7.16 2.32-3.3 3.15-7.15 3.3-10.66.14-3.52-.4-6.85-.96-9.26a39.89 39.89 0 0 0-.75-2.78c3.63-3.64 7.47-5.77 11.43-6.73 4.3-1.03 8.89-.73 13.72.7 9.73 2.87 20.14 10.25 30.3 19.73 18.61 17.37 35.69 41.14 45.36 54.68Z" fill="${escape.xml(colors.shirt.value)}" stroke="#000" stroke-width="4.27"/>`,
4
- crew: (components, colors) => `<g stroke="#000" stroke-width="4"><path d="M260.7 91H-12.64C3.67 61.66 26.86 42.98 64.44 34.4c16.02-3.65 34.67-5.47 56.56-5.47 9.46 0 16.81 1.44 23.8 3.35 2.58.7 5.18 1.5 7.84 2.3 4.4 1.34 8.97 2.72 13.91 3.86l.14.03.15.01c46.12 3.8 73.78 24.3 93.85 52.5Z" fill="${escape.xml(colors.shirt.value)}"/><path d="m52.93 36.58 9.15-19.6a1 1 0 0 1 1.25-.51c37.93 13.42 72.43 12.48 104.4 3.57a1 1 0 0 1 1.09.38l13.93 19.05a.98.98 0 0 1-.42 1.5c-33.6 13.2-96.67 10.95-128.91-3.07a.98.98 0 0 1-.49-1.32Z" fill="${escape.xml(colors.shirt.value)}"/><path opacity=".75" d="m52.93 36.58 9.15-19.6a1 1 0 0 1 1.25-.51c37.93 13.42 72.43 12.48 104.4 3.57a1 1 0 0 1 1.09.38l13.93 19.05a.98.98 0 0 1-.42 1.5c-33.6 13.2-96.67 10.95-128.91-3.07a.98.98 0 0 1-.49-1.32Z" fill="#fff"/></g>`,
5
- collared: (components, colors) => `<g stroke="#000" stroke-width="4"><path d="M126.77 67.58 128 66l-1.23 1.58 1.72 1.34 1.19-1.83v-.02l.05-.06.04-.05a28.57 28.57 0 0 1 .8-1.18 112.35 112.35 0 0 1 11.5-14.05c3.67-3.78 7.83-7.4 12.13-9.93 4.31-2.53 8.58-3.84 12.53-3.3C209.17 44.2 240.4 63 260.67 91h-273.3c16.3-29.34 39.49-48.02 77.07-56.59 1.6-.36 3.78-.25 6.5.38 2.7.63 5.77 1.73 9.09 3.19 6.62 2.9 14.02 7.16 20.97 11.56a355.78 355.78 0 0 1 25.24 17.63l.4.3.1.08.02.02h.01Z" fill="${escape.xml(colors.shirt.value)}"/><path d="m52.61 37.08 5.17-19.23c.2-.78 1.22-1 1.76-.4C74.4 33.7 93.16 33.08 99.4 32.33c.84-.1 1.5.82 1.1 1.58L87.34 58.86c-.2.38-.62.6-1.04.5-3.95-.82-23.62-5.63-33.57-21.5a1 1 0 0 1-.12-.78ZM183.2 36.98 171.61 17.5c-.4-.66-1.37-.65-1.79 0-5.73 8.83-15.63 12.9-19.09 14.1-.62.22-.9.96-.57 1.53l13.5 22.81c.2.34.59.53.97.42 2.13-.61 9.46-3.67 18.54-18.34a1 1 0 0 0 .01-1.04Z" fill="${escape.xml(colors.shirt.value)}"/><path d="m52.61 37.08 5.17-19.23c.2-.78 1.22-1 1.76-.4C74.4 33.7 93.16 33.08 99.4 32.33c.84-.1 1.5.82 1.1 1.58L87.34 58.86c-.2.38-.62.6-1.04.5-3.95-.82-23.62-5.63-33.57-21.5a1 1 0 0 1-.12-.78ZM183.2 36.98 171.61 17.5c-.4-.66-1.37-.65-1.79 0-5.73 8.83-15.63 12.9-19.09 14.1-.62.22-.9.96-.57 1.53l13.5 22.81c.2.34.59.53.97.42 2.13-.61 9.46-3.67 18.54-18.34a1 1 0 0 0 .01-1.04Z" fill="#fff" fill-opacity=".75"/><path d="m109.5 54.5-9-21.5-7 15 16 6.5ZM141 53.5l9-21.5 7 15-16 6.5ZM70.5 14l-12 3 10 6.5 2-9.5ZM160 14l11 3-7 6.5-4-9.5Z" fill="#000" stroke-linejoin="round"/></g>`,
3
+ open: (components, colors) => `<path d="M260.37 90.86H-12.54l.1-.2C-7.89 81.38.5 64.31 11.4 49.03c6.2-8.67 13.13-16.65 20.54-22.27 7.41-5.61 15.12-8.73 22.95-8.04 15.06 1.31 28.46 9.56 41.93 17.83l3.83 2.35c14.48 8.82 29.35 17.02 45.72 13.43 5.53-1.2 9.26-3.8 11.6-7.16 2.32-3.3 3.15-7.15 3.3-10.66.14-3.52-.4-6.85-.96-9.26a39.89 39.89 0 0 0-.75-2.78c3.63-3.64 7.47-5.77 11.43-6.73 4.3-1.03 8.89-.73 13.72.7 9.73 2.87 20.14 10.25 30.3 19.73 18.61 17.37 35.69 41.14 45.36 54.68Z" fill="${escape.xml(`#${colors.shirt}`)}" stroke="#000" stroke-width="4.27"/>`,
4
+ crew: (components, colors) => `<g stroke="#000" stroke-width="4"><path d="M260.7 91H-12.64C3.67 61.66 26.86 42.98 64.44 34.4c16.02-3.65 34.67-5.47 56.56-5.47 9.46 0 16.81 1.44 23.8 3.35 2.58.7 5.18 1.5 7.84 2.3 4.4 1.34 8.97 2.72 13.91 3.86l.14.03.15.01c46.12 3.8 73.78 24.3 93.85 52.5Z" fill="${escape.xml(`#${colors.shirt}`)}"/><path d="m52.93 36.58 9.15-19.6a1 1 0 0 1 1.25-.51c37.93 13.42 72.43 12.48 104.4 3.57a1 1 0 0 1 1.09.38l13.93 19.05a.98.98 0 0 1-.42 1.5c-33.6 13.2-96.67 10.95-128.91-3.07a.98.98 0 0 1-.49-1.32Z" fill="${escape.xml(`#${colors.shirt}`)}"/><path opacity=".75" d="m52.93 36.58 9.15-19.6a1 1 0 0 1 1.25-.51c37.93 13.42 72.43 12.48 104.4 3.57a1 1 0 0 1 1.09.38l13.93 19.05a.98.98 0 0 1-.42 1.5c-33.6 13.2-96.67 10.95-128.91-3.07a.98.98 0 0 1-.49-1.32Z" fill="#fff"/></g>`,
5
+ collared: (components, colors) => `<g stroke="#000" stroke-width="4"><path d="M126.77 67.58 128 66l-1.23 1.58 1.72 1.34 1.19-1.83v-.02l.05-.06.04-.05a28.57 28.57 0 0 1 .8-1.18 112.35 112.35 0 0 1 11.5-14.05c3.67-3.78 7.83-7.4 12.13-9.93 4.31-2.53 8.58-3.84 12.53-3.3C209.17 44.2 240.4 63 260.67 91h-273.3c16.3-29.34 39.49-48.02 77.07-56.59 1.6-.36 3.78-.25 6.5.38 2.7.63 5.77 1.73 9.09 3.19 6.62 2.9 14.02 7.16 20.97 11.56a355.78 355.78 0 0 1 25.24 17.63l.4.3.1.08.02.02h.01Z" fill="${escape.xml(`#${colors.shirt}`)}"/><path d="m52.61 37.08 5.17-19.23c.2-.78 1.22-1 1.76-.4C74.4 33.7 93.16 33.08 99.4 32.33c.84-.1 1.5.82 1.1 1.58L87.34 58.86c-.2.38-.62.6-1.04.5-3.95-.82-23.62-5.63-33.57-21.5a1 1 0 0 1-.12-.78ZM183.2 36.98 171.61 17.5c-.4-.66-1.37-.65-1.79 0-5.73 8.83-15.63 12.9-19.09 14.1-.62.22-.9.96-.57 1.53l13.5 22.81c.2.34.59.53.97.42 2.13-.61 9.46-3.67 18.54-18.34a1 1 0 0 0 .01-1.04Z" fill="${escape.xml(`#${colors.shirt}`)}"/><path d="m52.61 37.08 5.17-19.23c.2-.78 1.22-1 1.76-.4C74.4 33.7 93.16 33.08 99.4 32.33c.84-.1 1.5.82 1.1 1.58L87.34 58.86c-.2.38-.62.6-1.04.5-3.95-.82-23.62-5.63-33.57-21.5a1 1 0 0 1-.12-.78ZM183.2 36.98 171.61 17.5c-.4-.66-1.37-.65-1.79 0-5.73 8.83-15.63 12.9-19.09 14.1-.62.22-.9.96-.57 1.53l13.5 22.81c.2.34.59.53.97.42 2.13-.61 9.46-3.67 18.54-18.34a1 1 0 0 0 .01-1.04Z" fill="#fff" fill-opacity=".75"/><path d="m109.5 54.5-9-21.5-7 15 16 6.5ZM141 53.5l9-21.5 7 15-16 6.5ZM70.5 14l-12 3 10 6.5 2-9.5ZM160 14l11 3-7 6.5-4-9.5Z" fill="#000" stroke-linejoin="round"/></g>`,
6
6
  };
@@ -1,6 +1,6 @@
1
1
  export function onPostCreate({ prng, options, components, colors }) {
2
2
  // Ensure that the mouth remains visible. #132
3
- if (components.facialHair && colors.facialHair.value === colors.mouth.value) {
4
- colors.mouth.value = 'rgba(255, 255, 255, .2)';
3
+ if (components.facialHair && colors.facialHair === colors.mouth) {
4
+ colors.mouth = 'ffffff33';
5
5
  }
6
6
  }
@@ -1,9 +1,9 @@
1
1
  export function onPreCreate({ prng, options }) {
2
- var _a;
2
+ var _a, _b;
3
3
  // Prevent baseColor from being used a second time if possible.
4
4
  options.baseColor =
5
5
  options.baseColor && options.baseColor.length > 0
6
- ? [prng.pick(options.baseColor)]
6
+ ? [(_a = prng.pick(options.baseColor)) !== null && _a !== void 0 ? _a : 'transparent']
7
7
  : [];
8
8
  for (const colorName of [
9
9
  'eyebrows',
@@ -17,7 +17,7 @@ export function onPreCreate({ prng, options }) {
17
17
  'facialHair',
18
18
  ]) {
19
19
  // @ts-ignore
20
- const colorOption = (_a = options[`${colorName}Color`]) !== null && _a !== void 0 ? _a : [];
20
+ const colorOption = (_b = options[`${colorName}Color`]) !== null && _b !== void 0 ? _b : [];
21
21
  const index = colorOption.indexOf(options.baseColor[0]);
22
22
  if (colorOption.length > 1 && index > -1) {
23
23
  colorOption.splice(index, 1);
package/lib/index.d.ts CHANGED
@@ -1,14 +1,3 @@
1
- /*!
2
- * Micah (@dicebear/micah)
3
- *
4
- * Code licensed under MIT License.
5
- * Copyright (c) 2022 Florian Körner
6
- *
7
- * Design "Avatar Illustration System" by Micah Lanier licensed under CC BY 4.0.
8
- * Source: https://www.figma.com/community/file/829741575478342595
9
- * Homepage: https://dribbble.com/micahlanier
10
- * License: https://creativecommons.org/licenses/by/4.0/
11
- */
12
1
  declare const create: import("@dicebear/core").StyleCreate<import("./types.js").Options>, meta: import("@dicebear/core").StyleMeta, schema: import("json-schema").JSONSchema7;
13
2
  export { create, meta, schema };
14
3
  export type { Options } from './types.js';
package/lib/index.js CHANGED
@@ -8,7 +8,6 @@
8
8
  * Source: https://www.figma.com/community/file/829741575478342595
9
9
  * Homepage: https://dribbble.com/micahlanier
10
10
  * License: https://creativecommons.org/licenses/by/4.0/
11
- */
12
- import { style } from './core.js';
11
+ */ import { style } from './core.js';
13
12
  const { create, meta, schema } = style;
14
13
  export { create, meta, schema };
package/lib/schema.js CHANGED
@@ -12,60 +12,30 @@ export const schema = {
12
12
  type: 'array',
13
13
  items: {
14
14
  type: 'string',
15
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
15
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
16
16
  },
17
- default: ['apricot', 'coast', 'topaz'],
18
- examples: [
19
- ['apricot'],
20
- ['coast'],
21
- ['topaz'],
22
- ['lavender'],
23
- ['sky'],
24
- ['salmon'],
25
- ['canary'],
26
- ['calm'],
27
- ['azure'],
28
- ['seashell'],
29
- ['mellow'],
30
- ['black'],
31
- ['white'],
32
- ],
17
+ default: ['f9c9b6', 'ac6651', '77311d'],
33
18
  },
34
19
  earringColor: {
35
20
  type: 'array',
36
21
  items: {
37
22
  type: 'string',
38
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
23
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
39
24
  },
40
25
  default: [
41
- 'apricot',
42
- 'azure',
43
- 'black',
44
- 'calm',
45
- 'canary',
46
- 'coast',
47
- 'lavender',
48
- 'mellow',
49
- 'salmon',
50
- 'seashell',
51
- 'sky',
52
- 'topaz',
53
- 'white',
54
- ],
55
- examples: [
56
- ['apricot'],
57
- ['azure'],
58
- ['black'],
59
- ['calm'],
60
- ['canary'],
61
- ['coast'],
62
- ['lavender'],
63
- ['mellow'],
64
- ['salmon'],
65
- ['seashell'],
66
- ['sky'],
67
- ['topaz'],
68
- ['white'],
26
+ 'f9c9b6',
27
+ 'd2eff3',
28
+ '000000',
29
+ 'e0ddff',
30
+ 'f4d150',
31
+ 'ac6651',
32
+ '9287ff',
33
+ 'ffeba4',
34
+ 'fc909f',
35
+ 'ffedef',
36
+ '6bd9e9',
37
+ '77311d',
38
+ 'ffffff',
69
39
  ],
70
40
  },
71
41
  earrings: {
@@ -79,6 +49,7 @@ export const schema = {
79
49
  minimum: 0,
80
50
  maximum: 100,
81
51
  default: 30,
52
+ examples: [0, 100],
82
53
  },
83
54
  ears: {
84
55
  type: 'array',
@@ -90,24 +61,9 @@ export const schema = {
90
61
  type: 'array',
91
62
  items: {
92
63
  type: 'string',
93
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
64
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
94
65
  },
95
- default: ['azure', 'calm', 'mellow', 'seashell', 'white'],
96
- examples: [
97
- ['apricot'],
98
- ['azure'],
99
- ['black'],
100
- ['calm'],
101
- ['canary'],
102
- ['coast'],
103
- ['lavender'],
104
- ['mellow'],
105
- ['salmon'],
106
- ['seashell'],
107
- ['sky'],
108
- ['topaz'],
109
- ['white'],
110
- ],
66
+ default: ['d2eff3', 'e0ddff', 'ffeba4', 'ffedef', 'ffffff'],
111
67
  },
112
68
  eyebrows: {
113
69
  type: 'array',
@@ -122,24 +78,9 @@ export const schema = {
122
78
  type: 'array',
123
79
  items: {
124
80
  type: 'string',
125
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
81
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
126
82
  },
127
- default: ['black'],
128
- examples: [
129
- ['apricot'],
130
- ['azure'],
131
- ['black'],
132
- ['calm'],
133
- ['canary'],
134
- ['coast'],
135
- ['lavender'],
136
- ['mellow'],
137
- ['salmon'],
138
- ['seashell'],
139
- ['sky'],
140
- ['topaz'],
141
- ['white'],
142
- ],
83
+ default: ['000000'],
143
84
  },
144
85
  eyes: {
145
86
  type: 'array',
@@ -154,24 +95,9 @@ export const schema = {
154
95
  type: 'array',
155
96
  items: {
156
97
  type: 'string',
157
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
98
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
158
99
  },
159
- default: ['black'],
160
- examples: [
161
- ['apricot'],
162
- ['azure'],
163
- ['black'],
164
- ['calm'],
165
- ['canary'],
166
- ['coast'],
167
- ['lavender'],
168
- ['mellow'],
169
- ['salmon'],
170
- ['seashell'],
171
- ['sky'],
172
- ['topaz'],
173
- ['white'],
174
- ],
100
+ default: ['000000'],
175
101
  },
176
102
  facialHair: {
177
103
  type: 'array',
@@ -183,30 +109,16 @@ export const schema = {
183
109
  type: 'array',
184
110
  items: {
185
111
  type: 'string',
186
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
112
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
187
113
  },
188
- default: ['topaz'],
189
- examples: [
190
- ['apricot'],
191
- ['azure'],
192
- ['black'],
193
- ['calm'],
194
- ['canary'],
195
- ['coast'],
196
- ['lavender'],
197
- ['mellow'],
198
- ['salmon'],
199
- ['seashell'],
200
- ['sky'],
201
- ['topaz'],
202
- ['white'],
203
- ],
114
+ default: ['77311d'],
204
115
  },
205
116
  facialHairProbability: {
206
117
  type: 'integer',
207
118
  minimum: 0,
208
119
  maximum: 100,
209
120
  default: 10,
121
+ examples: [0, 100],
210
122
  },
211
123
  glasses: {
212
124
  type: 'array',
@@ -218,37 +130,22 @@ export const schema = {
218
130
  type: 'array',
219
131
  items: {
220
132
  type: 'string',
221
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
133
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
222
134
  },
223
135
  default: [
224
- 'apricot',
225
- 'azure',
226
- 'black',
227
- 'calm',
228
- 'canary',
229
- 'coast',
230
- 'lavender',
231
- 'mellow',
232
- 'salmon',
233
- 'seashell',
234
- 'sky',
235
- 'topaz',
236
- 'white',
237
- ],
238
- examples: [
239
- ['apricot'],
240
- ['azure'],
241
- ['black'],
242
- ['calm'],
243
- ['canary'],
244
- ['coast'],
245
- ['lavender'],
246
- ['mellow'],
247
- ['salmon'],
248
- ['seashell'],
249
- ['sky'],
250
- ['topaz'],
251
- ['white'],
136
+ 'f9c9b6',
137
+ 'd2eff3',
138
+ '000000',
139
+ 'e0ddff',
140
+ 'f4d150',
141
+ 'ac6651',
142
+ '9287ff',
143
+ 'ffeba4',
144
+ 'fc909f',
145
+ 'ffedef',
146
+ '6bd9e9',
147
+ '77311d',
148
+ 'ffffff',
252
149
  ],
253
150
  },
254
151
  glassesProbability: {
@@ -256,6 +153,7 @@ export const schema = {
256
153
  minimum: 0,
257
154
  maximum: 100,
258
155
  default: 30,
156
+ examples: [0, 100],
259
157
  },
260
158
  hair: {
261
159
  type: 'array',
@@ -297,37 +195,22 @@ export const schema = {
297
195
  type: 'array',
298
196
  items: {
299
197
  type: 'string',
300
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
198
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
301
199
  },
302
200
  default: [
303
- 'apricot',
304
- 'azure',
305
- 'black',
306
- 'calm',
307
- 'canary',
308
- 'coast',
309
- 'lavender',
310
- 'mellow',
311
- 'salmon',
312
- 'seashell',
313
- 'sky',
314
- 'topaz',
315
- 'white',
316
- ],
317
- examples: [
318
- ['apricot'],
319
- ['azure'],
320
- ['black'],
321
- ['calm'],
322
- ['canary'],
323
- ['coast'],
324
- ['lavender'],
325
- ['mellow'],
326
- ['salmon'],
327
- ['seashell'],
328
- ['sky'],
329
- ['topaz'],
330
- ['white'],
201
+ 'f9c9b6',
202
+ 'd2eff3',
203
+ '000000',
204
+ 'e0ddff',
205
+ 'f4d150',
206
+ 'ac6651',
207
+ '9287ff',
208
+ 'ffeba4',
209
+ 'fc909f',
210
+ 'ffedef',
211
+ '6bd9e9',
212
+ '77311d',
213
+ 'ffffff',
331
214
  ],
332
215
  },
333
216
  hairProbability: {
@@ -335,6 +218,7 @@ export const schema = {
335
218
  minimum: 0,
336
219
  maximum: 100,
337
220
  default: 100,
221
+ examples: [0, 100],
338
222
  },
339
223
  mouth: {
340
224
  type: 'array',
@@ -376,10 +260,9 @@ export const schema = {
376
260
  type: 'array',
377
261
  items: {
378
262
  type: 'string',
379
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
263
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
380
264
  },
381
- default: ['black'],
382
- examples: [['black']],
265
+ default: ['000000'],
383
266
  },
384
267
  nose: {
385
268
  type: 'array',
@@ -397,37 +280,22 @@ export const schema = {
397
280
  type: 'array',
398
281
  items: {
399
282
  type: 'string',
400
- pattern: '^([0-9a-zA-Z]+|#[a-fA-F0-9]{3}|#[a-fA-F0-9]{4}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8})$',
283
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
401
284
  },
402
285
  default: [
403
- 'apricot',
404
- 'azure',
405
- 'black',
406
- 'calm',
407
- 'canary',
408
- 'coast',
409
- 'lavender',
410
- 'mellow',
411
- 'salmon',
412
- 'seashell',
413
- 'sky',
414
- 'topaz',
415
- 'white',
416
- ],
417
- examples: [
418
- ['apricot'],
419
- ['azure'],
420
- ['black'],
421
- ['calm'],
422
- ['canary'],
423
- ['coast'],
424
- ['lavender'],
425
- ['mellow'],
426
- ['salmon'],
427
- ['seashell'],
428
- ['sky'],
429
- ['topaz'],
430
- ['white'],
286
+ 'f9c9b6',
287
+ 'd2eff3',
288
+ '000000',
289
+ 'e0ddff',
290
+ 'f4d150',
291
+ 'ac6651',
292
+ '9287ff',
293
+ 'ffeba4',
294
+ 'fc909f',
295
+ 'ffedef',
296
+ '6bd9e9',
297
+ '77311d',
298
+ 'ffffff',
431
299
  ],
432
300
  },
433
301
  },
package/lib/types.d.ts CHANGED
@@ -28,11 +28,7 @@ export interface Options {
28
28
  export declare type ColorGroup = Record<string, ColorGroupItem>;
29
29
  export declare type ColorGroupCollection = Record<string, ColorGroup>;
30
30
  export declare type ColorGroupItem = string;
31
- export declare type ColorPickCollection = Record<string, ColorPick>;
32
- export declare type ColorPick = {
33
- name: string;
34
- value: ColorGroupItem;
35
- };
31
+ export declare type ColorPickCollection = Record<string, string>;
36
32
  export declare type ComponentGroup = Record<string, ComponentGroupItem>;
37
33
  export declare type ComponentGroupCollection = Record<string, ComponentGroup>;
38
34
  export declare type ComponentGroupItem = (components: ComponentPickCollection, colors: ColorPickCollection) => string;
@@ -1,55 +1,15 @@
1
- import { pickColor } from './pickColor.js';
2
1
  export function getColors({ prng, options }) {
2
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
3
3
  return {
4
- base: pickColor({
5
- prng,
6
- group: 'base',
7
- values: options.baseColor,
8
- }),
9
- earring: pickColor({
10
- prng,
11
- group: 'earring',
12
- values: options.earringColor,
13
- }),
14
- eyeShadow: pickColor({
15
- prng,
16
- group: 'eyeShadow',
17
- values: options.eyeShadowColor,
18
- }),
19
- eyebrows: pickColor({
20
- prng,
21
- group: 'eyebrows',
22
- values: options.eyebrowsColor,
23
- }),
24
- facialHair: pickColor({
25
- prng,
26
- group: 'facialHair',
27
- values: options.facialHairColor,
28
- }),
29
- glasses: pickColor({
30
- prng,
31
- group: 'glasses',
32
- values: options.glassesColor,
33
- }),
34
- hair: pickColor({
35
- prng,
36
- group: 'hair',
37
- values: options.hairColor,
38
- }),
39
- mouth: pickColor({
40
- prng,
41
- group: 'mouth',
42
- values: options.mouthColor,
43
- }),
44
- shirt: pickColor({
45
- prng,
46
- group: 'shirt',
47
- values: options.shirtColor,
48
- }),
49
- eyes: pickColor({
50
- prng,
51
- group: 'eyes',
52
- values: options.eyesColor,
53
- }),
4
+ base: (_b = prng.pick((_a = options.baseColor) !== null && _a !== void 0 ? _a : [])) !== null && _b !== void 0 ? _b : 'transparent',
5
+ earring: (_d = prng.pick((_c = options.earringColor) !== null && _c !== void 0 ? _c : [])) !== null && _d !== void 0 ? _d : 'transparent',
6
+ eyeShadow: (_f = prng.pick((_e = options.eyeShadowColor) !== null && _e !== void 0 ? _e : [])) !== null && _f !== void 0 ? _f : 'transparent',
7
+ eyebrows: (_h = prng.pick((_g = options.eyebrowsColor) !== null && _g !== void 0 ? _g : [])) !== null && _h !== void 0 ? _h : 'transparent',
8
+ facialHair: (_k = prng.pick((_j = options.facialHairColor) !== null && _j !== void 0 ? _j : [])) !== null && _k !== void 0 ? _k : 'transparent',
9
+ glasses: (_m = prng.pick((_l = options.glassesColor) !== null && _l !== void 0 ? _l : [])) !== null && _m !== void 0 ? _m : 'transparent',
10
+ hair: (_p = prng.pick((_o = options.hairColor) !== null && _o !== void 0 ? _o : [])) !== null && _p !== void 0 ? _p : 'transparent',
11
+ mouth: (_r = prng.pick((_q = options.mouthColor) !== null && _q !== void 0 ? _q : [])) !== null && _r !== void 0 ? _r : 'transparent',
12
+ shirt: (_t = prng.pick((_s = options.shirtColor) !== null && _s !== void 0 ? _s : [])) !== null && _t !== void 0 ? _t : 'transparent',
13
+ eyes: (_v = prng.pick((_u = options.eyesColor) !== null && _u !== void 0 ? _u : [])) !== null && _v !== void 0 ? _v : 'transparent',
54
14
  };
55
15
  }
@@ -2,11 +2,8 @@ import * as components from '../components/index.js';
2
2
  export function pickComponent({ prng, group, values = [], }) {
3
3
  const componentCollection = components;
4
4
  const key = prng.pick(values);
5
- if (componentCollection[group][key]) {
6
- return {
7
- name: key,
8
- value: componentCollection[group][key],
9
- };
5
+ if (key && componentCollection[group][key]) {
6
+ return { name: key, value: componentCollection[group][key] };
10
7
  }
11
8
  else {
12
9
  return undefined;
package/package.json CHANGED
@@ -1,47 +1,47 @@
1
1
  {
2
- "name": "@dicebear/micah",
3
- "version": "5.0.0-alpha.31",
4
- "description": "Avatar style for DiceBear",
5
- "keywords": [
6
- "dicebear"
7
- ],
8
- "bugs": {
9
- "url": "https://github.com/dicebear/dicebear/issues"
10
- },
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/dicebear/dicebear.git"
14
- },
15
- "license": "MIT",
16
- "type": "module",
17
- "exports": "./lib/index.js",
18
- "types": "./lib/index.d.ts",
19
- "files": [
20
- "LICENSE",
21
- "lib",
22
- "README.md"
23
- ],
24
- "scripts": {
25
- "prebuild": "del-cli lib",
26
- "build": "tsc",
27
- "prepublishOnly": "npm run build",
28
- "test": "uvu tests"
29
- },
30
- "devDependencies": {
31
- "@dicebear/core": "^5.0.0-alpha.31",
32
- "@tsconfig/recommended": "^1.0.1",
33
- "del-cli": "^4.0.1",
34
- "typescript": "^4.6.3",
35
- "uvu": "^0.5.3"
36
- },
37
- "peerDependencies": {
38
- "@dicebear/core": "^5.0.0-alpha.16"
39
- },
40
- "engines": {
41
- "node": "^14.13.1 || >=16.0.0"
42
- },
43
- "publishConfig": {
44
- "access": "public"
45
- },
46
- "gitHead": "088e33eb5bc45d01c9b6350011d973a5bd23bcc8"
2
+ "name": "@dicebear/micah",
3
+ "version": "5.0.0-alpha.32",
4
+ "description": "Avatar style for DiceBear",
5
+ "keywords": [
6
+ "dicebear"
7
+ ],
8
+ "bugs": {
9
+ "url": "https://github.com/dicebear/dicebear/issues"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/dicebear/dicebear.git"
14
+ },
15
+ "license": "MIT",
16
+ "type": "module",
17
+ "exports": "./lib/index.js",
18
+ "types": "./lib/index.d.ts",
19
+ "files": [
20
+ "LICENSE",
21
+ "lib",
22
+ "README.md"
23
+ ],
24
+ "scripts": {
25
+ "prebuild": "del-cli lib",
26
+ "build": "tsc",
27
+ "prepublishOnly": "npm run build",
28
+ "test": "uvu tests"
29
+ },
30
+ "devDependencies": {
31
+ "@dicebear/core": "^5.0.0-alpha.32",
32
+ "@tsconfig/recommended": "^1.0.1",
33
+ "del-cli": "^4.0.1",
34
+ "typescript": "^4.6.3",
35
+ "uvu": "^0.5.3"
36
+ },
37
+ "peerDependencies": {
38
+ "@dicebear/core": "^5.0.0-alpha.21"
39
+ },
40
+ "engines": {
41
+ "node": "^14.13.1 || >=16.0.0"
42
+ },
43
+ "publishConfig": {
44
+ "access": "public"
45
+ },
46
+ "gitHead": "5a4a06cbb8aca42a5d19da8e704b3a7b3a45d755"
47
47
  }
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const base: ColorGroup;
@@ -1,15 +0,0 @@
1
- export const base = {
2
- apricot: 'rgba(249, 201, 182, 1)',
3
- coast: 'rgba(172, 102, 81, 1)',
4
- topaz: 'rgba(119, 49, 29, 1)',
5
- lavender: 'rgba(146, 135, 255, 1)',
6
- sky: 'rgba(107, 217, 233, 1)',
7
- salmon: 'rgba(252, 144, 159, 1)',
8
- canary: 'rgba(244, 209, 80, 1)',
9
- calm: 'rgba(224, 221, 255, 1)',
10
- azure: 'rgba(210, 239, 243, 1)',
11
- seashell: 'rgba(255, 237, 239, 1)',
12
- mellow: 'rgba(255, 235, 164, 1)',
13
- black: 'rgba(0, 0, 0, 1)',
14
- white: 'rgba(255, 255, 255, 1)',
15
- };
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const earring: ColorGroup;
@@ -1,15 +0,0 @@
1
- export const earring = {
2
- apricot: 'rgba(249, 201, 182, 1)',
3
- azure: 'rgba(210, 239, 243, 1)',
4
- black: 'rgba(0, 0, 0, 1)',
5
- calm: 'rgba(224, 221, 255, 1)',
6
- canary: 'rgba(244, 209, 80, 1)',
7
- coast: 'rgba(172, 102, 81, 1)',
8
- lavender: 'rgba(146, 135, 255, 1)',
9
- mellow: 'rgba(255, 235, 164, 1)',
10
- salmon: 'rgba(252, 144, 159, 1)',
11
- seashell: 'rgba(255, 237, 239, 1)',
12
- sky: 'rgba(107, 217, 233, 1)',
13
- topaz: 'rgba(119, 49, 29, 1)',
14
- white: 'rgba(255, 255, 255, 1)',
15
- };
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const eyeShadow: ColorGroup;
@@ -1,15 +0,0 @@
1
- export const eyeShadow = {
2
- apricot: 'rgba(249, 201, 182, 1)',
3
- azure: 'rgba(210, 239, 243, 1)',
4
- black: 'rgba(0, 0, 0, 1)',
5
- calm: 'rgba(224, 221, 255, 1)',
6
- canary: 'rgba(244, 209, 80, 1)',
7
- coast: 'rgba(172, 102, 81, 1)',
8
- lavender: 'rgba(146, 135, 255, 1)',
9
- mellow: 'rgba(255, 235, 164, 1)',
10
- salmon: 'rgba(252, 144, 159, 1)',
11
- seashell: 'rgba(255, 237, 239, 1)',
12
- sky: 'rgba(107, 217, 233, 1)',
13
- topaz: 'rgba(119, 49, 29, 1)',
14
- white: 'rgba(255, 255, 255, 1)',
15
- };
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const eyebrows: ColorGroup;
@@ -1,15 +0,0 @@
1
- export const eyebrows = {
2
- apricot: 'rgba(249, 201, 182, 1)',
3
- azure: 'rgba(210, 239, 243, 1)',
4
- black: 'rgba(0, 0, 0, 1)',
5
- calm: 'rgba(224, 221, 255, 1)',
6
- canary: 'rgba(244, 209, 80, 1)',
7
- coast: 'rgba(172, 102, 81, 1)',
8
- lavender: 'rgba(146, 135, 255, 1)',
9
- mellow: 'rgba(255, 235, 164, 1)',
10
- salmon: 'rgba(252, 144, 159, 1)',
11
- seashell: 'rgba(255, 237, 239, 1)',
12
- sky: 'rgba(107, 217, 233, 1)',
13
- topaz: 'rgba(119, 49, 29, 1)',
14
- white: 'rgba(255, 255, 255, 1)',
15
- };
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const eyes: ColorGroup;
@@ -1,15 +0,0 @@
1
- export const eyes = {
2
- apricot: 'rgba(249, 201, 182, 1)',
3
- azure: 'rgba(210, 239, 243, 1)',
4
- black: 'rgba(0, 0, 0, 1)',
5
- calm: 'rgba(224, 221, 255, 1)',
6
- canary: 'rgba(244, 209, 80, 1)',
7
- coast: 'rgba(172, 102, 81, 1)',
8
- lavender: 'rgba(146, 135, 255, 1)',
9
- mellow: 'rgba(255, 235, 164, 1)',
10
- salmon: 'rgba(252, 144, 159, 1)',
11
- seashell: 'rgba(255, 237, 239, 1)',
12
- sky: 'rgba(107, 217, 233, 1)',
13
- topaz: 'rgba(119, 49, 29, 1)',
14
- white: 'rgba(255, 255, 255, 1)',
15
- };
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const facialHair: ColorGroup;
@@ -1,15 +0,0 @@
1
- export const facialHair = {
2
- apricot: 'rgba(249, 201, 182, 1)',
3
- azure: 'rgba(210, 239, 243, 1)',
4
- black: 'rgba(0, 0, 0, 1)',
5
- calm: 'rgba(224, 221, 255, 1)',
6
- canary: 'rgba(244, 209, 80, 1)',
7
- coast: 'rgba(172, 102, 81, 1)',
8
- lavender: 'rgba(146, 135, 255, 1)',
9
- mellow: 'rgba(255, 235, 164, 1)',
10
- salmon: 'rgba(252, 144, 159, 1)',
11
- seashell: 'rgba(255, 237, 239, 1)',
12
- sky: 'rgba(107, 217, 233, 1)',
13
- topaz: 'rgba(119, 49, 29, 1)',
14
- white: 'rgba(255, 255, 255, 1)',
15
- };
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const glasses: ColorGroup;
@@ -1,15 +0,0 @@
1
- export const glasses = {
2
- apricot: 'rgba(249, 201, 182, 1)',
3
- azure: 'rgba(210, 239, 243, 1)',
4
- black: 'rgba(0, 0, 0, 1)',
5
- calm: 'rgba(224, 221, 255, 1)',
6
- canary: 'rgba(244, 209, 80, 1)',
7
- coast: 'rgba(172, 102, 81, 1)',
8
- lavender: 'rgba(146, 135, 255, 1)',
9
- mellow: 'rgba(255, 235, 164, 1)',
10
- salmon: 'rgba(252, 144, 159, 1)',
11
- seashell: 'rgba(255, 237, 239, 1)',
12
- sky: 'rgba(107, 217, 233, 1)',
13
- topaz: 'rgba(119, 49, 29, 1)',
14
- white: 'rgba(255, 255, 255, 1)',
15
- };
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const hair: ColorGroup;
@@ -1,15 +0,0 @@
1
- export const hair = {
2
- apricot: 'rgba(249, 201, 182, 1)',
3
- azure: 'rgba(210, 239, 243, 1)',
4
- black: 'rgba(0, 0, 0, 1)',
5
- calm: 'rgba(224, 221, 255, 1)',
6
- canary: 'rgba(244, 209, 80, 1)',
7
- coast: 'rgba(172, 102, 81, 1)',
8
- lavender: 'rgba(146, 135, 255, 1)',
9
- mellow: 'rgba(255, 235, 164, 1)',
10
- salmon: 'rgba(252, 144, 159, 1)',
11
- seashell: 'rgba(255, 237, 239, 1)',
12
- sky: 'rgba(107, 217, 233, 1)',
13
- topaz: 'rgba(119, 49, 29, 1)',
14
- white: 'rgba(255, 255, 255, 1)',
15
- };
@@ -1,10 +0,0 @@
1
- export { base } from './base.js';
2
- export { earring } from './earring.js';
3
- export { eyeShadow } from './eyeShadow.js';
4
- export { eyebrows } from './eyebrows.js';
5
- export { facialHair } from './facialHair.js';
6
- export { glasses } from './glasses.js';
7
- export { hair } from './hair.js';
8
- export { mouth } from './mouth.js';
9
- export { shirt } from './shirt.js';
10
- export { eyes } from './eyes.js';
@@ -1,10 +0,0 @@
1
- export { base } from './base.js';
2
- export { earring } from './earring.js';
3
- export { eyeShadow } from './eyeShadow.js';
4
- export { eyebrows } from './eyebrows.js';
5
- export { facialHair } from './facialHair.js';
6
- export { glasses } from './glasses.js';
7
- export { hair } from './hair.js';
8
- export { mouth } from './mouth.js';
9
- export { shirt } from './shirt.js';
10
- export { eyes } from './eyes.js';
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const mouth: ColorGroup;
@@ -1,3 +0,0 @@
1
- export const mouth = {
2
- black: 'rgba(0, 0, 0, 1)',
3
- };
@@ -1,2 +0,0 @@
1
- import type { ColorGroup } from '../types.js';
2
- export declare const shirt: ColorGroup;
@@ -1,15 +0,0 @@
1
- export const shirt = {
2
- apricot: 'rgba(249, 201, 182, 1)',
3
- azure: 'rgba(210, 239, 243, 1)',
4
- black: 'rgba(0, 0, 0, 1)',
5
- calm: 'rgba(224, 221, 255, 1)',
6
- canary: 'rgba(244, 209, 80, 1)',
7
- coast: 'rgba(172, 102, 81, 1)',
8
- lavender: 'rgba(146, 135, 255, 1)',
9
- mellow: 'rgba(255, 235, 164, 1)',
10
- salmon: 'rgba(252, 144, 159, 1)',
11
- seashell: 'rgba(255, 237, 239, 1)',
12
- sky: 'rgba(107, 217, 233, 1)',
13
- topaz: 'rgba(119, 49, 29, 1)',
14
- white: 'rgba(255, 255, 255, 1)',
15
- };
@@ -1,9 +0,0 @@
1
- import type { Prng } from '@dicebear/core';
2
- import type { ColorPick } from '../types.js';
3
- declare type Props = {
4
- prng: Prng;
5
- group: string;
6
- values?: string[];
7
- };
8
- export declare function pickColor({ prng, group, values }: Props): ColorPick;
9
- export {};
@@ -1,13 +0,0 @@
1
- import * as colors from '../colors/index.js';
2
- export function pickColor({ prng, group, values = [] }) {
3
- var _a;
4
- const colorCollection = colors;
5
- if (values.length === 0) {
6
- values.push('transparent');
7
- }
8
- const key = prng.pick(values);
9
- return {
10
- name: key,
11
- value: (_a = colorCollection[group][key]) !== null && _a !== void 0 ? _a : key,
12
- };
13
- }