@dicebear/personas 5.0.0-alpha.3 → 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 (55) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/lib/components/body.d.ts +2 -0
  4. package/lib/components/body.js +7 -0
  5. package/lib/components/eyes.d.ts +2 -0
  6. package/lib/components/eyes.js +8 -0
  7. package/lib/components/facialHair.d.ts +2 -0
  8. package/lib/components/facialHair.js +9 -0
  9. package/lib/components/hair.d.ts +2 -0
  10. package/lib/components/hair.js +23 -0
  11. package/lib/components/index.d.ts +6 -0
  12. package/lib/components/index.js +6 -0
  13. package/lib/components/mouth.d.ts +2 -0
  14. package/lib/components/mouth.js +9 -0
  15. package/lib/components/nose.d.ts +2 -0
  16. package/lib/components/nose.js +5 -0
  17. package/{dist → lib}/core.d.ts +3 -3
  18. package/lib/core.js +34 -0
  19. package/{dist → lib}/hooks/onPostCreate.d.ts +10 -12
  20. package/lib/hooks/onPostCreate.js +3 -0
  21. package/lib/hooks/onPreCreate.d.ts +8 -0
  22. package/lib/hooks/onPreCreate.js +3 -0
  23. package/lib/index.d.ts +3 -0
  24. package/lib/index.js +13 -0
  25. package/lib/schema.d.ts +2 -0
  26. package/lib/schema.js +232 -0
  27. package/lib/types.d.ts +24 -0
  28. package/lib/types.js +1 -0
  29. package/{dist → lib}/utils/getColors.d.ts +8 -9
  30. package/lib/utils/getColors.js +8 -0
  31. package/{dist → lib}/utils/getComponents.d.ts +8 -9
  32. package/lib/utils/getComponents.js +43 -0
  33. package/{dist → lib}/utils/pickComponent.d.ts +9 -9
  34. package/lib/utils/pickComponent.js +11 -0
  35. package/package.json +19 -23
  36. package/dist/colors/clothing.d.ts +0 -2
  37. package/dist/colors/hair.d.ts +0 -2
  38. package/dist/colors/index.d.ts +0 -3
  39. package/dist/colors/skin.d.ts +0 -2
  40. package/dist/components/body.d.ts +0 -2
  41. package/dist/components/eyes.d.ts +0 -2
  42. package/dist/components/facialHair.d.ts +0 -2
  43. package/dist/components/hair.d.ts +0 -2
  44. package/dist/components/index.d.ts +0 -6
  45. package/dist/components/mouth.d.ts +0 -2
  46. package/dist/components/nose.d.ts +0 -2
  47. package/dist/hooks/onPreCreate.d.ts +0 -9
  48. package/dist/index.d.ts +0 -13
  49. package/dist/index.es.js +0 -618
  50. package/dist/index.js +0 -625
  51. package/dist/index.umd.js +0 -12
  52. package/dist/meta/components.d.ts +0 -4
  53. package/dist/options.d.ts +0 -17
  54. package/dist/static-types.d.ts +0 -16
  55. package/dist/utils/pickColor.d.ts +0 -9
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Florian Körner
3
+ Copyright (c) 2022 Florian Körner
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  <p align="center">
3
3
  <strong>Avatar Style for <a href="https://dicebear.com/">DiceBear</a></strong><br />
4
4
  <a href="https://personas.draftbit.com/">Personas by Draftbit</a>
5
- by Draftbit - draftbit.com
5
+ by <a href="https://draftbit.com/">Draftbit - draftbit.com</a>
6
6
  </p>
7
7
 
8
8
  <p align="center">
@@ -0,0 +1,2 @@
1
+ import type { ComponentGroup } from '../types.js';
2
+ export declare const body: ComponentGroup;
@@ -0,0 +1,7 @@
1
+ import { escape } from '@dicebear/core';
2
+ export const body = {
3
+ squared: (components, colors) => `<path d="M16 5v3a5 5 0 0 0 10 0V5l6.65 2.05a9 9 0 0 1 6.35 8.6V20H3v-4.35a9 9 0 0 1 6.35-8.6L16 5Z" fill="${escape.xml(`#${colors.clothing}`)}"/>`,
4
+ rounded: (components, colors) => `<path d="M16 7v.47a5 5 0 1 0 10 0V7c7.06 1.52 12.93 6.74 16 13H0C3.07 13.74 8.94 8.52 16 7Z" fill="${escape.xml(`#${colors.clothing}`)}"/>`,
5
+ small: (components, colors) => `<path d="M32 20H10v-8a11 11 0 0 1 6-9.8V4a5 5 0 0 0 10 0V2.2a11 11 0 0 1 6 9.8v8Z" fill="${escape.xml(`#${colors.clothing}`)}"/><mask id="bodySmall-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="10" y="2" width="22" height="18"><path d="M32 20H10v-8a11 11 0 0 1 6-9.8V4a5 5 0 0 0 10 0V2.2a11 11 0 0 1 6 9.8v8Z" fill="#fff"/></mask><g mask="url(#bodySmall-a)"><path opacity=".14" d="M20.62 8.25 22 8l1.2.5L10 15l10.62-6.75Z" fill="#000"/><path d="M21 1h11v47H10V15l13.34-6.58L21 1Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
6
+ checkered: (components, colors) => `<path d="M16 5v3a5 5 0 0 0 10 0V5l6.65 2.05a9 9 0 0 1 6.35 8.6V20H3v-4.35a9 9 0 0 1 6.35-8.6L16 5Z" fill="${escape.xml(`#${colors.clothing}`)}"/><mask id="bodyCheckered-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="5" width="36" height="15"><path d="M16 5v3a5 5 0 0 0 10 0V5l6.65 2.05a9 9 0 0 1 6.35 8.6V20H3v-4.35a9 9 0 0 1 6.35-8.6L16 5Z" fill="#fff"/></mask><g mask="url(#bodyCheckered-a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M7 20h4V6.54l-1.65.5A9 9 0 0 0 7 8.17V20ZM32.65 7.05 31 6.54V20h4V8.16a9 9 0 0 0-2.35-1.11ZM23 20h4v-8.4a7.02 7.02 0 0 1-4 3.11v5.3Zm-4 0h-4v-8.4a7.02 7.02 0 0 0 4 3.11v5.3Z" fill="#000" style="mix-blend-mode:overlay" opacity=".4"/></g><path d="M3.4 13a9.01 9.01 0 0 1 2.53-4h8.14a6.98 6.98 0 0 0 2.03 4H3.4ZM39 17v3H3v-3h36ZM36.07 9a9.01 9.01 0 0 1 2.53 4H25.9a6.98 6.98 0 0 0 2.03-4h8.14Z" style="mix-blend-mode:lighten" opacity=".18" fill="#fff"/><mask id="bodyCheckered-b" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="9" width="36" height="11"><path d="M3.4 13a9.01 9.01 0 0 1 2.53-4h8.14a6.98 6.98 0 0 0 2.03 4H3.4ZM39 17v3H3v-3h36ZM36.07 9a9.01 9.01 0 0 1 2.53 4H25.9a6.98 6.98 0 0 0 2.03-4h8.14Z" style="mix-blend-mode:lighten" fill="#fff"/></mask>`,
7
+ };
@@ -0,0 +1,2 @@
1
+ import type { ComponentGroup } from '../types.js';
2
+ export declare const eyes: ComponentGroup;
@@ -0,0 +1,8 @@
1
+ export const eyes = {
2
+ open: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M4 4.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Zm13 0a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Z" fill="#1B0640"/>`,
3
+ sleep: (components, colors) => `<path d="M3.63 4A1 1 0 0 0 4 5.37 4.5 4.5 0 0 0 6.25 6a4.5 4.5 0 0 0 2.25-.63 1 1 0 0 0-1-1.74c-.43.25-.85.37-1.25.37S5.43 3.88 5 3.63A1 1 0 0 0 3.63 4ZM15.63 4A1 1 0 0 0 16 5.37a4.5 4.5 0 0 0 2.25.63 4.5 4.5 0 0 0 2.25-.63 1 1 0 0 0-1-1.74 2.5 2.5 0 0 1-1.25.37c-.4 0-.82-.12-1.25-.37a1 1 0 0 0-1.37.37Z" fill="#1B0640"/>`,
4
+ wink: (components, colors) => `<path d="M4 4.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0ZM21.24 3.9a.75.75 0 0 0-.83-.64l-4 .5a.75.75 0 0 0 .18 1.48l4-.5c.41-.05.7-.42.65-.83Z" fill="#1B0640"/>`,
5
+ glasses: (components, colors) => `<path d="M6 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM18 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" fill="#1B0640"/><path d="M9 2H3v6h6V2ZM21 2h-6v6h6V2Z" opacity=".3" fill="#fff"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11 1.05h2c.65 0 1.21-.2 1.84-.42C15.66.33 16.6 0 18 0c1.67 0 3.33.35 5 1.05l1 .53v1.58l-1 .52v3.16A3.08 3.08 0 0 1 20 10h-4c-1.66 0-3-1.41-3-3.16V3.16h-2v3.68A3.08 3.08 0 0 1 8 10H4c-1.66 0-3-1.41-3-3.16V3.68l-1-.52V1.58l1-.53A12.8 12.8 0 0 1 6 0c1.4 0 2.34.33 3.16.63.63.22 1.19.42 1.84.42ZM8.24 2.52A6.1 6.1 0 0 0 6 2.11c-1 0-2 .14-3 .44v4.3c0 .57.45 1.04 1 1.04h4c.55 0 1-.47 1-1.05V2.8l-.76-.27ZM15 2.8l.76-.27A6.1 6.1 0 0 1 18 2.11c1 0 2 .14 3 .44v4.3c0 .57-.45 1.04-1 1.04h-4c-.55 0-1-.47-1-1.05V2.8Z" fill="#1B0640"/>`,
6
+ happy: (components, colors) => `<path d="M3.76 6.21c.4.13.82-.08.95-.47.23-.7.62-1 1.3-1 .66 0 1.05.3 1.28 1a.75.75 0 1 0 1.42-.48c-.43-1.3-1.38-2.01-2.7-2.01-1.34 0-2.29.71-2.72 2.01-.13.4.08.82.47.95ZM15.76 6.21c.4.13.82-.08.95-.47.23-.7.62-1 1.29-1s1.06.3 1.29 1a.75.75 0 1 0 1.42-.48c-.43-1.3-1.38-2.01-2.71-2.01s-2.28.71-2.71 2.01c-.13.4.08.82.47.95Z" fill="#1B0640"/>`,
7
+ sunglasses: (components, colors) => `<g fill="#1B0640"><path d="M6 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM18 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"/><path d="M9 2H3v6h6V2ZM21 2h-6v6h6V2Z" opacity=".8"/><path fill-rule="evenodd" clip-rule="evenodd" d="M13 1.05c.65 0 1.21-.2 1.84-.42C15.66.33 16.6 0 18 0c1.67 0 3.33.35 5 1.05l1 .53v1.58l-1 .52v3.16A3.08 3.08 0 0 1 20 10h-4c-1.66 0-3-1.41-3-3.16V3.16h-2v3.68A3.08 3.08 0 0 1 8 10H4c-1.66 0-3-1.41-3-3.16V3.68l-1-.52V1.58l1-.53A12.8 12.8 0 0 1 6 0c1.4 0 2.34.33 3.16.63.63.22 1.19.42 1.84.42h2ZM8.24 2.52A6.1 6.1 0 0 0 6 2.11c-1 0-2 .14-3 .44v4.3c0 .57.45 1.04 1 1.04h4c.55 0 1-.47 1-1.05V2.8l-.76-.27ZM15 2.8l.76-.27A6.1 6.1 0 0 1 18 2.11c1 0 2 .14 3 .44v4.3c0 .57-.45 1.04-1 1.04h-4c-.55 0-1-.47-1-1.05V2.8Z"/></g>`,
8
+ };
@@ -0,0 +1,2 @@
1
+ import type { ComponentGroup } from '../types.js';
2
+ export declare const facialHair: ComponentGroup;
@@ -0,0 +1,9 @@
1
+ import { escape } from '@dicebear/core';
2
+ export const facialHair = {
3
+ beardMustache: (components, colors) => `<path d="m12.47 9.46 2.43-.83A2.5 2.5 0 0 1 18 10a2.5 2.5 0 0 1 3.1-1.37l2.43.83A18.65 18.65 0 0 0 32 2.7V9A14 14 0 1 1 4 9V2.7c2.05 2.94 5 5.43 8.47 6.76Z" fill="${escape.xml(`#${colors.hair}`)}"/><mask id="facialHairBeardMustache-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="2" width="28" height="21"><path d="m12.47 9.46 2.43-.83A2.5 2.5 0 0 1 18 10a2.5 2.5 0 0 1 3.1-1.37l2.43.83A18.65 18.65 0 0 0 32 2.7V9A14 14 0 1 1 4 9V2.7c2.05 2.94 5 5.43 8.47 6.76Z" fill="#fff"/></mask><g mask="url(#facialHairBeardMustache-a)"><path d="M32 9V2.7c-2.05 2.94-5 5.43-8.47 6.76l2.8.96a1 1 0 0 1-.07 1.91l-5.08 1.3A2.71 2.71 0 0 1 18 12.05a2.72 2.72 0 0 1-3.18 1.58l-5.08-1.3a1 1 0 0 1-.08-1.91l2.81-.96A18.65 18.65 0 0 1 4 2.7V9a14 14 0 1 0 28 0Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/><path d="M22 13.42v.08a3 3 0 0 1-3 3h-2a3 3 0 0 1-3-3.08l.82.21A2.71 2.71 0 0 0 18 12.05a2.72 2.72 0 0 0 3.18 1.58l.82-.2Z" fill="#FFFEFD"/></g>`,
4
+ pyramid: (components, colors) => `<path d="M18.02 12.05a2.72 2.72 0 0 1-3.19 1.59l-5.08-1.3a1 1 0 0 1-.07-1.92l5.23-1.79a2.5 2.5 0 0 1 3.1 1.37 2.5 2.5 0 0 1 3.11-1.37l5.24 1.8a1 1 0 0 1-.08 1.9l-5.08 1.3a2.72 2.72 0 0 1-3.18-1.58Z" fill="${escape.xml(`#${colors.hair}`)}"/>`,
5
+ walrus: (components, colors) => `<path d="M10 14a5 5 0 0 1 5-5h6a5 5 0 0 1 5 5H10Z" fill="${escape.xml(`#${colors.hair}`)}"/>`,
6
+ goatee: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M13.61 10.67a3.61 3.61 0 0 0-2.6 3.57v4.67c0 1 .48 1.93 1.37 2.4 1.39.72 3.63 1.7 5.78 1.7 2.14 0 4.26-.96 5.56-1.7A2.62 2.62 0 0 0 25 18.99v-4.74a3.61 3.61 0 0 0-2.61-3.57 18.05 18.05 0 0 0-4.4-.67c-1.45 0-3.07.33-4.39.67Zm.3 1.41c-.8.22-1.32.97-1.32 1.8v2.67c0 1.07.56 2.06 1.54 2.48 1.08.46 2.59.97 3.97.97 1.39 0 2.85-.5 3.9-.97.96-.42 1.5-1.4 1.5-2.44v-2.7c0-.83-.52-1.58-1.33-1.8a16.72 16.72 0 0 0-4.17-.63c-1.51 0-3.05.33-4.1.62Z" fill="${escape.xml(`#${colors.hair}`)}"/>`,
7
+ shadow: (components, colors) => `<path opacity=".2" d="M32 3v4A14 14 0 1 1 4 7V2.7c2.05 2.94 4.53 6.97 8 8.3 2-1 4-1.5 6-1.5s4 .5 6 1.5c3.47-1.33 5.95-5.36 8-8.3V3Z" fill="${escape.xml(`#${colors.hair}`)}"/>`,
8
+ soulPatch: (components, colors) => `<path d="M16 17.5h4l-.68 2.05a1.39 1.39 0 0 1-2.63 0l-.7-2.05Z" fill="${escape.xml(`#${colors.hair}`)}"/>`,
9
+ };
@@ -0,0 +1,2 @@
1
+ import type { ComponentGroup } from '../types.js';
2
+ export declare const hair: ComponentGroup;
@@ -0,0 +1,23 @@
1
+ import { escape } from '@dicebear/core';
2
+ export const hair = {
3
+ long: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M44 26c-1.8-2-3.13-4.5-3.97-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73V25.5C14 16.39 21.16 9 30 9s16 7.39 16 16.5v1.26a4.47 4.47 0 0 0-2-.73V26Zm2 8.24v6.6c0 7.32-4.61 13.52-11 15.68V44.08A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76Zm-32 6.6c0 7.37 4.68 13.6 11.13 15.73a1073 1073 0 0 0-.13-7.02v-5.47A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76v6.6Z" fill="${escape.xml(`#${colors.hair}`)}"/><mask id="hairLong-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="9" width="32" height="48"><path fill-rule="evenodd" clip-rule="evenodd" d="M44 26c-1.8-2-3.13-4.5-3.97-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73V25.5C14 16.39 21.16 9 30 9s16 7.39 16 16.5v1.26a4.47 4.47 0 0 0-2-.73V26Zm2 8.24v6.6c0 7.32-4.61 13.52-11 15.68V44.08A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76Zm-32 6.6c0 7.37 4.68 13.6 11.13 15.73a1073 1073 0 0 0-.13-7.02v-5.47A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76v6.6Z" fill="#362C47"/></mask><g mask="url(#hairLong-a)"><path fill="#fff" d="M14 9h32v18H14z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
4
+ sideShave: (components, colors) => `<path d="M35 11.92A14 14 0 0 1 44 25v1s-1.33-3.1-3.16-4.93c-1.84-1.82-3.34-.7-4.53-2.52-1.2-1.83-1.31-6.63-1.31-6.63Z" fill="${escape.xml(`#${colors.hair}`)}" opacity=".3"/><path d="M30.65 23.09c-1.6 1.26-4.4 1.88-7.24 2.5-4.62 1.02-9.4 2.07-9.4 5.98V25.5C14 16.39 21.16 9 30 9c4.84 0 5.68 2.65 5.46 6.23-.2 3-.62 4.55-4.8 7.86ZM25 47a9.4 9.4 0 0 1-9.44 9.53L7.5 56.5s4-8.23 5-11.11l.06-.2c-.84.51-1.84.81-2.92.81H8.5s4.1-3.74 5.35-9.69c.1-1.23.15-2.07.15-2.07a4.48 4.48 0 0 0 2.58.76A14.04 14.04 0 0 0 25 44.08V47Z" fill="${escape.xml(`#${colors.hair}`)}"/>`,
5
+ shortCombover: (components, colors) => `<path d="M40.26 12.63a7.93 7.93 0 0 1 4.6 8.35L44 27c-2.83-1.7-4.7-5.55-5.6-11.56a9.24 9.24 0 0 1-5.7 2.77c-1.82.2-3.39.29-4.7.29-3 0-5.67-.5-8-1.5 0 3.67-1.33 7.17-4 10.5l-.92-8.53A9 9 0 0 1 24.03 9H41c0 1.28-.26 2.51-.74 3.63Z" fill="${escape.xml(`#${colors.hair}`)}"/><path d="M40.26 12.63c.48-1.12.74-2.35.74-3.63H24.03a9 9 0 0 0-8.95 9.97L16 27.5c2.67-3.33 4-6.83 4-10.5 2.33 1 5 1.5 8 1.5 1.31 0 2.88-.1 4.7-.29a9.24 9.24 0 0 0 7.56-5.58ZM44.88 20.84a7.91 7.91 0 0 0-2.42-6.73 9.29 9.29 0 0 1-3.45 4.5c1.04 4.22 2.7 7.01 5 8.39l.85-6.02.02-.14Z" style="mix-blend-mode:overlay" opacity=".26" fill="#fff"/>`,
6
+ curlyHighTop: (components, colors) => `<path d="M31.8 7a2 2 0 0 1 3.8 0h.57a2 2 0 0 1 3.83.67l.22.1a2 2 0 0 1 3.13 2.3l.15.17a2 2 0 0 1 1.77 3.41c.05.16.09.31.12.47a2 2 0 0 1 .02 3.75l-.05.32a2 2 0 0 1-.02 3.63 2 2 0 0 1 .16.85 1.8 1.8 0 0 1-1.22 2.92L44 27.5c-.44-.66-.84-1.48-1.2-2.46a1.8 1.8 0 0 1-.45-.8 2 2 0 0 1-.56-2.68l-.02-.1a2 2 0 0 1-.96-2.94 2 2 0 0 1-2.44-.32 2 2 0 0 1-3.72.06l-.31.03a2 2 0 0 1-3.58.2h-.23a2 2 0 0 1-3.52-.1l-.4-.03a2 2 0 0 1-3.68-.17 2 2 0 0 1-3.04-.22l-.03.16a2 2 0 0 1-.7 3.35 2 2 0 0 1-1.4 3.1c-.5.97-1.09 1.94-1.76 2.9l-.19-1.92a1.8 1.8 0 0 1-.34-3.47V22a2 2 0 0 1-.39-3.9l-.01-.14a2 2 0 0 1 .07-3.92c0-.06.02-.12.04-.17a2 2 0 0 1 1.46-3.63A2 2 0 0 1 19.7 7.9v-.1a2 2 0 0 1 3.84-.8h.05a2 2 0 0 1 3.82 0h.18a2 2 0 0 1 3.82 0h.38Z" fill="${escape.xml(`#${colors.hair}`)}"/><mask id="hairCurlyHighTop-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="13" y="5" width="34" height="23"><path d="M31.8 7a2 2 0 0 1 3.8 0h.57a2 2 0 0 1 3.83.67l.22.1a2 2 0 0 1 3.13 2.3l.15.17a2 2 0 0 1 1.77 3.41c.05.16.09.31.12.47a2 2 0 0 1 .02 3.75l-.05.32a2 2 0 0 1-.02 3.63 2 2 0 0 1 .16.85 1.8 1.8 0 0 1-1.22 2.92L44 27.5c-.44-.66-.84-1.48-1.2-2.46a1.8 1.8 0 0 1-.45-.8 2 2 0 0 1-.56-2.68l-.02-.1a2 2 0 0 1-.96-2.94 2 2 0 0 1-2.44-.32 2 2 0 0 1-3.72.06l-.31.03a2 2 0 0 1-3.58.2h-.23a2 2 0 0 1-3.52-.1l-.4-.03a2 2 0 0 1-3.68-.17 2 2 0 0 1-3.04-.22l-.03.16a2 2 0 0 1-.7 3.35 2 2 0 0 1-1.4 3.1c-.5.97-1.09 1.94-1.76 2.9l-.19-1.92a1.8 1.8 0 0 1-.34-3.47V22a2 2 0 0 1-.39-3.9l-.01-.14a2 2 0 0 1 .07-3.92c0-.06.02-.12.04-.17a2 2 0 0 1 1.46-3.63A2 2 0 0 1 19.7 7.9v-.1a2 2 0 0 1 3.84-.8h.05a2 2 0 0 1 3.82 0h.18a2 2 0 0 1 3.82 0h.38Z" fill="#fff"/></mask><g mask="url(#hairCurlyHighTop-a)"><path fill="#fff" d="M13 5h34v23H13z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
7
+ bobCut: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M44 26a17.63 17.63 0 0 1-3.35-5.6A32.92 32.92 0 0 1 30 22.04c-4.85 0-9.14-.83-12.9-2.5A13.95 13.95 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73v-1.38C14 16.33 21.16 9 30 9s16 7.33 16 16.38v1.38a4.47 4.47 0 0 0-2-.73V26Zm-9 20.06v-1.98A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76v6.38c0 .47-.02.95-.06 1.41A34.63 34.63 0 0 1 35 46.06Zm-20.94-4.03A34.63 34.63 0 0 0 25 46.06v-1.98A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76v6.38c0 .47.02.95.06 1.41Z" fill="${escape.xml(`#${colors.hair}`)}"/><mask id="hairBobCut-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="9" width="32" height="38"><path fill-rule="evenodd" clip-rule="evenodd" d="M44 26a17.63 17.63 0 0 1-3.35-5.6A32.92 32.92 0 0 1 30 22.04c-4.85 0-9.14-.83-12.9-2.5A13.95 13.95 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73v-1.38C14 16.33 21.16 9 30 9s16 7.33 16 16.38v1.38a4.47 4.47 0 0 0-2-.73V26Zm-9 20.06v-1.98A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76v6.38c0 .47-.02.95-.06 1.41A34.63 34.63 0 0 1 35 46.06Zm-20.94-4.03A34.63 34.63 0 0 0 25 46.06v-1.98A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76v6.38c0 .47.02.95.06 1.41Z" fill="#362C47"/></mask><g mask="url(#hairBobCut-a)"><path fill="#fff" d="M13 9h34v18H13z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
8
+ curly: (components, colors) => `<path d="m44 26-.02-.02-.3.02a2 2 0 0 1-1.8-2.88 2 2 0 0 1-2.73-2.1 2 2 0 0 1-3.3.56h-.02a1.99 1.99 0 0 1-2 2.05 2 2 0 0 1-1.75-1.04 2 2 0 0 1-3.92.33 2 2 0 0 1-3.87-.6c-.04 0-.09 0-.13-.02a2 2 0 0 1-3.67-.98c-.3-.1-.57-.2-.85-.32.02.09.02.17.02.26a2 2 0 0 1-2.74 1.86A2 2 0 0 1 16 25.8v.23a4.5 4.5 0 0 0 .58 8.97A14.04 14.04 0 0 0 25 44.08v3.06c-.25-.2-.47-.42-.65-.68-.49-.13-.96-.29-1.43-.46a3.46 3.46 0 0 1-4.54-2.3 20.9 20.9 0 0 1-.98-.7 3.46 3.46 0 0 1-3.83-3.8c-.17-.21-.34-.43-.5-.66a3.46 3.46 0 0 1-2.66-5.07l-.14-.39a3.47 3.47 0 0 1-1.08-5.96v-.01a3.47 3.47 0 0 1 .47-6.2 3.47 3.47 0 0 1 2.28-5.79 3.47 3.47 0 0 1 3.87-4.86 3.47 3.47 0 0 1 5.15-3.5 3.47 3.47 0 0 1 5.94-1.83 3.47 3.47 0 0 1 6.22 0 3.47 3.47 0 0 1 5.94 1.83 3.47 3.47 0 0 1 5.14 3.5 3.47 3.47 0 0 1 3.87 4.86 3.47 3.47 0 0 1 2.28 5.8 3.47 3.47 0 0 1 .47 6.19 3.47 3.47 0 0 1-1.08 5.97l-.14.4a3.47 3.47 0 0 1-2.66 5.06c-.16.23-.33.45-.5.66A3.46 3.46 0 0 1 42.6 43l-.98.7a3.46 3.46 0 0 1-4.54 2.3c-.47.17-.94.33-1.43.46-.18.26-.4.49-.65.68v-3.06A14.04 14.04 0 0 0 43.42 35h.08a4.5 4.5 0 0 0 .5-8.97V26Z" fill="${escape.xml(`#${colors.hair}`)}"/><mask id="hairCurly-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="7" y="3" width="46" height="45"><path d="m44 26-.02-.02-.3.02a2 2 0 0 1-1.8-2.88 2 2 0 0 1-2.73-2.1 2 2 0 0 1-3.3.56h-.02a1.99 1.99 0 0 1-2 2.05 2 2 0 0 1-1.75-1.04 2 2 0 0 1-3.92.33 2 2 0 0 1-3.87-.6c-.04 0-.09 0-.13-.02a2 2 0 0 1-3.67-.98c-.3-.1-.57-.2-.85-.32.02.09.02.17.02.26a2 2 0 0 1-2.74 1.86A2 2 0 0 1 16 25.8v.23a4.5 4.5 0 0 0 .58 8.97A14.04 14.04 0 0 0 25 44.08v3.06c-.25-.2-.47-.42-.65-.68-.49-.13-.96-.29-1.43-.46a3.46 3.46 0 0 1-4.54-2.3 20.9 20.9 0 0 1-.98-.7 3.46 3.46 0 0 1-3.83-3.8c-.17-.21-.34-.43-.5-.66a3.46 3.46 0 0 1-2.66-5.07l-.14-.39a3.47 3.47 0 0 1-1.08-5.96v-.01a3.47 3.47 0 0 1 .47-6.2 3.47 3.47 0 0 1 2.28-5.79 3.47 3.47 0 0 1 3.87-4.86 3.47 3.47 0 0 1 5.15-3.5 3.47 3.47 0 0 1 5.94-1.83 3.47 3.47 0 0 1 6.22 0 3.47 3.47 0 0 1 5.94 1.83 3.47 3.47 0 0 1 5.14 3.5 3.47 3.47 0 0 1 3.87 4.86 3.47 3.47 0 0 1 2.28 5.8 3.47 3.47 0 0 1 .47 6.19 3.47 3.47 0 0 1-1.08 5.97l-.14.4a3.47 3.47 0 0 1-2.66 5.06c-.16.23-.33.45-.5.66A3.46 3.46 0 0 1 42.6 43l-.98.7a3.46 3.46 0 0 1-4.54 2.3c-.47.17-.94.33-1.43.46-.18.26-.4.49-.65.68v-3.06A14.04 14.04 0 0 0 43.42 35h.08a4.5 4.5 0 0 0 .5-8.97V26Z" fill="#fff"/></mask><g mask="url(#hairCurly-a)"><path fill="#fff" d="M7 3h46v44H7z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
9
+ pigtails: (components, colors) => `<path d="M39 11.84A5 5 0 0 1 44.04 7a4.99 4.99 0 0 1 5.03 5.18c.02 3.2.7 7.08 1.93 9.82a20.56 20.56 0 0 1-6.22-2.9A16.67 16.67 0 0 1 46 25.38v1.38a4.47 4.47 0 0 0-2-.73V26c-1.8-2-3.13-4.5-3.97-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73v-1.38c0-2.22.43-4.35 1.22-6.28A20.56 20.56 0 0 1 9 22a26.57 26.57 0 0 0 1.92-10.06A4.99 4.99 0 0 1 15.96 7 5 5 0 0 1 21 11.84a15.67 15.67 0 0 1 18 0Z" fill="${escape.xml(`#${colors.hair}`)}"/><path d="M39.01 11.58c4.2 2.96 7 8.19 7 14.13v1.05a4.47 4.47 0 0 0-2-.73V26c-1.82-2-3.14-4.5-3.98-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73V25.7c0-5.94 2.79-11.17 6.99-14.13v.26a15.67 15.67 0 0 1 18 0l.01-.26Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/><path fill-rule="evenodd" clip-rule="evenodd" d="M21 9a5 5 0 0 0-4.39 7.4 16.14 16.14 0 0 1 7.55-6.27A4.98 4.98 0 0 0 21 9Zm23 5a5 5 0 0 0-8.16-3.87 16.14 16.14 0 0 1 7.55 6.27c.39-.7.6-1.53.6-2.4Z" fill="#F55D81"/>`,
10
+ curlyBun: (components, colors) => `<path d="M30 2.5a2 2 0 0 0-1.8 1.11 2 2 0 0 0-3.42 1.06 2 2 0 0 0-2.96 2.02 2 2 0 0 0-2.23 2.8 2 2 0 0 0-1.31 3.33A2 2 0 0 0 18 16.4a2 2 0 0 0-.55 2.38 14 14 0 0 1 25.08 0A2 2 0 0 0 42 16.4a2 2 0 0 0-.27-3.58 2 2 0 0 0-1.3-3.33 2 2 0 0 0-2.24-2.8 2 2 0 0 0-2.96-2.02 2 2 0 0 0-3.43-1.06A2 2 0 0 0 30 2.51Z" fill="${escape.xml(`#${colors.hair}`)}"/><path d="M43.93 23.63A14 14 0 0 0 31 15h-2a14 14 0 0 0-12.93 8.63 14 14 0 0 1 27.86 0Z" fill="#F55D81"/>`,
11
+ buzzcut: (components, colors) => `<path d="M44 25v3c-1.33-1.67-2.67-4.67-4-9-2.66 1.33-6 2-10 2s-7.34-.67-10-2c-1.33 3.67-2.67 6.33-4 8v-2a14 14 0 1 1 28 0Z" style="mix-blend-mode:multiply" opacity=".2" fill="${escape.xml(`#${colors.hair}`)}"/>`,
12
+ bobBangs: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M44 26c-2.18-2.42-3.65-5.54-4.42-9.36a19.6 19.6 0 0 1-9.08 7.86c-4.67 2-9.5 2.33-14.5 1v.53c-.73.08-1.42.34-2 .73V25.5C14 16.39 21.16 9 30 9s16 7.39 16 16.5v1.26a4.47 4.47 0 0 0-2-.73V26Zm-9 21.31v-3.23A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76V45a38.74 38.74 0 0 1-11 2.31ZM14 45a38.74 38.74 0 0 0 11 2.31v-3.23A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76V45Z" fill="${escape.xml(`#${colors.hair}`)}"/><mask id="hairBobBangs-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="9" width="32" height="39"><path fill-rule="evenodd" clip-rule="evenodd" d="M44 26c-2.18-2.42-3.65-5.54-4.42-9.36a19.6 19.6 0 0 1-9.08 7.86c-4.67 2-9.5 2.33-14.5 1v.53c-.73.08-1.42.34-2 .73V25.5C14 16.39 21.16 9 30 9s16 7.39 16 16.5v1.26a4.47 4.47 0 0 0-2-.73V26Zm-9 21.31v-3.23A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76V45a38.74 38.74 0 0 1-11 2.31ZM14 45a38.74 38.74 0 0 0 11 2.31v-3.23A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76V45Z" fill="#362C47"/></mask><g mask="url(#hairBobBangs-a)"><path fill="#fff" d="M13 9h34v18H13z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
13
+ bald: (components, colors) => `<path d="M26.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM19.38 21.77c.37.19.82.04 1-.33a15.05 15.05 0 0 1 2-3.06c.76-.88 1.63-1.62 2.63-2.2a.75.75 0 0 0-.75-1.3 11.86 11.86 0 0 0-3 2.52c-.85.99-1.58 2.11-2.2 3.37a.75.75 0 0 0 .33 1Z" style="mix-blend-mode:overlay" opacity=".2" fill="#fff"/>`,
14
+ balding: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="m16.97 25.55 2.7-8.55H18a3 3 0 0 0-2.98 3.31l.65 6.2c.6 0 1.12-.39 1.3-.95ZM41.34 17h-1.67l2.7 8.55c.18.56.7.95 1.3.95l.65-6.19a3 3 0 0 0-2.98-3.3Z" fill="${escape.xml(`#${colors.hair}`)}"/><path d="M26.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM19.38 21.77c.37.19.82.04 1-.33a15.05 15.05 0 0 1 2-3.06c.76-.88 1.63-1.62 2.63-2.2a.75.75 0 0 0-.75-1.3 11.86 11.86 0 0 0-3 2.52c-.85.99-1.58 2.11-2.2 3.37a.75.75 0 0 0 .33 1Z" style="mix-blend-mode:overlay" opacity=".2" fill="#fff"/>`,
15
+ cap: (components, colors) => `<path opacity=".2" d="M30 17c3.88 0 7.55-.37 11 4.22l-1.9 6.5c-.61 1.22-1.64 1.55-2.46.79-2.1-1.92-4.3-2.88-6.64-2.88-2.33 0-4.55.96-6.64 2.89-.82.76-1.85.43-2.46-.8L19 21.22c3.45-4.6 7.12-4.22 11-4.22Z" fill="#000"/><path d="M27.3 11.2a3 3 0 0 1 5.4 0c6.1.96 10.82 5.24 11.3 12.72a27.7 27.7 0 0 0-3.96-1.3l-.94.6a2 2 0 0 1-2.46.46 13.86 13.86 0 0 0-13.28 0 2 2 0 0 1-2.46-.46l-.94-.6c-1.4.35-2.72.78-3.96 1.3.48-7.48 5.2-11.76 11.3-12.71Z" fill="#F29C65"/><path d="M19.96 22.62c-1.4.35-2.72.78-3.96 1.3C16.55 15.37 22.63 11 30 11s13.45 4.37 14 12.92a27.7 27.7 0 0 0-3.96-1.3L41 22c-3.45-2.67-7.12-4-11-4s-7.55 1.33-11 4l.96.62Z" fill="#000" style="mix-blend-mode:overlay" opacity=".28"/><path d="m39.45 23-.35.22a2 2 0 0 1-2.46.46 13.86 13.86 0 0 0-13.28 0 2 2 0 0 1-2.46-.46l-.35-.23c.87.07 2.19-.47 2.81-.81a13.86 13.86 0 0 1 13.28 0c.62.34 1.94.88 2.8.81Z" fill="#fff" style="mix-blend-mode:lighten" opacity=".2"/>`,
16
+ bunUndercut: (components, colors) => `<circle cx="30" cy="12" r="4" fill="#5A45FF"/><path fill-rule="evenodd" clip-rule="evenodd" d="m33.72 12.84-.05 7.66c3.72-.75 5.83-1.25 6.33-1.5 1.33 4.33 2.67 7.33 4 9v-3a14 14 0 0 0-7.06-12.16c0-.02-1.08-.02-3.22 0ZM20 19c.5.25 2.6.75 6.33 1.5v-7.66h-3.27A14 14 0 0 0 16 25v3c1.33-1.67 2.67-4.67 4-9Z" fill="${escape.xml(`#${colors.hair}`)}" opacity=".3"/><path fill-rule="evenodd" clip-rule="evenodd" d="M30 6c-2.1 0-3.81 2.01-3.99 4.57-.72.41-1.44.94-2.14 1.58a3 3 0 0 0-.96 1.93l-.21 2.2a3.87 3.87 0 0 0 3.02 4.14c1.73.39 3.16.58 4.29.58 1.12 0 2.5-.18 4.17-.55a4 4 0 0 0 3.13-4.09l-.1-2.17a3 3 0 0 0-1.04-2.14 12.1 12.1 0 0 0-2.18-1.5C33.8 7.98 32.08 6 30 6Zm0 3.5a8 8 0 0 0-3.67.9 4 4 0 0 1 7.33-.03A8.25 8.25 0 0 0 30 9.5Z" fill="${escape.xml(`#${colors.hair}`)}"/><path d="M26.02 10.56C26.19 8 27.9 6 30 6c2.07 0 3.77 1.96 3.98 4.47a11 11 0 0 0-.36-.17 4 4 0 0 0-7.28.09l-.32.17Z" fill="#000" style="mix-blend-mode:overlay" opacity=".22"/>`,
17
+ fade: (components, colors) => `<mask id="hairFade-b" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="16" y="12" width="28" height="15"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 27v-2a14 14 0 0 1 7.5-12.4v.14c.09 1.68.16 3.3-.4 4.53-.7 1.57-1.78 2.45-2.72 3.21l-.62.52c-.7.61-2.44 2.49-3.76 6Zm28 0v-2a14 14 0 0 0-7.5-12.4v.14c-.09 1.68-.16 3.3.4 4.53.7 1.57 1.78 2.45 2.72 3.21l.62.52c.7.61 2.44 2.49 3.76 6Z" fill="url(#hairFade-a)"/></mask><g mask="url(#hairFade-b)"><path fill-rule="evenodd" clip-rule="evenodd" d="m16 27-.2-14.4h7.7l.06 14.4H16Zm20.72 0H44l-.07-14.4H36.5l.22 14.4Z" fill="${escape.xml(`#${colors.hair}`)}"/></g><path d="M22.3 17.95c0-3.6 2.72-6.63 6.3-7L38 10a6.84 6.84 0 0 1-6.49 9h-8.15c-.58 0-1.05-.47-1.05-1.05Z" fill="${escape.xml(`#${colors.hair}`)}"/><defs><linearGradient id="hairFade-a" x1="16" y1="12.6" x2="16" y2="27" gradientUnits="userSpaceOnUse"><stop/><stop offset="1" stop-opacity=".01"/></linearGradient></defs>`,
18
+ beanie: (components, colors) => `<path d="M17 19.8a14 14 0 0 1 26 0l.24.2a1 1 0 0 1 .34.54l.62 2.64a.5.5 0 0 1-.77.52C38.99 20.57 34.5 19 30 19S21 20.57 16.58 23.7a.5.5 0 0 1-.77-.52l.62-2.64a1 1 0 0 1 .34-.55l.24-.19Z" fill="#E15C66"/><path d="M30 15c6.45 0 12.01 4.04 13.25 5 .16.14.28.32.33.53l.62 2.6c.1.46-.44.83-.83.57C41.06 22.18 35.57 19 30 19c-5.57 0-11.05 3.18-13.36 4.7-.4.26-.93-.1-.82-.56l.6-2.6c.05-.21.17-.4.34-.53 1.23-.96 6.8-5 13.24-5Z" fill="#000" style="mix-blend-mode:overlay" opacity=".26"/>`,
19
+ straightBun: (components, colors) => `<path d="M20.2 15a10 10 0 1 1 19.6 0c-2.53-2.47-5.98-4-9.8-4-3.82 0-7.27 1.53-9.8 4Z" fill="${escape.xml(`#${colors.hair}`)}"/><path d="M43.93 23.63A14 14 0 0 0 31 15h-2a14 14 0 0 0-12.93 8.63 14 14 0 0 1 27.86 0Z" fill="#F55D81"/>`,
20
+ extraLong: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M44 26c-1.8-2-3.13-4.5-3.97-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73V25.5C14 16.39 21.16 9 30 9s16 7.39 16 16.5v1.26a4.47 4.47 0 0 0-2-.73V26Zm2 8.24v22.28H35V44.08A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76ZM14 56.57h11.13L25 49.55v-5.47A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76v22.33Z" fill="${escape.xml(`#${colors.hair}`)}"/><mask id="hairExtraLong-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="9" width="32" height="48"><path fill-rule="evenodd" clip-rule="evenodd" d="M44 26c-1.8-2-3.13-4.5-3.97-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73V25.5C14 16.39 21.16 9 30 9s16 7.39 16 16.5v1.26a4.47 4.47 0 0 0-2-.73V26Zm2 8.24v22.28H35V44.08A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76ZM14 56.57h11.13L25 49.55v-5.47A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76v22.33Z" fill="#362C47"/></mask><g mask="url(#hairExtraLong-a)"><path fill="#fff" d="M14 9h32v18H14z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
21
+ shortComboverChops: (components, colors) => `<path d="m15.79 25.56-.71-6.6A9 9 0 0 1 24.03 9H41c0 1.28-.26 2.51-.74 3.63a7.93 7.93 0 0 1 4.6 8.35L44 27v4.22a14 14 0 0 1-.48 3.42l-2.52.54A1 1 0 0 1 39.8 34l1.9-9.12c-1.57-2.09-2.68-5.24-3.31-9.44a9.24 9.24 0 0 1-5.7 2.77c-1.82.2-3.39.29-4.7.29-3 0-5.67-.5-8-1.5 0 2.6-.67 5.1-2 7.52L19.98 34a1 1 0 0 1-1.2 1.18l-2.51-.54a14 14 0 0 1-.48-3.42v-5.66Z" fill="${escape.xml(`#${colors.hair}`)}"/><path fill-rule="evenodd" clip-rule="evenodd" d="M19.98 34 18 24.52c1.33-2.42 2-4.93 2-7.52 2.33 1 5 1.5 8 1.5 1.31 0 2.88-.1 4.7-.29A9.24 9.24 0 0 0 41 9H24.03a9 9 0 0 0-8.95 9.97l.7 6.59v5.66a14 14 0 0 0 .49 3.42l2.52.54A1 1 0 0 0 19.98 34ZM44 31.22V27l.86-6.02.02-.14a7.91 7.91 0 0 0-2.42-6.73 9.29 9.29 0 0 1-3.45 4.5 17.22 17.22 0 0 0 2.7 6.27L39.8 34A1 1 0 0 0 41 35.18l2.52-.54a14 14 0 0 0 .48-3.42Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/>`,
22
+ mohawk: (components, colors) => `<path d="M30.03 8a6.51 6.51 0 0 1 4.85 2.05c.56.54.96 1.32 1.1 2.14l.67 4.16c.35 1.94-.7 3.67-2.53 4.09-1.62.37-3 .55-4.12.55-1.13 0-2.55-.2-4.24-.58-1.84-.42-2.84-2.2-2.38-4.14l.79-4.2c.16-.74.53-1.43 1.03-1.93C25.83 9.5 27.3 8 30.03 8Z" fill="${escape.xml(`#${colors.hair}`)}"/><path d="M34.88 10.05c.56.54.96 1.32 1.1 2.14l.67 4.16c.35 1.94-.7 3.67-2.53 4.09-1.62.37-3 .55-4.12.55-1.13 0-2.55-.2-4.24-.58-1.84-.42-2.84-2.2-2.38-4.14l.79-4.2c.16-.74.53-1.43 1.03-1.93.26-.27.67-.69 1.25-1.08-.31.48-1.45.98-1.45 2.43V15a3.06 3.06 0 0 0 2.02 3.51c1.18.34 2.18.5 2.98.5.79 0 1.76-.16 2.9-.47 1.28-.35 2.35-1.89 2.1-3.53v-3c0-1.5-1.1-2.54-1.5-3l-.14-.14c.73.42 1.22.9 1.52 1.2Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/>`,
23
+ };
@@ -0,0 +1,6 @@
1
+ export { eyes } from './eyes.js';
2
+ export { hair } from './hair.js';
3
+ export { body } from './body.js';
4
+ export { mouth } from './mouth.js';
5
+ export { nose } from './nose.js';
6
+ export { facialHair } from './facialHair.js';
@@ -0,0 +1,6 @@
1
+ export { eyes } from './eyes.js';
2
+ export { hair } from './hair.js';
3
+ export { body } from './body.js';
4
+ export { mouth } from './mouth.js';
5
+ export { nose } from './nose.js';
6
+ export { facialHair } from './facialHair.js';
@@ -0,0 +1,2 @@
1
+ import type { ComponentGroup } from '../types.js';
2
+ export declare const mouth: ComponentGroup;
@@ -0,0 +1,9 @@
1
+ export const mouth = {
2
+ smile: (components, colors) => `<path d="M5 5.87a1 1 0 1 1 1-1.74A6 6 0 0 0 9 5a6 6 0 0 0 3-.87 1 1 0 1 1 1 1.74A8 8 0 0 1 9 7a8 8 0 0 1-4-1.13Z" fill="#1B0640"/>`,
3
+ frown: (components, colors) => `<path d="M5 4.13a1 1 0 1 0 1 1.74A6 6 0 0 1 9 5a6 6 0 0 1 3 .87 1 1 0 1 0 1-1.74A8 8 0 0 0 9 3a8 8 0 0 0-4 1.13Z" fill="#1B0640"/>`,
4
+ surprise: (components, colors) => `<ellipse cx="9" cy="5" rx="2" ry="2.5" fill="#1B0640"/>`,
5
+ pacifier: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2c-.76 0-1.51-.14-2.27-.41A2.03 2.03 0 0 0 4 3.5c0 1.4.82 2.6 2 3.17a3 3 0 0 0 6 0 3.5 3.5 0 0 0 2-3.17 2.03 2.03 0 0 0-2.73-1.91C10.51 1.86 9.76 2 9 2ZM7.59 7h2.82A1.5 1.5 0 0 1 7.6 7Z" fill="#456DFF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M12 6.5v.17a3.5 3.5 0 0 0 2-3.17 2.03 2.03 0 0 0-2.73-1.91 6.61 6.61 0 0 1-4.54 0A2.03 2.03 0 0 0 4 3.5c0 1.4.82 2.6 2 3.17V6.5a3 3 0 1 1 6 0ZM7.59 7h2.82A1.5 1.5 0 1 0 7.6 7Z" fill="#fff" fill-opacity=".3" style="mix-blend-mode:lighten"/><circle cx="9" cy="4.5" r="1.5" fill="#fff"/>`,
6
+ bigSmile: (components, colors) => `<path d="M6 3h6v1a3 3 0 0 1-6 0V3Z" fill="#fff"/>`,
7
+ smirk: (components, colors) => `<path d="M7.32 5.73a.75.75 0 0 1 .36-1.46c2.44.61 4.17.32 5.29-.8a.75.75 0 1 1 1.06 1.06c-1.54 1.54-3.81 1.92-6.71 1.2Z" fill="#1B0640"/>`,
8
+ lips: (components, colors) => `<path d="M5 5h8s-1 2.5-4 2.5S5 5 5 5Z" fill="#DC5C7A"/><path d="M5.39 4.22A2.1 2.1 0 0 1 9 4a2.1 2.1 0 0 1 3.61.22l.4.78H4.99l.39-.78Z" fill="#F57B98"/>`,
9
+ };
@@ -0,0 +1,2 @@
1
+ import type { ComponentGroup } from '../types.js';
2
+ export declare const nose: ComponentGroup;
@@ -0,0 +1,5 @@
1
+ export const nose = {
2
+ mediumRound: (components, colors) => `<path d="M4.25 5a.75.75 0 0 1 1.5 0c0 .84.91 1.75 2.25 1.75 1.34 0 2.25-.91 2.25-1.75a.75.75 0 0 1 1.5 0c0 1.66-1.59 3.25-3.75 3.25S4.25 6.66 4.25 5Z" fill="#000" style="mix-blend-mode:overlay" opacity=".36"/>`,
3
+ smallRound: (components, colors) => `<path d="M5.29 6.24a.75.75 0 1 1 1.42-.48c.23.7.62 1 1.3 1 .66 0 1.05-.3 1.28-1a.75.75 0 1 1 1.42.48c-.42 1.3-1.37 2.01-2.7 2.01S5.72 7.54 5.3 6.24Z" fill="#000" style="mix-blend-mode:overlay" opacity=".36"/>`,
4
+ wrinkles: (components, colors) => `<path opacity=".12" fill-rule="evenodd" clip-rule="evenodd" d="M11.72 5.3c.21.73.27 1.38.2 1.95a20.24 20.24 0 0 1 2.12 4.41.5.5 0 1 0 .94-.32 21.23 21.23 0 0 0-3.4-6.3c.07.07.11.16.14.25Zm-7.44 0a.75.75 0 0 1 .11-.24 28.75 28.75 0 0 0-2.07 3.22c-.48.89-.9 1.9-1.3 3.06a.5.5 0 0 0 .94.32 20.24 20.24 0 0 1 2.12-4.4 4.77 4.77 0 0 1 .19-1.97Z" fill="#000"/><path d="M5.2 4.78a.75.75 0 0 0-.92.51c-.21.75-.27 1.4-.2 1.97.23 1.6 1.6 2.49 3.92 2.49 2.33 0 3.7-.89 3.92-2.5.07-.57.01-1.22-.2-1.96a.75.75 0 1 0-1.44.42c.52 1.83-.09 2.54-2.28 2.54-2.2 0-2.8-.71-2.28-2.54a.75.75 0 0 0-.51-.93Z" fill="#000" style="mix-blend-mode:overlay" opacity=".36"/>`,
5
+ };
@@ -1,3 +1,3 @@
1
- import type { Style } from '@dicebear/core';
2
- import type { Options } from './options';
3
- export declare const style: Style<Options>;
1
+ import type { Style } from '@dicebear/core';
2
+ import type { Options } from './types.js';
3
+ export declare const style: Style<Options>;
package/lib/core.js ADDED
@@ -0,0 +1,34 @@
1
+ import { escape } from '@dicebear/core';
2
+ import { schema } from './schema.js';
3
+ import { getComponents } from './utils/getComponents.js';
4
+ import { getColors } from './utils/getColors.js';
5
+ import { onPreCreate } from './hooks/onPreCreate.js';
6
+ import { onPostCreate } from './hooks/onPostCreate.js';
7
+ export const style = {
8
+ meta: {
9
+ title: 'Personas by Draftbit',
10
+ creator: 'Draftbit - draftbit.com',
11
+ source: 'https://personas.draftbit.com/',
12
+ homepage: 'https://draftbit.com/',
13
+ license: {
14
+ name: 'CC BY 4.0',
15
+ url: 'https://creativecommons.org/licenses/by/4.0/',
16
+ },
17
+ },
18
+ schema: schema,
19
+ create: ({ prng, options }) => {
20
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
21
+ onPreCreate({ prng, options });
22
+ const components = getComponents({ prng, options });
23
+ const colors = getColors({ prng, options });
24
+ onPostCreate({ prng, options, components, colors });
25
+ return {
26
+ attributes: {
27
+ viewBox: '0 0 64 64',
28
+ fill: 'none',
29
+ 'shape-rendering': 'auto',
30
+ },
31
+ body: `<path d="M37 46.08V52a5 5 0 0 1-10 0v-5.92A14.04 14.04 0 0 1 18.58 37h-.08a4.5 4.5 0 0 1-.5-8.97V27a14 14 0 1 1 28 0v1.03a4.5 4.5 0 0 1-.58 8.97A14.04 14.04 0 0 1 37 46.08Z" fill="${escape.xml(`#${colors.skin}`)}"/><mask id="personas-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="13" width="36" height="44"><path d="M37 46.08V52a5 5 0 0 1-10 0v-5.92A14.04 14.04 0 0 1 18.58 37h-.08a4.5 4.5 0 0 1-.5-8.97V27a14 14 0 1 1 28 0v1.03a4.5 4.5 0 0 1-.58 8.97A14.04 14.04 0 0 1 37 46.08Z" fill="#fff"/></mask><g mask="url(#personas-a)"><path d="M32 13a14 14 0 0 1 14 14v6a14 14 0 1 1-28 0v-6a14 14 0 0 1 14-14Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".36"/></g><g transform="translate(20 24)">${(_b = (_a = components.eyes) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g><g transform="translate(2 2)">${(_d = (_c = components.hair) === null || _c === void 0 ? void 0 : _c.value(components, colors)) !== null && _d !== void 0 ? _d : ''}</g><g transform="translate(11 44)">${(_f = (_e = components.body) === null || _e === void 0 ? void 0 : _e.value(components, colors)) !== null && _f !== void 0 ? _f : ''}</g><g transform="translate(23 36)">${(_h = (_g = components.mouth) === null || _g === void 0 ? void 0 : _g.value(components, colors)) !== null && _h !== void 0 ? _h : ''}</g><g transform="translate(24 28)">${(_k = (_j = components.nose) === null || _j === void 0 ? void 0 : _j.value(components, colors)) !== null && _k !== void 0 ? _k : ''}</g><g transform="translate(14 26)">${(_m = (_l = components.facialHair) === null || _l === void 0 ? void 0 : _l.value(components, colors)) !== null && _m !== void 0 ? _m : ''}</g>`,
32
+ };
33
+ },
34
+ };
@@ -1,12 +1,10 @@
1
- import { Prng, StyleOptions } from '@dicebear/core';
2
- import { Options } from '../options';
3
- import { ColorPickCollection, ComponentPickCollection } from '../static-types';
4
- declare type Props = {
5
- prng: Prng;
6
- options: StyleOptions<Options>;
7
- components: ComponentPickCollection;
8
- colors: ColorPickCollection;
9
- preview: boolean;
10
- };
11
- export declare function onPostCreate({ prng, options, components, colors, preview, }: Props): void;
12
- export {};
1
+ import { Prng, StyleOptions } from '@dicebear/core';
2
+ import { Options, ColorPickCollection, ComponentPickCollection } from '../types.js';
3
+ declare type Props = {
4
+ prng: Prng;
5
+ options: StyleOptions<Options>;
6
+ components: ComponentPickCollection;
7
+ colors: ColorPickCollection;
8
+ };
9
+ export declare function onPostCreate({ prng, options, components, colors }: Props): void;
10
+ export {};
@@ -0,0 +1,3 @@
1
+ export function onPostCreate({ prng, options, components, colors }) {
2
+ // Write your modifications here
3
+ }
@@ -0,0 +1,8 @@
1
+ import { Prng, StyleOptions } from '@dicebear/core';
2
+ import { Options } from '../types.js';
3
+ declare type Props = {
4
+ prng: Prng;
5
+ options: StyleOptions<Options>;
6
+ };
7
+ export declare function onPreCreate({ prng, options }: Props): void;
8
+ export {};
@@ -0,0 +1,3 @@
1
+ export function onPreCreate({ prng, options }) {
2
+ // Write your modifications here
3
+ }
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare const create: import("@dicebear/core").StyleCreate<import("./types.js").Options>, meta: import("@dicebear/core").StyleMeta, schema: import("json-schema").JSONSchema7;
2
+ export { create, meta, schema };
3
+ export type { Options } from './types.js';
package/lib/index.js ADDED
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * Personas (@dicebear/personas)
3
+ *
4
+ * Code licensed under MIT License.
5
+ * Copyright (c) 2022 Florian Körner
6
+ *
7
+ * Design "Personas by Draftbit" by Draftbit - draftbit.com licensed under CC BY 4.0.
8
+ * Source: https://personas.draftbit.com/
9
+ * Homepage: https://draftbit.com/
10
+ * License: https://creativecommons.org/licenses/by/4.0/
11
+ */ import { style } from './core.js';
12
+ const { create, meta, schema } = style;
13
+ export { create, meta, schema };
@@ -0,0 +1,2 @@
1
+ import type { StyleSchema } from '@dicebear/core';
2
+ export declare const schema: StyleSchema;
package/lib/schema.js ADDED
@@ -0,0 +1,232 @@
1
+ export const schema = {
2
+ title: 'Options',
3
+ $schema: 'http://json-schema.org/draft-07/schema#',
4
+ properties: {
5
+ body: {
6
+ type: 'array',
7
+ items: {
8
+ type: 'string',
9
+ enum: ['squared', 'rounded', 'small', 'checkered'],
10
+ },
11
+ default: ['squared', 'rounded', 'small', 'checkered'],
12
+ examples: [['squared'], ['rounded'], ['small'], ['checkered']],
13
+ },
14
+ clothingColor: {
15
+ type: 'array',
16
+ items: {
17
+ type: 'string',
18
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
19
+ },
20
+ default: [
21
+ '456dff',
22
+ '54d7c7',
23
+ '7555ca',
24
+ '6dbb58',
25
+ 'e24553',
26
+ 'f3b63a',
27
+ 'f55d81',
28
+ ],
29
+ },
30
+ eyes: {
31
+ type: 'array',
32
+ items: {
33
+ type: 'string',
34
+ enum: ['open', 'sleep', 'wink', 'glasses', 'happy', 'sunglasses'],
35
+ },
36
+ default: ['open', 'sleep', 'wink', 'glasses', 'happy', 'sunglasses'],
37
+ examples: [
38
+ ['open'],
39
+ ['sleep'],
40
+ ['wink'],
41
+ ['glasses'],
42
+ ['happy'],
43
+ ['sunglasses'],
44
+ ],
45
+ },
46
+ facialHair: {
47
+ type: 'array',
48
+ items: {
49
+ type: 'string',
50
+ enum: [
51
+ 'beardMustache',
52
+ 'pyramid',
53
+ 'walrus',
54
+ 'goatee',
55
+ 'shadow',
56
+ 'soulPatch',
57
+ ],
58
+ },
59
+ default: [
60
+ 'beardMustache',
61
+ 'pyramid',
62
+ 'walrus',
63
+ 'goatee',
64
+ 'shadow',
65
+ 'soulPatch',
66
+ ],
67
+ examples: [
68
+ ['beardMustache'],
69
+ ['pyramid'],
70
+ ['walrus'],
71
+ ['goatee'],
72
+ ['shadow'],
73
+ ['soulPatch'],
74
+ ],
75
+ },
76
+ facialHairProbability: {
77
+ type: 'integer',
78
+ minimum: 0,
79
+ maximum: 100,
80
+ default: 10,
81
+ examples: [0, 100],
82
+ },
83
+ hair: {
84
+ type: 'array',
85
+ items: {
86
+ type: 'string',
87
+ enum: [
88
+ 'long',
89
+ 'sideShave',
90
+ 'shortCombover',
91
+ 'curlyHighTop',
92
+ 'bobCut',
93
+ 'curly',
94
+ 'pigtails',
95
+ 'curlyBun',
96
+ 'buzzcut',
97
+ 'bobBangs',
98
+ 'bald',
99
+ 'balding',
100
+ 'cap',
101
+ 'bunUndercut',
102
+ 'fade',
103
+ 'beanie',
104
+ 'straightBun',
105
+ 'extraLong',
106
+ 'shortComboverChops',
107
+ 'mohawk',
108
+ ],
109
+ },
110
+ default: [
111
+ 'long',
112
+ 'sideShave',
113
+ 'shortCombover',
114
+ 'curlyHighTop',
115
+ 'bobCut',
116
+ 'curly',
117
+ 'pigtails',
118
+ 'curlyBun',
119
+ 'buzzcut',
120
+ 'bobBangs',
121
+ 'bald',
122
+ 'balding',
123
+ 'cap',
124
+ 'bunUndercut',
125
+ 'fade',
126
+ 'beanie',
127
+ 'straightBun',
128
+ 'extraLong',
129
+ 'shortComboverChops',
130
+ 'mohawk',
131
+ ],
132
+ examples: [
133
+ ['long'],
134
+ ['sideShave'],
135
+ ['shortCombover'],
136
+ ['curlyHighTop'],
137
+ ['bobCut'],
138
+ ['curly'],
139
+ ['pigtails'],
140
+ ['curlyBun'],
141
+ ['buzzcut'],
142
+ ['bobBangs'],
143
+ ['bald'],
144
+ ['balding'],
145
+ ['cap'],
146
+ ['bunUndercut'],
147
+ ['fade'],
148
+ ['beanie'],
149
+ ['straightBun'],
150
+ ['extraLong'],
151
+ ['shortComboverChops'],
152
+ ['mohawk'],
153
+ ],
154
+ },
155
+ hairColor: {
156
+ type: 'array',
157
+ items: {
158
+ type: 'string',
159
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
160
+ },
161
+ default: [
162
+ '362c47',
163
+ '6c4545',
164
+ 'e15c66',
165
+ 'e16381',
166
+ 'f27d65',
167
+ 'f29c65',
168
+ 'dee1f5',
169
+ ],
170
+ },
171
+ mouth: {
172
+ type: 'array',
173
+ items: {
174
+ type: 'string',
175
+ enum: [
176
+ 'smile',
177
+ 'frown',
178
+ 'surprise',
179
+ 'pacifier',
180
+ 'bigSmile',
181
+ 'smirk',
182
+ 'lips',
183
+ ],
184
+ },
185
+ default: [
186
+ 'smile',
187
+ 'frown',
188
+ 'surprise',
189
+ 'pacifier',
190
+ 'bigSmile',
191
+ 'smirk',
192
+ 'lips',
193
+ ],
194
+ examples: [
195
+ ['smile'],
196
+ ['frown'],
197
+ ['surprise'],
198
+ ['pacifier'],
199
+ ['bigSmile'],
200
+ ['smirk'],
201
+ ['lips'],
202
+ ],
203
+ },
204
+ nose: {
205
+ type: 'array',
206
+ items: {
207
+ type: 'string',
208
+ enum: ['mediumRound', 'smallRound', 'wrinkles'],
209
+ },
210
+ default: ['mediumRound', 'smallRound', 'wrinkles'],
211
+ examples: [['mediumRound'], ['smallRound'], ['wrinkles']],
212
+ },
213
+ skinColor: {
214
+ type: 'array',
215
+ items: {
216
+ type: 'string',
217
+ pattern: '^#([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$',
218
+ },
219
+ default: [
220
+ 'eeb4a4',
221
+ 'e7a391',
222
+ 'e5a07e',
223
+ 'd78774',
224
+ 'b16a5b',
225
+ '92594b',
226
+ '623d36',
227
+ 'c9e6dc',
228
+ ],
229
+ },
230
+ },
231
+ additionalProperties: false,
232
+ };
package/lib/types.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ export interface Options {
2
+ eyes?: ('open' | 'sleep' | 'wink' | 'glasses' | 'happy' | 'sunglasses')[];
3
+ hair?: ('long' | 'sideShave' | 'shortCombover' | 'curlyHighTop' | 'bobCut' | 'curly' | 'pigtails' | 'curlyBun' | 'buzzcut' | 'bobBangs' | 'bald' | 'balding' | 'cap' | 'bunUndercut' | 'fade' | 'beanie' | 'straightBun' | 'extraLong' | 'shortComboverChops' | 'mohawk')[];
4
+ body?: ('squared' | 'rounded' | 'small' | 'checkered')[];
5
+ mouth?: ('smile' | 'frown' | 'surprise' | 'pacifier' | 'bigSmile' | 'smirk' | 'lips')[];
6
+ nose?: ('mediumRound' | 'smallRound' | 'wrinkles')[];
7
+ facialHair?: ('beardMustache' | 'pyramid' | 'walrus' | 'goatee' | 'shadow' | 'soulPatch')[];
8
+ facialHairProbability?: number;
9
+ hairColor?: string[];
10
+ clothingColor?: string[];
11
+ skinColor?: string[];
12
+ }
13
+ export declare type ColorGroup = Record<string, ColorGroupItem>;
14
+ export declare type ColorGroupCollection = Record<string, ColorGroup>;
15
+ export declare type ColorGroupItem = string;
16
+ export declare type ColorPickCollection = Record<string, string>;
17
+ export declare type ComponentGroup = Record<string, ComponentGroupItem>;
18
+ export declare type ComponentGroupCollection = Record<string, ComponentGroup>;
19
+ export declare type ComponentGroupItem = (components: ComponentPickCollection, colors: ColorPickCollection) => string;
20
+ export declare type ComponentPickCollection = Record<string, ComponentPick>;
21
+ export declare type ComponentPick = {
22
+ name: string;
23
+ value: ComponentGroupItem;
24
+ } | undefined;
package/lib/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -1,9 +1,8 @@
1
- import type { Prng } from '@dicebear/core';
2
- import type { Options } from '../options';
3
- import type { ColorPickCollection } from '../static-types';
4
- declare type Props = {
5
- prng: Prng;
6
- options: Options;
7
- };
8
- export declare function getColors({ prng, options }: Props): ColorPickCollection;
9
- export {};
1
+ import type { Prng } from '@dicebear/core';
2
+ import type { Options, ColorPickCollection } from '../types.js';
3
+ declare type Props = {
4
+ prng: Prng;
5
+ options: Options;
6
+ };
7
+ export declare function getColors({ prng, options }: Props): ColorPickCollection;
8
+ export {};
@@ -0,0 +1,8 @@
1
+ export function getColors({ prng, options }) {
2
+ var _a, _b, _c, _d, _e, _f;
3
+ return {
4
+ hair: (_b = prng.pick((_a = options.hairColor) !== null && _a !== void 0 ? _a : [])) !== null && _b !== void 0 ? _b : 'transparent',
5
+ clothing: (_d = prng.pick((_c = options.clothingColor) !== null && _c !== void 0 ? _c : [])) !== null && _d !== void 0 ? _d : 'transparent',
6
+ skin: (_f = prng.pick((_e = options.skinColor) !== null && _e !== void 0 ? _e : [])) !== null && _f !== void 0 ? _f : 'transparent',
7
+ };
8
+ }
@@ -1,9 +1,8 @@
1
- import type { Prng } from '@dicebear/core';
2
- import type { Options } from '../options';
3
- import type { ComponentPickCollection } from '../static-types';
4
- declare type Props = {
5
- prng: Prng;
6
- options: Options;
7
- };
8
- export declare function getComponents({ prng, options, }: Props): ComponentPickCollection;
9
- export {};
1
+ import type { Prng } from '@dicebear/core';
2
+ import type { Options, ComponentPickCollection } from '../types.js';
3
+ declare type Props = {
4
+ prng: Prng;
5
+ options: Options;
6
+ };
7
+ export declare function getComponents({ prng, options, }: Props): ComponentPickCollection;
8
+ export {};