solfaces 2.0.0 → 2.1.1

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 (69) hide show
  1. package/README.md +155 -14
  2. package/SKILL.md +180 -0
  3. package/dist/agent/index.cjs +14 -13
  4. package/dist/agent/index.js +4 -3
  5. package/dist/agent/mcp-server.cjs +2248 -13
  6. package/dist/{chunk-HCEE4K4T.js → chunk-3CE7Q44S.js} +6 -5
  7. package/dist/chunk-3CE7Q44S.js.map +1 -0
  8. package/dist/{chunk-23XJ5VDX.cjs → chunk-4YFZ4W2Y.cjs} +47 -16
  9. package/dist/chunk-4YFZ4W2Y.cjs.map +1 -0
  10. package/dist/{chunk-LRHYF5QN.js → chunk-5DT27HMT.js} +3 -3
  11. package/dist/{chunk-LRHYF5QN.js.map → chunk-5DT27HMT.js.map} +1 -1
  12. package/dist/{chunk-TTGJZEPV.js → chunk-66PSL4YO.js} +43 -12
  13. package/dist/chunk-66PSL4YO.js.map +1 -0
  14. package/dist/{chunk-JS527VKL.js → chunk-CKHLRORB.js} +6 -5
  15. package/dist/chunk-CKHLRORB.js.map +1 -0
  16. package/dist/{chunk-6UWILY7E.cjs → chunk-F54WHRCE.cjs} +6 -5
  17. package/dist/chunk-F54WHRCE.cjs.map +1 -0
  18. package/dist/chunk-N5DDJ3WQ.js +2242 -0
  19. package/dist/chunk-N5DDJ3WQ.js.map +1 -0
  20. package/dist/{chunk-46ZEFA6R.cjs → chunk-TYTBYDQU.cjs} +10 -9
  21. package/dist/chunk-TYTBYDQU.cjs.map +1 -0
  22. package/dist/{chunk-546TBMAR.cjs → chunk-WIXGHS77.cjs} +6 -6
  23. package/dist/{chunk-546TBMAR.cjs.map → chunk-WIXGHS77.cjs.map} +1 -1
  24. package/dist/chunk-XXJJH56O.cjs +2251 -0
  25. package/dist/chunk-XXJJH56O.cjs.map +1 -0
  26. package/dist/constants-Bi5uTRp5.d.cts +17 -0
  27. package/dist/constants-Bi5uTRp5.d.ts +17 -0
  28. package/dist/core/index.cjs +31 -31
  29. package/dist/core/index.d.cts +2 -2
  30. package/dist/core/index.d.ts +2 -2
  31. package/dist/core/index.js +3 -3
  32. package/dist/index.cjs +63 -34
  33. package/dist/index.d.cts +3 -1
  34. package/dist/index.d.ts +3 -1
  35. package/dist/index.js +5 -4
  36. package/dist/names/index.cjs +40 -0
  37. package/dist/names/index.cjs.map +1 -0
  38. package/dist/names/index.d.cts +48 -0
  39. package/dist/names/index.d.ts +48 -0
  40. package/dist/names/index.js +3 -0
  41. package/dist/names/index.js.map +1 -0
  42. package/dist/react/index.cjs +45 -22
  43. package/dist/react/index.cjs.map +1 -1
  44. package/dist/react/index.d.cts +16 -3
  45. package/dist/react/index.d.ts +16 -3
  46. package/dist/react/index.js +30 -8
  47. package/dist/react/index.js.map +1 -1
  48. package/dist/solfaces.cdn.global.js +2 -2
  49. package/dist/solfaces.cdn.global.js.map +1 -1
  50. package/dist/themes/index.d.cts +1 -1
  51. package/dist/themes/index.d.ts +1 -1
  52. package/dist/{traits-QlWuxZDD.d.cts → traits-sfe7rM9C.d.cts} +1 -0
  53. package/dist/{traits-QlWuxZDD.d.ts → traits-sfe7rM9C.d.ts} +1 -0
  54. package/dist/vanilla/index.cjs +5 -5
  55. package/dist/vanilla/index.d.cts +1 -1
  56. package/dist/vanilla/index.d.ts +1 -1
  57. package/dist/vanilla/index.js +2 -2
  58. package/package.json +22 -5
  59. package/python/solfaces.py +274 -3
  60. package/reference/integrations.md +211 -0
  61. package/reference/react.md +108 -0
  62. package/reference/themes.md +124 -0
  63. package/dist/chunk-23XJ5VDX.cjs.map +0 -1
  64. package/dist/chunk-46ZEFA6R.cjs.map +0 -1
  65. package/dist/chunk-6UWILY7E.cjs.map +0 -1
  66. package/dist/chunk-HCEE4K4T.js.map +0 -1
  67. package/dist/chunk-JS527VKL.js.map +0 -1
  68. package/dist/chunk-TTGJZEPV.js.map +0 -1
  69. package/skill.md +0 -608
@@ -1,3 +1,3 @@
1
- "use strict";var SolFaces=(()=>{var U=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var Qe=Object.prototype.hasOwnProperty;var De=(r,e)=>{for(var t in e)U(r,t,{get:e[t],enumerable:!0})},He=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ve(e))!Qe.call(r,i)&&i!==t&&U(r,i,{get:()=>e[i],enumerable:!(o=Be(e,i))||o.enumerable});return r};var Ie=r=>He(U({},"__esModule",{value:!0}),r);var Or={};De(Or,{default:()=>Cr});var ae=["#faeae5","#efd6c8","#e4c5aa","#d5b590","#c59e77","#b4875f","#9d6d4d","#805742","#654134","#4b2d25"],ye=["#382414","#3868A8","#38784C","#808838","#586878"],de=["#1A1A24","#4C3428","#887058","#D4B868","#A84830","#C0C0CC","#484858","#783850","#D8B0A0","#C08048"],ue=["#b98387","#a9a360","#9eb785","#69ab79","#81bbb0","#6499af","#7f8bbd","#8869ab","#b785b3","#ab6984"];function he(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function Ge(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function T(r,e){let t=he(r),o=Ge(t),i={faceShape:Math.floor(o()*4),skinColor:Math.floor(o()*10),eyeStyle:Math.floor(o()*8),eyeColor:Math.floor(o()*5),eyebrows:Math.floor(o()*5),nose:Math.floor(o()*4),mouth:Math.floor(o()*8),hairStyle:Math.floor(o()*10),hairColor:Math.floor(o()*10),accessory:Math.floor(o()*10),bgColor:Math.floor(o()*10)};return e?{...i,...e}:i}function k(r){let e=r.accessory%10,t=r.hairStyle%10;return(e===4||e===7)&&(t===5||t===6)?0:e}var Ye=["Squircle"],je=["Porcelain","Ivory","Fair","Light","Sand","Golden","Warm","Caramel","Brown","Deep"],Ne=["Round","Minimal","Almond","Wide","Relaxed","Joyful","Bright","Gentle"],Pe=["Chocolate","Sky","Emerald","Hazel","Storm"],ze=["Wispy","Straight","Natural","Arched","Angled"],We=["Shadow","Button","Soft","Nostrils"],qe=["Smile","Calm","Happy","Oh","Smirk","Grin","Flat","Pout"],Ze=["Bald","Short","Curly","Side Sweep","Puff","Long","Bob","Buzz","Wavy","Topknot"],Ue=["Black","Espresso","Walnut","Honey","Copper","Silver","Charcoal","Burgundy","Strawberry","Ginger"],Ke=["None","Beauty Mark","Round Glasses","Rect Glasses","Earring","Headband","Freckles","Stud Earrings","Aviators","Band-Aid"],Ve=["Rose","Olive","Sage","Fern","Mint","Ocean","Sky","Lavender","Orchid","Blush"];function xe(r){return{faceShape:Ye[0],skinColor:je[r.skinColor]??"Fair",eyeStyle:Ne[r.eyeStyle]??"Round",eyeColor:Pe[r.eyeColor]??"Chocolate",eyebrows:ze[r.eyebrows]??"Wispy",nose:We[r.nose]??"Shadow",mouth:qe[r.mouth]??"Smile",hairStyle:Ze[r.hairStyle]??"Bald",hairColor:Ue[r.hairColor]??"Black",accessory:Ke[k(r)]??"None",bgColor:Ve[r.bgColor]??"Rose"}}function pe(r){return(he(r)>>>0).toString(16).padStart(8,"0")}function $e(r,e){if(!(!r||!e))return e[r]}function f(r){let e=r.replace("#","");return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}function O(r,e,t){return"#"+[r,e,t].map(o=>Math.max(0,Math.min(255,Math.round(o))).toString(16).padStart(2,"0")).join("")}function $(r,e=.12){let[t,o,i]=f(r);return O(t*(1-e),o*(1-e),i*(1-e))}function g(r,e=.15){let[t,o,i]=f(r);return O(t+(255-t)*e,o+(255-o)*e,i+(255-i)*e)}function p(r,e,t=.5){let[o,i,s]=f(r),[l,a,n]=f(e);return O(o+(l-o)*t,i+(a-i)*t,s+(n-s)*t)}function K(r){let[e,t,o]=f(r);return(e+t+o)/3}function I(r){let e=K(r),t=e<100,o=g(r,.1),i=$(r,.22),s=$(r,.05),[l,a,n]=f(r),d;if(e>120){let _=e>180?.03:.06,D=e>180?.3:.28,q=e>180?.25:.22;d=O(Math.min(255,l+l*_),Math.max(0,a-a*D),Math.max(0,n-n*q))}else d=O(Math.min(255,l+50),Math.max(0,a-10),Math.max(0,n-5));let c=.15+.18*(1-Math.min(1,e/240)),x=Math.max(0,Math.min(1,(e-60)/180)),S=p("#D89090","#A83848",x),h=1-Math.abs(e-140)/80,C=(t?.7:.62)+Math.max(0,h)*.12,w=p(r,S,Math.min(.82,C)),[b,M,m]=f(w),u=Math.abs(l-b)+Math.abs(a-M)+Math.abs(n-m)<60?p(r,S,.78):w,j=t?g(r,e<80?.35:.25):$(r,.55),L=t?g(r,.2):$(r,.2),N=Math.max(0,Math.min(1,(e-100)/60)),P=p(g(r,.08),s,N),z=$(r,.1+.06*(1-Math.min(1,e/160))),A=t?g(r,.18):$(r,.15),W=Math.max(0,Math.min(1,(e-60)/180)),B=p("#EDE8E0","#FBF8F2",W),v=e>140?.3:e>100?.5:.7,Q=p("#808890",p(r,"#B0A898",.3),v);return{skinHi:o,skinLo:i,skinMid:s,isDark:t,cheekColor:d,cheekOpacity:c,lipColor:u,noseFill:L,browColor:j,earFill:P,earShadow:z,eyeWhiteAdapted:B,lidColor:A,accessoryColor:Q}}function fe(r,e){let[t,o,i]=f(r),[s,l,a]=f(e);return Math.abs(t-s)+Math.abs(o-l)+Math.abs(i-a)<80?.7:.5}function Je(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function Xe(r,e,t,o,i,s,l,a,n,d){if(n)return"";let c="<defs>";return c+=`<linearGradient id="${r}sg" x1="0" y1="0" x2="0" y2="1">`,c+=`<stop offset="0%" stop-color="${t}"/>`,c+=`<stop offset="100%" stop-color="${o}"/>`,c+="</linearGradient>",c+=`<linearGradient id="${r}hg" x1="0" y1="0" x2="0" y2="1">`,c+=`<stop offset="0%" stop-color="${g(i,.15)}"/>`,c+=`<stop offset="100%" stop-color="${$(i,.15)}"/>`,c+="</linearGradient>",c+=`<linearGradient id="${r}bg" x1="0" y1="0" x2="1" y2="1">`,c+=`<stop offset="0%" stop-color="${g(s,.12)}"/>`,c+=`<stop offset="100%" stop-color="${$(s,.12)}"/>`,c+="</linearGradient>",d&&(c+=`<radialGradient id="${r}glow" cx="0.5" cy="0.28" r="0.45">`,c+='<stop offset="0%" stop-color="#ffffff" stop-opacity="0.10"/>',c+='<stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>',c+="</radialGradient>",c+=`<radialGradient id="${r}chin" cx="0.5" cy="0.85" r="0.35">`,c+=`<stop offset="0%" stop-color="${o}" stop-opacity="0.30"/>`,c+=`<stop offset="100%" stop-color="${o}" stop-opacity="0"/>`,c+="</radialGradient>",c+=`<radialGradient id="${r}cL" cx="0.5" cy="0.5" r="0.5">`,c+=`<stop offset="0%" stop-color="${l}" stop-opacity="${a.toFixed(2)}"/>`,c+=`<stop offset="100%" stop-color="${l}" stop-opacity="0"/>`,c+="</radialGradient>",c+=`<radialGradient id="${r}cR" cx="0.5" cy="0.5" r="0.5">`,c+=`<stop offset="0%" stop-color="${l}" stop-opacity="${a.toFixed(2)}"/>`,c+=`<stop offset="100%" stop-color="${l}" stop-opacity="0"/>`,c+="</radialGradient>"),c+="</defs>",c}function er(r,e,t){let o=t?"currentColor":`url(#${e}hg)`;switch(r){case 5:return`<g fill="${o}"><rect x="10" y="14" width="44" height="42" rx="6"/></g>`;case 6:return`<g fill="${o}"><rect x="12" y="14" width="40" height="32" rx="8"/></g>`;case 8:return`<g fill="${o}"><rect x="11" y="14" width="42" height="38" rx="8"/></g>`;default:return""}}function rr(r,e){return`<ellipse cx="11" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="11" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/><ellipse cx="53" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="53" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/>`}function tr(r,e,t,o=1){let i=t?e:`url(#${r}sg)`,s=o<1?` opacity="${o}"`:"";return`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="${i}"${s}/>`}function or(r,e){return e?"":`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}glow)"/><rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}chin)"/><ellipse cx="22" cy="42" rx="5" ry="3.5" fill="url(#${r}cL)"/><ellipse cx="42" cy="42" rx="5" ry="3.5" fill="url(#${r}cR)"/><line x1="20" y1="50" x2="44" y2="50" stroke="currentColor" stroke-width="0.3" opacity="0.08" stroke-linecap="round"/>`}function nr(r,e,t,o,i){let s=i?t:`url(#${e}hg)`;switch(r){case 0:return"";case 1:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${s}"/>`;case 2:return`<g fill="${s}"><circle cx="20" cy="14" r="5"/><circle cx="28" cy="11" r="5.5"/><circle cx="36" cy="11" r="5.5"/><circle cx="44" cy="14" r="5"/><circle cx="16" cy="20" r="4"/><circle cx="48" cy="20" r="4"/></g>`;case 3:return`<path d="M14 26 Q14 12 32 10 Q50 12 50 26 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${s}"/><path d="M14 20 Q8 16 10 8 Q14 10 20 16 Z" fill="${s}"/>`;case 4:return`<ellipse cx="32" cy="10" rx="14" ry="8" fill="${s}"/>`;case 5:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${s}"/>`;case 6:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${s}"/><rect x="10" y="28" width="8" height="14" rx="4" fill="${s}"/><rect x="46" y="28" width="8" height="14" rx="4" fill="${s}"/>`;case 7:{let l=fe(t,o);return`<rect x="15" y="13" width="34" height="16" rx="10" ry="8" fill="${t}" opacity="${l.toFixed(2)}"/>`}case 8:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${s}"/><path d="M12 30 Q10 20 14 16" fill="none" stroke="${s}" stroke-width="4" stroke-linecap="round"/><path d="M52 30 Q54 20 50 16" fill="none" stroke="${s}" stroke-width="4" stroke-linecap="round"/>`;case 9:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${s}"/><ellipse cx="32" cy="6" rx="6" ry="5" fill="${s}"/>`;default:return""}}function ir(r,e,t,o,i){let n="";switch(r){case 0:n+=`<circle cx="25" cy="33" r="4" fill="${t}"/>`,n+=`<circle cx="${25+.8}" cy="33" r="2.2" fill="${e}"/>`,i&&(n+=`<circle cx="${25+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`),n+=`<circle cx="39" cy="33" r="4" fill="${t}"/>`,n+=`<circle cx="${39+.8}" cy="33" r="2.2" fill="${e}"/>`,i&&(n+=`<circle cx="${39+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`);break;case 1:n+=`<circle cx="25" cy="33" r="2" fill="${e}"/>`,n+=`<circle cx="39" cy="33" r="2" fill="${e}"/>`;break;case 2:n+=`<ellipse cx="25" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,n+=`<circle cx="${25+.5}" cy="33" r="1.8" fill="${e}"/>`,i&&(n+=`<circle cx="${25+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`),n+=`<ellipse cx="39" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,n+=`<circle cx="${39+.5}" cy="33" r="1.8" fill="${e}"/>`,i&&(n+=`<circle cx="${39+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`);break;case 3:n+=`<circle cx="25" cy="33" r="5" fill="${t}"/>`,n+=`<circle cx="25" cy="${33+.5}" r="2.8" fill="${e}"/>`,i&&(n+=`<circle cx="${25+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`),n+=`<circle cx="39" cy="33" r="5" fill="${t}"/>`,n+=`<circle cx="39" cy="${33+.5}" r="2.8" fill="${e}"/>`,i&&(n+=`<circle cx="${39+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`);break;case 4:n+=`<ellipse cx="25" cy="34" rx="4" ry="2.2" fill="${t}"/>`,n+=`<circle cx="25" cy="34" r="1.5" fill="${e}"/>`,i&&(n+=`<line x1="${25-4.5}" y1="${33-.5}" x2="${25+4.5}" y2="${33-.5}" stroke="${o}" stroke-width="0.8" stroke-linecap="round"/>`),n+=`<ellipse cx="39" cy="34" rx="4" ry="2.2" fill="${t}"/>`,n+=`<circle cx="39" cy="34" r="1.5" fill="${e}"/>`,i&&(n+=`<line x1="${39-4.5}" y1="${33-.5}" x2="${39+4.5}" y2="${33-.5}" stroke="${o}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 5:n+=`<path d="M21 33 Q25 37 29 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`,n+=`<path d="M35 33 Q39 37 43 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`;break;case 6:n+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,n+=`<circle cx="${25+.5}" cy="33" r="2" fill="${e}"/>`,n+=`<circle cx="${25+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,i&&(n+=`<line x1="${25+2.5}" y1="${33-3.5}" x2="29" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,n+=`<line x1="${25+3.5}" y1="${33-2.5}" x2="30" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`),n+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,n+=`<circle cx="${39+.5}" cy="33" r="2" fill="${e}"/>`,n+=`<circle cx="${39+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,i&&(n+=`<line x1="${39+2.5}" y1="${33-3.5}" x2="43" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,n+=`<line x1="${39+3.5}" y1="${33-2.5}" x2="44" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 7:n+=`<ellipse cx="25" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,n+=`<ellipse cx="${25+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`,n+=`<ellipse cx="39" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,n+=`<ellipse cx="${39+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`;break;default:n+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,n+=`<circle cx="${25+.8}" cy="33" r="2" fill="${e}"/>`,n+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,n+=`<circle cx="${39+.8}" cy="33" r="2" fill="${e}"/>`}return i&&r!==1&&r!==5&&(n+=`<path d="M21 ${33-1.5} Q25 29 29 ${33-1.5}" fill="none" stroke="${o}" stroke-width="0.5" opacity="0.4"/>`,n+=`<path d="M35 ${33-1.5} Q39 29 43 ${33-1.5}" fill="none" stroke="${o}" stroke-width="0.5" opacity="0.4"/>`),n}function sr(r,e){switch(r){case 0:return`<line x1="22" y1="27" x2="28" y2="${27-.5}" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/><line x1="36" y1="${27-.5}" x2="42" y2="27" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/>`;case 1:return`<line x1="${25-3.5}" y1="27" x2="${25+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><line x1="${39-3.5}" y1="27" x2="${39+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M${25-3.5} ${27+.5} Q25 ${27-1.5} ${25+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><path d="M${39-3.5} ${27+.5} Q39 ${27-1.5} ${39+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 3:return`<path d="M21 28 Q25 24 29 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/><path d="M35 28 Q39 24 43 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/>`;case 4:return`<polyline points="22,28 25,25 28,27" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/><polyline points="36,27 39,25 42,28" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>`;default:return""}}function cr(r,e){switch(r){case 0:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`;case 1:return`<circle cx="32" cy="39" r="1.8" fill="${e}" opacity="0.5"/>`;case 2:return`<path d="M30 40 Q32 37 34 40" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round" opacity="0.5"/>`;case 3:return`<circle cx="${32-1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/><circle cx="${32+1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/>`;default:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`}}function lr(r,e,t){let s=t?"#e8e0d8":"#ffffff";switch(r){case 0:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`;case 1:return`<line x1="29" y1="46" x2="35" y2="46" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M27 45 Q32 50 37 45" fill="none" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 3:return`<ellipse cx="32" cy="46" rx="2.5" ry="3" fill="${e}" opacity="0.7"/>`;case 4:return`<path d="M28 46 Q33 46 36 ${45-1.5}" fill="none" stroke="${e}" stroke-width="1.3" stroke-linecap="round"/>`;case 5:return`<path d="M27 45 Q32 51 37 45" fill="${s}" stroke="${e}" stroke-width="1"/><line x1="28" y1="${45+1.5}" x2="36" y2="${45+1.5}" stroke="${e}" stroke-width="0.3" opacity="0.3"/>`;case 6:return`<line x1="28" y1="46" x2="36" y2="46" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 7:return`<ellipse cx="32" cy="46" rx="3.5" ry="2" fill="${e}" opacity="0.25"/><path d="M29 45 Q32 ${45+2.5} 35 45" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;default:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`}}function ge(r,e,t,o,i){switch(r){case 0:return"";case 1:return'<circle cx="40" cy="44" r="0.8" fill="#3a2a2a"/>';case 2:return`<g fill="none" stroke="${t}" stroke-width="1"><circle cx="25" cy="33" r="5.5"/><circle cx="39" cy="33" r="5.5"/><line x1="30.5" y1="33" x2="33.5" y2="33"/><line x1="19.5" y1="33" x2="14" y2="31"/><line x1="44.5" y1="33" x2="50" y2="31"/></g>`;case 3:return`<g fill="none" stroke="${t}" stroke-width="1"><rect x="19" y="29" width="12" height="8" rx="1.5"/><rect x="33" y="29" width="12" height="8" rx="1.5"/><line x1="31" y1="33" x2="33" y2="33"/><line x1="19" y1="33" x2="14" y2="31"/><line x1="45" y1="33" x2="50" y2="31"/></g>`;case 4:return`<circle cx="10" cy="38" r="1.5" fill="${o}"/><circle cx="10" cy="41" r="2" fill="${o}" opacity="0.8"/>`;case 5:return`<rect x="13" y="20" width="38" height="3.5" rx="1.5" fill="${i}" opacity="0.85"/>`;case 6:return'<g fill="#a0785a" opacity="0.35"><circle cx="21" cy="40" r="0.6"/><circle cx="23" cy="42" r="0.5"/><circle cx="19" cy="41.5" r="0.5"/><circle cx="43" cy="40" r="0.6"/><circle cx="41" cy="42" r="0.5"/><circle cx="45" cy="41.5" r="0.5"/></g>';case 7:return`<circle cx="10" cy="37" r="1.2" fill="${o}"/><circle cx="54" cy="37" r="1.2" fill="${o}"/>`;case 8:return`<g fill="none" stroke="${t}" stroke-width="1.2"><path d="M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z" fill="${t}" fill-opacity="0.15"/><path d="M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z" fill="${t}" fill-opacity="0.15"/><line x1="31" y1="32" x2="33" y2="32"/><line x1="19" y1="31" x2="14" y2="29"/><line x1="45" y1="31" x2="50" y2="29"/></g>`;case 9:return'<g><rect x="38" y="38" width="8" height="4" rx="1" fill="#f0d0a0" transform="rotate(-15 42 40)"/><line x1="40" y1="39" x2="40" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="42" y1="39" x2="42" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="44" y1="39" x2="44" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/></g>';default:return""}}function R(r,e){let{size:t=64,theme:o,traitOverrides:i,enableBlink:s,className:l,colorOverrides:a}=e??{},n=T(r,i),d=e?.detail??"auto",c=d==="full"||d==="auto"&&t>=48,x=o?.flat??!1,S=o?.skinColors??ae,h=o?.eyeColors??ye,C=o?.hairColors??de,w=o?.bgColors??ue,b=a?.skin??S[n.skinColor%S.length],M=a?.eyes??h[n.eyeColor%h.length],m=a?.hair??C[n.hairColor%C.length],Y=a?.bg??w[n.bgColor%w.length],u=I(b),j=o?.bgOpacity??1,L=o?.bgRadius??4,N=a?.eyebrow??o?.eyebrowColor??u.browColor,P=a?.nose??o?.noseColor??u.noseFill,z=a?.mouth??o?.mouthColor??u.lipColor,A=a?.accessory??o?.accessoryColor??u.accessoryColor,W=a?.eyeWhite??o?.eyeWhiteColor??u.eyeWhiteAdapted,B=o?.glassesColor??"#4a4a5a",v=o?.earringColor??p(b,"#d4a840",.4),Q=o?.headbandColor??p(m,"#c04040",.5),_="sf"+Je(r).toString(36),D=o?.cheekEnabled??!0,q=o?.cheekColor??u.cheekColor,Te=o?.cheekOpacity??u.cheekOpacity,ce=n.hairStyle%10,H=k(n),Me=l?` class="${l}"`:"",y=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="${t}" height="${t}"${Me}>`;y+=Xe(_,b,u.skinHi,u.skinLo,m,Y,q,Te,x,c&&D);let Z=!!s,Ee=typeof s=="object"?s.duration??4:4,le=typeof s=="object"?s.delay??0:0;if(Z){let E=`sf-${r.slice(0,8)}`,Ae=le?` ${le}s`:"";y+=`<style>@keyframes ${E}-blink{0%,90%,100%{transform:scaleY(1)}95%{transform:scaleY(0.1)}}.${E}-eyes{animation:${E}-blink ${Ee}s ease-in-out${Ae} infinite;transform-origin:32px 33px}</style>`}let Re=x?Y:`url(#${_}bg)`;y+=`<rect x="0" y="0" width="64" height="64" fill="${Re}" opacity="${j}" rx="${L}"/>`,y+=er(ce,_,x),y+=rr(u.earFill,u.earShadow);let Fe=o?.skinOpacity??1;y+=tr(_,b,x,Fe);let Le=o?.shadowEnabled??!0;if(c&&D&&Le&&(y+=or(_,x)),H===5&&(y+=ge(5,A,B,v,Q)),y+=nr(ce,_,m,b,x),Z){let E=`sf-${r.slice(0,8)}`;y+=`<g class="${E}-eyes">`}return y+=ir(n.eyeStyle%8,M,W,u.lidColor,c),Z&&(y+="</g>"),y+=sr(n.eyebrows%5,N),y+=cr(n.nose%4,P),y+=lr(n.mouth%8,z,u.isDark),H!==0&&H!==5&&(y+=ge(H,A,B,v,Q)),o?.border&&(y+=`<rect x="0" y="0" width="64" height="64" fill="none" stroke="${o.border.color}" stroke-width="${o.border.width}" rx="${L}"/>`),y+="</svg>",y}function V(r,e){let t=R(r,e);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}function be(r,e){let t=R(r,e);return`data:image/svg+xml;base64,${btoa(t)}`}var J={0:"porcelain",1:"ivory",2:"fair",3:"light",4:"sand",5:"golden",6:"warm",7:"caramel",8:"brown",9:"deep"},X={0:"round, wide-open",1:"small and minimal",2:"almond-shaped",3:"wide and expressive",4:"relaxed, half-lidded",5:"joyful, crescent-shaped",6:"bright and sparkling",7:"gentle and narrow"},ee={0:"dark brown",1:"blue",2:"green",3:"hazel",4:"gray"},me={0:"wispy",1:"straight",2:"natural",3:"elegantly arched",4:"sharply angled"},ke={0:"a subtle shadow nose",1:"a small button nose",2:"a soft curved nose",3:"a button nose with visible nostrils"},re={0:"a gentle smile",1:"a calm, neutral expression",2:"a happy grin",3:"a surprised O-shaped mouth",4:"a confident smirk",5:"a wide, toothy grin",6:"a flat, straight expression",7:"a soft pout"},te={0:"bald, with no hair",1:"short, neatly cropped hair",2:"bouncy, curly hair",3:"side-swept hair",4:"a voluminous puff",5:"long hair that falls past the shoulders",6:"a clean bob cut",7:"a close buzz cut",8:"flowing, wavy hair",9:"a neat topknot"},oe={0:"jet black",1:"espresso brown",2:"walnut",3:"honey blonde",4:"copper red",5:"silver",6:"charcoal",7:"burgundy",8:"strawberry",9:"ginger"},ne={0:"",1:"a beauty mark",2:"round glasses",3:"rectangular glasses",4:"a dangling earring",5:"a headband",6:"freckles",7:"stud earrings",8:"aviator sunglasses",9:"a band-aid"},Se={0:"rose",1:"olive",2:"sage",3:"fern",4:"mint",5:"ocean",6:"sky",7:"lavender",8:"orchid",9:"blush"};function G(r,e){let t=T(r),{includeBackground:o=!0,format:i="paragraph",perspective:s="third",name:l}=e??{};return i==="structured"?yr(t,o):i==="compact"?dr(t):ar(t,s,l,o)}function ar(r,e,t,o){let i=[],s=k(r),l=e==="first"?t?`I'm ${t}. I have`:"I have":t?`${t} has`:"This SolFace has",a=e==="first"?"I'm":"They're";i.push(`${l} a squircle face with ${J[r.skinColor]??"warm"} skin`);let n=X[r.eyeStyle]??"round",d=ee[r.eyeColor]??"dark";i.push(`${n} ${d} eyes`);let c=me[r.eyebrows];c&&i.push(`${c} eyebrows`);let x=te[r.hairStyle]??"",S=oe[r.hairColor]??"";r.hairStyle===0?i.push("and is bald"):x.startsWith("a ")?i.push(`and a ${S} ${x.slice(2)}`):i.push(`and ${S} ${x}`);let h=i[0];i.length>2?h+=", "+i.slice(1,-1).join(", ")+", "+i[i.length-1]:i.length===2&&(h+=" and "+i[1]),h+=".";let C=ke[r.nose];if(C){let m=e==="first"?"I have":(t??"They")+(t?" has":" have");h+=` ${m} ${C}.`}let w=ne[s];w&&(h+=` ${a} wearing ${w}.`);let b=re[r.mouth]??"a smile",M=e==="first"?"I have":(t??"They")+(t?" has":" have");if(h+=` ${M} ${b}.`,o){let m=Se[r.bgColor]??"colorful";h+=` The background is ${m}.`}return h}function yr(r,e){let t=k(r),o=["Face: squircle",`Skin: ${J[r.skinColor]??"warm"}`,`Eyes: ${X[r.eyeStyle]??"round"}, ${ee[r.eyeColor]??"dark"}`,`Eyebrows: ${me[r.eyebrows]??"wispy"}`],i=ke[r.nose];if(i&&o.push(`Nose: ${i.replace(/^a /,"")}`),o.push(`Mouth: ${re[r.mouth]??"smile"}`),r.hairStyle===0)o.push("Hair: bald");else{let l=te[r.hairStyle]??"",a=oe[r.hairColor]??"";o.push(`Hair: ${a} ${l.startsWith("a ")?l.slice(2):l}`)}let s=ne[t];return s&&o.push(`Accessory: ${s}`),e&&o.push(`Background: ${Se[r.bgColor]??"colorful"}`),o.join(`
2
- `)}function dr(r){let e=k(r),t=[];if(t.push("squircle face"),t.push(`${J[r.skinColor]??"warm"} skin`),t.push(`${ee[r.eyeColor]??"dark"} ${X[r.eyeStyle]??"round"} eyes`),r.hairStyle===0)t.push("bald");else{let i=(te[r.hairStyle]??"hair").replace(/,.*/,""),s=oe[r.hairColor]??"";t.push(`${s} ${i.startsWith("a ")?i.slice(2):i}`)}let o=ne[e];return o&&t.push(o),t.push((re[r.mouth]??"smiling").replace(/^a /,"")),t.join(", ")}function ie(r){return`SolFace avatar: ${G(r,{format:"compact",includeBackground:!1})}`}function we(r,e){let t=G(r,{perspective:"first",name:e,includeBackground:!1,format:"paragraph"});return`My visual identity is a SolFace avatar (ID: ${(ur(r)>>>0).toString(16).padStart(8,"0")}) derived from my wallet address. ${t} This appearance is deterministic \u2014 anyone who looks up my wallet will see the same face.`}function ur(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}var hr={},xr={bgColors:["#1a1b23","#1e1428","#0a1e38","#1b2838","#201028","#141a28","#18122a","#1a2020","#221822","#1e1020"],eyeWhiteColor:"#d8d0c8",bgOpacity:1,bgRadius:4,border:{color:"#333340",width:.5}},pr={bgColors:["#f5e8ea","#f0f0d8","#e4f0e6","#d8f0e8","#e0ece8","#dce8f0","#e0e4f0","#e0d8f0","#f0e0ee","#f0d8e4"],bgOpacity:1,bgRadius:8},$r={skinColors:["#e8e8e8","#d4d4d4","#c0c0c0","#a8a8a8","#909090","#787878","#606060","#505050","#404040","#303030"],eyeColors:["#333","#555","#777","#999","#bbb"],hairColors:["#1a1a1a","#2a2a2a","#404040","#555","#707070","#888","#a0a0a0","#b8b8b8","#d0d0d0","#e0e0e0"],bgColors:["#e8e0e0","#e0e0d0","#d8e0d8","#d0e0d8","#d8e0e0","#d0d8e0","#d4d4e0","#d4d0e0","#e0d8e0","#e0d0d8"],mouthColor:"#666",eyebrowColor:"#555",accessoryColor:"#777",eyeWhiteColor:"#f0f0f0",bgOpacity:.5,bgRadius:4},fr={flat:!0},gr={flat:!0,bgOpacity:0},br={bgOpacity:.15,bgRadius:16,_glass:!0,_blurRadius:12,_saturate:1.8,_tintOpacity:.12,_tintColor:"rgba(255,255,255,1)",_borderOpacity:.25,_borderWidth:1,_borderColor:"rgba(255,255,255,0.25)",_specularOpacity:.25,_specularColor:"rgba(255,255,255,1)",_specularEnd:50,_lightAngle:135,_rimIntensity:.08,_shadow:"0 8px 32px rgba(0,0,0,0.12)"},mr={bgOpacity:.2,bgRadius:16,_glass:!0,_blurRadius:16,_saturate:2,_tintOpacity:.08,_tintColor:"rgba(0,0,0,1)",_borderOpacity:.15,_borderWidth:1,_borderColor:"rgba(255,255,255,0.15)",_specularOpacity:.15,_specularColor:"rgba(255,255,255,1)",_specularEnd:40,_lightAngle:135,_rimIntensity:.05,_shadow:"0 8px 32px rgba(0,0,0,0.25)"},kr={flat:!0,_pixel:!0,_pixelDensity:16,_pixelRounded:!0,_pixelOutline:!0,_pixelOutlineColor:"#222",_pixelOutlineWidth:2},Sr={flat:!0,_pixel:!0,_pixelDensity:12,_pixelRounded:!1,_pixelOutline:!0,_pixelOutlineColor:"#000",_pixelOutlineWidth:2,_pixelScanlines:!0,_pixelScanlineOpacity:.1,_pixelScanlineSpacing:2,_pixelShadow:!0,_pixelShadowColor:"rgba(0,0,0,0.4)",_pixelShadowOffset:3},wr={flat:!0,_pixel:!0,_pixelDensity:24,_pixelRounded:!0,_pixelOutline:!1},F={default:hr,dark:xr,light:pr,mono:$r,flat:fr,transparent:gr,glass:br,glassDark:mr,pixel:kr,pixelRetro:Sr,pixelClean:wr};function _e(r,e){let t=F[r];return t?e?{...t,...e}:t:e??{}}function Ce(r,e,t){let o=typeof r=="string"?document.querySelector(r):r;return o?(o.innerHTML=R(e,t),()=>{o.innerHTML=""}):(console.warn(`[SolFaces] Element not found: ${r}`),()=>{})}function _r(r,e,t){let o=typeof r=="string"?document.querySelector(r):r;o&&(o.src=V(e,t),o.alt=ie(e))}function se(r=document){r.querySelectorAll("[data-solface]").forEach(t=>{let o=t.getAttribute("data-solface");if(!o)return;let i=parseInt(t.getAttribute("data-solface-size")??"64",10),s=t.getAttribute("data-solface-blink")==="true",l=t.getAttribute("data-solface-theme"),a=t.getAttribute("data-solface-flat")==="true",n=t.getAttribute("data-solface-detail"),d=l&&l in F?F[l]:void 0;a&&d?d={...d,flat:!0}:a&&(d={flat:!0}),Ce(t,o,{size:i,enableBlink:s,theme:d,detail:n??"auto"})})}var Oe={generateTraits:T,getTraitLabels:xe,traitHash:pe,resolveTheme:$e,effectiveAccessory:k,renderSVG:R,renderDataURI:V,renderBase64:be,describe:G,altText:ie,agentPrompt:we,mount:Ce,setImg:_r,autoInit:se,themes:F,getTheme:_e,colors:{hexToRgb:f,rgbToHex:O,darken:$,lighten:g,blend:p,luminance:K,deriveSkinColors:I}};typeof window<"u"&&(window.SolFaces=Oe);typeof document<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.querySelector("[data-solface]")&&se()}):document.querySelector("[data-solface]")&&se());var Cr=Oe;return Ie(Or);})();
1
+ "use strict";var SolFaces=(()=>{var Z=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var ze=Object.prototype.hasOwnProperty;var je=(r,e)=>{for(var t in e)Z(r,t,{get:e[t],enumerable:!0})},Ue=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ve(e))!ze.call(r,a)&&a!==t&&Z(r,a,{get:()=>e[a],enumerable:!(n=Qe(e,a))||n.enumerable});return r};var Ke=r=>Ue(Z({},"__esModule",{value:!0}),r);var Hr={};je(Hr,{default:()=>Gr});var ye=["#faeae5","#efd6c8","#e4c5aa","#d5b590","#c59e77","#b4875f","#9d6d4d","#805742","#654134","#4b2d25"],pe=["#382414","#3868A8","#38784C","#808838","#586878"],fe=["#1A1A24","#4C3428","#887058","#D4B868","#A84830","#C0C0CC","#484858","#783850","#D8B0A0","#C08048"],me=["#b98387","#a9a360","#9eb785","#69ab79","#81bbb0","#6499af","#7f8bbd","#8869ab","#b785b3","#ab6984"];function xe(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function qe(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function N(r,e){let t=xe(r),n=qe(t),a={faceShape:Math.floor(n()*4),skinColor:Math.floor(n()*10),eyeStyle:Math.floor(n()*8),eyeColor:Math.floor(n()*5),eyebrows:Math.floor(n()*5),nose:Math.floor(n()*4),mouth:Math.floor(n()*8),hairStyle:Math.floor(n()*10),hairColor:Math.floor(n()*10),accessory:Math.floor(n()*10),bgColor:Math.floor(n()*10)};return e?{...a,...e}:a}function R(r){let e=r.accessory%10,t=r.hairStyle%10;return(e===4||e===7)&&(t===5||t===6)?0:e}var Ye=["Squircle"],Je=["Porcelain","Ivory","Fair","Light","Sand","Golden","Warm","Caramel","Brown","Deep"],Ze=["Round","Minimal","Almond","Wide","Relaxed","Joyful","Bright","Gentle"],Xe=["Chocolate","Sky","Emerald","Hazel","Storm"],er=["Wispy","Straight","Natural","Arched","Angled"],rr=["Shadow","Button","Soft","Nostrils"],tr=["Smile","Calm","Happy","Oh","Smirk","Grin","Flat","Pout"],nr=["Bald","Short","Curly","Side Sweep","Puff","Long","Bob","Buzz","Wavy","Topknot"],ir=["Black","Espresso","Walnut","Honey","Copper","Silver","Charcoal","Burgundy","Strawberry","Ginger"],ar=["None","Beauty Mark","Round Glasses","Rect Glasses","Earring","Headband","Freckles","Stud Earrings","Aviators","Band-Aid"],or=["Rose","Olive","Sage","Fern","Mint","Ocean","Sky","Lavender","Orchid","Blush"];function Se(r){return{faceShape:Ye[0],skinColor:Je[r.skinColor]??"Fair",eyeStyle:Ze[r.eyeStyle]??"Round",eyeColor:Xe[r.eyeColor]??"Chocolate",eyebrows:er[r.eyebrows]??"Wispy",nose:rr[r.nose]??"Shadow",mouth:tr[r.mouth]??"Smile",hairStyle:nr[r.hairStyle]??"Bald",hairColor:ir[r.hairColor]??"Black",accessory:ar[R(r)]??"None",bgColor:or[r.bgColor]??"Rose"}}function be(r){return(xe(r)>>>0).toString(16).padStart(8,"0")}function $e(r,e){if(!(!r||!e))return e[r]}var lr=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function P(r,e){return e>>>r|e<<32-r}function X(r){let t=new TextEncoder().encode(r),n=t.length*8,a=64-(t.length+9)%64,o=t.length+1+(a===64?0:a)+8,s=new Uint8Array(o);s.set(t),s[t.length]=128;let c=new DataView(s.buffer);c.setUint32(o-4,n,!1);let i=1779033703,d=3144134277,h=1013904242,l=2773480762,x=1359893119,p=2600822924,S=528734635,b=1541459225,y=new Int32Array(64);for(let D=0;D<o;D+=64){for(let u=0;u<16;u++)y[u]=c.getInt32(D+u*4,!1);for(let u=16;u<64;u++){let L=P(7,y[u-15])^P(18,y[u-15])^y[u-15]>>>3,E=P(17,y[u-2])^P(19,y[u-2])^y[u-2]>>>10;y[u]=y[u-16]+L+y[u-7]+E|0}let g=i,v=d,M=h,_=l,$=x,A=p,F=S,G=b;for(let u=0;u<64;u++){let L=P(6,$)^P(11,$)^P(25,$),E=$&A^~$&F,k=G+L+E+lr[u]+y[u]|0,I=P(2,g)^P(13,g)^P(22,g),W=g&v^g&M^v&M,Y=I+W|0;G=F,F=A,A=$,$=_+k|0,_=M,M=v,v=g,g=k+Y|0}i=i+g|0,d=d+v|0,h=h+M|0,l=l+_|0,x=x+$|0,p=p+A|0,S=S+F|0,b=b+G|0}let O=new Uint8Array(32),m=new DataView(O.buffer);return m.setUint32(0,i,!1),m.setUint32(4,d,!1),m.setUint32(8,h,!1),m.setUint32(12,l,!1),m.setUint32(16,x,!1),m.setUint32(20,p,!1),m.setUint32(24,S,!1),m.setUint32(28,b,!1),O}function Ce(r){return Array.from(X(r)).map(e=>e.toString(16).padStart(2,"0")).join("")}var ke=Object.freeze(["Frost","Solar","Coral","Amber","Mossy","Lunar","Misty","Alpine","Autumn","Breeze","Cerulean","Cloudy","Cosmic","Crystal","Dewy","Dusty","Earthy","Floral","Forest","Frozen","Glacial","Golden","Grassy","Harbor","Ivory","Jasmine","Lagoon","Leafy","Lush","Marine","Meadow","Mineral","Mosaic","Nectar","Nordic","Oceanic","Orchid","Pearly","Petal","Polar","Prairie","Rain","River","Rocky","Sandy","Savanna","Shore","Sierra","Snowy","Spring","Starry","Stone","Summer","Sunset","Tidal","Timber","Tropic","Tundra","Valley","Verdant","Winding","Winter","Woody","Bloom","Blossom","Brook","Canyon","Cedar","Cloud","Comet","Copper","Dawn","Delta","Dune","Eclipse","Fern","Flame","Flora","Glade","Azure","Cobalt","Crimson","Indigo","Scarlet","Sapphire","Emerald","Ruby","Garnet","Onyx","Jade","Turquoise","Magenta","Plum","Russet","Tawny","Burnt","Gilded","Platinum","Bronze","Chrome","Pearl","Opal","Blush","Rosy","Dusky","Inky","Ashen","Cream","Slate","Charcoal","Steel","Pewter","Honey","Saffron","Citrus","Lemon","Tangerine","Peach","Apricot","Vermilion","Mauve","Lilac","Periwinkle","Cerise","Maroon","Burgundy","Wine","Berry","Cherry","Mint","Olive","Teal","Navy","Cyan","Neon","Pastel","Muted","Lustrous","Gleaming","Glossy","Shining","Glowing","Luminous","Brilliant","Sparkling","Shimmering","Iridescent","Prismatic","Spectral","Twilight","Sunrise","Sunlit","Moonlit","Starlit","Candlelit","Firelit","Sunbeam","Afterglow","Halo","Flicker","Glow","Ray","Beam","Blaze","Glint","Spark","Arc","Prism","Spectrum","Rainbow","Aurora","Nebula","Stellar","Astral","Lucent","Frosted","Swift","Bold","Keen","Brave","Noble","Serene","Fierce","Gentle","Agile","Alert","Astute","Candid","Clever","Daring","Eager","Earnest","Fair","Gallant","Graceful","Hardy","Honest","Humble","Jovial","Joyful","Kind","Loyal","Merry","Mindful","Nimble","Patient","Plucky","Proud","Quick","Ready","Resilient","Savvy","Sincere","Skilled","Steady","Stout","Strong","Sure","Tender","True","Valiant","Willing","Wise","Witty","Worthy","Zealous","Active","Adept","Ardent","Avid","Benign","Bright","Civil","Clean","Clear","Composed","Content","Courtly","Crafty","Curious","Decent","Devout","Diligent","Direct","Driven","Dynamic","Elegant","Elite","Even","Exact","Famed","Fervent","Fine","Firm","Fit","Fluid","Focal","Fond","Frank","Free","Fresh","Friendly","Frugal","Gifted","Glad","Grand","Great","Green","Grounded","Hale","Happy","Hearty","Heroic","Ideal","Infinite","Inner","Intact","Intent","Just","Lively","Lucky","Major","Mellow","Mighty","Modest","Natural","Neat","Optimal","Original","Pacific","Peaceful","Pious","Pleased","Poised","Polite","Popular","Potent","Precious","Premier","Prime","Proper","Proven","Pure","Quiet","Rapid","Rare","Real","Regal","Rich","Rising","Robust","Royal","Sacred","Safe","Scenic","Secure","Senior","Sharp","Simple","Smart","Smooth","Snug","Social","Solid","Sound","Special","Stable","Stately","Still","Super","Supreme","Sweet","Thorough","Tidy","Top","Total","Tough","Trim","Trusted","Ultimate","Unique","United","Upper","Useful","Valid","Valued","Varied","Vital","Vivid","Vocal","Whole","Wide","Young","Zesty","Iron","Gold","Silver","Marble","Granite","Velvet","Satin","Silk","Linen","Cotton","Suede","Denim","Canvas","Leather","Wooden","Bamboo","Wicker","Woven","Braided","Knit","Lace","Mesh","Fiber","Glass","Mirror","Diamond","Flint","Basalt","Obsidian","Chalk","Clay","Gravel","Pebble","Cobble","Brick","Tile","Resin","Fossil","Shell","Bone","Feather","Plush","Brushed","Polished","Hammered","Forged","Cast","Molten","Tempered","Etched","Carved","Sculpted","Spun","Pressed","Rolled","Folded","Layered","Stacked","Ribbed","Matte","Lacquered","Enameled","Glazed","Painted","Dyed","Stained","Refined","Distilled","Purified","Filtered","Alloyed","Plated","Coated","Sealed","Bonded","Fused","Welded","Riveted","Textured","Grained","Veined","Flecked","Speckled","Dappled","Streaked","Banded","Striped","Checkered","Waxed","Oiled","Cured","Tanned","Smoked","Burnished","Antiqued","Patina","Weathered","Aged","Rustic","Hewn","Vast","Broad","Deep","High","Tall","Giant","Colossal","Massive","Immense","Boundless","Endless","Sweeping","Spanning","Extended","Towering","Soaring","Lofty","Elevated","Raised","Summit","Apex","Crest","Crown","Pinnacle","Zenith","Ridge","Ledge","Level","Hollow","Compact","Dense","Thick","Narrow","Slender","Micro","Mini","Small","Ample","Hefty","Jumbo","Mega","Ultra","Macro","Central","Core","Outer","Lateral","Radial","Spiral","Orbital","Linear","Planar","Spherical","Rounded","Angular","Pointed","Tapered","Curved","Arced","Twisted","Coiled","Fractal","Cellular","Quantum","Photon","Plasma","Kinetic","Static","Charged","Maximal","Atomic","Nano","Tiered","Strata","Nested","Stepped","Graded","Scaled","Proportioned","Modular","Symmetric","Parallel","Flowing","Drifting","Gliding","Sailing","Floating","Climbing","Leaping","Bounding","Sprinting","Dashing","Rushing","Surging","Cascading","Rolling","Tumbling","Spinning","Whirling","Twisting","Swirling","Pulsing","Beating","Humming","Buzzing","Ringing","Chiming","Singing","Dancing","Swaying","Waving","Rippling","Bubbling","Fizzing","Crackling","Snapping","Clicking","Tapping","Drumming","Thrumming","Vibrant","Magnetic","Electric","Blazing","Burning","Fiery","Volcanic","Thermal","Warming","Cooling","Chilling","Brisk","Crisp","Breezy","Gusty","Windy","Airy","Light","Buoyant","Weightless","Fleet","Peppy","Zippy","Snappy","Speedy","Sonic","Turbo","Warp","Express","Instant","Darting","Flying","Jetting","Cruising","Coasting","Rhythmic","Cycling","Pacing","Striding","Marching","Trotting","Galloping","Bouncing","Vaulting","Arching","Launched","Propelled","Hovering","Orbiting","Revolving","Rotating","Pivoting","Swinging","Rocking","Tilting","Shifting","Sliding","Skating","Surfing","Diving","Plunging","Dipping","Wading","Celestial","Ethereal","Mystic","Arcane","Ancient","Eternal","Timeless","Ageless","Enduring","Lasting","Perpetual","Legendary","Mythic","Epic","Fabled","Storied","Historic","Classic","Vintage","Retro","Modern","Future","Digital","Cyber","Virtual","Pixel","Binary","Omega","Alpha","Beta","Gamma","Sigma","Theta","Lambda","Kappa","Zeta","Epsilon","Omni","Dual","Triple","Nexus","Vertex","Vector","Matrix","Cipher","Enigma","Phantom","Mirage","Dream","Vision","Oracle","Prophet","Sage","Shaman","Druid","Artisan","Maestro","Virtuoso","Savant","Prodigy","Maven","Guru","Mentor","Guide","Scout","Pioneer","Voyager","Wanderer","Nomad","Rover","Ranger","Sentinel","Guardian","Keeper","Warden","Champion","Vanguard","Herald","Emissary","Envoy","Ambassador","Steward","Curator","Patron","Benefactor","Founder","Architect","Builder","Maker","Crafter","Weaver","Forger","Smith","Wright","Mason","Brewer","Baker","Tanner","Dyer","Scribe","Bard","Minstrel","Troubadour","Storyteller","Chronicler","Lorekeeper","Archivist","Tranquil","Placid","Hushed","Muffled","Soft","Subtle","Faint","Dim","Pale","Warm","Cool","Taut","Tense","Cozy","Homey","Pastoral","Sylvan","Bucolic","Idyllic","Quaint","Charming","Lovely","Pretty","Dapper","Natty","Chic","Posh","Classy","Fancy","Ornate","Lavish","Opulent","Majestic","Dignified","August","Solemn","Sober","Heartfelt","Genuine","Authentic","Novel","Singular","Distinct","Chosen","Select","Premium","Deluxe","Superior","Exquisite","Superb","Splendid","Glorious","Sublime","Resonant","Harmonic","Melodic","Lyrical","Poetic","Seamless","Effortless","Organic","Primal","Devoted","Dedicated","Committed","Focused","Determined","Resolute","Steadfast","Unwavering","Constant","Faithful","Reliable","Dependable","Trusty","Anchored","Moored","Sheltered","Protected","Guarded","Shielded","Fortified","Reinforced","Braced","Bolstered","Supported","Upheld","Sustained","Preserved","Conserved","Stored","Vaulted","Locked","Secured","Fastened","Linked","Joined","Connected","Paired","Matched","Balanced","Aligned","Centered","Aimed","Directed","Guided","Steered","Piloted","Navigated","Charted","Mapped","Tracked","Pursued","Discovered","Unveiled","Displayed","Presented","Granted","Bestowed","Conferred","Sapient","Sentient","Radiant","Fertile","Abundant","Bountiful","Plentiful","Prolific","Thriving","Flourishing","Blooming","Budding","Growing","Expanding","Advancing","Progressing","Evolving","Maturing","Ripening","Developing","Emerging","Nascent","Incipient","Dawning","Unfolding","Awakening","Stirring","Kindling","Igniting","Sparking","Triggering","Launching","Initiating","Pioneering","Trailblazing","Groundbreaking","Innovative","Inventive","Creative","Imaginative","Inspired","Visionary","Prophetic","Prescient","Insightful","Perceptive","Observant","Watchful","Vigilant","Attentive","Thoughtful","Considerate","Caring","Nurturing","Fostering","Cultivating","Tending","Pruning","Trimming","Shaping","Forming","Molding","Fashioning","Designing","Drafting","Sketching","Drawing","Painting","Coloring","Tinting","Shading","Blending","Mixing","Merging","Combining","Uniting","Fusing","Melding","Weaving","Knitting","Stitching","Sewing","Quilting","Patching","Mending","Healing","Restoring","Renewing","Reviving","Refreshing","Rejuvenating","Invigorating","Energizing","Empowering","Strengthening","Fortifying","Hardening","Tempering","Seasoning","Curing","Aging","Mellowing","Softening","Smoothing","Leveling","Planing","Sanding","Buffing","Burnishing","Radiating","Beaming","Lighting","Illuminating","Brightening","Clarifying","Purifying","Filtering","Distilling","Condensing","Concentrating","Focusing","Directing","Channeling","Terraced","Ascending","Streaming","Umber","Careful","Perfecting","Glittering","Twinkling","Verdure","Auroral","Boreal","Austral","Temperate"]),we=Object.freeze(["Falcon","Hawk","Eagle","Owl","Heron","Crane","Swan","Dove","Raven","Finch","Robin","Wren","Lark","Jay","Ibis","Kite","Osprey","Condor","Pelican","Stork","Sparrow","Tern","Puffin","Parrot","Toucan","Kingfisher","Flamingo","Quail","Pheasant","Grouse","Oriole","Warbler","Thrush","Starling","Magpie","Swallow","Martin","Plover","Curlew","Sandpiper","Wolf","Fox","Bear","Stag","Elk","Moose","Bison","Lynx","Cougar","Panther","Jaguar","Leopard","Tiger","Lion","Cheetah","Gazelle","Antelope","Impala","Zebra","Giraffe","Rhino","Hippo","Otter","Beaver","Badger","Marten","Ferret","Mink","Hare","Rabbit","Squirrel","Chipmunk","Porcupine","Hedgehog","Armadillo","Pangolin","Lemur","Gibbon","Tamarin","Capybara","Chinchilla","Ocelot","Margay","Coati","Kinkajou","Tapir","Okapi","Kudu","Oryx","Chamois","Orca","Dolphin","Whale","Narwhal","Walrus","Seal","Manatee","Turtle","Iguana","Gecko","Chameleon","Newt","Salamander","Crab","Lobster","Seahorse","Starfish","Octopus","Squid","Jellyfish","Stingray","Barracuda","Marlin","Sailfish","Trout","Salmon","Mantis","Cricket","Firefly","Dragonfly","Cedar","Oak","Pine","Birch","Maple","Elm","Ash","Willow","Cypress","Redwood","Sequoia","Spruce","Fir","Larch","Yew","Beech","Alder","Poplar","Aspen","Walnut","Hickory","Teak","Mahogany","Ebony","Bamboo","Palm","Acacia","Baobab","Banyan","Olive","Laurel","Magnolia","Lotus","Orchid","Iris","Lily","Rose","Tulip","Daisy","Aster","Dahlia","Peony","Jasmine","Violet","Clover","Fern","Moss","Lichen","Ivy","Vine","Reed","Sage","Basil","Thyme","Mint","Dill","Fennel","Sorrel","Yarrow","Thistle","Heather","Bluebell","Primrose","Marigold","Sunflower","Zinnia","Pansy","Poppy","Crocus","Snowdrop","Foxglove","Honeysuckle","Wisteria","Hibiscus","Plumeria","Gardenia","Camellia","Begonia","Azalea","Oleander","Canyon","Ridge","Peak","Summit","Cliff","Bluff","Mesa","Butte","Plateau","Terrace","Valley","Basin","Gorge","Ravine","Gulch","Fjord","Inlet","Bay","Cove","Harbor","Lagoon","Reef","Atoll","Isle","Peninsula","Cape","Shoal","Bank","Ledge","Shelf","Dune","Desert","Steppe","Tundra","Glacier","Moraine","Geyser","Oasis","Delta","Estuary","Marsh","Bog","Swamp","Fen","Moor","Heath","Meadow","Prairie","Savanna","Glen","Dale","Dell","Vale","Hollow","Grove","Copse","Thicket","Taiga","Mangrove","Wetland","Cascade","Brook","Creek","Stream","River","Lake","Pond","Pool","Tarn","Loch","Falls","Fountain","Grotto","Cavern","Cave","Tunnel","Arch","Bridge","Ford","Pass","Trail","Path","Route","Caldera","Crater","Vent","Spire","Needle","Dome","Gateway","Portal","Threshold","Verge","Brink","Edge","Rim","Brow","Crest","Promontory","Headland","Spit","Tombolo","Isthmus","Strait","Narrows","Sound","Bight","Reach","Stretch","Expanse","Clearing","Glade","Knoll","Hillock","Mound","Tor","Crag","Scarp","Escarpment","Comet","Meteor","Asteroid","Nebula","Galaxy","Quasar","Pulsar","Star","Sun","Moon","Planet","Orbit","Eclipse","Corona","Flare","Nova","Cosmos","Void","Abyss","Ether","Zenith","Nadir","Horizon","Aurora","Meridian","Equinox","Solstice","Phase","Cycle","Epoch","Eon","Era","Dawn","Dusk","Twilight","Night","Noon","Morning","Evening","Sunset","Sunrise","Daybreak","Nightfall","Starlight","Moonbeam","Sunray","Skyline","Firmament","Canopy","Infinity","Vega","Rigel","Altair","Deneb","Sirius","Polaris","Arcturus","Antares","Lyra","Orion","Draco","Phoenix","Hydra","Corvus","Cygnus","Aquila","Andromeda","Pegasus","Perseus","Gemini","Centauri","Cassiopeia","Scorpius","Sagittarius","Capella","Procyon","Aldebaran","Betelgeuse","Spica","Prism","Quill","Forge","Anvil","Helm","Rune","Atlas","Compass","Anchor","Beacon","Bell","Bugle","Drum","Flute","Harp","Horn","Lyre","Pipe","Gong","Chime","Cymbal","Fiddle","Trumpet","Viola","Cello","Oboe","Lute","Mandolin","Zither","Sitar","Banjo","Lantern","Torch","Candle","Lamp","Globe","Lens","Scope","Mirror","Frame","Easel","Palette","Brush","Chisel","Mallet","Hammer","Tongs","Ladle","Kettle","Crucible","Mortar","Pestle","Flask","Vial","Beaker","Alembic","Furnace","Kiln","Loom","Shuttle","Bobbin","Spool","Thimble","Pin","Clasp","Buckle","Brooch","Pendant","Amulet","Talisman","Charm","Token","Coin","Medal","Badge","Shield","Banner","Flag","Pennant","Sigil","Stamp","Emblem","Totem","Icon","Statue","Obelisk","Monolith","Cairn","Tablet","Scroll","Tome","Codex","Ledger","Journal","Chronicle","Almanac","Manual","Gazette","Folio","Pamphlet","Broadsheet","Parchment","Vellum","Papyrus","Inkwell","Quiver","Satchel","Pouch","Casket","Coffer","Chest","Crate","Barrel","Quartz","Opal","Onyx","Agate","Garnet","Topaz","Beryl","Zircon","Spinel","Peridot","Jasper","Amethyst","Citrine","Tourmaline","Malachite","Azurite","Lapis","Pyrite","Galena","Mica","Talc","Gypsum","Calcite","Dolomite","Basalt","Granite","Marble","Slate","Shale","Sandstone","Limestone","Obsidian","Pumice","Tuff","Chert","Flint","Chalcedony","Carnelian","Sardonyx","Moonstone","Sunstone","Labradorite","Tanzanite","Kunzite","Rhodonite","Sodalite","Chrysocolla","Aventurine","Fluorite","Seraphinite","Charoite","Sugilite","Larimar","Prehnite","Danburite","Scolecite","Celestite","Amazonite","Howlite","Lepidolite","Storm","Thunder","Lightning","Breeze","Gale","Squall","Typhoon","Cyclone","Monsoon","Tempest","Zephyr","Chinook","Mistral","Sirocco","Foehn","Bora","Rain","Drizzle","Shower","Downpour","Deluge","Flood","Torrent","Current","Tide","Wave","Swell","Surf","Spray","Foam","Mist","Fog","Haze","Dew","Frost","Ice","Snow","Sleet","Hail","Rime","Thaw","Flow","Drift","Eddy","Vortex","Whirl","Spiral","Funnel","Column","Plume","Wisp","Streak","Band","Front","Trough","Rainbow","Halo","Mirage","Shimmer","Glimmer","Tower","Turret","Bastion","Citadel","Fortress","Castle","Palace","Manor","Lodge","Cabin","Cottage","Villa","Ranch","Barn","Silo","Mill","Foundry","Workshop","Studio","Gallery","Museum","Library","Archive","Treasury","Vault","Chamber","Hall","Court","Plaza","Garden","Balcony","Porch","Arcade","Colonnade","Pergola","Pavilion","Gazebo","Kiosk","Chapel","Temple","Shrine","Monastery","Abbey","Cathedral","Basilica","Minaret","Pagoda","Stupa","Pyramid","Arena","Stadium","Forum","Market","Bazaar","Emporium","Depot","Station","Terminal","Dock","Wharf","Pier","Jetty","Quay","Marina","Lighthouse","Watchtower","Outpost","Camp","Shelter","Refuge","Sanctuary","Haven","Retreat","Nest","Aerie","Burrow","Den","Lair","Roost","Perch","Bower","Arbor","Alcove","Sextant","Astrolabe","Sundial","Hourglass","Pendulum","Gyroscope","Turbine","Dynamo","Generator","Piston","Valve","Lever","Pulley","Winch","Derrick","Gantry","Scaffold","Trellis","Lattice","Grid","Net","Web","Axle","Gear","Cog","Sprocket","Chain","Link","Cable","Wire","Thread","Cord","Rope","Rigging","Mast","Boom","Spar","Keel","Hull","Rudder","Tiller","Wheel","Chart","Map","Gauge","Meter","Scale","Caliper","Ruler","Level","Plumb","Protractor","Template","Stencil","Mold","Die","Lathe","Bellows","Retort","Condenser","Centrifuge","Spectrometer","Oscilloscope","Theodolite","Transit","Sounding","Probe","Sensor","Relay","Switch","Circuit","Diode","Quest","Saga","Legend","Myth","Fable","Ballad","Anthem","Hymn","Ode","Sonnet","Verse","Stanza","Canto","Chorus","Refrain","Motif","Theme","Arc","Prologue","Epilogue","Prelude","Overture","Finale","Crescendo","Cadence","Tempo","Rhythm","Pulse","Beat","Tone","Note","Chord","Harmony","Melody","Lyric","Opus","Suite","Etude","Fugue","Canon","March","Waltz","Rondo","Aria","Duet","Trio","Quartet","Ensemble","Guild","League","Order","Council","Assembly","Conclave","Synod","Quorum","Cohort","Legion","Brigade","Battalion","Regiment","Division","Corps","Fleet","Squadron","Patrol","Convoy","Caravan","Expedition","Voyage","Journey","Trek","Odyssey","Passage","Crossing","Venture","Enterprise","Mission","Campaign","Crusade","Pilgrimage","Safari","Sortie","Foray","Rally","Charge","Advance","Concord","Ember","Blaze","Inferno","Pyre","Spark","Cinder","Smoke","Vapor","Steam","Nimbus","Cumulus","Cirrus","Stratus","Billow","Puff","Wake","Ripple","Surge","Ebb","Flux","Gush","Rush","Spring","Well","Font","Source","Origin","Root","Seed","Sprout","Bud","Bloom","Petal","Leaf","Branch","Limb","Trunk","Bark","Grain","Fiber","Pulp","Core","Sap","Resin","Nectar","Pollen","Spore","Frond","Tendril","Runner","Shoot","Stalk","Stem","Thorn","Burr","Cone","Acorn","Pinecone","Nutshell","Keystone","Capstone","Milestone","Cornerstone","Foundation","Bedrock","Pillar","Buttress","Parapet","Battlement","Barbican","Gatehouse","Drawbridge","Portcullis","Moat","Stockade","Palisade","Bulwark","Levee","Embankment","Causeway","Aqueduct","Viaduct","Trestle","Span","Lintel","Plinth","Pedestal","Dais","Rostrum","Podium","Stage","Platform","Deck","Landing","Berth","Channel","Lock","Weir","Dam","Spillway","Flume","Chute","Sluice","Nozzle","Spout","Faucet","Cistern","Wellspring","Headwater","Watershed","Alluvium","Loam","Humus","Peat","Marl","Silt","Writ","Clamp","Eyepiece","Traverse","Stride","Parley","Char","Trace","Confluence","Rampart"]),Te=Object.freeze(new Set([]));function cr(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}var dr=`solnames-${"v1"}:`;function ee(r,e="display",t){let n=U(r,t);switch(e){case"short":return n.short;case"display":return n.name;case"tag":return n.tag;case"full":return n.full}}function U(r,e){let t=e?.adjectives??ke,n=e?.nouns??we,a=e?.blockedCombos??Te,o=e?.domain?`${e.domain}:`:dr,s=X(o+r),c=Ce(o+r),i=(s[0]<<24|s[1]<<16|s[2]<<8|s[3])>>>0,d=cr(i),h=t[Math.floor(d()*t.length)],l=n[Math.floor(d()*n.length)];for(;a.has(h+l);)h=t[Math.floor(d()*t.length)],l=n[Math.floor(d()*n.length)];let x=t[Math.floor(d()*t.length)],p=n[Math.floor(d()*n.length)],S=c.slice(16,20);return{short:h,name:h+l,tag:h+l+"#"+S,full:h+l+"-"+x+p,adjective:h,noun:l,hash:c,discriminator:S}}function T(r){let e=r.replace("#","");return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}function H(r,e,t){return"#"+[r,e,t].map(n=>Math.max(0,Math.min(255,Math.round(n))).toString(16).padStart(2,"0")).join("")}function w(r,e=.12){let[t,n,a]=T(r);return H(t*(1-e),n*(1-e),a*(1-e))}function B(r,e=.15){let[t,n,a]=T(r);return H(t+(255-t)*e,n+(255-n)*e,a+(255-a)*e)}function C(r,e,t=.5){let[n,a,o]=T(r),[s,c,i]=T(e);return H(n+(s-n)*t,a+(c-a)*t,o+(i-o)*t)}function re(r){let[e,t,n]=T(r);return(e+t+n)/3}function K(r){let e=re(r),t=e<100,n=B(r,.1),a=w(r,.22),o=w(r,.05),[s,c,i]=T(r),d;if(e>120){let k=e>180?.03:.06,I=e>180?.3:.28,W=e>180?.25:.22;d=H(Math.min(255,s+s*k),Math.max(0,c-c*I),Math.max(0,i-i*W))}else d=H(Math.min(255,s+50),Math.max(0,c-10),Math.max(0,i-5));let h=.15+.18*(1-Math.min(1,e/240)),l=Math.max(0,Math.min(1,(e-60)/180)),x=C("#D89090","#A83848",l),p=1-Math.abs(e-140)/80,S=(t?.7:.62)+Math.max(0,p)*.12,b=C(r,x,Math.min(.82,S)),[y,O,m]=T(b),g=Math.abs(s-y)+Math.abs(c-O)+Math.abs(i-m)<60?C(r,x,.78):b,v=t?B(r,e<80?.35:.25):w(r,.55),M=t?B(r,.2):w(r,.2),_=Math.max(0,Math.min(1,(e-100)/60)),$=C(B(r,.08),o,_),A=w(r,.1+.06*(1-Math.min(1,e/160))),F=t?B(r,.18):w(r,.15),G=Math.max(0,Math.min(1,(e-60)/180)),u=C("#EDE8E0","#FBF8F2",G),L=e>140?.3:e>100?.5:.7,E=C("#808890",C(r,"#B0A898",.3),L);return{skinHi:n,skinLo:a,skinMid:o,isDark:t,cheekColor:d,cheekOpacity:h,lipColor:g,noseFill:M,browColor:v,earFill:$,earShadow:A,eyeWhiteAdapted:u,lidColor:F,accessoryColor:E}}function Me(r,e){let[t,n,a]=T(r),[o,s,c]=T(e);return Math.abs(t-o)+Math.abs(n-s)+Math.abs(a-c)<80?.7:.5}function ur(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function gr(r,e,t,n,a,o,s,c,i,d,h){if(i)return"";let l="<defs>";return l+=`<linearGradient id="${r}sg" x1="0" y1="0" x2="0" y2="1">`,l+=`<stop offset="0%" stop-color="${t}"/>`,l+=`<stop offset="100%" stop-color="${n}"/>`,l+="</linearGradient>",l+=`<linearGradient id="${r}hg" x1="0" y1="0" x2="0" y2="1">`,l+=`<stop offset="0%" stop-color="${B(a,.15)}"/>`,l+=`<stop offset="100%" stop-color="${w(a,.15)}"/>`,l+="</linearGradient>",l+=`<linearGradient id="${r}bg" x1="0" y1="0" x2="1" y2="1">`,l+=`<stop offset="0%" stop-color="${B(o,.12)}"/>`,l+=`<stop offset="100%" stop-color="${w(o,.12)}"/>`,l+="</linearGradient>",d&&(l+=`<radialGradient id="${r}glow" cx="0.5" cy="0.28" r="0.45">`,l+=`<stop offset="0%" stop-color="#ffffff" stop-opacity="${h}"/>`,l+='<stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>',l+="</radialGradient>",l+=`<radialGradient id="${r}chin" cx="0.5" cy="0.85" r="0.35">`,l+=`<stop offset="0%" stop-color="${n}" stop-opacity="0.30"/>`,l+=`<stop offset="100%" stop-color="${n}" stop-opacity="0"/>`,l+="</radialGradient>",l+=`<radialGradient id="${r}cL" cx="0.5" cy="0.5" r="0.5">`,l+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,l+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,l+="</radialGradient>",l+=`<radialGradient id="${r}cR" cx="0.5" cy="0.5" r="0.5">`,l+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,l+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,l+="</radialGradient>"),l+="</defs>",l}function hr(r,e,t){let n=t?"currentColor":`url(#${e}hg)`;switch(r){case 5:return`<g fill="${n}"><rect x="10" y="14" width="44" height="42" rx="6"/></g>`;case 6:return`<g fill="${n}"><rect x="12" y="14" width="40" height="32" rx="8"/></g>`;case 8:return`<g fill="${n}"><rect x="11" y="14" width="42" height="38" rx="8"/></g>`;default:return""}}function yr(r,e){return`<ellipse cx="11" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="11" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/><ellipse cx="53" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="53" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/>`}function pr(r,e,t,n=1){let a=t?e:`url(#${r}sg)`,o=n<1?` opacity="${n}"`:"";return`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="${a}"${o}/>`}function fr(r,e){return e?"":`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}glow)"/><rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}chin)"/><ellipse cx="22" cy="42" rx="5" ry="3.5" fill="url(#${r}cL)"/><ellipse cx="42" cy="42" rx="5" ry="3.5" fill="url(#${r}cR)"/><line x1="20" y1="50" x2="44" y2="50" stroke="currentColor" stroke-width="0.3" opacity="0.08" stroke-linecap="round"/>`}function mr(r,e,t,n,a){let o=a?t:`url(#${e}hg)`;switch(r){case 0:return"";case 1:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${o}"/>`;case 2:return`<g fill="${o}"><circle cx="20" cy="14" r="5"/><circle cx="28" cy="11" r="5.5"/><circle cx="36" cy="11" r="5.5"/><circle cx="44" cy="14" r="5"/><circle cx="16" cy="20" r="4"/><circle cx="48" cy="20" r="4"/></g>`;case 3:return`<path d="M14 26 Q14 12 32 10 Q50 12 50 26 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><path d="M14 20 Q8 16 10 8 Q14 10 20 16 Z" fill="${o}"/>`;case 4:return`<ellipse cx="32" cy="10" rx="14" ry="8" fill="${o}"/>`;case 5:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/>`;case 6:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><rect x="10" y="28" width="8" height="14" rx="4" fill="${o}"/><rect x="46" y="28" width="8" height="14" rx="4" fill="${o}"/>`;case 7:{let s=Me(t,n);return`<rect x="15" y="13" width="34" height="16" rx="10" ry="8" fill="${t}" opacity="${s.toFixed(2)}"/>`}case 8:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><path d="M12 30 Q10 20 14 16" fill="none" stroke="${o}" stroke-width="4" stroke-linecap="round"/><path d="M52 30 Q54 20 50 16" fill="none" stroke="${o}" stroke-width="4" stroke-linecap="round"/>`;case 9:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${o}"/><ellipse cx="32" cy="6" rx="6" ry="5" fill="${o}"/>`;default:return""}}function xr(r,e,t,n,a){let i="";switch(r){case 0:i+=`<circle cx="25" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`);break;case 1:i+=`<circle cx="25" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="39" cy="33" r="2" fill="${e}"/>`;break;case 2:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`),i+=`<ellipse cx="39" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`);break;case 3:i+=`<circle cx="25" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="25" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="39" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`);break;case 4:i+=`<ellipse cx="25" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="25" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${25-4.5}" y1="${33-.5}" x2="${25+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`),i+=`<ellipse cx="39" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="39" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${39-4.5}" y1="${33-.5}" x2="${39+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 5:i+=`<path d="M21 33 Q25 37 29 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`,i+=`<path d="M35 33 Q39 37 43 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`;break;case 6:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${25+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,a&&(i+=`<line x1="${25+2.5}" y1="${33-3.5}" x2="29" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,i+=`<line x1="${25+3.5}" y1="${33-2.5}" x2="30" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`),i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${39+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,a&&(i+=`<line x1="${39+2.5}" y1="${33-3.5}" x2="43" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,i+=`<line x1="${39+3.5}" y1="${33-2.5}" x2="44" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 7:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${25+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`,i+=`<ellipse cx="39" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${39+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`;break;default:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2" fill="${e}"/>`}return a&&r!==1&&r!==5&&(i+=`<path d="M21 ${33-1.5} Q25 29 29 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`,i+=`<path d="M35 ${33-1.5} Q39 29 43 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`),i}function Sr(r,e){switch(r){case 0:return`<line x1="22" y1="27" x2="28" y2="${27-.5}" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/><line x1="36" y1="${27-.5}" x2="42" y2="27" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/>`;case 1:return`<line x1="${25-3.5}" y1="27" x2="${25+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><line x1="${39-3.5}" y1="27" x2="${39+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M${25-3.5} ${27+.5} Q25 ${27-1.5} ${25+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><path d="M${39-3.5} ${27+.5} Q39 ${27-1.5} ${39+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 3:return`<path d="M21 28 Q25 24 29 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/><path d="M35 28 Q39 24 43 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/>`;case 4:return`<polyline points="22,28 25,25 28,27" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/><polyline points="36,27 39,25 42,28" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>`;default:return""}}function br(r,e){switch(r){case 0:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`;case 1:return`<circle cx="32" cy="39" r="1.8" fill="${e}" opacity="0.5"/>`;case 2:return`<path d="M30 40 Q32 37 34 40" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round" opacity="0.5"/>`;case 3:return`<circle cx="${32-1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/><circle cx="${32+1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/>`;default:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`}}function $r(r,e,t){let o=t?"#e8e0d8":"#ffffff";switch(r){case 0:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`;case 1:return`<line x1="29" y1="46" x2="35" y2="46" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M27 45 Q32 50 37 45" fill="none" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 3:return`<ellipse cx="32" cy="46" rx="2.5" ry="3" fill="${e}" opacity="0.7"/>`;case 4:return`<path d="M28 46 Q33 46 36 ${45-1.5}" fill="none" stroke="${e}" stroke-width="1.3" stroke-linecap="round"/>`;case 5:return`<path d="M27 45 Q32 51 37 45" fill="${o}" stroke="${e}" stroke-width="1"/><line x1="28" y1="${45+1.5}" x2="36" y2="${45+1.5}" stroke="${e}" stroke-width="0.3" opacity="0.3"/>`;case 6:return`<line x1="28" y1="46" x2="36" y2="46" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 7:return`<ellipse cx="32" cy="46" rx="3.5" ry="2" fill="${e}" opacity="0.25"/><path d="M29 45 Q32 ${45+2.5} 35 45" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;default:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`}}function Pe(r,e,t,n,a){switch(r){case 0:return"";case 1:return'<circle cx="40" cy="44" r="0.8" fill="#3a2a2a"/>';case 2:return`<g fill="none" stroke="${t}" stroke-width="1"><circle cx="25" cy="33" r="5.5"/><circle cx="39" cy="33" r="5.5"/><line x1="30.5" y1="33" x2="33.5" y2="33"/><line x1="19.5" y1="33" x2="14" y2="31"/><line x1="44.5" y1="33" x2="50" y2="31"/></g>`;case 3:return`<g fill="none" stroke="${t}" stroke-width="1"><rect x="19" y="29" width="12" height="8" rx="1.5"/><rect x="33" y="29" width="12" height="8" rx="1.5"/><line x1="31" y1="33" x2="33" y2="33"/><line x1="19" y1="33" x2="14" y2="31"/><line x1="45" y1="33" x2="50" y2="31"/></g>`;case 4:return`<circle cx="10" cy="38" r="1.5" fill="${n}"/><circle cx="10" cy="41" r="2" fill="${n}" opacity="0.8"/>`;case 5:return`<rect x="13" y="20" width="38" height="3.5" rx="1.5" fill="${a}" opacity="0.85"/>`;case 6:return'<g fill="#a0785a" opacity="0.35"><circle cx="21" cy="40" r="0.6"/><circle cx="23" cy="42" r="0.5"/><circle cx="19" cy="41.5" r="0.5"/><circle cx="43" cy="40" r="0.6"/><circle cx="41" cy="42" r="0.5"/><circle cx="45" cy="41.5" r="0.5"/></g>';case 7:return`<circle cx="10" cy="37" r="1.2" fill="${n}"/><circle cx="54" cy="37" r="1.2" fill="${n}"/>`;case 8:return`<g fill="none" stroke="${t}" stroke-width="1.2"><path d="M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z" fill="${t}" fill-opacity="0.15"/><path d="M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z" fill="${t}" fill-opacity="0.15"/><line x1="31" y1="32" x2="33" y2="32"/><line x1="19" y1="31" x2="14" y2="29"/><line x1="45" y1="31" x2="50" y2="29"/></g>`;case 9:return'<g><rect x="38" y="38" width="8" height="4" rx="1" fill="#f0d0a0" transform="rotate(-15 42 40)"/><line x1="40" y1="39" x2="40" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="42" y1="39" x2="42" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="44" y1="39" x2="44" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/></g>';default:return""}}function V(r,e){let{size:t=64,theme:n,traitOverrides:a,enableBlink:o,className:s,colorOverrides:c}=e??{},i=N(r,a),d=e?.detail??"auto",h=d==="full"||d==="auto"&&t>=48,l=n?.flat??!1,x=n?.skinColors??ye,p=n?.eyeColors??pe,S=n?.hairColors??fe,b=n?.bgColors??me,y=c?.skin??x[i.skinColor%x.length],O=c?.eyes??p[i.eyeColor%p.length],m=c?.hair??S[i.hairColor%S.length],D=c?.bg??b[i.bgColor%b.length],g=K(y),v=n?.bgOpacity??1,M=n?.bgRadius??4,_=c?.eyebrow??n?.eyebrowColor??g.browColor,$=c?.nose??n?.noseColor??g.noseFill,A=c?.mouth??n?.mouthColor??g.lipColor,F=c?.accessory??n?.accessoryColor??g.accessoryColor,G=c?.eyeWhite??n?.eyeWhiteColor??g.eyeWhiteAdapted,u=n?.glassesColor??"#4a4a5a",L=n?.earringColor??C(y,"#d4a840",.4),E=n?.headbandColor??C(m,"#c04040",.5),k="sf"+ur(r).toString(36),I=n?.cheekEnabled??!0,W=n?.cheekColor??g.cheekColor,Y=n?.cheekOpacity??g.cheekOpacity,ge=i.hairStyle%10,j=R(i),De=s?` class="${s}"`:"",f=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="${t}" height="${t}"${De}>`,_e=n?.glowIntensity??.1;f+=gr(k,y,g.skinHi,g.skinLo,m,D,W,Y,l,h&&I,_e);let J=!!o,Ge=typeof o=="object"?o.duration??4:4,he=typeof o=="object"?o.delay??0:0;if(J){let Q=`sf-${r.slice(0,8)}`,We=he?` ${he}s`:"";f+=`<style>@keyframes ${Q}-blink{0%,90%,100%{transform:scaleY(1)}95%{transform:scaleY(0.1)}}.${Q}-eyes{animation:${Q}-blink ${Ge}s ease-in-out${We} infinite;transform-origin:32px 33px}</style>`}let He=l?D:`url(#${k}bg)`;f+=`<rect x="0" y="0" width="64" height="64" fill="${He}" opacity="${v}" rx="${M}"/>`,f+=hr(ge,k,l),f+=yr(g.earFill,g.earShadow);let Ie=n?.skinOpacity??1;f+=pr(k,y,l,Ie);let Ne=n?.shadowEnabled??!0;if(h&&I&&Ne&&(f+=fr(k,l)),j===5&&(f+=Pe(5,F,u,L,E)),f+=mr(ge,k,m,y,l),J){let Q=`sf-${r.slice(0,8)}`;f+=`<g class="${Q}-eyes">`}return f+=xr(i.eyeStyle%8,O,G,g.lidColor,h),J&&(f+="</g>"),f+=Sr(i.eyebrows%5,_),f+=br(i.nose%4,$),f+=$r(i.mouth%8,A,g.isDark),j!==0&&j!==5&&(f+=Pe(j,F,u,L,E)),n?.border&&(f+=`<rect x="0" y="0" width="64" height="64" fill="none" stroke="${n.border.color}" stroke-width="${n.border.width}" rx="${M}"/>`),f+="</svg>",f}function te(r,e){let t=V(r,e);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}function Be(r,e){let t=V(r,e);return`data:image/svg+xml;base64,${btoa(t)}`}var ne={0:"porcelain",1:"ivory",2:"fair",3:"light",4:"sand",5:"golden",6:"warm",7:"caramel",8:"brown",9:"deep"},ie={0:"round, wide-open",1:"small and minimal",2:"almond-shaped",3:"wide and expressive",4:"relaxed, half-lidded",5:"joyful, crescent-shaped",6:"bright and sparkling",7:"gentle and narrow"},ae={0:"dark brown",1:"blue",2:"green",3:"hazel",4:"gray"},ve={0:"wispy",1:"straight",2:"natural",3:"elegantly arched",4:"sharply angled"},Fe={0:"a subtle shadow nose",1:"a small button nose",2:"a soft curved nose",3:"a button nose with visible nostrils"},oe={0:"a gentle smile",1:"a calm, neutral expression",2:"a happy grin",3:"a surprised O-shaped mouth",4:"a confident smirk",5:"a wide, toothy grin",6:"a flat, straight expression",7:"a soft pout"},le={0:"bald, with no hair",1:"short, neatly cropped hair",2:"bouncy, curly hair",3:"side-swept hair",4:"a voluminous puff",5:"long hair that falls past the shoulders",6:"a clean bob cut",7:"a close buzz cut",8:"flowing, wavy hair",9:"a neat topknot"},se={0:"jet black",1:"espresso brown",2:"walnut",3:"honey blonde",4:"copper red",5:"silver",6:"charcoal",7:"burgundy",8:"strawberry",9:"ginger"},ce={0:"",1:"a beauty mark",2:"round glasses",3:"rectangular glasses",4:"a dangling earring",5:"a headband",6:"freckles",7:"stud earrings",8:"aviator sunglasses",9:"a band-aid"},Re={0:"rose",1:"olive",2:"sage",3:"fern",4:"mint",5:"ocean",6:"sky",7:"lavender",8:"orchid",9:"blush"};function q(r,e){let t=N(r),{includeBackground:n=!0,format:a="paragraph",perspective:o="third",name:s}=e??{};return a==="structured"?kr(t,n):a==="compact"?wr(t):Cr(t,o,s,n)}function Cr(r,e,t,n){let a=[],o=R(r),s=e==="first"?t?`I'm ${t}. I have`:"I have":t?`${t} has`:"This SolFace has",c=e==="first"?"I'm":"They're";a.push(`${s} a squircle face with ${ne[r.skinColor]??"warm"} skin`);let i=ie[r.eyeStyle]??"round",d=ae[r.eyeColor]??"dark";a.push(`${i} ${d} eyes`);let h=ve[r.eyebrows];h&&a.push(`${h} eyebrows`);let l=le[r.hairStyle]??"",x=se[r.hairColor]??"";r.hairStyle===0?a.push(e==="first"?"and am bald":"and is bald"):l.startsWith("a ")?a.push(`and a ${x} ${l.slice(2)}`):a.push(`and ${x} ${l}`);let p=a[0];a.length>2?p+=", "+a.slice(1,-1).join(", ")+", "+a[a.length-1]:a.length===2&&(p+=" and "+a[1]),p+=".";let S=Fe[r.nose];if(S){let m=e==="first"?"I have":(t??"They")+(t?" has":" have");p+=` ${m} ${S}.`}let b=ce[o];b&&(p+=` ${c} wearing ${b}.`);let y=oe[r.mouth]??"a smile",O=e==="first"?"I have":(t??"They")+(t?" has":" have");if(p+=` ${O} ${y}.`,n){let m=Re[r.bgColor]??"colorful";p+=` The background is ${m}.`}return p}function kr(r,e){let t=R(r),n=["Face: squircle",`Skin: ${ne[r.skinColor]??"warm"}`,`Eyes: ${ie[r.eyeStyle]??"round"}, ${ae[r.eyeColor]??"dark"}`,`Eyebrows: ${ve[r.eyebrows]??"wispy"}`],a=Fe[r.nose];if(a&&n.push(`Nose: ${a.replace(/^a /,"")}`),n.push(`Mouth: ${oe[r.mouth]??"smile"}`),r.hairStyle===0)n.push("Hair: bald");else{let s=le[r.hairStyle]??"",c=se[r.hairColor]??"";n.push(`Hair: ${c} ${s.startsWith("a ")?s.slice(2):s}`)}let o=ce[t];return o&&n.push(`Accessory: ${o}`),e&&n.push(`Background: ${Re[r.bgColor]??"colorful"}`),n.join(`
2
+ `)}function wr(r){let e=R(r),t=[];if(t.push("squircle face"),t.push(`${ne[r.skinColor]??"warm"} skin`),t.push(`${ae[r.eyeColor]??"dark"} ${ie[r.eyeStyle]??"round"} eyes`),r.hairStyle===0)t.push("bald");else{let a=le[r.hairStyle]??"hair",o=a.includes(",")?a.replace(/.*,\s*/,""):a,s=se[r.hairColor]??"";t.push(`${s} ${o.startsWith("a ")?o.slice(2):o}`)}let n=ce[e];return n&&t.push(n),t.push((oe[r.mouth]??"smiling").replace(/^a /,"")),t.join(", ")}function de(r){return`SolFace avatar: ${q(r,{format:"compact",includeBackground:!1})}`}function Oe(r,e){let t=q(r,{perspective:"first",name:e,includeBackground:!1,format:"paragraph"});return`My visual identity is a SolFace avatar (ID: ${(Tr(r)>>>0).toString(16).padStart(8,"0")}) derived from my wallet address. ${t} This appearance is deterministic \u2014 anyone who looks up my wallet will see the same face.`}function Tr(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}var Mr={},Pr={bgColors:["#1a1b23","#1e1428","#0a1e38","#1b2838","#201028","#141a28","#18122a","#1a2020","#221822","#1e1020"],eyeWhiteColor:"#d8d0c8",bgOpacity:1,bgRadius:4,border:{color:"#333340",width:.5}},Br={bgColors:["#f5e8ea","#f0f0d8","#e4f0e6","#d8f0e8","#e0ece8","#dce8f0","#e0e4f0","#e0d8f0","#f0e0ee","#f0d8e4"],bgOpacity:1,bgRadius:8},vr={skinColors:["#e8e8e8","#d4d4d4","#c0c0c0","#a8a8a8","#909090","#787878","#606060","#505050","#404040","#303030"],eyeColors:["#333","#555","#777","#999","#bbb"],hairColors:["#1a1a1a","#2a2a2a","#404040","#555","#707070","#888","#a0a0a0","#b8b8b8","#d0d0d0","#e0e0e0"],bgColors:["#e8e0e0","#e0e0d0","#d8e0d8","#d0e0d8","#d8e0e0","#d0d8e0","#d4d4e0","#d4d0e0","#e0d8e0","#e0d0d8"],mouthColor:"#666",eyebrowColor:"#555",accessoryColor:"#777",eyeWhiteColor:"#f0f0f0",bgOpacity:.5,bgRadius:4},Fr={flat:!0},Rr={flat:!0,bgOpacity:0},Or={bgOpacity:.15,bgRadius:16,_glass:!0,_blurRadius:12,_saturate:1.8,_tintOpacity:.12,_tintColor:"rgba(255,255,255,1)",_borderOpacity:.25,_borderWidth:1,_borderColor:"rgba(255,255,255,0.25)",_specularOpacity:.25,_specularColor:"rgba(255,255,255,1)",_specularEnd:50,_lightAngle:135,_rimIntensity:.08,_shadow:"0 8px 32px rgba(0,0,0,0.12)"},Ar={bgOpacity:.2,bgRadius:16,_glass:!0,_blurRadius:16,_saturate:2,_tintOpacity:.08,_tintColor:"rgba(0,0,0,1)",_borderOpacity:.15,_borderWidth:1,_borderColor:"rgba(255,255,255,0.15)",_specularOpacity:.15,_specularColor:"rgba(255,255,255,1)",_specularEnd:40,_lightAngle:135,_rimIntensity:.05,_shadow:"0 8px 32px rgba(0,0,0,0.25)"},Lr={flat:!0,_pixel:!0,_pixelDensity:16,_pixelRounded:!0,_pixelOutline:!0,_pixelOutlineColor:"#222",_pixelOutlineWidth:2},Er={flat:!0,_pixel:!0,_pixelDensity:12,_pixelRounded:!1,_pixelOutline:!0,_pixelOutlineColor:"#000",_pixelOutlineWidth:2,_pixelScanlines:!0,_pixelScanlineOpacity:.1,_pixelScanlineSpacing:2,_pixelShadow:!0,_pixelShadowColor:"rgba(0,0,0,0.4)",_pixelShadowOffset:3},Dr={flat:!0,_pixel:!0,_pixelDensity:24,_pixelRounded:!0,_pixelOutline:!1},z={default:Mr,dark:Pr,light:Br,mono:vr,flat:Fr,transparent:Rr,glass:Or,glassDark:Ar,pixel:Lr,pixelRetro:Er,pixelClean:Dr};function Ae(r,e){let t=z[r];return t?e?{...t,...e}:t:e??{}}function Le(r,e,t){let n=typeof r=="string"?document.querySelector(r):r;return n?(n.innerHTML=V(e,t),()=>{n.innerHTML=""}):(console.warn(`[SolFaces] Element not found: ${r}`),()=>{})}function _r(r,e,t){let n=typeof r=="string"?document.querySelector(r):r;n&&(n.src=te(e,t),n.alt=de(e))}function ue(r=document){r.querySelectorAll("[data-solface]").forEach(t=>{let n=t.getAttribute("data-solface");if(!n)return;let a=parseInt(t.getAttribute("data-solface-size")??"64",10),o=t.getAttribute("data-solface-blink")==="true",s=t.getAttribute("data-solface-theme"),c=t.getAttribute("data-solface-flat")==="true",i=t.getAttribute("data-solface-detail"),d=s&&s in z?z[s]:void 0;c&&d?d={...d,flat:!0}:c&&(d={flat:!0}),Le(t,n,{size:a,enableBlink:o,theme:d,detail:i??"auto"})})}var Ee={generateTraits:N,deriveName:ee,deriveIdentity:U,getTraitLabels:Se,traitHash:be,resolveTheme:$e,effectiveAccessory:R,renderSVG:V,renderDataURI:te,renderBase64:Be,describe:q,altText:de,agentPrompt:Oe,mount:Le,setImg:_r,autoInit:ue,themes:z,getTheme:Ae,colors:{hexToRgb:T,rgbToHex:H,darken:w,lighten:B,blend:C,luminance:re,deriveSkinColors:K}};typeof window<"u"&&(window.SolFaces=Ee);typeof document<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.querySelector("[data-solface]")&&ue()}):document.querySelector("[data-solface]")&&ue());var Gr=Ee;return Ke(Hr);})();
3
3
  //# sourceMappingURL=solfaces.cdn.global.js.map