solfaces 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +134 -14
- package/SKILL.md +171 -0
- package/dist/agent/index.cjs +14 -13
- package/dist/agent/index.js +4 -3
- package/dist/agent/mcp-server.cjs +2240 -10
- package/dist/{chunk-TTGJZEPV.js → chunk-77SPWQU5.js} +43 -12
- package/dist/chunk-77SPWQU5.js.map +1 -0
- package/dist/{chunk-JS527VKL.js → chunk-CQWXUU7P.js} +6 -5
- package/dist/chunk-CQWXUU7P.js.map +1 -0
- package/dist/{chunk-46ZEFA6R.cjs → chunk-CXRVPOTI.cjs} +10 -9
- package/dist/chunk-CXRVPOTI.cjs.map +1 -0
- package/dist/{chunk-23XJ5VDX.cjs → chunk-F244Q4KC.cjs} +47 -16
- package/dist/chunk-F244Q4KC.cjs.map +1 -0
- package/dist/{chunk-6UWILY7E.cjs → chunk-HVPGR6G5.cjs} +2 -2
- package/dist/{chunk-6UWILY7E.cjs.map → chunk-HVPGR6G5.cjs.map} +1 -1
- package/dist/{chunk-LRHYF5QN.js → chunk-MGP7F65H.js} +3 -3
- package/dist/{chunk-LRHYF5QN.js.map → chunk-MGP7F65H.js.map} +1 -1
- package/dist/chunk-R3MC2AJZ.cjs +2247 -0
- package/dist/chunk-R3MC2AJZ.cjs.map +1 -0
- package/dist/{chunk-HCEE4K4T.js → chunk-SWML743U.js} +2 -2
- package/dist/{chunk-HCEE4K4T.js.map → chunk-SWML743U.js.map} +1 -1
- package/dist/chunk-SX3FQDKM.js +2238 -0
- package/dist/chunk-SX3FQDKM.js.map +1 -0
- package/dist/{chunk-546TBMAR.cjs → chunk-WTCXTXTV.cjs} +6 -6
- package/dist/{chunk-546TBMAR.cjs.map → chunk-WTCXTXTV.cjs.map} +1 -1
- package/dist/constants-Bi5uTRp5.d.cts +17 -0
- package/dist/constants-Bi5uTRp5.d.ts +17 -0
- package/dist/core/index.cjs +31 -31
- package/dist/core/index.js +3 -3
- package/dist/index.cjs +63 -34
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -4
- package/dist/names/index.cjs +40 -0
- package/dist/names/index.cjs.map +1 -0
- package/dist/names/index.d.cts +36 -0
- package/dist/names/index.d.ts +36 -0
- package/dist/names/index.js +3 -0
- package/dist/names/index.js.map +1 -0
- package/dist/react/index.cjs +45 -22
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +15 -2
- package/dist/react/index.d.ts +15 -2
- package/dist/react/index.js +30 -8
- package/dist/react/index.js.map +1 -1
- package/dist/solfaces.cdn.global.js +2 -2
- package/dist/solfaces.cdn.global.js.map +1 -1
- package/dist/vanilla/index.cjs +5 -5
- package/dist/vanilla/index.js +2 -2
- package/package.json +22 -5
- package/python/solfaces.py +274 -3
- package/reference/integrations.md +166 -0
- package/reference/react.md +108 -0
- package/reference/themes.md +124 -0
- package/dist/chunk-23XJ5VDX.cjs.map +0 -1
- package/dist/chunk-46ZEFA6R.cjs.map +0 -1
- package/dist/chunk-JS527VKL.js.map +0 -1
- package/dist/chunk-TTGJZEPV.js.map +0 -1
- package/skill.md +0 -608
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react/SolFace.tsx"],"names":[],"mappings":";;;;AA8CA,SAAS,KAAK,GAAA,EAAqB;AACjC,EAAA,IAAI,IAAA,GAAO,IAAA;AACX,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA,EAAA,EAAK;AACnC,IAAA,IAAA,GAAA,CAAS,QAAQ,CAAA,IAAK,IAAA,GAAO,GAAA,CAAI,UAAA,CAAW,CAAC,CAAA,GAAK,CAAA;AAAA,EACpD;AACA,EAAA,OAAO,IAAA,KAAS,CAAA;AAClB;AAIA,SAAS,QAAA,CAAS,EAAE,EAAA,EAAI,EAAA,EAAI,MAAK,EAA8C;AAC7E,EAAA,MAAM,IAAA,GAAO,IAAA,GAAO,cAAA,GAAiB,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA;AAC/C,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAA,EAAY,CAAA;AAAA,IAC7E,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAA,EAAY,CAAA;AAAA,IAC7E,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAA,EAAY,CAAA;AAAA,IAC7E;AAAS,MAAA,OAAO,IAAA;AAAA;AAEpB;AAIA,SAAS,IAAA,CAAK,EAAE,OAAA,EAAS,SAAA,EAAU,EAA2C;AAC5E,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,oBACtD,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,SAAA,EAAW,SAAQ,KAAA,EAAM,CAAA;AAAA,oBAC1E,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,oBACtD,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,SAAA,EAAW,SAAQ,KAAA,EAAM;AAAA,GAAA,EAC5E,CAAA;AAEJ;AAIA,SAAS,YAAA,CAAa,EAAE,EAAA,EAAG,EAAmB;AAC5C,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,OAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,IAAA,EAAM,CAAA,KAAA,EAAQ,EAAE,CAAA,KAAA,CAAA,EAAS,CAAA;AAAA,wBACnF,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,MAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,MAAK,IAAA,EAAM,CAAA,KAAA,EAAQ,EAAE,CAAA,KAAA,CAAA,EAAS,CAAA;AAAA,oBACpF,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA,EAAO,CAAA;AAAA,oBAChE,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA,EAAO,CAAA;AAAA,wBAC/D,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,QAAO,cAAA,EAAe,WAAA,EAAY,OAAM,OAAA,EAAQ,MAAA,EAAO,eAAc,OAAA,EAAQ;AAAA,GAAA,EACrH,CAAA;AAEJ;AAIA,SAAS,UAAU,EAAE,EAAA,EAAI,IAAI,OAAA,EAAS,IAAA,EAAM,MAAK,EAA6E;AAC5H,EAAA,MAAM,IAAA,GAAO,IAAA,GAAO,OAAA,GAAU,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA;AACxC,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AAAG,MAAA,OAAO,IAAA;AAAA,IACf,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qEAAA,EAAsE,IAAA,EAAY,CAAA;AAAA,IACzG,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAC,OAAE,IAAA,EACD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,4BAC7B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,4BAC7B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,4BAC7B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI;AAAA,OAAA,EAChC,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAC,OAAE,IAAA,EACD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,oEAAA,EAAqE,CAAA;AAAA,wBAC7E,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,kCAAA,EAAmC;AAAA,OAAA,EAC7C,CAAA;AAAA,IAEJ,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAA,EAAY,CAAA;AAAA,IACnE,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oEAAA,EAAqE,IAAA,EAAY,CAAA;AAAA,IACxG,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAC,OAAE,IAAA,EACD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,oEAAA,EAAqE,CAAA;AAAA,wBAC7E,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,wBACjD,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI;AAAA,OAAA,EACnD,CAAA;AAAA,IAEJ,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,GAAA,GAAM,WAAA,CAAY,OAAA,EAAS,IAAI,CAAA;AACrC,MAAA,2BAAQ,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,MAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,KAAI,IAAA,EAAM,OAAA,EAAS,SAAS,GAAA,EAAK,CAAA;AAAA,IAChG;AAAA,IACA,KAAK,CAAA;AACH,MAAA,4BACG,GAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oEAAA,EAAqE,IAAA,EAAY,CAAA;AAAA,wBACzF,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qBAAA,EAAsB,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,IAAA,EAAM,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,wBAC9F,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qBAAA,EAAsB,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,IAAA,EAAM,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EAChG,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAC,OAAE,IAAA,EACD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,qEAAA,EAAsE,CAAA;AAAA,wBAC9E,GAAA,CAAC,aAAQ,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI;AAAA,OAAA,EACxC,CAAA;AAAA,IAEJ;AAAS,MAAA,OAAO,IAAA;AAAA;AAEpB;AAIA,SAAS,KAAK,EAAE,EAAA,EAAI,QAAQ,QAAA,EAAU,QAAA,EAAU,MAAK,EAAsF;AACzI,EAAA,MAAM,EAAA,GAAK,EAAA,EAAI,EAAA,GAAK,EAAA,EAAI,CAAA,GAAI,EAAA;AAE5B,EAAA,MAAM,OAAO,IAAA,IAAQ,EAAA,KAAO,CAAA,IAAK,EAAA,KAAO,oBACtC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,OAAA,EAAQ,KAAA,EAAM,CAAA;AAAA,oBACrI,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,OAAA,EAAQ,KAAA,EAAM;AAAA,GAAA,EACvI,CAAA,GACE,IAAA;AAEJ,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,GAAA,EAAI,MAAM,QAAA,EAAU,CAAA;AAAA,wBAC7C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,wBAC7E,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC7C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QAC5E;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,GAAA,EAAI,MAAM,MAAA,EAAQ,CAAA;AAAA,wBAC3C,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ;AAAA,OAAA,EAC7C,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC1D,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,wBAC/E,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC1D,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QAC9E;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,GAAA,EAAI,MAAM,QAAA,EAAU,CAAA;AAAA,wBAC7C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,wBAC7E,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC7C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QAC5E;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC5D,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAChD,IAAA,wBAAS,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,UAAU,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,wBAC/H,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC5D,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAChD,IAAA,wBAAS,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,UAAU,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,QAC9H;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,IAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,wBAC/H,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EACjI,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,KAAA,EAAM,MAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,wBACjD,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QACjE,wBACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAK,EAAA,EAAI,EAAA,GAAK,KAAK,EAAA,EAAI,CAAA,GAAI,KAAK,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,MAAA,EAAQ,QAAQ,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,8BAC/G,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,QAAQ,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ;AAAA,SAAA,EACpH,CAAA;AAAA,wBAEF,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,wBACjD,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QACjE,wBACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAK,EAAA,EAAI,EAAA,GAAK,KAAK,EAAA,EAAI,CAAA,GAAI,KAAK,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,MAAA,EAAQ,QAAQ,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,8BAC/G,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,QAAQ,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ;AAAA,SAAA,EACpH,CAAA;AAAA,QAED;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC1D,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,wBAC9D,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC1D,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAC7D;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ;AACE,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,KAAA,EAAM,MAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,wBACjD,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAChD;AAAA,OAAA,EACH,CAAA;AAAA;AAGR;AAIA,SAAS,QAAA,CAAS,EAAE,EAAA,EAAI,SAAA,EAAU,EAAsC;AACtE,EAAA,MAAM,EAAA,GAAK,EAAA,EAAI,EAAA,GAAK,EAAA,EAAI,CAAA,GAAI,EAAA;AAC5B,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAK,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,EAAA,EAAI,GAAG,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,WAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,4BAC5G,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,IAAI,CAAA,EAAG,MAAA,EAAQ,WAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ;AAAA,OAAA,EAC/G,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAK,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,GAAG,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,GAAG,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,4BAC1G,MAAA,EAAA,EAAK,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,MAAA,EAAQ,WAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ;AAAA,OAAA,EAC7G,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,wBACpJ,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EACtJ,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,wBACxI,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EAC1I,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAQ,CAAA,EAAG,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,CAAA;AAAA,wBACpK,GAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAQ,CAAA,EAAG,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EAAQ;AAAA,OAAA,EACtK,CAAA;AAAA,IAEJ;AAAS,MAAA,OAAO,IAAA;AAAA;AAEpB;AAIA,SAAS,IAAA,CAAK,EAAE,EAAA,EAAI,QAAA,EAAS,EAAqC;AAChE,EAAA,MAAM,EAAA,GAAK,IAAI,CAAA,GAAI,EAAA;AACnB,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,MAAA,EAAO,CAAA;AAAA,IACtF,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAQ,EAAA,EAAI,CAAA,EAAG,GAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,KAAA,EAAM,CAAA;AAAA,IAC5E,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,IACpK,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,KAAA,EAAM,CAAA;AAAA,wBACnE,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,KAAA,EAAM;AAAA,OAAA,EACrE,CAAA;AAAA,IAEJ;AAAS,MAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,MAAA,EAAO,CAAA;AAAA;AAE3F;AAIA,SAAS,KAAA,CAAM,EAAE,EAAA,EAAI,QAAA,EAAU,QAAO,EAAsD;AAC1F,EAAA,MAAM,EAAA,GAAK,IAAI,CAAA,GAAI,EAAA;AACnB,EAAA,MAAM,QAAA,GAAW,SAAS,SAAA,GAAY,SAAA;AACtC,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,IAChJ,KAAK,CAAA;AAAG,MAAA,2BAAQ,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,MAAA,EAAQ,UAAU,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,IAC7H,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,IAChJ,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,GAAA,EAAI,IAAA,EAAM,QAAA,EAAU,SAAQ,KAAA,EAAM,CAAA;AAAA,IACzF,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,IAC9J,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,MAAM,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,GAAA,EAAI,CAAA;AAAA,4BAC5G,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,UAAU,WAAA,EAAY,KAAA,EAAM,SAAQ,KAAA,EAAM;AAAA,OAAA,EAC5G,CAAA;AAAA,IAEJ,KAAK,CAAA;AAAG,MAAA,2BAAQ,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,MAAA,EAAQ,UAAU,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,IAC7H,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,GAAA,EAAI,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,MAAA,EAAO,CAAA;AAAA,wBAC3E,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EACrI,CAAA;AAAA,IAEJ;AAAS,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA;AAErJ;AAIA,SAAS,UAAU,EAAE,EAAA,EAAI,UAAU,YAAA,EAAc,YAAA,EAAc,eAAc,EAE1E;AACD,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AAAG,MAAA,OAAO,IAAA;AAAA,IACf,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,SAAA,EAAU,CAAA;AAAA,IAC9D,KAAK,CAAA;AACH,MAAA,4BACG,GAAA,EAAA,EAAE,IAAA,EAAK,QAAO,MAAA,EAAQ,YAAA,EAAc,aAAY,GAAA,EAC/C,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,wBAChC,GAAA,CAAC,UAAK,EAAA,EAAG,MAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,MAAA,EAAO,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBAC1C,GAAA,CAAC,UAAK,EAAA,EAAG,MAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACxC,GAAA,CAAC,UAAK,EAAA,EAAG,MAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA,OAAA,EAC1C,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,4BACG,GAAA,EAAA,EAAE,IAAA,EAAK,QAAO,MAAA,EAAQ,YAAA,EAAc,aAAY,GAAA,EAC/C,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,OAAM,IAAA,EAAK,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,CAAA;AAAA,wBACnD,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,CAAA;AAAA,wBACnD,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACtC,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACtC,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA,OAAA,EACxC,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,MAAK,CAAA,EAAE,KAAA,EAAM,MAAM,YAAA,EAAc,CAAA;AAAA,wBACpD,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,YAAA,EAAc,OAAA,EAAQ,KAAA,EAAM;AAAA,OAAA,EAClE,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,GAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,OAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,aAAA,EAAe,SAAQ,MAAA,EAAO,CAAA;AAAA,IAClG,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,SAAA,EAAU,SAAQ,MAAA,EACxB,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,MAAA,EAAO,GAAE,KAAA,EAAM,CAAA;AAAA,4BACjC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,MAAA,EAAO,GAAE,KAAA,EAAM;AAAA,OAAA,EACpC,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,MAAK,CAAA,EAAE,KAAA,EAAM,MAAM,YAAA,EAAc,CAAA;AAAA,wBACpD,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,YAAA,EAAc;AAAA,OAAA,EACtD,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,4BACG,GAAA,EAAA,EAAE,IAAA,EAAK,QAAO,MAAA,EAAQ,YAAA,EAAc,aAAY,KAAA,EAC/C,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAK,CAAA,EAAE,8DAAA,EAA+D,IAAA,EAAM,YAAA,EAAc,aAAY,MAAA,EAAO,CAAA;AAAA,4BAC7G,MAAA,EAAA,EAAK,CAAA,EAAE,gEAA+D,IAAA,EAAM,YAAA,EAAc,aAAY,MAAA,EAAO,CAAA;AAAA,wBAC9G,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACtC,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACtC,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA,OAAA,EACxC,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,4BACG,GAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,MAAK,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,IAAA,EAAK,SAAA,EAAU,WAAU,mBAAA,EAAoB,CAAA;AAAA,wBAC7F,GAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,MAAK,MAAA,EAAO,SAAA,EAAU,WAAA,EAAY,KAAA,EAAM,WAAU,mBAAA,EAAoB,CAAA;AAAA,wBACvG,GAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,MAAK,MAAA,EAAO,SAAA,EAAU,WAAA,EAAY,KAAA,EAAM,WAAU,mBAAA,EAAoB,CAAA;AAAA,wBACvG,GAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,MAAK,MAAA,EAAO,SAAA,EAAU,WAAA,EAAY,KAAA,EAAM,WAAU,mBAAA,EAAoB;AAAA,OAAA,EACzG,CAAA;AAAA,IAEJ;AAAS,MAAA,OAAO,IAAA;AAAA;AAEpB;AAIA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,IAAA,EAAM,OAAM,EAA6D;AAC1G,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,IAAiB,EAAA;AACvC,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,IAAiB,IAAA;AACvC,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,IAAiB,KAAA;AACvC,EAAA,MAAM,YAAA,GAAe,MAAM,kBAAA,IAAsB,MAAA;AACjD,EAAA,MAAM,YAAA,GAAe,MAAM,kBAAA,IAAsB,CAAA;AACjD,EAAA,MAAM,SAAA,GAAY,MAAM,eAAA,IAAmB,KAAA;AAC3C,EAAA,MAAM,eAAA,GAAkB,MAAM,qBAAA,IAAyB,IAAA;AACvD,EAAA,MAAM,eAAA,GAAkB,MAAM,qBAAA,IAAyB,CAAA;AACvD,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,IAAc,KAAA;AACjC,EAAA,MAAM,WAAA,GAAc,MAAM,iBAAA,IAAqB,IAAA;AAC/C,EAAA,MAAM,SAAA,GAAY,MAAM,eAAA,IAAmB,MAAA;AAC3C,EAAA,MAAM,MAAA,GAAS,MAAM,YAAA,IAAgB,KAAA;AACrC,EAAA,MAAM,WAAA,GAAc,MAAM,iBAAA,IAAqB,iBAAA;AAC/C,EAAA,MAAM,YAAA,GAAe,MAAM,kBAAA,IAAsB,CAAA;AACjD,EAAA,MAAM,WAAW,KAAA,CAAM,cAAA;AACvB,EAAA,MAAM,aAAa,KAAA,CAAM,gBAAA;AACzB,EAAA,MAAM,aAAa,KAAA,CAAM,gBAAA;AAEzB,EAAA,MAAM,OAAA,GAAU,CAAA,iCAAA,EAAoC,kBAAA,CAAmB,SAAS,CAAC,CAAA,CAAA;AAGjF,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,IAAI,MAAA,UAAgB,IAAA,CAAK,CAAA,YAAA,EAAe,YAAY,CAAA,GAAA,EAAM,YAAY,CAAA,OAAA,EAAU,WAAW,CAAA,CAAA,CAAG,CAAA;AAC9F,EAAA,IAAI,aAAa,MAAA,EAAW,OAAA,CAAQ,IAAA,CAAK,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAA,CAAG,CAAA;AAChE,EAAA,IAAI,eAAe,MAAA,EAAW,OAAA,CAAQ,IAAA,CAAK,CAAA,SAAA,EAAY,UAAU,CAAA,CAAA,CAAG,CAAA;AACpE,EAAA,IAAI,eAAe,MAAA,EAAW,OAAA,CAAQ,IAAA,CAAK,CAAA,WAAA,EAAc,UAAU,CAAA,CAAA,CAAG,CAAA;AAEtE,EAAA,MAAM,cAAA,GAAgC;AAAA,IACpC,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,IAAA;AAAA,IACP,MAAA,EAAQ,IAAA;AAAA,IACR,OAAA,EAAS,cAAA;AAAA,IACT,GAAI,OAAA,CAAQ,MAAA,GAAS,EAAE,MAAA,EAAQ,QAAQ,IAAA,CAAK,GAAG,CAAA,EAAE,GAAI;AAAC,GACxD;AAEA,EAAA,MAAM,QAAA,GAA0B;AAAA,IAC9B,KAAA,EAAO,IAAA;AAAA,IACP,MAAA,EAAQ,IAAA;AAAA,IACR,cAAA,EAAgB,WAAA;AAAA,IAChB,YAAA,EAAc,UAAU,KAAA,GAAQ,CAAA;AAAA,IAChC,OAAA,EAAS,OAAA;AAAA,IACT,QAAQ,OAAA,GAAU,CAAA,EAAG,YAAY,CAAA,SAAA,EAAY,YAAY,CAAA,CAAA,GAAK;AAAA,GAChE;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,cAAA,EACV,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,QAAQ,OAAA,EAAS,KAAA,EAAO,QAAA,EAAU,GAAA,EAAI,EAAA,EAAG,CAAA;AAAA,IAC3E,SAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,UAAA,EAAY,CAAA,yDAAA,EAA4D,eAAe,CAAA,eAAA,EAAkB,eAAe,CAAA,EAAA,EAAK,eAAe,CAAA,eAAA,EAAkB,eAAe,CAAA,EAAA,EAAK,eAAA,GAAkB,CAAC,CAAA,GAAA,CAAA;AAAA,MACrM,aAAA,EAAe,MAAA;AAAA,MACf,YAAA,EAAc,UAAU,KAAA,GAAQ;AAAA,KAClC,EAAG,CAAA;AAAA,IAEJ,IAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,gBAAgB,CAAA,EAAG,IAAA,GAAO,OAAO,CAAA,GAAA,EAAM,OAAO,OAAO,CAAA,EAAA,CAAA;AAAA,MACrD,eAAA,EAAiB,CAAA,gBAAA,EAAmB,SAAS,CAAA,CAAA,EAAI,WAAW,CAAA,cAAA,EAAiB,WAAW,CAAA,0BAAA,EAA6B,SAAS,CAAA,CAAA,EAAI,WAAW,CAAA,cAAA,EAAiB,WAAW,CAAA,CAAA,CAAA;AAAA,MACzK,aAAA,EAAe,MAAA;AAAA,MACf,YAAA,EAAc,UAAU,KAAA,GAAQ;AAAA,KAClC,EAAG;AAAA,GAAA,EAEP,CAAA;AAEJ;AAIA,SAAS,YAAA,CAAa,EAAE,QAAA,EAAU,IAAA,EAAM,OAAM,EAAqE;AACjH,EAAA,MAAM,UAAA,GAAa,MAAM,WAAA,IAAe,EAAA;AACxC,EAAA,MAAM,QAAA,GAAW,MAAM,SAAA,IAAa,GAAA;AACpC,EAAA,MAAM,WAAA,GAAc,MAAM,YAAA,IAAgB,IAAA;AAC1C,EAAA,MAAM,SAAA,GAAY,MAAM,UAAA,IAAc,qBAAA;AACtC,EAAA,MAAM,aAAA,GAAgB,MAAM,cAAA,IAAkB,IAAA;AAC9C,EAAA,MAAM,WAAA,GAAc,MAAM,YAAA,IAAgB,CAAA;AAC1C,EAAA,MAAM,WAAA,GAAc,KAAA,CAAM,YAAA,IAAgB,CAAA,iBAAA,EAAoB,aAAa,CAAA,CAAA,CAAA;AAC3E,EAAA,MAAM,eAAA,GAAkB,MAAM,gBAAA,IAAoB,IAAA;AAClD,EAAA,MAAM,aAAA,GAAgB,MAAM,cAAA,IAAkB,qBAAA;AAC9C,EAAA,MAAM,WAAA,GAAc,MAAM,YAAA,IAAgB,EAAA;AAC1C,EAAA,MAAM,UAAA,GAAa,MAAM,WAAA,IAAe,GAAA;AACxC,EAAA,MAAM,YAAA,GAAe,MAAM,aAAA,IAAiB,IAAA;AAC5C,EAAA,MAAM,SAAA,GAAY,MAAM,OAAA,IAAW,6BAAA;AAEnC,EAAA,MAAM,QAAA,GAAW,MAAM,QAAA,IAAY,EAAA;AAEnC,EAAA,MAAM,cAAA,GAAgC;AAAA,IACpC,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,IAAA;AAAA,IACP,MAAA,EAAQ,IAAA;AAAA,IACR,OAAA,EAAS,cAAA;AAAA,IACT,YAAA,EAAc,QAAA;AAAA,IACd,QAAA,EAAU,QAAA;AAAA,IACV,cAAA,EAAgB,CAAA,KAAA,EAAQ,UAAU,CAAA,aAAA,EAAgB,QAAQ,CAAA,CAAA,CAAA;AAAA,IAC1D,oBAAA,EAAsB,CAAA,KAAA,EAAQ,UAAU,CAAA,aAAA,EAAgB,QAAQ,CAAA,CAAA,CAAA;AAAA,IAChE,MAAA,EAAQ,CAAA,EAAG,WAAW,CAAA,SAAA,EAAY,WAAW,CAAA,CAAA;AAAA,IAC7C,SAAA,EAAW;AAAA,GACb;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,cAAA,EACV,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,eAAA,EAAiB,SAAA;AAAA,MAAW,OAAA,EAAS,WAAA;AAAA,MACrC,YAAA,EAAc,QAAA;AAAA,MAAU,aAAA,EAAe;AAAA,KACzC,EAAG,CAAA;AAAA,oBACH,GAAA,CAAC,SAAI,KAAA,EAAO,EAAE,UAAU,UAAA,EAAY,MAAA,EAAQ,CAAA,EAAE,EAC3C,QAAA,EACH,CAAA;AAAA,oBACA,GAAA,CAAC,SAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,UAAA,EAAY,CAAA,gBAAA,EAAmB,UAAU,CAAA,KAAA,EAAQ,aAAA,CAAc,OAAA,CAAQ,IAAA,EAAM,CAAA,EAAG,eAAe,CAAA,CAAA,CAAG,CAAC,CAAA,iBAAA,EAAoB,WAAW,CAAA,EAAA,CAAA;AAAA,MAClI,YAAA,EAAc,QAAA;AAAA,MAAU,aAAA,EAAe;AAAA,KACzC,EAAG,CAAA;AAAA,oBACH,GAAA,CAAC,SAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,YAAA,EAAc,QAAA;AAAA,MACd,SAAA,EAAW,oCAAoC,YAAY,CAAA,CAAA,CAAA;AAAA,MAC3D,aAAA,EAAe;AAAA,KACjB,EAAG;AAAA,GAAA,EACL,CAAA;AAEJ;AAIO,SAAS,OAAA,CAAQ;AAAA,EACtB,aAAA;AAAA,EACA,IAAA,GAAO,EAAA;AAAA,EACP,WAAA,GAAc,KAAA;AAAA,EACd,KAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,MAAA,EAAQ,UAAA;AAAA,EACR,SAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,MAAA,GAAS,OAAA;AAAA,IACb,MAAM,cAAA,CAAe,aAAA,EAAe,cAAc,CAAA;AAAA,IAClD,CAAC,eAAe,cAAc;AAAA,GAChC;AAEA,EAAA,MAAM,YAAY,UAAA,IAAc,MAAA;AAChC,EAAA,MAAM,IAAA,GAAO,SAAA,KAAc,MAAA,IAAW,SAAA,KAAc,UAAU,IAAA,IAAQ,EAAA;AACtE,EAAA,MAAM,IAAA,GAAO,OAAO,IAAA,IAAQ,KAAA;AAE5B,EAAA,MAAM,UAAA,GAAa,OAAO,UAAA,IAAc,WAAA;AACxC,EAAA,MAAM,SAAA,GAAY,OAAO,SAAA,IAAa,UAAA;AACtC,EAAA,MAAM,UAAA,GAAa,OAAO,UAAA,IAAc,WAAA;AACxC,EAAA,MAAM,QAAA,GAAW,OAAO,QAAA,IAAY,SAAA;AAEpC,EAAA,MAAM,OAAO,cAAA,EAAgB,IAAA,IAAQ,WAAW,MAAA,CAAO,SAAA,GAAY,WAAW,MAAM,CAAA;AACpF,EAAA,MAAM,SAAS,cAAA,EAAgB,IAAA,IAAQ,UAAU,MAAA,CAAO,QAAA,GAAW,UAAU,MAAM,CAAA;AACnF,EAAA,MAAM,UAAU,cAAA,EAAgB,IAAA,IAAQ,WAAW,MAAA,CAAO,SAAA,GAAY,WAAW,MAAM,CAAA;AACvF,EAAA,MAAM,QAAQ,cAAA,EAAgB,EAAA,IAAM,SAAS,MAAA,CAAO,OAAA,GAAU,SAAS,MAAM,CAAA;AAE7E,EAAA,MAAM,OAAA,GAAU,QAAQ,MAAM,gBAAA,CAAiB,IAAI,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAE5D,EAAA,MAAM,SAAA,GAAY,OAAO,SAAA,IAAa,CAAA;AACtC,EAAA,MAAM,QAAA,GAAW,OAAO,QAAA,IAAY,CAAA;AACpC,EAAA,MAAM,SAAA,GAAY,cAAA,EAAgB,OAAA,IAAW,KAAA,EAAO,gBAAgB,OAAA,CAAQ,SAAA;AAC5E,EAAA,MAAM,QAAA,GAAW,cAAA,EAAgB,IAAA,IAAQ,KAAA,EAAO,aAAa,OAAA,CAAQ,QAAA;AACrE,EAAA,MAAM,QAAA,GAAW,cAAA,EAAgB,KAAA,IAAS,KAAA,EAAO,cAAc,OAAA,CAAQ,QAAA;AACvE,EAAA,MAAM,QAAA,GAAW,cAAA,EAAgB,SAAA,IAAa,KAAA,EAAO,kBAAkB,OAAA,CAAQ,cAAA;AAC/E,EAAA,MAAM,QAAA,GAAW,cAAA,EAAgB,QAAA,IAAY,KAAA,EAAO,iBAAiB,OAAA,CAAQ,eAAA;AAC7E,EAAA,MAAM,YAAA,GAAe,OAAO,YAAA,IAAgB,SAAA;AAC5C,EAAA,MAAM,eAAe,KAAA,EAAO,YAAA,IAAgB,KAAA,CAAM,IAAA,EAAM,WAAW,GAAG,CAAA;AACtE,EAAA,MAAM,gBAAgB,KAAA,EAAO,aAAA,IAAiB,KAAA,CAAM,OAAA,EAAS,WAAW,GAAG,CAAA;AAE3E,EAAA,MAAM,EAAA,GAAK,OAAA,CAAQ,MAAM,IAAA,GAAO,IAAA,CAAK,aAAa,CAAA,CAAE,QAAA,CAAS,EAAE,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAEjF,EAAA,MAAM,YAAA,GAAe,OAAO,YAAA,IAAgB,IAAA;AAC5C,EAAA,MAAM,UAAA,GAAa,KAAA,EAAO,UAAA,IAAc,OAAA,CAAQ,UAAA;AAChD,EAAA,MAAM,YAAA,GAAe,KAAA,EAAO,YAAA,IAAgB,OAAA,CAAQ,YAAA;AAEpD,EAAA,MAAM,EAAA,GAAK,OAAO,SAAA,GAAY,EAAA;AAC9B,EAAA,MAAM,EAAA,GAAK,mBAAmB,MAAM,CAAA;AAEpC,EAAA,MAAM,YAAA,GAAe,CAAC,CAAC,WAAA;AACvB,EAAA,MAAM,gBAAgB,OAAO,WAAA,KAAgB,QAAA,GAAY,WAAA,CAAY,YAAY,CAAA,GAAK,CAAA;AACtF,EAAA,MAAM,aAAa,OAAO,WAAA,KAAgB,QAAA,GAAY,WAAA,CAAY,SAAS,CAAA,GAAK,CAAA;AAChF,EAAA,MAAM,QAAA,GAAW,UAAA,GAAa,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,CAAA,GAAM,EAAA;AAElD,EAAA,MAAM,MAAA,GAAS,IAAA,GAAO,KAAA,GAAQ,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA;AACxC,EAAA,MAAM,QAAA,GAAW,IAAA,GAAO,IAAA,GAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA;AAGzC,EAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,MAAM,QAAA,GAAW,iBAAiB,aAAA,EAAe;AAAA,MAC/C,IAAA;AAAA,MACA,OAAO,EAAE,GAAG,OAAO,MAAA,EAAQ,KAAA,EAAO,QAAQ,KAAA,EAAM;AAAA,MAChD,cAAA;AAAA,MACA,cAAA;AAAA,MACA,MAAA,EAAQ;AAAA,KACT,CAAA;AACD,IAAA,uBAAO,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAW,QAAA,EAAU,MAAY,KAAA,EAAc,CAAA;AAAA,EACtE;AAEA,EAAA,MAAM,UAAA,mBACJ,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,4BAAA;AAAA,MACN,OAAA,EAAQ,WAAA;AAAA,MACR,KAAA,EAAO,IAAA;AAAA,MACP,MAAA,EAAQ,IAAA;AAAA,MACR,SAAA;AAAA,MACA,KAAA,EAAO,EAAE,OAAA,EAAS,OAAA,EAAS,GAAG,KAAA,EAAM;AAAA,MACnC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,CAAC,IAAA,yBACC,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA,EAAM,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EACrD,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,MAAA,EAAO,IAAA,EAAK,SAAA,EAAW,QAAQ,MAAA,EAAQ,CAAA;AAAA,gCAC5C,MAAA,EAAA,EAAK,MAAA,EAAO,MAAA,EAAO,SAAA,EAAW,QAAQ,MAAA,EAAQ;AAAA,WAAA,EACjD,CAAA;AAAA,0BACA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA,EAAM,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EACrD,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,WAAW,OAAA,CAAQ,OAAA,EAAS,IAAI,CAAA,EAAG,CAAA;AAAA,4BACrD,GAAA,CAAC,UAAK,MAAA,EAAO,MAAA,EAAO,WAAW,MAAA,CAAO,OAAA,EAAS,IAAI,CAAA,EAAG;AAAA,WAAA,EACxD,CAAA;AAAA,0BACA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA,EAAM,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EACrD,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,WAAW,OAAA,CAAQ,KAAA,EAAO,IAAI,CAAA,EAAG,CAAA;AAAA,4BACnD,GAAA,CAAC,UAAK,MAAA,EAAO,MAAA,EAAO,WAAW,MAAA,CAAO,KAAA,EAAO,IAAI,CAAA,EAAG;AAAA,WAAA,EACtD,CAAA;AAAA,UACC,IAAA,IAAQ,gCACP,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,IAAA,CAAA,EAAQ,IAAG,KAAA,EAAM,EAAA,EAAG,MAAA,EAAO,CAAA,EAAE,MAAA,EACpD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,SAAA,EAAU,SAAA,EAAU,aAAa,GAAA,EAAM,CAAA;AAAA,kCACxD,MAAA,EAAA,EAAK,MAAA,EAAO,QAAO,SAAA,EAAU,SAAA,EAAU,aAAa,CAAA,EAAG;AAAA,aAAA,EAC1D,CAAA;AAAA,4BACA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,IAAA,CAAA,EAAQ,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,MAAA,EAAO,CAAA,EAAE,MAAA,EACpD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,WAAW,OAAA,CAAQ,MAAA,EAAQ,aAAa,GAAA,EAAM,CAAA;AAAA,8BAChE,GAAA,CAAC,UAAK,MAAA,EAAO,MAAA,EAAO,WAAW,OAAA,CAAQ,MAAA,EAAQ,aAAa,CAAA,EAAG;AAAA,aAAA,EACjE,CAAA;AAAA,4BACA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA,EAAM,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,CAAA,EAAE,KAAA,EACjD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,SAAA,EAAW,UAAA,EAAY,aAAa,YAAA,EAAc,CAAA;AAAA,kCACnE,MAAA,EAAA,EAAK,MAAA,EAAO,QAAO,SAAA,EAAW,UAAA,EAAY,aAAa,CAAA,EAAG;AAAA,aAAA,EAC7D,CAAA;AAAA,4BACA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA,EAAM,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,CAAA,EAAE,KAAA,EACjD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,SAAA,EAAW,UAAA,EAAY,aAAa,YAAA,EAAc,CAAA;AAAA,kCACnE,MAAA,EAAA,EAAK,MAAA,EAAO,QAAO,SAAA,EAAW,UAAA,EAAY,aAAa,CAAA,EAAG;AAAA,aAAA,EAC7D;AAAA,WAAA,EACF;AAAA,SAAA,EAEJ,CAAA;AAAA,QAGD,YAAA,wBACE,OAAA,EAAA,EAAO,QAAA,EAAA;AAAA,qBAAA,EACO,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA,WAAA,EAIZ,EAAE,CAAA;AAAA,uBAAA,EACU,EAAE,CAAA,OAAA,EAAU,aAAa,CAAA,aAAA,EAAgB,QAAQ,CAAA;AAAA;AAAA;AAAA,QAAA,CAAA,EAGhE,CAAA;AAAA,wBAGJ,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,GAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,MAAK,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAS,SAAA,EAAW,IAAI,QAAA,EAAU,CAAA;AAAA,wBAEzF,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAQ,EAAA,EAAQ,IAAA,EAAY,CAAA;AAAA,4BACrC,IAAA,EAAA,EAAK,OAAA,EAAS,QAAQ,OAAA,EAAS,SAAA,EAAW,QAAQ,SAAA,EAAW,CAAA;AAAA,wBAC9D,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,GAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,MAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,MAAM,QAAA,EAAU,CAAA;AAAA,QAE1E,QAAQ,YAAA,IAAgB,CAAC,IAAA,oBAAQ,GAAA,CAAC,gBAAa,EAAA,EAAQ,CAAA;AAAA,QAEvD,EAAA,KAAO,qBAAK,GAAA,CAAC,SAAA,EAAA,EAAU,IAAI,CAAA,EAAG,QAAA,EAAoB,YAAA,EAA4B,YAAA,EAA4B,aAAA,EAA8B,CAAA;AAAA,4BAExI,SAAA,EAAA,EAAU,EAAA,EAAQ,EAAA,EAAQ,OAAA,EAAkB,MAAY,IAAA,EAAY,CAAA;AAAA,wBAErE,GAAA,CAAC,OAAE,SAAA,EAAW,YAAA,GAAe,GAAG,EAAE,CAAA,KAAA,CAAA,GAAU,QAC1C,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAI,MAAA,CAAO,QAAA,GAAW,GAAG,MAAA,EAAgB,QAAA,EAAoB,UAAU,OAAA,CAAQ,QAAA,EAAU,MAAY,CAAA,EAC7G,CAAA;AAAA,4BAEC,QAAA,EAAA,EAAS,EAAA,EAAI,MAAA,CAAO,QAAA,GAAW,GAAG,SAAA,EAAsB,CAAA;AAAA,4BACxD,IAAA,EAAA,EAAK,EAAA,EAAI,MAAA,CAAO,IAAA,GAAO,GAAG,QAAA,EAAoB,CAAA;AAAA,wBAC/C,GAAA,CAAC,SAAM,EAAA,EAAI,MAAA,CAAO,QAAQ,CAAA,EAAG,QAAA,EAAoB,MAAA,EAAQ,OAAA,CAAQ,MAAA,EAAQ,CAAA;AAAA,QAExE,EAAA,KAAO,CAAA,IAAK,EAAA,KAAO,CAAA,oBAClB,GAAA,CAAC,aAAU,EAAA,EAAQ,QAAA,EAAoB,YAAA,EAA4B,YAAA,EAA4B,aAAA,EAA8B,CAAA;AAAA,QAG9H,KAAA,EAAO,0BACN,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,MAAK,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,aAAa,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,EAAA,EAAI,QAAA,EAAU;AAAA;AAAA;AAAA,GAEpI;AAIF,EAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,uBACE,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAY,KAAA,EACvB,QAAA,EAAA,UAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,UAAA;AACT","file":"index.js","sourcesContent":["\"use client\";\n\n// ═══════════════════════════════════════════════════════════════\n// SOLFACES v2 — React Component\n// Gradient-rich SVG avatar with pixel art and liquid glass modes.\n// ═══════════════════════════════════════════════════════════════\n\nimport { useMemo, type SVGAttributes, type CSSProperties } from \"react\";\nimport {\n generateTraits,\n effectiveAccessory,\n SKIN_COLORS,\n EYE_COLORS,\n HAIR_COLORS,\n BG_COLORS,\n type SolFaceTraits,\n type SolFaceTheme,\n} from \"../core/traits\";\nimport { deriveSkinColors, darken, lighten, blend, buzzOpacity } from \"../core/colors\";\nimport { renderSolFaceSVG } from \"../core/renderer\";\n\nexport interface SolFaceProps extends Omit<SVGAttributes<SVGSVGElement>, \"viewBox\" | \"xmlns\"> {\n walletAddress: string;\n size?: number;\n enableBlink?: boolean | {\n duration?: number;\n delay?: number;\n };\n theme?: SolFaceTheme;\n traitOverrides?: Partial<SolFaceTraits>;\n detail?: \"full\" | \"simplified\" | \"auto\";\n colorOverrides?: {\n skin?: string;\n eyes?: string;\n hair?: string;\n bg?: string;\n mouth?: string;\n eyebrow?: string;\n accessory?: string;\n nose?: string;\n eyeWhite?: string;\n };\n}\n\n// ─── Helpers ────────────────────────────────────\n\nfunction djb2(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) + hash + str.charCodeAt(i)) | 0;\n }\n return hash >>> 0;\n}\n\n// ─── Hair Back (behind face) ────────────────────\n\nfunction HairBack({ hi, id, flat }: { hi: number; id: string; flat: boolean }) {\n const fill = flat ? \"currentColor\" : `url(#${id}hg)`;\n switch (hi) {\n case 5: return <rect x=\"10\" y=\"14\" width=\"44\" height=\"42\" rx=\"6\" fill={fill} />;\n case 6: return <rect x=\"12\" y=\"14\" width=\"40\" height=\"32\" rx=\"8\" fill={fill} />;\n case 8: return <rect x=\"11\" y=\"14\" width=\"42\" height=\"38\" rx=\"8\" fill={fill} />;\n default: return null;\n }\n}\n\n// ─── Ears ───────────────────────────────────────\n\nfunction Ears({ earFill, earShadow }: { earFill: string; earShadow: string }) {\n return (\n <>\n <ellipse cx=\"11\" cy=\"34\" rx=\"4\" ry=\"5\" fill={earFill} />\n <ellipse cx=\"11\" cy=\"34\" rx=\"2.5\" ry=\"3.5\" fill={earShadow} opacity=\"0.3\" />\n <ellipse cx=\"53\" cy=\"34\" rx=\"4\" ry=\"5\" fill={earFill} />\n <ellipse cx=\"53\" cy=\"34\" rx=\"2.5\" ry=\"3.5\" fill={earShadow} opacity=\"0.3\" />\n </>\n );\n}\n\n// ─── Face Overlays ──────────────────────────────\n\nfunction FaceOverlays({ id }: { id: string }) {\n return (\n <>\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={`url(#${id}glow)`} />\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={`url(#${id}chin)`} />\n <ellipse cx=\"22\" cy=\"42\" rx=\"5\" ry=\"3.5\" fill={`url(#${id}cL)`} />\n <ellipse cx=\"42\" cy=\"42\" rx=\"5\" ry=\"3.5\" fill={`url(#${id}cR)`} />\n <line x1=\"20\" y1=\"50\" x2=\"44\" y2=\"50\" stroke=\"currentColor\" strokeWidth=\"0.3\" opacity=\"0.08\" strokeLinecap=\"round\" />\n </>\n );\n}\n\n// ─── Hair Front ─────────────────────────────────\n\nfunction HairFront({ hi, id, hairCol, skin, flat }: { hi: number; id: string; hairCol: string; skin: string; flat: boolean }) {\n const fill = flat ? hairCol : `url(#${id}hg)`;\n switch (hi) {\n case 0: return null;\n 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={fill} />;\n case 2:\n return (\n <g fill={fill}>\n <circle cx=\"20\" cy=\"14\" r=\"5\" />\n <circle cx=\"28\" cy=\"11\" r=\"5.5\" />\n <circle cx=\"36\" cy=\"11\" r=\"5.5\" />\n <circle cx=\"44\" cy=\"14\" r=\"5\" />\n <circle cx=\"16\" cy=\"20\" r=\"4\" />\n <circle cx=\"48\" cy=\"20\" r=\"4\" />\n </g>\n );\n case 3:\n return (\n <g fill={fill}>\n <path d=\"M14 26 Q14 12 32 10 Q50 12 50 26 L50 20 Q50 10 32 8 Q14 10 14 20 Z\" />\n <path d=\"M14 20 Q8 16 10 8 Q14 10 20 16 Z\" />\n </g>\n );\n case 4: return <ellipse cx=\"32\" cy=\"10\" rx=\"14\" ry=\"8\" fill={fill} />;\n 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={fill} />;\n case 6:\n return (\n <g fill={fill}>\n <path d=\"M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z\" />\n <rect x=\"10\" y=\"28\" width=\"8\" height=\"14\" rx=\"4\" />\n <rect x=\"46\" y=\"28\" width=\"8\" height=\"14\" rx=\"4\" />\n </g>\n );\n case 7: {\n const bOp = buzzOpacity(hairCol, skin);\n return <rect x=\"15\" y=\"13\" width=\"34\" height=\"16\" rx=\"10\" ry=\"8\" fill={hairCol} opacity={bOp} />;\n }\n case 8:\n return (\n <g>\n <path d=\"M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z\" fill={fill} />\n <path d=\"M12 30 Q10 20 14 16\" fill=\"none\" stroke={fill} strokeWidth=\"4\" strokeLinecap=\"round\" />\n <path d=\"M52 30 Q54 20 50 16\" fill=\"none\" stroke={fill} strokeWidth=\"4\" strokeLinecap=\"round\" />\n </g>\n );\n case 9:\n return (\n <g fill={fill}>\n <path d=\"M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z\" />\n <ellipse cx=\"32\" cy=\"6\" rx=\"6\" ry=\"5\" />\n </g>\n );\n default: return null;\n }\n}\n\n// ─── Eyes ───────────────────────────────────────\n\nfunction Eyes({ ei, eyeCol, eyeWhite, lidColor, full }: { ei: number; eyeCol: string; eyeWhite: string; lidColor: string; full: boolean }) {\n const lx = 25, rx = 39, y = 33;\n\n const lids = full && ei !== 1 && ei !== 5 ? (\n <>\n <path d={`M${lx - 4} ${y - 1.5} Q${lx} ${y - 4} ${lx + 4} ${y - 1.5}`} fill=\"none\" stroke={lidColor} strokeWidth=\"0.5\" opacity=\"0.4\" />\n <path d={`M${rx - 4} ${y - 1.5} Q${rx} ${y - 4} ${rx + 4} ${y - 1.5}`} fill=\"none\" stroke={lidColor} strokeWidth=\"0.5\" opacity=\"0.4\" />\n </>\n ) : null;\n\n switch (ei) {\n case 0:\n return (\n <>\n <circle cx={lx} cy={y} r=\"4\" fill={eyeWhite} />\n <circle cx={lx + 0.8} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={lx + 1.5} cy={y - 1} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"4\" fill={eyeWhite} />\n <circle cx={rx + 0.8} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={rx + 1.5} cy={y - 1} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n case 1:\n return (\n <>\n <circle cx={lx} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx} cy={y} r=\"2\" fill={eyeCol} />\n </>\n );\n case 2:\n return (\n <>\n <ellipse cx={lx} cy={y} rx=\"4.5\" ry=\"2.8\" fill={eyeWhite} />\n <circle cx={lx + 0.5} cy={y} r=\"1.8\" fill={eyeCol} />\n {full && <circle cx={lx + 1.2} cy={y - 0.8} r=\"0.6\" fill=\"white\" opacity=\"0.7\" />}\n <ellipse cx={rx} cy={y} rx=\"4.5\" ry=\"2.8\" fill={eyeWhite} />\n <circle cx={rx + 0.5} cy={y} r=\"1.8\" fill={eyeCol} />\n {full && <circle cx={rx + 1.2} cy={y - 0.8} r=\"0.6\" fill=\"white\" opacity=\"0.7\" />}\n {lids}\n </>\n );\n case 3:\n return (\n <>\n <circle cx={lx} cy={y} r=\"5\" fill={eyeWhite} />\n <circle cx={lx} cy={y + 0.5} r=\"2.8\" fill={eyeCol} />\n {full && <circle cx={lx + 1.5} cy={y - 1} r=\"0.8\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"5\" fill={eyeWhite} />\n <circle cx={rx} cy={y + 0.5} r=\"2.8\" fill={eyeCol} />\n {full && <circle cx={rx + 1.5} cy={y - 1} r=\"0.8\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n case 4:\n return (\n <>\n <ellipse cx={lx} cy={y + 1} rx=\"4\" ry=\"2.2\" fill={eyeWhite} />\n <circle cx={lx} cy={y + 1} r=\"1.5\" fill={eyeCol} />\n {full && <line x1={lx - 4.5} y1={y - 0.5} x2={lx + 4.5} y2={y - 0.5} stroke={lidColor} strokeWidth=\"0.8\" strokeLinecap=\"round\" />}\n <ellipse cx={rx} cy={y + 1} rx=\"4\" ry=\"2.2\" fill={eyeWhite} />\n <circle cx={rx} cy={y + 1} r=\"1.5\" fill={eyeCol} />\n {full && <line x1={rx - 4.5} y1={y - 0.5} x2={rx + 4.5} y2={y - 0.5} stroke={lidColor} strokeWidth=\"0.8\" strokeLinecap=\"round\" />}\n {lids}\n </>\n );\n case 5:\n return (\n <>\n <path d={`M${lx - 4} ${y} Q${lx} ${y + 4} ${lx + 4} ${y}`} fill=\"none\" stroke={eyeCol} strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y} Q${rx} ${y + 4} ${rx + 4} ${y}`} fill=\"none\" stroke={eyeCol} strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n </>\n );\n case 6:\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx + 0.5} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={lx + 1.5} cy={y - 1} r=\"1\" fill=\"white\" opacity=\"0.9\" />\n {full && (\n <>\n <line x1={lx + 2.5} y1={y - 3.5} x2={lx + 4} y2={y - 5} stroke={eyeCol} strokeWidth=\"0.8\" strokeLinecap=\"round\" />\n <line x1={lx + 3.5} y1={y - 2.5} x2={lx + 5} y2={y - 3.5} stroke={eyeCol} strokeWidth=\"0.8\" strokeLinecap=\"round\" />\n </>\n )}\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx + 0.5} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx + 1.5} cy={y - 1} r=\"1\" fill=\"white\" opacity=\"0.9\" />\n {full && (\n <>\n <line x1={rx + 2.5} y1={y - 3.5} x2={rx + 4} y2={y - 5} stroke={eyeCol} strokeWidth=\"0.8\" strokeLinecap=\"round\" />\n <line x1={rx + 3.5} y1={y - 2.5} x2={rx + 5} y2={y - 3.5} stroke={eyeCol} strokeWidth=\"0.8\" strokeLinecap=\"round\" />\n </>\n )}\n {lids}\n </>\n );\n case 7:\n return (\n <>\n <ellipse cx={lx} cy={y} rx=\"4.5\" ry=\"1.5\" fill={eyeWhite} />\n <ellipse cx={lx + 0.5} cy={y} rx=\"2.2\" ry=\"1.2\" fill={eyeCol} />\n <ellipse cx={rx} cy={y} rx=\"4.5\" ry=\"1.5\" fill={eyeWhite} />\n <ellipse cx={rx + 0.5} cy={y} rx=\"2.2\" ry=\"1.2\" fill={eyeCol} />\n {lids}\n </>\n );\n default:\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx + 0.8} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx + 0.8} cy={y} r=\"2\" fill={eyeCol} />\n {lids}\n </>\n );\n }\n}\n\n// ─── Eyebrows ───────────────────────────────────\n\nfunction Eyebrows({ bi, browColor }: { bi: number; browColor: string }) {\n const lx = 25, rx = 39, y = 27;\n switch (bi) {\n case 0:\n return (\n <>\n <line x1={lx - 3} y1={y} x2={lx + 3} y2={y - 0.5} stroke={browColor} strokeWidth=\"0.7\" strokeLinecap=\"round\" />\n <line x1={rx - 3} y1={y - 0.5} x2={rx + 3} y2={y} stroke={browColor} strokeWidth=\"0.7\" strokeLinecap=\"round\" />\n </>\n );\n case 1:\n return (\n <>\n <line x1={lx - 3.5} y1={y} x2={lx + 3.5} y2={y} stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <line x1={rx - 3.5} y1={y} x2={rx + 3.5} y2={y} stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n case 2:\n return (\n <>\n <path d={`M${lx - 3.5} ${y + 0.5} Q${lx} ${y - 1.5} ${lx + 3.5} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <path d={`M${rx - 3.5} ${y + 0.5} Q${rx} ${y - 1.5} ${rx + 3.5} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n case 3:\n return (\n <>\n <path d={`M${lx - 4} ${y + 1} Q${lx} ${y - 3} ${lx + 4} ${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1\" strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y + 1} Q${rx} ${y - 3} ${rx + 4} ${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1\" strokeLinecap=\"round\" />\n </>\n );\n case 4:\n return (\n <>\n <polyline points={`${lx - 3},${y + 1} ${lx},${y - 2} ${lx + 3},${y}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <polyline points={`${rx - 3},${y} ${rx},${y - 2} ${rx + 3},${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </>\n );\n default: return null;\n }\n}\n\n// ─── Nose ───────────────────────────────────────\n\nfunction Nose({ ni, noseFill }: { ni: number; noseFill: string }) {\n const cx = 32, y = 39;\n switch (ni) {\n case 0: return <ellipse cx={cx} cy={y} rx=\"2\" ry=\"1.2\" fill={noseFill} opacity=\"0.35\" />;\n case 1: return <circle cx={cx} cy={y} r=\"1.8\" fill={noseFill} opacity=\"0.5\" />;\n case 2: return <path d={`M${cx - 2} ${y + 1} Q${cx} ${y - 2} ${cx + 2} ${y + 1}`} fill=\"none\" stroke={noseFill} strokeWidth=\"1\" strokeLinecap=\"round\" opacity=\"0.5\" />;\n case 3:\n return (\n <>\n <circle cx={cx - 1.8} cy={y} r=\"1.2\" fill={noseFill} opacity=\"0.4\" />\n <circle cx={cx + 1.8} cy={y} r=\"1.2\" fill={noseFill} opacity=\"0.4\" />\n </>\n );\n default: return <ellipse cx={cx} cy={y} rx=\"2\" ry=\"1.2\" fill={noseFill} opacity=\"0.35\" />;\n }\n}\n\n// ─── Mouth ──────────────────────────────────────\n\nfunction Mouth({ mi, lipColor, isDark }: { mi: number; lipColor: string; isDark: boolean }) {\n const cx = 32, y = 45;\n const teethCol = isDark ? \"#e8e0d8\" : \"#ffffff\";\n switch (mi) {\n case 0: return <path d={`M${cx - 4} ${y} Q${cx} ${y + 4} ${cx + 4} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n case 1: return <line x1={cx - 3} y1={y + 1} x2={cx + 3} y2={y + 1} stroke={lipColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />;\n case 2: return <path d={`M${cx - 5} ${y} Q${cx} ${y + 5} ${cx + 5} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />;\n case 3: return <ellipse cx={cx} cy={y + 1} rx=\"2.5\" ry=\"3\" fill={lipColor} opacity=\"0.7\" />;\n case 4: return <path d={`M${cx - 4} ${y + 1} Q${cx + 1} ${y + 1} ${cx + 4} ${y - 1.5}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.3\" strokeLinecap=\"round\" />;\n case 5:\n return (\n <>\n <path d={`M${cx - 5} ${y} Q${cx} ${y + 6} ${cx + 5} ${y}`} fill={teethCol} stroke={lipColor} strokeWidth=\"1\" />\n <line x1={cx - 4} y1={y + 1.5} x2={cx + 4} y2={y + 1.5} stroke={lipColor} strokeWidth=\"0.3\" opacity=\"0.3\" />\n </>\n );\n case 6: return <line x1={cx - 4} y1={y + 1} x2={cx + 4} y2={y + 1} stroke={lipColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />;\n case 7:\n return (\n <>\n <ellipse cx={cx} cy={y + 1} rx=\"3.5\" ry=\"2\" fill={lipColor} opacity=\"0.25\" />\n <path d={`M${cx - 3} ${y} Q${cx} ${y + 2.5} ${cx + 3} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n default: return <path d={`M${cx - 4} ${y} Q${cx} ${y + 4} ${cx + 4} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n }\n}\n\n// ─── Accessory ──────────────────────────────────\n\nfunction Accessory({ ai, accColor, glassesColor, earringColor, headbandColor }: {\n ai: number; accColor: string; glassesColor: string; earringColor: string; headbandColor: string;\n}) {\n switch (ai) {\n case 0: return null;\n case 1: return <circle cx=\"40\" cy=\"44\" r=\"0.8\" fill=\"#3a2a2a\" />;\n case 2:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1\">\n <circle cx=\"25\" cy=\"33\" r=\"5.5\" />\n <circle cx=\"39\" cy=\"33\" r=\"5.5\" />\n <line x1=\"30.5\" y1=\"33\" x2=\"33.5\" y2=\"33\" />\n <line x1=\"19.5\" y1=\"33\" x2=\"14\" y2=\"31\" />\n <line x1=\"44.5\" y1=\"33\" x2=\"50\" y2=\"31\" />\n </g>\n );\n case 3:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1\">\n <rect x=\"19\" y=\"29\" width=\"12\" height=\"8\" rx=\"1.5\" />\n <rect x=\"33\" y=\"29\" width=\"12\" height=\"8\" rx=\"1.5\" />\n <line x1=\"31\" y1=\"33\" x2=\"33\" y2=\"33\" />\n <line x1=\"19\" y1=\"33\" x2=\"14\" y2=\"31\" />\n <line x1=\"45\" y1=\"33\" x2=\"50\" y2=\"31\" />\n </g>\n );\n case 4:\n return (\n <>\n <circle cx=\"10\" cy=\"38\" r=\"1.5\" fill={earringColor} />\n <circle cx=\"10\" cy=\"41\" r=\"2\" fill={earringColor} opacity=\"0.8\" />\n </>\n );\n case 5:\n return <rect x=\"13\" y=\"20\" width=\"38\" height=\"3.5\" rx=\"1.5\" fill={headbandColor} opacity=\"0.85\" />;\n case 6:\n return (\n <g fill=\"#a0785a\" opacity=\"0.35\">\n <circle cx=\"21\" cy=\"40\" r=\"0.6\" />\n <circle cx=\"23\" cy=\"42\" r=\"0.5\" />\n <circle cx=\"19\" cy=\"41.5\" r=\"0.5\" />\n <circle cx=\"43\" cy=\"40\" r=\"0.6\" />\n <circle cx=\"41\" cy=\"42\" r=\"0.5\" />\n <circle cx=\"45\" cy=\"41.5\" r=\"0.5\" />\n </g>\n );\n case 7:\n return (\n <>\n <circle cx=\"10\" cy=\"37\" r=\"1.2\" fill={earringColor} />\n <circle cx=\"54\" cy=\"37\" r=\"1.2\" fill={earringColor} />\n </>\n );\n case 8:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1.2\">\n <path d=\"M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z\" fill={glassesColor} fillOpacity=\"0.15\" />\n <path d=\"M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z\" fill={glassesColor} fillOpacity=\"0.15\" />\n <line x1=\"31\" y1=\"32\" x2=\"33\" y2=\"32\" />\n <line x1=\"19\" y1=\"31\" x2=\"14\" y2=\"29\" />\n <line x1=\"45\" y1=\"31\" x2=\"50\" y2=\"29\" />\n </g>\n );\n case 9:\n return (\n <g>\n <rect x=\"38\" y=\"38\" width=\"8\" height=\"4\" rx=\"1\" fill=\"#f0d0a0\" transform=\"rotate(-15 42 40)\" />\n <line x1=\"40\" y1=\"39\" x2=\"40\" y2=\"41\" stroke=\"#c0a080\" strokeWidth=\"0.4\" transform=\"rotate(-15 42 40)\" />\n <line x1=\"42\" y1=\"39\" x2=\"42\" y2=\"41\" stroke=\"#c0a080\" strokeWidth=\"0.4\" transform=\"rotate(-15 42 40)\" />\n <line x1=\"44\" y1=\"39\" x2=\"44\" y2=\"41\" stroke=\"#c0a080\" strokeWidth=\"0.4\" transform=\"rotate(-15 42 40)\" />\n </g>\n );\n default: return null;\n }\n}\n\n// ─── Pixel Art Wrapper ──────────────────────────\n\nfunction PixelWrapper({ svgString, size, theme }: { svgString: string; size: number; theme: SolFaceTheme }) {\n const density = theme._pixelDensity ?? 16;\n const rounded = theme._pixelRounded ?? true;\n const outline = theme._pixelOutline ?? false;\n const outlineColor = theme._pixelOutlineColor ?? \"#000\";\n const outlineWidth = theme._pixelOutlineWidth ?? 1;\n const scanlines = theme._pixelScanlines ?? false;\n const scanlineOpacity = theme._pixelScanlineOpacity ?? 0.08;\n const scanlineSpacing = theme._pixelScanlineSpacing ?? 2;\n const grid = theme._pixelGrid ?? false;\n const gridOpacity = theme._pixelGridOpacity ?? 0.06;\n const gridColor = theme._pixelGridColor ?? \"#000\";\n const shadow = theme._pixelShadow ?? false;\n const shadowColor = theme._pixelShadowColor ?? \"rgba(0,0,0,0.3)\";\n const shadowOffset = theme._pixelShadowOffset ?? 2;\n const contrast = theme._pixelContrast;\n const saturation = theme._pixelSaturation;\n const brightness = theme._pixelBrightness;\n\n const dataUri = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgString)}`;\n\n // Build CSS filter string\n const filters: string[] = [];\n if (shadow) filters.push(`drop-shadow(${shadowOffset}px ${shadowOffset}px 0px ${shadowColor})`);\n if (contrast !== undefined) filters.push(`contrast(${contrast})`);\n if (saturation !== undefined) filters.push(`saturate(${saturation})`);\n if (brightness !== undefined) filters.push(`brightness(${brightness})`);\n\n const containerStyle: CSSProperties = {\n position: \"relative\",\n width: size,\n height: size,\n display: \"inline-block\",\n ...(filters.length ? { filter: filters.join(\" \") } : {}),\n };\n\n const imgStyle: CSSProperties = {\n width: size,\n height: size,\n imageRendering: \"pixelated\",\n borderRadius: rounded ? \"12%\" : 0,\n display: \"block\",\n border: outline ? `${outlineWidth}px solid ${outlineColor}` : \"none\",\n };\n\n return (\n <div style={containerStyle}>\n <img src={dataUri} width={density} height={density} style={imgStyle} alt=\"\" />\n {scanlines && (\n <div style={{\n position: \"absolute\", inset: 0,\n background: `repeating-linear-gradient(0deg, transparent, transparent ${scanlineSpacing}px, rgba(0,0,0,${scanlineOpacity}) ${scanlineSpacing}px, rgba(0,0,0,${scanlineOpacity}) ${scanlineSpacing + 1}px)`,\n pointerEvents: \"none\",\n borderRadius: rounded ? \"12%\" : 0,\n }} />\n )}\n {grid && (\n <div style={{\n position: \"absolute\", inset: 0,\n backgroundSize: `${size / density}px ${size / density}px`,\n backgroundImage: `linear-gradient(${gridColor} ${gridOpacity}, transparent ${gridOpacity}), linear-gradient(90deg, ${gridColor} ${gridOpacity}, transparent ${gridOpacity})`,\n pointerEvents: \"none\",\n borderRadius: rounded ? \"12%\" : 0,\n }} />\n )}\n </div>\n );\n}\n\n// ─── Liquid Glass Wrapper ───────────────────────\n\nfunction GlassWrapper({ children, size, theme }: { children: React.ReactNode; size: number; theme: SolFaceTheme }) {\n const blurRadius = theme._blurRadius ?? 12;\n const saturate = theme._saturate ?? 1.8;\n const tintOpacity = theme._tintOpacity ?? 0.12;\n const tintColor = theme._tintColor ?? \"rgba(255,255,255,1)\";\n const borderOpacity = theme._borderOpacity ?? 0.25;\n const borderWidth = theme._borderWidth ?? 1;\n const borderColor = theme._borderColor ?? `rgba(255,255,255,${borderOpacity})`;\n const specularOpacity = theme._specularOpacity ?? 0.25;\n const specularColor = theme._specularColor ?? \"rgba(255,255,255,1)\";\n const specularEnd = theme._specularEnd ?? 50;\n const lightAngle = theme._lightAngle ?? 135;\n const rimIntensity = theme._rimIntensity ?? 0.08;\n const shadowStr = theme._shadow ?? \"0 8px 32px rgba(0,0,0,0.12)\";\n\n const bgRadius = theme.bgRadius ?? 16;\n\n const containerStyle: CSSProperties = {\n position: \"relative\",\n width: size,\n height: size,\n display: \"inline-block\",\n borderRadius: bgRadius,\n overflow: \"hidden\",\n backdropFilter: `blur(${blurRadius}px) saturate(${saturate})`,\n WebkitBackdropFilter: `blur(${blurRadius}px) saturate(${saturate})`,\n border: `${borderWidth}px solid ${borderColor}`,\n boxShadow: shadowStr,\n };\n\n return (\n <div style={containerStyle}>\n <div style={{\n position: \"absolute\", inset: 0,\n backgroundColor: tintColor, opacity: tintOpacity,\n borderRadius: bgRadius, pointerEvents: \"none\",\n }} />\n <div style={{ position: \"relative\", zIndex: 1 }}>\n {children}\n </div>\n <div style={{\n position: \"absolute\", inset: 0,\n background: `linear-gradient(${lightAngle}deg, ${specularColor.replace(\"1)\", `${specularOpacity})`)} 0%, transparent ${specularEnd}%)`,\n borderRadius: bgRadius, pointerEvents: \"none\",\n }} />\n <div style={{\n position: \"absolute\", inset: 0,\n borderRadius: bgRadius,\n boxShadow: `inset 0 0 0 1px rgba(255,255,255,${rimIntensity})`,\n pointerEvents: \"none\",\n }} />\n </div>\n );\n}\n\n// ─── Main Component ─────────────────────────────\n\nexport function SolFace({\n walletAddress,\n size = 64,\n enableBlink = false,\n theme,\n traitOverrides,\n colorOverrides,\n detail: detailProp,\n className,\n style,\n ...rest\n}: SolFaceProps) {\n const traits = useMemo(\n () => generateTraits(walletAddress, traitOverrides),\n [walletAddress, traitOverrides],\n );\n\n const detailOpt = detailProp ?? \"auto\";\n const full = detailOpt === \"full\" || (detailOpt === \"auto\" && size >= 48);\n const flat = theme?.flat ?? false;\n\n const skinColors = theme?.skinColors ?? SKIN_COLORS;\n const eyeColors = theme?.eyeColors ?? EYE_COLORS;\n const hairColors = theme?.hairColors ?? HAIR_COLORS;\n const bgColors = theme?.bgColors ?? BG_COLORS;\n\n const skin = colorOverrides?.skin ?? skinColors[traits.skinColor % skinColors.length];\n const eyeCol = colorOverrides?.eyes ?? eyeColors[traits.eyeColor % eyeColors.length];\n const hairCol = colorOverrides?.hair ?? hairColors[traits.hairColor % hairColors.length];\n const bgCol = colorOverrides?.bg ?? bgColors[traits.bgColor % bgColors.length];\n\n const derived = useMemo(() => deriveSkinColors(skin), [skin]);\n\n const bgOpacity = theme?.bgOpacity ?? 1;\n const bgRadius = theme?.bgRadius ?? 4;\n const browColor = colorOverrides?.eyebrow ?? theme?.eyebrowColor ?? derived.browColor;\n const noseFill = colorOverrides?.nose ?? theme?.noseColor ?? derived.noseFill;\n const lipColor = colorOverrides?.mouth ?? theme?.mouthColor ?? derived.lipColor;\n const accColor = colorOverrides?.accessory ?? theme?.accessoryColor ?? derived.accessoryColor;\n const eyeWhite = colorOverrides?.eyeWhite ?? theme?.eyeWhiteColor ?? derived.eyeWhiteAdapted;\n const glassesColor = theme?.glassesColor ?? \"#4a4a5a\";\n const earringColor = theme?.earringColor ?? blend(skin, \"#d4a840\", 0.4);\n const headbandColor = theme?.headbandColor ?? blend(hairCol, \"#c04040\", 0.5);\n\n const id = useMemo(() => \"sf\" + djb2(walletAddress).toString(36), [walletAddress]);\n\n const cheekEnabled = theme?.cheekEnabled ?? true;\n const cheekColor = theme?.cheekColor ?? derived.cheekColor;\n const cheekOpacity = theme?.cheekOpacity ?? derived.cheekOpacity;\n\n const hi = traits.hairStyle % 10;\n const ai = effectiveAccessory(traits);\n\n const blinkEnabled = !!enableBlink;\n const blinkDuration = typeof enableBlink === \"object\" ? (enableBlink.duration ?? 4) : 4;\n const blinkDelay = typeof enableBlink === \"object\" ? (enableBlink.delay ?? 0) : 0;\n const delayStr = blinkDelay ? ` ${blinkDelay}s` : \"\";\n\n const bgFill = flat ? bgCol : `url(#${id}bg)`;\n const skinFill = flat ? skin : `url(#${id}sg)`;\n\n // Pixel art mode — use string renderer and wrap in pixel div\n if (theme?._pixel) {\n const pixelSvg = renderSolFaceSVG(walletAddress, {\n size,\n theme: { ...theme, _pixel: false, _glass: false },\n traitOverrides,\n colorOverrides,\n detail: detailProp,\n });\n return <PixelWrapper svgString={pixelSvg} size={size} theme={theme} />;\n }\n\n const svgElement = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 64 64\"\n width={size}\n height={size}\n className={className}\n style={{ display: \"block\", ...style }}\n {...rest}\n >\n {!flat && (\n <defs>\n <linearGradient id={`${id}sg`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={derived.skinHi} />\n <stop offset=\"100%\" stopColor={derived.skinLo} />\n </linearGradient>\n <linearGradient id={`${id}hg`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={lighten(hairCol, 0.15)} />\n <stop offset=\"100%\" stopColor={darken(hairCol, 0.15)} />\n </linearGradient>\n <linearGradient id={`${id}bg`} x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={lighten(bgCol, 0.12)} />\n <stop offset=\"100%\" stopColor={darken(bgCol, 0.12)} />\n </linearGradient>\n {full && cheekEnabled && (\n <>\n <radialGradient id={`${id}glow`} cx=\"0.5\" cy=\"0.28\" r=\"0.45\">\n <stop offset=\"0%\" stopColor=\"#ffffff\" stopOpacity={0.10} />\n <stop offset=\"100%\" stopColor=\"#ffffff\" stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}chin`} cx=\"0.5\" cy=\"0.85\" r=\"0.35\">\n <stop offset=\"0%\" stopColor={derived.skinLo} stopOpacity={0.30} />\n <stop offset=\"100%\" stopColor={derived.skinLo} stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}cL`} cx=\"0.5\" cy=\"0.5\" r=\"0.5\">\n <stop offset=\"0%\" stopColor={cheekColor} stopOpacity={cheekOpacity} />\n <stop offset=\"100%\" stopColor={cheekColor} stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}cR`} cx=\"0.5\" cy=\"0.5\" r=\"0.5\">\n <stop offset=\"0%\" stopColor={cheekColor} stopOpacity={cheekOpacity} />\n <stop offset=\"100%\" stopColor={cheekColor} stopOpacity={0} />\n </radialGradient>\n </>\n )}\n </defs>\n )}\n\n {blinkEnabled && (\n <style>{`\n @keyframes ${id}-blink {\n 0%, 90%, 100% { transform: scaleY(1); }\n 95% { transform: scaleY(0.1); }\n }\n .${id}-eyes {\n animation: ${id}-blink ${blinkDuration}s ease-in-out${delayStr} infinite;\n transform-origin: 32px 33px;\n }\n `}</style>\n )}\n\n <rect x=\"0\" y=\"0\" width=\"64\" height=\"64\" fill={bgFill} opacity={bgOpacity} rx={bgRadius} />\n\n <HairBack hi={hi} id={id} flat={flat} />\n <Ears earFill={derived.earFill} earShadow={derived.earShadow} />\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={skinFill} />\n\n {full && cheekEnabled && !flat && <FaceOverlays id={id} />}\n\n {ai === 5 && <Accessory ai={5} accColor={accColor} glassesColor={glassesColor} earringColor={earringColor} headbandColor={headbandColor} />}\n\n <HairFront hi={hi} id={id} hairCol={hairCol} skin={skin} flat={flat} />\n\n <g className={blinkEnabled ? `${id}-eyes` : undefined}>\n <Eyes ei={traits.eyeStyle % 8} eyeCol={eyeCol} eyeWhite={eyeWhite} lidColor={derived.lidColor} full={full} />\n </g>\n\n <Eyebrows bi={traits.eyebrows % 5} browColor={browColor} />\n <Nose ni={traits.nose % 4} noseFill={noseFill} />\n <Mouth mi={traits.mouth % 8} lipColor={lipColor} isDark={derived.isDark} />\n\n {ai !== 0 && ai !== 5 && (\n <Accessory ai={ai} accColor={accColor} glassesColor={glassesColor} earringColor={earringColor} headbandColor={headbandColor} />\n )}\n\n {theme?.border && (\n <rect x=\"0\" y=\"0\" width=\"64\" height=\"64\" fill=\"none\" stroke={theme.border.color} strokeWidth={theme.border.width} rx={bgRadius} />\n )}\n </svg>\n );\n\n // Liquid glass mode\n if (theme?._glass) {\n return (\n <GlassWrapper size={size} theme={theme}>\n {svgElement}\n </GlassWrapper>\n );\n }\n\n return svgElement;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/react/SolFace.tsx","../../src/react/useSolName.ts"],"names":["useMemo"],"mappings":"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","file":"index.js","sourcesContent":["\"use client\";\n\n// ═══════════════════════════════════════════════════════════════\n// SOLFACES v2 — React Component\n// Gradient-rich SVG avatar with pixel art and liquid glass modes.\n// ═══════════════════════════════════════════════════════════════\n\nimport { useMemo, type SVGAttributes, type CSSProperties } from \"react\";\nimport {\n generateTraits,\n effectiveAccessory,\n SKIN_COLORS,\n EYE_COLORS,\n HAIR_COLORS,\n BG_COLORS,\n type SolFaceTraits,\n type SolFaceTheme,\n} from \"../core/traits\";\nimport { deriveSkinColors, darken, lighten, blend, buzzOpacity } from \"../core/colors\";\nimport { renderSolFaceSVG } from \"../core/renderer\";\nimport { deriveName } from \"../names\";\nimport type { NameFormat } from \"../names\";\n\nexport interface SolFaceProps extends Omit<SVGAttributes<SVGSVGElement>, \"viewBox\" | \"xmlns\"> {\n walletAddress: string;\n size?: number;\n enableBlink?: boolean | {\n duration?: number;\n delay?: number;\n };\n theme?: SolFaceTheme;\n traitOverrides?: Partial<SolFaceTraits>;\n detail?: \"full\" | \"simplified\" | \"auto\";\n colorOverrides?: {\n skin?: string;\n eyes?: string;\n hair?: string;\n bg?: string;\n mouth?: string;\n eyebrow?: string;\n accessory?: string;\n nose?: string;\n eyeWhite?: string;\n };\n showName?: boolean;\n namePosition?: \"below\" | \"above\";\n nameFormat?: NameFormat;\n}\n\n// ─── Helpers ────────────────────────────────────\n\nfunction djb2(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) + hash + str.charCodeAt(i)) | 0;\n }\n return hash >>> 0;\n}\n\n// ─── Hair Back (behind face) ────────────────────\n\nfunction HairBack({ hi, id, flat }: { hi: number; id: string; flat: boolean }) {\n const fill = flat ? \"currentColor\" : `url(#${id}hg)`;\n switch (hi) {\n case 5: return <rect x=\"10\" y=\"14\" width=\"44\" height=\"42\" rx=\"6\" fill={fill} />;\n case 6: return <rect x=\"12\" y=\"14\" width=\"40\" height=\"32\" rx=\"8\" fill={fill} />;\n case 8: return <rect x=\"11\" y=\"14\" width=\"42\" height=\"38\" rx=\"8\" fill={fill} />;\n default: return null;\n }\n}\n\n// ─── Ears ───────────────────────────────────────\n\nfunction Ears({ earFill, earShadow }: { earFill: string; earShadow: string }) {\n return (\n <>\n <ellipse cx=\"11\" cy=\"34\" rx=\"4\" ry=\"5\" fill={earFill} />\n <ellipse cx=\"11\" cy=\"34\" rx=\"2.5\" ry=\"3.5\" fill={earShadow} opacity=\"0.3\" />\n <ellipse cx=\"53\" cy=\"34\" rx=\"4\" ry=\"5\" fill={earFill} />\n <ellipse cx=\"53\" cy=\"34\" rx=\"2.5\" ry=\"3.5\" fill={earShadow} opacity=\"0.3\" />\n </>\n );\n}\n\n// ─── Face Overlays ──────────────────────────────\n\nfunction FaceOverlays({ id }: { id: string }) {\n return (\n <>\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={`url(#${id}glow)`} />\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={`url(#${id}chin)`} />\n <ellipse cx=\"22\" cy=\"42\" rx=\"5\" ry=\"3.5\" fill={`url(#${id}cL)`} />\n <ellipse cx=\"42\" cy=\"42\" rx=\"5\" ry=\"3.5\" fill={`url(#${id}cR)`} />\n <line x1=\"20\" y1=\"50\" x2=\"44\" y2=\"50\" stroke=\"currentColor\" strokeWidth=\"0.3\" opacity=\"0.08\" strokeLinecap=\"round\" />\n </>\n );\n}\n\n// ─── Hair Front ─────────────────────────────────\n\nfunction HairFront({ hi, id, hairCol, skin, flat }: { hi: number; id: string; hairCol: string; skin: string; flat: boolean }) {\n const fill = flat ? hairCol : `url(#${id}hg)`;\n switch (hi) {\n case 0: return null;\n 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={fill} />;\n case 2:\n return (\n <g fill={fill}>\n <circle cx=\"20\" cy=\"14\" r=\"5\" />\n <circle cx=\"28\" cy=\"11\" r=\"5.5\" />\n <circle cx=\"36\" cy=\"11\" r=\"5.5\" />\n <circle cx=\"44\" cy=\"14\" r=\"5\" />\n <circle cx=\"16\" cy=\"20\" r=\"4\" />\n <circle cx=\"48\" cy=\"20\" r=\"4\" />\n </g>\n );\n case 3:\n return (\n <g fill={fill}>\n <path d=\"M14 26 Q14 12 32 10 Q50 12 50 26 L50 20 Q50 10 32 8 Q14 10 14 20 Z\" />\n <path d=\"M14 20 Q8 16 10 8 Q14 10 20 16 Z\" />\n </g>\n );\n case 4: return <ellipse cx=\"32\" cy=\"10\" rx=\"14\" ry=\"8\" fill={fill} />;\n 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={fill} />;\n case 6:\n return (\n <g fill={fill}>\n <path d=\"M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z\" />\n <rect x=\"10\" y=\"28\" width=\"8\" height=\"14\" rx=\"4\" />\n <rect x=\"46\" y=\"28\" width=\"8\" height=\"14\" rx=\"4\" />\n </g>\n );\n case 7: {\n const bOp = buzzOpacity(hairCol, skin);\n return <rect x=\"15\" y=\"13\" width=\"34\" height=\"16\" rx=\"10\" ry=\"8\" fill={hairCol} opacity={bOp} />;\n }\n case 8:\n return (\n <g>\n <path d=\"M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z\" fill={fill} />\n <path d=\"M12 30 Q10 20 14 16\" fill=\"none\" stroke={fill} strokeWidth=\"4\" strokeLinecap=\"round\" />\n <path d=\"M52 30 Q54 20 50 16\" fill=\"none\" stroke={fill} strokeWidth=\"4\" strokeLinecap=\"round\" />\n </g>\n );\n case 9:\n return (\n <g fill={fill}>\n <path d=\"M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z\" />\n <ellipse cx=\"32\" cy=\"6\" rx=\"6\" ry=\"5\" />\n </g>\n );\n default: return null;\n }\n}\n\n// ─── Eyes ───────────────────────────────────────\n\nfunction Eyes({ ei, eyeCol, eyeWhite, lidColor, full }: { ei: number; eyeCol: string; eyeWhite: string; lidColor: string; full: boolean }) {\n const lx = 25, rx = 39, y = 33;\n\n const lids = full && ei !== 1 && ei !== 5 ? (\n <>\n <path d={`M${lx - 4} ${y - 1.5} Q${lx} ${y - 4} ${lx + 4} ${y - 1.5}`} fill=\"none\" stroke={lidColor} strokeWidth=\"0.5\" opacity=\"0.4\" />\n <path d={`M${rx - 4} ${y - 1.5} Q${rx} ${y - 4} ${rx + 4} ${y - 1.5}`} fill=\"none\" stroke={lidColor} strokeWidth=\"0.5\" opacity=\"0.4\" />\n </>\n ) : null;\n\n switch (ei) {\n case 0:\n return (\n <>\n <circle cx={lx} cy={y} r=\"4\" fill={eyeWhite} />\n <circle cx={lx + 0.8} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={lx + 1.5} cy={y - 1} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"4\" fill={eyeWhite} />\n <circle cx={rx + 0.8} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={rx + 1.5} cy={y - 1} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n case 1:\n return (\n <>\n <circle cx={lx} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx} cy={y} r=\"2\" fill={eyeCol} />\n </>\n );\n case 2:\n return (\n <>\n <ellipse cx={lx} cy={y} rx=\"4.5\" ry=\"2.8\" fill={eyeWhite} />\n <circle cx={lx + 0.5} cy={y} r=\"1.8\" fill={eyeCol} />\n {full && <circle cx={lx + 1.2} cy={y - 0.8} r=\"0.6\" fill=\"white\" opacity=\"0.7\" />}\n <ellipse cx={rx} cy={y} rx=\"4.5\" ry=\"2.8\" fill={eyeWhite} />\n <circle cx={rx + 0.5} cy={y} r=\"1.8\" fill={eyeCol} />\n {full && <circle cx={rx + 1.2} cy={y - 0.8} r=\"0.6\" fill=\"white\" opacity=\"0.7\" />}\n {lids}\n </>\n );\n case 3:\n return (\n <>\n <circle cx={lx} cy={y} r=\"5\" fill={eyeWhite} />\n <circle cx={lx} cy={y + 0.5} r=\"2.8\" fill={eyeCol} />\n {full && <circle cx={lx + 1.5} cy={y - 1} r=\"0.8\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"5\" fill={eyeWhite} />\n <circle cx={rx} cy={y + 0.5} r=\"2.8\" fill={eyeCol} />\n {full && <circle cx={rx + 1.5} cy={y - 1} r=\"0.8\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n case 4:\n return (\n <>\n <ellipse cx={lx} cy={y + 1} rx=\"4\" ry=\"2.2\" fill={eyeWhite} />\n <circle cx={lx} cy={y + 1} r=\"1.5\" fill={eyeCol} />\n {full && <line x1={lx - 4.5} y1={y - 0.5} x2={lx + 4.5} y2={y - 0.5} stroke={lidColor} strokeWidth=\"0.8\" strokeLinecap=\"round\" />}\n <ellipse cx={rx} cy={y + 1} rx=\"4\" ry=\"2.2\" fill={eyeWhite} />\n <circle cx={rx} cy={y + 1} r=\"1.5\" fill={eyeCol} />\n {full && <line x1={rx - 4.5} y1={y - 0.5} x2={rx + 4.5} y2={y - 0.5} stroke={lidColor} strokeWidth=\"0.8\" strokeLinecap=\"round\" />}\n {lids}\n </>\n );\n case 5:\n return (\n <>\n <path d={`M${lx - 4} ${y} Q${lx} ${y + 4} ${lx + 4} ${y}`} fill=\"none\" stroke={eyeCol} strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y} Q${rx} ${y + 4} ${rx + 4} ${y}`} fill=\"none\" stroke={eyeCol} strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n </>\n );\n case 6:\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx + 0.5} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={lx + 1.5} cy={y - 1} r=\"1\" fill=\"white\" opacity=\"0.9\" />\n {full && (\n <>\n <line x1={lx + 2.5} y1={y - 3.5} x2={lx + 4} y2={y - 5} stroke={eyeCol} strokeWidth=\"0.8\" strokeLinecap=\"round\" />\n <line x1={lx + 3.5} y1={y - 2.5} x2={lx + 5} y2={y - 3.5} stroke={eyeCol} strokeWidth=\"0.8\" strokeLinecap=\"round\" />\n </>\n )}\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx + 0.5} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx + 1.5} cy={y - 1} r=\"1\" fill=\"white\" opacity=\"0.9\" />\n {full && (\n <>\n <line x1={rx + 2.5} y1={y - 3.5} x2={rx + 4} y2={y - 5} stroke={eyeCol} strokeWidth=\"0.8\" strokeLinecap=\"round\" />\n <line x1={rx + 3.5} y1={y - 2.5} x2={rx + 5} y2={y - 3.5} stroke={eyeCol} strokeWidth=\"0.8\" strokeLinecap=\"round\" />\n </>\n )}\n {lids}\n </>\n );\n case 7:\n return (\n <>\n <ellipse cx={lx} cy={y} rx=\"4.5\" ry=\"1.5\" fill={eyeWhite} />\n <ellipse cx={lx + 0.5} cy={y} rx=\"2.2\" ry=\"1.2\" fill={eyeCol} />\n <ellipse cx={rx} cy={y} rx=\"4.5\" ry=\"1.5\" fill={eyeWhite} />\n <ellipse cx={rx + 0.5} cy={y} rx=\"2.2\" ry=\"1.2\" fill={eyeCol} />\n {lids}\n </>\n );\n default:\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx + 0.8} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx + 0.8} cy={y} r=\"2\" fill={eyeCol} />\n {lids}\n </>\n );\n }\n}\n\n// ─── Eyebrows ───────────────────────────────────\n\nfunction Eyebrows({ bi, browColor }: { bi: number; browColor: string }) {\n const lx = 25, rx = 39, y = 27;\n switch (bi) {\n case 0:\n return (\n <>\n <line x1={lx - 3} y1={y} x2={lx + 3} y2={y - 0.5} stroke={browColor} strokeWidth=\"0.7\" strokeLinecap=\"round\" />\n <line x1={rx - 3} y1={y - 0.5} x2={rx + 3} y2={y} stroke={browColor} strokeWidth=\"0.7\" strokeLinecap=\"round\" />\n </>\n );\n case 1:\n return (\n <>\n <line x1={lx - 3.5} y1={y} x2={lx + 3.5} y2={y} stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <line x1={rx - 3.5} y1={y} x2={rx + 3.5} y2={y} stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n case 2:\n return (\n <>\n <path d={`M${lx - 3.5} ${y + 0.5} Q${lx} ${y - 1.5} ${lx + 3.5} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <path d={`M${rx - 3.5} ${y + 0.5} Q${rx} ${y - 1.5} ${rx + 3.5} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n case 3:\n return (\n <>\n <path d={`M${lx - 4} ${y + 1} Q${lx} ${y - 3} ${lx + 4} ${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1\" strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y + 1} Q${rx} ${y - 3} ${rx + 4} ${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1\" strokeLinecap=\"round\" />\n </>\n );\n case 4:\n return (\n <>\n <polyline points={`${lx - 3},${y + 1} ${lx},${y - 2} ${lx + 3},${y}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <polyline points={`${rx - 3},${y} ${rx},${y - 2} ${rx + 3},${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </>\n );\n default: return null;\n }\n}\n\n// ─── Nose ───────────────────────────────────────\n\nfunction Nose({ ni, noseFill }: { ni: number; noseFill: string }) {\n const cx = 32, y = 39;\n switch (ni) {\n case 0: return <ellipse cx={cx} cy={y} rx=\"2\" ry=\"1.2\" fill={noseFill} opacity=\"0.35\" />;\n case 1: return <circle cx={cx} cy={y} r=\"1.8\" fill={noseFill} opacity=\"0.5\" />;\n case 2: return <path d={`M${cx - 2} ${y + 1} Q${cx} ${y - 2} ${cx + 2} ${y + 1}`} fill=\"none\" stroke={noseFill} strokeWidth=\"1\" strokeLinecap=\"round\" opacity=\"0.5\" />;\n case 3:\n return (\n <>\n <circle cx={cx - 1.8} cy={y} r=\"1.2\" fill={noseFill} opacity=\"0.4\" />\n <circle cx={cx + 1.8} cy={y} r=\"1.2\" fill={noseFill} opacity=\"0.4\" />\n </>\n );\n default: return <ellipse cx={cx} cy={y} rx=\"2\" ry=\"1.2\" fill={noseFill} opacity=\"0.35\" />;\n }\n}\n\n// ─── Mouth ──────────────────────────────────────\n\nfunction Mouth({ mi, lipColor, isDark }: { mi: number; lipColor: string; isDark: boolean }) {\n const cx = 32, y = 45;\n const teethCol = isDark ? \"#e8e0d8\" : \"#ffffff\";\n switch (mi) {\n case 0: return <path d={`M${cx - 4} ${y} Q${cx} ${y + 4} ${cx + 4} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n case 1: return <line x1={cx - 3} y1={y + 1} x2={cx + 3} y2={y + 1} stroke={lipColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />;\n case 2: return <path d={`M${cx - 5} ${y} Q${cx} ${y + 5} ${cx + 5} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />;\n case 3: return <ellipse cx={cx} cy={y + 1} rx=\"2.5\" ry=\"3\" fill={lipColor} opacity=\"0.7\" />;\n case 4: return <path d={`M${cx - 4} ${y + 1} Q${cx + 1} ${y + 1} ${cx + 4} ${y - 1.5}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.3\" strokeLinecap=\"round\" />;\n case 5:\n return (\n <>\n <path d={`M${cx - 5} ${y} Q${cx} ${y + 6} ${cx + 5} ${y}`} fill={teethCol} stroke={lipColor} strokeWidth=\"1\" />\n <line x1={cx - 4} y1={y + 1.5} x2={cx + 4} y2={y + 1.5} stroke={lipColor} strokeWidth=\"0.3\" opacity=\"0.3\" />\n </>\n );\n case 6: return <line x1={cx - 4} y1={y + 1} x2={cx + 4} y2={y + 1} stroke={lipColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />;\n case 7:\n return (\n <>\n <ellipse cx={cx} cy={y + 1} rx=\"3.5\" ry=\"2\" fill={lipColor} opacity=\"0.25\" />\n <path d={`M${cx - 3} ${y} Q${cx} ${y + 2.5} ${cx + 3} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n default: return <path d={`M${cx - 4} ${y} Q${cx} ${y + 4} ${cx + 4} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n }\n}\n\n// ─── Accessory ──────────────────────────────────\n\nfunction Accessory({ ai, glassesColor, earringColor, headbandColor }: {\n ai: number; glassesColor: string; earringColor: string; headbandColor: string;\n}) {\n switch (ai) {\n case 0: return null;\n case 1: return <circle cx=\"40\" cy=\"44\" r=\"0.8\" fill=\"#3a2a2a\" />;\n case 2:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1\">\n <circle cx=\"25\" cy=\"33\" r=\"5.5\" />\n <circle cx=\"39\" cy=\"33\" r=\"5.5\" />\n <line x1=\"30.5\" y1=\"33\" x2=\"33.5\" y2=\"33\" />\n <line x1=\"19.5\" y1=\"33\" x2=\"14\" y2=\"31\" />\n <line x1=\"44.5\" y1=\"33\" x2=\"50\" y2=\"31\" />\n </g>\n );\n case 3:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1\">\n <rect x=\"19\" y=\"29\" width=\"12\" height=\"8\" rx=\"1.5\" />\n <rect x=\"33\" y=\"29\" width=\"12\" height=\"8\" rx=\"1.5\" />\n <line x1=\"31\" y1=\"33\" x2=\"33\" y2=\"33\" />\n <line x1=\"19\" y1=\"33\" x2=\"14\" y2=\"31\" />\n <line x1=\"45\" y1=\"33\" x2=\"50\" y2=\"31\" />\n </g>\n );\n case 4:\n return (\n <>\n <circle cx=\"10\" cy=\"38\" r=\"1.5\" fill={earringColor} />\n <circle cx=\"10\" cy=\"41\" r=\"2\" fill={earringColor} opacity=\"0.8\" />\n </>\n );\n case 5:\n return <rect x=\"13\" y=\"20\" width=\"38\" height=\"3.5\" rx=\"1.5\" fill={headbandColor} opacity=\"0.85\" />;\n case 6:\n return (\n <g fill=\"#a0785a\" opacity=\"0.35\">\n <circle cx=\"21\" cy=\"40\" r=\"0.6\" />\n <circle cx=\"23\" cy=\"42\" r=\"0.5\" />\n <circle cx=\"19\" cy=\"41.5\" r=\"0.5\" />\n <circle cx=\"43\" cy=\"40\" r=\"0.6\" />\n <circle cx=\"41\" cy=\"42\" r=\"0.5\" />\n <circle cx=\"45\" cy=\"41.5\" r=\"0.5\" />\n </g>\n );\n case 7:\n return (\n <>\n <circle cx=\"10\" cy=\"37\" r=\"1.2\" fill={earringColor} />\n <circle cx=\"54\" cy=\"37\" r=\"1.2\" fill={earringColor} />\n </>\n );\n case 8:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1.2\">\n <path d=\"M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z\" fill={glassesColor} fillOpacity=\"0.15\" />\n <path d=\"M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z\" fill={glassesColor} fillOpacity=\"0.15\" />\n <line x1=\"31\" y1=\"32\" x2=\"33\" y2=\"32\" />\n <line x1=\"19\" y1=\"31\" x2=\"14\" y2=\"29\" />\n <line x1=\"45\" y1=\"31\" x2=\"50\" y2=\"29\" />\n </g>\n );\n case 9:\n return (\n <g>\n <rect x=\"38\" y=\"38\" width=\"8\" height=\"4\" rx=\"1\" fill=\"#f0d0a0\" transform=\"rotate(-15 42 40)\" />\n <line x1=\"40\" y1=\"39\" x2=\"40\" y2=\"41\" stroke=\"#c0a080\" strokeWidth=\"0.4\" transform=\"rotate(-15 42 40)\" />\n <line x1=\"42\" y1=\"39\" x2=\"42\" y2=\"41\" stroke=\"#c0a080\" strokeWidth=\"0.4\" transform=\"rotate(-15 42 40)\" />\n <line x1=\"44\" y1=\"39\" x2=\"44\" y2=\"41\" stroke=\"#c0a080\" strokeWidth=\"0.4\" transform=\"rotate(-15 42 40)\" />\n </g>\n );\n default: return null;\n }\n}\n\n// ─── Pixel Art Wrapper ──────────────────────────\n\nfunction PixelWrapper({ svgString, size, theme }: { svgString: string; size: number; theme: SolFaceTheme }) {\n const density = theme._pixelDensity ?? 16;\n const rounded = theme._pixelRounded ?? true;\n const outline = theme._pixelOutline ?? false;\n const outlineColor = theme._pixelOutlineColor ?? \"#000\";\n const outlineWidth = theme._pixelOutlineWidth ?? 1;\n const scanlines = theme._pixelScanlines ?? false;\n const scanlineOpacity = theme._pixelScanlineOpacity ?? 0.08;\n const scanlineSpacing = theme._pixelScanlineSpacing ?? 2;\n const grid = theme._pixelGrid ?? false;\n const gridOpacity = theme._pixelGridOpacity ?? 0.06;\n const gridColor = theme._pixelGridColor ?? \"#000\";\n const shadow = theme._pixelShadow ?? false;\n const shadowColor = theme._pixelShadowColor ?? \"rgba(0,0,0,0.3)\";\n const shadowOffset = theme._pixelShadowOffset ?? 2;\n const contrast = theme._pixelContrast;\n const saturation = theme._pixelSaturation;\n const brightness = theme._pixelBrightness;\n\n const dataUri = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgString)}`;\n\n // Build CSS filter string\n const filters: string[] = [];\n if (shadow) filters.push(`drop-shadow(${shadowOffset}px ${shadowOffset}px 0px ${shadowColor})`);\n if (contrast !== undefined) filters.push(`contrast(${contrast})`);\n if (saturation !== undefined) filters.push(`saturate(${saturation})`);\n if (brightness !== undefined) filters.push(`brightness(${brightness})`);\n\n const containerStyle: CSSProperties = {\n position: \"relative\",\n width: size,\n height: size,\n display: \"inline-block\",\n ...(filters.length ? { filter: filters.join(\" \") } : {}),\n };\n\n const imgStyle: CSSProperties = {\n width: size,\n height: size,\n imageRendering: \"pixelated\",\n borderRadius: rounded ? \"12%\" : 0,\n display: \"block\",\n border: outline ? `${outlineWidth}px solid ${outlineColor}` : \"none\",\n };\n\n return (\n <div style={containerStyle}>\n <img src={dataUri} width={density} height={density} style={imgStyle} alt=\"\" />\n {scanlines && (\n <div style={{\n position: \"absolute\", inset: 0,\n background: `repeating-linear-gradient(0deg, transparent, transparent ${scanlineSpacing}px, rgba(0,0,0,${scanlineOpacity}) ${scanlineSpacing}px, rgba(0,0,0,${scanlineOpacity}) ${scanlineSpacing + 1}px)`,\n pointerEvents: \"none\",\n borderRadius: rounded ? \"12%\" : 0,\n }} />\n )}\n {grid && (\n <div style={{\n position: \"absolute\", inset: 0,\n backgroundSize: `${size / density}px ${size / density}px`,\n backgroundImage: `linear-gradient(${gridColor} ${gridOpacity}, transparent ${gridOpacity}), linear-gradient(90deg, ${gridColor} ${gridOpacity}, transparent ${gridOpacity})`,\n pointerEvents: \"none\",\n borderRadius: rounded ? \"12%\" : 0,\n }} />\n )}\n </div>\n );\n}\n\n// ─── Liquid Glass Wrapper ───────────────────────\n\nfunction GlassWrapper({ children, size, theme }: { children: React.ReactNode; size: number; theme: SolFaceTheme }) {\n const blurRadius = theme._blurRadius ?? 12;\n const saturate = theme._saturate ?? 1.8;\n const tintOpacity = theme._tintOpacity ?? 0.12;\n const tintColor = theme._tintColor ?? \"rgba(255,255,255,1)\";\n const borderOpacity = theme._borderOpacity ?? 0.25;\n const borderWidth = theme._borderWidth ?? 1;\n const borderColor = theme._borderColor ?? `rgba(255,255,255,${borderOpacity})`;\n const specularOpacity = theme._specularOpacity ?? 0.25;\n const specularColor = theme._specularColor ?? \"rgba(255,255,255,1)\";\n const specularEnd = theme._specularEnd ?? 50;\n const lightAngle = theme._lightAngle ?? 135;\n const rimIntensity = theme._rimIntensity ?? 0.08;\n const shadowStr = theme._shadow ?? \"0 8px 32px rgba(0,0,0,0.12)\";\n\n const bgRadius = theme.bgRadius ?? 16;\n\n const containerStyle: CSSProperties = {\n position: \"relative\",\n width: size,\n height: size,\n display: \"inline-block\",\n borderRadius: bgRadius,\n overflow: \"hidden\",\n backdropFilter: `blur(${blurRadius}px) saturate(${saturate})`,\n WebkitBackdropFilter: `blur(${blurRadius}px) saturate(${saturate})`,\n border: `${borderWidth}px solid ${borderColor}`,\n boxShadow: shadowStr,\n };\n\n return (\n <div style={containerStyle}>\n <div style={{\n position: \"absolute\", inset: 0,\n backgroundColor: tintColor, opacity: tintOpacity,\n borderRadius: bgRadius, pointerEvents: \"none\",\n }} />\n <div style={{ position: \"relative\", zIndex: 1 }}>\n {children}\n </div>\n <div style={{\n position: \"absolute\", inset: 0,\n background: `linear-gradient(${lightAngle}deg, ${specularColor.replace(\"1)\", `${specularOpacity})`)} 0%, transparent ${specularEnd}%)`,\n borderRadius: bgRadius, pointerEvents: \"none\",\n }} />\n <div style={{\n position: \"absolute\", inset: 0,\n borderRadius: bgRadius,\n boxShadow: `inset 0 0 0 1px rgba(255,255,255,${rimIntensity})`,\n pointerEvents: \"none\",\n }} />\n </div>\n );\n}\n\n// ─── Main Component ─────────────────────────────\n\nexport function SolFace({\n walletAddress,\n size = 64,\n enableBlink = false,\n theme,\n traitOverrides,\n colorOverrides,\n detail: detailProp,\n showName = false,\n namePosition = \"below\",\n nameFormat = \"display\",\n className,\n style,\n ...rest\n}: SolFaceProps) {\n const traits = useMemo(\n () => generateTraits(walletAddress, traitOverrides),\n [walletAddress, traitOverrides],\n );\n\n const detailOpt = detailProp ?? \"auto\";\n const full = detailOpt === \"full\" || (detailOpt === \"auto\" && size >= 48);\n const flat = theme?.flat ?? false;\n\n const skinColors = theme?.skinColors ?? SKIN_COLORS;\n const eyeColors = theme?.eyeColors ?? EYE_COLORS;\n const hairColors = theme?.hairColors ?? HAIR_COLORS;\n const bgColors = theme?.bgColors ?? BG_COLORS;\n\n const skin = colorOverrides?.skin ?? skinColors[traits.skinColor % skinColors.length];\n const eyeCol = colorOverrides?.eyes ?? eyeColors[traits.eyeColor % eyeColors.length];\n const hairCol = colorOverrides?.hair ?? hairColors[traits.hairColor % hairColors.length];\n const bgCol = colorOverrides?.bg ?? bgColors[traits.bgColor % bgColors.length];\n\n const derived = useMemo(() => deriveSkinColors(skin), [skin]);\n\n const bgOpacity = theme?.bgOpacity ?? 1;\n const bgRadius = theme?.bgRadius ?? 4;\n const browColor = colorOverrides?.eyebrow ?? theme?.eyebrowColor ?? derived.browColor;\n const noseFill = colorOverrides?.nose ?? theme?.noseColor ?? derived.noseFill;\n const lipColor = colorOverrides?.mouth ?? theme?.mouthColor ?? derived.lipColor;\n const eyeWhite = colorOverrides?.eyeWhite ?? theme?.eyeWhiteColor ?? derived.eyeWhiteAdapted;\n const glassesColor = theme?.glassesColor ?? \"#4a4a5a\";\n const earringColor = theme?.earringColor ?? blend(skin, \"#d4a840\", 0.4);\n const headbandColor = theme?.headbandColor ?? blend(hairCol, \"#c04040\", 0.5);\n\n const id = useMemo(() => \"sf\" + djb2(walletAddress).toString(36), [walletAddress]);\n\n const cheekEnabled = theme?.cheekEnabled ?? true;\n const cheekColor = theme?.cheekColor ?? derived.cheekColor;\n const cheekOpacity = theme?.cheekOpacity ?? derived.cheekOpacity;\n\n const hi = traits.hairStyle % 10;\n const ai = effectiveAccessory(traits);\n\n const blinkEnabled = !!enableBlink;\n const blinkDuration = typeof enableBlink === \"object\" ? (enableBlink.duration ?? 4) : 4;\n const blinkDelay = typeof enableBlink === \"object\" ? (enableBlink.delay ?? 0) : 0;\n const delayStr = blinkDelay ? ` ${blinkDelay}s` : \"\";\n\n const bgFill = flat ? bgCol : `url(#${id}bg)`;\n const skinFill = flat ? skin : `url(#${id}sg)`;\n\n // Pixel art mode — use string renderer and wrap in pixel div\n if (theme?._pixel) {\n const pixelSvg = renderSolFaceSVG(walletAddress, {\n size,\n theme: { ...theme, _pixel: false, _glass: false },\n traitOverrides,\n colorOverrides,\n detail: detailProp,\n });\n return <PixelWrapper svgString={pixelSvg} size={size} theme={theme} />;\n }\n\n const svgElement = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 64 64\"\n width={size}\n height={size}\n className={className}\n style={{ display: \"block\", ...style }}\n {...rest}\n >\n {!flat && (\n <defs>\n <linearGradient id={`${id}sg`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={derived.skinHi} />\n <stop offset=\"100%\" stopColor={derived.skinLo} />\n </linearGradient>\n <linearGradient id={`${id}hg`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={lighten(hairCol, 0.15)} />\n <stop offset=\"100%\" stopColor={darken(hairCol, 0.15)} />\n </linearGradient>\n <linearGradient id={`${id}bg`} x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={lighten(bgCol, 0.12)} />\n <stop offset=\"100%\" stopColor={darken(bgCol, 0.12)} />\n </linearGradient>\n {full && cheekEnabled && (\n <>\n <radialGradient id={`${id}glow`} cx=\"0.5\" cy=\"0.28\" r=\"0.45\">\n <stop offset=\"0%\" stopColor=\"#ffffff\" stopOpacity={0.10} />\n <stop offset=\"100%\" stopColor=\"#ffffff\" stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}chin`} cx=\"0.5\" cy=\"0.85\" r=\"0.35\">\n <stop offset=\"0%\" stopColor={derived.skinLo} stopOpacity={0.30} />\n <stop offset=\"100%\" stopColor={derived.skinLo} stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}cL`} cx=\"0.5\" cy=\"0.5\" r=\"0.5\">\n <stop offset=\"0%\" stopColor={cheekColor} stopOpacity={cheekOpacity} />\n <stop offset=\"100%\" stopColor={cheekColor} stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}cR`} cx=\"0.5\" cy=\"0.5\" r=\"0.5\">\n <stop offset=\"0%\" stopColor={cheekColor} stopOpacity={cheekOpacity} />\n <stop offset=\"100%\" stopColor={cheekColor} stopOpacity={0} />\n </radialGradient>\n </>\n )}\n </defs>\n )}\n\n {blinkEnabled && (\n <style>{`\n @keyframes ${id}-blink {\n 0%, 90%, 100% { transform: scaleY(1); }\n 95% { transform: scaleY(0.1); }\n }\n .${id}-eyes {\n animation: ${id}-blink ${blinkDuration}s ease-in-out${delayStr} infinite;\n transform-origin: 32px 33px;\n }\n `}</style>\n )}\n\n <rect x=\"0\" y=\"0\" width=\"64\" height=\"64\" fill={bgFill} opacity={bgOpacity} rx={bgRadius} />\n\n <HairBack hi={hi} id={id} flat={flat} />\n <Ears earFill={derived.earFill} earShadow={derived.earShadow} />\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={skinFill} />\n\n {full && cheekEnabled && !flat && <FaceOverlays id={id} />}\n\n {ai === 5 && <Accessory ai={5} glassesColor={glassesColor} earringColor={earringColor} headbandColor={headbandColor} />}\n\n <HairFront hi={hi} id={id} hairCol={hairCol} skin={skin} flat={flat} />\n\n <g className={blinkEnabled ? `${id}-eyes` : undefined}>\n <Eyes ei={traits.eyeStyle % 8} eyeCol={eyeCol} eyeWhite={eyeWhite} lidColor={derived.lidColor} full={full} />\n </g>\n\n <Eyebrows bi={traits.eyebrows % 5} browColor={browColor} />\n <Nose ni={traits.nose % 4} noseFill={noseFill} />\n <Mouth mi={traits.mouth % 8} lipColor={lipColor} isDark={derived.isDark} />\n\n {ai !== 0 && ai !== 5 && (\n <Accessory ai={ai} glassesColor={glassesColor} earringColor={earringColor} headbandColor={headbandColor} />\n )}\n\n {theme?.border && (\n <rect x=\"0\" y=\"0\" width=\"64\" height=\"64\" fill=\"none\" stroke={theme.border.color} strokeWidth={theme.border.width} rx={bgRadius} />\n )}\n </svg>\n );\n\n // Liquid glass mode\n if (theme?._glass) {\n const glassEl = (\n <GlassWrapper size={size} theme={theme}>\n {svgElement}\n </GlassWrapper>\n );\n if (!showName) return glassEl;\n const glassName = deriveName(walletAddress, nameFormat);\n return (\n <div style={{ display: \"inline-flex\", flexDirection: \"column\", alignItems: \"center\", gap: 4 }}>\n {namePosition === \"above\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{glassName}</span>}\n {glassEl}\n {namePosition === \"below\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{glassName}</span>}\n </div>\n );\n }\n\n if (!showName) return svgElement;\n const walletName = deriveName(walletAddress, nameFormat);\n return (\n <div style={{ display: \"inline-flex\", flexDirection: \"column\", alignItems: \"center\", gap: 4 }}>\n {namePosition === \"above\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{walletName}</span>}\n {svgElement}\n {namePosition === \"below\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{walletName}</span>}\n </div>\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport { deriveName, deriveIdentity } from \"../names\";\nimport type { NameFormat, SolNameIdentity } from \"../names\";\n\n/**\n * React hook for deriving a SolName from a wallet address.\n *\n * @param wallet Base58 wallet address\n * @param format Optional name format. If omitted, returns full SolNameIdentity.\n */\nexport function useSolName(wallet: string): SolNameIdentity;\nexport function useSolName(wallet: string, format: NameFormat): string;\nexport function useSolName(\n wallet: string,\n format?: NameFormat,\n): string | SolNameIdentity {\n return useMemo(() => {\n if (format) return deriveName(wallet, format);\n return deriveIdentity(wallet);\n }, [wallet, format]);\n}\n"]}
|